1. Jelaskan perbedaan antara fungsi yang membalikkan
nilai dan fungsi yang tidak membalikkan nilai! Berikan contoh masing-masing!
Jawab :
a.
Fungsi yang membalikkan nilai (Fungsi non-void )
Fungsi non-void disebut
juga function. Disebut non-void karena mengembalikan nilai kembalian yang
berasal dari keluaran hasil proses function tersebut .
Ciri-cirinya adalah sebagai
berikut :
1. Ada keyword return
2. Ada tipe data yang mengawali fungsi
3. Tidak ada keyword void
4. Memiliki nilai kembalian .
Dapat dianalogikan sebagai suatu variabel yang memiliki tipe
data tertentu sehingga dapat langsung ditampilkan hasilnya.
Contoh programnya adalah :
int jumlah(int a, int b)
{
int jmlh;
jmlh=a+b;
return jmlh;
}
|
b.
Fungsi yang Tidak Mengembalikan Nilai (void)
Fungsi yang void sering
disebut juga prosedur. Disebut void karena fungsi tersebut tidak mengembalikan
suatu nilai keluaran yang didapat dari hasil proses fungsi tersebut.
Ciri-cirinya adalah sebagai berikut :
- Tidak adanya keyword return.
- Tidak adanya tipe data di dalam deklarasi fungsi.
- Menggunakan keyword void.
- Tidak dapat langsung ditampilkan hasilnya.
- Tidak memiliki nilai kembalian fungsi.
Contoh programnya
adalah :
void tampilkan_jmlh(int a,int b)
{
int jmlh;
jmlh=a+b;
printf(“%d”,jmlh);
}
|
2. Jelaskan apa yang kalian ketahui tentang fungsi overload dan fungsi
rekursif. Serta berikan contohnya!
~Jika program berisi komen, dapat nilai tambah
Jawab :
a. Fungsi
Overload
Function overloading
adalah suatu proses menggunakan nama yang sama untuk dua atau lebih fungsi.
Setiap definisi ulang dari fungsi yang di overloading harus menggunakan tipe
parameter, urutan parameter, atau jumlah parameter yang berbeda. Jumlah, tipe
atau urutan parameter dari suatu fungsi disebut function signature. Jika kita
memiliki sejumlah fungsi dengan nama yang sama, compiler akan mengidentifikasi
fungsi-fungsi tersebut berdasarkan parameternya. Keuntungan memiliki beberapa
fungsi dengan nama yang sama dapat dilihat pada program berikut :
#include <iostream>
using namespace std; class Overload { //fungsi overload public: int max(int, int); float max(float, float); }; int Overload::max(int num1, int num2) { if (num1 > num2)//penyeleksian kondisi return num1;//mengembalikan nilai else//pengecekan kembali return num2;//mengembalikan nilai } float Overload::max(float num1, float num2) { if (num1 > num2) )//penyeleksian kondisi return num1; else//pengecekan kembali return num2; } int main() { Overload o; cout << o.max(5.4F,8.6F) << endl; cout << o.max(19,12) << endl; return 0;//mengembalikan nilai } |
b. Fungsi
Rekrusif
Fungsi Rekrusif adalah sebuah fungsi yang memanggil
dirinya sendiri disebut sebuah fungsi rekursif. Fungsi rekursi akan sangat
berguna untuk memecahkan kasus permasalahan tertentu dimana solusinya
dapat diperoleh dari bentuk permasalahan yang lebih sederhana dari
permasalahan yang serupa, dan solusi dari bentuk permasalahan yang lebih
sederhana tadi diperoleh dari bentuk permasalahan yang lebih sederhana
lagi namun serupa, demikian seterusnya.
Contoh programnya adalah
sebagai berikut :
#include
<stdio.h>
#include
<stdlib.h>
int main(void)
{
int m; // variable yang akan dilewaktan ke
fungsi Faktorial by value
int Faktorial(int k); // Prototype fungsi
faktorial
printf("Masukan sebarang bilangan bulat
positif: ");
scanf("%d",&m);//scanf
berfungsi untuk memasukan data
//mencetak output dari inputan
printf("\nMelalui perhitungan rekursif,
%d!=%d\n\n", m, Faktorial(m));
// mislkan inputan angka 4 maka 4! =
4*3*2*1*1 jadi hasilnya adalah 24
system("pause");
return 0;
}
int
Faktorial(int k) // fungsi yang memanggil dirinya sendiri
{
if (k==0)// merupakan kondisi bila variabel
k samadengan nol
return 1; // maka dia akan membaca nilai k =
1
//
jika nilai k = 1 maka ni sama saja dengan false
else // jika tidak dengan fungsi rekursif
return k*Faktorial(k-1);// Fungsi faktorial
memanggil dirinya sendiri
}
|
Outputnya adalah
sebagai berikut :
Terimakasih.. tulisannya sangat bermanfaat..
BalasHapusMy blog
My Name
My Email
My Campus