Praktik halaman 47-51
# =================================================# 3 KELAS HEWAN DAN TURUNANNYA (INHERITANCE)# =================================================# Parent class (Superclass) untuk semua hewan
class Hewan:
# Constructor (__init__) untuk inisialisasi objek
def __init__(self, nama, jenis, suara, jumlah_kaki):
# Atribut instance (milik masing-masing objek)
self.nama = nama
self.jenis = jenis
self.suara = suara
self.jumlah_kaki = jumlah_kaki
# Method untuk menampilkan suara hewan
def bersuara(self):
print(f"{self.nama} bersuara: {self.suara}!")
# Method untuk menampilkan deskripsi hewan
def deskripsi(self):
print(f"{self.nama} adalah hewan jenis {self.jenis} dengan {self.jumlah_kaki} kaki.")
# Child class (subclass) kuda yang mewarisi dai Hewan
class Kuda(Hewan):
def __init__(self, nama):
# Memanggil constructor parent class menggunakan super()
super().__init__(nama, "herbivora", "Meringkik", 4)
# Menambahkan atribut Khusus Kuda
self.kecepatan = "cepat"
# Method khusus Kuda
def berlari(self):
print(f"{self.nama} sedang berlari dengan {self.kecepatan}!")
# Child class kucing
class Kucing(Hewan):
def __init__(self, nama):
super().__init__(nama, "karnivora", "Meong", 4)
self.aktivitas = "memanjat"
def bermain(self):
print(f"{self.nama} sedang {self.aktivitas}!")
# Child class Kelinci
class Kelinci(Hewan):
def __init__(self, nama):
super().__init__(nama, "herbivora", "Cuit", 4)
self.lompatan = "tinggi"
def melompat(self):
print(f"{self.nama} melompat dengan {self.lompatan}!")
# Child class Sapi
class Sapi(Hewan):
def __init__(self, nama):
super().__init__(nama, "herbivora", "Moo", 4)
self.produk = "susu"
def menghasilkan(self):
print(f"{self.nama} menghasilkan {self.produk}.")
# =================================================
# KELAS MATA PELAJARAN DAN TURUNNYA (INHERITANCE)
# =================================================
class MataPelajaran:
def __init__(self, nama, guru, jam_pelajaran):
self.nama = nama
self.guru = guru
self.jam_pelajaran = jam_pelajaran
# Method untuk menampilkan info pelajaran
def info_pelajaran(self):
print(f"Mata pelajaran {self.nama} diajar oleh {self.guru} pada jam {self.jam_pelajaran}.")
# Child class Fisika
class Fisika(MataPelajaran):
def __init__(self, guru, jam_pelajaran):
# Memanggil constructor parent class
super().__init__("Fisika", guru, jam_pelajaran)
self.alat_praktikum = "neraca pegas"
# Medthod khusus Fisika
def praktikum(self):
print(f"Praktikum {self.nama} menggunakan {self.alat_praktikum}.")
# Child class Kimia
class Kimia(MataPelajaran):
def __init__(self, guru, jam_pelajaran):
super().__init__("Kimia", guru, jam_pelajaran)
self.alat_praktikum = "tabung reaksi"
def praktikum(self):
print(f"Praktikum {self.nama} menggunakan {self.alat_praktikum}.")
# Child class Biologi
class Biologi(MataPelajaran):
def __init__(self, guru, jam_pelajaran):
super().__init__("Biologi", guru, jam_pelajaran)
self.alat_praktikum = "mikroskop"
def praktikum(self):
print(f"Praktikum {self.nama} menggunakan {self.alat_praktikum}.")
# Child class Informatika
class Informatika(MataPelajaran):
def __init__(self, guru, jam_pelajaran):
super().__init__("Informatika", guru, jam_pelajaran)
self.alat_praktikum = "komputer"
def praktikum(self):
print(f"Praktikum {self.nama} menggunakan {self.alat_praktikum}.")
# =================================================
# CONTOH PENGGUNAAN (OBJECT INSTANTIATION)
# =================================================
if __name__ == "__main__":
print("=== DEMO KONSEP OOP ===")
print("\n1. Contoh Inheritance dan Polymorphism pada Hewan:")
# membuat objek dari class Kuda
kuda1 = Kuda("Bolt")
kuda1.deskripsi() # Method dari parent class
kuda1.bersuara() # Method dari parent class
kuda1.berlari() # Method khusus Kuda
# Membuat objek dari class Kucing
kucing1 = Kucing("Oyen")
kucing1.deskripsi()
kucing1.bersuara()
kucing1.bermain()
print("\n2. Contoh Inheritance dan Polymorphism pada Mata Pelajaran:")
# Membuat objek dari class Fisika
fisika1 = Fisika("Pak Henri", "08.00-09.30")
fisika1.info_pelajaran() # Method dari parent class
fisika1.praktikum() # Method khusus Fisika
# Membuat objek dari class Informatika
informatika1 = Informatika("Pak Gio", "13.00-14.30")
informatika1.info_pelajaran()
informatika1.praktikum()
Komentar
Posting Komentar