Welcome to Abdul Malik Ikhsan's Blog

Object Oriented JavaScript

Posted in Javascript by samsonasik on July 30, 2010

Sudah Javascript, Object Oriented lagi ? Heu..heu…, OOP nya aja masih Oge-oge Pusing, xi.xi.xi. :D. Bayangkan, dalam Javascript, Array adalah Object, Function adalah Object, Object adalah Object, so, Object dalam javascript itu apa ? Object dalam javascript adalah koleksi pasangan nama-nilai. Nama-nama berupa string, dan value bisa berupa Strings, numbers, booleans, dan objects (haiyah, tambah puyeng dah ūüėõ ). Ok, Lanjutttt…

Jika value adalah function, kita bisa bilang bahwa itu adalah method. Ketika sebuah metode objek dipanggil, variabel ini disetel ke objek. method dapat memanggil instance variable dengan keyword this.

contoh :

function setJs(str)
{
   this.MemberStr = str;
}

Maka, Jika kita instansiasi menjadi object :

var objSetStr = new setJs('this is a string');

maka, objSetStr.MemberStr berisi value ‘this is a string’
Penggunaan keyword this menunjukkan bahwa atribut itu bermodifier public , bagaimana dengan atribut bermodifier private ?
Cara pembuatan private modifier adalah dengan var , contoh  :

function HaiFromJs(str){
 //memberattr adalah atribut bermodifier private
//ia tidak bisa dipanggil dari luar function secara langsung.
 var memberattr = str ;
 this.hai = function(){
 alert ( "Hai " +memberattr+"\n apa kabar ? ");
 }
 }

 //buat object
 var haiObj = new HaiFromJs( "Samsonasik" );
 haiObj.hai();

sumber :
http://www.crockford.com/javascript/private.html
http://t1.gstatic.com/images?q=tbn:RhNF4WHmbEsPXM::&t=1&usg=__3rGjJy1YhTIJOBhFLOXM7dzC8iM=
http://en.wikipedia.org/wiki/Javascript
http://en.wikipedia.org/wiki/Class_%28computer_science%29
John Resig : Secrets Of the Javascript Ninja.

PHP : avoid hard-coding with Reflection Class

Posted in Teknologi, Tutorial PHP by samsonasik on July 30, 2010

Reflection, dalam ilmu komputer berarti proses di mana program komputer dapat mengamati dan memodifikasi  strukturnya sendiri. Proses ini memonitor eksekusi program pada saat runtime. Manfaat reflection adalah, kita bisa mengontrol eksekusi program berdasarkan request yang diminta dalam situasi yang dinamis. Anggaplah kita mempunyai dua kelas, kelas X, dan kelas Y yang mengoperasikan method yang sama dengan hal yang berbeda ketika situasinya berbeda. Tanpa reflection, kita diharuskan membuat hard-code, kapan method dari class X dipakai, dan kapan method dari class Y dipakai.

Contoh kode program dalam PHP :

<?php
 //get request class...
 $getClass = (empty($_GET['class'])) ? "X" : $_GET['class'];
 if ($getClass!="X" && $getClass!="Y")
 $getClass = "X";

 class X
 {
 function doaThing()
 {
 echo "do a thing of class X";
 }
 }

 class Y
 {
 function doaThing()
 {
 echo "do a thing of class Y";
 }
 }

 //instantiate Reflection class, pass the class Name
 $reflectObj = new ReflectionClass($getClass);
 //get methodName ( same as class, can dinamic too )
 $method = $reflectObj->getMethod("doaThing");

 //exec ...
 $method->invoke($reflectObj->newInstance());

Untuk PHP 5.3, bisa saja kita panggil class dan method tersebut tanpa reflection, hanya saja, penerapan reflection tentu saja tidak terbatas pada hal-hal di atas. Masih banyak lagi penggunaan-penggunaan lain yang tentu saja ini akan membantu dalam eksekusi program yang terotomatisasi. List method dari class ini dapat di lihat di sini.

Sumber :
http://en.wikipedia.org/wiki/Reflection_%28computer_science%29
http://php.net/manual/en/book.reflection.php

Tagged with: