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

MODUL 03 — Getting Started with Coding

Ekstrakurikuler CSSE: Computer Science & Software Engineering (Python)

Jenjang Peserta Siswa SMA (Kelas 10–12)
Alokasi Waktu 100 Menit
Fokus Materi print(), #komentar, .py, Run, SyntaxError
Target Selesai File halo.py pertama jalan + kelima bug "disembuhkan" dengan membaca pesan error
Tools VS Code & Python (Run ▶)
Prioritas sesi: Wajib: mengoperasikan editor (VS Code) untuk menulis kode, membuat & menyimpan file .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).
Materi pengayaan (opsional jika waktu cukup)

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.

1. Tujuan Pembelajaran

  1. Mengoperasikan editor (VS Code / IDLE) untuk membuat, menyimpan, dan membuka file .py.
  2. Menjalankan file Python lewat dua jalan: tombol Run dan perintah terminal python nama.py.
  3. Menulis program sederhana dengan print() yang mencetak beberapa baris output.
  4. Menggunakan komentar # dan menjelaskan kenapa baris komentar tidak dieksekusi.
  5. Membedakan REPL (interaktif) dan file script, plus kapan masing-masing cocok dipakai.
  6. Membaca pesan error Python: menemukan nomor baris, panah ^, dan jenis errornya.
  7. Membedakan tiga jenis error: syntax error, runtime error, logical error.
  8. "Menyembuhkan" 5 bug syntax dengan tenang, membaca pesan error dulu sebelum mengubah kode.

2. Peta Jalan 17 Pertemuan

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

[ 01-02 ] Fondasi: konsep program, algoritma, flowchart <-- SUDAH LEWAT [ 03-05 ] Mulai coding: print, variabel, input/output <-- HARI INI (100 Menit) [ 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

3. Rundown Waktu Terperinci (100 Menit)

WaktuBlokAktivitas
10'PembukaCover, tujuan sesi, kontrak kelas; recap flowchart genap/ganjil dari kertas → bridging ke print(); mantra hari ini: "flowchart = peta, kode = jalan"
15'SetupCek kesiapan tiap komputer: Python terpasang (python --version), VS Code terbuka, buat folder kerja; kenalan REPL vs file script
20'Materi + DemoDemo 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 MandiriSiswa 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'PenutupRangkuman 5 poin + debrief "error pertamamu apa?"; preview Sesi 04, PR iseng opsional

4. Pedagogi & Penjelasan Konsep

A. Pertama Kali Nyetir: Peta Sudah di Tangan, Sekarang Injak Gas

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.

B. REPL vs File Script — Ngobrol Langsung vs Pidato Tersimpan

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.

C. Komentar = Catatan Tempel untuk Manusia

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).

D. Error Itu Alarm, dan Pesan Merah Adalah Instruksinya

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.

Catatan pengajar: ini first coding day — pastikan Python & editor siap di tiap komputer sebelum sesi mulai, dan tekankan jangan takut SyntaxError (dari kurikulum resmi). Biarkan siswa MENGALAMI error; biasakan membaca pesan error Python sebelum mengubah apa pun. Larangan guru: jangan pernah rebutan keyboard. Tunjuk barisnya dengan kata, biarkan jari siswa sendiri yang memperbaiki.

5. Panduan Praktik Langkah demi Langkah

Langkah 1: Pembukaan dan Recap Kertas → Kode (10 menit)

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".

Langkah 2: Setup — Pastikan Semua Komputer Siap (15 menit)

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.

Langkah 3: Program Pertama — halo.py (20 menit)

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.

Langkah 4: Praktik Mandiri — Program Milikmu Sendiri (25 menit)

Siswa membuat file sendiri, misal sapa.py, dengan tugas bertingkat (guru keliling, prioritas: semua pernah lihat output jalan):

  1. Ubah teks output halo.py jadi sapaan versi sendiri (minimal 3 baris print).
  2. Tambahkan minimal 2 komentar: satu judul di baris paling atas, satu menjelaskan salah satu baris kode.
  3. Level 3: temukan dan perbaiki 1 error yang disengaja guru di papan (misal 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.

Langkah 5: Challenge — Klinik Bug, Sembuhkan 5 Pasien (20 menit)

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).

Langkah 6: Rangkuman dan Preview Sesi 04 (10 menit)

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.

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

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.

7. Troubleshooting Guide (Pegangan Guru)

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.

8. Checklist Evaluasi Siswa

9. Jembatan ke Pertemuan Berikutnya (Sesi 04)

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.