You are on page 1of 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

URL (Uniform Resource Locator) 4. Sayangnya. yang merupakan salah satu komponen penting dari mesin pencari berbasis web. Pengguna tetap dapat melakukan interaksi di browser selama proses tersebut berlangsung. Plug-in. Mesin pencari lain. TEORI DAN METODE 2. proses menjalankan spider di browser berlangsung secara synchronous. Web client (biasanya web browser) 2. terutama situs web dinamis. dilakukan rancang bangun suatu mesin pencari berbasis web. HTTP (HyperText Transfer Protocol) 5. Web server 3. Snap. maka spider harus menelusuri ratusan bahkan ribuan halaman web secara synchronous. Ajax memungkinkan komunikasi antara client dengan server berlangsung secara asynchronous. penggunaan Ajax pada mesin pencari hanya sebatas membantu pemilihan kata kunci oleh pengunjung web. Kemampuan Ajax dalam komunikasi secara asynchronous digunakan pada spider. Server side scripting c. Aplikasi Berbasis Web Suatu aplikasi dapat dikategorikan sebagai aplikasi berbasis web jika: 1. browser dapat melakukan request ke server hanya pada bagian dari sebuah halaman web tanpa perlu melakukan request terhadap halaman web secara keseluruhan. Saat ini. di antaranya: 1. 2. sampai ke sejumlah spider yang saling berkerjasama antara satu dengan lainnya untuk melakukan pencarian (searching). Aplikasi di sisi client umumnya berupa web browser. Pada kondisi tersebut. HTML (HyperText Markup Language) 6. Hal ini akan meningkatkan interaktivitas. Hal tersebut dilakukan untuk memudahkan spider dijalankan di browser. 3. dan penyusunan indeks (indexing) terhadap situssitus web. Spider akan menelusuri satu atau lebih URL sampai selesai. Apabila spider digunakan untuk menelusuri halamanhalaman yang ada pada sebuah situs web.com. Pada dasarnya. melakukan pertukaran data dengan server di belakang layar. CSS (Cascading Style Sheet) 7. pengelompokan (cataloging). dimana pengguna tidak dapat melakukan interaksi di browser. 2. eksekusi program di sisi server b. sebagai mana yang dilakukan oleh Google. Teknologi pembangun aplikasi berbasis web. Schrenk (2007) menyarankan penggunaan command shell dikarenakan kelemahan yang dimiliki oleh browser terkait buffering. jauh lebih lama dari pada men-download halaman web pada umumnya. Selama eksekusi spider.kompleksitas yang berbeda bergantung kepada kebutuhan pembuatnya. Client side scripting d. eksekusi program di sisi client . Buffering memungkinkan browser untuk menunggu sampai seluruh halaman web diterima dari server sebelum merender atau menampilkannya. Ajax (Asynchronous JavaScript and XML) merupakan suatu teknik pemrograman berbasis web untuk menciptakan aplikasi web interaktif. Aplikasi di sisi server berkomunikasi dengan client melalui web server. browser akan mengalami freeze. sehingga halaman web tidak harus dibaca ulang secara keseluruhan setiap kali seorang pengguna melakukan perubahan. dan usability. pesan status yang ditulis oleh spider mungkin tidak dapat ditampilkan selagi browser melakukan buffering. Pemrograman web a. Dalam penelitian ini. Dengan adanya Ajax. Aplikasi tersebut menggunakan protokol HTTP (HyperText Transfer Protocol). seperti fasilitas Google Suggest. dari kode program sederhana untuk memperoleh informasi cuaca dari sebuah halaman web. Spider dapat dijalankan dengan menggunakan command shell atau browser. menggunakan Ajax untuk memberikan interaktifitas pada antar muka hasil pencarian. Tujuannya adalah untuk memindahkan sebagian besar interaksi pada komputer klien. browser buffering akan menyulitkan spider karena spider sering kali dijalankan dalam waktu yang tidak sebentar. kecepatan. CGI.1.

Ketika respon dari server sampai di browser. 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.php). yaitu (Gralla.3. browser melakukan request suatu halaman web dinamis ke server secara keseluruhan. Crawler digunakan untuk menelusuri web.com/publications/essays/ archives/000385. dan lebih sedikit bandwidth yang digunakan untuk mengirimkan respon.adaptivepath. Ajax Istilah Asynchronous JavaScript and XML (Ajax) diperkenalkan oleh Jesse James Garret dalam artikelnya yang berjudul “Ajax: New Approach to Web Application” (www. Browser mengakhiri proses ini dengan merender kode HTML tersebut di jendela browser. memeriksa indeks berdasarkan kata kunci. 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. Browser akan memiliki antar muka yang lebih responsif dengan adanya waktu respon yang lebih cepat. browser akan berkedip saat merender halaman web. Ajax merupakan istilah untuk enkapsulasi penggunaan sejumlah teknologi. CSS dan XML. Server aplikasi merespon dengan membuat kode HTML untuk halaman tersebut dan mengembalikannya ke browser. Pada awalnya. Mesin pencari memiliki beberapa komponen. Sebelum Ajax. 3. Server dapat memproses request secara lebih cepat. Gambar 2 Model klasik request/respon web secara sinkronus (Hoffman. . Gambar 1 Cara kerja mesin pencari 2. Indexer menerima halaman-halaman web dari spider. disebut juga spider atau robot. Mesin Pencari Mesin pencari (search engine) merupakan alat bantu yang dirancang untuk mencari informasi di web. Proses tersebut tidak efisien.2. Crawler. pengguna tidak dapat menggunakan aplikasi selagi request diproses oleh server. Sekarang ini. 2006): 1. dan tidak memerlukan render ulang halaman secara keseluruhan. seperti HTML dan JSON.2. kemudian menampilkan hasil pencariannya. kemudian membuat indeks dari konten halaman-halaman web tersebut. 2008) Dengan adanya Ajax. DOM scripting. browser dapat melakukan request hanya pada bagian dari sebuah halaman tanpa perlu melakukan request terhadap halaman tersebut secara keseluruhan. 2. Query engine atau query parser menerima masukan dari pengguna berupa kata kunci. Selain itu. yaitu obyek XMLHttpRequest.

2.1. Proses crawler yang dirancang dengan menggunakan Ajax dapat dilihat pada gambar 4. Indikator proses crawling pada halaman web dapat diupdate dengan menampilkan URL tersebut. Ketika respon diterima. 4. dimana pengguna tidak dapat melakukan interaksi di browser.kesan adanya masalah pada proses tersebut. 2008) Proses tersebut di atas dilakukan secara asynchronous. browser meregister metode callback. Pengguna dapat memaksa proses crawling berhenti dengan menekan tombol Stop pada toolbar browser. Link-link yang ditemukan akan digunakan sebagai referensi untuk URL yang akan diproses berikutnya. Setiap kali proses crawling dan indexing terhadap sebuah URL selesai dilakukan. Setelah request dilakukan. Gambar 3 Model request/respon Ajax secara asinkronus (Hoffman. sehingga memberikan Gambar 4 Proses crawling menggunakan Ajax Crawler mengumpulkan link-link dimulai dari URL yang dimasukkan oleh pengguna. Proses crawling dalam waktu yang lama akan menyebabkan browser mengalami freeze. Proses crawling dalam waktu yang lama akan ditolak server dengan memberikan pesan request time out. Proses tersebut menyebabkan browser menunggu sampai seluruh URL selesai ditelusuri dan respon dalam bentuk halaman web diterima dari server sebelum browser merender atau menampilkannya. 3. Selagi menunggu respon diterima. Hal tersebut dapat menyebabkan proses crawling dan indexing terhadap suatu URL terhenti begitu saja tanpa menyelesaikan URL tersebut terlebih dahulu. Crawler di Browser dengan Menggunakan Ajax Eksekusi crawler di browser memiliki beberapa kelemahan yaitu: 1. metode callback dipanggil untuk melakukan update pada halaman. server memberikan respon kepada browser berupa informasi URL berikutnya. pengguna dapat melanjutkan untuk menggunakan aplikasi. HASIL 3. Sejumlah request dapat dimasukkan ke dalam antrian pada waktu yang sama. Hal tersebut menyebabkan indikator proses crawling tidak dapat ditampilkan. Proses crawling berdasarkan model klasik request/response secara synchronous. Proses request dan respon menggunakan Ajax dilakukan melalui JavaScript dengan membuat obyek XMLHttpRequest dan meregister metode callback. 3. Metode callback tersebut akan melakukan update pada halaman web dan . dan seterusnya.

d. Operator boolean AND dan OR digunakan untuk membatasi pencarian. sehingga crawler tidak akan memproses URL berikutnya. Melakukan pembersihan konten dokumen HTML dari kode HTML. b. Memproses query pengguna. Mesin Pencari Berbasis Web Menggunakan Ajax Mesin pencari berbasis web menggunakan Ajax dirancang bangun untuk mencari informasi di web. Pengguna menghentikan proses penelusuran dengan menekan tombol Stop pada halaman web. 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. Menampilkan hasil pencarian kepada pengguna berdasarkan rangking. Indexer. Mesin pencari ini memiliki 3 (tiga) komponen utama. dilakukan proses indexing terhadap katakata yang ditemukan pada konten dokumen HTML. Melakukan parsing terhadap konten dokumen HTML untuk menemukan link-link ke halaman web lainnya pada domain yang sama. b. Diagram Alir Diagram alir untuk komponen searcher dapat dilihat pada Gambar 5. dan JavaScript. Searcher.3. dan meta (keyword dan description) dan menyimpannya ke basis data. 2. CSS. Membaca konten dokumen HTML pada URL tersebut. d.membaca apakah ada permintaan pengguna agar proses crawling dihentikan atau apakah ada URL berikutnya yang akan diproses. Menyimpan URL yang telah ditelusuri ke basis data. c. dengan fungsionalitas: a. dengan fungsionalitas: a. Setelah pembersihan. Crawler. d. dengan fungsionalitas: a. 3. Menerima masukan berupa kata kunci oleh pengguna. Frekuensi kemunculan kata disimpan ke basis data. 3. 3.2. maka secara otomatis proses request terhadap URL berikutnya kembali dilakukan. c. disebut Yossef (2007) sebagai DUST (Different URLs with Similar Text). c. Melakukan parsing terhadap konten dokumen HTML untuk menemukan judul dokumen (title). Melakukan pemeriksaan terhadap konten dokumen HTML yang diterima dari crawler. Menghitung rangking halaman web berdasarkan frekuensi kemunculan kata kunci di dalam dokumen tersebut. Pemeriksaan dilakukan untuk menghindari proses indexing terhadap URL-URL dengan konten dokumen HTML yang sama. . Jika permintaan tersebut tidak ada dan URL berikutnya tersedia. yaitu: 1. b.

13 untuk mengakses situs web Dinas Perindustrian dan Perdagangan Provinsi Riau. serta tombol Stop yang dapat digunakan oleh pengguna untuk proses crawling. tombol Telusuri untuk memulai proses crawling.go.id dimasukkan Gambar 7 Diagram ER . 2. Basis Data Tabel-tabel di dalam basis data yaitu: 1. Pengujian Pengujian dilakukan dengan menggunakan metode blackbox.riau. Antarmuka Komponen crawler memiliki antarmuka untuk memasukkan URL. Tabel ‘visited_urls’ menyimpan URL yang telah dikunjungi oleh crawler.8. Gambar 6 Diagram alir crawler dan indexer pada mesin pencari 3.0. Implementasi Mesin pencari berbasis web diimplementasikan dengan menggunakan PHP. konten halaman web yang terkait kata kunci.3. 3.4. URL sebenarnya. dimana perangkat lunak diuji untuk mengetahui fungsi-fungsi yang ada bekerja dengan baik dalam artian masukan diterima dengan benar dan keluaran yang dihasilkan benar. web server Apache 2 dan database server MySQL 5. Alamat situs web http://disperindag. Komponen searcher memiliki antar muka untuk memasukkan kata kunci dan menampilkan hasil pencarian. 3. Tabel ‘documents’ menyimpan informasi dokumen HTML yang telah dikunjungi oleh crawler dan di-indeks oleh indexer. Informasi yang ditampilkan meliputi judul halaman web. Tabel ‘words’ menyimpan kata-kata yang ditemukan oleh indexer. Pengujian menggunakan browser Mozilla Firefox 3. 3. 3.7. Indikator proses crawling digunakan untuk menampilkan URL yang sedang diproses. Tabel ‘frequency’ menyimpan frekuensi kemunculan suatu kata pada sebuah dokumen HTML 4. 5. menampilkan indikator proses crawling. serta waktu halaman web diindeks.6. Diagram Entity Relationship Diagram Entity Relationship digunakan untuk menggambarkan keterhubungan antara entitas-entitas yang ada.5. Tabel ‘unvisited_urls’ menyimpan URL yang belum dikunjungi oleh crawler.

http://disperindag. Gambar 9 Halaman hasil pencarian Dengan melakukan pencarian ulang dengan menggunakan kata kunci yang sama. . Pemeriksaan DUST yang dilakukan oleh indexer terhadap 501 URL untuk dokumen HTML menghasilkan 212 dokumen HTML dengan konten berbeda. Setelah beberapa lama. b. Kecepatan crawling di server dihitung dengan rumus total waktu yang diperlukan untuk proses crawling seluruh halaman web dibagi total halaman web yang diperoleh. yaitu: a.2814 detik/212 halaman web = 1. 5. basis data berisikan kata-kata dan frekuensi kemunculan kata. Contoh URL yang memiliki konten sama. Pengujian pencarian dilakukan dengan memasukkan kata kunci “menjelang ramadhan”. Setelah penelusuran. Kecepatan rata-rata crawling yaitu 1.riau. Gambar 8 Antarmuka proses crawler Selama proses penelusuran. diperoleh hasil sebagai berikut: 1. 2. URL yang belum ditelusuri sebanyak 2 buah.go. 3. Hal ini dapat dilihat dari nilai time stamp untuk setiap dokumen yang semakin bertambah. PEMBAHASAN Setelah dilakukan pengujian. http://disperindag.0956 detik/halaman web.9757 detik/212 halaman web = 0. Mesin pencari dapat memberikan hasil pencarian dalam waktu 0. yaitu 162. 2. 6.id/inde x. 4.php. Komponen crawler dapat melakukan penelusuran di situs web.id/.go. Proses penelusuran telah berlangsung selama 29 menit 1 detik. tombol Stop diklik untuk menghentikan proses penelusuran. dan c.riau. 4.go. http://disperindag. Kecepatan indexing di server dihitung dengan rumus total waktu yang diperlukan untuk proses indexing seluruh halaman web dibagi total halaman web yang diperoleh. yaitu 232. kemudian tombol Telusuri ditekan.riau.go. Komponen indexer dapat melakukan indexing terhadap dokumen HTML. diketahui bahwa hasil pencarian konsisten. Dokumen-dokumen HTML yang disimpan memiliki konten yang berbeda. 3. 4.0956 detik/halaman web. Setelah penelusuran.id/inde x.7687 detik/halaman web.7687 detik/halaman web.pada antarmuka crawler. Berdasarkan hasil penelusuran diperoleh data dan informasi sebagai berikut: 1. Proses crawling dan indexing terhadap URL berlangsung secara bertahap.244 detik seperti terlihat pada gambar berikut. Kecepatan rata-rata indexing yaitu 0. basis data berisikan 212 dokumen-dokumen HTML yang telah ditelusuri. dengan rincian 501 URL untuk dokumen HTML dan 22 URL untuk non-dokumen HTML. interaksi dapat dilakukan di browser.php?option=com_frontpage&I temid=1 URL yang disimpan ke basis data yaitu http://disperindag.id/.riau. URL yang telah ditelusuri sebanyak 523 buah.

Crawler dapat dijalankan di browser.2. Komponen searcher dapat melakukan pencarian berdasarkan kata kunci yang dimasukkan. serta melakukan ekstraksi terhadap kata-kata di dokumen HTML dan menyimpannya ke basis data Searcher dapat memfasilitas pencarian oleh pengguna. (2007). Hasil pencarian memperlihatkan konsistensi dengan ditampilkannya hasil pencarian yang sama ketika kata kunci yang sama dicari berulangulang. Indexer dapat mengenali bagianbagian halaman web dengan konten sama pada seluruh halaman di situs web. 5. 7. O'Reilly Gralla. 2. Preston.1. (2003). meta dan domain. yaitu crawler. UCAPAN TERIMA KASIH Terima kasih disampaikan kepada Fakultas Sains dan Teknologi. Gustafson. U. I. Accelerated DOM Scripting with Ajax. and Screen Scrapers. Kesimpulan yang dapat diambil yaitu: Mesin pencarian berbasis web menggunakan Ajax memiliki tiga komponen. dan Webb.. Langridge. 8. A. and Libraries. M. (2007) Do Not Crawl in the DUST: Different URLs with Similar Text. Searcher menggunakan filter. J. 5.. Z. Track: Data Mining. (2007). PT Elex Media Komputindo 5. Proses crawling terhadap sejumlah URL berlangsung satu persatu untuk setiap URL dengan melibatkan Ajax Crawler dapat menelusuri dokumen HTML berdasarkan masukan URL. O’reilly Schrenk. KESIMPULAN DAN SARAN 5. Ajax untuk Pemula. Zaki. (2007). dan Sullivan B. T. Universitas Islam Negeri Sultan Syarif Kasim sebagai institusi penyandang dana yang membantu terlaksananya kegiatan penelitian ini.. Spidering Hacks. Addison Wesley Powers. APIs. 2. Schonfeld.. Apress Yossef. K. Indexer dapat melakukan pemeriksaan terhadap halaman-halaman web dengan konten sama. Webbots. Shelley. D. Saran Saran untuk penelitian selanjutnya yaitu: 1. 3. Sams Hoffman. Kesimpulan 1. 4.. footer. menu dan iklan yang sama pada halamanhalaman web. and Hemenway. S. (2006). Google™ Search and Tools in a Snap..7. 3. 6. DAFTAR PUSTAKA Calishain. (2008). (2008) Ajax Security. menemukan link-link dan menyimpannya ke basis data. . No Strach Snook. seperti header. Keidar. seperti judul dokumen HTML. Adding Ajax. B. indexer dan searcher. Performa pencarian dapat ditingkatkan dengan algoritma pencarian dan perangkingan yang lebih baik. A.. Session: Mining Textual Data. Spiders.