 
                                Analisis Rekurens
Tim ALPRO
Teknik Informatika
Tujuan
 Mahasiswa mampu memahami definisi
rekurens
 Berdasarkan definisi yang dipahami,
mahasiswa mampu memakai analisis
rekurens untuk konstruksi program
rekursif
 Mahasiswa mampu mengimplementasikan
program rekursif dalam bahasa C 
melalui praktikum
Pengertian Rekursif
• Definisi entitas (type, fungsi) disebut
rekursif jika definisi tersebut mengandung
terminologi dirinya sendiri.
Analisis Rekurens
• Teks program rekursif terdiri dari dua
bagian:
– Basis (Basis-0 atau Basis-1), yang
menyebabkan fungsi berhenti
– Bagian rekurens : mengandung pemanggilan
terhadap fungsi tersebut, dengan parameter
bernilai mengecil (menuju basis).
Contoh Definisi Rekursif
• Bilangan integer
– Basis : 0 adalah bilangan integer
– Rekurens : if x adalah bilangan integer
then x+1 adalah bilangan integer
• Bilangan integer ganjil
– Basis : 1 adalah bilangan integer ganjil
– Rekurens:if x adalah bilangan integer ganjil
then x + 2 adalah bilangan integer ganjil
Kerangka Rekursif
Fungsi (<list-parameter>) :
depend on
<kondisi-basis> :<ekspresi-1 >
<kondisi-rekurens>:Fungsi(<ekspresi-2 >)
Nilai Parameter Mengecil
Menuju ke Basis
Kerangka Fungsi Rekursif
int F (Param)
{
/* VAR lokal*/
if (kondisi Basis) /* Basis-0 atau Basis-1 */
{
return Ekspresi<berhenti>; }
else{ /* Rekurens */
return Ekspresi(F(Param mengecil))}
}
Studi Kasus 1:
Definisi Faktorial
• Definisi 1:
0! : 1
N! : N * (N-1) !
• Definisi 2:
1! : 1
N! : N * (N-1) !
• Definisi 3:
1! : 1
N! : (N+1)! / (N+1)
Nilai N mengecil
menuju basis = 1
Nilai N tidak pernah mencapai basis
Tidak Bisa Diimplementasikan
ke dalam fungsi rekursif
Notasi dari Faktorial
Fac (n)
: if n=0, then
1
else
Fac ( n – 1 ) * n
{basis-0}
{rekurens}
Contoh Program
Studi Kasus 2:
Definisi Penjumlahan
• Definisi :
• n=1m
• 1+1+1+.....+(sebanyak m)
Notasi Penjumlahan Rekursif
• Tambah (n,m)
:
if(n=0), then {basis-0}
m
else
{rekurens}
Tambah(n-1,m)+1
Contoh Program
Latihan
Perkalian Rekursif
• Perkalian a dan b adalah penjumlahan a
sebanyak b kali
Notasi Perkalian Rekursif
• Kali (a,b)
:
if(b=1), then {basis-1}
a
else
{rekurens}
Kali(a,b-1)+a