9
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.

Fungsi part 4

Embed Size (px)

Citation preview

Page 1: Fungsi part 4

Penggunaan variabel eksternal sesedikitmungkin tidak usah digunakan. Tidak lain adalah karena variabel ini mudah sekaliterubah oleh pernyataan penugasan yang letaknya bisa dimana saja. Ini bisamenimbulkan efek samping yang sulit untukmelacaknya, terutama untuk program yang besar.

Variabel eksternal mempunyai durasi selamaprogram dieksekusi. Dengan katalain, memori yang digunakan untuk variabelini tetap dipertahankan selama program belum berakhir.

Page 2: Fungsi part 4

Baik variabel eksternal maupun otomatis dapatberkedudukan sebagai variabel statis. Suatuvariabel statis mempunyai sifat:

1. Jika variabel lokal berdiri sebagai variabelstatis, maka:

a. Variabel tetap hanya dapat diakses pada fungsiyang mendefinisikannya.

b. Variabel tidak hilang saat eksekusi fungsiberakhir. Nilainya akan tetapdipertahankan, sehingga akan dikenali padapemanggilan fungsi untuk tahap berikutnya.

c. Inisialisasi oleh pemrogram akan dilakukansekali saja selama program dijalankan. Jikatidak ada inisialisasi secara eksplisit, variabeldiisi dengan nol

Page 3: Fungsi part 4

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)

Page 4: Fungsi part 4

Variabel statis diperoleh dengan

menambahkan kata kunci static didepan tipe

variabel pada pernyataan pendefinisian.

Sebagai contoh:

static int waterloo;

void abba()

{

static mamamia;

}

Page 5: Fungsi part 4

Pada contoh di atas:

Waterloo adalah variabel eksternal yang

bersifat statis

Mamamia adalah variabel otomatis (lokal)

yang bersifat statis bagi fungsi abba()

Page 6: Fungsi part 4
Page 7: 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

Page 8: Fungsi part 4
Page 9: 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++;)