Pemrograman
Terstruktur C++
:: Person 10 :: • Stefani. P. Tangkuman • Yan Makarunggala • Supardi Jamali Dosen :Ir. Hasanuddin Sirait, MT
STMIK / AMIK PARNA
RAYA MANADO
6.10 Variabel Lokal dan Global
Suatu variabel lokal dideklarasikan di dalam
fungsi ‘a’ , dan tidak dapat diakses di luar fungsi
(a) tersebut.
Suatu variabel global dideklarasikan (di) luar /
selain semua fungsi (a) dan dapat diakses dalam
lingkup nya .
Program 6-16
// Program ini menampilkan pendeklarasian variabel ‘a’
dalam suatu fungsi
// Yang tersembunyi dari fungsi lain.
#include <iostream.h>
void func(void);
// Fungsi Prototipe
void main(void)
{
int num = 1;
cout<<"In main, num is " <<num<<endl;
func();
cout<<"Back in main, num is still "<<num<<endl;
//********************************************************* // Mendefinisikan fungsi func. *
/ / Ini memiliki variabel lokal, num, yang nilai awal, 20, * / / Akan ditampilkan.*
//*********************************************************
void func(void)
{
int num = 20;
cout << "In func, num is " << num << endl;
}
Di utama / awal, num bernilai 1
Di func, num bernilai 20
Kembali ke utama / awal, num masih bernilai 1
Keluaran Program
Figur 6-8
FUNGSI UTAMA NUM = 1
Variabel pada num hanya terlihat pada fungsi utama
(main).
FUNGSI FUNC NUM = 20
Variabel pada num hanya terlihat pada fungsi func.
Program 6-17
// Program ini menampilkan variabel global
// kepada semua fungsi yang dekat setelah program // mendeklarasikan variabel.
#include <iostream.h>
void func(void); // Fungsi Prototipe int num = 2; // Variabel Global
void main(void)
{
cout << "In main, num is " << num << endl;
func();
cout << "Back in main, num is " << num << endl;
//***************************************************** // Mendefinisikan Fungsi func. *
// func menggantikan nilai dari setiap variabel global num * //*****************************************************
void func(void)
{
cout << "In func, num is " << num << endl;
num = 50;
cout << "But, it is now changed to " << num << endl;
}
Di utama / awal, num bernilai 2
Di func, num bernilai 2
Tapi, sekarang berubah nilai menjadi 50
Kembali ke utama / awal, num bernilai 50
Keluaran Program
/ / Program ini menunjukkan bahwa variabel global terlihat / / Untuk semua fungsi yang muncul dalam program setelah / / Deklarasi variabel.
#include <iostream.h>
void func(void); // Function prototype void main(void)
{
cout << "In main, num is not visible!\n"; func();
cout << "Back in main, num still isn't visible!\n"; }
int num = 2; // Global variable
// ***************************************************** // Definisi fungsi fungsi *
// Perubahan fungsi nilai variabel num global. * // ***************************************************** void func(void)
{
cout << "In func, num is " << num << endl; num = 50;
cout << "But, it is now changed to " << num << endl; }
Lanjutan
Dalam utama, num tidak terlihat!
Dalam func, num adalah 2
Tapi, sekarang berubah menjadi 50
Kembali di utama, num masih tidak
terlihat!
Variabel global diinisialisasi 0
oleh default
• Kecuali Anda secara eksplisit menginisialisasi
numerik variabel global, mereka secara
otomatis diinisialisasi ke nol.
• variabel karakter global diinisialisasi NULL,
atau kode ASCII 0.
Program 6-19
// Program ini memiliki variabel global yang tidak diinisialisasi. #include <iostream.h>
int globalNum; // Global variable. Automatically set to zero. void main(void)
{
cout << "globalNum is " << globalNum << endl; }
Keluaran Program
globalNum adalah 0
Variabel Lokal dan Global
dengan Nama yang sama
• Jika fungsi memiliki variabel lokal dengan
nama yang sama sebagai variabel global,
hanya variabel lokal dapat dilihat oleh fungsi.
Program 6-20
/ / Program ini menunjukkan bahwa ketika variabel lokal memiliki / / Nama yang sama sebagai variabel global, fungsi hanya melihat / / Variabel lokal. #include <iostream.h> // Fungsi Prototipe void texas(); void arkansas(); int cows = 10; void main(void) {
cout << "There are " << cows << " cows in main.\n"; texas();
arkansas();
cout << "Back in main, there are " << cows << " cows.\n"; }
/ / ****************************************** / / Definisi fungsi texas. *
/ / Sapi-sapi variabel lokal diatur ke 100. * / / ****************************************** void texas(void)
{
int cows = 100;
cout << "There are " << cows << " cows in texas.\n"; }
/ / ****************************************** / / Definisi fungsi arkansas. *
/ / Sapi-sapi variabel lokal diatur ke 50. * / / ****************************************** void arkansas(void)
{
int cows = 50;
cout << "There are " << cows << " cows in arkansas.\n"; }
Lanjutan
Keluaran Program
Ada 10 ekor sapi utama.
Ada 100 sapi di texas.
Ada 50 ekor sapi di
arkansas.
Kembali pada utama,
ada 10 sapi.
Program 6-21
/ / Program ini memiliki variabel lokal dan global. Dalam fungsi / / RingUpSale, ada variabel bernama pajak daerah. ada
/ / Juga variabel global dengan nama yang sama. #include <iostream.h>
void ringUpSale(void); // Function prototype // Global Variables
const float taxRate = 0.06; float tax, sale, total;
void main(void) {
char again;
cout.precision(2);
cout.setf(ios::fixed | ios::showpoint); do
{
ringUpSale();
cout << "Is there another item to be purchased? "; cin >> again;
} while (again == 'y' || again == 'Y'); tax = sale * taxRate;
total = sale + tax;
cout << "The tax for this sale is " << tax << endl;
/ / ****************************************************************** / / Definisi fungsi ringUpSale. *
/ / Fungsi ini meminta untuk kuantitas dan harga satuan dari item. * / / Kemudian menghitung dan menampilkan pajak penjualan dan subtotal * / / Untuk barang-barang. * / / ****************************************************************** void ringUpSale(void) { int qty;
float unitPrice, tax, thisSale, subTotal; cout << "Quantity: ";
cin >> qty;
cout << "Unit price: "; cin >> unitPrice;
thisSale = qty * unitPrice; // Dapatkan harga total unit
Lanjutan
sale += thisSale; // Perbarui penjualan variabel global
tax = thisSale * taxRate; // Dapatkan pajak penjualan untuk barang-barang
subTotal = thisSale + tax; // Dapatkan subtotal untuk item ini cout << "Price for these items: " << thisSale << endl;
cout << "tax for these items: " << tax << endl;
cout<< "subTotal for these items: " << subTotal << endl; }
Jumlah: 2 [Enter]
Harga Satuan: 20.00 [Enter] Harga untuk item: 40.00
pajak untuk barang-barang: 2.40 subtotal untuk item: 42.40
Apakah ada item lain yang akan dibeli? y [Enter]
Jumlah: 3 [Enter]
Harga Satuan: 12.00 [Enter] Harga untuk item: 36.00
pajak untuk barang-barang: 2.16 subtotal untuk item: 38.16
Apakah ada item lain yang akan dibeli? n [Enter]
Pajak untuk dijual ini adalah 4,56 Totalnya adalah 80,56
Keluaran Program
Hati-hati Dengan Variabel global
• Hal ini menggoda untuk membuat semua variabel global. Tapi jangan lakukan itu!
• Menggunakan variabel global dapat menyebabkan masalah.
- Ini lebih sulit untuk debug program yang menggunakan global yang variabel