Mengenal Polymorphism: Definisi, Tipe dan Contohnya

Dalam dunia pemrograman, polymorphism merujuk pada kemampuan suatu objek atau fungsi untuk memiliki banyak bentuk atau perilaku. Konsep ini memungkinkan entitas seperti variabel, fungsi, atau objek untuk berperilaku dengan cara yang berbeda tergantung pada konteksnya. Dalam artikel ini, kita akan menjelaskan apa yang dimaksud dengan polymorphism, menyoroti perbedaan antara metode overloading dan overriding, menyebutkan beberapa tipe polymorphism, memberikan contoh konkretnya, dan merangkum keunikan dari konsep ini.

Mau jadi Digital Marketer? Baca panduan lengkap Digital Marketing berikut.

Polymorphism: Entitas seperti Variabel

Polymorphism mengacu pada kemampuan suatu entitas untuk memiliki banyak bentuk atau perilaku. Dalam pemrograman berorientasi objek, ini sering terjadi ketika kelas induk memiliki metode atau properti yang kemudian dioverride oleh kelas anak, sehingga meskipun objek dari kelas anak tersebut dipanggil dengan referensi kelas induk, perilaku yang sesuai dengan kelas anak yang digunakan.

Mau jadi UI-UX Designer? Cek panduan lengkap UI-UX Design berikut.

Perbedaan Metode Overloading dan Overriding

1. Metode Overloading:
  • Definisi: Dalam metode overloading, beberapa metode dapat memiliki nama yang sama di dalam suatu kelas, tetapi dengan parameter yang berbeda.
  • Ditentukan oleh: Ditentukan oleh parameter dan tipe parameter.
  • Keputusan pada saat kompilasi: Keputusan dilakukan pada saat kompilasi.
  • Terjadi dalam satu kelas: Terjadi di dalam satu kelas.
2. Metode Overriding:
  • Definisi: Metode overriding terjadi ketika metode dengan nama yang sama ada di kelas induk dan kelas anak, dan kelas anak memberikan implementasi yang berbeda.
  • Ditentukan oleh: Ditentukan oleh tipe objek yang dihasilkan pada saat runtime.
  • Keputusan pada saat runtime: Keputusan dilakukan pada saat runtime.
  • Terjadi antara kelas induk dan anak: Terjadi antara kelas induk dan kelas anak.

Tertarik Jadi Software engineering? Baca panduan lengkap Software Engineering di sini.

Tipe-tipe Polymorphism

1. Compile-time Polymorphism (Polymorphism pada Waktu Kompilasi):
  • Dikenal juga sebagai: Static Polymorphism.
  • Contoh: Metode overloading adalah bentuk dari compile-time polymorphism. Keputusan diambil pada waktu kompilasi.
2. Runtime Polymorphism (Polymorphism pada Waktu Runtime):
  • Dikenal juga sebagai: Dynamic Polymorphism.
  • Contoh: Metode overriding adalah bentuk dari runtime polymorphism. Keputusan diambil pada saat runtime.
3. Ad-hoc Polymorphism:
  • Dikenal juga sebagai: Overloading.
  • Contoh: Metode overloading adalah contoh ad-hoc polymorphism di mana fungsi atau metode dapat memiliki beberapa bentuk berdasarkan parameter yang berbeda.

Tertarik jadi Graphic Designer? Baca panduan lengkap Graphic Design di sini.

Contoh Polymorphism

1. Metode Overloading:

class Calculator {
int add(int a, int b) {
return a + b;
}

double add(double a, double b) {
    return a + b;
}

}

2. Metode Overriding:

class Animal {
void sound() {
System.out.println(“Animal makes a sound”);
}
}

class Dog extends Animal {
void sound() {
System.out.println(“Dog barks”);
}
}

3. Polymorphism pada Waktu Runtime:

Animal myAnimal = new Dog();
myAnimal.sound(); // Output: Dog barks

Penutup

Polymorphism membawa fleksibilitas dan ekspresivitas dalam pemrograman berorientasi objek. Metode overloading memungkinkan kita untuk mendefinisikan beberapa metode dengan nama yang sama, sementara metode overriding memungkinkan kelas anak untuk memberikan implementasi yang berbeda dari metode yang ada di kelas induk. Polymorphism memberikan programmer kemampuan untuk membuat kode yang lebih abstrak, mudah dimengerti, dan mudah diatur. Sebagai konsep dasar dalam OOP, pemahaman tentang polymorphism adalah kunci untuk membuat solusi perangkat lunak yang efektif dan skalabel.

Mari terus belajar dan kembangkan skill di MySkill