Ekskul CSSE · SMAS St. John — BINUSPertemuan 4
04
Mulai Coding · Sesi 04 — Variables & Data Types
Variables
& Data Types

Minggu lalu nilai ketok langsung lalu hilang. Hari ini dia punya tempat tinggal — kotak berlabel yang isinya bisa dipanggil lagi dan diganti kapan pun.

TUJUAN 01
Simpan nilai di variabel — dan pahami = itu perintah simpan, bukan sama dengan
TUJUAN 02
Kenali int · float · str · bool — cek tipe apa pun dengan type()
TUJUAN 03
Konversi int()/float()/str() + namai variabel snake_case
Target Hari Ini

Hari ini nilai belajar tinggal

Tujuan Pembelajaran
  • Menyimpan nilai dengan assignment = — dan membedakannya dari sama dengan di matematika
  • Membedakan 4 tipe dasar: int · float · str · bool
  • Mengecek tipe dengan type() & mengonversi dengan int()/float()/str()
  • Menamai variabel snake_case — deskriptif, huruf kecil, garis bawah
= simpan4 tipetype()konversi"16" bukan 16

* assignment = perintah menyimpan nilai ke variabel · konversi = mengubah tipe data, mis. teks "16" jadi angka 16.

?
Kenapa penting?

Game nyimpen skor, chatbot nyimpen namamu, kasir nyimpen total — semua dimulai dari satu keterampilan: simpan, lalu pakai lagi.

Analogi hari ini

Variabel = kotak berlabel di lemari sekolah — labelnya jelas, isinya boleh diganti kapan saja, kotaknya tetap satu.

Dan baris yang paling bikin kaget: umur = umur + 1 — di matematika mustahil, di Python sehari-hari. Nanti kita bedah.

Sebelum gas — minggu lalu kamu sudah bisa apa?

Rekap Sesi 03 · Getting Started

Yang sudah kamu pegang
  • File .py — buat, simpan (Ctrl+S), Run tanpa drama
  • print() — programmu sudah bisa bicara
  • Error itu alarm — jenis, lokasi, penyebab: tiga langkah membacanya
  • Komentar # — catatan untuk manusia, dilewati Python

Satu kelemahan kecil: semua nilai ketok langsung di dalam print() — begitu Run selesai, tinggal sejarah. Hari ini kita kasih mereka tempat tinggal permanen.

Kuis kilat — coba jawab dulu!
ADi print("Maria"), kata Maria disimpan di mana?
BMau cetak Maria tiga kali — apa yang kamu lakukan?
jawabannya A = tidak disimpan — dia cuma lewat. B = copy-paste print("Maria") tiga kali. Repot? Persis — makanya hari ini ada variabel.
!

Peta perjalanan: kamu di barisan ke-4 dari 17 — 24% perjalanan, dan hari ini fondasi datanya dibangun.

Konsep · 01 — dari nilai lewat ke nilai tinggal

Variabel = kotak berlabel

Code — simpan, panggil, ganti
nama = "Kevin"
umur = 16
hobi = "Gambar"

print(nama, umur, hobi)

umur = 17   # isi baru, kotaknya sama
print("Tahun depan:", umur)
Cara membaca baris pertama

Ambil kotak, tempel label nama, taruh isinya "Kevin". Dibaca: nama DIBERI nilai — bukan "nama sama dengan Kevin".

Output
Kevin 16 Gambar
Tahun depan: 17

Baris terakhir membuktikan: umur ditimpa jadi 17 — labelnya tetap, isinya yang baru.

KOTAK
nama
"Kevin"
KOTAK
umur
16 → 17
KOTAK
hobi
"Gambar"
=

= artinya SIMPAN dari kanan ke kiri. Karena itu 16 = umur mustahil — angka nggak punya kotak.

Baris yang mustahil di matematika — tapi sehari-hari di Python

umur = umur + 1 bukan salah ketik

Code — hitung dulu, timpa belakangan
umur = 16
umur = umur + 1

print(umur)   # 17
Yang Python kerjakan — dua langkah
  1. Hitung kanan dulu — ambil isi kotak umur (16), tambah 1 → 17
  2. Timpa kotak kiri — hasil 17 disimpan balik ke umur
Analogi papan kasir

Subtotal lama dipakai menghitung subtotal baru — lalu papan kasir ditimpa angkanya. Papan nggak protes "lho, angka ini sama dengan dirinya sendiri?" Dia cuma menyimpan.

DI MATEMATIKA
x = x + 1 ?!
DI PYTHON
x = x + 1 ✓
?

Prediksi dulu: kalau baris umur = umur + 1 dihapus, berapa yang tercetak? (Jawab: 16 — kotak tidak pernah ditimpa.)

Konsep · 02 — empat jenis barang di gudang

4 tipe data utama

umur = 16

Bilangan bulat — tanpa koma. Umur, jumlah, skor.

16, 0, -3, 2026
float

tinggi = 1.65

Desimal — pakai titik, bukan koma. Tinggi, berat, nilai rata-rata.

1.65, 87.5, -0.5
str

nama = "Maria"

Teks — wajib berkutip " " atau ' '. Angka pun jadi teks kalau berkutip.

"Halo", 'XII-A', "16"
bool

aktif = True

Benar/salah — hanya True / False, kapital di awal, tanpa kutip.

True, False
!
Satu kalimat pembeda

Ada kutip = teks. Polos = angka. "16" itu str, 16 baru int — Python mengenali jenis barang dari bentuk isinya, bukan dari namamu.

Satu pas petik, dunia berbeda — tebak dulu, baru Run

"16" vs 16 — uji langsung

Code — dua kotak, bentuk isi mirip
a = 16
b = "16"

print(type(a))
print(type(b))
Tebak output-nya!

Sama saja? Salah — cek panel sebelah kanan. Petik mengubah segalanya.

Output
<class 'int'>
<class 'str'>

Dua kotak, dua jenis barang. Makanya perlakuannya beda: a + a → 32, b + b → "1616" — teks ditempel ke teks.

!

Uji kilat: 'True' dengan kutip itu bool atau str? str — kutip mengubah segalanya.

Konsep · 03 — scanner di pintu gudang

type() — tanya, jangan duga

Code — arahkan ke kotak mana pun
nama = "Budi"
umur = 16
tinggi = 1.65
aktif = True

print(type(nama))
print(type(umur))
print(type(tinggi))
print(type(aktif))
Output
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>

Scanner-nya lapor jenis isi setiap kotak — kamu tidak pernah perlu menduga-duga.

→

Kebiasaan yang membedakan: programmer nggak menebak tipe — mereka tanya type(). Gratis, cepat, selalu benar.

Konsep · 04 — penerjemah antar jenis barang

Konversi — ubah dulu, baru hitung

Code — penerjemah dipanggil sebelum operasi
umur_teks = "17"
umur = int(umur_teks)

print(umur + 1)
print(float("1.65") + 0.1)
print(str(100) + " poin")
Aturan mainnya

"17" + 1 gagal — campuran tipe. int("17") + 1 jalan — sudah disamakan dulu. Penerjemah dipanggil SEBELUM operasi.

Output
18
1.75
100 poin

str(100) jadi teks biar bisa dirangkai — kebalikannya juga ada: teks angka diubah jadi beneran angka.

Penerjemah bukan tukang sulap

int("budi") → ValueError — teks itu tidak bisa jadi angka apa pun. Error-nya akan kamu praktikkan sendiri di Tugas 1.

Giliran kamu — scanner gudang sekarang di tanganmu

Tugas 1 · Eksperimen tipe data

Kerjakan berurutan — 3 level
  1. Buat 4 variabel beda tipe — nama, umur, tinggi, aktif — tulis prediksi type()-nya di komentar dulu, baru Run
  2. Cocokkan — prediksimu vs kenyataan. Ada yang meleset? scanner tidak pernah bohong
  3. Uji penerjemah — umur_teks = "17", konversi ke int, cetak umur + 1. Lalu coba sengaja: int("budi") — baca pesan errornya
Petunjuk kalau macet

Prediksi dulu di komentar (# type(nama) = ?) — itu kebiasaan programmer sungguhan. Error ValueError hari ini itu hadiah: baca pesannya, lihat nama kamu muncul di dalamnya.

Contoh jalannya program (level 3)
18
1.75
100 poin
⏱

Waktu: 15 menit. Yang selesai duluan: tambah variabel kelima (kelas) — prediksi dulu, baru cek.

Konsep · 05 — label yang sopan dibaca orang lain

Namai snake_case

LakukanHindari
nama, umur, hobi — pendek & jelasx, a1, data1 — tidak jelas
nama_lengkap — huruf kecil + garis bawahNamaLengkap · namaLengkap — gaya Camel
umur_siswa, tinggi_badannama lengkap — ada spasi
hobi_utama, gaji2 — angka boleh di belakang2hobi — angka di depan · umur-siswa — strip
deskriptifhuruf kecilgaris_bawahtanpa spasi
Kenapa peduli nama?

Label x itu kotak tanpa etalase — enam bulan lagi kamu sendiri lupa isinya. Label nilai_rata_rata langsung ngomong. Mulai Mini Project, kode kamu dibaca orang lain — nama yang jelas itu sopan santun.

JELAS
nama_lengkap
BINGUNG
x
→

Python membedakan huruf besar-kecil: nama dan Nama itu dua kotak berbeda. Konsisten kecil semua — masalah ini tidak pernah muncul.

Praktik penilaian — semua materi hari ini dipakai sekaligus

Tugas 2 · Kartu siswa

Misi — kartu identitas dari kode
  1. 4 variabel beda tipe — nama (str), umur (int), tinggi (float), aktif (bool) — semua snake_case deskriptif, dilarang a/x/data1
  2. Tampilkan rapi — judul + tiap baris berisi label: nilai pakai print()
  3. Cetak type() keempatnya — bukti tipe kamu benar
Kerangka mulai
nama = ...
umur = ...
print("=== KARTU SISWA ===")
print("Nama  :", nama)
Contoh jalannya program
=== KARTU SISWA ===
Nama  : Maria
Umur  : 16
Tinggi: 168.5 cm
Status: True
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>
⏱

Waktu: 20 menit — ini penilaian. Dicek 3 hal: tipe beda semua, nama sopan, output rapi.

Gimana cara menyelesaikannya?

Pembahasan — kartu siswa lengkap

Salah satu solusi (ada banyak variasi yang benar)
nama = "Maria"
umur = 16
tinggi = 168.5
aktif = True

print("=== KARTU SISWA ===")
print("Nama  :", nama)
print("Umur  :", umur)
print("Tinggi:", tinggi, "cm")
print("Status:", aktif)

print(type(nama))
print(type(umur))
print(type(tinggi))
print(type(aktif))
Kenapa kode ini dapat nilai penuh?
  • 4 variabel, 4 tipe berbeda — str, int, float, bool
  • Semua nama snake_case deskriptif — dibaca siapa pun langsung paham
  • Output sejajar rapi — judul dulu, lalu label + titik dua
  • type() dicetak di akhir — bukti, bukan asal klaim
Yang layak dibanggakan

Kartu ini data statis — minggu depan kamu belajar input(), dan kartu yang sama diisi langsung oleh pengguna. Fondasinya persis kode ini.

Kode macet atau meledak? Kemungkinan besar kamu kena salah satu ini

Kotak masalah — 4 jebakan variabel & tipe

Jebakan 01
Nama pakai spasi / awal angka → SyntaxError
nama lengkap = "Budi"   # BOOM!
2hobi = "Gambar"        # BOOM!

Gejala: SyntaxError: invalid syntax. Obat: snake_case — nama_lengkap; angka boleh asal bukan di depan (gaji2 sah).

Jebakan 02
Campur tipe tanpa konversi → TypeError
umur = 16
print("Umur: " + umur)   # BOOM!

Gejala: TypeError: can only concatenate str. Dua obat: + str(umur), atau pisah pakai koma: print("Umur:", umur).

Jebakan 03
Konversi teks bukan angka → ValueError
int("budi")   # ValueError!
int("")      # ValueError juga

Penerjemah bukan sulap — isi harus bentuk angka. Pesannya bahkan menunjukkan teks yang gagal: invalid literal for int() with base 10: 'budi'.

Jebakan 04
Salah kapital → NameError
nama = "Budi"
print(Nama)   # NameError!

nama dan Nama dua kotak berbeda. Sama juga dengan true — bool-nya True kapital, selain itu dianggap nama variabel.

Rangkuman · Yang kita bawa pulang

5 poin hari ini — nilai akhirnya tinggal

01
Variabel = kotak berlabel — nama = "Budi" menyimpan; umur = umur + 1 menghitung kanan dulu, timpa kemudian
02
4 tipe dasar — int bulat 16 · float titik 1.65 · str kutip "Maria" · bool True/False
03
Ada kutip = teks, polos = angka — "16" itu str; cek kapan pun dengan type()
04
Konversi sebelum operasi — int("17") + 1 jalan, "17" + 1 meledak; int("budi") ValueError
05
snake_case deskriptif — nilai_rata_rata, bukan x; Python peka huruf besar-kecil
Kotak sudah siap — minggu depan diisi oleh pengguna Next → Input & Output
Next & Referensi — langkah selanjutnya

Minggu depan:
Input & Output

Sesi 05 — Input & Output

Hari ini kotaknya kamu isi sendiri
nama = "Maria" — minggu depan pengguna yang isi
nama = input("Nama: ")

Program berubah dari pengumuman jadi percakapan. Dan ingat jebakan favoritmu: apa pun yang diketik, input() selalu memberi str — kamu sudah tahu obatnya: int().

input()f-stringint(input())
PR iseng (opsional)
  • Perkaya kartu_siswa.py — tambah kelas dan cita_cita (str) + cek type() semuanya
  • Tidak ada laptop? Tulis 4 variabel beda tipe + prediksi type()-nya di kertas
  • Foto output Kartu Siswamu buat grup kelas — dokumentasi!
Sampai jumpa di Sesi 05! ingat: type() dulu, konversi kemudian