Metode Locking Perintah For Update

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 :