Page 30 - Project Akhir Media Pendidikan
P. 30
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 */
printf(“Nilai var_eksternal : %d\n”, var_eksternal);
26