Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Transaksi Basis Data: Menjaga Data Tetap Konsisten

Pelajaran 14 dari 14

Akses bersamaan dan pengantar isolasi

Misi: Kasir serentak

Setelah pelajaran ini kamu bisa menyatukan atomisitas, kunci tulis, dan isolasi pada aplikasi kasir yang dipakai beberapa koneksi sekaligus: checkout, tutup kas, dan pilihan BEGIN yang tepat, diperiksa pada skenario berhasil, gagal, sibuk, dan konsistensi akhir.

±17 menitDiperiksa 7 Okt 2026

Materi

Toko kopi kini punya tiga kasir dan satu aplikasi pesanan daring yang menulis ke berkas SQLite yang sama. Setiap penjualan mengurangi stok dan menambah baris penjualan; setiap malam kas ditutup: penjualan yang belum ditutup dijumlahkan ke tabel rekap lalu ditandai ditutup. Sejak kasir bertambah, rekap kadang lebih kecil daripada penjualan yang ditandai ditutup.

Misi ini menggabungkan seluruh kelas. Perubahan yang harus terjadi bersama berada dalam satu transaksi. Transaksi yang membaca lalu menulis dibuka dengan BEGIN IMMEDIATE supaya konflik dengan penulis lain muncul di awal dan bisa dilaporkan sebagai sibuk. Syarat stok ditulis di WHERE dan hasilnya dibaca dari rowcount. Test menjalankan koneksi kedua di tengah fungsimu, lalu memeriksa kondisi awal, hasil berhasil, hasil gagal atau sibuk, dan konsistensi akhir: total rekap sama dengan total penjualan yang ditandai ditutup, dan stok berkurang tepat sebanyak penjualan.

Latihan

0/4 lulus

Misi akhir modul: luluskan minimal 4 dari 4 tugas. Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 2 dari 4

Di PostgreSQL dengan level bawaan Read Committed, laporan menjalankan SELECT SUM(nilai) FROM penjualan dua kali dalam satu transaksi. Di antaranya, kasir lain menambah penjualan lalu commit. Pernyataan mana yang sesuai dokumentasi PostgreSQL?

Pilih satu jawaban

Latihan 4 dari 4

Fungsi menjalankan BEGIN (DEFERRED), SELECT saldo, lalu UPDATE saldo. Koneksi lain juga sedang dalam transaksi yang sudah membaca dan menulis tabel yang sama. Di mana galat database is locked muncul, dan apa yang berubah bila BEGIN IMMEDIATE dipakai?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke