Penjelasan Variabel Global dan Kata Kunci Extern

Posted on   Januari 22, 2018   |   Last Modified   September 13, 2018
variabel global

Variabel akan memiliki sifat akses yang berbeda berdasarkan dimana variabel tersebut didirikan, dan dengan apa dia didirikan. sebelumnya penulis telah jelaskan mengenai variabel lokal yang merupakan variabel bersifat lokal (Local Variable) yang didirikan di dalam blok dan hanya dapat dilihat atau diakses dari dalam ruang lingkup tersebut.

Global Variable

Dalam mendirikan variabel kita dimungkinkan untuk mendirikan variabel di luar dari ruang lingkup function. Global variable atau Variabel Global adalah variabel yang didirikan di dalam file tapi diluar dari block luar lingkup seperti ruang linkup dari function dan lain-lain.

Global variable memiliki sifat Static Duration, yang berarti variabel akan dibuat saat program dimulai dan dihancurkan ketika program berakhir.

Contoh Program

#include <iostream>
#include <string>
using namespace std;

string g_var= "belajarcpp.com"; //Global Variabel

void anotherFunction(){
    cout<<g_var<<endl;
}

int main ()
{
    string lokal_var = "lokal variabel"; //Lokal variabel
    cout<<g_var<<endl;
    anotherFunction();

    cout<<lokal_var<<endl;

    return 0;
}

Contoh Program di atas adalah contoh penggunaan dari Global variabel yang memperlihatakan perbedaan antara variabel global dan variabel local.

g_var adalah variabel global yang didirikan di luar ruang lingkup kedua function di atas, dan karena hal itu variabel tersebut dapat dipanggil dari berbagai ruang lingkup sesudah deklarasi variabel tersebut.

Dan untuk lokal variabel dengan identitas lokal_var, variabel tersebut hanya dapat dilihat dan diakses di dalam ruang lingkup itu sendiri dimana variabel itu didirikan.

Global variable dapat dilihat dan diakses oleh semua ruang lingkup di dalam file tersebut, hal ini memungkinkan anda menggunakan satu variabel atau memori untuk beberapa proses yang berada pada ruang lingkup (seperti function) yang berbeda, hal ini juga memungkinkan kita untuk membuat interaksi antar ruang lingkup.

Baca :   Penjelasan dan Cara Mendirikan Struct

Sebelumnya pernah penulis jelaskan pada artikel sebelumnya, bahwa deklarasi seperti variabel dapat memiliki identitas yang sama selama mereka berada pada ruang lingkup yang berbeda, termasuk dalam memiliki deklarasi dengan identitas sama pada induk ruang lingkup dan anak ruang linkup (scope di dalam scope).

Variabel global tidak sama seperti variabel lokal. jika dalam variabel lokal identitas yang sama pada anak ruang lingkup akan menggantikan variabel pada induk ruang lingkup, hal tersebut membuat variabel pada induk ruang lingkup akan digantikan dengan variabel yang berada pada anak ruang lingkup.

Tapi berbeda dengan variabel global kita dimungkinkan mengakses variabel global meskipun pada ruang lingkup terdapat variabel yang mempunyai identitas sama. Hal itu bisa kita lakukan menggunakan Scope Resolution Operator ::. Dengan tanda tersebut memungkinkan kita untuk memberitahu kompilator bahwa variabel yang dimaksud bukan lokal variabel tapi merupakan global variabel.

Contoh Program :

#include <iostream>
#include <string>
using namespace std;

string nama= "Global Variabel : belajarcpp.com"; //Global Variabel

int main ()
{
    string nama = "Lokal Variabel : belajarcpp.com"; //Local variabel
    cout<<nama<<endl;
    cout<<::nama<<endl;//Scope Resolution Operator
    return 0;
}

extern Keyword

Sebenarnya Variabel global yang di dirikan di dalam file masih berada pada ruang lingkup, yaitu ruangkup file hal itu disebut sebagai Global Scope atau Global Namespace Scope, yang memberikan kemungkinan untuk diakses dimulai dari baris dimana dia didirikan hingga akhir dari file.

Extern keyword adalah keyword tambahan untuk mendirikan variabel, extern keyword berfungsi untuk membuat variabel menjadi bersifat external linkage. Dengan menggunakan extern keyword kita dimungkinkan untuk membuat variabel yang dapat terhubung di file lain.

extern keyword biasanya digunakan untuk membuat komunikasi antar file, dengan membuat satu variabel yang dapat digunakan dalam beberapa file

Baca :   Memori Dinamis

Contoh Penulisan

extern int id;

Contoh Program
testExtern.cpp :

int id = 30;

main.cpp :

#include <iostream>

extern int id; //Extern Keyword

int main(){
 std::cout<<id<<std::endl;
}

extern int id menyatakan bahwa variabel id merupakan external linkage dari variabel dengan identitas id pada file testExtern.cpp. Program di atas akan menampilkan angka 30 yang sesuai dengan nilai dari variabel id pada file testExtern.cpp.

Untuk extern keyword hanya dapat digunakan pada variabel global, extern keyword tidak akan bisa melakukan linkage pada variabel yang bersifat static dan const.


Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *