Rollback pada Database Si "Undo" yang Menyelamatkan
13 Juni 2025 23:34 WIB
Kalau kamu pernah nge-klik undo pas ngetik di Word atau WhatsApp, nah, rollback di database itu mirip-mirip gitu—cuma lebih keren dan penting banget buat data-data kritis.
Bayangin kamu lagi update data penting di database, eh tiba-tiba listrik mati atau aplikasi crash. Tanpa rollback, data bisa kacau balau kayak kamar anak kos. Nah, di sinilah rollback jadi pahlawan!
Apa Itu Rollback?
Rollback adalah proses mengembalikan database ke keadaan sebelumnya sebelum terjadi perubahan. Jadi kalau ada transaksi yang gagal atau batal, database bisa balik ke kondisi stabil tanpa ada data corrupt.
Kenapa Rollback Penting?
-
Jaga Data Tetap Konsisten – Misal kamu transfer uang, nominal harus berkurang di satu akun dan nambah di akun lain. Kalau salah satu gagal, rollback batalin semuanya biar gak ada yang kelebihan/kurang.
-
Hindari Kesalahan Manusia – Kadang admin salah update/delete data. Dengan rollback, bisa kembali ke titik sebelum salah.
-
Tangani Error Sistem – Database crash, server mati, atau bug bisa bikin transaksi gagal. Rollback memastikan gak ada data setengah jadi.
Gimana Cara Kerja Rollback?
Database punya fitur ACID (Atomicity, Consistency, Isolation, Durability) yang bikin rollback mungkin.
-
Database Mencatat Perubahan – Sebelum data diubah, database nyimpen dulu kondisi awalnya (disebut transaction log).
-
Kalau Gagal, Kembali ke Log – Jika ada error, sistem pakai log tersebut untuk mengembalikan data ke versi sebelumnya.
-
Commit vs Rollback –
-
Commit = Simpan perubahan permanen.
-
Rollback = Batalkan perubahan, balikin seperti semula.
-
Contoh Rollback di SQL
BEGIN TRANSACTION; -- Mulai transaksi
UPDATE users SET saldo = saldo - 100000 WHERE id = 1; -- Kurangi saldo
UPDATE users SET saldo = saldo + 100000 WHERE id = 2; -- Tambah saldo
-- Kalau semuanya beres:
COMMIT; -- Simpan perubahan
-- Kalau ada error:
ROLLBACK; -- Batalkan semua perubahan
Kapan Rollback Dibutuhkan?
-
Transaksi Gagal (misal koneksi putus di tengah jalan).
-
Human Error (salah hapus data penting).
-
Validasi Gagal (misal saldo kurang pas transfer).
Rollback vs Backup: Bedanya Apa?
-
Rollback = Membatalkan perubahan baru saja terjadi (realtime).
-
Backup = Restore data dari cadangan lama (kalau data sudah terlanjur rusak parah).
Tips Biar Rollback Efektif
-
Gunakan Transaction – Selalu wrap operasi penting dalam
BEGIN TRANSACTION
danCOMMIT/ROLLBACK
. -
Test Dulu di Development – Jangan coba-coba rollback langsung di production.
-
Monitor Log – Pantau transaction log biar tahu kapan rollback terjadi.
Rollback itu kayaa "tombol ajaib" buat database. Dia bisa bikin kita tenang karena tahu kalau ada kesalahan, semua bisa dikembaliin. Jadi, jangan lupa pake fitur ini biar datamu aman!
Kalau kamu pernah nemuin kasus seru soal rollback, share di komen ya!