Format Dokumen Pengajaran & Panduan Siswa
BINUS University @ Bekasi SMAS St. John Pertemuan 17 dari 17

MODUL 17 — Final Project Presentation & Demo

Ekstrakurikuler CSSE: Computer Science & Software Engineering (Python)

Jenjang Peserta Siswa SMA (Kelas 10–12)
Alokasi Waktu 120 Menit
Fokus Materi presentasi, demo live, Q&A, rubrik, refleksi semester
Target Selesai Setiap kelompok tampil 5–7 menit (Masalah → Fitur → Demo Live → kode dibanggakan → Q&A) dan penilaian rubrik selesai
Tools Proyek jadi + proyektor
Prioritas sesi: Wajib: tiap kelompok presentasi & demo 5–7 menit dengan struktur Masalah → Fitur → Demo Live → 1 potongan kode dibanggakan → Q&A; penilaian rubrik Sesi 16 (Fungsi jalan 30%, Struktur kode 25%, Logika 20%, Demo & Penjelasan 15%, Kreativitas 10%); refleksi & penutupan semester.
Materi pengayaan (opsional jika waktu cukup)

Bahas "jalur lanjut" setelah ekstrakurikuler: portofolio proyek di GitHub, materi Python berikutnya (OOP, modul eksternal), dan ide pengembangan Final Project versi 2.0.

1. Tujuan Pembelajaran

  1. Mempresentasikan proyek dengan struktur jelas — Masalah → Fitur → Demo Live → 1 potongan kode dibanggakan → Q&A — dalam 5–7 menit.
  2. Mendemonstrasikan fitur secara live di depan kelas (termasuk mengelola waktu dan menangani program yang tiba-tiba error).
  3. Menjelaskan logika satu potongan kode pilihan dengan kalimat sendiri, bukan sekadar membaca.
  4. Menerima dan menjawab pertanyaan audiens dengan jujur ("belum kami coba, tapi rencananya seperti ini").
  5. Memberi umpan balik yang membangun kepada kelompok lain dengan merujuk rubrik.
  6. Menilai diri terhadap rubrik: Fungsi jalan 30%, Struktur kode 25%, Logika 20%, Demo & Penjelasan 15%, Kreativitas 10%.
  7. Merefleksikan perjalanan 17 pertemuan: apa yang dulu terasa mustahil dan sekarang bisa dijelaskan.
  8. Menyusun langkah lanjut pribadi setelah ekstrakurikuler (materi berikutnya, portofolio, pengembangan proyek).

2. Peta Jalan 17 Pertemuan

Hari ini siswa menempuh barisan ke-17 dari 17 — 100% perjalanan:

[ 01-02 ] Fondasi: konsep program, algoritma, flowchart [ 03-05 ] Mulai coding: print, variabel, input/output [ 06-07 ] Operator & percabangan if/elif/else [ 08 ] Mini Project 1: Decision Making [ 09 ] Looping / Perulangan [ 10 ] Nested Loop & Pattern Programming [ 11-13 ] List, Functions, String [ 14 ] Mini Project 2: Simple App [ 15 ] AI-Assisted Coding [ 16-17 ] Final Project: Development & Presentation <-- HARI INI (120 Menit)

3. Rundown Waktu Terperinci (120 Menit)

WaktuBlokAktivitas
10'PembukaanSambutan + aturan presentasi: 5–7 menit/kelompok, urutan Masalah → Fitur → Demo Live → kode dibanggakan → Q&A; tech check proyektor & laptop; tepuk tangan untuk SEMUA tim sebelum mulai
60'Presentasi & demoKelompok tampil berurutan (5–7 menit/kelompok + rotasi cepat antar kelompok); guru & siswa mengisi lembar rubrik: Fungsi jalan 30% · Struktur kode 25% · Logika 20% · Demo & Penjelasan 15% · Kreativitas 10%
30'Tanya jawab & umpan balikSisa pertanyaan dibahas terbuka; umpan balik berbasis rubrik agar konsisten dengan Sesi 16; apresiasi keputusan teknis menarik ("kenapa pakai list[dict]?")
15'Refleksi & penutupanRefleksi semester 17 pertemuan: "1 hal yang dulu terasa mustahil, sekarang bisa kamu jelaskan ke adik kelas?"; hambatan & cara mengatasi; pengembangan lanjut
5'Pengumuman & apresiasiPengumuman rubrik, apresiasi kemajuan (bukan hanya hasil akhir), penutupan program ekstrakurikuler

4. Pedagogi & Penjelasan Konsep

A. Demo = Jualan Ide, Bukan Kegagalan yang Ditakuti

Analogi: demo itu seperti jualan di pentas seni — kamu punya 6 menit untuk membuat orang meyakinkan bahwa produkmu berguna. yang dinilai bukan seberapa canggih aplikasimu, tapi seberapa jelas kamu menyampaikannya. Karena itu urutannya Masalah → Fitur → Demo Live → kode dibanggakan → Q&A: mulai dari masalah nyata ("nilai kelas masih dicatat di kertas, sering hilang") supaya audiens peduli, baru perlihatkan jawabannya. Kode yang jalan itu hebat — kode yang bisa kamu jelaskan itu lebih hebat lagi.

B. Suasana Suportif — Panggung yang Aman

Pertemuan terakhir harus jadi pengalaman yang dinanti, bukan sidang yang ditakuti. Aturan mainnya: tepuk tangan untuk setiap tim, pertanyaan boleh tapi menggurui jangan, dan guru memberi umpan balik berbasis rubrik — bukan perbandingan antar siswa. Apresiasi diberikan untuk kemajuan: siswa yang di Sesi 03 belum berani menulis print dan hari ini mendemokan aplikasi ber-menu adalah bintang hari itu, apa pun nilainya. Suasana suportif bukan turunkan standar — rubrik tetap rubrik — tapi jamin semua berani naik panggung.

C. Rubrik Sama dengan Sesi 16 — Adil dan Transparan

Penilaian hari ini konsisten dengan penilaian development kemarin: Fungsi jalan 30% · Struktur kode 25% · Logika 20% · Demo & Penjelasan 15% · Kreativitas 10%. Artinya: siswa yang proyeknya jalan sempurna sejak Sesi 16 sudah membayar setengah tiketnya. Bagikan rubrik di awal agar tiap kelompok tahu di mana fokus: fungsi jalan adalah bobot terbesar — jangan korbankan waktu demo untuk fitur bonus yang belum stabil.

D. Error di Panggung Itu Alarm — Siapkan Alarm Cadangan

Program bisa error persis di depan kelas — itu normal, bahkan developer profesional mengalaminya saat demo. Yang membedakan pemula dan siap-panggung: siapkan cadangan. Plan B minimal: video/screenshot fitur berjalan yang direkam di rumah, dan kalimat penyelamat yang jujur: "kemarin fitur ini jalan — mari saya tunjukkan lewat rekamannya sementara saya cek errornya". Error tetap bukan aib: kalau kamu bisa bilang "ini ValueError dari input huruf, penanganannya di sini — akan saya perbaiki", itu malah poin Demo & Penjelasan.

Catatan pengajar: ciptakan suasana suportif; apresiasi kemajuan bukan hanya hasil akhir (dari kurikulum resmi). Beri feedback berbasis rubrik agar konsisten dengan Sesi 16. Awasi waktu: siapkan penanda waktu (timer) dan sinyal "1 menit tersisa" supaya semua kelompok kebagian panggung yang sama.

5. Panduan Praktik Langkah demi Langkah

Langkah 1: Pembukaan & Aturan Presentasi (10 menit)

Sampaikan aturan main sebelum tim pertama naik:

Bagikan lembar rubrik ke semua penilai (guru + siswa penilai): Fungsi jalan 30% · Struktur kode 25% · Logika 20% · Demo & Penjelasan 15% · Kreativitas 10%.

Langkah 2: Presentasi & Demo Live — 5–7 Menit per Kelompok (60 menit)

Setiap kelompok mengikuti kerangka waktu berikut (total 6 menit contoh):

BagianWaktuIsi
Masalah30 detik1 kalimat: aplikasi untuk siapa, menyelesaikan apa
Fitur45 detikSebut 4–5 fitur menu tanpa demo dulu
Demo Live2–3 menitJalankan aplikasi: tambah data → lihat → cari → statistik → keluar; tunjukkan data selamat setelah restart
Kode dibanggakan1 menit1 fungsi saja, jelaskan dengan kata sendiri
Q&A1–2 menitJawab pertanyaan — jujur kalau belum tahu

Tugas guru selama sesi: catat catatan rubrik per kelompok, jaga waktu, dan bantu transisi antar kelompok agar tidak makan waktu. Siswa penonton mengisi lembar umpan balik sederhana (1 hal yang keren + 1 saran).

Langkah 3: Tanya Jawab & Umpan Balik (30 menit)

Setelah semua tampil, buka sesi tanya-jawab bersama. Pancing dengan pertanyaan teknis yang menunjukkan logika:

  1. "Kenapa kamu pilih list[dict], bukan dua list terpisah?" (jawaban harapan: satu record = satu dict, mudah diambah/dihapus sebagai satu kesatuan)
  2. "Kalau user mengetik huruf di kolom nilai, apa yang terjadi?" (harapan: try-except menolak dengan sopan)
  3. "Data kamu hilang nggak kalau listrik mati?" (harapan: save tiap perubahan, load di awal)

Beri umpan balik per kelompok dengan merujuk angka rubrik — bukan "bagus" kosong, tapi "Struktur kodemu rapi karena 1 menu = 1 fungsi".

Langkah 4: Refleksi & Penutupan Semester (15 menit)

Siswa mengisi refleksi tertulis singkat (tidak dinilai — untuk dirinya sendiri dan portofolio):

Pancing dengan pertanyaan kunci: "apa 1 hal yang dulu terasa mustahil, sekarang bisa kamu jelaskan ke adik kelas?" — dari flowchart di kertas (Sesi 01–02) sampai aplikasi ber-menu + file hari ini, itu jarak yang luar biasa.

Langkah 5: Pengumuman & Apresiasi (5 menit)

Umumkan hasil rubrik dengan framing apresiasi kemajuan — sebut hal konkret tiap kelompok yang berkembang dari Sesi 14 (Mini Project 2). Tutup program: "17 pertemuan, dari print("Hello World") sampai aplikasi yang kamu rancang sendiri. Setiap baris kode yang kamu tulis adalah bukti: kamu sudah jadi programmer pemula yang sesungguhnya."

Langkah 6: Tech Check & Plan B — Persiapan Sebelum Panggung

Sebelum sesi dimulai (atau saat pergantian kelompok), pastikan checklist panggung ini terpenuhi:

  1. Laptop standby, program jalan dari awal sampai Keluar tanpa crash (uji cepat sebelum naik).
  2. Semua menu sudah diuji — termasuk cari nama yang tidak ada.
  3. Font terminal diperbesar (Ctrl + +) untuk keterbacaan proyektor.
  4. Plan B: video/screenshot fitur jalan siap di folder.

6. Master Solution Code (kode.py — Sesi 17)

Hari ini bukan hari menulis kode baru — tapi memilih potongan kode yang dibanggakan. Berikut contoh fungsi yang layak dipamerkan saat demo (dari aplikasi Sesi 16), plus alasan kenapa dia menarik dijelaskan:

# Potongan kode "dibanggakan" untuk demo — pilih SATU fungsi
# yang bisa kamu jelaskan paling meyakinkan.

# Kandidat 1: cari_data() — menunjukkan logika pencarian case-insensitive
def cari_data(kata):
    hasil = []
    for item in data:
        if kata.lower() in item["nama"].lower():
            hasil.append(item)
    return hasil

# Alasan layak dibanggakan:
# - .lower() di dua sisi agar "budi" ketemu "Budi" (case-insensitive)
# - in untuk pencarian sebagian ("bud" tetap ketemu)
# - mengembalikan list hasil: kosong berarti tidak ketemu (jujur)

# Kandidat 2: tambah_data() — menunjukkan try-except pelindung input
def tambah_data():
    nama = input("Nama: ")
    while True:
        try:
            nilai = int(input("Nilai (0-100): "))
            break
        except ValueError:
            print("Harus angka! Contoh: 85")
    data.append({"nama": nama, "nilai": nilai})
    simpan_file()
    print(f"Data {nama} ditambahkan.")

# Alasan layak dibanggakan:
# - while True + try-except: tanya ulang sampai input sah (anti crash)
# - append + simpan_file(): data langsung aman ke file
# - ini jawaban terbaik untuk pertanyaan Q&A "kalau user nakal?"

# Kandidat 3: statistik() — menunjukkan list comprehension + agregasi
def statistik():
    if len(data) == 0:
        print("Belum ada data untuk dihitung.")
        return
    nilai = [item["nilai"] for item in data]
    rata = sum(nilai) / len(nilai)
    print(f"Jumlah data : {len(nilai)}")
    print(f"Nilai tertinggi : {max(nilai)}")
    print(f"Nilai terendah : {min(nilai)}")
    print(f"Rata-rata : {rata:.1f}")

# Alasan layak dibanggakan:
# - list comprehension merapikan pengambilan kolom nilai
# - sum/max/min: tiga agregasi dari materi list (Sesi 11)
# - penanganan data kosong lebih dulu (belum ada data = tidak crash)

Penjelasan singkat: ketiganya berasal dari baseline aplikasi Sesi 16. Saat demo, tunjukkan fungsi pilihanmu di layar, jalankan fiturnya secara live, lalu jelaskan maksimal 3 poin kenapa ditulis begitu — 1 menit cukup. Daftar fitur siap demo (dari baseline B): Lihat, Tambah, Cari, Hapus, Statistik, Keluar + bukti file (data selamat setelah restart). Skenario demo 2 menit yang terbukti aman: tambah → lihat → cari (yang ada & yang tidak ada) → statistik → keluar → jalan lagi → data masih ada.

7. Troubleshooting Guide (Pegangan Guru)

Masalah Penyebab Tindakan Perbaikan
Program error persis saat demo di depan kelas Input berbeda dari yang diuji (nama dengan spasi, huruf di kolom angka), file data.txt berada di folder lain. Tenangkan: "error itu alarm, bukan kegagalan". Baca errornya bersama; kalau 1 menit tidak selesai, lompat ke Plan B (video/screenshot) dan lanjut cerita. Jangan biarkan 3 menit habis untuk 1 bug.
Waktu demo kebablasan (10+ menit, kelompok lain menunggu) Demo semua fitur satu per satu + Q&A memanjang. Timer + sinyal "1 menit tersisa" sejak awal. Batasi demo live ke skenario inti (tambah → lihat → cari → statistik → keluar); fitur bonus cukup diceritakan.
Tech check gagal: program tidak muncul di proyektor Kabel/HDMI, resolusi, atau laptop sleep; terminal terlalu kecil dibaca dari belakang. Tech check SEBELUM sesi dimulai (bukan saat kelompok pertama naik). Font terminal diperbesar (Ctrl + +), matikan sleep. Punya laptop cadangan bila memungkinkan.
Siswa gagap menjelaskan kode sendiri saat Q&A Ujian menulis/menyontek tahap akhir (Sesi 15) — kode asing di dalam program. Frame ulang: minta jelaskan yang ia tahu saja (yang ia tulis); bagian yang belum dipahami diakui jujur. Umpan baliknya jelas: pahami sebelum demo berikutnya. Ini pelajaran etika AI yang nyata.
Suasana tegang / siswa takut ditertawakan Budaya menyindir saat demo temuan error, atau pertanyaan bernada menggurui. Tegakkan aturan dari awal: tepuk tangan tiap tim, pertanyaan ya, ejekan tidak. Guru memberi contoh cara menanyakan yang membangun. Apresiasi kemajuan spesifik tiap kelompok.
Kelompok tidak membawa proyek / file korup Lupa kopi file, laptop lupa diisi, tidak ada backup. Terima presentasi tanpa demo (jelaskan fitur + tunjukkan kode), nilai bagian yang bisa dinilai; catat sebagai pelajaran: backup adalah kebiasaan developer. Tawarkan sesi perbaikan singkat setelah kelas.

8. Checklist Evaluasi Siswa

9. Penutup Program — Refleksi 17 Pertemuan & Langkah Lanjut

Hari ini garis finis. Ingat kembali perjalananmu: 17 pertemuan lalu flowchart masih di kertas dan print terasa ajaib — hari ini kamu mendemokan aplikasi ber-menu yang datanya selamat di file, yang kamu rancang dan perbaiki sendiri. Kecilkan begitu: setiap konsep yang dulu asing (while True, list[dict], try-except) sekarang jadi alat yang kamu pegang. Itu bukan bakat — itu 17 pertemuan kerja yang menumpuk.

Setelah ekstrakurikuler usai, jalanmu baru mulai. Tiga langkah lanjut yang bisa langsung dijalankan:

  1. Portfolio — taruh Final Project-mu di GitHub (atau folder rapi + screenshot): kode, README 5 baris, dan screenshot fitur. Proyek jadi yang bisa ditunjukkan lebih berharga daripada seratus yang setengah jadi.
  2. Belajar lanjutan — urutan wajar setelah hari ini: OOP (class & object), modul eksternal (mis. csv untuk data sesungguhnya), lalu GUI/web sederhana. Semua fondasinya sudah kamu punya.
  3. Pengembangan versi 2.0 — ambil jawaban refleksi "jika ada 1 minggu lagi": edit data, sorting, laporan otomatis, atau tampilan lebih baik. Satu proyek yang terus dikembangkan mengajarkan lebih banyak daripada sepuluh yang baru dmulai.
# Bukti perjalananmu — dari baris pertama 17 pertemuan lalu...
print("Hello World")

# ...sampai hari ini: aplikasimu sendiri, jalan utuh, data aman.
# Pertanyaan penutupnya bukan "sudah selesai?" —
# tapi "selanjutnya saya bangun apa?"

Semester Ganjil 2026/2027 resmi tamat. Terima kasih sudah bertahan sampai baris terakhir — jaga kebiasaan baikmu: alur dulu sebelum kode, satu fitur selesai daripada lima setengah jadi, dan error selalu alarm. Sampai jumpa di proyek berikutnya.