Anda di halaman 1dari 9

Perbedaan Variabel Global dan Variabel Lokal

Pada kesempatan kali ini kita akan membahas Perbedaan Variabel Global
dan Variabel Lokal Lengkap Contoh dan Penjelasan nya dalam Bahasa C++.
Baiklah langsung saja kita bahas Perbedaan Variabel Global dan Variabel
Lokal.

Berdasarkan ruang linkupnya, variabel dibedakan menjadi dua yaitu variabel


lokal dan variabel global. Penentuan variabel untuk dijadikan / dikatakan
sebagai variabel global atau lokal tentu akan tergantung dari penempatan
deklarasi variabel pada program yang sedang dibuat.

Sebelum menginjak pada perbedaan variabel lokal dan variabel global, mari
kita pahami terlebih dahulu Apa itu Variabel ? Variabel Adalahsebuah tempat
untuk menampung data dimemori dimana tempat tersebut dapat menampung
nilai (data) yang dapat berubah-ubah selama proses program. atau variabel
juga disebut sebagai sebuah identifier yang mempunyai nilai dinamis, arti kata
dinamis disini bermaksud bahwa nilai variabel tersebut dapat kita ubah sesuai
kebutuhan dalam program.

Dari pengertian variabel diatas dapat disimpulkan bahwa Fungsi Variabel


Adalah sebagai tempat yang akan digunakan untuk menampung data
dimemori dimana tempat tersebut dapat menampung nilai (data) yang dapat
berubah-ubah selama proses program.

Variabel Global
Apabila di dalam kode program membutuhkan sebuah variabel yang dapat
dikenali oleh semua lingkungan dalam program yang kita buat, maka variabel
tersebut harus dideklarasikan sebagai variabel yang bersifat global.
Dalam bahasa C++ sendiri kita telah mengetahui bahwa struktur program
dalam bahasa C++ selalu ada fungsi utama dengan nama main() . Apabila
kita mendeklarasikan sebuah variabel diluar fungsi main() / fungsi lain /
prosedur lain, maka dengan sendirinya compiler akan menganggap variabel
tersebut sebagai variabel global.

Jadi Variabel global adalah variabel yang dapat digunakan atau dipanggil atau
dikenali oleh semua fungsi / prosedur / dikenali diseluruh program. Variabel
global ini dapat digunakan pada beberapa fungsi / prosedur, Hal ini betujuan
untuk menghemat penulisan, karena tidak perlu lagi berkali - kali menuliskan
variabel yang sama pada beberapa fungsi / prosedur.

Contoh penggunaan Variabel Global


Berikut ini adalah contoh program yang menunjukkan penggunaan variabel
yang bersifat global:
#include <iostream>

// using namespace std;

// Variabel A adalah variabel global


// Karena dideklarasikan diluar fungsi main dan fungsi lain
int A;

// Membuat sebuah prosedur dengan nama "coba"


void coba(){
// Mengisikan (assign) nilai kedalam variabel A
A = 20;
cout<<"Nilai A di dalam prosedur coba() : "<<A<<endl;
}

// Membuat fungsi main() atau fungsi utama


int main (){
// Mengisikan (assign) nilai kedalam variabel A
A = 10;
cout<<"Nilai A di dalam fungsi main() : "<<A<<endl;

// Memanggil atau menampilkan prosedur coba()


coba();

return 0;
}

Pada kode diatas, Variabel A dideklarasikan sebagai variabel global. Proses


deklarasi variabel global harus dilakukan diluar fungsi. Melalui cara seperti
contoh diatas, variabel A akan dikenali oleh semua fungsi / prosedur yang ada
di dalam program, yaitu prosedur coba() dan fungsi main().

Variabel Lokal
Berbeda dengan variabel global, variabel lokal adalah variabel yang hanya
dikenali oleh sebuah fungsi / prosedur saja (hanya dikenali pada fungsi /
prosedur tempat variabel tersebut dideklarasikan). Hal tersebut karena proses
deklarasi variabel lokal dilakukan di dalam lingkup fungsi yang dimaksud.

Contoh penggunaan Variabel Lokal


#include <iostream>

using namespace std;

// Membuat sebuah prosedur dengan nama "coba"


void coba(){
// Variabel A bersifat Lokal
// Dan hanya dikenali oleh prosedut coba()
int A;
A = 20;
cout<<"Nilai A di dalam prosedur coba() : "<<A<<endl;
}

// Membuat fungsi main() atau fungsi utama


int main (){
// Variabel A tidak dapat digunakan oleh fungsi main()
// A = 10; // SALAH
// Harus di deklarasi ulang
int A;
A = 10;
cout<<"Nilai A di dalam fungsi main() : "<<A<<endl;

// Memanggil atau menampilkan prosedur coba()


coba();

return 0;
}

Pada contoh program diatas, Variabel A dideklarasikan sebanyak 2 kali yaitu


di dalam prosedur coba() dan didalam fungsi main(). Hal tersebut karena
variabel A bersifat lokal dan hanya dapat di akses pada fungsi / prosedur
tempat variabel A dideklarasikan. Jadi Variabel A yang di deklarasikan pada
prosedur coba() hanya dapat diakses di prosedur tersebut / tidak dapat
diakses di fungsi main(), pun sebaliknya Variabel A yang di deklarasikan pada
fungsi main() hanya dapat diakses di fungsi tersebut / tidak dapat diakses di
prosedur coba().

Perbedaan Utama Variabel Global dan Variabel Lokal


1. Variabel Global dideklarasian diluar fungsi main() atau diluar sebuah
fungsi atau prosedur lain.
2. Variabel Lokal dideklarasian didalam sebuah fungsi atau didalam sebuah
prosedur.
3. Variabel Global dapat digunakan atau dipanggil atau dikenali oleh semua
fungsi / prosedur / dikenali diseluruh program.
4. Variabel Lokal hanya dikenali oleh suatu fungsi / prosedur saja (hanya
dikenali pada fungsi / prosedur tempat variabel tersebut dideklarasikan)

Berikut adalah contoh program yang memakai variabel-variabel lokal


dan global. Variabel j dan p adalah lokal sedang variabel i dan z adalah
global.
#include <iostream.h>
float z = 9.0; // Global variabel
int i = 10;

void tampilkan_lagi(void);

main()
{
float p = 2.0; //Lokal terhadap main()
cout << i << ” ” << p << ” ” << z << “n”-
tampilkan_lagi();
return 0;
}

void tampilkan_lagi(void)
{
int j = 5.0; // Lokal terhadap tampilkanJagiQ
cout << j << ” ” << z << “n”;’
// Error, tidak dapat menampilkan variabel p
// cout << p << “n”;
return;
}

Contoh program di atas tidak dapat menampilkan variabel p karena


variabel p adalah lokal terhadap main() saja.
Contoh program di bawah ini menunjukkan dua variabel lokal dan dua
fungsi yang berbeda, meskipun namanya sama, tidak menjadi persoalan
karena tetap dianggap dua variabel yang berbeda oleh kompiler.

//C3_5.CPP

#include <iostream.h>

void ambil_umur(void);

main()

int umur; // Lokal teradap main()

cout << “Berapa umur anda ? “;

cin >> umur;

ambil_umur();

cout << “Umur dalam fungsi mainQ tetap: “ << umur << “n”;

return 0;
}

void ambil_umur(void)

int umur; // Lokal terhadap ambil_umur()

cout << “Berapa umur anda lagi ? “;

cin >> umur;

return;

Hati-hati kalau mendefinisikan variabel lokal dengan nama yang sama


pada fungsi yang sama pada blok yang berbeda. C++ hanya melihat
blok yang paling dalam sampai blok ini berakhir.

// C4_5.CPP

#include <iostream.h>

int i = 123; //Global

main()

int i; // yang paling luar

i = 10;
{

int i; // yang lebih dalam

i = 20;

cout << i << ” “ << i << “n”-

int i; // yang paling dalam

I = 30;

cout << i << ” “ << i << ” “ << i << “n”

cout << “i global: “ << ::i << “n”;

cout << i << ” “ << i << ” “ << i << “n”;

return 0;

Ada tiga variabel lokal i yang berbeda pada program di atas. Variabel
lokal i hilang pada saat keluar dari blok. C++ selalu mencetak variabel
lokal i yang dianggap paling lokal. Dalam C++ variabel lokal mempunyai
hirarki yang lebih tinggi dari variabel global namum dengan scope
resolution operator (::) kita dapat memberitahu kompiler untuk memakai
global variabel meskipun sedang berada dalam scope lokal. Dari contoh
program di atas tampak bahwa meskipun berada di blok yang paling
dalam, variabel global i tetap dapat ditampilkan dengan scope resolution
operator ::. Jadi scope resolution operator memungkinkan kita mendapat
akses ke global variabel.
Bagaimana kalau kita punya suatu variabel lokal yang ingin dipakai oleh
dua fungsi atau lebih?. Jika dua fungsi ingin memakai suatu variabel
bersama-sama, salah satu cara yang dapat dipakai adalah membuat
variabel tersebut global namun ini bukan cara yang baik, cara lain yang
lebih baik adalah mendefinisikan variabel tersebut sebagai variabel lokal
pada salah satu fungsi lalu melewatkannya ke fungsi yang lain,
keuntungan dari cara kedua ini adalah variabel lokal tersebut hanya
dikenal di dua fungsi sehingga tidak dapat di akses oleh fungsi-fungsi
yang lain.

Anda mungkin juga menyukai