Pernyataan Select Case pada VBA Excel: Menangani Banyak Kondisi dengan Lebih Mudah

 

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 Case tersebut akan dijalankan.

  • Jika tidak ada yang cocok, maka kode pada Case Else akan 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...ThenSelect 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 Case jika memiliki tiga kondisi atau lebih terhadap satu variabel.

  • Selalu tambahkan Case Else untuk menangani nilai yang tidak terduga.

  • Susun Case secara 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 Case digunakan untuk memilih tindakan berdasarkan satu nilai atau ekspresi.

  • Case digunakan untuk menentukan kondisi yang akan dibandingkan.

  • Case Else digunakan sebagai kondisi default jika tidak ada nilai yang cocok.

  • Select Case membuat kode lebih ringkas dan mudah dibaca dibandingkan If...ElseIf...Else ketika menangani banyak kondisi.

  • Select Case mendukung 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.


Hubungi Kami

Kantor Berkreasi
Alamat :
Pens Sky Venture - Sukolilo Surabaya
Karangrejo Tmur 17 Surabaya

Email : kantor.berkreasi@gmail.com
WA : wa.me/6287761589881  
(Support  Mbak Ana)

Tim Pengembang

Dr. Rojabi Azharghany, M.Si, S.Sos
Dr. H. Agus Sulthoni Imami, S.Psi. M.Pd.I.
Ali Ishaq, M.Pd.
Didik Rahwiniyanto, S.Si., M.Pd.
Mujiburrohman, M.Pd.
Mohammad Zikky, S.ST, M.T
Amien sawedi, S.Pd.
Didik P Wicaksono, M.Pd.