JURNAL BASIS DATA Transaksi dan Pengenda (1)

JURNAL BASIS DATA
TRANSAKSI DAN PENGENDALIAN
PERSAINGAN PROSES
Diajukan untuk memenuhi salah satu tugas mata kuliah Sistem Basis Data
yang
diampu oleh :
Fathoni Mahardika, S.Kom.,M.T

Oleh :
Riefky Maulana Tahta Boedhi Perbawa
TI IIIC
A2.1600123

SEKOLAH TINGGI MANAJEMEN
DAN INFORMATIKA KOMPUTER
SUMEDANG

1

DAFTAR ISI


DAFTAR ISI............................................................................................................. 1
ABSTRAK................................................................................................................ 2
PENDAHULUAN....................................................................................................... 3
1.1

Latar Belakang.......................................................................................... 3

1.2

Kajian Teori................................................................................................ 3

METODE PENELITIAN.............................................................................................. 9
HASIL DAN PEMBAHASAN.................................................................................... 10
KESIMPULAN........................................................................................................ 15
DAFTAR PUSTAKA................................................................................................. 16

1

ABSTRAK


Jurnal ini membahas tentang transaksi dan pengendalian persaingan
proses dalam basis data Dengan
contoh seorang nasabah A yang akan
mentransfer dana ke nasabah B. dalam contoh tersebut terdapat 2 transaksi
yang diberi nama T1 dan T2. Dibuat beberapa simulasi yang urutan transaksinya
berbeda satu sama lain.

2

PENDAHULUAN

1.1Latar Belakang
Saat ini hampir setiap perusahaan atau instansi pemerintahan
menggunakan basis data. Basis data berfungsi untuk menyimpan data
dan mengorganisasikannya agar menjadi sebuah informasi. Contoh
manfaat dari basis data, Dengan basis data memungkinkan bagi
perusahaan untuk menyimpan data customer seperti nomor telepon, dan
alamat
email,
yang

dapat
digunakan
untuk
memasarkan
produk/menawarkan diskon dan penawaran khusus secara langsung.
Dapat juga untuk membantu menjalankan CRM (Customer Relationship
Management), bila perusahaan mengirim pesan Ulang Tahun kepada
customer pasti mereka akan merasa penting dan dihargai.
Dalam pengaksesan dan perubahan data database terdapat banyak
transaksi. Transaksi merupakan bagian dari pengeksekusian sebuah
program yang melakukan pengaksesan basis data dan bahkan juga
melakukan serangkaian perubahan data. Transaksi yang akan dibahas
disini yaitu transaksi yang menggunakan sistem konkurensi. Dengan
sistem ini, memungkinkan terdapat banyaknya transaksi dalam satu
waktu.

1.2Kajian Teori
1. TRANSAKSI
Transaksi adalah satu atau
mengakses/mengubah isi basis data.


beberapa

aksi

program

aplikasi

yang

Transaksi merupakan bagian dari pengeksekusian sebuah program yang
melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian
3

perubahan data. DBMS yang kita gunakan harus menjamin bahwa setiap
transaksi harus dapat dikerjakan secara utuh atau tidak sama sekali. Tidak boleh
ada transaksi yang hanya dikerjakan sebagian, karena dapat menyebabkan
inkonsistensi basis data. Untuk itu transaksi selalu merubah basis data dari satu
kondisi konsisten ke kondisi konsisten lain.

Sebuah transaksi berpeluang untuk ‘mengganggu’ integritas basis data
yang dapat membuat kondisi/hubungan antar data tidak seperti seharusnya.
Untuk menjamin agar integritas dapat tetap terpelihara maka setiap transaksi
harus memiliki sifat-sifat:
1.
Atomik, dimana semua operasi dalam transaksi dapat dikerjakan
seluruhnya atau tidak sama sekali.
2.
Konsisten, dimana eksekusi transaksi secara tunggal harus dapat
menjamin data tetap konsisten setelah transaksi berakhir.
3. Terisolasi, jika pada sebuah sistem basis data terdapat sejumlah
transaksi yang dilaksanakan secara bersamaan, maka semua transaksi yang
dilaksanakan pada saat yang bersamaan tersebut harus dapat dimulai dan bisa
berakhir.
4.
Bertahan, dimana perubahan data yang terjadi setelah sebuah
transaksi berakhir dengan baik, harus dapat bertahan bahkan jika seandainya
sistem menjadi mati.
Terhentinya suatu transaksi tidak selalu diakibatkan oleh kegagalan
insidental baik dari perangkat keras (crash) ataupun kemacetan sistem operasi

(hang). Tapi lebih sering terjadi karena user sengaja menghentikan transaksi
atau karena penghentian transaksi oleh DBMS akibat adanya kondisi tak
diinginkan, seperti deadlock atau timeout.
Sebuah transaksi dapat menghasilkan dua kemungkinan:
a.
Jika dilaksanakan lengkap seluruhnya, transaksi tersebut telah
di commit dan basis data mencapai keadaan konsisten baru.
b.
Jika transaksi tidak sukses, maka transaksi dibatalkan dan basis data
dikembalikan ke keadaan konsisten sebelumnya (rollback).
Transaksi yang sudah di commit tidak dapat dibatalkan lagi. Jika ada
kesalahan, maka harus dilakukan transaksi lain yang membalik dampak transaksi
sebelumnya.
Status-status yang dapat dicapai oleh sebuah transaksi sejak mulai
dilaksanakan hingga selesai atau batal adalah:

1. Aktif (Active), yang merupakan status awal (initial state) sebuah
transaksi yang menunjukkan transaksi tersebut masih dieksekusi.
2.
Berhasil Sebagian (Partially Committed), yaitu keadaan yang

dicapai transaksi tepat pada saat operasi terakhir dalam transaksi selesai
dikerjakan.

4

3. Gagal (Failed), yang merupakan keadaan dimana sebuah transaksi
terhenti pengeksekusiannya sebelum tuntas sama sekali.
4.
Batal (Aborted), yaitu keadaan dimana sebuah transaksi dianggap
tidak/belum dikerjakan yang tentu dengan terlebih dahulu diawali dengan
mengembalikan semua data yang telah diubah ke nilai-nilai semula. (yang
menjadi tanggung jawab DBMS).
5. Berhasil Sempurna (Committed), keadaan dimana transaksi telah
dinyatakan berhasil dikerjakan seluruhnya dan basis data telah merefleksikan
perubahan-perubahan yang memang diinginkan transaksi.

2.

Security Database


Authorization
Pemberian hak akses yang mengizinkan sebuah subyek mempunyai akses
secara legal terhadap sebuah system atau obyek.
Subyek

user atau program

Obyek

database table, view, application, rocedure.

Views (Subschemas)
Hasil yang dinamik dari satu atau lebih operasi relasi yang beroperasi
pada relasi dasar untuk menghasilkan relasi lainnya. View mwerupakan virtual
relation yang tidak secara nyata ada di dalam sebuah database, tetapi dihasilkan
atas permintaan user secara khusus.

Backing Up
Proses yang secara periodic menyalin database dan menjurnal (dan
memprogram) ke dalam media penyimpanan offline.


Journaling
Proses penyimpanan dan pemeliharaan sebuah jurnal atau log seluruh
perubahan terhadap database agar dapat merecover secara efektif jika terjadi
kegagalan.

Checkpointing
Titik temu sinkronisasi antara database dan transaksi log file. Seluruh data
yang disimpan di tempat sementara akan disimpan di media penyimpanan
kedua.
5

Integrity
Pengontrolan integritas juga membantu memelihara system database
yang aman dengan mencegah data dari invalid.

Encryption
Penyediaan (encoding) data dengan menggunakan algoritma khusus yang
merubah data menjadi tidak dapat dibaca oleh program apapun tanpa
mendeskripsikannya.


3. Concurrency & Recovery
Concurrency
Tujuan dari mekanisme ini adalah untuk menjamin bahwa transaksitransaksi yang konkuren tidak saling mengganggu operasinya masing-masing.
Terdapat beberapa masalah yang akan timbul dalam menjalankan transaksitransaksi yang konkuren.
Tiga masalah yang umum adalah:
1.

Masalah kehilangan modifikasi

2.

Masalah modifikasi sementara

3.

Masalah analisis yang tidak konsisten.

Recovery
Recovery berarti pemulihan kembali basis data pada keadaan terakhir

yang diyakini benar setelah terjadi kesalahan (failure). Recovery dengan
demikian mempunyai implikasi penanganan suatu message.
Berbagai kemungkinan kesalahan dalam basis data:
1.

Error program (aplikasi/OS/DBMS)

2.

Error hardware (peralatan,kanal,CPU)

3.

Error operator

4.

Fluktuasi tegangan

5.

Kebakaran diruang computer

6.

Sabotase
6

7.

Suatu transaksi dilaksanakan satu kali

8.

Proses transaksi harus terpercaya (reliable) tidak boleh hilang.

4. Deadlock, Commit, Rollback
Deadlock
Bertanggung
jawab
terhadap
pendeteksian
mengembalikan basis data ke keadaan konsisten.

kegagalan

dan

Yang harus dilakukan sistem:


mendapat informasi tentang pengalokasian data pada transaksi



menggunakan algoritma yang menggunakan informasi tersebut untuk
menentukan apakah sistem berada dalam keadaan deadlock.



menghilangkan keadaan-keadaan deadlock jika algoritma mendeteksi
adanya deadlock tersebut.

Deadlock dapat digambarkan
disebut graph wait-for.

dengan

memanfaatkan

graph,



Simpul untuk menyatakan transaksi.



Busur berarah untuk menunjukkan suatu transaksi Ta
menunggu transaksi Tb untuk melepaskan penguncian data.

yang

sedang

Commit
Commit adalah operasi yang menyatakan bahwa suatu transaksi sudah
terselesaikan/ sukses (succsessfull end-of-transaction)

Rollback
Rollback adalah operasi yang menyatakan
dibatalkan (unseccsessfull end-of-transaction)

5.

bahwa

suatu

transaksi

Concurrency Control

Locking
Locking adalah salah satu mekanisme pengontrol konkuren. Konsep dasar,
pada saat suatu transaksi memerlukan jaminan kalau record yang diinginkan
tidak akan berubah secara mendadak, maka diperlukan kunci untuk record
tersebut. Fungsi kunci (lock) adalah menjaga record tersebut agar tidak
dimodifikasi transaksi lain.

7

Timestamping
Timestamping adalah salah satu alternative mekanisme pengawasan
konkuren yang dapat menghilangkan masalah deadlock. Dalam skema ini tidak
ada kunci yang digunakan sehingga tidak ada deadlock yang muncul.
Timestamping untuk sebuah transaksi aksi merupakan suatu tanda pengenal
yang unik yang menunjuk waktu mulai relative dari transaksi.

6.

Fasilitas Recovery

Backup Mechanism
Melakukan backup secara periodic terhadap database yang ada.

Logging Facility
Mencatat transaksi-transaksi dan perubahan-perubahan yang terjadi
terhadap database. DBMS memelihara file khusus yang disebut Log (Journal)
yang menyediakan informasi mengenai seluruh perubahan yang terjadi pada
database.

7. Teknik Recovery
Differed Updates
Update tidak dituliskan ke database sampai sebuah transaksi dalam
keadaan commit. Jika transaksi gagal sebelum mencapai keadaan ini, transaksi
ini tidak memodifikasi database dan juga tidak ada perubahan-perubahan yang
perlu dilakukan.
Immediate Update
Update diaplikasikan terhadap database tanpa harus menunggu transaksi
dalam keadaan commit. Update dapat dilakukan terhadap database setiap saat
setelah log record tertulis. Log dapat digunakan untuk membatalkan dan
mengulang kembali transaksi pada saat terjadi kerusakan.

Dan semua yang saya dapat diambil dari berbagai macam sumber.

8

METODE PENELITIAN

Metode yang digunakan adalah mencari berbagai artikel atau makalah
yang membahas tentang basis data kontrol, transaksi dan pengendalian
persaingan di berbagai sumber melalui internet. Lalu meng-simulasikan
penggunaan transaksi sistem konkuren dengan tabel sehingga kita dapat
mendapatkan suatu kesimpulan dari simulasi tersebut.

9

HASIL DAN PEMBAHASAN

Contoh penggunaan transaksi dengan sistem konkuren
Nasabah A ingin mentransfer dana dari rekeningnya ke rekening B



Saldo Nasabah A = Rp. 2.000.000,Saldo Nasabah B = Rp. 1.000.000,-

Transaksi Pentransferan dana dari rekening A ke rekening B:


T1 berfungsi untuk mentransfer sebesar Rp. 100.000,- ke rekening B
Operasinya :
T1 :

read (A)
A ← A-100000
write (A)
read (B)
B ← B + 100000
write (B)



T2 berfungsi mentransfer dana sebesar 10% dari saldo rekening A
ke rekening B.
Operasinya :
T2 :

read (A)
temp ← 0.1 * A
A ← A – temp
write (A)
read (B)
B ← B + temp

10

write (B)

Simulasi 1
Jika transaksi T1 dikerjakan terlebih dahulu daripada transaksi T2.

Maka saldo akhir yang didapat adalah:



Saldo A = 2.000.000 – 100.000 = 1.900.000 – 190.000 = 1.710.000
Saldo B = 1.000.000 + 1.00.000 = 1.100.000 + 190.000 =
1.290.000

11

Simulasi 2
Jika transaksi T2 dikerjakan terlebih dahulu daripada transaksi T1.

Maka saldo akhir yang didapat adalah:



Saldo A = 2.000.000 – 200.000 = 1.800.000 – 100.000 = 1.700.000
Saldo B = 1.000.000 + 200.000 = 1.200.000 + 100.000 =
1.300.000

12

Simulasi 3

Maka saldo akhir yang didapat adalah:



Saldo A = 2.000.000 – 100.000 = 1.900.000 – 190.000 = 1.710.000
Saldo B = 1.000.000 + 1.00.000 = 1.100.000 + 190.000 =
1.290.000

13

Simulasi 4

Maka saldo akhir yang didapat adalah:



Saldo A = 2.000.000 – 100.000 – 200.000 = 1.700.000
Saldo B = 1.000.000 + 100.000 + 200.000 = 1.300.000

14

KESIMPULAN

 bagaimanapun urutan pengerjaan transaksi, selama dikerjakan secara
serial maka pada akhir transaksi, kondisi konsiste yang baru akan tetap
diperoleh.
 Pada Simulasi 3, konsistensi hasil transaksi tetap dapat diperoleh kendati
kedua transaksi tersebut dikerjakan secara konkuren. Tetapi kondisi di atas
belum tentu dapat dipenuhi oleh schedule konkuren lainnya.

15

DAFTAR PUSTAKA

wennyween.blogspot.co.id/2012/05/database-control.html
https://harsiti09.files.wordpress.com/2009/10/bab-vi-transaksi-dan-pengendalianpersaingan.ppt

16