FUNGSI REKURSIF PERKALIAN
Sebelum buat fungsi rekursif kita harus menentukan rekuren / proses awal dan basis / proses henti. Sebagai contoh disini saya buat fungsi rekursif perkalian 5 x 5. Rekuren / proses awalnya adalah o + (panggil fungsi rekursifnya dan salah satu parameter harus dikurangi sampai habis) dan proses hentinya adalah jika p == 0 maka akan mengembalikan nilai 0. Supaya lebih jelas berikut ini adalah notasi serta kode programnya
Notasi
//JUDUL : FUNGSI REKURSIF PERKALIAN
#include <iostream>
using namespace std;
//KAMUS
a, b, c1, c2 <-- integer
perkalianRekursif(int, int) <-- integer
//DISKRIPSI
main()
{
input a
input b
c1 <-- a * b;
output c1
c2 <-- perkalianRekursif(a, b);
output c2
}
perkalianRekursif(o, p <-- integer) <-- integer
{
hasil <-- integer
if(p == 0)
{
hasil <-- 0
}
else
{
hasil <-- a + perkalianRekursif(o, (p-1))
}
return hasil;
}
Implementasi Notasi ke Koding
//JUDUL : FUNGSI REKURSIF PERKALIAN
#include <iostream>
using namespace std;
//KAMUS
int a, b, c1, c2;
int perkalianRekursif(int, int);
//DISKRIPSI
main()
{
cout << "Input a : ";
cin >> a;
cout << "Input b : ";
cin >> b;
c1 = a * b;
cout << "Perkalian tanpa menggunakan fungsi : " << c1 << endl << endl;
c2 = perkalianRekursif(a, b);
cout << "Perkalian menggunakan fungsi : " << c2 << endl << endl;
}
int perkalianRekursif(int o, int p)
{
int hasil;
if(p == 0)
{
hasil = 0;
}
else
{
hasil = a + perkalianRekursif(o, (p-1));
}
return hasil;
}
Output
Cara Kerja Fungsi Rekursif Perkalian 5 x 5
a = 5
b = 5
5 + perkalianRekursif(5, (5-1)); --> Rekuren / proses awal yang diulang-ulang
5 + perkalianRekursif(5, (4-1));
5 + perkalianRekursif(5, (3-1));
5 + perkalianRekursif(5, (2-1));
5 + perkalianRekursif(5, (1-1));
0 --> Basis / Proses henti
5+5+5+5+5+0 = 25
Kenapa disini saya menggunakan rekuren 5 +, ya karena 5 x 5 itu sama saja dengan
5+5+5+5+5. Alasan lain menggunakan tanda tambah (+), karena kita menggunakan fungsi
rekuren / fungsi yang diulang-ulang penggunaan tanda tambah ini adalah tanda yang
sangat tepat untuk diulang dan nilai yang dihasilkan pun sama dengan hasil dari perkalian.
Dalam fungsi rekursif perkalian ini, rekuren dan basisnya itu tidak sama dengan
fungsi rekursif pada pertambahan. Jika kita ingin membuat fungsi rekursif maka kita
harus menentukan kondisi rekuren dan basis yang tepat agar fungsi ini mengembalikan
nilai yang tepat dan menghindari unfinite recursion / pengulangan yang tak terbatas.
Seperti itulah kira-kira cara kerja dari fungsi rekursif dalam operasi hitung perkalian
5 x 5.
Komentar
Posting Komentar