definisi,fungsi dan contoh rekursi dan iterasi

- DEFINISI
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. jump break
Algoritma rekursif
- Teknik Rekursif merupakan salah satu cara pembuatan algoritma dengan pemanggilan procedureatau function yang sama
- Ada variabel lokal baru
- Program menjadi lebih sederhana
- Menggunakan perulangan if else

Kelebihan perulangan rekursif:

• Sangat mudah untuk melakukan perulangan dengan batasan yang luas dalam artian melakukan perulangan dalam skala yang besar.
• Dapat melakukan perulangan dengan batasan fungsi.

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.

Kekurangan perulangan rekursif:

• Tidak bisa melakukan nested loop atau looping bersarang.
• Biasanya membuat fungsi sulit untuk dipahami, hanya cocok untuk persoalan tertentu saja.
• Trace error sulit.
• Memerlukan stack yang lebih besar, sebab setiap kali fungsi dipanggil, variabel lokal dan parameter formal akan ditempatkan ke stack dan ada kalanya akan menyebabkan stack tak cukup lagi (Stack Overrun).
• Proses agak berbelit-belit karena terdapat pemangilan fungsi yang berulang-ulang dan pemanggilan data yang ditumpuk.

jika pada program 1, diubah kedalam bentuk rekursif :
Dalam bentuk rekursif :
#include <cstdlib>
#include <iostream>
using namespace std;
int jumlah(int n) {
if(n==0) return (0);
else return (n-2 + jumlah(n-2));}void cetak(int n) {if(n!=0){cetak(n-2);cout << n-2 << ” “;}}int main(int argc, char *argv[]){int n = 10;cout << jumlah(n);cetak(n);system(“PAUSE”);return EXIT_SUCCESS;}
B. ITERATIF
1.Pengertian iteratif
           Perulangan iteratif merupakan perulangan yang melakukan proses perulangan terhadap sekelompok instruksi di mana perulangan tersebut akan berhenti jika batasan syarat sudah tidak terpenuhi.
Algoritma iteratif
- Teknik Iteratif merupakan suatu teknik pembuatan algoritma dengan pemanggilan procedure    beberapa kali atau hingga suatu kondisi tertentu terpenuhi.
- Tidak ada variabel lokal baru
- Program tidak sederhana
- Menggunakan perulangan for dan while
Kelebihan perulangan iteratif:
• Mudah dipahami dan mudah melakukan debugging ketika ada perulangan yang salah.
• Dapat melakukan nested loop atau yang disebut dengan looping bersarang.
• Proses lebih singkat karena perulangan terjadi pada kondisi yang telah disesuaikan.
• Jarang terjadi overflow karena batasan dan syarat perulangan yang jelas.
Kelemahan perulangan iteratif:
• Tidak dapat menggunakan batasan berupa fungsi.
• Perulangan dengan batasan yang luas akan menyulitkan dalam pembuatan program perulangan itu sendiri.
program 1
Bentuk fungsi iteratif :
#include <cstdlib>
#include <iostream>
using namespace std;int jumlah(int n) {int hasil = 0;for (int i=0; i<n; i=i+2)hasil = hasil + i;
return hasil;}void cetak(int n) {for (int i=0; i<n; i=i+2)cout << i << ” “;}
int main(int argc, char *argv[]){int n = 10;cout << jumlah(n);cetak(n);system(“PAUSE”);
return EXIT_SUCCESS;}
- FUNGSI
1. Fungsi rekursif dalam pemrograman merupakan fungsi yang memanggil dirinya sendiri. Fungsi rekursif sering saya bayangkan seperti perulangan. Karena tingkah lakunya yang mengulang-ulang setiap pemanggilan dirinya.

2. Fungi Iteratif merupakan perulangan yang melakukan proses perulangan terhadap sekelompok intruksi. Perulangan dilakukan dalam batasan syarat tertentu. Ketika syarat tersebut tidak terpenuhi lagi maka perulangan akan terhenti.

- CONTOH
1. Rekursif
Python:
def fungsiRekursif():

    print("Hello, ini fungsi rekursif")

    fungsiRekursif()

Javascript:
function fungsiRekursif(){

    console.log("Hello, ini fungsi rekursif");

    fungsiRekursif();}

Dua contoh fungsi di atas akan menampilkan teks "Hello, ini fungsi rekursif" terus menerus, karena memanggil dirinya sendiri tampa henti.
Fungsi rekursif dapat menyelesaikan beberapa persoalan seperti perhitungan bilangan fibbonaci dan faktorial.
Berikut ini animasi fungsi rekursif dalam menghitung faktorial dari 5.
Fungsi rekursif untuk faktorial mungkin cukup membingungkan. Animasi di atas dapat kita jabarkan menjadi seperti berikut ini.
faktorial(5) = 5 * faktorial(4)
faktorial(4) = 4 * faktorial(3)
faktorial(2) = 2 * faktorial(1)
faktorial(3) = 3 * faktorial(2)
faktorial(1) = 1
Maka faktorial(5) = 5 * 4 * 3 * 2 * 1, akan menghasilkan 120.
Cara lain yang lebih mudah memahami fungsi rekursif adalah dengan membayangkan sebuah lukisan seperti berikut ini:
Sebuah lukisan dilukis oleh seorang pelukis yang dilukis oleh seorang pelukis yang dilukis oleh seorang pelukis… 

2. iteratif
/*Fungsi pencarian nilai maximum*/
Function maximum(A,n){
 m <- A[1]i <- 2While (i <= n) doif (A[i] > m) thenm <- A[i]i <- i+1endwhilereturn m}

Komentar

Postingan populer dari blog ini

pengertian dan tingkatan arsitektur komputer

SUB-SUB ARSITEKTUR KOMPUTER