5.2.1. Pengujian terhadap proses Transaksi Penyewaan Kamar.
Berikut adalah ilustrasi pengujian yang dilakukan.Gambar 5.1 menujukan beberapa tipe kamar yang kosong pada hari yang
dipilih.
Gambar 5 1 Berikut adalah gambar dari memilih Tipe Kamar.
Dalam pengujian ini akan menggunakan tipe kamar Kamar Spesial. Tipe kamar tersebut tersisa 1 kamar yang kosong dan akan
ada 2 orang atau user yang akan menyewa. Pada gambar 5.2 merupakan pengisian data penyewa, untuk
menyewa kamar tersebut. Dalam proses ini belum terjadi user atau penyewa harus memasukan data diri mereka sebelum melakukan
penyewaan kamar.
Gambar 5 2 Gambar Isi Data Diri transaksi 1
Simulasi ini menggunakan stored procedure yang akan diberi delay dengan cara memberi DBMS_LOCK.SLEEP
…. Berikut adalah perintah delay yang digunakan
Stored procedure yang digunakan bisa dilihat pada gambar 4.1. delay diletakan sesudah pemanggilan kursor emp_idkamarsewa
yang merupakan kursor untuk mengunci transaksi. Delay diberikan agar kedua transaksi bertabrakan dan protokol 2PL akan berjalan.
Gambar 5 3 Gambar Isi Data Diri transaksi 2
Pada transaksi yang kedua pada gambar 5.3, sama halnya ingin menyewa kamar tipe Kamar Spesial yang terdapat 1 kamar kosong.
DBMS_LOCK.SLEEP5;
Kedua transaksi tersebut akan dijalankan bersamaan sehingga akan bertabrakan yang akan menyebabkan protokol 2PL akan berjalan.
Gambar 5 4 Transaksi Berjalan Bersamaan Karena delay
Pada gambar 5.4 dapat dilihat bahwa kedua transaksi sedang melakukan waiting yang dikarenakan delay dan juga protokol 2PL
yang berjalan. Hasil akhir dari kedua transaksi diatas adalah sebagai berikut.
Gambar 5 5 Hasil akhir dari kedua Transaksi
Pada gambar 5.5 mengahasilkan Transaksi 1 berhasil menyewa dan menampilkan hasil transaksi penyewaan kamar, sedangkan
pada transaksi 2 kembali pada halaman utama dan menunjukan error yang bertuliskan Maaf Telah Terjadi Kesalahan Harap
Mengulan Order Penyewaan Kamar. Karena ketika kedua transaksi tersebut bertabrakan, transaksi 1 berhasil melakukan
penguncian terlebih dahulu, sehingga transaksi 2 harus menunggu transaksi 1 selesai dan melepas pengunciannya commit. Setelah
penguncian commit dilepas ternyata kamar yang tadi bisa disewa telah terisi, maka transasksi 2 melakukan pembatalan rollback
penyewaan kamar yang menghasilkan kembali kehalaman utama dan memberikan error.
Tabel 5.1 merupakan tabel yang menggambarkan proses yang terjadi pada pengujian aplikasi yang menerapkan protokol 2PL
terhadap masalah concurrency control.
Tabel 5.1 Proses yang terjadi dalam Transaksi Penyewaan Kamar
Waktu Transaksi 1
Transaksi 2 Kamar
t1
open emp_kamar; fetch emp_kamar into i;
open emp_idkamarsewai; close emp_idkamarsewa;
1
t2
update kamar_sewa set status = B where no_kamar = i and
tanggal = select DISTINCTtanggal from
kamar_sewa ks, kamar k where ks.no_kamar =
k.no_kamar and ks.no_kamar = i and k.id_kamar = 1 and
ks.tanggal = emp_record.tanggal; open emp_kamar;
loop fetch emp_kamar into i;
open emp_idkamarsewai; close emp_idkamarsewa;
t3
insert into penyewa values1234, yhoga, 085647728657, Kroya,
yhogagmail.com; insert into transaksi_sewa
values3, 3, 01-MAR-15, 01- MAR-15, , sysdate, 0,62000;
WAIT
t4
update kamar_sewa set id_sewa = v_maxid where no_kamar = i and
tanggal = select DISTINCTtanggal from
kamar_sewa ks, kamar k where ks.no_kamar =
k.no_kamar and ks.no_kamar = i and k.id_kamar = 1 and
ks.tanggal = emp_record4.tanggal;
WAIT
t5
Commit; if i is null then
raise ex_no_data_found;
t6
Rollback;
5.3. Analisa Hasil Coba Terhadap Pengguna
Uji coba terhadap pengguna dilakukan dengan menyebarkan kuisioner kepada 10 orang. Sasaran penyebaran kuisioner tersebut
terdiri dari:
6 orang sebagai penyewa untuk menguji sejauh mana sistem penyewaan kamar dapat membantu
4 orang sebagai admin untuk menguji apakah sistem dapat
membantu admin dalam mengelola data penyewa
5.3.1. Form kuisioner