Rekursif Python
Rekursif Python
Rekursif Python
Masukan Bilangan n = 3
3 Faktorial 6
Masukan Bilangan n = 2
2 Faktorial 1
Kita dapat menuliskan fungsi penghitung factorial seperti
dibawah ini
1. int Faktorial(int n)
2. {
3. if ((n == 0) || (n == 1 ))
4. return (1);
5. else
6. return (n * Faktorial(n-
7. } 1));
• Pada baris 3 dari fungsi diatas,
nilai n dicek sama dengan 0 atau 1,
jika ya, maka fungsi
mengembalikan nilai 1 {baris 4},
jika tidak, fungsi mengembalikan
• disinilah letak proses
nilai n * Faktorial rekursif itu, perhatikan fungsi
(n -1)
factorial
{baris 6ini
} memanggil dirinya sendiri tetapi dengan
parameter (n-1)
Barisan yang didefinisikan secara rekursif
Contoh:
Barisan bilangan pangkat dari 2
an = 2n untuk n = 0, 1, 2, … .
Solusi:
Definisikan a0=r0=1
dan an+1=r . an untuk n = 0, 1, 2, …
• Contoh: definisi rekursif himpunan Ekspresi
Aritmatika EA
• Basis: 1, 2, 3, 4, 5 EA
• Rekursif: jika a EA dan b EA, maka
• a + b EA
• a – b EA
• a b EA
• a b EA
Fungsi yang didefinisikan
secara rekursif
Langkah-langkah untuk mendefinisikan fungsi dengan
domain bilangan cacah:
f(0) = 1
Karena (n+1)! = n! (n+1) maka
f(n + 1) = (n + 1)f(n)
f(0) = 1
f(1) = 1 f(0) = 1 1 = 1
f(2) = 2 f(1) = 2 1 = 2
f(3) = 3 f(2) = 3 2 = 6
f(4) = 4 f(3) = 4 6 = 24
Fibonacci
• Deret Fibonacci adalah suatu deret
matematika yang berasal dari penjumlahan
dua bilangan sebelumnya.
1, 1, 2, 3, 5, 8, 13, 21, …
• Rumus Fibonacci :
f(n) = f(n – 1) + f(n – 2)
f(6) = f(6-1) + f(6-2)
8 =
5 +
Kelebihan dan kelemahan rekursi :
• Kelemahan
• Kelebihan – sulit dipahami
– solusi sangatlah – perlu stack besar (stack
efisien overrun)
– dapat memecahkan
masalah yang sulit
dengan tahapan yan g
mudah dan singkat