Analisis data selalu bergerak dari nilai tunggal menuju makna: satu angka harga, satu nama kota, satu status stok. Variabel adalah cara Python menampung nilai-nilai tersebut agar bisa dipanggil kembali, sedangkan tipe data menentukan apa yang boleh kita lakukan terhadap sebuah nilai — angka bisa dijumlahkan, teks bisa dirangkai, dan nilai kosong menandai data yang belum tersedia. Pada chapter ini kita mengenal variabel, tipe-tipe data inti, konversi antar tipe, serta f-string sebagai cara merangkai teks dan angka. Kita juga membongkar satu jebakan klasik data Indonesia: angka nol di depan pada kode pos.
Variabel: Label untuk Sebuah Nilai #
Variabel dibuat begitu kita menulis nama, tanda sama dengan, lalu nilai — misalnya harga_satuan = 24000. Interpreter menghitung sisi kanan lebih dulu, lalu mengikat hasilnya ke nama harga_satuan. Sejak saat itu nama tersebut bisa dipakai berulang kali, dan nilainya boleh diganti kapan saja dengan penugasan baru.
Nama variabel sebaiknya singkat tetapi bermakna: harga_satuan lebih jelas daripada hs. Konvensi Python memakai huruf kecil dengan garis bawah (snake_case), misalnya total_belanja atau suhu_bandung. Identifier boleh berbahasa Indonesia selama konsisten — seluruh contoh pada Course ini memakai gaya tersebut.
Lima Tipe Data yang Paling Sering Kita Pakai #
Setiap nilai di Python memiliki tipe. Lima tipe berikut menutup hampir semua kebutuhan pengolahan data sehari-hari:
| Tipe | Nama | Contoh nilai | Wujud di data |
|---|---|---|---|
int | bilangan bulat | 42 | jumlah transaksi, jumlah populasi |
float | bilangan desimal | 4.7 | rating pelanggan, suhu kota |
str | teks | "Bandung" | nama kota, kategori produk |
bool | nilai kebenaran | True, False | status stok, hasil penyaringan |
NoneType | nilai kosong | None | data yang belum tersedia |
Dua catatan penting untuk konteks data. Pertama, harga yang selalu rupiah utuh wajar disimpan sebagai int, sedangkan hasil pembagian atau pengukuran seperti rating dan suhu alami sebagai float. Kedua, None adalah penanda “belum ada nilainya” — pada chapter-chapter berikutnya kita akan bertemu None dan sepupunya di pandas, NaN, sebagai wujud missing values yang harus ditangani sebelum analisis.
Fungsi type() memperlihatkan tipe sebuah nilai. Mari kita simpan lima nilai khas Toko Kopi Kita dan periksa semuanya:
nama_produk = "Kopi Susu Gula Aren"
harga = 28000
rating = 4.7
stok_tersedia = True
kode_promo = None
print(nama_produk, "|", type(nama_produk))
print(harga, "|", type(harga))
print(rating, "|", type(rating))
print(stok_tersedia, "|", type(stok_tersedia))
print(kode_promo, "|", type(kode_promo))Output yang Dihasilkan:
Kopi Susu Gula Aren | <class 'str'>
28000 | <class 'int'>
4.7 | <class 'float'>
True | <class 'bool'>
None | <class 'NoneType'>Setiap baris keluaran menampilkan nilai diikuti tipenya. Perhatikan bahwa True dan False ditulis dengan huruf kapital di awal — true dan false kecil bukan nilai bool yang sah di Python, melainkan nama variabel biasa (dan bila tidak ada variabelnya, kita menerima NameError seperti pada chapter sebelumnya).
Konversi Antar Tipe #
Data yang datang dari luar — berkas CSV, jawaban formulir, respons API — hampir selalu tiba sebagai teks. Agar bisa dihitung, teks tersebut harus dikonversi dengan int(), float(), atau str():
harga_teks = "32000"
harga = int(harga_teks)
print(harga + 5000)
rating_teks = "4.5"
rating = float(rating_teks)
print(rating + 0.2)
jumlah_pesanan = 3
print("Jumlah pesanan: " + str(jumlah_pesanan))
kode_pos = "08121"
print("Kode pos (teks) :", kode_pos)
print("Kode pos (angka) :", int(kode_pos), "<- nol depan hilang")Output yang Dihasilkan:
37000
4.7
Jumlah pesanan: 3
Kode pos (teks) : 08121
Kode pos (angka) : 8121 <- nol depan hilangMari kita bedah hasilnya:
- Baris 1-3: teks
"32000"diubah menjadi bilangan32000olehint(), sehingga bisa dijumlahkan dengan5000menjadi37000. - Baris 5-7:
float()menangani teks berdesimal; hasil4.5 + 0.2adalah4.7. - Baris 9-10:
str()bekerja ke arah sebaliknya — bilangan3diubah menjadi teks agar bisa dirangkai dengan teks lain memakai operator+. - Baris 12-14: kode pos
"08121"yang dikonversi keint()menjadi8121— nol depannya hilang, dan bersamanya hilang pula identitas kode posnya.
Dinamis tetapi Kuat #
Python disebut dinamis karena variabel tidak dideklarasikan tipenya di awal — variabel yang tadinya menampung int boleh menampung str. Namun Python juga kuat (strongly typed): sebuah nilai tidak berubah tipe secara diam-diam demi menyelamatkan operasi. Saat kita memadukan "Total belanja: " dengan 42000, Python menolak alih-alih mengira-ngira:
total_belanja = 42000
try:
pesan = "Total belanja: " + total_belanja
except TypeError as e:
print("Galat tertangkap:", e)
pesan = "Total belanja: " + str(total_belanja)
print(pesan)Output yang Dihasilkan:
Galat tertangkap: can only concatenate str (not "int") to str
Total belanja: 42000Percobaan pertama gagal karena operator + untuk teks menuntut kedua sisinya berupa teks; Python memilih berhenti dan menjelaskan alih-alih mengubah 42000 menjadi "42000" tanpa sepengetahuan kita. Percobaan kedua berhasil karena kita mengonversi secara eksplisit dengan str(). Ketegasan menolak ini sangat membantu di data science: kesalahan tipe yang mencampur kolom harga dan kolom label akan tertangkap di awal, bukan merusak hasil analisis secara senyap.
f-string: Merangkai Teks dan Angka #
Konversi manual dengan str() lalu perangkaian + menjadi merepotkan untuk laporan. Cara yang lebih ringkas adalah f-string: awali teks dengan huruf f, lalu tulis nama variabel atau ekspresi langsung di dalam kurung kurawal:
produk = "Kopi Susu Gula Aren"
harga = 28000
rating = 4.68
print(f"Menu : {produk}")
print(f"Harga : Rp{harga}")
print(f"Harga rapi : Rp{harga:,}")
print(f"Rating : {rating:.1f} dari 5")Output yang Dihasilkan:
Menu : Kopi Susu Gula Aren
Harga : Rp28000
Harga rapi : Rp28,000
Rating : 4.7 dari 5Bedah singkat format di dalam kurung kurawal:
{produk}dan{harga}: nilai variabel dimasukkan apa adanya — konversi ke teks berlangsung otomatis.{harga:,}: tanda titik dua memulai format tambahan; koma menambahkan pemisah ribuan. Pemisah bawaan mengikuti konvensi Inggris (koma), bukan titik seperti di Indonesia — untuk laporan berbahasa Indonesia, hasilnya dapat disesuaikan setelahnya.{rating:.1f}: nilai dibulatkan menjadi satu angka desimal, sehingga4.68tampil sebagai4.7. Format:.2fmenampilkan dua angka desimal, begitu seterusnya.
Referensi Resmi #
- pandas — Intro Tutorials
— di pandas setiap kolom memiliki
dtype; konversi tipe yang kita latih di sini menjadi rutinitas sehari-hari di sana. - Python Tutorial — Data Structures — bacaan resmi lanjutan setelah tipe data: struktur data bawaan Python yang kita bahas pada chapter Struktur Data Python.
Rangkuman #
- Variabel dibuat lewat penugasan
nama = nilai; penamaan memakaisnake_casedan sebaiknya bermakna. - Lima tipe inti:
int,float,str,bool, danNoneType; fungsitype()memeriksa tipe sebuah nilai. int(),float(), danstr()mengonversi nilai antar tipe — wajib saat data teks dari berkas perlu dihitung.- Kode pos, nomor telepon, dan kode produk tetap disimpan sebagai teks karena
int()membuang nol depan. - Python dinamis (variabel bebas berganti nilai) tetapi kuat (tipe tidak berubah diam-diam); f-string merangkai teks dan angka dengan format seperti
:,dan:.1f.
Nilai kini tersimpan dan tipenya kita kenali. Chapter berikutnya membahas cara memprosesnya: operator aritmatika untuk menghitung total dan patungan, operator perbandingan dan logika untuk menyaring data, termasuk trik pembagian bulat untuk mengelompokkan harga ke dalam rentang. Kita lanjut ke chapter Operator .