Wednesday, October 23, 2013

Variabel Global dan Variabel Lokal Pada C++


Variabel Global

Variabel Global adalah Variabel yang dapat dilihat dan dirubah oleh semua fungsi dalam program.

Variabel global sangat berbahaya karena secara tidak sengaja dapat termodifikasi oleh instruksi-instruksi dalam programnya sehingga pemakaian variabel global ini harus seminimal mungkin. Penggalan program berikut memberi contoh mengenai deklarasi dua variabel global x dan y:

#include

int x,y;        // Global karena didefinisi sebelum suatu fungsi

main()

{

.

.

.

}

Jadi variabel global didefinisikan sebelum nama fungsi. Pada contoh di atas lokasi include dapat sebelum atau sesudah deklarasi variabel x dan y. Variabel global x dan y akan tampak mulai dari tempat variabel-variabel global tersebut didefinisikan.

Variabel Lokal

Suatu variabel lokal hanya dapat dilihat dan dimodifikasi oleh fungsi dimana variabel lokal tersebut didefinisikan sehingga scope dari variabel lokal tersebut teriindungi Variabel lokal tidak dapat diubah atau bahkan dihapus oleh fungsi-fangsi yang lain lewat teknik pemrograman biasa. Variabel lokal didefinisikan sesudah tanda kurung { dari suatu blok yang umumnya adalah merupakan puncak dari fungsi. Variabel lokal hanya tampak didalam blok tersebut. 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

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

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

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.

Sumber : http://informatika.web.id/

Artikel Lainnya

0 comments:

Post a Comment

Terimakasih sudah berkunjung ke blog saya, dan silahkan tinggalkan jejak, baik berupa komentar, saran, ataupun kriktik yang bersifat membangaun. Terimakasih...!