Translate

tutorial rekursif halaman 5

Selamat datang di eagleboot dan selamat membaca.

intmain(void) { intn; printf("Jumlahpiringan?"); scanf("%d",&n); Hanoi(n,'a','b','c'); return0; } 

 10.4.  Algoritma Teknik Rekursif 

Telah disinggung di depan untuk Teknik Rekursif harus dicari mana base step-nya dan mana rekursif step-nya. Dari problem yang hendak dipecahkan dicari dahulu keduanya.  Apabila sudah ketemu baru melangkah ke prose berikutnya yaitu menentukan pseudocode-nya, sekaligus menentukan apakah memakai procedure atau function.  Untuk Teknik Rekursif ini lebih cocok memakai function, karena harus bisa dipanggil di dalam program tersebut. Sebagai contoh mencari faktorial seperti di atas. Algoritma rekursifnya sebagai berikut:  0! = 1;  base step n! = n x (n – 1)!; n > 0  recursive step  Pseudocode-nya: IntFaktorial(intn) { If(n==0) Return1; Else Returnn*Faktorial(n‐1) }  Jika dijalankan gambaran prosesnya sebagai berikut: Misal untuk menghitung 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!=4x3x2x1 3!=3x2x1 2!=2x1 1!=1  Algoritmanya disini sangat jelas untuk faktorial menggunakan Teknik Iteratif tinggal mengulang operasi perkalian dari 1 sampai dengan banyaknya n. Pseudocode Teknik Iteratif:

 intFaktorial(intn) { intx=1; for(inti=1;i<=n;i++) x=x*i; returnx; } 

 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 .

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> usingnamespacestd; intfaktorial(intn) { if(n==0) return1; else returnn*faktorial(n‐1); } intmain(intargc,char*argv[]) { intn; cout<<"ProgramFaktorialRekursif\n"; cout<<"MasukkanNilain:"; cin>>n; cout<<"Faktorial("<<n<<")="<<faktorial(n)<<"\n"; system("PAUSE"); returnEXIT_SUCCESS; } 

 Keluaran program tersebut adalah sebagai berikut:
 ProgramfactorialRekursif MasukanNilain:4 Faktorial(4)=24.

Next read halaman 6

Share this

Related Posts

Previous
Next Post »