Modul 6 - Inheritance
Modul 6 - Inheritance
Inheritance
6.1 Tujuan
1. Dapat memahami konsep inheritance.
2. Dapat mengimplementasikan konsep inheritance menggunakan Bahasa
pemrograman python.
6.2 Konsep Inheritance
Konsep inheritance pada OOP (Object-Oriented Programming) adalah sebuah
konsep di mana sebuah kelas baru (subclass) dibuat dengan mewarisi sifat atau
perilaku dari kelas yang sudah ada (superclass). Kelas yang mewarisi sifat dari
superclass disebut sebagai subclass atau turunan, sedangkan kelas yang memberikan
sifat atau perilaku disebut sebagai superclass atau induk.
Dengan menggunakan konsep inheritance, kita dapat membuat sebuah kelas
baru dengan mewarisi sifat dan perilaku dari kelas yang sudah ada, sehingga
mempermudah pembuatan program dan meningkatkan fleksibilitas dan modularitas
pada program. Selain itu, kita juga dapat menghindari duplikasi kode dan membuat
perubahan pada superclass secara otomatis diterapkan pada semua subclass yang
mewarisinya.
Contoh inheritance dalam kehidupan sehari-hari adalah warisan atau turunan
yang diterima oleh anak dari orang tua atau keluarga lainnya. Konsep inheritance
dalam OOP mirip dengan konsep warisan dalam kehidupan nyata, dimana sifat atau
ciri-ciri tertentu dapat diwariskan dari generasi sebelumnya ke generasi selanjutnya.
Sebagai contoh, jika seorang ayah memiliki bisnis restoran, maka anaknya dapat
mewarisi bisnis tersebut dan melanjutkan usaha yang telah dimulai oleh ayahnya.
Anak tersebut dapat mengembangkan bisnis restoran dengan menambahkan menu
baru atau melakukan perubahan yang diperlukan, tetapi tetap mempertahankan sifat
atau ciri khas yang dimiliki oleh bisnis restoran yang diwarisi dari ayahnya.
Konsep inheritance juga dapat diterapkan pada ilmu biologi, dimana sifat-sifat
atau ciri-ciri biologis dapat diwariskan dari generasi sebelumnya ke generasi
selanjutnya. Misalnya, sifat tertentu seperti warna mata atau tinggi badan dapat
diwariskan dari orang tua ke anaknya. Seorang anak juga dapat mewarisi
kecenderungan terhadap penyakit tertentu dari orang tua atau kakek neneknya.
2
6.2.1 Superclass dan Subclass
Perbedaan antara subclass dan superclass pada konsep inheritance di OOP adalah:
• Superclass adalah kelas yang memberikan sifat atau perilaku yang dapat
diwarisi oleh subclass, sedangkan subclass adalah kelas yang mewarisi sifat
atau perilaku dari superclass.
• Superclass adalah kelas yang lebih umum atau generik, sedangkan subclass
adalah kelas yang lebih khusus atau spesifik.
• Superclass bisa memiliki beberapa subclass yang berbeda, sedangkan subclass
hanya memiliki satu superclass.
• Subclass dapat menambahkan atribut atau method yang unik untuk dirinya
sendiri, sementara superclass tidak dapat mempengaruhi subclass dengan
cara apapun.
3
6.2.3 Inheritance Multi Level
Multi level inheritance adalah ketika sebuah kelas turunan memiliki lebih dari satu
kelas induk atau superclass. Dalam multi level inheritance, sebuah subclass mewarisi
semua metode dan properti dari superclassnya, termasuk dari kelas induk.
1. class Kendaraan:
2. def __init__(self, jenis):
3. self.jenis = jenis
4.
5. class Sepeda(Kendaraan):
6. def __init__(self, jenis, warna):
7. super().__init__(jenis)
8. self.warna = warna
9.
10. class SepedaMotor(Sepeda):
11. def __init__(self, jenis, warna, merk):
12. super().__init__(jenis, warna)
13. self.merk = merk
4
18. self.habitat = habitat
1. Buat sebuah file program baru kemudian tulis kode program berikut ini
1. class Person:
2. def __init__(self, name, age):
3. self.name = name
4. self.age = age
5.
6. def introduce(self):
7. print(f"My name is {self.name} and I am {self.age} years ol
d.")
8.
9. class Student(Person):
10. def __init__(self, name, age, student_id):
11. super().__init__(name, age)
12. self.student_id = student_id
13.
14. def introduce(self):
15. super().introduce()
16. print(f"My student ID is {self.student_id}.")
17.
18. person1 = Person("John", 30)
19. person1.introduce()
20.
21. student1 = Student("Mary", 20, "12345")
22. student1.introduce()
5
6.3.2 Kegiatan 2 : Inheritance Multi Level
1. Buat sebuah file program baru kemudian tulis kode program berikut ini
1. class Kendaraan:
2. def __init__(self, jenis):
3. self.jenis = jenis
4.
5. class Sepeda(Kendaraan):
6. def __init__(self, jenis, warna):
7. super().__init__(jenis)
8. self.warna = warna
9.
10. class SepedaMotor(Sepeda):
11. def __init__(self, jenis, warna, merk):
12. super().__init__(jenis, warna)
13. self.merk = merk
14.
15. class Mobil(SepedaMotor):
16. def __init__(self, jenis, warna, merk, tahun):
17. super().__init__(jenis, warna, merk)
18. self.tahun = tahun
19.
20. def info(self):
21. print(f"Jenis: {self.jenis}")
22. print(f"Warna: {self.warna}")
23. print(f"Merk: {self.merk}")
24. print(f"Tahun: {self.tahun}")
25.
26. mobil1 = Mobil("Sedan", "Merah", "Toyota", 2022)
27. mobil1.info()
6
6.3.3 Kegiatan 3 : Inheritance Hierarki
1. Buat sebuah file program baru kemudian tulis kode program berikut ini
1. class Hewan:
2. def __init__(self, nama, jenis):
3. self.nama = nama
4. self.jenis = jenis
5.
6. class Mamalia(Hewan):
7. def __init__(self, nama, jenis, mamalia_bertelur):
8. super().__init__(nama, jenis)
9. self.mamalia_bertelur = mamalia_bertelur
10.
11. class Unggas(Hewan):
12. def __init__(self, nama, jenis, unggas_terbang):
13. super().__init__(nama, jenis)
14. self.unggas_terbang = unggas_terbang
15.
16. class Gajah(Mamalia):
17. def __init__(self, nama, jenis, mamalia_bertelur, berat_badan):
18. super().__init__(nama, jenis, mamalia_bertelur)
19. self.berat_badan = berat_badan
20.
21. class Ayam(Unggas):
22. def __init__(self, nama, jenis, unggas_terbang, jumlah_telur):
23. super().__init__(nama, jenis, unggas_terbang)
24. self.jumlah_telur = jumlah_telur
25.
26. def info(self):
27. print(f"Nama: {self.nama}")
28. print(f"Jenis: {self.jenis}")
29. print(f"Unggas Terbang: {self.unggas_terbang}")
30. print(f"Jumlah Telur: {self.jumlah_telur}")
31.
32. ayam1 = Ayam("Ayam Serama", "Ayam", True, 20)
33. ayam1.info()
34.
35. gajah1 = Gajah("Gajah Sumatera", "Gajah", False, 4000)
36. print(f"Nama: {gajah1.nama}")
37. print(f"Jenis: {gajah1.jenis}")
38. print(f"Mamalia Bertelur: {gajah1.mamalia_bertelur}")
39. print(f"Berat Badan: {gajah1.berat_badan}")
7
2. Amati hasilnya kemudian tulis analisis singkat mengenai kegiatan ini
6.4 Tugas
1. Buatlah sebuah program untuk menghitung harga tiket bioskop yang menerapkan
konsep inheritance. Buatlah superclass 'Tiket' dan subclass 'TiketBiasa', 'TiketVIP',
dan 'TiketGold'. Setiap subclass memiliki atribut dan method berisi harga tiket yang
berbeda-beda. Output yang diharapkan dari program ini adalah seperti berikut
Masukkan jenis tiket (biasa/vip/gold) : (input dari user)
Masukkan jumlah tiket : (input dari user)
Total Harga Tiket : Rp (Output Hasil perhitungan sistem)