Dokumen tersebut membahas tentang pemrograman berorientasi objek dalam PHP, meliputi pengenalan konsep-konsep dasar seperti class, object, method, property, inheritance, dan penggunaan access modifier untuk membatasi akses properti dan method. Dokumen ini juga menjelaskan cara membuat class, object, method getter dan setter, serta contoh kode untuk mempraktikkan konsep-konsep tersebut.
1. Object Oriented Programming dalam
PHP
Syarat dalam modul ini anda harus memahami function, variable, conditionals (if..else..) dan loop
1. Buat dua file php
class_lib.php
oop2.php
Pada intinya, oop membuat agar listing kode kita bersifat modular, jadi listing kode kita nanti
akan kita masukkan ke dalam beberapa file dan akan kita masukkan ke php utama kita dengan
mempergunakan php ‘include’. Dalam kasus kali ini, oo php akan kita tuliskan kedalam :
class_lib.php
2. Buat class denganmempergunakankeywordclassdiikuti dengannamaclassyanginginkita buat
3. Tambahkan variabel ke dalam class kita
4. Tambahkan function / method ke dalam class kita
Method dipergunakan untuk memanipulasi data/properti dari kelas itu sendiri
2. 5. Fungsi getter dan setter
Kita sudah membuat function get_name() dan set_name().
Method/functioninimengikutiaturan umum dari OOP seperti di bahasa pemrograman lainnya
(java, ruby dll) dimana kita membuat method untuk menge-’set’ dan menge-‘get’ properti
(atribut) dari class. Aturan umum lainnya adalah, nama getter dan setter harus sesuai dengan
nama dari properti.Sehingga,ketika programmer lain ingin memakai object kita, mereka akan
tahu jika kita memiliki function/method set_name() pasti ada properti bernama name.
6. Variabel $this
Pada listing berikut
$this->name = $new_name;
$this adalah variabel built-in(ada pada semua object), yang menunjuk kepada object saat ini.
Dengankata lain$thisadalahspecial self referencingvariabel.Kitamempergunakan $this untuk
mengakses properti dan memanggil method lain dari class.
7. Include class kita kedalam php utama
Kita tidak akan menuliskan class php langsung kedalam halaman php utama kita. Tujuan dari
oop tidakakantercapai.Langkah yangbaikadalahmembuathalamanphplainyang hanyaberisi
class-classkitalalukitaaksesclass-classtersebutdenganmempergunakan include atau require
8. Instantiate/ buat object
Classadalahblueprint/template/cetakandari object.Classtidakakanmenjadiobjectkalautidak
kitainstantiate.Ketikakitameng-instantiatekitamembuatinstance dari objectkedalammemori
3. 9. Keyword new
Untuk membuatobject dari class kita mempergunakan keyword new. Ketika membuat object,
kita bisa memberi kurung setelah nama class bisa juga tidak, seperti pada contoh dibawah
10. Set properti dari object
Kitamempergunakanmethodsetter.Harapdiingatbahwameskipun$stefandan$jimmy dibuat
dari class person keduanya adalah OBJECT yang BERBEDA
11. Mengakses data dari object
Kitamempergunakan getter untuk mengakses data yang tersimpan di object kita…sebenarnya
adalah data yang sama dengan yang kita masukkan dengan mempergunakan setter.
Ketika mengakses properti dan method dari class, kita mempergunakan operator‘->’.
4. 12. Constructor
Semuaobjectbisamemiliki methodbuiltin yang bernama constructor. Dengan constructor kita
dapat menginisialisasi properti dari object kita (memberi nilai kedalam properti) ketika kita
meng-instantiate object.
Note :
Ketika kita membuat __construct (membuat method ini bersifat opsional), php akan
memanggil method __construct()secara otomatis ketika kita meng-instantiate object.
Methodconstruct diawali denganduaunderscore (__) dankata‘construct’diikuti dengandaftar
argument (seperti function)
5. 13. Membuat object dengan construtor
Kita bisa membuat object baru dengan constructor sekaligus memberi nilai ke propertinya,
dalam artian kita tidak lagi memerlukan method setter
14. Membatasi akses ke properti dengan mempergunakan ‘access modifiers’
Salahsatu prinsipfundamental OOPadalahenkapsulasi.Idenyaadalah,kitamembuatkode yang
lebih baik dengan membatasi akses ke struktur data pada object kita (properti)
Ada 3 access modifier, yaitu :
Public
Private
Protected
Public adalah default modifier.Ketika kita mendefine variabel dengan keyword ‘var’, variabel
tersebut dianggap public
6. 15. Membatasi akses ke properti dengan mempergunakan ‘access modifiers’ : bag 2
Ketikakitamendeclare properti menjadi ‘private’,hanyaclassyangsamayang dapat mengakses
properti tersebut.
Ketika properti dideclare ‘protected’, hanya class yang sama dan class turunannya saja yang
dapat mengakses properti tersebut.
Properti yang dideclare ‘public’ tidak memiliki batasan akses, berarti semua orang bisa
mengaksesnya
Coba listing kode dibawah
16. Membatasi akses ke method
Sama dengan properti. Dapat dibatasi dengan mempergunakan 3 modifier yaitu :
Public
Private
Protected
Karena method get_pinn_number() dideclare private, satu-satunya tempat kita bisa
mempergunakan method ini adalah pada class yang sama – dengan kata lain di method yang
lain pada class yang sama. Jika kita ingin memanggil atau mempergunakan method ini secara
langsung maka pergunakan modifier ‘public’.
7. 17. Inheritance
Kita bisa mempergunakan class sebagai dasar bagi class lain
Kenapa?
Agar kita dapat mempergunakan kembali kode yang sebelumnya pernah kita buat
Kita ingin membuat class employee, karena employee adalah jenis dari orang, akan memiliki
properti dan method yang secara umum sama.
Dalam situasi demikian, inheritance dapat membuat kode kita lebih ringan, karena kita
mempergunakan kode yang sama di dua class yang berbeda.
18. Reusing code dengan inheritance : part 2
Karena class ‘employee’ dasarnya adalah class ‘person’,’employee’ secara otomatis akan
memiliki semua properti dan method public serta private dari class ‘person’.
19. Reusing code dengan inheritance : part 3
Kita dapat memanggil method get_name pada object ‘employee’ kita seperti tampak pada
listing kode dibawah
8. 20. Overriding method
Kadangkala ketikamemakai inheritance,kitaperlumerubahoperasi yangdijalankan oleh suatu
method, sehingga method tersebut menjalankan operasi yang berbeda dengan method yang
bernama sama yang ada pada parentnya (class yang di extend)
Misal,methodset_name() padaclass‘employee’ melakukan hal yang berbeda dengan method
set_name() yang ada pada class ‘person’. Kita meng-override set_name versi class ‘person’
dengan cara mendeklarasikan method yang sama di class ‘employee’.
21. Overriding method : part 2
Kadang kala, kita ingin mengakses method class parent kita dari class anak kita. Dalam kasus
diatas, mengakses method set_name() versi class ‘person’ dari method yang ada pada class
‘employee’. Kode yang dipergunakan adalah :
person::set_name($new_name);
9. 22. Overriding method : part 3
Dengan mempergunakan :: kita bisa menyebutkan nama class yang akan diakses php untuk
menjalankansuatumethod –‘person::set_name()’memerintahkan php untuk mencari method
‘set_name()’ pada class ‘person’. Cara lain untuk melakukan hal ini adalah dengan
mempergunakan keyword ‘parent’
10. Tugas :
Buat class buku dengan properti id_buku, judul_buku, pengarang, penerbit dan tahun terbit
buatkan getternya dan (pilih salah satu) setter/constructor