THE IMPLEMENTATION OF MASHUP TECHNOLOGY FOR WEB BASED TOURISM APPLICATION NUSANTARAVIEW: ACCOMMODATION MODULE Name NRP Departement Supervisor
: : : :
MUHAMAD NUR TAUFIX 5205 100 029 INFORMATION SYSTEM FTIF-ITS Nur Aini Rakhamawati, S.Kom, M.sc.Eng Radityo Prasetianto Wibowo, S.Kom
Abstract The demand of tourism information especially accommodations information are really needed. Nowadays many web provide accommodation information in static format and its information is not complete. So it can be difficult to get those informations. To solve that problem, Nusantaraview, web tourism application is developed. This application contain tourism information in Indonesia, including accommodation information that is developed as a component joomla!. Those informations are processed by using mashup concept. This final project developes web service using REST technology as a provider and process of storage data restaurant and rss data generated from static web by using Dapper. The result of this final project are joomla! component for displaying accommodation information and web service to collect and provide data for those who need it.
Keyword : Tourism, Mashup, REST, Joomla!, Dapper, Web Service.
iii
KATA PENGANTAR Puji dan syukur penulis panjatkan kehadirat Allah SWT, karena atas limpahan rahmad, petunjuk serta ridho-Nya sehingga penulis dapat menyelesaikan buku tugas akhir dengan judul “PENERAPAN TEKNOLOGI MASHUP DALAM WEB PARIWISATA NUSANTARAVIEW: MODUL AKOMODASI ”. Buku Tugas akhir ini dibuat sebagai dokumentasi dari tugas akhir yang dikerjakan dan disusun untuk memenuhi salah satu persyaratan dalam menyelesaikan pendidikan sarjana Strata Satu (S1) di lingkungan Sistem Informasi, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember Surabaya. Penulis menyadari bahwa Tugas Akhir ini tidak akan selesai tanpa bantuan dan dukungan dari berbagai pihak. Oleh karena itu, penulis ingin mengucapkan ucapan terima kasih yang sebesar-besarnya kepada: 1. Orang tua penulis Ayah dan Ibu dari penulis yang senantiasa mendoakan dan mendidik penulis mulai dari masih dalam kandungan sampai saat ini. Terima Kasih bu. Terima Kasih yah. 2. Adek Adek dari penulis, Fenty Dwi Novianty yang terkadang membuat penulis jengkel dan ketawa. 3. Ibu Nur Aini Rakhmawati Selaku dosen pembimbing satu penulis dalam menyusun Tugas Akhir ini. Terima kasih bu, sudah sabar dalam membimbing penulis selamat pengerjaan tugas akhir ini. Semoga putra/putri ibu nantinya menjadi anak yang soleh/solekhah, pintar dan berbakti kepada orang tuanya. Amin. 4. Bapak Radityo Prasetianto Wibowo Selaku dosen Pembimbing dua. Makasih pak udah memberi tahu tentang dasar - dasar REST. Berkat bapak, Alhamdulillah teknologi REST dapat diimplementasikan dalam tugas akhir ini. 5. Dosen-dosen Sistem Informasi Ucapan terima kasih juga ditujukan kepada dosen-dosen yang telah mengajar penulis saat melaksanakan studi di Sistem Informasi, terima kasih telah memberikan ilmu yang bermanfaat. Khususnya kepada dosen wali penulis (Bapak Edwin Riksakomara serta Ibu Mahendrawathi) yang telah sabar dan memberi nasihat penulis selama kuliah. 6. Pusparani Sholikhah Seorang yang dekat dengan penulis, dan yang mengisi hari – hari penulis, baik dalam masa – masa suka maupun tidak. Terima kasih buat semuanya. 7. Ebizz Family dan Phoenic’05 Gembel, Kecap, Muhak, Pur, Taurisa, Tanjung, Rifki, Jamrong, Icha. Thanks guys. Kalian emang yang terbaik dan tergokil. Dan buat semua saudara-saudara seperjuangan di 2005, jangan lupakan aku rek. Dan moga-moga kita semua sukses dunia akhirat. Amin 8. Penggagas Internet dan Google Ucapan terima kasih ditujukan kepada penggagas internet, beserta penemu search engine google. Terima kasih berkat jasa anda, saya bisa menemukan apapun di internet. 9. KMSI (Keluarga Mahasiswa Sistem Informasi)
v
Makasih buat angkatan KMSI baik yang ada setelah phoenic’05 (ANONIMS,GENESIS) maupun yang ada sebelum phoenic’05 (DISC, NFORS, SHOGUN, NARSIS) yang telah menyemangati penulis baik secara langsung maupun tidak. Buat Genesis, titip KMSI yo rek. 10. Tim design Nusantaraview Terima kasih kepada Fitrah Meilia Purnama yang telah membuat logo Nusantaraview. Rifki Handika Haqqi serta Agyl Ardi Rahmadi yang telah membantu untuk membuat desain poster Nusantaraview. Terima kasih banyak. 11. Floopy Sahabat penulis sejak SMA, makasih buat dukungan yang udah di berikan. Ntar kita jalan-jalan bareng lagi. 12. Admins Administratot laboratarium yang ada di jurusan Sistem Informasi (LPSI,e-Businees,Lab TA) khususnya mas Bambang, mas harmono, dan maya. Serta admin forum di internet yang telah menemani penulis saat mengerjakan tugas akhir ini. 13. Serta semua pihak yang tidak dapat penulis sebut satu persatu. Penulis hanya bisa mengucapkan terima kasih atas segala bantuannya. Penulis menyadari bahwsannya dalam penyusunan tugas akhir ini masih jauh dari kata sempurna. Oleh karena itu penulis mengharapkan saran dan kritik yang membangun dari semua pihak. Penulis juga berharap semoga tugas akhir ini dapat memberikan manfaat yang berguna bagi semua pihak yang membutuhkan.
Surabaya, 17 Juni 2009
Penulis
vi
DAFTAR ISI ABSTRAK .................................................................................................................................................................... I KATA PENGANTAR ................................................................................................................................................ V DAFTAR ISI ............................................................................................................................................................ VII DAFTAR GAMBAR ................................................................................................................................................. XI DAFTAR TABEL................................................................................................................................................... XIII BAB I PENDAHULUAN ............................................................................................................................................ 1 1.1 LATAR BELAKANG ................................................................................................................................................... 1 1.2 TUJUAN .................................................................................................................................................................... 1 1.3 MANFAAT ................................................................................................................................................................ 1 1.4 PERMASALAHAN ...................................................................................................................................................... 2 1.5 BATASAN MASALAH ................................................................................................................................................ 2 1.6 SISTEMATIKA PENULISAN ........................................................................................................................................ 2 BAB II TINJAUAN PUSTAKA ................................................................................................................................. 3 2.1 MASHUP ................................................................................................................................................................... 3 2.1.1 Perkembangan Mashup ............................................................................................................................... 3 2.1.2 Data mashup ................................................................................................................................................ 4 2.2 NUSANTARAVIEW .................................................................................................................................................... 4 2.3 JOOMLA! ................................................................................................................................................................. 5 2.3.1.1 Model ........................................................................................................................................................ 6 2.3.1.2 View .......................................................................................................................................................... 6 2.3.1.3 Controller ................................................................................................................................................. 6 2.4 DAPPER .................................................................................................................................................................... 6 2.5 PHP ......................................................................................................................................................................... 7 2.5.1 Sejarah PHP ................................................................................................................................................ 7 2.5.2 Kelebihan PHP ............................................................................................................................................ 7 2.6 CURL ...................................................................................................................................................................... 7 2.7 RSS .......................................................................................................................................................................... 8 2.8 XML ........................................................................................................................................................................ 9 2.9 WEB SERVICE ........................................................................................................................................................ 10 2.9.1 Perbedaan Web Service dengan Website ................................................................................................... 10 2.9.2 Penyedia dan Peminta ............................................................................................................................... 10 2.10 REST ................................................................................................................................................................... 10 2.10.1 Resources ................................................................................................................................................. 10 2.10.2 Tipe Pesan dari RESTful Web Services ................................................................................................... 11 2.10.3 Operasi RESTful Web Services ................................................................................................................ 11 BAB III METODOLOGI PENELITIAN................................................................................................................ 13 3.1 FLOWCHART DAN PENJELASAN .............................................................................................................................. 13 3.1.1 Identifikasi Masalah .................................................................................................................................. 13 3.1.2 Menetapkan Tujuan dan Batasan .............................................................................................................. 13 3.1.3 Studi Literatur............................................................................................................................................ 14 3.1.4 Pengumpulan Aplikasi atau teknologi pendukung ..................................................................................... 14 3.1.5 Analisis Kebutuhan Sistem......................................................................................................................... 15 3.1.6 Perancangan dan Desain Sistem ............................................................................................................... 15 3.1.7 Pengembangan Sistem ............................................................................................................................... 15 3.1.8 Uji Coba dan Evaluasi Sistem ................................................................................................................... 15 3.1.9 Pembuatan Laporan .................................................................................................................................. 15 BAB IV ANALISIS KEBUTUHAN DAN PERANCANGAN PERANGKAT LUNAK ..................................... 17 4.1 DESKRIPSI UMUM................................................................................................................................................... 17 4.2 ANALISIS KEBUTUHAN........................................................................................................................................... 18 4.2.1 Pengguna ................................................................................................................................................... 18 4.2.1.1 Administrator .................................................................................................................................................... 18
vii
4.2.1.2 Pengunjung....................................................................................................................................................... 18 4.2.1.3 Pemakai Data ................................................................................................................................................... 18 4.2.1.4 Entry Data ........................................................................................................................................................ 18 4.2.1.5 Web Master ...................................................................................................................................................... 19
4.1.2 Teknologi ....................................................................................................................................................19 4.1.2.1 Web .................................................................................................................................................................. 19 4.1.2.2 Mashup ............................................................................................................................................................. 19 4.1.2.3 Joomla! ............................................................................................................................................................. 19 4.1.2.4 REST ................................................................................................................................................................ 19 4.1.2.5 MySQL ............................................................................................................................................................ 19 4.1.2.6 CURL ............................................................................................................................................................... 19
4.1.3 Fungsi .........................................................................................................................................................19
4.2.1 Hotel.................................................................................................................................................................... 20 4.2.1.1 Back-end....................................................................................................................................................20 4.2.1.2 Front-end ...................................................................................................................................................20 4.2.2 Restoran .............................................................................................................................................................. 20
4.3 ARSITEKTUR SISTEM ...............................................................................................................................................20 4.3.1 Komponen hotel ..........................................................................................................................................21 4.3.2 Komponen Restoran ...................................................................................................................................22 4.4 USE CASE DIAGRAM ................................................................................................................................................24 4.4.1 Komponen Hotel .........................................................................................................................................24 4.4.2 Komponen Restoran ...................................................................................................................................25 4.4.2 Deskripsi Use Case.....................................................................................................................................26 4.5 SEQUENCE DIAGRAM ..............................................................................................................................................26 4.6 CLASS DIAGRAM .....................................................................................................................................................26 4.7 PERANCANGAN BASIS DATA...................................................................................................................................26 4.7.1 Modul Hotel ................................................................................................................................................26 4.7.2 Modul Restoran ..........................................................................................................................................27 4.8 DESAIN ANTARMUKA APLIKASI .............................................................................................................................28 4.8.1 Komponen Hotel .........................................................................................................................................28 4.8.1.1 Sisi Front-end ................................................................................................................................................... 29 4.8.1.2 Sisi Back-end ................................................................................................................................................... 29
4.8.2 Komponen Restoran ...................................................................................................................................30 4.8.2.1 Sisi Fornt-end ................................................................................................................................................... 30 4.8.2.2 Sisi Back-end ................................................................................................................................................... 30
BAB V PEMBUATAN DAN UJI COBA APLIKASI .............................................................................................33 5.1 LINGKUNGAN IMPLEMENTASI .................................................................................................................................33 5.1.1 Hardware....................................................................................................................................................33 5.1.2 Software ......................................................................................................................................................33 5.2 IMPLEMENTASI DAPPER ..........................................................................................................................................34 5.3 PEMBUATAN KOMPONEN JOOMLA!..........................................................................................................................35 5.4 IMPLEMENTASI KOMPONEN HOTEL ........................................................................................................................36 5.4.1 Implementasi Back-End Komponen Hotel ..................................................................................................36 5.4.1.1 Model ............................................................................................................................................................... 36 5.4.1.2 View ................................................................................................................................................................. 36 5.4.1.3 Controller ......................................................................................................................................................... 37
5.4.2 Implementasi Front-End Komponen Hotel .................................................................................................38 5.4.2.1 Model ............................................................................................................................................................... 38 5.4.2.2 View ................................................................................................................................................................. 39 5.4.2.3 Controller ......................................................................................................................................................... 40 5.4.2.4 Assets ............................................................................................................................................................... 41
5.5 IMPLEMENTASI KOMPONEN RESTORAN ..................................................................................................................42 5.5.1 Implementasi Back-End Komponen Restoran ............................................................................................42 5.5.1.1 Parameter Komponen ....................................................................................................................................... 42 5.5.1.2 CURL pada Back-End Komponen Restoran .................................................................................................... 43
5.4.2 Implementasi Front-End Komponen Restoran ...........................................................................................44 5.4.2.1 CURL pada Front-End Komponen Restoran .................................................................................................... 44
5.5 IMPLEMENTASI TEKNOLOGI MASHUP ......................................................................................................................45 5.5.1 Implementasi Mashup pada Komponen Hotel ............................................................................................45 5.5.2 Implementasi Mashup pada Komponen Restoran ......................................................................................46 5.5 IMPLEMENTASI RESTFUL WEB SERVICE .................................................................................................................47 5.5.1 Method GET ...............................................................................................................................................47
viii
5.5.2 Method POST............................................................................................................................................. 49 5.5.2.1 Insert ................................................................................................................................................................. 49 5.5.2.2 Update............................................................................................................................................................... 50 5.5.2.3 Delete ................................................................................................................................................................ 50
5.6 UJI COBA APLIKASI................................................................................................................................................ 51 5.6.1 Uji Coba Komponen Hotel ........................................................................................................................ 51 5.6.1.1 Penambahan data .............................................................................................................................................. 51 5.6.1.2 Pengubahan Data .............................................................................................................................................. 52 5.6.1.3 Penghapusan Data ............................................................................................................................................. 52 5.6.1.4 Proses Mashup Untuk Pencarian Data Hotel .................................................................................................... 53
5.6.2 Uji Coba Komponen Restoran ................................................................................................................... 54 5.6.2.1 Penambahan Data ............................................................................................................................................. 54 5.6.2.2 Pengubahan Data .............................................................................................................................................. 56 5.6.2.3 Penghapusan Data ............................................................................................................................................. 57 5.6.2.4 Proses MASHUP untuk Pencarian Data Restoran ............................................................................................ 58
5.6.3 Uji Coba RESTful Web Service.................................................................................................................. 58 5.6.3.1 Mendapatkan Semua Data Restoran ................................................................................................................. 59 5.6.3.2 Mendapatkan Data Restoran Berdasarkan Nama Kota ..................................................................................... 59 5.6.3.3 Mendapatkan Data Restoran Berdasarkan ID Restoran .................................................................................... 60 5.6.3.4 Mendapatkan Data Restoran Berdasarkan ID API Pengguna ........................................................................... 60 5.6.3.5 Mendapatkan Data Restoran di Kota Tertentu dengan Jumlah Tertentu ........................................................... 61
5.6.4 Uji Coba Installasi Komponen .................................................................................................................. 61 5.6.5 Uji Coba Keunggulan Mashup .................................................................................................................. 62 BAB VI KESIMPULAN DAN SARAN ................................................................................................................... 63 6.1 KESIMPULAN .......................................................................................................................................................... 63 6.2 SARAN.................................................................................................................................................................... 63 DAFTAR PUSTAKA ................................................................................................................................................ 65 LAMPIRAN NARATIF.............................................................................................................................................. 1 1. KOMPONEN HOTEL .................................................................................................................................................... 1 2. KOMPONEN RESTORAN .............................................................................................................................................. 6 LAMPIRAN SEQUENCE ........................................................................................................................................ 17 1. KOMPONEN HOTEL .................................................................................................................................................. 17 2. KOMPONEN RESTORAN ............................................................................................................................................ 19 LAMPIRAN CLASS DIAGRAM ............................................................................................................................ 27
ix
DAFTAR GAMBAR Gambar 2.1 Homepage yahoo glue ................................................................................................. 3 Gambar 2.2 Halaman Hasil Pencarian ............................................................................................ 4 Gambar 2.3 Homepage zetallite ...................................................................................................... 4 Gambar 2.4 Tampilan Error CURL ................................................................................................ 8 Gambar 2.5 Barisan kode dalam php.ini ......................................................................................... 8 Gambar 2.6 Barisan kode untuk mengaktifkan curl ........................................................................ 8 Gambar 2.7 Contoh file xml .......................................................................................................... 10 Gambar 3.1 Flowchart pengembangan Tugas Akhir ................................................................... 14 Gambar 4.1 Arsitektur sistem Nusantaraview ............................................................................... 21 Gambar 4.2 Arsitektur sistem Komponen Hotel ........................................................................... 21 Gambar 4.3 Diagram flowchart proses pencarian nama kota ....................................................... 22 Gambar 4.4 Arsitektur sistem Komponen Restoran ...................................................................... 23 Gambar 4.5 Diagram flowchart menampilkan data restoran ........................................................ 23 Gambar 4.6 Use case komponen hotel .......................................................................................... 25 Gambar 4.7 Use case komponen restoran ..................................................................................... 26 Gambar 4.8 Model data konseptual komponen hotel .................................................................... 27 Gambar 4.9 Model data fisik komponen hotel .............................................................................. 27 Gambar 4.10 Model data konseptual komponen restoran ............................................................. 28 Gambar 4.11 Model data fisik komponen restoran ....................................................................... 28 Gambar 4.12 Desain antarmuka front-end komp. hotel ................................................................ 29 Gambar 4.13 Desain antarmuka back-end komp. hotel ................................................................ 29 Gambar 4.14 Desain antarmuka front-end komp. restoran ........................................................... 30 Gambar 4.15 Desain antarmuka back-end komp. restoran ........................................................... 31 Gambar 5.1 Sumber data penginapan............................................................................................ 34 Gambar 5.2 Contoh rss yang dihasilkan ....................................................................................... 34 Gambar 5.3 Susunan folder dan file pembangun suatu komponen ............................................... 35 Gambar 5.4 Pseudocode menampilkan data – data hotel .............................................................. 36 Gambar 5.5 Kode pada halaman view.html.php ........................................................................... 37 Gambar 5.6 Kode yang ada pada halaman default.php ................................................................. 37 Gambar 5.7 Fungsi untuk melakukan penyimpanan ..................................................................... 38 Gambar 5.8 Pseudocode untuk pencarian id kota dan prop .......................................................... 38 Gambar 5.9 Pseudocode untuk mencari nama kota dari inputan objek pariwisata ....................... 39 Gambar 5.10 Pseudocode untuk mencari nama kota dari inputan kota ........................................ 39 Gambar 5.11 Pseudocode untuk melakukan pencarian url rss ...................................................... 39 Gambar 5.12 Kode untuk menampilkan form cari pada halaman front-end komponen hotel ...... 40 Gambar 5.13 Kode untuk mengolah data rss ................................................................................ 40 Gambar 5.14 Kode untuk memanggil view utama ........................................................................ 41 Gambar 5.15 Struktur file pada folder assets ................................................................................ 41 Gambar 5.16 Kode untuk melakukan load file javascript dan css ................................................ 42 Gambar 5.17 Kode untuk memanggil javascipt untuk pop-up window ........................................ 42 Gambar 5.18 File xml untuk mengisi form parameter .................................................................. 43 Gambar 5.19 Kode untuk menampilkan icon parameters ............................................................. 43 Gambar 5.20 Tampilan window parameters .................................................................................. 43 Gambar 5.21 Kode CURL untuk pengiriman data ........................................................................ 43 Gambar 5.22 Kode untuk mendapatkan data dari web service ..................................................... 44 Gambar 5.23 Kode untuk menampilkan data berformat rss ......................................................... 45 Gambar 5.24 Kode untuk mengolah data xml menjadi array ....................................................... 47
xi
Gambar 5.25 Tampilan data xml setelah diubah menjadi array ................................................... 47 Gambar 5.26 Kode untuk memeriksa setiap url yang diakses ...................................................... 48 Gambar 5.27 Pseudocode untuk menangani perintah pada tabel 5.3 poin 2,3 dan 4.................... 49 Gambar 5.28 Pseudocode untuk mendapatkan data semua restoran ............................................ 49 Gambar 5.29 Pseudocode untuk menangani perintah pada tabel 5.3 poin 5 ............................... 49 Gambar 5.30 Pseudocode untuk menangani proses insert ........................................................... 50 Gambar 5.31 Pseudocode untuk menangani perintah update data .............................................. 50 Gambar 5.32 Pseudocode untuk menangani perintah delete ....................................................... 51 Gambar 5.33 Halaman Form tambah data ................................................................................... 51 Gambar 5.34 Bukti bahwa data yang telah diinputkan telah disimpan ........................................ 52 Gambar 5.35 Halaman awal komponen hotel dan akan dilakukan proses edit ............................ 52 Gambar 5.36 Form untuk melakukan edit data ............................................................................ 52 Gambar 5.37 Bukti bahwa data telah di update ........................................................................... 52 Gambar 5.38 Halaman awal komponen hotel dan akan dilakukan proses hapus ........................ 53 Gambar 5.39 Bukti bahwa data telah dihapus .............................................................................. 53 Gambar 5.40 Halaman awal front-end komponen hotel .............................................................. 53 Gambar 5.41 Hasil pencarian data hotel (mashup) ...................................................................... 54 Gambar 5.42 Window Parameters komponen restoran ................................................................ 54 Gambar 5.43 Form untuk menginputkan data restoran ............................................................... 55 Gambar 5.44 Halaman xml untuk data restoran kota Medan ....................................................... 55 Gambar 5.45 Halaman web yang menunjukkan tidak ada data yang ditampilkan ....................... 56 Gambar 5.46 halaman awal komponen restoran dengan data yang dicentang............................. 56 Gambar 5.47 Form ubah data dengan formnya telah diisi oleh data dari database..................... 56 Gambar 5.48 halaman untuk mendapatkan data restoran pada kota medan ................................ 57 Gambar 5.49 Halaman awal back-end komponen restoran dan akan dilakukan proses hapus .... 57 Gambar 5.50 Data yang dipilih telah dihapus .............................................................................. 57 Gambar 5.51 Bukti bahwa data telah dihapus .............................................................................. 58 Gambar 5.52 Halaman awal komponen restoran ......................................................................... 58 Gambar 5.53 Hasil pencarian data restoran (mashup) ................................................................. 58 Gambar 5.54 data xml untuk menampilkan semua data restoran ................................................. 59 Gambar 5.55 Hasil perhitungan data melalui query..................................................................... 59 Gambar 5.56 data xml untuk menampilkan data restoran pada kota tertentu .............................. 60 Gambar 5.57 data xml untuk menampilkan data restoran pada id restoran tertentu .................... 60 Gambar 5.58 data xml untuk menampilkan data restoran pada id API tertentu ........................... 60 Gambar 5.59 data xml untuk menampilkan data restoran pada kota dan jumlah tertentu ........... 61 Gambar 5.60 Menu install Komponen pada joomla! ................................................................... 61 Gambar 5.61 Menu install Komponen pada joomla! ................................................................... 62 Gambar 5.62 Hasil pencarian Dufan pada Yahoo! Glue.............................................................. 62 Gambar 5.63 Hasil pencarian Dufan pada komponen hotel ........................................................ 62
xii
DAFTAR TABEL Tabel 2.1 Elemen dari rss ................................................................................................................ 9 Tabel 2.2 Perbedaan Antara xml dan HTML .................................................................................. 9 Tabel 2.3 Perbedaan web site dengan web service ........................................................................ 10 Tabel 2.4 Kolerasi Method dengan CRUD ................................................................................... 11 Tabel 4.1 Asosiasi kebutuhan komponen hotel dengan use case .................................................. 24 Tabel 4.2 Asosiasi kebutuhan komponen restoran dengan use case ............................................. 25 Tabel 5.1 Lingkungan implementasi hardware ............................................................................ 33 Tabel 5.2 Lingkungan implementasi software .............................................................................. 33 Tabel 5.3 Tabel fungsi setiap url yang diakses ............................................................................. 47
xiii