Class
pada bahasa pemrograman Python merupakan cetak biru atau prototype untuk
membentuk sebuah objek. Pemahaman yang baik mengenai class akan
memberikan modal yang penting terhadap dasar-dasar pemrograman berorientasi
objek. Dengan menggunakan class, kita bisa menciptakan bermacam-macam
objek dengan bermacam-macam kriteria yang berbeda, dan dengan cara yang
sederhana.
Mengambil perumpamaan dari bahasa sehari-hari, class bisa
diibaratkan sebagai sejenis buah: buah dalam kategori umum, tidak diketahui nama
dan jenisnya. Buah pada umumnya bisa dimakan, tetapi ada pula buah yang
mengandung racun. Korelasi atau hubungan buah yang bisa dimakan atau beracun
dengan class dalam bahasa
pemrograman Python diibaratkan sebagai atribut dari
sebuah class.
Jika kita membicarakan buah-buahan, mungkin dalam pikiran
kita akan terbayang beberapa nama: mangga, semangka, jeruk, durian, rambutan,
pepaya, bahkan manggis. Nama-nama tersebut jika dikaitkan dengan class
merupakan atribut dari sebuah class.
Ilustrasi class dan property-nya
Diterjemahkan ke dalam bahasa pemrograman Python, ilustrasi
di atas kira-kira bisa ditulis seperti berikut:
>>> class Buah:
def __init__(self,
nama):
self.nama
= nama
>>> jeruk = Buah('Jeruk')
>>> apel = Buah('Apel')
>>> print jeruk
<__main__.Buah instance at 0x0000000002DBEC48>
>>> type(jeruk)
<type 'instance'>
>>> type(Buah)
<type 'classobj'>
>>>
Atribut merupakan karakteristik dari sebuah object.
Dan object merupakan instance (bentuk turunan) dari sebuah class
tertentu. Untuk mendefinisikan sebuah class, kita menggunakan keyword class
diikuti dengan nama class yang diinginkan. Adalah merupakan konvensi
yang umum bahwa nama sebuah class diawali dengan huruf besar (kapital).
Cara membuat sebuah class tidak jauh berbeda dengan mendefinisikan
sebuah fungsi.
__init__ dan self
Ketika membuat sebuah class, kita bisa menentukan
atribut apa yang akan ada pada object dari class tersebut ketika
pertama kali di-instantiate atau dibuat. Pada contoh kode di atas, ada method
__init__ yang merupakan metode khusus untuk melakukan inisialisasi
terhadap atribut dari sebuah objek.
Masih mengenai contoh kode di atas, jeruk merupakan instance
object dari class Buah, dengan atribut berupa string “Jeruk”. self
pada kode di atas menunjuk pada objek dari class yang dibuat
(objek itu sendiri). Kata self tersebut bisa diganti apa saja, namun
merupakan pedoman umum programmer Python untuk merujuk pada suatu object dari
sebuah class dengan kata self.
Method __init__ merupakan satu-satunya method
(aksi) yang akan langsung dieksekusi ketika sebuah objek dibuat. Pada baris
kode di atas, __init__ akan menginisialisasi atribut “Jeruk” dan “Apel”
pada masing-masing objek yang dibuat dari class Buah.
Method pada Class
Method pada class merupakan fungsi yang didefinisikan
(dibuat) di dalam class. Method merupakan aksi yang bisa
dilakukan oleh object. Misalnya, jika kita membuat class mobil, method
yang bisa dilakukan oleh objek dari class mobil mungkin maju,
mundur, atau mematikan dan menghidupkan mesin.
>>> class Mobil:
def
__init__(self, merk):
self.merk
= merk
def maju(self):
print
"Mobil %s maju 1 meter" % self.merk
>>> x = Mobil('Toyota')
>>> print x
<__main__.Mobil instance at 0x0000000002E4E4C8>
>>> x.maju()
Mobil Toyota maju 1 meter
>>> y = Mobil('Suzuki')
>>> y.maju()
Mobil Suzuki maju 1 meter
>>>
Perhatikan kode di atas. Dalam contoh tersebut kita membuat class
bernama Mobil dan mendefinisikan method maju. Cara
mendefinisikan method pada sebuah class sama persis dengan cara
mendefinisikan fungsi. Bedanya, parameter atau argumen pertama dari sebuah method
pada class akan selalu merujuk kepada objek itu
sendiri: yaitu objek yang dibentuk dari sebuah class.
Untuk menggunakan method dari sebuah class,
kita hanya perlu menuliskan nama objeknya lalu ditambah tanda titik ‘.‘
dan diikuti dengan nama method yang diinginkan untuk dieksekusi.
Dan untuk mengecek atau mencari tahu method apa saja
yang dimiliki oleh sebuah objek, kita bisa menanyakannya pada fungsi built-in
dir(objek) dengan parameter berupa objek yang ingin diketahui method-nya.
Semoga bermanfaat!
Tidak ada komentar:
Posting Komentar