Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

R EKURSI Gerlan A. Manu,ST

Presentasi serupa


Presentasi berjudul: "R EKURSI Gerlan A. Manu,ST"— Transcript presentasi:

1 R EKURSI Gerlan A. Manu,ST Email : gerlan.manu@gmail.com

2 P ENGENALAN R EKURSI Proses dari suatu subprogram (dapat berupa fungsi atau prosedur) yang memanggil dirinya sendiri. Contoh : Procedure rekursi; Begin Write (‘Akademi Teknik Kupang’); Rekursi; End; {program utama} Begin Rekursi; End. Saat program ini dijalankan akan menampilkan tulisan “Akademi Teknik Kupang” terus menerus tanpa berhenti.

3 K ONDISI P ENGAKHIRAN REKURSI Untuk menghentikan rekursi bisa dengan menggunakan kondisi seleksi atau if then,, Rekursi akan berhenti bila kondisi telah memenuhi syarat. Contoh : Rekursi akan dilakukan sebanyak 5 kali, yaitu dengan menyeleksi kondisi dari variabel akhir sampai bernilai 5. misalnya : Var akhir : word; Procedure rekursi; Begin if Akhir < 5 Then Begin write (‘Akademi Teknik Kupang’); Akhir := Akhir +1; Rekursi; end; {program utama} Begin Akhir := 0 Rekursi; End. Program akan menampilan “Akademi Teknik Kupang” sebanyak 5 kali

4 L ATIHAN Buatlah program dengan rekursi untuk menampilkan bilangan dari 1 sampai 10?

5 F AKTORIAL 1! = 1 2! = 1 x 2 3! = 1x 2 x 3 4! = 1 x 2 x 3 x 4 Dst….. Kalo diasumsikan N lebih besar 3 maka dapat dirumuskan : N! = N x (N-1) x (N-2) x …. x 1 Rumus tsb dapat didefinisikan secara rekursi : N ! = N x (N-1)! Mis : 5! = 5 * 4! 5! = 5 * 4 * 3! 5! = 5 * 4 * 3 * 2! 5! = 5 * 4 * 3 * 2 * 1 = 120

6 P ROCEDURE F AKTORIAL Procedure faktorial(N : byte; Var Hasil : Longint) Begin If N <= 1 Then Hasil := 1; else Begin faktorial(N-1, Hasil); hasil := N * Hasil; End; {program utama} Var N : byte; F : longint; Begin write (‘ Berapa faktorial = ‘); readLn (N); Faktorial(N,F); writeln (‘Faktorial = ‘, F); End; Prosedur by reference, Ingat-ingat kembali sifat dari prosedur by reference Memanggil prosedurnya sendiri coba ubah procedure faktorial diatas dalam bentuk fungsi!

7 M ENARA H ANOI Permasalahan yang paling terkenal dalam proses rekursi adalah menara hanoi (The Tower of Hanoi). Memindahkan sejumlah piringan dari satu menara ke menara yang lain. Pemindahan piringan dilakukan satu demi satu dan tidak boleh piringan yang lebih kecil berada di bawah piringan yang lebih besar. Untuk keperluan ini disediakan sebuah menara lagi untuk bantuan pemindahan. Gambar Menara Hanoi : A B C

8 A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C

9 A B C A B C A B C A B C A B C A B C A B C Langkah 1 : pindahkan piring 1 dari A ke B Langkah 2 : pindahkan piring 2 dari A ke C Langkah 3: pindahkan piring 1 dari B ke C Langkah 4 : pindahkan piring 3 dari A ke B Langkah 5: pindahkan piring 1 dari C ke A Langkah 6: pindahkan piring 2 dari C ke B Langkah 7: pindahkan piring 1 dari A ke B Langkah 8: pindahkan piring 4 dari A ke C Langkah 9: pindahkan piring 1 dari B ke C Langkah 10: pindahkan piring 2 dari B ke A Langkah 11: pindahkan piring 1 dari C ke A Langkah 12: pindahkan piring 3 dari B ke C Langkah 13: pindahkan piring 1 dari A ke B Langkah 14: pindahkan piring 2 dari A ke C Langkah 15: pindahkan piring 1 dari B ke C Coba implementasikan algoritma diatas dalam bentuk procedure!

10 K ELEMAHAN R EKURSI Dalam beberapa kasus tertentu, rekursi dapat mempunyai kelemahan, yaitu suatu proses yang sudah dilakukan akan diproses ulang kembali, shingga membuat proses menjadi lama.


Download ppt "R EKURSI Gerlan A. Manu,ST"

Presentasi serupa


Iklan oleh Google