Apps Artificial Intelligence CSS DevOps Go JavaScript Laravel Linux MongoDB MySQL PHP Python Rust Vue

Python Inheritance

2 min read .
Python Inheritance

Inheritance adalah konsep penting dalam pemrograman berorientasi objek (OOP) yang memungkinkan sebuah kelas mewarisi atribut dan metode dari kelas lain. Dengan inheritance, kita bisa menggunakan kembali kode, mempermudah pemeliharaan, dan membangun hierarki kelas yang jelas. Dalam panduan ini, kita akan membahas inheritance di Python, jenis-jenisnya, serta contoh praktis untuk membantu memahami dan mengimplementasikannya.

1. Apa Itu Inheritance di Python?

Inheritance adalah mekanisme di Python yang memungkinkan sebuah kelas anak (child/derived class) mewarisi atribut dan metode dari kelas induk (parent/base class). Hubungan ini memudahkan penggunaan ulang kode dan memungkinkan terciptanya struktur hierarki antar kelas.

2. Manfaat Menggunakan Inheritance

  • Kode yang Bisa Digunakan Kembali: Gunakan kembali kode yang ada dengan mewarisi kelas induk.
  • Pemeliharaan yang Lebih Mudah: Perubahan pada kelas induk otomatis berlaku pada kelas anak.
  • Struktur yang Jelas: Menciptakan hierarki kelas yang mudah dipahami dan dirawat.

3. Cara Kerja Inheritance di Python

Inheritance diimplementasikan dengan menuliskan kelas induk sebagai parameter saat mendefinisikan kelas anak. Kelas anak akan mewarisi semua atribut dan metode dari kelas induk, yang bisa diperluas atau ditimpa (override) sesuai kebutuhan.

class ParentClass:
    # kode kelas induk

class ChildClass(ParentClass):
    # kode kelas anak

4. Jenis Inheritance di Python

Python mendukung berbagai jenis inheritance:

  • Single Inheritance: Kelas anak mewarisi dari satu kelas induk.
  • Multiple Inheritance: Kelas anak mewarisi dari beberapa kelas induk.
  • Multilevel Inheritance: Kelas turunan mewarisi dari kelas anak yang bertindak sebagai induk untuk kelas lain.
  • Hierarchical Inheritance: Beberapa kelas anak mewarisi dari satu kelas induk.
  • Hybrid Inheritance: Kombinasi dua atau lebih jenis inheritance.

5. Contoh Inheritance

Single Inheritance

class Animal:
    def sound(self):
        print("This animal makes a sound")

class Dog(Animal):
    def sound(self):
        print("The dog barks")

my_dog = Dog()
my_dog.sound()  # Output: The dog barks

Multiple Inheritance

class Flyer:
    def fly(self):
        print("This animal can fly")

class Swimmer:
    def swim(self):
        print("This animal can swim")

class Duck(Flyer, Swimmer):
    pass

donald = Duck()
donald.fly()   # Output: This animal can fly
donald.swim()  # Output: This animal can swim

6. Fungsi super() di Python

super() digunakan untuk memanggil metode dari kelas induk dalam kelas anak. Ini berguna saat metode di kelas induk di-override di kelas anak.

class Animal:
    def __init__(self, name):
        self.name = name

class Dog(Animal):
    def __init__(self, name, breed):
        super().__init__(name)
        self.breed = breed

my_dog = Dog("Buddy", "Golden Retriever")
print(my_dog.name)  # Output: Buddy
print(my_dog.breed) # Output: Golden Retriever

7. Method Overriding

Method overriding terjadi saat kelas anak mendefinisikan metode dengan nama yang sama seperti di kelas induk. Metode anak akan menimpa metode induk, memungkinkan perilaku yang disesuaikan.

class Bird:
    def fly(self):
        print("This bird can fly")

class Penguin(Bird):
    def fly(self):
        print("Penguins cannot fly")

pingu = Penguin()
pingu.fly()  # Output: Penguins cannot fly

8. Contoh Kasus Nyata

  • Aplikasi GUI: Memperluas fungsi widget dengan inheritance.
  • Pengembangan Game: Membuat kelas dasar untuk karakter dan memperluasnya menjadi karakter spesifik dengan kemampuan unik.
  • Web Development: Membuat model yang memperluas kelas model dasar di framework web seperti Django.

9. Kesimpulan

Inheritance adalah fitur kuat di Python yang memungkinkan kita membangun kode yang efisien, mengurangi duplikasi, dan menciptakan hierarki kelas yang terstruktur. Memahami inheritance adalah langkah penting untuk menulis kode Python yang mudah dipelihara dan scalable.

Lihat Juga

chevron-up