# Analisis Kegiatan Belajar SMA · 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 Alat terminal yang memvalidasi CSV kegiatan dan mengekspor ringkasan durasi per kategori. 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 struktur data. Telusuri fungsi terpisah pada contoh kegiatan - Sesi 2: Skema dan hasil manual. Tetapkan id, kategori, menit dan hitung contoh - Sesi 3: csv.DictReader. Baca header dan tiga baris sintetis - Sesi 4: Konversi dan validasi. Konversi menit dan kumpulkan nomor baris salah - Sesi 5: Fungsi agregasi. Jumlahkan menit tiap kategori pada dictionary baru - Sesi 6: Pemecahan modul. Pisahkan parser dan logika pada file berbeda - Sesi 7: Assert sebelum framework. Uji dua fungsi kecil dengan assert - Sesi 8: Unittest dasar. Kenali TestCase, assertEqual, dan discovery - Sesi 9: Kasus kosong dan duplikat. Tulis aturan ID serta file tanpa baris - Sesi 10: Kesalahan header. Tolak kolom wajib yang hilang - Sesi 11: Laporan CSV terpisah. Tulis ringkasan melalui DictWriter - Sesi 12: newline dan encoding. Uji baris beraksen serta pembukaan ulang CSV - Sesi 13: Uji otomatis pipeline. Uji parser melalui file sementara - Sesi 14: Data baru dari penguji. Proses kategori dan durasi yang belum dicontohkan - Sesi 15: Dokumentasi batas. Jelaskan unit, kebijakan data salah, serta hasil - Sesi 16: Presentasi: Analisis Kegiatan Belajar. Serahkan modul, CSV sintetis, dan hasil unittest Penguji memberi header salah dan kategori baru; laporkan kesalahan secara tepat lalu hasilkan ringkasan valid tanpa mengubah input. Kerjakan perubahan di Visual Studio Code (VS Code); serahkan sumber .py dan folder proyek, README, data sintetis, serta tabel hasil uji, unittest, database latihan, dan laporan sesuai proyek, dan catatan uji. ## Kriteria proyek - Skema serta satuan durasi jelas dan masukan tidak ditimpa - Konversi teks CSV serta validasi menolak baris salah - Unittest membuktikan agregasi serta data kosong - Laporan baru cocok dengan ringkasan manual Bekal: Dapat menulis fungsi yang terpisah dari GUI, memakai callback Tkinter sederhana, mengelola list/dictionary, memvalidasi input, dan menyimpan JSON. Audit awal mendahului CSV, SQL, serta pengujian otomatis. 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.