# Mesin Rekomendasi Buku SMP · Lanjutan · sesi 1–16 ## Menjalankan di VS Code Buka folder hasil ekstraksi, pilih Python: Select Interpreter. Jalankan `python app.py` dari terminal terintegrasi. Demo sintetis otomatis: `python demo.py`. Aplikasi menggunakan terminal, bukan jendela GUI. Contoh diuji dengan CPython 3.12.14. ## Cakupan Pemberi rekomendasi terminal yang menjelaskan skor dari preferensi pengguna. Ini contoh minimum untuk dikembangkan melalui tugas, bukan produk siap produksi atau jaminan seluruh rubrik sudah selesai. Demo memiliki assertion kasus inti; tambahkan regresi sesuai sesi sebelum menganggap fitur lengkap. Data sintetis saja. Simpan-muat interaktif memakai folder di samping app.py; lakukan latihan pada salinan folder. Demo otomatis memakai memori atau folder sementara dan tidak mengganti data kerja. ## Urutan tugas - Sesi 1: Audit fungsi dan data. Telusuri fungsi berparameter pada tiga buku - Sesi 2: Peta preferensi pembaca. Bedakan syarat wajib dan preferensi bernilai - Sesi 3: Aturan skor manual. Hitung skor tiga buku pada kertas - Sesi 4: Fungsi skor murni. Kembalikan angka serta alasan tanpa input terminal - Sesi 5: Filter buku. Pilih buku yang memenuhi syarat wajib - Sesi 6: sorted() dan key. Urutkan salinan berdasarkan skor - Sesi 7: Hasil seri dan ID. Tetapkan ID sebagai pemecah skor sama - Sesi 8: Hasil tanpa kandidat. Tangani semua buku gagal filter - Sesi 9: Format CSV dan header. Baca CSV sintetis menggunakan csv.DictReader - Sesi 10: Konversi field CSV. Konversi panjang halaman dan tangani nilai kosong - Sesi 11: Assert pada fungsi. Tulis assert untuk skor, filter, dan hasil seri - Sesi 12: Parsing dan logika. Pisahkan pembaca CSV dari fungsi rekomendasi - Sesi 13: Preferensi kosong. Tetapkan hasil saat tidak ada preferensi - Sesi 14: Eksperimen bobot. Ubah satu bobot dan prediksi urutan baru - Sesi 15: Uji pembaca baru. Minta teman memberi preferensi berbeda - Sesi 16: Presentasi: Mesin Rekomendasi Buku. Jelaskan aturan dan demonstrasikan brief baru Penguji mengganti bobot serta satu larangan; prediksi dan buktikan urutan baru tanpa mengubah fungsi inti. Kerjakan perubahan di Visual Studio Code (VS Code); serahkan sumber .py dan folder proyek, README, data sintetis, serta tabel hasil uji, dan catatan uji. ## Kriteria proyek - Filter wajib tidak dilanggar oleh bobot tinggi - Peringkat serta alasan cocok dengan hitungan manual - CSV diparse sebagai teks lalu field angka divalidasi - Bobot baru dapat diterapkan tanpa menyalin fungsi Bekal: Dapat membaca input, memakai kondisi dan loop, menulis fungsi berparameter dengan return, mengolah list/dictionary, serta menyimpan dan memuat JSON. Audit dua sesi awal memberi penguatan terarah. Pengujian: catat input, harapan, aktual, revisi, dan bantuan. Uji pengguna serta tempo kelas tetap dilakukan mentor. Untuk project CSV jalankan python app.py input.csv laporan-baru.csv; ekspor menolak tujuan yang sudah ada.