Autograder Gudang Bahan Teazzi
Praktikum Pemrograman II · Pertemuan 5Maskot praktikum

Autograder

Mini Project: Gudang Bahan Teazzi

Tempel isi db_bahan.py dan main.py, atau buka file .zip-mu, lalu klik Nilai. Grader memanggil setiap fungsimu di database teazzi.db yang baru, lalu memeriksa isi tabelnya sendiri: data tersimpan, WHERE tepat sasaran, dan query aman. Semua berjalan di browsermu, kodenya tidak dikirim ke mana pun.

Menyiapkan Python dan SQLite di browser (±14 MB, sekali saja)…
Ilustrasi asisten praktikum menunjuk ke arah judul

Kode kamu

Belum dinilai

Hasil akan muncul di sini: nilai total dari 100, poin mana yang lolos, dan log setiap pengujian (fungsi apa yang dipanggil, apa yang dikembalikan, dan isi tabel bahan menurut grader) supaya kamu bisa melihat di mana kodenya salah.

Ilustrasi asisten praktikum menunjuk

Supaya bisa dinilai otomatis

  1. Dua file dalam satu folder: db_bahan.py berisi semua urusan database (variabel dan fungsi saja), main.py memanggilnya lewat import db_bahan tanpa menulis SQL. Jangan pakai input().
  2. NAMA_DB = "teazzi.db", koneksi() mengembalikan sqlite3.connect(NAMA_DB), dan buat_tabel() menjalankan CREATE TABLE IF NOT EXISTS bahan dengan kolom id INTEGER PRIMARY KEY AUTOINCREMENT, nama TEXT NOT NULL, satuan TEXT NOT NULL, stok INTEGER NOT NULL.
  3. tambah_bahan(nama, satuan, stok), lihat_bahan() → list tuple (id, nama, satuan, stok) urut id, cari_bahan(id_bahan) → satu tuple atau None, ubah_stok(id_bahan, stok_baru) dan hapus_bahan(id_bahan) → return cursor.rowcount. Setiap perubahan data di-commit().
  4. stok_menipis(batas) → list tuple (nama, stok) yang stoknya di bawah batas, urut id.
  5. Semua nilai masuk lewat tanda tanya ? dan tuple. Jangan menyusun SQL dengan f-string, %, .format(), atau +.
  6. Variabel global total_transaksi = 0 naik 1 setiap kali tambah_bahan, ubah_stok, atau hapus_bahan dipanggil (pakai keyword global).
  7. Dictionary PADANAN_JDBC dengan kunci "koneksi", "query_aman", dan "hasil_select" berisi nama padanan Java (JDBC) untuk sqlite3.connect(), execute() dengan ?, dan hasil fetchall().
PoinYang dinilaiBobot