Professional Documents
Culture Documents
Modul PR - Pbo
Modul PR - Pbo
Modul Praktikum
PBO
Modul ini sebagai bahan pembelajaran mahasiswa UNU
Yogyakarta dalam memahami konsep pemrograman
berorientasi objek menggunakan bahasa pemrograman
PHP
Syauqie Muhammad Marier, 1 Maret 2022
2
Table of Contents
CLASS, OBJECT, PROPERTY DAN METHOD ........................................................................................................................... 3
BAGAIMANA MEMBUAT CLASS .......................................................................................................................................................... 3
MENAMBAHKAN PROPERTY PADA CLASS ............................................................................................................................................. 3
MEMBUAT OBJECT DARI SEBUAH CLASS .............................................................................................................................................. 4
MEMBUAT METHOD PADA CLASS ...................................................................................................................................................... 5
PENGGUNAAN KEYWORD $THIS ........................................................................................................................................................ 6
LATIHAN SOAL ............................................................................................................................................................................... 8
CHAINING METHOD N PROPERTIES ..................................................................................................................................... 9
METHOD WITH PARAMETER ............................................................................................................................................................. 9
ACCESS MODIFIER (PUBLIC VS PRIVATE)............................................................................................................................ 12
PERBEDAAN PUBLIC DAN PRIVATE .................................................................................................................................................... 12
MAGIC METHOD __CONSTRUCT() ..................................................................................................................................... 14
LATIHAN SOAL/POST TES .............................................................................................................................................................. 15
INHERITANCE .................................................................................................................................................................... 16
BAGAIMANA CHILD CLASS MEMBUAT DAN MENGAKSES PROPERTY/METHODNYA SENDIRI ........................................................................... 17
PROTECTED ACCESS MODIFIER ....................................................................................................................................................... 18
ABSTRACT ......................................................................................................................................................................... 19
HOW TO DECLARE CLASSES AND METHOD AS ABSTRACT ....................................................................................................................... 19
INTERFACE ........................................................................................................................................................................ 21
HOW TO DECLARE AND IMPLEMENT AN INTERFACE ............................................................................................................................. 21
3
Class, Object, Property dan Method
Bagaimana membuat class
Mendeklarasikan sebuah class, harus memenuhi beberapa persyaratan berikut:
Pada contoh kasus class User, bisa kita tambahkan beberapa property umum seperti: nama depan, nama
belakang, tanggal lahir, jenis kelamin dan lain sebagainya.
Pada kasus tersebut, kita sedang membuat sebuah variabel adi yang merupakan object dari class User. Dengan
begitu, variabel adi dapat mengakses semua property dan juga method pada class User.
Yaitu dengan tanda panah “->” (dash dan lebih dari). Perhatikan dan contoh langkah berikut:
Pada baris 18 – 21, memberikan value pada property. Untuk menampilkan pada browser, ditambahkan echo
seperti langkah berikut
5
Untuk dapat melihat hasilnya, silahkan ketikkan pada browser : http://localhost/pbo/user.php
Sebagai contoh, buat method perkenalan() untuk menampilkan informasi data diri sebagaimana code berikut.
Pada baris 11 -14 adalah blok code sebuah method. Untuk menampilkan hasil method perkenalan, gunakan kode
tanda panah dilanjutkan nama methodnya. Modifikasi code pada class user sebagai berikut:
Apabila browser kita refresh, maka akan muncul hasil di jendela brwoser kita sebagai berikut
6
Penggunaan keyword $this
$this adalah keyword yang digunakan untuk mengambil property dan method dari dalama class. Penggunaannya
sebagai berikut:
Untuk melihat hasilnya, pindahkan kode baris berikut ke paling akhir pada class.
Setiap praktikum, akan diberikan soal post test sebagai indikator kehadiran mahasiswa di setiap praktikum.
nilai akhir praktikum berdasarkan pada Komulatif post test + Tugas Akhir
soal:
Skenarionya adalah, method isiBensin akan memberikan nilai parameter tangkiBensin. Sedangkan method
berkendara akan memberikan nilai sisa tangkiBensin setelah digunakan untuk berkendara. 1liter bensin
digunakan untuk jarak 20km.
Code tersebut digunakan untuk mengetahui nilai dari property tangkiBensin dengan cara menampilkan pada
browser. Apabila file car.php diakses melalui browser, maka akan muncul halaman kosong dikarenakan memang
belum ada nilai pada tangkiBensin. Berikut hasil yang muncul pada browser.
10
Coba update code pada file car.php sebagaimana baris 22 dan 23 berikut.
Objek panther mengkases method isiBensin dengan value parameter 5 dan kemudian melihat value tangkiBensin
terbaru. Proses mengakses method dilanjutkan parameter dalam satu baris inilah yang disebut
chaining method/properies
Maka apabila dilakukan reload browser, akan menampilkan angka 5 yang menandakan kondisi tangkiBensin saat
ini berjumlah 5 (liter).
Selanjutnya, mari mencoba objek panther melihat value property tangkiBensin setelah mengakses method
isiBensin dan method berkendara. Perhatikan dan modifikasi kode pada file user sebagai berikut:
11
Hasilnya apabila diakses browser akan menampilkan value dari property tangkiBensin sejumlah 14.5(liter)
12
Access Modifier (Public vs Private)
Sekarang, coba ganti property tangkiBensin menjadi private.
Oleh karena itu, untuk dapat mengakses property tangkiBensin yang bersifat private, dibutuhkan method “get”
yang bersifat public. Perhatikan kode berikut pada baris 25 – 28, ditambahkan method getBensin() untuk
mengembalikan value dari tangkiBensin.
Ketika halaman browser direload, maka secara otomatis akan menampilkan pesan seperti berikut
Apabila method __construct() diberikan paramater, otomatis pembuatan instansiasi objek harus diberikan
parameter. Sebagai contoh, method __construct($mobil) sebagai berikut.
Apabila dilakukan reload browser, tentu akan terjadi eror sepert berikut
Hal tersebut dikarenakan ketika instansiasi objek, tidak diberikan parameter. Pada kode berikut akan
menampilakn garis merah yang artinya ada eror dan membutuhkan paramater
15
Sekarang modifikasi menjadi seperti ini
Bagaimana mengatasi eror apabila ketika instansiasi objek tidak diberikan parameter? Tambahkan $mobil = null.
Yang artinya, apabila parameter tidak diberikan, kode akan tetap berjalan karena $mobil diberikan nilai null.
a.
a.
16
Inheritance
Inheritance (Pewarisan) adalah suatu obyek dapat mempunyai obyek turunan. Dengan konsep inheritance,
sebuah class dapat mempunyai class turunan. Suatu class yang mempunyai class turunan dinamakan parent class.
Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class. Dalam konsep inheritance, suatu
subclass dapat mewarisi apa-apa yang dipunyai oleh parent class. Inilah yang terpenting dari konsep inheritance.
Inheritance mengizinkan kita untuk menulis code hanya sekali di class parent, dan menggunakannya di kedua
class, baik class parent dan child class.
Mendeklarasikan suatu class sebagai subclass cukup mudah, yaitu dengan menambahkan kata kunci extends
setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya.
Pada child class dapat menggunakan semua method dan property selain private yang inherit dari parent class
nya. Sekarang coba dan perhatikan kode pada baris 36 – 39 berikut:
17
Pada baris 36 dibuat sebuah class dengan nama SportCar yang merupakan class child dari class Car. Pada baris 39
membuat variable bmw yang merupakan instansiasi dari objek SprotCar. Apabila file car.php kita akses melalui
browsoer, maka akan muncul tampilan seperti berikut
Walaupun class SportCar belum dituliskan code program/ method, ketika dijalanakan pada browser akan mucul
tulisan “mobil ini merknya adalah”. Hal tersebut merupakan method __construct() yang ada pada class parent
(class Car).
Sekarang, coba mengakses method yang ada pada parent class melalui objek child class. Perhatikan dan tulis kode
berikut:
Pada contoh berikut, dibuat property dan method pada child class dan mengaksesnya.
18
Apabila diakses melalui browser, maka akan muncul tampilan sebagai berikut
Langkah selanjutnya, kita buat abstract method yang mana pada abstract method tersebut tidak diberikan kode
di dalamnya. Contoh di bawah ini, kita tambahkan method jumlahJarakFullTank()
Perlu diperhatikan:
- apabila method sudah didefinisikan abstrack, maka class juga harus berupa abstract.
- Masih memungkinkan menambahkan method biasa pada sebauh abstract
- Masih memungkinkan adanya property pada sebuah abstract.
Jika diperhatikan, terdapat pesan eror pada baris 38, yaitu class anak (SportCar) karena mewarisi class Car yang
sudah menjadi abstract. Erornya dikarenakan class SportCar tidak mengimplementasikan method yang sudah
didefinisikan class parent nya yaitu “jumlahJarakFullTank”.
Untuk mengatasi eror tersebut, tambahakan method jumlahJarakFullTank pada class SprotCar
Perlu diperhatikan :
“Mobil saya merknya adalah Isuzu, sisa bensinya adalah 20 liter. Dan jarak ketika full tanknya adalah 600km
21
Interface
menyerupai kelas abstrak karena menyertakan metode abstrak yang harus didefinisikan oleh programmer di
kelas yang diwarisi dari Interface. Penggunaan interface menjadi sangat membantu ketika kita bekerja dalam tim
programmer dan ingin memastikan bahwa semua programmer menulis metode yang harus mereka kerjakan,
atau bahkan dalam kasus satu programmer yang ingin berkomitmen untuk menulis metode tertentu. di kelas
anak.
Interface, seperti kelas abstrak, termasuk metode abstrak dan konstanta. Namun, tidak seperti kelas abstrak,
Interface hanya dapat memiliki metode publik, dan tidak dapat memiliki variabel.
Kelas yang mengimplementasikan Interface harus mendefinisikan semua metode yang mereka warisi dari
Interface, termasuk semua parameter, berikut codenya.
22
Kita dapat mengimplementasikan sejumlah Interface di kelas yang sama, sehingga menghindari hukum yang
melarang pewarisan dari lebih dari satu kelas induk. Untuk mendemonstrasikan multiple inheritance dari
Interface yang berbeda, kami membuat Interface lain, Vehicle, yang mengkomit kelas yang
mengimplementasikannya ke properti boolean $hasWheels.
Sebutkan perbedaan antara abstract class dan interface? Buat dalam sebuah table