&& (Logical AND)
Operator yang satu ini digunakan untuk perbandingan kondisi AND. Akan menghasilkan true jika kedua kondisi true. Operator di jalankan dari kiri ke kanan. Selain itu yang perlu diperhatikan adalah bahwa && merupakan short-circuit operator. Short circuit operator disini maksudnya adalah jika kondisi yang kiri bernilai false, maka operasi yang kanan tidak akan di jalankan, karena sudah pasti hasilnya akan false. Berikut ini contohnya:
//and1 bernilai trueboolean and1 = true && true;// and2 bernilai falseboolean and2 = true && false;//and3 bernilai false, operator yang kanan tidak dievaluasiboolean and3 = false && true;//and4 bernilai false,operator yang kanan tidak dievaluasiboolean and4 = false && false; |
|| (Logical OR)
Operator || digunakan untuk perbandingan kondisi OR. Akan menghasilkan true jika salah satunya bernilai true. Operator ini dijalankan dari kiri ke kanan dan juga termasuk short-circuit operator. Short-circuit operator disini maksudnya adalah jika kondisi yang kiri bernilai true, makan operasi yang kanan tidak dijalankan, sebab sudah pasti hasilnya true. Contohnya:
// or1 true, operator kanan tidak dievaluasiboolean or1 = true || true;// or2 true, operator kanan tidak dievaluasiboolean or2 = true || false;// or3 trueboolean or3 = false || true;// or4 falseboolean or4 = false || false; |
& (AND dan BIT AND Operation)
Operator & bisa berfungsi sebagai conditional operator atau bisa juga berfungsi sebagai operator bit pada bilangan. Jika berfungsi sebagai conditional operator, maka tidak berlaku fungsi short-circuit, akibatnya operator kiri dan kanan pasti akan di evaluasi apapun kondisinya. Contoh sebagai conditional operator sebagai berikut:
//and1 bernilai trueboolean and1 = true & true;//and2 bernilai falseboolean bitand2 = true & false;//and3 bernilai false, operator yang kanan dievaluasiboolean and3 = false & true;//and4 bernilai false,operator yang kanan dievaluasiboolean and4 = false & false; |
Sedangkan contoh penggunaan sebagai bitwise operator adalah sebagai berikut:
0101 (decimal 5) AND 0011 (decimal 3) = 0001 (decimal 1)
Maka code javanya adalah sebagai berikut:
//a akan bernilai 1int a = 5 & 3; |
| (OR dan BIT OR Operation)
Nah, yang terakhir ini adalah operator | yang berfungsi sebagai conditional operator atau bisa juga berfungsi sebagai bit pada bilangan. Jika berfungsi sebagai conditional operator, maka tidak berlaku fungsi short-circuit, akibatnya operator kiri dan kanan pasti akan di evaluasi apapun kondisinya. Contoh sebagai conditional operator sebagai berikut:
// or1 true, operator kanan dievaluasiboolean or1 = true | true;// or2 true, operator kanan dievaluasiboolean or2 = true | false;// or3 trueboolean or3 = false | true;// or4 falseboolean or4 = false | false; |
Sedangkan contoh penggunaan sebagai bitwise operator adalah sebagai berikut:
0101 (decimal 5) OR 0011 (decimal 3) = 0111 (decimal 7)
Maka code javanya adalah sebagai berikut:
//a akan bernilai 7int a = 5 | 3; |
Kesimpulan:
Nah, untuk lebih memperdalam pendalaman tentang operator2 diatas, bisa coba mengeksekusi source code dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| public class ArithmeticResultsOutput { public static void main (String[] args) { int i1 = 100; int j1 = 200; if ((i1 == 99) & (--j1 == 199)) { System.out.print("Value1: " + (i1 + j1) + " "); } else { System.out.print("Value2: " + (i1 + j1) + " "); } int i2 = 100; int j2 = 200; if ((i2 == 99) && (--j2 == 199)) { System.out.print("Value1: " + (i2 + j2) + " "); } else { System.out.print("Value2: " + (i2 + j2) + " "); } int i3 = 100; int j3 = 200; if ((i3 == 100) | (--j3 == 200)) { System.out.print("Value1: " + (i3 + j3) + " "); } else { System.out.print("Value2: " + (i3 + j3) + " "); } int i4 = 100; int j4 = 200; if ((i4 == 100) || (--j4 == 200)) { System.out.print("Value1: " + (i4 + j4) + " "); } else { System.out.print("Value2: " + (i4 + j4) + " "); } }} |
Bagaimana..? Sudah terlihat jelas perbedaannya khan..?
Referensi:
[1] Liguori, Robert., Finegan, Edward. (2010). SCJA Sun® Certified Java™ Associate Study Guide. New York: Mc Graw Hill
[1] Liguori, Robert., Finegan, Edward. (2010). SCJA Sun® Certified Java™ Associate Study Guide. New York: Mc Graw Hill
[2] https://ifhayz.wordpress.com/2011/12/31/perbedaan-operator-logika-pada-pemrograman-java/
0 comments :
Post a Comment