🔒 Transaksi & ACID
Level: Advanced
Transaksi adalah serangkaian operasi database yang dijalankan sebagai satu kesatuan.
Jika salah satu operasi gagal, maka seluruh transaksi dibatalkan.
Prinsip ACID (Atomicity, Consistency, Isolation, Durability) menjamin keandalan transaksi.
📖 Prinsip ACID
- Atomicity: semua operasi dalam transaksi harus berhasil semua atau gagal semua.
- Consistency: transaksi harus menjaga konsistensi aturan database.
- Isolation: transaksi berjalan seolah-olah sendiri, tanpa gangguan transaksi lain.
- Durability: hasil transaksi yang sudah selesai (commit) akan tersimpan permanen.
🛠️ Praktik Kecil
Contoh transaksi pada sistem perbankan (transfer saldo):
-- Mulai transaksi
START TRANSACTION;
-- Kurangi saldo dari rekening A
UPDATE rekening SET saldo = saldo - 100000 WHERE id = 1;
-- Tambahkan saldo ke rekening B
UPDATE rekening SET saldo = saldo + 100000 WHERE id = 2;
-- Jika semua berhasil, simpan perubahan
COMMIT;
-- Jika ada error, batalkan semua perubahan
ROLLBACK;
👉 Dengan transaksi, kita bisa memastikan bahwa transfer uang tidak menyebabkan saldo hilang atau ganda.
🎮 Mini Challenge
Buat simulasi transaksi pada tabel inventaris:
- Kurangi stok barang tertentu saat ada transaksi keluar.
- Tambahkan stok barang lain saat ada transaksi masuk.
- Gunakan
START TRANSACTION, COMMIT, dan ROLLBACK untuk menjaga konsistensi.
Tugas tambahan: Uji dengan sengaja membuat error di salah satu query untuk melihat bagaimana ROLLBACK bekerja.