27
Person 10 Arthur Sumandag Pemrograman Terstruktur C+ +

Person 10

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

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.

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;}

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 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

TERIMA KASIH

Keyword : smarthur