ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
ï‚ž 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.
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
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)
Variabel statis diperoleh dengan
menambahkan kata kunci static didepan tipe
variabel pada pernyataan pendefinisian.
Sebagai contoh:
static int waterloo;
void abba()
{
static mamamia;
…
}
Pada contoh di atas:
ï‚ž Waterloo adalah variabel eksternal yang
bersifat statis
ï‚ž Mamamia adalah variabel otomatis (lokal)
yang bersifat statis bagi fungsi abba()
Fungsi part 4
ï‚ž 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
Fungsi part 4
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++;)

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++;)