Back to blog
Fundamental

Memahami Polymorphism dalam OOP Menggunakan Analogi Sederhana

Ini adalah salah satu pilar Object-Oriented Programming (OOP) yang namanya paling terdengar menyeramkan. Mari kita buat menjadi sangat sederhana.

super admin·19 Juni 2026·2 min read
Memahami Polymorphism dalam OOP Menggunakan Analogi Sederhana
Article Content

Kata Rumit untuk Konsep yang Simpel

Saat belajar Pemrograman Berorientasi Objek (OOP) di Java, PHP, atau Python, kamu akan diajarkan 4 pilar utama: Encapsulation, Abstraction, Inheritance, dan Polymorphism.

Polymorphism (Polimorfisme) berasal dari bahasa Yunani: Poly (Banyak) dan Morph (Bentuk). Secara harfiah, artinya adalah "Banyak Bentuk". Dalam dunia coding, ini berarti satu perintah (fungsi) yang sama bisa menghasilkan tindakan yang berbeda-beda tergantung siapa yang dieksekusi.

Analogi Menekan Tombol "Play"

Bayangkan kamu memiliki sebuah Remote Control Universal yang hanya memiliki satu tombol: Tombol PLAY.

  • Jika kamu menekan tombol "Play" ke arah Radio, radio akan mengeluarkan suara musik.
  • Jika kamu menekan tombol "Play" ke arah Televisi, TV akan menampilkan gambar dan suara film.
  • Jika kamu menekan tombol "Play" ke arah Mesin Cuci Otomatis, mesin akan mulai memutar air.

Perintahnya SAMA PERSIS (Tekan Play). Tapi mesin penerimanya mengerti dan merespon dengan bentuk tindakan (implementasi) yang berbeda-beda. Itulah Polymorphism!

Bagaimana Bentuk Kodenya?

Di dalam OOP, kita biasanya mencapai ini melalui Inheritance (Pewarisan) atau Interface. Kita membuat kelas Induk (Parent) bernama Hewan yang memiliki metode (perintah) Bersuara().

// Class Induk
class Hewan {
  Bersuara() {
    console.log("Suara hewan misterius...");
  }
}

// Class Anak 1 (Bentuk Kucing)
class Kucing extends Hewan {
  // Kucing MENIMPA (Override) suara induknya
  Bersuara() {
    console.log("Meow! Meow!");
  }
}

// Class Anak 2 (Bentuk Anjing)
class Anjing extends Hewan {
  // Anjing MENIMPA suara induknya
  Bersuara() {
    console.log("Guk! Guk!");
  }
}

Keajaiban Polymorphism dalam Aksi

Kini, saat kita menaruh hewan-hewan tersebut ke dalam sebuah array, kita tidak perlu mengecek secara manual "Apakah ini kucing atau anjing?". Kita cukup menyuruh mereka semua untuk Bersuara()!

const peliharaanBudi = [new Kucing(), new Anjing(), new Hewan()];

// Kita loop semuanya dengan perintah yang SAMA
peliharaanBudi.forEach(hewan => {
  hewan.Bersuara(); 
});

/* OUTPUT-NYA BERBEDA-BEDA:
   Meow! Meow!
   Guk! Guk!
   Suara hewan misterius...
*/

Kesimpulan

Polimorfisme membuat kodemu sangat fleksibel dan bebas dari blok if-else yang panjang. Di dunia nyata, ini dipakai saat kamu membuat tombol "Bayar". Entah user memilih Bank BCA, OVO, atau Kartu Kredit, sistem utamamu cukup memanggil fungsi .ProsesBayar() satu kali, dan masing-masing vendor pembayaran akan mengeksekusinya dengan cara mereka sendiri.

Mau langsung pakai template?

Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.

Browse Templates