baiklah pada kesempatan kali ini saya akan share tentang apa itu OOP (Object Oriented Programing) dengan PHP, berikut daftar materi yang akan dipelajari :
- Dasar2 PHP OOP
- Membuat object
- Method
- Menggunakan object
- mengenal variable public, variable private,var
protected dll
- Pewarisan/extends
A. Definisi OOP
OOP merupakan singkatan dari Object Oriented Programming adalah suatu metode pemrograman
yang menggunakan objek. Objek yang
dimaksud adalah suatu benda. Anda bisa menggunakan benda-benda yang ada di
sekitar Anda sebagai objek seperti komputer, HP, kursi, meja, gitar, gelas, dan
bahkan Anda sendiri adalah objek. Lalu apa yang membedakan antara objek dengan
yang bukan objek?
Setiap
objek memiliki karakteristik atau sifat sendiri yang
membedakan antara objek yang satu dengan objek yang lainnya.
B. Class,Method(Behavior),Property(attribute)
Dalam OOP
selalu ada yang namanya class,
method (behavior), property (attribute). Class bisa dikatakan sebagai cetakan untuk membuat objek. Method bisa dikatakan sebagai aksi yang
dimiliki oleh class. Sedangkan attribute adalah
karakteristik atau sifat-sifat yang dimiliki oleh objek yang dibuat nantinya.
Pendeklarasian suatu class selalu terdapat sintak class yang kemudian diikuti
dengan nama class dan setelah itu diikuti oleh body class. Body class selalu
berada diantara kurung kurawal {}.
1
2
3
4
5
6
7
8
9
|
<?php
// deklarasi
class Orang
class Orang {
// start body
class
// attributes
class
// methods
class
// end body
class
}
?> |
Dari
deklarasi class Orang seperti contoh di atas, kita bisa menentukan
karakteristiknya sebagai atribut class tersebut seperti nama, jenis kelamin,
pekerjaan, dll. Ingat, setiap objek belum tentu memiliki karakteristik yang
sama, jadi jika kita mengambil contoh objeknya adalah orang, maka kita bisa
menjadikan nama, jenis kelamin, dan pekerjaan sebagai atribut classnya. Secara
defaultnya suatu atribut class dideklarasikan dengan menggunakan
sintak var yang kemudian diikuti dengan nama atributnya yang kemudian
diakhiri dengan tanda semicolon (;).
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php
// deklarasi
class Orang
class Orang {
// start body
class
// attributes
class
var $nama;
var
$jenis_kelamin;
var
$pekerjaan;
// methods
class
// end body
class
}
?> |
Setelah
atribut-atribut yang dibutuhkan telah kita tentukan, sekarang kita buat
method-method class tersebut. Pendeklarasian method pada OOP di PHP menggunakan
sintak function. Pendeklarasian
method ini mirip dengan pendeklarasian fungsi-fungsi yang ada di PHP pada
umumnya. Misalnya saja kita buat agar objek yang kita buat nantinya bisa
menyapa, makan, dan minum.
1
2
3
4
5
6
7
8
9
10
11
12
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<?php
// deklarasi
class Orang
class Orang {
// start body
class
// attributes
class
var $nama;
var
$jenis_kelamin;
var
$pekerjaan;
// methods
class
function
menyapa()
{
echo
'<p>Halo, nama saya adalah '. $this->nama .'<br />';
echo 'Saya
adalah seorang '. $this->jenis_kelamin .' ';
echo 'yang
memiliki pekerjaan sebagai '. $this->pekerjaan .'</p>';
}
function
makan()
{
echo
'<p>'. $this->nama .' sedang makan.</p>';
}
function
minum()
{
echo
'<p>'. $this->nama .' sedang minum.</p>';
}
// end body
class
}
?> |
Pada script di atas terdapat
keyword $this, keyword $this menandakan kalau sedang
mengakses atribut class itu sendiri. Penggunaanya dengan cara menuliskan
keyword $this yang diikuti dengan tanda -> dan setelah
itu diikuti dengan nama atribut yang ada dalam kelas tersebut tanpa tanda
dollar $.
C.
Membuat Object
Sisipkan
kode berikut dibawah pendeklarasian class Orang di atas.
1
2
3
4
5
6
7
8
9
10
11
12
13 14 15 16 17 18 19 20 21 |
<?php
$aga = new Orang();
$aga->nama = 'Aga';
$aga->jenis_kelamin = 'Laki-laki';
$aga->pekerjaan = 'Mahasiswa';
// memanggil method yang ada dalam class
$aga->menyapa();
$aga->makan();
$aga->minum();
$ina = new Orang();
$ina->nama = 'Ina';
$ina->jenis_kelamin = 'Perempuan';
$ina->pekerjaan = 'Mahasiswa';
// memanggil method yang ada dalam class
$ina->menyapa();
$ina->makan();
$ina->minum();
?> |
Untuk membuat objek, Anda harus
melakukan instansiasi class dengan cara mengunakan sintak new yang diikuti
dengan nama classnya dan kemudian diikuti dengan tanda kurung buka dan tutup
seperti pemanggilan fungsi. Nah, tahu kenapa pada saat instansiasi class
terdapat tanda kurung buka dan tutup padahal tidak ada method yang
bernama Orang()?
Di dalam class selalu terdapat method yang selalu dijalankan
ketika objek dibuat. Method ini disebut dengan constructor. Jadi ketika Anda membuat suatu object, sebenarnya Anda
juga menjalankan method constructor ini.
Apa itu constructor? Constructor
adalah method yang akan dijalankan ketika objek dibuat. Secara umum
constructor adalah method yang memiliki nama yang sama dengan nama class
tersebut.
Lalu apakah Anda melihat ada method Orang() dalam
class Orang? Walaupun constructor tidak Anda tuliskan, class secara otomatis
akan membuat constructornya sendiri. Pada PHP versi 5.3, pendeklarasian constructor tidak dengan cara
menuliskan nama method yang sama dengan nama class tetapi dengan menuliskan
nama method __construct() yang
menandakan suatu constructor.
1
2
3
4
5
6
7
8
9
10
11
12
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
31
32
33
34
35
36
37
|
<?php
class Orang {
// start body class
// attributes class
var $nama;
var $jenis_kelamin;
var $pekerjaan;
// methods class
function __construct($nama, $jenis_kelamin, $pekerjaan)
{
$this->nama = $nama;
$this->jenis_kelamin = $jenis_kelamin;
$this->pekerjaan = $pekerjaan;
}
function menyapa()
{
echo '<p>Halo, nama saya adalah '. $this->nama
.'<br />';
echo 'Saya adalah seorang '. $this->jenis_kelamin .' ';
echo 'yang memiliki pekerjaan sebagai '.
$this->pekerjaan .'</p>';
}
function makan()
{
echo '<p>'. $this->nama .' sedang
makan.</p>';
}
function minum()
{
echo '<p>'. $this->nama .' sedang
minum.</p>';
}
// end body class
}
?> |
Anda juga bisa memberikan parameter
input pada setiap method yang ada di dalamnya. Pada pendeklarasian constructor
di atas saya memberikan parameter input nama, jenis kelamin, dan pekerjaan.
Jadi saat instansiasi, Anda bisa langsung melakukan set atribut class.
1
2
3
4
5
6
7
8
9
10
11
12
13 14 |
<?php
$aga = new Orang('Aga', 'Laki-laki',
'Mahasiswa');
$ina = new Orang('Ina', 'Perempuan', 'Mahasiswa');
// memanggil method yang ada dalam class
$aga->menyapa();
$aga->makan();
$aga->minum();
// memanggil method yang ada dalam class
$ina->menyapa();
$ina->makan();
$ina->minum();
?> |
Kedua script di atas (yang tidak
menggunakan constructor dan yang menggunakan constructor) kurang lebih akan
menghasilkan tampilan seperti yang ada pada gambar di bawah.

D.
Modifier
Adapun
pendeklarasian atribut yang menggunakan sintak public, protected, dan private. Sintak-sintak tersebut dinamakan
dengan access modifier yang
digunakan untuk membatasi hak akses. PHP memiliki 5 Modifier yaitu Private, Protected,
Public, Default (Undefined) dan Static, dimana Default dari Modifier dalam
PHP adalah Public.
1.
Private
Private;
seperti namanya modifier ini bersifat spesifik class dan tidak dapat diwariskan
kepada class turunannya. Modifier ini hanya dapat diakses oleh class tersebut
dan tidak dapat diakses diluar dari class tersebut. Bahkan object saja tidak
dapat mengaksesnya karena memang hanya diperuntukkan untuk class tersebut.
Contoh :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?php
class
Orang {
// start
body class
//attribute
var
$nama;
var
$jenis_kelamin;
var
$pekerjaan;
//
methods class
private function
menyapa()
{
echo '<p>Halo, nama
saya adalah '. $this->nama .'<br />';
echo 'Saya adalah seorang '.
$this->jenis_kelamin .' ';
echo 'yang memiliki pekerjaan
sebagai '. $this->pekerjaan .'</p>';
}
}
$a = new Orang();
$a->menyapa();
?>
|
Ketika
kita mencoba menjalankan program diatas maka akan tampil pesan error sebagai
berikut
1
|
Fatal
error:
Call to private method Orang::menyapa() from context '' in D:\xampp\htdocs\nilai2\index\oop.php on
line 20
|
2.
Protected
Protected; Modifier ini diproteksi hanya untuk class dan turunan
class tersebut. Jadi modifier sedikit lebih terbuka daripada modifier Private
namun belum bisa dipanggil secara langsung oleh object class. Untuk lebih jelas
perhatikan contoh berikut :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?php
class Modifier{
protected function cetak(){
echo 'Ini modifier
protected';
}
}
class Turunan_Modifier extends Modifier{
public function setPublic(){
$this->cetak();
}
}
//$a = new Modifier();
//$a->cetak();
$b =
new Turunan_Modifier();
$b->setPublic();
//$b->cetak();
?>
|
Pada contoh diatas akan keluar output Ini modifier protected karena kita memanggil function cetak
dari extends class (class turunan) yang bersifat public. Secara singkat
kira-kira beginilah alur program diatas.
Class Modifier
mempunyai Turunan Class yaitu Turunan_Modifier sehingga secara otomatis
Turunan_Modifier memiliki semua function yang dimiliki oleh class Modifier.
Karena memiliki function yang dimiliki class Modifier, berarti Turunan_Modifier
juga memiliki fungsi cetak. Karena ingin agar object dapat mengakses fungsi
cetak, dibuatlah sebuah fungsi pada class Turunan yaitu setPublic yang
sebenarnya adalah fungsi cetak namun dengan akses public.
3.
Static
Static; Pada modifier ini
kita dapat langsung menggunakan variable atau fungsi yang menggunakan modifier
ini tanpa perlu membuat object dari class terlebih dahulu. Contoh sebagai
berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php
class
Modifier {
// start body class
Static function setStatic()
{
echo
'<p>Halo, ini adalah modifier static';
}
}
Modifier::setStatic();
?>
|
4. Public
Public; Seperti
namanya modifier ini bersifat terbuka untuk semua object maunpun turunan class
dari class yang memiliki modifier public. Untuk lebih jelas mari kita liat
langsung saja contoh codenya.
1
2
3
4
5
6
7
8
9
10
|
<?php
class sayaPublic{
public function setPublic(){
echo 'Saya Public Function';
}
}
$public = new sayaPublic();
$public->setPublic();
?>
|
Bila dilihat secara
sekilas antara modifier public dan static hampir sama, hanya perbedaannya
static tidak perlu membuat object terlebih dahulu sedangkan public kita harus
membuat object terlebih dahulu.
5. Default (Undefined)
Modifier Public
merupakan default dari modifier pada OOP PHP, jadi untuk function yang tidak di
definisikan modifiernya secara otomatis akan menjadi modifier Public. Semua
sifat yang dimiliki modifier public akan di miliki oleh function ini.
Sebagai contoh:
Sebagai contoh:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?php
// deklarasi class Orang
class Orang {
// start body class
// attributes class
var $nama;
var $jenis_kelamin;
var $pekerjaan;
// methods class
function menyapa()
{
echo '<p>Halo, nama saya adalah
'. $this->nama .'<br />';
echo 'Saya adalah seorang '.
$this->jenis_kelamin .' ';
echo 'yang memiliki pekerjaan sebagai
'. $this->pekerjaan .'</p>';
}
}
$candra= new Orang();
$candra->nama= 'Candra Adi
Nugroho';
$candra->jenis_kelamin=
'Laki-Laki';
$candra->pekerjaan=
'Pelajar';
$candra->menyapa();
?>
|
E. Pewarisan/extends Class
Pewarisan digunakan
agar kita dapat menggunakan properties dan metode dari class yang sudah ada
dengan cara diwrisi oleh class yang akan menggunakan properties dan metodenya.
Syntak:
Class Nama_Pewaris
extends nama_yang_mewarisi
{
Kode yang di eksekusi;
}
Contoh:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?php
class
Modifier{
protected
function cetak(){
echo
'Ini modifier protected';
}
}
class
Turunan_Modifier extends Modifier{
public
function setPublic(){
$this->cetak();
}
}
//$a = new Modifier();
//$a->cetak();
$b =
new Turunan_Modifier();
$b->setPublic();
//$b->cetak();
?>
|
demikian untuk sharing kali ini semoga bermanfaat buat saya sendiri hehe, dan para pembaca, terima kasih sudah mampir di blog ane, happy blogging...........
