Fungsi Buatan
Fungsi buatan merupakan sekumpulan pernyataan yang berdiri
sendiri dan terbuat untuk melaksanakan tugas-tugas tertentu. Fungsi buatan
adalah fungsi – fungsi yang dibuat oleh seseorang pemrogram untuk melaksanakan
tugas tertentu. Diantara fungsi-fungsi ini, terdapat satu buah fungsi yang
memenggang peranan terpenting, yaitu main( ). Fungsi ini sifatnya khusus
sekali, karene merupakan fungsi yang pertama sekali dicari oleh compiler pada
saat program dieksekusi. Jika tidak ada, compiler akan memberikan pesan kesalahan
bahwa program tidak memiliki main ( ). Selain itu main() adalah sebuah kata
kunci yang memiliki arti khusus, tidak boleh diubah dengan nama lain, dan harus
dituliskan dengan huruf kecil.
Contoh program
#include <iostream>
using namespace std;
long faktorial(int n)
{
int i;
long f = 1;
for (i=2;i<=n;i++)
f *=i;
return f;
}
int main()
{
long f;
int bil;
cout<<"Menghitung
faktorial.\n";
cout<<"Berikan sebuah bilangan
bulat: ";
cin>>bil;
f = faktorial(bil);
cout<<bil<<"! =
"<<f;
return 0;
}
Fungsi Rekursif
Fugsi rekursif adalah fungsi yang untuk melaksanakan suatu tugas tertentu, kembali memanggil dirinya sendiri. Fungsi rekursif menangani variable dan argumennya melalui tumpukan (stack), sehingga sebuah fungsi rekursif akan memerlukan waktu dan memori yang lebih banyak. Karena itu, dalam hal efisiensi pemakaian waktu dan memori, pemrograman lebih cenderung untuk menggunakan fungsi iterative.
Agar sebuah fungsi tidak melakukan pengulangan pemanggilan secara terus-menerus, maka harus diberi beberapa syarat. Syarat-syarat rekursif :
1. Harus ada kasus penghentian (termination case)
2. Setiap struktur pemanggilan harus lebih sederhana daripada struktur sebelumnya
Contoh program:
#include <iostream>
using namespace std;
int main()
{
int m, n;
long pangkat(int, int);
cout<<"Berikan bilangan dan eksponen: ";
cin>>m>>n;
cout<<m<<" pangkat p"<<n<<" = "<<pangkat(m, n);
return 0;
}
long pangkat (int m, int n)
{
long p;
if (n==0)
p = 1;
else
p = m * pangkat(m, n-1);
return p;
}
No comments:
Post a Comment