T1 672007227 FULL TEXT -...
Transcript of T1 672007227 FULL TEXT -...
2
1. Pendahuluan
Latar Belakang Kota Magelang merupakan kota tujuan wisata di Indonesia yang memiliki
objek wisata menarik. Salah satu objek wisata yang ada adalah sebuah candi yang dibangun megah pada pemerintahan Syailendra, yaitu Candi Borobudur. Dalam dunia pariwisata, Candi Borobudur adalah objek wisata tunggal di Indonesia yang paling banyak dikunjungi wisatawan. Menurut Badan Pusat Statistik (BPS) Kabupaten Magelang, Candi Borobudur dapat mendatangkan 2.408.453 wisatawan di tahun 2010 dan akan bertambah setiap tahunnya [1]. Wisatawan di Kota Magelang pada umumnya melakukan pengalaman baru yang dapat diperoleh dari kegiatan pariwisata tersebut. Namun ada aktivitas lain yang dilakukan wisatawan selain menikmati objek sejarah, olah raga, adat istiadat, kegiatan di lapangan dan berbelanja, yaitu adalah bersantap. Hal ini memposisikan wisata kuliner sebagai salah satu andalan yang dapat ditawarkan. Kota Magelang memiliki pilihan menu makanan yang tersedia dengan berbagai keunikan yang terbagi dalam beberapa kategori jenis makanan, antara lain : bakso, soto, gudeg, sate, sop senerek, wedangan, jajanan dan oleh-oleh [2]. Namun, kurangnya informasi wisata kuliner di Kota Magelang menjadi suatu permasalahan yang ada saat ini, karena wisatawan butuh sumber informasi untuk mempermudah pencarian suatu wisata kuliner yang ada. Semakin berkembangnya teknologi, kini peta digitasi dibuat dalam dunia wisata kuliner dengan menyajikan berbagai informasi yang berhubungan dengan makanan khas. Dengan pembuatan Aplikasi untuk panduan wisata kuliner di Kota Magelang pada Android mobile ini, dapat membantu para wisatawan dalam pencarian objek wisata kuliner yang ada di Kota Magelang.
Rumusan Masalah Rumusan permasalahan pada penelitian yang dilakukan yaitu bagaimana
cara merancang dan mengimplementasikan aplikasi untuk panduan wisata kuliner di Kota Magelang pada Android mobile dengan sistem GPS dan Google Maps API.
Tujuan Penelitian Tujuan dari penelitian yang dilakukan adalah membuat dan
mengimplementasikan aplikasi untuk panduan wisata kuliner di Kota Magelang pada Android mobile dengan sistem GPS dan Google Maps API yang memberikan sebuah informasi menu makanan dan peta lokasi kuliner yang dipermudah dengan adanya sistem pencarian wisata kuliner di Kota Magelang.
2. Tinjauan Pustaka
Penelitian Terdahulu Penelitian terdahulu tentang pembuatan Sistem Pendukung Keputusan
Wisata Kuliner dengan Visualisasi Geografis merupakan suatu sistem yang berguna untuk membantu dalam pengambilan keputusan berkaitan dengan menentukan objek wisata kuliner sesuai dengan kebutuhan pemakai. Sistem yang menggunakan penilaian menggunakan metode rule of thumb dapat memudahkan
3
pemakai dalam memenuhi kebutuhan untuk melakukan wisata kuliner di wilayah Yogyakarta.[3]
Penelitian tentang Directory Website Wisata Kuliner berbasis JSP dan database MySQL yang berguna membantu mencari inspirasi dan berbagi informasi bagi para pecinta wisata kuliner dan menyediakan fasilitas bagi pengusaha kuliner untuk mengenalkan produk kulinernya serta menyediakan fasilitas delivery menu makanan secara online.[4]
Penelitian tentang aplikasi Mobile Sistem Navigasi Berbasis J2ME yang akan digunakan untuk pencarian rute suatu lokasi atau tempat fasilitas umum di kota-kota besar. Dan juga sebagai pengganti peta yang lebih tepat dan akurat.[5]
Penelitian berikutnya aplikasi Desain Mobile Agent Pencarian Hotel dengan kriteria pencarian hotel meliputi harga, kualitas atau bintang, dan rute. Memanfaatan Google Map berbasis API Map dan API Location untuk mobile agent pencarian hotel dengan kriteria tertentu dimana posisi user berada.[6]
Dari beberapa penelitian di atas, aplikasi ini mengacu pada penelitian android mobile yang lebih menekankan pada pencarian lokasi wisata kuliner dengan memanfaatkan Google Map berbasis API Map dan API Location dengan kriteria tertentu dimana posisi user berada.
Fuzzy Multi-Attribute Decision Making (FMADM) adalah suatu metode yang digunakan untuk mencari alternatif optimal dari sejumlah alternatif dengan kriteria tertentu. Inti dari FMADM adalah menentukan nilai bobot untuk setiap atribut, kemudian dilanjutkan dengan proses perankingan yang akan menyeleksi alternatif yang sudah diberikan [7]. Ada beberapa metode yang dapat digunakan untuk menyelesaikan masalah FMADM salah satunya adalah Simple Additive Weighting Method (SAW). Metode SAW sering juga dikenal istilah metode penjumlahan terbobot. Konsep dasar metode SAW adalah mencari penjumlahan terbobot dari rating kinerja pada setiap alternatif pada semua atribut. Metode SAW membutuhkan proses normalisasi matriks keputusan (X) ke suatu skala yang dapat diperbandingkan dengan semua rating alternatif yang ada.
dimana rij adalah rating kinerja ternormalisasi dari alternatif Ai pada atribut
Cj; i=1,2,...,m dan j=1, 2,...,n. Nilai preferensi untuk setiap alternatif (Vi) diberikan sebagai:
Nilai Vi yang lebih besar mengindikasikan bahwa alternatif Ai lebih
terpilih. Potensi Wisata Kuliner ada beberapa potensi produk wisata kuliner yang
menjadi daya tarik, yaitu meliputi : Cita Rasa, Harga, Nilai Sejarah, Ragam Makanan dan Pleasure.[8]
4
Android merupakan sistem operasi bergerak yang menggunakan versi modifikasi dari kernel Linux. Sistem ini memiliki berbagai keunggulan sebagai software berbasis kode komputer yang bisa didistribusikan secara terbuka (open source), sehingga programmer bisa membuat aplikasi baru di dalamnya. Adanya Android Market dalam sistem operasi Android menghadirkan ribuan aplikasi baik yang gratis maupun berbayar.[9]
Java Servlet adalah sebuah class dalam bahasa pemgrograman Java yang digunakan untuk meningkatkan kapabilitas dari server sebagai host dari aplikasi yang diakses melalui request-response programming model (Diadaptasi dari tutorial J2EE) dan sebuah class java yang meng-implement interface Servlet dan menerima request yang berasal dari class Java, web client, atau servlet lain yang membangkitkan response.[10]
JSON singkatan dari JavaScript Object Notation (notasi objek Javascript) adalah suatu format ringkas untuk pertukaran data komputer. Format-nya berbasis teks dan terbaca manusia serta digunakan untuk merepresentasikan struktur data sederhana dan baris asosiatif atau bisa disebut sebagai obyek. Format JSON sering digunakan untuk mentransmisikan data terstruktur melalui suatu koneksi jaringan pada suatu proses yang disebut serialisasi.[11]
GPS (Global Positioning System) adalah sebuah sistem navigasi berbasiskan radio yang menyediakan informasi koordinat posisi, kecepatan dan waktu kepada pengguna di seluruh dunia [12]. Jasa penggunaan satelit GPS tidak dikenakan biaya. Pengguna hanya membutuhkan GPS receiver untuk dapat mengetahui koordinat lokasi. Keakuratan koordinat lokasi tergantung pada tipe GPS receiver. GPS terdiri dari tiga bagian yaitu satelit yang mengorbit bumi (Satelit GPS mengelilingi bumi 2x sehari), stasiun pengendali dan pemantau di bumi, dan GPS receiver (alat penerima GPS).
Google Maps API adalah layanan Peta gratis dari perusahaan Google, Inc. Google mengizinkan siapapun yang dapat menambahkan fitur Google maps dalam web mereka sendiri dengan Google maps API. Dalam hal kecepatan pencarian data, google sangat diunggulkan oleh semua pemakai internet, maka google maps sangat optimal dan handal dalam hal pencarian data.[13]
MySQL (My Structure Query Language) adalah sebuah program pembuat database yang bersifat open source, artinya siapa saja boleh menggunakannya dan tidak dicekal. MySQL sebenarnya produk yang berjalan pada platform Linux. Selain itu, MySQL juga merupakan program pengakses database yang bersifat jaringan sehingga dapat digunakan untuk aplikasi multiuser.[14]
3. Metode Penelitian
Metode yang digunakan untuk merancang sistem dari aplikasi dalam penelitian ini yaitu model waterfall. Sebuah model proses aplikasi dimana terdapat tahapan pengembangan yang berbeda: analisis kebutuhan, desain, implementasi, pengujian dan perawatan. Secara prinsip, sebuah tahapan harus sudah selesai sebelum menlanjutkan ke tahapan proses yang berikutnya. Dan secara praktek, terdapat pengulangan yang terjadi pada tiap-tiap tahapan proses.[15]
5
Analisis Pada tahap ini, dilakukan analisis kebutuhan yang akan digunakan pada
sistem. Sistem menggunakan beberapa potensi produk wisata kuliner [8] dan juga ditambahkan jarak untuk pencarian wisata kuliner. Data kuliner yang digunakan dalam sistem didapat dari Dinas Pariwisata Kota Magelang. Selain itu juga dilakukan analisa kebutuhan dengan disebar kuisioner sebanyak 20 kepada mahasiswa Universitas Kristen Satya Wacana (UKSW) untuk membantu sistem dalam memberikan nilai harga dan jarak.
Tabel 1 Tabel perhitungan kuisioner
No Pertanyaan
Pertanyaan
Pertanyaan 1 Dalam mencari suatu kuliner berdasarkan harga, harga yang murah bagi anda adalah ?
Pertanyaan 2 Dalam mencari suatu kuliner berdasarkan harga, harga yang mahal bagi anda adalah ?
Pertanyaan 3 Dalam mencari suatu kuliner berdasarkan jarak, jarak yang
dekat bagi anda adalah ?
Pertanyaan 4 Dalam mencari suatu kuliner berdasarkan jarak, jarak yang jauh bagi anda adalah ?
Pada Tabel 1 adalah daftar pertanyaan yang disebarkan kepada responden.
Kuliner yang dimaksut adalah kuliner dengan porsi makan sedang. Pertanyaan 1 dan 2 untuk mencari nilai dari harga, sedangkan pertanyaan 3 dan 4 untuk mencari nilai jarak.
Tabel 2 Tabel perhitungan kuisioner No
Pertanyaan Di bawah Rp
7500 Di bawah Rp
10000 Di bawah Rp
15000 Total
Responden P 1 12
(60%) 6
(30%) 2
(10%) 20
(100%) Di atas
Rp 1000 Di atas
Rp 15000 Di atas
Rp 20000
P 2 0 (0%)
15 (75%)
5 (25%)
20 (100%)
Di bawah 1 Km
Di bawah 1.5 Km
Di bawah 2 Km
P 3 15 (75%)
2 (10%)
3 (15%)
20 (100%)
Di atas 2 Km
Di atas 2.5 Km
Di atas 3 Km
P 4 11 (55%)
2 (10%)
7 (35%)
20 (100%)
Pada Tabel 2 menjelaskan hasil dari kusioner yang telah dilakukan dan
sistem menggunakan jawaban terbanyak dari responden untuk menentukan nilai dan jarak. Dengan selang harga dari harga murah ke harga mahal nantinya akan
6
dianggap sebagai harga sedang. Demikian juga dengan selang jarak dari jarak dekat ke jarak jauh nantinya akan dianggap sebagai jarak sedang.
Penerapan Algoritma FMADM Sistem menggunakan algoritma FMADM dalam proses pencarian wisata
kuliner. Langkah awal dalam menggunakan algoritma tersebut adalah membuat bilangan fuzzy untuk harga dan juga jarak.
Tabel 3 Tabel himpunan harga Harga Kuliner Range Harga (Rp)
MURAH X< 7500 SEDANG 7500-15000 MAHAL X > 15000
Dari harga murah, sedang dan mahal nantinya akan diberi nilai bobot 1-3
sesuai dengan parameter yang diberikan user. Jika user memberi parameter murah, maka murah memiliki nilai tertinggi yaitu 3, sedang memiliki nilai 2 dan mahal memiliki nilai 1. Jika user memberi parameter sedang, maka sedang memiliki nilai tertinggi yaitu 3, murah memiliki nilai 2 dan mahal memiliki nilai 1. Jika user memberi parameter mahal, maka mahal memiliki nilai tertinggi yaitu 3, sedang memiliki nilai 2 dan murah memiliki nilai 1.
Tabel 4 Tabel himpunan jarak Jarak Kuliner Range Jarak (Km)
DEKAT X<1 SEDANG 1-2
JAUH X>2
Dari jarak dekat, sedang dan jauh nantinya akan diberi nilai bobot 1-3 sesuai dengan parameter yang diberikan user. Jika user memberi parameter dekat, maka dekat memiliki nilai tertinggi yaitu 3, sedang memiliki nilai 2 dan jauh memiliki nilai 1. Jika user memberi parameter sedang, maka sedang memiliki nilai tertinggi yaitu 3, dekat memiliki nilai 2 dan jauh memiliki nilai 1. Jika user memberi parameter jauh, maka jauh memiliki nilai tertinggi yaitu 3, sedang memiliki nilai 2 dan dekat memiliki nilai 1.
Dari pembobotan tersebut akan digunakan dalam perhitungan FMADM dengan metode penyelesaian SAW rumus benefit dan diberi nilai bobot tertinggi dalam perhitungan nilai V yaitu 3. Misalkan ada contoh kasus, seorang user memberikan paramater pencarian : bakso, mahal, dekat.
7
Tabel 5 Tabel contoh kuliner Nama Kuliner Harga
(Rp) Jarak A-B
(Km) Nilai Harga
Nilai Jarak
Bakso Bakar 4500 0.3 1 3
Bakso Lezat 5000 1.5 1 2
Bakso Sidomulyo 5500 2.5 1 1
Bakso Kerikil 5000 1.7 1 2
Langkah awal yang dilakukan adalah mendapatkan nilai jarak menggunakan
Google Distance Matrix untuk melengkapi data. Setelah data lengkap dengan nilai harga dan nilai jarak, sistem memberikan nilai pembobotan dari data tersebut dan juga parameter yang diberikan user. Kemudian data yang sudah diberi nilai pembobotan dibentuk menjadi matriks X dan nilai pembobotan untuk mencari kuliner dibentuk menjadi matriks W dengan nilai tertinggi yaitu 3.
W = 3 3
X = 1 3 1 2 1 1 1 2 R11 = 1 / max {1,1,1,1,2,2,1,2} = 1/2 = 0.5 R12 = 1 / max {1,1,1,1,2,2,1,2} = 1/2 = 0.5 R13 = 1 / max {1,1,1,1,2,2,1,2} = 1/2 = 0.5 R14 = 1 / max {1,1,1,1,2,2,1,2} = 1/2 = 0.5 R21 = 3 / max {3,2,2,2,3,1,2,1} = 3/3 = 1 R22 = 2 / max {3,2,2,2,3,1,2,1} = 2/3 = 0.666 R23 = 1 / max {3,2,2,2,3,1,2,1} = 1/3 = 0.333 R24 = 2 / max {3,2,2,2,3,1,2,1} = 2/3 = 0.666 R = 0.5 1 0.5 0.666 0.5 0.333 0.5 0.666 Setelah mendapat matriks R, kemudian matriks tersebut dikalikan matriks
W untuk mendapatkan nilai pembobotan V. Hasil dengan nilai yang terbesar adalah alternatif terbaik yang ada.
V1 = 3*0.5 + 3*1 = 1.5 + 3 = 4.5 V2 = 3*0.5 + 3*0.666 = 1.5 + 1.998 = 3.498
8
V3 = 3*0.5 + 3*0.333 = 1.5 + 0.999 = 2.499 V4 = 3*0.5 + 3*0.666 = 1.5 + 1.998 = 3.498
Kebutuhan Software Dalam pencarian wisata kuliner beserta rute, teknologi dan perangkat yang
dibutuhkan adalah koneksi internet, android mobile, Google Maps API, Java Servlet, MySQL database dan FMADM. Google Maps API itu sendiri berfungsi untuk memanggil maps pada aplikasi dan MySQL database berfungsi untuk menyimpan informasi wisata kuliner dan menyimpan rute menuju wisata kuliner yang berasal dari database. Selain dapat membantu melakukan pencarian wisata kuliner beserta rute, aplikasi ini juga mengetahui posisi user berada dengan menggunakan GPS. Proses pencarian wisata kuliner menggunakan metode FMADM yang membantu mencari alternatif optimal dari sejumlah alternatif dengan kriteria tertentu.
Desain Sistem Unified Modeling Language (UML) digunakan untuk menggambarkan
bagaimana struktur dari rancangan aplikasi. UML adalah sebuah bahasa standar yang digunakan untuk menulis blueprint dari sebuah perangkat lunak. UML bisa juga digunakan untuk memvisualisasikan, menspesifikasikan, membangun dan mendokumentasikan sistem perangkat lunak.[16]
admin
user
navigasi peta
mencari kuliner
menampilkan lokasi GPS melakukan pergeseran peta
melakukan zoom In / out
menambahkan lokasi kuliner menambahkan rute kuliner
mengelola data kuliner
mencari data kuliner
melihat data kuliner
menambah data kulinermengedit data kulinermenghapus data kuliner
<<include>>
<<include>>
<<include>><<include>>
<<extend>>
<<include>>
<<include>>
<<include>>
<<include>><<include>>
<<include>>
<<include>>
Gambar 1 Use Case Diagram
Use case diagram pada Gambar 1 menjelaskan fungsi yang dapat digunakan oleh user dan admin saat menggunakan aplikasi. User dapat memilih kategori pencarian jenis makanan, harga makanan dan jarak kuliner. Setelah itu aplikasi mengirim ke server, lalu server mengambil data dari database sesuai dengan inputan user. Data tersebut ditampilkan dalam bentuk map dengan detail kuliner, rute kuliner dan lokasi kuliner. Data tersebut dimasukan oleh admin melalui aplikasi ke database. Sebelum user masuk ke halaman admin, sebelumnya user harus melakukan proses login dahulu.
9
admin aplikasi server
input username & password koneksi ke server cek database
menu admin list username & password valid
username & password invalid
insert data update Data delete Data
menu admin editcari data
Gambar 2 Activity diagram login admin
. Proses login admin dijelaskan pada activity diagram pada Gambar 2. Sebelumnya admin harus login dahulu untuk masuk ke menu admin. Setelah login, admin dapat melakukan cari data, insert data, update data dan delete data.
user aplikasi server
pilih kategori koneksi ke server eksekusi
hasil perankinganmap
rute kuliner lokasi kuliner detail kuliner
FMADM
Gambar 3 Activity diagram user
Gambar 3 adalah dijelaskan aktivitas user dalam sistem. Sebelumnya user memilih kategori inputan untuk mencari kuliner. Server mengeksekusi dengan melakukan filtering menggunakan FMADM dan mendapatkan hasil berupa pe-ranking-an. Setelah itu user mendapat hasil pencarian berupa map dengan detail kuliner, rute kuliner dan lokasi kuliner. Class diagram digambarkan dengan relasi entity yang akan digunakan pada sistem.
10
KulinerInfo
+id+name+price+latitude+longitude+description+ketegoriId
+getId()+getName()+getPrice()+getLatitude()+getLongitude()+getDescription()+getKategoriId()
KategoriKuliner
+id+name+parent
+getId()+getName()+getParent()
1..* 0..1
Gambar 4 Class diagram aplikasi server
Pada Gambar 4 menunjukan bahwa class tersebut adalah sebuah entity yang disimpan pada database, yaitu KulinerInfo dan KategoriKuliner. Class-class tersebut nantinya digunakan sebagai media yang digunakan aplikasi untuk memuat informasi dan menyimpan informasi tersebut pada database.
4. Hasil dan Pembahasan
Aplikasi server dengan aplikasi Java Servlet yang digunakan untuk menerima request, kemudian menggenerate response berdasarkan request yang diterima tadi dari aplikasi client yang berupa aplikasi Android.
Ada proses-proses utama yang ada di dalam aplikasi server untuk melayani request dari aplikasi client. Proses-proses tersebut antara lain konektivitas dengan database, proses login admin, proses mengirim list kuliner dalam bentuk JSON, proses insert, update dan delete data. Sedangkan proses utama dari pada sistem adalah bagian pencarian wisata kuliner yang menggunakan algoritma FMADM dan juga perhitungan jarak dengan Google Distance Matrix.
Proses server yang pertama adalah membuat koneksi dengan MySQL database. Database yang digunakan sistem adalah awk_db dengan server localhost dan memiliki username serta passwort : root. Proses lain yang dilakukan server adalah proses login admin. Kode Program 1 Proses login admin
Pada Kode Program 1 dijelaskan proses login admin, dimana server
menggenerate response menggunakan HTTP Status Code. Jika login sukses maka 200 (SC_OK) dan jika login gagal maka 403 (SC_FORBIDDEN).
1 // hasil login berupa HTTP STATUS CODE 2 if (hasilLogin) { 3 System.out.println(response.SC_OK); 4 responseStatus = response.SC_OK; 5 System.out.println("login berhasil!"); 6 } else { 7 System.out.println(response.SC_FORBIDDEN); 8 responseStatus = response.SC_FORBIDDEN; 9 System.out.println("login gagal!");}
11
Kode Program 2 List kuliner dalam format JSON
Pada Kode Program 2 dijelaskan proses response server yang digunakan
untuk menampilkan list data kuliner. Data yang dikirim ke client berupa data dengan format JSON array : id, name, description, latitude, longitude, price dan kategoriId. Setelah list data kuliner tampil, admin dapat melakukan insert, update dan delete dengan menggunakan perintah : INSERT_QUERY, UPDATE_QUERY dan DELETE_QUERY. Proses-proses tersebut merupakan response server dari aplikasi client pada bagian admin. Sedangkan proses server pada user berada pada bagian pencarian. Proses pencarian yang diterima server adalah parameter kategori kuliner, harga dan jarak yang akan di-filter -menggunakan FMADM. Sebelum proses filtering, dihitung terlebih dahulu perhitungan jarak antara lokasi GPS user berada ke lokasi kuliner menggunakan Google Distance Matrix. Setelah nilai jarak didapat, baru proses FMADM dijalankan yang dimulai dari proses pembobotan.
Kode Program 3 Proses pembobotan nilai harga
Pada Kode Program 3 dijelaskan bagaimana proses pembobotan nilai
harga yang digunakan pada sistem. Pembobotan tersebut sesuai dengan parameter
1 switch (inputHarga){ 2 case 1 : 3 if (harga < 7500D) { 4 value = 3; 5 } else if (harga >= 7500D && harga < 15000D) { 6 value = 2; 7 } else if (harga >= 15000D) { 8 value = 1;} break; 9 case 2 : 10 if (harga < 7500D) { 11 value = 3; 12 } else if (harga >= 7500D && harga < 15000D) { 13 value = 2; 14 } else if (harga >= 15000D) { 15 value = 1;} break; 16 case 3 : 17 if (harga < 7500D) { 18 value = 3; 19 } else if (harga >= 7500D && harga < 15000D) { 20 value = 2; 21 } else if (harga >= 15000D) { 22 value = 1; } break;
1 List<KulinerInfo>kulinerInfos = KulinerInfoDAO.loadAll(); 2 JSONArray array = new JSONArray(); 3 for (KulinerInfo kulinerInfo : kulinerInfos) { 4 JSONObject jsono = new JSONObject(); 5 jsono.put("id", kulinerInfo.getId()); 6 jsono.put("name", kulinerInfo.getName()); 7 jsono.put("description",kulinerInfo.getDescription()); 8 jsono.put("latitude", kulinerInfo.getLatitude()); 9 jsono.put("longitude", kulinerInfo.getLongitude()); 10 jsono.put("price", kulinerInfo.getPrice()); 11 jsono.put("kategoriId",kulinerInfo.getKategori().getId()); 12 array.put(jsono);} 13 jsonresult = array.toString();
12
yang diberikan user. Dari harga murah, sedang dan mahal nantinya akan diberi nilai bobot 1-3 sesuai dengan parameter yang diberikan user. Jika user memberi parameter murah, maka murah memiliki nilai tertinggi yaitu 3, sedang memiliki nilai 2 dan mahal memiliki nilai 1. Jika user memberi parameter sedang, maka sedang memiliki nilai tertinggi yaitu 3, murah memiliki nilai 2 dan mahal memiliki nilai 1. Jika user memberi parameter mahal, maka mahal memiliki nilai tertinggi yaitu 3, sedang memiliki nilai 2 dan murah memiliki nilai 1.
Kode Program 4 Proses pembobotan jarak
Pada Kode Program 4 dijelaskan bagaimana proses pembobotan jarak
yang digunakan pada sistem. Pembobotan tersebut sesuai dengan parameter yang diberikan user. Jika user memberi parameter dekat, maka dekat memiliki nilai tertinggi yaitu 3, sedang memiliki nilai 2 dan jauh memiliki nilai 1. Jika user memberi parameter sedang, maka sedang memiliki nilai tertinggi yaitu 3, dekat memiliki nilai 2 dan jauh memiliki nilai 1. Jika user memberi parameter jauh, maka jauh memiliki nilai tertinggi yaitu 3, sedang memiliki nilai 2 dan dekat memiliki nilai 1.
Setelah mendapatkan pembobotan, barulah masuk ke proses perhitungan FMADM untuk mendapatkan perankingan kuliner sesuai dengan parameter yang diberikan user. Mulai dari menghitung R Harga, R Jarak dan V Hasil menggunakan rumus benefit. Hasil perankingan tersebut kemudian diurutkan dari nilai V terbesar sampai terkecil. Lalu diambil 5 dengan nilai tertinggi untuk ditampilkan di aplikasi client. Untuk lebih jelasnya dapat dilihat pada Pada Kode Program 5
1 switch (inputJarak) { 2 case 1 : 3 if (jarak <= 1000) { 4 value = 3; 5 } else if (jarak > 1000 && jarak < 2000) { 6 value = 2; 7 } else if (jarak >= 2000) { 8 value = 1;}break; 9 case 2: 10 if (jarak <= 1000) { 11 value = 2; 12 } else if (jarak > 1000 && jarak < 2000) { 13 value = 3; 14 } else if (jarak >= 2000) { 15 value = 1;} break; 16 case 3: 17 if (jarak <= 1000) { 18 value = 1; 19 } else if (jarak > 1000 && jarak < 2000) { 20 value = 2; 21 } else if (jarak >= 2000) { 22 value = 3;} break;
13
Kode Program 5 Proses perhitungan algoritma FMADM
Aplikasi client adalah rancangan yang berupa aplikasi Android. Aplikasi ini
terdiri dari 4 halaman yang memiliki fungsi sendiri-sendiri. Halaman tersebut antara lain : Halaman menu utama terdapat beberapa fungsi yang ditampilkan, yaitu : map, kategori kuliner, harga, jarak kuliner dan menu inflater yang dapat dilihat pada Gambar 5.
Gambar 5 Halaman menu utama
Halaman menu utama terdapat 3 spinner yang digunakan untuk mencari
kategori kuliner, harga dan juga jarak. Sedangka button cari digunakan untuk memproses pencarian dengan mengirimkan parameter ke aplikasi server. Dimana proses pencarian tersebut menggunakan algoritma FMADM yang dieksekusi oleh aplikasi server. Pada halaman menu utama ini, proses yang ditampilkan adalah lokasi GPS user, lokasi kuliner, rute dan informasi kuliner. Kuliner yang ditampilkan dalam balon adalah 5 dengan nilai tertinggi dari perankingan algoritma FMADM. Hasil perankingan didapat dari server berupa format JSON
1 System.out.println("CALCULATING FMADM R HARGA..."); 2 rHarga = new ArrayList<Float>(); 3 int xMaks = Collections.max(xHarga); 4 for (int i = 0; i < distances.size(); i++) { 5 float x = xHarga.get(i); 6 float r = x / xMaks; 7 System.out.println("CALCULATING FMADM R JARAK..."); 8 rJarak = new ArrayList<Float>(); 9 int xMaks = Collections.max(xJarak); 10 for (int i = 0; i < distances.size(); i++) { 11 float x = xJarak.get(i); 12 float r = x / xMaks; 13 System.out.println("CALCULATING V..."); 14 v = new ArrayList<Float>(); 15 for (int i = 0; i < destinations.size(); i++) { 16 float x1 = xHarga.get(i); 17 float x2 = xJarak.get(i); 18 float r1 = rHarga.get(i); 19 float r2 = rJarak.get(i); 20 float vHasil = (inputHarga * r1) + (inputJarak * r2);
14
dengan menggunakan perintah HTTP GET yang dapat dilihat pada Kode Program 6.
Kode Program 6 Proses data degan format JSON
Hasil perankingan tersebut kemudian ditampilkan di map dalam bentuk
balon-balon yang terdapat rute. Lebih jelasnya dapat dilihat pada dapat dilihat pada Gambar 6.
Gambar 6 Halaman hasil menu utama
Halaman menu admin login terdapat beberapa fungsi yang ditampilkan,
yaitu : username, password dan tombol login. Untuk lebih jelasnya dapat dilihat pada Gambar 6.
1 kulinerInfos = new ArrayList<KulinerInfo>(); 2 JSONArray array = new JSONArray(result); 3 for (int i = 0; i < array.length(); i++) { 4 JSONObject row = array.getJSONObject(i); 5 KulinerInfo info = new KulinerInfo(); 6 info.setDescription(row.getString("description")); 7 info.setId(row.getLong("id")); 8 info.setLatitude(row.getDouble("latitude")); 9 info.setLongitude(row.getDouble("longitude")); 10 info.setName(row.getString("name")); 11 info.setPrice(row.getDouble("price")); 12 info.setKategori(new KategoriKuliner(row.getLong("kategoriId"),
"")); 13 kulinerInfos.add(info);
15
Gambar 7 Halaman menu login admin
Pada kolom username dan password digunakan untuk mengisi username
dan password yang sudah ditentukan, yaitu : admin dan admin. Serta tombol login digunakan untuk masuk ke halaman menu admin list. Penanaganan fungsi tampilan pada halaman login admin dapat dilihat dalam Kode Program 7. Kode Program 7 Fungsi tampilan halaman menu login admin
Apabila user melakukan inputan dengan username dan password dan
menekan tombol login, maka aplikasi akan mengeksekusi perintah yang dapat dilihat pada Kode Program 8.
Kode Program 8 Proses login dengan HTTP POST
Pada Kode Program 8 dijelaskan proses eksekusi login. Dengan membuat
koneksi dengan server melaui port dan URL terlebih dahulu. Lalu mengirim parameter username dan password ke server dengan HTTP POST. Setelah itu aplikasi client menggunakan HTTP Response untuk menerima return dari aplikasi server berupa HTTP Status Code. Jika login sukses maka 200 (SC_OK) dan akan masuk ke halaman menu admin list dan jika login gagal maka 403 (SC_FORBIDDEN) maka akan tetap pada halaman admin login yang dapat dilihat pada Kode Program 9.
1 HttpParams httpParams = new BasicHttpParams(); 2 HttpConnectionParams.setConnectionTimeout(httpParams, 10000); 3 HttpResponse httpResponse = null; 4 HttpClient client = new DefaultHttpClient(httpParams); 5 String stringUrl = "http://10.0.2.2:" + port +
"/AwkServer/LoginServlet"; 6 HttpPost httpPost = new HttpPost(stringUrl); 7 List<NameValuePair> formLogin = new ArrayList<NameValuePair>(1); 8 formLogin.add(new BasicNameValuePair("username", this.username)); 9 formLogin.add(new BasicNameValuePair("password", this.password));
1 user = (EditText) findViewById(R.id.usernameTxt); 2 pass = (EditText) findViewById(R.id.passwordTxt); 3 loginButton = (Button) findViewById(R.id.loginButton);
16
Kode Program 9 Proses response menggunakan HTTP Status Code
Halaman menu admin list terdapat beberapa fungsi yang ditampilkan, yaitu :
kolom pencarian kuliner, list kuliner dan menu inflater. Lebih jelasnya dapat dilihat pada Gambar 8.
Gambar 8 Halaman admin list
Pada halaman admin list, sistem menggunakan HTTP GET untuk
mendapatkan data kuliner dari server yang berupa format JSON. Kuliner yang ditampilkan dalam list adalah semua data kuliner yang ada. Proses tersebut dapat dilihat pada Kode Program 10.
Kode Program 10 Proses pengambilan data JSON
Menu lain pada halaman ini adalah kolom pencarian untuk memfilter list
kuliner tersebut. Filter tersebut digunakan untuk membantu admin jika ada data yang ingin delete data atau update data. Selain kolom pencarian, halaman ini juga
1 kulinerInfos = new ArrayList<KulinerInfo>(); 2 JSONArray array = new JSONArray(result); 3 for (int i = 0; i < array.length(); i++) { 4 JSONObject row = array.getJSONObject(i); 5 KulinerInfo info = new KulinerInfo(); 6 info.setDescription(row.getString("description")); 7 info.setId(row.getLong("id")); 8 info.setLatitude(row.getDouble("latitude")); 9 info.setLongitude(row.getDouble("longitude")); 10 info.setName(row.getString("name")); 11 info.setPrice(row.getDouble("price")); 12 info.setKategori(new KategoriKuliner(row.getLong("kategoriId"),
"")); 13 kulinerInfos.add(info);
1 if (httpResponse != null) 2 switch ((httpResponse).getStatusLine().getStatusCode()) { 3 case HttpStatus.SC_OK: // HTTP 200 4 result = HttpStatus.SC_OK; 5 break; 6 case HttpStatus.SC_FORBIDDEN: // HTTP 403 7 result = HttpStatus.SC_FORBIDDEN; 8 break;}
17
memiliki menu inflater untuk menambah data kuliner yang terdapat pada menu admin edit. Halaman admin edit terdapat 2 macam kondisi, yaitu :
Jika admin memilih salah satu kuliner dari halaman menu admin list, maka dapat dilihat pada Gambar 9.
Gambar 9 Halaman admin edit 1
Pada Gambar 8 dijelaskan halaman menu admin edit 1 sudah terdapat data kuliner yang ditampilkan. Data kuliner tersebut didapat dari halaman admin list yang berupa format JSON. Data JSON tersebut antara lain : id kuliner, nama, harga, latitude, longitude, deskripsi dan id kategori kuliner. Pada halaman ini dapat dilakukan proses update atau delete data dengan menggunakan menu inflater. Jika admin menggunakan inflater menu admin edit, maka dapat dilihat pada Gambar 10.
Gambar 10 Halaman admin edit 2
Pada Gambar 10 dijelaskan halaman menu admin edit 2 merupakan halaman
untuk menambahkan data kuliner baru. Pada halaman ini dapat dilakukan proses insert data dengan menggunakan menu inflater.
Dari 2 halaman menu admin edit tersebut menggunakan AlertDialog yang sudah di custom untuk mengisikan data nama, deskripsi, harga dan kategori. Namun pada pengisian data lokasi kuliner, sistem menggunakan tampilan
18
MapView untuk mendapat poin latitude dan longitude. Lebih jelasnya dapat dilihat pada Gambar 11.
Gambar 11 Halaman set lokasi kuliner
Pada Gambar 11 dijelaskan pengambilan poin latitude dan longitude
menggunakan android marker dengan proses OnTap. Dimana titik yang dipilih akan ditampilkan menggunaka toast yang berisi informasi latitude dan longitude tersebut. Dalam pengujian sistem menggunakan kuisioner, disebar kuisioner pada mahasiswa Universitas Kristen Satya Wacana (UKSW). Sebelum koresponden mengisi kuisioner, responden dipersilahkan untuk menggunakan dan menjalankan Aplikasi Untuk Panduan Wisata Kuliner di Kota Magelang Pada Android mobile. Berikut ini adalah daftar pertanyaan yang dapat dilihat pada Tabel 5.
Tabel 3 Tabel pertanyaan
No Pertanyaan Pertanyaan Pertanyaan 1 Apakah aplikasi ini mudah dimengerti ? Pertanyaan 2 Bagaimana tingkat kesulitan dalam menjalankan aplikasi ini ? Pertanyaan 3 Bagaimana tampilan aplikasi ini ? Pertanyaan 4 Apakah aplikasi bermanfaat bagi anda ? Pertanyaan 5 Apakah aplikasi ini membantu dalam pencarian wisata kuliner ?
19
Tabel 4 Tabel perhitungan kuisioner
No Sangat Mudah Mudah Cukup Sulit Sangat Sulit Total P 1 2
(10%) 16
(80%) 2
(10%) 0
(0%) 0
(0%) 20
(100%) P 2 1
(5%) 14
(70%) 5
(25%) 0
(0%) 0
(0%) 20
(100%) Sangat
Menarik Menarik Cukup Jelek Sangat Jelek
P 3 1 (5%)
17 (85%)
2 (10%)
0 (80%)
0 (80%)
20 (100%)
Sangat Ber
manfaat
Ber manfaat
Cukup Kurang Ber
manfaat
Tidak Ber manfaat
P 4 5 (25%)
13 (65%)
1 (5%)
1 (5%)
0 (0%)
20 (100%)
Sangat Membantu
Mem bantu
Cukup Kurang Membantu
Tidak Mem bantu
P 5 7 (35%)
12 (60%)
1 (5%)
0 (0%)
0 (0%)
20 (100%)
Pada Tabel 4 menjelaskan pertanyaan ke-1 yaitu “Apakah aplikasi ini mudah dimengerti?” sebanyak 2 (10%) responden menjawab sangat mudah, 16 (80%) responden menjawab mudah dan 2 (10%) responden menjawab cukup. Pada pertanyaan ke-1 aplikasi ini mudah dimengerti bagi reponden.
Pertanyaan ke-2 yaitu “Bagaimana tingkat kesulitan dalam menjalankan aplikasi ini ?” sebanyak 1 (5%) responden menjawab sangat mudah, 14 (70%) responden menjawab mudah dan 5(25%) responden menjawab cukup. Jadi kesimpulannya aplikasi. Pada pertanyaan ke-2 aplikasi ini mudah untuk dijalankan bagi responden.
Pertanyaan ke-3 yaitu “Bagaimana tampilan aplikasi ini ?” sebanyak 1 (5%) responden menjawab sangat menarik, 17 (85%) responden menjawab menarik dan 2 (10%) responden menjawab cukup. Pada pertanyaan ke-3 aplikasi ini memiliki tampilan yang menarik bagi responden.
Pertanyaan ke-4 yaitu “Apakah aplikasi ini bermanfaat bagi anda?” sebanyak 5 (25%) responden menjawab sangat bermanfaat, 13 (65%) responden menjawab bermanfaat, 1 (5%) responden menjawab cukup dan 1 (5%) menjawab kurang bermanfaat. Pada pertanyaan ke-4 aplikasi ini bermanfaat bagi responden.
Pertanyaan ke-5 yaitu “Apakah aplikasi ini membantu dalam pencarian wisata kuliner?” sebanyak 2 (35%) responden menjawab sangat membantu, 16 (60%) responden menjawab membantu dan 2 (5%) responden menjawab cukup. Pada pertanyaan ke-5 aplikasi ini sangat membantu untuk mencari wisata kuliner bagi responden
Dari hasil kuesioner yang telah diberikan kepada pengguna menunjukkan aplikasi yang dirancang mudah untuk dimengerti dengan tampilan yang cukup menarik serta bermanfaat dalam mencari suatu wisata kuliner.
20
5. Kesimpulan
Kesimpulan yang dapat diambil dari hasil perancangan aplikasi adalah aplikasi client yang menggunakan android dapat bekerja sebagai user dan admin. Dengan terkoneksi oleh aplikasi server yang menggunakan java servlet. Dimana server dapat memproses setiap request yang dikirimkan oleh aplikasi client.
Hasil akhir dari perancangan berupa aplikasi untuk panduan wisata kuliner di Kota Magelang pada android mobile yang dapat membantu para wisatawan untuk mencari wisata kuliner dengan lebih mudah. 6. Daftar Pustaka
[1] Pemerintah Kabupaten Magelang, 2012, http://magelangkab.bps.go.id, Diakses tanggal 8 Januari 2011.
[2] Pemerintah Kota Magelang, 2011, http://www.magelangkota.go.id, Diakses tanggal 1 Agustus 2011.
[3] Hamdani. (2010). Sistem Pendukung Keputusan Wisata Kuliner Dengan Visualisasi Geografi. (Vol 5 No. 1 Februari 2010 19). Samarinda: Jurnal Informatika Mulawarman.
[4] Andayani, N. (2006). Pembuatan Directory Website Wisata Kuliner Berbasis JSP. Surabaya: Politeknik Elektronika.
[5] Putri, P. (2009). Sistem Navigasi Berbasis J2ME. Surabaya: Politeknik Elektronika.
[6] Kurniawan, E. (2011). Desain Mobile Agent Pencarian Hotel. Salatiga: Informatika.
[7] Sri Kusuma Dewi, S. H. (2006). Fuzzy Multi-Attribute Decision Making (Fuzzy MADM). Yogyakarta: Graha Ilmu.
[8] Anshori,Y., & Satya, D., G. (2008). Sparkling Surabaya. Surabaya: Bayu Media Publishing.
[9] Cooper, M. (2010). Step by Step Smartphone Android. Massachusetts: Pace University.
[10] Jeni, 2011, http://www.scribd.com/doc/7589785/jeniweb-programmingbab-2basic-servlets, Diakses tanggal 6 Juli 2011.
[11] JSON, 2012, http://www.json.org/, Diakses tanggal 3 Januari 2012. [12] Ivan, G. (2009). Optimalisasi Hasil Pengukuran GPS. Yogyakarta:
Multimedia Center Publishing. [13] Anonymous, 2012, Referensi Dosen Narotama,
http://webcache.googleusercontent.com/search?q=cache:oQJ11VCZcNgJ:referensi.dosen.narotama.ac.id/files/2011/12/jbptunikompp-gdl-antonizuli-22743-10-13.unik-i.pdf+&hl=id&gl=id, Diakses tanggal 7 Februari 2012.
[14] Nugroho, B. (2008). Aplikasi Pemograman Web Dinamis dengan PHP dn MySQL. Yogyakarta: Penerbit Gava Media.
[15] Sommerville, I. (2000). Software Engineering. Malang: Erlangga. [16] Booch, G., Rumbaugh, J., & Jacobson, I. (1998 ). The Unified Modeling
Language User Guide. Boston: Addison-Wesley Professional.