Object Oriented Concept…
Object Oriented Programing sudah menjadi common sense dunia programing sekarang. Penggunaan Class dan Method menggantikan conventional function dalam prosedural programing. Walaupun menawarkan kemudahan dan reuseable dalam programing untuk beberapa golongan yang agak sulit menemukan maksudnya, OOP malah jadi hal yang membingungkan.
Contohlah gw, gw baru bisa menggunakan OOP sekitar 6 bulan lalu dan baru benar-benar lancar menggunakan dan membuat class sekitar 3-4 bulan lalu Padahal kalau dihitung, gw sudah aktif makan PHP dan mengerjakan project semenjak Tahun 2007. Apa gerangan yang menyebabkan gw demikian? Apakah IQ gw jongkok/tiarap jadi demikian ataukah pengaruh IP gw selama kuliah yang cuman dapat satu koma? Apakah gw telmi? Well semua itu ada kemungkinananya, terlebih gw bukanlah orang jenius yang bisa mengerti suatu hal dalam waktu rata-rata orang normal bisa mengerti/paham suatu masalah.
Well lepas dari semua itu mungkin yang paling berpengaruh adalah system penyampaian apa itu sih OOP sebenarnya. Cobalah tanya beberapa teman atau guru atau baca buku/artikel di internet. Gw berani jamin 80% rata-rata mengatakan :
OOP itu sama halnya dengan mengelompokan sebuah Object dalam kelas-kelas. Object itu apa? Object diumpamakan bisa apa saja di sekitar kita. Misalnya saja orang itu Object. Sedangkan kelas contohnya saja Manusia. manusia itu punya kepala, kaki 2 dan tangan 2 dengan 2 mata, 2 telinga dan 1 hidung dan 1 mulut. Semua itu disatukan dan disebut manusia.
Class itu bisa memiliki banyak Object. Tentu saja Orang itu sebagai anggota dari kelas Manusia.[the end]
Yap gw berani jamin deh karena mau buku internasional ataupun buku lokal(apalagi) selalu menggunakan perumpamaan seperti halnya diatas. Cuma mungkin berbeda-beda apakah itu Kendaraan, mobil, motor, etc. Tetapi gw sama sekali ga bisa mengerti dimana hubungannya dengan programing… ![]()
Sampai sekitar 9 bulan lalu gw menemukan eBook(lupa gw judulnya) yang berisi tentang HOW-TO mendesain sebuah aplikasi dengan model-model class. e-Book inilah yang akhirnya membuat gw ngeh alias mengerti tentang konsep OOP itu sendiri.
eBook tsb tidak mengajarkan OOP dengan cara tradisional seperti yang gw bilang di atas, melainkan dalam konteks yang lebih ke praktisi. Dituangkan dengan koding PHP 4 dan 5(dibedakan pula dimana perbedaannya) dan dibandingkan juga dengan apabila kita masih menggunakan function.
Pendapat gw yang dulunya mengatakan “Ngapain sih susah-susah dibuat class, Function aja sudah cukup, dan kalo dibilang class re-useable, emang function enggak?” Akhirnya berubah, dan kini gw malah Gethol banged membuat class yang mensupport development aplikasi gw, dari yang mudah seperti Date-Time formater sampai tinggal rumit seperti Datagrid Class yang sampai saat ini masih terus dikembangkan.
Dalam buku tsb mencoba menerangkan seperti ini:
Apabila Kamu membutuhkan proses yang bisa kamu lakukan berulang-ulang kamu mungkin akan membuat function, tetapi bagaimana apabila elementnya ada lebih dari 20? Apakah kamu hapal semua urutan elementnya? Contohnya dalam membuat sebuah fungsi untuk membuat dropdown supaya ga repot kalau mau buat dropdown lagi, beginilah mungkin funsginya kalau pake Fungction tradisional:
{
//all function proccess here
}
Siapa yang mau menghafalkan urutan sepanjang itu? Terlebih kita mungkin tidak teliti saat menlakukan mengupdatean. Dengan OOP mungkin bisa bernafas lega karena bisa menggunakan code demikian
/**
* @name Class for DropDown * @version 1.5
* @author Rizky Gunawan
* @copyright 2009 Rizky Gunawan
* @package Rizky Gunawan Frameworks
*/
class dropdown
{
private $member; //Array, member of DropDown List
private $id;
private $name;
private $selectedValue;
private $readonly;
private $disable;
private $postBack;
private $className;
private $onChange;
/**
* Constructor
*
* Constructor for Class Drop Down.
* @param string $name Name of Dropdown
* @param array $member Member of dropdown
*/
function __construct($name,$member)
{
$this -> member = $member;
$this -> name = $name;
}
/**
* Set ID for your Drop Down
*
* @version 1.0
*
* @param string $id id of Dropdown.
*
*/
function setId($id) { $this->id = $id; }
/**
* Get your Drop Down ID
*
* @version 1.0
*
* @return string
*
*/
function getId() { return $this->id; }
/**
* Set Name for your Drop Down
*
* @version 1.0
*
* @param string $name name of Dropdown.
*
*/
function setName($name) { $this->name = $name; }
/**
* Get Name from Your Drop Down
*
* @version 1.0
*
* @return string
*
*/
function getName() { return $this->name; }
/**
* For Setting selected Value of Drop Down
*
* @param string $selectedValue Selected Value String
*
* @version 1.0
*/
function setSelectedValue($selectedValue) { $this->selectedValue = $selectedValue; }
/**
* Get Selected Value from Your Drop Down
*
* @version 1.0
*
* @return string
*
*/
function getSelectedValue() { return $this->selectedValue; }
/**
* For Setting Drop Down read only or not
*
* @param Bool $readonly If true then Drop Down will Read Only, Default is false
*
* @version 1.0
*/
function setReadOnly($readonly) { $this->readonly = $readonly; }
/**
* Get Setting Drop Down read only or not
*
* @version 1.0
*
* @return Bool
*
*/
function getReadOnly() { return $this->readonly; }
/**
* For Setting Drop Down Disable or not
*
* @param Bool $disable If true then Drop Down will disabled, Default is false
*
* @version 1.0
*/
function setDisable($disable) { $this->disable = $disable; }
/**
* Get Setting Drop Down Disable or not
*
* @version 1.0
*
* @return Bool
*
*/
function getDisable() { return $this->disable; }
/**
* For Setting Drop Down auto postBack or not
*
* @param Bool $postBack If true then Drop Down will auto submit if changed, Default is false
*
* @version 1.0
*/
function setPostBack($postBack) { $this->postBack = $postBack; }
/**
* Get Setting Drop Down auto postBack or not
*
* @version 1.0
*
* @return Bool
*
*/
function getPostBack() { return $this->postBack; }
/**
* For Setting Drop Down CSS Class
*
* @param String $className CSS classes
*
* @version 1.0
*/
function setClassName($className) { $this->className = $className; }
/**
* Get Setting Drop Down CSS Class
*
* @version 1.0
*
* @return String
*
*/
function getClassName() { return $this->className; }
/**
* For Setting Drop Down Onchange Java Script function
*
* @param String $OnChange Javascript function name
*
* @version 1.0
*/
function setOnChange($OnChange) { $this->onChange = $OnChange; }
/**
* Get Setting Drop Down Onchange Java Script function
*
* @version 1.0
*
* @return String
*
*/
function getOnChange() { return $this->onChange; }
/**
* Print Dropdown on your page
*/
function dropDown()
{
$string = "<select name=\"$this->name\" class=\"$this->className\" id=\"$this->id\"";
if($this->disable == true)
{
$string .= " disabled=\"disabled\" ";
}
if($this->readonly == true)
{
$string .= " readonly=\"readonly\" ";
}
if($this->onChange!="")
{
$string .= " onchange=\"$this->onChange\" ";
}
if($this->postBack == true)
{
$string .= " onChange=\"this.form.submit()\" ";
}
$string .= ">\n";
if($this->All[1]!="")
{
$string .= "<option value=\"".$this->All[0]."\">".$this->All[1]."</option>";
}
foreach($this->member as $k => $v)
{
$string .= " <option value=\"$k\"";
if($this->selectedValue==$k)
{
$string .= " selected=\"selected\"";
}
$string .= ">$v</option>"."\n";
}
$string .= "</select>";
echo $string;
}
}
?>
Dengan cara pakai seperti ini:
$member = array('1'=>'PHP','2'=>'Java','3'=>'VB.net','4'=>'C#');
$dropdown = new dropdown('drpExample', $member);
$dropdown->setSelectedValue('3');
$dropdown->dropDown();
?>
Dengan contoh yang kurang lebih digambarkan seperti itu pada e-Book tsb, akhirnya gw membuka diri gw dan belajar tentang OOP. Selain masalah pengertian tsb, kebanyakan buku hanya mengupas sedikit saja tentang OOP hanya sampai contoh sederhana dan selesai tidak ada tindak lanjut sampai pada akhir bahasan. Bahkan dalam contoh project tutorial yang biasanya ditemukan di akhir buku pada banyak buku tidak menggunakan function sama sekali sehingga kode sangat berantakan bercampur dengan tag-tag HTML dan syntax PHP yang amburadul. Sangat memprihatinkan menurut gw. Karena kini dunia programing menerapkan system MVP atau Model-View-Controller yang menggabungkan Structural Programing dan OOP dan memisahkan antara desain View dengan kontroller Data. Sangat bertentangan dengan ajaran di buku-buku programing. Tetapi memang buku programing yang ditemui hanyalah sebatas Pengenalan semata, tidak menindak lanjuti sampai kelas tersebut.
Sekian bahasan gw kali ini, semoga bisa membantu untuk yang masih belajar OOP, PHP pada khususnya. gw bukanlah orang jenius dan gw lebih suka melihat langsung dalam dunia praktek. Walau gw sering menggunakan klass yang gw comot dari Internet, gw lebih suka membaca manual dan langsung memakainya. Pertma amungkin gw sedikit waktunya dan mepet dalam mengerjakan sebuah project, yang lainnya reference material yang monoton seperti contoh di atas membuat gw loss mood sebelum mulai bisa menggunakannya.
Semogalah penulis buku-buku lebih menggunakan pendekatan praktikal di lapangan ketimbang teori-teori melulu. Ga lain karena Buku yang gw temui sekarang ini 50% dari tebalnya hanya menjelaskan dasarnya saja.
Popularity: 1% [?]
This Blog
My name is Rizky Gunawan, graduated(Waw, thanks God I can graduated :P ) from Computer Science Major. My Hobby is Coding, and my speciality is web development using PHP. Currently I'm working on some press company in Indonesia as Internal Software Developer.
Tags
ajax AMD AMD HSF Anime Anime Music Ar tonelico ATI Clannad core i5 Crysis GeForce Gigabyte hymmnos Intel Intel HSF javascript K-ON Kosaka Kirino Linux Microsoft Motherboard MSI Music Video mySQl Nvidia ONKYO Overclocking P55 PC Games Phenom II X4 php Project Skripsi Soundcard Thermalright thermalright Ultra 120 Extreme Touhou Ubuntu VGA Card Warhead Web Design web project Windows Windows 7 Wordpress ThemeReent Comment
Archives



