Perbedaan Variabel Lokal dan Global
Perbedaan Utama antara Variabel Lokal dan Variabel Global
- Variabel lokal dideklarasikan di dalam suatu fungsi, sedangkan variabel Global dideklarasikan di luar fungsi.
- Variabel lokal dibuat ketika fungsi telah memulai eksekusi dan hilang ketika fungsi berakhir, sebaliknya variabel Global dibuat ketika eksekusi dimulai dan hilang ketika program berakhir.
- Variabel lokal tidak menyediakan pembagian data, sedangkan variabel Global menyediakan pembagian data.
- Variabel lokal disimpan di tumpukan, sedangkan variabel Global disimpan di lokasi tetap yang ditentukan oleh kompiler.
- Pengoperan parameter diperlukan untuk variabel lokal, sedangkan untuk variabel global tidak diperlukan
Apa itu Variabel?
Variabel adalah nama yang diberikan pada area penyimpanan yang dapat dimanipulasi oleh program. Tipe variabel menentukan ukuran dan tata letak memori variabel.
Ini juga menentukan rentang nilai yang perlu disimpan di dalam memori tersebut dan sifat operasi yang dapat diterapkan pada variabel tersebut.
Ruang Lingkup Variabel
Ruang lingkup variabel hanyalah seumur hidup suatu variabel. Ini adalah blok kode di mana suatu variabel dapat diterapkan atau hidup. Misalnya:
function foo(){ var x; }
Anda mendeklarasikan variabel “x” di dalam fungsi “foo.” Cakupan variabel tersebut tetap berada di dalam fungsi tersebut dan tidak dapat digunakan di luar fungsi tersebut.
Ada tiga tempat di mana variabel dapat dideklarasikan dalam bahasa pemrograman:
- Di dalam suatu fungsi atau blok: Variabel lokal
- Di luar semua fungsi: Variabel global
- Dalam definisi parameter fungsi: Parameter formal
Variabel Lokal
Variabel Lokal didefinisikan sebagai jenis variabel yang dideklarasikan dalam blok pemrograman atau subrutin. Ini hanya dapat digunakan di dalam subrutin atau blok kode di mana ia dideklarasikan. Variabel lokal ada hingga blok fungsi dijalankan. Setelah itu akan dimusnahkan secara otomatis.
Contoh Variabel Lokal
public int add(){ int a =4; int b=5; return a+b; }
Di sini, 'a' dan 'b' adalah variabel lokal
Variabel Global
A Variabel Global dalam program adalah variabel yang didefinisikan di luar subrutin atau fungsi. Ini memiliki cakupan global yang berarti mempertahankan nilainya sepanjang masa program. Oleh karena itu, ini dapat diakses di seluruh program dengan fungsi apa pun yang ditentukan dalam program, kecuali jika dibayangi.
Contoh:
int a =4; int b=5; public int add(){ return a+b; }
Di sini, 'a' dan 'b' adalah variabel global.
Variabel Lokal vs Variabel Global
Berikut beberapa perbedaan mendasar antara variabel Lokal dan Global.
Parameter | Lokal | Aksi |
---|---|---|
Cakupan | Itu dideklarasikan di dalam suatu fungsi. | Itu dideklarasikan di luar fungsi. |
Nilai | Jika tidak diinisialisasi, nilai sampah akan disimpan | Jika tidak diinisialisasi, nol disimpan sebagai default. |
Lifetime | Itu dibuat ketika fungsi mulai dijalankan dan hilang ketika fungsi dihentikan. | Itu dibuat sebelum eksekusi global program dimulai dan hilang ketika program dihentikan. |
Berbagi data | Berbagi data tidak dimungkinkan karena data variabel lokal hanya dapat diakses oleh satu fungsi. | Berbagi data dimungkinkan karena beberapa fungsi dapat mengakses variabel global yang sama. |
Parameters | Pengoperan parameter diperlukan agar variabel lokal dapat mengakses nilai di fungsi lain | Pengoperan parameter tidak diperlukan untuk variabel global karena dapat dilihat di seluruh program |
Modifikasi nilai variabel | Ketika nilai variabel lokal diubah di satu fungsi, perubahannya tidak terlihat di fungsi lain. | Ketika nilai variabel global diubah dalam satu fungsi, perubahannya terlihat di program lainnya. |
Diakses oleh | Variabel lokal dapat diakses dengan bantuan pernyataan, di dalam fungsi yang mendeklarasikannya. | Anda dapat mengakses variabel global dengan pernyataan apa pun dalam program. |
Penyimpanan memori | Itu disimpan di tumpukan kecuali ditentukan. | Itu disimpan di lokasi tetap yang ditentukan oleh kompiler. |
Keuntungan menggunakan variabel Global
- Anda dapat mengakses variabel global dari semua fungsi atau modul dalam suatu program
- Anda hanya perlu mendeklarasikan variabel global satu kali di luar modul.
- Idealnya digunakan untuk menyimpan "konstanta" karena membantu Anda menjaga konsistensi.
- Variabel Global berguna ketika beberapa fungsi mengakses data yang sama.
Keuntungan menggunakan Variabel Lokal
- Penggunaan variabel lokal memberikan jaminan bahwa nilai variabel akan tetap utuh saat tugas sedang berjalan
- Jika beberapa tugas mengubah satu variabel yang berjalan secara bersamaan, maka hasilnya mungkin tidak dapat diprediksi. Namun, mendeklarasikannya sebagai variabel lokal dapat mengatasi masalah ini karena setiap tugas akan membuat instans variabel lokalnya sendiri.
- Anda dapat memberi nama yang sama pada variabel lokal dalam fungsi yang berbeda karena variabel tersebut hanya dikenali oleh fungsi di mana variabel tersebut dideklarasikan.
- Variabel lokal dihapus segera setelah fungsi apa pun selesai dan melepaskan ruang memori yang ditempatinya.
Kerugian menggunakan Variabel Global
- Terlalu banyak variabel yang dideklarasikan sebagai global, kemudian tetap berada di memori hingga eksekusi program selesai. Hal ini dapat menyebabkan masalah Kehabisan Memori.
- Data dapat dimodifikasi dengan fungsi apa pun. Pernyataan apa pun yang ditulis dalam program dapat mengubah nilai variabel global. Hal ini mungkin memberikan hasil yang tidak terduga dalam lingkungan multitasking.
- Jika variabel global dihentikan karena pemfaktoran ulang kode, Anda perlu mengubah semua modul tempatnya dipanggil.
Kerugian menggunakan Variabel Lokal
- Proses debugging variabel lokal cukup rumit.
- Data umum harus diteruskan berulang kali karena pembagian data antar modul tidak dapat dilakukan.
- Ruang lingkupnya sangat terbatas.
Apa yang lebih berguna?
Variabel lokal dan global sama pentingnya saat menulis program dalam bahasa apa pun. Namun, sejumlah besar variabel global mungkin menempati memori yang sangat besar. Perubahan yang tidak diinginkan pada variabel global menjadi sulit untuk diidentifikasi. Oleh karena itu, disarankan untuk menghindari mendeklarasikan variabel global yang tidak diinginkan.