fbpx

Algoritma dan Pemrogaman : Rekursif Tak Hingga

Rekursif tak hingga sama dengan iterasi yang mungkin akan terjadi tak hingga bila kondisi pada while atau until tidak pernah terpenuhi, rekursi tak hingga juga dapat terjadi apabila jalannya pemanggilan sub program tidak pernah mencapai true pada kondisi if. Sebagai contoh, Apa yang terjadi bila dipanggil fungsi sum(0) pada kedua fungsi di bawah ini?

function sum(x : integer) : integer;
var i, result : integer;
begin
  result := 0;
  for i := 1 to x do result := result  + i;
  sum := result;
end;

Untuk fungsi versi iterasi maka sum(0) hasilnya akan bernilai 0 (benar).

function sum(x : integer) : integer;
begin
  if x = 1 then sum := 1
  else sum := x + sum(x - 1);
end;

Untuk fungsi rekursif sum(0) maka gambaran jalannya program seperti berikut:

  1. sum(0) akan menjadi 0 + sum(-1)
  2. sum(-1) akan menjadi 0 + sum(-2)
  3. sum(-2) akan menjadi 0 + sum(-3)
  4. sum(-3) akan menjadi 0 + sum(-4)
  5. sum(-4) akan menjadi 0 + sum(-5)
  6. sum(-5) akan menjadi 0 + sum(-6)
  7. sum(-6) akan menjadi 0 + sum(-7)
  8. sum(-7) akan menjadi 0 + sum(-8)

Sampai kapan rekursif tersebut akan dijalankan? Jawabannya adalah selama-lamanya. Rekursi tak hingga akan terjadi jika kondisi pada if (disebut juga sebagai base casse atau special case) yang tidak pernah terpenuhi.


Materi Lengkap

Silakan baca juga beberapa artikel menarik kami tentang Rekursif, daftar lengkapnya adalah sebagai berikut.


Tonton juga video pilihan dari kami berikut ini

Bagikan ke teman-teman Anda

Contact Us

How to whitelist website on AdBlocker?

How to whitelist website on AdBlocker?

  1. 1 Click on the AdBlock Plus icon on the top right corner of your browser
  2. 2 Click on "Enabled on this site" from the AdBlock Plus option
  3. 3 Refresh the page and start browsing the site
error: Content is protected !!