1. π Pengertian Transaksi Database
Transaksi database adalah sekumpulan operasi (query) yang dijalankan sebagai satu kesatuan.
Jika satu gagal β semua dibatalkan (rollback).
Jika semua berhasil β disimpan (commit).
2. π― Tujuan Transaksi
- Menjaga konsistensi data
- Menghindari kesalahan saat proses multi-query
- Menjamin integritas database
3. π§ Konsep ACID
6
π ACID:
- Atomicity β semua atau tidak sama sekali
- Consistency β data tetap valid
- Isolation β transaksi tidak saling ganggu
- Durability β data tersimpan permanen
4. π Alur Transaksi
7
π Tahapan:
- BEGIN / START TRANSACTION
- Proses query
- COMMIT (berhasil)
- ROLLBACK (gagal)
5. π¦ Contoh Kasus Transaksi
Transfer Uang:
- Kurangi saldo A
- Tambah saldo B
β‘οΈ Harus berhasil keduanya atau gagal semuanya
6. π οΈ Perintah SQL Transaksi
START TRANSACTION;UPDATE rekening SET saldo = saldo - 100 WHERE id = 1;
UPDATE rekening SET saldo = saldo + 100 WHERE id = 2;COMMIT;
π Jika gagal:
ROLLBACK;
7. β οΈ Tanpa Transaksi (Bahaya!)
6
β‘οΈ Bisa menyebabkan:
- Data tidak konsisten
- Saldo tidak seimbang
8. π» Implementasi PHP + MySQL
π Contoh Transaksi
<?php
$conn = mysqli_connect("localhost","root","","bank");// Mulai transaksi
mysqli_begin_transaction($conn);try {
mysqli_query($conn, "UPDATE rekening SET saldo = saldo - 100 WHERE id=1");
mysqli_query($conn, "UPDATE rekening SET saldo = saldo + 100 WHERE id=2"); // Simpan perubahan
mysqli_commit($conn);
echo "Transaksi berhasil";} catch (Exception $e) {
mysqli_rollback($conn);
echo "Transaksi gagal";
}
?>
9. π Transaksi dengan Validasi
<?php
$saldo = mysqli_fetch_assoc(mysqli_query($conn, "SELECT saldo FROM rekening WHERE id=1"));if($saldo['saldo'] >= 100){
mysqli_begin_transaction($conn); mysqli_query($conn, "UPDATE rekening SET saldo = saldo - 100 WHERE id=1");
mysqli_query($conn, "UPDATE rekening SET saldo = saldo + 100 WHERE id=2"); mysqli_commit($conn);
}else{
echo "Saldo tidak cukup";
}
?>
10. π§© Jenis Transaksi
- Manual Transaction
- Auto Commit (default MySQL)
- Distributed Transaction
11. βοΈ Auto Commit
7
SET autocommit = 0;
12. π§ Studi Kasus Aplikasi
Sistem Penjualan:
- Insert transaksi
- Update stok
β‘οΈ Harus dalam 1 transaksi
13. π§ͺ Latihan Sederhana
π― Latihan 1:
Buat tabel:
- rekening (id, saldo)
π― Latihan 2:
Simulasikan:
- Transfer saldo
π― Latihan 3:
Gunakan:
- COMMIT
- ROLLBACK
14. π Tugas Praktikum
π― Tugas: Sistem Penjualan
8
π Ketentuan:
- Buat tabel:
- Produk (stok)
- Transaksi
- Saat transaksi:
- Kurangi stok
- Simpan transaksi
- Gunakan transaksi database
15. π― Kesimpulan
- Transaksi menjaga konsistensi data
- ACID adalah konsep utama
- COMMIT & ROLLBACK sangat penting
- Wajib digunakan untuk proses penting
16. π Diskusi
- Apa itu transaksi database?
- Jelaskan ACID!
- Apa fungsi COMMIT?
- Apa itu ROLLBACK?