25 0 666 KB
Algortima & Pemrograman
Iterasi & Rekursif Muhammad Fadli, M.Kom
Rekursif Seperti yang sudah dibahas pada pertemuan sebelumnya, rekursif adalah fungsi yang memanggil dirinya sendiri, rekursif menggunakan pernyataan pilihan (if, if..else, switch). Sedangkan iterasi adalah proses pengulangan dengan menggunakan perintah perulangan (for, while dan do..while).
6/28/2021
Annual Review
2
Iterasi dan rekursif memasukkan unsur pengulangan: iterasi menggunakan perintah pengulangan secara ekspisit, rekursif memasukkan pengulangan melalui pemanggilan fungsi secara berulang. Iterasi dan rekursif memasukkan tes penghentian: penghentian iterasi pada kondisi looping yang bernilai salah, penghentian rekursif pada saat kondisi dasarnya terpenuhi.
6/28/2021
Annual Review
3
Iterasi dengan pengulangan yang dikendalikan oleh counter dan rekursi secara bertahap mendekati penghentian: Iterasi terus memodifikasi counter sampai counter mengasumsikan nilai yang membuat kondisi loop berikutnya gagal; rekursi terus memanggil dirinya sendiri menggunakan masalah yang ada sampai keadaan dasar tercapai.
6/28/2021
Annual Review
4
Baik pada iterasi maupun rekursif dapat terjadi kondisi pengulangan yang tidak berhenti: kondisi loop tidak berhenti pada iterasi terjadi pada saat tes kondisi lanjut atau tidaknya perulangan tidak pernah bernilai salah; sedangkan kondisi loop tidak berhenti pada rekursif jika langkah rekursif tidak mengurangi masalah pada setiap pemanggilan fungsi itu sendiri, sehingga keadaan dasar tidak pernah tercapai.
6/28/2021
Annual Review
5
Rekursif mempunyai banyak nilai negatif. rekursif mempunyai mekanisme pemanggilan method berulang, dan konsekuensinya terjadi overhead. Mekanisme ini juga akan mempengaruhi kerja sistem karena mengambil waktu dari prosesor dan ruang dari memori. Setiap pemanggilan rekursif berarti copy dari method dibuat (kenyataannya, hanya variabel method); serangkaian copy ini dapat memakan tempat di memori. Iterasi terjadi dalam method, sehingga pemanggilan method dan tambahkan memori dapat dicegah.
6/28/2021
Annual Review
6
Mengapa menggunakan rekursif? Software engineering yang bagus adalah penting. Dalam banyak kasus, untuk kerja yang tinggi menjadi prioritas utama bahwa meskipun harus dibayar dengan harga tinggi, karena membutuhkan hardware yang besar dan handal. Dan rekursif mempunyai performance yang baik dan tinggi
6/28/2021
Annual Review
7
Contoh Program Diketahui algoritma program untuk menampilkan bilangan dari 0 hingga k, dengan k sembarang. 1. Mulai 2. Masukan sebuah anga (k) 3. Untuk indeks (n) = 1 sampai dengan k, tampilkan k 4. Selesai
6/28/2021
Annual Review
8
#include using namespace std; main (){ int n,k; coutk; for (n=0; n