A. APA ITU POLYMORPHISM
Polymorphism berasal dari bahasa Yunani:
- Poly = banyak
- Morph = bentuk
Dalam PBO, polymorphism adalah kemampuan suatu objek untuk memiliki banyak bentuk atau perilaku yang berbeda, tergantung bagaimana objek itu dipanggil atau kelas mana yang menjadi referensinya.
- Objek yang sama, tetapi perilakunya bisa berbeda
- Bergantung pada class mana yang mengimplementasikannya.
Ada 2 jenis polymorphism dalam Java:
- Compile-time polymorphism (Method Overloading)
- Runtime polymorphism (Method Overriding) — yang paling penting dalam pewarisan.
B. Analogi Polymorphism (Sangat Mudah Dipahami)
1. Analogi Suara Hewan
Semua hewan bisa “bersuara”, tetapi suaranya berbeda:- Kucing: meong
- Anjing: guk guk
- Ayam: kukuruyuk
Method sama: suara() → hasil berbeda.
2. Analogi Tombol Power
Tombol power ada di:- TV → menghidupkan TV
- Laptop → menghidupkan laptop
- AC → menghidupkan AC
Bentuk tombol sama → fungsinya berbeda tergantung perangkatnya.
Itulah Polymorphism.
3. Analogi Guru
Seorang guru bisa berperan sebagai:- Pengajar di kelas
- Pembimbing ekstrakurikuler
- Wali kelas
Orang yang sama → peran berbeda → perilaku berbeda.
C. Contoh Polymorphism (Java) – Bentuk Paling Dasar
Class Hewan.java (Superclass)
public class Hewan { public void suara() { System.out.println("Hewan mengeluarkan suara..."); }}
Class Kucing.java(Subclass)
public class Hewan {public void suara() {System.out.println("Hewan mengeluarkan suara...");}}
public class Kucing extends Hewan {
@Override public void suara() { System.out.println("Meow!"); }}
Class Anjing.java(Subclass)
public class Kucing extends Hewan {@Overridepublic void suara() {System.out.println("Meow!");}}
public class Anjing extends Hewan {
@Override
public void suara() {
System.out.println("Guk Guk!");
}
}
Class Main.java
public class Anjing extends Hewan {
@Override
public void suara() {
System.out.println("Guk Guk!");
}
}
public class Main {public static void main(String[] args) {Hewan h1 = new Kucing();Hewan h2 = new Anjing();h1.suara(); // Meow!h2.suara(); // Guk Guk!}}
Letak Polymorphism:
Override di subclass
Kucingmengoverridesuara()Anjingmengoverridesuara()
Upcasting di Main
- Hewan h1 = new Kucing();
Hewan h2 = new Anjing();
Pemanggilan method sesuai objek asli
h1.suara()memanggil suara Kucingh2.suara()memanggil suara Anjing
Inilah polymorphism: satu interface (Hewan) banyak perilaku (suara berbeda).
Tags
DDPPLGV2-PBO