• Tidak ada hasil yang ditemukan

BAB IV IMPLEMENTASI DAN PEMBAHASAN SISTEM. pembahasan secara menyeluruh dengan menyertakan tampilan aplikasi dan

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB IV IMPLEMENTASI DAN PEMBAHASAN SISTEM. pembahasan secara menyeluruh dengan menyertakan tampilan aplikasi dan"

Copied!
14
0
0

Teks penuh

(1)

24 4.1 Implementasi dan Uji Coba Sistem

Berdasarkan analisis dan perancangan sistem yang telah dibuat pada bab sebelumnya, maka untuk bab ini akan dibahas mengenai implementasi dan pembahasan secara menyeluruh dengan menyertakan tampilan aplikasi dan potongan kode program.

4.1.1 Implementasi Aplikasi Android

Pada implemntasi aplikasi android, proses mengambil data maupun pengiriman data dari web service dilakukan oleh kelas JSONParser. public class JSONParser {

String charset = "UTF-8"; HttpURLConnection conn; DataOutputStream wr; StringBuilder result; URL urlObj;

JSONObject jObj = null; StringBuilder sbParams; String paramsString;

public JSONObject makeHttpRequest(String url, String method,HashMap<String, String> params) {

sbParams = new StringBuilder(); int i = 0;

for (String key : params.keySet()) { try { if (i != 0){ sbParams.append("&"); } sbParams.append(key).append("=") .append(URLEncoder.encode(params.get(key), charset)); } catch (UnsupportedEncodingException e) { e.printStackTrace();

(2)

Gambar 4.1 menunjukan potongan program untuk proses mengambil data dari web service melalui URL, hasilnya berupa Object JSON. Kelas ini digunakan di kelas-kelas lain untuk mengambil data. Untuk program php terdapat pada lampiran halaman 41.

4.1.2 Implementasi Ambil Survei

Untuk mengimplementasikan lokasi yang akan di survei mengacu gambar ..dimana pengguna akan memilih menu ambil survei kemudian akan mengambil gambar pertama dan kedua sekaligus latitude longetude.

Gambar 4.2 Tampilan Menu Ambil Survei

Gambar 4.2 pengguna akan melakukan pengambilan gambar dengan memfoto kerusakan jalan, lokasi pertama dan lokasi kedua. Aplikasi akan otomatis menangkap titik lokasi lat long yang nantinya akan dikirimkan ke web service kemudian ditambilkan membentuk garis yang akan menunjukan kerusakan jalan. Berikut adalah potongan program untuk proses pengambilan gambar pada android.

(3)

public int hasilCapture(int requestCode, int resultCode, Intent data){ REQ_CODE = requestCode; RES_CODE = resultCode; DATA = data; int hasil=0;

// if the result is capturing Image

if (requestCode ==

CAMERA_CAPTURE_IMAGE_REQUEST_CODE) {

if (resultCode == act.RESULT_OK) { hasil = 1;

Gambar 4.3 Cuplikan Program Proses Pengambilan Gambar

Cuplikan program gambar 4.3 menunjukan proses pemanggilan fitur camera pada aplikasi ini yang kemudian akan digunakan untuk proses pengambilan gambar. Android akan mengambil gambar kerusakan jalan dan sekaligus latitude dan longitude lokasi kerusakan jalan, kemudian mengirimkannya ke web service. Setelah itu web service akan mengambil parameter latitude dan longitude yang dikirimkan android, kemudian akan disimpan dalam ArrayLis.

(4)

private void updateWithNewLocation(Location location) {

TextView myLocationText = (TextView)

findViewById(R.id.tvLokasi); String latLongString; if (location != null) {

double lat = location.getLatitude(); double lng = location.getLongitude(); double iLat = lat * 1000000000;

double iLng = lng * 1000000000; _Lat = (long) iLat;

_Lng = (long) iLng;

latLongString = "Posisi Anda : \n Lat:" + lat + "\nLong:" + lng; pDialog.dismiss(); } else { _Lat = 0; _Lng = 0; pDialog.dismiss();

latLongString = "Lokasi Tidak Ditemukan"; showAlertGps("Aktifkan GPS");

}

Log.i("lokasi", "Latitude : "+_Lat+" Longitude : "+_Lng);

myLocationText.setText(latLongString); }

Gambar 4.4 Cuplikan Program Mengambil Latitude Longitude

Cuplikan program gambar 4.4 digunakan sebagai proses untuk menangkap atau mengambil titik lokasi saat pengambilan foto yang nantinya akan di kirimkan disimpan kemudian dengan web service akan ditampilkan kembali.

4.1.3 Implementasi Hasil Survei

Mengacu gambar 3.9 sesuai rancangan pengguna atau admin kantor akan dapat memilih menu hasil survei dimana akan terdapat list lokasi-lokasi dari survei yang dilakukan.

(5)

Gambar 4.5 Tampilan Menu List Lokasi Hasil Survei

Gambar 4.5 menunjukan list hasil survei yang merupakan nama-nama lokasi survei, untuk melihat detai hasil survei ini pengguna dapat klik salah satu list yang akan menuju pada maps sekaligus akan melihat lokasi kerusakan jalan yang ditandai dengan warna-warna kerusakan jalan.

(6)

private

ArrayList<DataSurvei.Lokasi>getLokasiById(ArrayList<DataSurv ei.Lokasi> datalokasi, String idsurvei){

DataSurvei oSurvei = new DataSurvei();

ArrayList<DataSurvei.Lokasi> lokasi = new ArrayList<>();

int n=datalokasi.size(); for(int i=0; i<n; i++){

Log.d("isi lokasi-"+i, "= "+datalokasi.get(i).getIdsurvei());

DataSurvei.Lokasi oLokasi = oSurvei.new Lokasi(); if(datalokasi.get(i).getIdsurvei().equalsIgnoreCase(idsurvei )){ oLokasi.setIdSurvei(datalokasi.get(i).getIdsurvei()); oLokasi.setNamalokasi(datalokasi.get(i).getNamalokasi()); oLokasi.setFoto(datalokasi.get(i).getFoto()); oLokasi.setLatitude(datalokasi.get(i).getLatitude()); oLokasi.setLongitude(datalokasi.get(i).getLongitude()); oLokasi.setKetlokasi(datalokasi.get(i).getKetlokasi()); lokasi.add(oLokasi); } }

Log.d("idsurvei lokasi ", ""+idsurvei); Log.d("hasil filter lokasi ", ""+lokasi); return lokasi;

} }

Gambar 4.6 Cuplikan Program Menyimpan Hasil Survei Pada List

Potongan kode program gambar 4.6 adalah class TampilActivity extends ListActivity digunakan untuk mengambil id masing masing variabel yang nantinya akan ditampilkan dengan mengambil dari ArrayList kemudian menggunakan parsing data dari JSON dan dengan kelas HashMap akan menampilkan dalam tampilan map.

(7)

4.1.4 Implementasi Menciptakan Garis Warna

Untuk mengimplementasikan detail lokasi mengacu pada rancangan gambar 3.9 pengguna dapat melihat lokasi kerusakan jalan, kondisi jalan dan panjang kerusakan jalan.

Gambar 4.7 Tampilan Lokasi Kerusakan Jalan

Gambar 4.7 menunjukan tampilan yang akan terlihat oleh user lokasi kerusakan jalan beserta keterangannya. Warna yang tampil akan berbeda sesuai panjang kerusakan. Pada penelitian ini untuk menentukan warna berdasarkan jarak mengacu Tabel 2.3 Kriteria kerusakan jalan memanjang.

Log.d("jarak ", ""+jaraknya);

String[] jaraks = jaraknya.split(" ");

double jarak = Double.parseDouble(jaraks[0]); Log.d("ambil jarak km ", ""+jarak);

if(jarak <= 1.0){

lineOptions.color(Color.YELLOW); }else if(jarak >= 1.0 && jarak <=2.0){ lineOptions.color(Color.GREEN); }else {

lineOptions.color(Color.RED);}

(8)

Potongan program gambar 4.8 digunkana untuk menciptkan garis yang berwarna beda berdasarkan panjang kerusakan jalan, garis yang tampil berwarna kuning berarti kerusakan ringan berdasarkan panjang kerusakan kurang dari 1 km, untuk warna hijau kerusakan sedang berdasarkan panjang kerusakan lebih dari 1 km – kurang dari 2 km, kemudian untuk warna merah kerusakn berat berdasarkan panjang kerusakan lebih dari 3 km.

private List<LatLng> decodePoly(String encoded) { List<LatLng> poly = new ArrayList<>(); int index = 0, len = encoded.length(); int lat = 0, lng = 0;

while (index < len) {

int b, shift = 0, result = 0; do {

b = encoded.charAt(index++) - 63; result |= (b & 0x1f) << shift; shift += 5;

} while (b >= 0x20);

int dlat = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1)); lat += dlat; shift = 0; result = 0; do { b = encoded.charAt(index++) - 63; result |= (b & 0x1f) << shift; shift += 5;

} while (b >= 0x20);

int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));

lng += dlng;

LatLng p = new LatLng((((double) lat / 1E5)), (((double) lng / 1E5))); poly.add(p); } return poly; } }

(9)

Cuplikan program gambar 4.9 digunakan untuk menciptakan atau mengkonversi polyline yang dikodekan dan poligon sebelum ditampilkan menjadi garis yang berwarna dalam google maps , lintang dan bujur yang menentukan polyline atau polygon disimpan sebagai string kemudian akan di transfer oleh json yang kemudian google maaps akan meresponnya kemudian ditampilkan dalam tampilan garis.

4.2 Pembahasan Sistem

Pada tahap ini akan dijabarkan pembahasan sistem yang telah diimplementasikan sesuai kebutuhan sistem.

4.2.1 Proses Pertukaran Data Dengan JSON

Dalam penelitian ini untuk proses mengambil data menggunakan JSONParser dari web service melalui URL, hasilnya berupa Object JSON. Kelas ini digunakan di kelas-kelas lain untuk mengambil data. Data dari android berupa longitude latitude dan foto akan digenerik menjadi kode-kode bineri yang nantinya akan terbaca oleh web service kemudian ditampilkan kembali pada aplikasi android.

4.2.2 Proses Ambil Gambar

Pada proses ambil gambar seperti gambar 4.1 user akan melakukan survei dengan memilih menu buat survei kemudian aplikasi akan siap untuk mengambil gambar. Pada tahap ini pada saat user memilih menu buat survei aplikasi akan langsung memunculkan fitur camera, pada fitur ini tipe camera maupun ukuran file gambar tidak berpengaruh pada aplikasi ini, hanya saja jika untuk gambar dengan ukuran resolusi besar kemungkian dalam proses ulpoad akan lebih lama

(10)

proses ini juga akan bergantung pada kecepatan koneksi internet pada smartphone.

Merujuk gambar 4.1 terlihat pengambilan gambar akan dilakukan dua kali, pengambilan pada titik pertama dan titik kedua. Pada saat pengambilan gambar titik pertama latitude longitude akan otomatis tertangkap dan terlihat begitu pula untuk pengambilan gambar yang kedua. Setelah kedua titik lokasi dari lokasi awal dan lokasi akhir didapatkan kemudian user melakukan upload to server yang nantinya data lat long dan foto akan tersimpan pada databse. Latitude longitude itu sendiri akan digunakan untuk menciptakan garis memanjang dari dua titik lotitude longitude itu nantinya akan menciptakan tarikan garis polyline yang nantinya juga akan mempunyai warna berbeda sesuai dengan panjangnya.

4.2.3 Proses Simpan Data

Data berupa gambar dan latitude longitude yang sudah diambil akan disimpan terlebih dahulu ke dalam database sebelum ditampilkan pada menu Hasil Survei.

(11)

Gambar 4.10 Tampilan Tabel Data Gambar dan Lokasi Pada Databse Gambar 4.10 menunjukan tabel database yang menyimpan data dari hasil survei data tersebut diantaranya seperti latitude longitude, foto kondisi jalan, keterangan kerusakan jalan, tanggal dan jam pengambilan survei. Semua data yang telah disimpan akan ditampilkan bersamaan dengan lokasi kerusakan jalan, seperti foto kondisi jalan akan tampil pada marker pada lokasi dan keterangan kerusakan jalan akan tampil pada list. Pada tahap penyimpanan data JSON dan web service sangat berbperan penting, karena untuk mengirimkan data diperlukan parsing data dari json yang akan diterma web service.

4.2.4 Proses Menampilkan Hasil Survei

Pada proses ini akan ditampilkan hasil survei yang berupa warna garis sesuai panjang kerusakan jalan, garis yang tampil akan berwarna berbeda sesuai panjang kerusakan. Proses menciptakan garis dengan warna yang berbeda berdasarkan panjang kerusakan jalan merupakan proses utama pada aplikasi ini.

Gambar 4.7 menunjukan bahwa akan muncul tiga warna yang berbeda, warna tersebut akan terbuat sesuai panjang kerusakan jika panjang kurang dari

(12)

satu kilometer maka akan tampil warna kuning, jika kerusakan jalan panjang lebih dari satu kilometer dan kurang dari dua kilometer maka akan tampil warna hijau dan jika panjang kerusakan lebih dari tiga kilometer maka akan tampil warna merah.

Perbedaan warna yang tampil pada lokasi kerusakan jalan akan menunjukan kategori kerusakan ringan, sedang dan berat, untuk warna kuning akan digabarkan dengan warna kuning untuk warna hijau menunjukan kerusakan sedang dan untuk warna merah untuk kerusakan berat.

4.2.5 Proses Menampilkan Jarak dari Google Map

Pada aplikasi ini seperti pada tampilan hasil akhir akan menampilkan garis warna marker beserta jarak pengukuran, dalam menampilkan jarak dalam satuan kilometer disini menggunakan webservice google map dan memanfaatkan parsing data menggunakan json. Untuk mendapatkan hasilnya maka perlu juga menggunakan poin sistem World Geodetic System (WGS84) titik pada dunia. private String getDirectionsUrl(LatLng origin,LatLng dest){ String str_origin =

"origin="+origin.latitude+","+origin.longitude; String str_dest =

"destination="+dest.latitude+","+dest.longitude; String sensor = "sensor=false";

String parameters =

str_origin+"&"+str_dest+"&"+sensor; String output = "json"; String url =

"https://maps.googleapis.com/maps/api/directions/"+output+"? "+parameters;

return url; }

(13)

Pada method gambar 4.11 cuplikan program menampilkan jarak memiliki parameter origin dan destination, origin maksudnya adalah titik latitude dan longitude lokasi asal atau lokasi awal, sedangkan destination adalah titik latitude dan longitude lokasi tujuan lokasi kedua. Dalam method ini terdapat url API google maps yang berfungsi sebagai web service yang menyediakan sumber data terhadap lokasi tersebut. Kemudian method getDirectionsUrl() tersebut dipanggil dengan cara seperti berikut :

LatLng origin = markerPoints.get(0); //diperoleh dari hasil survei

LatLng dest = markerPoints.get(1); // diperoleh dari hasil survei

// Getting URL to the Google Directions API String url = getDirectionsUrl(origin, dest); //Log.d("getDirectionUrl = ", ""+url);

DownloadTask downloadTask = new DownloadTask();

// Start downloading json data from Google Directions API downloadTask.execute(url);

Gambar 4.12 Cuplikan Program Method getDirectionsUrl()

Kemudian hasil dari method getDirectionsUrl tersebut digunakan untuk mengambil data dari google API menggunakan method download.execute(url); hasil dari proses ini nantinya akan menghasilkan data berupa jarak dari google map yang kemudian digunakan untuk menentukan warna garis pada peta menggunakan method pada gambar 4.8, yang dimana akan dipanggil menggunakan protected void onPostExecute() yang didalamnya terdapat method seperti berikut:

(14)

if(j==0){ // Ambil jarak dari API google distance = point.get("distance"); continue;

}else if(j==1){ // Ambil Estimasi dari API google duration = point.get("duration");

continue;}

Gambar 4.13 Cuplikan program onPostExecute()

4.3 Hasil Pengujian Aplikasi / Kuesioner Aplikasi

Pada penelitian ini pengujian aplikasi akan dilakukan kepada beberapa orang untuk menjadi semple hasil aplikasi dengan penilaian huruf sangat baik, baik, cukup dan kurang. Pengujian ini melibatkan tiga penguji yang melakukan survei kemudian memberikan penilaian pada fitur-fitur aplikasi dari pengujian terbut didapat kesimpulan dari tiga pengguna pada fitur ambil foto dua pengguna menilai sangat baik SB dan satu pengguna baik B, untuk fitur koordinat semua pengguna menilai baikB, fitur upload server dua pngguna menilai baik B dan satu pengguna cukup C, fitur hasil survei dua pengguna menilai SB, dan satu pengguna B dan untuk penggunaan aplikasi semua pengguna menilai B. Untuk melihat hasil kuesioner aplikasi terdapat pada halaman lampiran Tabel lampiran 1.1.

Gambar

Gambar 4.1 Cuplikan Program JSONParser
Gambar 4.1 menunjukan potongan program untuk proses mengambil data dari  web service melalui URL, hasilnya berupa Object JSON
Gambar 4.3 Cuplikan Program Proses Pengambilan Gambar
Gambar 4.4 Cuplikan Program Mengambil Latitude Longitude
+7

Referensi

Dokumen terkait

Dari sisi lain ditemukan bahwa dengan meningkatnya kosakata bahasa Indonesia anak Buruh Migran Indonesia di Sabah Malaysia dapat dikatakan bahwa bahasa Indonesia

Hasil persiapan mengajar berupa Rencana Pelaksanaan Pembelajaran, dan materi mata pelajaran Memasang Instalasi Penerangan Listrik Bangun Sederhana dan mata pelajaran

Kemiskinan menurut Badan Pusat Statistik (BPS) adalah kondisi kehidupan yang serba kekurangan yang dialami sesorang atau rumahtangga, sehingga tidak mampu memenuhi

Suawardi Endraswara (2005:5) membuat definisi bahwa, “penelitian kualitatif adalah penelitian yang dilakukan dengan tidak menyertakan angka-angka, tetapi mengutarakan kedalaman

Dengan demikian berdasarkan hasil temuan dan analisis data penelitian tindakan bimbingan konseling maka dapat disimpulkan bahwa layanan bimbingan kelompok

longissima seperti lama hidup dari larva dan imago sebagai tahap perkembangan hama yang merusak tanaman telah mengalami perubahan, yakni peningkatan sebesar 1,7 kali dari

Anak membutuhkan stimulus dalam meningkatkan kemampuan motorik halus seperti melakukan senam otak, yang bertujuan memfasilitasi bagian otak kanan dan otak kiri agar dapat

service obligation seharusnya menjadi kewajiban Pemerintah. Keberadaan infrastruktur sangat penting bagi pembangunan, sehingga fase awal pembangunan pada suatu negara atau