Anda di halaman 1dari 32

MANAJEMEN TRANSAKSI PADA DATABASE

Makalah
disusun untuk memenuhi tugas mata kuliah Basis Data

Dosen Pengampu
Nava Gia Ginasta, S. Tr. Kom., M. Kom.

Oleh:
Mylo Aleffa Rahman (NPM 184220010)
Muhammad Reefy Hidayatullah (NPM 184220015)
Yusuf (NPM 184220032)

PROGRAM STUDI SAINS DATA


FAKULTAS LOGISTIK, TEKNOLOGI, DAN BISNIS
UNIVERSITAS LOGISTIK DAN BISNIS INTERNASIONAL
BANDUNG
2023
KATA PENGANTAR

Puji syukur kehadirat Allah SWT yang telah memberikan rahmat dan
hidayah-Nya sehingga penulis dapat menyelesaikan tugas makalah yang berjudul
“Manajemen Transaksi pada Database” ini tepat pada waktunya. Adapun tujuan
penulisan dari makalah ini adalah sebagai pemenuhan tugas Mata Kuliah Basis Data.
Selain itu, makalah ini juga bertujuan untuk menambah wawasan tentang manajemen
transaksi yang terdapat dalam database bagi para pembaca dan juga bagi penulis
sendiri. Penulis mengucapkan terima kasih kepada Bapak Nava Gia Ginasta, S. Tr.
Kom., M. Kom. selaku dosen pengampu Mata Kuliah Basis Data yang telah
membimbing penulis sehingga dapat menambah pengetahuan dan wawasan. Penulis
menyadari makalah ini masih jauh dari kata sempurna. Oleh karena itu, kritik dan
saran yang membangun akan penulis nantikan demi kesempurnaan makalah ini.

ii
DAFTAR ISI

KATA PENGANTAR .................................................................................................. ii

DAFTAR ISI ................................................................................................................ iii

DAFTAR GAMBAR ................................................................................................... iv

BAB I ............................................................................................................................ 1

1.1 Latar Belakang .................................................................................................... 1

1.2 Rumusan Masalah ............................................................................................... 2

1.3 Tujuan Penulisan ................................................................................................. 2

1.4 Manfaat Penulisan ............................................................................................... 2

BAB II ........................................................................................................................... 4

2.1 Transaksi pada Database .................................................................................... 4

2.2 Properti Transaksi Database ............................................................................... 5

2.3 Fungsi pada Transaksi Database ........................................................................ 7

2.5 Isolation Level ..................................................................................................... 9

BAB III ....................................................................................................................... 17

3.1 Kesimpulan ....................................................................................................... 17

3.2 Saran .................................................................................................................. 17

DAFTAR PUSTAKA ................................................................................................. 19

LAMPIRAN I ............................................................................................................. 21

LAMPIRAN II ............................................................................................................ 24

iii
DAFTAR GAMBAR

Gambar 2. 1 Diagram State Transaksi .......................................................................... 7


Gambar 2. 2 Contoh Read-Uncommitted Sesi 1 ......................................................... 10
Gambar 2. 3 Contoh Read-Uncommited Sesi 2 ........................................................... 10
Gambar 2. 4 Contoh Read-Committed Sesi 1.............................................................. 11
Gambar 2. 5 Contoh Read-Committed Sesi 2.............................................................. 11
Gambar 2. 6 Contoh Output Sesi 2 Setelah Commit pada Sesi 1................................ 12
Gambar 2. 7 Contoh Repeatable-Read Sesi 1 ............................................................. 13
Gambar 2. 8 Contoh Repeatable-Read Sesi 2 ............................................................. 14
Gambar 2. 9 Contoh Phantom Read ........................................................................... 15
Gambar 2. 10 Contoh Serializable Sesi 1 ................................................................... 16
Gambar 2. 11 Contoh Serializable Sesi 2 ................................................................... 16

iv
BAB I

PENDAHULUAN

1.1 Latar Belakang


Manajemen transaksi dalam konteks basis data merupakan inti dari keandalan,
konsistensi, dan keamanan informasi yang disimpan dalam sistem. Dalam era di mana
organisasi dan bisnis mengandalkan data sebagai salah satu aset terpenting mereka,
penting untuk memahami bagaimana manajemen transaksi memainkan peran krusial
dalam memastikan bahwa operasi-operasi yang dilakukan pada data dilakukan secara
benar, konsisten, dan dapat dipulihkan jika terjadi kegagalan.
Transaksi pada basis data adalah serangkaian operasi yang harus diolah secara
keseluruhan atau tidak sama sekali. Misalnya, dalam transaksi penjualan online,
langkah-langkah seperti mengurangi stok barang, mencatat pesanan, dan memproses
pembayaran harus dilakukan secara utuh. Jika salah satu langkah dalam transaksi
tersebut gagal, maka sistem yang ada harus bisa memulihkan data-data yang ada pada
kondisi sebelum transaksi itu dimulai.
Aspek penting yang terdapat dalam manajemen transaksi adalah untuk
memastikan properti-properti ACID (Atomicity, Consistency, Isolation, Durability)
terlaksana dengan baik. Atomicity bertujuan untuk memastikan bahwa setiap transaksi
dilakukan secara utuh, consistency bertujuan untuk menjaga database dalam keadaan
yang konsisten baik sebelum dan sesudah dilakukannya transaksi, isolation bertujuan
untuk memastikan bahwa setiap transaksi yang berjalan bersamaan tidak saling
mengganggu satu sama lain, dan durability bertujuan untuk memastikan setiap
perubahan yang dilakukan saat transaksi akan tetap ada dan stabil meski terjadi
kesalahan.
Manajemen transaksi juga tentunya melibatkan penggunaan teknik locking
yang bertujuan untuk mencegah adanya akses ganda ataupun konflik yang dapat
terjadi saat beberapa transaksi berusaha mengakses data secara bersamaan. Hal ini

1
2

memastikan bahwa keamanan data terjaga dan juga transaksi dapat berjalan tanpa
hambatan apapun.
Melihat perkembangan teknologi pada masa kini, berbagai konsep yang ada
dalam manajemen transaksi juga berkembang pesat seiring dengan peningkatan
kompleksitas sistem dan kebutuhan akan ketersediaan data secara real time. Berbagai
konsep seperti transaksi terdistribusi, replikasi data, dan teknik-teknik pengoptimalan
kinerja menjadi bagian yang penting dalam memahami bagaimana manajemen
transaksi dapat disesuaikan dengan lingkungan basis data yang beragam.
Dengan mempertimbangkan latar belakang tersebut, diharapkan makalah ini
dapat memberikan gambaran yang komprehensif tentang manajemen transaksi pada
database, termasuk pengertian, properti, fungsi, dan contoh penerapannya untuk
pengembangan dan perbaikan di masa mendatang.
1.2 Rumusan Masalah
1. Apa itu transaksi pada database?
2. Apa saja properti transaksi database?
3. Apa saja fungsi yang ada pada transaksi MySQL?
4. Apa itu isolation level pada transaksi?
1.3 Tujuan Penulisan
1. Menjelaskan pengertian dari transaksi pada database.
2. Memaparkan properti transaksi pada database.
3. Menjelaskan fungsi-fungsi yang ada pada transaksi database.
4. Memaparkan penjelasan tentang isolation level.
1.4 Manfaat Penulisan
Penulisan makalah ini akan memberikan manfaat dalam meningkatkan
wawasan terkait manajemen transaksi pada database. Dalam analisis yang tertera,
akan menjelaskan bagaimana manajemen transaksi berperan menjaga keandalan
sistem basis data. Dengan pemahaman yang baik mengenai konsep ACID (Atomicity,
Consistency, Isolation, Durability). Makalah ini juga memberikan berbagai contoh
penerapan transaksi pada database yang biasa digunakan.
3

Penulisan makalah ini juga diharapkan dapat menjadi referensi bagi peneliti
selanjutnya yang tertarik lebih dalam mengenai manajemen transaksi pada database.
Melalui analisis yang mendalam dan informasi yang terdokumentasi dengan baik,
penulisan ini menjadi sumber referensi berharga bagi peneliti dan akademisi yang
ingin melanjutkan penelitian sejenis di masa mendatang.
BAB II

PEMBAHASAN

2.1 Transaksi pada Database


Transaksi basis data merupakan sekumpulan satu atau lebih operasi yang
dikelola sebagai unit kerja atom tunggal. Hal ini mengartikan bahwa semua sistem
operasional dalam transaksi berhasil diselesaikan atau tidak ada yang diterapkan sama
sekali dalam database. Transaksi tersebut digunakan untuk menegaskan mengenai
konsistensi dan integritas data dengan memastikan database dalam keadaan yang
konsisten sekalipun terjadi kegagalan atau kesalahan sistem.
Transaksi basis data beroperasi dengan mengoptimalkan beberapa operasi
yang terdapat dalam basis data ke dalam satu unit atom. Database Management
System (DBMS) menggunakan manajemen transaksi untuk mengetahui operasi
transaksi individu dan memastikan bahwa semuanya telah diproses sesuai urutan
yang baik dan benar.
Saat transaksi dimulai, DBMS akan membuat sebuah hal baru dan
memerintahkannya ke tahap eksekusi saat ini. Setiap operasi basis data yang
dilakukan dalam hal tersebut dianggap sebagai rangkaian dari transaksi. Setelah
semua operasional selesai, transaksi dapat dilakukan ataupun dibatalkan. Jika
transaksi tersebut dilakukan, maka DBMS menerapkan semua sistem operasional
dalam transaksi ke database lalu membuatnya menjadi permanen. Sedangkan saat
transaksi dibatalkan, DBMS akan membuat semua sistem operasional dibatalkan
dalam transaksi, lalu mengembalikannya ke database dalam keadaan seperti semua
saat sebelum transaksi tersebut dimulai. Dalam DBMS, setiap transaksi yang ada
rentan terhadap kegagalan dikarenakan beberapa faktor. Faktor kegagalan yang biasa
terjadi adalah :

4
5

a. Transaction Failure
Transaction failure merupakan kegagalan yang diakibatkan oleh suatu
transaksi yang diinput tidak bisa lagi dilanjutkan atau transaksi tersebut tidak
bisa lagi dikelola. Hal ini bisa diakibatkan oleh logical error maupun system
error.
b. System Crash
System Crash merupakan sebuah kegagalan sistem yang terganggu oleh faktor
eksternal seperti terjadinya error pada operating system.
c. Disk Failure
Disk Failure merupakan sebuah kegagalan transaksi yang berasal dari
rusaknya hard drive dalam penampungan penyimpanan data untuk kegunaan
akses data atau processing.

Transaksi juga diisolasi, yang mengartikan bahwa sebuah perubahan yang


dikerjakan oleh suatu transaksi tidak dapat diketahui oleh transaksi lainnya, sampai
transaksi tersebut dilakukan. Isolasi tersebut membantu untuk pencegahan sebuah
konflik antara transaksi satu dan transaksi lainnya.

2.2 Properti Transaksi Database


Terdapat properti-properti yang menjamin bahwa transaksi dapat dilaksanakan
dengan baik yang dikenal sebagai ACID (Atomicity, Consistency, Isolation,
Durability).
a. Atomicity
Atomicity menjamin bahwa sebuah transaksi dianggap sebagai suatu kesatuan
yang utuh, jika suatu transaksi dimulai maka seluruh operasi yang terkait
dengan transaksi tersebut harus selesai dengan sukses atau tidak akan
dilakukan sama sekali, tidak ada keadaan di mana hanya sebagian dari operasi
transaksi yang berhasil dieksekusi.
b. Consistency
6

Jika basis data pada awalnya dalam keadaan konsisten, maka pelaksanaan
transaksi dengan sendirinya juga harus meninggalkan basis data tetap dalam
status konsisten. Jika transaksi melanggar integritas data atau aturan bisnis,
maka transaksi tersebut harus diabaikan atau dibatalkan untuk menjaga
konsistensi.
c. Isolation
Isolasi mengacu pada tingkat terisolasi atau terpisahnya satu transaksi dengan
yang lainnya yang sedang diproses secara bersamaan, transaksi yang sedang
berjalan tidak boleh saling mengganggu satu sama lain, isolasi dapat
diimplementasikan menggunakan teknik seperti locking untuk menghindari
anomali.
d. Durability
Setelah transaksi dilakukan, maka perubahan yang diakibatkan tidak akan
hilang atau bertahan lama, sekalipun adanya kegagalan sistem, durability
biasanya dicapai dengan menyimpan perubahan ke penyimpanan persisten
seperti disk.
7

2.3 Fungsi pada Transaksi Database


Transaksi pada database tentunya memiliki alur yang harus dilalui untuk
mengelola setiap transaksi yang ada. Berikut merupakan alur flowchart transaksi
database :

Gambar 2. 1 Diagram State Transaksi

(Sumber: https://repository.unikom.ac.id/65140/)

Diagram di atas menjelaskan transaksi akan dimulai dalam keadaan state


active. Saat berada pada statement terakhir, transaksi akan masuk ke dalam kondisi
state partially committed. Dalam kondisi tersebut, transaksi telah selesai diproses
tetapi masih bisa dibatalkan (abort) jikalau transaksi tersebut masuk ke dalam state
aborted, karena output yang asli masih terdapat dalam penyimpanan sementara,
kesalahan pada hardware berpengaruh terhadap keberhasilan proses transaksi.
Setelah proses di atas berjalan, berikutnya sistem basis data akan menuliskan
informasi-informasi yang dibutuhkan ke dalam disk, informasi tersebut menjelaskan
bahwa jika terjadi sebuah kesalahan atau kegagalan sistem, maka transaksi dapat
dibuat kembali. Pada saat informasi terakhir telah tertulis, berikutnya transaksi masuk
ke dalam kondisi state committed.
Setiap kerusakan hardware maupun kesalahan logika yang terjadi pada
transaksi akan masuk ke dalam state failed setelah pemeriksaan yang dilakukan oleh
sistem, lalu terdeteksi bahwa transaksi tersebut tidak dapat diproses dengan normal.
Jika berada pada kondisi ini, maka transaksi harus di rollback, lalu memasuki kondisi
pembatalan transaksi (state aborted). Terdapat dua opsi yang dapat dilakukan oleh
8

sistem, yaitu mengulangi transaksi (restart transaction) atau menghapus transaksi


(kill the transaction).
Terdapat beberapa fungsi atau command yang memungkinkan pengguna untuk
melakukan operasi-operasi pada transaksi database. Beberapa diantaranya adalah :
a. START TRANSACTION/BEGIN
Start Transaction atau Begin merupakan sintaks pada transaksi database yang
digunakan untuk memulai suatu transaksi. Transaksi pada database selalu
diawali dengan start transaction atau begin dan diakhiri dengan commit atau
rollback yang menandakan transaksinya berhasil dan perubahannya disimpan
secara permanen atau gagal dan kondisi tabel kembali ke kondisi sebelum
terjadinya transaksi. Penulisan sintaksnya adalah sebagai berikut.
start transaction;
b. COMMIT
Commit merupakan sintaks untuk menyimpan perubahan yang telah dilakukan
dalam transaksi secara permanen. Jika suatu transaksi tidak diakhiri dengan
commit lalu sesi database ditutup, maka perubahan yang dibuat dalam
transaksi tidak akan tersimpan. Penulisan sintaksnya adalah sebagai berikut.
commit;
c. ROLLBACK
Rollback merupakan sintaks untuk kembali ke kondisi awal tabel sebelum
dilakukannya transaksi. Jika kita menggunakan perintah rollback pada
transaksi, maka perubahan yang telah dilakukan pada transaksi tidak akan
tersimpan. Rollback biasanya digunakan jika terdapat suatu kesalahan pada
suatu baris di dalam transaksi. Perlu diketahui bahwa rollback hanya akan
berlaku pada sintaks DML dalam transaksi seperti insert, update dan delete.
Sintaks DDL memiliki commit secara otomatis sehingga perubahan yang
dibuat dengan sintaks DDL seperti create, alter atau drop akan tersimpan
secara permanen meskipun transaksinya belum di-commit. Penulisan
sintaksnya adalah sebagai berikut.
9

rollback;
d. SAVEPOINT
Savepoint merupakan sintaks untuk membuat titik pada kondisi tertentu dalam
transaksi sehingga ketika di-rollback, tabel tidak kembali ke kondisi awal,
melainkan ke kondisi dimana savepoint dibuat. Untuk membuat savepoint
pada transaksi, kita cukup menulis sintaks savepoint nama_savepoint;.
Untuk mengembalikan data ke kondisi sebelum savepoint, sintaksnya adalah
sebagai berikut.
rollback to nama_savepoint;

2.5 Isolation Level


Isolation level merupakan tingkatan-tingkatan isolasi atau keamanan pada
transaksi. Adanya isolation level memenuhi aspek Isolation pada ACID. Dengan
adanya isolation, transaksi dari berbagai user tidak akan tumpang tindih dan
menyebabkan terjadinya anomali pada transaksi. Beberapa anomali yang dapat terjadi
dalam transaksi adalah sebagai berikut.
a. Dirty Read
Dirty read terjadi ketika user lain dapat melihat perubahan data pada transaksi
yang belum di-commit.
b. Non-repeatable Read
Non-repeatable read terjadi ketika hasil kueri yang sama pada satu sesi
menunjukkan hasil yang berbeda.
c. Phantom Read
Phantom read terjadi ketika user dapat mengakses dan memanipulasi data
yang sebelumnya tidak ada pada transaksi sebelumnya.

Dalam transaksi pada database, terdapat 4 isolation level atau tingkat isolasi
dengan kelebihan dan anomali masing-masing, diantaranya adalah:
10

a. READ-UNCOMMITTED
Read-uncommitted merupakan tingkat paling rendah diantara isolation level
lainnya. Pada tingkatan ini, user lain dapat mengakses dan mengubah data
yang sedang diproses meskipun belum di-commit sehingga tidak menutup
kemungkinan terjadinya dirty read, non-repeatable read maupun phantom
read. Untuk mengubah tingkat isolasi pada suatu sesi di MySQL menjadi
read-uncommitted, gunakan sintaks berikut.
set session tx_isolation=’read-uncommitted’;

Gambar 2. 2 Contoh Read-Uncommitted Sesi 1

Gambar 2. 3 Contoh Read-Uncommited Sesi 2


11

Dari contoh tersebut, dapat dilihat bahwa meskipun pada sesi pertama transaksi
belum di-commit, perubahan yang dilakukan pada transaksi dapat dilihat oleh user
pada sesi kedua.
b. READ-COMMITTED
Read-committed merupakan tingkat isolasi yang lebih tinggi dibanding read-
uncommitted dimana user lain hanya dapat mengakses data yang sudah di-
commit. Isolation level ini menanggulangi anomali dirty read pada isolation
level sebelumnya. Untuk mengubah tingkat isolasi pada suatu sesi di MySQL
menjadi read-committed, gunakan sintaks berikut.
set session tx_isolation=’read-committed’;

Gambar 2. 4 Contoh Read-Committed Sesi 1

Gambar 2. 5 Contoh Read-Committed Sesi 2


12

Dari contoh tersebut, dapat dilihat bahwa sesi sesi kedua tidak dapat melihat
perubahan transaksi yang belum di-commit pada sesi pertama.

Gambar 2. 6 Contoh Output Sesi 2 Setelah Commit pada Sesi 1

Meskipun tidak terjadi dirty read pada sesi kedua, non-repeatable


read tetap terjadi pada tingkat isolasi ini. Hal ini dilihat dari bedanya output
fungsi select pada sesi kedua.

c. REPEATABLE-READ
Repeatable-read merupakan tingkat isolasi dimana tiap user tidak dapat
melihat perubahan yang dilakukan oleh user lainnya dan merupakan tingkat
isolasi default pada MySQL. Pada repeatable-read, user pada sesi lain tidak
dapat melihat perubahan yang sudah dilakukan meskipun sudah di-commit.
13

Hal ini menanggulangi anomali pada tingkat sebelumnya yaitu adanya non-
repeatable read. Untuk mengubah tingkat isolasi pada suatu sesi di MySQL
menjadi repeatable-read, gunakan sintaks berikut.
set session tx_isolation=’repeatable-read’;

Gambar 2. 7 Contoh Repeatable-Read Sesi 1


14

Gambar 2. 8 Contoh Repeatable-Read Sesi 2

Pada contoh tersebut, dapat dilihat bahwa output pada sesi kedua tidak
berubah meskipun perubahan sudah di-commit pada sesi pertama. Namun, hal
tersebut tidak menutup kemungkinan terjadinya phantom read seperti contoh di
bawah.
15

Gambar 2. 9 Contoh Phantom Read

Pada contoh di atas, data nasabah dengan no_rek 6 dapat dimanipulasi oleh user
pada sesi 2 meskipun sebelumnya data tersebut tidak ada dalam sesi 2.

d. SERIALIZABLE
Serializable merupakan tingkat isolasi tertinggi diantara tingkat isolasi
lainnya. Pada tingkat isolasi ini, user lain tidak dapat memodifikasi data yang
sedang kita akses dalam transaksi hingga transaksi selesai. Untuk mengubah
tingkat isolasi pada suatu sesi di MySQL menjadi serializable, gunakan
sintaks berikut.
set session tx_isolation=’serializable’;
16

Gambar 2. 10 Contoh Serializable Sesi 1

Gambar 2. 11 Contoh Serializable Sesi 2

Pada contoh di atas, sesi satu mengakses data dengan no_rek 6. Dikarenakan
sesi 1 sedang mengakses data tersebut, sesi 2 harus menunggu hingga sesi 1
menyelesaikan transaksi. Namun, jika terlalu lama, transaksi akan error dan dapat
diakses pada sesi 2 seperti pada gambar 2.15.
BAB III

PENUTUP

3.1 Kesimpulan
Dengan mengadopsi properti-properti ACID, transaksi pada database dapat
dianggap sebagai langkah yang kritis dalam memastikan integritas dan keandalan
data. Aspek atomik menjamin bahwa setiap transaksi dijalankan sebagai satu
kesatuan yang utuh, memberikan keyakinan bahwa seluruh operasi berhasil atau tidak
ada yang dijalankan sama sekali. Konsistensi memastikan bahwa pelaksanaan
transaksi tidak merusak integritas data atau aturan bisnis yang telah ditetapkan
sebelumnya. Terisolasi menjamin bahwa transaksi berjalan tanpa saling mengganggu
satu sama lain, mencegah anomali dan konflik antara transaksi yang bersamaan.
Terakhir, dengan menjaga durabilitas, perubahan yang terjadi akibat transaksi akan
tetap ada dan stabil, bahkan dalam kondisi kegagalan sistem.

Secara keseluruhan, transaksi pada database tidak hanya serangkaian


perintah, tetapi juga pondasi yang mendukung keandalan dan konsistensi data.
Dengan penerapan properti ACID, transaksi memberikan kepastian bahwa data dalam
basis data tetap terjaga dan dapat diandalkan. Dengan demikian, manajemen transaksi
pada database memiliki peran sentral dalam menjaga integritas dan konsistensi data,
memastikan operasional yang efisien dan terpercaya bagi pengguna dan sistem secara
keseluruhan.

3.2 Saran
Disarankan untuk mempelajari lebih dalam mengenai transaksi pada database
dengan menerapkan praktik terbaik dalam pengelolaan transaksi. Perlunya
meningkatkan inovasi yang ada untuk mendukung terhadap penelitian dan
pengembangan yang mengarah pada perbaikan teknologi, efisiensi, dan keamanan
transaksi akan memainkan peran kunci untuk memenuhi tuntutan di masa mendatang.

17
18

Harapan untuk peneliti selanjutnya dapat melakukan penelitian dalam perkembangan


teknologi yang mendukung manajemen transaksi pada database. Pengertian yang
lebih mendalam mengenai beberapa aspek lain yang belum dibahas dalam makalah
ini akan menambah kesempurnaan penelitian mengenai manajemen transaksi pada
database.
DAFTAR PUSTAKA

Bauroziq. 2022. Pentingnya Database Transaction. https://caraguna.com/pentingnya-


database-transaction-fundamental-yang-perlu-kamu-ketahui/. 03 Januari 2024.

Bukar. Aisha. 2023. How to Use MySQL Transactions.


https://www.freecodecamp.org/news/how-to-use-mysql-transactions/. 04
Januari 2024.

Didik. Evaristus. M. 2021. Transaction pada Database.


https://sis.binus.ac.id/2021/08/23/transaction-pada-database/. 03 Januari 2024.

Dr. Achmad Solichin. Manajemen Transaksi Database, Youtube, 04 Desember 2020,


https://www.youtube.com/watch?v=tAqKyyQ713E.

Garcia Carlos. 2023. Apa itu Transaksi Basis Data?. https://appmaster.io/id/blog/apa-


itu-transaksi-basis-data. 03 Januari 2024.

Mardiani, Gentisya Tri. Manajemen Transaksi. [Presentasi PowerPoint].


http://repository.unikom.ac.id/id/eprint/65140.

Rifky. Jien. S. 2022. MAKALAH SISTEM BASIS DATA MANAJEMEN


TRANSAKSI dalam DATABASE. Sistem Informasi STMIK Bina Patria. 03
Januari 2024.

Rouse. Margaret. 2011. Commit.


https://www.techopedia.com/definition/16/commit#:~:text. 04 Januari 2024.

Santoso. B. 2012. Membangun Sistem Basis Data dengan OracleXE. Yogyakarta.


Penerbit Andi.

Shukla. Mrudav. 2022. Understanding Transaction Isolation Levels in MySQL.


https://decentro.tech/blog/decoding-isolation-levels-in-mysql/. 07 Januari
2024.

19
20

Transaction. 2016. https://elektro.um.ac.id/wp-content/uploads/2016/04/Basis-Data-


Modul-10-Transaksi.pdf. 04 Januari 2024.
LAMPIRAN I

PRAKTIKUM

a. COMMIT
Misalnya terdapat tabel yang berisi data tabungan nasabah. Seorang nasabah
bernama Asep ingin mengirim uang sebesar 200 kepada Agus melalui ATM.
Proses yang terjadi pada database adalah sebagai berikut.

start transaction;
update nasabah set saldo = saldo-200 where no_rek=1;
update nasabah set saldo = saldo+200 where no_rek=2;

Jika pada akhir transaksi tidak kita masukkan perintah commit, maka hasil
yang ditampilkan hanya hasil sementara. Jika sesi dihentikan lalu tabel
ditampilkan, maka tidak akan terjadi perubahan pada tabel.

start transaction;
update nasabah set saldo = saldo-200 where no_rek=1;
update nasabah set saldo = saldo+200 where no_rek=2;
commit;
select * from nasabah;
Output dari kodingan di atas adalah sebagai berikut.

21
22

b. ROLLBACK
start transaction;
insert into nasabah (nama,saldo) values (‘Suryo’,650);
delete from nasabah where no_rek=1;
rollback;
select * from nasabah;

Output dari kodingan di atas adalah sebagai berikut.

Dapat dilihat setelah kita menggunakan rollback, perubahan pada transaksi


tidak disimpan.

c. SAVEPOINT
start transaction;
insert into nasabah (nama,saldo) values (‘Suryo’,650);
update nasabah set saldo = saldo-300 where no_rek=2;
savepoint s1;
delete nasabah where no_rek=1;
23

update nasabah set saldo = saldo+300 where no_rek=3;


rollback to s1;
commit;
select * from nasabah;

Output dari kodingan di atas adalah sebagai berikut.

Dari hasil output di atas, hasil yang ditampilkan adalah tabel nasabah dengan
perubahan yang dilakukan pada transaksi sampai savepoint s1. Perubahan setelah
savepoint tersebut tidak disimpan.
LAMPIRAN II

SOAL DAN JAWABAN PRAKTIKUM

SOAL
1. Buatlah tabel buku seperti berikut.

Lalu masukkan data seperti berikut.

2. Tambahkan data pada tabel buku seperti berikut menggunakan transaksi.


Nama Buku = Little Habits
Harga = 85000
Stok = 15

3. Tampilkan output dari kodingan berikut.


start transaction;
delete from buku where id=2;
update buku set stok = stok+20 where id=1;
rollback;
select * from buku;

4. Tampilkan dan jelaskan output dari kodingan berikut.


start transaction;
alter table buku change harga harga_buku int(20);
rollback;
select * from buku;

24
25

5. Tampilkan output dari kodingan berikut.


start transaction;
update buku set stok = stok-7 where id=2;
savepoint sp1;
delete from buku where id=3;
savepoint s2;
insert into buku (nama_buku,harga_buku,stok) values ('U Do
U',78000,49);
savepoint s3;
update buku set harga_buku = harga_buku-15000 where id=4;
rollback to s2;
select * from buku;

JAWABAN
1.
26

2.

3.
27

4.

Perubahan tetap tersimpan pada tabel buku dikarenakan perubahan yang


dilakukan merupakan DDL yang memiliki commit secara otomatis sehingga
perubahan akan tetap tersimpan secara permanen walaupun transaksi di-
rollback

5.
28

Anda mungkin juga menyukai