Kelompok 15
Upcoming SlideShare
Loading in...5
×
 

Kelompok 15

on

  • 432 views

 

Statistics

Views

Total Views
432
Slideshare-icon Views on SlideShare
432
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Kelompok 15 Kelompok 15 Presentation Transcript

    • AJAX ENABLE RICH INTERNET APPLICATION
      Alqod Elian 5106100033
      Edo Amri W. 5106100050
      Sujono 5106100055
    • AJAX merupakan paduan dari beberapa teknologi yang sudah dikenal sebalumnya yaitu HTML, DOM, XML, Javascript dan teknologi pendukung lainnya.
      AJAX adalah akronim dari Asynchronous JavaScript and XML
    • Komponen-komponen AJAX meliputi:
      HTML (HyperText Markup Language)
      XHTML (Extensible HyperText Markup Language)
      CSS (Cascading Style Sheets )
      JavaScript
      DOM (Document Object Model)
      XML (Extensible Markup Language)
      XSLT (Extensible StylesheetLanguage Transformations )
      Objek XMLHttpRequest
      JSON (JavaScript Object Notation)
    • Teknik yang umum digunakan untuk implementasi AJAX adalah dengan menggunakan:
      Hidden Frame
      Metode ini memanfaatkan frame yang tersembunyi.
      Hidden IFrame
      Metode ini hampir sama dengan hidden frame, perbedaannya hanya pada elemen yang digunakan yaitu IFrame, bukan Frame.
      Objek XMLHttpRequest
      Metode yang satu ini memanfaatkan ActiveX Objek (IE) atau objek javascript XMLHttpRequest (Mozilla/Firefox, Safari, Opera).
    • Teknik pemprosesan halaman secara umum ada dua:
      Pemprosesan halam dengan pembuatan/manipulasi objek dokumen menggunakan javascript.
      Parsial rendering.
    • Dua keistimewaan Ajax adalah dapat:
      Membuat permintaan kepada server tanpa memuat kembali (reload) halaman.
      Mengurai (parse) dan bekerja dengan dokumen XML dan atau JSON.
    • Penggunaan Dasar
      1. MembuatPermintaan HTTP (HTTP Request)
      Untuk membuat permintaan HTTP kepada server menggunakan JavaScript, diperlukan sebuah class yang menyediakan fungsi-fungsi ini. Pada Internet Explorer tersedia objek ActiveX yang disebut XMLHTTP. Pada Mozilla, Safari, Opera dan beberapa peramban lain, menerapkan sebuah class Javascript objek XMLHttpRequest yang mendukung method dan properties objek Microsoft ActiveX.
      Untuk membuat instance (objek) class lintas-browser (cross-browser), dapat dilakukan dengan:
      if (window.XMLHttpRequest) { // Mozilla, Safari, ...
      http_request = new XMLHttpRequest ();
      } else if (window.ActiveXObject) { // IE
      http_request = new ActiveXObject("Microsoft.XMLHTTP");
      }
      Catatan: kode di atas hanya sebagai ilustrasi saja. Kode tersebut merupakan versi paling sederhana untuk membuat instance XMLHttp. Untuk penggunaan secara nyata dapat lihat di bagian 3 artikel ini.
    • Beberapa versi browser Mozilla tidak bekerja dengan baik jika respon dari server tidak mengandung header mime-type XML. Untuk memenuhi kebutuhan ini, panggil method untuk mengganti/menambahkan header yang dikirim oleh server.
      http_request = new XMLHttpRequest();
      http_request overrideMimeType('text/xml');
      Setelah itu, buat fungsi untuk mengolah setelah data diterima dari server berdasarkan permintaan yang dibuat sebelumnya. Tahap ini, daftarkan fungsi JavaScript yang menangani respon dari server. Setting properties onreadystatechange objek dengan nama fungsi Javascript yang disiapkan untuk mengerjakan proses respon.
      http_request.onreadystatechange = namaFungsi;
      Perlu dicatat bahwa tidak ada tanda kurung setelah nama fungsi dan tanpa parameter yang dilewatkan. Selain memberikan nama fungsi, dapat juga digunakan teknik JavaScript dalam pendefinisian fungsi (tanpa nama) saat program berjalan (run-time) -- yang disebut fungsi anonymous -- dan mendefinisikan tindakan untuk melakukan proses, seperti berikut:
      http_request.onreadystatechange = function() {
      // do the thing
      };
    • Selanjutnya, setelah deklarasi dan segera setelah menerima respon, kemudian buat permintaan. Panggilmethod open() dan send() dari klas permintaan HTTP seperti kode berikut:
      http_request.open('GET', 'http://www.example.org/somefile', true); http_request.send(null);
      Parameter panggil pertama dari open() adalah method permintaan HTTP GET, POST, HEAD atau method lain yang didukung oleh server. Gunakan huruf kapital sebagaimana standar HTTP.
      Parameter kedua adalah URL dari halaman yang diminta. Demi keamanan, panggilan tidak dapat dilakukan pada halaman domain pihak ketiga. Pastikan untuk menggunakan nama domain yang pasti pada semua halaman jika tidak ingin mendapat error 'permision denied' ketika melakukan panggilan open().
      Parameter ketiga diset ketika permintaan adalah asinkron. Jika diset TRUE, eksekusi fungsi JavaScript akan berlanjut walau tanggapan dari peladen belum sampai. Ini adalah A dalam AJAX.
    • Parameter untuk method send() dapat berupa sembarang data untuk dikirim ke server saat mengirimkan permintaan POST. Data harus dalam format query string, seperti:
      name=value&anothername=othervalue&so=on
      Catatan bahwa jika ingin mengirim (POST) data, ganti tipe MIME permintaan menggunakan bari berikut:
      http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      Bila tidak, server akan mengabaikan data yang dikirim.
    • 2. Penanganan Respon Server
      Ingat bahwa ketika permintaan dikirim, fungsi JavaScript harus telah disediakan untuk menangani respon.
      http_request.onreadystatechange = namaFungsi;
      Apa yang seharusnya dikerjakan oleh fungsi ini. Pertama, fungsi untuk memeriksa status tanggapan. Jika status memiliki nilai 4, berarti bahwa seluruh tanggapan peladen telah diterima dan siap dilanjutkan proses berikutnya.
      if (http_request.readyState == 4) {
      // everything is good, the response is received
      } else {
      // still not ready
      }
    • Berikut adalah daftar nilai status readyState
      0 (tidak diinisialisasi)
      1 (dalam proses memuat)
      2 (telah dimuat)
      3 (interaktif)
      4 (lengkap)
    • Berikutnya adalah pemeriksaan kode status dari respon HTTP server. Pada contoh kali ini hanya digunakan status 200 yaitu respon OK.
      if (httpRequest.status == 200) {
      // perfect!
      } else {
      // there was a problem with the request,
      // for example the response may be a 404 (Not Found)
      // or 500 (Internal Server Error) response codes
      }
    • Setelah semua status permintaan diperiksa dan kode status HTTP telah ada respon, data respon dari server dapat diolah. Terdapat dua pilihan untuk mengakses data.
      httpRequest.responseText -- akan mengembalikan respon berupa teks string
      httpRequest.responseXML -- akan mengembalikan respon berupa objek XMLDocument object yang dapat diakses dengan fungsi DOM JavaScript
    • 3. Contoh Sederhana
      Tulis bagian program menjadi satu permintaan HTTP sederhana. JavaScript akan meminta sebuah dokumen HTML yaitu test.html yang hanya mengandung tulisan "I'm a test" dan kemudian memanggil alert()dengan isi dari berkas test.html
    • <script type="text/javascript" language="javascript">
      var http_request = false;
      function makeRequest(url) {
      http_request = false ;
      if (window.XMLHttpRequest) { // Mozilla, Safari ,...
      http_request = new XMLHttpRequest();
      if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml');
      // See note below about this line
      }
      } else if (window.ActiveXObject) { // IE
      var aVersions = [ "MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "Microsoft.XMLHTTP" ];
      for (var i = 0; i < aVersions.length; i++) {
      try { http_request = new ActiveXObject(aVersions[i]); break;
      }
      catch (e)
      {
      // Do nothing
      }
      }
      }
      if (!http_request) {
      alert ('Giving up :( Cannot create an XMLHTTP instance');
      return false;
      }
      http_request.onreadystatechange = alertContents;
      http_request.open('GET', url, true);
      http_request.send(null);
      }
      function alertContents() {
      if (http_request.readyState == 4) {
      if (http_request.status == 200) {
      alert(http_request.responseText);
      } else {
      alert('There was a problem with the request.');
      }
      }
      }
      </script>
      <span style="cursor: pointer; text-decoration: underline" onclick ="makeRequest('test.html')">Make a request
      </span >
    • Pada contoh di atas:
      Ketika pengguna menekan klik pada link &quote;Make a request&quote; maka fungsi makeRequent dipanggil dengan parameter nama file HTML test.html dalam direktori yang sama.
      Permintaan dibuat dan kemudian event onreadystatechange melakukan eksekusi alertContents()
      alertContents()memeriksa jika tanggapan telah diterima dalam keadaan baik dan kemudian tampilkan isi berkas test.html menggunakan fungsi alert()
    • 4. Bekerja dengan Respon XML
      Sekarang, coba gunakan sifat responseXML Buat dokumen XML yang valid dengan nama test.xml seperti contoh di bawah:
      <?xml version ="1.0" ?>
      <root>
      I'm a test.
      </root>
      Ganti baris permintaan pada script untuk melakukan request dengan:
      ...
      onclick ="makeRequest('test.xml')">
      ...
    • Kemudian pada alertContents()ganti pada baris alert(http_request.responseText);diganti dengan:
      var xmldoc = http_request.responseXML;
      varroot_node = xmldoc.getElementsByTagName('root').item(0); alert(root_node.firstChild.data);
      Perintah tersebut untuk mengambil objek XMLDocument yang diberikan oleh responseXML dengan menggunakan method DOM untuk mengakses data dalam dokumen XML.
    • 4. Petukaran data menggunakan JSON
      Pada contoh berikut akan dijelaskan bagaimana implementasi JSON pada AJAX dibandingkan dengan XML.
      Pertama, buat data JSON dalam sebuah file dengan nama test.txt yang isinya:
      { "FirstName" : "Ahmad", "LastName" : "Masykur" }
      Ganti baris perintah pada script untuk melakukan request dengan:
      ...
      onclick ="makeRequest('test.txt')">
      ...
      Kemudian pada alertContents()ganti pada baris alert(http_request.responseText);diganti dengan:
      eval("jsonObj="+http_request.responseText+";"); alert(jsonObj.FirstName + ' ' + jsonObj.LastName);
    • Dari contoh di atas terlihat bahwa JSON lebih sederhana dan ringan dibandingkan dengan XML. Jumlah data yang terkandung lebih banyak dan total byte yang dikirim lebih kecil. Juga pada penulisan di javascript lebih sederhana karena notasi data dapat langsung diterjemahkan menjadi objek Javascript dengan fungsi eval().
      Pada implementasi di projek nyata, data (baik XML maupun JSON) biasanya diambil dari application server atau webservice.