Ilmu Coding Ilmucoding.com - Merupakan situs yang membantu Anda belajar coding lebih mudah, nyaman, interaktif dan profesional. Belajar sekarang di ilmu coding. GRATIS

Tutorial Python #16 – Mengenal dan Menerapkan Inheritance

3 min read

Tutorial Belajar Python 16 Mengenal Inheritance

Tutorial Python #16 – Mengenal Inherintance. Tidak akan lengkap apabila melewati pembahasan inheritance pada bahasa pemrograman berbasis object seperti Python.

Pada tutorial sebelumnya, kita sudah membahas bahwa Python adalah bahasa pemrograman berbasis object.

… jadi, mengenal inheritance di Python adalah suatu keharusan. Hehehe.

Bukan tanpa sebab saya mengatakan mempelajari inheritance di Python adalah sebuah keharusan.

Sebab seringkali kita membuat 2 buah class yang berbeda, namun penggunaannya secara bersamaan. Masing-masing kedua class tersebut saling berkaitan.

Contoh:

Kita buat class Orangtua dan Anak. Nah, class Anak tidak akan bisa berjalan tanpa adanya class Orangtua. Sebaliknya, class Orangtua tidak akan lengkap kalau tidak ada class Anak.

Baca Juga: Tutorial Python #12 – Mengenal dan Menerapkan Function

Masih bingung? Coba kita simak dulu apa sih inheritance itu.

Pengertian Inheritance di Python

Inheritance biasa disebut dengan pewarisan.

Inheritance adalah konsep bahsa pemrograman di mana sebuah class dapat mewariskan’ property dan method yang dimilikinya kepada class lain.

Property saya ibaratkan seperti class Manusia yang memiliki nama, jenis kelamin, usia, tinggi badan, warna kulit dan lain-lain.

… sementara method atau sikap dari class Manusia misalnya makan, minum, sekolah, bekerja dan lain-lain.

Jadi bisa dikatakan property ibaratnya atribut manusia, sementara method adalah hal-hal yang bisa dilakukan oleh manusia.

By the way, konsep inheritance digunakan untuk memanfaatkan fitur ‘code reuse‘ untuk menghindari duplikasi kode program.

Konsep inheritance ini akan membuat sebuah struktur atau ‘hierarchy‘ class dalam kode program.

Class yang akan ‘diwariskan’ biasa disebut sebagai class induk (parent class), super class, atau base class.

… sedangkan class yang ‘menerima penurunan’ bisa disebut sebagai class anak (child class), sub class, derived class atau heir class.

Baca Juga: Tutorial Python #15 – Mengenal Class dan Object

Contoh lagi, masih di class Manusia.

Class Manusia masih akan mewariskan class lainnya seperti class Pelajar, class Pekerja dan Pengusaha.

konsep pewarisan / inheritance di dalam bahasa pemrograman python
Sumber Gambar: Belajar C++

Semoga gambar dan analogi di atas membantu teman-teman memahami inheritance ya.

Sekarang kita lanjut ke contoh program …

Belajar Menerapkan Inheritance di dalam Python

Oke teman-teman, sekarang kita akan masuk ke tahap pembelajaran program.

Nggak akan lengkap kalau nggak sambil ngoding.

Langsung saja mulai dari …

Belajar Inheritance Python 1: Membuat Class Manusia Sebagai Parent

Silahkan buat file baru bernama manusia.py dan ketik kode berikut ini:

class Manusia:
    def __init__(self, nama_depan, nama_belakang):
        self.firstname = nama_depan
        self.lastname = nama_belakang

    def biodata(self):
        print("Nama saya " + self.firstname + " " + self.lastname)

data = Manusia("Budi", "Hartono")
data.biodata()

Jika kamu jalankan dengan command python manusia.py di terminal maka akan menghasilkan output:

Nama saya Budi Hartono

Class Manusia ini ke depannya akan kita jadikan parent dari class-class lainnya.

Belajar Inheritance Python 2: Membuat Class Pelajar Sebagai Child dari Class Manusia

Sekarang tambahkan class Pelajar di dalam file manusia.py dan modifikasi sebagaimana kode di bawah ini:

class Manusia:
    def __init__(self, nama_depan, nama_belakang):
        self.firstname = nama_depan
        self.lastname = nama_belakang

    def biodata(self):
        print("Nama saya " + self.firstname + " " + self.lastname)

class Pelajar(Manusia):
    pass

data = Pelajar("Budi", "Hartono")
data.biodata()

Jika program ini dijalankan akan tetap menghasilkan Nama saya Budi Hartono.

Mengapa itu bisa terjadi?

Padahal pada baris ke 12 kita memanggil class Pelajar.

… di mana class Pelajar tidak memiliki atribut ataupun method biodata().

Akan tetap kok bisa menjalankan method biodata()?

Jawabannya karena pada baris ke 9, kita telah memanggil class Manusia di dalam class Pelajar.

… jadi, sekarang class Pelajar secara otomatis bisa mengakses atribut dan method yang ada di dalam class Manusia.

class Pelajar(Manusia):
    pass

Baca Juga: Tutorial Python #13 – Mengenal dan Menerapkan Function Lambda

Sebagai Catatan:

Tidak semua atribut ataupun method dapat diakses dengan class Turunan. Kita bisa membuat private agar hanya bisa diakses oleh class itu sendiri.

Belajar Inheritance Python 3: Membuat Atribut atau Method Sendiri di dalam Class Child

Sejauh ini kita telah berhasil mengakses atribut maupun method dari class parent.

… akan tetapi terkadang kita ingin membuat atribut sendiri di dalam class child / turunan.

Itu sah-sah saja dilakukan.

Misalnya kita ingin mengubah keyword pass menjadi kode di bawah ini:

class Pelajar(Manusia):
    def __init__(self, nama_depan, nama_belakang):
        self.firstname = nama_depan
        self.lastname = nama_belakang

Kalau kalian lihat perubahan di atas, ada kesamaan penggunaan __init__() di dalam class Manusia maupun Pelajar.

Tentu ini akan membuat bentrokan di antara keduanya.

… namun yang menjadi catatan di sini, meskipun ada kesamaan __init__(), yang di dahulukan tetap yang berada pada class child.

… dari sinilah kita bisa mengganti nama depan dan nama belakang di dalam class Pelajar sesuka hati.

Perhatikan modifikasi program manusia.py di bawah ini:

class Manusia:
    def __init__(self, nama_depan, nama_belakang):
        self.firstname = nama_depan
        self.lastname = nama_belakang

    def biodata(self):
        print("Nama saya " + self.firstname + " " + self.lastname)

class Pelajar(Manusia):
    def __init__(self, nama_depan, nama_belakang):
        self.firstname = nama_depan
        self.lastname = nama_belakang

manusia = Manusia("Budi", "Hartono")
pelajar = Pelajar("Suci", "Harmoni")
pelajar.biodata()

Output Program:

Nama saya Suci Harmoni

Silahkan perhatikan kode di atas.

Timbul pertanyaan, kita kan mengakses method biodata() di dalam class Manusia dan class Manusia pun sudah kita berikan atribut nama depan = Budi dan nama belakang = Hartanto.

Begitu program dijalankan mengapa yang keluar adalah Suci Harmoni?

Jawaban:

Program akan mendahulukan __init__() milik child terlebih dahulu ketimbang parentnya. Wajar kalau Budi Hartono “kalah” persaingan.

Agar Class Child Dapat Mengakses Attribut / Method Class Parent

Di Python, kita juga bisa mengambil semua atribut maupun method yang terdapat di dalam class parent dan diletakan pada class child.

Jadi class child tidak perlu membuat atribut ataupun method lagi.

Caranya adalah dengan menambahkan:

NamaParentClass.__init__(self, nama_depan, nama_belakang)

atau …

super().__init__(self, nama_depan, nama_belakang)

Contohnya:

class Manusia:
    def __init__(self, nama_depan, nama_belakang):
        self.firstname = nama_depan
        self.lastname = nama_belakang

    def biodata(self):
        print("Nama saya " + self.firstname + " " + self.lastname)

class Pelajar(Manusia):
    def __init__(self, nama_depan, nama_belakang):
        Manusia.__init__(self, nama_depan, nama_belakang)

# manusia = Manusia("Budi", "Hartono")
pelajar = Pelajar("Suci", "Harmoni")
pelajar.biodata()

Pada baris ke 11 kita telah menambahkan 1 baris kode yang berfungsi untuk mendapatkan atribut maupun function yang ada di class Manusia.

… padahal di class Pelajar tidak ada atribut maupun method, akan tetapi kita tetap bisa menampilkannya.

Itu tandanya, kita telah memanggil atribut dan method di class parent yang diwariskan ke dalam class child.

Akhir Kata

Kita telah belajar mengenal dan menerapkan konsep inheritance di dalam bahasa pemrograman Python.

… namun jangan puas dulu.

Sebab masih banyak yang perlu kita pelajari lebih dalam lagi tentang si Python ini.

Semakin banyak mempelajari Python, akan lebih asik dan menyenangkan.

Setuju?

Silahkan lanjut ke tutorial berikutnya ya…

  • Tutorial Python #17 – Mengenal dan Menerapkan Iterator (Soon)
  • Tutorial Python #18 – Mengenal dan Menerapkan Scope (Soon)
  • Tutorial Python #19 – Mengenal dan Menerapkan Modules (Soon)
Ilmu Coding Ilmucoding.com - Merupakan situs yang membantu Anda belajar coding lebih mudah, nyaman, interaktif dan profesional. Belajar sekarang di ilmu coding. GRATIS

One Reply to “Tutorial Python #16 – Mengenal dan Menerapkan Inheritance”

Leave a Reply

Your email address will not be published. Required fields are marked *

Jika terbantu dengan artikel ini, silahkan share, beri komentar dan "klik" 1 kali pada iklan ya.