Pendahuluan
Pada artikel sebelumnya, Anda telah mempelajari Pernyataan If...Then yang digunakan untuk mengambil keputusan berdasarkan suatu kondisi. Struktur tersebut sangat efektif untuk menangani satu atau dua kondisi. Namun, ketika jumlah kondisi semakin banyak, penggunaan If...ElseIf...Else dapat membuat kode menjadi panjang, sulit dibaca, dan lebih sulit dipelihara.
Untuk mengatasi hal tersebut, VBA menyediakan pernyataan Select Case. Struktur ini memungkinkan Anda membandingkan satu nilai dengan beberapa kemungkinan nilai secara lebih sederhana dan terstruktur.
Dengan menggunakan Select Case, kode menjadi lebih ringkas, mudah dipahami, dan lebih mudah dikembangkan ketika jumlah kondisi bertambah.
Apa Itu Pernyataan Select Case?
Select Case adalah struktur percabangan yang digunakan untuk memilih satu blok kode yang akan dijalankan berdasarkan nilai dari suatu ekspresi.
VBA akan membandingkan nilai tersebut dengan setiap Case secara berurutan. Ketika ditemukan kecocokan, blok kode pada Case tersebut akan dijalankan, kemudian VBA keluar dari struktur Select Case.
Mengapa Menggunakan Select Case?
Gunakan Select Case apabila Anda memiliki banyak pilihan kondisi yang membandingkan satu variabel atau satu ekspresi.
Keuntungan menggunakan Select Case antara lain:
-
Kode lebih ringkas.
-
Lebih mudah dibaca.
-
Mudah ditambahkan kondisi baru.
-
Mengurangi penggunaan banyak
ElseIf. -
Mempermudah pemeliharaan kode.
Sintaks
Sintaks dasar Select Case adalah sebagai berikut.
Select Case ekspresi
Case nilai1
pernyataan
Case nilai2
pernyataan
Case Else
pernyataan
End Select
Penjelasan Sintaks
Select Case
Memulai proses percabangan berdasarkan suatu nilai.
ekspresi
Nilai atau variabel yang akan dibandingkan.
Contoh:
Nilai
atau
Range("A1").Value
Case
Berisi nilai yang akan dibandingkan dengan ekspresi.
Case Else
Dijalankan apabila tidak ada satu pun kondisi yang sesuai.
End Select
Menutup struktur Select Case.
Cara Kerja Select Case
VBA akan membaca nilai pada Select Case, kemudian membandingkannya dengan setiap Case dari atas ke bawah.
-
Jika ditemukan nilai yang cocok, kode pada
Casetersebut akan dijalankan. -
Jika tidak ada yang cocok, maka kode pada
Case Elseakan dijalankan (jika ada).
Contoh Dasar
Contoh 1
Menentukan nama hari berdasarkan angka.
Sub NamaHari()
Dim Hari As Integer
Hari = 3
Select Case Hari
Case 1
MsgBox "Senin"
Case 2
MsgBox "Selasa"
Case 3
MsgBox "Rabu"
Case 4
MsgBox "Kamis"
Case 5
MsgBox "Jumat"
Case 6
MsgBox "Sabtu"
Case 7
MsgBox "Minggu"
End Select
End Sub
Output:
Rabu
Contoh 2
Menggunakan Case Else.
Sub NilaiBulan()
Dim Bulan As Integer
Bulan = 15
Select Case Bulan
Case 1 To 12
MsgBox "Bulan Valid"
Case Else
MsgBox "Bulan Tidak Valid"
End Select
End Sub
Menggunakan Rentang Nilai
Select Case dapat membandingkan rentang angka menggunakan kata kunci To.
Sub Predikat()
Dim Nilai As Integer
Nilai = 82
Select Case Nilai
Case 90 To 100
MsgBox "A"
Case 80 To 89
MsgBox "B"
Case 70 To 79
MsgBox "C"
Case Else
MsgBox "D"
End Select
End Sub
Menggunakan Beberapa Nilai dalam Satu Case
Satu Case dapat berisi beberapa nilai.
Sub HurufVokal()
Dim Huruf As String
Huruf = "A"
Select Case UCase(Huruf)
Case "A", "I", "U", "E", "O"
MsgBox "Huruf Vokal"
Case Else
MsgBox "Huruf Konsonan"
End Select
End Sub
Menggunakan Operator Perbandingan
Anda juga dapat menggunakan kata kunci Is.
Sub CekNilai()
Dim Nilai As Integer
Nilai = 95
Select Case Nilai
Case Is >= 90
MsgBox "Sangat Baik"
Case Is >= 80
MsgBox "Baik"
Case Is >= 70
MsgBox "Cukup"
Case Else
MsgBox "Perlu Perbaikan"
End Select
End Sub
Studi Kasus
Menentukan Status Karyawan
Misalkan sebuah perusahaan memiliki tiga status karyawan.
Sub StatusPegawai()
Dim Status As String
Status = Range("A2").Value
Select Case Status
Case "Tetap"
MsgBox "Berhak Mendapat Bonus Tahunan"
Case "Kontrak"
MsgBox "Bonus Sesuai Perjanjian"
Case "Magang"
MsgBox "Tidak Mendapat Bonus"
Case Else
MsgBox "Status Tidak Dikenal"
End Select
End Sub
Program akan menampilkan informasi sesuai status karyawan yang dipilih.
Perbandingan If...Then dan Select Case
If...Then | Select Case |
|---|---|
| Cocok untuk sedikit kondisi | Cocok untuk banyak kondisi |
| Dapat membandingkan berbagai ekspresi | Umumnya membandingkan satu ekspresi |
| Kode bisa menjadi panjang | Kode lebih ringkas |
| Lebih fleksibel | Lebih mudah dibaca |
Gunakan If...Then jika kondisi melibatkan banyak ekspresi atau operator logika yang kompleks.
Gunakan Select Case jika hanya membandingkan satu variabel dengan banyak kemungkinan nilai.
Tips & Best Practice
-
Gunakan
Select Casejika memiliki tiga kondisi atau lebih terhadap satu variabel. -
Selalu tambahkan
Case Elseuntuk menangani nilai yang tidak terduga. -
Susun
Casesecara berurutan agar lebih mudah dipahami. -
Gunakan nama variabel yang jelas.
-
Hindari membuat kondisi yang saling tumpang tindih.
Kesalahan yang Sering Terjadi
Lupa End Select
Salah:
Select Case Nilai
Case 1
MsgBox "Satu"
Benar:
Select Case Nilai
Case 1
MsgBox "Satu"
End Select
Tidak Menambahkan Case Else
Walaupun tidak wajib, tanpa Case Else program tidak akan memberikan respons jika tidak ada nilai yang sesuai.
Menggunakan Select Case untuk Kondisi yang Kompleks
Kurang tepat:
If Nilai >= 75 And Kehadiran >= 80 Then
Untuk kondisi seperti ini, If...Then lebih sesuai dibandingkan Select Case.
Ringkasan
Pada artikel ini Anda telah mempelajari bahwa:
-
Select Casedigunakan untuk memilih tindakan berdasarkan satu nilai atau ekspresi. -
Casedigunakan untuk menentukan kondisi yang akan dibandingkan. -
Case Elsedigunakan sebagai kondisi default jika tidak ada nilai yang cocok. -
Select Casemembuat kode lebih ringkas dan mudah dibaca dibandingkanIf...ElseIf...Elseketika menangani banyak kondisi. -
Select Casemendukung nilai tunggal, beberapa nilai, rentang nilai (To), dan operator perbandingan (Is).
Latihan
Latihan 1
Buat program yang menampilkan nama bulan berdasarkan angka pada sel A1.
Ketentuan:
-
1 = Januari
-
2 = Februari
-
3 = Maret
-
dan seterusnya hingga 12 = Desember.
Gunakan Select Case.
Latihan 2
Buat program yang menentukan predikat nilai berdasarkan isi sel B2.
-
90–100 : Sangat Baik
-
80–89 : Baik
-
70–79 : Cukup
-
Di bawah 70 : Perlu Perbaikan
Gunakan rentang nilai (To).
Latihan 3
Buat program yang memeriksa jenis kendaraan berdasarkan isi sel C2.
-
Motor
-
Mobil
-
Bus
-
Truk
Jika nilainya selain itu, tampilkan pesan "Jenis kendaraan tidak dikenali."
Pembahasan Singkat
Latihan 1
Sub Latihan1()
Select Case Range("A1").Value
Case 1
MsgBox "Januari"
Case 2
MsgBox "Februari"
Case 3
MsgBox "Maret"
Case Else
MsgBox "Bulan tidak valid"
End Select
End Sub
Kesimpulan
Pernyataan Select Case merupakan solusi yang tepat ketika Anda perlu menangani banyak pilihan berdasarkan satu variabel atau ekspresi. Dengan struktur yang lebih sederhana dan rapi, Select Case membuat kode VBA lebih mudah dibaca, dipelihara, dan dikembangkan.
Pilihlah Select Case untuk percabangan dengan banyak kemungkinan nilai, sedangkan If...Then lebih sesuai untuk kondisi yang melibatkan ekspresi logika yang lebih kompleks.
