%%{init: {"flowchart": {"diagramPadding": 40}}}%%
flowchart TD
A["Program<br/>error"] --> B["1. Baca baris TERAKHIR<br/>jenis error + penjelasan"]
B --> C["2. Baca baris di atasnya<br/>nomor baris + tanda ^^^"]
C --> D["3. Perbaiki<br/>kodenya"]
D --> E["4. Jalankan<br/>lagi"]
E -- "masih error" --> B
Bab 5 — Variabel dan Tipe Data: Memberi Nama pada Segala Sesuatu
Seri B2 — Fondasi Bahasa Python

Semua skrip bab ini ada di folder kode/bab05/. Di versi web, Anda juga bisa mengunduh semuanya sekaligus (zip).
Variabel itu seperti label di karung
Bayangkan gudang pakan di peternakan. Ada puluhan karung yang bentuknya sama persis. Tanpa label, Anda harus membuka setiap karung untuk tahu isinya. Repot, kan?
Maka Anda tempelkan label: “Konsentrat Sapi”, “Pelet Ikan”, “Dedak”. Sekarang cukup baca labelnya.
Variabel di Python bekerja persis seperti itu. Variabel adalah nama yang Anda tempelkan pada sebuah nilai, supaya nilai itu mudah dipanggil lagi nanti.

01_variabel.py
# Bab 5 - Membuat variabel: memberi "label" pada nilai
nama_pohon = "Jati"
diameter_cm = 32.5
tinggi_m = 18
sehat = True
print(nama_pohon, diameter_cm, tinggi_m, sehat)Hasilnya:
Jati 32.5 18 True
Tanda = di sini bukan “sama dengan” seperti di pelajaran matematika. Bacalah sebagai “simpan ke dalam”: simpan “Jati” ke dalam nama_pohon.
Di Python, = berarti menyimpan. Untuk membandingkan apakah dua nilai sama, dipakai == (dua tanda sama dengan). Itu dibahas di Bab 6.
Aturan memberi nama (supaya Python tidak ngambek)
Python cukup pemilih soal nama variabel. Ini aturannya:
- Boleh huruf, angka, dan garis bawah
_. - Tidak boleh diawali angka.
1pohonditolak,pohon1boleh. - Tidak boleh ada spasi. Pakai garis bawah:
bobot_sapi, bukanbobot sapi. - Huruf besar dan kecil dianggap berbeda.
Bobotdanbobotadalah dua variabel yang berbeda.
Beri nama yang menjelaskan isinya, lengkap dengan satuannya: diameter_cm, tinggi_m, berat_rata_g. Tiga bulan lagi, Anda (atau rekan Anda) akan berterima kasih karena tidak perlu menebak apakah d = 32.5 itu sentimeter, inci, atau umur pohon.
Empat tipe data yang akan Anda temui setiap hari
Setiap nilai di Python punya tipe, yaitu jenis datanya. Python bisa memberi tahu tipe itu lewat fungsi type():
02_tipe_data.py
# Bab 5 - Melihat tipe data dengan type()
nama_pohon = "Jati"
diameter_cm = 32.5
tinggi_m = 18
sehat = True
print(type(nama_pohon))
print(type(diameter_cm))
print(type(tinggi_m))
print(type(sehat))<class 'str'>
<class 'float'>
<class 'int'>
<class 'bool'>
| Tipe | Nama lengkap | Isinya | Contoh dari lapangan |
|---|---|---|---|
str |
string (teks) | Huruf, kata, kalimat; selalu diapit tanda kutip | "Jati", "Kolam A", "Sapi Bali" |
int |
integer (bilangan bulat) | Angka tanpa koma | 18 pohon, 1250 ekor ikan |
float |
bilangan desimal | Angka dengan titik desimal | 32.5 cm, 85.4 gram |
bool |
boolean (benar/salah) | Hanya True atau False |
sehat = True, sudah_panen = False |
Python memakai titik untuk desimal, bukan koma: tulis 32.5, bukan 32,5. Kebiasaan menulis koma (cara Indonesia) adalah salah satu jebakan paling umum bagi pemula.
Mencetak kalimat rapi dengan f-string
Menggabungkan teks dan angka paling enak memakai f-string: taruh huruf f sebelum tanda kutip, lalu masukkan variabel di dalam kurung kurawal { }.
03_fstring.py
# Bab 5 - Mencetak kalimat rapi dengan f-string
jumlah_ikan = 1250
berat_rata_g = 85.4
print(f"Kolam A berisi {jumlah_ikan} ekor, berat rata-rata {berat_rata_g} gram.")
total_kg = jumlah_ikan * berat_rata_g / 1000
print(f"Perkiraan total panen: {total_kg:.1f} kg")Kolam A berisi 1250 ekor, berat rata-rata 85.4 gram.
Perkiraan total panen: 106.8 kg
Perhatikan {total_kg:.1f}. Kode :.1f berarti “tampilkan dengan satu angka di belakang koma”. Tanpa itu, Python bisa menampilkan angka panjang yang membuat laporan terlihat berantakan.
Jebakan klasik: angka yang ternyata teks
Misalkan Anda meminta pengguna mengetik bobot sapi, lalu ingin menambah 10 kg:
04_input_salah.py
# Bab 5 - Jebakan: input() selalu memberi teks (contoh ini SENGAJA error)
bobot = input("Bobot sapi (kg): ")
print(bobot + 10)Anda mengetik 350, lalu… error:
Bobot sapi (kg): 350
Traceback (most recent call last):
File "04_input_salah.py", line 3, in <module>
print(bobot + 10)
~~~~~~^~~~
TypeError: can only concatenate str (not "int") to str
Tenang, ini bukan komputer Anda yang rusak. Mari baca pesannya pelan-pelan, dari bawah ke atas:
- Baris terakhir adalah inti masalahnya:
TypeError. Artinya ada tipe yang tidak cocok. Python hanya bisa menyambung teks (str) dengan teks, bukan dengan angka (int). - Baris di atasnya menunjukkan di mana masalahnya: baris 3, tepat di
bobot + 10(lihat tanda~~~^~~~).
Penyebabnya: input() selalu memberikan teks, walaupun yang Anda ketik adalah angka. Jadi bobot berisi "350" (teks), bukan 350 (angka).
Obatnya, ubah teks itu menjadi angka dengan float():
05_input_benar.py
# Bab 5 - Obatnya: ubah teks menjadi angka dengan float()
bobot = float(input("Bobot sapi (kg): "))
print("Target bulan depan:", bobot + 10, "kg")Bobot sapi (kg): 350
Target bulan depan: 360.0 kg
Kenapa tampilnya 360.0, bukan 360? Karena float() menghasilkan bilangan desimal, dan bilangan desimal selalu ditampilkan dengan titik. Bila Anda yakin bobotnya selalu bulat, pakai int(). Tapi hati-hati: int("350.5") akan error, karena teks itu bukan bilangan bulat.
Salah ketik? Python ikut membantu
Python 3.14 cukup baik hati soal salah ketik:
06_salah_ketik.py
# Bab 5 - Salah ketik nama variabel (contoh ini SENGAJA error)
diameter_cm = 32.5
print(diamter_cm)Traceback (most recent call last):
File "06_salah_ketik.py", line 3, in <module>
print(diamter_cm)
^^^^^^^^^^
NameError: name 'diamter_cm' is not defined. Did you mean: 'diameter_cm'?
NameError berarti Python tidak mengenal nama itu. Kalimat terakhirnya bahkan menebak maksud Anda: “Did you mean: ‘diameter_cm’?”, yang artinya “Mungkin maksud Anda diameter_cm?”
Biasakan membaca pesan error sampai baris terakhir. Seringkali Python sudah memberi tahu jawabannya.
Proyek Bersambung B2: data lapangan pertama
Sekarang coba gabungkan semuanya. Catat satu data dari tiap sektor:
07_proyek_lahan.py
# Bab 5 - Proyek bersambung B2: data lapangan pertama
# Hutan
jenis_pohon = "Meranti"
diameter_pohon_cm = 45.2
# Perikanan
nama_kolam = "Kolam B"
jumlah_ikan = 800
# Peternakan
nama_ternak = "Sapi Limosin"
bobot_ternak_kg = 512.5
print(f"Pohon {jenis_pohon}: diameter {diameter_pohon_cm} cm")
print(f"{nama_kolam}: {jumlah_ikan} ekor ikan")
print(f"{nama_ternak}: {bobot_ternak_kg} kg")Pohon Meranti: diameter 45.2 cm
Kolam B: 800 ekor ikan
Sapi Limosin: 512.5 kg
Di Bab 9 nanti, data yang terpisah-pisah ini akan kita kumpulkan dalam satu wadah (list dan dict), supaya bisa menampung ratusan pohon, kolam, dan ternak sekaligus.
Latihan
- Buat variabel untuk satu petak sawah: nama varietas padi (teks), luas dalam hektare (desimal), umur tanaman dalam hari (bulat), dan apakah sudah dipupuk (benar/salah). Cetak keempatnya dengan f-string.
- Minta pengguna mengetik jumlah telur yang dikumpulkan hari ini, lalu cetak jumlah untuk seminggu (dikali 7). Jangan lupa jebakan
input()! - Tantangan: hitung luas lingkaran tajuk pohon berdiameter 6,4 meter (rumus: 3,14 × r × r), dan tampilkan dengan dua angka di belakang koma.
Ringkasan Bab
- Variabel = label nama untuk sebuah nilai.
=artinya simpan ke dalam. - Empat tipe utama:
str(teks),int(bulat),float(desimal),bool(benar/salah). - Desimal memakai titik, bukan koma.
- f-string (
f"...{variabel}...") adalah cara termudah mencetak teks bercampur angka. input()selalu memberi teks. Ubah dulu denganint()ataufloat()sebelum dihitung.- Baca pesan error dari baris terakhir.
Selanjutnya, di Bab 6: menghitung dan membandingkan. Bagaimana Python tahu apakah bobot sapi sudah mencapai target panen?