Variabel dan Tipe Data
int, float, str, bool: empat tipe data yang dipakai di 90% pekerjaan analisis data.
Variabel: kotak berlabel di gudang
Analogi: bayangkan gudang tanpa label. Setiap kali butuh barang, kamu harus mengingat "kotak ketiga dari kiri di rak kedua". Itu melelahkan dan rawan salah. Variabel adalah label tempel: kamu tulis total_penjualan sekali, lalu setiap butuh nilainya tinggal sebut namanya.
Kenapa konsep ini ada? Karena program yang berguna harus mengingat. Tanpa variabel, setiap angka harus ditulis ulang di setiap baris, dan mengubah satu nilai berarti berburu ke seluruh kode. Variabel mengubah nilai jadi sesuatu yang punya nama, bisa dipakai ulang, dan bisa diubah di satu tempat.
nama = "Sinta"
umur = 21Baris nama = "Sinta" bukan pernyataan matematika ("nama sama dengan Sinta"), melainkan instruksi: "tempel label nama pada nilai "Sinta"". Tanda = di Python artinya assignment (menyimpan), bukan perbandingan.
Catatan teknis: Python memakai dynamic typing: kamu tidak perlu mendeklarasikan tipe variabel, Python menebaknya dari nilai. Ini bikin prototyping cepat (cocok untuk eksplorasi data), tapi artinya kamu harus disiplin memberi nama yang jelas karena tidak ada "pengaman" tipe yang menangkap salah pakai.
Contoh 1: empat tipe data utama (super sederhana)
nama = "Sinta" # str: teks, selalu pakai tanda kutip
umur = 21 # int: bilangan bulat
tinggi = 165.5 # float: bilangan desimal
lulus = True # bool: True / False saja
print(type(nama)) # <class 'str'>
print(type(umur)) # <class 'int'>Fungsi type() adalah "kaca pembesar": kapan pun ragu sebuah nilai itu tipe apa, intip dengan type(). Di dunia data, empat tipe ini menutupi sekitar 90% kebutuhan:
| Tipe | Contoh | Dipakai untuk |
|---|---|---|
int | 42, -7 | jumlah, ID, tahun |
float | 3.14, 0.5 | harga, rata-rata, persentase |
str | "Andi" | nama, kategori, teks |
bool | True, False | status, hasil filter |
Contoh 2: data transaksi yang realistis
Sekarang contoh yang terasa seperti kerja analyst: data mentah datang sebagai teks (misalnya dari file CSV atau form), lalu harus diubah ke tipe yang benar sebelum dihitung.
# Data mentah dari sistem kasir (semua masih teks!)
nama_produk = "Kopi Susu"
harga_teks = "25000"
jumlah_teks = "3"
diskon_persen = 10.0
# Ubah teks jadi angka agar bisa dihitung
harga = int(harga_teks)
jumlah = int(jumlah_teks)
subtotal = harga * jumlah
diskon = subtotal * diskon_persen / 100
total_bayar = subtotal - diskon
print("Produk:", nama_produk)
print("Tipe total_bayar:", type(total_bayar))
print("Total bayar: Rp", int(total_bayar))Perhatikan alurnya: data kotor masuk sebagai str, dibersihkan dengan int() dan float(), diolah, lalu hasilnya dicek tipenya. Inilah 80% pekerjaan data analyst dalam bentuk mini: bukan rumusnya yang sulit, melainkan memastikan tipe datanya benar sebelum dihitung.
Catatan teknis:
int("19.99")akan error (ValueError) karena teksnya mengandung titik desimal. Konversi bertahap:int(float("19.99")). ErrorValueErrorsaat konversi adalah teman akrab analyst, karena data kotor itu normal, bukan pengecualian.
bool: fondasi semua filter
True dan False terlihat sepele, tapi mereka adalah hasil setiap perbandingan, dan perbandingan adalah fondasi semua filter data:
nilai = 85
lulus = nilai >= 75
print(lulus) # True
print(type(lulus)) # <class 'bool'>Nanti di pandas (modul 13), pola yang persis sama dipakai untuk memfilter ribuan baris sekaligus, misalnya "tampilkan semua transaksi di atas Rp100 ribu". bool adalah saklar kecil yang mengendalikan data besar.
Kesalahan umum pemula
SALAH: Nama variabel diawali angka atau pakai spasi.
2nama = "Sinta" # SyntaxError
nama lengkap = "Sinta" # SyntaxErrorBENAR: Huruf atau underscore dulu, spasi diganti underscore:
nama2 = "Sinta"
nama_lengkap = "Sinta"SALAH: Memakai kata kunci Python sebagai nama variabel.
class = "XII" # SyntaxError: class adalah kata kunci PythonBENAR:
kelas = "XII" # pakai bahasa Indonesia, aman dan jelasSALAH: Menggabungkan teks dan angka langsung.
total = 5000
print("Total: " + total) # TypeError: can only concatenate strBENAR: Ubah angka jadi teks dulu, atau pakai koma di print:
print("Total: " + str(total)) # "Total: 5000"
print("Total:", total) # lebih gampang: koma otomatis beri spasiSALAH: Menulis boolean huruf kecil seperti di bahasa lain.
lulus = true # NameError: name 'true' is not definedBENAR: Python memakai huruf kapital di awal:
lulus = TrueSALAH: Konversi teks desimal langsung ke int.
harga = int("19.99") # ValueErrorBENAR: Bertahap lewat float:
harga = int(float("19.99")) # 19Tantangan
Kalkulator diskon sederhana
Buat variabel harga (int) dan diskon_persen (float). Hitung harga akhir setelah diskon, simpan di variabel harga_akhir, lalu print dengan pesan yang jelas. Cek tipe tiap variabel dengan type().