Operator logika adalah operator yang digunakan untuk membandingkan dua atau lebih nilai logika (Benar atau Salah) dalam suatu ekspresi logika.
Terdapat enam operator logika yang biasa digunakan dalam pemrograman VBA, Operator Logika yang ada di VBA diantaranya :
Operator | Keterangan | Contoh |
---|---|---|
AND | Menghasilkan True jika kedua kondisi yang diuji menghasilkan nilai True . | Logic1 And Logic2 |
OR | Menghasilkan True jika salah satu dari kedua kondisi yang diuji menghasilkan nilai True . | Logic1 or Logic2 |
NOT | Menghasilkan nilai kebalikan dari kondisi yang diuji. | Not Logic1 |
XOR | Menghasilkan True jika salah satu, tapi bukan kedua kondisi yang diuji menghasilkan nilai True . | Logic1 xor Logic2 |
EQV | Menghasilkan True jika kedua kondisi yang diuji menghasilkan nilai yang sama (baik True atau False ). | Logic1 Eqv Logic2 |
IMP | Menghasilkan False jika kondisi pertama menghasilkan nilai True dan kondisi kedua menghasilkan nilai False . Menghasilkan True dalam semua kasus lainnya. | Logic1 Imp Logic2 |
Untuk memudahkan, berikut adalah tabel gerbang logika lengkap untuk masing-masing operator logika di VBA berikut dengan penjelasannya:
Operand 1 | Operand 2 | Operasi | Hasil |
---|---|---|---|
True |
| And |
|
True | False | And |
|
|
| And |
|
|
| And |
|
Operator And
digunakan untuk menggabungkan dua kondisi dan menghasilkan nilai True
hanya jika keduanya menghasilkan nilai True
.
Secara sederhana, operator And
dapat diartikan sebagai “dan”. Misalnya, “kondisi A dan kondisi B harus terpenuhi untuk menghasilkan nilai benar/True.”
Berikut adalah contoh penggunaan operator And
pada VBA:
If Nilai > 80 And Izin < 2 Then 'jika kedua kondisi terpenuhi MsgBox "Siswa Lulus" Else 'jika salah satu atau kedua kondisi tidak terpenuhi MsgBox "Siswa Tidak Lulus" End If
Pada contoh di atas, jika variabel Nilai
bernilai lebih besar dari 80 dan variabel Izin
lebih kecil dari 2, maka akan menghasilkan nilai True
pada kedua kondisi dan pesan “Siswa Lulus” akan ditampilkan pada kotak pesan.
Namun, jika salah satu atau kedua kondisi tidak terpenuhi, maka pesan “Siswa tidak lulus” akan ditampilkan.
Operand 1 | Operand 2 | Operasi | Hasil |
---|---|---|---|
True |
| Or |
|
True | False |
|
|
|
|
|
|
|
|
|
|
Operator Or
digunakan untuk menggabungkan dua kondisi dan menghasilkan nilai True
jika setidaknya salah satu kondisi menghasilkan nilai True
.
Secara sederhana, operator Or
dapat diartikan sebagai “atau”. Misalnya, “kondisi A atau kondisi B harus terpenuhi untuk menghasilkan nilai benar/True.”
Berikut adalah contoh penggunaan operator Or
pada VBA:
If Nilai > 80 Or Hadir > 70 Then 'jika kedua kondisi terpenuhi MsgBox "Siswa Lulus" Else 'jika salah satu atau kedua kondisi tidak terpenuhi MsgBox "Siswa Tidak Lulus" End If
Pada contoh di atas, jika variabel Nilai
bernilai lebih besar dari 80 atau variabel Hadir
lebih besar dari 70, maka akan menghasilkan nilai True
dan pesan “Siswa Lulus” akan ditampilkan pada kotak pesan. Namun, jika kedua kondisi tidak terpenuhi, maka pesan “Siswa Tidak Lulus” akan ditampilkan.
Secara sederhana cukup salah satu saja terpenuhi maka siswa akan lulus.
Operand 1 | Operasi | Hasil |
---|---|---|
True |
|
|
|
|
|
Operator Not
digunakan untuk membalik nilai suatu kondisi, sehingga jika kondisi awalnya bernilai True
, maka setelah diberi operator Not
akan bernilai False
, dan sebaliknya.
Secara sederhana, operator Not
dapat diartikan sebagai “tidak”. Misalnya, “jika kondisi A tidak terpenuhi, maka akan menghasilkan nilai benar/True.”
Berikut adalah contoh penggunaan operator Not
pada VBA:
If Not Nilai > 80 Then 'jika kondisi x tidak lebih besar dari 0 MsgBox "Siswa Tidak Lulus" Else 'jika kondisi x lebih besar dari 0 MsgBox "Siswa Lulus" End If
Operand 1 | Operand 2 | Operasi | Hasil |
---|---|---|---|
True |
| Xor |
|
True | False |
|
|
|
|
|
|
|
|
|
|
Operator Xor
(eXclusive OR) digunakan untuk menggabungkan dua kondisi dan menghasilkan nilai True
hanya jika hanya salah satu dari kedua kondisi yang terpenuhi, sementara jika kedua kondisi sama-sama terpenuhi atau sama-sama tidak terpenuhi, maka akan menghasilkan nilai False
.
Secara sederhana, operator Xor
dapat diartikan sebagai “eksklusif atau”. Misalnya, “kondisi A atau kondisi B harus terpenuhi, tapi tidak keduanya, untuk menghasilkan nilai benar/True.”
Berikut adalah contoh penggunaan operator Xor
pada VBA:
If x > 0 Xor y < 10 Then 'jika hanya salah satu dari kedua kondisi yang terpenuhi MsgBox "Hanya satu kondisi terpenuhi" Else 'jika keduanya sama-sama terpenuhi atau tidak terpenuhi MsgBox "Keduanya terpenuhi atau tidak terpenuhi" End If
Operand 1 | Operand 2 | Operasi | Hasil |
---|---|---|---|
True |
| Eqv |
|
True | False |
|
|
|
|
|
|
|
|
|
|
Operator Eqv
(equivalence) digunakan untuk menggabungkan dua kondisi dan menghasilkan nilai True
jika kedua kondisi sama-sama terpenuhi atau sama-sama tidak terpenuhi. Sebaliknya, operator Eqv
akan menghasilkan nilai False
jika hanya salah satu dari kedua kondisi yang terpenuhi.
Secara sederhana, operator Eqv
dapat diartikan sebagai “sama jika dan hanya jika”. Misalnya, “kondisi A dan kondisi B sama-sama terpenuhi atau sama-sama tidak terpenuhi untuk menghasilkan nilai benar/True.”
Berikut adalah contoh penggunaan operator Eqv
pada VBA:
If x > 0 Eqv y < 10 Then 'jika kedua kondisi sama-sama terpenuhi atau sama-sama tidak terpenuhi MsgBox "Kondisi sama-sama terpenuhi atau tidak terpenuhi" Else 'jika hanya salah satu dari kedua kondisi yang terpenuhi MsgBox "Hanya satu kondisi terpenuhi" End If
Operand 1 | Operand 2 | Operasi | Hasil |
---|---|---|---|
True |
|
|
|
True | False |
|
|
|
|
|
|
|
|
|
|
Operator Imp
(implication) digunakan untuk menggabungkan dua kondisi dan menghasilkan nilai False
hanya jika kondisi pertama terpenuhi namun kondisi kedua tidak terpenuhi. Selain itu, operator Imp
akan menghasilkan nilai True
pada kondisi lainnya.
Secara sederhana, operator Imp
dapat diartikan sebagai “jika…maka…”. Misalnya, “jika kondisi A terpenuhi, maka kondisi B harus terpenuhi untuk menghasilkan nilai benar/True.”
Berikut adalah contoh penggunaan operator Imp
pada VBA:
If x > 0 Imp y < 10 Then 'jika kondisi pertama terpenuhi namun kondisi kedua tidak terpenuhi MsgBox "Kondisi pertama terpenuhi tapi kondisi kedua tidak terpenuhi" Else 'jika kondisi pertama tidak terpenuhi atau kedua kondisi terpenuhi MsgBox "Kondisi pertama tidak terpenuhi atau kondisi kedua terpenuhi" End If