Ekstrakurikuler CSSE: Computer Science & Software Engineering (Python)
.py, menjalankan lewat tombol Run atau terminal python nama.py, menulis program pertama dengan print() dan komentar #, mengenal tiga jenis error (syntax, runtime, logical), dan challenge "menyembuhkan" 5 bug. Praktik penilaian: siswa menyelesaikan dokumen berisi 5 bug syntax sederhana (file bug_1.py s.d. bug_5.py).Pengayaan: mencoba REPL (mode interaktif) untuk eksperimen cepat satu baris, dan menjalankan program dari terminal di folder yang tepat dengan python halo.py. Siswa yang cepat selesai juga bisa menyusun "koleksi error" pribadi: catat 1 error yang pernah dia temui + cara menyembuhkannya.
.py.python nama.py.print() yang mencetak beberapa baris output.# dan menjelaskan kenapa baris komentar tidak dieksekusi.^, dan jenis errornya.Hari ini siswa menempuh barisan ke-3 dari 17 — 18% perjalanan:
| Waktu | Blok | Aktivitas |
|---|---|---|
| 10' | Pembuka | Cover, tujuan sesi, kontrak kelas; recap flowchart genap/ganjil dari kertas → bridging ke print(); mantra hari ini: "flowchart = peta, kode = jalan" |
| 15' | Setup | Cek kesiapan tiap komputer: Python terpasang (python --version), VS Code terbuka, buat folder kerja; kenalan REPL vs file script |
| 20' | Materi + Demo | Demo guru: buat file pertama halo.py, ketik print(), Ctrl+S, Run; tambah komentar #, tunjukkan output tidak berubah; baca pesan error merah bersama (nomor baris + panah) |
| 25' | Praktik Mandiri | Siswa menulis program sendiri: ubah teks output, beri komentar atas, jalankan ulang; guru keliling pastikan semua pernah lihat output jalan |
| 20' | Challenge | "Klinik bug": sembuhkan bug_1.py s.d. bug_5.py satu per satu — baca pesan error, tebak penyakit, perbaiki, Ctrl+S, Run |
| 10' | Penutup | Rangkuman 5 poin + debrief "error pertamamu apa?"; preview Sesi 04, PR iseng opsional |
Dua minggu terakhir siswa hanya bekerja di kertas — dan hari ini peta itu akhirnya melaju. Mantra yang harus terdengar sepanjang sesi: "flowchart = peta, kode = jalan." Analogi untuk hari pertama nyetir: tahu teori persimpangan itu satu hal, duduk di kursi kemudi dan injak gas itu pengalaman lain — tangan gemetar wajar, mesin mati wajar, itu bagian dari proses, bukan tanda gagal. Setiap programmer profesional punya foto layar penuh error merah pertamanya. Hari ini mereka resmi jadi anggota klub itu.
Dua cara bicara dengan Python. REPL (mode interaktif) itu kayak ngobrol langsung: ketik satu kalimat, Python langsung jawab, cocok buat eksperimen cepat — "kalau print begini, keluar apa?" File script itu kayak pidato yang ditulis rapi: disimpan di file .py, bisa dibuka lagi, diedit, dibagikan, dijalankan berulang kali. Kerja utama kita hari ini: file script. Aturan praktisnya sederhana: iseng satu baris → REPL; program sungguhan → file .py.
Baris yang diawali # itu catatan tempel di dinding dapur — terbaca oleh koki manusia, sama sekali diabaikan mesin. Python melewati setiap # sampai akhir baris tanpa mengeksekusinya. Kegunaannya nyata tiga minggu lagi: siswa membuka kode sendiri yang sudah lupa, dan catatan tempel itu yang mengingatkan "baris ini buat apa". Kebiasaan yang ditanamkan hari ini: setiap file dibuka dengan komentar judul (nama + tujuan file).
Tiga jenis error dikenalkan hari ini dengan analogi koki: syntax error = resep ditulis ngawur (kalimatnya nggak bisa dibaca — komputer menolak sebelum mulai); runtime error = resep valid, tapi saat dieksekusi ketemu masalah (misal menyuruh memotong bahan yang belum ada); logical error = resep jalan mulus, hasilnya salah (garam dikira gula) — yang paling licik karena nggak ada alarm berbunyi. Minggu-minggu awal yang paling sering: syntax error.
Cara baca pesan merah yang wajib terbiasa: (1) lihat baris paling akhir = jenis errornya; (2) cari nomor baris + panah ^ = lokasinya; (3) perbaiki, Ctrl+S, Run lagi. Error bukan hukuman — dia alarm, dan pesannya adalah instruksi pemadamannya.
Cek ingatan minggu lalu: tanya 1-2 siswa membacakan alur flowchart "genap/ganjil" mereka dari memori. Lalu bridging kunci hari ini: "alur kertas kalian minggu lalu, hari ini kita tuangkan ke bahasa yang bisa dibaca komputer. Kalimat pertamanya cuma satu perintah: print." Tulis di papan:
Flowchart: ( Mulai ) -> [ Cetak sapaan ] -> ( Selesai )
Kode : print("Halo!")
Kontrak kelas untuk sesi coding: error itu alarm (boleh tertawa bersama), rebutan keyboard dilarang, dan sebelum minta bantuan wajib bisa menyebut "pesan errornya bilang apa".
Berkeliling dan pastikan di tiap komputer: Python terpasang (cek lewat terminal: python --version — muncul angka berarti aman), VS Code terbuka, dan tiap siswa punya folder kerja (misal CSSE). Kenalkan REPL sekali lewat demo: ketik print("tes") di terminal Python — jawaban langsung keluar; lalu tutup: "itu obrolan singkat; program sungguhan kita tulis di file." Siswa yang komputernya bermasalah dipasangkan sementara — jangan biarkan ada yang menganggur di menit ke-15.
Demo di proyektor, siswa meniru langkah demi langkah: buat file baru, simpan sebagai halo.py (tekankan ekstensi .py), ketik, simpan dengan Ctrl+S, jalankan dengan tombol Run ▶:
print("Halo, Python!")
print("Komentar tidak dijalankan oleh Python.")
print("Simpan file, lalu jalankan.")
# Edit kode, simpan, lalu jalankan lagi.
print("Baris kode dieksekusi berurutan.")
# Output harapan:
# Halo, Python!
# Komentar tidak dijalankan oleh Python.
# Simpan file, lalu jalankan.
# Baris kode dieksekusi berurutan.
Bedaah hasilnya: output muncul persis berurutan dari atas ke bawah (kaitkan ke Sesi 01: resep dieksekusi berurutan). Lalu eksperimen kecil: tambah komentar di atas file, Run ulang — output tetap sama! Ini bukti visual bahwa # tidak dieksekusi. Tutup dengan tunjukkan error pertama yang TIDAK menakutkan: hapus satu tanda kutip, Run, baca pesan merah bersama (nomor baris, panah, "unterminated string literal"), perbaiki, Run lagi — dan kelas lihat sendiri siklus error → baca → perbaiki itu cepat dan tidak berbahaya.
Siswa membuat file sendiri, misal sapa.py, dengan tugas bertingkat (guru keliling, prioritas: semua pernah lihat output jalan):
halo.py jadi sapaan versi sendiri (minimal 3 baris print).pirnt("tes") — ejaan salah).Yang cepat selesai: eksperimen REPL — tes print dengan tanda kutip tunggal vs ganda, dan cetak satu baris tentang hobi mereka. Ini jembatan alami ke print("Halo, " + nama + "!") di master solution.
Praktik penilaian dari kurikulum: siswa membuka file bug_1.py s.d. bug_5.py (sudah tersedia di folder sesi) dan menyembuhkannya satu per satu. Protokol wajib sebelum mengubah kode: baca pesan error → sebutkan jenisnya → baru perbaiki. Kelima pasiennya:
# bug_1.py - kutip tutup hilang
print("Halo dunia)
# Alarmnya: SyntaxError: unterminated string literal
# Obat: tambahkan " di ujung
# bug_2.py - ejaan fungsi salah
pirnt("Apa kabar?")
# Alarmnya: NameError: name 'pirnt' is not defined
# Obat: perbaiki ejaan jadi print
# bug_3.py - kurung tutup hilang
print("Halo"
# Alarmnya: SyntaxError: expected ')'
# Obat: tambahkan ) di ujung
# bug_4.py - teks tanpa kutip
print(Halo)
# Alarmnya: NameError: name 'Halo' is not defined
# Penyakitnya: Halo dianggap nama variabel, bukan teks
# Obat: bungkus pakai "..." jadi print("Halo")
# bug_5.py - kutip tidak konsisten
print('Sampai jumpa")
# Alarmnya: SyntaxError: unterminated string
# Obat: konsisten - keduanya " atau keduanya '
Guru keliling dengan satu pertanyaan standar: "pesan errornya bilang apa?" Siswa yang menyembuhkan kelima pasien memberi tanda (angkat tangan / tulis di papan). Debrief cepat: bug 1-3-5 = keluarga syntax error (bentuk kalimat rusak), bug 2-4 = keluarga NameError (Python tidak mengenali nama yang ditulis).
Rangkuman 5 poin dengan tanya-jawab cepat: (1) program Python disimpan di file .py dan dijalankan dengan Run atau python nama.py; (2) kode dieksekusi berurutan dari atas; (3) # = komentar, tidak dieksekusi; (4) tiga jenis error; (5) baca pesan error: jenis → nomor baris → perbaiki. Tanya refleksi: "error pertamamu hari ini apa, dan obatnya apa?" Umumkan PR iseng opsional (sapa.py 5 baris tentang diri sendiri + komentar, atau tulis 5 baris print di kertas kalau tidak ada laptop di rumah) dan preview Sesi 04.
Bentuk utuh program pertama sesuai kode.py — program ini memuat semua konsep hari ini: print, komentar, eksekusi berurutan, dan satu langkah kecil ke depan (menyimpan teks di sebuah nama, yang akan dibedah tuntas di Sesi 04):
"""Sesi 03 - Master Solution: program pertama yang utuh.
Ditulis di file halo.py, dijalankan dengan tombol Run
atau di terminal: python halo.py
"""
# Program pertama - [nama siswa] - CSSE St. John
# Kode dieksekusi berurutan dari atas ke bawah.
print("Halo, Python!")
print("Komentar tidak dijalankan oleh Python.")
print("Simpan file, lalu jalankan.")
print("Baris kode dieksekusi berurutan.")
# Case kumulatif: langkah program sapaan (dari flowchart kertas)
# "nama" untuk sementara: kotak penyimpan teks - dibedah tuntas di Sesi 04.
nama = "Budi"
print("Halo, " + nama + "!")
print("Program pertama berhasil dijalankan.")
# Output harapan:
# Halo, Python!
# Komentar tidak dijalankan oleh Python.
# Simpan file, lalu jalankan.
# Baris kode dieksekusi berurutan.
# Halo, Budi!
# Program pertama berhasil dijalankan.
Poin bedah bersama siswa: mana yang tercetak, mana yang tidak (dua baris komentar diam saja)? Tukar urutan dua print dan Run ulang — output ikut bertukar, bukti eksekusi berurutan. Dan "Halo, " + nama + "!" menunjukkan teks bisa dirangkai dengan + — pemanasan gratis untuk materi variabel minggu depan.
| Masalah | Penyebab | Tindakan Perbaikan |
|---|---|---|
'python' is not recognized di terminal |
Python belum terpasang atau belum masuk PATH. | Pakai tombol Run ▶ di VS Code dulu agar sesi tetap jalan; instalasi/PATH diurus belakangan dengan bantuan mentor. Catat komputer bermasalah untuk diperbaiki sebelum Sesi 04. |
File tidak mau jalan, namanya halo.py.txt |
Saat menyimpan, ekstensi .txt ikut menempel (save as type salah). |
Rename file di VS Code jadi halo.py persis. Tunjukkan cara cek nama file: judul tab harus berakhiran .py, bukan .py.txt. |
| Output tidak berubah walau kode sudah diedit | Lupa Ctrl+S sebelum Run — yang jalan masih versi lama. | Tempel mantra satu kata di papan: "SIMPAL" — SIMpan dulu, ALaRun. Aktifkan auto save di VS Code bila tersedia, tapi kebiasaan Ctrl+S tetap dilatih. |
SyntaxError: unterminated string literal |
Tanda kutip tidak lengkap atau tidak konsisten (pasien bug_1 dan bug_5). | Cari ujung teks yang kutipnya kurang, atau samakan pasangan kutipnya (keduanya " atau keduanya '). Melatih: baca nomor baris dulu. |
NameError: name 'pirnt' is not defined |
Ejaan nama fungsi salah (bug_2), atau teks tanpa kutip dianggap variabel (bug_4). | bug_2: perbaiki ejaan jadi print. bug_4: bungkus teks pakai "...". Tegaskan bedanya: print = perintah bawaan, Halo tanpa kutip = Python mencarinya sebagai nama. |
| Siswa panik saat layar penuh teks merah | Messages error dianggap vonis, bukan informasi. | Normalisasi dari kurikulum: programmer pro ketemu error tiap hari — bedanya mereka sudah berteman. Latih ritual 3 langkah: baca baris terakhir (jenis), cari nomor baris + panah (lokasi), perbaiki lalu Run lagi. |
.py di editor secara mandiri.python nama.py di terminal).print() yang outputnya muncul berurutan.# dan menjelaskan kenapa baris itu tidak muncul di output.bug_1.py s.d. bug_5.py) dan bisa menyebut penyakit + obatnya.Hari ini setiap teks yang dicetak itu ketok paku langsung — ditulis di dalam print(), jadi, lupa. Minggu depan teks dan angkanya disimpan dulu di kotak berlabel, baru dipakai: nama, umur, tinggi — masing-masing punya kotaknya sendiri, dan masing-masing punya "jenis" (teks? angka bulat? True/False?). Program sapaan hari ini yang masih tulis "Budi" langsung di kode, minggu depan berubah jadi program yang menyimpan dan menampilkan data dengan rapi.
# Pratinjau Sesi 04: teks disimpan di kotak berlabel (variabel)
nama = "Budi"
umur = 16
print("Siswa:", nama, "| Umur:", umur)
# Output harapan:
# Siswa: Budi | Umur: 16
File halo.py hari ini jadi modal langsung: di Sesi 04 teks-teks itu pindah ke kotak bernama, dan kalian belajar mengenali jenis isi tiap kotak.