Variabel statis memiliki sifat yang berbeda dari variabel normal. Variabel statis akan dipertahankan nilainya selama program dieksekusi, baik itu variabel lokal maupun eksternal. Variabel statis dapat diakses hanya dari fungsi tempat ia didefinisikan, dan hanya diinisialisasi sekali.
1 of 9
Download to read offline
More Related Content
Fungsi part 4
1. ï‚ž Penggunaan variabel eksternal sesedikit
mungkin tidak usah digunakan. Tidak lain
adalah karena variabel ini mudah sekali
terubah oleh pernyataan penugasan yang
letaknya bisa dimana saja. Ini bisa
menimbulkan efek samping yang sulit untuk
melacaknya, terutama untuk program yang
besar.
ï‚ž Variabel eksternal mempunyai durasi selama
program dieksekusi. Dengan kata
lain, memori yang digunakan untuk variabel
ini tetap dipertahankan selama program
belum berakhir.
2. Baik variabel eksternal maupun otomatis dapat
berkedudukan sebagai variabel statis. Suatu
variabel statis mempunyai sifat:
1. Jika variabel lokal berdiri sebagai variabel
statis, maka:
a. Variabel tetap hanya dapat diakses pada fungsi
yang mendefinisikannya.
b. Variabel tidak hilang saat eksekusi fungsi
berakhir. Nilainya akan tetap
dipertahankan, sehingga akan dikenali pada
pemanggilan fungsi untuk tahap berikutnya.
c. Inisialisasi oleh pemrogram akan dilakukan
sekali saja selama program dijalankan. Jika
tidak ada inisialisasi secara eksplisit, variabel
diisi dengan nol
3. 2. Jika variabel eksternal dijadikan sebagai
variabel ini dapat diakses oleh semua file
yang didefinisikan pada file yang sama
dengan variabel eksternal tersebut (hal ini
bermanfaat pada pemrogram file berganda
atau kode program ditaruh pada beberapa
file)
4. Variabel statis diperoleh dengan
menambahkan kata kunci static didepan tipe
variabel pada pernyataan pendefinisian.
Sebagai contoh:
static int waterloo;
void abba()
{
static mamamia;
…
}
5. Pada contoh di atas:
ï‚ž Waterloo adalah variabel eksternal yang
bersifat statis
ï‚ž Mamamia adalah variabel otomatis (lokal)
yang bersifat statis bagi fungsi abba()
7. ï‚ž Berdasarkan hasil diatas, terlihat bahwa
variabel statis mamamia pada fungsi
saya_ingat() hanya diinisialisasi (bernilai 77)
sekali saja.
ï‚ž Kemudian setiap kali fungsi saya_ingat()
dipanggil nilai variabel tersebut dinaikkan
sebesar 1(berkat perintah: mamamia++;)
ï‚ž Tampak pula bahwa variabel bernama sama
yang didefinisikan pada fungsi main() tidak
ada kaitannya dengan variabel yang tidak
menyertakan kata kunci static
9. Hasil diatas menunjukkan bahwa apabila
variabel mamamia pada fungsi saya_ingat()
tidak didefinisikansebagai variabel
statis,maka variabel tersebut selalu
diinisialisasikan sama dengan 77.Oleh karena
itu,hasil yangditampilkan selalu berupa
78(akibat dinaikkan oleh mamamia++;)