Ruang penulis
← Kembali ke jurnal
Database

Memahami isolation level transaksi database

Pelajari perbedaan Read Committed dan Repeatable Read serta dampaknya pada data yang dibaca bersamaan.

DTim Diary Coding · 09 Sep 2026 · 2 menit baca

Masalah yang muncul saat transaksi berjalan bersamaan

Ketika dua transaksi berjalan pada waktu yang sama, salah satu bisa membaca data yang sedang diubah transaksi lain. Isolation level menentukan seberapa besar transaksi lain boleh saling memengaruhi hasil bacanya.

Read Committed

Level ini hanya mengizinkan transaksi membaca data yang sudah di-commit. Ini adalah default di banyak basis data seperti PostgreSQL dan SQL Server.

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;

BEGIN;
SELECT saldo FROM rekening WHERE id = 1;
-- transaksi lain bisa mengubah dan commit di antara dua SELECT ini
SELECT saldo FROM rekening WHERE id = 1;
COMMIT;

Dua SELECT di atas bisa menghasilkan nilai berbeda karena transaksi lain sempat commit di antaranya. Kondisi ini disebut non-repeatable read.

Repeatable Read

Level ini menjamin baris yang sudah dibaca tidak berubah nilainya selama transaksi berjalan. MySQL dengan InnoDB memakai level ini sebagai default.

SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;

Repeatable Read tetap bisa mengalami phantom read, yaitu baris baru muncul saat query dengan kondisi yang sama diulang.

Serializable

Level paling ketat ini membuat transaksi seolah berjalan satu per satu secara berurutan. Konsistensi paling terjamin, tetapi risiko transaksi harus diulang karena konflik juga meningkat.

Memilih level yang tepat

Level yang lebih ketat memberi konsistensi lebih tinggi tapi mengurangi konkurensi. Gunakan Read Committed untuk kebanyakan operasi harian, dan naikkan ke level lebih ketat hanya pada operasi yang benar-benar sensitif terhadap keakuratan data, seperti perhitungan saldo.

Latihan

Coba jalankan dua transaksi di jendela terpisah menggunakan Read Committed lalu Repeatable Read, dan amati kapan masing-masing melihat perubahan dari transaksi lain.

← Jelajahi catatan lainnya