Module 10 - PE2 Modul 3 - OOP - Summer Rie
Module 10 - PE2 Modul 3 - OOP - Summer Rie
OOP
(Object Oriented Programming)
Capaian Modul
• Konsep umum dari OOP (Object • Memdesain class yang dapat digunakan
Oriented Programming) ulang, dan membuat sebuah obyek
• 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.
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.
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
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
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.
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