Sunday, October 31, 2010

Part VI (Belajar Kelas n Objek Php yukkk)

Kelas Dan Objek Di PHP (bagian 2)

   Kini kita akan membahas beberapa hal yang lebih mendalam mengenai kelas dan objek tersebut. Yang akan kita bahas adalah constructor, parent, serta sesuatu yang ditandai dengan karakter titik dua yang ditulis dua kali (::).

Constructor
Constructor adalah sebuah fungsi yang otomatis dipanggil apabila kita membuat sebuah instance baru dari kelas dengan pernyataan new. Ada sedikit perbedaan deklarasi constructor pada PHP 3 dan PHP 4. Perhatikan baik-baik. Pada PHP 3, sebuah fungsi akan menjadi constructor apabila fungsi tersebut mempunyai nama yang sama dengan kelas, sedangkan pada PHP 4 sebuah fungsi akan menjadi constructor apabila fungsi tersebut mempunyai nama yang sama dengan kelas di mana fungsi tersebut dideklarasikan. Untuk lebih jelasnya PCplus akan memberikan kutipan dari PHP manual sebagai berikut:
“Constructors are functions in a class that are automatically called when you create a new instance of a class with new. In PHP 3, a function becomes a constructor when it has the same name as the class. In PHP 4, a function becomes a constructor, when it has the same name as the class it is defined in – the difference is subtle, but crucial.”
Agak sulit memang menerangkan perbedaan tersebut karena PCplus menggunakan PHP 4 dan tidak memiliki PHP 3 sebagai pembanding. Namun contoh-contoh berikut setidaknya bisa memberikan gambaran.
class tes {
function tes() {
echo "

Aku kelas tes

";
}
}

$newtes = new tes;
?>

Pada skrip tersebut hanya terdapat deklarasi kelas tes dan deklarasi objek $newtes. Secara logikan tidak akan ada output apapun yang diberikan pada browser, namun karena pada kelas tes dideklarasikan fungsi dengan nama sama yaitu tes(), maka fungsi tersebut akan menjadi constructor yang otomatis dipanggil apabila ada deklarasi instance baru dari kelas tersebut. Dan karena function tes() berisi echo “

Aku kelas tes

”, maka pada browser akan nampak sebuah output bertuliskan “Aku kelas tes” yang diberi style heading tingkat pertama.
Apa yang terjadi jika kelas tersebut diinherit dan kemudian dideklarasikan instance baru dari inherit tersebut? Perhatikan contoh berikut:

class tes {
function tes() {
echo "

Aku kelas tes

";
}
}

class tes_juga extends tes {
function tes2() {
echo "

Aku kelas tes_juga

";
}
}

$newtes2 = new tes_juga;
?>

Pada contoh kedua ini kelas tes_juga merupakan inherit dari kelas tes. Sesuai dengan aturan constructor di PHP 4, suatu kelas inherit yang tidak memiliki constructor akan mewarisi constructor induknya (bila induknya memiliki constructor). Oleh sebab itu pada saat dideklarasikan instance baru kelas tes_juga, maka constructor kelas tes akan tetap berfungsi. Dan karena kelas tes_juga tidak memiliki constructor, maka hanya hanya constructor kelas tes yang berfungsi.
Namun ternyata hal ini tidak berlaku di PHP 3. Ingat, pengertian constructor di PHP 3 adalah sebuah fungsi yang mempunyai nama yang sama dengan kelas. Dalam hal ini kelas tes_juga tidak memiliki fungsi bernama tes_juga(), sehingga tidak ada constructor.
Sekarang kita kembangkan lagi skrip tadi menjadi sebagai berikut:

class tes {
function tes() {
echo "

Aku kelas tes

";
}

function tes_juga() {
echo "

Aku kelas tes_juga

";
}
}

class tes_juga extends tes {
function tes2() {
echo "

Aku kelas tes_juga

";
}
}

$newtes2 = new tes_juga;
?>

Sekarang, kelas tes memiliki fungsi tes() dan tes_juga(). Jika kelas tes tersebut diinherit oleh kelas tes_juga, apakah fungsi tes_juga() akan menjadi constructor di kelas tes_juga? Ternyata jawabannya adalah YA. Kesimpulannya adalah: jika sebuah kelas menginherit kelas lain dan di dalam kelas lain tersebut terdapat fungsi dengan nama yang sama dengan kelas yang menginherit, maka fungsi tersebut akan menjadi constructor di kelas yang menginheritnya.

Karakter titik dua yang ditulis dua kali (::)
Karakter titik dua yang ditulis dua kali (disebut juga operator ::) berguna untuk memberikan referensi terhadap fungsi di dalam suatu kelas yang belum memiliki suatu instance. Operator :: ini hanya berlaku untuk PHP 4. Berikut adalah contohnya:

class induk {
function cetak() {
echo "

Aku adalah kelas induk

";
}
}

class anak extends induk {
function cetak() {
echo "

Aku adalah kelas anak

";
}
}

induk::cetak();
$turunan = new anak;
$turunan->cetak();
?>

Pada contoh tersebut, kelas induk belum memiliki suatu instance, namun fungsi cetak yang dimilikinya dapat direferensikan dengan menuliskan induk::cetak(). Jika sebuah kelas telah memiliki suatu instance, misalnya dalam hal ini $turunan adalah instance dari kelas anak, maka fungsi yang didalamnya dalam direferensikan dengan menuliskan karakter ->, sehingga penulisannya adalah $turunan->cetak(). 

Parent
Pernyataan parent digunakan untuk merujuk pada kelas lain yang menjadi induk suatu kelas. Hal ini identik dengan $this yang merujuk pada dirinya sendiri, sedangkan parent merujuk pada kelas induknya. Contohnya adalah sebagai berikut:

class induk {
function cetak() {
echo "

Aku adalah kelas induk

";
}
}

class anak extends induk {
function cetak() {
echo "

Aku adalah kelas anak

";
parent::cetak();
}
}

$turunan = new anak;
$turunan->cetak();
?>

Perhatikan bahwa fungsi cetak() pada kelas anak akan melakukan shadow terhadap fungsi cetak() di kelas induk (baca lagi PCplus minggu lalu tentang masalah shadow ini). Namun sekalipun di-shadow, fungsi cetak di kelas induk tetap dapat dipanggil. Pada contoh ini, fungsi cetak di kelas anak memanggil fungsi cetak di kelas induknya dengan pernyataan parent, dan karena kelas induk tidak memiliki instance di dalam kelas anak, maka pemanggilannya menggunakan operator ::. 
Selamat belajar.
Read more »

Friday, October 29, 2010

Part V (Belajar Kelas n Objek Php yukkk)

Kelas Dan Objek Di PHP (bagian 1)

            Anda tentu sudah sering mendengar istilah OOP atau Object Oriented Programming. Dalam Bahasa Indonesia diterjemahkan sebagai Pemrograman Berorientasi Objek. Boleh dikatakan hampir semua (kalau tidak boleh dikatakan seluruhnya) bahasa pemrograman modern memiliki sifat orientasi objek ini. Suatu bahasa pemrograman dikatakan murni bersifat object oriented apabila setidaknya memenuhi unsur-unsur inheritance, polymorphism, dan encapsulation. Demikian pula dengan PHP yang boleh dikatakan juga memenuhi ketiga unsur tersebut, sekalipun bisa jadi tidak semua programmer setuju. Kita tidak perlu memperdebatkan hal tersebut, yang pasti sekarang kita akan mempelajari kelas dan objek di PHP.
            Kelas dan objek memang merupakan sesuatu yang agak sulit didefinisikan, tetapi untuk membantu membayangkannya dapat dipakai ilustrasi berikut:
            Misalnya sebuah kelas dibayangkan sebagai sebuah mobil, sementara itu sedan, pick up, jeep, minibus dapat dibayangkan sebagai objek-objeknya. Jadi setiap dibicarakan sebuah sedan, sedan tersebut tidak dapat terlepas dari kelasnya yaitu sebuah mobil yang memiliki mesin, roda, kemudi, tempat duduk, dan lain-lain. Dari sudut pandang yang sebaliknya dapat dikatakan bahwa jika sebuah kelas mobil didefinisikan, maka dapat didefinisikan pula sebuah objek sedan atau minibus atau jeep yang memiliki seluruh sifat dari mobil.

Kelas
            Kelas adalah sebuah kumpulan variabel dan fungsi-fungsi yang bekerja dengan variabel tersebut. Untuk mendefinisikan kelas, sintaks yang digunakan adalah sebagai berikut:

class namakelas {
            var $namavariabel;
            ...Kumpulan fungsi...
}

            Sebagai batasan, namakelas tidak boleh menggunakan nama stdClass karena telah digunakan oleh Zend Engine, yaitu “mesin” yang merupakan motor penggerak PHP.
            Di dalam kelas, variabel didefinisikan dengan pernyataan var. Di dalam sebuah kelas secara default dikenal sebuah variabel bernama $this yang mereferensikan kelas itu sendiri. Kemudian untuk merujuk kepada variabel yang didefinisikan dengan pernyataan var digunakan tanda ->.
            Untuk lebih jelasnya berikut akan diberikan contoh sebuah kelas yang berisi fungsi-fungsi perhitungan matematika sederhana:

class hitung {
            var $hasil;
           
            function kali($x,$y) {
                        $this->hasil = $x * $y;
            }

            function bagi($x,$y) {
                        $this->hasil = $x / $y;
            }

            function tambah($x,$y) {
                        $this->hasil = $x + $y;
            }

            function kurang($x,$y) {
                        $this->hasil = $x - $y;
            }
}
?>

            Sebagai perbandingan, dalam bahasa pemrograman lain (seperti misalnya Visual Basic .NET) variabel di dalam kelas umumnya disebut dengan properti dan fungsi di dalam sebuah kelas umumnya disebut dengan metoda.
            Sebuah kelas dapat merupakan perluasan dari kelas yang ada sebelumnya. Misalnya pada contoh kelas di atas fungsi-fungsi yang ada hanyalah kali(), bagi(), tambah(), kurang() dan mungkin itu dirasakan kurang. Jika ingin didefinisikan sebuah kelas lain yang juga mengandung fungsi-fungsi kali(), bagi(), tambah(), dan kurang() serta ditambah sebuah fungsi lagi misalnya pangkat(), maka tidak perlu dibuat sebuah kelas yang baru sama sekali yang mengandung kelima fungsi tersebut. Kelas tersebut dapat merupakan perluasan dari kelas hitung dan hanya mendefinisikan sebuah fungsi baru yaitu pangkat(). Dalam PHP untuk melakukan perluasan terhadap sebuah kelas digunakan pernyataan extends yang sintaksnya adalah sebagai berikut:

class namakelas extends kelaslain {
            var $namavariabel;
            ...Kumpulan fungsi...
}

            Contoh:

class hitung_juga extends hitung {
            function pangkat($x,$y) {
                        $this->hasil = pow($x,$y)
            }
}
?>

            Dari contoh ini dapat disimpulkan bahwa kelas hitung_juga akan memiliki variabel dan fungsi-fungsi yang terdapat pada kelas hitung ditambah dengan sebuah fungsi baru yaitu pangkat().
            Perluasan kelas semacam ini dapat dikategorikan sebagai sifat inheritance dari pemrograman berorientasi objek. Kelas hitung_juga pada contoh di atas merupakan inherit dari kelas hitung.
            Dalam melakukan perluasan ini, kelas yang merupakan inherit dari kelas lain dapat mendefinisikan fungsi dengan nama yang sama. Contoh:

class A {
            function contoh() {
                        echo "Aku adalah fungsi contoh yang asli";
            }
}

class B extends A {
            function contoh() {
                        echo "Aku adalah fungsi contoh yang didefinisikan ulang";
            }
}

            Dalam hal ini fungsi contoh() di kelas A disebut dengan shadowed dan tidak dapat dipergunakan lagi. Unsur polymorphism terpenuhi di sini.

Objek
            Menurut ilustrasi mobil di atas dapat dikatakan bahwa objek “diperanakkan” dari kelas. Untuk mendefinisikan sebuah objek digunakan sintaks sebagai berikut:

$namaobjek = new namakelas;

            Setelah objek didefinisikan, maka seluruh variabel dan fungsi yang terdapat dalam sebuah kelas namakelas otomatis terdapat pula dalam objek namaobjek tersebut. Untuk merujuk pada fungsi atau variabel yang dimiliki oleh kelasnya, maka digunakan juga tanda ->. Berikut akan diberikan contoh bagaimana menggunakan objek dan kelas dengan menggunakan contoh kelas hitung dan hitung_juga yang telah diberikan di atas.


class hitung {
            var $hasil;
           
            function kali($x,$y) {
                        $this->hasil = $x * $y;
            }

            function bagi($x,$y) {
                        $this->hasil = $x / $y;
            }

            function tambah($x,$y) {
                        $this->hasil = $x + $y;
            }

            function kurang($x,$y) {
                        $this->hasil = $x - $y;
            }
}
$a = 7;
$b = 3;
echo "Nilai \$a = $a
";
echo "Nilai \$b = $b
";
$calc = new hitung;

echo "\$a kali \$b sama dengan ";
$calc->kali($a,$b);
print $calc->hasil;
echo "
";

echo "\$a bagi \$b sama dengan ";
$calc->bagi($a,$b);
print $calc->hasil;
echo "
";

echo "\$a tambah \$b sama dengan ";
$calc->tambah($a,$b);
print $calc->hasil;
echo "
";

echo "\$a kurang \$b sama dengan ";
$calc->kurang($a,$b);
print $calc->hasil;
echo "

";

class hitung_juga extends hitung {
            function pangkat($x,$y) {
                        $this->hasil = pow($x,$y);
            }
}

$calc_juga = new hitung_juga;

echo "\$a kali \$b sama dengan ";
$calc_juga->kali($a,$b);
print $calc_juga->hasil;
echo "
";

echo "\$a bagi \$b sama dengan ";
$calc_juga->bagi($a,$b);
print $calc_juga->hasil;
echo "
";

echo "\$a tambah \$b sama dengan ";
$calc_juga->tambah($a,$b);
print $calc_juga->hasil;
echo "
";

echo "\$a kurang \$b sama dengan ";
$calc_juga->kurang($a,$b);
print $calc_juga->hasil;
echo "
";

echo "\$a pangkat \$b sama dengan ";
$calc_juga->pangkat($a,$b);
print $calc_juga->hasil;
echo "
";
?>

gmn ? gampang kan ?? :D
Read more »

Monday, October 25, 2010

FlashBack Php yukk.. (part IV) Fungsi Matematika

Fungsi-fungsi Trigonometri
            Fungsi-fungsi trigonometri merupakan fungsi-fungsi yang berhubungan dengan ilmu trigonometri, yaitu ilmu sudut-sudut segitiga. Fungsi-fungsi tersebut adalah:

  • sin(sudut), mengambil nilai sinus sebuah sudut.
  • cos(sudut), mengambil nilai cosinus sebuah sudut.
  • tan(sudut), mengambil nilai tangen sebuah sudut.
  • asin(sudut), mengambil nilai arcus sinus sebuah sudut.
  • acos(sudut), mengambil nilai arcus cosinus sebuah sudut.
  • atan(sudut), mengambil nilai arcus tangen sebuah sudut.
  • deg2rad(x), mengubah derajat menjadi radian.
  • rad2deg(x), mengubah radian menjadi derajat.

            Nilai sudut yang akan diolah harus dinyatakan dalam radian.
            Berikut adalah penggunaan fungsi-fungsi tersebut dalam skrip PHP.

Pada sebuah segitiga, salah satu kaki sudutnya adalah 45 °
$a = deg2rad(45);
echo "Dalam radian, 45 ° adalah $a radian.
";
$x = sin($a);
$y = cos($a);
$z = tan($a);
echo "sin($a) = $x";
echo "cos($a) = $y";
echo "tan($a) = $z";
$p = asin($x);
$q = acos($y);
$r = atan($z);
echo "Jika nilai-nilai tsb dikembalikan ke radian: ";
echo "asin($x) = $p ";
echo "acos($y) = $q ";
echo "atan($z) = $r ";
?>t;

 Fungsi-fungsi Pangkat dan Logaritma
            Fungsi-fungsi Pangkat dan Logaritma digunakan untuk perhitungan-perhitungan yang berhubungan dengan pangkat dan logaritma. Fungsi-fungsi tersebut adalah:

  • pow($x,$y), digunakan untuk memangkatkan $x dengan $y.
  • exp($x), digunakan untuk memangkatkan e dengan $x.
  • log($x), digunakan untuk mengambil nilai logaritma naturalis $x.
  • log10($x), digunakan untuk mengambil nilai logaritma $x.
  • sqrt($x), digunakan untuk mencari akar $x.

            Harap diperhatikan bahwa logaritma naturalis justru ditulis dengan log(), sedangkan untuk logaritma biasa ditulis dengan log10.
            Contoh penggunaannya adalah sebagai berikut:


$a = pow(2,10);
$b = exp(2);
$c = log(10);
$d = log10(10);
$e = sqrt(100);
echo "2 pangkat 10 = $a ";
echo "e pangkat 2 = $b ";
echo "ln 10 = $c ";
echo "log 10 = $d ";
echo "akar 100 = $e";
?>


            Bagaimana seandainya jika kita ingin mengambil logaritma dengan basis bilangan selain e atau 10? Kita dapat memanfaatkan hukum yang terdapat pada logaritma sebagai berikut:

alog b = (plog b)/(plog a)                       (persamaan 1)

            Dengan nilai p adalah bebas.
            Karena nilai p bebas, maka sebaiknya diganti dengan nilai 10, karena jika 10 yang digunakan sebagai basis logaritma tidak perlu dituliskan dalam persamaan, sehingga persamaan 1 dapat dituliskan sebagai berikut:

alog b = (log b)/(log a)                         (persamaan 2)

            Atau dapat juga dengan logaritma naturalis:

alog b = (ln b)/(ln a)                             (persamaan 3)

            Contoh penggunaan hukum tersebut dalam skrip PHP adalah sebagai berikut:

$a = log(4) / log(2);
echo " 2 log 4 = ";
echo $a;
?>

Fungsi-fungsi Base n
            Fungsi-fungsi Base n digunakan untuk konversi suatu bilangan kepada bilangan berbasis n. Fungsi-fungsi tersebut adalah:

  • base_convert(x,y,z), yang mengubah bilangan x dari berbasis y menjadi berbasis z.
  • decbin(x), yang mengubah bilangan berbasis 10 menjadi berbasis 2.
  • dechex(x), yang mengubah bilangan berbasis 10 menjadi berbasis 16.
  • decoct(x), yang mengubah bilangan berbasis 10 menjadi berbasis 8.
  • bindec(), yang mengubah bilangan berbasis 2 menjadi berbasis 10.
  • hexdec(), yang mengubah bilangan berbasis 16 menjadi berbasis 10.
  • octdect(), yang mengubah bilangan berbasis 8 menjadi berbasis 10.

Contoh:

$a = 73;
$b = base_convert($a,10,3);
$c = decbin($a);
$d = dechex($a);
$e = decoct($a);
echo "Angka $a dalam bilangan basis 3 adalah = $b ";
echo "Angka $a dalam bilangan basis 2 adalah = $c ";
echo "Angka $a dalam bilangan basis 16 adalah = $d ";
echo "Angka $a dalam bilangan basis 8 adalah = $e ";
?>

            
Fungsi-fungsi Matematika Lain
            Beberapa fungsi matematika lain yang dikenal PHP adalah:

  • abs(x), mengambil nilai absolut x.
  • ceil(x), membulatkan sebuah pecahan x ke atas.
  • floor(x), membulatkan sebuah pecahan x ke bawah.
  • round(x,y), membulatkan sebuah pecahan x sampai y angka di belakang koma.
  • pi(), mengambil nilai pi, yaitu kira-kira 3.14159265358979323846 atau sama dengan konstanta M_PI.
  • number_format(x,y,k,r), menuliskan bilangan x dengan format y angka di belakang koma, dengan koma diganti dengan karakter k dan pemisah ribuan diganti dengan karakter r.

Contoh:


$a = 5;
$b = -5;
$c = abs($a);
$d = abs($b);
echo "abs(5) = abs(-5) = $c ";
$e = ceil(4.25);
echo "ceil(4.25) = $e ";
$f = floor(4.25);
echo "floor(4.25) = $f ";
$g = round(3.6);
echo "round(3.6) = $g ";
$h = round(3.5853, 2);
echo "round(3.5853, 2) = $h";
echo " (sampai 2 digit di belakang koma) ";
$pi = pi();
echo "Nilai pi adalah = $pi ";
$format1 = number_format(1234567.890);
$format2 = number_format(1234567.890,3);
$format3 = number_format(1234567.890,3,'/','*');
echo "Format bilangan pada PHP = ";
echo "Format 1 = $format1 ";
echo "Format 2 = $format2 ";
echo "Format 3 = $format3 ";
?>
Selamat Mencoba :)



Read more »

Sunday, October 17, 2010

FlashBack Php yukk.. (part III)


Fungsi-fungsi Array di PHP (bagian 1)

Array adalah sekumpulan variabel yang mempunyai nama sama tetapi dibedakan oleh indeks. Array berguna misalnya dalam suatu pemrograman yang memerlukan beberapa variabel yang akan menampung data dengan tipe data yang sama dan akan mendapat perlakuan yang serupa. Nah, daripada pusing-pusing memikirkan nama variabel yang berbeda-beda, lebih baik menggunakan satu nama variabel tetapi masing-masing dibedakan dengan indeks.
Indeks dapat berupa angka atau string. Jika indeks array berbentuk angka, maka array akan disebut indexed array (vector), sedangkan jika indeksnya berupa string, maka array akan disebut associative array.
Aturan penulisan sebuah array adalah sebagai berikut:

$nama_array[no_indeks] atau $nama_array[“str_indeks”]

Nama_array adalah nama variabel yang digunakan sebagai array.
No_indeks adalah nomor indeks untuk vector array. No indeks dimulai dari nol.
Str_indeks adalah string yang digunakan sebagai indeks untuk associative array.

Untuk mendeklarasikan sebuah array dapat digunakan deklarasi eksplisit, artinya langsung memberi nilai pada sebuah array, contoh:

$arr[1] = 100
$arr[“str”] = 250

Untuk mengeluarkan nilai variabel array dalam fungsi echo digunakan suatu cara tersendiri yaitu menggunakan kurung kurawal. Jadi jika dengan variabel biasa dituliskan sebagai berikut:

Echo “Nilai dari variabel adalah $var”;

Maka jika menggunakan array penulisannya adalah sebagai berikut:

Echo “Nilai dari variabel array adalah {$arr[1]}”;

Pemakaian tanda kurung kurawal ini baru dikenal pada PHP 4, sedangkan pada PHP 3, untuk melakukan hal seperti di atas dapat digunakan metoda penggabungan string sebagai berikut:

“Nilai variabel array adalah” . $arr[3];

Array yang memiliki sebuah indeks disebut dengan array berdimensi satu, sedangkan array dengan indeks lebih dari satu disebut array multi dimensi. Vector array dan associative array dapat digabungkan menjadi array multi dimensi, jadi indeks yang digunakan pada tiap dimensi tidak harus sama-sama angka atau sama-sama string.
Selain dengan deklarasi eksplisit, array juga dapat dideklarasikan dengan fungsi array(). Sintaks dari fungsi array() adalah sebagai berikut:

Array(indeks => nilai) atau Array(nilai)

Jika mengikuti bentuk kedua, maka indeks otomatis akan ditambahkan oleh PHP. Berikut ini akan diberikan contoh penggunaan fungsi array() dengan berbagai variasinya. Perhatikan baik-baik:

// tanpa menggunakan indeks

$arrayA = array(1,2,3,4,5,6);
foreach($arrayA as $indeks => $nilai) {
echo "\$arrayA[$indeks] => $nilai";
echo "
";
}
echo "

";

// menggunakan indeks tapi tidak urut

$arrayB = array(1=>1,3=>2,5=>3,4=>4,0=>5,2=>6);
foreach($arrayB as $indeks => $nilai) {
echo "\$arrayB[$indeks] => $nilai";
echo "
";
}
echo "

";

// tidak semua menggunakan indeks,
// php akan otomatis memberi indeks

$arrayC = array(1=>1,2,3,4,0=>5,6);
foreach($arrayC as $indeks => $nilai) {
echo "\$arrayC[$indeks] => $nilai";
echo "
";
}
echo "

";

// array dua dimensi
// dimensi pertama associative
// dimensi kedua vector

$duadim = array(
"buah" => array(1=>"apel","nangka","semangka"),
"angka" => array(1=>1,2,3),
"bola" => array(1=>"Juve","Barca","MU")
);
foreach($duadim as $k => $v) {
$x = 1;
foreach($v as $x => $y) {
echo "\$duadim[$k] => \$v[$x] => $y
";
$x++;
}
}
?>

Selamat Mencoba :) 
Read more »

FlashBack Php yukk.. (part II)


-- Fungsi-fungsi String di PHP --

Sumber: Aplikasi Web Database Dengan PHP dan MySQL, karya Yahya Kurniawan, S.T., penerbit Elex Media Komputindo).

Giliran berikut dari rangkaian fungsi yang kita bahas adalah fungsi-fungsi String, yang digunakan untuk mengolah tipe data string atau memberikan tampilan dengan format tertentu. Beberapa fungsi-fungsi string yang akan kita bahas adalah:

Fungsi Echo() Dan Print()
Fungsi ini merupakan fungsi yang sangat sering dijumpai dalam PHP, karena fungsi ini digunakan untuk menampilkan suatu string atau teks ke browser. Sintaksnya adalah sebagai berikut:

Echo(string)
Print(string)

Fungsi Htmlentities()
Fungsi ini digunakan untuk menghentikan proses penerjemaahan tag HTML oleh browser, sehingga tag HTML akan dibiarkan muncul seperti apa adanya, tanpa diterjemahkan oleh browser. Sintaksnya adalah sebagai berikut:

Htmlentities(string)

Contoh:

$str = “ Klik Di Sini ”;
$result = htmlentities($str);
echo “$str”;
echo “$result”;
?>
 
Fungsi Strstr(), Stristr(), dan Strchr()
Ketiga fungsi ini digunakan untuk mencari keberadaan suatu string di dalam string lain. Sintaksnya adalah sebagai berikut:

Strstr(tujuan,pencari)
Stristr(tujuan,pencari)
Strchr(tujuan,pencari)

Dari ketiga fungsi tersebut, hanya stristr() yang tidak bersifat case sensitive. Parameter tujuan adalah string yang dicari oleh pencari. Hasil yang didapat adalah mulai dari karakter pencari pertama yang ditemukan sampai akhir string tujuan. Jika string pencari tidak terdapat pada string tujuan, maka fungsi akan menghasilkan nilai False.
Contoh:

$email = “user@domain.com”;
$domain = strstr($email,’@’);
// echo $domain akan menghasilkan “@domain.com”

Fungsi Strlen()
Fungsi ini digunakan untuk mengukur panjang karakter sebuah string. Sintaksnya adalah sebagai berikut:

Strlen(string)

Sebuah spasi akan dihitung sebagai sebuah karakter.
Contoh:

$str = “The quick brown fox jumps over the lazy dog”;
$pj = strlen($str)
// variabel $pj bernilai 43

Fungsi Strrev()
Fungsi ini digunakan untuk membalik urutan karakter-karakter penyusun string dari depan ke belakang menjadi dari belakang ke depan. Dengan kata lain fungsi ini digunakan untuk membaca string secara terbalik.

Strrev(string)

Contoh:

$str = “Belajar PHP itu mudah”;
echo strrev($str);
// hasilnya adalah “hadum uti PHP rajaleB”

Fungsi Str_replace()
Fungsi ini digunakan untuk mengganti suatu string dengan string yang lain. Sintaksnya adalah sebagai berikut:

Str_replace(yang_diganti,pengganti,tujuan)

Parameter yang_diganti menunjukkan string yang akan diganti.
Parameter pengganti menunjukkan string yang akan menggantikannya.
Parameter tujuan adalah string secara keseluruhan yang didalamnya mengandung string yang_diganti. Bisa juga merujuk pada variabel tertentu yang berisi sebuah string.

Contoh:

$str = “Belajar PHP itu sulit”;
echo str_replace(“sulit”, “mudah”, $str)
// hasilnya adalah “Belajar PHP itu mudah”

Fungsi Substr()
Fungsi ini digunakan untuk mengambil atau memotong suatu bagian sebuah string dan menampilkannya sebagai sebuah string tersendiri. Sintaksnya adalah sebagai berikut:

Substr(string,mulai[,panjang])

String akan diambil atau dipotong mulai dari karakter yang terletak pada nomor yang ditunjukkan oleh parameter mulai dengan jumlah sebanyak angka yang ditunjukkan oleh parameter panjang.
Contoh:

$rest = substr ("abcdef", 1); // menghasilkan "bcdef"
$rest = substr ("abcdef", 1, 3); // menghasilkan "bcd"

Parameter mulai juga dapat diisi dengan negatif. Jika negatif, maka perhitungan dimulai dari karakter yang paling belakang. Contoh:

$rest = substr ("abcdef", -1); // menghasilkan "f"
$rest = substr ("abcdef", -2); // menghasilkan "ef"
$rest = substr ("abcdef", -3, 1); // menghasilkan "d"

Fungsi Strtolower() dan Strtoupper()
Kedua fungsi ini digunakan untuk mengkonversi string menjadi huruf kapital semua atau huruf kecil semua. Sintaksnya adalah sebagai berikut:

Strtolower(string)
Strtoupper(string)

Contoh:

$str = “StrINg inI terDiRi DARi hurUF beSAr dan KECIl”;
echo strtolower($str);
// hasilnya adalah: “string ini terdiri dari huruf besar dan kecil”
echo strtoupper($str);
// hasilnya adalah: “STRING INI TERDIRI DARI HURUF BESAR DAN KECIL”

Fungsi Strpos()
Fungsi ini digunakan untuk mengetahui posisi sebuah string di dalam string yang lain. Sintaksnya adalah sebagai berikut:

Strpos(tujuan,pencari)

Jika pada string tujuan terdapat lebih dari satu karakter yang dicari oleh karakter pencari, maka karakter pertama yang ditemukan yang akan dipakai. Contoh:

$str = “bambang”;
$cari = strpos($str,”b”);
// echo $cari akan menghasilkan 0

Perhatikan bahwa sangat mudah terjadi kebingungan antara karakter yang ditemukan pada posisi ke nol dengan karakter tidak ditemukan. Oleh karena itu diperlukan suatu cara untuk membedakannya, sebagai berikut:

// pada PHP 4.0b3 dan terbaru:
$pos = strpos ($str, "b");
if ($pos === false) { // perhatikan jumlah tanda = ada 3
echo “Tidak ditemukan”;
}

// pada PHP sebelum 4.0b3:
$pos = strpos ($str, "b");
if (is_string ($pos) && !$pos) {
echo “Tidak ditemukan”;

Mungkin saja Anda bingung, untuk apa sih semua fungsi-fungsi tersebut? Memang saat diterangkan fungsi-fungsi tersebut nampaknya hanya untuk main-main string saja, tetapi nanti jika pembahasan kita telah masuk lebih dalam dan mulai membangun sebuah aplikasi web, fungsi-fungsi tersebut baru akan nampak kegunaannya. Tetapi tidak mungkin membangun suatu aplikasi web tanpa belajar dasarnya dulu, bukan?
Selamat belajar kawan :)
 
Read more »

Thursday, October 14, 2010

Membangun Aplikasi CRUD Php Menggunakan Framework CakePhp dengan Konsep Model-View-Controller Bag. II

Nah, Setelah bag. pertama waktu lalu kita membahas tentang bagaimana instalasi FrameWork CakePhp, maka kita akan lanjutkan dengan menampilkan hello world pada cakePhp (kalau ada yg blm berhasil, hrs berhasil dlu ya .. hehee..)

MVC dalam cakephp itu terdiri dari 4 komponen, tp kita akan belajar dlu 3 komponen sebagai dasarnya, yaitu :
1. Model
2. View
3. Controller

ke tiga komponen ini sudah ada dalam folder root anda di http://localhost/MyAppCake

skarang buat controller baru dengan nama : "HelloWorldController" dan isi kode berikut :

class HelloWorldController extends AppController {

var $name = 'HelloWorld';

function index() {
$tampil = "Hello World";
$this->set("tampil", $tampil);
}

nah lalu simpan di App/Controller

setalah itu buat file di app/views dengan nama : "HelloWorld.ctp" lalu ketik kode berikut :



maka akan tampil : "Hello World"..

selamat mencoba :)
Read more »

FlashBack Php yukk.. (part I)

Sudah mulai terbiasa dengan PHP? OK, kali ini kita belajar lebih dalam lagi.
nah, bagaimana cara skrip PHP mengambil keputusan dengan struktur kontrol If. Struktur kontrol If ini memiliki beberapa variasi, yaitu:

If
If ... Else
If ... ElseIf ... Else

1. If (kondisi) {
pernyataan;
pernyataan;
}

Sebagai contoh penggunaan struktur kontrol If ini akan diberikan sebuah skrip yang sederhana sebagai berikut:

");
if ($tes == true) {
echo('Teks ini muncul karena nilai $tes = true');
}
?>
Simpan dengan nama if.php. Jika nilai $tes Anda ganti dengan false, maka yang muncul pada browser hanyalah tulisan “Nilai $tes =”. Mengapa demikian? Skrip PHP menggantikan nilai true dengan 1 dan false dengan 0 atau tidak ada nilai sama sekali.
Perhatikan baik-baik fungsi echo() yang muncul pada skrip tersebut. Ada tiga fungsi echo() yang muncul, dua yang pertama menggunakan tanda petik ganda dan yang terakhir menggunakan tanda petik tunggal. Anda bisa perhatikan perbedaan yang terjadi pada hasil yang muncul di browser.
Perhatikan juga tanda sama dengan pada pernyataan if ($tes == true) ada dua! Hal ini berbeda dengan pernyataan pada bagian awal skrip yaitu $tes = true. Pernyataan $tes = true adalah pemberian nilai variabel, sehingga tanda sama dengannya hanyalah satu. Tapi pada pernyataan if ($tes == true) sifatnya adalah membandingkan apakah nilai $tes adalah true, sehingga tanda sama dengannya ada dua. Jangan sampai Anda lupa pada aturan ini, karena PHP mendukung pemberian nilai variabel langsung pada sebuah pernyataan. Jadi jika Anda menuliskan if ($tes = true) – hanya dengan satu tanda sama dengan – itu sama artinya dengan memberi nilai $tes dengan true. Akibatnya struktur kontrol if tersebut akan selalu bernilai true sehingga jalannya skrip secara keseluruhan akan salah.
Bentuk kedua dari struktur kontrol if adalah if ... else. Sintaks dari struktur kontrol ini adalah sebagai berikut:

If (kondisi) {
pernyataan1;
} else {
pernyataan2;
}

Penggunaan struktur if ... else mirip dengan penggunaan struktur if, namun memiliki kelebihan yaitu alternatif tindakan apabila kondisi yang dihadapi tidak sesuai. Sebagai contoh akan diberikan penggunaan skrip PHP untuk menentukan apakah sebuah bilangan bersifat genap atau ganjil.




Pada skrip tersebut terdapat operator dengan karakter persen (%) yang berarti adalah modulus. Modulus adalah proses pembagian dua bilangan dengan mengambil sisa pembagian sebagai hasilnya. Jadi jika ada persamaan y = 10 % 3, berarti nilai y adalah 1 karena 10 dibagi 3 menghasilkan 3 dengan sisa pembagian 1. Dalam skrip di atas penentuan apakah sebuah bilangan merupakan bilangan ganjil atau genap adalah dengan membaginya dengan dua. Jika sisa pembagian adalah 1 maka bilangan tersebut adalah bilangan ganjil. Jika tidak – artinya sisa pembagian adalah 0 – maka bilangan tersebut adalah bilangan genap.
Bentuk ketiga dari struktur kontrol if adalah if ... elseIf ... else. Struktur ini juga hampir sama dengan kedua struktur di atas, hanya saja memberikan lebih banyak kemungkinan kondisi dan keputusan yang diambil. Sintaksnya adalah sebagai berikut:

If (kondisi1) {
Pernyataan1;
} Elseif (kondisi2) {
Pernyataan2;
. . .
} Elseif (kondisiN) {
PernyataanN;
} else {
pernyataan;
}

Contoh penggunaan If…ElseIf…Else adalah sebagai berikut:


");
echo("\$b = $b BR>");
if ($a < $b) { echo('$a lebih kecil daripada $b'); } elseif ($a == $b) { echo('$a sama dengan $b'); } else { echo('$a lebih besar daripada $b'); } ?>

Simpanlah skrip tersebut dengan nama elseif.php. Jika dijalankan pada browser hasilnya akan nampak seperti gambar 3.
Pada contoh di atas dibandingkan dua buah bilangan yaitu a dan b. Proses pembandingan tersebut akan memberikan 3 kemungkinan, yaitu a lebih kecil daripada b, a sama dengan b, dan a lebih besar daripada b.
Struktur kontrol if juga mengenal bentuk alternatif. Bentuk alternatif tersebut adalah dengan mengganti tanda kurung kurawal ({}) dengan tanda titik dua (:) dan di akhir blok ditutup dengan endif. Jadi contoh ketiga di atas dapat dituliskan dengan bentuk sebagai berikut:

"");
echo("\$b = $b BR>");
if ($a < $b) : echo('$a lebih kecil daripada $b'); elseif ($a == $b) : echo('$a sama dengan $b'); else: echo('$a lebih besar daripada $b'); endif; ?>
mudahkan ?? :)
Read more »

Sunday, October 3, 2010

Bake dan Scaffolding Pada CakePhp

Dalam website resmi CakePhp(http://www.cakephp.org) Cakephp disebut sebagai Rapid Application Framework Salah satu alasannya adalah karena Cake memiliki fitur Scaffold dan Bake.

Bake
adalah fitur CakePhp yang mampu menggenerate model, view, dan controller (MVC) secara otomatis sesuai dengan database yang ada pada konfigurasi. Bake cocok digunakan sebagai template, karena Bake akan otomatis menghasilkan kode kode umum yang sering digunakan (kode kode CRUD) yang bisa diubah ataupun ditambahkan sesuai kebutuhan.

Untuk menggunakan fitur ini cukup mudah masuklah pada direktori cake/scripts pada instalasi CakePhp lalu ketikkan ketikkan “php bake.php”. Misal akan dibuat aplikasi yang menggunakan tabel Log.

Contoh penggunaan Bake pada pembuatan model

[M]odel[C]ontroller[V]iewPlease select a class to Bake: (M/V/C)>m—————————————————————

Model Bake:
—————————————————————
Possible models based on your current database:

1. Log

Enter a number from the list above, or type in the name of another model.

> 1

Would you like to supply validation criteria for the fields in your model? (y/n)[y]

> n

Would you like to define model associations (hasMany, hasOne, belongsTo, etc.)? (y/n)[y]

> n

—————————————————————
The following model will be created: —————————————————————

Model Name: Log

DBConnection: default

Model Table: logs

Validation: Array

(

)
—————————————————————
Look okay? (y/n)

[y] > y

Creating file /var/www/html/cake//app/models/log.php

File /app/models/log.php exists, overwrite? (y/n/q):y

Do you want to bake unit test files anyway? (y/n)[y] > n

Hasil eksekusi bake di atas akan

menghasilkan file app/model/log.php


Contoh penggunaan bake pada pembuatan controller

Please select a class to Bake: (M/V/C)> c---------------------------------------------------------------

Controller Bake:
---------------------------------------------------------------

Controller name? Remember that Cake controller names are plural.

> logs

Would you like bake to build your controller interactively?

Warning: Choosing no will overwrite Logs controller if it exist. (y/n)[y]

> y

Would you like this controller to use other models besides ‘Log’? (y/n)[n]

> n

Would you like this controller to use other helpers besides HtmlHelper? (y/n)[n]

> n

Would you like this controller to use any components? (y/n)[n]

> n

Would you like to include some basic class methods (index(), add(), view(), edit())? (y/n)[n]

> y

—————————————————————


The following controller will be created:

—————————————————————

Controller Name: logs

—————————————————————

Look okay? (y/n)[y]

> y

Creating file /var/www/html/cake//app/controllers/logs_controller.php

File /app/controllers/logs_controller.php exists, overwrite? (y/n/q):y

Wrote /app/controllers/logs_controller.php


Cake test suite not installed.

Do you want to bake unit test files anyway? (y/n)[y]

> n

Hasil pengeksekusian di atas akan menghasilkan file

app/controllers/Logs_Controller.php


Penggunaan bake pada pembuatan view

Please select a class to Bake: (M/V/C)---------------------------------------------------------------

View Bake:

---------------------------------------------------------------
Controller Name? (plural)

> logsWould you like bake to build your views interactively

?Warning: Choosing no will overwrite views if it exist.

(y/n)[y]

> y

Would you like to create some scaffolded views (index, add, view, edit) for this controller?

NOTE: Before doing so, you’ll need to create your controller and model classes

(including associated models). (y/n)[n]

> y

Creating file /var/www/html/cake//app/views/logs/index.thtml

Wrote /app/views/logs/index.thtml

Creating file /var/www/html/cake//app/views/logs/view.thtml

Wrote /app/views/logs/view.thtml

Creating file /var/www/html/cake//app/views/logs/add.thtml

Wrote /app/views/logs/add.thtml

Creatingfile /var/www/html/cake//app/views/logs/edit.thtml

Wrote /app/views/logs/edit.thtml—————————————————————Note:- If you’re using a non-domain install, change URL pathsfrom /controller/action to /cake_install/controller/action—————————————————————View Scaffolding Complete.

Pengeksekusian di atas akan menghasilkan file file :


app/views/logs/add.thtml
app/views/logs/index.thtml
app/views/logs/edit.thtml
app/views/logs/view.thtml

Scaffolding memiliki fungsi yang hampir sama denganBake, hanya saja dengan scaffolding tidak ada kode yang mesti kita buat hanya membuat kelas model dan controller. Lalu mendeklarasikan variabel scaffold pada controller.
Contoh model yang menggunakan fitur scaffolding



Contoh controller yang menggunakan fitur scaffolding




Kedua kelas di atas akan otomatis menghasilkan aplikasi web sederhana dengan kemampuan CRUD (Create Update Delete).

Kesimpulan:

CakePhp adalah sebuah Rapid ApplicationFramework yang bisa mempercepat
pembuatan sebuah aplikasi web. Salah satu fitur yang dimiliki CakePhp
adalah Bake dan Scaffolding. Dengan Bake dapat dibuat template untuk
masing masing model, view, dan controller sehingga developer tidak
perlu membuat kode dari awal. Sedang Scaffolding sangat berguna dalam membuat aplikasi web sederhana dengan fitur CRUD.
Read more »