Anda di halaman 1dari 21

Object Oriented

Programming dalam PHP


Konsep Object Oriented

 Classes, yang merupakan “cetakan/blueprints" untuk


sebuah objek dan merupakan kode actual yang
mendefinisikan properites dan method.
 Objects, yang menjalankan instansi dari class dan
mengandung semua data internal dan informasi yang
dibutuhkan untuk aplikasi agar dapat berfungsi.
 Encapsulation, yang merupakan kemampuan dari
sebuah objek untuk memproteksi akses pada data
internal
 Inheritance, yang merupakan kemampuan untuk
mendefinisikan suatu jenis class yang merupakan
sebuah sub-tipe dari sebuah class yang berbeda (sama
caranya seperti sebuah kotak merupakan sebuah
bentuk lain dari persegi panjang).
Membuat Class

 Mulai dari sebuah contoh sederhana. Simpan kode


berikut dalam sebuah file dengan nama class.lat.php:

<?php
class Demo
{
}
?>
menambahkan Method

 class Demo tidak akan berguna jika tidak dapat


melakukan apapun, jadi buatlah method untuk kelas
tersebut.

<?php
class Demo
{
function SayHello()
{
echo “Hello $name !”;
}
}
?>
tambahkan Properties

 Tambahkan sebuah property pada class seperti


menambahkan method.

<?php
class Demo
{
public $name;

function SayHello()
{
echo “Hello $this->$name !”;
}

}
?>
Instansi Object

 Instansi sebuah objek yang merupakan tipe dari Demo


seperti berikut ini:

<?php
include_once('class.lat.php');
$objDemo = new Demo();
$objDemo->name = “Koro”;
$objDemo->SayHallo();
?>
Proteksi akses pada variable
anggota (1)
 Terdapat tiga level jangkauan berbeda dari variable anggota atau
method:
 Public
▪ Anggota dapat mengakses pada sebagian dan seluruh kode
 Private
▪ Anggota hanya dapat mengakses pada class-nya sendiri
 Protected
▪ Anggota tersedia pada class-nya sendiri, dan pada classs turunannya

Public merupakan level default untuk sembarang variable anggota atau


fungsi yang tidak secara eksplisit menentukan levelnya, tetapi disaran
untuk selalu secara eksplisit menentukan level jangkauan untuk seluruh
anggota dari class.
Proteksi akses pada variable
anggota (2)
 Coba ubah level akses dari property “name” menjadi
private dari kode sebelumnya.
 Apa kemungkinan solusi untuk masalah ini?

 Buat fungsi getter dan setter ...

Selalu gunakan fungsi get dan set untuk properti. Ubah bisnis logic dan
kebutuhan validasi data lebih mudah diimplementasikan.
Konstanta Class

 Diperbolehkan untuk menentukan nilai tetap pada


sebuah basis class tetap sama dan tidak dapat diubah.
 Konstanta berbeda dari variable biasa dalam hal tidak
perlu menggunakan tanda $ untuk mendeklarasikan dan
menggunakannya
 Nilainya harus berupa ekspresi konstan, bukan (sebagai
contoh) sebuah variable, property, sebuah hasil dari
operasi matematika, atau pemanggilan fungsi.
Konstanta Class (lanj.)

<?php
class MyClass
{
const constant = 'constant value';

function showConstant() {
echo self::constant . "\n";
}
}

echo MyClass::constant . "\n";


?>
Keyword Static

 Mendeklarasikan property atau method dari class


sebagai static membuat akses terhadap class tersebut
tidak memerlukan instansi.
 Properti yang dideklarasikan sebagai static tidak dapat
diakses dengan sebuah objek classs yang diinstansi
Contructor

 Constructor adalah method yang akan diimplementasikan ketika objek


telah diinisiasi
 Pada umumnya, constructor digunakan untuk menginisialisasi sebuah objek
 Gunakan function __construct untuk membuat constructor dalam PHP

<?php
class Demo
{
function __construct
{
}
}
?>
Destructor

 Destructor, adalah method yang akan dijalankan ketika objek


diakhiri

<?php
class Demo
{
function __destruct
{
}
}
?>
Inheritance

 Terdapat keuntungan dari inheritance dengan PHP,


yang paling sering adalah menyederhanakan dan
mengurangi instan dari kode yang redundan
Inheritance (2)

class hewan
{
protected $jml_kaki;
protected $warna_kulit;
function __construct()
{
}
function berpindah()
{
echo "Saya berpindah";
}
function makan()
{
echo "Saya makan";
}
}
Inherintace (3)
Tugas
Tugas (lanj.)

 Class product :
 name
 price
 discount
 Class CDMusic :
 artist
 Genre
 Class CDRack
 capacity
 model
Tugas (cont.)

 CDMusic
 Menuruni name, price dan discount dari Product
 Price = price + 10%
 Ada penambahan 5% pada discount
 CDRack
 Menuruni name, price dan discount dari Product
 Price = price + 15%
 Tidak ada penambahan discount
 Buatlah code dalam PHP, serta simulasi untuk kasus
tersebut!
<?php
echo “Terima Kasih....!!!”
?>

Anda mungkin juga menyukai