Tidak semua program berjalan dengan urutan yang sama dari awal hingga akhir. Dalam banyak kasus, sebuah aplikasi harus mampu mengambil keputusan berdasarkan kondisi tertentu. Misalnya, menentukan apakah seorang siswa dinyatakan lulus, memeriksa apakah stok barang masih tersedia, atau menampilkan pesan berbeda sesuai hak akses pengguna.
Di VBA Excel, proses pengambilan keputusan tersebut dilakukan menggunakan struktur percabangan If...Then...Else. Struktur ini merupakan salah satu konsep dasar yang wajib dikuasai karena hampir semua aplikasi VBA menggunakannya, mulai dari macro sederhana hingga sistem informasi yang kompleks.
Apa Itu If...Then...Else?
If...Then...Else adalah struktur percabangan yang digunakan untuk menjalankan kode tertentu apabila suatu kondisi bernilai True, dan menjalankan kode lain apabila kondisi tersebut bernilai False.
Secara sederhana, logikanya dapat digambarkan seperti berikut.
Jika kondisi terpenuhi, maka jalankan perintah A. Jika tidak, jalankan perintah B.
Konsep ini menjadi dasar hampir semua proses pengambilan keputusan dalam pemrograman.
Sintaks Dasar If...Then
Bentuk paling sederhana hanya terdiri dari satu kondisi.
If Kondisi Then
Pernyataan
End If
Contoh:
Sub ContohIf()
Dim Nilai As Integer
Nilai = 90
If Nilai >= 75 Then
MsgBox "Selamat, Anda lulus."
End If
End Sub
Karena nilai 90 lebih besar dari 75, pesan akan ditampilkan.
Jika kondisi tidak terpenuhi, VBA akan melewati blok kode tersebut tanpa menampilkan apa pun.
Menggunakan If...Then...Else
Sering kali aplikasi harus melakukan dua tindakan yang berbeda berdasarkan hasil suatu kondisi. Dalam situasi seperti ini, gunakan bagian Else.
Sintaks:
If Kondisi Then
Pernyataan 1
Else
Pernyataan 2
End If
Contoh:
Sub CekKelulusan()
Dim Nilai As Integer
Nilai = 68
If Nilai >= 75 Then
MsgBox "Lulus"
Else
MsgBox "Tidak Lulus"
End If
End Sub
Karena nilai 68 tidak memenuhi syarat, VBA menjalankan bagian Else.
Menggunakan If...ElseIf...Else
Dalam aplikasi nyata, Anda sering menghadapi lebih dari dua kemungkinan.
Sebagai contoh, penilaian siswa dapat dibagi menjadi beberapa kategori.
Sub PredikatNilai()
Dim Nilai As Integer
Nilai = 88
If Nilai >= 90 Then
MsgBox "Predikat A"
ElseIf Nilai >= 80 Then
MsgBox "Predikat B"
ElseIf Nilai >= 70 Then
MsgBox "Predikat C"
Else
MsgBox "Predikat D"
End If
End Sub
VBA akan memeriksa kondisi dari atas ke bawah dan menjalankan blok pertama yang memenuhi syarat.
Studi Kasus 1: Menentukan Status Kelulusan
Misalkan sekolah menetapkan nilai minimum kelulusan sebesar 75.
Dim Nilai As Integer
Nilai = Range("B2").Value
If Nilai >= 75 Then
Range("C2").Value = "Lulus"
Else
Range("C2").Value = "Tidak Lulus"
End If
Kode tersebut akan mengisi kolom status secara otomatis berdasarkan nilai siswa.
Studi Kasus 2: Validasi Login
Percabangan juga sering digunakan untuk memeriksa data login.
Dim Password As String
Password = InputBox("Masukkan Password")
If Password = "admin123" Then
MsgBox "Login berhasil."
Else
MsgBox "Password salah."
End If
Teknik ini menjadi dasar pembuatan sistem autentikasi sederhana.
Studi Kasus 3: Mengecek Persediaan Barang
Pada aplikasi inventaris, transaksi hanya dapat dilakukan jika stok masih tersedia.
Dim Stok As Integer
Stok = 5
If Stok > 0 Then
MsgBox "Transaksi dapat diproses."
Else
MsgBox "Stok habis."
End If
Dengan logika tersebut, aplikasi dapat mencegah transaksi yang tidak valid.
Studi Kasus 4: Menentukan Besaran Diskon
Misalkan pelanggan memperoleh diskon berdasarkan total pembelian.
Dim Total As Double
Total = 1500000
If Total >= 1000000 Then
MsgBox "Diskon 15%"
ElseIf Total >= 500000 Then
MsgBox "Diskon 10%"
Else
MsgBox "Tidak mendapat diskon"
End If
Pendekatan ini banyak digunakan pada aplikasi penjualan dan kasir.
💡 Tips Praktis
Susun kondisi dari yang paling spesifik ke yang paling umum. Dengan cara ini, VBA akan memilih kondisi yang tepat tanpa melewati logika yang seharusnya dijalankan.
If Bertingkat (Nested If)
Percabangan juga dapat ditempatkan di dalam percabangan lainnya.
Contoh:
Dim Nilai As Integer
Dim Kehadiran As Integer
If Nilai >= 75 Then
If Kehadiran >= 80 Then
MsgBox "Lulus"
Else
MsgBox "Tidak Lulus karena kehadiran."
End If
Else
MsgBox "Nilai belum memenuhi syarat."
End If
Meskipun memungkinkan, penggunaan If bertingkat secara berlebihan dapat membuat kode sulit dipahami. Jika kondisi semakin kompleks, pertimbangkan menggunakan Select Case atau memecah logika ke dalam prosedur terpisah.
Kesalahan yang Sering Dilakukan
Lupa Menutup Blok dengan End If
Kesalahan yang paling umum adalah tidak menambahkan End If.
If Nilai >= 75 Then
MsgBox "Lulus"
Kode di atas akan menghasilkan kesalahan karena blok percabangan belum ditutup.
Menulis Kondisi yang Bertumpuk
Perhatikan contoh berikut.
If Nilai >= 60 Then
...
ElseIf Nilai >= 80 Then
...
Kondisi kedua tidak akan pernah dijalankan karena nilai 80 sudah memenuhi syarat pertama.
Urutan yang benar adalah:
If Nilai >= 80 Then
...
ElseIf Nilai >= 60 Then
...
Terlalu Banyak If Bertingkat
Semakin banyak percabangan di dalam percabangan, semakin sulit kode dipelihara.
Jika terdapat banyak pilihan dengan pola yang sama, gunakan Select Case agar struktur program menjadi lebih rapi.
Kapan Menggunakan If...Then...Else?
Struktur percabangan ini sangat cocok digunakan untuk:
-
memvalidasi input pengguna,
-
menentukan status kelulusan,
-
memeriksa stok barang,
-
menghitung diskon,
-
mengatur hak akses pengguna,
-
memeriksa tanggal jatuh tempo,
-
menentukan tindakan berdasarkan hasil perhitungan.
Karena fleksibilitasnya, If...Then...Else menjadi salah satu struktur yang paling sering digunakan dalam VBA Excel.
Kesimpulan
If...Then...Else merupakan struktur percabangan utama dalam VBA Excel yang memungkinkan program mengambil keputusan berdasarkan suatu kondisi. Dengan memanfaatkan struktur ini, aplikasi dapat menjalankan proses yang berbeda sesuai data yang diterima, sehingga program menjadi lebih dinamis dan responsif.
Dalam artikel ini, Anda telah mempelajari bentuk dasar If...Then, penggunaan Else dan ElseIf, serta berbagai contoh penerapan pada sistem penilaian, login, inventaris, dan perhitungan diskon. Anda juga memahami beberapa kesalahan yang sering terjadi beserta cara menghindarinya.
Menguasai If...Then...Else merupakan langkah penting sebelum mempelajari struktur logika yang lebih kompleks, seperti penggunaan operator logika And, Or, dan Not, maupun percabangan Select Case untuk menangani banyak kondisi dengan lebih efisien.
