Object Oriented Programming #1 — Class dan Object (Python)

M. Bahrul Subkhi
5 min readDec 5, 2023

--

Object Oriented Programming atau Pemrograman Berorientasi Object (PBO) merupakan salah satu paradigma yang diterapkan hampir di seluruh bahasa pemrograman. Konsep dasar dari PBO adalah mengumpulkan data dan fungsi yang memiliki hubungan kedalam suatu pulau informasi. Pulau ini disebut dengan object.

Jika dibandingkan dengan bahasa pemrograman prosedural, PBO akan melihat suatu masalah secara keseluruhan. Dalam bahasa pemrograman prosedural suatu masalah akan dipecahkan dengan cara memanggil prosedur yang biasa disebut dengan function. Dalam PBO, alih-alih berurusan dengan data secara langsung PBO akan memahami data mana yang akan digunakan dengan cara melakukan modeling. Untuk melakukan modeling ini ada beberapa istilah yang perlu dipahami yaitu class dan object

  1. Pengenalan Class dan Object

Class merupakan sebuah blueprint dari object yang akan kita buat. Class berarti cetakannya sedangkan object (instance) adalah hasil dari cetakan tersebut. Untuk memahami secara lebih jelas perhatikan tabel berikut ini.

Tabel Contoh Class dan Object

Untuk membuat sebuah class kita dapat menggunakan kode berikut ini. Nama sebuah kelas harus diawali dengan huruf kapital.

class NamaKelas:
# atribut atau metode yang digunakan di class ini

Contoh dalam pembuatan class sebuah Dog

class Dog:
def __init__(self, nama, umur):
self.nama = nama
self.umur = umur

def duduk(self):
print(f"{self.nama} sekarang duduk")

def berdiri(self):
print(f"{self.nama} sekarang berdiri")

Kode diatas akan dijelaskan pada sub bab dibawah ini

  • Method __init__

Fungsi yang berada dalam sebuah class dinamakan dengan method. Semua aturan fungsi yang sudah kita pelajari di bab sebelumnya berlaku juga pada pembuatan method. Jika kita lihat pada baris ke-2 terdapat method __init__, method ini merupakan spesial method yang secara otomatis akan berjalan setiap kali object/instance dari class Dog dibuat. Penulisan method ini diawali dengan dua kali underscore ( _ ) dan diakhiri juga dengan dua kali underscore ( _ ). Tanpa penulisan dua kali underscore di awal dan di akhir ini maka python tidak akan menjalankan method ini secara otomatis.

  • Parameter self

Pada method __init__ terdapat tiga parameter yaitu self, nama dan umur. Parameter self merupakan sebuah parameter yang harus ada didalam pembuatan method, dan harus ditulis di awal sebelum parameter lainnya. Jika kita lihat pada method duduk dan berdiri, parameter self harus ditulis walaupun tidak ada parameter lain di dalam method tersebut.

Parameter self ini berfungsi untuk mendapatkan akses secara internal terhadap atribut atau method didalam sebuah class saat kita membuat objeck/instance.

  • Membuat Objeck/Instance dari class Dog

Jika sebuah class adalah blueprint maka object adalah hasil cetakannya. Mari kita buat object dari class Dog

class Dog:
def __init__(self, nama, umur):
self.nama = nama
self.umur = umur

def duduk(self):
print(f"{self.nama} sekarang duduk")

def berdiri(self):
print(f"{self.nama} sekarang berdiri")

my_dog = Dog("Labrador",6)

print(f"anjingku bernama {my_dog.nama}")
print(f"anjingku berumur {my_dog.umur} tahun ")

Baris ke 12 merupakan cara pembuatan object my_dog berdasarkan class Dog. Pembuatan object harus menggunakaan aturan lowercase. Pada pembuatan object my_dog kita mengirim dua variabel yaitu Labrador dan 6. Parameter ini disesuaikan dengan kebutuhan method __init__ pada class Dog. Ingat parameter self akan diproses secara otomatis sehingga kita hanya perlu mengirim variabel untuk parameter nama dan umur. Jika baris ke 12 ini dijalankan maka python akan membuat sebuah object bernama my_dog dengan nama = Labrador dan umur = 6

  • Mengakses Attribute

Untuk mengkases atribute pada sebuah objek/instance kita menggunakan bantuan titik ( . ) perhatikan baris ke 14 dan 15 dari kode diatas. Saat akan mengakses atribute nama dari object my_dog penulisannya menjadi dibawah.

{my_dog.nama}

Dengan bantuan titik (.) disini maka python akan mencari objek dengan nama my_dog kemudian mencari atribute nama di objeck my_dog tersebut. Jika baris 14 dan 15 dijalankan maka akan menghasilkan output seperti berikut.

anjingku bernama Wili
anjingku berumur 6 tahun
  • Memanggil Method

Jika kita sudah membuat object dari suatu class maka kita dapat menggunakan method yang ada pada class tersebut. Perhatikan kode dibawah ini

class Dog:
def __init__(self, nama, umur):
self.nama = nama
self.umur = umur

def duduk(self):
print(f"{self.nama} sekarang duduk")

def berdiri(self):
print(f"{self.nama} sekarang berdiri")

my_dog = Dog("Wili",6)

print(f"anjingku bernama {my_dog.nama}")
print(f"anjingku berumur {my_dog.umur} tahun")

my_dog.duduk()
my_dog.berdiri()

Perhatikan baris ke 17 dan 18, hampir mirip seperti pengaksesan atribut, pemanggilan method juga menggunakan bantuan titik (.) Kita tulis nama object terlebih dahulu, beri tanda titik, diakhiri dengan nama method yang akan dipanggil. Jika kode tersebut dijalankan maka akan menghasilkan output seperti berikut :

anjingku bernama Wili
anjingku berumur 6 tahun
Wili sekarang duduk
Wili sekarang berdiri
  • Memanggil Method dengan parameter

Perhatikan kembali contoh kode pada class Dog berikut ini

my_dog = Dog("Wili",6)

merupakan cara pembuatan objek my_dog dari Class Dog dengan dua paramater yang terdiri dari string dan integer, yaitu Wili dan 6. Aturan pembuatan objek dengan paramater seperti ini memiliki aturan yang sama dengan pemanggilan function pada pemrograman prosedural

2. Kegiatan Praktik

  • Kegiatan 1 : Class dengan satu instance
class LightSwitch():
def __init__(self):
self.switchIsOn = False


def turnOn(self):
# turn the switch on
self.switchIsOn = True


def turnOff(self):
# turn the switch off
self.switchIsOn = False




def show(self): # added for testing #
print(self.switchIsOn)


# Main code
oLightSwitch = LightSwitch()


# Calls to methods
oLightSwitch.show()
oLightSwitch.turnOn()
oLightSwitch.show()
oLightSwitch.turnOff()
oLightSwitch.show()
oLightSwitch.turnOn()
oLightSwitch.show()

Amati hasilnya kemudian tulis analisis singkat mengenai kegiatan ini

  • Kegiatan 2 : Class dengan dua instance

Buat sebuah file program baru kemudian tulis kode berikut ini

class LightSwitch():
def __init__(self):
self.switchIsOn = False


def turnOn(self):
# turn the switch on
self.switchIsOn = True


def turnOff(self):
# turn the switch off
self.switchIsOn = False


def show(self): # added for testing #
print(self.switchIsOn)




# Main code
oLightSwitch1 = LightSwitch()
oLightSwitch2 = LightSwitch()


# Test code
oLightSwitch1.show()
oLightSwitch2.show()
oLightSwitch1.turnOn() # Turn switch 1 on
# Switch 2 should be off at start, but this makes it clearer
oLightSwitch2.turnOff()
oLightSwitch1.show()
oLightSwitch2.show()

Amati hasilnya kemudian tulis analisis singkat mengenai kegiatan ini

  • Kegiatan 3 : Mendalami Class

Buat sebuah file program baru kemudian tulis kode berikut ini.

class RemoteTv():


def __init__(self):
self.switchIsOn = False
self.brightness = 0


def turnOn(self):
self.switchIsOn = True


def turnOff(self):
self.switchIsOn = False


def raiseLevel(self):
if self.brightness < 10:
self.brightness = self.brightness + 1


def lowerLevel(self):
if self.brightness > 0:
self.brightness = self.brightness - 1


# Extra method for debugging
def show(self):
print('Switch is on ?', self.switchIsOn)
print('Brightness is:', self.brightness)


# Main code
remoteSatu = RemoteTv()


# Turn switch on, and raise the level 5 times
remoteSatu.turnOn()
remoteSatu.raiseLevel()
remoteSatu.raiseLevel()
remoteSatu.raiseLevel()
remoteSatu.raiseLevel()
remoteSatu.raiseLevel()
remoteSatu.show()


# Lower the level 2 times, and turn switch off
remoteSatu.lowerLevel()
remoteSatu.lowerLevel()
remoteSatu.turnOff()
remoteSatu.show()

Amati hasilnya kemudian tulis analisis singkat mengenai kegiatan ini

--

--

M. Bahrul Subkhi

Software Engineer || Research Natural Language Processing