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
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 1
Pertanyaan 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. No Pertanyaan P1
P2
P3
P4
Tabel 2 Tabel perhitungan kuisioner Di bawah Rp Di bawah Rp Di bawah Rp 7500 10000 15000 12 6 2 (60%) (30%) (10%) Di atas Di atas Di atas Rp 1000 Rp 15000 Rp 20000 0 15 5 (0%) (75%) (25%) Di bawah Di bawah Di bawah 1 Km 1.5 Km 2 Km 15 2 3 (75%) (10%) (15%) Di atas Di atas Di atas 2 Km 2.5 Km 3 Km 11 2 7 (55%) (10%) (35%)
Total Responden 20 (100%)
20 (100%)
20 (100%)
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 MAHAL
7500-15000 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
Nama Kuliner
Tabel 5 Tabel contoh kuliner Harga Nilai Jarak A-B (Rp) Harga (Km)
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 1 1 1
3 2 1 2
R11 = 1 / max {1,1,1,1,2,2,1,2} R12 = 1 / max {1,1,1,1,2,2,1,2} R13 = 1 / max {1,1,1,1,2,2,1,2} R14 = 1 / max {1,1,1,1,2,2,1,2}
= 1/2 = 0.5 = 1/2 = 0.5 = 1/2 = 0.5 = 1/2 = 0.5
R21 = 3 / max {3,2,2,2,3,1,2,1} R22 = 2 / max {3,2,2,2,3,1,2,1} R23 = 1 / max {3,2,2,2,3,1,2,1} R24 = 2 / max {3,2,2,2,3,1,2,1}
= 3/3 = 1 = 2/3 = 0.666 = 1/3 = 0.333 = 2/3 = 0.666
R =
0.5 0.5 0.5 0.5
1 0.666 0.333 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 = V2 =
3*0.5 + 3*1 = 1.5 + 3 = 4.5 3*0.5 + 3*0.666 = 1.5 + 1.998 = 3.498
8
V3 = V4 =
3*0.5 + 3*0.333 = 1.5 + 0.999 = 2.499 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] menampilkan lokasi GPS <
>
melakukan pergeseran peta
navigasi peta user
<>
melakukan zoom In / out
<>
<> mencari kuliner <>
<> <<extend>> menambahkan rute kuliner
menambahkan lokasi kuliner
melihat data kuliner mengelola data kuliner admin
<>
<>
<> <> menghapus data kuliner
mencari data kuliner
<>
mengedit data kuliner
menambah data kuliner
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
input username & password
server
koneksi ke server
cek database
username & password invalid
menu admin list
cari data
insert data
username & password valid
menu admin edit
update Data
delete 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
pilih kategori
server
eksekusi
koneksi ke server
FMADM
map
rute kuliner
lokasi kuliner
hasil perankingan
detail kuliner
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 peranking-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
1..*
+id 0..1 +name +parent +getId() +getName() +getParent()
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 1 2 3 4 5 6 7 8 9
// hasil login berupa HTTP STATUS CODE if (hasilLogin) { System.out.println(response.SC_OK); responseStatus = response.SC_OK; System.out.println("login berhasil!"); } else { System.out.println(response.SC_FORBIDDEN); responseStatus = response.SC_FORBIDDEN; System.out.println("login gagal!");}
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).
11
Kode Program 2 List kuliner dalam format JSON 1 2 3 4 5 6 7 8 9 10 11 12 13
ListkulinerInfos = KulinerInfoDAO.loadAll(); JSONArray array = new JSONArray(); for (KulinerInfo kulinerInfo : kulinerInfos) { JSONObject jsono = new JSONObject(); jsono.put("id", kulinerInfo.getId()); jsono.put("name", kulinerInfo.getName()); jsono.put("description",kulinerInfo.getDescription()); jsono.put("latitude", kulinerInfo.getLatitude()); jsono.put("longitude", kulinerInfo.getLongitude()); jsono.put("price", kulinerInfo.getPrice()); jsono.put("kategoriId",kulinerInfo.getKategori().getId()); array.put(jsono);} jsonresult = array.toString();
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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
switch (inputHarga){ case 1 : if (harga < 7500D) { value = 3; } else if (harga >= 7500D && harga < 15000D) { value = 2; } else if (harga >= 15000D) { value = 1;} break; case 2 : if (harga < 7500D) { value = 3; } else if (harga >= 7500D && harga < 15000D) { value = 2; } else if (harga >= 15000D) { value = 1;} break; case 3 : if (harga < 7500D) { value = 3; } else if (harga >= 7500D && harga < 15000D) { value = 2; } else if (harga >= 15000D) { value = 1; } break;
Pada Kode Program 3 dijelaskan bagaimana proses pembobotan nilai harga yang digunakan pada sistem. Pembobotan tersebut sesuai dengan parameter
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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
switch (inputJarak) { case 1 : if (jarak <= 1000) { value = 3; } else if (jarak > 1000 && jarak < 2000) { value = 2; } else if (jarak >= 2000) { value = 1;}break; case 2: if (jarak <= 1000) { value = 2; } else if (jarak > 1000 && jarak < 2000) { value = 3; } else if (jarak >= 2000) { value = 1;} break; case 3: if (jarak <= 1000) { value = 1; } else if (jarak > 1000 && jarak < 2000) { value = 2; } else if (jarak >= 2000) { value = 3;} break;
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
13
Kode Program 5 Proses perhitungan algoritma FMADM 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
System.out.println("CALCULATING FMADM R HARGA..."); rHarga = new ArrayList(); int xMaks = Collections.max(xHarga); for (int i = 0; i < distances.size(); i++) { float x = xHarga.get(i); float r = x / xMaks; System.out.println("CALCULATING FMADM R JARAK..."); rJarak = new ArrayList(); int xMaks = Collections.max(xJarak); for (int i = 0; i < distances.size(); i++) { float x = xJarak.get(i); float r = x / xMaks; System.out.println("CALCULATING V..."); v = new ArrayList(); for (int i = 0; i < destinations.size(); i++) { float x1 = xHarga.get(i); float x2 = xJarak.get(i); float r1 = rHarga.get(i); float r2 = rJarak.get(i); float vHasil = (inputHarga * r1) + (inputJarak * r2);
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
14
dengan menggunakan perintah HTTP GET yang dapat dilihat pada Kode Program 6. Kode Program 6 Proses data degan format JSON 1 2 3 4 5 6 7 8 9 10 11 12 13
kulinerInfos = new ArrayList(); JSONArray array = new JSONArray(result); for (int i = 0; i < array.length(); i++) { JSONObject row = array.getJSONObject(i); KulinerInfo info = new KulinerInfo(); info.setDescription(row.getString("description")); info.setId(row.getLong("id")); info.setLatitude(row.getDouble("latitude")); info.setLongitude(row.getDouble("longitude")); info.setName(row.getString("name")); info.setPrice(row.getDouble("price")); info.setKategori(new KategoriKuliner(row.getLong("kategoriId"), "")); kulinerInfos.add(info);
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.
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 1 2 3
user = (EditText) findViewById(R.id.usernameTxt); pass = (EditText) findViewById(R.id.passwordTxt); loginButton = (Button) findViewById(R.id.loginButton);
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 1 2 3 4 5 6 7 8 9
HttpParams httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParams, 10000); HttpResponse httpResponse = null; HttpClient client = new DefaultHttpClient(httpParams); String stringUrl = "http://10.0.2.2:" + port + "/AwkServer/LoginServlet"; HttpPost httpPost = new HttpPost(stringUrl); List formLogin = new ArrayList(1); formLogin.add(new BasicNameValuePair("username", this.username)); formLogin.add(new BasicNameValuePair("password", this.password));
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.
16
Kode Program 9 Proses response menggunakan HTTP Status Code 1 2 3 4 5 6 7 8
if (httpResponse != null) switch ((httpResponse).getStatusLine().getStatusCode()) { case HttpStatus.SC_OK: // HTTP 200 result = HttpStatus.SC_OK; break; case HttpStatus.SC_FORBIDDEN: // HTTP 403 result = HttpStatus.SC_FORBIDDEN; break;}
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 1 2 3 4 5 6 7 8 9 10 11 12 13
kulinerInfos = new ArrayList(); JSONArray array = new JSONArray(result); for (int i = 0; i < array.length(); i++) { JSONObject row = array.getJSONObject(i); KulinerInfo info = new KulinerInfo(); info.setDescription(row.getString("description")); info.setId(row.getLong("id")); info.setLatitude(row.getDouble("latitude")); info.setLongitude(row.getDouble("longitude")); info.setName(row.getString("name")); info.setPrice(row.getDouble("price")); info.setKategori(new KategoriKuliner(row.getLong("kategoriId"), "")); kulinerInfos.add(info);
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
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. No Pertanyaan Pertanyaan 1 Pertanyaan 2 Pertanyaan 3 Pertanyaan 4 Pertanyaan 5
Tabel 3 Tabel pertanyaan Pertanyaan Apakah aplikasi ini mudah dimengerti ? Bagaimana tingkat kesulitan dalam menjalankan aplikasi ini ? Bagaimana tampilan aplikasi ini ? Apakah aplikasi bermanfaat bagi anda ? Apakah aplikasi ini membantu dalam pencarian wisata kuliner ?
19
No P1 P2
P3
P4
P5
Sangat Mudah 2 (10%) 1 (5%) Sangat Menarik 1 (5%) Sangat Ber manfaat 5 (25%) Sangat Membantu 7 (35%)
Tabel 4 Tabel perhitungan kuisioner Mudah Cukup Sulit Sangat Sulit 16 2 0 0 (80%) (10%) (0%) (0%) 14 5 0 0 (70%) (25%) (0%) (0%) Menarik Cukup Jelek Sangat Jelek 17 (85%) Ber manfaat
2 (10%) Cukup
13 (65%) Mem bantu 12 (60%)
1 (5%) Cukup 1 (5%)
0 (80%) Kurang Ber manfaat 1 (5%) Kurang Membantu 0 (0%)
Total 20 (100%) 20 (100%)
0 (80%) Tidak Ber manfaat
20 (100%)
0 (0%) Tidak Mem bantu 0 (0%)
20 (100%)
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/jeniwebprogrammingbab-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:r eferensi.dosen.narotama.ac.id/files/2011/12/jbptunikompp-gdl-antonizuli22743-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.