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

MODUL 15 — Introduction to AI-Assisted Coding

Ekstrakurikuler CSSE: Computer Science & Software Engineering (Python)

Jenjang Peserta Siswa SMA (Kelas 10–12)
Alokasi Waktu 100 Menit
Fokus Materi AI coding assistant, prompt, verifikasi, etika AI, refactor
Target Selesai Setiap siswa menyusun 1 prompt KBT untuk fungsi, menjalankan hasilnya, dan bisa menjelaskan tiap barisnya
Tools VS Code & Python + contoh output AI (offline)
Prioritas sesi: Wajib: memahami apa itu AI coding assistant dan cara kerjanya, menulis prompt yang jelas (Konteks + Bahasa + Tujuan), memverifikasi kode hasil AI (jalankan, cek error, cek logika), dan etika "AI bantu, kamu yang paham".
Materi pengayaan (opsional jika waktu cukup)

Minta AI melakukan refactor terhadap salah satu fungsi lamamu agar lebih rapi, lalu bandingkan versi sebelum–sesudah; plus latihan "tes paham": jelaskan kode hasil AI ke teman tanpa melihat layar.

1. Tujuan Pembelajaran

  1. Menjelaskan apa itu AI coding assistant (copilot) dan cara kerjanya dengan kalimat sendiri.
  2. Menyebut tiga pekerjaan yang bisa dibantu AI: autocomplete, generate kode baru, dan debug.
  3. Menulis prompt yang jelas dengan pola KBT: Konteks, Bahasa, Tujuan.
  4. Membandingkan hasil dari prompt buruk vs prompt baik dan menjelaskan kenapa hasilnya beda.
  5. Memverifikasi kode hasil AI: menjalankannya, menguji kasus tepi (nilai pas batas, nilai aneh), dan membaca error.
  6. Menolak menyalin buta: bisa menjelaskan setiap baris kode hasil AI ke teman ("tes paham").
  7. Menyebutkan kapan boleh dan kapan tidak boleh memakai AI saat belajar (etika & ketergantungan).
  8. Menyusun 1 prompt untuk fitur Final Project (Sesi 16) sebagai bekal minggu depan.

2. Peta Jalan 17 Pertemuan

Hari ini siswa menempuh barisan ke-15 dari 17 — 88% perjalanan:

[ 01-02 ] Fondasi: konsep program, algoritma, flowchart [ 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 <-- SUDAH LEWAT [ 15 ] AI-Assisted Coding <-- HARI INI (100 Menit) [ 16-17 ] Final Project: Development & Presentation

3. Rundown Waktu Terperinci (100 Menit)

WaktuBlokAktivitas
10'PembukaCover, tujuan sesi, rekap Sesi 14 (Mini Project 2: aplikasi menu + list + file) — proyek itu jadi bahan latihan minggu ini
15'DemoDemo "AI menghasilkan fungsi sederhana" — output AI disimulasikan sebagai teks di layar (kelas offline), lalu kode disalin & dijalankan
25'Materi 1Cara kerja AI coding assistant (autocomplete super) + pola prompt KBT: Konteks, Bahasa, Tujuan; bedah contoh prompt buruk vs baik
30'PraktikSiklus lengkap: tulis prompt → baca hasil AI (teks) → salin → jalankan → uji kasus tepi (75 pas, nilai aneh) → perbaiki kode AI yang salah logika
10'DiskusiEtika & batas: kapan boleh pakai AI, kapan jangan; tes paham "tutup laptop, jelaskan ke teman"; catatan offline dibahas terbuka
10'PenutupRangkuman 5 poin, preview Sesi 16 (Final Project Development), PR opsional: 1 prompt untuk fitur Final Project

4. Pedagogi & Penjelasan Konsep

A. AI Coding Assistant = Asisten Magang Super Cepat

Analogi: autocomplete di HP. Saat chat, HP menebak kata berikutnya dari kamus kata yang pernah kamu pakai. AI coding assistant bekerja sama persis — bedanya kamusnya bukan kata, tapi jutaan kode dari banyak proyek open source. Jadi AI itu seperti asisten magang yang baca buku secepat kilat: kamu minta, dia tulis rapi dalam 3 detik. Tapi magang tetap magang — hasil kerjanya wajib diperiksa bosnya (kamu) sebelum dipakai. AI menebak kode terlihat masuk akal, bukan menjamin kode itu benar.

B. Prompt KBT — Konteks, Bahasa, Tujuan

AI hanya sebagus pertanyaan yang diberikan. Pola yang perlu diingat: KBT.

Bandungkan dengan prompt buruk "buatin kode nilai" — AI bingung: nilai apa? huruf? lulus? jumlahukan? Makin lengkap KBT, makin tepat hasil.

C. AI Membantu, Kamu yang Paham

Ini janji inti sesi 15. AI boleh menulis kode, tapi pemahaman tidak boleh ikut di-outsource. Alat ukurnya sederhana: tutup laptop — kalau kamu bisa menjelaskan tiap baris ke teman, kamu pemilik kode itu. Kalau tidak, kodenya cuma "nganggur" di file-mu dan tidak menambah kemampuanmu. Otot coding seperti otot fisik: kalau selalu minta digendong AI, ototnya tidak tumbuh. Aturan etisnya: boleh minta bantuan, wajib paham hasilnya, haram menyalin buta — terutama saat tugas/ujian yang justru menilai pemahamanmu sendiri.

D. Kode AI Itu Dugaan, Bukan Fakta — dan Kelas Kita Offline

Verifikasi itu bukan formalitas. AI sering menulis kode yang jalan tapi salah logika (misal ambang kelulusan terbalik), atau gagal di kasus tepi: nilai tepat 75, nilai negatif, nilai di atas 100. Karena itu kunci yang diuji hari ini adalah alat verifikasi: jalankan → baca error → uji kasus tepi → tanya "masuk akal nggak?". Error tetap diperlakukan sebagai alarm, bukan aib — justru saat memperbaiki kode AI, kamu belajar lebih banyak daripada saat menyalinnya.

Catatan offline (dari kurikulum): kelas ini tanpa internet — tool AI live (ChatGPT, Copilot, dsb.) tidak bisa diakses. Maka output AI disiapkan sebagai teks di modul ini (anggap layar hasil AI-nya), atau pakai tool lokal bila tersedia di lab. Framing tetap positif: yang dilatih hari ini adalah keterampilannya — menulis prompt, membaca hasil, memverifikasi — dan keterampilan itu sama persis saat nanti kamu online. Jangan biarkan siswa kecewa: prompt yang mereka tulis hari ini tetap sah dan bisa dipakai di rumah.

5. Panduan Praktik Langkah demi Langkah

Langkah 1: Demo — AI Bikin Fungsi Luas (15 menit)

Guru menampilkan prompt berikut (tuliskan di papan, ini contoh KBT lengkap):

Prompt (KBT):
[Konteks] Aku siswa SMA yang sedang belajar Python dasar (baru sampai function).
[Bahasa]  Jawab dengan kode Python, singkat, pakai komentar.
[Tujuan]  Buat fungsi luas_persegi_panjang(panjang, lebar) yang
          mengembalikan hasil kali keduanya, lalu contoh pemanggilannya.

Lalu tampilkan "hasil AI" — versi teks berikut (kelas offline; hasil AI sudah disiapkan):

# Hasil AI (disimulasikan sebagai teks):
def luas_persegi_panjang(panjang, lebar):
    # fungsi mengembalikan luas = panjang * lebar
    return panjang * lebar

hasil_ai = luas_persegi_panjang(4, 5)
print("Hasil contoh:", hasil_ai)

Minta siswa menyalin kode Python-nya (bukan prompt-nya) ke file demo_ai.py dan menjalankan (Run ▶). Diskusikan: hasilnya 20 — benar? Coba juga 7 × 3. Kesimpulan demo: dari nol jadi fungsi dalam hitungan detik — kalau promptnya jelas.

Langkah 2: Prompt Buruk vs Prompt Baik (25 menit)

Bandingkan dua prompt di papan, tanyakan "apa beda hasil yang kira-kira keluar?"

Prompt buruk:   "buatin kode nilai"

Prompt KBT:     [Konteks] Aku siswa SMA, Python dasar, sudah kenal if/elif/else.
                [Bahasa]  Python.
                [Tujuan]  Buat fungsi status_nilai(nilai) yang mengembalikan
                          "Lulus" jika nilai >= 75, selain itu "Remedial".
                          Sertakan 3 contoh pemanggilan: 82, 40, dan 75.

Diskusikan kenapa prompt buruk meleset: "nilai" bisa berarti rata-rata, huruf A–E, atau status lulus — AI nebak, dan tebakannya mungkin bukan yang kamu mau. Lalu bedah hasil AI untuk prompt KBT (teks):

# Hasil AI (disimulasikan sebagai teks):
def status_nilai(nilai):
    if nilai >= 75:
        return "Lulus"
    else:
        return "Remedial"

print(status_nilai(82))   # Lulus
print(status_nilai(40))   # Remedial
print(status_nilai(75))   # Lulus

Sekali lagi: siswa menyalin, menjalankan, membandingkan output dengan yang dijanjikan komentar. Tekankan kebiasaan: klaim di komentar vs output nyata — dua hal yang harus selalu dicocokkan.

Langkah 3: Verifikasi — Uji Kasus Tepi (20 menit)

Kode AI di Langkah 2 terlihat benar. Sekarang jadilah bos yang curiga. Uji 3 kasus tepi:

  1. Nilai pas 75 — hasilnya Lulus (karena >=). Kalau soalmu maksudnya 75 masih Remedial, prompt-nya yang harus berubah, bukan nebak-nebak hasil AI.
  2. Nilai aneh — coba -10 dan 150. Kode AI tetap menjawab "Remedial"/"Lulus" — padahal input itu tidak sah. AI tidak menambahkan pengecekan karena kamu tidak minta!
  3. Input bukan angka — status_nilai("delapan puluh") meledak TypeError. Ini alarm bagus untuk bahas try-except yang akan dipakai di Final Project.

Kesimpulan langkah ini: AI tidak tahu aturanmu kecuali kamu tulis di prompt. Versi prompt yang lebih baik minta validasi:

[Tujuan]  Buat fungsi status_nilai(nilai) yang mengembalikan "Lulus"
          jika 75 <= nilai <= 100, "Remedial" jika 0 <= nilai < 75,
          dan "Nilai tidak valid" untuk input lain di luar 0-100.

Langkah 4: Perbaiki Kode AI (10 menit)

Guru menampilkan "hasil AI" yang sengaja mengandung bug halus (bikin sendiri, jangan disebut dulu ada bug-nya):

# Hasil AI (disimulasikan sebagai teks):
def status_nilai(nilai):
    if nilai > 75:
        return "Lulus"
    else:
        return "Remedial"

Tugas siswa: jalankan status_nilai(75) → muncul Remedial, padahal harusnya Lulus. Ini logical error: kode jalan tanpa SyntaxError tapi logikanya salah — jenis error tersulit karena tidak ada alarm bunyi. Perbaikan: > 75 menjadi >= 75. Framing: menemukan bug dari hasil AI bukan bukti AI jelek — itu bukti verifikasimu bekerja.

Langkah 5: Diskusi Etika & Tes Paham (10 menit)

Diskusi kelompok kecil, 3 pertanyaan pemicu:

  1. Kapan boleh pakai AI? (belajar mandiri, minta contoh, minta jelaskan error, refactor kode sendiri)
  2. Kapan tidak boleh? (tugas/ujian yang menilai kemampuanmu sendiri, menyalin buta tanpa paham)
  3. Cara tahu kamu "paham" atau cuma "punya"? Tes paham: tutup laptop, jelaskan kode Langkah 4 ke teman sebangku.

Tutup dengan pertanyaan jujur: kalau besok tanpa AI, kamu masih bisa nulis status_nilai sendiri? Harusnya bisa — itu targetnya.

Langkah 6: Rangkuman & Preview Final Project (10 menit)

Rangkum 5 poin: (1) AI = autocomplete super dari jutaan kode, (2) prompt KBT = Konteks-Bahasa-Tujuan, (3) verifikasi: jalankan + uji kasus tepi + cek logika, (4) AI membantu, kamu yang paham — tes paham, (5) ketergantungan membuat otot coding tidak tumbuh. Lalu preview minggu depan dan berikan PR opsional: tulis 1 prompt KBT untuk satu fitur Final Project-mu (domain bebas: Nilai Siswa, Perpustakaan, Kasir, Kontak, Todo) — akan langsung terpakai di Sesi 16.

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

Karena kelas offline, solusi utuh hari ini berbentuk simulator mini: program yang memainkan seluruh siklus "prompt → hasil AI (teks) → verifikasi" tanpa internet. Simpan sebagai ai_assistant_sim.py dan jalankan:

# AI-Assistant Simulator — Sesi 15 (offline)
# Siklus lengkap: prompt KBT -> hasil AI (teks) -> verifikasi

def luas_persegi_panjang(panjang, lebar):
    # Hasil "AI" untuk prompt demo (Langkah 1)
    return panjang * lebar

def status_nilai(nilai):
    # Hasil "AI" untuk prompt KBT (Langkah 2-3), sudah diperbaiki (Langkah 4)
    if 0 <= nilai < 75:
        return "Remedial"
    elif 75 <= nilai <= 100:
        return "Lulus"
    else:
        return "Nilai tidak valid"

# ---- Bagian 1: demo luas ----
prompt = "[Konteks] siswa SMA Python dasar | [Bahasa] Python | \
[Tujuan] fungsi luas_persegi_panjang(panjang, lebar)"
print("Prompt :", prompt)
hasil_ai = luas_persegi_panjang(4, 5)
print("Hasil contoh:", hasil_ai)          # Hasil contoh: 20
print("Verifikasi:", hasil_ai == 20)      # Verifikasi: True

# ---- Bagian 2: verifikasi status_nilai dengan kasus tepi ----
uji = [82, 40, 75, -10, 150]
for n in uji:
    print(f"status_nilai({n}) => {status_nilai(n)}")
# status_nilai(82) => Lulus
# status_nilai(40) => Remedial
# status_nilai(75) => Lulus          (kasus tepi: pas 75 masuk Lulus)
# status_nilai(-10) => Nilai tidak valid
# status_nilai(150) => Nilai tidak valid

# ---- Bagian 3: prompt Final Project (PR) ----
prompt_pr = ("[Konteks] Final Project CLI Python, list[dict] + menu while True | "
             "[Bahasa] Python | [Tujuan] fungsi tambah_data() + validasi try-except")
print("PR — prompt untuk Final Project:")
print(prompt_pr)

Penjelasan singkat: fungsi status_nilai di sini adalah "hasil AI yang sudah diverifikasi & diperbaiki" — rentang 0–100 dijaga, dan kasus tepi 75 jatuh ke Lulus karena 75 <= nilai. Bagian 2 adalah kebiasaan verifikasi yang wajib terbawa: uji bukan cuma kasus normal, tapi juga tepi batas dan nilai aneh. Bagian 3 menunjukkan prompt KBT langsung dipakai untuk kebutuhan nyata minggu depan.

7. Troubleshooting Guide (Pegangan Guru)

Masalah Penyebab Tindakan Perbaikan
Siswa langsung salin kode "hasil AI" tanpa membaca Terlena cepatnya — kodenya jalan, jadi dianggap selesai. Terapkan tes paham: tutup laptop, jelaskan tiap baris ke teman. Yang belum bisa → baca ulang bersama, baru lanjut.
Kode hasil AI error saat dijalankan (IndentationError / NameError) Salin-tempel kacau: indentasi campur tab-spasi, atau nama variabel beda dengan pemanggilan. Baca pesan error dari baris teratas. Baca error sebagai alarm: "baris berapa, keliru apa?" Ini latihan debug standar.
Prompt terlalu pendek, hasil "meleset" Prompt tanpa KBT — "buatin kode nilai" memicu AI nebak-nebak. Bedah bersama: mana Konteks, Bahasa, Tujuan yang hilang? Tulis ulang prompt, bandingkan hasilnya.
Siswa kecewa: "juga harusnya kita pakai ChatGPT beneran" Ekspektasi akses tool live, kelas tanpa internet. Framing offline: yang dilatih adalah keterampilan (prompt + verifikasi), bukan tool-nya. Prompt yang ditulis hari ini tetap bisa dipakai online di rumah.
Kode AI jalan tanpa error tapi jawabannya salah (75 → Remedial) Logical error: operator > vs >=; tidak ada pesan error karena kode sah. Selalu ada "uji kasus tepi" (75, 0, 100, -10). Cocokkan output dengan aturan yang diminta di prompt.
Siswa jadi tergantung: tanpa AI panik dan tidak bisa menulis apa-apa AI dipakai sebagai gendong, bukan asisten. Aturan otot coding: kerjakan sendiri dulu, minta AI (di sini: simulasi teks) hanya setelah usaha mandiri. Tanya: "kalau besok tanpa AI, kamu masih bisa?"

8. Checklist Evaluasi Siswa

9. Jembatan ke Pertemuan Berikutnya (Sesi 16)

Hari ini kamu belajar meminta bantuan asisten yang cepat namun butuh diperiksa. Minggu depan Final Project Development: semua bekal 14 pertemuan — variabel, list, fungsi, file, try-except — dirangkai jadi satu aplikasi utuh berbasis menu + file. AI (dalam bentuk apa pun) boleh jadi asisten, tapi kamu bosnya: proyek jalan karena keputusanmu. Pilih domainmu minggu ini: Nilai Siswa, Perpustakaan Mini, Kasir Warung, Kontak, atau Todo.

# Kerangka yang akan kamu bangun minggu depan:
data = []   # list[dict] — semua catatanmu tinggal di sini

while True:
    print("1. Lihat  2. Tambah  3. Cari  4. Hapus  5. Statistik  6. Keluar")
    pilihan = input("Pilih menu: ")
    if pilihan == "6":
        print("Sampai jumpa!")
        break

Menu while True ini adalah pintu masuk aplikasimu — di Sesi 16 kita isi tiap opsi dengan fungsi, lalu simpan datanya ke file.