Variabel local dan global
Bedakan variabel dalam fungsi dan di luarnya.
Pahami konsepnya
Variabel yang dideklarasikan di dalam fungsi bersifat LOCAL — hanya hidup di dalamnya. Variabel di level modul bersifat GLOBAL — terlihat dari mana saja. Python mencari nama dari dalam ke luar: fungsi melihat global, tapi fungsi TIDAK BISA mengubah global tanpa izin.
Untuk mengubah variabel global dari dalam fungsi, nyatakan global nama_variabel di awal fungsi. Tanpanya, assignment di dalam fungsi menciptakan variabel LOCAL baru yang menimpa nama global secara lokal saja.
Kebiasaan terbaik: batasi global seminimal mungkin — ia membuat alur data sulit dilacak. Kirim data lewat parameter, terima hasil lewat return. global hanya untuk konfigurasi benar-benar lintas fungsi seperti penghitung debug.
Coba contoh kode
counter = 0 # global
def tambah_local():
counter = 100 # local — global tidak tersentuh
def tambah_global():
global counter
counter += 1
tambah_local()
print(counter) # 0 — tidak berubah
tambah_global()
tambah_global()
print(counter) # 2 — global diubahtambah_local mengubah variabel local-nya sendiri bernama sama — global tetap 0. tambah_global dengan global counter benar-benar menaikkan variabel global. Tanpa global, Python menciptakan salinan local yang menimpa nama global secara lokal.
Latihan singkat
Uji: naikkan counter global dari 5 ke 6 — harus `6`.