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.
akan menghasilkan :
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.
Hasil Tampilan :
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.
Tampilan hasil :
Selamat Mencoba…..
-------------------------------------------------------------------------
program pointer1;
uses wincrt;
type ptr = ^simpul;
simpul = record
data : string;
next : ptr;
end;
var list,baru,bantu : ptr;
i : integer;
begin
list := nil;
for i:=1 to 5 do
begin
new(baru);
write('Nama ke-',i);readln(baru^.data);
baru^.next:=list;
96
list:=baru;
end;
bantu:=list;
while bantu<>nil do
begin
writeln(bantu^.data);
bantu:=bantu^.next;
end;
end.

No comments:
Post a Comment