Variabel Global dan Variabel Lokal dalam Bahasa C

Mahir Koding – Dalam pendeklarasian variabel di C, sebenarnya ada dua jenis penempatan variabel yang dapat kamu terapkan diantaranya Global Variabel dan Lokal Variabel. Perbedaannya tidak terlalu signifikan, jika biasanya kamu mengdeklarasikan variabel di dalam sebuah score int main(){} maka pernahkah terpikir untuk mengakses variabel tersebut di dalam variabel lain? Tentu saja tidak bisa, kecuali kamu mempassingnya via parameter. Namun tentu saja itu sangat ribet jika harus mempassing secara terus-menerus parameter yang tidak dibutuhkan.

Variabel Global

Variabel global memiliki kemampuan untuk dikenali oleh seluruh kode program yang ada, entah itu didalam class maupun di program utama (main program) karena pendeklarasian variabel global dilakukan diluar class dan diluar program utama, tapi sebaiknya kamu mengurangi penggunaan variabel global karena ada kemungkinan variabel ini akan termodifikasi oleh instruksi yang menggunakan variabel yang di deklarasikan secara global.

#include <stdio.h>

int umur=20;

void cetakumur(){
    printf("Umur = %d\n", umur);
}

int main(){
    cetakumur();
    printf("Umur = %d", umur);
    getchar();
    return 0;
}

Terlihat jelas bahwa pendeklarasian integer umur sebagai global variabel dapat diakses oleh semua fungsi baik itu main fungsi atau fungsi lainnya.

Variabel Lokal

Variabel lokal adalah variabel yang hanya dapat digunakan dimana variabel tersebut dideklarasikan dalam sebuah scope fungsi. Untuk membuktikannya, coba jalankan program di bawah ini.

#include <stdio.h>

void cetakumur(){
    printf("Umur = %d\n", umur); 
    //error karena variabel umur tidak terdefinisi
}

int main(){
    int umur=20;
    cetakumur();
    printf("Umur = %d", umur);
    getchar();
    return 0;
}

Bisa dipastikan akan terjadi error saat compile karena variabel umur dalam fungsi cetakumur() tidak terdefinisikan sebelumnya. Deklarasi umur hanya ada di fungsi main dan tentu saja cetakumur() tidak dapat mengakses variabel tersebut karena sifatnya local variabel.

Kesimpulan

Kesimpulan dari perbedaan variabel global dan local hanya terletak pada penempatan deklarasi variabel saja, jika variabel global di deklarasikan di luar paramater sedangkan variabel local di deklarasikan di dalam scope fungsi saja.