Ekstrakurikuler CSSE: Computer Science & Software Engineering (Python)
Perbedaan compiler vs interpreter lebih dalam (kenapa C++ harus di-compile dulu sementara Python langsung jalan), plus tugas rumah "ceritakan ke orang rumah apa itu program dalam 2 kalimat".
Hari ini siswa menempuh barisan ke-1 dari 17 — 6% perjalanan:
| Waktu | Blok | Aktivitas |
|---|---|---|
| 15' | Pembuka | Perkenalan mentor & peserta, kontrak kelas, ice-breaking: "Apa yang menurutmu bisa dilakukan komputer dengan kode?", cover tujuan sesi |
| 25' | Materi 1 | Program = urutan instruksi; hardware vs software (bedah HP siswa); level bahasa mesin → high-level; interpreter vs compiler; kenapa Python untuk pemula |
| 15' | Materi 2 | Algoritma = langkah logis + 5 ciri (input, proses, output, jelas, berhenti); menyusun pseudocode kasus "nasi goreng" |
| 15' | Materi 3 | Flowchart & 4 simbol wajib (terminator, proses, input/output, keputusan); demo flowchart keputusan "Hujan? → bawa payung" |
| 20' | Praktik | Gambar flowchart di kertas: "angka genap?" (wajib) + "beli kopi" (bonus); presentasi 2–3 flowchart siswa di depan kelas |
| 10' | Penutup | Diskusi contoh program sehari-hari (ATM, game, medsos), rangkuman 5 poin, preview Sesi 02, PR opsional |
Program = urutan instruksi yang dijalankan komputer; pemrograman = aktivitas menulis instruksi itu. Analogi paling gampang untuk kelas 10: resep masakan. Koki di resep itu patuh tapi buta — dia nggak pernah mikir "kok garamnya dimasukkan sebelum nasi?", dia kerja PERSIS seperti yang tertulis. Kalau resepnya salah urutan, hasilnya kacau — dan yang salah bukan koki, tapi penulis resepnya. Nah, dari hari ini, siswa adalah penulis resepnya.
Kaitkan dengan benda yang mereka pegang: HP. Hardware = bodi HP (layar, kamera, chip). Software = semua yang nggak bisa disentuh tapi bikin HP berguna: sistem operasi, aplikasi chat, game, filter medsos. Tanpa software, HP cuma kaca dan logam mahal.
Komputer cuma paham bahasa mesin (deretan 0 dan 1). Manusia nggak mungkin menulis 0-1 sepanjang program, jadi ada bertingkat: mesin → assembly → high-level. Analogi: menyuruh bayi balita (mesin) butuh kalimat pendek-pendek dan sangat spesifik; menyuruh teman sekelas (high-level) cukup "tolong matikan lampu". Python = bahasa high-level yang paling mirip English — itulah kenapa dipilih untuk pemula.
Tentang eksekusi: interpreter (Python) itu kayak penerjemah lisan yang membaca baris demi baris dan langsung mengerjakan; compiler (C++) kayak penerjemah buku yang menerjemahkan naskah UTUH dulu, baru naskahnya dipakai. Untuk siswa: Python = ketik, langsung jalan, langsung kelihatan hasilnya. Sederhana, makanya cocok hari pertama.
Algoritma = deret langkah yang jelas dan berurut untuk menyelesaikan masalah. Sebuah langkah disebut algoritma bagus kalau punya 5 ciri: punya input, ada proses, menghasilkan output, setiap langkahnya jelas (tidak ambigu), dan berhenti (tidak muter-muter selamanya). Pseudocode = cara nulis algoritma mirip bahasa manusia — belum Python, belum aturan ketat, yang penting urut dan tak rancu.
Latihan urutan: minta siswa menulis "cara bikin nasi goreng", lalu tukar dua langkah di papan ("goreng nasi" sebelum "potong bawang") dan tanyakan apa yang terjadi. Ini pelajaran pertama tentang logical error: program (resep) jalan tanpa keluh, tapi hasilnya salah — karena penulisnya.
Flowchart = peta; kode = jalanannya. Orang yang mau ke tempat baru buka peta dulu, bukan asal injak gas. Empat simbol yang wajib hafal hari ini: terminator (oval — Mulai/Selesai), proses (persegi — langkah kerja), input/output (jajar genjang — data masuk/keluar), keputusan (belah ketupat — bercabang Ya/Tidak). Simbol keputusan WAJIB punya dua cabang keluar.
Kenalkan mentor dan program CSSE, sepakati kontrak kelas (datang tepat waktu, berani bertanya, error itu bagian belajar). Lalu lempar pertanyaan pembuka dari kurikulum: "Apa yang menurutmu bisa dilakukan komputer dengan kode?" Tulis jawaban siswa di papan tanpa menghakimi — biasanya muncul: main game, edit foto, filter medsos, ATM, unlock sidik jari. Tutup dengan framing: semua itu adalah program — dan mulai hari ini mereka yang akan menulisnya.
Bangun definisi dari analogi resep (bagian 4A): program = urutan instruksi, pemrograman = menulisnya. Minta siswa menyebut hardware dan software dari HP masing-masing — koreksi bersama (WhatsApp = software, kamera = hardware). Lanjut ke bahasa:
# Bahasa manusia (high-level):
print("Halo, St. John!")
# Bahasa mesin yang dilihat komputer (ilustrasi):
# 01001000 01100001 01101100 01101111 ... (0 dan 1)
Tekankan: Python menerjemahkan baris demi baris (interpreter), makanya tinggal ketik dan langsung jalan. Uji cepat: "nyuruh teman = high-level, nyuruh bayi = mesin" — minta 2 contoh lain dari siswa.
Tulis bersama di papan, lalu uji terhadap 5 ciri algoritma:
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
Cek bersama: input = bahan (langkah 2), proses = langkah 3–5, output = nasi goreng (langkah 6), jelas & berhenti = ya. Lalu sabotase: tukar langkah 3 dan 5, tanya "hasilnya gimana?" — siswa harus bisa menjelaskan kenapa urutan itu bagian dari logika.
Gambar keempat simbol di papan dengan labelnya: oval = Mulai/Selesai, persegi = proses, jajar genjang = input/output, belah ketupat = keputusan (Ya/Tidak). Lalu bangun satu contoh keputusan bersama-sama, di papan, tanpa penggaris:
Flowchart "Hujan?":
( Mulai ) -- oval
|
< Lihat ke langit-langit >? -- keputusan (belah ketupat)
/ \
Hujan Tidak
| |
[ Bawa payung ] [ Jalan kaki ] -- proses (persegi)
\ /
( Selesai ) -- oval
Point penting yang harus terlihat di papan: belah ketupat selalu punya DUA cabang keluar, dan semua jalur akhirnya sampai ke Selesai.
Siswa gambar di kertas, individu dulu lalu boleh bahas dengan teman sebangku:
Panggil 2–3 siswa mempresentasikan flowchart-nya di depan; kelas yang lain jadi "penguji" — boleh menunjuk "di cabang ini, kalau jawabannya bukan Ya/Tidak gimana?" Beri apresiasi untuk alur yang bisa dibaca orang lain, bukan yang gambarnya paling rapi.
Diskusi singkat dari kurikulum: contoh program di kehidupan sehari-hari (ATM, game, aplikasi) — sekarang siswa harus bisa menebak "di mana keputusannya" di program itu (ATM: "PIN benar?"). Rangkum 5 poin: program = urutan instruksi; hardware vs software; Python high-level + interpreter; algoritma = 5 ciri; flowchart = peta sebelum coding. Umumkan PR opsional (ceritakan "apa itu program" ke orang rumah + foto flowchart ke grup) dan preview Sesi 02.
Sesi ini tanpa komputer, tapi kode.py berisi program sapaan kecil yang akan dibedah di Sesi 03 ketika mereka akhirnya mengetik. Ini bentuk utuhnya — perhatikan bagaimana setiap blok kode memetakan langkah algoritma yang hari ini mereka tulis di kertas:
"""Sesi 01 - Master Solution: program pertama = algoritma dalam bahasa Python.
Algoritma "Menyapa Teman" (pseudocode, ditulis di kertas dulu):
1. Mulai
2. Siapkan data: nama teman
3. Proses: susun kalimat sapaan
4. Tampilkan sapaan ke layar
5. Selesai
"""
# Langkah 2: data yang dipakai program
# (di Sesi 04, kotak penyimpan seperti ini diberi nama resmi: variable)
nama = "Budi"
# Langkah 3: proses - merangkai kalimat sapaan
pesan = "Halo " + nama + ", selamat belajar Python!"
# Langkah 4: output - tampilkan ke layar
print("Program berjalan berurutan dari atas ke bawah.")
print(pesan)
# Output harapan:
# Program berjalan berurutan dari atas ke bawah.
# Halo Budi, selamat belajar Python!
Poin yang ditekankan saat membedah kode ini nanti: Python membaca instruksi berurutan dari atas ke bawah — persis seperti resep. Tukar dua baris pesan = ... ke atas sebelum nama = "Budi", program langsung protes — itulah alasan algoritma harus berurut sejak di kertas.
| Masalah | Penyebab | Tindakan Perbaikan |
|---|---|---|
| Flowchart tanpa oval Mulai/Selesai | Siswa langsung gambar langkah kerja, lupakan terminator. | Ingatkan ciri kelima algoritma: harus berhenti. Minta semua mulai dari oval dulu, baru isi tengahnya. |
| Belah ketupat cuma punya satu cabang | Belum terbiasa dengan ide "keputusan bercabang". | Tanya: "kalau jawabannya bukan Ya, programnya gimana?" Setiap keputusan wajib dua cabang keluar, keduanya berlanjut sampai Selesai. |
| Alur bercabang tapi ujungnya menggantung | Cabang Tidak tidak dituntaskan sampai terminator. | Pakai aturan papan: "setiap garis harus punya tempat pulang ke ( Selesai )". Siswa saling cek flowchart teman. |
| Pseudocode berubah jadi setengah Python | Siswa yang pernah coding campur dua gaya — setengah manusia, setengah kode. | Jelaskan: pseudocode = bahasa manusia terstruktur (boleh pakai JIKA...MAKA). Python-nya nanti di Sesi 03 ke atas. Dua dunia, jangan dicampur dulu. |
| Urutan langkah salah tapi siswa merasa sudah benar | Langkah lengkap semua, tapi urutannya tidak logis (logical error pertama). | Jalankan "main peran": minta siswa lain EKSEKUSI flowchart/pseudocode temannya baris demi baris. Kesalahan urutan ketahuan sendiri tanpa guru menghakimi. |
| Siswa kecewa "kok nggak coding sama sekali?" | Ekspektasi hari pertama = langsung mengetik kode. | Framing dari kurikulum: flowchart = peta sebelum coding; semua programmer profesional merancang alur dulu. Tanpa peta, minggu-minggu depan mereka tersesat di kode sendiri. |
Hari ini siswa sudah kenal bentuknya algoritma dan empat simbol peta. Pertemuan depan kita asah lebih dalam: dari soal nyata → pseudocode yang rapi → flowchart standar, dengan kasus yang makin menantang (umur masuk bioskop, angka genap/ganjil versi kertas yang lebih tegas). Kertas mereka minggu ini adalah modal langsung: yang terbiasa berpikir alur, nanti mengetik kode jauh lebih tenang.
# Pratinjau Sesi 02: algoritma ditulis sebagai langkah bernomor
print("1. Mulai")
print("2. Baca angka")
print("3. Cek: habis dibagi 2?")
print("4. Tampilkan hasil")
print("5. Selesai")
# Output harapan:
# 1. Mulai
# 2. Baca angka
# 3. Cek: habis dibagi 2?
# 4. Tampilkan hasil
# 5. Selesai
Algoritma yang hari ini ditulis di kertas, di Sesi 03 mulai diubah jadi kode sungguhan — dan langkah bernomor di atas adalah bentuk jembatannya.