Variabel Lokal dan Global

7.11. Variabel Lokal dan Global

Seperti yang telah ditetapkan fungsi lainnya, yang biasanya tidak bahwa variabel didalam fungsi bisa mengaksesnya. Program 7.15 utama, Anda juga dapat menetapkan

menunjukkan bahwa variabel yang fungsi di dalam fungsi-fungsi lainnya.

ditetapkan dalam suatu fungsi yang Variabel yang ditetapkan dalam tersembunyi, dimana fungsi lainnya fungsi lokal ke fungsi. Mereka mungkin telah terpisah, berbeda tersembunyi dari pernyataan dalam variabel dengan nama yang sama.

Program 7.15 #include <iostream>

using namespace std;

void anotherFunction();

int main() {

int num = 1 ;

cout << "Dalam program utatma,num adalah: " << num << endl; anotherFunction(); cout << "Kembali dalam program utama, num masih" << num << endl;

return 0 ; }

2008 | Direktorat Pembinaan SMK

Bahasa Pemrograman Fungsi

void anotherFunction() {

int num = 20 ; // variabel Local

cout << "Dalam anotherFunction, num adalah: " << num << endl; }

Keluaran Program adalah sebagai berikut: Dalam program utatma,num adalah: 1 Dalam anotherFunction, num adalah: 20 Kembali dalam program utama, num masih 1

Meskipun terdapat dua variabel sebagai variabel yang ditetapkan num, program ini hanya bisa didalamnya akan terlihat, sehingga "melihat" salah satu dari mereka dalam variabel num program utama setiap saat. Ketika program tersembunyi. Perhatikan program dijalankan dalam program utama, yang mengilustrasikan sifat tertutup yang didefinisikan pada variabel num

dari dua fungsi, dimana bentuk kotak akan terlihat pada program utama. mewakili lingkup variabel Ketika anotherFunction disebut

Fungsi main

Variabel num hanya terlihat pada Int num = 1;

program utama

Fungsi anotherFunction

Variabel num hanya terlihat pada int num = 20;

anotherFunction

Gambar 7.10. Dua Fungsi yang mempunyai sifat tertutup,

Sebuah Lokal variabel dapat mudah. Sebuah variabel global dikatakan sebagai variable yang merupakan variabel yang ditetapkan aman dan tersembunyi dari fungsi diluar oleh semua fungsi dalam lain, tetapi variable ini tidak sebuah program. Program 7.16 menyediakan cara yang mudah untuk

menunjukkan dua buah fungsi utama berbagi data. Jika sejumlah besar dan anotherFunction, dimana data harus dapat diakses oleh semua

menggunakan akses yang sama fungsi dalam program, variabel global

yaitu variabel global num. dapat digunakan sebagai alternatif

Direktorat Pembinaan SMK | 2008

Fungsi

Bahasa Pemrorgraman

Program 7.16 #include <iostream>

using namespace std;

void anotherFunction();

// Fungsi prototipe int num = 2 ; // variabel Global

int main() {

cout << "dalam program utama, num adalah" << num << endl; anotherFunction(); cout << "kembali dari program utama, num adalah" << num << endl;

return 0 ; }

void anotherFunction() {

cout << "dalam fungsi anotherFunction, num adalah " << num << endl; num = 50 ; cout << "tetapi, sekarang telah diubah menjadi " << num << endl; }

Dalam Program 7.16 diatas, dan anotherFunction, maka variabel num didefinisikan diluar keduanya memiliki akses ke fungsi semua fungsi. Karena muncul tersebut. sebelum definisi pada program utama

Program 7.17 #include <iostream>

using namespace std;

int globalNum; // variabel Global. Otomatis diatur ke null. int main() {

cout << "globalNum adalah " << globalNum << endl; return 0 ; }

2008 | Direktorat Pembinaan SMK

Bahasa Pemrograman Fungsi

Jika sebuah fungsi memiliki variabel hanya dapat dilihat oleh fungsi. Hal lokal dengan nama yang sama ini ditunjukkan oleh Program dibawah sebagai variabel global, variabel lokal

ini:

Program 7.18 #include <iostream>

using namespace std;

// Funsi prototipe void texas(); void arkansas();

int cows = 10 ; //variabel global

int main() {

cout << "Disana banyak " << cows << " cows di program utama.\n" ; texas(); arkansas(); cout << "Kembali dalam program utama, disana banyak" << cows << " cows.\n" ;

return 0 ; }

void texas()

{ int cows = 100 ; //variabel Local

cout << "disana " << cows << " cows di texas.\n" ; }

void arkansas()

{ int cows = 50 ; // variabel Local

cout << "There are " << cows << " cows in arkansas.\n" ; }

Ketika program diatas sedang merupakan program untuk mendaftar menjalankan fungsi utama, variabel dan program ini menggunakan global cows akan terlihat. Dalam variabel global dan lokal. Fungsi fungsi texas dan Arkansas, meskipun

ringUpSale menghitung dan ada variabel lokal dengan nama menampilkan harga, pajak penjualan, cows. Variabel global tidak terlihat dan subtotal untuk setiap item yang ketika program sedang menjalankan dibeli. Memiliki variabel lokal, pajak, fungsi mereka. program dibawah yang memiliki nama yang sama

Direktorat Pembinaan SMK | 2008

Fungsi

Bahasa Pemrorgraman seperti variabel global. Pajak pada program utama untuk menghitung

ringUpSale variabel yang digunakan total pajak penjualan pada untuk menghitung pajak penjualan pembelian. Supaya lebih jelas, pada item, sementara global pajak perhatikan program dibawah ini: variabel yang digunakan oleh

Program 7.19 #include <iostream> #include <iomanip>

using namespace std;

// Fungsi prototipe

void ringUpSale();

// variabel Global const double TAX_RATE = 0.06 ;

double tax, sale, total;

int main() {

char again;

cout << fixed << showpoint << setprecision( 2 );

do {

ringUpSale(); cout << "Apakah disana ada ada sesuatu yang dapat dijual? " ; cin >> again;

} while (again == 'y' || again == 'Y'); tax = sale * TAX_RATE; total = sale + tax; cout << "\nPajak penjualannya adalah " << tax << endl; cout << "Total Pembayaran adalah " << total << endl;

return 0 ; }

void ringUpSale()

{ //Variabel Local

int qty; double unitPrice, tax, thisSale, subTotal;

cout << "\nJumlah: " ;

2008 | Direktorat Pembinaan SMK

Bahasa Pemrograman Fungsi

cin >> qty; cout << "Harga per satuan: " ; cin >> unitPrice;

thisSale = qty * unitPrice; // total harga unit sale += thisSale;

// Update variabel global penjualan tax = thisSale * TAX_RATE; // pembayaran pajak untuk item subTotal = thisSale + tax; // subtotal untuk tiap item cout << "harga untuk tiap item:" << thisSale << endl; cout << "pajak untuk tiap item: " << tax << endl; cout << "SubTotal untuk tiap item: " << subTotal << endl;