Welcome to Abdul Malik Ikhsan's Blog

–Closure in PHP 5.3– Anonymous function for special purpose

Posted in Tutorial PHP by samsonasik on April 17, 2010

Closure dalam ilmu komputer dapat diartikan anonymous function, adalah function yang tidak mempunyai nama yang spesifik. Kenapa closure dipakai ? alasannya ada 2, yaitu :

1. Dinamis.
Dalam arti flexible, ia bisa dipakai dalam situasi tertentu saja.
2. Dapat dibuat untuk term pendek
Fungsi ini bisa digunakan sekali pakai.

Yang menjadi pertanyaan adalah, kenapa harus pakai closure ? Toh untuk hal-hal sekali pakai, kita bisa langsung aja hajar coding di tempat :D. Alasannya, karena closure dapat mempunyai variable yang bebas relatif terhadap lingkungan yang mengikat variable tersebut.
Untuk lebih memperjelas, saya akan mencoba menampilkan dalam kode program :).

<?php
//Flexible & has short term
$greet = function($name)
{
 echo "Hello $name<br>";
};
$greet('World'); //print Hello World
$greet('PHP');   //print Hello PHP

$greet = function($name)
{
 echo "Hi... $name<br>";
};
$greet('World'); //print Hi...World
$greet('PHP');   //print Hi...PHP

//free variables together with
//an environment that binds those variables
function testfunc($greeting){
 $closure = function($text) use ($greeting){
 return str_replace("world", "samsonasik" , $text);
 };
 return $closure($greeting);
}
echo testfunc("Hello world");  //print Hello samsonasik

Referensi :
1. PHP Manual ( Mehdi Achour dkk )
2. http://php.net/manual/en/functions.anonymous.php
3. http://www.jibbering.com/faq/faq_notes/closures.html
4. http://wiki.php.net/rfc/closures
5. Beginning PHP 5.3 (Mat Doyle)
6. http://en.wikipedia.org/wiki/Closure_%28computer_science%29

Advertisements

jQuery – Using JSON for data transfers

Posted in Javascript, tips and tricks, Tutorial PHP by samsonasik on April 14, 2010

JSON (dilafalkan “Jason”),  adalah singkatan dari JavaScript Object Notation (bahasa Indonesia: notasi objek JavaScript), adalah suatu format ringkas pertukaran data komputer. Formatnya berbasis teks dan terbaca-manusia serta digunakan untuk merepresentasikan struktur data sederhana dan larik asosiatif (disebut objek).

Penggunaan JSON pada pertukaran transfer data, terutama ketika kita menggunakan AJAX, sangatlah bermanfaat, tapi tentu saja alangkah lebih baiknya, jika selain memanfaatkan JSON secara murni, kita juga tahu tools-tools yang bisa digunakan agar pemanfaatan JSON bisa lebih cepat. Salah satu Tools yang bisa digunakan adalah Javascript Library yang tentu sudah tidak asing lagi bagi kita semua, yaitu jQuery.

Ok, saya akan memberikan satu contoh sederhana pemanfaatan JSON menggunakan jQuery javascript library dan PHP.
Pertama, kita siapkan file2 yang dibutuhkan, seperti gambar berikut:

Keterangan :
1. frmjson.html     : file view kita.
2. getjson.php       : serverside script untuk menangkap data yang ditransfer.
3. jquery-1.4.2.js : Javascript library-nya.
————
Now, let’s coding :
1. frmjson.html

<!-- frmjson.html -->
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript">
 $(document).ready(function(){
 //closure button berid = "setter" diklik...
 $("#setter").click(function(){
 $.post("getjson.php",{
 nama : $("#nama").val(),
 alamat : $("#alamat").val()
 }, function(data){
 //jika response telah berhasil... (set label...)
 $("#lblgetattr").html(data.nama+" beralamat di "+data.alamat);
 },"json");
 });
 });
</script>
Nama : <input type="text" id="nama"> <br>
Alamat : <input type="text" id="alamat"> <br>
<input type="button" value="SetAtribute" id="setter">
<br>
Atribut yang sudah terset adalah : <label id="lblgetattr"></label>

2. getjson.php :

<?php
 $data['nama'] =  strtoupper($_POST['nama']);
 $data['alamat'] = $_POST['alamat'];

 echo json_encode($data);

3. jQuery-1.4.2.js (Bisa didownload di situs http://jquery.com )

Sebelum button dengan id =”setter” diklik, maka akan tampil halaman seperti ini :

Dari gambar di atas, kita belum melihat respon apa2 karena button dengan id =”setter” belum kita klik, jika kita isi nama dan alamat, kemudian kita klik button dengan id=”setter” tersebut, maka akan tampil seperti berikut :

Gambar di atas menunjukkkan dari sisi background, javascript mengirimkan request ke getjson.php , kemudian response tersebut dikirim ke browser, dan ditampilkan di view browser.

Asik kan yach ? welcome to RIA world 🙂
———————–

Referensi :
http://id.wikipedia.org/wiki/JSON
http://json.org/
http://jquery.com

Tagged with: ,