Mempercantik Web Dengan AJAX dan Jquery Framework By : Departemen Ristek Himpunan Mahasiswa Teknik Informatika 2010 - 2011 BAB 1 Mengenal AJAX dan JavaScript Apa itu Ajax Ajax (Asynchronous Javascript and XML) sesungguhnya bukanlah suatu bahasa pemrograman, melainkan hanya suatu teknik yang memungkinkan untuk membuat aplikasi web yang interaktif. Dengan menggunakan Ajax, aplikasi web dapat berinteraksi dengan server di latar belakang sehingga tidak mempengaruhi halaman web secara keseluruhan. Apa yang bisa Dilakukan Ajax Ajax memberikan pengaruh yang luar biasa dalam membangun sebuah aplikasi web. Sebelum kehadiran ajax, kebanyakan aplikasi mengandalkan formulir untuk berinteraksi dengan server. Pemakai harus mengklik suatu tombol Submit untuk mengirim atau mendapatkan informasi dari server. Dengan menggunakan Ajax, berbagai kejadian pada objek formulir dapat digunakan dengan untuk berinteraksi dengan server, misalnya menvalidasi masukan pemakai terhadap isi database atau menampilkan data sesuai dengan isi suatu kotak kombo. By Ristek Department 2010 - 2011 Kelemahan Ajax Tentunya tidak ada yang sempurna di dunia ini. Walaupun ajax menawarkan keunggulan bila dibandingkan dengan aplikasi web tradisional. Namun, tetap saja ada kelemahannya. Berikut ini adalah kelemahan atau masalah yang potensial yang sering terjadi apabila kita menggunakan ajax. 1. Mesin pencari (search engine) bisa jadi tidak dapat mengindeks seluruh bagian dalam halaman web. 2. Tombol Back pada browser menjadi tidak berfungsi. 3. Tidak semua browser mendukung Ajax. 4. Ajax menjadi tidak berfungsi kalau klien mematikan JavaScript Apa itu JavaScript JavaScript adalah bahasa skrip (bahasa yang kodenya ditulis menggunakan teks biasa) yang ditempelkan pada dokumen HTML dan diproses pada sisi klien. Dengan menggunakan JavaScript dimungkinkan untuk memvalidasi masukan – masukan pada formulir sebelum formulir dikirim ke server. Selain itu, juga dimungkinkan untuk mengimplementasikan tugas yang bersifat interaktif tanpa berhubungan dengan server. Beberapa contoh yang bisa dilakukan melalui JavaScript : 1. Menampilkan jam lokal pada halaman web 2. Mengatur warna latar belakang halaman web 3. Mengganti gambar ketika pemakai menempatkan penunjuk mouse ke suatu gambar 4. Memvalidasi keabsahan data yang dimasukkan oleh pemakai 5. Menandai semua data yang akan dihapus dengan cara memberi tanda centang pada kotak cek. Hal seperti ini biasa disediakan pada pembaca email berbasis web. By Ristek Department 2010 - 2011 BAB 2 Pemrograman AJAX Mengenal XMLHttpRequest XMLHttpRequest merupakan object yang dirancang untuk memungkinkan prmrogram melakukan permintaan HTTP dari suatu aplikasi. Objek XMLHttpRequest inilah yang membuat JavaScript bisa meminta layanan ke server HTTP secara asinkron, menerima tanggapan dari server, dan memperbaharui isi sebagian halaman web. Pada Internet Explorer 6 dan sebelumnya, objek XMLHttpRequest dibentuk melalui pernyataan : xmlHttp = new ActiveXObject(“Microsoft.XMLHTTP”); Pada browser lain (misalnya Firefox dan Opera), objek XMLHttpRequest diciptakan dengan cara seperti berikut : xmlHttp = new XMLHttpRequest(); Agar skrip yang kita buat bisa berjalan pada berbagai jenis browser, kedua hal tersebut harus ditangani. Hal itu bisa dilakukan dengan memanfaatkan pernyataan try..catch. Pernyataan try..catch mempunyai kaidah seperti berikut : try { //kode yang bisa menghasilkan eksepsi(yang menimbulkan kesalahan) } catch(e) { //Kode yang akan dijalankan hanya kalau terjadi eksepsi pada bagian try } ajax1.html <html> <head> <title>Mengenal Objek XMLHttpRequest</title> </head> <body> <script type="text/javascript"> var xmlHttp = null; try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { try { xmlHttp = new XMLHttpRequest(); } By Ristek Department 2010 - 2011 catch(e) { } } //Cek isi xmlHttp if(xmlHttp == null) document.write("Browser tidak mendukung XMLHttpRequest"); else document.write("Browser mendukung XMLHttpRequest"); </script> </body> </html> Tampilan pada Firefox : Mengenal Metode getElementById() Metode ini berguna untuk mendapatkan sebuah elemen yang berada dalam dokumen HTML. Metode ini mensyaratkan elemen yang dicari memiliki suatu ID. myid.html <html> <head> <title>Contoh Penggunaan ID</title> </head> <body> textJS: <input type="text" name="textJS" id="id_js" value="JavaScript" /> <br /> textPHP: <input type="text" name="textPHP" id="id_php" value="PHP" /> <br /> <br /> Info: <br /> <script type="text/javascript"> var obj = document.getElementById("id_js"); document.write("name = " + obj.name + "<br />"); document.write("id = " + obj.id + "<br />"); document.write("type = " + obj.type + "<br />"); document.write("value = " + obj.value + "<br />"); </script> </body> </html> By Ristek Department 2010 - 2011 Mengenal Properti innerHTML innerHTML merupakan properti milik objek DOM yang digunakan untuk menampilkan teks yang berasal dari server. Penggunaannya : objek.innerHTML = teks; jam.html <html> <head> <title>Contoh innerHTML</title> <script type="text/javascript"> function tampilkanInfo() { var sekarang = new Date(); var jam = sekarang.getHours(); var menit = sekarang.getMinutes(); var detik = sekarang.getSeconds(); if (jam < 10) jam = "0" + jam; if (menit < 10) mnit = "0" + menit; if (detik < 10) detik = "0" + detik; var pesan = "Anda mengklik terakhir kali jam " + jam + ":" + menit + ":" + detik; var obj = document.getElementById("id_info"); obj.innerHTML = pesan; } </script> </head> <body> <form> <input type="button" value="Klik Saya" By Ristek Department 2010 - 2011 onclick="tampilkanInfo()" /> </form> <div id="id_info">Kalau Anda mengklik tombol di atas suatu info muncul di sini</div> </body> </html> By Ristek Department 2010 - 2011 Membuat Aplikasi Ajax info.txt File ini berasal dari server. Jika Anda menjumpai tulisan ini, Berarti aplikasi Ajax Anda sudah bekerja ajax.html <html> <head> <title>Contoh Ajax</title> <script type="text/javascript"> var xmlHttp = buatObjekXmlHttp(); function buatObjekXmlHttp() { var obj = null; if (window.ActiveXObject) obj = new ActiveXObject("Microsoft.XMLHTTP"); else if (window.XMLHttpRequest) obj = new XMLHttpRequest(); // Cek isi xmlHttp if (obj == null) document.write( "Browser tidak mendukung XMLHttpRequest"); return obj; } function ambilData(sumber_data, id_elemen) { if (xmlHttp != null) { var obj = document.getElementById(id_elemen); xmlHttp.open("GET", sumber_data); xmlHttp.onreadystatechange = function () { if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { obj.innerHTML = xmlHttp.responseText; } } xmlHttp.send(null); } } </script> </head> <body> <input type="button" value="Klik Saya" onclick="ambilData('info.txt', 'id_info')" /> <div id="id_info">Kalau Anda mengklik tombol di atas suatu info muncul di sini</div> </body> </html> By Ristek Department 2010 - 2011 PHP dan Ajax ajax.js var xmlHttp = buatObjekXmlHttp(); function buatObjekXmlHttp() { var obj = null; if (window.ActiveXObject) obj = new ActiveXObject("Microsoft.XMLHTTP"); else if (window.XMLHttpRequest) obj = new XMLHttpRequest(); // Cek isi xmlHttp if (obj == null) document.write( "Browser tidak mendukung XMLHttpRequest"); return obj; } function ambilData(sumber_data, id_elemen) { By Ristek Department 2010 - 2011 if (xmlHttp != null) { var obj = document.getElementById(id_elemen); xmlHttp.open("GET", sumber_data); xmlHttp.onreadystatechange = function () { if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { obj.innerHTML = xmlHttp.responseText; } } xmlHttp.send(null); } } kirimvar.html <html> <head> <title>Contoh Mengirimkan Variabel</title> <script type="text/javascript" src="ajax.js"> </script> <script type="text/javascript"> function prosesData(sumber_data, id_elemen) { var elemen_nama = document.getElementById("nama"); var nama_user = elemen_nama.value; var url = sumber_data + "?nama=" + nama_user; ambilData(url, id_elemen); } </script> </head> <body> <form> Nama Anda: <input type="text" name="textnama" id="nama"/> <br /> <input type="button" value="Klik Saya" onclick="prosesData('ucapan.php', 'id_info');" /> </form> <div id="id_info">Kalau Anda mengklik tombol di atas suatu info muncul di sini</div> </body> </html> ucapan.php <?php header("Cache-Control: no-cache, must-revalidates"); header("Expires: Mon, 26 Jul 1997 00:00:00 GMT"); $nama = $_GET["nama"]; if (!empty($nama)) print("Hai, $nama. Selamat belajar"); else print("Hai. Tolong isi nama Anda, ya!"); ?> By Ristek Department 2010 - 2011 By Ristek Department 2010 - 2011 BAB 3 Jquery Framework Apa itu Jquery jQuery adalah pustaka JavaScript kecil bersumber terbuka yang menekankan pada interaksi antara JavaScript dan HTML. Untuk bisa menggunakan jquery terlebih dahulu kita tempelkan library jquery ke dalam program kita, contoh penggunaannya seperti berikut : <script type="text/javascript" src="lib/jquery-1.4.2.min.js"></script> Write Less, Do More Itulah prinsip jquery. Jquery memiliki pemrograman Ajax yang simpel namun sangat kuat. Berikut sintaks untuk meload data dari server atau dengan kata lain pemrograman ajax dengan jquery : $(selector).load(url,{data},callback) Keterangan : (selector) Elemen HTML yang akan digunakan (url) alamat url dari data yang akan di load (data) variabel dan nilainya yang akan dikirimkan ke server (url) (callback) Fungsi yang akan di eksekusi ketika data server telah selesai di proses dan di unduh. ajax_jquery.html <html> <head> <title>Contoh Ajax dengan Jquery</title> <script type="text/javascript" src=" jquery-1.4.2.min.js "> </script> <script type="text/javascript"> function prosesData() { $("#id_info").load("info.txt"); } </script> </head> <body> <input type="button" value="Klik Saya" onclick="prosesData();" /> <div id="id_info">Kalau Anda mengklik tombol di atas suatu info muncul di sini</div> </body> </html> By Ristek Department 2010 - 2011 Mengirimkan Variabel dengan Jquery Untuk mengirimkan suatu variabel dari klien ke server dalam aplikasi web ada dua cara yaitu secara GET atau POST. Dalam jquery pun juga terdapat method tersebut yang berfungsi untuk mengakses suatu file atau mengirimkan variabel ke server. Untuk sintaksnya sebagai berikut : $.get(url,data,callback,type) $.post(url,data,callback,type) Contoh program : kirimvar_jquery.html <html> <head> <title>Contoh Kirim Variabel Ajax JQuery</title> <script type="text/javascript" src=" jquery-1.4.2.min.js "> </script> <script type="text/javascript"> function prosesData() { var name = $("#nama").val(); $.get("ucapan.php",{nama: name}, function(data) { $("#id_info").html(data); }); } </script> </head> <body> By Ristek Department 2010 - 2011 <form> Nama Anda: <input type="text" name="textnama" id="nama"/> <br /> <input type="button" value="Klik Saya" onclick="prosesData();" /> </form> <div id="id_info">Kalau Anda mengklik tombol di atas suatu info muncul di sini</div> </body> </html> Penanganan Formulir dengan Jquery Mungkin akan ribet penulisan skripnya jika kita harus menambahkan banyak variabel yang dikirimkan ke server ketika menghadapi formulir, misal pada registrasi. Pada registrasi, tentunya kita harus mengirimkan variabel seperti nama, alamat, tanggal lahir, no. Telepon, dan lain – lain. Akan sangat merepotkan ketika kita harus mengetik skrip berikut : var name = $("#nama").val(); var alamat = $("#addr").val(); By Ristek Department 2010 - 2011 var tgl = $("#tgl").val(); var no = $("#no").val(); $.get("ucapan.php",{nama: name, nomor: no}, function(data) { $("#id_info").html(data); }); addr: alamat, tgl: tgl, Dalam jquery mempunyai sebuah tag yang dapat menghandel semua variabel dalam form dengan mengetikkan 1 tag, yaitu : $('form').serialize() Efek Animasi dengan Jquery Jquery sendiri menyediakan beberapa efek untuk memperindah tampilan web. Berikut ini adalah beberapa efek dari jquery yang akan kita bahas : Efek Keterangan $(selector).hide() Menyembunyikan elemen HTML yang dipilih $(selector).show() Memunculkan elemen HTML yang dipilih $(selector).slideDown() Slide Down(show) elemen HTML yang dipilih $(selector).slideUp() Slide Up(hide) elemen HTML yang dipilih $(selector).FadeIn() Menimbulkan efek Fade in pada elemen HTML yang dipilih $(selector).FadeOut() Menimbulkan efek Fade out pada elemen HTML yang dipilih $(selector).FadeTo() Menimbulkan efek Fade out dengan opacity yang dikirimkan (sebagai parameter) pada elemen HTML yang dipilih jQuery Hide dan Show jquery_hideshow.html <html> <head> <script type="text/javascript" src="jquery-1.4.2.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#hide").click(function(){ $("p").hide(); }); $("#show").click(function(){ $("p").show(); }); }); </script> </head> <body> <p>If you click on the "Hide" button, I will disappear.</p> <button id="hide">Hide</button> <button id="show">Show</button> </body> </html> By Ristek Department 2010 - 2011 jQuery Slide - slideDown, slideUp jquery_slidedown.html <html> <head> <script type="text/javascript" src="jquery-1.4.2.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $(".flip").click(function(){ $(".panel").slideDown("slow"); }); }); </script> <style type="text/css"> div.panel,p.flip { margin:0px; padding:5px; text-align:center; background:#e5eecc; border:solid 1px #c3c3c3; } div.panel { height:120px; display:none; } </style> </head> <body> <div class="panel"> <p>Because time is valuable, we deliver quick and easy learning.</p> <p>At W3Schools, you can study everything you need to learn, in an accessible and handy format.</p> </div> <p class="flip">Show Panel</p> </body> </html> jquery_slideup.html <html> <head> <script type="text/javascript" src="jquery-1.4.2.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $(".flip").click(function(){ $(".panel").slideUp("slow"); }); }); </script> <style type="text/css"> div.panel,p.flip { margin:0px; By Ristek Department 2010 - 2011 padding:5px; text-align:center; background:#e5eecc; border:solid 1px #c3c3c3; } div.panel { height:120px; } </style> </head> <body> <div class="panel"> <p>Because time is valuable, we deliver quick and easy learning.</p> <p>At W3Schools, you can study everything you need to learn, in an accessible and handy format.</p> </div> <p class="flip">Hide Panel</p> </body> </html> jQuery Fade - fadeIn, fadeOut, fadeTo jquery_fadein.html <html> <head> <script type="text/javascript" src="jquery-1.4.2.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("p").hide(); $("div").click(function(){ $("p").fadeIn(4000); }); }); </script> </head> <body> <div>CLICK ME AWAY!</div> <p>If you click on the box above, it will be removed.</p> </body> </html> jquery_fadeout.html <html> <head> <script type="text/javascript" src="jquery-1.4.2.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("div").click(function(){ $(this).fadeOut(4000); }); }); </script> </head> <body> <div style="background:yellow;width:200px">CLICK ME AWAY!</div> By Ristek Department 2010 - 2011 <p>If you click on the box above, it will be removed.</p> </body> </html> jquery_fadeto.html <html> <head> <script type="text/javascript" src="jquery-1.4.2.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("button").click(function(){ $("div").fadeTo("slow",0.25); }); }); </script> </head> <body> <div style="background:yellow;width:300px;height:300px"> <button>Click to Fade</button> </div> </body> </html> By Ristek Department 2010 - 2011 Referensi Abdul Kadir, Mastering Ajax dan PHP, Andi, Yogyakarta, 2009. W2Schools, Jquery Tutorials, www.w3schools.com By Ristek Department 2010 - 2011