Memahami operator And dan Or di C#
Pada waktu kita melakukan pemrograman dalam bahasa C# kita pasti menggunakan operator AND dan juga OR. Kita juga pasti sering menggunakan double AND dan double OR. Sebenarnya apakah boleh kita menulis single AND atau single OR saja ?
Marilah kita melihat penjelasan berikut ini
- Operator &
Operator & ini disebut AND.
Pada operator & ini jika semua kondisi true maka hasilnya true, jika salah satu false maka hasilnya false.
Pada operator & ini semua diievaluasi, misal a & b & c.
Jika a false, meskipun pasti hasilnya false tetapi yang lain yaitu b dan c harus dievaluasi.
- Operator |
Operator ini disebut operator OR.
Operator OR ini jika salah satu true maka hasilnya true, jika semua false maka hasilnya false.
Pada operator | ini semua dievaluasi, misal a | b | c .
Di sini minimal satu harus true.
Jika a true, meskipun hasilnya pasti benar, b dan c harus tetap dievaluasi.
- Operator &&
Operator && ini disebut AND with short circuit, dalam arti jika sudah tahu pasti hasilnya maka tidak perlu evaluasi yang lain.
Misal a && b && c, jika a false sudah pasti hasilnya fase jadi yang lain tidak dievaluasi dan langsung memberikan nilai false.
Jadi dalam operator && ini tentu akan mempercepat eksekusi program karena tidak semua dievaluasi.
- Operator ||
Operator || ini disebut OR with sort circuit dalam arti jika hasilnya jelas maka yang lain tidak dievaluasi, misal a || b || c .
Jika a true, maka tentu hasilnya true yang lain tidak dievaluasi dan langsung memberikan nilai true.
Diasumsikan x dan y merupakan variable boolean x = true dan y = false.
Operator | Keterangan | Contoh |
---|---|---|
&& | Merupakan operator logika AND (dan). Jika kedua pernyataan yang dibandingkan bernilai benar maka hasil akhir True. | (A && B) hasilnya false. |
|| | Merupakan operator logika OR (atau). Jika salah satu nilai pembanding bernilai benar maka hasil akhir True. | (A || B) hasilnya true. |
! | Merupakan operator logika NOT (bukan). Digunakan untuk membalikan hasil nilai akhir. Jika True maka False jika False maka True. | !(A && B) hasilnya true. |
untuk lebih jelas lihat table kebenaran
A | B | A & B | A | B | !A | A ^ B |
false | true | false | true | true | true |
false | false | false | false | true | false |
true | true | true | true | false | false |
true | false | false | true | false | true |
Secara umum kita banyak menggunakan && dan || karena akan mempercepat eksekusi program kita. Tetapi ada kalanya memang diperlukan untuk mengevaluasi semuanya karena ada yang pelu dikerjakan misal
hitunguntung(a) & hitunguntung(b) & hitunguntung(c) , di sini selain hasilnya kita juga memerlukan penghitungan masing-masing function. Dengan demikan apakah mau menggunakan & atau && kemudian | atau || tergantung kebutuhan aplikasi kita.