Pinned

Cara Bertukar Objek Java dan Fungsinya

Asumsikan sebuah class dipanggil pada program dengan nama "Car" beserta atribut isinya. Kemudian diciptakan dua objek dari Car, yaitu car1 dan car2, berikut adalah cara yang dapat digunakan untuk dapat melakukan pertukaran object antara car1 dan car2.

3 Contoh Cara Bertukar Object pada Java
Ilustrasi Object pada Java

Sebelum memahami lebih dalam materi tentang Cara Bertukar Objek Java dan Fungsinya, terlebih dahulu pelajari materi tentang: Cara Menciptakan Objek Java dan Fungsinya [klik], Alokasi Memori Java Objek dan Fungsinya [klik], dan Class dan Object Java dan Fungsinya [klik].

Cara Sederhana untuk Menukar Anggota Class 

Contoh: Jika class hanya memiliki satu atribut integer dengan nama "no" (nomor polisi), maka nilai tersebut bisa ditukar sama seperti halnya menukar nilai anggota dari dua object Car.

// Program java

// mendemonstrasikan

// pertukaran dua objek

// anggota.

 

// sebuah car dengan class

// number car.

class Car

{

int no; 

Car(int no

{ this.no = no; } 

 

// Sebuah class menggunakan

// objek car

class Main 

 

/* tukar c1 dan c2 */ 

public static void swap(Car c1, Car c2)

int temp = c1.no; 

c1.no = c2.no; 

c2.no = temp;

 

/* Driver method */

public static void main(String[] args

Car c1 = new Car(1); 

Car c2 = new Car(2); 

swap(c1, c2); /*tukar nilai*/

System.out.println("c1.no = "

+ c1.no); 

System.out.println("c2.no = "

+ c2.no); 

}

 

}

Output:
c1.no = 2
c2.no = 1


Jika Nilai Anggota dari Car Tidak Diketahui
Solusi sebelumnya dapat dijalankan jika hanya terdapat satu anggota "no" pada class Car. Namun, bagaimana jika tidak diketahui nilai anggota dari Car atau list anggota nilainya terlalu besar. Hal ini adalah situasi umum dimana class menggunakan beberapa class lain dan tidak dapat mengakses anggota class. Berikut solusi yang dapat digunakan.

Contoh:

// Program java

// mendemonstrasikan

// pertukaran sederhana,

// dimana objek referensi

// tidak berfungsi.

 

// constructor car dengan

// angka dan nama.

class Car 

{

 

int model, no; 

 

/* Constructor */

Car(int model, int no){ 

this.model = model; 

this.no = no;} 

 

// method utility untuk

// mencetak nilai car.

void print() { 

System.out.println("no = " 

+no 

+", model = "

+ model);}

 

 

// sebuah class yang

// menggunakan Car.

class Main 

{

 

// swap() tidak dapat menukar

// nilai c1 dan c2.

public static void swap(Car c1, Car c2)

Car temp = c1; 

c1 = c2; 

c2 = temp;

 

/* Driver method */

public static void main(String[] args

Car c1 = new Car(101, 1); 

Car c2 = new Car(202, 2); 

swap(c1, c2); 

c1.print(); 

c2.print(); 

}

 

}

Output:
no = 1, model = 101
no = 2, model = 202

Dari hasil ouput program sebelumnya, nilai objek tidak mengalami pertukaran apapun. Telah dibahas pada materi sebelumnya, bahwa parameter hanya dilewati oleh nilai pada Java. Jadi, ketika c1 dan c2 ditukar (swap()), maka fungsi swap() akan menciptakan duplikasi dari referensi.

Solusi dari permasalahan ini adalah menggunakan wrapper class (class pembungkus). Jika diciptakan wrapper class yang mengandung nilai refernsi dari Car, maka dapat dilakukan pertukaran nilai car dengan cara swapping referensi dari wrapper class.

Contoh:

// Program Java

// mendemonstrasikan

// penggunaan wrapper class

// untuk menukar objek.

 

/* car dengan model dan no */

class Car 

 

int model, no; 

 

/* Constructor */

Car(int model, int no){ 

this.model = model; 

this.no = no;} 

 

// Utility method untuk

// mencetak rincian object.

void print(){ 

System.out.println("no = "

+no

+", model = "

+ model);} 

 

 

// Wrapper class digunakna

// untuk menukar. 

class CarWrapper 

 

Car c; 

/* Constructor */

CarWrapper(Car c) {this.c = c;} 

 

 

// sebuah class yang

// menggunakan car dan swap

// objek dari car menggunakan

// CarWrapper.

class Main 

 

// method ini menukar object

// car dapat wrapper.

 

/* cw1 dan cw2 */

public static void swap(CarWrapper cw1, CarWrapper cw2

Car temp = cw1.c; 

cw1.c = cw2.c; 

cw2.c = temp; 

 

/* Driver method */

public static void main(String[] args

Car c1 = new Car(101, 1); 

Car c2 = new Car(202, 2); 

CarWrapper cw1 = new CarWrapper(c1); 

CarWrapper cw2 = new CarWrapper(c2); 

swap(cw1, cw2); 

cw1.c.print(); 

cw2.c.print(); 

}

 

}

Output:
no = 2, model = 202
no = 1, model = 101

Penggunaan wrapper class dapat bekerja sebagai solusi bahkan jika user class tidak memiliki akses terhadap anggota dari class dimana object-nya akan ditukar.

5 komentar:

  1. Apa yang dimaksud dengan class dan object pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Hal pertama yang harus diketahui dari Java adalah Java merupakan bahasa pemrograman berorientasi object, dimana program Java terbuat dari object-object dan class.

      Hapus
    2. Object dalam dunia nyata adalah segala sesuatu yang memiliki keadaan dan perilaku. Contoh, kipas angin, dimana kipas angin tersebut memiliki status berupa warna, sayap, merek, dan lain sebagainya. Dengan perilaku dari kipas angin adalah baling-baling atau kipasnya berputar. Bahkan dalam bentuk perangkat lunak. object-nya tetap mirip dengan object pada dunia nyata. Object menyimpan status dalam suatu bidang, yaitu variabel dalam bahasa pemrograman dan perilaku dijelaskan dengan suatu method yang disebut dengan fungsi.

      Hapus
    3. Object selalu diciptakan untuk sebuah class. Class adalah sesuatu yang dapat diperlakukan sebagai template yang menampung bidang dan method yang berkaitan dengan sekelompok object serupa. Contoh, sebuah class dapat dimana sebagai "hewan" yang terdiri dari beberapa bidang berupa: ras, anggota badan hewan, warna, dengan method: makan, berlari, tidur, dan lain sebagainya. Jadi, class hanyalah sebuah template untuk mendeskripsikan sekelompok object yang serupa.

      Hapus
    4. Objek dari suatu class dapat berkomunikasi melalui method. Inilah dasar komunikasi pada bahasa pemrograman Java.

      Hapus

Hubungi admin melalui Wa : +62-896-2514-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 come from small things -