E - BOOK
Di susun oleh :
Shofia Hardi 05.04.111.00667
Disusun oleh :
Shofia Hardi 05.04.111.00667
E. Instansiasi Objek
Unyuk membuat objek dari sebuah class, dapat dilakukan dengan
memanggil nama class dengan menggunakan argument sesuai dengan
“fungsi_init_()” pada saat kita mendefinisikannya.
F. Mengakses Atribut Objek
Objek dapat diakses dengan menggunakan operator titik dan variabel class dapat
diakses dengan menggunakan nama class-nya.
DAFTAR PUSTAKA
Idcloudhost.com, “Mengenal Pengertian dan Konsep OOP/Object Oriented
Programing” diakses pada https://idcloudhost.com/panduan/mengenal-pengertian-
dan-konsep-oop/), pada 27 Agustus 2019
PythonIndo, “Pemrograman Berorientasi Objek di Python”, diakses dari
https://www.pythonindo.com/pemrograman-berorientasi-objek-di-python/, pada
tanggal 27 Agustus 2019
SlidePlayer, “Istilah-Istilah Penting Pemrograman Berbasis Objek” diakses dari
https://slideplayer.info/slide/13923223/ pada 27 Agustus 2019
Technology, “Istilah-Istilah dalam OOP (Object Oriented Programing)” diakses dari
http://dyascharisma.blogspot.com/2013/10/istilah-istilah-dalam-oop-object.html pada
27 Agustus 2019
PEMROGRAMAN BERORIENTASI OBJEK
TUGAS KE - 2
Disusun oleh :
Shofia Hardi 05.04.111.00667
B. Bentuk Syntax
def __init__(self):
# body of the constructor
C. Tipe Konstruktor
1. konstruktor Default
Konstruktor default adalah konstruktor sederhana yang tidak menerima
argumen apa pun. Definisi ini hanya memiliki satu argumen yang merupakan
referensi ke instance yang sedang dibangun.
class GeekforGeeks:
geek = ""
# default constructor
def __init__(self):
self.geek = "GeekforGeeks"
Output
GeekForGeeks
2. Parameterized Constructor
Konstruktor dengan parameter dikenal sebagai parameter constructor.
Parameterized constructor mengambil argumen pertama sebagai acuan untuk
contoh yang sedang dibangun dikenal sebagai diri dan sisanya dari argumen
yang disediakan oleh programmer.
class Addition:
first = 0
second = 0
answer = 0
# parameterized constructor
def __init__(self, f, s):
self.first = f
self.second = s
def display(self):
print("First number = " + str(self.first))
print("Second number = " + str(self.second))
print("Addition of two numbers = " +
str(self.answer))
def calculate(self):
self.answer = self.first + self.second
# perform Addition
obj.calculate()
# display result
obj.display()
Output
First number = 1000
Second number = 2000
Addition of two numbers = 3000
D. Pengertian Destructor
Destructors dipanggil ketika sebuah objek dihapus. Dalam Python,
destruktor tidak diperlukan sebanyak yang dibutuhkan di C ++ karena Python
memiliki pengumpul sampah yang menangani manajemen memori secara
otomatis.
Method __del __ () dikenal sebagai metode destruktor dengan Python.
Disebut ketika semua referensi ke objek telah dihapus yaitu ketika sebuah objek
dikumpulkan sampah.
E. Bentuk Syntax
def __del__(self):
# body of destructor
F. Contoh-Contoh
1. Berikut adalah contoh sederhana dari destructor. Dengan menggunakan kata
kunci del, akan menghapus semua referensi objek 'obj', oleh karena itu
destructor dipanggil secara otomatis.
# Python program to illustrate destructor
class Employee:
# Initializing
def __init__(self):
print('Employee created.')
obj = Employee()
del obj
Output
Employee created.
Destructor called, Employee deleted.
Catatan:
Destructor dipanggil setelah program berakhir atau ketika semua referensi ke
objek dihapus yaitu ketika jumlah referensi menjadi nol, bukan ketika objek
keluar dari ruang lingkup.
class Employee:
# Initializing
def __init__(self):
print('Employee created')
# Calling destructor
def __del__(self):
print("Destructor called")
def Create_obj():
print('Making Object...')
obj = Employee()
print('function end...')
return obj
Output
Calling Create_obj() function...
Making Object...
Employee created
function end...
Program End...
Destructor called
3. Contoh berikutnya
# Python program to illustrate destructor
class A:
def __init__(self, bb):
self.b = bb
class B:
def __init__(self):
self.a = A(self)
def __del__(self):
print("die")
def fun():
b = B()
fun()
Output
die
Dalam contoh ini ketika fungsi fun () dipanggil, ia menciptakan turunan
dari kelas B yang beralih sendiri ke kelas A, yang kemudian menetapkan
referensi ke kelas B dan menghasilkan referensi melingkar.
Disusun oleh :
Shofia Hardi 05.04.111.00667
Tidak semua property dan method dari class induk akan diturunkan.
Property dan method dengan hak akses private, tidak akan diturunkan kepada
class anak. Hanya property dan method dengan hak akses protected dan public
saja yang bisa diakses dari class anak.
uatu class yang mempunyai class turunan dinamakan parent class atau base
class. Sedangkan class turunan itu sendiri seringkali disebut subclass atau child
class. Suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class.
Karena suatu subclass dapat mewarisi apa apa yang dipunyai oleh parent
class-nya, maka member dari suatu subclass adalah terdiri dari apa-apa yang ia
punyai dan juga apa-apa yang ia warisi dari class parent-nya.
Dari hirarki diatas dapat dilihat bahwa, semakin kebawah, class akan
semakin bersifat spesifik. Class mamalia memiliki seluruh sifat yang dimiliki
oleh binatang, demikian halnya juga macan , kucing, Paus dan Monyet memiliki
seluruh sifat yang diturunkan dari class mamalia.
Dengan konsep ini, karakteristik yang dimiliki oleh class binatang cukup
didefinisikan didefinisikan dalam class binatang saja.
Class mamalia tidak perlu mendefinisikan ulang apa yang telah dimiliki
oleh class binatang, karena sebagai class turunannya, ia akan mendapatkan
karakteristik dari class binatang secara otomatis. Demikian juga dengan class
macan, kucing, Paus dan monyet, hanya perlu mendefinisikan karakteristik yang
spesifik dimiliki oleh class-nya masing-masing.
2. Superclass
Superclass digunakan untuk menunjukkan hirarki class yang berarti class
dasar dari subclass/class anak.
3. Subclass
Subclass adalah class anak atau turunan secara hirarki dari superclass.
4. Super
Keyword digunakan untuk memanggil konstruktor dari superclass atau
menjadi variabel yang mengacu pada superclass.
5. Methode Overriding
Pendefinisian ulang method yang sama pada subclass
D. Enkapsulasi
Enkapsulasi (encapsulation) adalah sebuah metoda untuk mengatur
component class dengan cara menyembunyikan alur kerja dari class tersebut.
Component class yang dimaksud adalah property dan method. Dengan
enkapsulasi, kita bisa membuat pembatasan akses kepada property dan method,
sehingga hanya property dan method tertentu saja yang bisa diakses dari luar
class. Enkapsulasi juga dikenal dengan istilah ‘information hiding’.
Pada konsep enkapsulasi semua property dalam bentuk private. Untuk
mengakses dan merubah property diperlukan method getter dan setter. Misalkan
kita buat contoh class Hero, sebagai berikut:
class Hero(object):
__jumlah = 0
def __init__(self, nama, jenis, kuat, serang, tahan):
# semua property dalam bentuk private
self.__nama = nama
self.__jenis = jenis
self.__kuat = kuat
self.__serang = serang
self.__tahan = tahan
Hero.__jumlah += 1
# method getter
def getNama(self):
return self.__nama
def getJenis(self):
return self.__jenis
def getKuat(self):
return self.__kuat
def getSerang(self):
return self.__serang
def getTahan(self):
return self.__tahan
# method setter
def setNama(self, nama):
self.__nama = nama
print(semar.getNama())
print(semar.getKuat())
semar.setKuat(90)
print(semar.getKuat())
class Hero(object):
@property
def info(self):
return (self.__nama + " - " + self.__jenis + " - " +
str(self.__kuat))
@property
def nama(self):
pass
@nama.getter
def nama(self):
return self.__nama
@nama.setter
def nama(self, input):
self.__nama = input
@property
def jenis(self):
pass
@jenis.getter
def jenis(self):
return self.__jenis
@jenis.setter
def jenis(self, input):
self.__jenis = input
@property
def kuat(self):
pass
@kuat.getter
def kuat(self):
return self.__kuat
@kuat.setter
def kuat(self, input):
self.__kuat = input
E. Polymorphisme
Polymorphism berasal dari bahasa Yunani yang berarti banyak bentuk.
Dalam PBO, konsep ini memungkinkan digunakannya suatu interface yang
sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin
secara prinsip sama namun secara proses berbeda.
Polymorphism merupakan kemampuan suatu method untuk bekerja
dengan lebih dari satu tipe argumen. Pada bahasa lain (khususnya C++), konsep
ini sering disebut dengan method overloading. Pada dasarnya, Python tidak
menangani hal ini secara khusus. Hal ini disebabkan karena Python merupakan
suatu bahasa pemrograman yang bersifat dynamic typing yaitu tidak
memerlukan deklarasi tipe.
F. Keuntungan menggunakan Polymorphisme
1. Dapat menggunakan kelas-kelas yang kita buat (sebagai super kelas)
dan membuat kelas kelas baru berdasar superkelas tersebut dengan
karakteristik yang lebih khusus dari behaviour umum yang dimiliki
superkelas.
2. Dapat membuat super kelas yang hanya mendefinisikan behaviuor
namun tidak memberikan implementasidari metode-metode yang ada.
Hal ini berguna jika ingin membuat template kelas, kelas ini disebut
dalam istilah satu interface banyak aksi.kelas abstrak karena
behaviournya masih abstrak dan belum diimplementasikan. Subkelas-
subkelas dari kelas ini yang disebut kelas konkret,
mengimplementasikan behaviuor abstrak tersebut sesuai dengan
kebutuhan masing-masing.
3. Menghindari duplikasi object, yang dapat menciptakan class baru dari
class yang sudah ada, sehingga tidak perlu menuliskan code dari nol
ataupun mengulangnya, namun tetap bisa menambahkan attribute dan
atau method unik dari class itu sendiri. Dalam konsep yang lebih
umum sering kali polymorphism disebut dalam istilah satu interface
banyak aksi.
Disusun oleh :
Shofia Hardi 05.04.111.00667