Bab 5 — Variabel dan Tipe Data: Memberi Nama pada Segala Sesuatu

Seri B2 — Fondasi Bahasa Python

Gambar pembuka: setiap nilai di lapangan (pohon, ikan, sapi) diberi nama seperti label pada karung.
CatatanDi bab ini, Anda akan:
  • Memahami apa itu variabel (bocoran: mirip label di karung pakan)
  • Mengenal empat tipe data yang paling sering dipakai
  • Mencetak kalimat rapi dengan f-string
  • Membaca pesan error tanpa panik

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.

Variabel seperti label pada karung: nama variabel ada di label, nilainya ada di dalam karung, dan setiap nilai punya tipe data.
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.

CatatanINGAT

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:

  1. Boleh huruf, angka, dan garis bawah _.
  2. Tidak boleh diawali angka. 1pohon ditolak, pohon1 boleh.
  3. Tidak boleh ada spasi. Pakai garis bawah: bobot_sapi, bukan bobot sapi.
  4. Huruf besar dan kecil dianggap berbeda. Bobot dan bobot adalah dua variabel yang berbeda.
TipTIPS

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
PeringatanAWAS

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:

%%{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

Cara membaca pesan error: mulai dari baris terakhir.

  1. Baris terakhir adalah inti masalahnya: TypeError. Artinya ada tipe yang tidak cocok. Python hanya bisa menyambung teks (str) dengan teks, bukan dengan angka (int).
  2. 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?”

TipTIPS

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

  1. 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.
  2. Minta pengguna mengetik jumlah telur yang dikumpulkan hari ini, lalu cetak jumlah untuk seminggu (dikali 7). Jangan lupa jebakan input()!
  3. 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 dengan int() atau float() 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?