Decision Making (Pengambilan Keputusan)

Struktur pengambilan keputusan memerlukan programmer untuk menentukan satu atau lebih kondisi yang akan dievaluasi atau diuji oleh program, beserta pernyataan atau pernyataan yang akan dijalankan jika kondisi tersebut dianggap benar, dan opsional, pernyataan lain yang akan dijalankan jika kondisi tersebut dianggap salah.

Berikut adalah bentuk umum dari struktur pengambilan keputusan yang ditemukan di sebagian besar bahasa pemrograman −

Decision making statements in VB.Net

Bisa juga dengan tambahan else

VB.Net if...else statement

VB.Net menyediakan jenis pernyataan pengambilan keputusan berikut. Klik tautan berikut untuk memeriksa detailnya.

IF Else Statement

Ini adalah bentuk pernyataan kontrol yang paling sederhana, sering digunakan dalam pengambilan keputusan dan mengubah alur kontrol eksekusi program. Sintaks untuk pernyataan if-then adalah −

If kondisi Then
 [Pernyataan]
 End If

Di mana, kondisi adalah kondisi Boolean atau relasional dan Pernyataan adalah pernyataan sederhana atau komposit. Contoh dari pernyataan If-Then adalah −

If (a <= 20) Then
 c = c + 1
 End If

Jika kondisi dievaluasi menjadi benar, maka blok kode di dalam pernyataan If akan dieksekusi. Jika kondisi dievaluasi menjadi salah, maka set kode pertama setelah akhir pernyataan If (setelah End If yang ditutup) akan dieksekusi.

Contoh :

Modul Decisions
 Sub Main()
 'definisi variabel lokal
 Dim a As Integer = 10
  'periksa kondisi boolean menggunakan pernyataan if  
  If (a < 20) Then  
     'jika kondisi benar, maka cetak yang berikut ini  
     Console.WriteLine("a kurang dari 20")  
  End If  
  Console.WriteLine("nilai dari a adalah : {0}", a)  
  Console.ReadLine()  
End Sub
End Modul

Saat kode di atas dikompilasi dan dijalankan, hasil yang akan muncul adalah −

a kurang dari 20
nilai dari a adalah : 10

Contoh Lain:

Modul keputusan
 Sub Main()
 'definisi variabel lokal
 Dim a As Integer = 100
 'periksa kondisi boolean menggunakan pernyataan if  
  If (a < 20) Then  
      'jika kondisi benar, maka cetak yang berikut  
      Console.WriteLine("a kurang dari 20")  
  Else  
      'jika kondisi salah, maka cetak yang berikut  
      Console.WriteLine("a tidak kurang dari 20")  
  End If  
  Console.WriteLine("nilai dari a adalah : {0}", a)  
  Console.ReadLine()
End Sub
 End Modul  

Saat kode di atas dikompilasi dan dijalankan, hasil yang ditampilkan adalah :

a tidak kurang dari 20
nilai dari a adalah : 100

Select Case Statement

Pernyataan Select Case memungkinkan sebuah variabel diuji untuk kesetaraan terhadap daftar nilai. Setiap nilai disebut sebagai case, dan variabel yang diperiksa akan dicek terhadap setiap select case.

Alurnya kurang lebih begini :

select case statement in VB.Net

Sintaks

Sintaks untuk pernyataan Select Case dalam VB.Net adalah sebagai berikut:

Select [ Case ] ekspresi
   [ Case daftarEkspresi
      [ pernyataan ] ]
   [ Case Else
      [ pernyataanLain ] ]
End Select

Keterangan:

  • ekspresi − adalah sebuah ekspresi yang harus dievaluasi menjadi salah satu tipe data dasar di VB.Net, yaitu: Boolean, Byte, Char, Date, Double, Decimal, Integer, Long, Object, SByte, Short, Single, String, UInteger, ULong, dan UShort.
  • daftarEkspresi − Daftar klausa ekspresi yang mewakili nilai-nilai yang cocok untuk ekspresi utama. Beberapa klausa ekspresi dipisahkan dengan koma.
  • pernyataan − Pernyataan yang mengikuti Case dan dijalankan jika ekspresi cocok dengan salah satu klausa dalam daftarEkspresi.
  • pernyataanLain − Pernyataan yang mengikuti Case Else dan dijalankan jika ekspresi tidak cocok dengan klausa manapun dalam daftarEkspresi dari pernyataan Case manapun.

Penggunaan Simbol Operator

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:

OperatorDeskripsiContoh
^Mengangkat satu operand ke pangkat operand lainnyaB ^ A menghasilkan 49
+Menjumlahkan dua operandA + B menghasilkan 9
-Mengurangkan operand kedua dari yang pertamaA - B menghasilkan -5
*Mengalikan kedua operandA * B menghasilkan 14
/Membagi satu operand dengan operand lain dan menghasilkan angka pecahanB / A menghasilkan 3.5
\Membagi satu operand dengan operand lain dan menghasilkan angka bulat (integer)B \ A menghasilkan 3
MODOperator modulus; menghasilkan sisa pembagian bilangan bulatB 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:

OperatorDeskripsiContoh
=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 −

OperatorDeskripsiContoh
AndIni 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.
OrIni 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.
NotIni 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.
XorIni 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.
AndAlsoIni adalah operator logika AND. Hanya bekerja pada data Boolean dan melakukan short-circuiting.(A AndAlso B) adalah False.
OrElseIni adalah operator logika OR. Hanya bekerja pada data Boolean dan melakukan short-circuiting.(A OrElse B) adalah True.
IsFalseMenentukan apakah sebuah ekspresi bernilai False.
IsTrueMenentukan 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 −

OperatorDeskripsiContoh
AndOperator AND bitwise menyalin bit ke hasil jika bit tersebut ada di kedua operand.(A AND B) akan menghasilkan 12, yaitu 0000 1100
OrOperator OR biner menyalin bit jika bit tersebut ada di salah satu operand.(A Or B) akan menghasilkan 61, yaitu 0011 1101
XorOperator 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
NotOperator 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:

OperatorDeskripsiContoh
=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:

OperatorDeskripsiContoh
AddressOfMengembalikan alamat dari sebuah prosedur. Digunakan untuk menunjuk ke prosedur saat menetapkan event handler.AddHandler Button1.Click, AddressOf Button1_Click
AwaitDiterapkan 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()
GetTypeMengembalikan 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
IfMenggunakan 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.

OperatorPrecedensi
AwaitTertinggi
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!

Directive

Aslina Directive tapi kalo kita di Indo bilangnya ‘Direktif’. Lucu ya? Ga papa yang jelas bisa difahami.

Direktif kompilator VB.Net memberikan instruksi kepada kompilator untuk memproses informasi terlebih dahulu sebelum kompilasi yang sebenarnya dimulai. Semua direktif ini diawali dengan tanda #, dan hanya karakter spasi putih (whitespace) yang boleh muncul sebelum direktif pada satu baris. Direktif-direktif ini bukan merupakan pernyataan kode (statements).

VB.Net tidak memiliki preprocessor terpisah; namun, direktif-direktif ini diproses seolah-olah ada preprocessor. Dalam VB.Net, direktif kompilator digunakan untuk membantu dalam kompilasi bersyarat (conditional compilation). Berbeda dengan direktif pada bahasa C dan C++, direktif ini tidak digunakan untuk membuat makro.


Direktif Kompilator dalam VB.Net

VB.Net menyediakan kumpulan direktif kompilator berikut:

  • Direktif #Const
  • Direktif #ExternalSource
  • Direktif #If...Then...#Else
  • Direktif #Region

Direktif #Const

Direktif ini digunakan untuk mendefinisikan konstanta kompilator bersyarat. Sintaksnya adalah:

#Const nama_konstanta = ekspresi

Keterangan:

  • nama_konstanta → menentukan nama konstanta (wajib).
  • ekspresi → bisa berupa nilai literal, konstanta kompilator lainnya, atau kombinasi dengan operator aritmatika/logika kecuali Is.

Contoh:

#Const state = "WEST BENGAL"

Contoh Penggunaan:

 Module mydirectives
#Const age = True

Sub Main()
   #If age Then
      Console.WriteLine("Selamat datang di Klub Robotik")
   #End If
   Console.ReadKey()
End Sub
End Module 

Hasil saat dijalankan:

Selamat datang di Klub Robotik

Direktif #ExternalSource

Direktif ini digunakan untuk menunjukkan pemetaan antara baris kode sumber tertentu dan teks eksternal di luar sumber. Ini hanya digunakan oleh kompilator, dan tidak berpengaruh pada proses kompilasi kode oleh debugger.

Direktif ini memungkinkan penyisipan kode eksternal dari file kode eksternal ke dalam file kode sumber.

Sintaks:

 #ExternalSource("path_file", nomor_baris_awal)
   [ baris_logis ]
#End ExternalSource
 

Parameter dari direktif ini adalah:

  • Path file eksternal
  • Nomor baris pertama
  • Nomor baris tempat kesalahan terjadi (jika ada)

Contoh Penggunaan:

 Module mydirectives
   Public Class ExternalSourceTester
      Sub TestExternalSource()
      #ExternalSource("c:\vbprogs\directives.vb", 5)
         Console.WriteLine("Ini adalah Kode Eksternal.")
      #End ExternalSource
      End Sub
   End Class

   Sub Main()
      Dim t As New ExternalSourceTester()
      t.TestExternalSource()
      Console.WriteLine("Di dalam Main.")
      Console.ReadKey()
   End Sub
End Module 

Hasil saat dijalankan:

Ini adalah Kode Eksternal.
Di dalam Main.

Direktif #If...Then...#Else

Direktif ini digunakan untuk mengkompilasi blok kode VB tertentu secara bersyarat.

Sintaks:

 #If ekspresi Then
   pernyataan
[ #ElseIf ekspresi Then
   [ pernyataan ] ]
...
[ #Else
   [ pernyataan ] ]
#End If
 

Contoh definisi kondisi:

 #Const TargetOS = "Linux"

#If TargetOS = "Windows 7" Then
   ' Kode khusus untuk Windows 7
#ElseIf TargetOS = "WinXP" Then
   ' Kode khusus untuk Windows XP
#Else
   ' Kode untuk OS lainnya
#End If 

Contoh Penggunaan:

 Module mydirectives
#Const classCode = 8

Sub Main()
   #If classCode = 7 Then
      Console.WriteLine("Soal Ujian untuk Kelas VII")
   #ElseIf classCode = 8 Then
      Console.WriteLine("Soal Ujian untuk Kelas VIII")
   #Else
      Console.WriteLine("Soal Ujian untuk Kelas Lebih Tinggi")
   #End If
   Console.ReadKey()
End Sub
End Module 

Hasil saat dijalankan:

Soal Ujian untuk Kelas VIII

Direktif #Region

Direktif ini digunakan untuk melipat (collapse) dan menyembunyikan bagian kode dalam file Visual Basic, berguna untuk membuat kode lebih rapi.

Sintaks:

 #Region "nama_region"
   ' Kode di sini
#End Region
 

Contoh:

 #Region "FungsiStatistik"
   ' Masukkan kode untuk fungsi statistik di sini.
#End Region 

Nah itu tuh tadi pembahasan tentang ‘Directive’ alias ‘Direktif’. Bukan Detektif ya awas lho!

Statement

Statement bisa dibilang sebagai instruksi lengkap dalam program VB.Net. Statement dapat berisi:

  • Keyword
  • Operator
  • Variabel
  • Nilai literal
  • Konstanta
  • Ekspresi

Jenis Statement:

  1. Declaration Statements
    Digunakan untuk mendeklarasikan dan mendefinisikan elemen seperti variabel, konstanta, prosedur, dan sebagainya.
  2. Executable Statements
    Menjalankan aksi seperti pemanggilan metode, perulangan, percabangan, atau assignment.

Declaration Statements

  • Dim Statement

Mendeklarasikan dan mengalokasikan ruang penyimpanan untuk satu atau lebih variabel.

Contoh :

 Dim number As Integer
Dim quantity As Integer = 100
Dim message As String = "Hello!"
 
  • Const Statement

Mendeklarasikan dan mendefinisikan satu atau lebih konstanta.

Contoh:

 Const maximum As Long = 1000
Const naturalLogBase As Object = CDec(2.7182818284)
 
  • Enum Statement

Mendeklarasikan sebuah enumerasi dan mendefinisikan nilai-nilai dari anggotanya.

Contoh :

 Enum CoffeeMugSize
   Jumbo
   ExtraLarge
   Large
   Medium
   Small
End Enum  
  • Class Statement

Mendeklarasikan nama sebuah kelas dan memperkenalkan definisi dari variabel, properti, event, dan prosedur yang terdapat dalam kelas tersebut.

Contoh:

 Class Box
Public length As Double
Public breadth As Double   
Public height As Double
End Class 
  • Structure Statement

Mendeklarasikan nama sebuah struktur dan memperkenalkan definisi dari variabel, properti, event, dan prosedur yang terdapat dalam struktur tersebut.

Contoh :

 Structure Box
Public length As Double           
Public breadth As Double   
Public height As Double
End Structure 
  • Module Statement

Mendeklarasikan nama sebuah modul dan memperkenalkan definisi dari variabel, properti, event, dan prosedur yang terdapat dalam modul tersebut.

Contoh :

 Public Module myModule
Sub Main()
Dim user As String = 
InputBox("What is your name?") 
MsgBox("User name is" & user)
End Sub 
End Module 
  • Interface Statement

Mendeklarasikan nama sebuah antarmuka (interface) dan memperkenalkan definisi dari anggota-anggota (members) yang termasuk dalam antarmuka tersebut.

Contoh :

 Public Interface MyInterface
   Sub doSomething()
End Interface  
  • Function Statement

Mendeklarasikan nama, parameter, dan kode yang mendefinisikan sebuah prosedur Fungsi (Function).

Contoh:

 Function myFunction
(ByVal n As Integer) As Double 
   Return 5.87 * n
End Function 
  • Sub Statement

Menyatakan nama, parameter, dan kode yang mendefinisikan suatu prosedur Sub.

Contoh:

 Sub mySub(ByVal s As String)
   Return
End Sub 
  • Declare Statement

Menyatakan referensi ke suatu prosedur yang diimplementasikan dalam file eksternal.

Contoh :

 Declare Function getUserName
Lib "advapi32.dll" 
Alias "GetUserNameA" 
(
   ByVal lpBuffer As String, 
   ByRef nSize As Integer) As Integer  
  • Operator Statement

Menyatakan simbol operator, operan, dan kode yang mendefinisikan prosedur operator pada sebuah kelas atau struktur.

Contoh :

 Public Shared Operator +
(ByVal x As obj, ByVal y As obj) As obj
   Dim r As New obj
' implemention code for r = x + y
   Return r
End Operator  
  • Property Statement

Menyatakan nama sebuah properti, serta prosedur-prosedur properti yang digunakan untuk menyimpan dan mengambil nilai dari properti tersebut.

Contoh :

 ReadOnly Property quote() As String 
   Get 
      Return quoteString
   End Get 
End Property 
  • Event Statement

Menyatakan sebuah event yang didefinisikan oleh pengguna.

Contoh:

 Public Event Finished() 
  • Delegate Statement

Digunakan untuk menyatakan sebuah delegasi (delegate).

Contoh :

 Delegate Function MathOperator( 
   ByVal x As Double, 
   ByVal y As Double 
) As Double  

Executable Statements

Melakukan aksi seperti:

  • Memanggil metode/fungsi
  • Melakukan perulangan (For, While, dll)
  • Percabangan (If, Select Case)
  • Assign nilai (=)

Contoh:

 Module DecisionExample
   Sub Main()
      Dim a As Integer = 10
      If a < 20 Then
         Console.WriteLine("a kurang dari 20")
      End If
      Console.WriteLine("Nilai a yaitu: {0}", a)
   End Sub
End Module

Output:

a kurang dari 20
Nilai a yaitu: 10

Ok sekarang sudah mulai mengerti kan? Kalo udah sampe sini itu udah lumayan. Tapi kalo ada yang mulai keblinger... coba deh... ambil sesi konsultasi IT bareng expert nya disini.


Cara Akses Variable (Modifier)

Modifier adalah kata kunci yang ditambahkan pada elemen pemrograman apa pun untuk memberikan penekanan khusus tentang bagaimana elemen tersebut akan berperilaku atau diakses dalam program.

Sebagai contoh, modifier akses seperti: Public, Private, Protected, Friend, Protected Friend, dan lain-lain menunjukkan tingkat akses suatu elemen pemrograman seperti variabel, konstanta, enumerasi, atau kelas.


Daftar Modifier yang Tersedia di VB.Net

No.ModifierDeskripsi
1AnsiMenentukan bahwa Visual Basic harus mengonversi semua string ke nilai ANSI (American National Standards Institute) terlepas dari nama prosedur eksternal yang dideklarasikan.
2AssemblyMenentukan bahwa atribut di awal file sumber berlaku untuk seluruh assembly.
3AsyncMenunjukkan bahwa metode atau ekspresi lambda yang dimodifikasi bersifat asynchronous (tidak sinkron). Pemanggil metode async dapat melanjutkan pekerjaannya tanpa harus menunggu metode tersebut selesai.
4AutoDigunakan dalam pernyataan Declare untuk mengatur cara Visual Basic mengelola string saat memanggil prosedur eksternal, dan juga mempengaruhi bagaimana pencarian nama prosedur dilakukan dalam file eksternal.
5ByRefMenentukan bahwa argumen dikirimkan sebagai referensi, sehingga prosedur yang dipanggil dapat mengubah nilainya.
6ByValMenentukan bahwa argumen dikirimkan sebagai nilai, sehingga prosedur yang dipanggil tidak dapat mengubah nilai aslinya.
7DefaultMenetapkan properti sebagai properti default dalam kelas, struktur, atau antarmuka.
8FriendElemen pemrograman yang dideklarasikan dengan Friend hanya dapat diakses dari dalam assembly yang sama. Ini adalah level akses default untuk modul, kelas, struktur, dan antarmuka.
9InDigunakan dalam antarmuka dan delegasi generik.
10IteratorMenentukan bahwa fungsi atau accessor Get adalah iterator, yaitu melakukan iterasi kustom terhadap koleksi.
11KeyDigunakan untuk menentukan perilaku properti dalam tipe anonim.
12ModuleMenentukan bahwa atribut di awal file sumber berlaku untuk modul assembly saat ini (berbeda dengan pernyataan Module).
13MustInheritMenunjukkan bahwa kelas hanya bisa digunakan sebagai kelas dasar (tidak bisa langsung diinstansiasi).
14MustOverrideMenunjukkan bahwa properti atau prosedur tidak diimplementasikan dalam kelas ini dan harus dioverride di kelas turunan.
15NarrowingMenunjukkan bahwa konversi tipe bisa kehilangan beberapa data, misalnya mengkonversi kelas ke tipe yang tidak bisa menampung semua nilainya.
16NotInheritableMenunjukkan bahwa kelas tidak bisa digunakan sebagai kelas dasar.
17NotOverridableMenunjukkan bahwa properti atau prosedur tidak bisa dioverride di kelas turunan.
18OptionalMenunjukkan bahwa argumen prosedur bisa dihilangkan saat pemanggilan.
19OutDigunakan untuk parameter tipe generik yang bersifat covariant.
20OverloadsMenunjukkan bahwa properti atau prosedur mendeklarasikan ulang satu atau lebih prosedur/properti dengan nama yang sama.
21OverridableMenunjukkan bahwa properti atau prosedur bisa dioverride oleh turunan.
22OverridesMenunjukkan bahwa properti atau prosedur mengoverride elemen identik dari kelas dasar.
23ParamArrayMengizinkan prosedur menerima sejumlah argumen yang tidak ditentukan (array parameter).
24PartialMenunjukkan bahwa deklarasi kelas atau struktur adalah definisi parsial (terpisah dalam beberapa file).
25PrivateMenunjukkan bahwa elemen pemrograman hanya bisa diakses dari dalam konteks deklarasinya.
26ProtectedMenunjukkan bahwa elemen hanya bisa diakses dari dalam kelasnya sendiri atau kelas turunan.
27PublicMenunjukkan bahwa elemen tidak memiliki batasan akses (bisa diakses dari mana saja).
28ReadOnlyVariabel atau properti hanya bisa dibaca, tidak bisa ditulis.
29ShadowsElemen yang dideklarasikan menyembunyikan elemen lain dengan nama yang sama dari kelas dasar.
30SharedMenunjukkan bahwa elemen milik seluruh kelas atau struktur, bukan pada instance tertentu.
31StaticVariabel lokal tetap mempertahankan nilainya meskipun prosedur telah selesai dijalankan.
32UnicodeMenentukan bahwa semua string harus dikonversi ke Unicode.
33WideningMenunjukkan bahwa konversi ke tipe lain akan selalu berhasil tanpa kehilangan data.
34WithEventsMenunjukkan bahwa variabel anggota menunjuk ke objek yang dapat memunculkan event.
35WriteOnlyMenunjukkan bahwa properti hanya bisa ditulis (tidak bisa dibaca).

Kita coba praktekkan di kelas ya bersama instruktur agar lebih nyaman to the point, okay?

Konstanta & Enum

Konstanta mengacu pada nilai tetap yang tidak dapat diubah oleh program selama eksekusinya. Nilai tetap ini juga disebut literal.

Konstanta dapat berupa salah satu dari tipe data dasar seperti konstanta integer, konstanta floating point, konstanta karakter, atau literal string. Juga terdapat konstanta enumerasi.

Konstanta diperlakukan seperti variabel biasa, kecuali bahwa nilainya tidak dapat diubah setelah didefinisikan.

Enumerasi adalah sekumpulan konstanta integer yang diberi nama.


Mendeklarasikan Konstanta

Dalam VB.Net, konstanta dideklarasikan menggunakan pernyataan Const. Pernyataan ini digunakan di level modul, kelas, struktur, prosedur, atau blok sebagai pengganti nilai literal.

Sintaks pernyataan Const adalah:

[ < attributelist > ] [ accessmodifier ] [ Shadows ]
Const constantlist

Penjelasan:

  • attributelist – daftar atribut yang diterapkan pada konstanta. Opsional.
  • accessmodifier – menentukan aksesibilitas konstanta. Bisa berupa Public, Protected, Friend, Protected Friend, atau Private. Opsional.
  • Shadows – menyembunyikan elemen pemrograman dengan nama yang sama di kelas induk. Opsional.
  • constantlist – daftar nama konstanta yang dideklarasikan. Wajib.

Setiap nama konstanta memiliki sintaks berikut:

constantname [ As datatype ] = initializer

Contoh:

 'Pernyataan berikut mendeklarasikan konstanta.'
Const maxval As Long = 4999
Public Const message As String = "HELLO"
Private Const piValue As Double = 3.1415

Contoh Penggunaan Konstanta

 Module constantsNenum
   Sub Main()
      Const PI = 3.14149
      Dim radius, area As Single
      radius = 7
      area = PI * radius * radius
      Console.WriteLine("Luas = " & Str(area))
      Console.ReadKey()
   End Sub
End Module

Output:

Luas =  153.933

Konstanta Cetak dan Tampilan dalam VB.Net

VB.Net menyediakan beberapa konstanta untuk cetak dan tampilan:

NoKonstantaDeskripsi
1vbCrLfKombinasi karakter carriage return dan linefeed.
2vbCrKarakter carriage return.
3vbLfKarakter linefeed.
4vbNewLineKarakter baris baru.
5vbNullCharKarakter null.
6vbNullStringBukan string kosong (""), digunakan untuk prosedur eksternal.
7vbObjectErrorNomor kesalahan pengguna. Digunakan seperti Err.Raise(Number) = vbObjectError + 1000.
8vbTabKarakter tab.
9vbBackKarakter backspace.

Mendeklarasikan Enumerasi

Tipe enumerasi dideklarasikan menggunakan pernyataan Enum. Enum mendefinisikan tipe enumerasi dan anggotanya.

Sintaks pernyataan Enum:

[ < attributelist > ] [ accessmodifier ] [ Shadows ]
Enum enumerationname [ As datatype ]
   memberlist
End Enum

Penjelasan:

  • attributelist – daftar atribut (opsional).
  • accessmodifier – aksesibilitas (opsional): Public, Protected, Friend, atau Private.
  • Shadows – menyembunyikan elemen dengan nama yang sama.
  • enumerationname – nama enumerasi (wajib).
  • datatype – tipe data dari anggota enumerasi (opsional).
  • memberlist – daftar konstanta anggota (wajib).

Setiap anggota memiliki sintaks:

[ < attribute list > ] membername [ = initializer ]

Contoh:

 Enum Colors
   red = 1
   orange = 2
   yellow = 3
   green = 4
   azure = 5
   blue = 6
   violet = 7
End Enum

Contoh Penggunaan Enum

 Module constantsNenum
   Enum Colors
      red = 1
      orange = 2
      yellow = 3
      green = 4
      azure = 5
      blue = 6
      violet = 7
   End Enum
   
   Sub Main()
      Console.WriteLine("Warna Merah adalah: " & Colors.red)
      Console.WriteLine("Warna Kuning adalah: " & Colors.yellow)
      Console.WriteLine("Warna Biru adalah: " & Colors.blue)
      Console.WriteLine("Warna Hijau adalah: " & Colors.green)
      Console.ReadKey()
   End Sub
End Module

Output:

Warna Merah adalah: 1
Warna Kuning adalah: 3
Warna Biru adalah: 6
Warna Hijau adalah: 4

Nah sudah bisa menerapkan Konstanta dan Enum kan? Okay… lanjuuut!

Apa itu Variable?

Nah kita akan memasuki pembahasan tentang cara penulisan dan penggunaan Variable. Siap yaa? Okay gini…


Variabel dalam VB.Net
Variabel tidak lain adalah nama yang diberikan untuk area penyimpanan yang dapat dimanipulasi oleh program kita. Setiap variabel di VB.Net memiliki tipe tertentu, yang menentukan ukuran dan tata letak memori variabel tersebut; rentang nilai yang dapat disimpan dalam memori tersebut; dan serangkaian operasi yang dapat diterapkan pada variabel tersebut.

Kita sudah membahas berbagai tipe data. Tipe nilai dasar (basic value types) yang disediakan di VB.Net dapat dikategorikan sebagai berikut:

TipeContoh
Tipe integralSByte, Byte, Short, UShort, Integer, UInteger, Long, ULong dan Char
Tipe floating pointSingle dan Double
Tipe desimalDecimal
Tipe BooleanNilai True atau False, sesuai penugasan
Tipe tanggalDate

VB.Net juga memungkinkan pendefinisian tipe nilai lain seperti Enum, dan tipe referensi seperti Class. Kita akan membahas tipe tanggal dan Class pada bab-bab berikutnya.


Deklarasi Variabel di VB.Net

Pernyataan Dim digunakan untuk mendeklarasikan variabel dan mengalokasikan penyimpanan untuk satu atau lebih variabel. Pernyataan Dim dapat digunakan di tingkat modul, kelas, struktur, prosedur, atau blok.

Sintaks deklarasi variabel di VB.Net adalah:

[ <attributelist> ] [accessmodifier] [[Shared] [Shadows] | [Static]] [ReadOnly] Dim [WithEvents] variablelist

Penjelasan:

  • attributelist adalah daftar atribut yang berlaku untuk variabel. (Opsional)
  • accessmodifier menentukan tingkat akses variabel: Public, Protected, Friend, Protected Friend, atau Private. (Opsional)
  • Shared mendeklarasikan variabel yang dibagikan oleh semua instance kelas atau struktur. (Opsional)
  • Shadows menunjukkan bahwa variabel ini menyembunyikan elemen lain dengan nama yang sama dari kelas induk. (Opsional)
  • Static menyatakan bahwa nilai variabel akan tetap ada meskipun prosedur tempat ia dideklarasikan telah selesai dijalankan. (Opsional)
  • ReadOnly berarti variabel hanya bisa dibaca, tidak bisa ditulis. (Opsional)
  • WithEvents menentukan bahwa variabel digunakan untuk merespons event dari instance yang ditugaskan ke variabel tersebut. (Opsional)
  • variablelist adalah daftar variabel yang dideklarasikan.

Setiap variabel dalam daftar memiliki sintaks dan bagian sebagai berikut:

variablename[( [boundslist] )] [As [New] datatype] [= initializer]

Penjelasan:

  • variablename – Nama dari variabel.
  • boundslist – Opsional. Digunakan untuk batas dimensi jika variabel berupa array.
  • New – Opsional. Digunakan untuk membuat instance baru dari kelas saat pernyataan Dim dijalankan.
  • datatype – Wajib jika Option Strict diaktifkan. Menentukan tipe data variabel.
  • initializer – Opsional jika New tidak digunakan. Nilai awal yang diberikan pada saat variabel dibuat.

Contoh deklarasi variabel yang benar:

 Dim StudentID As Integer
Dim StudentName As String
Dim Salary As Double
Dim count1, count2 As Integer
Dim status As Boolean
Dim exitButton As New System.Windows.Forms.Button
Dim lastTime, nextTime As Date
 

Inisialisasi Variabel di VB.Net

Variabel dapat diinisialisasi (diberikan nilai) dengan tanda sama dengan (=) diikuti ekspresi konstan. Bentuk umumnya:

 nama_variabel = nilai

Contoh:

 Dim pi As Double
pi = 3.14159

Anda juga bisa menginisialisasi langsung saat deklarasi:

 Dim StudentID As Integer = 100
Dim StudentName As String = "Coding Keren Bro!"

Contoh

Coba contoh berikut yang menggunakan berbagai tipe variabel:

 Module variablesNdataypes
   Sub Main()
      Dim a As Short
      Dim b As Integer
      Dim c As Double
      
      a = 10
      b = 20
      c = a + b
      Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c)
      Console.ReadLine()
   End Sub
End Module

Hasil saat dijalankan:

a = 10, b = 20, c = 30

Menerima Nilai dari Pengguna

Kelas Console di namespace System menyediakan fungsi ReadLine untuk menerima input dari pengguna dan menyimpannya ke dalam variabel. Contoh:

 Dim message As String
message = Console.ReadLine

Contoh lengkap:

 Module variablesNdataypes
   Sub Main()
      Dim message As String
      Console.Write("Enter message: ")
      message = Console.ReadLine
      Console.WriteLine()
      Console.WriteLine("Your Message: {0}", message)
      Console.ReadLine()
   End Sub
End Module

Output (misalnya pengguna mengetik “Hello World”):

Enter message: Hello World   
Your Message: Hello World

Lvalues dan Rvalues

Ada dua jenis ekspresi:

  • lvalue – Ekspresi yang dapat muncul di sisi kiri maupun kanan dari sebuah penugasan (assignment).
  • rvalue – Ekspresi yang hanya dapat muncul di sisi kanan dari penugasan.

Variabel adalah lvalue dan dapat muncul di sisi kiri. Literal numerik adalah rvalue dan tidak dapat muncul di sisi kiri.

Contoh yang valid:

Dim g As Integer = 20

Contoh yang tidak valid (akan menghasilkan error saat kompilasi):

20 = g

Waaw… lumayan yah?

Data Type

Alias Jenis Datanya! Dan ini penting untuk kita bahas disini.

Tipe Data di VB.Net

Tipe data merujuk pada sistem yang luas yang digunakan untuk menyatakan variabel atau fungsi dengan tipe yang berbeda. Tipe dari suatu variabel menentukan:

  • Berapa banyak ruang yang dibutuhkan di memori.
  • Bagaimana pola bit yang disimpan ditafsirkan oleh komputer.

Tipe Data yang Tersedia di VB.Net

VB.Net menyediakan beragam tipe data. Tabel berikut menunjukkan semua tipe data yang tersedia:

Tipe DataAlokasi MemoriRentang Nilai
BooleanTergantung pada platformTrue atau False
Byte1 byte0 hingga 255 (tanpa tanda)
Char2 byte0 hingga 65535 (tanpa tanda)
Date8 byte1 Januari 0001 jam 00:00:00 hingga 31 Desember 9999 jam 23:59:59
Decimal16 byte±7.9…E+28 tanpa titik desimal; hingga 28 digit di belakang koma
Double8 byte±1.79769313486231570E+308 hingga ±4.94065645841246544E-324
Integer4 byte-2.147.483.648 hingga 2.147.483.647
Long8 byte-9.223.372.036.854.775.808 hingga 9.223.372.036.854.775.807
Object4 byte (32-bit) / 8 byte (64-bit)Menyimpan data dari tipe apa pun
SByte1 byte-128 hingga 127
Short2 byte-32.768 hingga 32.767
Single4 byte±3.4028235E+38 hingga ±1.401298E-45
StringTergantung platform0 sampai sekitar 2 miliar karakter Unicode
UInteger4 byte0 hingga 4.294.967.295
ULong8 byte0 hingga 18.446.744.073.709.551.615
User-DefinedTergantung strukturBergantung pada tipe data dari masing-masing anggota struktur
UShort2 byte0 hingga 65.535

Contoh Penggunaan Tipe Data

 Module DataTypes
   Sub Main()
      Dim b As Byte
      Dim n As Integer
      Dim si As Single
      Dim d As Double
      Dim da As Date
      Dim c As Char
      Dim s As String
      Dim bl As Boolean
      
      b = 1
      n = 1234567
      si = 0.12345678901234566
      d = 0.12345678901234566
      da = Today
      c = "S"c
      s = "iapa nih?"
      
      If ScriptEngine = "VB" Then
         bl = True
      Else
         bl = False
      End If
      
      If bl Then
         Console.Write(c & s & vbCrLf)
         Console.WriteLine("Datanya gini: {0}", da)
         Console.WriteLine("Kita Pakai VB.Net beneran ya!")
         Console.WriteLine("Hasilnya coba:")
         Console.WriteLine("Nilai Single: {0}, Nilai Double: {1}", si, d)
      End If
      
      Console.ReadKey()
   End Sub
End Module
 

Hasil keluaran:

Siapa nih?
Datanya gini: 12/4/2012 12:00:00 PM
Kita Pakai VB.Net beneran ya!
Hasilnya coba:
Nilai Single: 0.1234568, Nilai Double: 0.123456789012346

Fungsi Konversi Tipe di VB.Net

VB.Net menyediakan fungsi-fungsi bawaan untuk konversi tipe data secara langsung:

NoFungsiDeskripsi
1CBool(expression)Konversi ke Boolean
2CByte(expression)Konversi ke Byte
3CChar(expression)Konversi ke Char
4CDate(expression)Konversi ke Date
5CDbl(expression)Konversi ke Double
6CDec(expression)Konversi ke Decimal
7CInt(expression)Konversi ke Integer
8CLng(expression)Konversi ke Long
9CObj(expression)Konversi ke Object
10CSByte(expression)Konversi ke SByte
11CShort(expression)Konversi ke Short
12CSng(expression)Konversi ke Single
13CStr(expression)Konversi ke String
14CUInt(expression)Konversi ke UInteger
15CULng(expression)Konversi ke ULong
16CUShort(expression)Konversi ke UShort

Contoh Penggunaan Fungsi Konversi

 Module DataTypes
   Sub Main()
      Dim n As Integer
      Dim da As Date
      Dim bl As Boolean = True
      n = 1234567
      da = Today
      
      Console.WriteLine(bl)
      Console.WriteLine(CSByte(bl))
      Console.WriteLine(CStr(bl))
      Console.WriteLine(CStr(da))
      Console.WriteLine(CChar(CChar(CStr(n))))
      Console.WriteLine(CChar(CStr(da)))
      Console.ReadKey()
   End Sub
End Module
 

Hasil keluaran:

True
-1
True
12/4/2012
1
1 

Kira-kira sudah ada output yang menggemaskan dari Code VB.net barusan? Atau mulai penasaran gimana ya penerapannya nanti? Okay, lanjuut dulu… come ‘on…!

Basic Syntax

Dalam metodologi Pemrograman Berorientasi Objek, sebuah program terdiri dari berbagai objek yang saling berinteraksi melalui tindakan (actions). Tindakan yang dapat dilakukan oleh sebuah objek disebut metode (methods). Objek-objek dengan jenis yang sama dikatakan memiliki tipe yang sama atau, lebih sering, berada dalam kelas (class) yang sama.

Dalam program VB.Net, dapat didefinisikan bahwa program terdiri dari kumpulan objek yang berkomunikasi dengan memanggil metode satu sama lain. Sekarang mari kita bahas secara singkat apa arti dari class, object, method, dan instance variable.

  • Objek – Objek memiliki keadaan (state) dan perilaku (behavior). Contoh: seekor anjing memiliki keadaan seperti warna, nama, ras, dan perilaku seperti mengibas ekor, menggonggong, makan, dan sebagainya. Objek adalah instansi dari sebuah kelas.
  • Kelas – Kelas bisa didefinisikan sebagai cetak biru atau template yang menjelaskan perilaku dan keadaan yang didukung oleh objek dari tipe tersebut.
  • Metode – Metode pada dasarnya adalah perilaku. Sebuah kelas bisa memiliki banyak metode. Di dalam metode inilah logika ditulis, data dimanipulasi, dan seluruh tindakan dijalankan.
  • Variabel Instansi – Setiap objek memiliki serangkaian variabel instansi yang unik. Keadaan sebuah objek diciptakan dari nilai-nilai yang diberikan kepada variabel-variabel ini.

Kelas Rectangle dalam VB.Net

Sebagai contoh, mari kita pertimbangkan objek Rectangle (persegi panjang). Objek ini memiliki atribut seperti panjang dan lebar. Tergantung desainnya, mungkin diperlukan cara untuk menerima nilai atribut tersebut, menghitung luas, dan menampilkan rincian.

Berikut implementasi kelas Rectangle dalam VB.Net:

 Imports System

Public Class Rectangle
   Private length As Double
   Private width As Double

   'Metode publik
   Public Sub AcceptDetails()
      length = 4.5
      width = 3.5
   End Sub

   Public Function GetArea() As Double
      GetArea = length * width
   End Function

   Public Sub Display()
      Console.WriteLine("Length: {0}", length)
      Console.WriteLine("Width: {0}", width)
      Console.WriteLine("Area: {0}", GetArea())
   End Sub

   Shared Sub Main()
      Dim r As New Rectangle()
      r.AcceptDetails()
      r.Display()
      Console.ReadLine()
   End Sub
End Class

Saat kode di atas dikompilasi dan dijalankan, hasilnya adalah:

Length: 4.5
Width: 3.5
Area: 15.75

Penjelasan

Pada bab sebelumnya, kita membuat modul Visual Basic yang menyimpan kode. Sub Main menunjukkan titik masuk dari program VB.Net. Di sini, kita menggunakan Class yang berisi kode dan data sekaligus. Anda menggunakan class untuk membuat object. Sebagai contoh, dalam kode:

 Dim r As New Rectangle()
 

Maka r adalah sebuah objek dari kelas Rectangle.

  • Sebuah objek adalah instansi dari sebuah class.
  • Class bisa memiliki anggota (members) yang bisa diakses dari luar, jika diatur demikian.
  • Anggota data disebut field, dan anggota prosedur disebut method.
  • Metode statik (Shared) bisa dipanggil tanpa harus membuat objek dari class-nya.
  • Metode instansi hanya bisa dipanggil melalui objek.

Identifier (Penamaan)

Identifier adalah nama yang digunakan untuk mengidentifikasi class, variabel, fungsi, atau item lain yang didefinisikan pengguna. Aturan penamaan identifier dalam VB.Net:

  • Harus dimulai dengan huruf, bisa diikuti huruf, angka (0–9), atau garis bawah (_).
  • Tidak boleh dimulai dengan angka.
  • Tidak boleh mengandung spasi atau simbol seperti: ? - +! @ # % ^ & * ( ) [ ] { } . ; : " ' / \. Namun, garis bawah (_) boleh digunakan.
  • Tidak boleh menggunakan kata kunci yang sudah dipesan oleh VB.Net.

Kata Kunci VB.Net

Berikut adalah beberapa contoh kata kunci (reserved keywords) dalam VB.Net:

#1#2#3#4#5#6#7
AddHandlerAddressOfAliasAndAndAlsoAsBoolean
ByRefByteByValCallCaseCatchCBool
CByteCCharCDateCDecCDblCharCInt
ClassCLngCObjConstContinueCSByteCShort
CSngCStrCTypeCUIntCULngCUShortDate
DecimalDeclareDefaultDelegateDimDirectCastDo
DoubleEachElseElseIfEndEnd IfEnum
EraseErrorEventExitFalseFinallyFor
FriendFunctionGetGetTypeGetXMLNamespaceGlobalGoTo
HandlesIfImplementsImportsInInheritsInteger
InterfaceIsIsNotLetLibLikeLong
LoopMeModModuleMustInheritMustOverrideMyBase
MyClassNamespaceNarrowingNewNextNotNothing
NotInheritableNotOverridableObjectOfOnOperatorOption
OptionalOrOrElseOverloadsOverridableOverridesParamArray
PartialPrivatePropertyProtectedPublicRaiseEventReadOnly
ReDimREMRemoveHandlerResumeReturnSByteSelect
SetShadowsSharedShortSingleStaticStep
StopStringStructureSubSyncLockThenThrow
ToTrueTryTryCastTypeOfUIntegerWhile
WideningWithWithEventsWriteOnlyXor

Keterangan:

  • Kata kunci ini tidak dapat digunakan sebagai nama variabel, fungsi, atau class karena sudah diset oleh VB.Net.
  • Sebagian besar keyword ini digunakan dalam berbagai konstruksi pemrograman seperti pengendali alur (If, For, While), deklarasi objek (Dim, Class), pengolahan kesalahan (Try, Catch, Finally), dan lainnya.

Oke, sudah cukup ada bayangkan ya? Ok lanjut….

Struktur Program

Program VB.Net pada dasarnya terdiri dari bagian-bagian berikut:

  • Deklarasi Namespace
  • Sebuah kelas atau modul
  • Satu atau lebih prosedur
  • Variabel
  • Prosedur Main
  • Pernyataan & Ekspresi
  • Komentar

Mari kita lihat kode sederhana yang akan mencetak kata “Hello World”:

 Imports System
Module Module1
   'Program ini akan menampilkan Hello World
   Sub Main()
      Console.WriteLine("Hello World")
      Console.ReadKey()
   End Sub
End Module

 

Ketika kode di atas dikompilasi dan dijalankan, hasil yang dihasilkan adalah:

Hello, World!

Mari kita lihat berbagai bagian dari program di atas:

  • Baris pertama program Imports System digunakan untuk menyertakan namespace System dalam program.
  • Baris berikutnya memiliki deklarasi Modul, yaitu modul Module1. VB.Net sepenuhnya berorientasi objek, jadi setiap program harus memiliki modul atau kelas yang berisi data dan prosedur yang digunakan oleh program Anda.
  • Kelas atau Modul biasanya akan berisi lebih dari satu prosedur. Prosedur berisi kode yang dapat dieksekusi, atau dengan kata lain, mereka mendefinisikan perilaku dari kelas tersebut. Sebuah prosedur bisa berupa salah satu dari berikut:
    • Function
    • Sub
    • Operator
    • Get
    • Set
    • AddHandler
    • RemoveHandler
    • RaiseEvent
  • Baris berikutnya ('Program ini) akan diabaikan oleh compiler dan dimasukkan untuk menambah komentar tambahan dalam program.
  • Baris berikutnya mendefinisikan prosedur Main, yang merupakan titik masuk untuk semua program VB.Net. Prosedur Main menyatakan apa yang akan dilakukan oleh modul atau kelas saat dieksekusi.
  • Prosedur Main menentukan perilakunya dengan pernyataan Console.WriteLine("Hello World"). WriteLine adalah metode dari kelas Console yang didefinisikan dalam namespace System. Pernyataan ini menyebabkan pesan “Hello, World!” ditampilkan di layar.
  • Baris terakhir Console.ReadKey() digunakan untuk pengguna Visual Studio.NET. Ini akan mencegah layar program menutup dengan cepat ketika program dijalankan dari Visual Studio .NET.

Menyusun & Menjalankan Program VB.Net

Jika Anda menggunakan IDE Visual Studio.Net, ikuti langkah-langkah berikut:

  1. Mulai Visual Studio.
  2. Pada menu bar, pilih File → New → Project.
  3. Pilih Visual Basic dari template.
  4. Pilih Console Application.
  5. Tentukan nama dan lokasi untuk proyek Anda menggunakan tombol Browse, lalu pilih tombol OK.
  6. Proyek baru akan muncul di Solution Explorer.
  7. Tulis kode di Code Editor.
  8. Klik tombol Run atau tekan tombol F5 untuk menjalankan proyek. Jendela Command Prompt akan muncul yang berisi baris “Hello World”.

OK sudah lancar kan? Lanjut yuk….