0% menganggap dokumen ini bermanfaat (0 suara)
16 tayangan66 halaman

Module 10 - PE2 Modul 3 - OOP - Summer Rie

Diunggah oleh

tebedota
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
16 tayangan66 halaman

Module 10 - PE2 Modul 3 - OOP - Summer Rie

Diunggah oleh

tebedota
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 66

MODULE 7 -

OOP
(Object Oriented Programming)
Capaian Modul

• Konsep umum dari OOP (Object • Memdesain class yang dapat digunakan
Oriented Programming) ulang, dan membuat sebuah obyek

• Perbedaan antara pendekatan dengan • Inheritance dan polymorphism


metode prosedural dan obyek
• Exceptions sebagai obyek
• Classes, objects, properties, dan
methods
Procedural Method
Metode Prosedural

• Pemrograman prosedural adalah pemrograman yang dilakukan dengan memberikan


serangkaian perintah yang berurutan.

• Paradigma ini didasari oleh konsep mesin Von Newman (stored program concept)
sekelompok tempat penyimpanan (memori), yang dibedakan menjadi memori instruksi dan
memori data, masing-masing memori tersebut dapat diberi nama dan nilai, selanjutnya
instruksi akan dieksekusi satu persatu secara sekuensial atau berurutan oleh sebuah
proses tunggal.

• Apabila urutan diubah, makan program tidak akan berjalan sebagaimana mestinya
Metode Prosedural
CONTOH
Kasus menghitung luas segitiga.
• Input Panjang
• Input Lebar
• Hitung Luas = Panjang x Lebar

Dari 3 baris perintah diatas, yang dimaksud dengan prosedural adalah, dalam eksekusi program harus sesuai urutan agar diperoleh hasil
yang sesuai. Bila urutan eksekusi dibalik, misal menjadi :
• Hitung Luas = Panjang x Lebar
• Input Panjang
• Input Lebar

Maka perintah diatas tidak dapat dieksekusi. Mengapa? Karena dibutuhkan input nilai panjang dan lebar baru kemudian dihitung, bukan
sebaliknya.
Metode Prosedural
Kelebihan Prosedural :
• Memiliki algoritma dalam pemecahan efektif
• Dalam penulisan program, struktur logikanya mudah dipahami
• Hanya memiliki 3 struktur dasar, yaitu struktur berurutan, struktur seleksi dan struktur perulangan.
• Dokumentasi yang baik.

Kekurangan Prosedural :
• Proses perawatan program yang sulit
• Sangat sulit untuk mengubah fungsi tanpa harus mempengaruhi program secara keseluruhan
• Butuh usaha yang keras untuk menterjemahkan Business Models dalam programming models.
• Memiliki kekurangan untuk terintegrasi dengan sistem lain
Object Oriented
Programming
Prosedural vs OOP
Prosedural OOP

Didalam pemrograman prosedural, program dibagi ke Didalam OOP, program dibagi ke beberapa bagian yang
beberapa bagian yang dinamakan functions. dinamakan objects.

Pemrograman prosedural menggunakan pendekatan


: top down approach. OOP menggunakan pendekatan bottom up approach.

Memiliki penentu hak akses seperti : private, public,


Tidak memiliki penentu hak akses protected etc.

Tidak mudah menambahkan data dan fungsi baru. Mudah menambahkan data dan fungsi baru.

Tidak memiliki cara untuk menyembunyikan data Memiliki cara untuk menyembunyikan data
sehingga less secure. sehingga more secure.

Tidak memungkinkan overloading Memungkinkan overloading

Function lebih penting daripada data Data lebih penting daripada function
Pemrograman Berbasis Obyek (OOP)

Konsep dari OOP dalam python ini berfokus dalam pembuatan kode yang reusable (dapat
digunakan kembali). Konsep ini juga dikenal dengan DRY (Don't Repeat Yourself).
Pemrograman Berbasis Obyek (OOP)
Pondasi dasar dari struktur OOP adalah :

• Class
• Object
• Properties (instance variable, class variables, attributs)
• Method

Jika diibaratkan dalam kehidupan nyata, class adalah mobil, maka property nya adalah warna mobil,
bentuk mobil, merk mobil dan lainnya. Method adalah aksi yang dapat dilakukan oleh mobil seperti maju,
berhenti, belok dan lainnya. Dan object adalah mobil berwarna biru yang dihasilkan oleh class mobil.
Prinsip Dasar OOP
CLASS DAN OBJECT
Class
Class adalah sebuah blueprint untuk object.

Kalau kita berbicara mengenai parrot (burung beo), blueprint atau desainnya,
• Parrot tersebut akan memiliki nama, warna, ukuran, dll.
• Parrot juga nantinya bisa singing dan dancing.
Oleh karena itu kita bisa membuat parrot menjadi sebuah class.

Untuk membuat class parrot yang sederhana kita bisa menuliskan kode berikut :
class Parrot:
Kata kunci class diikuti dengan Parrot mendefinisikan blueprint dari class parrot. Blueprint ini
nantinya akan di realisasikan dalam sebuah Object
Object
Sebelumnya kita membahasa dulu apa itu objek. Jadi, objek itu memiliki dua karakteristik.
1. Attributes
2. Behavior

Mari kita lihat contohnya:


• Parrot (burung beo) adalah sebuah object,
• name, age, color (nama, usia, warna) adalah atributnya singing, dancing (menyanyi,
menari) adalah behavior nya
Object
Konvensi OOP mengasumsikan bahwa setiap objek yang ada dapat dilengkapi dengan tiga kelompok
atribut:
• sebuah objek memiliki nama yang unik mengidentifikasinya dalam namespace rumahnya
(meskipun mungkin ada beberapa objek anonim juga)
• sebuah objek memiliki sekumpulan properti individual yang membuatnya orisinal, unik, atau luar
biasa (meskipun mungkin beberapa objek mungkin tidak memiliki properti sama sekali)
• sebuah objek memiliki sekumpulan kemampuan untuk melakukan aktivitas tertentu, mampu
mengubah objek itu sendiri, atau beberapa objek lainnya.
Object
Konvensi OOP mengasumsikan bahwa setiap objek yang ada dapat dilengkapi dengan tiga kelompok
atribut:
• sebuah objek memiliki nama yang unik mengidentifikasinya dalam namespace rumahnya
(meskipun mungkin ada beberapa objek anonim juga)
• sebuah objek memiliki sekumpulan properti individual yang membuatnya orisinal, unik, atau luar
biasa (meskipun mungkin beberapa objek mungkin tidak memiliki properti sama sekali)
• sebuah objek memiliki sekumpulan kemampuan untuk melakukan aktivitas tertentu, mampu
mengubah objek itu sendiri, atau beberapa objek lainnya.
Object

Setiap kali Anda mendeskripsikan suatu objek dan Anda menggunakan:


• sebuah kata benda - Anda mungkin mendefinisikan nama objek
• sebuah kata sifat - Anda mungkin mendefinisikan properti objek
• kata kerja - Anda mungkin mendefinisikan aktivitas objek.
Object (Contoh)

Max adalah kucing besar yang tidur sepanjang hari.


• Nama objek = Max
• Kelas = Kucing
• Properti = Ukuran (besar)
• Aktivitas = Tidur (sepanjang hari)
Object (Contoh)

Cadillac pink melaju dengan cepat.


• Nama objek = Cadillac
• Kelas = Kendaraan roda
• Properti = Warna (pink)
• Aktivitas = Pergi (cepat)
Mendefinisikan Class
Methods
Methods adalah function yang didefinisikan dalam sebuah class. Function ini seharusnya mendefinisikan
behavior dari objeknya.
Contoh
PROPERTIES
Instance Variable
• Object yang berbeda dari class yang sama mungkin memiliki nilai instance variable
yang berbeda;
• Setiap object membawa set nilai instance variablenya sendiri - mereka tidak
mengganggu satu sama lain dengan cara apa pun.
Instance Variable
Instance Variable
Class Variable
Atributs
METHODS
Methods
Methods adalah function yang didefinisikan dalam sebuah class. Function ini
seharusnya mendefinisikan behavior dari objeknya.
Methods
init
bukan method biasa, digunakan untuk pendefinisian constructor.
Constructor:
• Wajib memiliki parameter diri (disetel otomatis, seperti biasa);
• Mungkin (tetapi tidak perlu) memiliki lebih banyak parameter daripada hanya diri sendiri; jika ini terjadi, cara di
mana nama kelas digunakan untuk membuat objek harus mencerminkan definisi init;
• Dapat digunakan untuk menyiapkan objek, yaitu, menginisialisasi keadaan internalnya dengan benar, membuat
variabel instan, membuat instance objek lain jika keberadaannya diperlukan, dll. variables, instantiate any other
objects if their existence is needed, etc.
Methods
str
output ketika instance masuk ke dalam fungsi print.
Methods
dict
cek params life dari class dan objek
Methods
name
cek nama dari class dan tipe objek
Methods
module
cek nama module tempat pendefinisian class maupun objek
Methods
bases
return class parent
INHERITANCE
Hirarki Class
Superclass dan Subclass

Sekarang, Anda mungkin bisa menunjukkan beberapa subclass potensial untuk superclass
Kendaraan. Ada banyak kemungkinan klasifikasi. Kami telah memilih subkelas berdasarkan
lingkungan, dan mengatakan bahwa ada (setidaknya) empat subkelas:
• Kendaraan darat
• Kendaraan air
• Kendaraan udara
• Kendaraan luar angkasa
Subclass dan Metode

Kendaraan darat dapat dibagi lagi, tergantung pada metode pengaruhnya ke tanah.
Jadi, kita bisa menghitung:
• Kendaraan pribadi
• Kendaraan umum
• Kendaraan kargo
Contoh Lainnya
Contoh Lainnya

Contoh lainnya adalah hierarki kerajaan taksonomi hewan. Kita dapat mengatakan bahwa semua
hewan dapat dibagi menjadi lima subclass:
• mamalia
• reptil
• burung-burung
• ikan
• amfibi
Kami akan mengambil yang pertama untuk analisis lebih lanjut. Kami telah mengidentifikasi subclass
berikut:
• mamalia liar
• mamalia yang dijinakkan
Object

Class (di antara definisi lainnya) adalah sekumpulan object.


Object adalah makhluk yang termasuk dalam class.

Object adalah penjelmaan dari persyaratan, sifat, dan kualitas yang ditetapkan ke class
tertentu. Class membentuk hierarki.
Ini mungkin berarti bahwa object yang termasuk dalam class tertentu menjadi milik semua
superclass pada saat yang sama. Ini juga dapat berarti bahwa object apa pun yang
termasuk dalam class super mungkin bukan milik subclass.
Contoh

Misal:
Setiap mobil pribadi merupakan suatu benda milik class kendaraan beroda.
Ini juga berarti bahwa mobil yang sama dimiliki oleh semua superclass di class rumahnya;
oleh karena itu, ini adalah anggota kelas kendaraan juga.
Inheritance (Pewarisan Sifat)
Inheritance adalah sebuah cara untuk membuat class baru dengan menggunakan detail
dari kelas lainnya. Kelas yang baru ini akan mewariskan atribut serta method yang sudah
didefinisikan dari class utamanya. Kelas yang baru ini sering disebut dengan child
class dan kelas yang digunakan detailnya sering disebut sebagai parent class.

• superclass/Parent lebih bersifat umum dari pada subclass.


• subclass mewarisi sifat dari superclass/Parent
Inheritance (Pewarisan Sifat)
Object apa pun yang terikat ke tingkat tertentu dari hierarki class mewarisi semua sifat
yang ditentukan di dalam salah satu superclass.

Class dari sebuah object dapat menentukan ciri-ciri baru yang akan diwarisi oleh
salah satu subclass nya.
Inheritance (Pewarisan Sifat)
Inheritance (Pewarisan Sifat)
Inheritance (Pewarisan Sifat)
Hal penting yang dapat diperhatikan:

• Bird adalah parent class dari Penguin dengan sintaks Penguin(Bird). Relasi pewarisan ini
harus di validasi dengan hubungan "is a". Contohnya Penguin is a Bird merupakan valid
karena Penguin adalah termasuk Bird.
• super().__init__() memanggil konstruktor dari kelas parent nya
• method whoisThis() yang ditulis ulang di Penguin akan menimpa atau override method
yang sudah ada di parent class (Bird).
• method swim dapat dipanggil oleh instance dari Penguin karena Penguin sudah mewarisi
seluruh method yang ada pada kelas Bird.
Inheritance (Pewarisan Sifat)
Multiple Inheritance
Bagaimana Python mencari properties
dan methods?
• Mencarinya dalam objek itu sendiri
• Mencari pada classes yang terlibat dalam pembuatan object inheritance dari bawah ke
atas
• Jika terdapat satu atau lebih class dalam tingkatan jalur inheritance, Python mencari
dari kiri ke kanan
Bagaimana Python mencari properties
dan methods?
Method Resolution Order
Diamond Problem
Issubclass() &
issubclass()
• Apakah suatu class adalah turunan/sub dari class lain?
isinstance()
• Apakah suatu objek adalah instance dari suatu class?
Issubclass() &
Is Operator
• is operator memperlihatkan apakah dua variable (object_one and object_two here)
mengacu ke object yang sama.
Deeper about inheritance:
Using parent constructor
Deeper about inheritance:
Testing class variable
Deeper about inheritance:
Testing instance variables
ENKAPSULASI
Enkapsulasi
Kita dapat membatasi akses atribut dan method dalam sebuah kelas dengan
memanfaatkan sifat private yang di definisikan dengan garis bawah atau underscore
single _ atau double __
Stack
Enkapsulasi
Enkapsulasi
TERIMAKASIH

Anda mungkin juga menyukai