1 MASHUP INFORMASI PADA SITUS BLOG INSTITUT PERTANIAN BOGOR BERBASIS WORDPRESS MENGGUNAKAN WEB SERVICE NATAN PURNAWAN PARDOMUAN MANULLANG DEPARTEMEN I...
MASHUP INFORMASI PADA SITUS BLOG INSTITUT PERTANIAN BOGOR BERBASIS WORDPRESS MENGGUNAKAN WEB SERVICE
NATAN PURNAWAN PARDOMUAN MANULLANG
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2013
PERNYATAAN MENGENAI SKRIPSI DAN SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA Dengan ini saya menyatakan bahwa skripsi berjudul Mashup Informasi pada Situs Blog Institut Pertanian Bogor Berbasis Wordpress Menggunakan Web Service adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini. Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor. Bogor, November 2013 Natan Purnawan Pardomuan Manullang NIM G64090099
ABSTRAK NATAN PURNAWAN PARDOMUAN MANULLANG. Mashup Informasi pada Situs Blog Institut Pertanian Bogor Berbasis Wordpress Menggunakan Web Service. Dibimbing oleh FIRMAN ARDIANSYAH. Wordpress merupakan salah satu content management system (CMS) untuk pengembangan aplikasi web. Situs web Institut Pertanian Bogor (IPB) memiliki subdomain bagi mahasiswa, dosen, atau lembaga kemahasiswaan untuk memiliki sebuah blog berbasiskan Wordpress. Isi dari Wordpress biasanya memiliki struktur yang sama dan isinya dapat dipanggil dalam format tertentu melalui web service yang sudah tersedia di dalamnya. Pada penelitian ini akan diintegrasikan isi dari total 20 blog Wordpress di situs IPB, yang terdiri dari lima blog mahasiswa dan lima blog lembaga kemahasiswaan, serta sepuluh blog dosen. Web service yang digunakan yaitu JSON API, sebuah API yang tersedia untuk Wordpress. JSON API mengijinkan sisi klien mendapatkan dan memanipulasi isi wordpress menggunakan HTTP request. Isi dikembalikan dalam data berstruktur JSON yang akan mengalami praproses sehingga dapat diindeks oleh Sphinx Search, sebuah library tambahan untuk membangun sebuah sistem pencari. Hasil evaluasi sistem pencari yang didapatkan yaitu nilai mean average precision dari 9 query yang diuji sebesar 0.48, yang berarti sekitar 48% dokumen yang didapatkan oleh sistem berdasarkan query, relevan terhadap query. Kata kunci: JSON RESTful API, mashup, web service, wordpress
ABSTRACT NATAN PURNAWAN PARDOMUAN MANULLANG. Information Mashup on Bogor Agricultural University‟s Wordpress-Based Blog using Web Service. Supervised by FIRMAN ARDIANSYAH. Wordpress is one type of Content Management System (CMS) in web application development. Bogor Agricultural University (IPB) website has subdomains for every student, faculty, or student organization to have a blog using Wordpress. Wordpress contents usually have standardized structure and the contents can be called in a particular format via a web service plugin that is installed in it. This research will integrate the contents of total 20 blogs of IPB, 5 blog each belong to students and student organizations, and the remaining 10 belong to lecturers. Web service that is used is JSON API, an API available for Wordpress. JSON API allows the client to obtain and manipulate Wordpress content using HTTP requests. The content is returned in JSON structured data which will be pre-processed so that it can be indexed by Sphinx Search, an additional library to develop a search engine. The result of the search engine evaluation is the mean average precision of 9 queries tested to the system, which is 0.48. That means approximately 48% of the documents retrieved by the system based on the query, are relevant to the query. Keyword : JSON RESTful API, mashup, web service, wordpress
MASHUP INFORMASI PADA SITUS BLOG INSTITUT PERTANIAN BOGOR BERBASIS WORDPRESS MENGGUNAKAN WEB SERVICE
NATAN PURNAWAN PARDOMUAN MANULLANG
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2013
Penguji: 1 Irman Hermadi, SKom MS 2 Ir Meuthia Rachmaniah, MSc
Judul Sl(J ipsi: Mashup InfolTlla:;i pada Situs Blog Institut Pertanian Bogor Berbasis Wordpress Menggllnakall Web 8etvice Nama : N2..tan Pumawar, PardoInuan l';1anullang NIM : G64090099
Disetujui okh
Firman A:diansyah_ SKorn MSi
Pembimbing
Tanggal Lulus:
Judul Skripsi : Mashup Informasi pada Situs Blog Institut Pertanian Bogor Berbasis Wordpress Menggunakan Web Service Nama : Natan Purnawan Pardomuan Manullang NIM : G64090099
Disetujui oleh
Firman Ardiansyah, SKom MSi Pembimbing
Diketahui oleh
Dr Ir Agus Buono, MSi MKom Ketua Departemen
Tanggal Lulus:
PRAKATA Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas kasih karunia-Nya sehingga karya ilmiah yang berjudul Mashup Informasi pada Situs Blog Institut Pertanian Bogor Berbasis Wordpress Menggunakan Web Service ini berhasil diselesaikan. Penelitian ini dilaksanakan mulai April 2013 sampai dengan September 2013 dan bertempat di Departemen Ilmu Komputer Institut Pertanian Bogor. Terima kasih penulis ucapkan kepada Bapak Firman Ardiansyah, SKom, MSi selaku pembimbing. Ucapan terima kasih tak lupa penulis ucapkan kepada semua pihak yang telah membantu penulisan skripsi ini, terutama rekan-rekan satu departemen yang mendukung secara moral maupun ide-ide dalam menyelesaikan skripsi ini, dan juga kepada Bapak Hanif Affandi Hartanto dan Bapak Priyo Puji Nugroho dari Direktorat Komunikasi dan Sistem Informasi Institut Pertanian Bogor. Ungkapan terima kasih juga disampaikan kepada ayah, ibu, serta seluruh keluarga, atas segala doa dan dukungannya. Semoga penelitian ini dapat bermanfaat.
Bogor, November 2013 Natan Purnawan Pardomuan Manullang
DAFTAR ISI DAFTAR TABEL
vi
DAFTAR GAMBAR
vi
DAFTAR LAMPIRAN
vi
PENDAHULUAN
1
Latar Belakang
1
Perumusan Masalah
1
Tujuan Penelitian
1
Ruang Lingkup Penelitian
2
METODE
2
Analisis
2
Pemilihan dan Pemasangan Web Service
2
Akuisisi dan Transformasi Data
2
Implementasi
3
Evaluasi
4
HASIL DAN PEMBAHASAN
5
Analisis Kebutuhan
5
Pemasangan Web Service
6
Akuisisi dan Transformasi Data
6
Implementasi
8
Evaluasi
9
SIMPULAN DAN SARAN
10
Simpulan
10
Saran
11
LAMPIRAN
12
RIWAYAT HIDUP
20
DAFTAR TABEL 1 Struktur data dari JSON API 2 Struktur data XML 3 Perhitungan AVP dan MAP dari kesembilan query
7 8 10
DAFTAR GAMBAR 1 2 3 4 5 6
Diagram metode penelitian hasil analisis Ilustrasi dan rumus perhitungan precision dan Arsitektur sistem mashup blog IPB Contoh potongan data artikel berstruktur JSON Contoh dokumen hasil konversi dari JSON ke XML Tampilan pencarian sistem
3 4 5 7 8 9
DAFTAR LAMPIRAN 1 2 3 4 5
Daftar blog yang digunakan sebagai sumber data penelitian Lima teratas hasil pencarian API Potongan dokumen akhir siap untuk diindeks oleh Sphinx Daftar stopwords Relevance set dari kueri yang diuji coba terhadap sistem
12 13 14 15 18
PENDAHULUAN Latar Belakang Institut Pertanian Bogor (IPB) adalah salah satu perguruan tinggi terbesar dan terkemuka di Indonesia. IPB memiliki 36 departemen yang tersebar ke dalam sembilan fakultas. Setiap departemen memiliki 80 sampai 130 mahasiswa dan puluhan dosen. Selain itu IPB memiliki berbagai macam Lembaga Kemahasiswaan (LK) resmi seperti Badan Eksekutif Mahasiswa (BEM) di setiap fakultas, Unit Kegiatan Mahasiswa (UKM), Himpunan Kemahasiswaan, dan LK lainnya. Pada situs utama IPB (http://ipb.ac.id), sudah disediakan subdomain berupa situs blog berbasis Wordpress untuk setiap mahasiswa, dosen, dan LK. Apabila setiap mahasiswa, dosen, dan LK memiliki sebuah blog, tentu betapa banyaknya informasi (isi) yang tersebar oleh setiap pengguna blog tersebut. Berdasarkan observasi pada penelitian ini, diketahui terdapat 13 330 blog mahasiswa, 114 blog lembaga kemahasiswaan, dan 1 458 blog staff/dosen di situs IPB. Oleh sebab itu sangat dibutuhkan suatu sistem yang dapat membantu pengguna mendapatkan informasi yang dibutuhkan secara cepat dari blog-blog tersebut. Mashup menggabungkan berbagai produk dari suatu aplikasi menggunakan layanan yang tersedia pada aplikasi, menjadi produk yang baru (Griffin 2008). Produk dari suatu aplikasi mashup harapannya dapat menghasilkan informasi yang lebih bermanfaat. Pada penelitian ini, produk yang digunakan yaitu isi dari blog-blog pada situs IPB. Oleh karena itu dalam penelitian ini akan dikembangkan aplikasi mashup informasi atau isi dari blog-blog yang ada di situs Institut Pertanian Bogor. Diharapkan dengan aplikasi ini, pengguna mendapatkan informasi yang relevan dengan kebutuhan informasi yang diinginkan pengguna.
Perumusan Masalah Rumusan masalah pada penelitian ini yakni bagaimana cara mengintegrasikan isi dari situs-situs blog IPB berbasis Wordpress yang berjumlah banyak. Setelah isi berhasil diintegrasikan, masalah lainnya yakni bagaimana mengatasi kesulitan pengguna dalam mencari suatu informasi dikarenakan jumlah blog sebagai sumber informasi yang sangat banyak.
Tujuan Penelitian Penelitian ini bertujuan untuk membuat suatu sistem mashup yang mampu mengintegrasikan isi dari berbagai blog mahasiswa, dosen, maupun lembaga kemahasiswaan yang terdapat di situs IPB. Hasil akhir dari sistem ini ditampilkan dalam bentuk website sistem pencari.
2 Ruang Lingkup Penelitian Ruang lingkup penelitian ini terfokus kepada pengembangan sistem yang mampu mengintegrasikan isi/informasi yang tersebar di blog-blog pada situs IPB sebagai sumber data. Penelitian ini menggunakan total 20 blog sebagai sampel data penelitian, yang terdiri dari 5 blog mahasiswa, 5 blog lembaga kemahasiswaan, dan 10 blog dosen/staff.
METODE Metode yang digunakan dalam penelitian ini dapat dilihat pada Gambar 1. Metode yang digunakan terdiri atas analisis, pemilihan dan pemasangan web service, akuisisi dan transformasi data, implementasi, dan evaluasi. Analisis Pada tahap ini, dilakukan analisis kebutuhan pengembangan sistem. Berdasarkan kebutuhan tersebut, diperoleh tahapan proses pembuatan sistem ini (Gambar 1), spesifikasi kebutuhan sumber data dan arsitektur sistem mashup yang akan dikembangkan. Sumber-sumber yang didapatkan berupa jurnal, buku, dan informasi–informasi lain yang relevan dengan penelitian. Pemilihan dan Pemasangan Web Service Pada tahap ini dilakukan pemilihan dan pemasangan web service yang merupakan plugin tambahan bagi blog-blog berbasis Wordpress. Pemilihan dilakukan melalui observasi apakah web service tersebut dapat mengembalikan data (isi) dari blog atau tidak. Pemasangan suatu plugin ke suatu blog hanya dapat dilakukan oleh pemilik blog tersebut (administrator), yakni melalui sistem admin blog yang akan ditambahkan plugin. Akuisisi dan Transformasi Data Pada tahap ini dilakukan proses akuisisi data yang dibutuhkan sesuai dengan hasil analisis kebutuhan sistem. Data mentah berformat plain text dengan struktur JavaScript object notation (JSON) diperoleh dengan melakukan pemanggilan data melalui web service ke setiap blog (Wordpress) yang dituju, dengan kondisi di mana plugin web service pada setiap blog sudah terpasang. Pada transformasi data, data yang sudah didapatkan dibersihkan dari atribut/tag-tag yang tidak diperlukan. Data yang sebelumnya berstruktur JSON dikonversi menjadi struktur extensible markup language (XML) yang memiliki tag–tag sesuai kebutuhan sistem.
3 Analisis
Pemilihan dan Pemasangan Web Service
Akuisisi dan Transformasi Data
Implementasi
Evaluasi Gambar 1 Diagram Implementasi metode penelitian hasil analisis Survey di internet (Fallows 2004) menemukan bahwa 92% pengguna internet mengatakan bahwa internet adalah tempat yang baik untuk mencari informasi setiap hari. Fakta tersebut menunjukkan bahwa perkembangan teknologi information retrieval (IR) semakin dibutuhkan untuk mempermudah pencarian informasi oleh pengguna. IR adalah kegiatan mencari materi (biasanya dokumen) dari suatu teks yang memberi jawaban terhadap suatu kebutuhan informasi dari koleksi data yang besar (biasanya terdapat pada komputer) (Manning et al. 2008). Sistem IR tidak melakukan perubahan pada dokumen. Sistem IR hanya melakukan pemanggilan informasi yang berkaitan dengan informasi yang diinginkan. Representasi dari informasi yang diinginkan berupa kata atau frasa yang biasanya disebut query. Query dimasukkan ke dalam sistem sebagai input, kemudian sistem menampilkan dokumen–dokumen yang relevan dengan query. Pada tahap ini dilakukan implementasi pembangunan sistem pencari. Implementasi meliputi pembangunan antarmuka sistem untuk pengguna, penentuan variabel penyimpanan data, dan mengindeks (indexing) data menggunakan Sphinx Search. Indexing adalah sebuah proses di mana dilakukan pengindeksan terhadap suatu kumpulan dokumen maupun query. Indexing dapat dilakukan otomatis oleh sistem maupun manual. Berikut ini tahapan mengindeks di antaranya, 1 Tokenisasi Tokenisasi adalah proses memotong teks input menjadi unit-unit terkecil yang disebut token dan pada saat yang sama dimungkinkan untuk membuang karakter tertentu, seperti tanda baca (Manning et al. 2008). Tokenisasi melakukan pemisahan terhadap isi dokumen menjadi unit yang paling kecil atau biasa disebut juga kata. Tokenisasi dapat menangani pengolahan linguistik tambahan seperti normalisasi tanggal, stemming, dan lain-lain. Tokenisasi
4 dapat diperluas untuk menangani sumber data baru, jenis file baru dan bahasa baru (Dumais S et al. 2003). 2 Pembuangan Stopwords Stopwords merupakan kata umum yang biasanya sering muncul dalam jumlah besar pada suatu dokumen, tetapi tidak memiliki makna. Kata-kata seperti “ke”, “yang”, “untuk” dan kata-kata umum lainnya hanya akan membuat sistem tidak efektif dalam mencari karena kata-kata tersebut biasanya selalu ada dan berfrekuensi besar dalam dokumen. Stopwords lebih baik tidak digunakan agar meningkatkan akurasi dan efektivitas pencarian sebuah sistem pencari. 3 Pembobotan Pembobotan adalah proses pemberian bobot pada suatu term yang ada pada suatu dokumen. Pembobotan dilakukan untuk memberi nilai pada suatu term di mana nilai tersebut digunakan sebagai penciri term tersebut. Nilai bobot tersebut akan membentuk peringkat, yang akan mengurutkan term terhadap dokumen dengan query yang diberikan pengguna. Evaluasi Pada tahap ini dilakukan evaluasi terhadap sistem mashup. Di evaluasi seberapa baik hasil pencarian sistem dengan melihat hubungan antara query dan informasi yang diperoleh. Pada sistem mashup ini hasil akhirnya akan berbentuk sistem pencari, dan sebuah sistem pencari sangat berkaitan dengan ilmu information retrieval (IR). Dalam IR, salah satu teknik evaluasi paling umum yang digunakan adalah mean average precision (MAP). Nilai MAP merupakan rataan aritmatik dari average precision (AVP) atau rata-rata precision suatu pencarian query (Manning et al. 2008). Precision adalah pembagian dari dokumen relevan terhadap query yang ditemukan dengan dokumen yang ditemukan oleh sistem pencari (Gambar 2).
Gambar 2 Ilustrasi dan rumus perhitungan precision dan (Baeza-Yates dan Ribeiro-Neto 1999) Kemudian dihitung nilai MAP menggunakan rumus : ∑
∑
(1)
5 MAP(Q) adalah hasil evaluasi MAP dari kumpulan query sebanyak Q. adalah nilai precision pada hasil dokumen yang ditampilkan mulai dari dokumenj sampai dokumenk. Nilai dibagi dengan jumlah dokumen relevan yang ditampilkan ( ) untuk mendapatkan nilai AVP.
HASIL DAN PEMBAHASAN Analisis Kebutuhan Data yang digunakan dalam penelitian ini berupa isi dari beberapa blog-blog berbasis Wordpress yang merupakan subdomain dari situs Institut Pertanian Bogor (IPB). Blog-blog IPB tersebut diantaranya http://lk.ipb.ac.id, http://student.ipb.ac.id, http://staff.ipb.ac.id. Dari setiap subdomain blog tersebut diambil masing-masing sampel lima blog mahasiswa, lima blog lembaga kemahasiswaan, dan sepuluh blog dosen/staff, sehingga terdapat 20 blog sebagai sumber data yang isinya akan diintegrasikan (daftar ke-20 blog terdapat pada Lampiran 1). Blog-blog yang dipilih sebagai sampel penelitian adalah blog-blog yang isinya minimal memiliki tiga artikel sehingga memiliki data untuk diintegrasikan. Pada tahap analisis didapatkan arsitektur sistem mashup yang dikembangkan pada penelitian ini. Arsitektur sistem dapat dilihat pada Gambar 3. Sistem mashup blog-blog di situs IPB menggabungkan isi dari blog-blog di situs IPB, kemudian menampilkan informasi yang dibutuhkan sesuai informasi yang dibutuhkan pengguna. Informasi yang dibutuhkan pengguna direpresentasikan sebagai suatu query, yang dapat berupa kata atau frasa.
Gambar 3 Arsitektur sistem mashup blog IPB
6 Pemilihan Pemasangan Web Service Web service pada Wordpress menggunakan plugin yang dipasang ke setiap blog-blog subdomain dari situs IPB. Plugin yang digunakan yaitu JSON application programming interface (API) yang dikembangkan oleh Dan Phiffer (Phiffer 2009). JSON API dipilih berdasarkan observasi pada penelitian ini. Observasi yang dilakukan dalam pemilihan web service yakni mencari menggunakan keyword “JSON API” pada pencarian plugin di situs http://wordpress.org/plugins/. Dari lima teratas hasil pencarian plugin API yang didapatkan, dipasang dan diuji satu-persatu ke blog Wordpress di server lokal, apakah plugin API tersebut menghasilkan data yang merepresentasikan isi dari blog. Lima teratas hasil pencarian plugin API beserta alasan penggunaannya, dapat dilihat pada Lampiran 2. JSON API mengijinkan penggunanya untuk mendapatkan dan memanipulasi isi dari Wordpress melalui hypertext transfer protocol (HTTP) request. HTTP request adalah protokol antara komputer klien dan server, di mana komputer klien melakukan permintaan suatu file atau halaman web ke server, dan komputer server merespon terhadap apa yang diminta oleh komputer klien. Pada tahap ini, pemasangan plugin hanya dapat dilakukan oleh administrator pada blog yang akan diambil datanya. Dalam penelitian ini administrator adalah pihak Direktorat Komunikasi dan Sistem Informasi (DKSI) IPB, sehingga pemasangan web service harus dilakukan bersama pihak DKSI IPB. Pemasangan yang dilakukan yaitu memasang plugin JSON API ke subdomain blog http://lk.ipb.ac.id, http://student.ipb.ac.id, dan http://staff.ipb.ac.id. Akuisisi dan Transformasi Data Data yang digunakan pada penelitian ini diperoleh dari blog-blog yang akan diambil isinya. Isi didapatkan dan ditransformasi dengan menggunakan program crawler yang dibuat pada penelitian ini. Crawler atau dikenal dengan nama web spider adalah sebuah program yang melakukan crawling atau proses mengumpulkan halaman-halaman dari internet (Castillo 2004). Crawler tersebutlah yang melakukan parsing dari data JSON, hingga data akhir berupa XML. Pada pengembangan sistem mashup ini, crawler hanya melakukan akuisisi dan transformasi terhadap data yang akan digunakan. Berikut tahap-tahap dalam membuat crawler untuk mengakuisisi hingga mentransformasi data: 1 Input query ke web service (API) blog Pertama diberikan query ke web service melalui Uniform Resource Locator (URL) blog yang dituju, misalnya untuk situs blog http://bemfkh.lk.ipb.ac.id/, URL-nya menjadi: http://bemfkh.lk.ipb.ac.id/?json=get_posts URL tersebut dapat digunakan untuk mendapatkan seluruh isi di halaman utama blog BEM FKH IPB dalam struktur JSON. Contoh satu artikel berstruktur JSON dapat dilihat pada Gambar 4 dan struktur datanya dapat dilihat pada Tabel 1.
7
Gambar 4 Contoh potongan data artikel berstruktur JSON Query yang akan digunakan pada web service JSON API sudah disediakan oleh JSON API, tergantung kebutuhan informasi seperti apa yang dibutuhkan pengguna. Query „get_posts‟ yang digunakan pada URL merupakan query yang sudah ditentukan oleh API jika ingin mendapatkan seluruh artikel dari halaman situs blog yang dituju. Tabel 1 Struktur data dari JSON API Nama parameter id type slug url title title_plain content excerpt date modified
Tipe Integer Varchar Varchar Varchar Varchar Varchar Text Text Varchar Varchar
2 Konversi data JSON menjadi XML Dari data berstruktur JSON pada Tabel 1, kemudian dilakukan pembersihan data terhadap atribut-atribut yang tidak diperlukan sistem, lalu dikonversi menjadi struktur XML. Pembersihan data yang dilakukan yaitu melakukan pembuangan atribut-atribut selain atribut url, title, dan content. Hasil konversi data JSON menjadi XML dapat dilihat pada Gambar 5.
8
Gambar 5 Contoh dokumen hasil konversi dari JSON ke XML Hasil konversi data JSON menjadi XML dari satu blog kemudian disimpan menjadi satu file XML. Akuisisi dan konversi data JSON diterapkan bagi setiap blog yang akan dijadikan sumber data. 3 Menggabungkan setiap file XML Setiap file XML dari setiap blog kemudian digabung menjadi satu file XML dengan atribut-atribut yang sesuai agar bisa diindeks menggunakan Sphinx Search. Tabel 2 menunjukkan struktur data XML hasil praproses dan contoh potongan dokumen dapat dilihat pada Lampiran 3. Tabel 2 Struktur data XML Nama Parameter Tipe Document id Integer title Varchar link Varchar content Text Implementasi Data akhir pada penelitian ini merupakan kumpulan dokumen yang akan digunakan sistem pencari bagi pengguna. Data atau kumpulan dokumen disimpan menjadi satu file untuk mempermudah proses indexing oleh Sphinx. Crawler dijalankan pada 8 September 2013, dan dari sumber data berupa 20 blog didapatkan 144 dokumen-dokumen yang menjadi kumpulan dokumen. Pada tahap ini tampilan antarmuka bagi pengguna dibuat setelah service dari Sphinx sudah aktif. Tampilan antarmuka bagi pengguna dibuat dalam bentuk sistem pencari. Berikut langkah-langkah dalam mengindeks dokumen yang dilakukan oleh Sphinx Search: 1 Tokenisasi Tokenisasi merupakan proses untuk mendapatkan unit terkecil dari suatu teks. Hasil tokenisasi berupa token-token yang dapat berupa suatu suatu kata atau angka. Sphinx Search dapat melakukan tokenisasi terhadap data XML. Pada penelitian ini, tokenisasi dilakukan oleh Sphinx Search juga karena tokenisasi oleh Sphinx Search tergolong mudah dan cepat prosesnya. Kata yang diindeks adalah kata yang memiliki jumlah minimal 3 huruf, sehingga untuk kata yang kurang dari 3 huruf tidak akan diindeks. Pada akhir tokenisasi didapatkan 9895 kata atau angka sebagai kumpulan token yang berasal dari 144 dokumen.
9 2 Pembuangan Stopwords Stopwords adalah kata-kata umum yang biasanya sering dipakai sehingga muncul dalam jumlah besar pada dokumen. Pada penelitian kali ini, daftar stopwords yang akan dihilangkan didapat dari laboratorium Temu Kembali Informasi Ilmu Komputer IPB. File stopwords tersebut memiliki sekitar 732 kata. Daftar stopwords yang digunakan dapat dilihat pada Lampiran 4. 3 Pembobotan Pada penelitian ini, pembobotan dilakukan dengan menggunakan model peluang BM25 (Best Match 25) dengan bantuan Sphinx. BM25 pada Sphinx mencari peluang relevansi terbesar suatu dokumen dapat relevan dengan query yang diberikan pengguna. Tahapannya, kepada setiap komponen kata pada query diberikan nilai peluang, kemudian nilai-nilai tersebut disatukan untuk menghitung nilai peluang akhir yang akan menunjukkan besar atau kecilnya relevansi query dan dokumen. Evaluasi Tahap evaluasi dilakukan dengan melakukan pencarian sembilan query terpilih yang hasil pencariannya akan digunakan untuk mengevaluasi sistem. Query yang dipilih berdasarkan jumlah minimal dokumen hasil pencarian yang relevan terhadap query. Pada penelitian ini, setiap query ditentukan memiliki minimal dua dokumen relevan yang ditampilkan dari pencarian oleh sistem. Daftar query beserta dokumen yang relevan terhadap query dapat dilihat pada Lampiran 5. Hasil pencarian query ditampilkan pada Gambar 6, berupa: 1 Pilihan judul dokumen yang memiliki tautan ke blog sumber, 2 String URL tautan ke blog sumber, 3 Kutipan isi dari dokumen terkait, namun hanya ditampilkan 50 kata pertama saja.
Gambar 6 Tampilan pencarian sistem Proses evaluasi dilakukan dengan menghitung nilai MAP dari sembilan query yang dievaluasi terhadap hasil pencarian oleh sistem. Nilai MAP merupakan rataan dari AVP kesembilan query yang diujikan terhadap sistem. Perhitungan MAP yaitu misalnya pada query 1, dokumen-dokumen relevan yang ditampilkan sistem terdapat pada urutan pertama, kelima, dan kedelapan. Dengan demikian nilai precision dari query tersebut adalah 1/1, 2/5, dan 3/8. Nilai tersebut dihitung rataannya agar mendapatkan nilai AVP bagi query 1. Proses
10 perhitungan tersebut dilakukan terhadap kedelapan query lainnya. Kemudian kesembilan nilai AVP tersebut dijumlahkan dan dihitung rataannya sehingga mendapatkan nilai MAP. Dari perhitungan didapatkan nilai MAP sebesar 0.48. Nilai AVP dari setiap query dapat dilihat pada Tabel 3. Tabel 3 Perhitungan AVP dan MAP dari kesembilan query Query 1 2 3 4 5 6 7 8 9 MAP
Dari pengujian yang diakukan terhadap sembilan query didapatkan nilai MAP sebesar 0.48. Dapat dikatakan 48% dokumen dari keseluruhan dokumen yang ditampilkan oleh sistem relevan terhadap query yang diuji. Nilai AVP tersebut dapat dipengaruhi kumpulan dokumen yang digunakan sistem. Kumpulan dokumen didapatkan dari blog-blog yang isi/artikel-artikelnya tidak memiliki topik yang sama, tidak semua bahasa yang digunakan baku, dan terdapat artikel-artikel berbahasa inggris, sehingga kumpulan term yang diindeks sangat bervariasi. Term merupakan kata-kata penciri dari suatu dokumen dari proses mengindeks. Kata term yang sangat bervariasi akan membuat sistem kesulitan mencari kata-kata pada query yang sama dengan kata term yang mewakili dokumen yang relevan dengan query. Sebagai contoh terdapat kata “social” dan “sosial” yang keduanya memiliki makna yang sama, namun karena perbedaan bahasa, sistem menganggap kedua kata tersebut berbeda. Hal tersebut dapat mengakibatkan saat dilakukan pencarian query “dunia sosial”, sistem tidak mengembalikan dokumen yang memiliki kata “social”.
SIMPULAN DAN SARAN Simpulan Hasil penelitian menunjukkan bahwa penelitian ini telah berhasil membuat aplikasi mashup bagi situs-situs blog IPB berbasis Wordpress menggunakan plugin JSON API, dan hasilnya ditampilkan dan dievaluasi menggunakan search engine dengan bantuan library Sphinx Search. Dari evaluasi didapatkan nilai MAP sebesar 0.48. Kekurangan pada sistem ini adalah crawler yang digunakan untuk melakukan mashup tidak dapat membaca keseluruhan isi dari suatu user’s
11 blog karena web service yang tidak menyediakan fitur mengambil keseluruhan isi, melainkan hanya dari satu halaman web saja. Saran Terdapat beberapa hal yang dapat ditambahkan ataupun diperbaiki untuk penelitian selanjutnya, di antaranya menggunakan stopwords untuk bahasa Inggris pada sistem mashup blog IPB berbasis Wordpress ini, karena terdapat artikelartikel pada blog yang menggunakan bahasa Inggris sehingga kata-kata yang terlalu umum tidak perlu menjadi term bagi dokumen.
DAFTAR PUSTAKA Baeza-Yates R, Ribeiro-Neto B. 1999. Modern Information Retrieval. New York (US): Addison Wesley. Castillo C. 2004. Effective web crawling [tesis]. Santiago (CL): University of Chile. Dumais S, Cutrell E, Cadiz JJ, Jancke G, Sarin R, Robbins DC. 2003. Stuff I've seen: a system for personal information retrieval and re-use. Di dalam: 26th Annual International ACM SIGIR Conference on Research and Development in Informaion Retrieval; 2003 Jul; Redmond, USA. hlm 7279. Fallows D. 2004. The internet and daily life [Internet]. [diunduh 2013 Okt 3]. Tersedia pada: http://www.pewinternet.org/pdfs/PIP_Internet_and_Daily _Life.pdf. Griffin E. 2008. Foundations of Popfly Rapid Mashup Development. New York (US): Apress. Manning CD, Raghavan P, Schütze H. 2008. Introduction to Information Retrieval. Cambridge (GB): Cambridge University Press. Phiffer D. 2009. JSON API [Internet]. [diunduh 2013 Okt 15]. Tersedia pada: http://wordpress.org/plugins/json-api/.
12
LAMPIRAN Lampiran 1 Daftar blog yang digunakan sebagai sumber data penelitian No
URL
1
http://forces.lk.ipb.ac.id
2
http://bemfkh.lk.ipb.ac.id
3
http://ruminansia.lk.ipb.ac.id
4
http://himagizi.lk.ipb.ac.id
5
http://hmit.lk.ipb.ac.id
6
http://lenis11s.student.ipb.ac.id
7
http://habiba09.student.ipb.ac.id
8
http://wahyuni_sri12u.student.ipb.ac.id
9
http://cynthia_rizki12u.student.ipb.ac.id
10
http://dietrich_gerry12u.student.ipb.ac.id
11
http://anuragaja.staff.ipb.ac.id
12
http://beginersubhan.staff.ipb.ac.id
13
http://totoharyanto.staff.ipb.ac.id
14
http://hsarifin.staff.ipb.ac.id
15
http://bbarus.staff.ipb.ac.id
16
http://beginersubhan.staff.ipb.ac.id
17
http://phariyadi.staff.ipb.ac.id
18
http://kseminar.staff.ipb.ac.id
19
http://ono.suparno.staff.ipb.ac.id
20
http://ratihde.staff.ipb.ac.id
13 Lampiran 2 Lima teratas hasil pencarian API Rank pencarian 1
Nama web service (API) JSON API
Digunakan
Alasan digunakan / tidak digunakan
Ya
JSON API menghasilkan output yang merupakan isi dari suatu blog Wordpress. JSON API menampilkan isi dari blog Wordpress dengan struktur JSON. JSON API memiliki 16 query yang dapat digunakan untuk memanggil isi dari blog, tergantung isi seperti apa yang dibutuhkan pengembang. Misalnya query 'get_recent_posts' digunakan untuk memanggil isi dari blog yang terakhir diperbaharui, kemudian 'get_posts' untuk memanggil keseluruhan isi dari halaman suatu blog. Query-query lainnya dapat dilihat pada http://wordpress.org/plugins/json-api/other_notes/.
2
IdeaPress JSON API
Tidak
IdeaPress merupakan plugin JSON API yang dimodifikasi. Hasil yang ditampilkan sama seperti pada JSON API, hanya memiliki query tambahan yaitu 'get_recent_posts_on_hub'.
3
JSON-APIforBuddyPress
Tidak
JSON-API-for-BuddyPress merupakan plugin JSON API yang dimodifikasi. BuddyPress menambahkan fitur agar isi dari blog Wordpress dapat diintegrasikan dengan isi dari BuddyPress
4
WPML JSON API
Tidak
5
Foliodock API
Tidak
WPML JSON API melakukan modifikasi terhadap hasil dari plugin JSON API. WPML JSON API dapat menerjemahkan hasil yang ditampilkan dari plugin JSON API. Foliodock digunakan untuk membuat online portfolio dari isi suatu blog Wordpress. Hasil dari API Foliodock hanya dapat ditampilkan pada situs web Foliodock.
14 Lampiran 3 Potongan dokumen akhir siap untuk diindeks oleh Sphinx <sphinx:docset xmlns:sphinx="mynamespaceURI"> <sphinx:schema> <sphinx:field xmlns:sphinx="mynamespaceURI" name="title" attr="string"/> <sphinx:field xmlns:sphinx="mynamespaceURI" name="link" attr="string"/> <sphinx:field xmlns:sphinx="mynamespaceURI" name="content" attr="string"/> <sphinx:attr name="id" type="int" bits="16" default="1"/> <sphinx:document id="1"> “Syuhada Rabaa” Foto Pengantin Baru Paling Menyedihkan di Mesir Menurut Reuters http://anuragaja.staff.ipb.ac.id/2013/08/21/syuhada-rabaa-foto-pengantin-baru-palingmenyedihkan-di-mesir-menurut-reuters/ Foto diatas adalah salah satu syuhada diantara ribuan yang gugur pada pembantaian junta militer Mesir saat pembumihangusan Medan Rabi’ah Al-Adawiyah (14/8/2013). Dengan membawa mushaf, sang istri memeluknya untuk yang terakhir kali. Foto ini oleh Reuters disebut foto pengantin baru yang paling menyedihkan di Mesir. Para syuhada telah menunaikan dan membuktikan janjinya dihadapan Allah, mereka hidup disisiNya dengan penuh kebahagiaan. Yang ditinggal pun tetap tegar dengan keyakinan bahwa kelak mereka akan dipertemukan kembali di jannahNYa. Berikut, salah satu ungkapan istri syuhada, Asmaa Hussein, yang suaminya Amr Mohammed Kassem diantara ribuan syuhada Mesir. Gambarannya mirip dengan foto diatas… Suamiku, Amr Mohamed Kassem kembali ke pangkuan Tuhannya pada usia 26 tahun. <sphinx:document id="2"> Analisa Sosok Dzulqarnain, Ya’juj Ma’juj dan Negeri Zionis | Tafsir http://anuragaja.staff.ipb.ac.id/2013/08/14/analisa-sosok-dzulqarnain-yajuj-majuj-dan-negerizionis-tafsir/ Oleh Nur Ihsan Jundulloh Mahasiswa Ummul Quro, Mekah *** Siapakah sosok Dzulqarnain yang disebut dalam surat Al-Kahfi? Syarat sosok Dzulqarnain : 1. Penguasa (innaa makkannaa lahuu fil ardhi) 2. Daerah kekuasaannya membentang dari barat (balagha maghribasy syamsi) sampai timur (balagha mathli’asy syamsi) 3. Penganut monotheis/tauhid (haadzaa rahmatun min rabbii) “The ram that you saw, the one with the horns, represents the king of Media and Persia” -ed). Muncul beberapa kemungkinan jawaban: 1. Perintah Allah untuk tidak menyerang Yajuj dan Majuj
15 Lampiran 4 Daftar stopwords acapkali ada adakah adakan adalah adanya adapun aduh agak agaknya agar aja akalan akan akankah akhir akhirnya akibat akibatkan akibatnya aku ala alangkah alasan alasannya alih alihkan amat amatlah ambil anda andai anggap anggapan antar antara antaranya apa apabila apakah apalagi apalah apanya apapun arti artian artinya asalan asalkan asumsi asumsinya atas atasnya atau ataukah ataupun awal
bagai bagaikan bagaimana bagaimanakah bagaimanapun bagi baginya bagus bagusnya bahkan bahwa baik baiknya balik banding bandingkan banyak banyaknya barangkali baru bawah bawahnya beberapa begini beginilah begitu begitulah begitupula begitupun belakang belakangan belum belumlah benar benarkah benarnya berada berakhir berakhirnya berakibat berakibatkan beralasan beralih beralihnya beranggapan berapa berapanya berapapun berarti berasumsi berbagai berbagi berbanding berbeda berdampak berdasarkan berhadapan
berharap berhubung berhubungan beri berikan berikanlah berikut berikutnya berjumlah berkat berkenaan berkesan berkesempatan berkesimpulan berlalu berlalunya berlama berlangsung bermula bersama bersamaan bertepatan beruntun berupa besarnya beserta besok besoknya betapa biar biarlah biasa biasanya bicarakan bicaranya bila bilamana bilang bisa bisakah bisanya boleh boro buat buatnya bukan bukankah bukanlah bukannya buktikan cara cerita ceritanya contoh contohkan contohnya cukup
cuma daerah dahulu dalam dan dapat dapatkah dapatkan dapatlah dari darinya daripada dekat dekatnya demi demikian demikianlah dengan dengannya depan depannya dia dialah dialami dialihkan diambil diambilkan diambilnya dianggap diantara diantaranya diapakan dibagi dibagikan dibeberapa diberbagai diberi diberikan diberinya dibiarkan dibiasakan dibilang dicontoh dicontohkan dicontohkannya didapat didapati didapatkan didapatnya didasarkan digolongkan digunakan diharapkan dijadikan dijadikannya dikarenakan dikasih
dikata dikatakan dikatakannya dikategorikan dikembangkan diketahui diketahuinya dilaksanakan dilakukan dimana dimulai dimulailah dimulainya dimungkinkan dipaparkan dipersilahkan disaat disebabkan disejumlah diseluruh disertai disertakan disimpulkan disitulah ditanggapi ditanya ditanyakan dituturkan diucapkan dkk dll dsb dua dulu dulunya empat enggak engkau esok gimana habis habisan habiskan habisnya hal hampir hanya hanyalah hari harus haruskah haruslah harusnya hendak hendaklah hendaknya hingga
how ialah ingin ini inilah inipun itu itulah itupun iya jadi jadikan jadilah jadinya jangan jarang jauh jelaskan jika jikalau juga jumlah jumlahnya justru juta kabupaten kadang kalau kalaupun kali kalian kami kamu kan kapan karena karenanya kata katakan katakanlah katanya kau kayak kayaknya kebanyakan kebetulan kebiasaan kecil kecuali kemana kemanakah kembali kemudian kemungkinan kemungkinannya kenapa kenapakah
16 Lampiran 4 Lanjutan kepada kepadanya kepala ketika ketimbang khususnya kini kita kondisi kurang lagi lagian lagipula lain lainnya laksana lakukan lalu lalui lama lanjut lantaran lantas lebih lepas lewat lokasi maka makin mampu mampukah mampunya mana manakala manalagi manapun masa masih masihkah masing masuk masyarakat mau maupun melainkan melakukan melalui melihat memang memaparkan membagi membagikan memberi memberikan memberinya membiarkan membolehkan
membuat memeperoleh memiliki meminta memperbolehkannya mempersilahkan mempunyai memungkinkan menanggapi menanggapinya menanyakan mencapai mencontohkan mendapat mendapati mendapatkan mendapatkannya menerus mengada mengaku mengalami mengalihkan mengambil mengambilnya menganggap menganggapnya mengapa mengatakan mengembangkan mengenai menggunakan mengungkapkan meningkat meningkatkan menjadi menjadikan menjadikannya menjelang menjelaskan menuju menunjukkan menurut menurutnya menuturkan menyatakan menyebabkan menyebutkan menyia mereka merupakan meski meskipun mesti mestinya misal misalkan misalnya
mudah mula mulai mulainya mulanya muncul mungkin mungkinkah namun nanti negara nilai nyaris nyiakan oleh orang pada padahal padanannya paling panjangnya papar paparan paparkan paparnya para pasti pastilah pastinya pelak pelbagai pemaparan pembagian pembagiannnya pendapat pengalihan pengambil pengambilan pengandaian per peralihan percuma peri perihal perlahan perlu pernah persen pertamanya pinggir pula pulalah pun rata relevankah rendah saat
saatnya saatnyalah saja salah sama sambil sambutannya sampai sana sang sangat sangatlah satunya saya sayangnya seakan seandainya seantero sebab sebabkan sebabnya sebagai sebagaimana sebagainya sebagian sebaik sebaiknya sebaliknya sebanyak sebelum sebelumnya sebenarnya seberapa seberat sebesar sebetulnya sebuah secara sedalam sedang sedangkan sedapat sedemikian sedikit sedikitnya segera sehabis seharusnya seharusnyalah sehingga sehubungan sejak sejauhmana sejumlah sekalian sekaligus sekalipun
sekarang sekata sekedar sekeliling seketika sekian sekitar selagi selain selalu selama selanjutnya selesai selesaikah seluruh seluruhnya semakin semampunya semenjak sementara semestinya semisal semoga semua semuanya semula seolah seorang seorangpun sepadan sepanjang separah sepasang sepele sependapat seperti sepertinya seputar seraya serba serentak sering seringkali seringkalinya seringlah seringnya serta sertanya sesaat sesama sesamamu sesedikit seseorang sesuai sesuatu sesuatunya sesudah
sesudahnya sesukanya sesungguhnya setelah setelahnya seterusnya setiap setidak setidaknya seusai sewaktu seyogyanya sia sialnya siap siapa siapakah siapapun silahkan singkatnya sini sinilah situ sosok sosoknya suatu sudah sulit sungguh sungguhpun supaya tak tambahnya tanggapan tanggapannya tanggapnya tanpa tapi tatkala telah tempat tengah tentang tentu tentunya tepatnya terbagi terbalik terbiasa terbilang terdapat tergolong terhadap terjadi terjadilah terjadinya terkadang
17 Lampiran 4 Lanjutan terkait terkecuali terlalu terlebih termasuk ternyata tersebut tertentu
terus tetap tetapi tiap tiba tidak tidaklah tidaknya
tiga tinggi tutur tuturnya ucap ucapan ucapannya ucapkan
ucapnya ujar ujarnya umpamanya umum umumnya ungkap ungkapan
ungkapkan ungkapnya untuk usah usahlah usai usianya waktu
waktulah waktunya walau walaupun warga yaitu yakni yang
18 Lampiran 5 Relevance set dari kueri yang diuji coba terhadap sistem No
Kueri
Gugus Jawaban (id document)
1
pangan indonesia
122, 44, 110
2
lomba pertanian
49, 48
3
gizi indonesia
60, 59
4
seminar pertanian
48, 98, 102, 68, 101, 49, 100
5
departemen kelautan
23, 25
6
inovasi dalam penelitian
15, 100, 22, 126, 20, 11, 45, 46, 97, 122,
7
teknologi pertanian
44, 93, 79, 97, 98, 99, 100, 102, 111
8
wisata laut indonesia
26, 94, 21, 27
9
kondisi sawah indonesia
44, 14 , 71
19
RIWAYAT HIDUP Penulis dilahirkan di Bogor. Penulis merupakan anak pertama dari tiga bersaudara. Tahun 2006 penulis lulus dari SMP BPK Penabur Bogor, lalu pada tahun 2009 penulis lulus dari SMA Negeri 3 Bogor dan pada tahun yang sama penulis diterima di Institut Pertanian Bogor (IPB) melalui jalur Ujian Talenta Mandiri (UTM) program studi Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam. Pada tanggal 1 Juli 2012, penulis melaksanakan praktik kerja lapang di PT. Murni Solusindo sampai dengan 14 Agustus 2012. Penulis aktif dalam kegiatan dan organisasi keagamaan di IPB yaitu pada Komisi Kesenian Persekutuan Mahasiswa Kristen IPB dan menjadi anggota pengurus pada tahun 2012. Penulis merupakan seorang pecinta musik (menyanyi dan bermain gitar) dan olahraga (futsal dan sepakbola).