Jumat, 22 Mei 2015

Class Build-In



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).
Membuat class di Python
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.
Method pada Class di Python
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