Mengenal Short-Circuit Logical Operator

Java menyediakan dua jenis boolean operator yang tidak dimiliki oleh banyak bahasa pemrograman lain. Java memiliki secondary version untuk OR dan AND operator, atau yang lebih dikenal sebagai Short-Circuit Logical Operator. Banyak pemula yang mempelajari java menganggap bahwa untuk AND operator adalah dengan menggunakan && dan untuk OR operator menggunakan tanda ||. Hal ini memang tidak salah. Namun, ada baiknya jika kita mengenal operator & dan | serta perbedaannya jika kita menggunakan && atau || (Short-Circuit Logical Operator).

Seperti yang sudah kita ketahui, jika kita memproses variabel A dan B, operator OR akan bernilai TRUE jika salah satu nilai A atau B bernilai TRUE. Sedangkan untuk operator AND  akan bernilai TRUE jika nilai A dan B bernilai TRUE. Saat kita menggunakan && atau ||, java tidak akan memproses operasi yang disebelah kanan jika telah diketahui nilai FALSE dari operasi di sebelah kiri. Hal ini sangat berguna saat kita mengevaluasi suatu nilai dengan beberapa urutan tertentu. Seperti ketika kita ingin mengevaluasi nilai yang belum diketahui kevalidan datanya.

if( x != null && x.size() > 1 )

Penggunaan Short-Circuit seperti diatas merupakan contoh standar dalam penggunaan variable yang melibatkan boolean logic. Contoh di atas akan menghindarkan kita dari Run-TimeException. Sebelum melangkah ke tahap pengecekan size dari variable x, java melakukan pengecekan tentang kepastian adanya data. Jika null, makan size tidak akan dicek karena java berhenti melakukan evaluasi nilai. Namun jika kita menggunakan & sebagai operator AND dengan mengesampingkan single-character sebagai operator bitwise, pengecekan size dari variabel x akan dilakukan oleh java meskipun nilai dari pengecekan awal telah diketahui. Hal ini akan menyebabkan kemungkinan terjadinya Run-Time Exception ketika nilai x adalah null.

Karena penggunaan single-character juga merupakan operator bitwise, muncul pengecualian dalam proses yang terjadi saat kita menggabungkan beberapa proses. Contoh:
if ( x == 1 & x++ < 10 ) y = 8;
Penggunaan single & digunakan untuk memastikan bahwa penambahan nilai x akan dilakukan jika nilai x sama dengan 1 atau tidak.

Leave a comment