panduan praktis oop di php

39
8/12/2019 Panduan Praktis OOP Di PHP http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 1/39 TIS Disusun oleh: Rosihan Ari Yuana, S.Si, M.Kom http://blog.rosihanari.net Seri Tutorial Praktis Pemrograman Rosihan Ari Yuana

Upload: muh-ghazali-akbar

Post on 03-Jun-2018

238 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 1/39

TIS

Disusun oleh:

Rosihan Ari Yuana, S.Si, M.Kom

http://blog.rosihanari.net

Seri Tutorial Praktis Pemrograman Rosihan Ari Yuana

Page 2: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 2/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman $ dari %&

#ak 'ipta han(a milik Allah a))a *a +alla.

#an(a karena anugerah (a lah, ebook tutorial ini bisa ter*u+u! melalui tangan penulis."leh karena itu, ti!ak berhak seseorang (ang bermaksu! menge!arkan/men!istribusikan ebook

ini atau menge!it sebagian atau keseluruhan ebook ini tanpa sei+in Allah !an penulisn(a.

-iarlah Allah a))a *a +alla (ang berhak memutuskan atas perkara bagi seseorang (angmelanggar ketentuan !i atas

Page 3: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 3/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman % dari %&

Da tar Isi book

Pendahuluan ........................................................................................................................................... 4

Membuat Class ............................ ...................... ............................ ................... ............................ ........... 4

Latihan ................................................................................................................................................ 5

Membuat Function/Method dalam Class ...................... ............................ ................... ............................ 6

Latihan ................................................................................................................................................ 7

Instantisasi Obye ................................................................................................................................... 7!ettin" Pro#erties ........................... ......................... ........................... .................... ............................ ..... $

Latihan .............................................................................................................................................. %&

Men'alan an Method ............................................................................................................................ %&

Latihan .............................................................................................................................................. %(

Men"a ses Pro#erties ........................................................................................................................... %(

Latihan .............................................................................................................................................. %5

Modularitas Class .................................................................................................................................. %5

Constructor ........................................................................................................................................... %7

)nca#sulation ........................................................................................................................................ %$

Pe*arisan +Inheritance, .......................... ......................... ............................ ........................... ............... (4

Latihan .............................................................................................................................................. (6

!tudi -asus &% O#erasi ilan"an den"an OOP ..................... ........................... .................... ................. (7

Latihan .............................................................................................................................................. ($

!tudi -asus &( -one si e 0atabase My!1L den"an OOP .......................... ........................ .................. ($

!tudi -asus &2 Insert 0ata e 0atabase My!1L den"an OOP .................... .......................... ................ 2%

!tudi -asus &4 Menam#il an 0ata dari My!1L den"an OOP ................................................ ............... 2(

!tudi -asus &5 Ha#us 0ata dari My!1L den"an OOP ........................ ............................ .................... ... 22

!tudi -asus &6 )dit 0ata dari My!1L den"an OOP .................................... ................... ....................... 25

Latihan .............................................................................................................................................. 26

!tudi -asus &7 Membuat !cri#t Lo"in den"an OOP ..................... ............................ ................... ......... 27

Latihan .............................................................................................................................................. 23

Page 4: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 4/39

Page 5: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 5/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman 1 dari %&

>ntu membuat sebuah class stru turnya adalah sbb?

<?php

class namakelas{

var namavariabel;...

}

A

!eba"ai contoh misal an ita membuat class bernama endaraan<?php

class kendaraan{

var $jumlahRoda;var $warna;var $bahanBakar;var $harga;var $merek;

}

A

0alam contoh di atas yan" meru#a an #ro#erti dari class endaraan adalah? 'umlahBoda *arnabahan a ar dan har"a.

!ebuah #ro#erties dari suatu class da#at :nda bayan" an seba"ai si<at atau in<ormasi yan" mele at darisuatu obye . !eba"ai contoh misal an ita #andan" sebuah obye mahasis*aD ma a #ro#erties darimahasis*a bebera#a diantaranya adalah? nim nama alamat nama oran" tua 'urusan <a ultas dsb.

Latihan%. uatlah sebuah elas bernama bu uD emudian de larasi an bebera#a #ro#erties dari bu u

tersebut misalnya? 'udul bu u #en"aran" #enerbit tahun tersebut dsb(. Bancan"lah sebuah elas untu menyata an oran" emudian tentu an sendiri #ro#erties nya

dan selan'utnya tulis class tersebut e dalam scri#t PHP.

Page 6: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 6/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman 2 dari %&

3. Membuat Function/Method dalam Class

!e#erti yan" saya sam#ai an sebelumnya bah*a dalam sebuah class bisa dibuat <unction. !ebuah<unction dalam suatu class dinama an method dan sebuah method 'i a ita bayan" an adalah se"alahal yan" ter ait den"an #e er'aan atau #roses yan" da#at diberi an #ada suatu obye . !eba"ai contohmethod dalam ehidu#an sehari9hari adalah #ada obye seoran" mahasis*aD. !ebuah method ita bisaberi an #ada mahasis*a tersebut misalnya? tem#uh uliahD. 0i dalam method tem#uh uliahD ituterda#at seran" aian #roses mulai dari

9 re"istrasi uliah9 i uti uliah9 i uti u'ian9 ;i a u'ian tida lulus ma a ulan"i i uti uliah

Itu seba"ai contoh "ambaran method dalam ehidu#an sehari9hari.

eri ut ini contoh sebuah <unction yan" dibuat dalam sebuah class. Function dalam contoh beri ut inidi"una an untu menentu an a#a ah sebuah endaraan har"anya mahal atau tida . 0i sini endaraandi ata an mahal 'i a har"anya di atas 5& 'uta dan 'i a di 5& 'uta e ba*ah di ata an murah.

E #h#

class kendaraan{

var $jumlahRoda;var $warna;var $bahanBakar;var $harga;var $merek;

function statusHarga(){

if ($this->harga > 50000000) $status = 'Mahal';else $status = 'Murah';return $status;

}

}

A

Perhati an #erintah?

this9Ahar"a

Page 7: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 7/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman 3 dari %&

@ariabel this meru#a an built in 8ariabel yan" di"una an untu men"a ses #ro#erties atau method

yan" ada dalam class tersebut. !ehin""a #erintah this9Ahar"a di"una an untu men"a ses ataumembaca #ro#erty dari har"a yan" ada dalam class endaraan.

Catatan?

@ariabel status dalam <unction statushar"a+, bu anlah termasu #ro#erty dari class endaraan arenatida dide<inisi an dalam bentu 8ar statusG

Latihan%. 0ari elas endaraanD dalam contoh tambah an sebuah #ro#erty tahun #embuatanD(. uatlah <unction dalam elas endaraanD den"an nama da#at!ubsidi+,D untu menentu an

a#a ah suatu endaraan menda#at subsidi M atau tida . -endaraan yan" menda#at subsidiadalah yan" berbahan ba ar PremiumD dan tahun #embuatannya sebelum tahun (&&5.Function ini mereturn aD 'i a menda#at subsidi dan ida D 'i a tida menda#at subsidi.

2. uatlah <unction dalam elas endaraanD den"an nama har"a!econd+,D untu menentu anhar"a second dari endaraan tersebut. Function ini mereturn har"a second dari endaraanden"an etentuan?

a. ;i a tahun #embuatan di atas (&&5 ma a har"a second nya turun (& dari har"a aslinyab. ;i a tahun #embuatan (&&& s/d (&&5 ma a har"a second nya turun 2& dari har"a

aslinyac. ;i a tahun #embuatan di ba*ah (&&& ma a har"a second nya turun 4& dari har"a

aslinya.

4. Instantisasi Obyek

!e#erti yan" telah di'elas an sebelumnya bah*a sebuah class meru#a an blue#rint dari obye . !ebuahclass belum men'adi obye sebelum ita la u an sebuah #roses instantisasi obye .

>ntu mela u an instantisasi obye #erintahnya adalah sbb?

handle ne* namaclass+,G

!eba"ai contoh misal an ita la u an instantiasi #ada class endaraan

<?php

class kendaraan{

var $jumlahRoda;var $warna;

Page 8: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 8/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman 4 dari %&

var $bahanBakar;var $harga;var $merek;

function statusHarga(){

if ($this->harga > 50000000) $status = 'Mahal';else $status = 'Murah';return $status;

}

}

$kendaraan1 = new kendaraan();

A

;i a scri#t di atas di'alan an ma a di bro*ser tida muncul a#a9a#a. Hal ini ter'adi arena ita belummenyuruh PHP untu mela u an sesuatu #ada obye endaraan% tersebut.

@ariabel endaraan% dalam hal ini dinama an handleD arena ita a an "una an endaraan% untumen"ontrol dan men""una an obye endaraan.

Oya ita 'u"a bisa mela u an instantisasi obye tan#a men""una an urun" #erhati an contoh beri utini yan" menun'u an #roses instantisasi bebera#a obye dari class endaraan.

<?php

class kendaraan{

var $jumlahRoda;var $warna;var $bahanBakar;var $harga;var $merek;

function statusHarga(){

if ($this->harga > 50000000) $status = 'Mahal';else $status = 'Murah';return $status;

}

}

$kendaraan1 = new kendaraan();$kendaraan2 = new kendaraan;$kendaraan3 = new kendaraan();

?>

Page 9: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 9/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman & dari %&

5. ettin! P"o#e"ties

!etelah suatu obye ita la u an instantitasi selan'utnya ita bisa mensettin" #ro#erties dari obyetersebut. !eba"ai contoh misal an ita telah membuat obye endaraan% emudian ba"aimana itamenset #ro#erti har"a dan mere dari obye endaraan% ini

-ita da#at mensettin" #ro#erties dari suatu obye den"an #erintah?

namaobye 9A#ro#erti 8alueG

Perhati an contoh beri ut ini?

<?php

class kendaraan{

var $jumlahRoda;var $warna;var $bahanBakar;var $harga;var $merek;

function statusHarga(){

if ($this->harga > 50000000) $status = 'Mahal';else $status = 'Murah';return $status;

}

}

$kendaraan1 = new kendaraan();$kendaraan1->merek = 'Yamaha MIO';$kendaraan1->harga = 10000000;

A

Perintah

endaraan%9Amere J amaha MIOJG

0i"una an untu mensettin" #ro#erti mere amaha MIOD dari obye endaraan%.

-ita 'u"a bisa men""una an method untu #roses settin" #ro#erti ini dan ini adalah cara yan" lebihdire omendasi an dalam OOP.

<?php

Page 10: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 10/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman 56 dari %&

class kendaraan{

var $jumlahRoda;var $warna;var $bahanBakar;var $harga;var $merek;

function statusHarga(){

if ($this->harga > 50000000) $status = 'Mahal';else $status = 'Murah';return $status;

}

function setMerek($x){

$this->merek = $x;}

function setHarga($x){

$this->harga = $x;}

}

$kendaraan1 = new kendaraan();

$kendaraan1->setMerek('Yamaha MIO');$kendaraan1->setHarga(10000000);

A

Latihan0ari class endaraanD di atas buatlah obye den"an bebera#a #ro#erti sbb

"b(ek Merek 7ml Ro!a #arga 8arna -hn -akarendaraan( oyota aris 4 %6&.&&&.&&& Merah Premiumendaraan2 Honda !coo#y ( %2.&&&.&&& Putih Premiumendaraan4 IsuKu Panther 4 %7&.&&&.&&& Hitam !olar

$. Men%alankan Method

0alam ba"ian ini a an di'elas an cara men'alan an sebuah method dari suatu obye . In"at bah*amen'alan an sebuah method dari suatu obye #ada intinya adalah meman""il <unction yan" dalamclass.

Page 11: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 11/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman 55 dari %&

!ebenarnya dalam contoh sebelumnya sudah diberi an contoh untu men'alan an method yaitu salah

satunya melalui #erintah

$kendaraan1->setMerek('Yamaha MIO');

Perintah tersebut adalah men'alan an method setMere +, dari obye endaraan% dan dalam hal inisetMere +, adalah sebuah <unction dalam class endaraan.

Contoh yan" lain misal an ita a an men'alan an method statusHar"a+, yan" di"una an untumenam#il an status har"anya a#a ah termasu mahal atau murah.

<?php

class kendaraan{

var $jumlahRoda;var $warna;var $bahanBakar;var $harga;var $merek;

function statusHarga(){

if ($this->harga > 50000000) $status = 'Mahal';else $status = 'Murah';

return $status;}

function setMerek($x){

$this->merek = $x;}

function setHarga($x){

$this->harga = $x;}

}

$kendaraan1 = new kendaraan();$kendaraan1->setMerek('Yamaha MIO');$kendaraan1->setHarga(10000000);echo $kendaraan1->statusHarga();

A

;i a scri#t di atas di'alan an ma a a an muncul MurahD arena har"a nya uran" dari 5&.&&&.&&&.

Page 12: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 12/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman 5$ dari %&

Perhati an dari bebera#a contoh #eman""ilan method di atas bah*a setia# ali #eman""ilan method

'an"an lu#a memberi tanda urun" +, se#erti #ada

endaraan%9AsetHar"a+%&&&&&&&,G

:tau

endaraan%9AstatusHar"a+,G

-arena urun" tersebut di"una an untu meleta an #arameter ba"i method tersebut.

Latihan%. Perhati an embali soal latihan sebelumnya #ada bab 5. am#il an status har"a dari

endaraan( endaraan2 dan endaraan4.(. Perhati an embali soal latihan #ada bab 2 nomor 2. am#il an har"a second dari endaraan(

endaraan2 dan endaraan4.

&. Men!akses P"o#e"ties

!e aran" a an di'elas an ba"aimana cara men"a ses #ro#erties dari suatu obye . !ebelumnya #ernahsaya ata an bah*a #ro#erties dari suatu obye itu meru#a an 8alue dari 8ariabel yan" ada dalam class.

a"aimana cara men"a ses #ro#erties dari suatu obye Perhati an contoh beri ut ini

<?php

class kendaraan{

var $jumlahRoda;var $warna;var $bahanBakar;var $harga;var $merek;

function statusHarga(){if ($this->harga > 50000000) $status = 'Mahal';else $status = 'Murah';return $status;

}

function setMerek($x){

$this->merek = $x;}

Page 13: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 13/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman 5% dari %&

function setHarga($x){

$this->harga = $x;}

}

$kendaraan1 = new kendaraan();$kendaraan1->setMerek('Yamaha MIO');$kendaraan1->setHarga(10000000);echo 'Harga dari '.$kendaraan1->merek.' adalah Rp. '.$kendaraan1->harga;

A

Perhati an #ada ba"ian #erintah

endaraan%9Ahar"a

dan

endaraan%9Amere

-edua #erintah di atas adalah di"una an untu men"a ses 8alue dari #ro#erty obye endaraan%yaitu mere D dan har"aD. ;i a scri#t di atas di'alan an ma a a an di#eroleh out#ut

Har"a dari amaha MIO adalah B#. %&&&&&&& !elain cara di atas da#at #ula men""una an method dalam membaca #ro#erties dari suatu obye dancara inilah yan" #alin" disaran an dalam OOP. Perhati an contoh beri ut ini

<?php

class kendaraan{

var $jumlahRoda;var $warna;var $bahanBakar;var $harga;

var $merek;

function statusHarga(){

if ($this->harga > 50000000) $status = 'Mahal';else $status = 'Murah';return $status;

}

function setMerek($x){

Page 14: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 14/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman 50 dari %&

$this->merek = $x;}

function setHarga($x){

$this->harga = $x;}

function bacaMerek(){

return $this->merek;}

function bacaHarga(){

return $this->harga;}

}

$kendaraan1 = new kendaraan();$kendaraan1->setMerek('Yamaha MIO');$kendaraan1->setHarga(10000000);echo 'Harga dari '.$kendaraan1->bacaMerek().' adalah Rp. '.$kendaraan1->bacaHarga();

A

0alam contoh di atas untu men"a ses #ro#erti mere dibuat <unction sbb

function bacaMerek(){

return $this->merek;}

Sedangkan function untuk mengakses properti harga kendaraan adalah

function bacaHarga(){

return $this->harga;N

!elan'utnya untu men"a ses #ro#erti nama mere endaraan cu u# di#an""il sa'a methodbacaMere +, sbb?

endaraan%9AbacaMere +,

0emi ian #ula untu men"a ses #ro#erti har"a endaraan melalui method bacaHar"a+,G

endaraan%9AbacaHar"a+,

Page 15: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 15/39

Page 16: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 16/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman 52 dari %&

{$this->harga = $x;

}

function bacaMerek(){

return $this->merek;}

function bacaHarga(){

return $this->harga;}

}

$kendaraan1 = new kendaraan();$kendaraan1->setMerek('Yamaha MIO');$kendaraan1->setHarga(10000000);echo 'Harga dari '.$kendaraan1->bacaMerek().' adalah Rp. '.$kendaraan1->bacaHarga();

A

-ita da#at memisah an class endaraanD ini dalam <ile tersendiri misal an diberinama class9endaraan.#h#D yan" isinya

'lass9ken!araan.php

<?php

class kendaraan{

var $jumlahRoda;var $warna;var $bahanBakar;var $harga;var $merek;

function statusHarga(){

if ($this->harga > 50000000) $status = 'Mahal';else $status = 'Murah';return $status;

}

function setMerek($x){

$this->merek = $x;}

function setHarga($x){

Page 17: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 17/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman 53 dari %&

$this->harga = $x;}

function bacaMerek(){

return $this->merek;}

function bacaHarga(){

return $this->harga;}

}A

!elan'utnya ita include an <ile class9 endaraan.#h# ini e dalam scri#t lain a#abila itamemerlu annya

'ontoh.php

<?phpinclude 'class-kendaraan.php';

$kendaraan1 = new kendaraan();$kendaraan1->setMerek('Yamaha MIO');$kendaraan1->setHarga(10000000);echo 'Harga dari '.$kendaraan1->bacaMerek().' adalah Rp. '.$kendaraan1-

>bacaHarga();A

(. Const"ucto"

Perhati an embali #roses instantisasi yan" ada di bab 4 dan settin" #ro#erties di bab 5. ;i a ita#erhati an ma a #roses instantisasi dan settin" #ro#erties ini dila u an secara ter#isah. entu sa'a#roses ini a"a terlalu bertele9tele. ernyata ita bisa lan"sun" mela u an instantisasi obye se ali"usmela u an settin" #ro#ertiesnya. Proses ini da#at dila u an den"an men""una an constructorD.

>ntu membuat constructor ita cu u# membuat sebuah <unction dalam class den"an bentu

function __construct (parameter){

.

.

.N

Page 18: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 18/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman 54 dari %&

-eteran"an? anda meru#a an tanda underscore + , yan" ditulis double.

eri ut ini contoh constructor untu obye endaraan dimana se ali"us mensettin" #ro#erti mere Ddan har"aD endaraan.

'lass9ken!araan.php

<?php

class kendaraan{

var $jumlahRoda;var $warna;var $bahanBakar;var $harga;var $merek;

function statusHarga(){

if ($this->harga > 50000000) $status = 'Mahal';else $status = 'Murah';return $status;

}

function setMerek($x){

$this->merek = $x;

}

function setHarga($x){

$this->harga = $x;}

function bacaMerek(){

return $this->merek;}

function bacaHarga(){

return $this->harga;}

function __construct($x, $y){

$this->merek = $x;$this->harga = $y;

} }

A

Page 19: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 19/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman 5& dari %&

Perhati an

function __construct($x, $y){

$this->merek = $x;$this->harga = $y;

}

Function tersebut ita buat ( #arameter dimana menyata an mere endaraan dan y adalahhar"anya. !elan'utnya #erintah

this9Amere G

0i"una an untu settin" #ro#erty mere endaraan berdasar an nilai . 0emi ian 'u"a #erintah

this9Ahar"a yG

>ntu settin" #ro#erty har"a endaraan berdasar an nilai y.

!elan'utnya ba"aimana cara mela u an instantisasi se ali"us settin" #ro#ertiesnya Perhati an scri#tberi ut ini.

'ontoh.php

<?phpinclude 'class-kendaraan.php';

$kendaraan1 = new kendaraan('Yamaha MIO', 10000000);

echo 'Harga dari '.$kendaraan1->bacaMerek().' adalah Rp. '.$kendaraan1->bacaHarga();

A

1). *nca#sulation

0i dalam dasar9dasar OOP ada istilah enca#sulation. Istilah ini ter ait den"an a sesibilitas #ro#ertiesdalam suatu class. 0en"an enca#sulation ini ita bisa men"atur sebuah #ro#erti a#a ah hanya bisadia ses dalam class tersebut sa'a atau tida .

: sesibilitas #ro#erties dalam enca#sulation ini ada ti"a si<at?

• Public ? #ro#erti da#at dia ses darimana#un• Pri8ate ? #ro#erti hanya da#at dia ses dari dalam class sa'a

Page 20: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 20/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman $6 dari %&

• Protected ? #ro#erti hanya da#at dia ses dari dalam class atau class turunan +inheritanced

class,

>ntu membeda an eti"anya #erhati an contoh beri ut ini

class9 endaraan.#h#

<?php

class kendaraan{

protected $jumlahRoda; public $warna; public $bahanBakar; public $harga; private $merek;

function statusHarga(){

if ($this->harga > 50000000) $status = 'Mahal';else $status = 'Murah';return $status;

}

function setMerek($x){

$this->merek = $x;

}

function setHarga($x){

$this->harga = $x;}

function bacaMerek(){

return $this->merek;}

function bacaHarga(){

return $this->harga;}

function __construct($x, $y){

$this->merek = $x;$this->harga = $y;

}}

A

Page 21: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 21/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman $5 dari %&

Perhati an class di atas. >ntu #ro#erti *arnaD bahan ba arD dan har"aD dibuat seba"ai #ublic

#ro#erties. !edan" an untu #ro#erti 'umlahBodaD dan mere D masin"9masin" seba"ai #rotected dan#ri8ate #ro#erties. !elan'utnya #erhati an scri#t contoh beri ut ini

contoh.#h#

<?phpinclude 'class-kendaraan.php';

$kendaraan1 = new kendaraan('Yamaha MIO', 10000000);echo 'Nama merek : '.$kendaraan1->merek;

A

0alam scri#t di atas setelah #roses instantisasi dan settin" #ro#erti untu obye endaraan% a andila u an #en"a sesan e #ro#erti mere secara lan"sun" +tan#a method, den"an memberi an#erintah

endaraan%9Amere

:#a yan" ter'adi 'i a scri#t di atas di'alan an ernyata a an muncul error

atal error ? Cannot access #ri8ate #ro#erty endaraan?? mere

Hal ini ter'adi arena #ro#erti mere bersi<at #ri8ate sehin""a #ro#erti ini tida bisa dia ses dari luar

class.

a"aimana den"an a ses e #ro#erti har"a secara lan"sun" Perhati an scri#t beri ut ini

contoh.#h#

<?phpinclude 'class-kendaraan.php';

$kendaraan1 = new kendaraan('Yamaha MIO', 10000000);echo 'Harga : '.$kendaraan1->harga;

A

ernyata 'i a scri#t di atas di'alan an bisa memuncul an har"a dari amaha Mio.

=ah... yan" men'adi #ertanyaan a#a ah bisa ita men"a ses sebuah #ro#erti yan" si<atnya #ri8atedalam class dari luar ;a*abnya adalah bisa namun tida dila u an secara lan"sun" den"an men"a ses#ro#erti nya namun men""una an method. !eba"ai contoh misal an ita in"in men"a ses #ro#ertimere yan" si<atnya #ri8ate ma a ita bisa men""una an method bacaMere +,.

contoh.#h#

Page 22: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 22/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman $$ dari %&

<?phpinclude 'class-kendaraan.php';

$kendaraan1 = new kendaraan('Yamaha MIO', 10000000);echo 'Harga : '. $kendaraan1->bacaMerek() ;

A

Oya ba"aimana den"an de larasi #ro#erties men""una an 8arD se#erti #ada contoh9contoh di a*almisalnya?

class kendaraan{

var $jumlahRoda;

var $warna;var $bahanBakar;var $harga;var $merek;...

N

Pen""unaan 8arD di de#an nama #ro#erties secara otomatis a an bersi<at seba"ai #ublic.

eri utnya muncul #ertanyaan a#a ah yan" bisa dibuat enca#sulation d" si<at #ri8ate #rotected dan#ublic ini hanya untu #ro#erties sa'a ;a*abnya adalah I0:- sebuah <unction atau method #un bisaditera# an hal ini. !eba"ai contoh misal an ita buat method statusHar"a+, seba"ai #ri8ate method.

class9 endaraan.#h#

<?php

class kendaraan{

protected $jumlahRoda;public $warna;public $bahanBakar;public $harga;

private $merek;

private function statusHarga(){

if ($this->harga > 50000000) $status = 'Mahal';else $status = 'Murah';return $status;

}

function setMerek($x){

Page 23: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 23/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman $% dari %&

$this->merek = $x;}

function setHarga($x){

$this->harga = $x;}

function bacaMerek(){

return $this->merek;}

function bacaHarga(){

return $this->harga;}

function __construct($x, $y){

$this->merek = $x;$this->harga = $y;

}}

A

-emudian ita ce a#a ah e<e 'i a sebuah method dibuat #ri8ate den"an meman""il methodstatusHar"a+, di dalam scri#t.

contoh.#h#

<?phpinclude 'class-kendaraan.php';

$kendaraan1 = new kendaraan('Yamaha MIO', 10000000);echo 'Status harga : '. $kendaraan1->statusHarga() ;

A

;i a scri#t di atas di'alan an ma a a an muncul #esan error sbb?

atal error ? Call to #ri8ate method endaraan??statusHar"a+, <rom conte t JJ

an" men"in<ormasi an bah*a method statusHar"a+, bersi<at #ri8ate sehin""a tida bisa dia ses dariluar class.

Page 24: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 24/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman $0 dari %&

11. Pe+a"isan ,Inhe"itance-

Perhati an embali class endaraanD selan'utnya ba"aimana 'i a ita in"in membuat obye baru a anteta#i obye ini nanti beru#a ereta a#iD -husus ereta a#i ini nanti ada #ro#erti yan" di"una anuntu menyata an 'umlah "erbon". !edan" an #ro#erti yan" lain se#erti mere 'umlah roda har"a danbahan ba ar sama se#erti dalam class endaraan. Oleh arena itu untu obye ereta a#i ini ita #erlumembuat class baru yan" meru#a an #en"emban"an dari class endaraan.

0alam OOP ita tida #erlu la"i membuat class baru ini ta#i cu u# ita membuat class baru yan"meru#a an turunan atau *arisan dari class sebelumnya. Class turunan ini a an memili i #ro#erti danmethod yan" sama se#erti class #e*arisnya namun terda#at #ro#erti atau method tambahan hususuntu class ini. Istilah #e*arisan class ini dalam OOP dinama an inheritance.

a"aimana cara membuat class turunan ini

class namaclassbaru extends namaclasslama{

.

.

.}

!eba"ai contoh #erhati an scri#t beri ut ini

class9 endaraanG

<?php

class kendaraan{

protected $jumlahRoda;public $warna;public $bahanBakar;public $harga;private $merek;

private function statusHarga(){

if ($this->harga > 50000000) $status = 'Mahal';else $status = 'Murah';return $status;

}

function setMerek($x){

$this->merek = $x;

Page 25: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 25/39

Page 26: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 26/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman $2 dari %&

$kereta1 = new keretaApi('KA Lokomotif', 15000000);$kereta1->setGerbong(20);echo 'Jumlah gerbong dari '.$kereta1->bacaMerek().

' yang seharga '.$kereta1->bacaHarga().' adalah '.$kereta1->bacaGerbong();

?>

;i a scri#t tersebut di#erhati an ma a terda#at constructor #ada class ereta:#i dimana da#atdila u an instantisasi se ali"us settin" #ro#erties untu nama mere dan har"anya. Men"a#a o bisa

a... arena class ereta:#i adalah turunan dari class endaraan dimana di dalam class endaraanterda#at constructor sehin""a untu class ereta:#i ini#un da#at dila u an hal yan" sama.

!elan'utnya diberi an #erintah

$kereta1->setGerbong(20);

Perintah tersebut a an mensettin" #ro#erties 'umlah "erbon" #ada obye ereta%.

!elain itu #erintah untu meman""il method bacaMere +, dan bacaHar"a+, #un 'u"a da#at dila u anarena class ereta:#i meru#a an turunan dari class endaraan.

:da#un out#ut di bro*ser a#abila scri#t tersebut di'alan an adalah sbb?

;umlah "erbon" dari -: Lo omoti< yan" sehar"a %5&&&&&& adalah (&

Latihan%. 0alam scri#t class9 endaraan.#h#D buatlah class baru bernama #esa*atD yan" meru#a an

turunan dari class endaraan(. 0alam class #esa*atD yan" telah dibuat de<inisi an sebuah #ro#erti tin""iMa sD den"an si<at

#ri8ate untu menyata an etin""ian ma simum #esa*at dan ece#atanMa sD den"an si<at#ri8ate untu menyata an ece#atan ma simum #esa*at

2. 0alam class #esa*atD buatlah sebuah method bernama set in""iMa s+, untu mensettin"#ro#erti tin""iMa sD dan set-ece#atanMa s+, untu settin" #ro#erti ece#atan ma simum#esa*at.

4. 0alam class #esa*atD buatlah method bernama baca in""iMa s+, untu men"a ses #ro#ertitin""iMa sD.

5. 0alam class #esa*atD buatlah method bernama biayaO#erasional+, untu menentu an biayao#erasional #esa*at dimana untu men"hitun" biaya ini ter"antun" dari har"a #esa*at yaitudirumus an?

Page 27: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 27/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman $3 dari %&

9 ;i a tin""i ma simum #esa*at lebih dari 5&&& <eet dan ece#atan ma s lebih dari 3&&

m/'am ma a biaya o#erasional 2& dari har"a #esa*at9 ;i a tin""i ma simum #esa*at 2&&&95&&& <eet dan ece#atan ma s 5&& 3&& m/'am ma a

biaya o#erasional (& dari har"a #esa*at9 ;i a tin""i ma simum #esa*at uran" dari 2&&& <eet dan ece#atan ma s uran" dari 5&&

m/'am ma a biaya o#erasional %& dari har"a #esa*at9 !elain itu biaya o#erasionalnya 5 dari har"a #esa*at

6. erdasar an etentuan #ada nomor % s/d 5 tentu an biaya o#erasional dari #esa*at9#esa*atini

Mere Pesa*at Har"a +'uta, in""i Ma s +<eet, -ece#t Ma s + m/'am,oein" 727 (.&&& 75&& 65&oein" 747 2.5&& 53&& 75&

Cassa 75& 25&& 5&&

Contoh tam#ilan out#ut yan" dihara# an adalah seba"ai beri ut

iaya o#erasional #esa*at oein" 727D den"an har"a B# (.&&&.&&&.&&& yan" memili i tin""ima simum 75&& <eet dan ece#atan ma simum 65& m/'am adalah B#. RRRRRRR

12. tudi asus )1 O#e"asi 0ilan!an den!an OOP

Pada studi asus yan" #ertama ini ita a an mencoba membuat scri#t o#erasi bilan"an yaitumen'umlah an dan men"ali an dua bilan"an dalam #ers#e ti< OOP.

Misal an untu im#lementasi asus ini ita a an buat class bernama o#erasi ilan"anD. 0i mana nantia an memili i dua #ro#erties yaitu bilan"an % dan bilan"an (. -edua bilan"an itu nanti a andio#erasi an melalui method9method yaitu method untu men'umlah an dan men"ali an.

>ntu memudah an im#lementasi ada bai nya ita buat constructor su#aya #roses instantisasi dansettin" #ro#erties bilan"an % dan bilan"an ( nya bisa dila u an dalam satu #erintah sa'a.

0ari desain s enario tersebut ita bisa buat scri#tnya sbb?

asus9&%.#h#

<?php

class operasiBilangan

Page 28: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 28/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman $4 dari %&

{// properties dari classprivate $bilangan1;private $bilangan2;

// constructorfunction __construct($x, $y){

$this->bilangan1 = $x;$this->bilangan2 = $y;

}

// method untuk membaca properti bilangan1function bacaBilangan1(){

return $this->bilangan1;}

// method untuk membaca properti bilangan2function bacaBilangan2(){

return $this->bilangan2;}

// method untuk menjumlahkan bilangan1 dan bilangan2function jumlahkan(){

$hasil = $this->bilangan1 + $this->bilangan2;

return $hasil;}

// method untuk mengalikan bilangan1 dan bilangan2function kalikan(){

$hasil = $this->bilangan1 * $this->bilangan2;return $hasil;

}}

// instantisasi dan setting properties$operasi1 = new operasiBilangan(4, 5);

// menampilkan hasil penjumlahanecho '<p>Hasil penjumlahan '.$operasi1->bacaBilangan1().' dan '.$operasi1->bacaBilangan2().' adalah '.$operasi1->jumlahkan().'</p>';

// menampilkan hasil perkalianecho '<p>Hasil perkalian '.$operasi1->bacaBilangan1().' dan '.$operasi1->bacaBilangan2().' adalah '.$operasi1->kalikan().'</p>';

?>

Page 29: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 29/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman $& dari %&

!cri#t di atas di"una an untu men'umlah an dan men"ali an bilan"an 4 dan 5.

Latihan%. ambah an method baru bernama uran" anD #ada class o#erasi ilan"an untu mela u an

#roses #en"uran"an bilan"an % terhada# bilan"an (.(. ambah an method baru bernama moduloD #ada class o#erasi ilan"an untu men"hitun" hasil

modulo bilan"an % terhada# bilan"an (.2. ambah an method baru bernama #an" atD #ada class o#erasi ilan"an untu men"hitun" hasil

bilan"an % di#an" at an bilan"an (.

13.

tudi asus )2 oneksi ke atabase My L den!an OOP

>ntu studi asus ali ini ita a an mencoba men"im#lementasi an OOP ini #ada scri#t PHP yan"ter ait den"an mana"ement data dalam database hususnya My!1L. 0en"an scri#t OOP nantinya itaa an mela u an insert data e My!1L ha#us data edit data dan menam#il an data. Pembahasan hal ininanti a an diba"i e bebera#a bab mulai !tudi -asus &( s/d !tudi -asus &6.

!eba"ai contoh asus nantinya ita buat database untu e#erluan atalo" bu u. eri ut ini stru turtabel nya?

CREATE TABLE `buku` (`id` int(11) AUTO_INCREMENT,`judul` text,`pengarang` varchar(200),`penerbit` varchar(200),`tahunTerbit` varchar(4),PRIMARY KEY (`id`)

)

!ehin""a untu !tudi -asus &( s/d !tudi -asus &6 ita a an men""una an tabel bu uD di atas.

Pada studi asus &( ini ita a an coba membuat scri#t PHP untu one si e My!1L den"an

men""una an OOP.

Class yan" nanti a an ita buat misalnya diberinama databaseD dan beri ut ini adalah tabel #ro#ertiesdan method yan" a an ita buat

=ama i#e !i<at -eteran"andbHost Pro#erti Pri8ate =ama host My!1Ldb>ser Pro#erti Pri8ate >sername My!1LdbPass Pro#erti Pri8ate Pass*ord My!1L

Page 30: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 30/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman %6 dari %&

db=ame Pro#erti Pri8ate =ama database My!1L

connectMy!1L+, Method Public Mela u an one si e database My!1L

-eteran"an?>ntu menentu an si<at #ro#erties dan method a#a ah #ri8ate #ublic atau #rotected sebenarnya tidaada etentuan #asti. !emuanya terserah e#ada :nda dalam menentu annya. Intinya adalah 'i a :ndain"in #ro#erties atau method bisa di#an""il dari luar class ma a buat seba"ai Public. a#i alau tidacu u# dibuat #ri8ate sa'a.

eri ut ini adalah scri#t class databaseD nya

asus&(9class.#h#

<?php

class database{

// propertiesprivate $dbHost;private $dbUser;private $dbPass;private $dbName;

// constructorfunction __construct($a, $b, $c, $d){

$this->dbHost = $a;$this->dbUser = $b;$this->dbPass = $c;$this->dbName = $d;

}

// method koneksi mysqlfunction connectMySQL(){

mysql_connect($this->dbHost, $this->dbUser, $this->dbPass);mysql_select_db($this->dbName);

}

}

?>

Perhati an class di atas di dalam class ita buat constructor. Pembuatan constructor ini tida *a'ib danini su a9su a si #embuat scri#t ?9, Pembuatan constructor ini bertu'uan untu memudah an dalam#roses instantisasi dan settin" #ro#ertiesnya sa'a.

eri utnya ita bisa "una an scri#t class di atas untu mela u an one si e My!1L.

Page 31: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 31/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman %5 dari %&

asus&(.#h#

<?phpinclude 'kasus02-class.php';

// parameter koneksi mysql$host = 'localhost';$user = 'root';$pass = '';$mydb = 'test';

// instantitasi dan setting properties obyek database$db = new database($host, $user, $pass, $mydb);

// koneksi ke mysql via method$db->connectMySQL();

?>

14. tudi asus )3 Inse"t ata ke atabase My L den!an OOP

!tudi asus beri utnya adalah ba"aimana #roses insert data e My!1L den"an scri#t OOP. ;i asebelumnya ita sudah membuat class databaseD dan method untu one si e mysSlnya ma a untu

insert data ini ita bisa tambah an method tersendiri e dalam class databaseD tersebut.

0i dalam class databaseD ita buat <unction add u uD.

function addBuku($judul, $pengarang, $penerbit, $thnTerbit){

$query = "INSERT INTO buku (judul, pengarang, penerbit, tahunTerbit)VALUES ('$judul', '$pengarang', '$penerbit', '$thnTerbit')";

$hasil = mysql_query($query);if ($hasil) echo "Data buku sudah disimpan ke DB";else echo "Data buku gagal disimpan ke DB";

}

0alam <unction add u u+, tersebut terda#at 4 #arameter yaitu 'udul #en"aran" #enerbit dan tahunterbit.

:da#un cara #en""unaan method add u u+, #erhati an scri#t beri ut ini

Kasus6%.php

<?phpinclude 'kasus03-class.php';

Page 32: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 32/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman %$ dari %&

// parameter koneksi mysql$host = 'localhost';$user = 'root';$pass = '';$mydb = 'test';

// instantitasi dan setting properties obyek database$db = new database($host, $user, $pass, $mydb);

// koneksi ke MySQL via method$db->connectMySQL();

// insert data buku via method$db->addBuku('Pemrograman OOP di PHP', 'Rosihan Ari Yuana', 'Penerbit

Sendiri', '2012');?>

15. tudi asus )4 Menam#ilkan ata da"i My L den!an OOP

!etelah #roses insert data selan'utnya ita tam#il an semua data yan" sudah diinsert e databasemen""una an "aya OOP.

Pertama ita tambah an method untu menam#il an data ini misal an diberi nama tam#il u u+,

function tampilBuku(){

echo "<table border='1'>";echo "<tr><th>No</th><th>Judul

Buku</th><th>Pengarang</th><th>Penerbit</th><th>TahunTerbit</th><th>Action</th></tr>";

// query untuk menampilkan semua data buku$query = "SELECT * FROM buku ORDER BY id";$hasil = mysql_query($query);$i = 1;while ($data = mysql_fetch_array($hasil)){

echo"<tr><td>".$i."</td><td>".$data['judul']."</td><td>".$data['pengarang']."</td><td>".$data['penerbit']."</td><td>".$data['tahunTerbit']."</td><td><ahref='".$_SERVER['PHP_SELF']."?op=edit&id=".$data['id']."'>Edit</a> | <ahref='".$_SERVER['PHP_SELF']."?op=del&id=".$data['id']."'>Hapus</a></td></tr>";

$i++;}

echo "</table>";}

Page 33: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 33/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman %% dari %&

0alam method tam#il u u+, di atas data ita sa'i an dalam bentu tabel. !elain tam#ilan data dalamtabel tersebut 'u"a ita beri an lin untu edit dan ha#us data #ada setia# baris datanya.

-emudian #erhati an scri#t yan" men""una an method tam#il u u+, tersebut.

Kasus60.php

<?phpinclude 'kasus04-class.php';

// parameter koneksi mysql$host = 'localhost';$user = 'root';$pass = '';$mydb = 'test';

// instantitasi dan setting properties obyek database$db = new database($host, $user, $pass, $mydb);

// koneksi ke mysql via method$db->connectMySQL();

// tampilkan data buku via method$db->tampilBuku();?>

Cu u# mudah bu an den"an OOP !etia# ali a#abila ita in"in menam#il an data bu u cu u#meman""il method tam#il u u+, sa'a.

0alam scri#t -asus&4.#h# di atas untu <itur edit data dan ha#us datanya belum bisa di"una an arenabelum dibuat method atau <unctionnya. Pembahasan tentan" hal ini a an di'elas an di studi asusberi utnya.

1$. tudi asus )5 a#us ata da"i My L den!an OOP

eri utnya ita tin'au #roses ha#us data. >ntu e#erluan ini ita buat method den"an namaha#us u u+, #ada class databaseD nya.

function hapusBuku($id){

$query = "DELETE FROM buku WHERE id = '$id'";mysql_query($query);echo "Data buku ID ".$id." sudah dihapus";

Page 34: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 34/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman %0 dari %&

}

Perhati an <unction di atas dalam <unction tersebut terda#at sebuah #arameter id. Parameter inidi"una an untu menyata an I0 bu u mana yan" a an diha#us.

!elan'utnya #erhati an contoh scri#t untu #roses ha#us datanya.

-asus&5.#h#

<?phpinclude 'kasus05-class.php';

// parameter koneksi mysql$host = 'localhost';$user = 'root';$pass = '';$mydb = 'test';

// instantitasi dan setting properties obyek database$db = new database($host, $user, $pass, $mydb);

$db->connectMySQL();

// proses hapus dataif (isset($_GET['op'])){

if ($_GET['op'] == 'del'){

// baca ID dari parameter ID buku yang akan dihapus$id = $_GET['id'];// proses hapus data buku berdasarkan ID via method$db->hapusBuku($id);

}}

// tampilkan semua data buku$db->tampilBuku();

A

;i a ita #erhati an scri#t di atas ma a leta #roses ha#us data dila u an sebelum +di atas, methoduntu menam#il an data bu u. Hal ini bertu'uan su#aya data yan" tam#il #ada method tam#il u u+,meru#a an list data yan" sudah terbaru setelah #roses #en"ha#usan. ;i a leta #roses ha#us datadila u an setelah atau di ba*ah tam#il u u+, ma a :nda harus mere<resh scri#t asus&5.#h# ini setelah#roses #en"ha#usan su#aya data yan" sudah diha#us tida muncul di tam#il u u+,.

Page 35: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 35/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman %1 dari %&

1&. tudi asus )$ *dit ata da"i My L den!an OOP

>ntu #roses edit data ini nantinya ita a an membuat ( method yaitu method untu membaca databu u yan" a an di edit berdasar an I0 tertentu. 0ata bu u yan" dibaca ini selan'utnya a an ditam#il andi <orm edit. -emudian method beri utnya ita "una an untu #roses u#date datanya.

!e aran" #erhati an method baca0ata u u+, untu baca data bu u berdasar an I0 nya beri ut ini

function bacaDataBuku($type, $id){

$query = "SELECT * FROM buku WHERE id = '$id'";$hasil = mysql_query($query);$data = mysql_fetch_array($hasil);if ($type == 'judul') return $data['judul'];else if ($type == 'pengarang') return $data['pengarang'];else if ($type == 'penerbit') return $data['penerbit'];else if ($type == 'thnTerbit') return $data['tahunTerbit'];

}

Function baca0ata u u+, di atas terda#at dua #arameter yaitu ty#e dan id. Parameter ty#edi"una an untu menentu an ti#e data a#a yan" men'adi return 8alue nya.

;i a nilai ty#e nya adalah 'udulD ma a method baca0ata u u+, ini a an men"hasil an return 8alue 'udul bu u dari I0 bu u tertentu. ;i a ty#e nya #en"aran"D ma a return 8alue nya adalah nama

#en"aran"nya demi ian 'u"a untu ty#e nya #enerbitD mau#un thn erbitD.

Man<aat dari bentu method se#erti ini ita cu u# membuat sebuah method sa'a untu membacasemua eteran"an data bu u berdasar an I0 bu unya.

:da#un cara #eman""ilan method baca0ata u u+, ini adalah seba"ai beri ut?

db9Abaca0ata u u+J'udulJ id,G

>ntu membaca ;udul u u dari I0 bu u id

db9Abaca0ata u u+J#en"aran"J id,G

>ntu membaca nama #en"aran" dari I0 bu u id

dan seterusnya.. :nda bisa lihat detailnya di scri#t asus&6.#h#

!elan'utnya ita buat method u#date0ata u u+, untu #roses u#date datanya

function updateDataBuku($id, $judul, $pengarang, $penerbit, $thnTerbit){

$query = "UPDATE buku SET

Page 36: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 36/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman %2 dari %&

judul = '$judul', pengarang = '$pengarang',penerbit = '$penerbit', tahunTerbit = '$thnTerbit'WHERE id = '$id'";

mysql_query($query);echo "Data buku sudah diupdate";

}

Pada <unction u#date0ata u u+, tersebut terda#at 5 #arameter di mana id menun'u an I0 dari bu uyan" a an diedit #en"aran" menyata an nama #en"aran" bu u yan" diu#date #enerbit untu nama#enerbit dan thn erbit menun'u an tahun terbit bu u.

Cara #eman""ilan method u#date0ata u u+, bisa :nda lihat di scri#t asus&6.#h#

!am#ai bab ini dihara# an :nda sudah bisa men"uasai te ni #emrosesan data My!1l den"an "aya#emro"raman OOP. ;i a di#erhati an dalam setia# scri#t untu masin"9masin" studi asus selalu dibuat#roses instantisasi dan settin" #ro#erties sbb?

// parameter koneksi mysql$host = 'localhost';$user = 'root';$pass = '';$mydb = 'test';

// instantitasi dan setting properties obyek database$db = new database($host, $user, $pass, $mydb);

Hal ini dila u an arena masin"9masin" scri#t leta nya ter#isah sehin""a untu mela u an instantisasiini dila u an #ada setia# scri#t. =amun a#abila #roses insert data tam#il data edit data dan ha#usdata dileta an dalam scri#t yan" sama ma a #roses instantisasi cu u# dila u an se ali sa'a.

Latihan%. ambah an <ield baru bernama 'enisD dalam tabel bu uD.

-eteran"an?Field 'enisD ini menun'u an 'enis bu unya yaitu? te t boo ma'alah atau tutorial

(. Modi<i asi scri#t untu insert data dan edit data su#aya scri#t bisa di"una an untu stru turdata di tabel bu uD yan" baru +setelah #enambahan <ield 'enisD,.

2. uatlah method baru den"an nama? cari u u+ ey*ord, yan" a an di"una an untu #roses#encarian bu u berdasar an ey*ord 'udul bu u.

4. uatlah <orm #encarian bu u berdasar an 'udul bu u men""una an methodcari u u+ ey*ord, tersebut.

Page 37: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 37/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman %3 dari %&

1'. tudi asus )& Membuat c"i#t Lo!in den!an OOP

Pada studi asus ini ita a an membuat scri#t lo"in dimana scri#tnya ita buat den"an "aya#emro"raman OOP.

!ebelum ita membuat detil scri#t PHP nya terlebih dahulu ita rancan" class9class beserta #ro#ertiesdan methodnya. eri ut ini "ambaran class yan" a an dibuat. Perancan"an class ini #erlu dila u ansu#aya se'a a*al ita sudah membuat semacam #erencanaan arena #erancan"an class ini meru#a ansuatu roadma# dari a#li asi yan" a an ita buat. 0i dalam #er'alanannya nanti class da#at sa'a berubah#ro#erties mau#un methodnya seirin" den"an ebutuhannya.

;lass: Database

Class ini nanti di"una an untu men"atur se"ala tentan" one si database e My!1L.

,ama Properties DeskripsidbHost =ama hostdb>ser >sername My!1LdbPass Pass*ord My!1Ldb=ame =ama 0atabase

,ama Metho! DeskripsiconnectMy!1L+, Mela u an one si e My!1L

;lass: login

Class ini di"una an untu hal9hal ter ait den"an #roses lo"in seoran" user

,ama Properties Deskripsi>sername =ama user lo"inPass*ord Pass*ord user lo"in

,ama Metho! Deskripsi#rosesLo"in+, Mela u an #roses lo"inbaca=ama>ser+, Membaca nama user yan" sedan" lo"inbaca!tatusLo"in+, Membaca status seoran" user a#a ah dia sudah lo"in atau

belumredirect+ url, Mela u an redirectin" e halaman url setelah lo"in

su sessa#a>ser+, Menam#il an strin" sa#aan ba"i user yan" telah lo"in

Page 38: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 38/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Halaman %4 dari %&

#rosesLo"out+, Mela u an #roses lo"out

8alidasiLo"in+, Menam#il an :nda belum lo"inD eti a seseoran"men"a ses halaman tertentu eti a belum lo"in

;lass: menu

Class ini di"una an untu hal yan" ter ait den"an menu si user setelah lo"in su ses

,ama Properties DeskripsilistMenu 0a<tar menu

,ama Metho! Deskripsitam#ilMenu+, Menam#il an da<tar menu

= ? Bancan"an class yan" terdiri dari #ro#erties dan method di atas bisa di emban" an sendiri sesuaiebutuhan :nda.

!elan'utnya untu studi asus ini stru tur tabel yan" di"una an adalah sbb?

CREATE TABLE `users` (`username` varchar(50),`password` varchar(100),`nama` varchar(100),PRIMARY KEY (`username`)

)

!ecara detail untu method dalam setia# class bisa dilihat di scri#t asus&79class.#h#D

Pen""unaan class dari scri#t asus&79class.#h#D nya ada dalam scri#t asus&7.#h#D

Latihan%. ambah an sebuah <ield baru bernama le8elD di dalam tabel usersD. Field ini menun'u an le8el

si user a#a ah administratorD atau o#eratorD(. uatlah method di dalam class lo"inD den"an nama "etLe8el+ username, yan" di"una an untumembaca le8el si user berdasar an username nya

2. 0en"an men""una an method "etLe8el+, ini modi<i asilah method tam#ilMenu+, dalam classmenuD su#aya menam#il an da<tar menu sesuai le8elnya. ;i a le8elnya administratorD ma a

a an tam#il semua menu namun 'i a o#eratorD hanya a an tam#il menu halaman % dan ( sa'a.

Page 39: Panduan Praktis OOP Di PHP

8/12/2019 Panduan Praktis OOP Di PHP

http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 39/39

Pan!uan Praktis ""P !i P#P Rosihan Ari Yuana http://blog.rosihanari.net

Tentang Penulis

Penulis meru#a an sta<< #en"a'ar +dosen, di #ro"ram studi Pendidi anMatemati a #ada Fa ultas -e"uruan dan Ilmu Pendidi an +F-IP, di>ni8ersitas !ebelas Maret !ura arta +>=!,. !ehari9hari #enulis men"a'armata uliah #emro"raman om#uter com#uter aided learnin" dan *ebbased learnin". !elain men"a'ar #enulis 'u"a diberi an amanah untumen"elola IC Center di F-IP >=! + htt#?//<icos.< i#.uns.ac.id ,

0i sam#in" men'adi sta<< #en"a'ar #enulis 'u"a meru#a an seoran"de8elo#er so<t*are hususnya yan" berbasis !M! Qate*ay. !alah satu#roye besar yan" telah dibuatnya adalah Qam#!M!.+htt#?//"am#sms.rosihanari.net ,

0i sela9sela esibu annya #enulis berusaha menyem#at an untu menshare berba"ai tutorial tentan"#ro"rammin" di blo"nya + htt#?//blo".rosihanari.net , dan menulis bebera#a bu u tentan" om#uterserta matemati a.

Penulis berhara# semo"a arya9 arya yan" dihasil an bisa memberi an man<aat #ositi< ba"i ummat danmemba*a eber ahan ba"i semuanya. :min....

Baarokallahu fiikum ...