Variabel scope di Python

variabel-scope-di-python


Variabel scope di Python - Yosh sobs-sobs gimana kabar kalian ? semoga dalam keadaan sehat walafiat sehingga bisa menikmati senja dengan segelas kopi panas.

Oke sobs-sobs kali ini masih tentang pembahasan si dede gemezz (python). ada pun topik pembahasan kali ini masih seputar materi python fundamental atau dasar yaitu variabel scope, apa tuh bang variabel scope ?

ya secara singkatnya variabel scope adalah jangkauan atau cakupan kita untuk dapat mengakses sebuah variabel.

Lah bukannya setiap variabel bisa kita akses ya bang ?

Ya bisa jika kita mendeklarasikannya di scope global.

Ah Bingung ?

dari pada bingung mending pegang tuh gelas kopi dan sruput kopinya.. ahhhh nikmatzzzz

di dede gemezz (python) ini terdapat 3 buah klasifikasi scope variabel sobs-sobs sekalian.

  1. local variabel
  2. global variabel
  3. nonlocal variabel
Langsung saja sobs-sobs sekalian

1. local

Ketika kita membuat sebuah variabel didalam sebuah fungsi atau method (abaikan method sobs-sobs untuk sementara) maka variabel tersebut masuk ke ruang lingkup local scope, yang artinya kita tidak bisa mengakses variabel tersebut diluar fungsi. untuk lebih jelasnya lihat contoh dibawah sobs-sobs.


def say_hai():
	nama_mantan = "Adinda"
	print(f"Halo {nama_mantan}, apa kabar ?")


say_hai() # Halo Adinda, apa kabar ?

# NameError: name 'nama_mantan' is not defined
# print(nama_mantan)


lihat sobs-sobs sekalian kita tidak bisa mengakses variabel nama_mantan diluar fungsi. oleh karena itu maka disebut local scope sobs.

2. global

yang kedua adalah scope global, jika kita membuat variabel di luar fungsi / method atau bagian terluar dari kodingan kita maka variabel itu memiliki scope global yang artinya variabel tersebut bisa kita akses dari dalam fungsi / method ataupun dari dalam perulangan. untuk lebih jelas contoh dibawah ini sobs


# variabel global
nama_mantan = "dinda"

# akses variabel didalam fungsi
def sapa_mantan():
	print(f"hello {nama_mantan}, masih enakan zamanku toh ??")


sapa_mantan() # hello dinda, masih enakan zamanku toh ??


for i in range(1, 6):
	print(f"hallo {nama_mantan} {i}")

# output
# hallo dinda 1
# hallo dinda 2
# hallo dinda 3
# hallo dinda 4
# hallo dinda 5


Lihat sobs-sobs kita bisa mengakses variabel mantan didalam sebuah fungsi dan perulangan, 
pertanyaan selanjutnya kira-kira kita bisa ubah variabel global engga bang ?
jawabannya adalah bisa. untuk itu supaya lebih kita lebih paham silahkan lihat contoh dibawah ini sobs


nama_mantan = "Julia"
print(nama_mantan)	# Julia

def ganti_nama_mantan():
	nama_mantan = "Riska"
	print(nama_mantan)

ganti_nama_mantan()	# Riska

print(nama_mantan)	# Julia

Lah bang kok engga berubah ??
Memang sobs-sobs kalau kita menggunakan cara seperti diatas variabel global kita tidak akan berubah, dari contoh diatas kita hanya mendeklarasika variabel nama_mantan didalam fungsi sebagai local scope.
untuk agar kita bisa memanupulasi sebuah variabel global didalam sebuah fungsi kita menggunakan keyword global dan disusul dengan nama variabel. untuk lebih jelasnya silahkan sobs-sobs amati contoh dibawah ini

nama_mantan = "Julia"
print(nama_mantan)	# Julia

def ganti_nama_mantan():
	global nama_mantan
	nama_mantan = "Riska"
	print(nama_mantan)

ganti_nama_mantan()	# Riska

print(nama_mantan)	# Julia

Nah sekarang variabel nama_mantan sudah berubah, ingat ya sobs keyword global.

3. nonlocal

nonlocal ini adalah scope jika kita mempunyai fungsi yang bersarang artinya fungsi didalam fungsi, jika kita membuat sebuah variabel difungsi terluar dan ingin kita ingin memanipulasi dari fungsi dalam maka tidak cukup begitu saja dengan memanipulasinya dari dalam fungsi dalam.


def luar():
	mantan = "Yuki"
	print(f"fungsi luar-1 : {mantan}") # fungsi luar-1 : Yuki

	def dalam():
		mantan = "Vina"
		print(f"fungsi dalam : {mantan}") # fungsi dalam : Vina

	dalam()
	print(f"fungsi luar-2 : {mantan}") # fungsi luar-2 : Yuki

luar()

Lihat sobs-sobs variabel mantan tidak akan berubah, lalu bagaimana jika kita ingin memanipulasi variabel mantan, jawabannya adalah menggunakan keyword nonlocal dan diikuti dengan nama variabel. untuk lebih jelasnya kita bisa lihat contoh dibawah sobs


def luar():
	mantan = "Yuki"
	print(f"fungsi luar-1 : {mantan}") # fungsi luar-1 : Yuki

	def dalam():
		nonlocal mantan
		mantan = "Vina"
		print(f"fungsi dalam : {mantan}") # fungsi dalam : Vina

	dalam()
	print(f"fungsi luar-2 : {mantan}") # fungsi luar-2 : Vina

luar()


Nah lihat sobs-sobs variabel mantan sudah berubah. untuk lebih memahami lagi sobs-sobs silahkan perhatikan contoh diatas dengan saksama.


Oke mungkin sekaian dulu sobs-sobs pembahasan kali ini berhubung kopi sudah habis dan gorengan sudah hilang entah kemana gua akhiri sobs.


See you next time.

Posting Komentar untuk "Variabel scope di Python"