Pernahkah kamu merasa bahwa anak-anak selalu meniru orang tua mereka? Dari cara berbicara, cara berjalan, sampai kebiasaan buruk seperti menggigit kuku (ya, kamu tahu siapa kamu). Nah, di dunia Python, ada konsep yang sangat mirip dengan fenomena ini—yaitu Inheritance (Pewarisan)!
Dengan Inheritance, kita bisa membuat sebuah class baru yang mewarisi semua sifat dan kemampuan dari class lain. Seperti anak yang mewarisi kebiasaan orang tua—tapi tenang, tidak ada yang diwariskan secara buruk kok (kecuali kalau kamu mengizinkan!).
1. Apa Itu Inheritance?
Bayangkan kamu punya class induk, seperti Orang Tua, yang memiliki beberapa atribut dan kemampuan. Nah, kamu bisa membuat class anak yang mewarisi semua itu tanpa harus menulis ulang! Jadi, si Anak bisa menggunakan semua kemampuan dari orang tua, plus menambahkan kemampuannya sendiri. Siapa yang nggak mau mewarisi hal-hal keren dari orang tua, kan?
2. Class Induk (Parent Class)
Mari kita mulai dengan membuat class induk, yang kita sebut Orang Tua. Orang Tua ini punya kemampuan luar biasa, seperti mengajar cara hidup, memberikan nasihat bijak, dan tentu saja, memberikan uang saku!
class OrangTua:
def __init__(self, nama, usia):
self.nama = nama
self.usia = usia
def memberikan_nasihat(self):
print(f"{self.nama} berkata: Jangan lupa menabung, hidup itu penuh kejutan! ")
Di sini, kita punya OrangTua dengan dua atribut: nama dan usia, serta metode memberikan_nasihat().
3. Class Anak (Child Class)
Sekarang, mari kita buat class anak yang mewarisi dari OrangTua! Si anak ini bakal mewarisi semua atribut dan metode dari orang tuanya, tapi dia juga bisa menambah hal-hal baru—seperti suka main game atau pergi nongkrong dengan teman-teman!
class Anak(OrangTua):
def __init__(self, nama, usia, hobi):
super().__init__(nama, usia) # Menggunakan konstruktor dari class OrangTua
self.hobi = hobi
def bermain_game(self):
print(f"{self.nama} sedang bermain game {self.hobi} dengan serius! ")
Di sini, Anak mewarisi semua kemampuan dari OrangTua, seperti memberi nasihat, dan menambahkan kemampuan baru seperti bermain_game(). Cukup keren, kan?
4. Menggunakan Class Anak
Sekarang, kita buat objek dari class Anak. Si anak bakal bisa melakukan semua hal yang bisa dilakukan oleh orang tuanya, plus kemampuan baru yang dia punya sendiri! Mantap, kan?
# Membuat objek anak
anak1 = Anak("Budi", 15, "Mobile Legends")
anak1.memberikan_nasihat() # Pewarisan dari OrangTua
anak1.bermain_game() # Kemampuan baru dari Anak
Output:
Budi berkata: Jangan lupa menabung, hidup itu penuh kejutan!
Budi sedang bermain game Mobile Legends dengan serius!
Lihat kan? Budi mewarisi kemampuan memberikan_nasihat() dari orang tuanya, tapi dia juga punya kemampuan baru: bermain_game(). Si anak nggak cuma dapat duit saku, tapi juga keterampilan keren lainnya!
5. Overriding - Si Anak yang Punya Gaya Sendiri
Terkadang, anak ingin membuat sesuatu dengan gaya mereka sendiri, berbeda dari orang tua. Misalnya, si anak ingin memberikan nasihat, tapi dengan cara yang lebih kekinian, seperti pakai emoji! Nah, di Python, ini disebut overriding.
Jadi, walaupun si anak mewarisi metode dari orang tua, dia bisa "meng-overwrite" metode tersebut dengan versi dia sendiri! Seperti anak yang bilang, "Pokoknya aku lebih keren!"
class Anak(OrangTua):
def __init__(self, nama, usia, hobi):
super().__init__(nama, usia)
self.hobi = hobi
def memberikan_nasihat(self): # Meng-overwrite metode orang tua
print(f"{self.nama} berkata: Jangan lupa tidur siang, biar nggak ngantuk! ")
Sekarang, coba kita lihat bagaimana si Anak memberikan nasihat dengan gaya dia sendiri:
anak2 = Anak("Siti", 18, "PUBG Mobile")
anak2.memberikan_nasihat() # Overriding metode dari OrangTua
Output:
Siti berkata: Jangan lupa tidur siang, biar nggak ngantuk!
Sekarang Siti memberikan nasihat dengan cara yang lebih fresh dan kekinian, tanpa harus meniru OrangTua!
6. Multilevel Inheritance – Ketika Keturunan Mewarisi Secara Bertingkat
Inheritance nggak hanya sebatas satu generasi aja, loh! Kadang-kadang, ada yang ingin mewarisi lebih banyak hal dari nenek moyang mereka. Di dunia Python, ini disebut multilevel inheritance (pewarisan bertingkat).
Misalnya, kita punya class Cucu yang mewarisi dari Anak, yang pada gilirannya mewarisi dari OrangTua. Si Cucu bakal dapat semua kemampuan, bahkan yang mungkin udah jadi tradisi keluarga!
class Cucu(Anak):
def __init__(self, nama, usia, hobi, prestasi):
super().__init__(nama, usia, hobi)
self.prestasi = prestasi
def cerita_prestasi(self):
print(f"{self.nama} memiliki prestasi: {self.prestasi}! ")
Sekarang, kita bisa buat objek dari class Cucu yang mewarisi semuanya dari nenek moyang—bahkan prestasi keluarga!
cucu1 = Cucu("Rina", 10, "Minecraft", "Juara 1 Kompetisi Coding")
cucu1.memberikan_nasihat() # Pewarisan dari OrangTua
cucu1.bermain_game() # Kemampuan dari Anak
cucu1.cerita_prestasi() # Kemampuan baru dari Cucu
Output:
Rina berkata: Jangan lupa tidur siang, biar nggak ngantuk!
Rina sedang bermain game Minecraft dengan serius!
Rina memiliki prestasi: Juara 1 Kompetisi Coding!
Lihat, si Rina bukan hanya mewarisi kemampuan memberikan_nasihat() dan bermain_game() dari orang tuanya, tapi dia juga punya kemampuan baru—cerita_prestasi(). Ini adalah multilevel inheritance di Python, di mana setiap keturunan mendapatkan hal-hal dari generasi sebelumnya!
Kesimpulan – Inheritance Itu Keren!
- Inheritance memungkinkan kita untuk membuat class baru yang mewarisi atribut dan metode dari class lama.
- Overriding memungkinkan kita mengubah perilaku yang diwariskan oleh orang tua, supaya lebih kekinian!
- Multilevel inheritance memungkinkan kita mewarisi kemampuan dari beberapa generasi sekaligus!
Jadi, dengan Inheritance, kamu bisa jadi seperti keluarga super keren yang saling mewariskan kemampuan hebat dari satu generasi ke generasi berikutnya. Yuk, mulai bikin class yang mewarisi dan ciptakan keluarga super kamu sendiri di Python!
0 Comments