MODUL 7 PEWARISAN (INTHERITANCE) DAN OVERRIDING

HELLOO!!

Pernah nggak sih kamu ngerasa capek nulis kode yang itu-itu lagi?Atau bingung kenapa program makin lama makin ribet padahal fungsinya mirip? Nah, di sinilah inheritance (pewarisan) dalam Object Oriented Programming (OOP) jadi penyelamat.

Inheritance memungkinkan sebuah kelas “mewarisi” kemampuan dari kelas lain—ibarat anak yang mewarisi sifat orang tuanya. Dengan konsep ini, kita bisa menulis kode yang lebih singkat, rapi, dan mudah dikembangkan, tanpa harus mengulang-ulang baris kode yang sama.

Di artikel ini, kamu akan mengenal konsep inheritance dalam OOP menggunakan Python, lengkap dengan contoh kode sederhana seperti Animal, Vehicle, hingga penggunaan super(). Materi ini cocok buat kamu yang baru belajar OOP maupun yang ingin memperkuat pemahaman dasar pemrograman berorientasi objek secara praktis dan mudah dipahami.


1. Pewarisan (Inheritance)

a).Konsep Inheritance dalam OPP

Penjelasan:
  • Animal adalah superclass yang memiliki metode speak().
  • Dog adalah subclass yang mewarisi kelas Animal.
  • Kata kunci pass berarti subclass tidak menambahkan atribut atau metode baru.
  • Objek dog dari kelas Dog dapat memanggil metode speak() karena metode tersebut diwarisi dari superclass Animal.
b). Membuat Subclass dari Superclass

Penjelasan:
  • Vehicle adalah superclass dengan atribut brand dan model, serta metode show_info().
  • Car adalah subclass yang mewarisi Vehicle.
  • Fungsi super().__init__() digunakan untuk memanggil constructor dari superclass agar atribut brand dan model tetap digunakan.
  • Metode show_info() di subclass meng-override metode superclass, tetapi tetap memanggil metode induknya dengan super().show_info()

c). Penggunaan Metode super()


Penjelasan:
  • Person adalah superclass yang memiliki atribut name dan age.
  • Employee adalah subclass yang mewarisi Person dan menambahkan atribut employee_id.
  • Method super() digunakan untuk memanggil constructor dan metode display() dari superclass.
  • Subclass menambahkan informasi baru tanpa menghilangkan fungsi dari superclass.

d). Pewarisan satu arah dan Pewarisan Bertingkat
  • Pewarisan satu arah

Penjelasan:
  • Bird hanya mewarisi satu superclass, yaitu Animal.
  • Objek bird dapat memanggil metode move() dari Animal dan fly() dari Bird

  • Pewarisan Bertingkat

Penjelasan:
  • Animal → superclass paling atas.
  • Bird adalah subclass dari Animal.
  • Penguin adalah subclass dari Bird.
  • Objek penguin dapat mengakses metode dari semua tingkat pewarisan.

e. Studi Kasus

Penjelasan:
  • Product adalah superclass yang menyimpan atribut umum (name, price).
  • super().__init__ digunakan agar kelas anak tidak perlu menulis ulang logika inisialisasi nama dan harga.
  • super().display_product() memanggil fungsi cetak dari induk sebelum menambahkan informasi spesifik (seperti garansi atau ukuran).

2. Konsep Method Overriding
    a). Overriding Sederhana

Penjelasan:Saat dog.sound() dipanggil, Python menjalankan versi yang ada di kelas Dog, bukan di kelas Animal.

Penjelasan: Penggunaan super() di sini bertujuan untuk memperluas fungsi, bukan mengganti total. Jadi, mesin nyala dulu, baru kemudian AC nyala.



3. Perbedaan Overriding vs Overloading
Contoh Overloading yang TIDAK didukung (Akan Error/Tertimpa)
class Example:
    def add(self, a, b):
        return a + b
    
    def add(self, a, b, c): # Ini akan menimpa metode add sebelumnya
        return a + b + c

obj = Example()
obj.add(2, 3) # Ini akan ERROR karena Python hanya mengenali add dengan 3 parameter



4. Studi Kasus : Suku Bunga Bank


C. LATIHAN DAN TUGAS

    1. Latihan Implementasi Inheritance dalam Program Sederhana
    

    2. Tugas : Studi Kasus Toko Online
    
    3. Latihan: Implementasi Overriding Pada Subclass


    4. Tugas: Studi Kasus BankAccount dengan Overriding




Referensi
Sumber utama:
Modul Praktikum Pemrograman Dasar Lanjutan (Python), disusun oleh Adi Muhamad Muhsidi (2025).
Program Studi Bisnis Digital, Fakultas Ekonomi dan Bisnis, Universitas Kuningan. 
link: https://heyzine.com/flip-book/6d9cf7412d.html
Atau dapat diakses langsung dari blog pribadi penulis di: https://adi-muhamad.my.id

Komentar

Postingan populer dari blog ini

MODUL 5 TIPE DATA CASTING

MODUL 4 : MODUL DAN PAKET

MODUL 3 : MENGELOLA FILE DI PHYTON