Tahun baru, skill baru! 🚀. Masukkan kupon "skill2025" untuk diskon 30% di kelas apa saja

Logo Koala Skodev mengetik

Skodev

Belajar coding dalam bahasa Indonesia

INHERITANCE

Pelajari konsep inheritance (pewarisan) dalam Python dengan penjelasan mudah dan contoh sederhana untuk mempercepat pemahaman kamu tentang OOP.

Inheritance adalah salah satu konsep penting dalam pemrograman berorientasi objek (OOP) di Python. Dengan inheritance, kamu bisa membuat sebuah class baru yang mewarisi sifat dan fungsi dari class yang sudah ada. Ini membuat kode lebih efisien dan mudah untuk dikembangkan.

Apa itu Inheritance?

Inheritance berarti “pewarisan”. Dalam Python, inheritance memungkinkan sebuah class (disebut child class atau subclass) mewarisi atribut dan metode dari class lain (disebut parent class atau superclass). Jadi, child class dapat menggunakan kode yang sudah ada di parent class tanpa perlu menulis ulang.

Kenapa Inheritance Penting?

  • Menghemat waktu karena kamu tidak perlu menulis kode yang sama berulang-ulang.
  • Memudahkan pemeliharaan kode karena perubahan di parent class akan otomatis berpengaruh ke child class.
  • Membuat kode lebih terstruktur dan rapi.

Cara Membuat Inheritance di Python

Untuk membuat inheritance, kamu cukup menuliskan nama parent class di dalam tanda kurung saat membuat class baru.

class Hewan:
    def __init__(self, nama):
        self.nama = nama

    def suara(self):
        print("Hewan ini membuat suara.")

class Anjing(Hewan):
    def suara(self):
        print("Guk guk!")

anjing1 = Anjing("Buddy")
print(anjing1.nama)  # Output: Buddy
anjing1.suara()      # Output: Guk guk!

Penjelasan contoh di atas:

  • Class Hewan adalah parent class dengan atribut nama dan metode suara().
  • Class Anjing adalah child class yang mewarisi dari Hewan.
  • Child class Anjing memiliki metode suara() yang menggantikan (override) metode milik parent class.

Override dan Extend

Kamu bisa mengoverride metode dari parent class dengan membuat metode yang sama di child class, seperti contoh di atas.

Selain itu, kamu juga bisa menambahkan fungsi baru di child class yang tidak ada di parent class.

class Kucing(Hewan):
    def suara(self):
        print("Meong!")

    def pelihara(self):
        print(f"{self.nama} sedang dipelihara.")
        
kucing1 = Kucing("Kitty")
kucing1.suara()    # Output: Meong!
kucing1.pelihara() # Output: Kitty sedang dipelihara.

Dalam contoh di atas, pelihara() hanya ada di Kucing, bukan di Hewan.

Super() untuk Mengakses Parent Class

Kadang-kadang, di child class kamu ingin tetap menggunakan fungsi dari parent class, misalnya pada saat mengubah metode __init__. Gunakan fungsi super() untuk memanggil metode parent class.

class Kuda(Hewan):
    def __init__(self, nama, warna):
        super().__init__(nama)  # Panggil __init__ dari Hewan
        self.warna = warna

    def info(self):
        print(f"Kuda bernama {self.nama} berwarna {self.warna}")

kuda1 = Kuda("Flash", "Coklat")
kuda1.info()  # Output: Kuda bernama Flash berwarna Coklat

Dengan super().__init__(nama), kamu tidak perlu menulis ulang inisialisasi atribut nama.

Inheritance memudahkan pengelolaan kode ketika kamu bekerja dengan objek yang memiliki sifat umum tetapi juga punya ciri khas sendiri. Dengan pemahaman inheritance, kamu bisa menulis program Python yang lebih bersih dan terorganisir.

👈🏼 Classes dan Objects
Iterators 👉🏼