Global dan Local Scope

Posted on December 4th, 2023
Intermediate
...

Sebelumnya sudah di bahas tentang function. Semua yang ada di dalam function akan dihapus ketika function dipanggil. Inilah yang membedakan variable di dalam function dan di luar function. Variable di dalam function disebut Local Variable, sedangkan variable di luar function disebut Global Variable.
Perhatikan codingan berikut, mengakses variable setelah function di panggil akan mengeluarkan error

def test():
   language = 'Python'
   print(language)
   
test()
print(language)

Coba

Global variable dapat diakses oleh function didalamnya dengan code sebagai berikut

def test():
   print(language)
   
language = 'Python'
test()

Coba

Local variable akan terhapus setelah function di panggil, dan global variable akan terhapus setelah keseluruhan program di jalankan. Hati - hati ketika menamakan variable sama di Local maupun Global. Hal ini akan membuat Anda kebingungan dari mana asal data yang di proses. Berikut contoh codenya

def test():
   language = 'Python'
   print(language)
   
language = 'Java'
#andaikan code Anda ada ratusan line dan lupa bahwa variable `language` sudah digunakan
#alih alih mengeluarkan `Java` yang ada mengeluarkan `Python`
test()

Coba

Local variable diubah menjadi global variable

Membuat local variable menjadi global variable dapat dilakukan dengan syntax global. Berikut contoh codenya

def test():
   global language
   language = 'Python'
   print(language)
   
test()
print(language)

Coba

Perhatikan apabila ada dua global variable, maka global variable yang di definisikan setelah function yang akan diproses. Berikut contoh codenya

def test():
  global language
  language = 'Python'
  print(language)
 
test()
language = 'Java'
print(language)

Coba

Penggunaan syntax global didalam function membuat code Anda sulit dibaca, bayangkan apabila Anda sudah membuat banyak function dengan global syntax lalu Anda tidak sengaja membuat nama variable yang sama dengan salah satu function anda. Anda pun akan sulit menemukan sumber data dan bertanya tanya kenapa codingan anda berjalan dengan proses berbeda.