Idenya
Program yang hanya mencetak teks tetap tidak terlalu berguna. Program sungguhan mengingat sesuatu: nama pelanggan, harga, berapa banyak barang di stok. Variabel adalah nama yang merujuk ke sebuah nilai, sehingga kamu bisa memakai nilai itu nanti tanpa mengetiknya lagi.
shop_name = "Toko Kita"
price = 95000
print(shop_name)
print(price)
Toko Kita
95000
Tanda = di sini tidak berarti "sama dengan" seperti di matematika. Artinya assign (memberi nilai): "buat nama di sebelah kiri merujuk ke nilai di sebelah kanan". Bacalah price = 95000 sebagai "price sekarang bernilai 95000".
Bayangkan variabel sebagai label nama yang ditempel pada sebuah nilai. Nilainya tinggal di memori komputer; labelnya membantumu menemukannya. Kamu bisa memindahkan label itu ke nilai lain kapan saja.
Memberi dan mengganti nilai
Kamu bisa mengarahkan variabel ke nilai baru kapan pun kamu mau. Nilai lamanya begitu saja dilupakan:
stock = 80
print(stock)
stock = 75
print(stock)
80
75
Python selalu menghitung sisi kanan dulu, baru kemudian menempelkan namanya. Itulah sebabnya baris ini, yang terlihat mustahil di matematika, sepenuhnya normal di kode:
stock = 75
stock = stock - 5
print(stock)
70
Langkah demi langkah: Python membaca stock - 5, mencari stock (75), menghitung 70, lalu membuat stock merujuk ke 70.
Kalau kamu memakai sebuah nama sebelum memberinya nilai, Python berhenti dengan error:
print(discount)
NameError: name 'discount' is not defined
Memberi nama variabel dengan baik
Python punya beberapa aturan wajib untuk nama:
- Hanya pakai huruf, angka, dan garis bawah:
total_pricebisa,total-pricetidak (Python membaca tanda strip sebagai tanda minus). - Jangan diawali angka:
item2boleh,2nd_itemtidak. - Nama membedakan huruf besar dan kecil:
price,Price, danPRICEadalah tiga variabel yang berbeda. - Jangan pakai keyword Python (
if,for,class…) sebagai nama.
Dan beberapa konvensi yang diikuti setiap profesional:
- Pakai snake_case: semua huruf kecil, kata-kata digabung dengan garis bawah, seperti
unit_pricedancustomer_city. - Buat nama yang menjelaskan maknanya.
monthly_revenuejauh lebih baik daripadamr,x, ataudata2. - Jangan memakai ulang nama fungsi bawaan seperti
print,list,sum, atautype.sum = 10memang jalan, tapi setelah itu fungsisum()yang asli tidak bisa dipakai lagi sepanjang sisa programmu. - Nilai yang seharusnya tidak pernah berubah, seperti tarif pajak, ditulis dalam
UPPER_CASE:VAT_RATE = 0.11. Python tidak akan mencegahmu mengubahnya, tapi huruf kapital itu memberi tahu programmer lain "jangan diubah".
Kamu akan membaca nama variabel jauh lebih sering daripada mengetiknya. Nama yang sedikit lebih panjang tapi menjelaskan dirinya sendiri menghemat waktu setiap kali seseorang membaca kodenya.
Empat tipe sehari-hari
Setiap nilai di Python punya tipe yang menentukan apa yang bisa kamu lakukan dengannya. Kamu akan terus-menerus memakai empat tipe ini:
| Tipe | Nama | Contoh | Dipakai untuk |
|---|---|---|---|
str | string | "Ayu", 'Jakarta', "" | teks |
int | integer | 95000, -3, 0 | bilangan bulat |
float | bilangan floating-point | 4.7, 0.11, -2.5 | bilangan desimal |
bool | boolean | True, False | fakta ya/tidak |
Fungsi type() memberi tahu tipe dari nilai apa pun:
product = "Arabica Gayo 250g"
price = 95000
rating = 4.7
in_stock = True
print(type(product))
print(type(price))
print(type(rating))
print(type(in_stock))
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>
Beberapa detail sering menjebak:
TruedanFalseharus diawali huruf kapital.truehanyalah nama yang tidak terdefinisi."95000"(dengan tanda kutip) adalah string, bukan angka. Bagimu kelihatan seperti angka, tapi Python memperlakukannya sebagai teks, dan kamu tidak bisa menghitung dengannya sampai kamu mengonversinya. Lebih lanjut soal itu di modul angka.95000dan95000.0berbeda tipe: yang pertamaint, yang keduafloat.
Ada satu nilai lagi yang akan kamu temui di mana-mana: None, yang berarti "tidak ada nilai". Ia punya tipe sendiri, NoneType, dan kamu akan memakainya untuk mengatakan "belum ada apa-apa di sini", misalnya discount = None.
Tipe melekat pada nilai, bukan pada nama
Di beberapa bahasa, kamu mendeklarasikan tipe variabel di awal. Di Python, nilainya yang punya tipe dan nama hanya menunjuk ke nilai itu, jadi nama yang sama bisa menunjuk ke tipe yang berbeda dari waktu ke waktu:
code = 101
print(type(code))
code = "A-101"
print(type(code))
<class 'int'>
<class 'str'>
Fleksibilitas ini praktis, tapi mengubah jenis isi sebuah variabel membuat kode membingungkan. Pertahankan setiap variabel pada satu tipe dan satu makna.
Memberi nilai beberapa variabel sekaligus
Python memungkinkanmu memberi nilai beberapa nama dalam satu baris, mencocokkan nilai dari kiri ke kanan:
city, orders = "Bandung", 12
print(city, orders)
Bandung 12
Ini juga memberimu trik rapi untuk menukar dua nilai tanpa variabel bantuan:
first, second = "Ayu", "Budi"
first, second = second, first
print(first, second)
Budi Ayu
Python membangun pasangan di sebelah kanan ("Budi", "Ayu") sebelum memberi nilai apa pun, jadi tidak ada yang tertimpa terlalu cepat.
Mengapa ini penting untuk kode bersih
Variabel adalah cara kode bercerita. total = price * quantity menjelaskan dirinya sendiri; t = p * q memaksa pembaca memecahkan kodenya. Pilih tipe yang tepat untuk pekerjaannya (angka untuk hitungan, string untuk teks, boolean untuk ya/tidak) dan namai setiap variabel sesuai maknanya. Sebagian besar saran "kode bersih" dimulai tepat di sini.
Rangkuman
name = valuememberi nilai: nama itu sekarang merujuk ke nilainya. Sisi kanan dihitung lebih dulu.- Pakai snake_case, nama yang deskriptif, dan
UPPER_CASEuntuk konstanta. Jangan menimpa nama bawaan sepertisumataulist. - Empat tipe sehari-hari adalah
str,int,float, danbool.type()memberi tahu tipe mana yang kamu punya. Noneberarti "tidak ada nilai".a, b = b, amenukar dua variabel dalam satu baris.