BAB VIII SUB PROGRAM : Fungsi Tanpa

advertisement
BAB VIII
SUB PROGRAM : Fungsi Tanpa Pengembalian Nilai
Pendahuluan
Dalam bahasa pemrograman prosedural, program bisa terdiri dari beberapa sub
program. Dengan membuat sub program, penulisan kode program yang sama berulangkali
bisa dihindarkan, juga memudahkan menulis dan menemukan kesalahan program.
Dalam Bahasa C++ terdapat sub program berupa fungsi tanpa pengembalian nilai
(menggunakan void) dan fungsi yang mengembalikan nilai dengan tipe data tertentu. Sub
program ini hanya perlu ditulis sekali, tetapi dapat dipanggil berkali-kali oleh program utama
atau sub program lain.
Penyajian
8.1 Pendeklarasian Fungsi tanpa pengembalian nilai
Bentuk deklarasi fungsi tanpa pengembalian nilai (tanpa parameter) adalah :
void NamaFungsi;
Bagian_deklarasi;
{
Bagian pernyataan;
}
Contoh :
void HitungLuasSegitiga();
float alas, tinggi, Luas;
{
cout<<“Masukkan panjang alas segi tiga :”; cin>>alas;
cout<<“Masukkan tinggi segi tiga :”; cin>>tinggi;
Luas=(1/2)*alas*tinggi;
cout<<“Luas segi tiga = “<<Luas<<endl;
}
8.2 Pemanggilan Fungsi tanpa pengembalian nilai
Fungsi tanpa pengembalian nilai bukan program yang berdiri sendiri, jadi tidak bisa
dieksekusi secara langsung. Fungsi baru dilaksanakan dengan cara memanggil namanya dari
program utama atau sub program lain.
Ketika nama fungsi dipangil, kendali program secara otomatis akan berpindah ke
fungsi tersebut. Instruksi di dalam fungsi dilaksanakan. Setelah semua selesai, kendali
program berpindah secara otomatis ke instruksi sesudah pemanggilan tersebut.
Contoh program utama untuk memanggil prosedur HitungLuasSegitiga di atas :
Int main(){
HitungLuasSegitiga();
}
8.3 Variabel Global dan Lokal
Variabel yang dideklarasikan dalam prosedur hanya dikenal di badan sub program
tersebut, sehingga disebut variabel Lokal.
Sedangkan variabel yang dideklarasikan sebelum program utama(int main()) bersifat
Global, karena dikenali di semua bagian program.
//Program TukarNilai;
#include<iostream>
Using namespace std;
int A, B; //A,B variabel global
void Tukar();
int temp; //temp variabel lokal
{
temp= A;
A= B;
B=temp;
}
Int main() {
cout<<“Masukkan nilai A = “<<endl;cin>>A;
cout<<“Masukkan nilai B = “<<endl;cin>>B;
Tukar();
cout<<“Nilai A sesudah ditukar = “<<A<<endl;
cout<<“Nilai B sesudah ditukar = “<<B<<endl;
}
8.4 Parameter
Kebanyakan program memerlukan pertukaran informasi antara fungsi dengan
pemanggilnya. Tiap item data ditransfer antara parameter aktual dan parameter formal yang
bersesuaian.
Parameter aktual adalah parameter yang disertakan waktu pemanggilan, sedangkan
parameter formal adalah parameter yang dideklarasikan di dalam bagian Nama Fungsi.
Berdasarkan maksud penggunaannya, terdapat tiga jenis parameter formal yang
disertakan di dalam fungsi tanpa pengembalian nilai :
1. parameter masukan
2. parameter keluaran
3. parameter masukan/keluaran
Parameter masukan adalah parameter yang nilainya berlaku sebagai masukan untuk
prosedur. Pada bahasa pemrograman seperti C++, parameter masukan dinamakan parameter
by value.
Parameter keluaran adalah parameter yang menampung keluaran yang dihasilkan oleh
prosedur. Pada bahasa pemrograman seperti C++, parameter keluaran dinamakan parameter
by reference.
Parameter masukan/keluaran adalah parameter yang berlaku sebagai masukan
sekaligus keluaran bagi prosedur tersebut. Pada bahasa pemrograman seperti C++, parameter
masukan/keluaran termask dalam parameter by reference.
Pada C++, parameter formal by value tidak menggunakan karakter "&" dalam
deklarasinya, sedangkan parameter by reference menggunakannya, tepat sebelum nama
variabel. Bisa juga menggunakan tanda ‘*’ di depan nama parameter formal dan pada saat
pemanggilan, di depan parameter aktual diberi tanda ‘&’.
1. Parameter Masukan (By value)
Contoh program menggunakan parameter masukan dalam deklarasi fungsi tanpa
pengembalian nilai:
//Program SegitigaKarakter;
#include<iostream>
Using namespace std;
int M;
char K;
void CetakSegitiga(char C; int N);
{
for(int i=1; i<=n; i++)
{
for(int j=1; j<=i; j++)
cout<<C;
cout<<endl;
}
}
Int main() {
cout<<“Masukkan karakter yang akan dicetak <<endl; cin>>K;
cout<<“Masukkan tinggi segi tiga :”; cin>>M;
CetakSegitiga(K,M);
}
2. Parameter Keluaran (By reference)
Bila fungsi tanpa pengembalian nilai menghasilkan satu atau lebih nilai yang
digunakan oleh program pemanggil, maka nilai keluaran ditampung di dalam parameter
keluaran. Bila fungsi tanpa pengembalian nilai yang mengandung parameter keluaran
dipanggil, maka nama parameter aktual secara semu menggantikan nama parameter formal
(berlawanan dengan parameter masukan, yang dalam hal ini, nilai parameter aktual yang di
assign ke dalam parameter formal).
Berikut contoh perbedaan parameter masukan dan keluran :
//Program ABC;
#include<iostream>
Using namespace std;
int A, B, C;
Void XYZ(int X,Y; int &Z);
//X dan Y parameter masukan, Z parameter keluaran}
{
X= X + 1;
Y= Y + 1;
Z = X + Y;
}
Int main() {
A= 2;
B= 5;
XYZ(A,B,C); {Pemanggilan prosedur XYZ}
Cout<<A<<“ “<< B<<“ “<<C); //Menampilkan nilai A, B, dan C setelah pemanggilan
prosedur
}
Pada Program ABC di atas, X dan Y adalah parameter masukan, sedangkan Z adalah
parameter keluaran. Ketika Prosedur XYZ dipanggil dengan parameter aktual A=2 dan B=5,
maka nilai itu mengisi nilai parameter formal X dan Y. Sedangkan nama parameter aktual C
secara semu menggantikan nama parameter formal C (bukan nilainya yang diisikan).
Sehingga setelah pemanggilan, nilai variabel A dan B tetap, yaitu A=2 dan B =5. Sedangkan
nilai variabel C berubah menjadi 9.
3. Parameter Masukan/Keluaran (By reference)
Parameter masukan/keluaran berfungsi sebagai masukan untuk prosedur sekaligus
menampung nilai keluaran prosedur. Sehingga bila keluarannya berbeda dengan masukannya,
maka hasilnya mengikuti nilai keluarannya.
Contoh Program TukarNilai berikut : 2 nilai integer A dan B merupakan parameter
formal Prosedur Tukar. Setelah instruksi di dalam prosedur dilaksanakan, maka nilai keluaran
A dan B berubah. Karena A dan B adalah parameter masukan/keluaran, maka nilai parameter
aktual pemanggilnya juga berubah sesuai nilai keluaran yang dihasilkan prosedur.
Program TukarNilai;
#include<iostream>
Using namespace std;
Var X, Y : integer;
Void Tukar (int &A; int &B);
int temp;
{
temp = A;
A = B;
B=temp;
}
Int main() {
X= 2; Y= 5;
Tukar (X,Y);
cout<<“Nilai X setelah ditukar = “<<X<<endl;
cout<<“Nilai Y setelah ditukar = “<<Y<<endl;
}
Penutup
Latihan Soal :
1. Buatlah prosedur mencari bilangan terbesar dari 3 bilangan integer A, B, dan C.
2.Buatlah prosedur menghitung nilai rata-rata dari N buah bilangan.
Download