Rekursi (recursion) adalah proses dari suatu sub program baik fungsi maupun prosedure yang memanggil dirinya sendiri.
Contoh :
Program Rekursi_pascal;
uses Crt;
procedure rekursi(A:integer);
begin
if A < 10 then
begin
write(‘Pascal’);
A:=A+1;
rekursi(A);
end;
end;
var
x:integer;
begin
clrscr;
x:=3; ———> nilai X dapat kita tentukan sendiri
rekursi(x);
readln;
end.
Contoh faktorial menggunakan rekursi :
Program Faktorial_pascal;
function Faktorial(a:integer):longint;
begin
if (A=1)then
Faktorial:=1
else
Faktorial:=a*faktorial(a-1);
end;
var
x:integer;
begin
writeln(‘Faktorial sequence’);
write(‘Berapa Faktorial :’);readln(x);
writeln(x,’faktorial ‘,’=',faktorial(x));
readln;
end.
Contoh untuk indefinite dalam pascal merupakan proses rekursi yang dilakukan tanpa berhenti atau rekursi yang tidak berujung.
Program rekursi_indefinite;
procedure rekursi;
begin
write(‘Pascal’);write;
rekursi;
end;
begin
rekursi;
readln;
end.
Selamat Mencoba…..