Page 27 - PEMROGRAMAN DASAR MENGGUNAKAN C
P. 27
Nilai y = 100
Nilai z = 1000
Apa yang dapat Anda simpulkan dari hasil di atas? Kita lihat bahwa pada saat kita
menggunakan variabel biasa, setiap kali pemanggilan fungsi tersebut, kompilator akan
mengalokasikan variabel a dan menginisialisasinya dengan nilai 1, yang selanjutnya
akan dikalikan dengan 10. Namun yang perlu diperhatikan adalah pada saat program
selesai melakukan proses yang terdapat fungsi, maka variabel a akan didealokasikan
secara otomatis. Hal ini yang menyebabkan setiap pemanggilan fungsi akan selalu
menghasilkan nilai yang tetap, yaitu 10.
Sedangkan apabila kita menggunakan variabel statis, maka ketika pertama kali fungsi
dipanggil, variabel a akan dialokasikan dan akan tetap bersarang di memori sampai
program dihentikan. Adapun nilai a yang ada pada saat ini adalah 1 sehingga apabila
dikalikan 10, maka hasilnya adalah 10. Kemudian ketika fungsi itu dipanggil untuk
yang kedua kalinya, nilai a sudah menjadi 10, bukan 1, dan nilai terakhir tersebut
kemudian dikalikan lagi dengan 10, menghasilkan nilai 100. Begitu juga dengan
pemanggilan fungsi yang ketiga, nilai a yang ada adalah 100 sehingga apabila dikalikan
10 maka hasilnya 1000.
2.3.4.3. Variabel Eksternal
Bahasa C mengizinkan kita untuk menuliskan sintak program ke dalam file yang
terpisah dengan bertujuan untuk modularisasi program. Untuk itu apabila kita ingin
mendeklarasikan variabel yang dapat dikenali dan diakses oleh masing-masing file yang
terpisah tersebut, maka variabel itu harus kita deklarasikan sebagai variabel eksternal.
Adapun caranya adalah dengan menambahkan kata kunci extern pada saat
pendeklarasikan. Berikut ini bentuk umumnya.
extern tipe_data nama_variabel;
Sebagai contoh, asumsikan kita memiliki dua buah file program, yaitu eksternal.c dan
utama.c, maka apabila kita mendeklarasikan suatu variabel eksternal di file utama.c,
maka dalam file eksternal.c variabel itu juga dapat diakses, yaitu dengan
mendefinisikannya melalui kata kunci extern. Untuk mengilustrasikan kasus ini, coba
Anda perhatikan potongan sintak di bawah ini.
Dalam file utama.c
...
int var_eksternal; /* deklarasi variabel */
int main(void) {
var_eksternal = 100;
printf(“Nilai var_eksternal : %d\n”, var_eksternal);
/* Memanggil fungsi SetNilai() yang terdapat pada file
eksternal.c */
SetNilai();