28
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
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
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 potongan kode diatas dapat diketahui bahwa
terdapat perintah untuk menampilkan activity dari class
halaman_login pada tombol tambah_data, activity dari class
MapsActivity pada tombol pencarian_otomatis dan activity dari
class
halaman_pencarian_manual
pada
tombol
pencarian_manual.
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<NameValuePair> kirimdata = new
ArrayList<NameValuePair>(); kirimdata.add(new BasicNameValuePair("data","koordinat")); String url = "http://hogypitersan.zz.mu/skripsi/tampil_koordinat.php"; JSONArray data; try { data = new JSONArray(getJSONUrl(url,kirimdata));
for(int i = 0; i < data.length(); i++){
JSONObject json_data =
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 = mMap.addMarker(new MarkerOptions().position(koordinat) .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
digunakan
untuk
menempatkan marker pada maps.
4.1.4 Halaman Login
Dibawah ini merupakan potongan program dari halaman
login.
protected Void doInBackground(String... params) {
String Cekemail = email.getText().toString();
ArrayList<NameValuePair> kirimdata = new
ArrayList<NameValuePair>(); kirimdata.add(new BasicNameValuePair("email",Cekemail)); String url = "http://hogypitersan.zz.mu/skripsi/login.php"; JSONArray data; try { data = new JSONArray(getJSONUrl(url,kirimdata));
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 = new
Intent(halaman_login.this, tambah_data.class);
run.putExtra("email", "" +
email.getText());
startActivity(run);
Toast.makeText(halaman_login.this, "Selamat datang " + nama, Toast.LENGTH_LONG).show();
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 terhadap password yang diinputkan
pengelola, ketika 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.
4.1.5 Halaman Tambah Data
Dibawah ini merupakan potongan program dari halaman
tambah data.
ArrayList<NameValuePair> kirimdata = new
ArrayList<NameValuePair>(); 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 json_data = new
JSONObject(getJSONUrl(url,kirimdata));
kode = (json_data.getInt("kode")); }
}
protected void onPostExecute(Void unused) { if (kode == 1) {
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; } }