7.11. Variabel Lokal dan Global
Seperti yang telah ditetapkan bahwa variabel didalam fungsi utama, Anda juga dapat menetapkan fungsi di dalam fungsi-fungsi lainnya. Variabel yang ditetapkan dalam fungsi lokal ke fungsi. Mereka tersembunyi dari pernyataan dalam fungsi lainnya, yang biasanya tidak bisa mengaksesnya. Program 7.15 menunjukkan bahwa variabel yang ditetapkan dalam suatu fungsi yang tersembunyi, dimana fungsi lainnya mungkin telah terpisah, berbeda variabel dengan nama yang sama. Program 7.15
#include<iostream> usingnamespacestd; voidanotherFunction(); intmain() { intnum=1; cout<<"Dalamprogramutatma,numadalah:"<<num<<endl; anotherFunction(); cout<<"Kembalidalamprogramutama,nummasih"<<num<<endl; return0; }
voidanotherFunction() { intnum=20;//variabelLocal cout<<"DalamanotherFunction,numadalah:"<<num<<endl; }
Keluaran Program adalah sebagai berikut: Dalamprogramutatma,numadalah:1 DalamanotherFunction,numadalah:20 Kembalidalamprogramutama,nummasih1 Meskipun terdapat dua variabel num, program ini hanya bisa "melihat" salah satu dari mereka setiap saat. Ketika program dijalankan dalam program utama, yang didefinisikan pada variabel num akan terlihat pada program utama. Ketika anotherFunction disebut sebagai variabel yang ditetapkan didalamnya akan terlihat, sehingga dalam variabel num program utama tersembunyi. Perhatikan program yang mengilustrasikan sifat tertutup dari dua fungsi, dimana bentuk kotak mewakili lingkup variabel Fungsimain Intnum=1; Variabelnumhanyaterlihatpada programutama FungsianotherFunction intnum=20;
Variabelnumhanyaterlihatpada anotherFunction Gambar 7.10. Dua Fungsi yang mempunyai sifat tertutup, Sebuah Lokal variabel dapat dikatakan sebagai variable yang aman dan tersembunyi dari fungsi lain, tetapi variable ini tidak menyediakan cara yang mudah untuk berbagi data. Jika sejumlah besar data harus dapat diakses oleh semua fungsi dalam program, variabel global dapat digunakan sebagai alternatif mudah. Sebuah variabel global merupakan variabel yang ditetapkan diluar oleh semua fungsi dalam sebuah program.
Program 7.16 menunjukkan dua buah fungsi utama dan anotherFunction, dimana menggunakan akses yang sama yaitu variabel global num Program 7.16
#include<iostream> usingnamespacestd; voidanotherFunction();//Fungsiprototipe intnum=2;//variabelGlobal intmain() { cout<<"dalamprogramutama,numadalah"<<num<<endl; anotherFunction(); cout<<"kembalidariprogramutama,numadalah"<<num<<endl; return0; } voidanotherFunction() { cout<<"dalamfungsianotherFunction,numadalah"<<num<<endl; num=50; cout<<"tetapi,sekarangtelahdiubahmenjadi"<<num<<endl; }
Dalam Program 7.16 diatas, variabel num didefinisikan diluar semua fungsi. Karena muncul sebelum definisi pada program utama dan anotherFunction, maka keduanya memiliki akses ke fungsi tersebut. Program 7.17
#include<iostream> usingnamespacestd; intglobalNum;//variabelGlobal.Otomatisdiaturkenull. intmain() { cout<<"globalNumadalah"<<globalNum<<endl; return0; }
Next read ON halaman 12