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.
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.
• 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
Posting Komentar