Fungsi Rekursif
Fungsi Rekursif
Rekursif adalah proses memanggil dirinya sendiri yang bisa dilakukan oleh fungsi atau prosedur pada pemrograman prosedural. Karena proses dalam rekursif ini terjadi secara berulang-ulang, maka harus ada kondisi yang membatasi perulangan tersebut, jika tidak maka proses tidak akan berhenti sampai memori yang digunakan untuk menampung proses tersebut tidak dapat menampung lagi/penuh. Biasanya rekursif ini digunakan untuk sesuatu yang membutuhkan perulangan, seperti faktorial, fibonaci dan pangkat. Kelebihan dari fungsi rekursif ini adalah program menjadi lebih singkat. Dan kekurangannya adalah memakan memori lebih besar, karena setiap bagian dari dirinya dipanggil akan membutuhkan sejumlah ruang memori
untuk penyimpanan. Rekursif sering kali tidak bisa berhenti sehingga memori akan
terpakai habis dan program bisa hang.
- Faktorial :
n! = n * (n-1) * (n-2) * (n-3) *.... *1
Pada java, penulisan rumus faktorial sebagai berikut
n * faktorial(n-1)
Contoh :
5! = 5 * 4 * 3 * 2 * 1 = 120
Contoh dalam pemrograman java:
Maka hasil yang dikeluarkan :
Penjelasan :
Misal n = 5
Dari pernyataan if, menunjukan jika nilai n = 0 atau n = 1, maka menghasilkan 1 karena 0! = 1 dan 1! = 1. Dan pernyataan pada else, itu menunjukkan nilai n bukan sama dengan 0 atau 1, dan akan dieksekusi ke rumus faktorial tersebut. Cara kerjanya yaitu (misal n = 5) maka :
Karena n = 5, maka dia langsung masuk ke pernyataan else
faktorial(5) = 5 * faktorial(4)
faktorial(4) = 4 * faktorial(3)
faktorial(3) = 3 * faktorial(2)
faktorial(2) = 2 * faktorial(1)
faktorial(1) = 1
Maka faktorial(5) = 5 * 4 * 3 * 2 * 1, akan menghasilkan 120
Github : Contoh faktorial dalam pemrogaman java
Github : Contoh faktorial dalam pemrogaman java
- Fibonaci
Rumus dari fibonaci :
f(x) = 1, untuk x = 1 atau 2
f(x) = f(x-1) + f(x-2), unutk x > 2
Contoh deret fibonaci :
0 1 1 2 3 5 8 13 21 34.....
Contoh dalam pemrograman java :
Maka hasil yang dikeluarkan :
Penjelasan :
Dari pernyataan if menunjukkan bahwa jika n = 0 maka hasilnya 0 dan jika n = 1 atau 2 maka hasilnya 1. Dan jika n tidak sama dengan 0 atau 1, maka dia akan dieksekusi ke rumus fibonaci. Dan untuk mengulang pemanggilan fungsi rekursif yaitu menggunakan loop for untuk menentukan jumlah deret fibonaci yang diinginkan .
- Pangkat
x^y = 1, jika y = 0
x^y = x * x^(y-1), jika y > 0
Pada definisi y > 0, bentuk pemangkatan muncul kembali dibagian kanan(dikalikan dengan x^(y-1)). Disitulah fungsi rekursif terjadi.
Contoh :
(x,y) = (10,0)
maka 10^0 = 1
(x,y) = (10,3)
maka 10^3 = 10 * 10^2
= 10 * 10 * 10^1
= 10 * 10 * 10 = 1000
Contoh dalam pemrograman java :
Maka hasil yang dikeluarkan :
Penjelasan :
Jika y = 0 maka hasilnya adalah 1, jika y tidak sama dengan 0 maka akan di dieksekusi ke rumus pangkat. Dan untuk mengeluarkan hasilnya, kita panggil fungsi rekursifnya, disitu contoh fungsi rekursifnya adalah "pangkatRekursif(10,3)".
Ok, sekian pembahasan dari saya mengenai fungsi rekursif.
Komentar
Posting Komentar