FUNGSI
Fungsi (Function) merupakan blok dari kode yang dirancang untuk melaksanakan tugas khusus.
Kegunaan dari fungsi ini adalah untuk:
| Mengurangi pengulangan penulisan program yang berulangan atau sama.
| Program menjadi lebih terstruktur, sehingga mudah dipahami dan dapat lebih dikembangkan.
Fungsi-fungsi yang sudah kita kenal sebelumnya adalah fungsi main(), yang bersifat mutlak, karena fungsi ini program akan dimulai, sebagai contoh yang lainnya fungsi printf(), cout() yang mempunyai tugas untuk menampilkan informasi atau data kelayar dan masih banyak lainnya.
Struktur Fungsi
nama_fungsi(argumen)
{
… pernyataan / perintah;
… pernyataan / perintah;
… pernyataan / perintah;
}
Pernyataan return().
Digunakan untuk mengirimkan nilai atau nilai dari suatu fungsi kepada fungsi yang lain yang memanggilnya. Pernyataan return() diikuti oleh argumen yang berupa nilai yang akan dikirimkan. Contoh pemakaian pernyataan return() dapat dilihat pada contoh berikut ;
Contoh pengiriman data konstanta
/* ------------------------ */
/* Pengriman data Konstanta */
/* ------------------------ */
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
luas(float sisi);
main()
{
float luas_bs;
clrscr();
luas_bs = luas(4.25);
cout<<"\nLuas Bujur Sangkar = "<<luas_bs;
getch();
}
luas(float sisi)
{
return(sisi*sisi);
}
Keterangan :
Dalam struktur program diatas dilihat bahwa, pernyataan luas_bs=luas(4.25), akan dikirimkan nilai kepada fungsi luas(), untuk diolah lebih lanjut, yang nilai tersebut akan ditampung pada variabel sisi.
Selanjutnya didalam fungsi return terjadi perkalian sisi dengan sisi,
setelah itu hasil perkalian tersebut dikirim balik ke variabel luas_bs yang memanggil fungsi.
Contoh Pengiriman data variable:
/* ------------------------ */
/* Pengriman data Variabel */
/* ------------------------ */
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
luas(float sisi);
main()
{
float luas_bs, sisi_bs;
clrscr();
cout<<"\nMenghitung Luas Bujur Sangkar"<<endl;
cout<<"\nMasukan Nilai Sisi Bujur Sangkar : ";
cin>>sisi_bs;
luas_bs = luas(sisi_bs);
cout<<"\nLuas Bujur Sangkar = "<<luas_bs<<" Cm";
getch();
}
luas(float sisi)
{ return(sisi*sisi); }
Latihan function
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
potong(float harga,float disk);
garis ()
{
printf("===============================");
}
main()
{
char nama[20],jwb;
long int harga,total,disk;
ulang:
clrscr();
garis();
cout<<"\n\tToko Mas Jayakarta "<<endl;
cout<<"Nama Barang :";cin>>nama;
cout<<"Harga Barang :";cin>>harga;
if(harga<1000000)
disk=0;
else if(harga>=1000000&&harga<=5000000)
disk=harga*0.2;
else
disk=harga*0.35;
cout<<"Besar diskont yang diberikan :"<<disk<<endl;
total=potong(harga,disk);
cout<<"Besar harga yang harus dibayar :"<<total<<endl;
cout<<"\n\tAnda Ingin Input Lagi [Y/T]:";jwb=getche();
if(jwb=='Y'||jwb=='y')
goto ulang;
getch();
}
potong(float harga,float disk)
{ return(harga-disk); }
REKURSI
Fungsi
rekursif adalah suatu fungsi yang memanggil dirinya sendiri, artinya
fungsi tersebut dipanggil di dalam tubuh fungsi itu sendiri.
Fungsi
faktorial, yang menghitung nilai faktorial dari suatu bilangan bulat
positif, merupakan pokok bahasan yang memudahkan pemahaman fungsi
rekursif. Berikut adalah fungsi faktorial yang diselesaikan dengan cara
biasa:
int faktorial (int n)
{
int counter, hasil = 1;
for (counter = n ; counter >= 1 ; counter--)
hasil *= counter;
return hasil;
}
Fungsi tersebut menunjukkan bahwa nilai faktorial dihitung menggunakan looping sehingga melakukan proses sebagai berikut:
Hasil = 1;
Hasil = hasil * n; artinya hasil = n;
Hasil =hasil * (n-1) artinya hasil = n x (n-1);
Demikian seterusnya sampai n bernilai 1, atau jika dituliskan sekaligus menjadi:
Faktorial = n! = n x (n-1) x (n-2) .... x 1;
Fungsi ini dapat dituliskan dalam bentuk:
Faktorial (n) = n! = n x (n-1) !;
Yang
menunjukan sifat rekursif dari suatu fungsi, yaitu (n-1)!. Oleh karena
itu, fungsi faktorial yang telah ditulis dalam program C++ sebelumnya,
dapat ditulis kembali dalam bentuk rekursif sebagai berikut:
int faktorial (int n)
{
if (n == 0)
return 1;
else
return (n * faktorial (n-1));
}
contoh program rekursi :
/*program: fungsi3.cpp*/
#include
Int faktorial (int n)
{
If (n==1)
Return (1);
Else
Return (n*faktorial (n-1));
}
Main ()
{
Int x;
Printf (“mencari nilai faktorial\n”);
Printf (“masukkan nilai x:”) ; scanf (“%d”,&x) ;
Printf (“nilai faktorial dari %d=%d\n”,x,faktorial (x) );
}
Hasilnya:
Mencari nilai faktorial
Masukkan nilai x: 4
Nilai faktorial dari 4=24
Penjelasan:
Fungsi tersebut menunjukkan bahwa nilai faktorial dihitung menggunakan looping sehingga melakukan proses sebagai berikuit:
Faktorial (1) = 1;
Faktorial (2) = 1 * 2=2
Faktorial (3) = 3*faktorial (2)
= 3x2=6
Faktorial (4) = 4*faktorial (3)
=4x6=2