Friday, April 25, 2014

Instruksi If Then Else dan Select Case Else Pada VBA

www.AstroDigi.com AstroDigi.com | Senin, 21 Apr 2014 | Dalam pemrograman tentu seringkali ada keputusan yang memerlukan pencabangan. Misal: Bila A=1 maka aksi yang dilakukan adalah ABC, bila A=2 maka aksi yang dilakukan adalah DEF, dst. Pengelompokan data, pemilihan output, adalah contoh pekerjaan yang perlu pencabangan.

Instruksi pencabangan pada VBA ada dua pilihan yaitu: If Then Else dan Select Case. Instruksi If Then lebih efektif untuk pencabangan dengan sedikit pilihan (misalnya 2 atau 3 pilihan saja), sedangkan instruksi Select Case Else akan efektif untuk pencabangan dengan banyak pilihan.

Misal:
Dim Aksi As String

If Lampu = "Merah" Then
  Aksi = "Berhenti"
End If
If Lampu = "Kuning" Then
  Aksi = "Bersiap"
End If
If Lampu = "Hijau" Then
  Aksi = "Jalan"
End If
'-------------------------

Dapat dituliskan dengan Select Case, sebagai berikut:

Dim Aksi As String

Select Case Lampu

Case "Merah"
  Aksi = "Berhenti"
Case "Kuning"
  Aksi = "Bersiap"
Case "Hijau"
  Aksi = "Jalan"
End Select
'-------------------------

Atau bisa juga dilakukan pengecekan bertingkat seperti:

Dim Aksi As String

If Lampu = "Merah" Then
  Aksi = "Berhenti"
Else
  If Lampu = "Kuning" Then
   Aksi = "Bersiap"
  Else
   If Lampu = "Hijau" Then
    Aksi = "Jalan"
   Else
    Aksi = "Periksa Ulang"
   End If
  End If
End If
'-------------------------

Dapat dituliskan dengan Select Case Else, sebagai berikut:

Dim Aksi As String

Select Case Lampu

Case "Merah"
  Aksi = "Berhenti"
Case "Kuning"
  Aksi = "Bersiap"
Case "Hijau"
  Aksi = "Jalan"
Case Else
  Aksi = "Periksa Ulang"
End Select
'-------------------------

Dari keempat contoh diatas terlihat jelas bahwa untuk pencabangan dengan opsi banyak instruksi Selesct Case Else jauh lebih efektif dibandingkan dengan If Then Else.

Selanjutnya silahkan anda coba agar dapat langsung mengetahui perbedaan dari kedua instruksi tersebut, selamat mencoba . . . have a nice day :-)


 www.AstroDigi.com (Nino Guevara Ruwano)