Class, Method, Init (Constructor) & Object Pada Python
Dalam Python, kita menegenal Class sebagai sebuah entitas data yang memiliki atribut dan juga fungsionalitas yang disimpan dalam memory internal. Atribut dan fungsionalitas dari entitas data ini bersifat abadi (kecuali jika dideklarasikan ulan). Nah ketika entitas data ini pertama kali dideklarasikan, maka namanya akan berubah menjadi Object atau Instance.
Class
Contoh dari sebuah class adalah seperti berikut: Kita hendak membuat sebuah entitas bernama manusia yang memiliki atribut nama, usia, tinggi badan, dan berat badan. Jadi class dari entitas manusia adalah seperti berikut:
class Manusia():
nama = None
usia = 0
tinggi_badan = 42
berat_badan = 13
Kemudian kita deklarasikan variabel 'anton' sebagai sebuah entitas manusia:
anton = Manusia()
anton
Output:
<__main__.Manusia at 0x79df5cc3a860>
Nah begitulah cara menggunakan sebuah class. Sekarang 'anton' sudah berubah menjadi objek atau instance 'manusia' yang memiliki berbagai atribut dan fungsionalitas.
Atribut
Atribut adalah variabel yang terdapat didalam sebuah class atau object. Dalam class 'manusia' ada beberapa atribut, yaitu: 'nama', 'usia', 'tinggi_badan' dan 'berat_badan'. Kita bisa memanggilnya seperti ini:
print(anton.nama)
print(anton.usia)
print(anton.tinggi_badan)
print(anton.berat_badan)
Output:
None 0 42 13
Jika dilihat-lihat, 'anton' belum memiliki nama ya. Yup, betul bgt. Hal ini karena kita belum mendeklarasikan bahwa nama manusia tersebut adalah 'anton'. Jadi kita baru sebatas membuat sebuah object atau instance saja. Kita bisa mendeklarasikannya dengan cara berikut:
anton.nama = 'Anton'
print(anton.nama)
print(anton.usia)
print(anton.tinggi_badan)
print(anton.berat_badan)
Output:
Anton 0 42 13
Setelah dideklarasikan ulang, atribut dari sebuah object akan tersimpan dalam memory sementara (sampai program ditutup). Artinya jika kita memanggilnya berulang kali, tetap tidak akan berubah. Coonthonya coba kita panggil lagi nama si anton:
anton.nama
Output:
'Anton'
Bener kan gak berubah. Nah itulah atribut dalam Class & Object.
Method
Method adalah sebuah function yang berada didalam sebuah Class. Artinya method adalah fungsionalitas dari sebuah entitas object atau instance. Coba kita buat ulang Class 'manusia' kita ya. Kali ini kita akan memasukan fungsi 'sakit'. Karena manusia juga bisa sakit kan ya. Kira-kira seperti ini:
class Manusia():
nama = None
usia = 0
tinggi_badan = 42
berat_badan = 13
def sakit(self):
print('Saya sakit')
Nah fungsi 'sakit' itulah yang dinamakan method. Oke, sekarang kita coba deklarasikan ulang 'anton':
anton = Manusia()
Untuk memanggil method, caranya sama dengan memanggil atribut. Hanya saja, diperlukan tanda kurung biasa seperti ini:
anton.sakit()
Output:
Saya sakit
Nah itulah yang disebut dengan method. Tapi co kalian coba perhatikan dulu. Ada kata 'self' didalam method kita. Lalu apa itu 'self'?
Self
Self adalah sebuah sintak yang digunakan untuk memanggil atau menggunakan atribut didalam sebuah method. Misal kita ingin ketika dipanggil fungsi sakit(), maka formatnya adalah 'nama' + 'sedang sakit'. Nah untuk memanggil atribut 'nama' ini lah kita memerlukan sintak 'self' seperti ini:
class Manusia():
nama = None
usia = 0
tinggi_badan = 42
berat_badan = 13
def sakit(self):
print(self.nama,' sedang sakit')
Sekarang coba kita deklarasikan ulang si anton:
anton = Manusia()
anton.nama = 'Anton'
anton.sakit()
Output:
Anton sedang sakit
Mudah sekali bukan. Jika ingin menggunakan atribut didalam sebuah method, caranya tinggal panggil self.nama_atribut.
Init (Constructor)
Init adalah sebuah method yang berfungsi untuk mengkonstruksikan atribut, atau melakukan inisialisasi secara langsung. Contoh pada codingan sebelumnya kan kita perlu mendeklarasikan ulang atribut 'nama' ya. Sebenernya kita bisa langsung mendeklarasikannya ketika membuat sebuah object atau instance dengan bantuan Init.
Sintak dari constructor init untuk mendeklarasikan 'nama' kira-kira seperti ini:
class Manusia():
nama = None
usia = 0
tinggi_badan = 42
berat_badan = 13
def __init__(self,v_nama):
self.nama = v_nama
def sakit(self):
print(self.nama,' sedang sakit')
Dan untuk mendeklarasikannya kira-kira seperti ini:
anton = Manusia('Anton')
anton.sakit()
Output:
Anton sedang sakit
Jauh lebih mudah dan simpel bukan? Btw kita dapat memasukan banyak variabel loh, bukan hanya satu variabel saja. Kalian bisa coba eksperimen sendiri yah.
Object (Instance)
Instance adalah sebuah objek, yaitu sebuah variabel yang sudah diolah dalam sebuah class sehingga menjadi suatu individu baru yang memiliki atribut dan fungsionalitas didalamnya. Untuk lebih memahaminya, mari kita buat dulu sebuah Class bernama 'produk' seperti ini:
class produk():
jumlah = 0
harga = 0
def __init__(self, v_jumlah, v_harga):
self.jumlah = v_jumlah
self.harga = v_harga
def total_harga(self):
print(self.jumlah * self.harga)
Dan kita deklarasikan 'ayam' sebagai produk kita seperti ini:
ayam = produk(8,10000)
print(ayam.jumlah)
print(ayam.harga)
ayam.total_harga()
Output:
8 10000 80000
Nah sekarang 'ayam' sudah berubah menjadi sebuah object.
Btw sebuah class bisa saja digunakan untuk banyak macam object loh. Jadi gak cuma satu object saja. Misal kita ingin membuat 'lele' dan 'nasi' juga sebagai sebuah object. Kira-kira seperti ini:
lele = produk(12,8000)
nasi = produk(22,4000)
Kita bisa memanggil 'lele' sebagai sebuah object seperti ini:
print(lele.jumlah)
print(lele.harga)
lele.total_harga()
Output:
12 8000 96000
Juga bisa memanggil 'nasi' sebagai sebuah object seperti ini:
print(nasi.jumlah)
print(nasi.harga)
nasi.total_harga()
Output:
22 4000 88000
Baca Juga:
Artikel yang mungkin relate buat kamu
Ketika kalian ngoding nih, pernah gak nemuin suatu kasus dimana kalian melakukan suatu fungsionalitas berkali-kali? Misal fungsi fungsi untuk memeriksa apakah suatu session (sesi autentifikasi) ...