Transaksi SQL: COMMIT, ROLLBACK, dan ACID buat Analis
Blog/Tutorial SQL/Transaksi SQL: COMMIT, ROLLBACK, dan ACID buat Analis

Transaksi SQL: COMMIT, ROLLBACK, dan ACID buat Analis

BimaBima
·25 Maret 2026·8 menit baca

Penulis

Bima

Bima

Founder & Data Professional

Bagikan

TL;DR

Transaksi SQL adalah sekelompok perintah yang diperlakukan sebagai satu paket: kalau semuanya berhasil, database nyimpen perubahannya lewat COMMIT; kalau ada satu yang gagal, semuanya dibatalin lewat ROLLBACK. Sifat yang dijamin database untuk transaksi disingkat ACID: Atomicity, Consistency, Isolation, Durability. Buat analis, transaksi berguna sebagai pengaman waktu ngejalanin UPDATE atau DELETE di data produksi.

Transaksi SQL adalah sekelompok perintah yang diperlakukan sebagai satu paket: semuanya berhasil bareng, atau semuanya dibatalin bareng.

Kamu mungkin mikir ini urusan developer. Tapi ada satu momen di mana analis butuh banget paham transaksi: saat kamu harus ngejalanin UPDATE atau DELETE di database produksi, dan tangan kamu dingin sebelum tekan Enter.

Transaksi itu tombol undo kamu. Di bawah ini aku jelasin cara pakainya, plus arti ACID pakai bahasa manusia.

Apa itu transaksi SQL?

Transaksi adalah blok perintah yang dijalanin database sebagai satu kesatuan. Kalau semua langkah berhasil, kamu bilang COMMIT dan perubahannya kesimpan. Kalau ada yang gagal, kamu bilang ROLLBACK dan semuanya dibatalin — kayak gak pernah kejadian.

Contoh yang paling gampang: transfer uang.

BEGIN;

UPDATE saldo SET jumlah = jumlah - 500000 WHERE akun_id = 1;
UPDATE saldo SET jumlah = jumlah + 500000 WHERE akun_id = 2;

COMMIT;

Bayangin kalau perintah pertama jalan, terus server mati sebelum perintah kedua. Uang Rp500.000 hilang dari rekening 1 dan gak pernah nyampe rekening 2.

Transaksi nutup lubang itu. Tanpa COMMIT, dua perintah tadi belum permanen. Server mati di tengah? Database otomatis ROLLBACK. Saldo balik utuh.

Apa bedanya COMMIT dan ROLLBACK?

PerintahYang terjadiBisa dibatalin?
BEGINMulai transaksi—
COMMITSimpen semua perubahan permanenNggak
ROLLBACKBatalin semua perubahan sejak BEGIN—
SAVEPOINTBikin titik balik di tengah transaksi—

Kata kuncinya: setelah COMMIT, gak ada jalan mundur. ROLLBACK cuma bisa dipakai selama transaksi masih terbuka.

Catatan penting yang sering bikin kaget: kebanyakan tool SQL nyalain autocommit secara default. Artinya tiap perintah yang kamu tulis langsung di-commit otomatis. Kalau kamu ketik DELETE tanpa BEGIN, datanya langsung hilang.

Gimana analis pakai transaksi sebagai pengaman?

Ini pola yang aku pakai tiap kali harus nyentuh data produksi:

BEGIN;

UPDATE produk SET harga = harga * 1.1 WHERE kategori = 'minyak';

-- cek dulu hasilnya
SELECT nama, harga FROM produk WHERE kategori = 'minyak';

ROLLBACK;  -- ganti jadi COMMIT kalau hasilnya udah bener

Urutannya: buka transaksi, jalanin perubahan, lihat hasilnya, baru putusin.

Di dalam transaksi, hasil SELECT nampilin data setelah perubahan — tapi cuma buat kamu. Orang lain masih lihat data lama. Jadi kamu bisa periksa dengan tenang.

Kalau angkanya aneh, ketik ROLLBACK. Selesai. Gak ada yang rusak.

Cara ini juga jalan buat DELETE, dan di situlah dia paling nyelametin:

BEGIN;

DELETE FROM penjualan WHERE tanggal < '2024-01-01';

SELECT COUNT(*) FROM penjualan;  -- masih masuk akal?

ROLLBACK;

Apa arti ACID?

ACID itu empat jaminan yang database kasih buat tiap transaksi.

A — Atomicity. Semua jadi, atau semua batal. Gak ada kondisi setengah jadi. Ini yang bikin transfer uang aman.

C — Consistency. Setelah transaksi selesai, data tetep patuh sama semua aturan tabel. Kalau kolom stok punya aturan gak boleh negatif, transaksi yang bikin stok jadi -5 bakal ditolak.

I — Isolation. Transaksi yang jalan barengan gak saling ngacak. Kalau kamu lagi ngubah harga produk, dan orang lain lagi baca harga produk yang sama, dia lihat harga lama sampai kamu COMMIT.

D — Durability. Setelah COMMIT, data aman — walaupun listrik mati sedetik kemudian. Database nulis dulu ke disk sebelum bilang "sukses".

Penjelasan teknis tiap sifat ini bisa kamu baca di dokumentasi transaksi PostgreSQL.

Contoh kasus: koreksi harga di toko_berkah

Dataset toko_berkah punya ngulikdata pernah kena masalah harga. Supplier naikin harga minyak goreng 10%, dan tim minta harga jual disesuaikan.

Query yang mau dijalanin:

UPDATE produk SET harga = harga * 1.1 WHERE kategori = 'minyak';

Kelihatan aman. Tapi waktu dijalanin di dalam transaksi dan hasilnya dicek dulu, ketahuan ada 4 produk kena yang harusnya gak kena — gara-gara kategorinya ditulis minyak padahal isinya minyak rem, bukan minyak goreng.

Dari 23 produk yang kena UPDATE, cuma 19 yang bener. Empat sisanya naik harga tanpa alasan.

ROLLBACK. Perbaiki kondisinya jadi lebih spesifik. Jalanin lagi. Cek lagi. Baru COMMIT.

Tanpa transaksi, 4 produk itu udah salah harga di sistem kasir, dan baru ketahuan pas ada pelanggan protes.

SAVEPOINT: titik balik di tengah transaksi

Kalau transaksi kamu panjang, kamu bisa bikin titik simpan di tengah.

BEGIN;

UPDATE produk SET stok = stok - 10 WHERE id = 5;
SAVEPOINT setelah_stok;

UPDATE produk SET harga = 0 WHERE id = 5;  -- ups, salah
ROLLBACK TO setelah_stok;                   -- balik ke titik aman

COMMIT;  -- update stok tetap tersimpan

ROLLBACK TO cuma ngebatalin perubahan setelah savepoint. Update stok yang duluan tetep hidup, dan ikut kesimpan pas COMMIT.

Kesalahan umum soal transaksi

1. Lupa COMMIT. Perubahan gantung, dan baris yang kamu sentuh bisa kekunci. Query orang lain nunggu di belakang kamu.

2. Biarin transaksi kebuka lama. Buka BEGIN terus pergi makan siang? Lock-nya nahan sampai kamu balik. Ini penyebab umum dashboard yang tiba-tiba lemot.

3. Ngandelin autocommit tanpa sadar. Cek setting tool kamu. Kalau autocommit nyala, DELETE tanpa BEGIN langsung permanen.

4. Nganggap ROLLBACK bisa dipakai setelah COMMIT. Gak bisa. Setelah COMMIT, satu-satunya jalan pulang itu restore dari backup.

5. Naruh SELECT berat di dalam transaksi. Makin lama transaksi hidup, makin lama lock-nya nahan. Jalanin query eksplorasi di luar transaksi.

FAQ

Apa itu transaksi SQL dalam satu kalimat?

Transaksi SQL adalah sekelompok perintah yang dianggap satu paket oleh database: semuanya berhasil bareng, atau semuanya dibatalin bareng. Gunanya buat mastiin data gak pernah nyangkut di kondisi setengah jadi. Contoh klasiknya transfer uang, di mana potong saldo pengirim dan tambah saldo penerima harus jadi dua-duanya atau gak sama sekali.

Apa bedanya COMMIT dan ROLLBACK?

COMMIT nyimpen semua perubahan di dalam transaksi secara permanen, dan setelah itu perubahannya gak bisa dibatalin lagi. ROLLBACK ngebatalin semua perubahan sejak transaksi dimulai, dan data balik ke kondisi awal. Kamu pakai COMMIT kalau hasilnya udah bener, dan ROLLBACK kalau ada yang salah atau kamu cuma lagi ngecek.

Apa arti ACID di database?

ACID itu singkatan dari empat jaminan yang dikasih database untuk transaksi. Atomicity: semua jadi atau semua batal. Consistency: data tetep patuh sama aturan tabel setelah transaksi selesai. Isolation: transaksi yang jalan barengan gak saling ngacak. Durability: setelah COMMIT, data aman walaupun servernya mati mendadak.

Analis perlu tau transaksi SQL gak, padahal cuma baca data?

Perlu, dua alasan. Pertama, kadang kamu tetep harus ngejalanin UPDATE atau DELETE buat benerin data, dan transaksi itu jaring pengaman kamu. Kedua, transaksi ngejelasin kenapa query kamu kadang nunggu lama atau ngasih hasil yang beda dari yang kamu lihat 5 menit lalu, soalnya ada transaksi lain yang lagi ngunci baris.

Kalau lupa COMMIT, gimana?

Perubahan kamu gantung, belum keliatan sama orang lain, dan baris yang kamu sentuh bisa kekunci. Kalau koneksinya putus tanpa COMMIT, kebanyakan database otomatis ngejalanin ROLLBACK, jadi perubahannya hilang. Yang lebih bahaya: transaksi yang dibiarin nganggur berjam-jam bisa bikin query orang lain macet karena nunggu lock.

Penutup

Tiga hal yang perlu kamu bawa pulang:

  • Selalu bungkus UPDATE dan DELETE di produksi pakai BEGIN dulu. Cek hasilnya. Baru COMMIT.
  • ACID itu empat janji database: semua-atau-tidak-sama-sekali, patuh aturan, gak saling ganggu, dan tahan mati listrik.
  • Jangan biarin transaksi kebuka lama. Lock-nya nahan query orang lain.

Kalau kamu udah nyaman sama transaksi, konsep berikutnya yang nyambung itu Trigger SQL — kode yang jalan otomatis tiap data berubah, dan yang ikut kena aturan transaksi yang sama.

Buat definisi cepat istilah di artikel ini, cek glosarium SQL. Buat latihan query yang lebih dasar, mulai dari GROUP BY di NgulikSQL.

Coba Langsung

Mau praktek langsung? Mulai latihan SQL gratis

Latihan interaktif, langsung di browser.

Buka NgulikSQL →
Bagikan:
Bima
Ditulis oleh

Bima

Founder & Data Professional

Founder Ngulik Data. Passionate about making data analysis accessible for everyone.

Artikel Terkait

7 SQL Client Gratis Terbaik buat Analis Data (2026)
Tutorial SQL
10 Juli 2026•9 menit baca

7 SQL Client Gratis Terbaik buat Analis Data (2026)

Nggak perlu bayar buat nulis query. Ini 7 SQL client gratis yang beneran dipakai analis, plus kelebihan dan kekurangannya masing-masing.

BimaBima
SQL Style Guide: Cara Nulis Query yang Enak Dibaca Tim
Tutorial SQL
7 Juli 2026•9 menit baca

SQL Style Guide: Cara Nulis Query yang Enak Dibaca Tim

Sepuluh aturan SQL style guide yang bikin query kamu kebaca sama tim — dan sama kamu sendiri 6 bulan lagi. Lengkap dengan contoh sebelum-sesudah.

BimaBima
Take-Home Test SQL Data Analyst: Contoh Soal + Cara Ngerjainnya
Tutorial SQL
4 Juli 2026•11 menit baca

Take-Home Test SQL Data Analyst: Contoh Soal + Cara Ngerjainnya

Contoh soal take-home test SQL yang beneran dipakai perusahaan, dikerjain step by step — dari baca soal, nulis query, sampai nyusun insight yang bikin recruiter nengok.

BimaBima
Kembali ke Blog
Ngulik Data logoNgulik Data

Platform edukasi data lengkap untuk professionals Indonesia. Belajar SQL, Data Analysis, dan lebih banyak lagi dengan praktek langsung dan feedback real-time.

Copyright © 2026 - All rights reserved

LINKS
SupportPricingDatasetBlogAffiliates
LEGAL
Terms of servicesPrivacy policy
Ngulik Data
DatasetLeaderboardBlogStore