Lompat ke konten Lompat ke sidebar Lompat ke footer

Object Class Java dan Fungsinya

Dalam bahasa pemrograman Java, semua kelas secara inheren meng-extend kelas Object, yang merupakan kelas dasar untuk semua objek dalam Java. Kelas Object menyediakan beberapa metode bawaan yang dapat digunakan oleh semua objek, serta menyediakan fungsionalitas dasar yang penting dalam pemrograman berorientasi objek. Dalam artikel ini, akan dijelajahi kelas Object dalam Java beserta fungsinya.

Sebelum lebih lanjut mempelajari materi tentang Object Class Java dan Fungsinya, terlebih dahulu pelajari materi tentang: Static Method dan Instance Method Java dan Fungsinya, Cara Menentukan Nilai Variabel Static Final Java dan Fungsinya, dan Return Covariant Java dan Fungsinya.

Object Class ditampilkan dalam java.lang package dalam bahasa pemrograman Java. Setiap class dalam Java secara langsung ataupun tidak langsung adalah derived dari object class. Jika class tidak extend dari class apapun maka secara langsung child class dari object, dan jika extend ke class lainnya maka akan derived secara tidak langsung. Karena itulah, maka method class object tersedia untuk semua class Java. Object class bertindak sebagai akar dari hirarki inheritance dalam program Java apapun.

Fungsi Utama Kelas Object dalam Java:
  • Metode equals(Object obj): Metode ini digunakan untuk membandingkan dua objek untuk kesamaan. Secara default, metode ini mengimplementasikan perbandingan referensi, tetapi sering kali di-overwrite dalam kelas turunan untuk membandingkan nilai-nilai yang sesuai.
  • Metode hashCode(): Metode ini mengembalikan nilai hash code dari objek. Hash code digunakan dalam struktur data seperti tabel hash untuk penyimpanan dan pencarian cepat objek dalam kumpulan data.
  • Metode toString(): Metode ini mengembalikan representasi string dari objek. Implementasi default dari metode ini mengembalikan string yang berisi nama kelas dan alamat memori objek, tetapi seringkali di-overwrite untuk memberikan representasi yang lebih bermakna dari objek.
  • Metode getClass(): Metode ini mengembalikan objek Class yang mewakili kelas dari objek. Class adalah objek yang merepresentasikan metadata tentang kelas, seperti nama kelas, informasi tipe, dan lain-lain.
  • Metode clone(): Metode ini digunakan untuk membuat salinan dangkal (shallow copy) dari objek. Metode ini meng-override implementasi default, dan kelas yang ingin mendukung operasi cloning harus mengimplementasikan antarmuka Cloneable dan meng-override metode clone().
  • Metode finalize(): Metode ini dipanggil oleh JVM saat objek tidak lagi memiliki referensi dan akan dihapus oleh garbage collector. Meskipun metode ini jarang digunakan karena tidak dapat diandalkan untuk pengelolaan sumber daya yang penting, namun masih tersedia untuk pemrosesan akhir sebelum penghapusan objek.

Beberapa Method dalam Class Object:
  • satu, toString(): menyediakan representasi String dari object dan digunakan untuk mengkonversi object ke String. Nilai default method toString() dari return object class sebuah String terdiri dari nama class yang merupakan instance dari object pada tanda '@' dan unsigned hexadecimal dari hash code dari object. Lebih jelas, toString dedefinisikan sebagai berikut:

/* Default behavior dari toString() untuk mencetak class name, kemudian @, kemudian hexadecimal representasi dari hash code dari sebuah object */
public String toString() {return getClass().getName() + "@" + Integer.toHexString(hashCode());}

Salalu disarankan untuk overriding method toString() untuk mendapatkan representasi String dari sebuah object untuk overriding lebih banyak dari method toString().

Catatan: dimanapun dilakukan percobaan untuk mencetak object referensi, maka secara internal method toString() akan dipanggil.

Student s = new Student();
/* Berikut ini dua Statement yang bernilai sama */
System.out.println(s);
System.out.println(s.toString());

  • dua, hashCode(): Untuk setiap object pada Java, maka JVM akan generate sebuah angka unik yang merupakan sebuah hashcode yang akan mengembalikan nilai integer berbeda untuk object yang berbeda. Sebuah kesalahan umum mengenai method ini adalah hashCode() akan mengembalikan nilai adress dari object, dimana hal ini tidaklah benarMethod ini akan mengkonversi internal address dari object dan mengubahnya menjadi integer menggunakan algoritma tertentu. Method hashCode() adalah native karena dalam Java sangat tidak mungkin untuk menemukan alamat dari sebuah object, sehingga digunakan bahasa seperti C/C++ untuk menemukan alamat dari object tersebut.

Kegunaan dari Method hashCode(): Nilai return hash digunakan untuk mencari object dalam sebuah koleksi pada Java. JVM menggunakan hashCode method ketika object disimpan ke dalam hashing yang berkaitan dengan struktur data seperti HashSet, HashMap, Hashtable, dan lain sebagainya. Keunggulan utama dari penyimpanan object berbasis hash code adalah proses pencarian yang menjadi lebih mudah.

Catatan: Overriding dari method hashCode() harus diselesaikan untuk setiap object yang di-generate dengan angka unik. Contoh, untuk class Student dapat return roll no. dari student yang berasal dari method hashCode() yang bernilai unik.

Baca Juga:

Contoh:

// Program Java

// mendemonstrasikan cara

// kerja dari hashCode() dan

// toString().

public class Student 

static int last_roll = 100

int roll_no; 

 

/* Constructor */

Student(){ 

roll_no = last_roll; 

last_roll++;} 

 

/* Overriding hashCode() */

@Override

public int hashCode() 

{return roll_no;} 

 

/* Driver code */

public static void main(String args[]){ 

Student s = new Student(); 

// dua statement berikut ini

// bernilai sama. 

System.out.println(s); 

System.out.println(s.toString());} 

}

Output:
Student@64
Student@64

Catatan: 4*16^0 + 6*16^1=100

  • tiga, equals(Object obj): Bandingkan nilai object yang dimiliki dengan nilai object dari 'this' atau posisi object dimana method tersebut dipanggil. Ini memberikan cara umum untuk membandingkan object secara bernilai setara. Cara ini direkomendasikan untuk overriding method equals(Object obj) untuk mendapatkan kesamaan kondisi dari object.

Catatan: Secara umum sangat penting untuk melakukan overriding hashCode() dimanapun method this overriding, tujuannya adalah untuk menjaga kontrak umum dari method hashCode, yang menyatakan bahwa object yang bernilai sama harus memiliki hash code yang bernilai sama pula.

  • empat, getClass(): Return dari class object yang berasal dari object 'this' dan digunakan untuk mendapat class runtime actual dari objectHl juga bisa digunakan untuk mendapatkan metadata dari class this. Nilai return class object adalah object yang terkunci oleh method static synchronized dari class yang ditampilkan. Dan karena final, maka tidak dapat dilakukan overriding.

Contoh:

// Program Java untuk

// mendemonstrasikan cara

// kerja getClass(). 

public class Test 

public static void main(String[] args){ 

Object obj = new String("SusuKudaLiar"); 

Class c = obj.getClass(); 

System.out.println("Class"

+" dari Object obj adalah : "

+c.getName());} 

}

Output:
Class dari Object obj adalah : java.lang.String

Catatan: Setelah loading sebuah file .class,  maka JVM akan menciptakan object dari tipe java.lang.Class dalam area HeapObject class ini dapat digunakan untuk mendapatkan informasi level class. Secara luas hal ini digunakan sebagai  suatu Repleksi.

  • lima, finalize() method: method ini dipanggil sesaat sebelum object menuju ke garbage collectorMethod ini dipanggil oleh Garbage Collection bagian dalam ketika garbage collector memutuskan bahwa tidak ada lagi nilai referensi dalam object tersebut. Dapat dilakukan overriding method finalize() untuk membuang sumber daya sistem, melakukan aktivitas cleanup, dan meminimalisasi kebocoran memori. Contohnya sebelum menghancurkan object Servlet web container, selalu dipanggil method finalize untuk melakukan aktivitas sesi clean up.

Catatan: Method finalize dipanggil hanya sekali dalam object meskipun object tersebut berhak untuk mendapatkan garbage collection beberapa kali.

Contoh:

// Program Java

// mendemonstrasikan cara

// kerja finalize().

public class Test 

public static void main(String[] args){ 

Test t = new Test(); 

System.out.println(t.hashCode()); 

 

t = null

 

// Memanggil garbage collector

System.gc(); 

System.out.println("e.n.d");} 

@Override

 

protected void finalize() 

{System.out.println("Method"

+" finalisasi dipanggil");} 

}

Output:
366712642
e.n.d
Method finalisasi dipanggil

  • enam, clone(): mengembalikan nilai new object yang bernilai sama dengan object-nya. Untuk method clone() juga berkaitan dengan Clone().
  • tujuh, tersisa tiga method wait()notify(), dan notifyAll() yang berkaitan dengan kongruensi.

Fungsionalitas Tambahan Kelas Object dalam Java:
  • Penggunaan sebagai Pengingat untuk Metode equals() dan hashCode(): Kelas Object menyediakan implementasi default untuk metode equals() dan hashCode(). Jika kelas ingin mendukung perbandingan dan pencarian berbasis nilai, kelas tersebut harus di-overwrite metode equals() dan hashCode() sesuai dengan kebutuhan aplikasi.
  • Mengelola Objek pada Tingkat Dasar: Kelas Object menyediakan fungsionalitas dasar untuk pengelolaan objek, seperti alokasi memori, penghapusan objek yang tidak lagi terpakai, dan lain-lain. Hal ini memungkinkan JVM untuk mengelola objek secara efisien selama siklus hidup aplikasi.
  • Interaksi dengan Garbage Collector: Kelas Object berinteraksi dengan garbage collector dalam proses penghapusan objek yang tidak lagi digunakan. Metode finalize() dapat digunakan untuk melakukan pembersihan atau pembebasan sumber daya sebelum objek dihapus oleh garbage collector.
  • Representasi Standar Objek: Kelas Object menyediakan representasi standar untuk semua objek dalam Java. Ini termasuk representasi string objek, hash code, kelas objek, dan metode untuk perbandingan objek.

Kesimpulan

Kelas Object adalah kelas dasar untuk semua objek dalam Java dan menyediakan fungsionalitas dasar yang penting dalam pemrograman berorientasi objek. Dengan menggunakan metode dan fungsionalitas yang disediakan oleh kelas Object, pengembang dapat memanfaatkan kemampuan dasar untuk membandingkan, mencetak, dan mengelola objek dalam aplikasi Java dengan lebih efisien. Dengan pemahaman yang baik tentang kelas Object dan metode yang disediakannya, pengembang dapat memanfaatkan fitur-fitur ini secara efektif dalam pengembangan aplikasi Java.

Referensi Tambahan:

Artikel ini didedikasikan kepada: Tania Rosa Ristanti, Tasya Mayta Salsabella, Udhkhiyyatun Nisa, Valentinus Dwi Bagus Bramantya, dan Wahyu Aditya Yunanto.

5 komentar untuk "Object Class Java dan Fungsinya"

  1. Object class adalah parent class dari semua class pada Java secara default. Dengan kata lain, object class adalah class Java yang paling atas. Contoh, method getObject() yang mengembalikan object tetapi bisa dari jenis apa pun seperti object karyawan, mahasiswa, dan lain sebagainya, user dapat menggunakan referensi class object untuk merujuk object tersebut.

    BalasHapus
  2. Apa yang dimaksud dengan kelas object pada bahasa pemrograman berorientasi object?

    BalasHapus
    Balasan
    1. Class object mendefinisikan status dan behavior dasar yang harus dimiliki oleh semua object, seperti kemampuan untuk membandingkan diri sendiri dengan object lain, guna mengkonversinya menjadi bentuk string, menunggu variabel kondisi tertentu yang digunakan untuk memberitahukan object lain bahwa variabel kondisi telah dilakukan perubahan, dan mengembalikan class object.

      Hapus
  3. Apa yang dimaksud dengan object pada Java?

    BalasHapus
    Balasan
    1. Object memiliki status dan perilaku. Contoh: Seekor anjing memiliki suatu kondisi atau keadaan status seperti: warna, nama, ras. Dan perilaku yang dimiliki anjing seperti menggoyangkan ekor, mengonggong, dan makan.

      Object merupakan bentuk turunan dari sebuah class pada Java, dimana class dapat didefinsiikan sebagai suatu template atau cetak biru yang menggambarkan perilaku atau keadaan yang didukung oleh object jenisnya dalam bahasa pemrograman Java.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -