Transaction: BEGIN, COMMIT, ROLLBACK, SAVEPOINT, Atomicity & All-or-Nothing
PERTEMUAN 12
Transaction: BEGIN, COMMIT, ROLLBACK, SAVEPOINT, Atomicity & All-or-Nothing
Nama: Nyken Sekar Ayuningtyas
NPM: 24781020
Program Studi: Manajemen Informatika 4A
Tanggal: 2 Juni 2026
Abstrak / Pendahuluan
Pada perkuliahan Pemrograman SQL Lanjut minggu ke-12 ini, fokus kegiatan praktikum adalah memahami konsep dasar dan penerapan Transaction dalam pengelolaan basis data. Transaction merupakan mekanisme pada DBMS yang digunakan untuk mengelompokkan beberapa perintah DML, seperti INSERT, UPDATE, dan DELETE, agar dijalankan sebagai satu unit kerja. Dengan adanya transaction, proses perubahan data dapat dikendalikan secara lebih aman karena perubahan tidak langsung disimpan permanen sebelum transaksi diakhiri dengan perintah COMMIT.
Materi ini juga membahas prinsip ACID, terutama bagian Atomicity, yaitu prinsip bahwa seluruh perintah dalam satu transaksi harus berhasil bersama-sama atau gagal bersama-sama. Konsep ini dikenal juga dengan istilah all-or-nothing. Artinya, jika terjadi kesalahan dalam satu bagian transaksi, maka seluruh perubahan dapat dibatalkan agar kondisi database tetap aman dan konsisten.
Pada praktikum ini, beberapa perintah utama yang digunakan adalah BEGIN, COMMIT, ROLLBACK, SAVEPOINT, dan ROLLBACK TO. Perintah-perintah tersebut digunakan untuk memulai transaksi, menyimpan perubahan, membatalkan perubahan, serta melakukan pembatalan sebagian pada transaksi yang sedang berjalan.
Pembahasan Inti
3.1 Transaction dengan BEGIN dan COMMIT
Transaction dimulai menggunakan perintah BEGIN. Setelah transaksi dimulai, perintah DML dapat dijalankan. Jika semua perintah sudah benar dan ingin disimpan secara permanen, maka transaksi ditutup menggunakan COMMIT.
Contoh penerapan BEGIN dan COMMIT:
BEGIN;
INSERT INTO mahasiswa(npm, nama, idprodi, idstatusaka, thn_masuk)
VALUES ('9990001', 'Andi Trans', 1, 1, 2025);
COMMIT;
Analisis / Pembahasan:
Query di atas digunakan untuk menambahkan data mahasiswa baru ke dalam tabel mahasiswa. Perintah BEGIN menandakan bahwa proses transaksi dimulai. Setelah itu, data mahasiswa baru dimasukkan menggunakan perintah INSERT. Karena transaksi diakhiri dengan COMMIT, maka data tersebut akan tersimpan secara permanen di dalam database. Hal ini menunjukkan bahwa COMMIT berfungsi sebagai konfirmasi akhir bahwa perubahan data sudah benar dan boleh disimpan.
3.2 Transaction dengan BEGIN dan ROLLBACK
Selain menyimpan perubahan, transaction juga dapat digunakan untuk membatalkan perubahan. Perintah yang digunakan untuk membatalkan transaksi adalah ROLLBACK.
Contoh penerapan BEGIN dan ROLLBACK:
BEGIN;
INSERT INTO mahasiswa(npm, nama, idprodi, idstatusaka, thn_masuk)
VALUES ('9990010', 'Nama Sementara', 1, 1, 2025);
ROLLBACK;
Analisis / Pembahasan:
Pada query tersebut, data mahasiswa baru memang dimasukkan setelah transaksi dimulai. Namun, karena transaksi diakhiri dengan ROLLBACK, maka data tersebut tidak akan tersimpan ke dalam database. Perintah ROLLBACK mengembalikan database ke kondisi sebelum transaksi dijalankan. Hal ini sangat berguna apabila terjadi kesalahan input data atau perubahan yang tidak sesuai.
3.3 Konsep Atomicity dalam Multi-Statement Transaction
Atomicity merupakan salah satu karakteristik penting dalam transaction. Atomicity berarti semua perintah dalam satu transaksi dianggap sebagai satu kesatuan. Jika semua berhasil, maka perubahan dapat disimpan. Namun, jika ada kesalahan, maka seluruh perubahan dapat dibatalkan.
Contoh transaction dengan beberapa perintah:
BEGIN;
INSERT INTO mahasiswa(npm, nama, idprodi, idstatusaka, thn_masuk)
VALUES ('9991001', 'Mhs1', 1, 1, 2025);
INSERT INTO mahasiswa(npm, nama, idprodi, idstatusaka, thn_masuk)
VALUES ('9991002', 'Mhs2', 1, 1, 2025);
INSERT INTO mahasiswa(npm, nama, idprodi, idstatusaka, thn_masuk)
VALUES ('9991003', 'Mhs3', 1, 1, 2025);
COMMIT;
Analisis / Pembahasan:
Pada contoh di atas, terdapat tiga perintah INSERT yang dijalankan dalam satu transaksi. Karena transaksi ditutup dengan COMMIT, maka ketiga data mahasiswa akan tersimpan. Jika transaksi tersebut diganti dengan ROLLBACK, maka semua data yang dimasukkan akan dibatalkan. Inilah yang dimaksud dengan prinsip all-or-nothing, yaitu semua berhasil atau semua dibatalkan.
3.4 SAVEPOINT dan ROLLBACK TO
SAVEPOINT digunakan untuk membuat titik aman di dalam transaksi. Jika terjadi kesalahan setelah titik tersebut, maka transaksi dapat dikembalikan ke titik tertentu menggunakan ROLLBACK TO.
Contoh penerapan SAVEPOINT dan ROLLBACK TO:
BEGIN;
INSERT INTO mahasiswa(npm, nama, idprodi, idstatusaka, thn_masuk)
VALUES ('9992001', 'Tersimpan', 1, 1, 2025);
SAVEPOINT sp1;
INSERT INTO mahasiswa(npm, nama, idprodi, idstatusaka, thn_masuk)
VALUES ('9992002', 'Dibatalkan', 1, 1, 2025);
ROLLBACK TO sp1;
COMMIT;
Analisis / Pembahasan:
Pada query tersebut, data pertama dengan NPM 9992001 dimasukkan sebelum SAVEPOINT sp1, sedangkan data kedua dengan NPM 9992002 dimasukkan setelah SAVEPOINT sp1. Ketika perintah ROLLBACK TO sp1 dijalankan, maka perubahan setelah titik sp1 akan dibatalkan. Artinya, data 9992002 tidak tersimpan, sedangkan data 9992001 tetap tersimpan setelah transaksi diakhiri dengan COMMIT.
Studi Kasus / Implementasi Sederhana
4.1 Transaksi UPDATE dan ROLLBACK
Selain untuk INSERT, transaction juga dapat digunakan pada perintah UPDATE. Contohnya adalah saat melakukan perubahan nilai IPK mahasiswa.
BEGIN;
UPDATE mahasiswa
SET ipk = 1.00
WHERE npm = '1501001';
ROLLBACK;
Analisis Studi Kasus:
Pada query tersebut, nilai IPK mahasiswa dengan NPM 1501001 diubah menjadi 1.00. Namun, karena transaksi diakhiri dengan ROLLBACK, maka perubahan tersebut dibatalkan. Dengan demikian, nilai IPK mahasiswa akan kembali seperti sebelum transaksi dijalankan. Hal ini menunjukkan bahwa transaction dapat digunakan untuk menguji perubahan data tanpa langsung menyimpannya secara permanen.
4.2 Transaksi DELETE dan ROLLBACK
Transaction juga dapat digunakan untuk mengamankan proses penghapusan data. Jika data tidak sengaja dihapus, maka perubahan masih bisa dibatalkan selama transaksi belum di-commit.
BEGIN;
DELETE FROM mahasiswa
WHERE npm = '1501001';
ROLLBACK;
Analisis Studi Kasus:
Query tersebut mencoba menghapus data mahasiswa dengan NPM 1501001. Namun, karena transaksi menggunakan ROLLBACK, maka data yang dihapus akan dikembalikan. Hal ini membuktikan bahwa penggunaan transaction sangat membantu dalam mencegah kehilangan data akibat kesalahan perintah DELETE.
4.3 Transaksi Lintas Tabel
Transaction juga dapat digunakan untuk menjalankan perintah pada lebih dari satu tabel. Misalnya, menambahkan data mahasiswa dan dosen dalam satu transaksi.
BEGIN;
INSERT INTO mahasiswa(npm, nama, idprodi, idstatusaka, thn_masuk)
VALUES ('9996001', 'MahasiswaBaru', 1, 1, 2025);
INSERT INTO dosen(nmdosen, gelar, idprodi, idpendidikan)
VALUES ('Dosen X1', 'M.T.', 1, 2);
COMMIT;
Analisis Studi Kasus:
Pada contoh tersebut, proses penambahan data dilakukan pada dua tabel, yaitu tabel mahasiswa dan tabel dosen. Karena kedua perintah berada dalam satu transaksi dan diakhiri dengan COMMIT, maka keduanya akan tersimpan. Jika terjadi kesalahan dan transaksi diakhiri dengan ROLLBACK, maka kedua perubahan tersebut akan dibatalkan secara bersamaan.
Kesimpulan & Refleksi Diri
Melalui praktikum Transaction pada pertemuan ke-12 ini, dapat disimpulkan bahwa transaction memiliki peran penting dalam menjaga keamanan, keteraturan, dan konsistensi data di dalam database. Perintah BEGIN digunakan untuk memulai transaksi, COMMIT digunakan untuk menyimpan perubahan secara permanen, sedangkan ROLLBACK digunakan untuk membatalkan perubahan yang terjadi selama transaksi berlangsung.
Selain itu, perintah SAVEPOINT dan ROLLBACK TO memberikan fleksibilitas dalam membatalkan sebagian transaksi tanpa harus membatalkan seluruh proses. Dengan menggunakan savepoint, perubahan sebelum titik tertentu masih dapat dipertahankan, sedangkan perubahan setelah titik tersebut dapat dibatalkan.
Refleksi pribadi saya pada praktikum ini adalah bagian yang cukup membingungkan berada pada perbedaan antara ROLLBACK dan ROLLBACK TO. Awalnya, kedua perintah tersebut terlihat mirip karena sama-sama digunakan untuk membatalkan perubahan. Namun, setelah dipahami melalui contoh query, saya menyadari bahwa ROLLBACK membatalkan seluruh transaksi, sedangkan ROLLBACK TO hanya membatalkan perubahan setelah savepoint tertentu. Dari praktikum ini, saya menjadi lebih memahami bahwa transaction sangat penting digunakan saat melakukan perubahan data agar kesalahan dapat dicegah dan database tetap berada dalam kondisi yang aman.
Daftar Pustaka
- Modul Praktikum Minggu Ke-12 – Transaction: BEGIN, COMMIT, ROLLBACK, SAVEPOINT, Atomicity & All-or-Nothing, Program Studi Manajemen Informatika, Politeknik Negeri Lampung, 2026.
- SQLite Organization. (2024). Transaction dan SAVEPOINT Database Language Reference. SQLite Official Documentation.
- Dokumentasi SQL Server. Transaction, COMMIT, ROLLBACK, dan SAVE TRANSACTION.
- Hasil praktikum dan pengujian query transaction pada database AKADEMIK minggu ke-12.
Komentar
Posting Komentar