Di Balik Selubung Search Engine

Fotografi prei dulu. Ini panggilan jiwa saya yang notabene ada di ilmu Computer Science. Ceileh… ;))

Search engine, dalam disiplin ilmu komputer (Computer Science), masuk dalam kategori information retrieval. Ini adalah ilmu untuk mendapatkan informasi yang diperlukan dengan cepat di dalam bank data yang sangat besar. Ibaratnya seperti mencari jarum dalam tumpukan jerami. Batasan hasil yang didapatkan haruslah: cepat dan tepat. Seperti sebuah buku teks setebal 1000 halaman yang selalu memiliki indeks di bagian akhir halaman sangat membantu untuk mencari sebuah topik spesifik di dalam buku tersebut.

Pembuatan Indeks

Fase pertama dalam information retrieval adalah pembuatan indeks. Indeks, seperti namanya, adalah sebuah kumpulan kata-kata kunci yang disusun sedemikian rupa yang mudah dicari. Bayangkan kalau setumpuk tebal data tidak memiliki indeks. Pencarian informasi akan memakan waktu yang sangat lama karena setiap data harus dilihat satu per satu. Dengan adanya indeks, pencarian akan jauh lebih cepat karena setiap indeks langsung merujuk pada asal sumber.

Ada banyak macam algoritma yang digunakan untuk menyusun indeks dalam sebuah information retrieval. Salah satu contohnya adalah Stop Words untuk text retrieval. Atau jika merujuk Tugas Akhir saya ketika mendapatkan gelar S1, saya menggunakan algoritma histogram parameter fraktal sebuah citra (Lihat kategori Tugas Akhir-ku). Yap, riset saya waktu itu bukan pada ruang lingkup text retrieval, tetapi image retrieval. Pencarian gambar menggunakan gambar contoh. Gambar yang paling mirip dengan gambar contoh dikeluarkan. Kedengaran cerdas bukan? ;))

Apa itu Stop Words? Google, dalam bagian kecil sistem search engine-nya yang kompleks menggunakan algoritma Stop Words. Algoritma ini menganalisis suatu data teks, menyingkirkan kata-kata yang dianggap tidak penting dan menyisakan kata-kata penting untuk dijadikan indeks. Kata-kata tidak penting ini adalah kata-kata yang paling sering muncul dalam suatu tulisan. Contohnya seperti “di”, “ke”, “dari”, “yang”, “satu”, “dua”, dan seterusnya. Daftar kata-kata yang tidak penting inilah yang dinamakan Stop Words.

Pencarian Data dan Peringkat

Proses selanjutnya tentu saja adalah pencarian informasi terhadap sekian besar data. Karena telah dibuatkan indeks, maka sistem akan melakukan analisis terhadap indeks. Mencari kata-kata yang sesuai dengan apa yang dicari pengguna. Kemudian setiap data yang memiliki indeks yang sesuai ditampilkan kepada pengguna. Tampilan itu lengkap dengan rujukan ke tempat data aslinya untuk memudahkan jika pengguna ingin menampilkan data tersebut secara utuh.

Bagaimana urutan penampilannya? Sistem search engine wajib memiliki fasilitas pengurutan berdasarkan relevansinya. Data yang paling relevan dengan apa yang dicari harus ditampilkan di paling atas. Kemudian berturut-turut ditampilkan secara peringkat dari yang paling relevan hingga yang paling melenceng dari yang dicari.

Algoritma relevansi sendiri bisa sangat rumit. Yang paling sederhana adalah menghitung jumlah kemunculan indeks terhadap kata kunci pencarian. Semakin banyak sebuah indeks data mengandung kata kunci pencarian, semakin relevan dia.

Google memiliki algoritma relevansi yang sangat kompleks bernama Google Page Rank. Banyak faktor yang dipertimbangkan Google agar sebuah halaman muncul dalam halaman pertama pencarian, seperti misalnya jumlah link, kesesuaian dengan kata kunci, kesesuaian isi, dan masih banyak lagi bahkan termasuk kelakuan pengguna. Anda dan saya, meskipun mencari dengan kata kunci yang sama — katakanlah “gadis berjilbab” — akan mendapatkan hasil yang berbeda, tergantung kebiasaan kita dalam melakukan pencarian.

Saya sendiri dalam Tugas Akhir S1 saya menghitung relevansi ini dengan algoritma pengukuran jarak. Bukan hanya jarak tempuh saja yang memiliki perhitungan matematis, tetapi juga jarak kemiripan. Ada jarak kartesian (cartesian distance) dan jarak manhattan (manhattan distance). Keduanya memiliki rumus matematika yang cukup membuat kepala pusing ketika coba dituliskan dalam kode program.

Implementasi Pustaka

Secara praktis, implementasi algoritma information retrieval sudah banyak dikembangkan. Spesifik untuk text retrieval, Apache Lucene adalah pustaka (library) yang secara praktis menyediakan fasilitas untuk membuat sistem information retrieval berbasis teks. Disini telah disediakan berbagai Analyzer untuk mengolah tumpukan data menjadi indeks. Salah satunya adalah algoritma Stop Words yang sederhana. Hanya diperlukan daftar Stop Words dalam bahasa tertentu dan dimasukkan dalam Lucene, sebuah sistem information retrieval yang cukup canggih sudah bisa dibuat. Terima kasih Lucene!

Author: Galih Satriaji

Bookaholic, Workaholic. Chubby. That's me!

12 thoughts

  1. hm.. ini serasa membaca tugas akhire mas galih, kekeke. membedah proses dibelakang search engine dalam sudut pandang ilmiah, ternyata seperti itu ya. pantas kata sambung ga pernah ada dalam hasil pencarian. tapi yg jelas mesin pencari macam google ini sangat membantu sekali. bermula dari lab universitas hingga berlanjut ke seluruh dunia, dan jadi top site! thx google.

  2. nah, itu tadi yang umum. sedangkan kita tahu bersama bahwa google memiliki kesaktian yang sangat tinggi. bayangkan dalam satu detik rubuan artikel baru muncul di internet melalui blog post. dan dalam hitungan detik itu pula google mampu mengindex dan memunculkan di search engine. padahal data-data itu tersimpan di dalam database internal host server, dimana untuk mengaksesnya diperlukan mekanisme open database connection. bagaimana bisa googlebot melakukan semua itu dalam hitungan detik? apa ada banyak node di tiap wilayah tertentu yang masing-masing node punya googlebot sendiri untuk menjaring data dari wilayahnya kemudian diagregasi ke pusatnya?

  3. Manhattan, cartesian… ah… nostalgia masa kuliah…

    *mulai nostalgia dengan berkunang2…*
    *otak mulai panas*

    Masih belum membahas soal pembobotan dan Latent Semantic Indexing ya?
    Belum lagi Eigen Vector dan Bayesian Network.

    *meledak*

  4. … Anda dan saya, meskipun mencari dengan kata kunci yang sama — katakanlah “gadis berjilbab” — akan mendapatkan hasil yang berbeda, tergantung kebiasaan kita dalam melakukan pencarian. …

    Wew… Gak jauh”.. 😀

    Hore.. Akhirnya… Kembali juga ke-“disiplin ilmu” yang sudah di dalami… 😉

  5. kemarin saat mw nysun tugas akhir, pengen ngebuat search engine, cuma mengalami kendala untuk kategori crawlingnya…
    susah bgt, mana pake indexing lagi, jadi setiap data yang di crawling, disimpan didatabase dan jika sudah ada, maka akan dilewatkan dan diupdate jika ada perubahan…..yah, jadinya kemarin jadi ganti topik deh

  6. #Anang:
    Yes, thanks Google.

    #det:
    Jumlah googlebot kan nggak sedikit juga. Dan Google juga memperhatikan frekuensi update dari website. Semakin sering website terupdate, semakin sering pula googlebot berkunjung.

    #dnial:
    Istilahnya jangan terlalu dalam dan, termehek-mehek nanti 😀

    #ryht:
    teteup lah… pemujaan terhadap gadis berjilbab :))

    #okta sihotang:
    ya memang begitulah kelakuan sebuah crawler search engine dan disitulah keasyikan dan tantangannya

    #andy:
    betul. ranah information retrieval adalah ranah yang cukup kompleks dan rumit.

    #ndop:
    yaaa jauh lah mas. saya bukan apa apa kalau suruh ngelamar google. cukup nguli begini saja sudah alhamdulillah.

  7. salam kenal, wah temanya menarik . palagi terkait dgn top TA saya. yaitu membuat search engine dgn metode . masih cr2 bahan buat ttg metode IR, yg ttg indexing, etc. pagerank kan metode nya si GOOgle “”googel bin bogel”” yg ngalahin search engine alta vista. btw. kl ada yg bs ksh refernsi metode IR apa aja yg bs dpk text search gt. thks

  8. makasih ya mas atas infonya … membantu sekali untuk saya yang sedang buat tugas akhir…
    😀
    kalo ga keberatan, saya minta email nya untuk tanya2…
    makasi sebelumnya

Leave a Reply

Your email address will not be published. Required fields are marked *