bab iii analisa dan perancangan software · membuat username & password di menu daftar. setelah...
TRANSCRIPT
24
BAB III
ANALISA DAN PERANCANGAN SOFTWARE
3.1. Analisa Kebutuhan
A. Analisa Kebutuhan Hardware
Kebutuhan perangkat keras (Hardware) merupakan analisa kebutuhan
sistem yang digunakan untuk mengetahui secara jelas perangkat yang dibutuhkan
untuk mendukung proses perancangan dan penggunaan dari sistem aplikasi yang
akan dibuat. Adapun spesifikasinya adalah sebagai berikut:
a. Kebutuhan Perangkat Keras Perancangan Aplikasi
1. Processor Intel Core i3
2. RAM 6 GB
b. Kebutuhan Perangkat Keras Pengguna Aplikasi
1. Smarthphone Android
2. RAM minimal 1GB
B. Analisa Kebutuhan Software
Kebutuhan perangkat lunak (software) yaitu program yang diperlukan
untuk melakukan proses intruksi atau menjalankan perangkat keras. Agar aplikasi
dapat dibuat dan diimplementasikan sesuai perancangan, maka diperlukan suatu
perangkat lunak. Adapun spesifikasi software yang dibutuhkan sistem adalah :
a. Kebutuhan Perangkat Lunak Perancangan Aplikasi
1. Android Studio
2. Windows 2010
25
3. Dreamweaver
4. PHP MySQL
5. Xampp
b. Kebutuhan Perangkat Lunak Pengguna Aplikasi
Perangkat lunak yang digunakan untuk menjalankan Aplikasi SKR
(Shanghai Kop dan Relaksasi) berbasis Android ini adalah Android dengan versi
minimal 4.1 Jelly Bean
3.1.1. Identifikasi masalah
Permasalahan penelitian yang penulis ajukan ini dapat diidentifikasi
permasalahannya sebagai berikut:
1. Terbatasnya waktu untuk melakukan pemesanan jasa terapi apabila datang
langsung ke tempat terapi tersebut.
2. CV. Shanghai Kop dan Relaksasi belum memiliki sebuah aplikasi resmi
berbasis Android untuk memudahkan pemesanan.
3. Di butuhkannya sarana informasi jasa yang di miliki oleh CV. Shanghai Kop
dan Relaksasi agar konsumen dapat memilih sebelum melakukan pemesanan
langsung di tempat terapi.
3.1.2. Analisa Kebutuhan
Setelah mengidentifikasi permasalahan dan mendefinisikan masalah yang
ada, penulis akan menggambarkan kebutuhan untuk menyelesaikan masalah
dalam bentuk diagram UML.
1. Use casediagram
Pada penulisan skripsi ini, penulis menggambarkan use case diagram
untuk menggambarkan rangkaian yang dilakukan oleh system, dan aktor (admin
26
dan user ). Pada aplikasi ini, penulis menggambarkan 2 use case diagram, yaitu
:use case diagram admin dan use case diagramuser (pengguna). Use case
diagram pada aplikasi ini adalah :
Gambar III.1 use case diagram Admin 1
Tabel III.1 Use Case Description Admin Login
Use Case Name Admin Login
Requirements Admin melakukan Login
Goal Admin berhasil login
Pre-conditions Admin mendapatkan ID dan Password
Post-conditions
1. Admin dapat melihat home
2. Admin dapat melihat daftar Admin
3. Admin dapat melihat daftar Customer
4. Admin dapat melihat daftar karyawan terapi
5. Admin dapat melihat daftar pemesanan
6. Admin dapat melakukan Logout
Failed end conditions Admin tidak bisa masuk ke system
Primary actors Admin
Main flow/basic path -
Invariant A -
27
Tabel III.2 Use Case Description Admin melihat tampilan awal
Use Case Name Melihat tampilan awal
Requirements Admin melihat tampilan awal
Goal Admin dapat melihat tampilan awal (Home)
Pre-conditions Admin telah Login
Post-conditions Admin dapat melihat Home
Failed end
conditions Admin tidak bisa mengakses menu Home
Primary actors Admin
Main flow/basic path 1. Admin Login dan berhasil masuk ke system
2. Admin mengklik menu "Home"
Invariant A -
Tabel III.3 Use Case Description admin melihat daftar admin
Use Case Name Melihat daftar admin
Requirements Admin melihat daftar admin
Goal Admin dapat melihat daftar admin
Pre-conditions Admin telah Login
Post-conditions 1. Admin dapat melakukan edit pada data admin
2. Admin dapat menambahkan data admin baru
Failed end
conditions Admin tidak bisa melihat daftar admin
Primary actors Admin
Main flow/basic
path
1. Admin Login dan berhasil masuk ke system
2. Admin mengklik menu "Admin"
Invariant A -
28
Gambar III.2 use case diagram Admin 2
Tabel III.4 Use Case Description admin melihat daftar customer
Use Case Name Melihat daftar customer
Requirements Admin melihat daftar customer
Goal Admin dapat melihat daftar customer
Pre-conditions Admin telah Login
Post-conditions 1. Admin dapat melakukan edit pada data customer
2. Admin dapat menambahkan data customer baru
Failed end
conditions Admin tidak bisa melihat daftar customer
Primary actors Admin
Main flow/basic
path
1. Admin Login dan berhasil masuk ke system
2. Admin mengklik menu "Customer"
Invariant A -
29
Tabel III.5 Use Case Description admin melihat daftar karyawan terapi
Use Case Name Melihat daftar karyawan terapi
Requirements Admin melihat daftar karyawan terapi
Goal Admin dapat melihat daftar karyawan terapi
Pre-conditions Admin telah Login
Post-conditions
1. Admin dapat melakukan edit pada data karyawan
terapi
2. Admin dapat menambahkan data karyawan terapi
baru
Failed end
conditions Admin tidak bisa melihat daftar karyawan terapi
Primary actors Admin
Main flow/basic
path
1. Admin Login dan berhasil masuk ke system
2. Admin mengklik menu "Terapi"
Invariant A -
Gambar III.3 use case diagram Admin 3
Tabel III.6 Use Case Description admin melihat daftar pemesanan
Use Case Name Melihat daftar pemesanan
Requirements Admin melihat daftar pemesanan
Goal Admin dapat melihat daftar pemesanan
30
Pre-conditions Admin telah Login
Post-conditions
1. Admin dapat melakukan edit pada data
pemesanan
2. Admin dapat menambahkan data pemesanan.
Failed end conditions Admin tidak bisa melihat daftar pemesanan
Primary actors Admin
Main flow/basic path 1. Admin Login dan berhasil masuk ke system
2. Admin mengklik menu "Booking"
Invariant A -
Tabel III.7 Use Case Description Admin Logout
Use Case Name Logut
Requirements Admin Logout
Goal Admin dapat melakukan Logout
Pre-conditions Admin telah Login
Post-conditions Admin keluar dari System
Failed end conditions Admin tidak bisa keluar dari system
Primary actors Admin
Main flow/basic path 1. Admin Login dan berhasil masuk ke system
2. Admin mengklik menu "Logout"
Invariant A -
Gambar III.4 use case diagram User 1
31
Tabel III.8 Use Case Description User daftar
Use Case Name Daftar
Requirements User melakukan pendaftaran
Goal User dapat melakukan pendaftaran
Pre-conditions User menjalankan aplikasi
Post-conditions User terdaftar dan dapat login
Failed end conditions User tidak berhasil terdaftar
Primary actors User (pengguna aplikasi)
Main flow/basic path
1. User menjalankan aplikasi dan klik "Daftar"
2. User input data diri dan membuat username &
password
3. User mengklik tombol "Daftar"
Invariant A -
Gambar III.5 use case diagram User 2
32
Tabel III.9 Use Case Description user Login
Use Case Name Login
Requirements User melakukan login
Goal User berhasil Login
Pre-conditions User melakukan pendaftaran
Post-conditions
1. User dapat melihat daftar terapi dan harganya
2. User dapat melakukan pemesanan terapi
3. User dapat melihat jadwal terapi
4. User dapat melakukan pembatalan pemesanan
5. User dapat mengedit profil
6. User dapat melihat tentang aplikasi
Failed end conditions User tidak bisa login
Primary actors User (pengguna aplikasi)
Main flow/basic path -
Invariant A -
Tabel III.10 Use Case Description user melihat daftar paket Happy Hour
Use Case Name Melihat daftar paket Happy Hour
Requirements User melihat daftar paket Happy Hour
Goal User dapat melihat daftar paket Happy Hour
Pre-conditions User telah Login
Post-conditions
1. User dapat melihat daftar terapi paket
2. User dapat melihat deskrispsi dari suatu terapi
3. User dapat melihat harga terapi
4. User dapat melakukan pemesanan terapi
Failed end conditions User tidak bisa melihat daftar terapi
33
Primary actors User (pengguna aplikasi)
Main flow/basic path 1. User telah Login
2. User memilih menu "Happy Hour"
Invariant A -
Tabel III.11 Use Case Description user melihat daftar terapi
Use Case Name Melihat daftar terapi
Requirements User melihat daftar terapi
Goal User dapat melihat daftar terapi
Pre-conditions User telah Login
Post-conditions
1. User dapat melihat daftar terapi
2. User dapat melihat deskrispsi dari suatu terapi
3. User dapat melihat harga terapi
4. User dapat melakukan pemesanan terapi
Failed end conditions User tidak bisa melihat daftar terapi
Primary actors User (pengguna aplikasi)
Main flow/basic path 1. User telah Login
2. User memilih menu "Daftar Terapi"
Invariant A -
Tabel III.12 Use Case Description user melakukan pemesanan terapi
Use Case Name Melakukan pemesanan terapi
Requirements User melakukan pemesanan terapi
Goal User dapat melakukan pemesanan terapi
Pre-conditions User melihat daftar terapi
Post-conditions 1. System menyimpan pemesanan
34
2. Pemesanan masuk ke dalam "Jadwal Terapi"
Failed end conditions User tidak bisa melakukan pemesanan, User
batal melakukan pemesanan
Primary actors User (pengguna aplikasi)
Main flow/basic path
1. User telah Login dan memilih menu "Happy
Hour"
2. User memilih salah satu jenis terapi dari daftar
terapi
3. User memilih jam pemesanan dan durasi
terapi
4. User mengklik tombol "Booking"
5. System menyimpan pemesanan
6. Pemesanan masuk ke dalam menu "Jadwal
Terapi"
Invariant A
1. User telah Login dan memilih menu "Daftar
Terapi"
2. User memilih salah satu jenis terapi dari daftar
terapi
3. User memilih jam pemesanan dan durasi
terapi
4. User mengklik tombol "Booking"
5. System menyimpan pemesanan
6. Pemesanan masuk ke dalam menu "Jadwal
Terapi"
Tabel III.13 Use Case Description user melihat jadwal terapi
Use Case Name Melihat jadwal terapi
Requirements User melihat jadwal terapi
Goal User dapat melihat jadwal terapi
Pre-conditions User telah Login
Post-conditions User dapat melakukan pembatalan pemesanan
35
Failed end conditions User tidak bisa melihat jadwal terapi
Primary actors User (pengguna aplikasi)
Main flow/basic path 1. User telah Login
2. User memilih menu "Jadwal Terapi"
Invariant A -
Tabel III.14 Use Case Description user membatalkan pesanan terapi
Use Case Name Membatalkan pesanan terapi
Requirements User membatalkan pesanan terapi
Goal User dapat membatalkan pesanan terapi
Pre-conditions User melihat jadwal terapi
Post-
conditions Pemesanan dibatalkan
Failed end conditions User tidak bisa membatalkan pesanan terapi, User
batal melakukan pembatalan pesanan
Primary actors User (pengguna aplikasi)
Main flow/basic path
1. User telah Login dan memilih menu "Jadwal
Terapi"
2. User memilih salah satu jadwal dari daftar
jadwal terapi
3. User mengklik tombol "Cancel"
4. Pemesanan berhasil dibatalkan
Invariant A -
36
Gambar III.6 Use Case Diagram user 3
Tabel III.15 Use Case Description user melihat arsip pemesanan
Use Case Name Melihat arsip pemesanan
Requirements User melihat arsip pemesanan
Goal User dapat melihat arsip pemesanan
Pre-conditions User telah Login
Post-conditions User dapat melihat daftar pemesanan yang selesai
Failed end conditions User tidak bisa melihat arsip pemesanan
Primary actors User (pengguna aplikasi)
Main flow/basic path 1. User telah Login
2. User memilih menu "Arsip"
Invariant A -
Tabel III.16 Use Case Description user melihat profil
Use Case Name Melihat profil
Requirements User melihat profil
Goal User dapat melihat profil
37
Pre-conditions User telah Login
Post-conditions User dapat melakukan edit biodata
Failed end conditions User tidak bisa melihat profil
Primary actors User (pengguna aplikasi)
Main flow/basic path 1. User telah Login
2. User memilih menu "Profil"
Invariant A -
Tabel III.17 Use Case Description user melihat tentang aplikasi
Use Case Name Melihat tentang aplikasi
Requirements User melihat tentang aplikasi
Goal User berhasil melihat tentang aplikasi
Pre-conditions User telah Login
Post-conditions
1. User dapat melihat info cabang outlet
2. User dapat melihat tentang pembuat aplikasi
3. User dapat melihat tentang aplikasi
Failed end conditions User tidak bisa melihat tentang aplikasi
Primary actors User (pengguna aplikasi)
Main flow/basic path 1. User telah Login
2. User memilih menu "About"
Invariant A -
2. ActivityDiagram
Untuk mendskripsikan aliran kerja pada aplikasi ini, penulis meggunakan
activity diagram. Dalam hal ini, penulis menggambarkan 2 activity diagram,
yaitu: activity digram pendaftaran, dan activity diagram pemesanan. Activity
diagram pada aplikasi ini adalah sebagai berikut :
38
Gambar III.7 Activity diagram pendaftaran
Pada Activity Diagram diatas dapat dilihat bahwa pengguna melakukan
pendaftaran terlebih dahulu pada aplikasi dengan cara menginput data diri,
membuat username & password di menu Daftar.
Setelah melakukan pendaftaran dan disimpan, makan data tersebut akan
secara otomatis tersimpan di database admin dan customer akan mendapatkan
kode Customer secara otomatis.
40
Pada Activity Diagram diatas dapat dilihat bahwa pengguna melakukan
pendaftaran terlebih dahulu pada aplikasi dengan cara menginput data diri,
membuat username & password di menu Daftar. Setelah melakukan pendaftaran
dan disimpan, maka data tersebut akan secara otomatis tersimpan di database
admin dan customer akan mendapatkan kode Customer secara otomatis.
Setelah mempunyai username dan password, pengguna dapat melakukan
Login untuk melakukan pemesanan. Kemudian data pemesanan akan tersimpan
pada menu jadwal pemesanan, dapat dilihat langsung oleh pengguna aplikasi.
Selanjutnya setelah pemesan tersimpan, pelanggan datang ke outlet penyedia
layanan untuk melakukan terapi. Dan setelah pelanggan datang, bagian admin
akan mengecek jadwal pemesanan lalu menunjukkan ruangan terapi. Saat
pelanggan sudah berada didalam ruangana terapi, terapis akan datang dan
memberikan terapi sesuai yang telah dipesan. Selanjutnya setelah terasi selesai
sesuai waktu yang telah ditentukan, pelanggan melakukan pembayaran di bagian
administrasi. Admin akan menerima pembayaran, maka proses selesai.
3. Sequencediagram
Untuk menjelaskan serta menampilkan kronologi (urutan) interaksi-
interaksi antar objek di dalam aplikasi yang sesuai dengan use case penulis
menggunakan sequence diagram. Sequence diagram pada aplikasi ini adalah
sebagai berikut :
42
4. Deployment Diagram
Untuk menggambarkan detail sebuah sistem penulis menjelaskannya
menggunakan deployment diagram. Berikut adalah deployment diagram pada
aplikasi ini :
Gambar III.11 Deployment diagram
3.2. Desain
3.2.1. Rancangan Algoritma
Algoritma Sequential Seacrh adalah suatu teknik pencarian data dalam
array (1 dimensi) yang akan menelusuri semua elemen-elemen array dari awal
sampai akhir dimana data-data tidak perlu diurutkan terlebih dahulu, kemudian
data dicari secara urut dari depan ke belakang atau dari awal sampai akhir
berdasarkan key yang di cari.
43
String scari=edCari.getText().toString().toLowerCase();
int ada=0;
for (int i = 0; i < jd; i++){
String snama=arr_nama_terapi[i].toLowerCase();
if (snama.indexOf(scari)>=0){ //huruf IRISAN
text_sort.add(arr_nama_terapi[i]);
image_sort.add(arr_gbr[i]);
arr_kode_terapi2[ada]=arr_kode_terapi[i];
arr_nama_terapi2[ada]=arr_nama_terapi[i];
arr_durasi2[ada]=arr_durasi[i]; arr_harga2[ada]=arr_harga[i];
arr_deskripsi2[ada]=arr_deskripsi[i];
arr_promo2[ada]=arr_promo[i];
arr_keterangan2[ada]=arr_keterangan[i];
ada=ada+1;
}
}
Pada listing program diatas terlihat jika mengetik huruf “K” dikolom
search, maka terapi yang memiliki nama dengan huruf “K” akan ditampilkan. Dan
kemudian untuk pengetikan huruf kedua “O”, maka akan muncul nama terapi
yang terdapat huruf “K dan O” secara berdampingan. Jika huruf ketiga “P”, maka
akan muncul nama terapi “KOP” pada hasil pencarian. Selanjutnya apabila di klik
“KOP”, maka otomatis sistem akan mencarikan detail nama terapi tersebut mulai
dari harga, definisi dan kemudian ditampilkan.
3.2.2. Database
Pada aplikasi ini penulis menggunakan database pada web administrasi
yang berfungsi sebagai penyimpanan data terapi dan juga data pelanggan yang
sudah mempunyai data identitas, ha nya karyawan bagian administrasi/kasir yang
dapat melihat semua data pada database ini. Database yang digunakan adalah
database MySQL. Database yang dibuat terdiri dari empat tabel yang memiliki
fungsi masing-masing sesuai dengan bagiannya. Sedangkan pada aplikasi mobile
android, database akan diback up kedalam web administrasi yang sudah tersedia.
Berikut in adalah rancangan database pada aplikasi.
44
Database terdiri dari satu database dengan empat tabel, masing-masing
berisi data yang berbeda. Salah tabel tersebut berisi kode, jam, username dan
tanggal pemesanan yang dilakukan oleh pelanggan. Database tersebut mempunyai
fungsi sebagai penyimpanan data yang baru saja masuk yang kemudian menjadi
daftar antrian, dan juga data riwayat pelanggan yang bisa dilihat oleh pengguna
aplikasi.
Gambar III.12 Deployment diagram 2
3.2.3. Spesifikasi File
1. Spesifikasi File Admin
Nama File : Data Admin
Akronim : tb_admin
Fungsi : Menyimpan data admin
Tipe File : File Master
Organisasi File : Index Sequential
Media : Hard Disk
Panjang Record : 180
Kunci Field : kode_admin
Software : Xampp
45
Tabel III.18 Spesifikasi File Data Admin
No. Elemen Data Akronim Tipe Panjang Keterangan
1. Kode Admin kode_admin varchar 15 Primary Key
2. Username Username varchar 25
3. Password Password varchar 25
4. No. Telepon Telepon varchar 15
5. Email Email varchar 50
6. Gambar Gambar varchar 50
7. Status Status enum (‘Aktif’,
Tidak Aktif’)
2. Spesifikasi File Booking
Nama File : Data Booking
Akronim : tb_booking
Fungsi : Menyimpan data booking/pemesanan terapi
Tipe File : File Master
Organisasi File : Index Sequential
Media : Hard Disk
Panjang Record : 90
Kunci Field : kode_booking
Software : Xampp
Tabel III.19 Spesifikasi File Data Booking
No. Elemen Data Akronim Tipe Panjang Keterangan
1. Kode Booking kode_booking varchar 20 Primary Key
2. Tangal Tgl date
3. Jam Jam varchar 30
4. Kode Terapi kode_terapi varchar 25
5. Catatan Catatan text
6. Kode Kostumer kode_costumer varchar 15
46
7. Jam Mulai Terapi jam_mulai time
8. Jam Selesai Terapi jam_selesai time
9. Durasi Durasi int 3
3. Spesifikasi File Customer
Nama File : Data Customer
Akronim : tb_customer
Fungsi : Menyimpan data kostumer
Tipe File : File Master
Organisasi File : Index Sequential
Media : Hard Disk
Panjang Record : 105
Kunci Field : kode_customer
Software : Xampp
Tabel III.20 Spesifikasi File Data Customer
No. Elemen Data Akronim Tipe Panjang Keterangan
1. Kode Kustomer kode_customer varchar 15 Primary Key
2. Nama Kustomer nama_customer varchar 25
3. Jenis Kelamin jenis_kelamin varchar 15
4. No. Telepon Telepon varchar 15
5. Username Username varchar 20
6. Password Password varchar 15
7. Status Status text
4. Spesifikasi File Terapi
Nama File : Data Terapi
Akronim : tb_terapi
Fungsi : Menyimpan data jenis terapi
Tipe File : File Master
Organisasi File : Index Sequential
Media : Hard Disk
47
Panjang Record : 168
Kunci Field : kode_terapi
Software : Xampp
Tabel III.21 Spesifikasi File Data Terapi
No. Elemen Data Akronim Tipe Panjang Keterangan
1. Kode Terapi kode_terapi varchar 13 Primary Key
2. Nama Terapi nama_terapi varchar 25
3. Durasi Durasi varchar 10
4. Harga Harga varchar 15
5. Deskripsi Deskripsi text
6. Promo Promo varchar 5
7. Keterangan Keterangan text
8. Gambar Gambar varchar 100
3.2.4. Software Architecture
1. Daftar
btnProses.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
String lnama_customer=
txtnama_customer.getText().toString();
String ljenis_kelamin= txtjenis_kelamin.getText().toString();
String lusername= txtusername.getText().toString();
String ltelepon= txtTelepon.getText().toString();
String lpassword= txtpassword.getText().toString();
if(lnama_customer.length()<1){lengkapi("nama_customer");}
else if(ljenis_kelamin.length()<1){lengkapi("jenis_kelamin");}
else if(lusername.length()<1){lengkapi("username") ;}
else if(ltelepon.length()<1){lengkapi("telepon");}
48
else if(lpassword.length()<1){lengkapi("password");}
else{
if(kode_customer0.length()>0){
new update().execute();
}
else{
new save().execute();
}
}
}
2. Login
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login); ip=jsonParser.getIP();
txtusername=(EditText)findViewById(R.id.txtusername);
txtpassword=(EditText)findViewById(R.id.txtpassword);
Button btnLogin= (Button) findViewById(R.id.btnlogin);
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String user=txtusername.getText().toString();
String pass=txtpassword.getText().toString(); if(user.length()<1){lengkapi("Username");}
else if(pass.length()<1){lengkapi("Password");}
else{
new ceklogin().execute();
}
}
});
protected void onPostExecute(String file_url) {
pDialog.dismiss();
Log.v("SUKSES",kode);
if(sukses==1){ final SharedPreferences sharedPref =
PreferenceManager.getDefaultSharedPreferences(Login.this);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putBoolean("Registered", true);
editor.putString("kode", kode);
editor.putString("nama", nama);
editor.apply();
Intent i = new Intent (getApplicationContext
() ,Menuutama .class);
49
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();
}
else{
gagal("Login");
}
}
}
public void gagal(){
new AlertDialog.Builder(this)
.setTitle("Gagal Login")
.setMessage("Silakan Cek Account Anda Kembali")
.setNeutralButton("Tutup", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dlg, int sumthin) {
}})
.show();
3. Pemesanan
package com.example.masyaya.apppemesanan;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.Html;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
public class Detail_booking extends Activity {
String ip="";
String kode_booking;
String kode_booking0="";
50
EditText txtkode_booking;
EditText txttgl;
EditText txtjam;
EditText txtdurasi;
EditText txtkode_terapi;
EditText txtcatatan;
EditText txtnama_terapi;
Button btnProses;
Button btnHapus;
private ProgressDialog pDialog;
JSONParser jsonParser = new JSONParser();
private static final String TAG_SUKSES = "sukses";
private static final String TAG_record = "record";
private static final String TAG_tgl = "tgl";
private static final String TAG_jam = "jam";
private static final String TAG_durasi = "durasi";
private static final String TAG_kode_terapi = "kode_terapi";
private static final String TAG_catatan = "catatan";
private static final String TAG_nama_terapi= "nama_terapi";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.detail_booking);
ip=jsonParser.getIP();
callMarquee();
txtkode_booking = (EditText) findViewById(R.id.txtkode_booking);
txtkode_booking.setEnabled(false);
txttgl= (EditText) findViewById(R.id.txttgl);
txttgl.setEnabled(false);
txtdurasi= (EditText) findViewById(R.id.txtdurasi);
txtdurasi.setEnabled(false);
txtjam= (EditText) findViewById(R.id.txtjam);
txtjam.setEnabled(false);
txtkode_terapi = (EditText) findViewById(R.id.txtkode_terapi);
txtkode_terapi.setEnabled(false);
txtcatatan= (EditText) findViewById(R.id.txtcatatan)
;txtcatatan.setEnabled(false);
txtnama_terapi= (EditText) findViewById(R.id.txtnama_terapi);
txtnama_terapi.setEnabled(false);
btnProses= (Button) findViewById(R.id.btnproses);
btnProses.setText("Cancel");
btnHapus = (Button) findViewById(R.id.btnhapus);
btnHapus.setText("Kembali");
Intent i = getIntent();
51
kode_booking0 = i.getStringExtra("pk");
new get().execute();
btnProses.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
new del().execute();
}});
btnHapus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
finish();
}});
}
class get extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Detail_booking.this);
pDialog.setMessage("Load data detail. Silahkan tunggu...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
protected String doInBackground(String... params) {
int sukses;
try {
List<NameValuePair> params1 = new ArrayList<NameValuePair>();
params1.add(new BasicNameValuePair("kode_booking", kode_booking0));
String url=ip+"booking/booking_detail.php";
Log.v("detail",url);
JSONObject json = jsonParser.makeHttpRequest(url, "GET", params1);
Log.d("detail", json.toString());
sukses = json.getInt(TAG_SUKSES);
if (sukses == 1) {
JSONArray myObj = json.getJSONArray(TAG_record); // JSON Array
final JSONObject myJSON = myObj.getJSONObject(0);
runOnUiThread(new Runnable() {
public void run() {
try {
txtkode_booking.setText(kode_booking0);
txttgl.setText(myJSON.getString(TAG_tgl));
txtjam.setText(myJSON.getString(TAG_jam));
txtdurasi.setText(myJSON.getString(TAG_durasi));
txtkode_terapi.setText(myJSON.getString(TAG_kode_terapi));
txtcatatan.setText(myJSON.getString(TAG_catatan));
txtnama_terapi.setText(myJSON.getString(TAG_nama_terapi)+",RP:"+myJSON.getString("ha
rga"));
}
catch (JSONException e) {e.printStackTrace();}
52
}});
}
else{
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String file_url) {pDialog.dismiss();}
}
class del extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Detail_booking.this);
pDialog.setMessage("Menghapus data...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
protected String doInBackground(String... args) {
int sukses;
try {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("kode_booking", kode_booking0));
String url=ip+"booking/booking_del.php";
Log.v("delete",url);
JSONObject json = jsonParser.makeHttpRequest(url, "GET", params);
Log.d("delete", json.toString());
sukses = json.getInt(TAG_SUKSES);
if (sukses == 1) {
Intent i = getIntent();
setResult(100, i);
finish();
}
}
catch (JSONException e) {e.printStackTrace();}
return null;
}
protected void onPostExecute(String file_url) {pDialog.dismiss();}
public void lengkapi(String item){
new AlertDialog.Builder(this).setTitle("Lengkapi Data").setMessage("Silakan lengkapi data
"+item +" !").setNeutralButton("Tutup", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dlg, int sumthin) {
finish();
}}).show();
53
}
void callMarquee(){
Calendar cal = Calendar.getInstance();
int jam = cal.get(Calendar.HOUR);
int menit= cal.get(Calendar.MINUTE);
int detik= cal.get(Calendar.SECOND);
int tgl= cal.get(Calendar.DATE);
int bln= cal.get(Calendar.MONTH)+1;
int thn= cal.get(Calendar.YEAR);
String stgl=String.valueOf(tgl)+"-"+String.valueOf(bln)+"-"+String.valueOf(thn);
String sjam=String.valueOf(jam)+":"+String.valueOf(menit)+":"+String.valueOf(detik);
TextView txtMarquee=(TextView)findViewById(R.id.txtMarquee);
txtMarquee.setSelected(true);
String kata="Selamat Datang Di Shanghai Kop & Relaksasi "+stgl+"/"+sjam+"
#";
String kalimat=String.format("%1$s",TextUtils.htmlEncode(kata));
txtMarquee.setText(Html.fromHtml(kalimat+kalimat+kalimat));
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
3.2.5. User Interface
Tampilan antar muka/interface yang digunakan untuk aplikasi sangatlah
sederhana. Aplikasi hanya menggunakan 6 icon, setiap icon mewakili fungsinya
masing- masing. Hal ini bertujuan agar aplikasi yang dibuat dapat mudah
dimengerti oleh pengguna aplikasitersebut.
Dimulai dari halaman menu utama yang terdapat 6 icon, memiliki fungsi
masing-masing sesuai dengan keterangannya.
54
Gambar III.13 interface menu utama
1. Menu Promo
Digambarkan dengan icon Happy Hour. Pada menu “Happy hour”
berfungsi untuk menampilkan menu terapi promo, namun hanya beberapa terapi
saja yang memiliki harga promo. Pelanggan dapat memesan langsung dari menu
“Happy hour” untuk melakukan pemesanan terapi.
Gambar III.14 interface list terapi promo
Setelah berada dimenu “Happy hour”, klik salah satu nama terapi maka
akan terdapat harga dan juga definisi dari terapi tersebut. Klik booking untuk
melakukukan pemesanan.
55
Gambar III.15 interface form pemesanan
2. Daftar Terapi
Digambarkan dengan icon list terapi berbentuk garis-garis. Pada menu
“Daftar terapi” berfungsi untuk menampilkan list macam-macam jenis terapis,
klik salah satu menu terapi untulk mengetahui informasi harga serta definisi
terapi.
Gambar III.16 interface daftar menu terapi
56
Selanjutnya setelah klik salah satu nama terapi, akan muncul form nama
terapi, harga, dan juga dan juga durasi yang diinginkan. Setelah itu klik booking
untuk melakukan pemesanan.
Gambar III.17 interface booking terapi
3. Jadwal Terapi
Digambarkan dengan icon dengan gambar jam sebagai tanda
penjadwalan. Menu “Jadwal terapi”berfungsi untuk menampilkan daftar
pemesanan yang sudah dipilih oleh pengguna aplikasi sehingga pengguna
aplikasi bisa melihat kembali waktu yag telah ditentukan.
57
Gambar III.18 interface menu jadwal terapi
Kemudian klik salah satu list jadwal terapi, akan muncul detail jadwal
yang sudah dipesan. Selanjutnya pengguna aplikasi dapat menghapus jadwal
terapi dengan cara menekan tombol cancel, setelah itu terapi yang sudah dipesan
akan terhapus.
Gambar III.19interface isi menu jadwal terapi
4. Arsip Terapi
Digambarkan dengan icon buku. Menu ini berfungsi untuk menampilkan
riwayat pemesanan yang sudah selesai, pengguna aplikasi dapat melihat kapan
terakhir melakukan terapi dan juga dapat melihat riwayat yang sudah lalu.
58
Gambar III.20 interface menu arsip terapi
5. Profil
Digambarkan dengan icon orang. Menu ini berfungsi untuk meng-update
data identitas pengguna aplikasi, seperti mengganti nomer atau alamat. Jika
pengguna melakukan update data identitas, maka aka nada pilihan tombol simpan
yang sudah ada atau klik tombol update data untuk memperbaharui informasi
tentang profil pengguna aplikasi.
Gambar III.21 interface menu Profil
59
6. About
Digambarkan dengan icon tanda Tanya (?). Menu ini berfungsi untuk
mengetahui informasi info cabang, tentang pembuat dan tentang aplikasi.
Terdapat drop down menu pada tampilan ini yang apabila diklik akan muncul
informasi cabang secara lengkap dan juga informasi tentang pembuat aplikasi.
Gambar III.22 interface menu About
3.3. Implementasi
Pada bagian implementasi, penulis akan menampilkan proses pemesanan
terapi. Sebelum melakukan pemesanan menggunakan aplikasi ini pengguna harus
melakukan log in terlebih dahulu, bagi pengguna yang baru harus melakukan
pendaftaran dan mengisi data diri secara lengkap kemudian setelah disimpan bisa
langsung malakukan log in di aplikasi ini. Berikut adalah proses untuk melakukan
log in pada aplikasi
60
Gambar III.23 Login
Bagi pengguna yang baru mengguanakan aplikasi ini, maka harus
mengisi data diri dan juga username untuk melakukan log in. klik tombol daftar
untuk melakukan pendaftaran pengguna baru. Berikut ini adalah form pendaftaran
yang harus dilengkapi oleh pengguna baru, setelah semua data terisi lengkap
kemudian klik tombol simpan dan lakukan log in pada aplikasi.
Gambar III.24 Form pendaftaran
61
Setelah melakukan log in akan muncul tampilan menu utama yang terdiri
dari 6 icon pada aplikasi.
Gambar III.25 Menu Utama
Selanjutnya pilih salah satu icon yang ada pada menu utama. Sebagai
contoh awal klik menu happy hour, maka akan muncul tampilan berikut ini.
Gambar III.26 Menu Happy Hour
62
Kemudian pilih salah satu jenis terapi yang diinginkan, sebagai contoh klik
nama terapi “Refleksi kaki”. Berikut tampilannya.
Gambar III.27 Tampilan info terapi
Selanjutnya klik “booking” untuk melakukan pemesanan, setelah itu data
pemesanan akan tersimnpan dan muncul jendela konfirmasi sebagai berikut.
63
Gambar III.28 Tampilan Booking berhasil
Selanjutnaya klik icon daftar terapi untuk melihat menu terapi yang
tersedia. Akan muncul list terapi dan jugan kolom search untuk mencari nama
terapi yang diinginkan. Berikut adalah tampilan menu daftar terapi.
Gambar III.29 Tampilan daftar terapi
64
Kemudian pilih terapi yang diinginkan, maka akan muncul tampilan yang sama
seperti pada tampilan promo. Berikut ini adalah tampilannya.
Gambar III.30 Tampilan info terapi
Selanjutnya klik icon jadwal terapi untuk melihat pesanan terapi yang sudah
dipilih, maka akan muncul tampilan sebagai berikut.
65
Gambar III.31 Tampilan info jadwal terapi
Dan selanjutnya klik jadwal terapi yang ada, akan muncul tampilan berikut ini.
Gambar III.32 Tampilan info jadwal booking
Selanjutnya klik icon arsip untuk melihat riwayat trapi yang sudah berlalu.
Berikut adalah tampilannya.
66
Gambar III.33 Tampilan info arsip terapi
Selanjutnya klik icon profil untuk melihat data pribadi atau meng-update,
setelah klik tombol update biodata maka akan tersimpan dan kembali ke menu
utama. Berikut tampilannya.
Gambar III.34 Tampilan info biodata
Selanjutnya klik icon about untuk melihat informasi kontak dan cabang tempat
penyedia layanan jasa terapi. Berikut adalah tampilannya.
67
Gambar III.35 Tampilan About
Kemudian pilih informasi yang diinginkan, tersedia info cabang,
informasi tentang pembuat aplikasi, dan informasi tentang aplikasi. Saat klik salah
satu dari informasi yang ada maka aka drop down yang memunculkan informasi
yang dipilih. Berikut adalah tampilannya.
Gambar III.36 Tampilan info cabang
68
Gambar III.37 Tampilan info Pembuat
Gambar III.38 Tampilan info Aplikasi
Setelah semua icon sudah dilihat klik tombol back/kembali pada telepon
seluler android untuk menutup aplikasi. Kemudian akan muncul jendela
konfirmasi “apakah anda yakin akan menutup apliasi ini?” jika iya pilih “ok”, dan
jika tidak pilih“no”. Setelah itu akan muncul jendela konfirmasi bahwa aplikasi
telah ditutup. Berikut ini adalah tampilannya.
70
3.4. Testing
Untuk mengetahui apakah aplikasi yang dihasilkan sesuai dengan
fungsinya atau tidak serta untuk mengurangi bug yang terjadi pada saat pengujian
aplikasi maka perlu diadakannya testing. Testing yang dilakukan menggunakan
metode whitebox testing dan blackbox testing.
3.4.1. Pengujian white box
White box testing adalah cara pengujian untuk meneliti kode-kode
program yang ada, dan juga menganalisis apakah ada kesalahan atau tidak. Jika
ada modul yang menghasilkan output yang tidak sesuai dengan proses yang
dilakukan, maka baris-baris program, variabel dan parameter pada unit tersebut
akan dicek satu persatu dan diperbaiki kemudian di compile ulang. Pada pengujian
white box aplikasi ini penulis menguji menu-menu yang ada aplikasi apakah menu
yang sudah dibuka sesuai dengan fungsinya atau tidak. Hasil dari pengujian
adalah sebagai berikut :
72
Gambar III.42 jalur independent
Untuk menyediakan pengukuran kuantitatif dari kekompleksan logical
program penulis menggunakan kompleksitas siklomatis untuk menjamin bahwa
jumlah uji coba yang dikerjakan minimal sekurang-kurangnya dikerjakan sekali.
Kompleksitas siklomatis dari diagram alir white box dapat di peroleh dengan
perhitungan : V(G) = E – N + 2
Dimana :
E = Jumlah edge yang ditentukan gambar panah
N = Jumlah simpul diagram alir ditentukan dengan gambar lingkaran
Sehingga hasil yang diperoleh adalah V(G) = 52 – 42 + 2 = 12.
73
Berdasarkan perhitungan diatas didapat jumlah jalur independent adalah
12. Dibawah ini merupakah jalur independent yang dihasilkan dari kompleksitas
siklomatis.
1. 1-2-3-4-5-6-41-42
2. 1-2-3-7-8-9-10-11-12-13-14-15-34
3. 1-2-3-7-8-9-10-16-17-18-19
4. 1-2-3-7-8-9-10-11-20-21-22-23
5. 1-2-3-7-8-9-10-11-12-24-25-26
6. 1-2-3-7-8-9-10-11-12-24-25-26
7. 1-2-3-7-8-9-10-11-12-13-28-29
8. 1-2-3-7-8-9-10-11-12-13-14-30-31-32
9. 1-2-3-7-8-9-10-11-12-13-14-30-31-32
10. 1-2-3-4-35-36-37
11. 1-2-3-4-5-38-39-40
12. 1-2-3-4-5-6-41-42
3.4.2. Pengujian Black Box
Pengujian dengan metode blackbox testing dilakukan dengan
menjalankan aplikasi pemesanan jasa terapi menggunakan smartphone android.
Kemudian dilakukan pengujian dengan menekan satu persatu tombol-tombol
menu yang terdapat pada aplikasi tersebut, apakah sesuai dengan yang diharapkan.
Selanjutnya pengujian dilakukan ketika aplikasi berjalan. Berikut ini adalah hasil
pengujian pada aplikasi pemesanan jasa terapi dengan metode black box
74
Tabel III.22 Blackbox
No Skenario yang diuji Hasil yang diharapkan Hasil
1. Menampilkan menu log in Dapat menampilkan menu
log in saat membuka
aplikasi
Sesuai
2. Menampilkan menu form
pendaftaran
Dapat menampilkan form
pendaftaran bagi pengguna
baru
Sesuai
3. Menampilkan menu utama Dapat membuka menu
utama
Sesuai
4. Menampilkan menu promo
(Happy hour)
Dapat menampilkan menu
promo discount
Sesuai
5. Menampilkan menu daftar
terapi
Dapat menampilkan list
daftar terapi
Sesuai
6. Form booking Dapat menampilkan form
booking untuk pelanggan
Sesuai
7. Menampilkan menu jadwal
terapi
Dapat menampilkan waktu
terapi yang sudah dipesan
Sesuai
8. Menampilkan menu arsip Dapat menampilkan
riwayat terapi
Sesuai
9. Menampilkan menu profil Dapat menampilkan data
pribadi pelanggan serta
meng-update data
Sesuai
10. Menampilkan menu about Dapat menampilkan
informasi tentang cabang,
pembuat dan informasi
aplikasi
Sesuai
11. Keluar aplikasi Dapat menampilkan
jendela pemberitahuan saat
menutup aplikasi
Sesuai