BAB IV IMPLEMENTASI DAN PEMBAHASAN SISTEM
4.1
Implementasi Sistem Tahapan implementasi ini merupakan tahapan dimana
aplikasi
yang
dibuat
telah
siap
untuk
digunakan
secara
independent dan dapat diuji penggunaannya sesuai dengan tujuan yang telah dirancang. Untuk masuk dalam tahapan implementasi ini, aplikasi yang ada pada IDE Android Studio akan diinstal ke perangkat mobile menggunakan kabel data.
4.1.1 Splashscreen Dibawah ini merupakan potongan program dari class splashscreen. private final int lama_waktu = 2500; protected void onCreate(Bundle saveInstanceState){ super.onCreate(saveInstanceState); setContentView(R.layout.splashscreen2); new Handler().postDelayed(new Runnable() { @Override public void run() {
28
29
Intent run = new Intent(Splashscreen2.this, MyActivity.class); startActivity(run); finish(); }},lama_waktu); }
Dari kode program diatas didapat, proses pertama ialah pembuatan
sebuah
variabel
dengan
nama
‘lama_waktu’,
kemudian masuk dalam method onCreate, didalam method ini terdapat proses handler, yaitu proses yang akan mengeksekusi program didalamnya yaitu kode untuk menampilkan halaman utama
ketika
waktu
delay
sudah
mencapai
angka
2500
milisecond.
4.1.2 Halaman Utama Dibawah ini merupakan potongan program dari class halaman utama. tambah_data.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent show = new Intent(MyActivity.this, halaman_login.class); startActivity(show); } }); pencarian_otomatis.setOnClickListener(new View.OnClickListener() { @Override
30
public void onClick(View v) { Intent show = new Intent(MyActivity.this, MapsActivity.class); show.putExtra("ket","maps"); startActivity(show); } });
pencarian_manual.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent show = new Intent(MyActivity.this, halaman_pencarian_manual.class); startActivity(show); } });
keluar.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } });
Dari terdapat
potongan
perintah
kode
untuk
diatas
dapat
menampilkan
diketahui
activity
dari
bahwa class
halaman_login pada tombol tambah_data, activity dari class MapsActivity pada tombol pencarian_otomatis dan activity dari class
halaman_pencarian_manual
pencarian_manual.
pada
tombol
31
4.1.3 Halaman Autosearch Dibawah ini merupakan potongan program dari halaman auto search. mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { lat = marker.getPosition().latitude; lon = marker.getPosition().longitude; new tampinInfo().execute(); return false; } });
Terdapat kode untuk mengeset ketika marker(penanda) pada maps diklik maka akan menjalankan program didalamnya yaitu kode untuk memberi nilai pada variabel dan menjalankan method tampil informasi yang berisikan parameter. ArrayList
ArrayList();
kirimdata
=
new
kirimdata.add(new BasicNameValuePair("data","koordinat")); String url "http://hogypitersan.zz.mu/skripsi/tampil_koordinat.php";
=
JSONArray data; try { data = JSONArray(getJSONUrl(url,kirimdata));
new
for(int i = 0; i < data.length(); i++){ JSONObject data.getJSONObject(i);
json_data
=
32
koorX.add(json_data.getString("1"));koorY.add(json_data.getS tring("2")); }panjang = data.length(); } protected void onPostExecute(Void unused) { for(int i = 0; i < panjang; i++){ koX = Double.parseDouble(koorX.get(i)); koY = Double.parseDouble(koorY.get(i)); LatLng koordinat = new LatLng(koX, koY); if(hitungjarak(koX,koY)<=2000){ msg = false; Marker marker MarkerOptions().position(koordinat)
=
mMap.addMarker(new
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptor Factory.HUE_GREEN))); marker.showInfoWindow(); }}if(msg == true){ Toast.makeText(MapsActivity.this,"Tidak ada Hotel didekat sini",Toast.LENGTH_LONG).show(); }msg = false;
Bagian kode diatas merupakan method yang digunakan untuk menampilkan lokasi pada maps dalam bentuk berupa marker, dimana data yang diambil dari server ditampung dalam beberapa
variabel
yang
kemudian
menempatkan marker pada maps.
digunakan
untuk
33
4.1.4 Halaman Login Dibawah ini merupakan potongan program dari halaman login. protected Void doInBackground(String... params) { String Cekemail = email.getText().toString(); ArrayList ArrayList();
kirimdata
=
new
kirimdata.add(new BasicNameValuePair("email",Cekemail)); String url "http://hogypitersan.zz.mu/skripsi/login.php";
=
JSONArray data; try { data JSONArray(getJSONUrl(url,kirimdata));
=
new
for(int i = 0; i < data.length(); i++){ JSONObject
json_data
=
data.getJSONObject(i); kode = (json_data.getString("4")); nama = "" + json_data.getString("0") + " " + json_data.getString("1"); } } } protected void onPostExecute(Void unused) { if (kode.equals("0") == false) { if (password.getText().toString().equals(kode)) { Intent run Intent(halaman_login.this, tambah_data.class); run.putExtra("email",
=
new ""
email.getText()); startActivity(run); "Selamat datang " + nama,
Toast.makeText(halaman_login.this, Toast.LENGTH_LONG).show();
+
34
finish(); } else { Toast.makeText(halaman_login.this, "Maaf, email dan password salah", Toast.LENGTH_LONG).show(); } } else if (kode.equals("0")) { Toast.makeText(halaman_login.this, "Maaf, email anda belum terdaftar", Toast.LENGTH_LONG).show(); }
Potongan kode diatas untuk melakukan proses login. Akan dilakukan
pengecekan
pengelola, ketika
terhadap
password
yang
diinputkan
password yang diinputkan sama dengan
password yang diambil dari database, maka akan langsung menjalankan halaman tambah_data. $email = $_REQUEST['email']; $perintah = "select * from pengguna_terdaftar where email='$email'"; $run = mysql_query($perintah); if(mysql_num_rows($run)>0){ while($isi = mysql_fetch_array($run)){ $flag[] = $isi; } } print(json_encode($flag));
Cuplikan
kode
diatas
digunakan
untuk
melakukan
pengecekan terhadap email yang dimasukan oleh pengelola, jika email yang dimasukan ada maka data pengelola akan ditampung dalam array dan dikirim ke aplikasi.
35
4.1.5 Halaman Tambah Data Dibawah ini merupakan potongan program dari halaman tambah data. ArrayList ArrayList();
kirimdata
=
new
kirimdata.add(new BasicNameValuePair("keterangan","insert")); kirimdata.add(new BasicNameValuePair("user",email)); kirimdata.add(new BasicNameValuePair("koordinatX",koorX.getText().toString())); kirimdata.add(new BasicNameValuePair("koordinatY",koorY.getText().toString())); kirimdata.add(new BasicNameValuePair("nama_hotel",namaHotel.getText().toString())); kirimdata.add(new BasicNameValuePair("deskripsi",deskripsi.getText().toString())); kirimdata.add(new BasicNameValuePair("no_telp",no_telp.getText().toString())); kirimdata.add(new BasicNameValuePair("alamat",alamat.getText().toString())); kirimdata.add(new BasicNameValuePair("website",website.getText().toString())); kirimdata.add(new BasicNameValuePair("harga",harga.getText().toString())); kirimdata.add(new BasicNameValuePair("gambar",gambar.getText().toString())); String url "http://hogypitersan.zz.mu/skripsi/daftar_hotel.php";
=
try { JSONObject JSONObject(getJSONUrl(url,kirimdata));
json_data
=
kode = (json_data.getInt("kode")); } } protected void onPostExecute(Void unused) { if (kode == 1) {
new
36
Toast.makeText(tambah_data.this, "Menambahkan data berhasil", Toast.LENGTH_LONG).show(); finish();
Kode diatas digunakan untuk mengirim data yang telah diinputkan ke database dan menerima konfirmasi jika data berhasil disimpan. $user = $_REQUEST['user']; $koorX = $_REQUEST['koordinatX']; $koorY = $_REQUEST['koordinatY']; $nama_hotel = $_REQUEST['nama_hotel']; $deskripsi = $_REQUEST['deskripsi']; $no_telp = $_REQUEST['no_telp']; $alamat = $_REQUEST['alamat']; $website = $_REQUEST['website']; $harga = $_REQUEST['harga']; $gambar = $_REQUEST['gambar']; $perintah = "insert into daftar_hotel values('$user','$koorX','$koorY','$nama_hotel','$deskripsi','$n o_telp','$alamat','$website','$gambar',$harga)"; if($keterangan == "insert"){ if(mysql_query($perintah)){ $flag['kode'] = 1; } }
Potongan kode diatas digunakan untuk memasukan data kedalam database server.
4.2
Pembahasan Sistem Pada bagian ini akan membahas mengenai hasil dari
implementasi sistem yang telah diuji cobakan.
37
4.2.1 Splashscreen Form splashscreen merupakan tampilan pertama yang ditampilkan aplikasi, tampilan ini akan menampilkan judul dari aplikasi yang dibuat selama beberapa saat, kemudian baru masuk kedalam halaman utama aplikasi.
Gambar 4.1 Splashscreen
4.2.2 Halaman Utama Halaman utama berisikan menu-menu untuk mengakses seluruh fasilitas dari aplikasi seperti menu autosearch, manual search, penambahan data baru.
38
Gambar 4.2 Halaman Utama
4.2.3 Auto Search Halaman auto search digunakan untuk menampilkan maps yang didalam maps tersebut akan menampilkan hasil pendeteksian mengenai lokasi hotel terdekat.
Gambar 4.3 Halaman Auto search
39
4.2.4 Login Halaman login digunakan untuk memvalidasi pengelola yang ingin menambahkan data lokasi hotel baru.
Gambar 4.4 Halaman Login
4.2.5 Tambah Data Hotel Halaman tambah data digunakan bagi pengembang untuk melakukan penambahan data lokasi hotel baru.
40
Gambar 4.5 Halaman Tambah Data Hotel
Berdasarkan hasil
dari proses
implementasi
terhadap
aplikasi, maka didapatkan kesimpulan sebagai berikut : 1. Aplikasi dapat melakukan pendeteksian lokasi hotel terdekat
dengan
lokasi
pengguna
pada
radius
2
kilometer. 2. Aplikasi dapat menunjukan rute yang harus ditempuh pengguna ketika memilih salah satu hotel. 3. Aplikasi dapat menampilkan informasi mengenai hotel, dapat
melakukan
panggilan
halaman website hotel.
telpon
dan
membuka
41
4. Pengelola hotel dapat manambahkan data lokasi hotel baru dengan melakukan pendaftaran terlebih dahulu.