Tutorial Python: Mengenal Object dan Class

Tutorial Python: Mengenal Object dan Class

August 28, 2014 Programming Python 0

1409205009_3d_objects

Dalam tutorial kali ini, kita akan menyentuh sebuah topik yang (biasanya dikategorikan) cukup advanced dalam dunia pemrograman, yakni: Object-Oriented Programming atau OOP. Sayangnya, OOP adalah sesuatu yang tidak bisa dihindari dalam pemrograman modern. Hampir semua bahasa pemrograman modern, biasanya mengharuskan atau paling tidak menyediakan fitur OOP. Untunglah mempelajari OOP tidaklah begitu sulit, apalagi dalam bahasa Python. Dari sekian banyak konsep OOP yang perlu anda ketahui, marilah memulai dengan sebuah konsep yang paling mendasar: Object dan Class.

Apa itu Object? Object adalah sebuah entitas yang memiliki keadaan (state) dan kelakuan (behavior). Contoh: Mobil adalah sebuah object. Keadaan atau state adalah sesuatu yang melekat atau menjadi karakter dari object tersebut. Dalam hal mobil sebagai object, salah satunya adalah warna, misalnya: putih, merah, hitam dll. Bisa juga berbentuk model, misalnya: pick-up, truk, wagon dll. Sedangkan kelakuan atau behavior sebuah object adalah sesuatu yang bisa dilakukan oleh object tersebut. Dalam hal mobil sebagai object, yang menjadi behavior misalnya: maju, mundur, belok kiri, belok kanan dll.

Lantas apa itu Class? Jawaban singkatnya adalah Class mendefinisikan Object. Yang didefinisikan oleh Class tentu saja adalah keadaan (state) dan kelakuan (behavior) yang akan dimiliki oleh object tersebut. Pada dasarnya, Class berperan sebagai cetakan atau patron dari sebuah object. Setiap kali sebuah Object dibuat sebagai representasi dari sebuah Class tertentu, object tersebut akan memiliki semua keadaan maupun kelakuan dari Class yang direpresentasikannya.

Untuk jelasnya, mari mencoba membuat Class dan Object dalam bahasa Python. Dalam contoh program di bawah ini, kita akan membuat sebuah class bernama Kalkulator. Class ini memiliki satu keadaan, atau dalam bahasa Python disebut Class Attribute, yaitu “Hasil”. Selanjutnya, class Kalkulator kita memiliki empat kelakuan, atau dalam bahasa Python disebut Class Method, yakni: “Tambah”, “Kurang”, “Kali” dan “Bagi”. Setiap kali sebuah Class Method dijalankan, sebuah perhitungan aritmatik akan dilaksanakan, lalu hasil perhitungannya akan diletakkan di Class Attribute Hasil. Setelah membuat Class, kita akan merepresentasikan Class Kalkulator dalam sebuah object, katakanlah “A”, lalu mencoba menggunakan Class Method yang dimiliki object tersebut.

[sourcecode language=”python”] class Kalkulator: # membuat kelas Kalkulator
def tambah(self,x,y): # class method tambah
self.hasil = x+y # mengeset class attribute hasil
def kurang(self,x,y): # class method kurang
self.hasil = x-y # mengeset class attribute hasil
def kali(self,x,y): # class method kali
self.hasil = x*y # mengeset class attribute hasil
def bagi(self,x,y): # class method bagi
if y==0: # antisipasi pembagian dengan nol
print ("Pembagian dengan nol")
else:
self.hasil = x/y # mengeset class attribute hasil

A = Kalkulator() # membuat object A sebagai representasi kelas Kalkulator
A.tambah(1,2) # menggunakan class method tambah
print("1+2="+str(A.hasil))
A.kurang(1,2) # menggunakan class method kurang
print("1-2="+str(A.hasil))
A.kali(1,2) # menggunakan class method kali
print("1×2="+str(A.hasil))
A.bagi(1,2) # menggunakan class method bagi
print("1/2="+str(A.hasil))
A.bagi(1,0) # test pembagian dengan nol
[/sourcecode]

Ketika program dijalankan, keluarannya adalah sebagai berikut:

[sourcecode] 1+2=3
1-2=-1
1×2=2
1/2=0.5
Pembagian dengan nol
[/sourcecode]

Seperti anda lihat dalam contoh program di atas, keyword “self” digunakan untuk membuat class attribute, contoh: self.hasil. Sebagai class attribute, sebuah variabel dapat diakses dari luar lingkup class tersebut, yakni dengan operator titik “.” seperti ini: A.hasil

Bagaimana jika keyword “self” tidak digunakan? Tanpa keyword “self”, lingkup variabel tersebut adalah sebatas class method dimana ia berada, atau disebut juga local variable, sehingga tidak bisa diakses dari luar class. Variable pada argument class dalam contoh di atas (x dan y) adalah contoh lokal variable. Tentu saja, kita dapat menggunakan variabel lain didalam class method sebagai variabel lokal. Untuk jelasnya, mari kita revisi sedikit class method “Tambah” dalam program di atas untuk melibatkan local variable:

[sourcecode language=”python”] def tambah(self,x,y): # class method tambah
z = x+y # ketiga variabel ini (x, y dan z) adalah local variable
self.hasil = z # mengeset class attribute hasil
[/sourcecode]

Setelah revisi di atas, jika dijalankan, program kita akan menghasilkan keluaran yang sama dengan sebelumnya.

Ok, demikian dulu, selamat belajar.

 

 

 

 

 

 

 

 

 

Leave a Reply

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