PENGEMBANGAN AGREGATOR BERITA IPB
HERDI BINTANG PERDANA UTOMO
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2014
PERNYATAAN MENGENAI SKRIPSI DAN SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA Dengan ini saya menyatakan bahwa skripsi berjudul Pengembangan Agregator Berita IPB 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, Februari 2014 Herdi Bintang Perdana Utomo NIM G64070103
ABSTRAK HERDI BINTANG PERDANA UTOMO. Pengembangan Agregator Berita IPB. Dibimbing oleh FIRMAN ARDIANSYAH. Pertumbuhan internet yang pesat menyebabkan keberagaman data. Salah satu contoh keberagaman ini adalah situs fakultas dan departemen di Institut Pertanian Bogor (IPB), dimana tidak semua situs dapat diambil berita terbarunya menggunakan rich site summary (RSS). Hal ini akan menyulitkan pengumpulan berita terbaru. Untuk mengatasi hal tersebut, dipakai metode mashup. Mashup dibuat dengan menggunakan application programming interface (API). Dalam penelitian ini, API yang dipakai adalah Google Search API, yang akan dipakai untuk mencari berita terkait. Kata kunci: API, mashup, RSS
ABSTRACT HERDI BINTANG PERDANA UTOMO. Development of IPB News Aggregator. Supervised by FIRMAN ARDIANSYAH. The rapid growth of Internet led to the diversity of the data. An example of this diversity is the sites of faculty and department at Bogor Agricultural University (IPB), which not all of newest news of the sites can be retrieved using Rich Site Summary (RSS). This would complicate the collection of recent news. To overcome this, the method that be used is mashups. The mashup was created using the Application Programming Interface (API). In this study, the API used is the Google Search API, which is will be used to search related news. Keywords: API, mashup, RSS
PENGEMBANGAN AGREGATOR BERITA IPB
HERDI BINTANG PERDANA UTOMO
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 2014
Penguji: 1 Irman Hermadi, SKom, MS 2 Dr Yani Nurhadryani, SSi, MT
Judul Skripsi : Pengembangan Agregator Berita IPB Nama : Herdi Bintang Perdana Utomo NIM : G64070103
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 Allah subhanahu wa ta’ala atas segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang dipilih dalam penelitian ini adalah mashup, dengan judul Pengembangan Agregator Berita IPB. Ungkapan terima kasih sebanyak-banyaknya penulis berikan kepada: 1 ALLAH SWT atas rahmat dan hidayah-Nya. 2 Nabi Muhammad SAW sebagai teladan dalam hidup seorang muslim. 3 Keluarga penulis yaitu ayah, ibu, dan adik yang banyak memberikan dukungan serta doa. 4 Bapak Firman Ardiansyah selaku pembimbing yang telah banyak direpotkan oleh penulis. Terima kasih atas kesabarannya dalam membimbing penulis selama ini. 5 Rilan, Rifki, Auzi, Agung, dan Wiwiek selaku teman sebimbingan. 6 Sayed, Kaka, Bangun, Topa, Gama, Aco, Yanta, Ridwan, dan rekan-rekan lainnya dari SIGAP. Terima kasih banyak atas bantuannya selama ini. 7 Anggit, Cawang, Arizal, Abi, Teguh, serta teman-teman dari Ilmu Komputer angkatan 44 yang tidak dapat penulis sebutkan satu per satu disini. 8 Wulan, Diki, Danang, dan Sisil sebagai teman yang suka menyemangati penulis. Semoga karya ilmiah ini bermanfaat.
Bogor, Februari 2014 Herdi Bintang Perdana Utomo
DAFTAR ISI DAFTAR TABEL
viii
DAFTAR GAMBAR
viii
DAFTAR LAMPIRAN
viii
PENDAHULUAN
1
Latar Belakang
1
Perumusan Masalah
1
Tujuan Penelitian
1
Manfaat Penelitian
2
Ruang Lingkup Penelitian
2
METODE
2
Tahap Perencanaan
2
Tahap Analisis
3
Tahap Perancangan
3
Tahap Implementasi
3
HASIL DAN PEMBAHASAN
3
Tahap Perencanaan
3
Tahap Analisis
4
Tahap Perancangan
5
Tahap Implementasi
10
SIMPULAN DAN SARAN
17
Simpulan
17
Saran
17
DAFTAR PUSTAKA
17
RIWAYAT HIDUP
22
DAFTAR TABEL 1 2 3 4
Daftar kebutuhan fungsional sistem Daftar tabel beserta atributnya pada database Pengujian black-box sistem Pengujian white-box fungsi pengindeksan
5 8 15 16
DAFTAR GAMBAR 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Metode penelitian waterfall Diagram situs berdasarkan ketersediaan RSS Use case sistem Agregator Berita IPB Konsep MVC pada sistem Desain konseptual database Desain logika database Perancangan navigasi halaman Admin Perancangan halaman utama Perancangan isi blok berita Table relational diagram pada sistem Halaman utama sistem Halaman Admin sistem Contoh sebuah blok berita Menu pada halaman Admin
2 4 5 6 7 8 9 10 10 12 13 13 14 14
DAFTAR LAMPIRAN 1 Daftar situs web fakultas dan departemen di IPB 2 Daftar situs berdasarkan ketersediaan RSS
18 20
PENDAHULUAN Latar Belakang Pengelolaan situs web departemen dan fakultas di Institut Pertanian Bogor (IPB) dilakukan secara mandiri. Situs-situs web tersebut memiliki berita-berita yang dapat berbentuk: acara yang telah atau akan berlangsung, pengumuman nilai ujian, informasi kerjasama dengan lembaga lain, dan sebagainya. Pengumpulan berita dari situs-situs tersebut menjadi sulit karena perbedaan format berita dalam situs-situs tersebut. Perbedaan format juga terjadi di dunia internet disebabkan oleh pertumbuhan data yang besar. Sehingga lahirlah mashup, suatu aplikasi yang datanya berasal dari sumber dan format yang berbeda-beda (Engard 2009). Mashup dibuat dengan menggunakan application programming interface (API) yang disediakan oleh penyedia sumber data. Penelitian sebelumnya yang dilakukan oleh Hasiholan (2011) berhasil membuat suatu agregator web yang mengumpulkan berita-berita terbaru dari situs web IPB. Agregator merupakan suatu aplikasi yang mengumpulkan informasi dengan tipe tertentu dari beberapa sumber. Penelitian tersebut hanya terbatas pada penggunaan format rich site summary (RSS) saja sehingga berita yang diambil juga terbatas. Penelitian lain dilakukan oleh Gunawan (2012) berhasil membuat suatu aplikasi teks geotagging untuk agenda IPB dengan memanfaatkan Google Maps API. Pada penelitian ini akan dikembangkan mashup berita dari situs web fakultas dan departemen di IPB. Aplikasi ini menggunakan konsep agregator ditambah dengan Google Search API. Diharapkan sistem ini dapat membantu pengguna untuk mencari berita terbaru dan berita terkait yang ada di IPB. Sistem ini disebut juga Agregator Berita IPB (AB-IPB).
Perumusan Masalah Masalah yang diselesaikan pada penelitian ini adalah apakah dapat dibuat suatu mashup berbasis web yang mampu mengambil berita-berita terbaru dari situs web fakultas dan departemen di IPB, mencari berita terkait menggunakan Google Search API, dan menampilkannya kepada pengguna.
Tujuan Penelitian Tujuan dari penelitian ini adalah membuat suatu mashup berbasis web yang dapat mengambil daftar berita dari situs fakultas dan departemen di IPB, mencari berita terkait menggunakan Google Search API, dan menampilkannya kepada pengguna.
2 Manfaat Penelitian Manfaat penelitian ini adalah meningkatkan kecepatan akses pengguna yang ingin melihat berita-berita yang ada di IPB karena berita-berita tersebut terkumpul ke dalam sebuah situs. Manfaat lainnya adalah meningkatkan search engine optimization (SEO) karena mesin pencari cukup melakukan pengindeksan ke daftar berita yang ditampilkan oleh sistem.
Ruang Lingkup Penelitian Ruang lingkup penelitian ini adalah data penelitian hanya berasal dari 9 situs web fakultas dan 38 situs web departemen di IPB. Tidak termasuk situs-situs unit seperti Indonesia Managing Higher Education for Relevance and Efficiency (I-MHERE), Career Development and Alumni Affairs (CDA), dan Green TV. API yang dipakai hanya Google Search API. Berita diambil dengan membaca RSS yang disediakan oleh situs. Apabila situs tidak menyediakan RSS, beritanya akan diambil menggunakan screen scrapping dengan syarat tertentu. Daftar situs web fakultas dan departemen di IPB dapat dilihat pada Lampiran 1.
METODE Metode yang digunakan dalam penelitian ini adalah metode pengembangan sistem waterfall. Menurut Satzinger et al. (2009) metode ini terdiri atas empat proses yang meliputi fase perencanaan, fase analisis, fase perancangan, dan fase implementasi seperti yang dapat dilihat pada Gambar 1.
Gambar 1 Metode penelitian waterfall Tahap Perencanaan Pada tahap ini dilakukan pendefinisian masalah, yaitu masalah yang terjadi dan cara mengatasi masalah tersebut. Hal ini dengan cara mewawancarai pihak Direktorat Komunikasi dan Sistem Informasi (DKSI) IPB.
3 Tahap Analisis Tahap ini dilakukan untuk memahami dan mendokumentasikan kebutuhan bisnis dan kebutuhan pengolahan dari sistem baru. Tahap ini dilakukan dengan menganalisis hasil wawancara.
Tahap Perancangan Pada tahap ini dilakukan perancangan hal-hal yang berkaitan dengan sistem seperti perancangan fungsi, perancangan antarmuka, dan perancangan database. Perancangan fungsi merupakan penggambaran model-view-controller (MVC) pada sistem. Pada perancangan database, dibuat 3 jenis perancangan yaitu perancangan konseptual, perancangan logika, dan perancangan fisik.
Tahap Implementasi Pada tahap ini dilakukan implementasi dari rancangan yang telah dibuat sebelumnya seperti implementasi fungsi, implementasi database, implementasi antarmuka, dan pengujian sistem. Dalam implementasi fungsi, fungsi-fungsi dalam sistem diimplementasikan dengan menerapkan konsep MVC pada Codeigniter. Dalam implementasi database, implementasi database dilakukan dengan mengimplementasikan query-query pada database MySQL. Pengimplementasian query dilakukan pada aplikasi phpMyAdmin. Dalam implementasi antarmuka, antarmuka sistem dibuat menggunakan HTML dan CSS. Dalam pengujian sistem, Pengujian pertama yang dilakukan adalah pengujian fungsional sistem. Pengujian dilakukan terhadap 9 fungsi utama sistem dengan menggunakan metode pengujian black-box.
HASIL DAN PEMBAHASAN Tahap Perencanaan Berdasarkan hasil wawancara dengan pihak DKSI, didapatkan bahwa di IPB terdapat 47 situs web fakultas dan departemen. Berdasarkan Lampiran 2, sebanyak 37 situs menyediakan RSS dan 7 situs tidak menyediakan RSS. Tidak tersedianya RSS akan menyulitkan pengumpulan berita. Untuk mengatasi masalah ini, sistem yang dikembangkan harus mampu mengekstrak berita dari halaman utama situs tersebut. Cara ini disebut juga dengan screen scrapping. Perbandingan ketersediaan RSS pada situs fakultas dan departemen dapat dilihat pada Gambar 2.
4 2 (4%) 8 (17%) Menyediakan RSS Tidak menyediakan RSS Tidak dapat diakses 37 (79%)
Gambar 2 Diagram situs berdasarkan ketersediaan RSS Tahap Analisis Berdasarkan hasil wawancara, sistem yang harus dibuat merupakan sebuah agregator berita. Oleh karena itu, sistem harus mampu mengumpulkan beritaberita dari 47 situs yang menggunakan format yang berbeda. Perbedaan ini dikarenakan tidak semua situs menggunakan format RSS. RSS merupakan format sindikasi konten web yang biasa digunakan untuk mengatur berita-berita dan konten situs mirip berita (Curran dan Kinney 2006). Sebuah dokumen RSS (yang biasa disebut "feed", "web feed", atau "channel") terdapat teks penuh atau ringkasan teks, ditambah dengan metadata seperti tanggal penerbitan dan penulisnya. Screen scrapping dilakukan dengan cara membaca source code halaman utama situs. Syarat agar hal ini bisa dilakukan adalah situs memiliki beberapa jenis tag tertentu. Tag ini dapat berupa nama ID, class, atau tag HTML. Agar berita dapat diambil secara berulang dan otomatis, nama tag harus sama untuk berita yang berbeda. Tag-tag tersebut adalah, yaitu: Tag list: tag ini merupakan tag yang membungkus sebuah berita. Tag title: tag ini menandakan judul berita. Tag content: tag ini menandakan isi berita Tag date: tag ini menandakan tanggal berita Tag readmore: tag ini menandakan link untuk membaca keseluruhan berita. Ada dua fungsi utama yang harus dilakukan oleh sistem yaitu mengambil berita terbaru dan mencari berita terkait. Kedua fungsi ini disebut juga dengan proses pengindeksan. Proses ini dilakukan secara otomatis dengan menggunakan cron pada server dengan pengaturan waktu diserahkan kepada Admin. Cron merupakan suatu aplikasi penjadwalan pekerjaan berdasarkan waktu untuk sistem operasi mirip Unix. Berita terbaru merupakan berita yang ada pada situs namun belum ada pada database sistem saat pengindeksan dilakukan. Berita ini diambil dari RSS atau hasil screen scrapping pada situs. Untuk mencari berita terkait, dilakukan dengan menggunakan Google Search API. Google Search API merupakan suatu layanan dari Google yang memungkinkan situs web dan program untuk mengambil dan menampilkan hasil pencarian dari Google Custom Search. Dengan API ini, dilakukan pencarian web
5 atau gambar dan hasil pencariannya dikembalikan dalam bentuk JavaScript object notation (JSON) atau Atom. Fitur lain adalah fungsi Admin yang digunakan untuk menambah daftar berita yang diindeks. Admin merupakan pengguna biasa yang memiliki kewenangan khusus. Fungsi Admin ini tentu saja memerlukan fungsi login dan logout untuk menambah keamanan. Rangkuman dari semua fungsi yang perlu dilakukan oleh sistem dapat dilihat pada Gambar 3 dan Tabel 1.
Gambar 3 Use case sistem Agregator Berita IPB
Kode AB-IPB-01 AB-IPB-02 AB-IPB-03 AB-IPB-04 AB-IPB-05 AB-IPB-06 AB-IPB-07 AB-IPB-08 AB-IPB-09
Tabel 1 Daftar kebutuhan fungsional sistem Fungsi Menampilkan semua daftar berita terbaru dan terkait. Menampilkan daftar berita terbaru dan terkait berdasarkan asal situs web. Verifikasi yang dijalankan ketika Admin melakukan proses login. Menambah data situs web pada database yang dimasukkan oleh Admin. Mengubah data situs web pada database yang dimasukkan oleh Admin. Menghapus data situs web pada database yang dimasukkan oleh Admin. Mengambil berita-berita terbaru. Mencari berita terkait. Proses logout Admin dari sistem.
Tahap Perancangan Perancangan Fungsi Sistem dibuat menggunakan konsep MVC. Framework MVC yang dipakai untuk memudahkan pengembangan sistem adalah Codeigniter. Menurut Upton (2007), beberapa kelebihan Codeigniter adalah: Menghemat waktu. Membuat situs menjadi lebih kokoh. Mendapatkan pengkodean yang lebih mutakhir.
6 Pada MVC, Model merupakan bagian dari sistem yang berkaitan dengan data dan business logic. Pada bagian ini juga terdapat interaksi sistem dengan database. View merupakan bagian dari sistem yang berkaitan dengan antarmuka. Pada View biasa terdapat HTML, CSS, dan JS. Controller merupakan bagian dari sistem yang berkaitan dengan logika sistem. Salah satu hal yang dilakukan oleh Controller adalah mengambil input dari pengguna kemudian memberikannya kepada Model untuk diolah lalu memberikan hasilnya kepada View. Konsep MVC dapat dilihat pada Gambar 4.
Gambar 4 Konsep MVC pada sistem Sistem memiliki beberapa buah Model, yaitu: Website_model: Model ini berisi hal-hal yang berkaitan dengan situs seperti mengambil daftar situs, dan sebagainya. News_model: Model ini berkaitan dengan berita seperti pengambilan daftar berita, memasukkan berita ke dalam database, dan sebagainya. Sistem memiliki beberapa Controller, yaitu: Utama: Controller ini mengatur halaman utama sistem dan langsung berinteraksi dengan pengguna. Admin_Controller: Controller utama dari Admin dan membawahi controllercontroller Admin yang lain. Log: Controller dari Admin yang mengatur login dan logout Admin. Situs: Controller dari Admin yang mengatur hal-hal yang berhubungan dengan situs-situs yang diindeks. Indexing: Controller yang mengatur proses pengindeksan. Controller ini dipanggil menggunakan cron. View pada sistem terdiri atas: Template_utama: View ini menjadi template halaman utama sistem. Utama_berita: View ini menampilkan daftar berita beserta berita terkait pada halaman utama. Template_admin: View ini menjadi template halaman Admin sistem. Situs_list: View ini menampilkan daftar situs pada halaman Admin. Situs_form: View ini menampilkan form untuk menambah dan mengubah daftar situs.
7 Perancangan Database Menurut Connolly dan Begg (2005), ada tiga tahap utama dalam merancang database, yaitu: Perancangan Konseptual Sistem memiliki 3 entitas utama yaitu website, news, dan related_news. Website merupakan entitas yang menyimpan daftar website, news merupakan entitas yang menyimpan daftar berita terbaru, dan related_news merupakan entitas yang menyimpan daftar berita terkait. Tiap entitas memiliki hubungan: o Situs web memiliki berita (website has news). o Berita memiliki berita terkait (news have related_news). Website memiliki primary key (PK) website_id, news memiliki PK news_id, dan related_news memiliki PK related_news_id. Website memiliki hubungan one-to-many dengan news, dan news memiliki many-to-many dengan related_news. Perancangan konseptual database dapat dilihat pada Gambar 5.
Gambar 5 Desain konseptual database Perancangan Logika Pada perancangan logika, hubungan many-to-many antara news dan related_news menghasilkan sebuah entitas baru. Entitas baru tersebut memiliki dua buah foreign key (FK). Kedua FK ini berasal PK news dan related_news. Entitas ini diberi nama having. Entitas ini memiliki hubungan one-to-many dengan news dan related_news. Perancangan konseptual database dapat dilihat pada Gambar 6. Perancangan Fisik Pada perancangan fisik, tiap entitas diubah menjadi tabel. Tiap tabel ditulis atributnya, dalam hal ini menjadi kolom, untuk persiapan dimasukkan ke dalam database. Daftar tabel pada sistem dapat dilihat pada Tabel 2. Database yang dipakai MySQL adalah 5.5.25a.
8
Gambar 6 Desain logika database Tabel 2 Daftar tabel beserta atributnya pada database Tabel website
news
having related_news
Kolom website_id name domain url rss_address type tag_list tag_title tag_content tag_date tag_readmore news_id title content date time date_type permalink website_id related_news_id news_id related_news_id title html_title permalink
Tipe Data tinyint varchar(70) varchar(30) varchar(100) varchar(150) tinyint varchar(20) varchar(20) varchar(20) varchar(20) varchar(20) int varchar(200) text date time tinyint varchar(200) tinyint int int int varchar(200) varchar(200) varchar(200)
Catatan primary key
primary key
foreign key foreign key foreign key primary key
Perancangan Antarmuka Sistem ini mengikuti kaidah Galitz (2007) yang meliputi pendefinisian: 1 Navigasi Navigasi pada sistem hanya ada pada halaman Admin. Navigasi berbentuk horizontal dan berada di antara judul dan isi. Navigasi berisi link-link menuju
9 halaman lain, serta link untuk melakukan logout. Perancangan navigasi dapat dilihat pada Gambar 7.
Gambar 7 Perancangan navigasi halaman Admin 2 Kontrol Layar Kontrol layar pada sistem terdiri atas: Tombol (Buttons) Tombol pada sistem dipakai untuk melakukan login, dan menambah/mengubah/menghapus daftar situs. Kotak teks (Text boxes) Kotak teks pada sistem dipakai saat melakukan login, dan saat menambah/mengubah/menghapus daftar situs. Kotak daftar drop-down (Drop-down list boxes) Kotak daftar dalam sistem dipakai untuk menampilkan daftar situs pada halaman utama. Hal ini dapat dilihat pada Gambar 8. 3 Tipografi Tipografi font yang dipakai adalah Arial yang merupakan jenis font sans-serif. Tiap tulisan pada judul dibuat sebesar 24 px, judul isi sebesar 14 px, dan isi sebesar 12 px. 4 Feedback Feedback dalam sistem berbentuk sebuah notifikasi. Notifikasi mucul dalam teks berwarna hijau sebagai pemberitahuan bahwa proses berjalan lancar. Notifikasi muncul dalam teks berwarna merah sebagai peringatan bahwa proses yang dilakukan tidak diperbolehkan sistem. Contoh proses dimana notifikasi muncul adalah saat Admin menambah daftar situs. 5 Pemilihan warna. Menurut Nielsen dan Loranger (2006), untuk memperjelas teks digunakan warna teks yang kontras dengan warna latar yaitu teks berwarna gelap dengan latar berwarna terang (positive text), atau teks berwarna terang dengan latar berwarna gelap (negative text). Pada sistem digunakan positive text yaitu warna biru dan hitam sebagai warna teks dan putih sebagai warna latar. Halaman utama pada Gambar 8 berisi daftar situs, kotak pencarian dan blokblok berita. Daftar situs berada di kiri atas dan berisi situs-situs yang beritanya sudah diambil oleh sistem. Daftar situs ini berfungsi untuk menampilkan berita berdasarkan situs yang dipilih. Kotak pencarian berada di kanan atas dan berfungsi untuk mencari berita berdasarkan judul berita. Blok-blok berita merupakan daftar berita dan berbentuk tiga buah kolom. Sebuah blok berita berisi detail dari sebuah berita seperti judul, tanggal berita dan isi berita. Isi berita merupakan potongan dari isi berita yang sesungguhnya. Pada blok berita juga terdapat berita-berita terkait. Perancangan blok berita dapat dilihat pada Gambar 9.
10
Gambar 8 Perancangan halaman utama
Gambar 9 Perancangan isi blok berita
Tahap Implementasi Sistem merupakan aplikasi berbasis web. Oleh karena itu, sistem dibuat dengan bahasa pemrograman PHP dengan menggunakan framework Codeigniter 2.1.4. Pada penelitian juga menggunakan XAMPP 1.8.3 sebagai tempat pengembangan web pada sistem operasi Windows. Pada XAMPP, terdapat Apache sebagai web server, PHP sebagai bahasa pemrograman yang diterjemahkan ke dalam HTML, dan phpMyAdmin sebagai bentuk GUI dari database MySQL.
11 Implementasi Fungsi Pada tahap ini hanya dijelaskan dua buah fungsi utama yang ada pada sistem. Kedua fungsi itu adalah: AB-IPB-07 Pengambilan daftar berita terbaru dari situs web yang menyediakan RSS dilakukan dengan menggunakan library SimplePie versi 1.3.1. SimplePie merupakan suatu library pada bahasa pemrograman PHP yang khusus melakukan parsing format berita seperti RSS. Contoh penggunaan library yang sederhana adalah sebagai berikut: //tentukan alamat RSS yang ingin diambil $this->simplepie->set_feed_url(“news.google.com/?output=rss”); //ambil RSS $this->simplepie->init(); //untuk setiap item pada RSS foreach($this->simplepie->get_items() as $item) { //ambil judulnya $title = $item->get_title(); }
Pengambilan daftar berita terbaru dari situs web non-RSS dilakukan dengan menggunakan library Simple HTML DOM. Library ini berfungsi untuk mencari tag dan mengambil nilai dari suatu tag pada HTML. Contoh penggunaan library yang sederhana adalah sebagai berikut: //ambil halaman HTML $html = file_get_html(“google.com”); //temukan semua tag p dan ambil nilainya $html->find(“p”)->plaintext;
AB-IPB-08 Daftar berita terkait diambil dari layanan Google Search dengan menggunakan Google Search API. API tersebut dipakai dengan menggunakan format: https://www.googleapis.com/customsearch/v1? key=AIzaSyC3IlguSM8dNvmWE3wHgGf08fTkv8oNgfY& cx=005153574163305294632:9f4azfapizy& q=ilmu+komputer
dengan parameter: key : kunci yang bersifat unique untuk mengakses API cx : ID dari jenis search engine untuk ruang lingkup terkait q : kata atau kalimat yang dicari
12 Implementasi Database Langkah pertama yang dilakukan adalah dengan membuat database bernama mashup pada MySQL. Langkah berikutnya adalah dengan membuat tabel-tabel yang dibutuhkan. Langkah-langkah ini dilakukan dengan menggunakan phpMyAdmin. Relasi antar tabel dalam database dapat dilihat pada Gambar 10.
Gambar 10 Table relational diagram pada sistem Implementasi Antarmuka Antarmuka pada sistem terbagi atas dua jenis yaitu antarmuka untuk halaman utama yang dilihat oleh pengguna biasa, serta halaman Admin yang khusus dilihat oleh Admin. Halaman utama menggunakan latar berwarna putih yang sama dengan halaman Admin. Halaman utama dan halaman Admin dapat dilihat pada Gambar 11 dan Gambar 12. Halaman utama terdiri atas dua buah bagian yaitu judul dan isi. Pada judul digunakan background berwarna biru. Judul ditulis berwarna putih agar tidak bentrok dengan background. Halaman utama berdasarkan kepada rancangan pada Gambar 8. Pada isi terdapat sebuah drop-down agar pengguna dapat memilih berita berdasarkan sumber situsnya. Pada isi juga terdapat kotak untuk melakukan pencarian terhadap judul berita dan daftar berita terbaru. Daftar berita terbaru ini dipisah ke dalam tiga buah kolom. Tiap berita dimasukkan ke dalam sebuah kotak, seperti pada Gambar 13, yang di dalamnya terdapat judul berita, tanggal berita terbit atau diambil, situs sumber berita, isi berita, serta daftar berita terkait. Pada isi, teks biasa ditulis dengan warna hitam sedangkan teks berupa link ditulis dengan warna biru.
13
Gambar 11 Halaman utama sistem Halaman Admin terdiri atas tiga buah bagian yaitu judul, menu, dan isi. Berbeda dengan halaman utama, judul pada halaman Admin tidak memakai background. Judul pada halaman Admin ditulis dengan warna biru seperti Gambar 12. Menu berada diantara judul dan isi, berbentuk horizontal untuk menghemat tempat. Isi berada dibawah menu, berisi sebuah judul halaman. Contoh menu pada halaman Admin dapat dilihat pada Gambar 14.
Gambar 12 Halaman Admin sistem
14
Gambar 13 Contoh sebuah blok berita
Gambar 14 Menu pada halaman Admin Pengujian Sistem Pengujian dilakukan dengan dua buah metode yaitu black-box dan whitebox. Pengujian black-box dilakukan terhadap 9 fungsi utama pada sistem. Hasil pengujian black-box dapat dilihat pada Tabel 3. Pengujian white-box dilakukan terhadap fungsi pengindeksan. Fungsi pengindeksan merupakan gabungan dari fungsi AB-IPB-07 dan AB-IPB-08. Pertama, fungsi ini mengambil daftar situs dari database kemudian memeriksa tipe situs. Apabila tipe situs tersebut adalah 1, maka situs tersebut diambil beritanya dari RSS. Apabila situs tersebut tersebut tipenya tidak sama dengan 1, maka beritanya diambil menggunakan screen scrapping. Berita-berita tersebut dimasukkan ke dalam database kemudian dicari berita terkaitnya. Selanjutnya berita-berita terkait dimasukkan ke dalam database. Hasil pengujian white-box dapat dilihat pada Tabel 4.
15
Kode AB-IPB-01
AB-IPB-02
AB-IPB-03
AB-IPB-04
AB-IPB-05
AB-IPB-06
Tabel 3 Pengujian black-box sistem Deskripsi Kondisi Hasil yang Skenario uji uji awal diharapkan Menampil- Halaman Melihat berita Tampilan kan semua utama terbaru dan berita terbaru berita aplikasi terkait dan terkait terbaru dan terkait Menampil- Halaman Melihat berita Tampilan kan berita utama terbaru dan berita terbaru terbaru dan aplikasi terkait dan terkait terkait berdasarkan berdasarkan berdasarkan situs web situs web situs web Fungsi Halaman Login Masuk ke login untuk login menggunakan halaman Admin Admin Nama dan Kata Admin Kunci Admin Nama dan Kata Muncul Kunci yang peringatan dimasukkan dan kembali salah ke halaman login Menambah- Halaman Memasukkan Data situs kan situs tambah data situs web web yang web pada situs web yang baru baru masuk daftar situs ke dalam web database Satu atau lebih Muncul data yang peringatan dimasukkan salah Mengubah Halaman Mengubah data Data situs situs web ubah situs web web dalam pada daftar situs web database situs web berubah Satu atau lebih Muncul data yang peringatan dimasukkan salah Menghapus Halaman Menghapus Data situs situs web hapus data situs web web dihapus pada daftar situs web dari database situs web
Hasil uji OK
OK
OK
OK
OK
OK
OK
OK
OK
16 Kode AB-IPB-07 AB-IPB-08 AB-IPB-09
Deskripsi uji Melakukan pengindeksan Fungsi logout untuk Admin
Kondisi awal Halaman pengindeksan Halaman Admin
Skenario uji Klik tombol ”Do Indexing” Klik ”Logout”
Hasil yang diharapkan Proses pengindeksan berhasil Admin logout dari sistem
Hasil uji OK
OK
Tabel 4 Pengujian white-box fungsi pengindeksan Flow graph Source code public function indexing() (1) $website = $this->db->get(‘website’) (2) FOREACH $website (3) IF $website->type = 1 (4) $news = get_news($website, ‘RSS’) (5) array_push($news, $temp) (6) $news = get_news($website, ‘Non RSS’) (7) array_push($news, $temp) (8) END IF (9) FOREACH $temp (10) insert_to_database($news) (11) $related = get_related($news) (12) insert_to_database($related) (13) END FOREACH (14) END FOREACH
Base path : 1 Test case: $website->type = 1 Path: 1 – 2 – 3 – 4 – 5 – 8 – 9 – 10 – 11 – 12 – 13 – 9 – 10 – 11 – 12 – 13 – …. – 14 – ... Result: OK 2 Test case: $website->type = 2 Path: 1 – 2 – 3 – 6 – 7 – 8 – 9 – 10 – 11 – 12 – 13 – 9 – 10 – 11 – 12 – 13 – …. – 14 – ... Result: OK
17
SIMPULAN DAN SARAN Simpulan Pada penelitian ini telah dibuat suatu mashup berita IPB yang datanya berasal dari situs web fakultas dan departemen IPB, dan memiliki format yang berbeda-beda. Selain itu, mashup juga dapat mengambil daftar berita terkait dari Google menggunakan Google Search API, kemudian menampilkannya kepada pengguna.
Saran Pada penelitian ini masih terdapat beberapa kekurangan. Untuk itu, beberapa saran yang bisa dilakukan untuk penelitian selanjutnya: Penambahan fitur unlimited scroll menggunakan AJAX agar pengguna dapat melihat daftar berita tanpa perlu pindah halaman. Penambahan fitur laporan untuk proses pengindeksan. Jadi bisa diketahui berapa berita terbaru dan terkait yang diindeks. Optimalisasi antarmuka lebih lanjut agar sistem dapat terlihat lebih baik pada smartphone dan tablet.
DAFTAR PUSTAKA Connolly T, Begg C. 2005. Database Systems: A Practical Approach to Design, Implementation, and Management. Ed ke-4. Boston (US): Addison-Wesley. Curran K, Kinney M. 2009. Delivering audio and video with rich site summary enclosures. Journal of Multimedia. 1(1):24-31. Engard NC. 2009. Library Mashups: Exploring New Ways to Deliver Library Data. New Jersey (US): Information Today. Galitz WO. 2007. The Essential Guide to User Interface Design. Indianapolis (US): Wiley. Gunawan H. 2012. Teks geotagging lokasi pada situs agenda IPB menggunakan Google Maps API [skripsi]. Bogor (ID): Institut Pertanian Bogor. Hasiholan D. 2011. Pengembangan sistem agregator berita Institut Pertanian Bogor berbasis web [skripsi]. Bogor (ID): Institut Pertanian Bogor. Nielsen J, Loranger H. 2006. Prioritizing Web Usability. Berkeley (US): New Riders. Satzinger J, Jackson R, Burd S. 2009. Systems Analysis and Design in A Changing World Edisi ke-5. Boston (US): Course Technology. Upton D. 2007. CodeIgniter for Rapid PHP Application Development. Birmingham (GB): Packt.
18 Lampiran 1 Daftar situs web fakultas dan departemen di IPB No. Nama 1 Fakultas Pertanian 2 Fakultas Kedokteran Hewan 3 Fakultas Perikanan 4 Fakultas Peternakan 5 Fakultas Kehutanan 6 Fakultas Teknologi Pertanian 7 Fakultas Matematika dan IPA 8 Fakultas Ekonomi dan Manajemen 9 Fakultas Ekologi Manusia 10 Departemen Agronomi dan Hortikultura 11 Departemen Arsitektur Lanskap Departemen Ilmu Tanah dan Sumberdaya 12 Lahan 13 Departemen Proteksi Tanaman Departemen Ilmu Penyakit Hewan dan 14 Kesehatan Masyarakat Departemen Klinik, Reproduksi dan 15 Patologi Departemen Anatomi, Fisiologi dan 16 Farmakologi 17 Bagian Bedah Radiologi FKH 18 Departemen Budidaya Perairan 19 Departemen Ilmu dan Teknologi Kelautan Departemen Manajemen Sumberdaya 20 Perairan Departemen Pemanfaatan Sumberdaya 21 Perikanan 22 Departemen Teknologi Hasil Perairan Departemen Ilmu Nutrisi dan Teknologi 23 Pakan Departemen Ilmu Produksi dan Teknologi 24 Peternakan 25 Departemen Hasil Hutan Departemen Konservasi Sumberdaya Hutan 26 dan Ekowisata 27 Departemen Manajemen Hutan 28 Departemen Silvikultur 29 Departemen Ilmu dan Teknologi Pangan
URL http://faperta.ipb.ac.id/ http://fkh.ipb.ac.id/ http://fpik.ipb.ac.id/ http://fapet.ipb.ac.id/ http://fahutan.ipb.ac.id/ http://fateta.ipb.ac.id/ http://fmipa.ipb.ac.id/ http://fem.ipb.ac.id/ http://fema.ipb.ac.id/ http://agrohort.ipb.ac.id/ http://arl.faperta.ipb.ac.id/ http://soil.ipb.ac.id/ http://ptn.ipb.ac.id/ http://kesmavet.fkh.ipb.ac.id/ http://krp.fkh.ipb.ac.id/ http://aff.fkh.ipb.ac.id/ http://bedahradiologi.fkh.ipb.ac .id/ http://bdp.fpik.ipb.ac.id/ http://itk.fpik.ipb.ac.id/ http://msp.fpik.ipb.ac.id/ http://psp.fpik.ipb.ac.id/ http://thp.fpik.ipb.ac.id/ http://intp.fapet.ipb.ac.id/ http://iptp.fapet.ipb.ac.id/ http://dthh.fahutan.ipb.ac.id/ http://kshe.fahutan.ipb.ac.id/ http://manhut.fahutan.ipb.ac.id/ http://silvikultur.fahutan.ipb.ac. id/ http://fst.ipb.ac.id/
19 Lampiran 1 Lanjutan No. Nama 30 Departemen Teknik Mesin dan Biosistem 31 Departemen Teknologi Industri Pertanian 32 Departemen Teknik Sipil dan Lingkungan 33 Departemen Biokimia 34 35 36 37 38 39 40 41
Departemen Kimia Departemen Fisika Departemen Geofisika dan Meteorologi Departemen Ilmu Komputer Departemen Biologi Departemen Matematika Departemen Statistika Departemen Ilmu Ekonomi
42 Departemen Manajemen 43 44 45 46 47
URL http://tmb.ipb.ac.id/ http://tin.fateta.ipb.ac.id/ http://sil.fateta.ipb.ac.id/ http://biokimiaipb.com/biokimi aipb/ http://chem.fmipa.ipb.ac.id/ http://fisika.ipb.ac.id/ http://geomet.ipb.ac.id/ http://cs.ipb.ac.id/ http://biologi.ipb.ac.id/ http://math.ipb.ac.id/ http://stat.ipb.ac.id/ http://ekonomi.fem.ipb.ac.id/ http://manajemen.fem.ipb.ac.id /
Departemen Ekonomi Sumberdaya dan http://esl.fem.ipb.ac.id/ Lingkungan Departemen Agribisnis http://agribisnis.fem.ipb.ac.id/ Departemen Gizi Masyarakat http://gm.fema.ipb.ac.id/ Departemen Ilmu Keluarga dan Konsumen http://ikk.fema.ipb.ac.id/ Departemen Komunikasi dan Pengembangan http://skpm.fema.ipb.ac.id/ Masyarakat
20 Lampiran 2 Daftar situs berdasarkan ketersediaan RSS URL Situs http://faperta.ipb.ac.id/ http://fkh.ipb.ac.id/ http://fpik.ipb.ac.id/ http://fapet.ipb.ac.id/ http://fahutan.ipb.ac.id/ http://fateta.ipb.ac.id/ http://fmipa.ipb.ac.id/ http://fem.ipb.ac.id/ http://fema.ipb.ac.id/ http://agrohort.ipb.ac.id/ http://arl.faperta.ipb.ac.id/ http://soil.ipb.ac.id/ http://ptn.ipb.ac.id/ http://kesmavet.fkh.ipb.ac.id/ http://krp.fkh.ipb.ac.id/ http://aff.fkh.ipb.ac.id/ http://bedahradiologi.fkh.ipb.ac.id/ http://bdp.fpik.ipb.ac.id/ http://itk.fpik.ipb.ac.id/ http://msp.fpik.ipb.ac.id/ http://psp.fpik.ipb.ac.id/ http://thp.fpik.ipb.ac.id/ http://intp.fapet.ipb.ac.id/ http://iptp.fapet.ipb.ac.id/ http://dthh.fahutan.ipb.ac.id/ http://kshe.fahutan.ipb.ac.id/ http://manhut.fahutan.ipb.ac.id/ http://silvikultur.fahutan.ipb.ac.id/ http://fst.ipb.ac.id/ http://tmb.ipb.ac.id/ http://tin.fateta.ipb.ac.id/ http://sil.fateta.ipb.ac.id/ http://biokimiaipb.com/biokimiaipb/ http://chem.fmipa.ipb.ac.id/ http://fisika.ipb.ac.id/ http://geomet-ipb.info/ http://cs.ipb.ac.id/ http://biologi.ipb.ac.id/ http://math.ipb.ac.id/ http://stat.ipb.ac.id/ http://ekonomi.fem.ipb.ac.id/ http://manajemen.fem.ipb.ac.id/ http://esl.fem.ipb.ac.id/ http://agribisnis.fem.ipb.ac.id/
Tidak Menyediakan menyediakan RSS RSS Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya
Tidak dapat diakses
Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya
21 Lampiran 2 Lanjutan URL Situs http://agribisnis.fem.ipb.ac.id/ http://gm.fema.ipb.ac.id/ http://ikk.fema.ipb.ac.id/ http://skpm.fema.ipb.ac.id/ Jumlah
Tidak Menyediakan menyediakan RSS RSS Ya Ya Ya Ya 37 8
Tidak dapat diakses
2
22
RIWAYAT HIDUP Penulis memiliki nama lengkap Herdi Bintang Perdana Utomo, lahir di Jakarta pada tanggal 24 November 1989. Penulis merupakan anak pertama dari pasangan Judi Marsusiono dan Hermawita. Penulis bersekolah di SMP Negeri 16 Bekasi, kemudian melanjutkan ke SMA Negeri 2 Bekasi, hingga akhirnya masuk IPB pada tahun 2007 dengan jurusan Ilmu Komputer.