Artikel ini bagian dari seri Belajar Python Level Basic di hanifmu.com. Di artikel sebelumnya kita sudah membahas operator perbandingan dan logika. Sekarang kita kembali ke tanda =, yang ternyata punya beberapa bentuk.
Sejak artikel tentang variabel, kita sudah memakai = untuk menyimpan nilai. Ternyata ada beberapa cara lain menulisnya yang membuat kode lebih singkat dan rapi.
Assignment Dasar
Operator assignment adalah tanda = yang menugaskan nilai ke sebuah variabel. Ini operator yang paling sering kamu pakai:
nama = "Budi"
umur = 25
aktif = True
Bagian kiri adalah nama variabel, bagian kanan adalah nilainya. Python mengevaluasi bagian kanan dulu, baru menyimpannya ke variabel di kiri.
total = 10 + 5 # total berisi 15
Karena bagian kanan dihitung dulu, kamu bisa menulis ekspresi apa pun di sana.
Menimpa Nilai Lama
Variabel bisa diisi ulang kapan saja. Nilai lama otomatis tertimpa:
skor = 10
print(skor) # 10
skor = 20
print(skor) # 20
Ini juga bisa dilakukan menggunakan nilai variabel itu sendiri:
skor = 10
skor = skor + 5
print(skor) # 15
Baris skor = skor + 5 berarti “ambil nilai skor sekarang, tambahkan 5, lalu simpan kembali ke skor”. Pola ini sangat sering dipakai sehingga Python menyediakan cara singkatnya.
Compound Assignment
Compound assignment menggabungkan operasi aritmatika dengan penugasan. Bentuknya operator aritmatika diikuti tanda sama dengan.
| Bentuk | Setara dengan |
|---|---|
x += 5 | x = x + 5 |
x -= 5 | x = x - 5 |
x *= 5 | x = x * 5 |
x /= 5 | x = x / 5 |
x //= 5 | x = x // 5 |
x %= 5 | x = x % 5 |
x **= 5 | x = x ** 5 |
Contoh pemakaiannya:
skor = 10
skor += 5
print(skor) # 15
skor -= 3
print(skor) # 12
skor *= 2
print(skor) # 24
skor //= 5
print(skor) # 4
Kedua bentuk menghasilkan hasil yang sama. Compound assignment hanya membuat kode lebih pendek dan lebih mudah dibaca.
Contoh: Menghitung Total Belanjaan
Compound assignment cocok dipakai di dalam perulangan, misalnya menjumlahkan harga barang:
# total_belanja.py
total = 0
total += 15000
total += 22000
total += 8000
print(f"Total belanja: {total}") # Total belanja: 45000
Nilai total terus bertambah tanpa perlu menulis ulang namanya di kedua sisi.
Multiple Assignment
Python memungkinkan menugaskan beberapa variabel dalam satu baris:
x, y = 10, 20
print(x) # 10
print(y) # 20
Jumlah variabel di kiri harus sama dengan jumlah nilai di kanan. Kalau tidak, Python memberi ValueError.
Trik yang berguna adalah menukar nilai dua variabel tanpa variabel bantu:
a = 1
b = 2
a, b = b, a
print(a) # 2
print(b) # 1
Di bahasa lain, menukar nilai butuh variabel tambahan. Di Python cukup satu baris.
Walrus Operator :=
Sejak Python 3.8, ada operator baru bernama walrus operator, ditulis :=. Bentuknya seperti mata walrus, itu asal namanya.
Operator ini menugaskan nilai sekaligus memakainya dalam satu ekspresi:
if (panjang := len("Halo")) > 3:
print(f"Panjangnya {panjang}") # Panjangnya 4
Tanpa walrus, kamu perlu menulis dua baris:
panjang = len("Halo")
if panjang > 3:
print(f"Panjangnya {panjang}")
Contoh yang lebih jelas, memakai input() di dalam while:
perintah = ""
while (perintah := input("Perintah: ")) != "keluar":
print(f"Kamu menulis: {perintah}")
print("Selesai")
Walrus operator berguna untuk menghindari perhitungan berulang atau baris tambahan. Tapi tidak wajib dipakai. Kalau kodenya jadi lebih sulit dibaca, lebih baik gunakan cara biasa.
Kapan Memakai yang Mana?
=untuk penugasan biasa, pakai ini di sebagian besar waktu.+=dan sejenisnya saat mengubah nilai berdasarkan nilai sebelumnya, terutama untuk akumulasi.- Multiple assignment saat menugaskan beberapa nilai sekaligus atau menukar variabel.
- Walrus
:=saat butuh memakai nilai yang baru dihitung di dalam kondisi. Pakai secukupnya.
Kesalahan Umum Pemula
- Tertukar
=dan==—=menyimpan,==membandingkan. - Memakai variabel sebelum diisi —
x += 5tanpaxlebih dulu menghasilkanNameError. - Jumlah nilai tidak cocok —
x, y = 1menghasilkanValueError. - Berlebihan memakai walrus — kode jadi sulit dibaca, gunakan hanya bila perlu.
- Mengira
+=bisa untuk string dan angka sekaligus —x = "5"; x += 3menghasilkanTypeError.
Ringkasan
=menugaskan nilai ke variabel- Nilai lama bisa ditimpa kapan saja
- Compound assignment mempersingkat
x = x + 5menjadix += 5 - Python mendukung multiple assignment dan menukar nilai dalam satu baris
- Walrus operator
:=menugaskan sekaligus memakai nilai dalam satu ekspresi - Pakai bentuk yang paling mudah dibaca, bukan yang paling pendek
Langkah Selanjutnya
Kamu sudah menguasai operator aritmatika, perbandingan, logika, dan assignment. Keempatnya jadi bekal untuk membuat program yang bisa mengambil keputusan.
Artikel selanjutnya membahas Percabangan if, elif, dan else di Python, cara menjalankan bagian kode yang berbeda sesuai kondisi.
