Top Banner
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
39

Panduan Praktis OOP Di PHP

Jun 03, 2018

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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 ...