๐ Daftar Isi
Apa yang ada di pikiran kalian setelah melihat gambar tersebut? Pastinya kita menyadari bahwa terdapat jendela yang sama pada jendela yang sedang kita buka. Itulah konsep dasar dari rekursi. Fungsi rekursif memiliki ciri khas yaitu dapat memanggil dirinya sendiri (sub program yang memanggil sub program).
Penulisan Rekursi Pada Prosedur atau Fungsi
Prosedur Rekusif
procedure proc();
begin
proc();
end;
Fungsi Rekursif
function func();
begin
func();
end;
Bentuk Pemanggilan Fungsi dan Prosedur Rekursif
Direct Call
procedure proc;
begin
:
proc();
:
end;
Indirect Call
procedure proc1;
begin
:
proc2;
end;
procedure proc2;
begin
:
proc3;
end;
procedure proc3;
begin
:
proc1;
end;
Dengan pemanggilan secara indirect ternyata menimbulkan beberapa permasalahan contoh nya proc1 akan memanggil proc2 atau sebaliknya. Prosedur mana yang harus didefinisikan lebih dulu?
procedure proc1;
begin
:
proc2;
end;
procedure proc2;
begin
:
proc1;
end;
Jika proc1 dideklarasikan lebih dulu kemudian memanggil proc2 maka pascal tidak akan dapat mendeteksi keberadaan proc2 karena proc2 dideklarasikan setelah proc1.
procedure proc2;
begin
:
proc1;
end;
procedure proc1;
begin
:
proc2;
end;
Begitu juta sebaliknya, jika proc2 dideklarasikan lebih dulu kemudian memanggil proc1 maka pascal tidak akan dapat mendeteksi keberadaan proc1 karena proc1 dideklarasikan setelah proc2.
Solusi untuk permasalahan seperti itu adalah dengan menggunakan Dummy Definition . Sehingga kode programnya akan seperti berikut.
procedure proc2; FORWARD;
procedure proc1;
begin
:
proc2;
end;
procedure proc2;
begin
:
proc1;
end;
Materi Lengkap
Silakan baca juga beberapa artikel menarik kami tentang Rekursif, daftar lengkapnya adalah sebagai berikut.