Belajar Pemrograman Java Dari Dasar

Memahami Method Equals() Dari Class Object Dan Perbedaannya Dengan Operator "=="

Salah satu method yang sangat berguna dari kelas Object adalah method equals(Object) di samping method lainnya seperti toString().

Namun sebelumnya, anda sudah mengetahui bahwa setiap objek pada Java mewarisi method (inherit) dari class java.lang.Object yang dapat digunakan.

Method Equals() Dari Class Object


Jadi apa yang sebenarnya dilakukan oleh method equals(Object)?

Method equals memiliki signature:

public boolean equals(Object o)

Jadi method ini akan menguji apakah kedua objek ini adalah equal atau tidak. Syntax untuk memanggil method ini adalah:

object1.equals(object2);

Sedangkan secara default method ini diimplementasikan di dalam class Object dengan:

     public boolean equals(Object obj) {
        return (this == obj);
     }

Implementasi di atas akan memeriksa apakah dua variabel referensi menunjuk ke objek yang sama dengan yang menggunakan operator "==".

Anda harus mengganti metode ini di kelas kustomisasi yang anda buat untuk menguji apakah keduanya merupakan objek-objek yang berbeda dan memiliki konten yang sama.

Method equals () di-overriding pada banyak kelas di Java API, seperti pada java.lang .String dan java.util.Date, untuk membandingkan apakah isi dua objek adalah sama.

Misalnya method equals() pada class String diwarisi dari kelas Object dan di overriden di kelas String untuk menguji apakah dua string memiliki konten yang identik satu sama lain.

Perbedaan method equals dan operator "=="

Method equals dan operator "==", keduanya dapat digunakan untuk membandingkan objek. Namun, di sini anda melihat satu perbedaan yang sangat jelas bahwa equals adalah sebuah method sedangkan == adalah sebuah operator.

Karena Java tidak mendukung untuk operator overloading, maka operator "==" akan berperilaku identik untuk setiap objek. Namun, equals() adalah sebuah method di mana dapat di-overriding dan logika untuk membandingkan objek dengan method ini dapat disesuaikan dengan kebutuhan.

Bagaimana operator == bekerja?


"==" atau disebut juga dengan operator kesetaraan pada program Java. Ini adalah operator biner yang disediakan dan digunakan untuk membandingkan tipe primitif dan juga objek. Dalam hal membandingkan tipe data primitif seperti boolean, int, float, maka operator "==" dapat bekerja dengan baik.

Namun, ketika harus membandingkan objek-objek, maka operator "==" dapat membuat bingung dibandingkan saat anda menggunakan method equals() di Java. Operator "==" akan membandingkan dua objek berdasarkan referensi memori. Jadi operator "=="  akan mengembalikan nilai true hanya jika dua referensi objek yang di bandingkan mewakili objek yang sama persis, selain itu:


Perbedaan utama antara operator "==" dan method equals  adalah bahwa "==" digunakan untuk membandingkan metode primitif sementara method equals() disarankan untuk memeriksa persamaan objek. Perbedaan lain di antara keduanya adalah bahwa, jika "==" dan equals() digunakan untuk membandingkan objek maka operator "==" hanya mengembalikan nilai true jika kedua referensi mengarah ke objek yang sama. 

Sementara itu method equals() dapat mengembalikan nilai true atau false berdasarkan penerapannya dari overidding. Salah satu kasus yang populer adalah membandingkan dua String di Java dimana kasus == dan equals() mengembalikan hasil yang berbeda.


Perbandingan string adalah skenario umum ketika menggunakan kedua metode operator "==" dan method equals(). Karena kelas java.lang.String meng-override method equals(), maka akan mengembalikan nilai true jika dua objek String berisi konten yang sama. Tapi operator "==" hanya akan mengembalikan nilai true jika dua referensi mengarah ke objek yang sama.

Berikut adalah contoh untuk membandingkan dua String pada program Java untuk persamaan menggunakan metode "==" dan method equals () yang pasti akan menghapus beberapa keraguan anda.

Kesimpulan 

  1. Gunakan operator "==" untuk membandingkan nilai primitif mis. boolean, int, char dll, sedangkan penggunaan method equals() adalah untuk membandingkan objek di Java. 

  2. Operator "==" mengembalikan nilai true jika dua referensi memiliki objek yang sama. Hasil method equal () akan tergantung pada implementasi overriden. 

  3. Untuk membandingkan String maka gunakan method equals() daripada menggunakan operator persamaan "==".

Share on Facebook
Share on Twitter
Share on Google+

Artikel Menarik Lainnya :