Anda di halaman 1dari 8

Mesin Pencari Berbasis Web Menggunakan Ajax Muhammad Fikry mfikry1980@yahoo.

com ABSTRAKSI
Mesin pencari (search engine) merupakan perangkat lunak yang dirancang bangun untuk mengumpulkan halaman web dengan menggunakan spider atau crawler, melakukan indexing terhadap informasi dari halaman tersebut, dan memfasilitasi pencarian informasi dengan menggunakan kata kunci (keyword). Saat ini, mesin-mesin pencari belum dapat mengindeks seluruh situs web yang ada. Untuk mengisi kekosongan antara mesin-mesin pencari tersebut, teknik spidering dapat digunakan untuk mengembangkan mesin pencari yang mengotomatisasi pencarian dan pengambilan informasi di web. Spider sulit dijalankan dengan menggunakan browser. Browser buffering menyebabkan browser akan mengalami freeze selama menunggu halaman web dari server sebelum merender atau menampilkannya. Akibatnya, pengguna tidak dapat melakukan interaksi di browser. Hal tersebut dikarenakan proses komunikasi antara browser dan server berlangsung secara synchronous. Ajax (Asynchronous JavaScript and XML) memungkinkan browser dan server berkomunikasi secara asynchronous. Dengan menggunakan Ajax, diharapkan spider dapat dieksekusi di browser. Dalam penelitian ini, dilakukan rancang bangun Mesin Pencari Berbasis Web Menggunakan Ajax. Setelah dilakukan implementasi dan pengujian, spider dapat dijalankan pada browser, dimana proses crawling terhadap URL berlangsung satu persatu melibatkan Ajax. Proses crawling dapat dihentikan kapan saja oleh pengguna. Setiap kali proses crawling terhadap suatu URL selesai dilakukan, maka indikator proses pada halaman web dapat di-update. Kata kunci: mesin pencari berbasis web, crawling, indexing, searching, Ajax. ABSTRACT Search engine is designed to collect web pages from internet by using spider or crawler, to index retrieved information from web pages, and to facilitate searching by keywords. Currently, search engines have not indexed the entire Web. To fill in some of those gaps, spidering technique can be used to develop a search engine for automating the searching and retrieving of information on the Web. It is difficult to execute a spider in a browser. Browser buffering is troublesome because spider frequently run for extended periods of time. While waiting for a response from server before rendering or displaying it, browser may freeze. User can not interact with the browser. It happens because browser and server communicates synchronously. Ajax (Asynchronous JavaScript and XML) allows browser and server communicates asynchronously. By using Ajax, it is possible for spider to be executed in a browser. In this research, a web-based search engine by using Ajax is designed. After implemented and tested, a spider can be executed in a browser, where URLs are crawled one at a time controlled by Ajax. It enables the user to interact with the page while the request is being processed. After an URL is crawled, indicator for crawling process on the page will be updated. Keywords: web-based search engine, crawling, indexing, searching, Ajax.

Yusra usera84@yahoo.com

1. PENDAHULUAN
Mesin pencari, seperti Google (http://www.google.com) dan Yahoo! (http://www.yahoo.com), digunakan untuk menemukan informasi di World Wide Web, atau lebih dikenal dengan web. Saat ini, mesin-mesin pencari yang ada belum dapat mengindeks seluruh situs web. Hal tersebut dikarenakan bertambahnya jumlah situs web dan jumlah informasi yang ditampilkan di halaman-halaman web dari waktu ke waktu.

Apabila informasi yang ditemukan oleh mesin-mesin pencari tersebut dirasa kurang atau tidak dapat memenuhi kebutuhan pengunjung web, Calishain (2003) menyarankan penggunaan spider sebagai jembatan yang mengisi kekosongan antara mesin-mesin pencari tersebut. Spidering adalah proses yang mengotomatisasi pencarian dan pengambilan informasi di web (Calishain, 2003). Aplikasi yang melakukan spidering disebut dengan spider, crawler, atau bot. Spider memiliki

kompleksitas yang berbeda bergantung kepada kebutuhan pembuatnya, dari kode program sederhana untuk memperoleh informasi cuaca dari sebuah halaman web, sampai ke sejumlah spider yang saling berkerjasama antara satu dengan lainnya untuk melakukan pencarian (searching), pengelompokan (cataloging), dan penyusunan indeks (indexing) terhadap situssitus web, sebagai mana yang dilakukan oleh Google. Spider dapat dijalankan dengan menggunakan command shell atau browser. Schrenk (2007) menyarankan penggunaan command shell dikarenakan kelemahan yang dimiliki oleh browser terkait buffering. Buffering memungkinkan browser untuk menunggu sampai seluruh halaman web diterima dari server sebelum merender atau menampilkannya. Sayangnya, browser buffering akan menyulitkan spider karena spider sering kali dijalankan dalam waktu yang tidak sebentar, jauh lebih lama dari pada men-download halaman web pada umumnya. Selama eksekusi spider, pesan status yang ditulis oleh spider mungkin tidak dapat ditampilkan selagi browser melakukan buffering. Pada kondisi tersebut, browser akan mengalami freeze, dimana pengguna tidak dapat melakukan interaksi di browser. Pada dasarnya, proses menjalankan spider di browser berlangsung secara synchronous. Spider akan menelusuri satu atau lebih URL sampai selesai. Apabila spider digunakan untuk menelusuri halamanhalaman yang ada pada sebuah situs web, terutama situs web dinamis, maka spider harus menelusuri ratusan bahkan ribuan halaman web secara synchronous. Ajax (Asynchronous JavaScript and XML) merupakan suatu teknik pemrograman berbasis web untuk menciptakan aplikasi web interaktif. Tujuannya adalah untuk memindahkan sebagian besar interaksi pada komputer klien, melakukan pertukaran data dengan server di belakang layar, sehingga halaman web tidak harus dibaca ulang secara keseluruhan setiap kali seorang pengguna melakukan perubahan. Hal ini akan meningkatkan interaktivitas, kecepatan, dan usability. Saat ini, penggunaan Ajax pada mesin pencari hanya sebatas membantu pemilihan

kata kunci oleh pengunjung web, seperti fasilitas Google Suggest. Mesin pencari lain, Snap.com, menggunakan Ajax untuk memberikan interaktifitas pada antar muka hasil pencarian. Ajax memungkinkan komunikasi antara client dengan server berlangsung secara asynchronous. Dengan adanya Ajax, browser dapat melakukan request ke server hanya pada bagian dari sebuah halaman web tanpa perlu melakukan request terhadap halaman web secara keseluruhan. Pengguna tetap dapat melakukan interaksi di browser selama proses tersebut berlangsung. Dalam penelitian ini, dilakukan rancang bangun suatu mesin pencari berbasis web. Kemampuan Ajax dalam komunikasi secara asynchronous digunakan pada spider, yang merupakan salah satu komponen penting dari mesin pencari berbasis web. Hal tersebut dilakukan untuk memudahkan spider dijalankan di browser.

2. TEORI DAN METODE 2.1. Aplikasi Berbasis Web


Suatu aplikasi dapat dikategorikan sebagai aplikasi berbasis web jika: 1. Aplikasi tersebut menggunakan protokol HTTP (HyperText Transfer Protocol). 2. Aplikasi di sisi server berkomunikasi dengan client melalui web server. 3. Aplikasi di sisi client umumnya berupa web browser. Teknologi pembangun aplikasi berbasis web, di antaranya: 1. Web client (biasanya web browser) 2. Web server 3. URL (Uniform Resource Locator) 4. HTTP (HyperText Transfer Protocol) 5. HTML (HyperText Markup Language) 6. CSS (Cascading Style Sheet) 7. Pemrograman web a. CGI, eksekusi program di sisi server b. Server side scripting c. Client side scripting d. Plug-in, eksekusi program di sisi client

2.2. Mesin Pencari


Mesin pencari (search engine) merupakan alat bantu yang dirancang untuk mencari informasi di web. Mesin pencari memiliki beberapa komponen, yaitu (Gralla, 2006): 1. Crawler, disebut juga spider atau robot. Crawler digunakan untuk menelusuri web. 2. Indexer menerima halaman-halaman web dari spider, kemudian membuat indeks dari konten halaman-halaman web tersebut. 3. Query engine atau query parser menerima masukan dari pengguna berupa kata kunci, memeriksa indeks berdasarkan kata kunci, kemudian menampilkan hasil pencariannya.

Sebelum Ajax, browser melakukan request suatu halaman web dinamis ke server secara keseluruhan. Server aplikasi merespon dengan membuat kode HTML untuk halaman tersebut dan mengembalikannya ke browser. Browser mengakhiri proses ini dengan merender kode HTML tersebut di jendela browser. Proses tersebut tidak efisien. Server seringkali me-regenerate halaman baru untuk browser namun identik dengan halaman yang ditampilkan saat ini. Bandwidth tersia-siakan karena adanya bagian-bagian dari halaman yang tidak diperlukan terkirim melalui jaringan. Selain itu, pengguna tidak dapat menggunakan aplikasi selagi request diproses oleh server. Ketika respon dari server sampai di browser, browser akan berkedip saat merender halaman web.

Gambar 1 Cara kerja mesin pencari

2.3. Ajax
Istilah Asynchronous JavaScript and XML (Ajax) diperkenalkan oleh Jesse James Garret dalam artikelnya yang berjudul Ajax: New Approach to Web Application (www.adaptivepath.com/publications/essays/ archives/000385.php). Pada awalnya, Ajax merupakan istilah untuk enkapsulasi penggunaan sejumlah teknologi, yaitu obyek XMLHttpRequest, DOM scripting, CSS dan XML. Sekarang ini, deskripsi Ajax telah diperluas menjadi proses komunikasi dengan server melalui JavaScript dengan menggunakan obyek XMLHttpRequest (dikenal sebagai obyek XHR) dan teknologi lainnya yang dilibatkan dalam implementasi situs web atau aplikasi dengan menggunakan Ajax, seperti HTML dan JSON.
Gambar 2 Model klasik request/respon web secara sinkronus (Hoffman, 2008)

Dengan adanya Ajax, browser dapat melakukan request hanya pada bagian dari sebuah halaman tanpa perlu melakukan request terhadap halaman tersebut secara keseluruhan. Server dapat memproses request secara lebih cepat, dan lebih sedikit bandwidth yang digunakan untuk mengirimkan respon. Browser akan memiliki antar muka yang lebih responsif dengan adanya waktu respon yang lebih cepat, dan tidak memerlukan render ulang halaman secara keseluruhan.

kesan adanya masalah pada proses tersebut. 3. Proses crawling dalam waktu yang lama akan ditolak server dengan memberikan pesan request time out. 4. Pengguna dapat memaksa proses crawling berhenti dengan menekan tombol Stop pada toolbar browser. Hal tersebut dapat menyebabkan proses crawling dan indexing terhadap suatu URL terhenti begitu saja tanpa menyelesaikan URL tersebut terlebih dahulu. Proses crawler yang dirancang dengan menggunakan Ajax dapat dilihat pada gambar 4.

Gambar 3 Model request/respon Ajax secara asinkronus (Hoffman, 2008)

Proses tersebut di atas dilakukan secara asynchronous. Setelah request dilakukan, browser meregister metode callback. Ketika respon diterima, metode callback dipanggil untuk melakukan update pada halaman. Selagi menunggu respon diterima, pengguna dapat melanjutkan untuk menggunakan aplikasi. Sejumlah request dapat dimasukkan ke dalam antrian pada waktu yang sama.

3. HASIL 3.1. Crawler di Browser dengan Menggunakan Ajax


Eksekusi crawler di browser memiliki beberapa kelemahan yaitu: 1. Proses crawling berdasarkan model klasik request/response secara synchronous. Proses tersebut menyebabkan browser menunggu sampai seluruh URL selesai ditelusuri dan respon dalam bentuk halaman web diterima dari server sebelum browser merender atau menampilkannya. 2. Proses crawling dalam waktu yang lama akan menyebabkan browser mengalami freeze, dimana pengguna tidak dapat melakukan interaksi di browser. Hal tersebut menyebabkan indikator proses crawling tidak dapat ditampilkan, sehingga memberikan

Gambar 4 Proses crawling menggunakan Ajax

Crawler mengumpulkan link-link dimulai dari URL yang dimasukkan oleh pengguna. Link-link yang ditemukan akan digunakan sebagai referensi untuk URL yang akan diproses berikutnya, dan seterusnya. Setiap kali proses crawling dan indexing terhadap sebuah URL selesai dilakukan, server memberikan respon kepada browser berupa informasi URL berikutnya. Indikator proses crawling pada halaman web dapat diupdate dengan menampilkan URL tersebut. Proses request dan respon menggunakan Ajax dilakukan melalui JavaScript dengan membuat obyek XMLHttpRequest dan meregister metode callback. Metode callback tersebut akan melakukan update pada halaman web dan

membaca apakah ada permintaan pengguna agar proses crawling dihentikan atau apakah ada URL berikutnya yang akan diproses. Jika permintaan tersebut tidak ada dan URL berikutnya tersedia, maka secara otomatis proses request terhadap URL berikutnya kembali dilakukan.

3.2. Mesin Pencari Berbasis Web Menggunakan Ajax


Mesin pencari berbasis web menggunakan Ajax dirancang bangun untuk mencari informasi di web. Mesin pencari ini memiliki 3 (tiga) komponen utama, yaitu: 1. Crawler, dengan fungsionalitas: a. Membaca konten dokumen HTML pada URL tersebut. b. Melakukan parsing terhadap konten dokumen HTML untuk menemukan link-link ke halaman web lainnya pada domain yang sama. c. Menyimpan URL yang telah ditelusuri ke basis data. d. Pengguna menghentikan proses penelusuran dengan menekan tombol Stop pada halaman web, sehingga crawler tidak akan memproses URL berikutnya. 2. Indexer, dengan fungsionalitas: a. Melakukan pemeriksaan terhadap konten dokumen HTML yang diterima dari crawler. Pemeriksaan dilakukan untuk menghindari proses indexing terhadap URL-URL dengan konten dokumen HTML yang sama, disebut Yossef (2007) sebagai DUST (Different URLs with Similar Text). b. Melakukan parsing terhadap konten dokumen HTML untuk menemukan judul dokumen (title), dan meta (keyword dan description) dan menyimpannya ke basis data. c. Melakukan pembersihan konten dokumen HTML dari kode HTML, CSS, dan JavaScript. d. Setelah pembersihan, dilakukan proses indexing terhadap katakata yang ditemukan pada

konten dokumen HTML. Frekuensi kemunculan kata disimpan ke basis data. 3. Searcher, dengan fungsionalitas: a. Menerima masukan berupa kata kunci oleh pengguna. Operator boolean AND dan OR digunakan untuk membatasi pencarian. b. Memproses query pengguna. c. Menghitung rangking halaman web berdasarkan frekuensi kemunculan kata kunci di dalam dokumen tersebut. d. Menampilkan hasil pencarian kepada pengguna berdasarkan rangking.

3.3. Diagram Alir


Diagram alir untuk komponen searcher dapat dilihat pada Gambar 5.
MULAI

Kata Kunci

Word Searcher memproses query Doc

Searcher menampilkan hasil pencarian

SELESAI

Gambar 5 Diagram alir searcher pada mesin pencari

Diagram alir untuk komponen crawler dan indexer dapat dilihat pada Gambar 6.

3.5. Basis Data


Tabel-tabel di dalam basis data yaitu: 1. Tabel documents menyimpan informasi dokumen HTML yang telah dikunjungi oleh crawler dan di-indeks oleh indexer. 2. Tabel words menyimpan kata-kata yang ditemukan oleh indexer. 3. Tabel frequency menyimpan frekuensi kemunculan suatu kata pada sebuah dokumen HTML 4. Tabel unvisited_urls menyimpan URL yang belum dikunjungi oleh crawler. 5. Tabel visited_urls menyimpan URL yang telah dikunjungi oleh crawler.

3.6. Antarmuka
Komponen crawler memiliki antarmuka untuk memasukkan URL, tombol Telusuri untuk memulai proses crawling, menampilkan indikator proses crawling, serta tombol Stop yang dapat digunakan oleh pengguna untuk proses crawling. Indikator proses crawling digunakan untuk menampilkan URL yang sedang diproses. Komponen searcher memiliki antar muka untuk memasukkan kata kunci dan menampilkan hasil pencarian. Informasi yang ditampilkan meliputi judul halaman web, URL sebenarnya, konten halaman web yang terkait kata kunci, serta waktu halaman web diindeks.

Gambar 6 Diagram alir crawler dan indexer pada mesin pencari

3.4. Diagram Entity Relationship


Diagram Entity Relationship digunakan untuk menggambarkan keterhubungan antara entitas-entitas yang ada.

3.7. Implementasi
Mesin pencari berbasis web diimplementasikan dengan menggunakan PHP, web server Apache 2 dan database server MySQL 5.

3.8. Pengujian
Pengujian dilakukan dengan menggunakan metode blackbox, dimana perangkat lunak diuji untuk mengetahui fungsi-fungsi yang ada bekerja dengan baik dalam artian masukan diterima dengan benar dan keluaran yang dihasilkan benar. Pengujian menggunakan browser Mozilla Firefox 3.0.13 untuk mengakses situs web Dinas Perindustrian dan Perdagangan Provinsi Riau. Alamat situs web http://disperindag.riau.go.id dimasukkan

Gambar 7 Diagram ER

pada antarmuka crawler, kemudian tombol Telusuri ditekan.

yaitu 162,9757 detik/212 halaman web = 0,7687 detik/halaman web. Pengujian pencarian dilakukan dengan memasukkan kata kunci menjelang ramadhan. Mesin pencari dapat memberikan hasil pencarian dalam waktu 0.244 detik seperti terlihat pada gambar berikut.

Gambar 8 Antarmuka proses crawler

Selama proses penelusuran, interaksi dapat dilakukan di browser. Setelah beberapa lama, tombol Stop diklik untuk menghentikan proses penelusuran. Berdasarkan hasil penelusuran diperoleh data dan informasi sebagai berikut: 1. Proses penelusuran telah berlangsung selama 29 menit 1 detik. 2. URL yang telah ditelusuri sebanyak 523 buah, dengan rincian 501 URL untuk dokumen HTML dan 22 URL untuk non-dokumen HTML. 3. URL yang belum ditelusuri sebanyak 2 buah. 4. Pemeriksaan DUST yang dilakukan oleh indexer terhadap 501 URL untuk dokumen HTML menghasilkan 212 dokumen HTML dengan konten berbeda. Contoh URL yang memiliki konten sama, yaitu: a. http://disperindag.riau.go.id/, b. http://disperindag.riau.go.id/inde x.php, dan c. http://disperindag.riau.go.id/inde x.php?option=com_frontpage&I temid=1 URL yang disimpan ke basis data yaitu http://disperindag.riau.go.id/. Kecepatan crawling di server dihitung dengan rumus total waktu yang diperlukan untuk proses crawling seluruh halaman web dibagi total halaman web yang diperoleh, yaitu 232,2814 detik/212 halaman web = 1,0956 detik/halaman web. Kecepatan indexing di server dihitung dengan rumus total waktu yang diperlukan untuk proses indexing seluruh halaman web dibagi total halaman web yang diperoleh,

Gambar 9 Halaman hasil pencarian

Dengan melakukan pencarian ulang dengan menggunakan kata kunci yang sama, diketahui bahwa hasil pencarian konsisten.

4. PEMBAHASAN
Setelah dilakukan pengujian, diperoleh hasil sebagai berikut: 1. Komponen crawler dapat melakukan penelusuran di situs web. Setelah penelusuran, basis data berisikan 212 dokumen-dokumen HTML yang telah ditelusuri. 2. Kecepatan rata-rata crawling yaitu 1,0956 detik/halaman web. 3. Komponen indexer dapat melakukan indexing terhadap dokumen HTML. Setelah penelusuran, basis data berisikan kata-kata dan frekuensi kemunculan kata. 4. Dokumen-dokumen HTML yang disimpan memiliki konten yang berbeda. 5. Kecepatan rata-rata indexing yaitu 0,7687 detik/halaman web. 6. Proses crawling dan indexing terhadap URL berlangsung secara bertahap. Hal ini dapat dilihat dari nilai time stamp untuk setiap dokumen yang semakin bertambah.

7. Komponen searcher dapat melakukan pencarian berdasarkan kata kunci yang dimasukkan. 8. Hasil pencarian memperlihatkan konsistensi dengan ditampilkannya hasil pencarian yang sama ketika kata kunci yang sama dicari berulangulang.

6. UCAPAN TERIMA KASIH


Terima kasih disampaikan kepada Fakultas Sains dan Teknologi, Universitas Islam Negeri Sultan Syarif Kasim sebagai institusi penyandang dana yang membantu terlaksananya kegiatan penelitian ini.

7. DAFTAR PUSTAKA
Calishain, T., and Hemenway, K. (2003). Spidering Hacks. O'Reilly Gralla, Preston. (2006). Google Search and Tools in a Snap, Sams Hoffman, B., dan Sullivan B. (2008) Ajax Security. Addison Wesley Powers, Shelley. (2007). Adding Ajax. Oreilly Schrenk, M. (2007). Webbots, Spiders, and Screen Scrapers. No Strach Snook, J., Gustafson, A., Langridge, S., dan Webb, D. (2007). Accelerated DOM Scripting with Ajax, APIs, and Libraries. Apress Yossef, Z., Keidar, I., Schonfeld, U. (2007) Do Not Crawl in the DUST: Different URLs with Similar Text. Track: Data Mining, Session: Mining Textual Data, Zaki, A. (2008). Ajax untuk Pemula. PT Elex Media Komputindo

5. KESIMPULAN DAN SARAN 5.1. Kesimpulan


1. Kesimpulan yang dapat diambil yaitu: Mesin pencarian berbasis web menggunakan Ajax memiliki tiga komponen, yaitu crawler, indexer dan searcher. Crawler dapat dijalankan di browser. Proses crawling terhadap sejumlah URL berlangsung satu persatu untuk setiap URL dengan melibatkan Ajax Crawler dapat menelusuri dokumen HTML berdasarkan masukan URL, menemukan link-link dan menyimpannya ke basis data. Indexer dapat melakukan pemeriksaan terhadap halaman-halaman web dengan konten sama, serta melakukan ekstraksi terhadap kata-kata di dokumen HTML dan menyimpannya ke basis data Searcher dapat memfasilitas pencarian oleh pengguna.

2.

3.

4.

5.

5.2. Saran
Saran untuk penelitian selanjutnya yaitu: 1. Indexer dapat mengenali bagianbagian halaman web dengan konten sama pada seluruh halaman di situs web, seperti header, footer, menu dan iklan yang sama pada halamanhalaman web. 2. Searcher menggunakan filter, seperti judul dokumen HTML, meta dan domain. 3. Performa pencarian dapat ditingkatkan dengan algoritma pencarian dan perangkingan yang lebih baik.