Ekstrakurikuler CSSE: Computer Science & Software Engineering (Python)
Pengayaan: flowchart "cek umur masuk bioskop (umur >= 17?)" sebagai PR iseng opsional, dan latihan membaca alur orang lain — siswa saling menukar kertas dan "mengeksekusi" flowchart temannya langkah demi langkah.
Hari ini siswa menempuh barisan ke-2 dari 17 — 12% perjalanan:
| Waktu | Blok | Aktivitas |
|---|---|---|
| 10' | Pembuka | Cover, tujuan sesi, rekap Sesi 01 (tanya balik: 5 ciri algoritma? hardware vs software?), kontrak singkat |
| 15' | Materi 1 | Recap program = instruksi berurut; bedah hardware vs software; level bahasa mesin → manusia; kenapa Python untuk pemula |
| 20' | Materi 2 | Algoritma = resep yang logis; 5 ciri algoritma baik + uji cepat; pseudocode "nasi goreng" dibedah bersama |
| 20' | Materi 3 | 5 simbol flowchart baku (terminator, proses, input/output, keputusan, panah); cara baca cepat; demo flowchart keputusan |
| 25' | Praktik | Praktik penilaian: flowchart "angka genap atau ganjil" di kertas; bonus: "cek umur bioskop"; presentasi & saling baca alur |
| 10' | Penutup | Rangkuman "apa yang kita kuasai", preview Sesi 03 (kertas → kode beneran), PR iseng opsional |
Minggu lalu siswa kenal istilahnya; hari ini mereka wajib memegang standarnya. Algoritma = deret langkah yang jelas dan berurut untuk menyelesaikan masalah, dan layak disebut bagus kalau lulus 5 ciri: punya input, ada proses, menghasilkan output, setiap langkah jelas (tidak bikin bingung), dan berhenti. Analogi ujinya: resep koki di YouTube — kalau langkahnya "beri bumbu secukupnya" tanpa takaran, itu bukan algoritma, itu tebak-tebakan. Komputer nggak bisa menebak.
Latihan urutan diulang dari Sesi 01 tapi naik level: biarkan siswa SENDIRI yang menemukan langkah yang salah urut di pseudocode temannya. Menemukan bug di kertas = melatih mata debuger sebelum mereka punya kode untuk di-debug.
Pseudocode itu draf kasar tulisan tangan sebelum naskah final. Penulis novel bikin outline dulu, arsitek bikin sketsa dulu — programmer bikin pseudocode dulu. Aturannya longgar: pakai bahasa manusia yang terstruktur (Mulai, Baca, JIKA ... MAKA ..., Tampilkan, Selesai). Yang penting bukan gaya, tapi: urut, jelas, dan berhenti. Siswa boleh pakai English boleh Indonesia — yang dinilai logikanya.
Minggu lalu 4 simbol; hari ini lengkap jadi 5 dengan panah alir (arah urutan — seperti rambu jalan satu arah). Standar itu penting karena satu alasan: flowchart ditulis supaya dibaca orang lain. Kalau tiap orang bikin simbol versi sendiri, petanya tidak bisa dibaca siapa pun. Analoginya: simbol rambu lalu lintas — semua pengemudi di seluruh dunia paham tanda stop, karena bentuknya disepakati. Begitu juga flowchart: bentuk = arti, disepakati semua programmer.
Cara baca cepat yang bisa dibagikan ke siswa: ikuti panah dari Mulai; di persegi lakukan sesuatu; di jajar genjang data masuk atau keluar; di belah ketupat bertanya dan pilih jalur Ya/Tidak; sampai di oval berarti tugas selesai.
Jebakan terbesar Sesi 02 bukan konsep, tapi sikap: "ah, nggak usah gambar, langsung ngoding aja". Tonjokan baliknya sederhana: perbaiki alur yang salah di kertas = hapus pensil; perbaiki alur yang salah di dalam kode minggu-minggu depan = cari satu baris di antara ratusan baris. Flowchart adalah peta; tersesat di peta jauh lebih murah daripada tersesat di jalan.
Buka dengan kuis lisan cepat dari materi minggu lalu: (1) "program itu apa, pakai kalimat kalian sendiri?" (2) "HP-mu: WhatsApp termasuk apa, kameranya termasuk apa?" (3) "sebutkan 3 dari 5 ciri algoritma!" Jawaban ditangkap lisan, koreksi ringan, lalu framing hari ini: "minggu lalu kalian kenal peta — hari ini kalian belajar MENGGAMBAR peta yang bisa dibaca siapa pun."
Tulis pseudocode "nasi goreng" di papan, lalu uji TIGA versi: versi benar, versi langkahnya bolak-balik urutannya, dan versi yang ada langkahnya ambigu ("beri bumbu secukupnya"). Minta kelas menghakimi tiap versi pakai 5 ciri:
# Versi yang DIUJI ke papan (pseudocode nasi goreng):
1. Mulai
2. Siapkan bahan: nasi, bawang, telur, kecap
3. Panaskan wajan, tumis bawang
4. Masukkan nasi dan telur, aduk
5. Tambahkan kecap, aduk sampai rata
6. Sajikan di piring
7. Selesai
# Uji kelas: mana input? mana proses? mana output?
# Kenapa langkah "beri bumbu secukupnya" GAGAL uji ciri "jelas"?
Tutup blok ini dengan poin kunci: algoritma yang baik itu paten — siapa pun yang mengeksekusinya, hasilnya sama.
Siswa tulis pseudocode kasus pilihan sendiri di kertas (naik tangga, beli jajan di kantin, upload story, siap-siap sekolah). Syarat minimal: 5 langkah, diawali Mulai, diakhiri Selesai, dan lolos 5 ciri. Tukar kertas dengan teman sebangku: teman membaca dan menandai langkah yang menurutnya ambigu. Ini latihan "kode dibaca orang lain" pertama — tanpa komputer sama sekali.
Gambar kelima simbol di papan dengan artinya: oval = Mulai/Selesai (terminator), persegi = proses, jajar genjang = input/output, belah ketupat = keputusan (Ya/Tidak), panah = arah alur. Lalu bangun contoh keputusan bersama — slide deck memakai kasus "Bawa payung?":
Flowchart "Bawa payung?":
( Mulai )
|
< Lihat langit: hujan? > -- belah ketupat
/ \
Ya Tidak
| |
[ Bawa payung ] [ Simpan payung ] -- proses
| |
( Selesai ) <- keduanya harus SAMPAI sini
Tegaskan dua hukum flowchart: (1) belah ketupat WAJIB dua cabang keluar; (2) tidak ada garis yang menggantung — semua berakhir di Selesai. Uji cepat: siswa membaca ulang flowchart ini dengan suara: "Mulai, lalu tanya..., kalau Ya..., kalau Tidak..., Selesai."
Praktik penilaian dari kurikulum. Siswa gambar flowchart "menentukan apakah suatu angka genap atau ganjil" di kertas, individu:
Flowchart "Genap atau ganjil?" (kerangka yang diharapkan):
( Mulai )
|
/ Baca angka / -- input (jajar genjang)
|
< angka habis dibagi 2? > -- keputusan
/ \
Ya Tidak
| |
/ Cetak "genap" / / Cetak "ganjil" / -- output
| |
( Selesai )
Kriteria lulus yang dicek guru saat keliling: lengkap 5 simbol; input ada; keputusan dua cabang; kedua cabang punya output; semua jalur sampai Selesai. Yang cepat selesai: bonus "cek umur masuk bioskop (umur >= 17?)" — lebih sulit karena kedua cabangnya sama-sama mencetak kalimat beda. Tutup blok dengan presentasi 2–3 siswa + sesi "eksekusi flowchart teman".
Rangkum "apa yang kita kuasai": algoritma + 5 ciri, pseudocode, 5 simbol flowchart, kebiasaan berpikir alur dulu. Lalu teaser besar: "dua minggu kalian bekerja di kertas. Pertemuan depan, kertas itu MULAI JADI KODE BENERAN." Umumkan PR iseng opsional (flowchart umur bioskop / pseudocode 5 langkah di buku kalau nggak ada penggaris) dan minta foto flowchart terbaik dikirim ke grup.
Sesi ini masih kertas, tapi kode.py menunjukkan ke mana flowchart mereka akan menuang: algoritma bernomor yang bisa dijalankan komputer. Bentuk utuhnya:
"""Sesi 02 - Master Solution: algoritma "sapaan" sebagai langkah bernomor.
Algoritma (pseudocode, dari kertas):
1. Mulai
2. Siapkan data: nama teman
3. Proses: susun kalimat sapaan
4. Tampilkan pesan ke layar
5. Selesai
"""
# Langkah 1-2: alur program selalu bergerak dari Mulai,
# dan data yang dibutuhkan disiapkan lebih dulu.
print("1. Mulai")
print("2. Baca bahan")
# Langkah 3: proses - merangkai pesan dari data
nama = "Budi"
pesan = "Halo " + nama
print("3. Proses")
# Langkah 4: output - tampilkan hasil ke layar
print("4. Tampilkan hasil:", pesan)
# Langkah 5: program berhenti dengan sendirinya = ciri kelima (berhenti)
print("5. Selesai")
# Output harapan:
# 1. Mulai
# 2. Baca bahan
# 3. Proses
# 4. Tampilkan hasil: Halo Budi
# 5. Selesai
Saat membedah kode ini (di akhir sesi atau pembuka Sesi 03), minta siswa memetakan: baris mana input/proses/output? Mana bukti ciri "berhenti"? Jawabannya: nama = "Budi" menyiapkan data, pesan = "Halo " + nama proses, print output, dan program selesai sendiri karena tidak ada yang mengulang — persis 5 ciri di kertas.
| Masalah | Penyebab | Tindakan Perbaikan |
|---|---|---|
| Flowchart "genap/ganjil" cuma satu cabang | Siswa hanya memikirkan kasus yang ia pilih (misal cuma genap), lupa ganjil. | Tanya: "kalau angkanya 7, peta ini bawa kamu ke mana?" Belah ketupat wajib dua cabang, keduanya diwarnai sampai Selesai. |
| Simbol tercampur: proses pakai jajar genjang, dsb. | Simbol dianggap hiasan, bukan bagian makna. | Kembalikan ke analogi rambu lalu lintas: bentuk = arti. Latihan singkat: guru tunjuk simbol acak, kelas teriak artinya bersama-sama. |
| Pseudocode terlalu samar ("beri bumbu secukupnya") | Siswa menulis seperti memberi catatan untuk diri sendiri, bukan instruksi eksekusi. | Uji dengan "main peran": teman mengeksekusi pseudocode baris demi baris. Langkah ambigu langsung macet di dunia nyata. |
| Urutan logika salah tapi alur tetap mengalir | Langkah lengkap semua, urutannya tidak logis (logical error di kertas). | Minta siswa LAIN mengeksekusi flowchart-nya. Penemu kesalahan harus temannya — belajar dari alarm teman lebih tidak terasa dilukai. |
| Siswa bosan "kok masih kertas lagi?" | Ekspektasi hari kedua = sudah mengetik kode. | Jujur dan tegas: alur yang gagal di kertas = hapus pensil; alur yang gagal di kode = cari jarum di jerami. Dua minggu fondasi ini yang bikin mereka nggak tenggelam di Sesi 03-05. |
| Flowchart rapi tapi tak bisa dijelaskan pemiliknya | Meniru gambar teman/papan tanpa memahami alurnya. | Saat presentasi, pilih SATU belah ketupat acak dan tanya: "di sini kamu bertanya apa, dan pilihan keduanya apa?" Tidak bisa jawab = duduk kembali dan gambar ulang versi sendiri. |
Dua minggu penuh kertas dan papan — dan mulai pertemuan depan semuanya berubah: flowchart "Halo" yang mereka gambar akan menjadi kode yang benar-benar berjalan di layar. Siswa akan membuka VS Code, membuat file .py pertama, mengetik print(), menekan Run, dan melihat komputer mematuhi tulisan tangan mereka. Kertas mereka buang begitu saja? Justru kebalikannya: dua minggu melatih mata alur itulah yang membuat mereka membaca pesan error nanti dengan tenang.
# Pratinjau Sesi 03: pseudocode "sapa teman" versi kertas,
# minggu depan jadi file halo.py yang dijalankan sungguhan:
print("Halo, St. John!")
print("Program pertama berhasil dijalankan.")
# Output harapan:
# Halo, St. John!
# Program pertama berhasil dijalankan.
Bawa kertas flowchart minggu ini ke Sesi 03 — peta yang mereka gambar akan dipakai jadi jalan pertama mereka di dunia kode.