Modul 3 object oriented programming dalam php

13
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 dengan mempergunakan keyword class diikuti dengan nama class yang ingin kita 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

Transcript of Modul 3 object oriented programming dalam php

Page 1: Modul 3   object oriented programming dalam php

Object Oriented Programming dalam PHPSyarat dalam modul ini anda harus memahami function, variable, conditionals (if..else..) dan loop

1. Buat dua file phpclass_lib.phpoop2.phpPada 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 dengan mempergunakan keyword class diikuti dengan nama class yang ingin kita buat

3. Tambahkan variabel ke dalam class kita

4. Tambahkan function / method ke dalam class kitaMethod dipergunakan untuk memanipulasi data/properti dari kelas itu sendiri

Page 2: Modul 3   object oriented programming dalam php

5. Fungsi getter dan setterKita sudah membuat function get_name() dan set_name(). Method/function ini mengikuti aturan 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 $thisPada listing berikut

$this->name = $new_name;$this adalah variabel built-in(ada pada semua object), yang menunjuk kepada object saat ini. Dengan kata lain $this adalah special self referencing variabel. Kita mempergunakan $this untuk mengakses properti dan memanggil method lain dari class.

7. Include class kita kedalam php utamaKita tidak akan menuliskan class php langsung kedalam halaman php utama kita. Tujuan dari oop tidak akan tercapai. Langkah yang baik adalah membuat halaman php lain yang hanya berisi class-class kita lalu kita akses class-class tersebut dengan mempergunakan include atau require

8. Instantiate/ buat objectClass adalah blueprint/template/cetakan dari object. Class tidak akan menjadi object kalau tidak kita instantiate. Ketika kita meng-instantiate kita membuat instance dari object kedalam memori

Page 3: Modul 3   object oriented programming dalam php

9. Keyword newUntuk membuat object 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 objectKita mempergunakan method setter. Harap diingat bahwa meskipun $stefan dan $jimmy dibuat dari class person keduanya adalah OBJECT yang BERBEDA

11. Mengakses data dari objectKita mempergunakan 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‘->’.

Page 4: Modul 3   object oriented programming dalam php

12. ConstructorSemua object bisa memiliki method built in 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.

Method construct diawali dengan dua underscore (__) dan kata ‘construct’ diikuti dengan daftar argument (seperti function)

Page 5: Modul 3   object oriented programming dalam php

13. Membuat object dengan construtorKita 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’Salah satu prinsip fundamental OOP adalah enkapsulasi. Idenya adalah, kita membuat kode 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

Page 6: Modul 3   object oriented programming dalam php

15. Membatasi akses ke properti dengan mempergunakan ‘access modifiers’ : bag 2Ketika kita mendeclare properti menjadi ‘private’, hanya class yang sama yang 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 mengaksesnyaCoba listing kode dibawah

16. Membatasi akses ke methodSama 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’.

Page 7: Modul 3   object oriented programming dalam php

17. InheritanceKita bisa mempergunakan class sebagai dasar bagi class lainKenapa?Agar kita dapat mempergunakan kembali kode yang sebelumnya pernah kita buatKita 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 2Karena 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 3Kita dapat memanggil method get_name pada object ‘employee’ kita seperti tampak pada listing kode dibawah

Page 8: Modul 3   object oriented programming dalam php

20. Overriding methodKadang kala ketika memakai inheritance, kita perlu merubah operasi yang dijalankan oleh suatu method, sehingga method tersebut menjalankan operasi yang berbeda dengan method yang bernama sama yang ada pada parentnya (class yang di extend)Misal, method set_name() pada class ‘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 2Kadang 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);

Page 9: Modul 3   object oriented programming dalam php

22. Overriding method : part 3Dengan mempergunakan :: kita bisa menyebutkan nama class yang akan diakses php untuk menjalankan suatu method – ‘person::set_name()’ memerintahkan php untuk mencari method ‘set_name()’ pada class ‘person’. Cara lain untuk melakukan hal ini adalah dengan mempergunakan keyword ‘parent’

Page 10: Modul 3   object oriented programming dalam php

Tugas :Buat class buku dengan properti id_buku, judul_buku, pengarang, penerbit dan tahun terbit buatkan getternya dan (pilih salah satu) setter/constructor