Menu
CoddyTech

Fungsi super()

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Python di Coddy. Pelajaran 18 dari 64.

Fungsi super() memungkinkan class turunan memanggil method dari class induknya. Dengan begitu, kamu bisa memperluas fungsionalitas class induk, bukan menggantinya sepenuhnya.

Berikut contoh penggunaan super() di constructor:

class Animal:
    def __init__(self, name):
        self.name = name
        print(f"Animal created: {name}")
class Dog(Animal):
    def __init__(self, name, breed):
        super().__init__(name)  # Panggil __init__ milik class induk
        self.breed = breed
        print(f"Dog breed set: {breed}")

Buat object anjing:

buddy = Dog("Buddy", "Golden Retriever")
print(f"Name: {buddy.name}, Breed: {buddy.breed}")

Output:

Animal created: Buddy
Dog breed set: Golden Retriever
Name: Buddy, Breed: Golden Retriever

Gunakan super() untuk memperluas method induk:

class Animal:
    def make_sound(self):
        print("Generic animal sound")
class Dog(Animal):
    def make_sound(self):
        super().make_sound()  # Panggil method induk terlebih dahulu
        print("Woof!")        # Tambahkan perilaku khusus anjing

Panggil method yang diperluas:

buddy = Dog()
buddy.make_sound()

Keluaran:

Generic animal sound
Woof!

Tanpa super(), kamu akan kehilangan fungsionalitas parent:

class Cat(Animal):
    def make_sound(self):
        print("Meow!")  # Hanya suara kucing, method induk diabaikan
cat = Cat()
cat.make_sound()

output:

Meow!

Poin utama: Gunakan super() untuk memanggil method class induk dari class anak. Dengan begitu, kamu dapat memperluas fungsionalitas, bukan menggantinya sepenuhnya. Penggunaan yang umum mencakup pemanggilan method __init__ class induk dan memperluas perilaku class induk.

challenge icon

Tantangan

Sedang

Dalam tantangan ini, kamu akan menerapkan hierarki class Person dan Employee menggunakan pewarisan.

  • person.py: Berisi class Person dengan atribut name dan age
  • employee.py: Berisi class Employee yang mewarisi Person
  • driver.py: File utama untuk menguji implementasimu

Setiap file berisi komentar TODO terperinci untuk memandu kamu dalam penerapannya.

Coba sendiri

# TODO: Impor class Person dari person.py
# TODO: Impor class Employee dari employee.py

def main():
    # TODO: Buat object Person dengan nama "Alice" dan usia 30
    person = None
    
    # TODO: Buat object Employee dengan nama "Bob", usia 35, dan pekerjaan "Developer"
    employee = None
    
    # TODO: Panggil method introduce() pada object Person
    # Output yang diharapkan: "Hi, I'm Alice and I'm 30 years old"
    
    # TODO: Cetak baris kosong sebagai pemisah dengan print()
    
    # TODO: Panggil method introduce() pada object Employee
    # Output yang diharapkan: 
    # "Hi, I'm Bob and I'm 35 years old"
    # "I work as a Developer"

if __name__ == "__main__":
    main()
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler Python online