Anda di halaman 1dari 16

Fungsi (Part 2)

Santi Prayudani, M.Kom


Ruang Lingkup/Penyimpanan Variabel
 Ruang lingkup variabel menentukan keberadaan
suatu variabel tersebut di dalam fungsi, ada
variabel yang hanya dikenal di suatu fungsi dan
tidak dikenal di fungsi lain, namun ada variabel
yang dapat diakses oleh semua fungsi.
 Jenis variabel berdasarkan kelas penyimpanannya
dibedakan menjadi :
1. Variabel global / eksternal
2. Variabel lokal / Internal
3. Variabel dinamis
4. Variabel statis
Variabel Eksternal (Global)
variabel eksternal adalah variabel
global artinya variabel ekternal bersifat
global yang dapat di gunakan bersama-
sama tanpa harus di deklarasikan
berulang-ulang, karena sudah
dideklarasikan di luar fungsi main dan
fungsi pendukung lainnya.
variabel global dapat dikenali dan
diakses oleh setiap fungsi yang terdapat
dalam program.
Contoh Variabel Global
#include<iostream>
using namespace std;

int x = 20; //variabel global

void contoh();

main()
{
cout<<"Nilai x pada main() : "<<x<<endl<<endl;
contoh();
system("pause");
}

void contoh()
{
cout<<"Nilai x pada fungsi contoh() : "<<x<<endl<<endl;
}
Variabel Internal (Lokal)
variabel yang dideklarasikan di dalam
suatu fungsi.
variabel lokal hanya dapat diakses
oleh fungsi dimana variabel tersebut
dideklarasikan (tidak dapat diakses
dan dikenali oleh fungsi lain). 
variabel lokal disebut juga dengan
variabel otomatis.
Contoh Variabel Lokal
#include<iostream>
using namespace std;

void contoh();

main()
{
int x = 10;
contoh();
cout <<"Nilai x pada main() : "<<x<<endl<<endl;
contoh();
system("pause");
}

void contoh()
{
int x = 15;
cout <<"Nilai x pada fungsi contoh() : "<<x<<endl<<endl
}
#include <iostream>
using namespace std;

int i=5;

void fungsi()
{
i+=2;
cout<<"\nNilai i dari fungsi = "<<i;
}

main()
{
i+=3;
cout<<"\nNilai i dari main = "<<i;
fungsi();
system("pause");
}
Variabel Dinamis dan Statik
Istilahautomatik (dinamis) dan statik
menjelaskan apa yang terjadi pada
suatu variabel lokal dalam suatu fungsi
sesaat setelah fungsi ini selesai
dipanggil dan eksekusi program
kembali ke fungsi yang memanggil.
Variabel Dinamis
Default dari variabel lokal dalam suatu
fungsi adalah automatik artinya variabel
lokal tersebut dihapus pada saat fungsi
selesai dipanggil.
Untuk mendefinisikan suatu variabel
automatik, tambahkan awalan auto pada
deflnisi variabel tersebut.
Karena default dari variabel lokal adalah
automatik maka awalan auto ini optional,
jadi boleh dihilangkan.
Contoh Variabel Dinamis
#include <iostream>
using namespace std;

void fungsi()
{
int j=7;
j+=2;
cout<<"\nNilai j dari fungsi = "<<j;
}
main()
{
fungsi();
fungsi();
cout<<endl;
system("pause");
}
Contoh Variabel Dinamis
#include<iostream>
using namespace std;

int x;
void contoh();
main()
{
x = 5;
cout <<"Nilai x pada main() : "<<x<<endl;
contoh();
contoh();
cout<<endl;
system("pause");
}

void contoh()
{
x+=10;
cout <<"Nilai x pada fungsi contoh() : "<<x<<endl;
}
Variabel Statis
 Variabelstatis adalah variabel yang nilainya tetap dan bisa
berupa variabel lokal (internal) dan variabel global
(eksternal).

Sifat-sifat variabel statis :


a) Jika variabel lokal berdiri sebagai variabel statis, maka:
◦ Variabel tetap hanya dapat diakses pada fungsi yang
mendefinisikannya.
◦ Variabel tidak hilang saat eksekusi fungsi berakhir.
◦ Nilainya akan tetap dipertahankan , sehingga akan dikenali pada
pemanggilan fungsi berikutnya.
◦ Inisialisasi oleh pemrogram akan dilakukan sekali saja selama
program dijalankan.
◦ Jika tidak diberi nilai awal secara otomatis berisi nilai nol.
b) Jika variabel eksternal dijadikan sebagai
variabel statis, maka:
◦ Variabel ini dapat diakses oleh semua file yang
didefinisikan pada file yang sama dengan
variabel eksternal tersebut.

Variabel statis diperoleh dengan


menambahkan kata kunci “static” di
depan tipe variabel pada pernyataan
pendefinisian.
Contoh Variabel Statis
#include <iostream>
using namespace std;

void fungsi()
{
static int j=7;
j+=2;
cout<<"\nNilai j dari fungsi = "<<j;
}
main()
{
fungsi();
fungsi();
cout<<endl;
system("pause");
}
Contoh Variabel Statis
#include<iostream>
using namespace std;

static int x;
void contoh();
main()
{
x = 5;
cout <<"Nilai x pada main() : "<<x<<endl;
contoh();
contoh();
cout<<endl;
system("pause");
}

void contoh()
{
x+=10;
cout <<"Nilai x pada fungsi contoh() : "<<x<<endl;
}
Contoh Variabel Statis
#include<iostream>
using namespace std;

void contoh();
main()
{
contoh();
int x = 5;
cout <<"Nilai x pada main() : "<<x<<endl;
contoh();
cout<<endl;
system("pause");
}
void contoh()
{
static int x;
x+=10;
cout <<"Nilai x pada fungsi contoh() : "<<x<<endl;
}

Anda mungkin juga menyukai