BAB 15: Transaction MySQL – Konsep, START TRANSACTION, COMMIT, ROLLBACK, dan ACID

BAB 15: Transaction MySQL – Konsep, START TRANSACTION, COMMIT, ROLLBACK, dan ACID

Transaction adalah sekumpulan perintah SQL yang dijalankan sebagai satu kesatuan proses. Dalam transaction, semua perintah harus berhasil agar perubahan disimpan ke database. Jika salah satu perintah gagal, seluruh proses dapat dibatalkan.

Transaction sangat penting pada sistem yang membutuhkan konsistensi data, seperti:

  • Sistem perbankan
  • Aplikasi keuangan
  • Sistem pemesanan
  • Sistem akademik

2. START TRANSACTION

Perintah START TRANSACTION digunakan untuk memulai sebuah transaksi.

Contoh:

START TRANSACTION;

Setelah perintah ini dijalankan, setiap perubahan data belum tersimpan secara permanen sampai dilakukan COMMIT.


3. COMMIT

COMMIT digunakan untuk menyimpan seluruh perubahan data secara permanen ke database.

Contoh:

COMMIT;

Jika semua perintah dalam transaction berhasil, gunakan COMMIT agar data tersimpan.


4. ROLLBACK

ROLLBACK digunakan untuk membatalkan seluruh perubahan yang terjadi selama transaction berlangsung.

Contoh:

ROLLBACK;

Perintah ini mengembalikan data ke kondisi sebelum transaction dimulai.


5. Contoh Penggunaan Transaction

START TRANSACTION;

INSERT INTO rekening (nama, saldo)
VALUES ('Andi', 1000000);

UPDATE rekening
SET saldo = saldo - 500000
WHERE nama = 'Andi';

ROLLBACK;

Jika ingin menyimpan perubahan:

COMMIT;

6. Konsep ACID

ACID adalah prinsip utama dalam transaction database untuk menjamin keandalan data.

a. Atomicity

Semua perintah dalam transaction harus berhasil seluruhnya atau gagal seluruhnya.

b. Consistency

Transaction membawa database dari satu kondisi valid ke kondisi valid lainnya.

c. Isolation

Transaction yang berjalan bersamaan tidak saling mengganggu.

d. Durability

Perubahan data yang sudah di-COMMIT tidak akan hilang meskipun terjadi kegagalan sistem.


7. Transaction dan Storage Engine

Catatan Penting:
Transaction hanya berjalan dengan baik pada storage engine seperti InnoDB. Engine seperti MyISAM tidak mendukung transaction.


Kesimpulan

Transaction adalah mekanisme penting dalam MySQL untuk menjaga konsistensi dan keandalan data. Dengan memahami START TRANSACTION, COMMIT, ROLLBACK, serta konsep ACID, pengguna dapat membangun sistem database yang aman dan profesional, terutama untuk aplikasi berskala besar.