Selasa, 15 Mei 2012

Lingkup variabel c++

0 komentar

5.3. Lingkup variabel

Lingkup variabel menentukan keberadaan suatu variabel tertentu dalam fungsi. Ada variabel yang hanya dikenal di suatu fungsi dan tidak dikenal pada fungsi lain. Namun ada juga variabel yang dapat diakses oleh semua fungsi. 

Variabel Otomatis

Variabel yang didefinisikan di dalam suatu fungsi berlaku sebagai variabel lokal bagi fungsi. Artinya, variabel tersebut hanya dikenal didalam fungsi tempat variabel didefinisikan.

Contoh program :

//*---------------------------------------------------------*

//* Contoh 5.2 : Memperlihatkan efek variabel *

//* otomatis (lokal) *

//*---------------------------------------------------------*

#include < iostream.h>

#include <conio.h>

void alpha(); // Prototipe fungsi

void main()

{

int x = 22; // Variabel lokal pada main()

double y = 2.22;

clrscr();

cout << “ Pada main() : x = “ << x

<< “ y = “ << y << endl;

alpha(); // Panggil fungsi alpha

cout << “Pada main() : x = “ << x

<< “ y = “ << y << endl;

}



// Definisi fungsi alpha()



void alpha()

{

int x = 20; // Variabel lokal pada alpha()

double y = 3.14;

cout << “Pada alpha() : x = “ << x

<< “ y = “ << y << endl;

} 
Hasil ekseskusi :
                        Pada main() : x = 22   y = 2.22
                        Pada alpha() : x = 22   y = 3.14
                        Pada main() : x = 22   y = 2.22



 
 





Tampak bahwa perubahan x dan y pada alpha() tidak mempengaruhi variabel bernama sama pada main(). Karena variabel-variabel tersebut bersiafat lokal bagi masing-masing fungsi yag mendefinisikannya. Variabel x dan y pada fungsi alpha() yang disebut sebagai variabel otomatis. 
 
Variabel Eksternal

Variabel eksternal adalah variabel yang didefinisikan diluar fungsi manapun. Variabel ini dikenal juga sebagai variabel global, sebab variabel ini dikenal disemua fungsi.

Contoh program :

//*---------------------------------------------------------------*

//* Contoh 5.3 : Pemakaian Variabel eksternal *

//*--------------------------------------------------------------*

#include <iostream.h>

#include <conio.h>

int oblade = 550; // Variabel eksternal

void tambah(); // Prototipe fungsi

void main()

{

clrscr();

cout << oblade << endl;

tambah();

cout << oblade << endl;

tambah();

cout << oblade << endl;

}

// Definisi fungsi

void tambah ()

{

oblada ++ ; // Variabel eksternal dinaikkan

}

 551
 552
 553
 
Hasil eksekusi :





Guna memeperjelas suatu variabel didalam suatu fungsi yang menggunakannya dapat mendeklarasikan (bukan mendefinisikan, karena tidak ada pengalokasian memori) dengan menambahkan kata extern didepan tipa data.

Contoh program :

//*------------------------------------------------------------*

//* Contoh 5.4 : Pemakaian Variabel eksternal *

//* dengan tambahan kata extern *

//*------------------------------------------------------------*

#include <iostream.h>

#include <conio.h>

int oblade = 550; // Variabel eksternal

void tambah(); // Prototipe fungsi

void main()

{

clrscr();

cout << oblade << endl;

tambah();

cout << oblade << endl;

tambah();

cout << oblade << endl;

}

// Definisi fungsi

void tambah ()

{

extern oblade;

oblada ++ ; // Variabel eksternal dinaikkan

}


Variabel Statis

Variabel eksternal maupun otomatis dapat berkedudukan sebagai variabel statis. Suatu variabel statis mempunyai sifat :

- Jika variabel lokal berdiri sebagai variabel satatis, maka :

- Variabel tetap hanya dapat diakses pada fungsi yang mendefinisikannya

- Variabel tidak hilang saat eksekusi fungsi berakhir

- Inisialisasi oleh pemrogram akan dilakukan sekali saja selama program dijalankan.

- Jika variabel eksternal dijadikan sebagai variabel statis,variabel ini dapat diakses oleh semua file yang didefinisikan pada file yang sama dengan variabel eksternal tersebut.

Contoh program :

//*-----------------------------------------------------------*

//* Contoh 5.5 : Menunjukkan efek variabel satatis *

//*-----------------------------------------------------------*

#include<iostream.h>

#include <conio.h>

void saya_ingat(); // Prototipe fungsi

void main()

{

int mana = 50;

clrscr();

saya_ingat();

saya_ingat();

saya_ingat();

cout << “ main() : mana = “ << mana << endl;

}

// Pada fungsi berikut

// mana didefinisikan sebagai variabel statis

void saya_ingat()

{

static int mana = 77; // variabel statis

mana ++; // Naikkan sebesar 1

cout << “ Saya_ingat () : mana = “ << mana << endl;

}

Saya_ingat ()  : mana = 78
Saya_ingat ()  : mana = 79
Saya_ingat ()  : mana = 80
  main()        : mana = 50
 
Hasil eksekusi :






Berdasarkan hasil diatas, terlihat bahwa variabel statis mana pada fungsi saya_ingat () hanya diinisialisasi (bernilai 77) sekali saja. Kemudian setiap kali saya_ingat () dipanggil nilai variabel tersebut dinaikkan sebesar 1.

0 komentar:

Posting Komentar