Rekursi atau recursion adalah proses dari suatu subprogam (dapat berupa fungsi/prosedur) yang memanggil dirinya sendiri.
Rekursi
Rekursi atau recursion adalah proses dari suatu subprogam (dapat berupa fungsi/prosedur) yang memanggil dirinya sendiri. Proses rekursi untuk beberapa kasus merupakan algoritma yang baik dan dapat membuat pemecahan masalah lebih mudah. Akan tetapi sebagai imbalannya, proses rekursi ini harus dibayar mahal dengan memori yang banyak digunakan, dikarenakan setiap kali suatu subprogam dipanggil, maka diperlukan sejumlah tambahan memori.
Jika kita menulis suatu fungsi atau prosedur rekursi, yang perlu diperhatikan adalah fungsi atau prosedur tersebut harus mengandung suatu kondisi akhir dari proses rekursi. kondisi ini diperlukan untuk mencegah terjadinya proses rekursi yang tidak berujung (indefinfinite), yaitu proses rekursi akan dilakukan tanpa henti.
Jika kita menulis suatu fungsi atau prosedur rekursi, yang perlu diperhatikan adalah fungsi atau prosedur tersebut harus mengandung suatu kondisi akhir dari proses rekursi. kondisi ini diperlukan untuk mencegah terjadinya proses rekursi yang tidak berujung (indefinfinite), yaitu proses rekursi akan dilakukan tanpa henti.
Dalam pembuatan progam ini menggunakan Console Application pada Delphi 7. Dan sebuah progam diatas yaitu rekursi mengurutkan data metode Quick Sort dalam bentuk prosedur.
![]() |
| Tampilan listing progam rekursi |
Dan dibawah ini script progamnya :
program rekursi;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
Tipelarik=string[20];
Larikurut=array[1..1000] of Tipelarik;
procedure QuickSort(var x:Larikurut;bawah,atas:word);
var
I,J:word;
sementara:Tipelarik;
begin
while atas>bawah do
begin
I:=bawah;
J:=atas;
sementara:=x[bawah];
{Memecak larik menjadi 2 bagian}
while I<J do
begin
while x[J]>sementara do
J:=J-1;
x[I]:=x[J];
while (I<J) and (x[I] <= sementara) do
I:=I+1;
x[j]:=x[I];
end;
x[I]:=sementara;
{Urutkan Rekursi}
QuickSort(x,bawah,I-1);
bawah:=I+1;
end;
end;
var
nama:Larikurut;
N,I:word;
begin
write('Jumlah Data yang akan diurutkan?');readln(n);
writeln;
writeln('Masukkan Data:');
for I := 1 to N do
begin
write('Data Ke',I,'?');readln(nama[I]);
end;
{Urutkan dengan procedure QuickSort}
QuickSort(nama,1,N);
{Tampilkan Data yang di urut}
writeln;
writeln('Data yang telah Urut:');
for I:=1 to N do
writeln(nama[I]);
readln;
end.
end.




0 komentar:
Speak up your mind
Tell us what you're thinking... !