Senin, 29 Desember 2014

CONTOH ALGORITMA SHORTING DALAM BAHASA PASCAL


Sorting atau pengurutan data adalah proses untuk menyusun kumpulan data yang seragam menjadi susunan tertentu. Kumpulan data diurutkan secara Ascending (Urut Menaik), yaitu dari data yang nilainya secara Descending (Urut Menurun), yaitu dari data yang nilainya paling besar sampai data yang nilainya paling kecil.

A. Metode – metode Sorting :

a) Bubble Sort

Pengurutan model ini mengambil ide dari gelembung air, yaitu mengapungkan elemen yang bernilai kecil dari bawah ke atas. Proses pengapungan dilakukan dengan pertukaran elemen-elemen tabel.

Apabila kita menginginkan array terurut menaik, maka elemen array yang berharga paling kecil “diapungkan” artinya diangkat ke “atas” (atau ke ujung kiri array) melalui proses pretukaran. Proses pengapungkan ini dilakukan sebanyak n-1 langkah (satu langkah disebut satu kali pass) dengan n adalah ukuran array.



program arh_bsort_menaik;
uses crt;
var i,n,j : integer;
a: array [1..100] of integer;

procedure buble;
var z: integer;
     begin
          for i:= 1 to n-1 do
          begin
                  for j:= n downto i+1 do
                     begin
                             if a[j] < a[j-1] then
                              begin
                                      z:= a[j];
                                      a[j]:= a[j-1];
                                      a[j-1]:=z;
                               end;
                      end;
           end;
     end;

begin
write('masukkan banyak larik (maks 100) : '); readln(n);
for i:= 1 to n do
       begin
            write('A[',i,'] : '); readln(a[i]);
       end;
         buble;
 write('data setelah diurutkan : ');
  for j:=1 to n do
                  write (a[j],' ');
 end.

b) Insertion sort

   Pengurutan model ini dengan membuat cara menyisipkan program semacam algoritma pascalInsertion Urutkan sedikit lebih efisien dibandingkan algoritma pengurutan Bubble Sort. Seperti namanya menyiratkan, yang memasukkan algoritma insertion sort item unsorted dalam daftar item yang sudah diurutkan. Hal ini membuat Anda berpikir tentang penggunaan dua array terpisah - satu unsorted dan yang lainnya disortir. Namun, untuk menghemat ruang satu menggunakan array yang sama dan menggunakan pointer untuk memisahkan unsur-unsur diurutkan dan disortir dari daftar. Waktu menyortir Kompleksitas Insertion Sort adalah O (n2). Meskipun hal ini persis sama untuk Bubble Sort, algoritma Insertion Sort adalah dua kali lebih efisien, namun tidak efisien untuk daftar besar.
CONTOH programnya:
uses crt;

var
jmldata,i,j:integer;
data,x:array [1..100] of integer;

procedure asc_insert;
var temp:integer;
begin
For i := 2 to jmldata do
Begin
Temp :=data[i];
j := i-1;
while (data[j] > temp) and (j>0) do
begin
data[j+1] := data[j];
dec(j);
end;
data[j+1]:=temp;
end;
writeln('data yang telah di urut');
for i:=1 to jmldata do
    begin
         write(data[i],'  ');
    end;
     readln;

end;
begin
clrscr;
write('masukkan berapa angka yang akan di urut: '); readln(jmldata);
                  for i:=1 to jmldata do
                  begin
                       write('masukkan angka ke-',i,':'); readln(data[i]);
                  end;
                       asc_insert;

readln;
end;



0 komentar:

Posting Komentar