Bekerjasama Dengan Operator, Session 7: Equality Operators

4:08 PM , 0 Comments

Hallo para pembaca yang baik hatinya, ketemu lagi dengan saya sang programmer pemula. Masih melanjutkan curhatan sebelumnya mengenai Operator, sebelumnya saya ngecurhat soal Conditional Operator, kali ini saya mau mengeluarkan uneg-uneg tentang Equality Operators.


~Equality? Mau ngomongin soal persamaan hak nih?
* Ya enggak lah vroh, yang bener ajah
Equality kalo diterjemahkan ke dalam bahasa Indonesia artinya persamaan. Ya, pembahasan kali ini adalah masalah persamaan dan tidak persamaan. Untuk mengetes apakah dua nilai sama digunakan operator (==), hasil pengetesan adalah benar (true) jika kedua operan nilainya sama. Sedangkan untuk mengetes apakah dua nilai tidak sama digunakan operator (!=), hasil pengetesan adalah benar (true) jika kedua operan memiliki nilai yang berbeda.

Equality operators ini hanya bekerja untuk operan berupa angka bulat (byte, short, int, long), jika equality operators digunakan untuk operan berupa angka desimal (float, double) dan juga data berupa objek (termasuk juga tipe data String) maka ceritanya akan lain. Contoh penggunaan equality operators,
int a = 4;
int b = 4;
int c = 8;
boolean sama = a == b; // akan bernilai true
boolean beda = a != c; // akan bernilai true
Nah, ceritanya akan berbeda jika kita mencoba membandingkan dua buah variable bertipe float atau double. Tipe data float atau double memang kurang menyenangkan bagi kita-kita yang math-holic karena dalam dunia Java 1/10 bukan berarti 0.1 dan 0.1 + 0.2 bukan berarti 0.3. Lihat lagi soal tipe data di sini. Silakan coba kode berikut jika tidak percaya,
class Main{
    public static void main (String[] args){
        System.out.println(0.6 == 0.2 + 0.2 + 0.2); //output berupa false
        System.out.println(0.6 == 0.2 * 3); //output berupa false
    }
}
Console akan mengeluarkan output false untuk kedua baris kode tersebut karena 0.2 + 0.2 + 0.2 = 0.6000000000000001, begitu juga dengan 0.2 * 3 = 0.6000000000000001.

Sedangkan ketika kita membandingkan dua variable berupa objek (termasuk String) dengan menggunakan equality operators (== atau !=) yang akan dibandingkan bukan content/isi/nilainya tapi yang akan dibandingkan adalah reference dari objek tersebut.

*Note: Ingat baik-baik bahwa tipe data String bukan lah primitive tapi adalah objek.

Oke deh, saya sudahi saja sesi curhatan ini karena udah ga ada lagi yang mau diomongin. hehehe. Sampai jumpa lagi ya di curhatan berikutnya.

0 comments: