55. PYTHON (OOP) – Class

python seeklogo.com 23

Bid TIK Polda Kepri

Class

Kita sebelumnya sudah melihat dua paradigma pemrograman, yaitu imperative (menggunakan statement, perulangan, dan fungsi-fungsi) dan fungsional (menggunakan fungsi murni, fungsi orde tinggi, dan rekursi).

Paradigma lain yang sangat populer adalah Object-Oriented Programming (OOP). Object dibuat menggunakan class, dimana sebenarnya adalah titik fokus dari OOP. Class mendeskripsikan object akan menjadi apa, tetapi terpisah dari object itu sendiri. Dengan kata lain, sebuah class dapat dideskripsikan sebagai sebuah blueprint, deskripsi, atau definisi dari object. Kita dapat menggunakan class yang sama sebagai sebuah blueprint untuk membuat object-object yang berbeda.

Class-class dibuat menggunakan keyword class and sebuah blok indentasi, dimana mengandung method-method milik class.

class Hewan:
     def __init__(self, warna, kaki):
         self.warna = warna
         self.kaki = kaki

sapi = Hewan("putih", 4)
ayam = Hewan("merah", 2)

Hewan adalah sebuah class, dimana dua atribut nya adalah warna dan kaki. Kemudian class digunakan untuk membuat dua object, yaitu sapi dan ayam.

__init__

Metode __init__ adalah method paling penting di dalam sebuah class. Method ini dipanggil ketika sebuah instance (object) pada class dibuat, menggunakan nama class sebagai sebuah fungsi.

Semua method harus memiliki self sebagai parameter pertama, meskipun tidak disahkan secara eksplisit. Python menambahkan argumen self ke dalam list, jadi kita tidak perlu mengikutsertakannya ketika kita memanggil method. Dalam sebuah definisi method, self mengacu pada instance yang memanggil method.

Instance pada class memiliki atribut. Contohnya di bawah ini instance Hewan memiliki atribut warna dan kaki. Atribut tersebut dapat diakses dengan memberikan dot (.) dan nama atribut setelah instance. Dalam sebuah __init__ method, self.attribute dapat digunakan untuk menentuan nilai awal dari atribut.

class Hewan:
     def init(self, warna, kaki):
         self.warna = warna
         self.kaki = kaki

sapi = Hewan("putih", 4)

print(sapi.warna)
=====>
putih
=====>

Pada contoh di atas, method __init__ mengambil dua argumen dan menetapkannya ke atribut. Method __init__ disebut dengan constructor.

Method

Class dapat memiliki method lain atau method tambahan untuk ditambahkan di dalamnya. Ingat bahwa semua method harus memiliki parameter self. Method tersebut diakses menggunakan cara yang sama yaitu menggunakan dot (.).

class Hewan:
     def __init__(self, warna, kaki):
         self.warna = warna
         self.kaki = kaki
 
      def bergerak(self):
         print("Jalan")
sapi = Hewan("putih", 4)

print(sapi.kaki)
sapi.bergerak()
=====>
 4
 Jalan
=====> 

Class juga dapat memiliki atribut class, dibuat dengan variabel pada body di dalam class. Atribut class dapat diakses melalui instance/object atau class nya sendiri.

class Hewan:
     kaki = 4
 
def __init__(self, nama, warna):
     self.nama = nama     
    self.warna = warna
 
kucing = Hewan("catty", "putih")

print(kucing.kaki)
print(Hewan.kaki)
=====>
 4
 4 
=====>

Atribut class dibagi atau digunakan oleh semua instance.

AttributeError

Mengakses atribut yang tidak terdefinisi pada sebuah instance akan menyebabkan error AttributeError. Error ini juga akan muncul ketika mengakses method yang tidak terdefinisi.

class Hewan:

     def __init__(self, nama, warna):
           self.nama = nama
           self.warna = warna

kucing = Hewan("catty", "putih")

print(kucing.kaki)
=====>
 AttributeError: 'Hewan' object has no attribute 'kaki' 
=====>


LANJUTKAN BACA MATERI LENGKAP