Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Python: Objek dan Berkas

Pelajaran 5 dari 16

Pewarisan, dataclass, dan properti

Pewarisan dan super()

Setelah pelajaran ini kamu bisa membuat kelas turunan yang menambah atribut lewat super().__init__, menimpa method induk, dan memeriksa jenis objek dengan isinstance.

±13 menitDiperiksa 5 Okt 2026

Materi

Kelas turunan ditulis dengan nama induknya di dalam kurung: class TiketVIP(Tiket):. Turunan mewarisi semua method induknya. Saat sebuah atribut atau method dicari dan tidak ada di kelas turunan, Python melanjutkan pencarian ke kelas induk. Turunan boleh menimpa method induk dengan menulis method bernama sama.

Fungsi super() memberi akses ke versi induk dari method yang ditimpa. Di __init__ turunan, super().__init__(...) menjalankan pengisian atribut milik induk, lalu turunan menambahkan atributnya sendiri. Di method lain, super().harga() + 150000 memperluas hasil induk alih-alih menyalin rumusnya, sehingga perubahan rumus di induk ikut terbawa.

class Tiket:
    def __init__(self, acara, harga_dasar):
        self.acara = acara
        self.harga_dasar = harga_dasar

    def harga(self):
        return self.harga_dasar

class TiketVIP(Tiket):
    def __init__(self, acara, harga_dasar, kursi):
        super().__init__(acara, harga_dasar)
        self.kursi = kursi

    def harga(self):
        return super().harga() + 150000

v = TiketVIP("Konser Makassar", 350000, "A7")
print(v.harga())                 # 500000
print(isinstance(v, Tiket))      # True
print(isinstance(Tiket("Pameran", 50000), TiketVIP))   # False

isinstance(obj, Kelas) bernilai True bila obj dibuat dari Kelas atau dari turunannya; issubclass memeriksa hubungan dua kelas. Kapan dipakai: ketika satu jenis benda adalah versi khusus dari jenis lain dan memakai sebagian besar perilaku yang sama, seperti tiket VIP terhadap tiket biasa. Bila kedua kelas hanya mirip namanya tetapi perilakunya berbeda, pewarisan justru membuat method induk yang tidak cocok ikut terbawa.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Apa yang terjadi saat kode ini dijalankan?

class Akun:
    def __init__(self, nama):
        self.nama = nama

    def sapa(self):
        return "Halo, " + self.nama

class AkunAdmin(Akun):
    def __init__(self, nama, level):
        self.level = level

a = AkunAdmin("Yudi", 2)
print(a.sapa())
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke