Menu
CoddyTech

Cakupan Variabel

Pelajaran 5 dari 17 dalam kursus Fungsi dalam C di Coddy.

Setiap variabel memiliki cakupan, yaitu bagian program tempat kamu dapat menggunakannya. Variabel dapat bersifat global atau lokal.

Variabel lokal

Variabel lokal dibuat di dalam blok kode, seperti dalam fungsi, dan hanya ada di sana. Memori untuk variabel ini dialokasikan saat blok dimulai dan dibebaskan saat blok berakhir, sehingga variabelnya dihapus.

#include <stdio.h>
void message() {
   char *msg = "Coddy";
   printf("%s \n", msg);
}
int main(void) {
   char *title = "tech";
   message();
   printf("%s \n", title);
   return 0;
}

Dalam fungsi message, variabel msg didefinisikan. Demikian pula, fungsi main mendefinisikan variabel title. Variabel-variabel ini tidak tersedia di luar fungsi masing-masing. Misalnya, kita tidak dapat menggunakan variabel msg dalam fungsi main karena cakupannya terbatas pada fungsi message.

Prinsip yang sama berlaku untuk variabel yang didefinisikan di dalam blok kode bersarang seperti if, else, switch, case, for, while, dan perulangan do..while.

Variabel global

Variabel global didefinisikan dalam file program, di luar fungsi apa pun. Variabel ini dapat digunakan oleh fungsi apa pun di dalam file tersebut.

#include <stdio.h>
int a = 12;
void increment()
{
   a++;
   printf("a=%d \n", a);
}
int main(void)
{
   increment();          
   a++;
   printf("a=%d \n", a);    
    
   return 0;
}

Output:

a=13 
a=14 

Di sini, variabel a terlihat oleh semua fungsi karena dideklarasikan secara global.

 

challenge icon

Tantangan

Mudah

Coba gunakan variabel global:

  • Tentukan variabel global bernama <strong>gv</strong> di luar fungsi apa pun dan beri nilai 20. 
  • Ubah fungsi increment agar menggunakan variabel global ini. 
  • Tulis fungsi baru decrement yang mengurangi nilai variabel global dan mencetak nilainya. 
  • Cetak nilai variabel di dalam fungsi main.

Output-nya seharusnya seperti ini:

Global variable after increment: 21 
Global variable after decrement: 20 
Global variable in main: 20 

Coba sendiri

#include <stdio.h>

// Definisikan variabel global bernama gv dan berikan nilai 20


// Ubah fungsi increment
void increment() {
   
    printf("Global variable after increment: %d \n", gv);
}

// Definisikan fungsi decrement


int main(void) {
    
    increment();
    decrement();
    // Cetak variabelnya 
    
    return 0;
}

Semua pelajaran di Fungsi dalam C

Latihan sendiri: Compiler C online