Categorized | Ajax

Contoh sederhana Ajax

Nah, untuk lebih memahami definisi ajax di atas, berikut contoh sederhana penggunaan aplikasi ajax.
Sebelumnya, anda harus menginstall web server, PHP, MySql. Aplikasi yang sudah lengkap dan bias digunakan adalah XAMPP, silahkan download di website resminya yang versi terbarunya xampp di www.xampp.com
Saya anggap pembaca sudah memahami cara instalasi xampp, jika belum silahkan googling aja.

Anggap, struktur webservernya seperti berikut :
Buat folder latihanajax di folder xampp di c:\xampp\htdocs\latihanajax
Nanti seluruh file latihan ada folder tersebut.
Buat file latsatu.html


<html>
<head>
<title>Latihan Satu AJAX</title>
<script type="text/javascript" src="latsatu.js"></script>
</head>
<body>
<table width="100%" align="center">
<tr>
<td align="center">
      Coba anda tuliskan sebuah text pada form di bawah <br />
      <input type="text" id="teksInput" onkeyup='proses()' />
      <div id="hasilProses"></div>
</td>
</tr>
</table>
</body>
</html>

Buat file latsatu.js


<kode>
var xmlHttp = bikinXmlHttp();
 
function bikinXmlHttp() {
    var xmlHttp;
    if (window.ActiveXObject) {
        try { //jika IE
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {
            xmlHttp = false;
        }
    } else {
        try {
            xmlHttp = new XMLHttpRequest();
        } catch (e) {
            xmlHttp = false;
        }
    }
    if (!xmlHttp) {
        alert("Gagal dalam membuat xmlHttpRequest Object");
    } else {
        return xmlHttp;
    }
}
 
function proses() {
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) {
        teks = encodeURIComponent(document.getElementById("teksInput").value);
        xmlHttp.open("GET", "latsatu.php?teks="+teks, true);
        xmlHttp.onreadystatechange = responServer;
        xmlHttp.send(null);
    } else {
        setTimeout('proses',1000); //jika sibuk ulangi dalam 1 detik
    }
}
 
function responServer() {
    if (xmlHttp.readyState == 4) {
        if (xmlHttp.status == 200) {
            xmlResponse = xmlHttp.responseXML;
            xmlDocumentElement = xmlResponse.documentElement;
            hasilTeks = xmlDocumentElement.firstChild.data;
            
            document.getElementById("hasilProses").innerHTML = hasilTeks;
            setTimeout('proses()',1000);
        } else {
alert("Ada problem, method statusText adalah "+xmlHttp.statusText);
        }
    }
}
</kode>

Buat file latsatu.php


< ?php
header('Content-type:Text/xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
 
echo '<response>';
$teks = htmlentities($_GET[teks]);
  
if (!empty($teks)) {
    echo 'Teks yang anda masukkan adalah : '.$teks;
} else {
    echo 'Silahkan Masukkan teks pada kotak input di atas';
}
echo '</response>';
?>

Kalau sudah, silahkan buka web browser anda, pakai IE dan firefox
Ketikkan di url nya, http://localhost/latsatu.html
Maka hasilnya adalah sebagai berikut :
Jika kita memasukkan teks di form, otomatis teks tersebut akan dituliskan di bawahnya. Kenapa bisa begitu? Di bawah ini saya jelaskan keterangan programnya.
Keterangan listing program :


<kode>
Dokumen latsatu.html adalah file HTML standard
<script type="text/javascript" src="latsatu.js"></script>
Untuk memanggil javascript di file eksternal.
<input type="text" id="teksInput" onkeyup='proses()' />
Pada input di atas, kita definisikan onkeyup='proses()' yang artinya, jika pointer/cursor kita arahkan di dalam form maka akan memanggil fungsi javascript process(). Sedangkan id="teksInput" digunakan untuk menandai bahwa form ini mempunya id yang bernama teksInput.
 
<div id="hasilProses"></div>
Kita definisikan id="hasilProses" untuk menampilkan hasil dari fungsi proses().
</kode>

Dokumen latsatu.js
Membuat object xmlHttp untuk melakukan transaksi data, karena antara IE dan browser yang lain beda, maka kita definisikan variabel xmlHttp adalah sebuah fungsi yang mengecek apakah browser yang dipakai IE atau bukan.
Untuk IE, xmlHttp di definisikan oleh ActiveXObject(”Microsoft.XMLHTTP”) sedangkan untuk browser yang lain, xmlHttp di isi fungsi XMLHttpRequest().


<kode>
var xmlHttp = bikinXmlHttp();
 
function bikinXmlHttp() {
    var xmlHttp;
    if (window.ActiveXObject) {
        try { //jika IE
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {
            xmlHttp = false;
        }
    } else {
        try {
            xmlHttp = new XMLHttpRequest();
        } catch (e) {
            xmlHttp = false;
        }
    }
    if (!xmlHttp) {
        alert("Gagal dalam membuat xmlHttpRequest Object");
    } else {
        return xmlHttp;
    }
}
</kode>

Setelah kita definisikan xmlHttp, kita bisa pakai object tersebut didalam fungsi yang lain. Fungsi proses() berisi xmlHttp.readyState, readyState adalah property dari xmlHttp, bisa bernilai 0-4, bernilai 4 berarti koneksi request sukses, yang berarti baris selanjutnya yang akan dieksekusi. Kita akan bahas detail tentang XMLHttpRequest di Bab selanjutnya.
Kemudian pada baris 3, pengambilan nilai dari dokumen dengan id “teksInput” yang tidak lain adalah input teks pada latsatu.html, kita namai nilai dari form itu sebagai variabel “teks”.

Properti onreadystatechange adalah untuk meminta respon server, yang akan di definisikan pada fungsi di bawahnya. Sedangkan setTimeout adalah fungsi javascript untuk mengulang dalam waktu 1 detik jika server sibuk.


<kode>
function proses() {
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) {
teks =  encodeURIComponent(document.getElementById("teksInput").value);
      xmlHttp.open("GET", "latsatu.php?teks="+teks, true);
      xmlHttp.onreadystatechange = responServer;
      xmlHttp.send(null);
    } else {
        setTimeout('proses()',1000); //jika sibuk ulangi dalam 1 detik
    }
}
</kode>

Fungsi respon server di minta oleh fungsi proses(), readyState = 4 jika proses yang dilakukan object telah selesai dan properti status = 200 adalah respon akan mengembalikan nilai OK karena dokumen ditemukan pada waktu request.
responseXML merupakan property untuk mengembalikan respon dalam format XML
documentElement digunakan untuk mengambil root element pada dokumen XML
firstChild.data untuk mengambil nilai pada element pada dokumen XML
pada baris 7 id “hasilProses” pada dokumen HTML akan diberi nilai hasilTeks yang merupakan nilai dari dokumen XML.


<kode>
function responServer() {
    if (xmlHttp.readyState == 4) {
        if (xmlHttp.status == 200) {
            xmlResponse = xmlHttp.responseXML;
            xmlDocumentElement = xmlResponse.documentElement;
            hasilTeks = xmlDocumentElement.firstChild.data;
            
            document.getElementById("hasilProses").innerHTML = hasilTeks;
            setTimeout('proses()',1000);
        } else {
alert("Ada problem, method statusText adalah "+xmlHttp.statusText);
        }
    }
}
</kode>

Kode di atas hanyalah salah satu contoh sederhana penggunaan konsep ajax, jika anda masih bingung adalah wajar karena penjelasan masing2 ada di bab selanjutnya.

19 Comments For This Post

  1. anny Says:

    duh saya masih bingung !! saya ada tugas bikin web pk ajax!!makenya juga xampp!! saya baru buat script phpnya.
    punya contoh aplikasi ajax yang udah diaplikasiin ke web e-commerce ga!! tolong dikirim ke email saya ya kalo ada…
    Trim’s

  2. admin Says:

    Hmm… mungkin anda dapat mempelajari ini dulu
    http://rapidshare.com/files/91712647/Beginning_AJAX_with_PHP5.rar

    untuk dapat membuat web ecommerce dengan ajax saya rasa Ebook di atas sudah OK.
    Nah kalo utk di integrasikan ke CMS yang sudah ada, drupal, joomla Ecommerce, sudah ada tuh…

  3. egint Says:

    passwordnya mas????

  4. admin Says:

    oh ya, password nya http://www.softarchive.net

  5. muttaqin Says:

    ada tutorial asp.net 2, untuk bikin web sekolah gitu

  6. mashengky Says:

    ajax bisa dipake di wordpress.com ga yee?

  7. julham Says:

    mas password nya kok gak bisa
    http://rapidshare.com/files/91712647/Beginning_AJAX_with_PHP5.rar
    saya dah download tp kok gak bisa dipakai ya passwordnya
    tolong dong passwordnya

  8. admin Says:

    password nya http://www.softarchive.net, ga pake http://
    Coba deh.. ato entar q uploadin aja ya…

  9. doez Says:

    thank’s

  10. syraru Says:

    hmmm bro

    passnya http://www.softarchive.net kan? ga bisa bro…

  11. rendra Says:

    ms.bisa buatin program yang seminim mungkin buat saya pelajari

  12. putra Says:

    mas bisa bikin progam yang lain yang bisa saya pelajari nnti kirim kee-mail q yaww

  13. rio Says:

    bozz punya contoh aplikasi yang udah diaplikasiin ke web e-commerce??? tolong dikirim ke email saya ya kalo ada…soalx aq lgi dah tgas bkin web e-commerce niehh =(
    thanks b4 bos

  14. SaM Says:

    Kalo ngasih tutorial jangan tanggung2, pake dipassword lagi. udah download capek2 pake password. Bikin kesel ajah!!!!!!!!!!!!!!!!!!!!!

  15. laurensius Says:

    saya ada tugas bikin web service menggunakan ajax, udah make xampp!! saya sudah buat sample phpnya..tapi masih wam bangt denga ajax

    ada contoh aplikasi ajax yang udah diaplikasiin ke web service ga?? tolong dikirim ke email saya ya kalo ada…

    mohon pencerrahannya
    terimakasih banyak

  16. bajef Says:

    passnya http://www.your-ebook-free.info

  17. eas Says:

    klo saya kasusnya gini om…

    saya punya database mysql di web hosting trus saya juga punya database di localhost komputer rumah….

    nah bisa ga klo isi database di web hosting dipindahin / dikirim ke database mysql di loclhost saya secara berkala pake ajax…??

    klo ga sisa kira2 pake metode apa ya..??

    mksih…

  18. ely Says:

    klo database di export dulu lalu di import

  19. bobbiqu Says:

    salm kenal pak ajax
    wah saya mohon bantuannya dunkkk pak ajax
    saya nih punya data yang isinya Nama, Alamat, No. HP, Daftar Harga, Merk Mobil
    nah yang mau saya tanyakan gmana cara nya buat isi dari Daftar Harga otomatis Keluar Merk Mobilnya Pak…….
    mhon dunkkkk bantuan nya bapak
    bls ke email saya ya Pak
    trim’s

Leave a Reply

  • Popular
  • Comments
  • Tags
  • Subscribe
Advertise Here

Category

Tag Cloud