algoritma rekursif-faktorial

Upload: sauliya94

Post on 12-Oct-2015

50 views

Category:

Documents


0 download

DESCRIPTION

Tugas mata kuliah Desain dan Analisis Algoritma, penjelasan mengenai algoritma rekursif-faktorial

TRANSCRIPT

ALGORITMA REKURSIFFAKTORIAL

Kelompok 8, DAA Kelas JRidlo Sayyidina Auliya-105060800111013Elha Dhanny-115060800111010Regita Ayu P.-115060800111028Gita Widigdo W.-115060807111021Ichwanda Baktiar-115060807111003

Algoritma rekursif merupakan bentuk algoritma yang memiliki suatu subrutin, fungsi, atau prosedur yang memanggil dirinya sendiri. Bentuk pemanggilan subrutin tersebut terdapat dalam bagian implementasi, yakni pada badan subrutin. Penggunaan fungsi rekursif berfungsi untuk memudahkan pemahaman terhadap algoritma dengan dapat melihat jalannya program dengan lebih mudah. Selain itu, fungsi rekursif bertujuan untuk menyederhanakan penulisan program dengan menggantikan bentuk iterasi.Algoritma rekursif memiliki beberapa syarat utama, antara lain terdapat kondisi terminal (basis), yakni suatu bagian yang tidak memanggil dirinya sendiri. Selain itu dalam suatu bentuk rekursif juga harus terdapat subroutine call yang melibatkan parameter yang nilainya menuju kondisi terminal (recurrence). Terdapat beberapa contoh penggunaan algoritma rekursif, diantaranya adalah dalam penghitungan faktorial. Dalam suatu algoritma faktorial, kompleksitas waktu memiliki perbedaan antara kondisi terminal basis dan recurrence. Untuk kasus basis, tidak ada operasi perkalian. Sedangkan untuk kasus recurrence, kompleksitas waktu diukur dari jumlah perkalian (1) ditambah kompleksitas waktu untuk faktorial. Contoh program :function faktorial(x:integer) : longint;beginif x1, maka proses akan diulang kembali hingga mendapatkan nilai sama dengan 1. Setelah nilai tersebut dicapai maka perintah akan mengembalikan proses ke bagian pemanggil. Jalannya program ini dapat digambarkan sebagai berikut :

faktorial:=5*faktorial(4);

faktorial:=4*faktorial(3)

faktorial:=3*faktorial(2);

faktorial:=2*faktorial(1);

faktorial:=(5*4*3*2*1);