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.