"""Sesi 03 — Getting Started with Coding | Kode Pendamping Lengkap
SMAS St. John · Ekskul CSSE (Python)

Cara pakai:
  1. Simpan file ini, buka di VS Code
  2. Tekan Run (atau ketik di terminal: python kode.py)
  3. Baca output di terminal — lalu baca komentar di dalamnya:
     setiap BAGIAN sesuai urutan slide deck Sesi 03

CATATAN CHALLENGE KLINIK BUG:
  Pasien klinik ada di file bug_1.py s.d. bug_5.py (folder sesi ini).
  File bug TIDAK boleh diubah sebelum kelas — itu pasiennya.
  Di file ini, BAGIAN 5 berisi catatan dokter: penyakit + alarm +
  obat tiap pasien, sebagai kunci jawaban setelah challenge.

File ini mengikuti alur deck:
  BAGIAN 1 = print & komentar            (slide 06-07)
  BAGIAN 2 = eksekusi berurutan          (slide 06)
  BAGIAN 3 = tugas 1: program pertamamu  (slide 09)
  BAGIAN 4 = membaca pesan error         (slide 10)
  BAGIAN 5 = klinik bug bug_1..bug_5     (slide 12-13)
  BAGIAN 6 = case kumulatif: sapaan      (bekal Sesi 04)
"""

# ============================================================
# BAGIAN 1 — print() & komentar (slide 06-07)
# ============================================================
# print() = suruh komputer bicara: tampilkan ke layar.
# Baris yang diawali # = komentar: catatan untuk MANUSIA,
# di-skip Python sepenuhnya.

print("Halo, Python!")          # output: Halo, Python!
print("Komentar tidak dijalankan oleh Python.")
print("Simpan file, lalu jalankan.")

# Edit kode, simpan (Ctrl+S), lalu jalankan lagi.
print("Baris kode dieksekusi berurutan.")

# ============================================================
# BAGIAN 2 — eksekusi berurutan (slide 06)
# ============================================================
# Python membaca file dari ATAS ke BAWAH, baris demi baris.
# Bukti: tukar urutan dua print di bawah, Run ulang —
# output ikut bertukar, persis seperti resep Sesi 01.

print("Ini baris pertama.")     # output: Ini baris pertama.
print("Ini baris kedua.")       # output: Ini baris kedua.

# ============================================================
# BAGIAN 3 — Tugas 1: program pertamamu (slide 09)
# ============================================================
# Tugas kelas: file sapa.py buatanmu sendiri (3+ baris print
# tentang dirimu + komentar judul). Contoh bentuknya:

# --- contoh sapa.py ---
# # Sapa diriku - Kevin - CSSE St. John
# print("Halo, aku Kevin!")
# print("Aku kelas 10 dan hobi futsal.")
# print("Mie ayam itu makanan terbaik.")
# Output harapan:
# Halo, aku Kevin!
# Aku kelas 10 dan hobi futsal.
# Mie ayam itu makanan terbaik.

# Ritme yang dilatih: Ketik -> Ctrl+S -> Run -> baca output.

# ============================================================
# BAGIAN 4 — membaca pesan error (slide 10)
# ============================================================
# Error itu ALARM, bukan aib. Ritual 3 langkah saat layar merah:
#   1. Baris terakhir pesan = JENIS errornya
#   2. Nomor baris + panah ^ = LOKASInya
#   3. Perbaiki -> Ctrl+S -> Run lagi

# Contoh alarm (JANGAN di-run, hanya baca):
# print("Halo"
# Alarmnya: SyntaxError: expected ')'
# Lokasinya: line 1, panah ^ menunjuk tempat kurung hilang.
# Obatnya: tambahkan ) di ujung.

# Tiga jenis error yang dikenal hari ini:
#   SyntaxError  = bentuk kalimat rusak -> ditolak sebelum jalan
#   Runtime error = resep valid tapi tabrakan saat jalan
#   Logical error = jalan mulus tapi HASILNYA salah (paling licik,
#                   tidak ada alarm merahnya!)

# ============================================================
# BAGIAN 5 — klinik bug: penyakit + alarm + obat (slide 12-13)
# ============================================================
# Pasien asli: file bug_1.py s.d. bug_5.py — JANGAN diedit dulu.
# Setelah challenge selesai, cocokkan diagnosis kalian di sini:

# PASIEN 1 (bug_1.py): kutip tutup hilang
#   print("Halo dunia)
#   Alarmnya: SyntaxError: unterminated string literal
#   Obat: tambahkan " di ujung — kutip wajib berpasangan.

# PASIEN 2 (bug_2.py): ejaan fungsi salah
#   pirnt("Apa kabar?")
#   Alarmnya: NameError: name 'pirnt' is not defined
#   Obat: perbaiki ejaan jadi print (huruf kecil semua).

# PASIEN 3 (bug_3.py): kurung tutup hilang
#   print("Halo"
#   Alarmnya: SyntaxError: expected ')'
#   Obat: tambahkan ) di ujung.

# PASIEN 4 (bug_4.py): teks tanpa kutip
#   print(Halo)
#   Alarmnya: NameError: name 'Halo' is not defined
#   Penyakitnya: tanpa kutip, Python mengira Halo nama VARIABEL
#   lalu mencarinya dan tidak ketemu.
#   Obat: bungkus pakai "..." jadi print("Halo").

# PASIEN 5 (bug_5.py): kutip tidak konsisten
#   print('Sampai jumpa")
#   Alarmnya: SyntaxError: unterminated string
#   Obat: samakan pasangannya — keduanya " atau keduanya '.

# Pola besarnya: bug 1/3/5 = keluarga SyntaxError (bentuk rusak),
# bug 2/4 = keluarga NameError (nama tidak dikenal).

# Versi SEHAT dari kelima pasien — boleh di-run:
print("Halo dunia")             # output: Halo dunia
print("Apa kabar?")             # output: Apa kabar?
print("Sampai jumpa")           # output: Sampai jumpa

# ============================================================
# BAGIAN 6 — case kumulatif: program sapaan (bekal Sesi 04)
# ============================================================
# Program pertama yang utuh. Perhatikan baris ber-tanda:
# "nama" untuk sementara adalah kotak penyimpan teks —
# dibedah tuntas di Sesi 04 dengan nama resminya: variabel.

nama = "Budi"
print("Halo, " + nama + "!")    # output: Halo, Budi!
print("Program pertama berhasil dijalankan.")
# output: Program pertama berhasil dijalankan.
