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

Postingan populer dari blog ini

OTDR ( Optical Time Domain Reflectometer ) by Kelvin Terrence (X TJKT)

Tugas Coding Pertama (Semester 2) Kelvin Terrence XI TJKT