Python · SMA · Lanjutan · Sesi 57
Transaksi atomik
Perpustakaan Mini
SMA · 60 menit · TkinterHari ini kita dapat…
1Menyelesaikan tugas inti: Transaksi atomik.
2Mencoba satu perubahan dan menjelaskan hasilnya.
3Menunjukkan bagian yang dikerjakan sendiri.
Pahami konsepnya
Sebutkan input, aturan, dan akibatnya.
1.Kurangi stok dan catat pinjaman dalam satu transaksi.
2.Jika pencatatan gagal, rollback juga memulihkan stok.
Telusuri kode sebelum menjalankan
Python · contoh konsep yang dapat dijalankan
from support import database
with database() as con:
con.execute("CREATE TABLE books(id INTEGER PRIMARY KEY, title TEXT NOT NULL, stock INTEGER CHECK(stock>=0))")
con.executemany("INSERT INTO books VALUES(?,?,?)", [(1, "Sains", 1), (2, "Seni", 2)])
con.commit()
con.execute("CREATE TABLE loans(id INTEGER PRIMARY KEY, borrower TEXT NOT NULL)")
try:
with con:
con.execute("UPDATE books SET stock=stock-1 WHERE id=1 AND stock>0")
con.execute("INSERT INTO loans(borrower) VALUES(?)", ([None, "Penguji A"][variant],))
except Exception as error:
import sqlite3
if not isinstance(error, sqlite3.IntegrityError):
raise
value = [con.execute("SELECT stock FROM books WHERE id=1").fetchone()[0], con.execute("SELECT COUNT(*) FROM loans").fetchone()[0]]Potongan konsep dari latihan.py · variant 0 = A · variant 1 = B
Codezilla4 / 14Siapkan lab dan proyekmu
VS Code · CPython 3.12.14
1.Ekstrak ZIP, lalu Open Folder di VS Code.
2.Pilih interpreter; buka terminal terintegrasi.
3.Jalankan python latihan.py 0 atau 1.
Simpan salinan proyek sebelum mengubah kode.
Unduh contoh Python (.zip) ↓Codezilla5 / 14Acuan: Perpustakaan Mini
Contoh minimum · dikembangkan melalui tugas proyek.

- Buka contoh proyek sebagai folder terpisah.
- Jalankan python demo.py terlebih dahulu.
- Terapkan tugas pada proyek siswa.
Praktik bersama mentor
Dari lab konsep menuju proyek siswa
1.Prediksi value saat variant = 0.
2.Jalankan kasus A; tunjuk baris penyebab hasilnya.
3.Mentor mencontohkan satu bagian tugas proyek.
Ubah satu hal dahulu; uji sebelum menambah fitur.
Codezilla7 / 14Contoh pengerjaan: kasus A
Sumber dan Output dari eksekusi Python di VS Code.
![Python SMA · Lanjutan sesi 57: Transaksi atomik, kasus A, hasil [1,0]](python-a.png)
- Input memakai variant 0.
- Bandingkan hasil dengan prediksimu.
- Klik gambar untuk membaca detail.
Tugas mandiri pada proyek
Kerjakan di proyekmu; lab adalah acuan konsep.
1.Gabungkan kurangi stok serta catat pinjaman
2.Uji satu input baru; prediksi hasil sebelum menjalankan.
3.Simpan hasil dan jelaskan bantuan yang dipakai.
Simpan sumber .py dan satu catatan hasil uji.
Codezilla9 / 14Bandingkan dengan kasus B
Kasus pembanding untuk konsep sesi yang sama.
![Python SMA · Lanjutan sesi 57: Transaksi atomik, kasus B, hasil [0,1]](python-b.png)
- Input kini memakai variant 1.
- Cari nilai yang berubah atau tetap.
- Jelaskan alasan hasilnya.
Uji dan perbaiki dengan bukti
Tambahkan satu input baru dengan harapan tersendiri.
1.Catat keadaan awal dan hasil yang diharapkan.
2.Jalankan satu kasus sah dan satu kasus gagal.
3.Perbaiki satu penyebab, lalu ulangi kedua uji.
Bukti: input → harapan → aktual → perbaikan.
Codezilla11 / 14Periksa sebelum selesai
1.Tugas inti selesai dan dapat dijalankan ulang.
2.Satu perubahan dicoba dan dijelaskan.
3.Sumber tersimpan; bantuan dicatat.
Jelaskan keputusanmu
1.Input serta data yang saya gunakan adalah…
2.Saya memilih aturan ini karena…
3.Bukti pengujian saya menunjukkan…
Sebelum menutup proyek
Apa yang perlu diuji berikutnya?
Sebutkan satu dugaan dan cara membuktikannya.
← → pindah slide · N catatan mentor · F layar penuh