OOP / PBO
Pemrograman Berorientasi Objek
By: Miftahul Ulum
@miftahululum002 From Arkatama
PBO
§ Merupakan paradigma pemrograman yang berfokus pada
penggunaan objek-objek dan interaksi di antara objek tersebut
§ Class, Object, Attributes, Methods
Differences
OOP Concepts
Ilustrasi (Class Diagram)
Class
§ Sebuah blueprint atau cetak biru untuk menciptakan objek- objek.
§ Kelas dapat memiliki properti (variabel)
§ Metode (fungsi) yang dapat digunakan oleh objek-objek yang dibuat dari kelas tersebut
Class
properti class
Method/behaviour
Constructor
§ Metode yang dieksekusi ketika sebuah objek diinstansiasi.
§ menginisialisasi nilai awal dari properti objek
§ PHP __construct()
Constructor
Object
§ Sebuah instansi dari kelas. Setiap objek memiliki properti dan metode yang unik, dan dapat berinteraksi dengan objek-objek lainnya
Object
Encapsulation
§ Enkapsulasi (encapsulation) adalah konsep dalam PBO yang menekankan penggunaan hak akses (access modifiers) pada properti dan metode dalam sebuah kelas.
§ Hak akses ini dapat digunakan untuk membatasi akses ke
properti dan metode yang hanya dapat diakses dari dalam kelas (private), dari dalam kelas dan kelas turunannya (protected), atau dari mana saja (public)
Access Modifier
§ Public, Mengatur hak akses method dan properti agar dapat diakses dari manapun bahkan dari luar class (pada saat menjadi objek).
§ Private, Mengatur hak ases method dan property agar hanya dapat diakses dari class tersebut namun tidak dapat diakses dari class turunannya dan dari objeknya.
§ Protected, Mengatur hak akses method dan property agar hanya dapat diakses di class tersebut dan turunannya tapi tidak bisa dari objek.
§ abstract, Hanya dapat digunakan class dan method untuk membuat class dan method abstrak.
§ Final, Hanya dapat digunakan class dan method ini membuat sebuah class tidak dapat diturunkan dan method tidak dapat di timpa atau dideklarasikan ulang
Access Modifier
Inheritance
§ Sebuah kelas dapat mewarisi properti dan metode dari kelas lain yang disebut superclass.
§ Kelas yang mewarisi properti dan metode disebut subclass atau turunan (child class), sedangkan kelas yang memberikan
properti dan metode disebut superclass atau induk (parent class)
Inheritance
Polimorfisme
§ Poli -> banyak, morph -> bentuk
§ Polimorfisme (polymorphism) adalah konsep dalam PBO di mana objek-objek dari kelas- kelas yang berbeda dapat
digunakan secara interchangeable. Hal ini dapat dicapai dengan menggunakan pewarisan, di mana kelas-kelas turunan dapat memiliki metode dengan nama yang sama namun perilaku yang berbeda
Polimorfisme
§ Polimorfisme dapat menggunakan konsep inheritance dan overriding method
§ Overriding method adalah konsep di mana sebuah method yang telah diwarisi dari class induk dapat diubah fungsinya pada
class turunan
Overriding
Abstract Class
§ Sebuah class yang tidak bisa diinstansiasi secara langsung, tetapi hanya bisa digunakan sebagai class induk untuk class turunan.
§ Class yang dibuat dengan konsep abstraksi dapat menyediakan kontrak atau interface yang harus diikuti oleh class turunan.
Abstract Class
Interface
§ Interface adalah class yang digunakan sebagai kontrak/template yang harus diikuti oleh class yang mengimplementasikannya.
§ Interface dapat menyediakan method-method yang harus diimplementasikan oleh class turunan.
Interface
Tugas
§ 1. Buatlah class Animal dengan property nama dan jenis, serta method getInfo() yang mengembalikan informasi tentang hewan tersebut.
§ 2. Buatlah class Cat yang merupakan turunan dari class Animal dengan property jenis
bernilai "kucing" dan method getInfo() yang menambahkan informasi khusus tentang kucing.
§ 3. Buatlah class Dog yang merupakan turunan dari class Animal dengan property jenis
bernilai "anjing" dan method getInfo() yang menambahkan informasi khusus tentang anjing.
§ 4. Buatlah objek dari class Animal, Cat, dan Dog, lalu panggil method getInfo() untuk masing- masing objek.
§ 5. Unggah ke repository dan screenshot hasil pengerjaan ke dalam file PDF dan unggah ke aplikasi SINAUO