Praktikum Modul Pewarisan (Inheritance) dan Overriding pada Pemrograman Lanjutan
👋 Halo teman-teman pejuang kode!
Di praktikum Pemrograman Lanjutan kali ini, kita bakal bahas salah satu konsep OOP yang sering banget dipakai di dunia nyata: Pewarisan (Inheritance) dan Overriding. Kelihatannya mungkin agak “berat” di awal, tapi tenang—kalau sudah paham, konsep ini justru bikin ngoding kamu jadi lebih rapi, efisien, dan gampang dikembangkan.
Di modul ini, kita bakal ngulik gimana sebuah class bisa “nurunin” atribut dan method ke class lain, lalu gimana cara override method tersebut biar sesuai kebutuhan kita. Semua dibahas lewat contoh kode yang sederhana dan langsung praktik, jadi nggak cuma teori doang. Praktikum ini bakal ngebantu kamu memahami cara kerja OOP dengan lebih masuk akal dan aplikatif. Jadi, siap buat nyobain kodenya dan mainin class satu per satu? Yuk mulai dan naik level bareng! 🚀💻
- PRAKTIKUM 1 (Inheritance dalam OOP)
Pada praktikum pertama ini, kita belajar konsep pewarisan (inheritance) yang paling dasar.
-
class Animal→ ini adalah class induk (parent class)-
Punya method
speak()yang menampilkan teks "Animal is speaking"
-
-
class Dog(Animal)→ ini adalah class anak (child class)-
Artinya
Dogmewarisi semua atribut dan method dariAnimal -
Keyword
passberarti class ini belum menambahkan apa-apa, tapi tetap bisa memakai milik induknya
-
-
Saat objek
dog = Dog()dibuat dandog.speak()dipanggil: -
Python mencari method
speak()di class Dog -
Karena tidak ada, Python mengambil method dari class Animal
-
Hasilnya:
👉Animal is speaking
- PRAKTIKUM 2 (Subclass dari Superclass)
1️⃣ Class Vehicle (Parent Class)
-
Memiliki:
-
Atribut
branddanmodel -
Method
show_info()untuk menampilkan informasi kendaraan
-
2️⃣ Class Car (Child Class)
-
Carmewarisi dariVehicle -
Menambahkan atribut baru:
doors -
Menggunakan
super().__init__(brand, model):-
Untuk memanggil constructor milik
Vehicle -
Supaya atribut
branddanmodeltetap dibuat
-
3️⃣ Overriding Method show_info()
Di sini terjadi overriding:
-
Method
show_info()diCarmenimpa methodshow_info()diVehicle -
Tapi tetap memanggil versi parent dengan
super().show_info() -
Lalu menambahkan informasi baru (
Doors)
1️⃣ Class Person (Parent Class)
-
Menyimpan data dasar seseorang:
-
name -
age
-
-
Method
display()berfungsi menampilkan data tersebut
2️⃣ Class Employee (Child Class)
-
Employeemewarisi classPerson -
Menambahkan atribut baru:
-
employee_id
-
-
Menggunakan
super().__init__(name, age):-
Untuk memanggil constructor milik
Person -
Supaya atribut
namedanagetetap dibuat
-
3️⃣ Overriding Method display()
-
Method
display()diEmployeemenimpa methoddisplay()diPerson -
Tapi masih memanggil method induknya menggunakan
super() -
Hasilnya:
-
Data
Personditampilkan dulu -
Lalu ditambah data khusus
Employee
-
1️⃣ Class Animal
-
Memiliki method
move() -
Method ini bisa digunakan oleh semua turunan
Animal
2️⃣ Class Bird
-
Birdmewarisi dariAnimal -
Tidak mengubah method
move() -
Menambahkan method baru
fly()
Productadalah class dasar-
Menyimpan atribut umum:
-
name→ nama produk -
price→ harga produk
-
-
Method
display_product():-
Menampilkan informasi dasar produk
-
-
Class ini jadi fondasi untuk semua jenis produk
🔹 Class Electronic (Child Class)
🧠 Penjelasan:
-
ElectronicmewarisiProduct -
Menambahkan atribut khusus:
-
warranty(masa garansi)
-
-
super().__init__(name, price):-
Memanggil constructor
Product -
Supaya
namedanpricetetap dibuat
-
🔁 Overriding display_product()
-
Method
display_product()dioverride -
Tetap memanggil method induk
-
Ditambah info khusus produk elektronik (garansi)
🔹 Class Clothing (Child Class)
🧠 Penjelasan:
-
Clothingjuga mewarisiProduct -
Menambahkan atribut:
-
size(ukuran pakaian)
-
🔁 Overriding display_product()
-
Method
display_product()dioverride -
Menampilkan info dasar + ukuran pakaian
a. Class Induk (Parent Class)
-
Animal= kelas induk -
Punya method:
-
Kalau dipanggil → output:
🔹 b. Class Turunan (Child Class)
Artinya:
Dog MEWARISI semua milik Animal
Jadi Dog otomatis punya method sound() dari Animal… TAPI 👇
Di sini method sound() ditulis ulang.
Ini disebut:
🔥 Method Overriding
Method dari induk diganti oleh method di kelas anak.
🔹 c. Membuat Objek
Artinya:
-
Membuat objek bernama
dog -
Objek ini bertipe Dog
🔹 d. Pemanggilan Method
Python akan cek:
-
Apakah
Dogpunya methodsound()? → YA -
Maka Python tidak pakai method dari
Animal
🔹 1. Class Induk: Vehicle
Ini adalah parent class.
Punya 1 method:
🔹 2. Class Turunan: Car
Artinya:
Car mewarisi semua milik Vehicle
Tapi methodnya diubah 👇
Ini disebut overriding + memperluas method.
🔹 3. Fungsi super()
Artinya:
"Jalankan dulu method milik induk"
Jadi urutannya saat dipanggil:
1. Class Induk: BankAccount
Default bunga rekening = 2%
🔹 2. Class Turunan
| Class | Bunga |
|---|---|
| SavingsAccount | 3% |
| FixedDepositAccount | 5% |
Semua punya method yang sama:
Tapi isinya beda → ini polymorphism.
🔹 3. Pembuatan Objek
🔹 4. Pemanggilan Method
Python memilih method sesuai jenis objeknya.
LATIHAN DAN TUGAS
1. Implementasi Inheritance dalam Program Sederhana
2. Studi Kasus Simulasi Toko Online dengan Inheritance
3. Implemetasi Overriding pada Subclass
4. Studi Kasus BankAccount dengan Overriding
Komentar
Posting Komentar