pemrograman terstruktur c++ - imeldaflorensia91 · 6.10 variabel lokal dan global suatu variabel...
TRANSCRIPT
Pemrograman
Terstruktur C++
:: Person 10 ::
• Stefani. P. Tangkuman
• Yan Makarunggala
• Supardi Jamali
Dosen : Ir. Hasanuddin Sirait, MT
STMIK / AMIK PARNA
RAYA MANADO
Published by. imeldaflorensia91
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 .
Published by. imeldaflorensia91
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;
} Published by. imeldaflorensia91
//*********************************************************
// 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
Published by. imeldaflorensia91
Di utama / awal, num bernilai 1
Di func, num bernilai 20
Kembali ke utama / awal, num masih bernilai 1
Keluaran Program
Published by. imeldaflorensia91
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.
Published by. imeldaflorensia91
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;
} Published by. imeldaflorensia91
//*****************************************************
// 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
Published by. imeldaflorensia91
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
Published by. imeldaflorensia91
/ / 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";
}
Program 6-18
Published by. imeldaflorensia91
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
Published by. imeldaflorensia91
Dalam utama, num tidak terlihat!
Dalam func, num adalah 2
Tapi, sekarang berubah menjadi 50
Kembali di utama, num masih tidak
terlihat!
Keluaran Program
Published by. imeldaflorensia91
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.
Published by. imeldaflorensia91
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;
}
Published by. imeldaflorensia91
Keluaran Program
globalNum adalah 0
Published by. imeldaflorensia91
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.
Published by. imeldaflorensia91
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";
}
Published by. imeldaflorensia91
/ / ******************************************
/ / 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
Published by. imeldaflorensia91
/ / ******************************************
/ / 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
Published by. imeldaflorensia91
Keluaran Program
Ada 10 ekor sapi utama.
Ada 100 sapi di texas.
Ada 50 ekor sapi di
arkansas.
Kembali pada utama,
ada 10 sapi.
Published by. imeldaflorensia91
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;
Published by. imeldaflorensia91
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
Published by. imeldaflorensia91
/ / ******************************************************************
/ / 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
Published by. imeldaflorensia91
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;
}
Lanjutan
Published by. imeldaflorensia91
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
Published by. imeldaflorensia91
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
Published by. imeldaflorensia91
Published by. imeldaflorensia91