Pemrosesan Arsip Beruntun dengan Pascal
16 January 2013
Cara mencari r tabel, t tabel dan f tabel
23 January 2013

Algoritma Rekursif dengan Pascal

Definisi Rekursif

Menurut Niklaus Wirth definisi rekursif:

“An object is said be recursive if it partially consist of is defines in terms of itself”

Rekursif disusun oleh dua bagian:

1.Basis

Berisi kasus yang terdefinisi eksplisit, bagiani ini yang menghentikan rekursif.

2.Rekurens

Mendefinisikan objek dalam terminologi dirinya sendiri.

Contoh Algoritma Fungsi Rekursif

Program Faktorial_Rasid;

Bil : integer;

function Faktorial(n:integer) : integer;

begin

 if n=0 then

   Faktorial ç1

else

    Faktorial ç n * Faktorial(n-1);

 end;

 BEGIN

readln(Bil);

 

Write(‘Faktorial dari ‘, Bil, ‘ adalah ‘,Faktorial(Bil));

END.

 

Rekursif dengan List Berkait

Link berkait / linked list adalah sekumpulan elemen (boleh kosong) yang setiap elemennya terdiri dari 2 bagian:

  1. bagian data (info)
  2. bagian alamat (next)

 

Kapan Tidak Menggunakan Rekursif

Ada 2 alasan kita harus mengubah algoritma rekursif menjadi algoritma iteratif:

1.Bahasa pemrograman tidak mendukung. FORTRAN tidak mendukung.

2.Dapat terjadi rekursif tidak mangkus, memiliki kerumitan yang tidak perlu atau terlalu lambat.

Contoh 2 Menara Hanoi

 Program Hanoi_Rasid;

uses wincrt;

 procedure MenaraHanoi (jumlah : integer;

sumber, tujuan, bantuan : char;

var langkah : integer);

begin

if jumlah = 1 then

   begin

   langkah := langkah + 1;

   write(‘Langkah : ‘,langkah);

   writeln(‘ Pindahkan Piringan 1 dari menara ‘,sumber,’ ke menara ‘, tujuan);

   end

 else

    begin

    (*Pindahkan N-1 piringn dari menara A ke B

   menggunakan menara C sebagai menara bantuan

   emerer.com*)

   MenaraHanoi(jumlah-1,sumber,bantuan,tujuan,langkah);

   langkah :=langkah + 1;

   write(‘Langkah : ‘,langkah);

   write(‘ Pindahkan Piringan ‘,jumlah);

   writeln(‘ dari menara ‘,sumber ,’ ke menara ‘,tujuan);

 

   (*Pindahakan N-1 piringan dari menara B ke C

   menggunakan menara A sebagai sebagai menara bantuan*)

   MenaraHanoi(jumlah-1,bantuan,tujuan,sumber,langkah);

   end;

end;

var

jumlah, langkah : integer;

sumber,bantuan, tujuan : char;

 

begin

write(‘Masukkan Jumlah Piringan : ‘); readln(jumlah);

langkah := 0;

sumber := ‘A’; bantuan := ‘B’; tujuan := ‘C’;

MenaraHanoi(jumlah,sumber,tujuan,bantuan,langkah);

end.

 

 

Daftar Pustaka:

Munir, Rinaldi. 2007Algoritma dan pemrograman dalam Bahasa Pascal dan C, Penerbit informatika. Bandung.

Muhammat Rasid Ridho
Muhammat Rasid Ridho
Software Developer yang Suka Jalan jalan, Belajar Jaringan dan Berbagi Cerita. Instagram: muhammat.rasid.ridho Jangan lupa tulis komentar di bawah ini ya teman teman ... !

Leave a Reply

Your email address will not be published.