BAB III ANALISA DAN PERANCANGAN SOFTWARE · membuat username & password di menu Daftar. Setelah...

51
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

Transcript of BAB III ANALISA DAN PERANCANGAN SOFTWARE · membuat username & password di menu Daftar. Setelah...

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.

39

Gambar III.8 Activity Diagram Pemesanan

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 :

41

Gambar III.9 Sequence Diagram Pendaftaran

Gambar III.10 Sequence Diagram Login

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.

69

Gambar III.39 Tampilan exit

Gambar III.40 Tampilan exit

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 :

71

Gambar III.41 flowchart

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