Apa perbedaan antara variabel lokal dan global?

Sebagian besar bahasa pemrograman mendukung variabel lokal dan global.

Variabel lokal

Variabel lokal hanya ada dalam fungsi, bagian dari kode program yang melakukan tugas tertentu, di mana mereka didefinisikan atau dideklarasikan. Mereka tidak ada lagi setelah fungsi dijalankan. Variabel lokal dibuat ulang setiap kali fungsi dipanggil, atau dieksekusi. Variabel-variabel ini tidak dapat diakses untuk fungsi lain atau untuk program utama dan, dengan demikian, mereka biasanya diimplementasikan menggunakan tipe khusus dari struktur data, yang dikenal sebagai tumpukan.

Stack

Dalam banyak bahasa pemrograman, "tumpukan" adalah elemen kunci dalam implementasi variabel lokal. Sebelum menjalankan fungsi, sebuah program menambahkan semua variabel lokal yang dideklarasikan dalam fungsi itu ke stack, dalam urutan terbalik di mana mereka dinyatakan. Ketika program memanggil fungsi, variabel lokal dihapus dari tumpukan dalam urutan terbalik, sehingga variabel yang paling baru ditambahkan adalah yang pertama dihapus.

Variabel global

Variabel global dideklarasikan di tubuh utama dari kode sumber program, di luar semua fungsi, dan karena itu ada di bagian manapun dari kode, bahkan di dalam fungsi. Variabel global tidak dibuat ulang setiap kali fungsi tertentu dipanggil. Program sering menggunakan variabel global untuk menyimpan data yang diproses oleh banyak fungsi yang berbeda. Program pengeditan teks sederhana, misalnya, dapat memuat konten file tempat Anda bekerja pada variabel global.

Keuntungan dan kerugian

Variabel lokal membuat program komputer lebih mudah didebug dan dipelihara. Programmer dapat menentukan titik yang tepat di mana program memodifikasi nilai variabel lokal, sedangkan variabel global dapat dimodifikasi di mana saja dalam kode sumber. Variabel lokal juga menghasilkan lebih sedikit interaksi tak terduga dengan panggilan ke fungsi, atau dunia luar, yang dikenal sebagai efek samping, daripada variabel global. Variabel global dapat diakses dalam fungsi di mana mereka tidak digunakan, bertentangan dengan konsep pemrograman modular, di mana kode program terdiri dari blok atau modul terisolasi kecil, sehingga programmer mendukung struktur modular langka mereka menggunakannya