1 1. Pendahuluan Kebutuhan manusia untuk hidup menurut sifatnya dapat dibagi menjadi 2 (dua), yaitu kebutuhan jasmani dan rohani. Kebutuhan jasmani di...
Kebutuhan manusia untuk hidup menurut sifatnya dapat dibagi menjadi 2 (dua), yaitu kebutuhan jasmani dan rohani. Kebutuhan jasmani diperlukan untuk pemenuhan fisik yang sifatnya kebendaan, seperti makanan, pakaian dan rumah. Kebutuhan rohani diperlukan untuk pemenuhan rohani atau jiwa, misalnya ibadah, rekreasi dan hiburan [1]. Hiburan dibutuhkan manusia untuk pemenuhan kebutuhan rohani atau jiwa. Beberapa cara dapat dilakukan untuk memenuhi kebutuhan ini, salah satunya adalah dengan menonton film. Film dapat disaksikan di bioskop maupun di rumah melalui televisi maupun melalui DVD. Untuk memperoleh informasi tentang film yang akan ditonton, biasanya para penggemar film mencarinya melalui internet. Terdapat beberapa situs yang menyediakan informasi film, di antaranya adalah IMDb (www.imdb.com) dan The Movie Database (www.themoviedb.org). Situs-situs tersebut memiliki database film yang lengkap dan menyediakan beberapa fasilitas, antara lain untuk pencarian film dan dapat juga memberikan rekomendasi film. Rekomendasi film yang diberikan oleh IMDb adalah rekomendasi film berdasarkan keterkaitan film yang disukai oleh penonton, misalnya jika penonton menyukai film Thor, maka juga menyukai film Spiderman. Jika penonton menyukai film Thor, maka juga menyukai film The Mummy. Sedangkan rekomendasi film yang diberikan oleh The Movie Database berdasarkan kesamaan judul dan genre film. Permasalahan yang muncul berdasarkan wawancara yang dilakukan kepada penggemar film adalah terkadang para penggemar film mengalami kebingungan saat mencari dan mendapatkan informasi film di internet. Penggemar film terkadang mencari informasi film di beberapa situs untuk dibandingkan, terutama pada bagian rekomendasi film, padahal rekomendasi yang dihasilkan terkadang berbeda. Oleh sebab itu diperlukan sebuah sistem yang dapat memberikan informasi film dan rekomendasi yang berasal dari beberapa situs, sehingga informasi yang disajikan lebih mudah dibaca oleh penggemar film yang akan mencari informasi film. Pada penelitian ini dibuat sebuah sistem yang akan memberikan informasi dan rekomendasi film. Sumber data film akan didapatkan dari beberapa situs database film dan akan digabungkan untuk disajikan dengan cara yang informatif kepada user. Pengambilan data film dilakukan dengan memanfaatkan MyMovieAPI yang sudah disediakan oleh IMDb dan juga menggunakan teknik grabbing. Diharapkan dengan adanya aplikasi ini, user dapat melihat informasi film dan rekomendasi film yang berasal dari beberapa sumber sekaligus, namun cukup diakses dalam satu web. 2.
Tinjauan Pustaka
Penelitian terdahulu yang digunakan sebagai acuan dalam penelitian ini berjudul Aplikasi Web Grabber untuk Mengambil Halaman Web Sesuai dengan Keyword yang Diinputkan, diperoleh kesimpulan bahwa aplikasi web grabber yang diciptakan mampu melakukan pencarian halaman-halaman web sesuai dengan topik yang diinginkan dengan memasukkan keyword yang diinginkan tanpa perlu membuka halaman web secara manual, hasilnya yang berupa halaman-halaman web
2
secara otomatis tersimpan pada komputer dan dapat dilihat secara offline [2]. Selain itu web grabber juga telah dimanfaatkan oleh sebuah penyedia plugin yang bernama Wise Loop, di mana pada salah satu demo plugin yaitu PHP Web Grabber, pengguna dapat memperoleh konten media berupa gambar dari Flickr.com hanya dengan memasukkan keyword pada input yang tersedia. Penelitian kedua yang digunakan sebagai acuan berjudul Perancangan Sistem AutoReply Twitter menggunakan Twitter API (Studi Kasus: netDesain Bandung). Pada penelitian ini dirancang sebuah sistem untuk melakukan autoreply twitter dengan memanfaatkan Twitter API. Sistem yang dirancang dapat membalas dengan otomatis [3]. Pada penelitian ini akan dibuat sistem rekomendasi film menggunakan MyMovieAPI dan teknik grabbing. Perbedaan dengan penelitian sebelumnya adalah pada penelitian itu untuk mengambil data film dari sumber data tidak hanya menggunakan teknik grabbing saja, namun juga menggunakan API yang disediakan oleh situs IMDb. Konsep sistem rekomendasi telah digunakan secara luas oleh hampir semua area bisnis di mana seorang konsumen memerlukan informasi untuk membuat suatu keputusan [4]. Sistem rekomendasi pariwisata atau perjalanan menggunakan konsep ini untuk menolong para wisatawan untuk memutuskan tujuan perjalanan mereka, akomodasi dan aktivitas di tempat tujuan. Sistem rekomendasi merupakan model aplikasi dari hasil observasi terhadap keadaan dan keinginan pelanggan. Oleh karena itu sistem rekomendasi memerlukan model rekomendasi yang tepat agar yang direkomendasikan sesuai dengan keinginan pelanggan, serta mempermudah pelanggan mengambil keputusan yang tepat dalam menentukan produk yang akan digunakannya [5]. Sistem rekomendasi merupakan sebuah (web) alat personalisasi yang menyediakan pengguna sebuah informasi daftar item yang sesuai dengan keinginan masing-masing pengguna. Sistem rekomendasi menyimpulkan preferensi pengguna dengan menganalisis ketersediaan data pengguna, informasi tentang pengguna dan lingkungannya. Oleh karena itu sistem rekomendasi akan menawarkan kemungkinan dari penyaringan informasi personal sehingga hanya informasi yang sesuai dengan kebutuhan dan preferensi pengguna yang akan ditampilkan di sistem dengan menggunakan sebuah teknik atau model rekomendasi [6]. API (Application Programming Interface) adalah sekumpulan perintah, fungsi, komponen, dan protokol yang disediakan oleh sistem operasi ataupun bahasa pemrograman tertentu yang dapat digunakan oleh programmer saat membangun perangkat lunak. Dalam API terdapat fungsi-fungsi atau perintah-perintah untuk menggantikan bahasa yang digunakan dalam system calls dengan bahasa yang lebih terstruktur dan mudah dimengerti oleh programmer [7]. Keuntungan menggunakan API: 1) Probabilitas: API dapat digunakan untuk bahasa pemrograman ataupun untuk sistem operasi mana saja asalkan paket-paket API sudah terpasang, 2) Lebih Mudah Dimengerti: API menggunakan bahasa yang lebih terstruktur dan mudah dimengerti daripada bahasa system call. Hal ini sangat penting dalam hal editing dan pengembangan, 3) Mudah Dikembangkan: Dengan adanya API, memudahkan programmer untuk mengembangkan suatu sistem. Salah satu API yang disediakan untuk programmer adalah My Movie API. API ini disediakan oleh situs IMDb yang dapat dimanfaatkan untuk mendapatkan data film dari database IMDb.
3
Teknik grabbing adalah teknik mengambil teks atau konten pada situs lain dengan cURL kemudian diletakkan pada website yang lain. Konsep grabbing berbeda dari web service, di mana informasi atau data yang diambil tidak disajikan dalam bentuk tertentu seperti XML ataupun JSON. Data yang diambil berada pada halaman website atau dengan kata lain terselip pada tag HTML[8]. Pada teknik grabbing, selain membaca file HTML dengan cURL diperlukan pula sebuah metode untuk mengambil data atau informasi yang terselip pada file HTML, yaitu dengan function explode(). Konsep dari function explode() adalah memotong suatu data dalam hal ini tag html, berdasar keyword tertentu dan menghasilkan data array. 3.
Metode dan Perancangan Sistem
Penelitian yang dilakukan, diselesaikan melalui tahapan penelitian yang terbagi dalam lima tahapan, yaitu: (1) Analisis kebutuhan dan pengumpulan data, (2) Perancangan sistem, (3) Perancangan aplikasi/program, (4) Implementasi dan pengujian sistem, serta analisis hasil pengujian, (5) Penulisan laporan hasil penelitian. Analisis Kebutuhan dan Pengumpulan Data
Perancangan Sistem meliputi Perancangan Proses (UML), Perancangan Arsitektur, Perancangan Database, Perancangan Antarmuka
Perancangan Aplikasi/Program
Implementasi dan Pengujian Sistem, serta Analisis Hasil Pengujian
Penulisan Laporan Hasil Penelitian
Gambar 1 Metode Penelitian [9]
Tahapan penelitian pada Gambar 1, dapat dijelaskan sebagai berikut. Tahap pertama: analisis kebutuhan dan pengumpulan data, pada tahap ini dilakukan wawancara kepada masyarakat yang mempunyai hobi menonton film. Informasi yang digali adalah berkaitan dengan cara penggemar film tersebut dalam mencari informasi dari film yang akan ditonton. Selain itu juga ditanyakan tentang rekomendasi dari film yang akan ditonton. Tahap kedua: perancangan sistem yang meliputi perancangan proses menggunakan diagram Unified Modelling Language (UML) misalnya perancangan use case diagram, activity diagram, dan sequence diagram. Perancangan user interface yang dibuat untuk memberikan gambaran dari tampilan aplikasi yang digunakan oleh user aplikasi; Tahap ketiga, perancangan aplikasi/program yaitu merancang aplikasi/program sesuai kebutuhan sistem berdasarkan perancangan sistem yang telah dilakukan. Tahap keempat: implementasi dan pengujian sistem, serta analisis hasil pengujian, yaitu mengimplementasikan aplikasi yang sudah dibuat kemudian dilakukan pengujian, selanjutnya melakukan analisis untuk melihat apakah aplikasi yang telah dibuat sudah sesuai dengan yang diharapkan atau tidak ada error,
4
jika belum sesuai maka akan dilakukan perbaikan dan tahap kelima, penulisan laporan hasil penelitian, yaitu mendokumentasikan proses penelitian yang sudah dilakukan dari tahap awal hingga akhir ke dalam tulisan, yang nantinya akan menjadi laporan hasil penelitian. Metode Pengembangan Sistem yang digunakan pada penelitian ini adalah metode Prototype. Metode Prototype digunakan untuk membantu pengembangan perangkat lunak dalam membentuk model dari perangkat lunak yang harus dibuat. Metode ini dilakukan secara bertahap, yaitu dengan mengembangkan suatu prototype yang sederhana terlebih dahulu baru kemudian dikembangkan dari waktu ke waktu sampai perangkat lunak selesai dikembangkan. Prototype merupakan bentuk dasar atau model awal dari suatu sistem atau subsistem [10]. Secara garis besar ada tiga tahap dalam metode prototyping ini, seperti terlihat pada Gambar 2.
Gambar 2 Metode Prototyping [10]
Tahap awal dari metode ini adalah analisis permasalahan dan kebutuhan, yaitu mengumpulkan kebutuhan dari sistem yang akan dibuat, dengan perencanaan yang cepat akan dibentuk konstruksi dari prototype-nya. Prototype ini akan dievaluasi lagi dan hasilnya digunakan untuk mengelola kembali kebutuhan dari perangkat lunak yang dikembangkan. Pada tahap ini yang dilakukan adalah merancang kebutuhan yang nantinya akan berguna untuk membangun aplikasi. Berdasarkan analisis kebutuhan yang dilakukan melalui wawancara awal kepada pada penggemar film, dirancanglah kebutuhan user sebagai berikut: 1) User dapat mencari informasi film berdasarkan judul film, 2) user dapat melihat informasi detail film yang dicari, 3) User dapat melihat rekomendasi film yang layak untuk ditonton. Berdasarkan analisis kebutuhan ini, kemudian dilakukan perancangan aplikasi. Perancangan proses pada penelitian ini dilakukan menggunakan UML (Unified Modeling Language) dengan beberapa proses, dijelaskan sebagai berikut. Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem, yang menjelaskan keseluruhan kerja sistem secara garis besar dengan merepresentasikan interaksi antara aktor dengan sistem yang dibuat, serta memberikan gambaran fungsifungsi yang diberikan sistem kepada user.
5
Gambar 3 Arsitektur Aplikasi
Arsitektur aplikasi yang dibuat digambarkan pada Gambar 3. Pada arsitektur tersebut, proses pertama terjadi saat user melakukan pencarian film dengan memasukkan judul film yang akan dicari. Aplikasi akan melakukan grabbing untuk mengambil data film yang dicari di IMDb. Kemudian data hasil pencarian dengan cara grabbing akan ditampilkan dalam website rekomendasi film yang dibuat. User memilih salah satu judul film yang berasal dari hasil grabbing tadi, dengan parameter berupa id film kemudian digunakan MyMovieAPI untuk mengambil informasi film dari IMDb dan saat bersamaan juga dilakukan grabbing ke website themoviedb dan akan dikembalikan data rincian informasi film yang dipilih tadi beserta dengan rekomendasi film yang berkaitan dengan film yang dipilih kepada user. Website rekomendasi film akan menampilkan detail film beserta rekomendasi film yang berkaitan yang berasal dari IMDd dan themoviedb. Use case diagram digambarkan pada Gambar 4. include
mencari film
user
melihat hasil pencarian include
include
melihat detail info film
include
memilih film
melihat rekomendasi film
Gambar 4 Use Case Diagram Aplikasi
Gambar 4 menjelaskan use case diagram dari sistem rekomendasi film yang dibuat. Terdapat 1 (satu) aktor yaitu user atau penggemar film. Usecase yang disediakan adalah mencari film berdasarkan judul yang dimasukkan oleh user. Aplikasi akan melakukan grabbing ke website IMDb dan menampilkan daftar film
6
hasil pencarian. User dapat memilih salah satu film, melihat detail informasi film dan melihat rekomendasi film yang didapatkan dari website IMDd dan themoviedb. user
sistem rekomendasi film
w ebsite IMDb
grabbing film
mencari film
mulai
w ebsite themov iedb
menampilkan hasil pencarian film ambil data film dengan My Movie API memilih salah satu film
ambil data film dengan grabbing
menampilkan informasi dan rekomendasi film
selesai
Gambar 5 ActivityDiagram Aplikasi
Gambar 5 menggambarkan activity diagram aplikasi yang dibuat. Aktifitas dimulai saat user mencari film, aplikasi akan melakukan grabbing ke website IMDb untuk mencari film yang dicari. Hasil pencarian akan ditampilkan oleh website rekomendasi film dan user dapat memilih salah satu judul film. Kemudian dengan menggunakan MyMovieAPI, akan diambil data rincian dan rekomendasi film dari website IMDb. Pada saat yang sama, sistem rekomendasi film juga melakukan grabbing ke website themoviedb untuk mengambil rekomendasi film. Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan lain-lain) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu.
: user
sistem rekomendasi film
website IMDb
website themoviedb
1: mencari film 2: grabbing film 3: mengirim hasil pencarian 4: memilih film 5: ambil data & rekomendasi film 6: ambil rekomendasi film 7: mengirim data & rekomendasi film 8: mengirim rekomendasi film 9: menampilkan informasi detail dan rekomendasi film
Gambar 6 Sequence Diagram Aplikasi
7
Gambar 6 menggambarkan sequence diagram aplikasi yang menggambarkan urutan proses dan pengiriman data film dan rekomendasi film. Proses berawal saat user mencari film di website rekomendasi film, dengan teknik grabbing akan dilakukan pengambilan data dari website IMDb dan dikembalikan ke website rekomendasi film. Berdasarkan hasil pencarian yang diperoleh tersebut, user memilih salah satu film dan akan diambil data film yang dipilih beserta dengan rekomendasi film dari IMDb. Proses ini memanfaatkan MyMovieAPI pada website IMDb. Pada saat yang bersamaan juga dilakukan grabbing untuk mengambil rekomendasi film dari website themoviedb. 4.
Hasil dan Pembahasan
Pada bagian ini dibahas tentang hasil aplikasi berdasarkan perancangan pada bab sebelumnya beserta dengan pembahasannya. Pada bagian ini juga dijelaskan tentang hasil pengujian sistem yang telah dilakukan. Aplikasi yang telah dibuat adalah aplikasi web dengan tampilan awal seperti terlihat pada Gambar 8.
Gambar 8 Halaman Utama Aplikasi
Pada Gambar 8 terdapat sebuah textfield yang digunakan untuk mencari film. User mencari film berdasarkan judul film yang dimasukkan pada textfield tersebut. Hasil pencarian film ditunjukkan pada Gambar 9.
8
Gambar 9 Hasil Pencarian Film
Pencarian film dilakukan dengan menggunakan teknik grabbing. Aplikasi melakukan grabbing ke website IMDb untuk mencari film yang dimasukkan user pada textfield pencarian. Kode Progam 1 merupakan perintah untuk melakukan grabbing ke website IMDb. Kode Program 1 Perintah untuk Grabbing Pencarian di IMDb 1. 2. 3. 4. 5. 6. 7. 8.
require_once('crawler/base_crawler.php'); require_once('crawler/imdb_crawler.php'); if (isset($_GET['txturl'])) { $idMovie = $_GET['txturl']; $imdb_crawler = new imdb_crawler(); $datas = $imdb_crawler->search($idMovie); } ?>
Perintah-perintah pada Kode Program 1 akan melakukan pencarian film di website IMDb. Pada baris 6 dilakukan pemanggilan fungsi search untuk mencari film dengan parameter idMovie yang sudah didapatkan dari hasil perintah pada baris 4. Fungsi untuk search ditunjukkan pada Kode Program 2.
9
Kode Program 2 Perintah untuk Fungsi Search untuk Pencarian Film 1. 2. 3. 4. 5. 6. 7.
public function search($keyword) { $keyword = str_replace(" ", "%20", $keyword); $url = "http://www.imdb.com/find?q=$keyword&s=tt&ttype=ft&ref_=fn_ft"; $this->setContent($url); $this->cleanContent(); if (!empty($this->content)) { preg_match_all('/
Perintah Baris 10 pada Kode Program 2 akan memanggil fungsi _get_search_data untuk mengambil data film hasil pencarian. Fungsi _get_search_data ditunjukkan pada Kode Program 3. Kode Program 3 Perintah untuk Mendapatkan Data Hasil Pencarian 1. protected function _get_search_data($data) { 2. $imdb = new imdb_crawler(); 3. preg_match('/
(.*?)\<\/td\>/i', $data, $text); 9. if (empty($text[1])) { 10. $imdb->year = "Tidak Diketahui"; 11. $imdb->title = "Tidak Diketahui"; 12. $imdb->link = "Tidak Diketahui"; 13. } else { 14. $imdb->title = $this->_get_link_content($text[1]); 15. $imdb->link = "http://www.imdb.com" . $this->_get_link($text[1]); 16. $imdb->id = substr($this->_get_link($text[1]), 7, 9); 17. preg_match('/ \((\d+)\) /i', $text[1], $text); 18. if (empty($text[1])) { 19. $imdb->year = "Tidak Diketahui"; 20. } else { $imdb->year = $text[1]; } } User dapat memilih salah satu judul film yang didapatkan dari hasil pencarian return $imdb; pada Gambar 9. Film yang dipilih kemudian akan diproses menggunakan My Movie }
API untuk didapatkan informasi lengkap film tersebut beserta dengan rekomendasi film yang berkaitan dengan film yang dipilih tadi dari website IMDb. Gambar 10 merupakan hasil informasi film yang didapatkan dari penggunaan My Movie API.
10
Gambar 10 Informasi Film dari My Movie API
Kode Program 3 merupakan perintah penggunaan My Movie API untuk mendapatkan informasi film pada Gambar 10. Kode Program 3 Perintah untuk Penggunaan My Movie API public function searchUrl($keyword) { $url = "http://mymovieapi.com/?id=$keyword&type=json&plot=simple&episode=1&lang=enUS&aka=simple&release=simple&business=0&tech=0"; $this->setContent($url); return json_decode($this->content); }
My Movie API akan mengembalikan data informasi film berupa JSON dan akan ditampilkan menggunakan Kode Program 4. Kode Program 4 Perintah untuk Menampilkan Informasi Film 1. 2.
Selain menampilkan informasi detail film seperti pada Gambar 10, aplikasi juga menampilkan rekomendasi film yang berasal dari website IMDb dan themoviedb. Hasil rekomendasi film dari IMDb diperlihatkan oleh Gambar 11.
11
Gambar 11 Halaman Hasil Rekomendasi Film dari IMDb Kode Program 5 Perintah untuk menampilkan Rekomendasi Film dari IMDb 1. 2. 3. 4. 5.
public function searchRekomen($url) { $this->setContent($url); $this->cleanContent(); if (!empty($this->content)) { preg_match_all('/
Perintah untuk Baris 11 pada Kode Program 5 digunakan untuk mengambil rekomendasi film dari website IMDb berdasarkan id film sebelumnya. Hasil rekomendasi film disimpan dalam array $result dan akan ditampilkan seperti terlihat pada Gambar 11. Pada halaman yang sama, aplikasi juga menampilkan rekomendasi film yang berasal dari website themoviedb. Hasil rekomendasi dari themoviedb terlihat pada Gambar 12.
12
Gambar 12 Halaman Hasil Rekomendasi Film dari themoviedb
Aplikasi juga memberikan rekomendasi film dari website themoviedb supaya user juga mendapat alternatif rekomendasi film selain dari website IMDb. Untuk menampilkan rekomendasi film dari themoviedb, digunakan teknik grabbing dengan Kode Program 6. Kode Program 6 Perintah untuk Rekomendasi Film dari themoviedb 1. public function search($title_imdb) { 2. $keyword = str_replace(" ", "%20", $title_imdb); 3. $url = "http://www.themoviedb.org/search/movie?query=$keyword"; 4. $this->setContent($url); 5. $this->cleanContent(); 6. if (!empty($this->content)) { 7. preg_match_all('/