A. Tujuan
1. Mahasiswa mengenal function
dalam bahasa C / C++.
2. Mahasiswa bisa membuat program procedural denga bahasa C / C++.
B. Dasar Teori
Fungsi
Pada pemrograman C++ selalu terdapat
sebuah fungsi utama atau sub-program yakni “void main()” penamaan modul
memiliki karakteristik yang sama dengan penamaan variable, dengan fungsi program akan menjadi lebih efisien dan
fleksibel.
Pada umumnya fungsi memerlukan masukan
yang di namakan argument atau
parameter. Hasil akhir dari fungsi akan
berupa sebuah nilai.
Fungsi main()
|
Fungsi a()
|
Fungsi b()
|
Fungsi c()
|
Fungsi c1()
|
Fungsi c2()
|
Berikut sintaks dari suatu fungsi :
Penentuan-tipe nama_fungsi (daftar parameter)
Deklarasi parameter
{
Isi fungsi
}
|
Setiap fungsi yang dipanggil di dalam
program harus di definisikan.letaknya bisa dimana saja. Khusus untuk fungsi
yang di sediakan disystem, definisinya sebenarnya ada dalam pustaka, yang kan
di gabungkan dengan program sewaktu proses linking.
Deklarasi Fungsi
Deklarasai fungsi atau sering disebut
dengan prototype fungsi dimaksudkan untuk mendeklarasikan fungsi agar dapat di
panggil. Deklarasi fungsi berupa :
1)
Nama fungsi
2)
Tipe nilai balik
3)
Jumlah dan tipe argument
Dan diakhiri dengan titik koma,
sebagaimana pendeklarasian variable.
Sebagai contoh :
·
Long
kuadrat(long );
Pada contoh ini fungsi kuadrat() mempunyai argument bertipe
long dan nilai balik bertipe long .
·
Int maks(int a,intb);
Pada contoh ini fungsi maks() mempunyai dua argument bertipe integer dan nilai balik bertipe integer
juga.
·
Void garis();
Pada contoh ini fungsi garis() tidak memiliki argument dan nilai baliknnya tidak ada (void).
Manfaat dari deklarasi fungsi adalah
untuk menjamin tipe argument yang di
lewatkan pada pemanggilan fungsi benar-benar sesuai.
Penggolongan Variable
Variable local atau Local variable adalah sebuah variable
sederhana yang dideklarasikan di dalam sebuah blok program. Ini bisa diakses
hanya dari dalam blok itu sendiri. Karena bagian dari fungsi itu sendiri adalah
blok, variable dideklarasikan ke
dalam sebuah fungsi yang local di fungsi itu. Mereka ada hanya
ketika fungsi itu sedang dieksekusi. Sebuah formal parameter (argument) dari fungsi akan menjadi local di fungsi itu.
Contoh fungsi factorial
Factorial dari bilangan n bertipe integer positif dilambangkan n! hasilnya
didapatkan dengan mengalikan bilangan n dengan
semua bilangan bertipe integer postif yang lebih kecil dengan n.
Berikut ini adalah contoh fungsi untuk
mencari nilai n!:
int factorial (int n)
{
if (n
< 0) return 0;
int f =
1;
while
(n > 1)
f *=
n--;
return f;
|
Fungsi ini memiliki 2 variable local yaitu f dan n. Parameter n adalah local karena dia
dideklarasikan di dalam daftar parameter dari fungsi ini. Variable f local karena dia dideklarasikan di dalam
bagian dari fungsi ini.
Variable Global memiliki ruang lingkup sepanjang semua program
dijalankan maka variable Global akan tetap dikenali di manapun bagian atau
blok dalam kode program dijalankan. Contoh :
Int f,
n;
int factorial ()
{
if (n
< 0) return 0;
f = 1;
while
(n > 1)
f *=
n--;
return f;
|
Parameter
Parameter fungsi digunakan untuk
megnirimkan parameter (nilai) ke suatu fungsi. Pengiriman parameter dapat dilakukan
dengan dua cara, yaitu :
1.
Pengiriman Parameter
Secara Nilai (By Value)
Parameter yang diberikan ke fungsi adalah
‘Nilainya’, tidak pernah menspesifikasikan variabelnya. Bila ada perubahan pada
parameter formal,tidak akan mempengaruhi nilai pada parameter actual.
Pengiriman parameter secara nilai
mempunyai karakteristik sbb :
·
Nilai parameter yang dikirim ke
fungsi tidak mempengaruhi nilai parametere pada bagian program yang memanggil
fungsi tersebut.
·
Pengiriman parameter secara
nilai adalah pengiriman searah, yaitu dari bagian program yang memanggil fungsi
ke fungsi yang dipanggil.
·
Pengiriman parameter secara
nilai dapat dilakukan untuk suatu ungkapan, variable,
elemen array atau konstanta.
·
Yang dikirimkan ke fungsi
adalah nilai, bukan alamat memori letak dari data.
·
Fungsi yang menerima kiriman
nilai ini akan menyimpannya di alamat terpisah dari nilai aslinya yang
digunakan oleh program yang memanggil fungsi tersebut
·
Karena itulah pengubahan nilai
di dalam fungsi tidak akan berpengaruh pada nilai asli di program yang
memanggil fungsi walaupun keduanya menggunakan nama variabel yang sama
2.
Pengiriman Parameter
Secara Acuan (By Reference)
Memanipulasi nilai dari dalam fungsi. Setiap
perubahan terhadap parameter formal akan memepengaruhi nilai pada parameter
actual. Parameter formal diberi symbol ‘&’. Cara ini adalah cara
efektif yang memungkinkan sebuah fungsi mengembalikan lebih dari satu nilai.
Pengiriman parameter secara acuan sbb:
·
Nilai yang dikirim ke fungsi
akan merubah nilai asli pada bagian program yang memanggil fungsi tersebut.
·
Pengiriman parameter secara
acuan adalah pengiriman dua arah, yaitu bagian program yang memanggil fungsi ke
fungsi yang dipanggil dan sebaliknya.
· Pengiriman parameter secara acuan tidak dapat dilakukan untuk suatu
ungkapan, hanya untuk sebuah variable,
array atau konstanta saja.
·
Yang dikirimkan adalah alamat
memori letak dari nilai data, bukan nilai data.
·
Fungsi yang menerima parameter
ini akan menggunakan alamat yang sama dengan alamat nilai datanya
·
Karena itulah pengubahan nilai
di fungsi akan mengubah juga nilai asli di program pemanggil fungsi
tersebut
·
Pengiriman parameter by
reference adalah pengiriman dua arah,
yaitu dari program pemanggil fungsi ke fungsi dan sebaliknya dari fungsi ke
program pemanggilnya
·
Pengiriman parameter by
reference tidak dapat digunakan
untuk suatu ungkapan, hanya bisa untuk variabel, konstanta atau elemen array
saja
C. PERMASALAHAN
Buatlah program
menghitung luas persegi panjang dan volume balok.
Syarat:
1. luas
mengunakan pass by value.
2
. di dalam fungsi pass by value terdapat
fungsi pass by refrence. Untuk
menghitung volume.
Dari permasalahan di atas dapat
dipecahkan seperti berikut :
#include <iostream>
#include <conio>
void vol(int &x){
int t;
cout<<"\nmasukkan nilai tinggi
bangunan :
";
cin>>t;
x=x*t;
}
int luas (int a, int b){
int L;
L=a*b;
cout<<"luas bangun= "<<L;
vol(L);
return L;
}
void main(){
int p,l,x;
cout<<"masukkan nilai panjang: ";
cin>>p;
cout<<"masukkan nilai lebar: ";
cin>>l;
x=luas(p,l);
cout<<"Volume bangun: "<<x;
getch();
}
|
Tidak ada komentar:
Posting Komentar