PHP Object Oriented Programming
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 : Parent 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