Ekskul CSSE · SMAS St. John — BINUSPertemuan 5
05
Mulai Coding · Sesi 05 — Input & Output
Input &
Output

Hari ini programmu pertama kali bertanya — bukan lagi pengumuman satu arah, tapi percakapan.

TUJUAN 01
Pakai input() — dan pahami kenapa hasilnya selalu string
TUJUAN 02
Susun kalimat output rapi dengan f-string + atur sep/end
TUJUAN 03
Konversi int()/float() sebelum berhitung — tanpa TypeError
Target Hari Ini

Hari ini programmu belajar bertanya

Tujuan Pembelajaran
  • Menerima data dari pengguna dengan input() + prompt yang jelas
  • Menampilkan output dengan print(), termasuk sep & end
  • Menyusun kalimat rapi dengan f-string
  • Mengonversi input angka ke int/float sebelum dihitung
input()print()f-stringint() / float()tanpa TypeError

* prompt = teks pertanyaan di dalam input() · konversi = mengubah tipe data, mis. teks "16" jadi angka 16.

?
Kenapa penting?

Game, kalkulator, chatbot — semuanya dimulai dari satu kebiasaan: tanya, simpan, jawab.

Analogi hari ini

input() = formulir pendaftaran — panitia nggak menebak namamu, mereka kasih kolom kosong lalu menunggu.

Dan isinya — apa pun bentuknya — dicatat sebagai tulisan.

Sebelum gas — minggu lalu kamu sudah punya apa?

Rekap Sesi 04 · Variables & Data Types

Yang sudah kamu pegang
  • Variabel = kotak berlabel — simpan nilai, panggil lagi kapan pun
  • 4 tipe data — int, float, str, bool
  • type() & konversi int()/float()/str()
  • snake_case — nama variabel yang sopan

Masih inget bedanya int dan str? Jawabanmu hari ini langsung kepakai — karena input() selalu memberimu str.

Kuis kilat — coba jawab dulu!
ADi Python, "16" itu tipe datanya apa?
BDi Python, 16 (tanpa petik) itu tipe datanya apa?
jawabannya A = string (tulisan), B = int (angka). Beda satu pas petik, beda perilaku — hari ini kamu akan merasakan bedanya di dunia nyata.
!

Peta perjalanan: kamu di barisan ke-5 dari 17 — sudah 29% perjalanan!

Programmu jago bicara — tapi belum pernah mendengarkan

input() — suruh program mendengarkan

Code — dua baris, program interaktif pertama
nama = input("Siapa namamu? ")
print("Halo,", nama)
Yang terjadi saat Run
  • Program berhenti sejenak — menampilkan pertanyaan
  • Kursor diam di terminal — itu bukan macet, itu menunggu
  • Kamu ketik + Enter — jawaban disimpan ke variabel
Output
Siapa namamu? Budi
Halo, Budi

Budi itu ketikan kamu — bukan yang ditulis di kode. Program membaca dunia luar untuk pertama kalinya.

⌨

Dari sini semua game & chatbot lahir: tanya → simpan → proses → jawab balik.

Jebakan nomor satu pemula — dan jawabannya dua slide lagi

Aturan emas: input() selalu string

Code — ketik 16, yang tersimpan apa?
umur = input("Umur: ")   # kamu ketik: 16
print(umur + umur)
Tebak output-nya!

32? Salah. Yang muncul: 1616 — karena "16" itu tulisan, dan + untuk teks artinya menyambung, bukan menjumlah.

Analogi formulir

Panitia menerima apa pun yang kamu tulis di kolom umur sebagai catatan tertulis — walau isinya "16". Mau dihitung? Tulisannya harus diubah jadi angka dulu.

KETIK DI INPUT
16 → "16"
MAU DIHITUNG
int("16") → 16
!

Satu kalimat yang wajib nempel: mau dihitung? bungkus dulu dengan int() atau float().

Kenapa kode yang tadi kelihatan benar malah meledak?

TypeError — alarm tipe yang tidak cocok

Code — sengaja kita bikin error (bareng!)
umur = input("Umur: ")   # ketik: 16
print(umur + 1)      # BOOM!
Pesan error yang muncul
TypeError: can only concatenate str
(not "int") to str

Terjemahan bebas: "teks + angka? Saya nggak bisa."

Cara membacanya — 3 langkah
  1. Jenis error — TypeError: tipe data tidak cocok
  2. Lokasi — Python tunjuk barisnya langsung
  3. Penyebab — umur masih str, 1 itu int

Error itu alarm, bukan pembongkar — dia bilang apa yang salah & di mana. Kamu cuma perlu membacanya.

→

Obatnya satu baris — dibuka di slide berikutnya: bungkus dengan int().

Satu bungkus fungsi — boom tadi jadi program yang benar

int() & float() — ubah tulisan jadi angka

Code — versi yang benar
umur = int(input("Umur: "))
print("Tahun depan:", umur + 1)

tinggi = float(input("Tinggi (m): "))
print("Tinggimu", tinggi, "meter")
Milih mana?
int()bilangan bulat — umur, jumlah, skor
float()boleh desimal — tinggi 1.65, berat 47.5
Output
Umur: 16
Tahun depan: 17
Tinggi (m): 1.65
Tinggimu 1.65 meter

Bukti cepat dengan type(): sebelum konversi str, sesudahnya int. Coba sendiri: print(type(umur)).

!

Ukurannya jangan ketuk dua kali: int(input(...)) langsung jadi satu — baca dari dalam ke luar.

Bintang utama hari ini — kalimat rapi tanpa drama

f-string — selipkan variabel ke kalimat

Code — huruf f + kurung kurawal
nama = "Budi"
umur = 16

print(f"Halo, {nama}! Umurmu {umur}.")
print(f"Tahun depan kamu {umur + 1}.")
Kenapa f-string menang
  • Tidak perlu tutup-buka petik untuk nyambung teks
  • Tidak perlu str() dulu — angka otomatis diubah
  • Kalimat kebaca utuh, seperti tulisan finalnya
Output
Halo, Budi! Umurmu 16.
Tahun depan kamu 17.
Rahasia kecil

Di dalam {} boleh ekspresi, bukan cuma variabel: {umur + 1} dihitung dulu, hasilnya baru dicetak.

→

Bandingkan versi koma: print("Halo,", nama, "!") — ada spasi nyempil sebelum !. f-string tidak punya masalah itu.

Giliran kamu — programmu siap diajak ngobrol

Tugas 1 · Program sapaan pertama

Kerjakan berurutan — 3 level
  1. Sapaan dasar — tanya nama lewat input(), jawab dengan f-string: Halo, ...! Selamat belajar Python.
  2. Tanya umur — konversi int(), cetak Tahun depan kamu ... tahun.
  3. Cek type() — cetak type(nama) dan type(umur) — buktikan bedanya sebelum & sesudah konversi
Petunjuk kalau macet

Kursor diam = program nunggu kamu ketik — klik terminal dulu, ketik, Enter. Error? Baca 3 langkahnya: jenis, lokasi, penyebab.

Contoh jalannya program (level 2)
Siapa namamu? Budi
Umur: 16
Halo, Budi! Selamat belajar Python.
Tahun depan kamu 17 tahun.
⏱

Waktu: 10 menit. Yang selesai duluan — uji dengan nama teman sebangku & umur dia.

print() ternyata punya tombol atur — kamu tahu sekarang

sep & end — atur cetakanmu

Code — dua tombol kecil
print("CSSE", "Input", "Output", sep=" | ")
print("Belajar", end=" -> ")
print("berhasil")
Apa fungsinya
seppemisah antar nilai — default: satu spasi
endpenutup tiap cetakan — default: pindah baris
Output
CSSE | Input | Output
Belajar -> berhasil

Dua print() terakhir nempel satu baris — karena end=" -> " meniadakan pindah baris.

?

Coba tebak dulu: sep="..." hasilnya apa? Prediksi, baru Run — itu kebiasaan programmer sungguhan.

Level up — program yang benar-benar menghitung

Tugas 2 · Luas persegi panjang

Kerjakan berurutan — 2 level
  1. Level bulat — input panjang & lebar (pakai float()), hitung luas = panjang * lebar, cetak dengan f-string
  2. Uji dua kasus — 10 & 5 → 50.0, lalu 2.5 & 4 → 10.0. Kenapa muncul .0? Karena float — dan itu wajar.
Kerangka mulai
panjang = float(input("Panjang (m): "))
lebar   = float(input("Lebar (m): "))
luas = ...
print(f"...")
Contoh jalannya program
Panjang (m): 2.5
Lebar (m): 4
Luas 2.5 x 4.0 = 10.0 meter persegi

Simpan luas di variabel terpisah — jangan dijitip langsung di print(). Kebiasaan kecil, kode jauh lebih kebaca.

⏱

Waktu: 10 menit. Ini studi kasus kumulatifmu: input (hari ini) × operator (minggu depan full) × f-string.

Tantangan terakhir sebelum pulang

Challenge · Identitas lengkap

Misi — kartu perkenalan otomatis
  1. Tanya 3 data: nama, umur (int), kota
  2. Cetak kalimat perkenalan utuh dengan f-string
  3. Tambah baris penutup versi kamu — bebas kreatif
Alat yang kamu pegang

input() + konversi int() + f-string + sep/end — semuanya pelajaran 30 menit terakhir. Tidak ada yang baru — ini digabung.

Contoh jalannya program
Nama: Budi
Umur: 16
Kota: Bekasi
Halo, namaku Budi, umur 16 tahun, dari Bekasi.
Senang bertemu! Sisaku paling suka matematika.
⏱

Waktu: 10 menit. Yang cepat: tambah input keempat (hobi) dan selipkan ke kalimat.

Gimana cara menyelesaikannya?

Pembahasan Challenge — kode lengkap

Salah satu solusi (ada banyak variasi yang benar)
nama = input("Nama: ")
umur = int(input("Umur: "))
kota = input("Kota: ")

print(f"Halo, namaku {nama}, umur {umur} tahun, dari {kota}.")
print(f"Satu tahun lagi kamu berumur {umur + 1} tahun.")
Kenapa kode ini jalan?
  • umur dibungkus int() — siap dihitung
  • {umur + 1} — ekspresi di dalam f-string
  • Kalimat panjang tetap satu baris kode — tidak pecah-pecah
Yang layak dibanggakan

Kode yang menjawab 3 pertanyaan berbeda dan menyusun jawabannya jadi satu kalimat utuh — itu sudah program interaktif sungguhan.

!

Yang sampai sini dengan usaha sendiri — kamu sudah nulis percakapan pertamamu dengan komputer.

Programmu macet atau meledak? Mungkin kamu kena salah satu ini

Kotak masalah — 4 jebakan input & output

Jebakan 01
Lupa konversi → TypeError
umur = input("Umur: ")   # tetap str
print(umur + 1)          # BOOM!

Gejala: TypeError: can only concatenate str (not "int") to str. Obat: bungkus int()/float().

Jebakan 02
User ketik bukan angka → ValueError
umur = int(input("Umur: "))
# ketik "delapan" → ValueError!

Gejala: ValueError: invalid literal for int(). Itu alarm "isi formulirnya salah" — bukan program rusak. Coba lagi dengan angka murni.

Jebakan 03
Kursor diam — dikira macet
nama = input("Nama: ")
# kursor berkedip... nunggu kamu!

Itu bukan hang — input() sedang menunggu. Klik terminal, ketik jawaban, Enter.

Jebakan 04
Kaget hasil 50.0, bukan 50
luas = 10.0 * 5.0
print(luas)   # 50.0 — float!

Bukan bug — float memang selalu tampil dengan .0. Diskusikan kapan butuh desimal, kapan tidak.

Bonus jebakan: NameError: name 'nama' is not defined — variabel dipakai sebelum diisi, atau salah eja (NAMA vs nama). Python peka huruf besar-kecil!

Rangkuman · Yang kita bawa pulang

5 poin hari ini — programmu bisa ngobrol

01
input() = formulir — program berhenti, menunggu, lalu menyimpan ketikanmu
02
Input selalu string — ketik 16, yang tersimpan "16" (tulisan), bukan angka
03
Mau dihitung? Bungkus dulu — int() untuk bulat, float() untuk desimal
04
f-string f"Halo {nama}" — kalimat rapi, variabel & ekspresi masuk langsung
05
sep atur pemisah, end atur penutup — dan TypeError/ValueError itu alarm yang bisa kamu baca
Program pengumuman resmi jadi ngobrol Next → Operators & Expressions
Next & Referensi — langkah selanjutnya

Minggu depan:
Operators & Expressions

Sesi 06 — Operators & Expressions

Hari ini programmu bisa bertanya — minggu depan dia belajar berhitung: 7 operator aritmatika + logika True/False.

Termasuk tiga serangkai pembagian yang jarang dipahami orang: / · // · % — dan kenapa 37 jam = 1 hari 13 jam.

intip:
a = 10; b = 3
print(a / b)  # 3.3333...
print(a % b)  # sisa: 1
+ - * /// · % · **and · or · not
PR iseng (opsional)
  • Upgrade program sapaan: tanya juga hobi & makanan favorit — satu kalimat utuh f-string
  • Bikin kalkulator jajan: uang 20000, beli 2 bakso 8000 — sisa berapa?
  • Tidak ada laptop? Tulis 5 baris program sapaan di kertas — minggu depan ketik bareng
Sampai jumpa di Sesi 06! input · f-string · int() · float()