Halo teman-teman semuanya, pada artikel kali ini kita akan membahas tentang Polymorphism dalam Python. Polymorphism adalah salah satu pilar utama dalam Pemrograman Berorientasi Objek (OOP).
Secara sederhana, polymorphism berarti satu nama, banyak bentuk. Dengan kata lain, sebuah method atau fungsi dapat memiliki perilaku berbeda tergantung objek yang memanggilnya.
Polymorphism pada Method
Polymorphism sering digunakan saat kita memiliki beberapa class berbeda yang semuanya memiliki method dengan nama sama, tetapi perilakunya berbeda.
class Kucing:
def suara(self):
return "Meow"
class Anjing:
def suara(self):
return "Guk guk"
# Polymorphism in action
hewan = [Kucing(), Anjing()]
for h in hewan:
print(h.suara())
Output:
Meow
Guk guk
Kedua class (Kucing
dan Anjing
) sama-sama punya method suara()
, tapi hasilnya berbeda sesuai jenis objeknya.
Polymorphism dengan Inheritance
Polymorphism juga erat kaitannya dengan inheritance. Subclass bisa menimpa (override) method dari parent class, lalu dipanggil dengan cara yang sama.
class Hewan:
def suara(self):
return "Hewan bersuara"
class Kucing(Hewan):
def suara(self):
return "Meow"
class Anjing(Hewan):
def suara(self):
return "Guk guk"
# Semua objek diperlakukan sama sebagai 'Hewan'
daftar_hewan = [Kucing(), Anjing(), Hewan()]
for h in daftar_hewan:
print(h.suara())
Output:
Meow
Guk guk
Hewan bersuara
Walaupun dipanggil dengan cara yang sama (h.suara()
), hasilnya berbeda-beda sesuai objek yang digunakan.
Polymorphism dengan Fungsi
Kita juga bisa membuat fungsi yang menerima parameter objek dari berbagai class, asalkan class tersebut memiliki method dengan nama yang sama.
def cetak_suara(hewan):
print(hewan.suara())
cetak_suara(Kucing())
cetak_suara(Anjing())
Output:
Meow
Guk guk
Fungsi cetak_suara
tidak peduli apakah parameter yang dikirim adalah objek Kucing
atau Anjing
, selama objek itu memiliki method suara()
.
Polymorphism dengan Built-in Function
Bahkan fungsi bawaan Python juga mendukung polymorphism. Contohnya fungsi len()
bisa digunakan pada berbagai tipe data:
print(len("Python")) # string
print(len([1, 2, 3])) # list
print(len({"a": 1, "b": 2})) # dictionary
Output:
6
3
2
Fungsi len()
sama-sama dipanggil dengan cara yang sama, tapi perilakunya menyesuaikan tipe data.
Kesimpulan
Pada artikel ini kita sudah belajar tentang Polymorphism di Python. Polymorphism memungkinkan method atau fungsi dengan nama yang sama bekerja dengan cara berbeda tergantung pada objek yang digunakan.
Dengan polymorphism, kode kita menjadi lebih fleksibel, mudah diperluas, dan sesuai dengan prinsip OOP yang powerful.
Setelah ini, kita akan melengkapi pilar OOP dengan konsep Abstraction, yang akan membantu menyembunyikan detail implementasi dan hanya menampilkan interface yang dibutuhkan.
Terima Kasih