Minggu, 11 Desember 2011

Rekursi

Salah satu keistimewaan yang dimiliki Pascal adalah bahwa Pascal bisa melakukan suatu proses yang disebut dengan proses Rekursi. Sifat rckursif ini dimiliki oleh beberapa statemen Pascal. Rekursi berarti suatu proses yang bisa memanggil dirinya sendiri. Dalam rekursi sebenamya terkandung pengertian prosedur atau fungsi. Perbedaanya adalah bahwa rekursi bisa memanggil ke dirinya sendiri, tetapi prosedur atau fungsi harus dipanggil lewat pemanggil prosedur atau fungsi. Rekursi merupakan teknik pemrograman yang penting, dan beberapa bahasa pemrograman modem mendukung keberadaan proses rekursi ini.
Contoh sederhana dari proses rekursi adalah proses menghitung nilai faktorial dari bilangan bulat positif
0 ! = 1
1 ! = 1 X 0 1 X 1 = 1
2 ! = 2 x l ! = 2 x l x 0 ! = 2 x l x l = 2
3 ! = 3 x 2 ! = 3 x 2 x 1 ! = 3 x 2 x l x 0 ! = 3 x 2 x l x l = 6

n ! = n (n ‑ 1) !, untuk n > 0
yang secara notasi pernrograman bisa ditulis sebagai:
FAKTORIAL(0) = 1
FAKTORIAL(N) = N x FAKTORIAL(N - 1)
Contoh program rekursi untuk persoalan diatas:
Contoh 5:
{ program untuk mengbitung bilangan faktorial }
{dengan cara rckursif }
program contoh_rekursi;
uses crt;
var
n,faktor : integer;

function fakt (n : integer) : integer;
begin
  if  n = 0 then
     fakt := 1
  else
     fakt := n * fakt(n‑1)
end;

begin
    write('Menghitung berapa faktorial : ‘); readln(n)
    faktor := fakt (n);
     writeln('Hasilnya adalah = ',faktor:5);
     readln;
end.