Professional Documents
Culture Documents
Makalah Perancangan Dan Pemrograman Berorientasi Objek
Makalah Perancangan Dan Pemrograman Berorientasi Objek
Nama : Jikky
Nim : 211110217
Pengenalan PBO....................................................................................................................................1
Kelas dan Objek.....................................................................................................................................2
Kelas vs Objek........................................................................................................................................2
4 Pilar OOP............................................................................................................................................4
Inheritance............................................................................................................................................5
Polymorphism.......................................................................................................................................8
Abstraction..........................................................................................................................................10
Exceptions...........................................................................................................................................13
Assertions............................................................................................................................................13
Exception Handling..............................................................................................................................14
Try except............................................................................................................................................15
Catch....................................................................................................................................................15
Jenis-Jenis Error...................................................................................................................................17
Pengenalan PBO
Kelas vs Objek
• Kelas / “Blueprint” : kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk
suatu tujuan tertentu dimana didalamnya terdapat sekumpulan atribut dan method.
Contoh : Class Person, Vehicle, Tree, Fruit dan lainnya.
• Objek :bentuk representasi dari sebuah kelas, membungkus data dan fungsi bersama menjadi
suatu unit atau entitas dalam sebuah program komputer.
Contoh : Dari Class Fruit kita dapat membuat object Mangga, Pisang, Apel, dan lainnya .
Atribute
• Atribut lebih sering disebut juga anggota atau ciri khas.
• Atribut biasanya juga dilengkapi dengan jenis atribut tersebut seperti string, int, float dan
lain sebagainya.
Method
• Metode lebih menjelaskan berupa aksi apa yang bisa dilakukan objek tersebut.
• Metode biasanya dilengkapi dengan parameter. Metode tersebut ada yang bisa
mengembalikan nilai dan ada juga yang tidak kembalikan nilai kepada pengguna.
• Pada contoh, dapat dilihat bahwa fungsi nama Lengkap didefinisikan dengan private,
sehingga fungsi tersebut hanya dapat diakses di dalam lingkungan kelas Testing.
• Sedangkan prosedur cetak Nama didefinisikan dengan public, sehingga prosedur tersebut
dapat diakses dari luar kelas Testing.
• Fungsi nama Lengkap dan prosedur cetak Nama disebut sebagai Method.
• Apabila memanggil fungsi__namaLengkap dari luar kelas Testing, maka menghasilkan
output error seperti berikut:
4 Pilar OOP
Encapsulation
Apa itu Encapsulation:
• Encapsulation / Enkasulapsi adalah konsep tentang pengikatan data atau metode berbeda yang
disatukan atau “dikapsulkan” menjadi satu unit data.
• Encapsulation dapat memudahkan dalam pembacaan kode karena informasi yang disajikan
tidak perlu dibaca secara rinci dan sudah merupakan satu ke satuan.
• Konsep kerja dari enkapsulasi ialah akan melindungi sebuah program dari akses atau pun
intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan
program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.
Manfaat Encapsulation :
1. Penyembunyian Informasi
2. Modularitas
3. Peningkatan Fleksibilitas
4. Dapat digunakan kembali
5. Kode pengujian yang mudah
Contoh Encapsulation :
Protected Attribute
Atribut protected hanya dapat diakses dari method class. Dengan kata lain, mereka tidak dapat diakses
dari luar class. Di Python tidak memiliki konsep atribut protected. Dengan kata lain, semua atribut
dapat diakses dari luar class.
Kita dapat mendefinisikan atribut protected dengan mengawali satu garis bawah (_)
Name Mangling pada Python ditandai dengan awalan atribut memakai garis bawah ganda (__).
Dengan demikian, kita tidak dapat mengakses __attribute langsung dari luar kelas seperti
Inheritance
Apa itu Inheritance
Inheritance merupakan suatu konsep dalam OOP (Object-Oriented Programming) yang digunakan
dengan menggunakan dimana suatu objek dapat memiliki hirarki, yang berisikan class dimana class
tersebut memiliki atribut dan juga properti, sehingga setiap class yang ada dalam objek merupakan
subclass dari objek tersebut. Bisa dikatakan seperti Pohon Keluarga
Subclass atau yang biasa disebut dengan Child Class merupakan anak dari superclass yang mampu
menurunkan semua sifat yang dimiliki dari parent class
Contoh Superclass dan Subclass
Superclass :
Computer Parts : Nama, Jenis, Pabrikan, Harga
Subclass :
Processor : Jumlah Core, Speed
RAM : Kapasitas
Dari contoh diatas kita mengetahui bahwa Processor dan juga RAM merupakan Subclass dari
Computer Parts dimana setiap subclass memiliki karakteristik yang berbeda seperti yang telah disusun
- Sebuah objek yang dibuat dengan rancangan agar dapat discan dan juga hasil scan tersebut
dikirim melalui fax dalam bentuk dokumen, program tersebut kemungkinan terbuat dari 2
superclass yaitu Scanner dan Faxer
Terdapat resiko ketika mengunakan sebuah subclass mewariskan fungsi dari 2 superclass berbeda
- Ketika kita ingin merancang sebuah objek kendaraan amfibi yang mampu berjalan didarat dan
juga di air, maka kita dapat menggabungkan 2 Superclass yaitu Motor dan juga Kapal.
- Ketika kita memanggil fungsi Maju, maka kita tidak akan mengetahui apa yang akan terjadi
karena setiap Superclass memiliki fungsi Maju, Jadi program tidak akan mengetahui maju
mana yang harus dijalankan
Pentingnya Polymorphism
• Mempermudah kita menggunakan kelas – kelas yang telah kita buat (sebagai kelas induk) dan
membuat kelas – kelas baru berdasarkan kelas induk tersebut dengan karakteristik yang lebih
khusus dari perilaku umum yang dimiliki kelas induk.
• Memudahkan kita membuat superclass yang hanya mendefinisikan perilaku (behaviour)
namun tidak memberikan implementasi dari metode – metode yang telah ada.
• Dengan memahami dan menerapkan polymorphism, kita dapat menghindari kegiatan
duplikasi objek. Kita dapat menciptakan kelas baru dari kelas yang sudah ada, sehingga kita
tidak perlu menuliskan kode dari nol ataupun mengulanginya dari awal, namun tetap dapat
melakukan penambahan atribut dan/atau method unik dari kelas itu sendiri. Konsep umum
lain dalam pemahaman proses polymorphism itu sendiri adalah satu interface dengan banyak
aksi.
Dynamic Polymorphism
Memiliki nama lain sebagaiTrue Polymorphism yang merupakan function overloading
(sebuah fungsi kelas turunan yang memiliki nama, return type argument function yang sama
dengan fungsi dalam kelas induk) yang menggunakan virtual method.
Overloading
• Metode overloading mengizinkan sebuah kelas untuk memiliki sekumpulan fungsi dan nama
yang sama dan parameter yang berbeda.
• Berkaitan dengan hal diatas, Python tidak mengizinkan pendeklarasian fungsi (baik pada
kelas maupun tidak) dengan nama yang sama
• Untuk mengimplementasikan method overloading pada Python, kitadapat menggunakan
teknik yang dikenal dengan function default parameters.
• Pada potongan kode di atas, fungsi len() (fungsi sudah ada di python) telah mengalami
perubahan bentuk dari pemanggilan pertama sebagai string menjadi list
.
Contoh fungsi User-defined Polymorphism
• Pada contoh kasus diatas, polymorphism terjadi ketika kita telah mendeklarasikan add namun
di return menjadi perhitungan yang lain.
Abstraction
Apaitu Abstraction
Abstraction adalah salah satu dari 4 pilar OOP yang bertujuan untuk mengaburkan sebagian/
seluruh property dan method dalam class.
Namun “mengaburkan” disini bukan berarti atribut tersebut menjadi tidak terlihat atau tidak
penting. Malahan sebaliknya.
Sebuah property/ method yang di-“abstrak”-an akan menjadi atribut wajib untuk class
turunannya.
Contoh :
- Sebuah bangun datar segiempat yang akan dihitung luas dan kelilingnya, pastinya wajib
memiliki minimal 1-2 sisi. Maka atribut sisi tadi merupakan property abstract dari
bangun datar segiempat tersebut.
Contoh: Setiap tombol pasti memiliki fungsi atau keluaran berbeda. Selain memilikifungsi yang
berbeda-beda, ada pula warna, ukuran, bentuk, dan sebagainya yang mungkin berbeda pula.
Namun ada 1 hal yang menyamakan semua tombol, yaitu bisa di tekan atau di klik.
Cara membuat class Abstract
Pada dasarnya, Python tidak menyediakan keyword khusus untuk mendeklarasikan sebuah kelas
Abstract. Oleh sebab itu, kita harus mengimport library Python yang bernama “abc” untuk dapat
menerapkan Abstraction pada class.
Note : jangan lupa diimport terlebih dahulu abstract property dengan syntax
defcetakSisi(self, s1) :
classSegiEmpat(ABC) :
print("sisi1 awal=", Persegi.sisi1)
@abstractproperty
Persegi.sisi1 = s1
defsisi1(self) :
print("sisi1 akhir =", Persegi.sisi1)
pass
persegi = Persegi()
@abstractproperty
print("sisi1 awal =", persegi.sisi1)
defsisi2(self) :
persegi.cetakSisi(20)
pass
Output :
sisi1 awal (cetak dari luar kelas) = 0
sisi1 awal = 0
sisi1 akhir = 20
Abstract Method:
Sama seperti property, method abstract merupakan method yang wajib dimiliki/dideklarasikan oleh
semua kelas-kelas turunan dari parent class abstract nya.
Sebuah method dalam class abstract bisa dideklarasikan menjadi method abstract dengan cara
mendefinisikan decorator @abstractmethod sebelum/diatas method yang akan di abstrak-an.
Syntax untukmengimport library abstract secaralengkap :
fromabcimportABC, abstractproperty,abstractmethod
ContohAbstrak Method:
Output : sisi1 = 0
sisi2 = 0
Luas = 24
Exceptions
Apa itu Exceptions
Exception adalah setiap kejadian yang tidak diharapkan, dan kondisi yang tidak umum yang mungkin
terjadi pada saat run – time program.
Exception terjadi ketika program menemui kesalahan saat instruksi program dijalankan.
Contoh exception
Exceptions python
• Python menyediakan duafitur yang sangat penting untuk menangani kesalahan tak
terduga dalam program Python anda dan untuk menambahkan kemampuan debugging
di dalamnya:
Assertions
• Assertions adalah sanity-check yang dapat Anda nyalakan atau matikan ketika Anda
selesai dengan pengujian program
• Assertions mirip seperti dengan error yang memberikan informasi kesalahan yang
seharusnya tidak terjadi.
• Bedanya assertions hanya ada di mode debug, Ketika sudah sudah melakukan deploy
pada mode production,maka kesalahan ini akan diabaikan.
Exception Handling
Apaitu Exception Handling
Exception handling adalah suatu penanganan saat terjadi kesalahan pada sebuah program akan
terjadi suatu bentuk penanganan yang dilakukan oleh kita dan sering disebut dengan exception
handling. Adanya kesalahan / error yang terjadi pada program pada saat runtime dapat
menyebabkan program berhenti.
Try ini untuk mengeplementasikan bagaimana python mencoba melewati error yang ditemukan dan
try ini tidak menghentikan program yang berjalan.
ContohTry
Catch
• Catch digunakan untuk menentukkan tipe eksepsi yang akan ditangkap.
• Try catch seperti namanya try mencoba dan catch adalah untuk menangkap
• Mencoba apa? Mencoba untuk menjalankan sebuah blok kode.
• Menagkap apa? Menangkap error misalnya error tersebut terjadi.
Contoh if else
Jenis-Jenis Error
• Runtime error =>terjadi Ketika program melakukan perintah yang tidak dapat di selesaikan
• Resource error =>terjadi saat nilai variable yang kita masukkin terlalu besar sehingga
membuatnya melebihi batas maksimal progman..
• Arithmetic error =>terjadi saat mengerjakan perhitungan yang gak logis yang di masukan
oleh kita.
• Index error =>terjadi saat daftar index yang di luar jangkauan
• Compilation error =>terjadi saat proses di mana program yang ditulis dalam bahasa tingkat
tinggi dikonversi kebentuk yang bisa di baca sama mesin. Error ini relative lebih mudah untuk
ditelusuri (trace) karena compiler akan memberitahu pada baris program yang mana
terdapateror. Example : lupa membubuhkan notasi titik koma (;) pada akhir statement.