Kamis, 02 Juni 2022

3.6.3 MEMBUAT KODE PROGRAM APLIKASI PBO YANG MENERAPKAN POLYMORPHISM DENGAN OVERLOADING DAN OVERRIDING


Contoh Implementasi Overloading pada Program


 

Oke misalkan mau mencari rerata suatu nilai maka, kita buat saja class RerataNilai yang diisi dengan beberapa tipe data int dan double. Selanjutnya buat tiga method average yang masing-masing memiliki fungsionalitas yang berbeda-beda. Kode programnya bisa berupa seperti di bawah ini:



public class RerataNilai {

int x1, x2, x3;

double y1, y2;


public int average(int x1, int x2) {

return (x1+x2)/2;

}

public double average(double y1, double y2) {

return (y1+y2)/2;

}

public int average(int x1, int x2, int x3) {

return (x1+x2+x3)/3;

}

}

Bisa dilihat pada method average di atas yang memiliki parameter dan fungsionalitas yang berbeda-beda namun, masih dalam satu nama method yang sama. Nah itu yang dinamakan overloading. Selanjutnya tulislah listing program berikut ini sebagai pengetesan.



public class TesTugas1 {

public static void main(String args[]){

RerataNilai rn = new RerataNilai();

System.out.println("Reratai 21 dan 13 adalah : " + rn.average(21, 13));

System.out.println("Reratai 19.3 dan 39.5 adalah : " + rn.average(19.3, 39.5));

System.out.println("Reratai 123, 567 dan 744 adalah : " + rn.average(123, 567, 744));

}

}

Lakukan kompilasi pada program diatas dan dijalankan. Jika tampilan di layar tampak seperti di bawah ini, maka selamat program anda sudah benar. Jika tidak sama, pasti ada kesalahan kecil yang dibuat.

rerata

 

Contoh Implementasi Overriding pada Program

Misalkan saja kita memiliki class Katak. Class tersebut diisi dengan dua attribute yaitu umur (int) dan nama (String). Kemudian kita buat kosntruktor katak, jika menggunakan IDE IntelliJ bisa gunakan shortcut Alt+Insert. Selanjutnya bisa ditambahkan method caraBergerak yang mana bila method tersebut dipanggil maka akan  mengeluarkan output “Melompat”. Buat juga getter untuk masing-masing attribute. Kode selengkapnya seperti di bawah ini:



public class Katak {

int umur;

String nama;


public Katak(int umur, String nama) {

this.umur = umur;

this.nama = nama;

}

public int getUmur() {

return umur;

}

public String getNama() {

return nama;

}

public String caraBegerak() {

return "Melompat";

}

}

Lalu kita buat class childnya dengan nama Kecebong dan diisi dengan attribute panjangEkor (double). Buat konstruktor yang sama seperti pada Class Katak, namun ditambahkan dengan attribute panjangEkor. Nah inilah yang disebut overriding method, dimana method yang berbeda namun memiliki parameter yang sama atau ditambahkan parameter yang baru. Kemudian buat overriding method caraBergerak dengan output “Berenang”. Buat juga getter untuk masing-masing attribute.



public class Kecebong extends Katak {

double panjangEkor;


public Kecebong(int umur, String nama, double panjangEkor) {

super(umur, nama);

this.panjangEkor = panjangEkor;

}

public double getPanjangEkor() {

return panjangEkor;

}

@Override

public int getUmur() {

return super.getUmur();

}

@Override

public String getNama() {

return super.getNama();

}

@Override

public String caraBegerak() {

return "Berenang";

}

}

Kemudian buatlah TesTugas2.java untuk pengetesan class-class yang sudah dibuat. Kodenya dapat berupa seperti di bawah ini:



public class TesTugas2 {

public static void main(String[] args) {

Katak O1 = new Katak(5, "Froggy");

Kecebong O2 = new Kecebong(2, "Junior Frog", 10);


System.out.println("Obyekr nama panjangEkor caraBergerak");

System.out.println("O1"+ O1.getUmur()+" "+ O1.getNama()+ " " + " " + O1.caraBegerak());

System.out.println("O2"+ O2.getUmur()+" "+ O2.getNama()+ " " + O2.getPanjangEkor()+ " "+ O2.caraBegerak());

}

}

Lakukan kompilasi pada program di atas dan jalankan. Jika tampilan outputnya sperti di bawah ini maka selamat Anda berhasil. Namun, jika berbeda maka pasti ada kesalahan kecil pada kode program yang anda buat.

kodok

Demikian artikel mengenai pembahasan overloading dan overriding pada pemrograman java ini saya buat. Bila ada kritik, saran, dan pertanyaan jangan malu-malu untuk dilontarkan. Semoga artikel ini bermanfaat bagi pembaca, bila tidak ya sudah gak papa :D.

0 komentar:

Posting Komentar