Sabtu, 07 Maret 2009

OOP dalam PHP : Class

nah OOP tentu tidak lepas dengan yang namanya Class. Ternyata di PHP pun ada loh Class itu. dan penggunaannya mirip sekali dengan class yang biasa kita pakai di Java ataupun C++

\<\? class member{

}
?>

lalu untuk memasukkan atribut dan fungsinya juga hampir mirip

class member{
var $nama;

function setNama($newNama){
$this->nama = $newNama;
}

function getNama(){
return $this->nama;
}
}
?>

cukup mudah bukan?? lalu coba simpan dengan nama file member.php
setelah itu kita coba langsung kita coba implementasikan di index.php

include ("member.php");

$guest = new member();

$quest->setNama("Aqsath");

echo "Nama member adalah : " . $guest->getNama();
?>

nah, mantab kan?? kita sudah bisa membuat class dan membuat class itu sekaligus menggunakan fungsi - fungsi di dalamnya..

apakah sampai disitu saja?? ternyata tidak.. hehe.. seperti biasa dalam class juga dikenal constructor. Di PHP pun constructor itu disediakan dengan fungsi __construct()

kita ambil contoh member.php yang tadi kita modif sedikit :

class member{
var $nama;

function __construct($namaMember){
$this->nama = $namaMember;
}

function setNama($newNama){
$this->nama = $newNama;
}

function getNama(){
return $this->nama;
}
}
?>

lalu di index.php kita modif juga menjadi :

include ("member.php");
$guest = new member("Aqsath");
echo "Nama member adalah : " . $guest->getNama();
?>

akan menghasilkan hasil yang sama dengan index.php sebelum dimodif..
class ini pun bisa diberikan access modifier seperti yang sering kita gunakan di OOP.
kita modif lagi member.php menjadi :

class member{

protected var $nama;
public function __construct($namaMember){
$this->nama = $namaMember;
}

public function setNama($newNama){
$this->nama = $newNama;
}

public function getNama(){
return $this->nama;
}
}
?>

nah, bagaimana?? sudah lebih OOP banget kan?? hehehe.. oh iya, materi terakhir yaitu
turunan.. udah akrab banget lah yah dengan yang namanya inheritance ini.

include ("member.php");

class administrator extends member{

private var $thread_id;
public __construct($adminName, $idThread){
$this->nama = $admin;
$this->thread_id = $idThread
}
}
?>

disini kita misalkan administratro adalah kelas turunan dari member yang mempunyai hak atas thread tertentu di sebuah forum. Kita bisa menurunkannya dari kelas member dan menambahkan satu atribut lagi dan mengoverride konstruktor member.

Sekian dulu deh.. cape ngetik banyak - banyak.. hehe

Selamat mencoba.. ^_^

OOP dalam PHP : MVC

Huaaah.. kebetulan lagi ada tugas progin pake PHP.. nah kebetulan juga ngerti dikit - dikit masalah OOP dalam PHP.. sekedar sharing aja sih..

Dalam OOP kan juga dikenal tuh prinsip MVC (Model - Viewer - Controller) nah mau ngasih sedikit gambaran aja sih gimana cara make MVC dalam OOP.. hehehe

Sedikit ringkasan tentang MVC, Model akan berfungsi untuk memberikan data - data yang diperlukan, biasanya sih berhubungan dengan database. Viewer berfungsi sebagai pengatur tampilannya, dan Controller adalah penghubung antara model dan viewer.

pertama - tama kita coba buat viewer-nya : 

class view_index{
function index($data){
echo $data['title'];
echo "
";
echo $data['tulisan'];
}
}
?>

nah di sana terlihat kita membuat class view_index yang didalamnya ada fungsi indexdan memiliki parameter $data dimana $data itu sendiri adalah kumpulan dari variabel - variabel lainnya. Setelah itu kita simpan dengan nama viewer_index.php

lalu lanjut ke modelnya : 

class model_index{
function getJudul(){
return "DFD";
}
function getTulisan(){
return "DFD Forum DPP";
}
}
?>

karena kita tahu bahwa di viewer membutuhkan data title dan tulisan maka model akan mengakomodasi kebutuhan si viewer tersebut. dengan dua fungsi yaitu getJudul dan getTulisan. Biasanya sih nggak secupu itu langsung di-return. biasanya pake akses - akses ke database. tapi males nerangin disini cara ngakses ke databasenya. Hehehe. Setelah itu kita simpan dengan nama model_index.php

nah ini dia bagian yang paling menariknya yaitu membuat controllernya : 

include ("viewer_index.php");
include ("model_index.php");
class controller_index{
function index(){
$data['title'] = model_index::getJudul();
$data['tulisan'] = model_index::getTulisan();
view_index::index($data);
}
}
?>

di awal - awal kita include dulu viewer dan model yang sudah kita buat lalu dengan fungsi itu kita siapkan data - data yang akan dimasukkan ke viewer. Data - data itu kita dapat dari model caranya dengan memanggil fungsi yang ada di model. Setelah data sudah siap barulah kita masukkan ke dalam viewer.

nah model, view, dan controller sudah jadi. Jadi, apa yang akan kita lakukan selanjutnya?? Dalam PHP dia akan langsung memanggil index.php karena itu bagaimana cara mengakses controller kita?

include ("controller_index.php");
controller_index::index();
?>

nah hanya tinggal begitu saja. Seperti layaknya main program dalam OOP yang memang tidak terlalu banyak baris di dalamnya. Simpanlah dengan nama index.php

Silakan dipelajari. Semoga membantu.. ^_^
Jika ada saran - saran sangat diterima..