Pemrograman Berorientasi Objek di Python
Pemrograman Berorientasi Objek di Python
Pengertian Pemrograman
Berorientasi Objek
Pemrograman
berorientasi objek atau dalam bahasa inggris disebut Object Oriented
Programming (OOP) adalah paradigma atau teknik pemrograman di mana
semua hal dalam program dimodelkan seperti objek dalam dunia nyata. Objek di
dunia nyata memiliki ciri atau attribut dan juga aksi atau kelakuan (behaviour).
Kita misalkan sebuah
mobil. Mobil memiliki ciri punya ban, stang, kursi, pedal gas, rem, dan lain
sebagainya. Ada juga ciri warna, atau tahun keluaran berapa. Selain punya ciri,
mobil juga punya aksi atau sesuatu yang bisa dilakukan olehnya. Misalnya,
ketika pedal diinjak apa yang terjadi. Ketika di rem apa yang terjadi, dan lain
sebagainya.
Program juga demikian.
Semua unit dalam program bisa dianggap sebagai objek. Objek besar dibangun dari
objek – objek yang lebih kecil. Objek yang satu berinteraksi dengan objek yang
lain, sehingga semua menjadi sebuah kesatuan yang utuh.
Python dari awal
dibuat sudah mengadopsi OOP. Selain itu Python juga bisa menggunakan paradigma
pemrograman lama yaitu pemrograman terstruktur. Oleh karena itu, Python disebut
bersifat hibrid.
Istilah – Istilah
Dalam OOP
Sebelum mempelajari
lebih jauh tentang OOP, ada baiknya kita harus mengetahui istilah – istilah
dalam OOP, yaitu sebagai berikut:
1.
Kelas – Kelas adalah cetak biru atau prototipe
dari objek dimana kita mendefinisikan atribut dari suatu objek. Atribut ini
terdiri dari data member (variabel) dan fungsi (metode).
Pembuatan Kelas
Kita mendefinisikan
sebuah kelas dengan menggunakan kata kunci class diikuti oleh nama
kelas tersebut. Berikut adalah sintaks pembuatan kelas di Python.
class
ClassName:
'''class docstring'''
class_body
Kelas memiliki
docstring atau string dokumentasi yang bersifat opsional artinya bisa ada atau
tidak. Docstring bisa diakses menggunakan format ClassName.__doc__
class_body terdiri
dari semua pernyataan berupa attribut, fungsi, dan data dari kelas
2.
Variabel Kelas – Variabel kelas adalah variabel yang dishare atau
dibagi oleh semua instance (turunan) dari kelas. Variabel kelas didefinisikan
di dalam kelas, tapi di luar metode-metode yang ada dalam kelas tersebut.
3.
Data member – Data member adalah variabel yang menyimpan
data yang berhubungan dengan kelas dan objeknya
4.
Overloading Fungsi – Overloading fungsi adalah fungsi yang
memiliki nama yang sama di dalam kelas, tapi dengan jumlah dan tipe argumen
yang berbeda sehingga dapat melakukan beberapa hal yang berbeda.
5.
Overloading operator – Overloading operator adalah pembuatan
beberapa fungsi atau kegunaan untuk suatu operator. Misalnya operator + dibuat
tidak hanya untuk penjumlahan, tapi juga untuk fungsi lain.
6.
Variabel instansiasi – Variabel instansiasi adalah variabel
yang didefinisikan di dalam suatu metode dan hanya menjadi milik dari instance
kelas.
7.
Pewarisan/Inheritansi – Inheritansi adalah pewarisan
karakteristik sebuah kelas ke kelas lain yang menjadi turunannya.
Sintaks
Pewarisan
memiliki sintaks sebagai berikut:
class SubClassName (ParentClass1[, ParentClass2, ...]):
"""docstring"""
class_body
8.
Instance – Instance adalah
istilah lain dari objek suatu kelas. Sebuah objek yang dibuat dari prototipe
kelas Lingkaran misalnya disebut sebagai instance dari kelas tersebut.
Untuk
membuat objek dari sebuah kelas, kita bisa memanggil nama kelas dengan argumen
sesuai dengan fungsi
__init__() pada saat kita mendefinisikannya.# Membuat objek pertama dari kelas Karyawan
karyawan1 = Karyawan("Sarah", 1000000)
# Membuat objek kedua dari kelas Karyawan
karyawan2 = Karyawan("Budi", 2000000)
9.
Instansiasi – Instansiasi adalah pembuatan
instance/objek dari suatu kelas
10.
Metode – Metode adalah fungsi yang
didefinisikan di dalam suatu kelas
11.
Objek – Objek adalah instansiasi atau perwujudan
dari sebuah kelas. Bila kelas adalah prototipenya, dan objek adalah barang
jadinya.
Inheritance
Inheritance (Pewarisan
atau turunan) merupakan sebuah konsep dalam pemrograman yang paling penting,
pada inheritance terdapat sebuah proses dimana sebuah class dapat mengakses
semua property dan semua method yang terdapat dari class yang lainnya. untuk Memahami
Konsep Inheritance Pada pemrograman Python kita akan membuat sebuah
contoh sederhana seperti dibawah ini:


Constructor
Pada
contoh awal tentang penjelasan class, terdapat sebuah method
bernama __init__(). Method itulah yang disebut dengan constructor. Suatu
constructor berbeda dengan method lainnya, karena constructor akan otomatis
dieksekusi ketika membuat object dari class itu sendiri.

Ketika
object honda dibuat dari class Car, constructor langsung dieksekusi. Hal
ini berguna jika anda membutuhkan proses inisialisasi ketika suatu object
dibuat. Suatu constructor juga bisa memiliki satu atau beberapa parameter, sama
seperti method pada umumnya namun constructor tidak bisa mengembalikan value.
Object
Object
merupakan produk hasil dari suatu class. Jika class merupakan blueprint dari
suatu rancangan bangunan, maka object adalah bangunan itu sendiri. Begitulah
contoh analogi yang bisa saya gambarkan mengenai relasi antara class dan
object. Berikut contoh implementasi dalam bentuk code program:

Dari
contoh di atas, terdapat 2 buah object car1 dan car2 yang
dibuat dari class yang sama. Masing-masing dari object tersebut berdiri
sendiri, artinya jika terjadi perubahan attribute dari
object car1 tidak akan mempengaruhi object car2 meskipun
dari class yang sama.
Daftar
Pustaka
DUMET School. (2018, October 5). Memahami
Konsep Inheritance Pada pemrograman Python. Retrieved July Thursday, 2020,
from DUMET School:
https://kursuswebprogramming.com/memahami-konsep-inheritance-pada-pemrograman-python/
pythonindo.
(2019). Pemrograman Berorientasi Objek di Python. Retrieved July
Thursday, 2020, from pythonindo: https://www.pythonindo.com/pemrograman-berorientasi-objek-di-python/
Wijaya, H.
I. (2018, June 3). Object Oriented Programming Pada Python. Retrieved
July Thursday, 2020, from hiwijaya.com:
https://hiwijaya.com/blog/oop-pada-python
Workshop
Python 101. (2013). Object-Oriented Programming (Pemrograman berorientasi
Obyek). Retrieved July Thursday, 2020, from sakti.github.io:
https://sakti.github.io/python101/oop.html
Komentar
Posting Komentar