Hasil dan Pembahasan T1 672007227 Full text

KulinerI nfo + id + name + price + lat it ude + longitude + description + ket egoriI d + get Id + get Name + get Price + get Lat it ude + get Longit ude + get Descript ion + get KategoriI d Kat egoriKuliner + id + name + parent + get I d + get Name + get Parent 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.printlnresponse.SC_OK; 4 responseStatus = response.SC_OK; 5 System.out.printlnlogin berhasil; 6 } else { 7 System.out.printlnresponse.SC_FORBIDDEN; 8 responseStatus = response.SC_FORBIDDEN; 9 System.out.printlnlogin gagal;} 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 ListKulinerInfokulinerInfos = KulinerInfoDAO.loadAll; 2 JSONArray array = new JSONArray; 3 for KulinerInfo kulinerInfo : kulinerInfos { 4 JSONObject jsono = new JSONObject; 5 jsono.putid, kulinerInfo.getId; 6 jsono.putname, kulinerInfo.getName; 7 jsono.putdescription,kulinerInfo.getDescription; 8 jsono.putlatitude, kulinerInfo.getLatitude; 9 jsono.putlongitude, kulinerInfo.getLongitude; 10 jsono.putprice, kulinerInfo.getPrice; 11 jsono.putkategoriId,kulinerInfo.getKategori.getId; 12 array.putjsono;} 13 jsonresult = array.toString; 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; 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.printlnCALCULATING FMADM R HARGA...; 2 rHarga = new ArrayListFloat; 3 int xMaks = Collections.maxxHarga; 4 for int i = 0; i distances.size; i++ { 5 float x = xHarga.geti; 6 float r = x xMaks; 7 System.out.printlnCALCULATING FMADM R JARAK...; 8 rJarak = new ArrayListFloat; 9 int xMaks = Collections.maxxJarak; 10 for int i = 0; i distances.size; i++ { 11 float x = xJarak.geti; 12 float r = x xMaks; 13 System.out.printlnCALCULATING V...; 14 v = new ArrayListFloat; 15 for int i = 0; i destinations.size; i++ { 16 float x1 = xHarga.geti; 17 float x2 = xJarak.geti; 18 float r1 = rHarga.geti; 19 float r2 = rJarak.geti; 20 float vHasil = inputHarga r1 + inputJarak r2; 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 ArrayListKulinerInfo; 2 JSONArray array = new JSONArrayresult; 3 for int i = 0; i array.length; i++ { 4 JSONObject row = array.getJSONObjecti; 5 KulinerInfo info = new KulinerInfo; 6 info.setDescriptionrow.getStringdescription; 7 info.setIdrow.getLongid; 8 info.setLatituderow.getDoublelatitude; 9 info.setLongituderow.getDoublelongitude; 10 info.setNamerow.getStringname; 11 info.setPricerow.getDoubleprice; 12 info.setKategorinew KategoriKulinerrow.getLongkategoriId, ; 13 kulinerInfos.addinfo; 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.setConnectionTimeouthttpParams, 10000; 3 HttpResponse httpResponse = null; 4 HttpClient client = new DefaultHttpClienthttpParams; 5 String stringUrl = http:10.0.2.2: + port + AwkServerLoginServlet; 6 HttpPost httpPost = new HttpPoststringUrl; 7 ListNameValuePair formLogin = new ArrayListNameValuePair1; 8 formLogin.addnew BasicNameValuePairusername, this.username; 9 formLogin.addnew BasicNameValuePairpassword, this.password; 1 user = EditText findViewByIdR.id.usernameTxt; 2 pass = EditText findViewByIdR.id.passwordTxt; 3 loginButton = Button findViewByIdR.id.loginButton; 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 ArrayListKulinerInfo; 2 JSONArray array = new JSONArrayresult; 3 for int i = 0; i array.length; i++ { 4 JSONObject row = array.getJSONObjecti; 5 KulinerInfo info = new KulinerInfo; 6 info.setDescriptionrow.getStringdescription; 7 info.setIdrow.getLongid; 8 info.setLatituderow.getDoublelatitude; 9 info.setLongituderow.getDoublelongitude; 10 info.setNamerow.getStringname; 11 info.setPricerow.getDoubleprice; 12 info.setKategorinew KategoriKulinerrow.getLongkategoriId, ; 13 kulinerInfos.addinfo; 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;} 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 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 ? Tabel 4 Tabel perhitungan kuisioner No Sangat Mudah Mudah Cukup Sulit Sangat Sulit Total P 1 2 10 16 80 2 10 20 100 P 2 1 5 14 70 5 25 20 100 Sangat Menarik Menarik Cukup Jelek Sangat Jelek P 3 1 5 17 85 2 10 80 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 20 100 Sangat Membantu Mem bantu Cukup Kurang Membantu Tidak Mem bantu P 5 7 35 12 60 1 5 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 525 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.

5. Kesimpulan