Halo teman-teman semuanya, pada artikel kali ini kita akan membahas tentang Inheritance atau pewarisan dalam Python.
Inheritance adalah salah satu pilar utama Pemrograman Berorientasi Objek (OOP) yang memungkinkan sebuah class mewarisi atribut dan method dari class lain.
Dengan inheritance, kita bisa membuat class baru (anak/turunan) yang mewarisi sifat dari class lama (induk/parent). Hal ini membuat kode lebih efisien, reusable, dan mudah dikembangkan.
Apa itu Inheritance?
- Parent class (superclass) → class yang diwarisi.
- Child class (subclass) → class turunan yang mewarisi atribut dan method dari parent.
Subclass bisa:
- Menggunakan semua atribut dan method parent class.
- Menambahkan atribut/method baru.
- Menimpa (override) method dari parent class.
Contoh Inheritance Dasar
# Parent class
class Hewan:
def __init__(self, nama):
self.nama = nama
def suara(self):
print("Hewan ini memiliki suara.")
# Child class
class Kucing(Hewan):
def suara(self):
print(f"{self.nama} mengeong: Meow!")
class Anjing(Hewan):
def suara(self):
print(f"{self.nama} menggonggong: Guk guk!")
# Membuat objek dari class turunan
kucing = Kucing("Tom")
anjing = Anjing("Spike")
kucing.suara()
anjing.suara()
Output:
Tom mengeong: Meow!
Spike menggonggong: Guk guk!
Pada contoh di atas:
- Class
Kucing
dan Anjing
adalah turunan dari class Hewan
.
- Mereka mewarisi atribut
nama
, tapi menimpa method suara()
agar lebih spesifik.
Menambahkan Method Baru di Subclass
class Burung(Hewan):
def suara(self):
print(f"{self.nama} berkicau: Cuit cuit!")
def terbang(self):
print(f"{self.nama} sedang terbang!")
burung = Burung("Rio")
burung.suara()
burung.terbang()
Output:
Rio berkicau: Cuit cuit!
Rio sedang terbang!
Subclass Burung
selain menimpa method suara()
, juga menambahkan method baru terbang()
.
Menggunakan super()
untuk Akses Parent
Kadang kita ingin menambahkan fungsionalitas baru tanpa menghapus perilaku lama. Kita bisa menggunakan super()
untuk memanggil constructor atau method dari parent class.
class Mahasiswa:
def __init__(self, nama, jurusan):
self.nama = nama
self.jurusan = jurusan
def info(self):
print(f"Nama: {self.nama}, Jurusan: {self.jurusan}")
class MahasiswaBaru(Mahasiswa):
def __init__(self, nama, jurusan, tahun_masuk):
super().__init__(nama, jurusan) # memanggil constructor parent
self.tahun_masuk = tahun_masuk
def info(self):
super().info() # memanggil method parent
print(f"Tahun Masuk: {self.tahun_masuk}")
maba = MahasiswaBaru("Andi", "Informatika", 2025)
maba.info()
Output:
Nama: Andi, Jurusan: Informatika
Tahun Masuk: 2025
Dengan super()
, subclass MahasiswaBaru
bisa memperluas method info()
dari parent Mahasiswa
.
Kesimpulan
Pada artikel ini kita sudah mempelajari tentang Inheritance (pewarisan) di Python. Inheritance memungkinkan sebuah class turunan untuk mewarisi atribut dan method dari class induk, serta dapat menambahkan atau menimpa perilaku sesuai kebutuhan.
Dengan inheritance, kode menjadi lebih ringkas, reusable, dan mudah dikembangkan. Setelah memahami inheritance, kita bisa melanjutkan ke konsep berikutnya, yaitu Polymorphism, yang membuat method dengan nama sama dapat berperilaku berbeda sesuai objeknya.
Terima Kasih