Tutorial Python: Class dan Anggota-anggotanya

Tutorial Python: Class dan Anggota-anggotanya

August 31, 2014 Programming Python 0

Pada Tutorial sebelumnya tentang Class dan Object, kita telah membahas tentang apa itu Class dan bagaimana membuatnya, juga apa itu Object serta bagaimana membuat Object berdasarkan Class tertentu. Jika ingin mereview, silahkan ke sini:

http://alwinsambul.info/wp/2014/08/28/tutorial-python-mengenal-object-dan-class/

Sekarang, saya ingin mengajak anda lebih fokus lagi pada Class dengan memahami apa saja anggota Class, bagaimana cara membuat dan mengaksesnya, serta cakupan akses masing-masing anggota.

Langsung saja, mari kita lihat kode program berikut ini:

[sourcecode language=”python”] class Kelas: # ini adalah nama Class
a = "Class attribute" # ini disebut class attribute
def f1(): # ini disebut class method
print("Class method")

def f2(self): # ini disebut instance method
self.b = "Data attribute" # ini disebut data attribute
print(self.b + " ditampilkan melalui instance method")

def f3(self): # ini juga instance method
c = "Local variable" # ini disebut local variable
print(c + " ditampilkan melalui instance method")
[/sourcecode]

Dengan memperhatikan kode program di atas, juga comment-commentnya, dapat kita simpulkan bahwa sebuah Class dapat memiliki lima jenis anggota:

  1. Class attribute
  2. Class method
  3. Instance method
  4. Data attribute
  5. Local variable

Mari kita bahas satu persatu, sambil praktek menggunakan Class di atas secara langsung dalam shell Python.

Class Attribute

Class Attribute adalah variabel yang dimiliki oleh Class itu sendiri. Dalam program kita, variabel a adalah sebuah class attribute dari Class Kelas. Anda dapat membuat Class Attribute dengan mencantumkannya di bagian luar dari method-method yang dimiliki Class anda. Cara mengakses Class Attribute adalah dengan notasi nama_kelas.nama_variabel, seperti ini:

[sourcecode language=”python”] print(Kelas.a)
[/sourcecode]

Keluaran:

[sourcecode] Class attribute
[/sourcecode]

Seperti halnya sebuah variabel, anda dapat merubah isi dari Class Attribute:

[sourcecode language=”python”] Kelas.a = "Class attribute dirubah"
print(Kelas.a)
[/sourcecode]

Keluaran:

[sourcecode] Class attribute dirubah
[/sourcecode]

Selain itu, anda bahkan dapat menambahkan Class Attribute baru ke dalam sebuah Class setiap saat dibutuhkan. Contoh:

[sourcecode language=”python”] Kelas.d = "Class attribute tambahan"
print(Kelas.d)
[/sourcecode]

Keluaran:

[sourcecode] Class attribute tambahan
[/sourcecode]

Class Method

Sama seperti Class Attribute, Class Method pun adalah method yang dimiliki oleh Class itu sendiri. Method f1() pada program di atas adalah contoh sebuah Class Method yang dimiliki Class Kelas kita. Seperti Class Attribute, anda pun dapat menggunakan Class Method dari luar Class dengan notasi nama_kelas.nama_method, seperti berikut:

[sourcecode language=”python”] Kelas.f1()
[/sourcecode]

Keluaran:

[sourcecode] Class method
[/sourcecode]

Instance Method

Instance Method adalah method yang dimiliki oleh Object yang dibuat berdasarkan (atau sebagai instance dari) sebuah Class. Dalam program kita, method f2 dan f3 adalah contoh Instance Method yang dimiliki Class Kelas.

Instance Method dibuat dengan menambahkan kata “self” sebagai argument pertama. Meskipun kata “self” hanyalah sebagai konvensi saja, artinya anda bisa menggunakan kata apa saja, tapi anda disarankan selalu menggunakan kata “self” untuk menjaga konsistensi penulisan dengan program Python pada umumnya. Untuk membuat Instance Method, gunakan notasi nama_method(self[,argument lain jika ada]). Sedangkan untuk mengakses Instance Method di luar Class, pastikan Class tersebut sudah direpresentasikan (instantiate) oleh sebuah Object, lalu gunakan notasi nama_object.nama_method([argument lain jika ada]) . Perhatikan bahwa anda tidak lagi menggunakan argument “self” ketika Instance Method dipanggil. Contoh:

[sourcecode language=”python”] objek.f2()
[/sourcecode]

Keluaran:

[sourcecode] Data attribute ditampilkan melalui instance method
[/sourcecode]

Data Attribute

Mirip dengan Instance Method, Data Attribute adalah variabel yang dimiliki oleh Object yang dibuat berdasarkan (atau sebagai instance dari) sebuah Class. Variabel b dalam Instance Method f2 adalah contoh Data Attribute. Seperti yang anda lihat pada contoh, untuk membuat Data Attribute anda menggunakan notasi self.nama_variabel. Sedangkan untuk menggunakannya, gunakan notasi nama_object.nama_variabel. Perlu diingat, karena Data Attribute dibuat di dalam Instance Method, anda tidak bisa mengakses sebuah Data Attribute sebelum Instance Method dimana ia berada pernah dijalankan. Contoh:

[sourcecode language=”python”] print(objek.b)
[/sourcecode]

Keluaran:

[sourcecode] Data attribute
[/sourcecode]

Local Variable

Variabel c dalam program di atas disebut variabel local. Cakupan akses variabel local terbatas pada method dimana ia dibuat. Pada contoh, variabel c hanya dikenal dalam lingkup Instance Method f3.

Class Attribute dalam Class dan dalam Object

By the way, sedikit kembali ke pembahasan Class Attribute di atas, kita dapat mengakses sebuah variabel Class Attribute melalui objeknya. Contoh:

[sourcecode language=”python”] print(objek.a)
[/sourcecode]

Keluaran:

[sourcecode] Class attribute dirubah
[/sourcecode]

Jika anda perhatikan dari keluarannya, isi Class Attribute a adalah keadaan terakhir dari Class kelas, yakni setelah kita merubah isinya dengan perintah:

[sourcecode language=”python”] Kelas.a = "Class attribute dirubah"
print(Kelas.a)
[/sourcecode]

Tapi jika anda merubah isi Class Attribute a melalui objeknya:

[sourcecode language=”python”] objek.a = "Class attribute diakses melalui objek"
print(objek.a)
[/sourcecode]

akan memberi keluaran seperti ini:

[sourcecode] Class attribute diakses melalui objek
[/sourcecode]

Tapi jika anda mengakses Class Attribute langsung dari Class, seperti telah dibahas di atas, isinya tidak berubah:

[sourcecode language=”python”] print(objek.a)
[/sourcecode]

Keluaran:

[sourcecode] Class attribute dirubah
[/sourcecode]

Ini memperlihatkan perbedaan antara Class Attribute yang dibuat di Class dengan di Object.

Demikian dulu Tutorial kali ini, semoga bermanfaat. Selamat belajar.

 

Leave a Reply

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