ajax: makalah seminar (senin 050109)

28
METODE ASYNCHRONOUS JAVASCRIPT AND XML (AJAX) Makalah Seminar DIAJUKANKAN UNTUK MEMENUHI TUGAS MATA KULIAH SEMINAR PENDIDIKAN ILMU KOMPUTER OLEH : ASEP SUFYAN TSAURI NIM 056798 PROGRAM STUDI PENDIDIKAN ILMU KOMPUTER FAKULTAS PENDIDIKAN MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS PENDIDIKAN INDONESIA

Upload: tsauri28

Post on 11-Jun-2015

1.168 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: AJAX: Makalah Seminar (Senin 050109)

METODE ASYNCHRONOUS JAVASCRIPT AND XML (AJAX)

Makalah Seminar

DIAJUKANKAN UNTUK MEMENUHI TUGAS MATA KULIAH

SEMINAR PENDIDIKAN ILMU KOMPUTER

OLEH :

ASEP SUFYAN TSAURI

NIM 056798

PROGRAM STUDI PENDIDIKAN ILMU KOMPUTER

FAKULTAS PENDIDIKAN MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS PENDIDIKAN INDONESIA

2008

Page 2: AJAX: Makalah Seminar (Senin 050109)

LEMBAR PENGESAHAN

MAKALAH SEMINAR

“METODE ASYNCHRONOUS JAVASRIPT AND XML”

Dosen Pembimbing,

Yudi Wibisono, M.T.

Page 3: AJAX: Makalah Seminar (Senin 050109)

ABSTRAKPekembangan teknologi internet mendorong manusia untuk beralih dari

aplikasi desktop menjadi menggunakan aplikasi berbasis web, hal ini merupakan bukti

dari pergeseran kultur masyarakat menjadi masyarakat yang membutuhkan informasi

yang lebih cepat. Namun, aplikasi berbasis web dengan metode tradisional belum

sepenuhnya dapat menggantikan aplikasi desktop, dengan alasan kecepatan akses,

interaktifitas dan kemudahan pemakaiannya.

Asynchronous Javascript and XML (AJAX) merupakan suatu metode

pemrograman web yang menjadi jawaban dari permasalahan “jurang pemisah” antara

aplikasi desktop dan aplikasi berbasis web selama ini. Dengan AJAX aplikasi web

dapat dijadikan seolah-olah menjadi aplikasi desktop. Hal ini disebabkan karena dengan

metode AJAX, pertukaran data antara klien dan server hanya dilakukan pada data yang

diperlukan saja.

Metode AJAX bukan merupakan teknologi baru, namun merupakan

kesatuan dari teknologi dan standar pemrograman web yang sudah ada sebelumnya,

diantaranya xHTML, DOM, Javascript dan XmlHttpRequest. Ide utama AJAX adalah

memindahkan sebagian besar interaksi ke sisi klien, dengan berbasiskan Javascript dan

request HTTP.

Kata kunci : AJAX, Aplikasi Berbasis Web, XmlHttpRequest

Page 4: AJAX: Makalah Seminar (Senin 050109)

BAB IPENDAHULUAN

A. LATAR BELAKANGKemajuan teknologi internet medorong manusia beralih untuk menggunakan

aplikasi berbasis web, hal ini pun membawa pengaruh terhadap perkembangan teknik-

teknik dalam membangun halaman web. Awalnya, web bersifat statis yang artinya web

tidak dapat berubah ketika mengakses pada waktu yang berbeda. Kemudian, muncul

web dinamis yang dapat menampilkan isi yang berbeda ketika mengakses pada waktu

yang berbeda pula.

Perkembangan web dinamis membawa kemajuan yang besar terhadap teknik

pemrograman web. Namun terkait dengan kebutuhan yang terus berkembang pula,

pengguna menginginkan aplikasi yang lebih interaktif, lebih cepat dan mudah

digunakan seperti aplikasi desktop yang biasa mereka gunakan, sehingga diperlukan

suatu metode baru dalam pemrograman web untuk memecahkan permasalahan tersebut

dengan suatu metode baru, salah satu diantaranya Asynchronous Javascript and XML

disingkat AJAX.

AJAX adalah suatu teknik pemrograman berbasis web untuk menciptakan

aplikasi web lebih interaktif dan dinamis. Tujuannya adalah memindahkan sebagian

besar interaksi pada komputer server ke komputer klien, melakukan pertukaran data

dengan server di belakang layar, sehingga web tidak harus dibaca ulang secara

keseluruhan setiap kali seorang pengguna melakukan perubahan.

Hasil dari makalah ini berupa pemaparan detail mengenai Asynchronous

Javascript and XML sebagai teknik pemrograman web, sehingga dapat meningkatkan

interaktifitas dan kecepatan akses dari produk yang dihasilkannya. Makalah ini

memberi kontribusi pengetahuan berupa metode pemrograman web, selain itu pula ini

juga memberikan kontribusi praktis bahwa penerapan metode ini dapat dijadikan

Page 5: AJAX: Makalah Seminar (Senin 050109)

arahan dalam proses pengembangan web dinamis yang lebih interaktif, cepat dan

mudah.

Page 6: AJAX: Makalah Seminar (Senin 050109)

BAB IIASYNCHRONOUS JAVASCRIPT AND XML (AJAX)

A. ASYNCHRONOUS JAVASCRIPT AND XML (AJAX)

1. DEFINISI AJAX AJAX diperkenalkan oleh Jesse James Garret dari Adaptive Path pada tahun

2005. Ia mendeskripsikan bagaimana mengembangkan web yang berbeda dengan

metode tradisional. Ia memublikasikan sebuah artikel berjudul “AJAX : A New

Approach to Web Applications”. Pada artikelnya, Garret yakin bahwa aplikasi web

dapat menutup jurang pemisah antara web dengan aplikasi desktop selama ini.

(Jesse James Garrett, 2005) mendefinisikan AJAX bukan sebagai teknologi

baru dalam pemrograman web, tetapi merupakan gabungan teknologi pemrograman

web yang sudah ada sebelumnya, yaitu XHTML dan CSS, DOM, XML,

XMLHttpRequest dan Javascript.

Pengembangan web secara tradisional bekerja secara synchronously

(langsung), antara aplikasi dan komputer server. Setiap kali melakukan link atau

melakukan operasi “submit” pada form. Caranya, browser mengirim data ke server,

server merespon dan seluruh halaman di-refresh.

Aplikasi web yang bekerja dengan AJAX bekerja secara asynchronously

(tidak langsung), yang berarti mengirim dan menerima data dari pengguna ke server

tanpa perlu memanggil kembali seluruh halaman, melainkan hanya melakukan

pergantian pada bagian web yang hendak diubah. Penggunaan AJAX mulai populer

ketika digunakan oleh Google pada tahun 2005.

AJAX bukanlah bahasa pemrograman baru, tetapi merupakan metode baru

penggunaan standar yang telah ada. Dengan AJAX aplikasi web menjadi lebih baik,

yaitu menjadi lebih cepat dan menambah user-friendly serta lebih interaktif.

Dengan menggunakan Javascript, AJAX dapat mengirimkan dan menerima

data antara web server dan web browser. Teknik yang dimiliki AJAX akan bergantian

Page 7: AJAX: Makalah Seminar (Senin 050109)

http(s) transport

Server-side Systems

Browser ClientUser Interface

Web Server

Datastores, backend processing, legacy

systems

HTTP Request

HTML + CSS data

bertukar data dan me-reload ulang seluruh halaman. Hal ini merupakan perbedaan

mendasar model AJAX dengan model tradisional.

Melalui AJAX, Javascript dapat dikomunikasikan secara langsung dengan

server menggunakan objek Javasript XMLHttpRequest. Objek Javascript ini dapat me-

trade data sebuah web server tanpa harus me-reload halaman web.

AJAX mengguanakan asynchronous data transfer (pada HTTP request)

antara browser dan web server, yang memperbolehkan halaman web memanggil bit

yang kecil atau seluruh informasi dari server. Teknik AJAX membuat aplikasi web

menjadi kecil, cepat dan lebih user-friendly.

2. MODEL TRADISIONAL

Model tradisional disini maksudnya adalah model pemrograman web yang

sering digunakan tanpa AJAX. Pertama, browser membuat sebuah HTTP request

dikirim ke server.

Gambar 1 : Arsitektur Model Tradisional Pemrograman Web

Page 8: AJAX: Makalah Seminar (Senin 050109)

Browser Client

Server-side Systems

User Interface

Ajax Engine

Web and / XML server

http(s) transport

Datastores, backend, processing, legacy

systems

Javascript callHTML + CSS data

HTTP request

XML Data

Pada model ini, server mengirimkan respon berisi seluruh halaman termasuk

header, logo, navigasi, dan lain-lain. Ketika mengklik Next maka akan menampilkan

halaman baru lagi (artinya header, logo, footer dikirim ulang) dan seterusnya akan

mengirimkan data halaman baru lagi disetiap diminta request dari pengguna.

Halaman seperti ini tidak masalah ketika data yang ditampilkan tidak

memerlukan respon cepat. Namun, akan menjadi masalah jika pengguna menginginkan

respon yang cepat, misalnya ketika dipilih drop-down tertentu maka data yang

ditampilkan berubah menurut nilai dari drop-down.

3. MODEL AJAXAJAX berkomunikasi dengan server tanpa harus memanggil kembali semua

halaman. Konsep ini berbeda dengan aplikasi web sistem tradisional. Dalam model

AJAX, aksi dari sisi klien dibagi menjadi dua bagian, yaitu layer user-interface dan

layer AJAX.

Gambar 2 : Arsitektur Model AJAX

Page 9: AJAX: Makalah Seminar (Senin 050109)

Ketika pengguna mengklik sebuah link atau mengirimkan sebuah form maka

input tersebut akan ditangani oleh layer AJAX dan diinteraksikan dengan server,

kemudian meng-update pengguna interface (UI). Jadi, dalam AJAX, interaksi UI

secara logika terpisah dengan interaksi jaringan.

Pendekatan yang digunakan AJAX adalah bagaimana mengirimkan jumlah

data yang kecil dari dan ke server atas request dari pengguna. Model aplikasi web

tradisional di mana browser akan merespon sendiri atas inisialisasi request, memproses

request dari web server. Dalam AJAX terdapat layer yang diberi nam “AJAX Engine”

untuk menangani komunikasi. “AJAX Engine” adalah sebuah Objek Javascript atau

fungsi yang dipanggil ketika informasi dibutuhkan dari server.

Proses yang dilakukan mesin AJAX adalah menerima respon dari server,

melakukan parsing data dan melakukan sedikit perubahan untuk keperluan

menampilkan informasi. Jika dibanding dengan model aplikasi web tradisional maka

pengguna interface diubah lebih cepat dan pengguna mampu melakukan pekerjaannya

dengan cepat.

Beberapa hal penting untuk menggambarkan AJAX :

Layer AJAX tidak memerlukan komunikasi dengan server (contohnya validasi form

karena dapat ditangani sepenuhnya oleh sisi klien)

Oleh karena request antar layer AJAX dan server berupa bagian kecil dari informasi

(tidak komplit satu halaman) maka sering digunakan untuk interaksi dengan basis

data sehingga waktu render dan waktu pengiriman menjadi pendek

Layer UI secara langsung bergantung pada respon server sehingga pengguna dapat

melanjutkan interaksi dengan sebuah halaman selama aktivitas dikerjakan di

background. Berarti, untuk beberapa interaksi, waktu tunggu pengguna hampir tidak

ada.

Komunikasi antar halaman dan server tidak selama memerlukan AJAX untuk

mengubah perubahan UI. Contoh, beberapa aplikasi menggunakan AJAX untuk

notifikasi dengan halaman, tetapi tidak melakukan apapun terhadap respon dari

server.

Page 10: AJAX: Makalah Seminar (Senin 050109)

4. TEKNOLOGI DI BALIK AJAXTeknologi AJAX di dalamnya meliputi beberapa komponen, yaitu :

HTML (HyperText Markup Language) digunakan dalam membuat halaman web

dan dokumen-dokumen lain yang dapat ditampilkan dalam browser. HTML

merupakan standar internasional dengan spesifikasi yang ditetapkan oleh World

Wide Web Consortium (W3C). Versi terakhir saat tulisan ini dibuat adalah HTML

4.01.

XHTML (Extensible HyperText Markup Language), adalah bahasa markup

sebagaimana HTML, tetapi dengan gaya bahasa lebih baik. XHTML digunakan

untuk membuat halaman web dan dokumen lain-lain yang dapat ditampilkan dalam

sebuah browser. XHTML merupakan standar W3C. Versi terakhir saat tulisan ini

dibuat adalah XHTML 2.0.

CSS (Cascading Style Sheets ) adalah sebuah mekanisme sederhana untuk

memberikan style (seperti font, warna, jarak spasi, dll) kepada dokumen web yang

ditulis dalam HTML atau XML (termasuk beberapa variasi bahasa XML seperti

XHTML dan SVG).

Javascript adalah bahasa scripting kecil, ringan, berorientasi-objek dan lintas

platform. Javascript tidak dapat berjalan dengan baik sebagai bahasa mandiri,

melainkan dirancang untuk ditanamkan pada produk.

DOM (Document Object Model) adalah sebuah API (Application Program

Interface) untuk dokumen HTML dan XML. DOM menyediakan representasi

dokumen secara terstruktur, dimungkinkan untuk  merubah isi dan presentasi visual.

Pada dasarnya, DOM menghubungkan halaman web dengan script atau bahasa

pemprograman.

XML (Extensible Markup Language) adalah bahasa markup untuk keperluan

umum yang disarankan oleh W3C untuk membuat dokumen markup keperluan

khusus. Keperluan utama XML adalah untuk pertukaran data antar sistem yang

beraneka ragam.

Page 11: AJAX: Makalah Seminar (Senin 050109)

XSLT (Extensible Stylesheet Language Transformations ) adalah sebuah bahasa

berbasis-XML untuk transformasi dokumen XML. Walaupun proses merujuk pada

transformasi, dokumen asli tidak berubah melainkan dokumen XML baru dibuat

dengan basis isi dokumen yang sudah ada. XSLT biasanya digunakan untuk

merubah skema XML ke halaman web atau dokumen PDF.

Objek XMLHttpRequest untuk melakukan pertukaran data secara asinkron dengan

peladen (server) web. Beberapa kerangka-kerja Ahax dan dalam beberapa situasi,

objek IFrame digunakan selain objek XMLHttpRequest untuk melakukan

pertukaran data dengan peladen web.

JSON (Javascript Object Notation) yaitu format pertukaran data komputer yang

ringan dan mudah. Keuntungan JSON dibandingkan dengan XML adalah pada

proses penterjemahan data menggunakan Javascript. Javascript dapat

menterjemahkan JSON menggunakan built-in procedure eval().

Dalam kenyataannya, semua teknologi dapat digunakan untuk AJAX, tetapi

hanya tiga yang dibutuhkan, yaitu HTML/XHTML, DOM dan Javascript. XHTML

diperlukan untuk menampilkan informasi, sedangkan DOM diperlukan untuk halaman

XHTML tanpa di-reload ulang.

Javascript dibutuhkan untuk komunikasi client-server, sementara manipulasi

DOM untuk me-update halaman web. Teknologi lain digunakan agar AJAX lebih

bagus, tetapi agar lebih powerfull maka AJAX dapat digabungkan dengan aplikasi

pemrograman di sisi server seperti PHP, JSP atau .NET.

5. TEKNIK PENERAPAN AJAXTeknik AJAX memungkinkan pengembang web membuat halaman agar

pengguna tidak lagi menunggu untuk melakukan aksi selanjutnya (seperti terjadi dalam

model tradisional), yang berarti memungkinkan komunikasi ke server setiap waktu.

AJAX memiliki beberapa teknik untuk berkomunikasi. Masing-masing teknik memiliki

keuntungan dan kelemahan sehingga sangat penting untuk memilih teknik mana yang

harus digunakan. Teknik-teknik tersebut diantaranya adalah Hidden Frame atau iFrame,

Page 12: AJAX: Makalah Seminar (Senin 050109)

HTTP Request, Cookie. Dari ketiga teknik tersebut yang akan dibahas adalah teknik

HTTP request.

a. Penjelasan Teknik HTTP Request

Dalam Javascript standar, jika akan memperoleh informasi dari basis data

atau file dalam server, atau mengirimkan informasi pengguna ke server akan

menggunakan form HTML dengan metode GET atau POST. Pengguna mengklik

tombol “Submit” untuk mengirimkan atau memperoleh informasi, menunggu respon

dari server, kemudian halaman baru akan di-load sebagai hasil.

Metode HTTP Request memanfaatkan ActiveX Object (IE) atau Objek

Javascript XMLHttpRequest (Mozilla/Firefox, Safari, Opera). Objek ini akan

melakukan post-back ke server dan menerima respon balik berupa data (bukan

halaman). Data yang didapat dari server kemudian diolah di klien untuk ditampilkan ke

halaman.

Oleh karena server mengembalikan halaman baru dengan pengguna lebih

dahulu mengirimkan input maka aplikasi web akan berjalan lambat. Dengan AJAX,

Javascript akan mengomunikasikan secara langsung ke web server menggunakan Objek

Javascript XMLHttpRequest.

HTTP Request, sebuah halaman web dapat meminta request atau

memperoleh respon dari web server tanpa me-reload halaman web. Pengguna masih di

halaman yang sama. Dan script akan bekerja di background sehingga pengguna tidak

melihat kerjanya.

Page 13: AJAX: Makalah Seminar (Senin 050109)

Browser Client Server-side Systems

Data Exchange

XMLHttpRequest

User Interface

Web Server

Datastore

XMLHttpRequest callback()

HTTP Request

XML Data

Javascript call HTML +

CSS Data1

2 3

4

5

Gambar 3 : Teknik HTTP Request

XMLHttpRequest adalah metode yang banyak digunakan AJAX untuk

berkomunikasi karena memiliki dua fitur yang unik. Pertama adalah mempunyai

kemampuan me-load isi data baru tanpa mengubah seluruhnya dan ini merupakan hal

yang berbeda dibanding dengan cara konvensional (model tradisional). Fitur kedua

adalah memperbolehkan Javascript melakukan pemanggilan secara asynchronous.

Page 14: AJAX: Makalah Seminar (Senin 050109)

b. Contoh Penggunaan Teknik HTTP Request

Gambar 4 : Fungsi GetXmlHttpObject

Keterangan :

Fungsi GetXmlHttpObject, berfungsi untuk membuat objek XmlHttpRequest di browser (dengan beberapa tipe browser), yang selanjutnya akan objek ini akan digunakan untuk fungsi lain.

Page 15: AJAX: Makalah Seminar (Senin 050109)

Gambar 5 : Fungsi ShowMember

Keterangan :

Fungsi showMember, berfungsi untuk me-update tabel yang berisi daftar member,

namun dengan memanfaatkan fungsi GetXmlHttpObject diatas, sehingga proses update

tabel bekerja di belakang layar. Jadi proses antara Ajax Layer dengan server terdapat

pada fungsi ini, yaitu dengan memanggil proses di member.php.

Page 16: AJAX: Makalah Seminar (Senin 050109)

C. CONTOH PENGGUNAAN AJAX DALAM BEBERAPA PRODUK

Pada saat ini sudah sangat banyak pemanfaatan AJAX dalam berbagai

aplikasi berbasis web, karena AJAX adalah pendorong utama lahirnya generasi web 2.0.

Beberapa produk aplikasi yang sangat memberikan gambaran bahwa aplikasi tersebut

menggunakan AJAX. Beberapa contoh tersebut diantaranya adalah :

1. Google Docs, adalah aplikasi yang dikembangkan oleh Google Inc. untuk

melakukan operasi pembuatan, pengubahan sampai dengan pengemasan dokumen

secara online.

2. Facebook, merupakan aplikasi web yang berupa aplikasi social networking

(Jejaring sosial).

3. Meebo, adalah aplikasi berbasis web untuk digunakan dalam aktifitas chatting

yang biasanya menggunakan aplikasi berbasis desktop seperti Yahoo!Messenger

dan Pidgin.

Selain produk yang telah menjadi sebuah aplikasi siap pakai, saat ini pula

telah banyak berkembang produk yang merupakan tools yang dapat digunakan sebagai

pengembangan aplikasi berbasis AJAX, produk-produk ini biasanya disebut dengan

istilah Framework.

Adapun beberapa framework yang populer saat ini diantaranya :

1. Google Web Toolkit (GWT)

2. Prototype

3. JQuery

4. MooTools.

Page 17: AJAX: Makalah Seminar (Senin 050109)

6. KELEMAHAN AJAXAJAX merupakan metode baru dalam pengembangan aplikasi berbasis web selain

memiliki karakteristik yang unggul seperti diungkapkan sebelumnya, namun AJAX

tidaklah sempurna, tetap masih memiliki kelemahan-kelemahan. Diantaranya adalah :

1. AJAX tidak Search Engine Friendly, hal ini disebabkan karena produk yang

berbasis AJAX cenderung menggunakannya untuk content real-time update,

sedangkan Search Engine (mesin pencari), akan kesulitan me-crawl content

seperti itu. Maka, untuk web yang membutuhkan crawling dari Search Engine

disarankan untuk tetap menggunakan model tradisional.

2. Kompatibilitas. AJAX tidak didukung oleh beberapa browser, khususnya

browser-browser lama, sehingga aplikasi berbasis AJAX tidak dapat dijalankan

dalam browser-browser lama tersebut.

3. Menguras Bandwidth. Karena beberapa aplikasi AJAX melakukan auto-update,

maka meskipun aplikasi tidak digunakan dalam jangka waktu yang lama tetap

mengurangi bandwidth.

4. Keamanan data. Karena prinsip AJAX adalah memindahkan sebagian besar

proses di server ke klien, hal ini menimbulkan celah baru dalam keamanan data,

sehingga perlu diputuskan untuk beberapa proses penting untuk tetap

menggunakan metode tradisional.

Page 18: AJAX: Makalah Seminar (Senin 050109)

BAB IIIPENUTUP

A. KESIMPULAN

Asynchronous Javascript and XML (AJAX) bukan merupakan teknologi

baru, tetapi merupakan kesatuan dari teknologi dan standar pemrograman web yang

telah ada sebelumnya. AJAX diciptakan untuk menjadikan aplikasi berbasis web dapat

menjadi lebih interaktif, cepat dan mudah digunakan.

AJAX dibandingkan dengan model tradisional memiliki beberapa

perbedaan, diantaranya dengan adanya Ajax Engine yang menjadi perantara antara client

dengan server, sehingga tidak seluruh permintaan harus diproses di sisi server. Selain

itu, Ajax engine juga melakukan pertukaran data dengan server dilakukan di belakang

layar, sehingga client dapat melakukan permintaan lain selama permintaan sebelumnya

masih diproses di server.

Namun, AJAX bukan tanpa kekurangan. AJAX memiliki beberapa

keterbatasan, diantaranya tidak search engine friendly, kompatibilitas (tidak didukung

oleh beberapa browser versi lama), menguras bandwidth, dan alasan keamanan data.

Page 19: AJAX: Makalah Seminar (Senin 050109)

DAFTAR PUSTAKA

Crane, Dave. Ajax in Action. Manning. 2006.

Holdener, Anthony T. Ajax: The Definitive Guide. O’Reilly. 2008.

"Ajax: A New Approach to Web Applications".

http://www.adaptivepath.com/ideas/essays/archives/000385.php

http://id.wikipedia.org/wiki/AJAX

http://www.masykur.web.id/category/AJAX.aspx

http://www.w3schools.com/Ajax/