Algoritma Teknik Rekursif Algoritma Teknik Iteratif

2008 | Direktorat Pembinaan SMK 365 Gambar 10.4. Ilustrasi Rekursif Untuk Menghitung 4 faktorial 4 Dalam hal ini memang untuk rekursif harus memakai function karena procedure tidak dapat dipanggil di dalam procedure itu sendiri.

10.5. Algoritma Teknik Iteratif

Teknik Iteratif algoritmanya seperti apa adanya terlihat jadi tidak begitu rumit. Pada tulisan di atas telah dijelaskan beberapa contoh menghitung faktorial secara iteratif. Untuk lebih jelasnya lihat contoh berikut: 4 = 4 x 3 x 2 x 1 3 = 3 x 2 x 1 2 = 2 x 1 1 = 1 Algoritmanya disini sangat jelas untuk faktorial menggunakan Teknik Iteratif tinggal mengulang operasi perkalian dari 1 sampai dengan banyaknya n. Pseudocode Teknik Iteratif: int Faktorialint n { int x = 1; forint i = 1; i = n; i++ x = x i; return x; } Dapat dilihat di atas bahwa iterasinya adalah mengulang perkalian x = x i dari i = 1 sampai dengan I = n dengan penambahan 1 setiap perubahan i. Perlu diketahui juga untuk harga awal x harus sama dengan 1, jika tidak diberi harga awal maka hasilnya akan salah. Faktorial4 1 x Faktorial0 3 x Faktorial2 2 x Faktorial1 4 x Faktorial3 1 366 Direktorat Pembinaan SMK | 2008 Jadi jelas sekali perbedaan algoritma Teknik Rekursif dengan algoritma Teknik Iteratif.

10.6. Penerapan Algoritma Rekursif

Dibawah ini merupakan beberapa contoh program rekursif dengan berbagai kasus dilapangan seperti faktorial, program pemangkatan dan lain sebagainya. Untuk lebih jelasnya perhatikan program-program dibawah ini: Program 10.3. Faktorial: include cstdlib include iostream using namespace std; int faktorialint n { if n== return 1 ; else return n faktorialn‐ 1 ; } int mainint argc, char argv[] { int n; cout Program Faktorial Rekursif\n ; cout Masukkan Nilai n : ; cinn; cout Faktorial n = faktorialn \n ; system PAUSE ; return EXIT_SUCCESS; } Keluaran program tersebut adalah sebagai berikut: Program factorial Rekursif Masukan Nilai n : 4 Faktorial 4 = 24 Program 10.4. Pangkat a n : include cstdlib include iostream 2008 | Direktorat Pembinaan SMK 367 using namespace std; float Pangkatfloat a, int n { if n== return 1 ; else return a Pangkata, n‐ 1 ; } int mainint argc, char argv[] { float a; int n; cout Program Pangkat Rekursif\n ; cout Isilah Nilai a = ; cina; cout Isilah Nilai n = ; cinn; cout Hasil dari a pangkat n adalah Pangkata,n \n ; system PAUSE ; return EXIT_SUCCESS; } Keluaran program di atas seperti berikut: Program pangkat rekursif Istilah Nilai a = 2 Istilah Nilai a = 2 Hasil dari 2 pangkat 3 adalah 8 Program 10.5. Menghitung jumlah bilangan Integer positif dari 1 sampai dengan n secara rekursif. include cstdlib include iostream using namespace std; int JumlahIntint n { if n== 1 return 1 ; else return n + JumlahIntn‐ 1 ;