Ini pemahaman ringkas tentang kelas induk dan kelas anak. Penjelasan yang saya sampaikan bersifat interaktif. Artinya, Anda harus mempraktikkan kode sumber yang telah saya buat. Kode sumber ini saya modifikasi dari karya Pak Fajran Iman Rusadi untuk kelas Program Python @2012 Universitas Virtual Terbuka.
Kelas adalah bentuk awal struktur data (objek) yang mendefinisikan dan mengklasifikasikan kelompok data (variabel awal dan variabel kelas).
Mari kita buat skrip yang berisi kelas. Di sini sebagai contoh, kita namai skrip berikut: kelas_induk_anak.py.
#!/usr/bin/env python
class SegiEmpat(object): # Nama kelas SegiEmpat. Ini jadi kelas induk. Struktur data (objek) adalah kelompok data berupa variabel awal dan variabel kelas.
def __init__(self, panjang, lebar): # Klasifikasi awal berisi variabel awal.
self.panjang = panjang # Atribut awal panjang
self.lebar = lebar # Atribut awal lebar
def luas(self): # Klasifikasi kelas berisi variabel kelas
return self.panjang * self.lebar # Fungsi luas
def keliling(self): # Klasifikasi kelas berisi variabel kelas
return 2 * self.panjang + 2 * self.lebar # Funsgi keliling
class Persegi(SegiEmpat): # Nama kelas Persegi. Ini jadi kelas anak.
def __init__(self, sisi): # Klasifikasi awal berisi variabel awal dari kelas anak.
SegiEmpat.__init__(self, sisi, sisi) # Klasifikasi awal berisi variabel awal dari kelas induk dan kelas anak.
self.sisi = sisi # Atribut awal sisi
Simpan kelas_induk_anak.py di direktori rumah Anda. Saya menggunakan Linux Ubuntu. Saya membuat direktori rumah saya dengan nama: Belajar_Python.
raviyanto@uvt:~/Belajar_Python$ ls
kelas_induk_anak.py
Di direktori Belajar_Python kita tampilkan Python-Shell.
raviyanto@uvt:~/Belajar_Python$ python
Python 2.7.3 (default, Sep 26 2012, 21:53:58)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Untuk menguji apakah kelas SegiEmpat adalah kelas induk dan kelas Persegi adalah kelas anak, kita lakukan perintah berikut:
>>> from kelas_induk_anak import SegiEmpat, Persegi
>>> kotak_segi_empat = SegiEmpat(9, 7)
>>> kotak_persegi = Persegi(6)
>>> isinstance(kotak_segi_empat, SegiEmpat)
True
>>> isinstance(kotak_segi_empat, Persegi)
False
>>> isinstance(kotak_persegi, SegiEmpat)
True
>>> isinstance(kotak_persegi, Persegi)
True
>>>
Perhatikan isinstance(kotak_segi_empat, Persegi) -> False. Jadi, kelas SegiEmpat bukan anak dari kelas Persegi. Mari kita uji fungsi-fungsi kelas di atas.
>>> kotak_segi_empat.panjang
9
>>> kotak_segi_empat.lebar
7
>>> kotak_segi_empat.luas()
63
>>> kotak_segi_empat.keliling()
32
>>> kotak_persegi.panjang
6
>>> kotak_persegi.lebar
6
>>> kotak_persegi.luas()
36
>>> kotak_persegi.keliling()
24
>>>
Perhatikan kelas Persegi (kelas anak) bisa menggunakan fungsi dan variabel yang ada di kelas SegiEmpat (kelas induk).
Ingat, memahami ilmu adalah dengan mempraktikkan. Tanpa mempraktikkan ilmu, itu sama saja kita belum memahami ilmu tersebut. Selamat berpraktik.