Anda di halaman 1dari 15

BAB

I
Introduction OOP
A. Paradigma Pemrograman
Terdapat 3 paradigma utama (mainstream) dalam pemrograman yakni :
1. Procedural Programming (Pemrograman Prosedural)
2. Functional Programming (Pemrograman Fungsional)
3. Object-Oriented Programming (Pemrograman Berorientasi Objek)

B. Pengertian Object Oriented Programming


A. Object: 
1. Secara umum : Segala sesuatu yang dapat kita rasakan dan dimani
pulasi.
2. Secara pemrograman : Model
yang dapat melakukan sesuatu hal yang
memiliki sekumpulandata dengan perilaku terkait.

B. Oriented : 
Artinnya Cara Pandang

C. Object Oriented Programming: 


Pemrograman dengan sudut pandang Model yang memiliki kumpula
n data (Variable/ Property) dan berperilaku (Metode). 
C. Tahapan Pengembangan dengan Object Oriente
d
A. Object-Oriented Analysis (OOA)
Proses melihat masalah, sistem, atau tugas dan mengidentifikasi obje
k dan interaksi antara objek tersebut. Keluaran dari tahap analisis
adalah sekumpulan kebutuhan.

B. Object-Oriented Design (OOD)


Proses mengubah sekumpulan kebutuhan menjadi spesifikasi imple
mentasi. Keluaran dari tahap desain adalah spesifikasi implementasi 
(Design) berupa sekumpulan kelas dan tampilan pemrograman.
Desain dapat digambarkan dengan menggunakan UML (Unified
Modeling Language) khususnya Class Diagaram.

C. Object-Oriented Programming (OOP)


Proses mengubah desain yang didefinisikan pada design menjadi seb
uah program.

D. Class Diagram
A. Class diagram merupakan salah satu struktur diagram dari UML. 
B. Digunakan untuk mengambarkan kelas dan hubungannya.

Kelas dan Objek

A. Kelas dan objek


1. Digunakan untuk mengambarkan kelas dan hubungannya.
2. Kelas terdiri dari sejumlah variable, prosedur, fungsi, dan atribut
3. Variabel didalam kelas diistilahkan sebagai Instant Variable
4. Prosedur dan Fungsi di dalam kelas diistilahkan sebagai Method
5. Atribut di dalam kelas diistilahkan sebagai Assesor dan Mutator
6. Selain itu, terdapat istilah Constructor dan Destructor.
7. Objek adalah representasi dari kelas, sehingga isi dari kelas dapat dimanfaatkan.
8. Di dalam Visual Studio Code/ IDLE / PyCharm , 1
file .py dapat memuat 1 kelas atau banyak kelas.

9. Cara menjalankan file .py pada terminal : python <spasi> <NamaFile> .py

B. Kelas VS Objek
1. 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.

2. 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.
3. Atribute
a. Atribut lebih sering disebut juga anggota atau ciri khas.
b. Atribut biasanya juga dilengkapi dengan jenis atribut tersebut seperti string,
int, float dan lain sebagainya.

4. Method
a. Metode lebih menjelaskan berupa aksi apa yang bisa dilakukan objek tersebut.
b. Metode biasanya dilengkapi dengan parameter. Metode tersebut ada yang bisa me
ngembalikan nilai dan ada juga yang tidak kembalikan nilai kepada pengguna.
BAB
II
Inheritance
1. Pengertian 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

2. Super Class Dan Sub Class


a. Superclass atau yang dapat juga disebut dengan Parent Class merupakan induk dari
class turunan
b. Subclass atau yang biasa disebut dengan Child Class merupakan anak dari superclass
yang mampu menurunkan semua sifat yang dimiliki dari parent class

3. Contoh Sub Class Dand Super Class


a. Superclass :
Computer Parts : Nama,Jenis,Pabrikan,Harga
b. Subclass :
Processor : Jumlah Core,Speed
RAM : Kapasitas

4. Kesimpulan
a. Inheritance merupakan Pewarisan dari induk (Parent Class) kepada anaknya (Child
Class)
b. Superclass merupakan induk sedangkan Subclass merupakan anak dari Superclass
c. Sebuah Subclass dapat mewarisi fungsi dari berbagai Superclass
BAB
III
Encapsulation
a. Pengertian Encapsulation (Pembungkusan)
Enkapsulasi atau pengubah akses adalah salah satu dari empat pilar utama dalam pemro
graman berorientasi objek.

Enkapsulasi merupakan konsep fundamental
pada pemrograman berorientasi objek yang digambarkan sebagai suatu ide untuk mem
bungkus data dan metode yang bekerja pada suatu data di dalam suatu unit. 

Enkapsulasi betujuan untuk membatasi akses suatu variabel maupun metode secara lan
gsung

Enkapsulasi juga bertujuan untuk mencegah perubahan / modifikasi data secara tidak sen
gaja. 

Penerapan enkapsulasi bukan berarti variabel tidak dapat diubah sama sekali melainkan 
hanya dapat di ubah dengan metode objek

Enkapsulasi disebut juga sebagai Access
Modifiers adalah sebuah konspe di dalam pemrograman berorientasi objek di
mana kita dapat mengatur/merubah dan memodifikasi hak akses suatu variabel, atribut, 
metode dan fungsi pada sebuah kelas.

Pada konsep ini kita dapat mendefinisikan mana variabel, atribut, metode dan fungsi yan
g boleh diakses secara terbuka dan mana yang bisa diakses secara terbatas.

b. Encapsulation di Dalam Python


Enkapsulasi hampir ada disetiap bahasa pemrograman yang mendukung orientasi objek. 
Enkapsulasi sering ditemui dalam bahasa pemrograman berorientasi objek seperti Java,
C++, PHP, Python dan lain – lain.

Enkapsulasi yang tersedia di dalam Python ada 3 jenis :

a. Public
Variabel atau atribut yang memiliki hak akses publik dapat diakses dari mana saja
, baik dari luar kelas maupun dari dalam kelas itu sendiri.

b. Protected
Variabel atau atribut yang memiliki hak akses protected hanya bisa diakses secara 
terbatas oleh dirinya sendiri (yaitu di dalam internal kelas), dan
juga dari kelas turunannya

c. Private
Modifier selanjutnya adalah private. Setiap variabel di dalam suatu kelas yang me
miliki hak akses private maka ia hanya bisa diakses di dalam kelas tersebut. Tidak 
bisa diakses dari luar bahkan dari kelas yang mewarisinya.

Untuk membuat sebuah atribut menjadi private, kita harus menambahkan dua b
uah underscore sebagai prefix nama atribut.

c. Encapsulation: Accessor Mutator


Selanjutnya kita bisa membuat accessor dan mutator atau getter dan setter pada suatu
kelas di Python.

Untuk apa accessor dan
mutator? Ia adalah sebuah fungsi yang akan dieksekusi ketika kita mengakses (aksesor) s
uatu atribut pada suatu kelas, atau fungsi yang dieksekusi ketika hendak mengatur (mut
ator) suatu atribut pada suatu kelas.

Untuk mendefinisikan accessor (getter), kita perlu mendefinisikan decorator
@property sebelum nama fungsi.

Sedangkan untuk mengatur mutator (setter), kita perlu mendefinisikan descriptor
@<nama-atribut>.setter.
d. Encapsulation : Conclusion
Dalam pemrograman python, kita bisa memanfaatkan fitur access modifier untuk mengenkapsul
asi sebuah kode program. Alias mengatur mana atribut yang boleh diakses dari luar, dan
mana atribut yang hanya konsumsi internal.

Sayangnya, kelemahan access modifier dalam python adalah:
1. Tidak ada atribut yang benar-benar public atau protected. Selama sebuah variabel ti
dak diawali dua buah underscore, maka ia bisa diakses dari mana pun.
2. Hal tersebut menjadikan konsep “protected”
modifier hanyalah sebuah convention atau kebiasaan saja, di
mana kalau kita mendefinisikan sebuah atribut yang diawali satu buah underscore, 
maka kita seharusnya tidak mengakses atribut tersebut kecuali dari dalam kelas itu s
endiri atau dari kelas turunannya.
BAB
IV
Exception
1.Pengenalan Konsep Kesalahan
a. Kesalahan adalah keadaan dimana Python menemukan kesalahan dalam baris kode 
yang sedang jalankan.
b. Kesalahan dalam Python akan memaksa program
untuk berhenti dan menampilkan penyebab kesalahan, jenis kesalahan dan lokasi 
baris kode kesalahan berada.
c. Hal ini tentunya dapat merugikan pihak pembuat kode maupun pengguna yang men
ggunakan program tersebut.
d. Maka dari itu, Python memperkenalkan konsep Exception.

2.Syntax Erorr dan Exception


a. Terdapat dua hal Python menjelaskan kesalahan, yakni Syntax Error dan Exception.
b. Syntax Error adalah suatu keadaan dimana baris kode dalam program
berjalan teridentifikasi mengalami kesalahaan dalam penulisan.
c. Exception adalah keadaan dimana baris kode dalam program berjalan sudah benar, 
namun ditemukannya kesalahan teknis seperti kesalahan nama function, library da
n hal lainnya.

3.Exception
Langkah penelusuran kesalahan yang disediakan oleh Python
untuk membantu pengguna mengidentifikasi dan menangani kesalahan pada kode progr
am berjalan dan tentunya hal ini tidak terduga pengguna sebelumnya.

4.Exception phyton
Python menyediakan dua fitur yang
sangat penting untuk menangani kesalahan tak terduga dalam program Python
dan menambahkan kemampuan Debugging yakni :
a. Exception
Handling, dimana Python bisa melakukan pengecualian kesalahan pada bari
s kode program berjalan yang salah
dan melanjutkan pembacaan kode di baris selanjutnya tanpa harus melakuk
an pemberhentian program berjalan.
b. Assertions Exception merupakan penanganan peristiwa,
yang terjadi selama pelaksanaan program.
Hal ini bertindak seperti if, hanya saja ketika mencapai tindakan tersebut ma
ka akan dianggap error dan program akan langsung berhenti.

5. Try dan Except


a. Di dalam pesan yang ditampilkan oleh Python,
Python menyatakan bahwa kita salah memasukkan input yang
tidak sesuai dengan tipe data
yang sudah dirancang sebelumnya di dalam kalimat “ValueError: invalid literal for
int() with base 10”.
b. Disinilah kita bisa menambahkan instruksi try dan except
untuk mengimplementasikan bagaimana Python mencoba melewati error yang dite
mukan dan tidak langsung menghentikan program berjalan.

6.Jenis – Jenis Eror


Terdapat berbagai macam error yang dapat diidentifikasi oleh
Python dan berikut adalah jenis – jenis error
yang biasa ditemukan pada penggunaan Python :
a. ImportError => Mengidentifikasi sebuah kesalahan import
yang terjadi pada program berjalan
b. IndexError =>
Python menemukan kesalahan bahwa terdapat array terindex tidak dapat dite
mukan di program berjalan
c. NameError => Adanya kesalahan penggunaan variable yang
tidak pernah dideklarasikan pada program berjalan
d. ValueError => Sebuah fungsi yang dipanggil saat kita mendeklarasikan nilai den
gan tipe yang sesuai namun nilainya yang salah.
e. TypeError => Fungsi yang dipanggil menggunakan tipe nilai yang salah
f. SyntaxError => Ditemukannya kesalahan penulisan baik function,
property maupun atribut dalam tingkatan huruf.
g. AttributError => Terjadi ketika ditemukan adanya kegagalan referensi atribut at
au penugasan
h. SystemError =>
Interpreter menemukan masalah internal, yakni Python tidak bisa menjalankan 
program

BAB
V
The iterator pattern (1)
1. Design Pattern
a. Merupakan suatu metode / konsep untuk menyelesaikan permasalahan-
permasalahan yang biasannya berulang atau memiliki pola dalam pengembangan su
atu software. 
b. Pola dasar atau template
yang umum digunakan untuk menyelesaikan problem dimana pola tersebut sudah te
ruji kegunaannya. 
c. Setiap pola
pada design pattern mengusulkan sekumpulan objek yang berinteraksi dengan cara t
ertentu untuk memecahkan masalah umum. 
d. Salah satu penerapan design pattern yang popular di python, yaitu Iterator Pattern.

2. Iterator
a. Dapat diartikan sebagai perulangan
b. Dalam bahasa design pattern, iterator adalah objek dengan metode next() untuk
melanjutkan dan metode done() yang terakhir mengembalikan True jika tidak ada ite
m yang tersisa dalam urutan.
3. Iterator pada Phyton
a. Iterator di
Python merupakan suatu objek yang umumnya dapat dilakukan iterasi atau looping. 
Objek ini akan mengembalikan data, yang dapat dilakukan satu per satu waktu.
b. Secara teknis, sebuah iterator adalah objek yang mengimplementasikan protokol ite
rator, yang terdiri dari metode __iter__() dan __next__()
c.

4. Iterable
a. Iterable adalah objek yang dapat diulang dengan bantuan for loop.
b. Iterable adalah sebuah container
yang memiliki data dan nilai yang dapat diulang untuk mengambil nilai dari masing-
masing elemen.
c. Suatu objek dikatakan iterable jika dari objek tersebut bisa dibuat menjadi iterator. C
th: list, tuple, string, dan lain-lain adalah iterable.
BAB
VI
The Iterator Pattern (2)
1. List
a. List adalah struktur data pada python
yang mampu menyimpan lebih dari satu data, seperti array.
b. Mengakses List dapat dilakukan dengan menggunakan index 

2. Set
Set adalah salah satu tipe data di Python yang tidak berurut (unordered).
Set memiliki anggota yang unik (tidak ada duplikasi). Jadi misalnya kalau kita meletakkan 
dua anggota yang sama di dalam set, maka otomatis set akan menghilangkan yang salah 
satunya

3. Dictionary
Dictionary
Python berbeda dengan List ataupun Tuple. Karena setiap urutanya berisi key dan value. 
Setiap key dipisahkan dari value-nya oleh titik dua (:),
item dipisahkan oleh koma, dan semuanya tertutup dalam kurung kurawal.
Dictionary kosong tanpa barang ditulis hanya dengan dua kurung kurawal, seperti ini: {}.
4. Syntax List Comprehensions
a. Expression : data Member Objek itu sendiri, dapat berupa metode, atau expresi yang
valid yang memiliki nilai.
b. Member :  objek atau nilai dari list atau iterable.
c. Iterable : sebuah list, set, sequence,
generator, atau objek yang dapat mengembalikn element pada satuan waktu.
d. Kondisi dari dari iterable

BAB
VII
The Iterator Pattern (3)
1. Generators
a. Kondisi dari dari iterable
b. Metode __Iter__(),
__next__() dan State StopIteration sudah di tangani secara automatis
c. Generator adalah fungsi yang mengembalikan sebuah objek perulangan yang ada. O
bjek tersebut nantinya dapat melakukan perulangan sesuai dengan kondisi diberikan 
pada fungsi tersebut. (satu nilai per satu waktu)

d. Pembuatan
iterator dengan generator sama halnya dengan menggunaan fungsi, dimana ada stat
ement return akan di ganti dengan yield

2.Generators vs Function
a. Fungsi generator berisi satu atau lebih pernyataan yield
b. Pada saat dipanggil, fungsi generator akan mengembalikan objek iterator, tapi tidak l
angsung dieksekusi.
c. Metode __iter__() dan __next__() sudah diimplementasikan secara otomatis. Jadi kit
a bisa langsung melakukan iterasi dengan fungsi next().
d. Sekali fungsi menemui yield, fungsi akan pause
dan nilai yang didapatkan saat ini akan dikembali kepada pemanggil.
e. Variabel lokal dan state-nya diingat untuk pemanggilan selanjutnya.
f. Terakhir, pada saat fungsi diterminasi atau sampai tujuan (dihentikan total)
maka statement StopIteration akan dipanggil secara otomatis.

3. Generator Expression
a. Sintaks dari generator expression mirip dengan list
comprehension. Hanya saja tanda kurung siku “[ ]” digantikan dengan tanda kurung 
biasan “( )”.
b. Perbedaan utama antara list comprehension dengan generator expression adalah,
list
comprehension langsung menghasilkan keseluruhan anggota list, sedangkan generat
or expression menghasilkannya satu item per satu waktu.

c. Tipe seperti generator expression ini sering disebut tipe lazy
(malas), karena hanya memproduksi item pada saat diminta.
Hal inilah yang menyebabkan generator
expression lebih hemat memori ketimbang list comprehension

4. Coroutines
a. Coroutine merupakan fungsi yang eksekusinya dapat di
pause/ dihentikan sementara pada suatu titik tertentu,
dan kapanpun dapat dilanjutkan dari titik perhentian terakhir.
b. Penghentian tersebut dapat dilakukan dengan keyword Yield.
c. Fitur Coroutine dapat digunakan untuk:
 Membuat sebuah fungsi yang memiliki satu atau lebih check point
yang dapat dihentikan sementara dan dapat dilanjutkan kembali
dari check point terakhir dimana eksekusi tersebut di hentikan.
 coroutine adalah fungsi yang dibagi menjadi banyak bagian, dan d
apat mengeksekusi setiap bagian dari coroutine saat menjalankan 
setiap iterasi dari for loop menggunakan fungsi berikutnya.
d. Coroutine menyerupai generator, dengan perbedaan:
 Generator menghasilkan data
 Coroutine mengkonsumsi data

Anda mungkin juga menyukai