#08 POLYMORPHISM

 

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:

  1. Compile-time polymorphism (Method Overloading)
  2. 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 Kucing extends Hewan {

    @Override
    public void suara() {
        System.out.println("Meow!");
    }
}
Class Anjing.java(Subclass)

public class Anjing extends Hewan {
    @Override
    public void suara() {
        System.out.println("Guk Guk!");
    }
}

Class Main.java

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

  • Kucing mengoverride suara()
  • Anjing mengoverride suara()

Upcasting di Main

  • Hewan h1 = new Kucing();
  • Hewan h2 = new Anjing();

Pemanggilan method sesuai objek asli

  • h1.suara() memanggil suara Kucing
  • h2.suara() memanggil suara Anjing

Inilah polymorphism: satu interface (Hewan) banyak perilaku (suara berbeda). 

Posting Komentar

Lebih baru Lebih lama

Formulir Kontak