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

MODUL 01 — Introduction to Programming

Ekstrakurikuler CSSE: Computer Science & Software Engineering (Python)

Jenjang Peserta Siswa SMA (Kelas 10–12)
Alokasi Waktu 100 Menit
Fokus Materi program, algoritma, pseudocode, flowchart
Target Selesai Setiap siswa menuntaskan flowchart "angka genap?" di kertas dan bisa menjelaskannya
Tools Kertas & papan untuk flowchart (sesi tanpa komputer)
Prioritas sesi: Wajib: pengertian program & pemrograman, hardware vs software, level bahasa (mesin → high-level) + kenapa Python, algoritma beserta 5 cirinya, pseudocode, dan flowchart dengan 4 simbol (terminator, proses, input/output, keputusan). Praktik utama: flowchart "menentukan apakah suatu angka genap" di kertas.
Materi pengayaan (opsional jika waktu cukup)

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

1. Tujuan Pembelajaran

  1. Menjelaskan apa itu program & bahasa pemrograman dengan kalimat sendiri.
  2. Membedakan perangkat keras (hardware) dan perangkat lunak (software) lewat contoh benda yang mereka pegang setiap hari.
  3. Menggambarkan alur kerja interpreter Python secara sederhana dan menyebut alasan Python cocok untuk pemula.
  4. Mendefinisikan algoritma sebagai deret langkah logis dan menyebut minimal 3 dari 5 cirinya (input, proses, output, jelas, berhenti).
  5. Menyusun algoritma sederhana dalam bentuk pseudocode (kasus "nasi goreng").
  6. Membaca dan membuat flowchart dengan 4 simbol dasar: terminator, proses, input/output, keputusan.
  7. Menjelaskan kenapa urutan langkah penting dengan satu contoh akibat kalau urutan diacak.
  8. Membuat flowchart "menentukan apakah suatu angka genap" di kertas dan mempresentasikannya di depan kelas.

2. Peta Jalan 17 Pertemuan

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

[ 01-02 ] Fondasi: konsep program, algoritma, flowchart <-- HARI INI (100 Menit) [ 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

3. Rundown Waktu Terperinci (100 Menit)

WaktuBlokAktivitas
15'PembukaPerkenalan mentor & peserta, kontrak kelas, ice-breaking: "Apa yang menurutmu bisa dilakukan komputer dengan kode?", cover tujuan sesi
25'Materi 1Program = urutan instruksi; hardware vs software (bedah HP siswa); level bahasa mesin → high-level; interpreter vs compiler; kenapa Python untuk pemula
15'Materi 2Algoritma = langkah logis + 5 ciri (input, proses, output, jelas, berhenti); menyusun pseudocode kasus "nasi goreng"
15'Materi 3Flowchart & 4 simbol wajib (terminator, proses, input/output, keputusan); demo flowchart keputusan "Hujan? → bawa payung"
20'PraktikGambar flowchart di kertas: "angka genap?" (wajib) + "beli kopi" (bonus); presentasi 2–3 flowchart siswa di depan kelas
10'PenutupDiskusi contoh program sehari-hari (ATM, game, medsos), rangkuman 5 poin, preview Sesi 02, PR opsional

4. Pedagogi & Penjelasan Konsep

A. Program Itu Resep, Komputer Itu Koki yang Patuh tapi Buta

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.

B. Bahasa Mesin vs Bahasa Manusia — Kenapa Kita Pilih Python

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.

C. Algoritma = Resep yang Lulus Uji 5 Ciri

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.

D. Flowchart = Peta Sebelum Berangkat, Error = Alarm

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.

Catatan pengajar: sesi ini sengaja tanpa komputer — tanam kebiasaan "pikirkan alur dulu di kertas" sebelum ikut coding (dari kurikulum resmi). Kaitkan konsep abstrak dengan benda nyata. Kalau ada siswa yang flowchart-nya "salah", posisikan sebagai alarm yang bunyi lebih awal: menemukan alur yang salah di kertas jauh lebih murah daripada menemukannya di dalam kode minggu-minggu berikutnya.

5. Panduan Praktik Langkah demi Langkah

Langkah 1: Pembukaan dan Ice-breaking (15 menit)

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.

Langkah 2: Bedah "Program" dan Level Bahasa (25 menit)

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.

Langkah 3: Pseudocode "Nasi Goreng" (15 menit)

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.

Langkah 4: Kenalan 4 Simbol Flowchart (15 menit)

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.

Langkah 5: Praktik Utama — Flowchart di Kertas (20 menit)

Siswa gambar di kertas, individu dulu lalu boleh bahas dengan teman sebangku:

  1. Wajib (penilaian kurikulum): flowchart "menentukan apakah suatu angka genap" — input sebuah angka, keputusan "habis dibagi 2?", output "genap" atau "ganjil".
  2. Bonus: flowchart "beli kopi di kantin" (input uang, keputusan "uang cukup?", proses bayar/ambil kembalian).

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.

Langkah 6: Diskusi, Rangkuman, Preview (10 menit)

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.

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

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.

7. Troubleshooting Guide (Pegangan Guru)

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.

8. Checklist Evaluasi Siswa

9. Jembatan ke Pertemuan Berikutnya (Sesi 02)

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.