Kelas dan Object (Class and Object)

Hamora Hadi
3 min readOct 7, 2021

--

Jika kita kembali lihat pada bagian Pengenalan Konsep Object Oriented Programming pada Python, sesuatu bisa dikatakan sebagai objek jika dia memiliki atribut serta perilaku.

Atribut di sini adalah identitas (variabel) dari sebuah objek, sedangkan perilaku adalah kemampuan dari objek tersebut untuk melakukan sesuatu. Karena ini semua blok dalam python bisa dikatakan sebagai object.

Jika kita teliti lebih jauh lagi, fungsi juga merupakan sebuah objek dalam python.

Kelas pada Python

Kelas (class) adalah sebuah cetakan dari sebuah objek. Untuk lebih jelasnya kita akan lihat contoh di bawah.

Asumsikan kita membuat objek kucing.

  • Kucing adalah sebuah objek, yang memiliki 1 ekor, 2 telinga, 2 mata, 4 kaki, dan sebagainya. Inilah yang disebut sebagai atribut. Kucing tersebut bisa berjalan, berlari, bersuara, makan, dan minum. Inilah yang disebut sebagai perilaku.
  • Jika kita punya lebih dari 1 kucing, katakan kita punya 5 kucing, maka di sini kita memiliki 5 instance dari kelas kucing.
  • Masing-masing kucing tersebut juga memiliki atribut yang seperti sebelumnya kita definisikan di point pertama, yang berarti dia juga memiliki perilaku yang sama seperti yang sudah kita definisikan di point yang pertama.

Atribut dan Perilaku (dalam OOP)

Atribut merepresentasikan variabel yang dimiliki sebuah objek, sedangkan perilaku merepresentasikan fungsi yang dimiliki sebuah objek (Baca lagi Pengenalan Konsep Object Oriented Programming pada Python).

Sekarang kita akan merepresentasikan 2 ekor anjing tersebut dengan pendekatan OOP. Source codenya adalah berikut :

# Kita buat dahulu atribut yang dimiliki si anjing
class Anjing:
warna = None
usia = None

anjing1 = Anjing() # Buat variabel anjing1
anjing1.warna = "hitam"
anjing1.usia = "3 bulan"
anjing2 = Anjing() # Buat variabel anjing2
anjing2.warna = "putih"
anjing2.usia = "2 bulan"
# Tampilkan masing-masing atribut dari tiap anjing
print("Warna anjing 1 :",anjing1.warna,"usia anjing 1 :",anjing1.usia)
print("Warna anjing 2 :",anjing2.warna,"usia anjing 2 :",anjing2.usia)

Beda cerita dengan perilaku.

Asumsikan anda memiliki kelas Manusia. Setiap manusia memiliki atribut nama dan asal. Dan kelas Manusia ini memiliki perilaku memperkenalkan dirinya. Maka kita bisa melihat contoh kodenya dalam python sebagai berikut :

# Kita buat dahulu kelas 'Manusia' dengan atribut 
class Manusia:
nama = None
asal = None
def perkenalan (self):
print("Hai, nama saya adalah",self.nama,"dan asal saya dari",self.asal)
#Setelah itu kita set up atributnya
hamora = Manusia()
hamora.nama = 'Hamora Hadi'
hamora.asal = 'Balige'
# Setelah itu kita minta si manusia ini untuk memperkenalkan dirinya dengan cara memanggil fungsi perkenalan()
hamora.perkenalan()

Setelah kita coba jalankan, perhatikan lebih detail lagi.

Sebagian kita bertanya-tanya, mengapa pada saat dalam kelas Manusia kita memakai self, sedangkan saat memanggil fungsinya kita tidak memakai keyword self.

Jadi ketika kita memanggil fungsi pada kelas tertentu, python secara otomatis akan melempar keyword self sebagai parameter pertama untuk mendapatkan akses terhadap atribut dan perilaku dari objek yang sudah kita buat.

Instance

Perhatikan potongan kode berikut!

hamora = Manusia()
hamora.nama = 'Hamora Hadi'
hamora.asal = 'Balige'

Di sini kita sudah membuat 1 instance dari kelas Manusia. Sebenarnya instance juga termasuk variabel. Hanya saja kita membuat tipe data versi kita sendiri di luar tipe data primitif python.

Konstruktor

Lalu apa lagi ini konstruktor ??

Konstruktor adalah fungsi yang pertama-tama dipanggil saat kita ingin membangun objek. (Jelas sih dari namanya memang terkesan membangun sesuatu).

Syarat dari konstruktor sendiri selalu diberi nama seperti berikut

def __init__():
...

Agar lebih faham, kita langsung terjun ke source code berikut :

class Manusia:
def __init__(self, nama, asal): # Perhatikan pada fungsi ini!
self.nama = nama
self.asal = asal
def perkenalan (self):
print("Hai, nama saya adalah",self.nama,"dan asal saya dari",self.asal)
hamora = Manusia("Hamora Hadi", "Jakarta")
daniel = Manusia(asal="Semarang", nama="Daniel Johanes")
hamora.perkenalan()
daniel.perkenalan()

Perhatikan pada source code berikut!

hamora = Manusia("Hamora Hadi", "Jakarta")
daniel = Manusia(asal="Semarang", nama="Daniel Johanes")

Ketika kita membuat instance dari sebuah kelas, di sini kita mengg-assign parameter yang wajib diisi, yakni nama dan asal.

Dokumentasi

Tidak hanya atribut dan perilaku, kelas juga memiliki deskripsi, di mana deskripsi ini dituliskan dengan cara penulisan lebih dari 1 baris kode, dan diletakkan secara directly setelah pendefinisian fungsi.

Bisa kita lihat seperti ini:

class Manusia:
"""
Ini kelas manusia
Manusia mantap
"""
...

Untuk menampilkan deskripsi dari kelas tersebut, kita gunakan keyword __doc__ :

print(Manusia.__doc__) # Jalankan untuk melihat hasilnya

Untuk kali ini, cukup sekian mengenai Kelas dan Object (Class and Object).

See you soon!

--

--

Hamora Hadi
Hamora Hadi

No responses yet