2.2.Manajemen Transaksi.
Transaksi dalam hal ini adalah sekumpulan kegiatan untuk mengubah konten pada basis data yang dilakukan oleh seorang
pengguna atau program aplikasi.Sebuah transaksi dikatakan berhasil jika mempunyai hasil jika seluruh transaksi dikatakan telah
commiteddilakukan dan database mencapai suatu keadaan konsisten yang baru. Jika transaksi gagal, maka transaksi dibatalkan. Jika
transaksi dibatalkan maka database harus dikembalikan keadaan konsisten seperti keadaan sebelum transkasi dilakukan, transaksi
tersebut disebut rollback atau undone.Connolly, T., Begg, C., 2002. Transaksi dalam manajemen transaksi harus memiliki sifat ACID,
yaitu : a. Atomicity,dimana keadaan transaksi yang tidak dapat dibagi-bagi
lagi yang dilakukan secara keseluruhan atau tidak sama sekali. b. Consistency, dimana suatu keadaan basis data dapat dirubah dari
suatu konsistensi ke konsistensi yang lain. c. Isolation,dimana suatu keadaan transaksi itu bebas, suatu transaksi
tidak mempengaruhi transaksi yang lain. d. Durability,dimana transaksi dapat dicatat secara permanen dan
tidak bisa hilang dalam basis data.
2.2.1. Metode Locking
Locking adalah suatu prosedur yang digunakan untuk mengatur akses yang dilakukan bersamaan pada suatu data. Pada saat
transaksi mengakses basisdata, suatu lock bisa menolak transaksi tersebut agar tidak menimbulkan hasil yang tidak benar. Sifat dasar
locking pada sebuah transaksi harus dinyatakan sebagai shared untuk proses baca read dan sepenuhnya terkunci untuk proses menulis
write. Aturannya sebagai berikut :
a. Shared lock yaitu jika suatu transaksi memiliki suatu shared lock pada item datanya, maka data tersebut dapat dibaca namun tidak
dapat dirubah. b. Exclusive lock yaitu jika suatu transaksi memiliki suatu exclusive
lock pada item datanya, maka datanya dapat dibaca dan dirubah. Karena operasi membaca tidak menimbulkan konflik, maka
diijinkan lebih dari 1 transaksi melakukan lock bersama pada saat yang bersamaan. Sedangkan pada exclusive lock, jika suatu
transaksi melakukan exclusive lock, maka tidak ada transaksi lain yang bisa membaca atau merubah item data tersebut.
2.2.2. Two Phase Locking2PL
Transaksi dapat dilakukan menggunakan protokol 2PL jika semua operasi locking mendahului operasi yang tidak terkunci dalam
transaksi tersebut.Protokol 2PL memiliki 2 fase, yaitu : a. Growing phase : jika transaksi sudah mendapatkan semua lock,
maka tidak boleh melepas lock. b. Shrinking phase : jika transaksi sudah melepaskan lock, maka
tidak dapat mendapatkan lock baru. Beberapa masalah yang disebabkan oleh proses yang konkuren
seperti dibawah ini bisa ditangani dengan menerapkan protokol two phase locking.
a. The Lost Update Problem, merupakan kejadian dimana data transaksi yang telah di update dibaca oleh transaksi yang lain
kemudian di update lagi. b. The Uncommited Dependency Dirty Read Problem, merupakan
kejadian dimana data transaksi yang dilakukan dibaca oleh transaksi yang lain, lalu dibatalkan tanpa adanya penyimpanan
terlebih dahulu
oleh transaksi
yang pertama
sehingga menyebabkan data yang tidak benar.
c. The Incosistent Analysis Problem, masalah ini timbul karena data diakses oleh 2 transaksi yang bersamaan, transaksi yang pertama
melakukan perubahan dan transaksi yang kedua melakukan analisis sehingga data yang diperoleh menjadi tidak konsisten.
2.2.2.1. Contoh Penangangan Masalah Concurrency Control
Dibawah ini merupakan contoh-contoh untuk menangani masalah concurrency control.
Gambar 2.1Mencegah Lost Update Problem menggunakan 2PL
Keterangan Untuk mencegah terjadinya masalah hilangnya data yang
diubah, maka : pertama- tama T2 meminta exclusive lock pada balₓ
Setelah itu T2 dapat melakukan proses baca nilai balₓ, menambahnya dengan nilai 100, dan menuliskan nilai baru dari
bal ₓ tersebut kedalam basis data.
Saat T1 memulai transaksi, T1 juga meminta suatu exclusivelock
pada balₓ, namun karena balₓ sedang berada dalam posisi exclusivelock
oleh T2, maka permintaan read balₓ tidak segera diberikan kepada T1 dan T1 harus menunggu sampai lock
dilepaskan oleh T2. Hal ini terjadi saat T2 melaksanakan operasi commit atau unlock
balₓ Connoly 2002
Gambar 2.2Mencegah Uncommitted Dependency Problem using 2PL
Keterangan : Untuk mencegah terjadinya masalah ketergantungan
transaksi yang belum dilaksanakan , maka : pertama-tama T4 meminta suatu exclusivelock
pada balₓ Setelah itu, T4 dapat melakukan proses baca nilai balₓ dari dalam basis data,
menambahnya dengan nilai 100, da n meluliskan nilai baru balₓ
tersebut kedalam basis data. rollback dieksekusi , peng-update-an pada transaksi T4 tidak jadi dilakukan dan nilai dalam basis data
dikembalikan ke kondisi semula yaitu 100. Saat T3 memulai transaksi T3 juga meminta suatu exclusive
lock pada balₓ, namun karena balₓ sedang dalam posisi exclusive
lock oleh T4, maka, permintaan tersebut tidak segera diberikan kepada T3, dan T3 harus menunggu sampai lock dilepaskan oleh
T4. Hal ini terjadi saat T4 melaksanakan operasi rollback atau unlock
balₓ, barulah T3 dapat melakukan proses baca nilai balₓ Connoly, 2002
Gambar 2.3Mencegah Inconsistent Analysis Problem using 2PL
Keterangan : Untuk mencegah terjadinya masalah analisis yang tidak
konsisten, maka : T5 mengawali meminta suatu exclusivelock pada balₓ. T5 juga meminta suatu exclusivelock pada balᵧ . Saat T6 ingin
membaca nilai balₓ , ia harus menunggu sampai lock dilepaskan
oleh T5. Hal ini terjadi saat T5 melaksanakan operasi commit atau unlock
balₓ, barulah T6 dapat membaca nilai balₓ Connoly, 2002 Untuk mengatasi masalah diatas, mesin basis data Oracle
XE mempunyai kemampuan mendukung transaksi dengan metode 2PL yang dapat menjaminkonsistensi data.
2.2.3. Perintah For Update
Perintah for update yang digunakan untuk melakukan penguncian agar menjamin konsistensi. Peritah for update dapat
juga digunakan dalam kursor, ada kemungkinan kursor melakukan update terhadap database. Untuk menjamin konsistensi data,
terutama dalam kasus ketika ada banyak sesi terhadap suatu
database yang sama, sebaikanya baris-baris record dalam database yang akan di-update atau dihapus, dikunci terlebih dahulu.
Penguincian record dalam database dapat dilakukan dengan perintah for update dalam kueri kursor.Oracle Inc, 2004
Sintak yang digunakan :
2.3.Hotel
Menurut Sri Kurniasih dalam jurnal imiah 2006:45, secara harifiah kata Hotel berasal dari bahasa latin yaitu kata HOSPITIUM,
yang memiliki arti ruang tamu. Pada jangka yang panjang hospitium mengalami proses perubahan pengertian, untuk membedakan antara
Guest House dan Mansion House rumah yang besar yang berkembang pada saat itu, maka rumah-rumah besar berubah nama
menjadi Hostel. Rumah-rumah besar atau yang disebut dengan hostel disewakan
kepada masyarakat yang ingin beristirahat sementara waktu, dan akandiatur oleh seseorang yang disebut host, tamu-tamu yang
menginap harus mematuhi aturan yang dibuat oleh host. Sesuai dengan tuntutan orang-orang yang ingin mendapatkan
kepuasan, tidak suka dengan aturan-aturan terlalu banyak yang terdapat di hostel, lambat laun kata hostel pun berubah menjadi hotel,
huruf s pada kata hostel menghilang atau dihilangkan oleh orang- orang, dan berubah menjadi kata Hotel yang kita kenal saat ini.
CURSOR … IS SELECT…
FROM …
FOR UPDATE [OF nama kolom];
14
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
3.1. Gambaran Umum Sistem yang lama
Hotel Prambanan Indah melayani dalam hal penyewaan kamar hotel kepada masyarakat lokal ataupun masyarakat internasional.
Pemesanan kamar saat ini masih menggunakan cara manual. Pemesanan bisa dilakukan melalui beberapa cara, yaitu :
a. Datang langsung hotel untuk melakukan penyewaan kamar b. Pesan melalui telepon.
Untuk tata cara pemesanan sendiri ada caranya seperti berikut : a. Waktu check-in pada pukul 13.00 wib dan untuk check-out pada pukul
12.00 wib. b. Pada waktu check-in tamu harus menyerahkan Kartu Identitas yang
masih berlaku SIM, KTP, Passport. c. Tamu yang membatalkan pemesanan kamar pada hari yang sama
tanggal check-in dikenakan biaya penuh. d. Tamu yang membatalkan pemesanan dua minggu sebelum tanggal
check-in dikenakan biaya 50 dari total pembayaran. e. Biaya booking adalah 20 dari harga penyewaan kamar.
3.2. Gambaran Umum Sistem yang baru
Sistem penyewaan kamar secara online berbasis web yang dibangun bertujuan untuk mempermudah orang untuk menyewa kamar
secara online dan untuk mengetahui informasi tentang kamar dan harga yang diberikan serta layanan yang diberikan.
Sistem penyewaan kamar ini bisa melakukan pemesanan kamar seperti dibawah ini :