Jumat, 16 Desember 2011

OPERATOR LOGIKA

Ada enam operator logika dalam java
& operator dan, dapat juga menjadi operator bitwise jika operandnya berupa angka
| operator or, dapat juga menjadi operator bitwise jika operandnya berupa angka
 ^ operator xor, dapat juga menjadi operator bitwise jika operandnya berupa angka
! operator logika negasi
&& operator singkatan dan
|| operator singkatan or

operator & dan jika operandnya bertipe boolean akan menghasilkan nilai true kalau kedua nilainya true, selainnya menghasilkan false.

int x = 10
int y = 11
boolean z = (x < 10 ) & ( y < 100 )

z menghasilkan nilai false karena operand sebelah kiri (x < 10 ) menghasilkan false dan operand sebelah kanan ( y < 100 ) menghasilkan true, sehingga nilai z adalah false. Operand sebelah kanannya tetap dilihat walaupun operand sebelah kirinya nilainya false.

Berbeda dengan operator &&, jika operand sebelah kirinya menghasilkan nilai false maka tidak melihat operand yang ada di sebelah kanannya ( diabaikan ). Operator ini penting untuk memastikan bahwa nilai suatu variable object tidak bernilai null sebelum memanggil method dari object tersebut.

public class LogicalOperator{
          public static void main(String[] args){
                     String nama = null;
                     boolean z = (nama != null) & (nama.equals("saya"));
                     System.out.println(z);
          }
}

akan menghasilkan null pointer exception, walaupun hasil operand sebelah kiri false, operand sebelah kanan tetap dijalankan . ganti operator & dengan operator &&

public class LogicalOperator{
           public static void main(String[] args){
                      String nama = null;
                      boolean z = (nama != null) && (nama.equals("saya"));
                      System.out.println(z);
           }
}

Operator | pada angka akan menjadi operator bitwise, sedangkan pada variable boolean akan menghasilkan true jika salah satu atau kedua operand bernilai true. jika operand yang disebelah kiri bernilai true, maka operand yang ada dikanannya tetap dilihat. berbeda dengan operator || jika operand yang disebelah kiri bernilai true, maka tidak melihat operand yang ada dikanan.

Operator ^ xor akan menghasilkan nilai true jika nilai operand yang ada di sebelah kiri berbeda dengan nilai operand yang ada di sebelah kanan. jika nilai kedua operand sama maka akan menghasilkan nilai false.

int x = 10;
int y = 11;
boolean z = ( x > 10 ) ^ ( y < 100 )

variable z akan bernilai true karena ( x > 10 ) menghasilkan false ( y < 100 ) menghasilkan true, jika nilai operand yang disebelah kiri berbeda nilainya dengan operand yang ada disebelah kanan maka menghasilkan nilai true.

operator ! disebut inversi atau negasi akan membalikkan nilai true menjadi false, false menjadi true

int x = 10
int y = 11
boolean z = !( ( x > 10) ^ ( y < 100 ) )

variable z akan bernilai false

Tidak ada komentar:

Posting Komentar