02_PHP Object Oriented Programming
02_PHP Object Oriented Programming
Programming
Eko Kurniawan Khannedy
Eko Kurniawan Khannedy
public Y Y Y
protected Y Y N
private Y N N
Kode : Class Product
Kode : Menggunakan Product
Function Overriding
Function Overriding
● Function overriding adalah kemampuan mendeklarasikan ulang function di child
class, yang sudah ada di parent class
● Saat kita melakukan proses overriding tersebut, secara otomatis ketika kita
membuat object dari class child, function yang di class parent tidak bisa diakses lagi
Kode : Method Overriding
Kode : Mengakses Function Overriding
parent Keyword
parent Keyword
● Kadang kita ingin mengakses function yang terdapat di class parent yang sudah
terlanjur kita override di class child
● Untuk mengakses function milik class parent, kita bisa menggunakan kata kunci
parent
● Sederhananya, parent digunakan untuk mengakses class parent
Kode : Super Keyword
Constructor Overriding
Constructor Overriding
● Karena constructor sama seperti function, maka constructor-pun bisa kita
deklarasikan ulang di class Child nya
● Sebenarnya di PHP, kita bisa meng-override function dengan arguments yang
berbeda, namun sangat tidak disarankan
● Jika kita melakukan override function dengan arguments berbeda, maka PHP akan
menampilkan WARNING
● Namun berbeda dengan constructor overriding, kita boleh meng-override dengan
mengubah arguments nya, namun direkomendasikan untuk memanggil parent
constructor
Kode : Merubah Arguments Overriding
Kode : Constructor Overriding (1)
Kode : Constructor Overriding (2)
Polymorphism
Polymorphism
● Polymorphism berasal dari bahasa Yunani yang berarti banyak bentuk.
● Dalam OOP, Polymorphism adalah kemampuan sebuah object berubah bentuk
menjadi bentuk lain
● Polymorphism erat hubungannya dengan Inheritance
Kode : Inheritance
Kode : Polymorphism
Kode : Function Argument
Polymorphism
Type Check & Casts
Type Check & Casts
● Sebelumnya kita sudah tau cara melakukan konversi tipe data bukan class
● Khusus untuk tipe data object, kita tidak perlu melakukan konversi secara eksplisit
● Namun agar aman, sebelum melakukan casts, pastikan kita melakukan type check
(pengecekan tipe data), dengan menggunakan kata kunci instanceof
● Hasil operator instanceof adalah boolean, true jika tipe data sesuai, false jika tidak
sesuai
Kode : Type Check & Casts
Abstract Class
Abstract Class
● Saat kita membuat class, kita bisa menjadikan sebuah class sebagai abstract class.
● Abstract class artinya, class tersebut tidak bisa dibuat sebagai object secara
langsung, hanya bisa diturunkan
● Untuk membuat sebuah class menjadi abstract, kita bisa menggunakan kata kunci
abstract sebelum kata kunci class
● Sehingga Abstract Class bisa kita gunakan sebagai kontrak child class
Kode : Abstract Class
Kode : Membuat Abstract Class
Abstract Function
Abstract Function
● Saat kita membuat class yang abstract, kita bisa membuat abstract function juga di
dalam class abstract tersebut
● Saat kita membuat sebuah abstract function, kita tidak boleh membuat block
function untuk function tersebut
● Artinya, abstract function wajib di override di class child
● Abstract function tidak boleh memiliki access modifier private
Kode : Abstract Function
Kode : Menggunakan Abstract Function
Getter dan Setter
Encapsulation
● Encapsulation artinya memastikan data sensitif sebuah object tersembunyi dari
akses luar
● Hal ini bertujuan agar kita bisa menjaga agar data sebuah object tetap baik dan
valid
● Untuk mencapai ini, biasanya kita akan membuat semua properties menggunakan
access modifier private, sehingga tidak bisa diakses atau diubah dari luar
● Agar bisa diubah, kita akan menyediakan function untuk mengubah dan
mendapatkan properties tersebut
Getter dan Setter
● Di PHP, proses encapsulation sudah dibuat standarisasinya, dimana kita bisa
menggunakan Getter dan Setter method.
● Getter adalah function yang dibuat untuk mengambil data field
● Setter ada function untuk mengubah data field
Getter dan Setter Method