Upload
savannah-graham
View
11
Download
1
Embed Size (px)
DESCRIPTION
Person 10. Arthur Sumandag. Pemrograman Terstruktur C++. 6.10 Variabel Lokal dan Global. Suatu variabel lokal dideklarasikan di dalam fungsi ‘ a ’ , dan tidak dapat diakses di luar fungsi ( a ) tersebut . - PowerPoint PPT Presentation
Citation preview
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 Prototipevoid 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;}
Lanjutan
Di utama / awal, num bernilai 1Di func, num bernilai 20Kembali ke utama / awal, num masih bernilai 1
Keluaran Program
Figur 6-8
FUNGSI UTAMANUM = 1
Variabel pada num hanya terlihat pada fungsi utama (main).
FUNGSI FUNCNUM = 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 Prototipeint 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;}
Lanjutan
Di utama / awal, num bernilai 2Di func, num bernilai 2Tapi, sekarang berubah nilai menjadi 50Kembali 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 prototypevoid main(void){
cout << "In main, num is not visible!\n";func();cout << "Back in main, num still isn't visible!\n";
}
Program 6-18
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 2Tapi, sekarang berubah menjadi 50Kembali di utama, num masih tidak terlihat!
Keluaran Program
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;}
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 Prototipevoid 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";}
Lanjutan
/ / ******************************************/ / 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 Variablesconst 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;cout << "The total is " << total << endl;}
Lanjutan
/ / ******************************************************************/ / 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 globaltax = thisSale * taxRate; // Dapatkan pajak penjualan untuk barang-barang
subTotal = thisSale + tax; // Dapatkan subtotal untuk item inicout << "Price for these items: " << thisSale << endl;cout << "tax for these items: " << tax << endl;cout<< "subTotal for these items: " << subTotal << endl;}
Lanjutan
Jumlah: 2 [Enter]Harga Satuan: 20.00 [Enter]Harga untuk item: 40.00pajak untuk barang-barang: 2.40subtotal untuk item: 42.40Apakah ada item lain yang akan dibeli? y [Enter]Jumlah: 3 [Enter]Harga Satuan: 12.00 [Enter]Harga untuk item: 36.00pajak untuk barang-barang: 2.16subtotal untuk item: 38.16Apakah ada item lain yang akan dibeli? n [Enter]Pajak untuk dijual ini adalah 4,56Totalnya adalah 80,56
Keluaran Program
Hati-hati Dengan Variabel global
• Hal ini menggoda untuk membuat semua variabelglobal. Tapi jangan lakukan itu!
• Menggunakan variabel global dapat menyebabkan masalah. - Ini lebih sulit untuk debug program yang menggunakan global yang variabel