Anda di halaman 1dari 3

Rekursif dan Iteratif

Apr13 A. REKURSIF 1.Pengertian Rekursif Rekursif dapat diartikan bahwa suatu proses yang bisa memanggil dirinya sendiri. sedikit menyimpang dari pengertian ada sedikit pendapat tentang Rekursif salah satunya adalah Menurut definisi dalam Microsoft Bookshelf, Rekursif adalah kemampuan suatu rutin untuk memanggil dirinya sendiri. Dalam Rekursif sebenarnya terkandung pengertian prosedur dan fungsi. Perbedaannya adalah bahwa rekursif bisa memanggil ke dirinya sendiri, tetapi prosedur dan fungsi harus dipanggil lewat pemanggil prosedur dan fungsi. Rekursif merupakan teknik pemrograman yang penting dan beberapa bahasa pemrograman mendukung keberadaan proses rekursif ini. Dalam prosedur dan fungsi, pemanggilan ke dirinya sendiri bisa berarti proses berulang yang tidak bisa diketahui kapan akan berakhir. Contoh paling sederhana dari proses rekursif ini adalah proses menghitung nilai factorial dari suatu bilangan bulat positif dan mencari deret Fibbonacci dari suatu bilangan bulat. 1. Nilai factorial secara rekursif dapat ditulis sebagai 0!=1 N ! = N x (N-1) ! yang secara pemrograman dapat ditulis sebagai Faktorial(0) = 1 (1) Faktorial(N) = N*Faktorial(N-1) (2) Persamaan (2) di atas adalah contoh hubungan rekurens (recurrence relation), yang berarti bahwa nilai suatu fungsi dengan argumen tertentu bisa dihitung dari fungsi yang sama dengan argumen yang lebih kecil. Persamaan (1) tidak bersifat rekursif, disebut nilai awal atau basis. Setiap fungsi rekursif paling sedikit mempunyai satu nilai awal, jika tidak fungsi tersebut tidak bisa dihitung secara eksplisit. 2. Bilangan Fibbonacci didefinisikan sebagai berikut 1 1 2 3 5 8 13 21 34 55 89 dari barisan tersebut dapat dilihat bahwa bilangan ke-N (N>2) dalam barisan dapat dicari dari dua bilangan sebelumnya yang terdekat dengan bilangan N, yaitu bilangan ke-(N-1) dan bilangan ke-(N-2), sehingga dapat dirumuskan sebagai Fibbonacci(1) = 1 (1) Fibbonacci(2) = 1 (2) Fibbonacci(N) = Fibbonacci(N-1) + Fibbonacci(N-2) (3) Dengan persamaan (1) dan (2) adalah basis dan persamaan (3) adalah rekurensnya. Rekursif Versus Iteratif Dalam beberapa situasi, pemecahan secara rekursif maupun secara iteratif mempunyai keuntungan dan kekurangan yang bisa saling diperbandingkan. Adalah cukup sulit untuk menentukan mana yang paling sederhana, paling jelas, paling efisien dan paling mudah disbanding yang lain. Boleh dikatakan pemilihan cara iterative maupun rekursif merupakan

kesenangan seorang programmer dan tergantung konteks permasalahan yang akan dipecahkan sesuai dengan kesanggupan yang bersangkutan. 2.Fungsi rekursif Pada pembahasan-pembahasan sebelumnya, telah dibahas tentang fungsi. Apa saja manfaat menggunakan Fungsi Rekursi?.
manfaat fungsi rekursif serta perbandingannya dengan looping/perulangan:

REKURSIF Perulangan rekursif merupakan salah satu metode didalam pemrograman yang mana dalam sebuah fungsi terdapat intruksi yang memanggil fungsi itu sendri, atau lebih sering disebut memanggil dirinya sendiri.

ITERATIF Perulangan iteratif merupakan perulangan yang melakukan proses perulangan terhadap sekelompok intruksi. Perulangan dilakukan dalam batasan syarat tertentu. Ketika syarat tersebut tidak terpenuhi lagi maka perulangan aka terhenti. # Kelebihan perulangan iteratif 1. # Mudah dipahami dan mudah dilakukan debuging ketika ada perulangan yang salah 2. # Dapat melakukan nested loop atau yang disebut dengan looping bersarang 3. # Proses lebih singkat karena perulangan terjadi pada kondisi yang telah disesuaikan 4. # Jarang terjadi overflow karena batasan dan syarat perulangan yang jelas

Kelebihan perulangan rekursif 1. Sangat mudah untuk melakukan perulangan dengan batasan yang luas dalam artian melakukan perulangan dalam skala yang besar 2. Dapat melakukan perulangan dengan batasan fungsi

Kekurangan perulangan rekursif 1. Tidak bisa melakukan nested Kelemahan perulangan iterative loop atau looping bersarang 2. Biasanya membuat fungsi 1. Tidak dapat menggunakan sulit untuk dipahami, hanya batasan berupa fungsi cocok untuk persoalan 2. Perulangan dengan batasan tertentu saja yang luas akan menyulitkan 3. Memerlukan stack yang lebih dalam pembuatan program besar, sebab setiap kali perulangan itu sendiri fungsi dipanggil, variabel lokal dan parameter formal akan ditempatkan ke stack dan ada kalaya akan

menyebabkan stack tak cukup lagi (Stack Overum) 4. Proses agak berbelit-belit karena terdapat pemangilan fungsi yang berulang-ulang dan pemanggilan data yang dit

Perbedaan dan Persamaan Rekursif dan Iteratif : Persamaan - Sama-sama merupakan bentuk perulangan. - Dilakukan pengecekan kondisi terlebih dahulu sebelum mengulang. Perbedaan - Iteratif menggunakan FOR, WHILE, DO-WHILE sedangkan rekursif hanya menggunakan IF. - Iteratif dapat berjalan pada program yang terdiri dari prosedur (Tidak terdapat fungsi) sedangkan rekursif merupakan fungsi.

Anda mungkin juga menyukai