Memahami metoda toString kelas Object di program Java
Memahami Metoda toString Kelas Object Di Program Java
Kelas Object berada di puncak teratas hierarki turunan kelas di Java. Langsung maupun tidak, semua kelas di Java adalah turunan dari kelas Object. Kelas turunan akan mewarisi metoda yang dimiliki oleh kelas Object, termasuk di sini metoda spesial toString. Metoda toString akan mengembalikan nilai string yang merupakan representasi obyek.

Berikut ini adalah contoh program Java yang mendefinisikan kelas TitikKoordinat. Koordinat adalah bilangan yang menunjukkan lokasi suatu titik dalam garis. Garis yang dimaksud adalah garis yang sejajar dengan sumbu x (absis) dan sumbu y (ordinat). Hasil kompilasi TitikKoordinat.class disimpan di direktori c:\filejava\javaapp\kelas\koordinat.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// Nama file : TitikKoordinat.java
// Mendefinisikan kelas TitikKoordinat

// Meletakkan kelas ke paket
package koordinat;

// Deklarasi kelas
public class TitikKoordinat {

   // Deklarasi variabel kelas (data field)
   private int x;
   private int y;

   // Konstruktor tanpa argumen (parameter)
   public TitikKoordinat() {
      // Secara implisit memanggil konstruktor tanpa argumen 
      // dari kelas Obyect.
   }

   // konstruktor kedua
   public TitikKoordinat(int x, int y) {
      this.x = x;
      this.y = y;
   }

   // Accessor sumbu x
   public int getX() {
      return x;
   }

   // Mutator sumbu x
   public void setX(int x) {
      this.x = x;
   }

   // Accessor sumbu y
   public int get() {
      return y;
   }

   // Mutator sumbu y
   public void setY(int y) {
      this.y = y;
   }
}

Kelas TitikKoordinat secara implisit adalah turunan kelas Object. Karena turunan kelas Object, kelas TitikKoordinat mewarisi semua metoda yang dimiliki kelas Object termasuk metoda toString. Kelas TitikKoordinat mendeklarasikan dua variabel kelas yaitu x dan y. Saat obyek dari kelas TitikKoordinat dikonstruksi, dua data field x dan y diberi nilai integer default 0.

Untuk mendemonstrasikan atau menguji metoda toString default yang diwarisi dari kelas Object, Anda dapat mendeklarasikan kelas main DemoTitikKoordinat1 seperti program berikut ini:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Mengimpor kelas
import koordinat.TitikKoordinat;
import javax.swing.JOptionPane;

// Deklarasi kelas
public class DemoTitikKoordinat1 {

   // Metoda main
   public static void main(String[ ] args) {

      String str;

      //Membuat obyek dari kelas TitikKoordinat
      TitikKoordinat titik = new TitikKoordinat(3, 7);

      // Menampilkan hasil metoda toString()
      str = "Menggunakan metoda toString() default dari kelas Object.";
      str += "\nHasil metoda toString : " + titik;

      JOptionPane.showMessageDialog(null, str, "Metoda toString()",
         JOptionPane.INFORMATION_MESSAGE);

      // Mengakhiri aplikasi
      System.exit(0);

   }
}

Baris nomor 18 adalah pernyataan untuk mencetak obyek TitikKoordinat yang diwakili oleh variabel acuan titik yang mengacu ke obyek dari kelas TitikKoordinat. Secara internal, pernyataan tersebut sama dengan memanggil metoda toString kelas Object. Panggilan ke metoda toString menghasilkan nilai string koordinat.TitikKoordinat@934b1.

Format string ini terdiri dari nama kelas TitikKoordinat, @ dan versi nilai hexadecimal dari hashcode obyek. Nilai default metoda hashCode secara khusus diimplementasikan dengan mengkonversi nilai alamat memori obyek ke nilai integer. Bila sebuah kelas yang digunakan diimpor dari suatu paket, maka nama paket juga disertakan (koordinat).

Memahami metoda toString kelas Object di Java

Dapat diperhatikan bahwa string yang dihasilkan kurang deskriptif dan tidak menggambarkan obyek dari kelas TitikKoordinat itu sendiri. Untuk menghasilkan nilai string yang lebih mempunyai arti, Anda perlu mendeklarasikan ulang metoda toString di kelas TitikKoordinat dengan nama, tipe nilai yang dikembalikan dan parameter, baik jumlah, urutan maupun tipe data yang sama.

Berikut ini adalah kode program kelas TitikKoordinat yang mendeklarasikan ulang metoda toString. Metoda toString dari kelas Object ini dideklarasikan ulang sama persis di kelas TitikKoordinat dan dikenal dengan istilah overriding.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// Nama file : TitikKoordinat.java
// Mendefinisikan kelas TitikKoordinat
 
// Meletakkan kelas ke paket
package koordinat;
 
// Deklarasi kelas
public class TitikKoordinat {
 
   // Deklarasi variabel kelas (data field)
   private int x;
   private int y;
 
   // Konstruktor tanpa argumen (parameter)
   public TitikKoordinat() {
      // Secara implisit memanggil konstruktor tanpa argumen 
      // dari kelas Object.
   }
 
   // konstruktor kedua
   public TitikKoordinat(int x, int y) {
      this.x = x;
      this.y = y;
   }
 
   // Accessor sumbu x
   public int getX() {
      return x;
   }
 
   // Mutator sumbu x
   public void setX(int x) {
      this.x = x;
   }
 
   // Accessor sumbu y
   public int getY() {
      return y;
   }
    
   // Mutator sumbu y
   public void setY(int y) {
      this.y = y;
   }
 
   // Overriding metoda toString() dari kelas Object
   // Menghasilkan nilai string yang menggambarkan kelas TitikKoordinat
   public String toString() {
      return "[" + x + ", " + y + "]";
   }
}

String yang dikembalikan atau dihasilkan oleh metoda toString yang diwarisi secara default dari kelas Object kurang deskriptif. Setiap subclass dapat mendeklarasikan ulang metoda tersebut dan memberi implementasi berbeda yang lebih menggambarkan obyek subclass.

Baris nomor 48 – 50 adalah deklarasi ulang metoda toString di kelas TitikKoordinat (method overriding). Kelas TitikKoordinat menggunakan metoda toString yang dideklarasikan sendiri untuk lebih memberi kejelasan obyek kelas TitikKoordinat, sedangkan metoda toString di superclass diabaikan. Bila diperlukan, hendaknya kelas turunan mendeklarasikan ulang metoda yang dimiliki oleh superclass.

Untuk mendemonstrasikan atau menguji metoda toString yang ada di kelas TitikKoordinat, Anda dapat mendeklarasikan kelas main DemoTitikKoordinat2. Berikut ini adalah contoh program dan hasil eksekusinya:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Nama file : DemoTitikKoordinat2.java
// Mendemonstrasikan kelas TitikKoordinat yang telah dimodifikasi
 
// Mengimpor kelas
import javax.swing.JOptionPane;
import koordinat.TitikKoordinat;
 
// Deklarasi kelas DemoTitikKoordinat2
public class DemoTitikKoordinat2 {
 
   // Metoda main
   public static void main(String[ ] args) {
 
      String str;
 
      // Membuat objek dari kelas TitikKoordinat
      TitikKoordinat titik2 = new TitikKoordinat(7, 10);
 
      str = "Menggunakan Kelas TitikKoordinat";
      str += "\nKoordinat x : " + titik2.getX();
      str += "\nKoordinat y : " + titik2.getY();
      str += "\nTitik koordinat : " + titik2;
 
      // Titik koordinat dimodifikasi
      str += "\n\nMemodifikasi koordinat : x = 12 dan y = 15";
      titik2.setX(12);
      titik2.setY(15);
      str += "\nKoordinat x : " + titik2.getX();
      str += "\nKoordinat y : " + titik2.getY();
      str += "\nTitik koordinat : " + titik2;
 
      // Menampilkan hasil
      JOptionPane.showMessageDialog(null, str, "Kelas TitikKoordinat",
         JOptionPane.INFORMATION_MESSAGE);
 
      // Mengakhiri aplikasi berpenampilan GUI
      System.exit(0);
   }
}

Memahami metoda toString kelas Object di Java

Baris nomor 22 dan 30 adalah pernyataan untuk menggabungkan string “Titik koordinat” dengan string hasil representasi obyek dari kelas TitikKoordinat yang diacu variabel titik2. Anda hanya perlu menyertakan variabel acuan titik2 untuk menghasilkan string yang merupakan representasi obyek dari kelas TitikKoordinat atau Anda dapat menggunakan titik2.toString untuk menghasilkan nilai string yang sama.