static tipe_data nama_variabel;
Untuk mengetahui lebih jauh mengenai variabel statis, perhatikan dua program di bawah ini :
a. Menggunakan variabel biasa
#include <iostream> #include <stdlib.h> using namespace std; //Membuat fungsi dengan nama contoh int contoh() { int A = 0; A = A + 10; return A; } int main() { int x, y, z; x = contoh(); y = contoh(); z = contoh(); //Menampilkan nilai yang telah di proses di dalam fungsi cout<<"Nilai fungsi pemanggilan pertama = "<<x<<endl; cout<<"Nilai fungsi pemanggilan kedua = "<<y<<endl; cout<<"Nilai fungsi pemanggilan ketiga = "<<z<<endl; system("Pause"); return 0; }
Hasil yang akan diperoleh :
Nilai fungsi pada pemanggilan pertama = 10
Nilai fungsi pada pemanggilan kedua = 10
Nilai fungsi pada pemanggilan ketiga = 10
b. Menggunakan variabel statis
#include <iostream> #include <stdlib.h> using namespace std; //Membuat fungsi dengan nama contoh int contoh() { static int A = 0; //Menggunakan variabel statis A = A + 10; return A; } int main() { int x, y, z; x = contoh(); y = contoh(); z = contoh(); //Menampilkan nilai yang telah di proses di dalam fungsi cout<<"Nilai fungsi pemanggilan pertama = "<<x<<endl; cout<<"Nilai fungsi pemanggilan kedua = "<<y<<endl; cout<<"Nilai fungsi pemanggilan ketiga = "<<z<<endl; system("Pause"); return 0; }Hasil yang akan diperoleh :
Nilai fungsi pada pemanggilan pertama = 10
Nilai fungsi pada pemanggilan kedua = 20
Nilai fungsi pada pemanggilan ketiga = 30
Jika kita amati hasil program di atas, nilai dari setiap pemanggilan fungsi akan memberikan hasil yang berbeda. Konsepnya sederhana, yaitu pada pemanggilan fungsi yang pertama kali pada variabel A masih bernilai 0 (sesuai dengan inisialisasi). Fungsi akan menambahkan nilai tersebut dengan 10, maka nilai yang dikembalikan fungsi contoh() adalah 10. Sampai disini, karena variabel A adalah variabel statis maka pada saat pemanggilan fungsi yang kedua, variabel A masih menyimpan nilai 10, bukan 0. Dengan demikian pemanggilan fungsi kedua tentu akan menampilkan nilai nilai A dengan nilai 10, sehingga nilai yang di kembalikan adalah 20, begitu seterusnya.
No comments:
Post a Comment