Operator adalah simbol yang memberi tahu compiler untuk melakukan manipulasi matematis atau logika tertentu. VB.Net memiliki banyak operator bawaan dan menyediakan jenis-jenis operator yang umum digunakan berikut ini:
-
Operator Aritmatika
-
Operator Perbandingan
-
Operator Logika/Bitwise
-
Operator Pergeseran Bit (Bit Shift)
-
Operator Penugasan (Assignment)
-
Operator Lain-lain (Miscellaneous)
Dari sini kita akan menjelajah lebih dalam… Okay!
Operator Aritmatika
Tabel berikut menunjukkan semua operator aritmatika yang didukung oleh VB.Net.
Misalkan variabel A bernilai 2 dan variabel B bernilai 7, maka:
Operator | Deskripsi | Contoh |
---|
^ | Mengangkat satu operand ke pangkat operand lainnya | B ^ A menghasilkan 49 |
+ | Menjumlahkan dua operand | A + B menghasilkan 9 |
- | Mengurangkan operand kedua dari yang pertama | A - B menghasilkan -5 |
* | Mengalikan kedua operand | A * B menghasilkan 14 |
/ | Membagi satu operand dengan operand lain dan menghasilkan angka pecahan | B / A menghasilkan 3.5 |
\ | Membagi satu operand dengan operand lain dan menghasilkan angka bulat (integer) | B \ A menghasilkan 3 |
MOD | Operator modulus; menghasilkan sisa pembagian bilangan bulat | B MOD A menghasilkan 1 |
Contoh
Cobalah contoh berikut untuk memahami semua operator aritmatika yang tersedia di VB.Net:
Module operators
Sub Main()
Dim a As Integer = 21
Dim b As Integer = 10
Dim p As Integer = 2
Dim c As Integer
Dim d As Single
c = a + b
Console.WriteLine("Baris 1 - Nilai c adalah {0}", c)
c = a - b
Console.WriteLine("Baris 2 - Nilai c adalah {0}", c)
c = a * b
Console.WriteLine("Baris 3 - Nilai c adalah {0}", c)
d = a / b
Console.WriteLine("Baris 4 - Nilai d adalah {0}", d)
c = a \ b
Console.WriteLine("Baris 5 - Nilai c adalah {0}", c)
c = a Mod b
Console.WriteLine("Baris 6 - Nilai c adalah {0}", c)
c = b ^ p
Console.WriteLine("Baris 7 - Nilai c adalah {0}", c)
Console.ReadLine()
End Sub
End Module
Ketika kode di atas dikompilasi dan dijalankan, hasil yang ditampilkan adalah:
Baris 1 - Nilai c adalah 31
Baris 2 - Nilai c adalah 11
Baris 3 - Nilai c adalah 210
Baris 4 - Nilai d adalah 2.1
Baris 5 - Nilai c adalah 2
Baris 6 - Nilai c adalah 1
Baris 7 - Nilai c adalah 100
Operator Perbandingan (Comparison)
Tabel berikut menunjukkan semua operator perbandingan yang didukung oleh VB.Net.
Misalkan variabel A
bernilai 10 dan variabel B
bernilai 20, maka:
Operator | Deskripsi | Contoh |
---|
= | Memeriksa apakah nilai dari dua operand sama; jika ya, maka kondisi menjadi benar. | (A = B) hasilnya salah |
<> | Memeriksa apakah nilai dari dua operand tidak sama; jika ya, maka kondisi menjadi benar. | (A <> B) hasilnya benar |
> | Memeriksa apakah nilai operand kiri lebih besar dari operand kanan; jika ya, maka kondisi menjadi benar. | (A > B) hasilnya salah |
< | Memeriksa apakah nilai operand kiri lebih kecil dari operand kanan; jika ya, maka kondisi menjadi benar. | (A < B) hasilnya benar |
>= | Memeriksa apakah nilai operand kiri lebih besar atau sama dengan operand kanan; jika ya, maka kondisi menjadi benar. | (A >= B) hasilnya salah |
<= | Memeriksa apakah nilai operand kiri lebih kecil atau sama dengan operand kanan; jika ya, maka kondisi menjadi benar. | (A <= B) hasilnya benar |
Contoh Program:
Module operators
Sub Main()
Dim a As Integer = 21
Dim b As Integer = 10
If (a = b) Then
Console.WriteLine("Baris 1 - a sama dengan b")
Else
Console.WriteLine("Baris 1 - a tidak sama dengan b")
End If
If (a < b) Then
Console.WriteLine("Baris 2 - a lebih kecil dari b")
Else
Console.WriteLine("Baris 2 - a tidak lebih kecil dari b")
End If
If (a > b) Then
Console.WriteLine("Baris 3 - a lebih besar dari b")
Else
Console.WriteLine("Baris 3 - a tidak lebih besar dari b")
End If
' Ubah nilai a dan b
a = 5
b = 20
If (a <= b) Then
Console.WriteLine("Baris 4 - a lebih kecil atau sama dengan b")
End If
If (b >= a) Then
Console.WriteLine("Baris 5 - b lebih besar atau sama dengan a")
End If
Console.ReadLine()
End Sub
End Module
Hasil Ketika Kode Dijalankan:
Baris 1 - a tidak sama dengan b
Baris 2 - a tidak lebih kecil dari b
Baris 3 - a lebih besar dari b
Baris 4 - a lebih kecil atau sama dengan b
Baris 5 - b lebih besar atau sama dengan a
Operator Perbandingan Tambahan di VB.Net:
Selain operator di atas, VB.Net juga menyediakan tiga operator perbandingan tambahan yang akan dibahas pada bab berikutnya, tetapi dijelaskan secara singkat di sini:
-
Is Operator
Membandingkan dua variabel referensi objek dan menentukan apakah keduanya merujuk ke objek yang sama persis.
Jika object1
dan object2
merujuk ke instansi objek yang sama, hasilnya True, jika tidak maka False.
-
IsNot Operator
Kebalikan dari Is
. Membandingkan dua referensi objek dan menentukan apakah mereka berbeda.
Jika object1
dan object2
berbeda objek, hasilnya True, jika sama maka False.
-
Like Operator
Digunakan untuk membandingkan string terhadap sebuah pola (pattern).
Operator Logika/Bitwise
Tabel berikut menunjukkan semua operator logika yang didukung oleh VB.Net. Misalkan variabel A bernilai Boolean True dan variabel B bernilai Boolean False, maka −
Operator | Deskripsi | Contoh |
---|
And | Ini adalah operator logika sekaligus bitwise AND. Jika kedua operand bernilai true, maka kondisi menjadi true. Operator ini tidak melakukan short-circuiting, artinya mengevaluasi kedua ekspresi. | (A And B) adalah False. |
Or | Ini adalah operator logika sekaligus bitwise OR. Jika salah satu dari dua operand bernilai true, maka kondisi menjadi true. Operator ini juga tidak melakukan short-circuiting. | (A Or B) adalah True. |
Not | Ini adalah operator logika sekaligus bitwise NOT. Digunakan untuk membalik keadaan logika dari operand-nya. Jika kondisi true, maka operator NOT akan membuatnya menjadi false. | Not(A And B) adalah True. |
Xor | Ini adalah operator logika sekaligus bitwise Logical Exclusive OR. Menghasilkan False jika kedua ekspresi True atau kedua ekspresi False; jika tidak, menghasilkan True. Tidak melakukan short-circuiting. | A Xor B adalah True. |
AndAlso | Ini adalah operator logika AND. Hanya bekerja pada data Boolean dan melakukan short-circuiting. | (A AndAlso B) adalah False. |
OrElse | Ini adalah operator logika OR. Hanya bekerja pada data Boolean dan melakukan short-circuiting. | (A OrElse B) adalah True. |
IsFalse | Menentukan apakah sebuah ekspresi bernilai False. |
IsTrue | Menentukan apakah sebuah ekspresi bernilai True. |
Cobalah contoh berikut untuk memahami semua operator logika/bitwise yang tersedia di VB.Net:
Module logicalOp
Sub Main()
Dim a As Boolean = True
Dim b As Boolean = True
Dim c As Integer = 5
Dim d As Integer = 20
'Pengecekan logika And, Or dan Xor
If (a And b) Then
Console.WriteLine("Baris 1 - Kondisi benar")
End If
If (a Or b) Then
Console.WriteLine("Baris 2 - Kondisi benar")
End If
If (a Xor b) Then
Console.WriteLine("Baris 3 - Kondisi benar")
End If
'Pengecekan bitwise And, Or dan Xor
If (c And d) Then
Console.WriteLine("Baris 4 - Kondisi benar")
End If
If (c Or d) Then
Console.WriteLine("Baris 5 - Kondisi benar")
End If
If (c Or d) Then
Console.WriteLine("Baris 6 - Kondisi benar")
End If
'Hanya operator logika
If (a AndAlso b) Then
Console.WriteLine("Baris 7 - Kondisi benar")
End If
If (a OrElse b) Then
Console.WriteLine("Baris 8 - Kondisi benar")
End If
'ubah nilai dari a dan b
a = False
b = True
If (a And b) Then
Console.WriteLine("Baris 9 - Kondisi benar")
Else
Console.WriteLine("Baris 9 - Kondisi tidak benar")
End If
If (Not (a And b)) Then
Console.WriteLine("Baris 10 - Kondisi benar")
End If
Console.ReadLine()
End Sub
End Module
Ketika kode di atas dikompilasi dan dijalankan, akan menghasilkan output sebagai berikut:
Baris 1 - Kondisi benar
Baris 2 - Kondisi benar
Baris 3 - Kondisi benar
Baris 4 - Kondisi benar
Baris 5 - Kondisi benar
Baris 6 - Kondisi benar
Baris 7 - Kondisi benar
Baris 8 - Kondisi benar
Baris 9 - Kondisi tidak benar
Baris 10 - Kondisi benar
Operator Pergeseran Bit (bit shift)
Misalkan variabel A bernilai 60 dan variabel B bernilai 13, maka −
Operator | Deskripsi | Contoh |
---|
And | Operator AND bitwise menyalin bit ke hasil jika bit tersebut ada di kedua operand. | (A AND B) akan menghasilkan 12, yaitu 0000 1100 |
Or | Operator OR biner menyalin bit jika bit tersebut ada di salah satu operand. | (A Or B) akan menghasilkan 61, yaitu 0011 1101 |
Xor | Operator XOR biner menyalin bit jika bit tersebut ada di salah satu operand saja tetapi tidak di keduanya. | (A Xor B) akan menghasilkan 49, yaitu 0011 0001 |
Not | Operator komplemen satu biner (Unary) yang membalik semua bit. | (Not A) akan menghasilkan -61, yaitu 1100 0011 dalam bentuk komplemen dua karena bilangan biner bertanda. |
<< | Operator Pergeseran Kiri Biner. Nilai operand kiri digeser ke kiri sebanyak jumlah bit yang ditentukan oleh operand kanan. | A << 2 akan menghasilkan 240, yaitu 1111 0000 |
>> | Operator Pergeseran Kanan Biner. Nilai operand kiri digeser ke kanan sebanyak jumlah bit yang ditentukan oleh operand kanan. | A >> 2 akan menghasilkan 15, yaitu 0000 1111 |
Coba contoh berikut untuk memahami semua operator bitwise yang tersedia di VB.Net:
Module BitwiseOp
Sub Main()
Dim a As Integer = 60 ' 60 = 0011 1100
Dim b As Integer = 13 ' 13 = 0000 1101
Dim c As Integer = 0
c = a And b ' 12 = 0000 1100
Console.WriteLine("Baris 1 - Nilai c adalah {0}", c)
c = a Or b ' 61 = 0011 1101
Console.WriteLine("Baris 2 - Nilai c adalah {0}", c)
c = a Xor b ' 49 = 0011 0001
Console.WriteLine("Baris 3 - Nilai c adalah {0}", c)
c = Not a ' -61 = 1100 0011
Console.WriteLine("Baris 4 - Nilai c adalah {0}", c)
c = a << 2 ' 240 = 1111 0000
Console.WriteLine("Baris 5 - Nilai c adalah {0}", c)
c = a >> 2 ' 15 = 0000 1111
Console.WriteLine("Baris 6 - Nilai c adalah {0}", c)
Console.ReadLine()
End Sub
End Module
Ketika kode di atas dikompilasi dan dijalankan, hasil yang dihasilkan adalah:
Baris 1 - Nilai c adalah 12
Baris 2 - Nilai c adalah 61
Baris 3 - Nilai c adalah 49
Baris 4 - Nilai c adalah -61
Baris 5 - Nilai c adalah 240
Baris 6 - Nilai c adalah 15
Operator Penugasan (assignment)
VB.Net mendukung operator penugasan (assignment operators) berikut:
Operator | Deskripsi | Contoh |
---|
= | Operator penugasan sederhana, menetapkan nilai dari operand kanan ke operand kiri. | C = A + B akan menetapkan hasil dari A + B ke C |
+= | Operator penambahan dan penugasan. Menambahkan operand kanan ke operand kiri dan menetapkan hasilnya ke operand kiri. | C += A sama dengan C = C + A |
-= | Operator pengurangan dan penugasan. Mengurangi operand kanan dari operand kiri dan menetapkan hasilnya ke operand kiri. | C -= A sama dengan C = C - A |
*= | Operator perkalian dan penugasan. Mengalikan operand kanan dengan operand kiri dan menetapkan hasilnya ke operand kiri. | C *= A sama dengan C = C * A |
/= | Operator pembagian dan penugasan. Membagi operand kiri dengan operand kanan dan menetapkan hasilnya ke operand kiri (pembagian pecahan). | C /= A sama dengan C = C / A |
\= | Operator pembagian bulat dan penugasan. Membagi operand kiri dengan operand kanan secara integer dan menetapkan hasilnya ke operand kiri. | C \= A sama dengan C = C \ A |
^= | Operator perpangkatan dan penugasan. Menaikkan operand kiri ke pangkat operand kanan dan menetapkan hasilnya ke operand kiri. | C ^= A sama dengan C = C ^ A |
<<= | Operator pergeseran kiri dan penugasan. | C <<= 2 sama dengan C = C << 2 |
>>= | Operator pergeseran kanan dan penugasan. | C >>= 2 sama dengan C = C >> 2 |
&= | Menggabungkan ekspresi string ke variabel atau properti string dan menetapkan hasilnya. | Str1 &= Str2 sama dengan Str1 = Str1 & Str2 |
Contoh
Coba contoh berikut untuk memahami semua operator penugasan yang tersedia di VB.Net:
Module assignment
Sub Main()
Dim a As Integer = 21
Dim pow As Integer = 2
Dim str1 As String = "Hello! "
Dim str2 As String = "VB Programmers"
Dim c As Integer
c = a
Console.WriteLine("Baris 1 - Contoh Operator =, Nilai c = {0}", c)
c += a
Console.WriteLine("Baris 2 - Contoh Operator +=, Nilai c = {0}", c)
c -= a
Console.WriteLine("Baris 3 - Contoh Operator -=, Nilai c = {0}", c)
c *= a
Console.WriteLine("Baris 4 - Contoh Operator *=, Nilai c = {0}", c)
c /= a
Console.WriteLine("Baris 5 - Contoh Operator /=, Nilai c = {0}", c)
c = 20
c ^= pow
Console.WriteLine("Baris 6 - Contoh Operator ^=, Nilai c = {0}", c)
c <<= 2
Console.WriteLine("Baris 7 - Contoh Operator <<=, Nilai c = {0}", c)
c >>= 2
Console.WriteLine("Baris 8 - Contoh Operator >>=, Nilai c = {0}", c)
str1 &= str2
Console.WriteLine("Baris 9 - Contoh Operator &=, Nilai str1 = {0}", str1)
Console.ReadLine()
End Sub
End Module
Ketika kode di atas dikompilasi dan dijalankan, maka akan menghasilkan output berikut:
Baris 1 - Contoh Operator =, Nilai c = 21
Baris 2 - Contoh Operator +=, Nilai c = 42
Baris 3 - Contoh Operator -=, Nilai c = 21
Baris 4 - Contoh Operator *=, Nilai c = 441
Baris 5 - Contoh Operator /=, Nilai c = 21
Baris 6 - Contoh Operator ^=, Nilai c = 400
Baris 7 - Contoh Operator <<=, Nilai c = 1600
Baris 8 - Contoh Operator >>=, Nilai c = 400
Baris 9 - Contoh Operator &=, Nilai str1 = Hello! VB Programmers
Operator Lain-Lain (miscellanous)
Beberapa operator penting lainnya yang didukung oleh VB.Net:
Operator | Deskripsi | Contoh |
---|
AddressOf | Mengembalikan alamat dari sebuah prosedur. Digunakan untuk menunjuk ke prosedur saat menetapkan event handler. | AddHandler Button1.Click, AddressOf Button1_Click |
Await | Diterapkan pada operand di dalam metode atau ekspresi lambda asinkron, untuk menunda eksekusi metode hingga tugas (Task ) yang ditunggu selesai. | vb Dim result As res = Await AsyncMethodThatReturnsResult() Await AsyncMethod() |
GetType | Mengembalikan objek Type untuk tipe yang ditentukan. Objek Type menyediakan informasi seperti properti, metode, dan event dari tipe tersebut. | MsgBox(GetType(Integer).ToString()) |
Ekspresi Fungsi (Function Expression ) | Mendeklarasikan parameter dan kode yang mendefinisikan ekspresi lambda fungsi (fungsi anonim). | vb Dim add5 = Function(num As Integer) num + 5 Console.WriteLine(add5(5)) ' hasilnya 10 |
If | Menggunakan evaluasi pendek (short-circuit) untuk secara kondisional mengembalikan salah satu dari dua nilai. Dapat dipanggil dengan dua atau tiga argumen. | vb Dim num = 5 Console.WriteLine(If(num >= 0, "Positif", "Negatif")) |
Contoh
Contoh berikut menunjukkan penggunaan beberapa operator di atas:
Module assignment
Sub Main()
Dim a As Integer = 21
' Menampilkan tipe data menggunakan GetType
Console.WriteLine(GetType(Integer).ToString())
Console.WriteLine(GetType(Double).ToString())
Console.WriteLine(GetType(String).ToString())
' Fungsi lambda untuk mengalikan angka dengan 5
Dim multiplywith5 = Function(num As Integer) num * 5
Console.WriteLine(multiplywith5(5))
' Menggunakan operator If untuk mengevaluasi nilai a
Console.WriteLine(If(a >= 0, "Positif", "Negatif"))
Console.ReadLine()
End Sub
End Module
Ketika kode di atas dikompilasi dan dijalankan, hasilnya adalah:
System.Int32
System.Double
System.String
25
Positif
Mantap kan yaa? Jadi kita bisa explorasi lagi lebih dalam untuk implementasinya sebentar lagi. Oopps, ada 1 lagi…
Precedensi Operator di VB.Net
Precedensi operator menentukan pengelompokan istilah dalam sebuah ekspresi. Ini memengaruhi bagaimana ekspresi tersebut dievaluasi. Beberapa operator memiliki precedensi yang lebih tinggi dibandingkan operator lainnya; misalnya, operator perkalian memiliki precedensi yang lebih tinggi daripada operator penjumlahan.
Sebagai contoh, dalam ekspresi x = 7 + 3 * 2;
di sini, x
akan diberi nilai 13, bukan 20, karena operator *
memiliki precedensi lebih tinggi daripada +
, sehingga operasi perkalian 3 * 2
dilakukan terlebih dahulu, kemudian hasilnya ditambahkan ke 7.
Di sini, operator dengan precedensi tertinggi muncul di bagian atas tabel, sementara operator dengan precedensi terendah muncul di bagian bawah. Dalam sebuah ekspresi, operator dengan precedensi lebih tinggi akan dievaluasi terlebih dahulu.
Operator | Precedensi |
---|
Await | Tertinggi |
Exponentiation (^) |
Unary identity and negation (+, -) |
Multiplication and floating-point division (*, /) |
Integer division () |
Modulus arithmetic (Mod) |
Addition and subtraction (+, -) |
Arithmetic bit shift (>) |
All comparison operators (=, <>, <, <=, >, >=, Is, IsNot, Like, TypeOf…Is) |
Negation (Not) |
Conjunction (And, AndAlso) |
Inclusive disjunction (Or, OrElse) |
Exclusive disjunction (Xor) | Terendah |
Contoh
Contoh berikut menunjukkan precedensi operator dengan cara yang sederhana:
Module assignment
Sub Main()
Dim a As Integer = 20
Dim b As Integer = 10
Dim c As Integer = 15
Dim d As Integer = 5
Dim e As Integer
e = (a + b) * c / d ' ( 30 * 15 ) / 5
Console.WriteLine("Value of (a + b) * c / d is : {0}", e)
e = ((a + b) * c) / d ' (30 * 15 ) / 5
Console.WriteLine("Value of ((a + b) * c) / d is : {0}", e)
e = (a + b) * (c / d) ' (30) * (15/5)
Console.WriteLine("Value of (a + b) * (c / d) is : {0}", e)
e = a + (b * c) / d ' 20 + (150/5)
Console.WriteLine("Value of a + (b * c) / d is : {0}", e)
Console.ReadLine()
End Sub
End Module
Ketika kode di atas dikompilasi dan dijalankan, hasil yang dihasilkan adalah sebagai berikut:
Value of (a + b) * c / d is : 90
Value of ((a + b) * c) / d is : 90
Value of (a + b) * (c / d) is : 90
Value of a + (b * c) / d is : 50
Okay alhamdulillah operator kelar juga! Next … move ‘on!