A. Pengertian Rekursif
Proses yang bersifat Rekursif, terjadi apabila dalam suatu fungsi ada
instruksi yang mengCALL fungsi itu sendiri, atau lebih sering disebut mengcall
dirinya sendiri.
Contoh :
Gmbr 1.1
1
B. Menggunakan Fungsi
Gmbr 1.2
Gmbr 1.3
2
2) Menggunakan Fungsi yang bersifat recursif
Gmbr 1.4
Gmbr 1.5
3
Gmbr 1.7
4
Gmbr 1.8
Gmbr 1.9
5
Gmbr 2.1
Input : Jakarta
Gmbr 2.2
6
Gmbr 2.3
C. Fungsi Rekursif
Algoritma recursive adalah fungsi yang tepat yang dapat di gunakan untuk
memecahkan suatu masalah yang logis.
Kelemahan Recursion
Memakan memori yang lebih besar, karena setiap kali bagian
dirinya dipanggil,dibutuhkan sejumlah ruang memori
tambahan.
7
Mengorbankan efisiensi dan kecepatan
Problem: rekursi seringkali tidak bisa “berhenti” sehingga
memori akan terpakai habis dan program bisa hang.
Program menjadi sulit dibaca.
Kelebihan Recursion
Karena program lebih singkat dan ada beberapa kasus yang
lebih mudah menggunakan fungsi yang rekursif.
1. Recursif
Kode program lebih ringkas dan mudah dipahami
Membutuhkan alokasi memori yang besar
Tidak cocok ketika kinerja tinggi diperlukan, karena terjadi overhead
pemanggilan fungsi dalam jumlah yang relatif besar
2. Iterasi
Kode program lebih panjang, untuk beberapa kasus solusi iteratif lebih
sulit diterapkan
Relatif lebih kecil alokasi memorinya
Cocok diterapkan ketika kinerja aplikasi harus diterapkan (hanya ada satu
kali pemanggilan fungsi)
E. Definisi Recursif
Recursif adalah proses pemanggilan dirinya sendiri (fungsi atau
prosedur). Fungsi maupun prosedur yang memanggil dirinya disebut fungsi atau
prosedur rekursif. Fungsi untuk suatu bagian program yang mengembalikan
(menghasilkan) hanya satu nilai. Sebuah function call adalah suatu ekspresi jadi ia
memberikan satu nilai.Procedure adalah suatu bagian program yang melakukan
8
aksi/fungsi khusus, biasanya berdasarkan sekumpulan parameter. Sebuah
procedure call adalah suatu statemen, jadi ia melakukan aksi. Banyak obyek
dalam matematika didefinisikan dengan menampilkan suatu proses untuk
menghasilkan obyek-obyek tsb.
9
mengakibatkan stack overflow. Masalah yg mempunyai solusi rekursif juga
mempunyai solusi iteratif(menggunakan loop). Versi iteratif seringkali lebih
efisien daripada versi rekursif karena rekursif biasanya menggunakan memori yg
lebih besar dan memerlukan waktu ekstra u/ penanganan stack of activation
frame.
Method Recursif
1. Fibonacci
2. Faktorial
Gmbr 2.4
10
Gmbr 2.5
Fungsi rekursif selalu memiliki kondisi yang menyatakan kapan fungsi tersebut
berhenti. Kondisi ini harus dapat dibuktikan akan tercapai, karena jika tidak
tercapai maka kita tidak dapat membuktikan bahwa fungsi akan berhenti, yang
berarti algoritma kita tidak benar.
Fungsi rekursif selalu memanggil dirinya sendiri sambil mengurangi atau
memecahkan data masukan setiap panggilannya. Hal ini penting diingat, karena
tujuan utama dari rekursif ialah memecahkan masalah dengan mengurangi
masalah tersebut menjadi masalah-masalah kecil.
11
Rekursif
f(0) = 3
f(n + 1) = 2f(n) + 3
Maka
f(0) = 3
Plus – Minus
+Karena program lebih singkat dan ada beberapa kasus yang lebih mudah
menggunakan fungsi yang rekursif
12
-Memakan memori yang lebih besar, karena setiap kali bagian dirinya
dipanggil, dibutuhkan sejumlah ruang memori tambahan.
return_data_type function_name(parameter_list){
...
function_name(...);
...
Problems
Faktorial
5! = 5 x 4 x 3 x 2 x 1
4! = 4 x 3 x 2 x 1
Berarti 5! = 5 x 4!
Metode Iteratif
Salah satu cara untuk menghitung adalah dengan menggunakan loop, yang
mengalikan masing-masing bilangan dengan hasil sebelumnya. Penyelesaian
13
dengan cara ini dinamakan iteratif, yang mana secara umum dapat didefinisikan
sebagai berikut:
n! = (n)(n-1)(n-2) … (1)
Metode Rekursif
14
F. Contoh Program Rekursif
#include <stdio.h>
// Fungsi rekursif untuk menghitung jumlah angka dari 1 hingga n
int jumlah(int n) {
if (n == 0) {
return 0;
} else {
return n + jumlah(n - 1);
}
}
int main() {
int n;
Gmbr 2.6
15
KESIMPULAN
Fungsi rekursif merupakan fungsi yang memanggil dirinya sendiri. Terdapat dua
komponen penting dalam fungsi rekursif, yaitu kondisi kapan berhentinya fungsi
dan pengurangan atau pembagian data ketika fungsi memanggil dirinya sendiri.
Optimasi fungsi rekursif dapat dilakukan dengan menggunakan teknik tail call,
16
Daftar pusaka
https://tekno.kompas.com/read/2023/03/07/03000057/pengertian-dan-fungsi-
rekursif-serta-contohnya
https://www.bing.com/search?
pglt=41&q=rekursif+adalah&cvid=bc7f1af08d3f4eaaa49b95454b3944b
5&g
https://www.bing.com/ck/a?!
&&p=7a6b262f88425815JmltdHM9MTcwMTEyOTYwMCZpZ3VpZD
0wODRlNWU4OC0yOTdmLTY
17