Belajar Python: Class dan Objek
Seingat saya sewaktu kuliah dulu terkait Class
dan Objek
ini adalah:
Objek
: Sebuah objek biasanya memiliki beberapa “atribut” atau “properti” dan juga sebuah fungsi. Misal dalam “objek manusia” umumnya mempunyai atribut nama, umur, berat badan, dan lainnya. Manusia juga memiliki fungsi misalkan mengenalkan diri, makan, dan lainnya.
Class
: Sederhananya adalah template atau blueprint dari sebuah objek. Misal dari class
manusia kita bisa mendefiniskan objek-objek manusia lainnya.
Sekali lagi koreksi jika saya salah
Membuat Class
class Hooman:
name = ""
age = ""
def __init__(self, name, age):
self.name = name
self.age = age
def introduce(self):
print("Nama Saya "+ self.name)
print("Umur saya "+ self.age +" tahun")
Di atas saya mendeklarasikan sebuah class
“Hooman” alias manusia, pada class
tersebut memiliki atribut name
dan age
. Ada juga sebuah fungsi introduce()
alias perkenalan, dan ada fungsi constructor
yang ditandai dengan nama __init__
.
Mendeklarasikan Objek
Saya hendak mendeklarasikan sebuah objek manusia dari class Hooman
, dengan karakteristik namanya puch
usianya 18
tahun. Caranya:
h1 = Hooman('puch','18')
Di atas maksudnya variable h1
merupakan objek dari class Hooman
yang diberi nilai namanya ‘puch’ dan usianya ’18’, sesuai urutan pada constructor
yaitu name
duluan baru setelah itu age
, sedangkan untuk parameter self
sendiri itu sebagai parameter wajib di dalam fungsi di class
.
Setelah berhasil dideklarasikan kita bisa memanggil atribut maupun fungsi dari class
tersebut.
print(h1.name)
# puch
print(h1.age)
# 18
# Memanggil method/fungsi perkenalan
h1.introduce()
# Nama Saya Puch
# Umur saya 18 tahun
Kalau hendak membuat objek manusia lainnya
h2 = Hooman('john doe',"35")
print(h2.name)
# john doe
print(h2.age)
# 35
# Memanggil method/fungsi perkenalan
h2.introduce()
# Nama Saya john doe
# Umur saya 35 tahun
Private Property
Misal jika kita ingin ada sebuah properti private dalam class Hooman
, kita bisa mendeklarasikannya dengan cara nama properti diawali dua kali underscore ( _ )
class Hooman:
__weight = "rahasia"
name = ""
age = ""
def __init__(self, name, age):
self.name = name
self.age = age
def introduce(self):
print("Nama Saya "+ self.name)
print("Umur saya "+ self.age +" tahun")
Sebuah atribut privat tidak dapat langsung dipanggil, misalkan
h3 = Hooman('depuch','18')
h3.__weight
# AttributeError: 'Hooman' object has no attribute '__weight'
Hasilnya akan mengeluarkan pesan error tersebut dianggap tidak ada atribut tersebut.
Untuk memanggil atirbut privat caranya kita cukup mendeklarasikan sebuah fungsi saja
class Hooman:
__weight = "rahasia"
name = ""
age = ""
def __init__(self, name, age):
self.name = name
self.age = age
def introduce(self):
print("Nama Saya "+ self.name)
print("Umur saya "+ self.age +" tahun")
def get_weight(self):
print (self.__weight)
Terus memanggilnya
h3.get_weight()
# rahasia
Referensi:
1. https://www.youtube.com/watch?v=wfcWRAxRVBA&list=PLBZBJbE_rGRWeh5mIBhD-hhDwSEDxogDg
2. https://www.codepolitan.com/membuat-class-di-python-589528b4d558d