panduan praktis oop di php
Post on 03-Jun-2018
235 Views
Preview:
TRANSCRIPT
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
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
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
8/12/2019 Panduan Praktis OOP Di PHP
http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 4/39
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.
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
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;
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();
?>
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
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.
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&.&&&.&&&.
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;}
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){
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+,
8/12/2019 Panduan Praktis OOP Di PHP
http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 15/39
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){
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
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
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
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
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#
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){
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.
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;
8/12/2019 Panduan Praktis OOP Di PHP
http://slidepdf.com/reader/full/panduan-praktis-oop-di-php 25/39
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?
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
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>';
?>
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
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.
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';
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>";}
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";
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+,.
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
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.
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
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.
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 ...
top related