Minggu, 21 Juni 2015

Metode Rekursi Dalam Pengurutan Data

Rekursif merupakan alat/cara untuk memecahkan masalah dalam suatu fungsi atau procedure yang memanggil dirinya sendiri.
Berikut saya memberikan contoh dari rekursi dalam mengurutkan data dalam bentuk prosedure.
Tulislah scrip di bawah ini pada consule aplication.

SysUtils;
  type
    tipe_larik = string[20];
    larik_urut = array [1..1000] of tipe_larik;
    procedure quicksort(var a : larik_urut; bawah, atas:word);
      var i,j:Word;
        sementara :tipe_larik;
          Begin
            While atas > bawah do
            Begin
              i := bawah;
              j := atas;
              sementara:= a[bawah];
              {Memecah Larik Menjadi dua Bagian}
                while i<j do
                  Begin
                    While a[j]>sementara do
                      j:=j-1;
                      a[i]:=a[j];
                        while (i<j) And (a[i] <= sementara) do
                          i:=i+1;
                          a[j]:=a[i];
                  end;
                    a[i]:= sementara;
                    {Urutkan Rekursi}
                    quicksort(a,bawah,i-1);
                    bawah:=i+1;
              end;
          end;
            var
              nama:larik_urut;
              b,i:Word;
                Begin
                  writeln('NAMA : MUNAWIR');
                  writeln('=================================================');
                  writeln('                PENGURUTAN DATA                  ');
                  writeln('=================================================');
                  writeln('Berapa Banyak Data Anda yang Akan Di Urutkan...? '); Readln(b);
                  Writeln;
                  writeln('Masukkan Data Anda : ');
                    for i:=1 to b do
                      Begin
                        write('Data Ke ',i,'?'); Readln(nama[i]);
                      end;
                      {Urutkan dengan Procedure Quicksort}
                      quicksort(nama,1,b);
                      {Tampilan data yang di urutkan}
                      Writeln;
                      Writeln('Data yang Telah di urutkan : ');
                        for i:= 1 to b do
                          Writeln(nama[i]);
                          Readln;

end.


Setelah itu klik run untuk menjalankan.

0 komentar:

Posting Komentar