You are on page 1of 22

1

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:

1. Menggunakan keyword class


2. Huruf besar pada awal nama class
3. Jika lebih dari satu kata, gunakan huruf besar di tiap kata (upper camel case)
4. Adanya kurung kurawal

Try it: Ikuti setiap langkah berikut.

1. Buat folder pbo pada server lokal


2. Buat sebuah file dan simpan dengan nama User.php, kemudian buat class User sebagaimana berikut

Menambahkan property pada class


Property, atau bahasa sederhananya adalah variabel dapat ditambahkan pada class dengan mengikuti beberapa
kaidah berikut.

1. Ditandai dengan $ pada awal property


2. Dapat diberikan modifier sebelum property (public, protected dan private)
3. Diakhiri dengan titik koma ;
4. Jika lebih dari satu kata, gunakan huruf besar di tiap kata (upper camel case) kecuali pada awal kata
5. Dapat diberikan default value, juga tanpa default value

Pada contoh kasus class User, bisa kita tambahkan beberapa property umum seperti: nama depan, nama
belakang, tanggal lahir, jenis kelamin dan lain sebagainya.

Try it: ikuti pembuatan property sebagai berikut


4
Pada kasus di atas, semua property tidak diberikan default value kecuali $statusKawin yaitu diberikan value
lajang. Untuk pengertian modifier public pada awal property, akan dijelaskan pada bab selanjutnya.

Membuat object dari sebuah class


Membuat sebuah object dari class ditandai dengan keyword new dan diikuti nama class nya. Proses ini disebut
juga instansisi (instantiation). Sebagai contoh class User, mari buat sebuah object seperti berikut.

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.

Bagaimana caranya agar mengakses property dan juga method?

Yaitu dengan tanda panah “->” (dash dan lebih dari). Perhatikan dan contoh langkah berikut:

Pada baris 15, akan menampilkan lajang pada browser.

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

Membuat method pada class


Fungsi yang berada pada class disebut method. Beberapa cara pembuatan method sebagai berikut:

1. Menggunakan huruf kecil pada nama method


2. Dapat diberikan modifier sebelum penulisan method (public, protected dan private)
3. Diikuti dengan kurung buka-tutup dan kurung kurawal ;
4. Jika lebih dari satu kata, gunakan huruf besar di tiap kata (upper camel case) kecuali pada awal kata

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:

Keyword $this diikuti tanda panah dan nama property/method nya.

Sekarang, coba modifikasi method perkenalan() seperti berikut:

Untuk melihat hasilnya, pindahkan kode baris berikut ke paling akhir pada class.

Sehingga kode lengkapnya sebagai berikut:


7
8
Latihan Soal
Point plus untuk 5 mahasiswa tercepat yang berhasil menjawab soal-soal berikut

1. Buat object baru dengan nama sesuai masing-masing mahasiswa


2. Set valeu dari property pada class User sesuai masing-masing mahasiswa
3. Tampilkan hasil method perkenalan
4. Buat sebuah method doaMahasiswa().
a. Method doaMahasiswa() memberikan kembalian (return) hasil:
i. Bila value dari jenisKelamin = pria, maka tampilkan “Semoga mendapatkan Istri
Sholehah”
ii. Bila value dari jenisKelamin = wanita, maka tampilkan “Semoga mendapatkan Suami
Sholeh”

Soal Post test

Setiap praktikum, akan diberikan soal post test sebagai indikator kehadiran mahasiswa di setiap praktikum.

Jawaban post test harus diupload di Edlink yang disediakan.

nilai akhir praktikum berdasarkan pada Komulatif post test + Tugas Akhir

soal:

1. Buat sebuah method statusMahasiswa().


a. Method statusMahasiswa () memberikan kembalian (return) hasil:
i. Bila umur mahasiswa < 20 (berdasarkan tanggalLahir) dan berjenis kelamin wanita, maka
tampilkan “saya [tampilkan namaDepan dan namaBelakang] adalah perempuan muda”
ii. Bila umur mahasiswa >20 (berdasarkan tanggalLahir) dan berjenis kelamin wanita, maka
tampilkan “saya [tampilkan namaDepan dan namaBelakang] adalah wanita hebat”
iii. Bila umur mahasiswa < 20 (berdasarkan tanggalLahir) dan berjenis kelamin pria, maka
tampilkan “saya [tampilkan namaDepan dan namaBelakang] adalah laki laki muda”
iv. Bila umur mahasiswa >20 (berdasarkan tanggalLahir) dan berjenis kelamin pria, maka
tampilkan “saya [tampilkan namaDepan dan namaBelakang] adalah pria hebat”
9
Chaining method n properties
Method with parameter
Pembuatan method pada sebuah class dapat diberikan inputan parameter/argumen. Jumlah parameter bisa lebih
dari satu. Sebagai contoh, kita akan membuat class baru dengan nama class Car. Class Car memiliki property
tangkiBensin dan juga method isiBensin() dan berkendara().

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.

Try it: ikuti pembuatan class Car sebagai berikut

Perhatikan baris 18 dan 19.

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.

Apabila browser direload, maka akan muncul tampilan seperti berikut.

Perbedaan public dan private:


Public Private
memberikan akses properti yang dapat diakses dari Memberikan memberikan akses properti yang hanya
mana saja dapat diakses dari dalam class tersebut

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.

Begitu pula cara chaining methodnya, perhatikan baris 35.


13

Apabila diakses, browser akan kembali mengembalikan nilai


14
Magic method __construct()
Pada pemrograman berorintasi objek, method __construct() adalah magic method, yang mana method tersebut
akan otomatis dipanggil/dikesekusi ketika suatu objek diinstansiasi.

Sekarang coba modifikasi kode berikut:

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

Apabila browser direload, maka akan menampilkan sebagi berikut

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.

Latihan Soal/Post Tes


1. Ubah pada file User.php, semua propertynya menjadi private.
2. Tambahkan parameter pada method perkenalan($namaDepan, $namaBelakang, $jenisKelamin, $status)
3. Buat method baru dengan nama getPerkenalan() yang menampilkan data sesuai parameter masukan

a.

4. Buat method __construct($namaDepan, $namaBelakang, $jenisKelamin, $status) yang juga menampilkan

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:

Maka, apabila diakses melalui browser akan tampil seperti berikut

Bagaimana Child Class membuat dan mengakses property/methodnya sendiri


Sebagai child class, tentu dapat mengakses property dan method pada parentnya. Sebaliknya, sebagai parent
class, tidak dapat mengakses/menggunakan property dan method pada childnya.

Pada contoh berikut, dibuat property dan method pada child class dan mengaksesnya.
18

Apabila diakses melalui browser, maka akan muncul tampilan sebagai berikut

Protected Access Modifier


Pada bab sebelumnya, kita sudah mempelajari public dan private, yang mana private hanya bisa diakses di dalam
class tersebut. Kali ini akan dipelajari access modifier berupa protected. Artinya, property atau method yang
bersifat protected dapat dikases di dalam class itu sendiri ataupun diakses oleh child nya.

Perhatikan contoh berikut


19
Abstract
Sebuah klas abastract harus memiliki paling tidak satu abstract method. Abastract method hanya dapat memiliki
nama method dan argumen saja, tanpa diberikan implementasi kode. Kelas abstract tidak dapat membuat
objek/instansiasi objek.

How to declare classes and method as abstract


Mendeklarasikan class abstract dengan menambahkan prefix abstract. Sebagai contoh, kita modifikasi class Car
menjadi sebuah abstract.

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.

Saat ini, bila file Car.php diakses, akan terjadi error


20

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 :

- Class anak harus mengimplementasikan method abstract pada parentnya

Coba Jalankan dan bagaimana hasilnya?

Post Test 1 : Coba tampilkan

“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.

How to declare and implement an interface


Mendeklarasikan interface dengan menambahkan keyword interface, berikut contoh pembuatan interface. Buat
file dengan nama kendaraan.php

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

You might also like