Dalam pemrograman Python, konsep variabel global adalah fundamental untuk memahami bagaimana data dibagikan dan diakses di seluruh program Anda. Variabel global adalah variabel yang dideklarasikan di luar fungsi apa pun, biasanya di tingkat modul utama skrip.
Berbeda dengan variabel lokal yang terikat hanya pada blok kode tempat mereka didefinisikan (seperti di dalam sebuah fungsi), variabel global dapat diakses oleh fungsi mana pun yang ada dalam lingkup yang sama (atau lingkup yang lebih luas).
Ketika sebuah fungsi mencoba membaca nilai variabel, Python akan mencarinya terlebih dahulu di lingkup lokal fungsi tersebut. Jika tidak ditemukan, pencarian berlanjut ke lingkup global. Ini berarti Anda dapat membaca variabel global tanpa deklarasi khusus di dalam fungsi.
# Variabel Global
saldo_aplikasi = 1000
def tampilkan_saldo():
# Pembacaan variabel global berhasil
print(f"Saldo saat ini (di dalam fungsi): {saldo_aplikasi}")
tampilkan_saldo()
print(f"Saldo di luar fungsi: {saldo_aplikasi}")
Output dari kode di atas akan menunjukkan bahwa saldo_aplikasi dapat diakses baik di dalam maupun di luar fungsi.
globalInilah bagian yang paling penting dan sering menimbulkan kebingungan. Jika Anda mencoba mengubah (menetapkan nilai baru) variabel global di dalam sebuah fungsi tanpa deklarasi, Python secara otomatis akan membuat variabel lokal baru dengan nama yang sama. Hal ini menaungi (shadowing) variabel global, bukan mengubahnya.
Untuk benar-benar memodifikasi variabel global dari dalam fungsi, Anda harus secara eksplisit memberi tahu Python menggunakan keyword global.
jumlah_pengguna = 5
def tambah_pengguna():
# Tanpa 'global', ini akan membuat variabel lokal baru
# global jumlah_pengguna <-- HILANG
jumlah_pengguna = 10 # Ini hanya variabel LOKAL!
print(f"Di dalam fungsi (Lokal): {jumlah_pengguna}")
def tambah_pengguna_global():
# Menggunakan keyword global untuk modifikasi
global jumlah_pengguna
jumlah_pengguna += 1
print(f"Di dalam fungsi (Global dimodifikasi): {jumlah_pengguna}")
tambah_pengguna()
print(f"Di luar fungsi setelah tambah_pengguna (masih 5): {jumlah_pengguna}")
tambah_pengguna_global()
print(f"Di luar fungsi setelah tambah_pengguna_global (menjadi 6): {jumlah_pengguna}")
Meskipun variabel global menawarkan kemudahan akses, penggunaannya harus dibatasi. Praktik pemrograman yang baik menganjurkan penggunaan argumen fungsi dan nilai kembalian (return values) untuk komunikasi antar fungsi. Namun, ada beberapa skenario di mana variabel global berguna:
DEBUG_MODE = True).Mengandalkan terlalu banyak variabel global dapat menyebabkan "kode spageti." Karena fungsi mana pun dapat mengubah variabel tersebut secara diam-diam, melacak sumber bug atau perubahan status menjadi sangat sulit. Ini disebut efek samping yang tidak terduga.
Alternatif Utama:
Kesimpulannya, variabel global dalam Python adalah alat yang kuat untuk mendefinisikan data yang tersedia secara universal dalam sebuah modul, tetapi harus digunakan dengan hati-hati, terutama ketika modifikasi diperlukan, yang mana harus selalu ditandai dengan kata kunci global.