Saturday, June 21, 2014

QUICK SORT ( PENGURUTAN DATA )

PENGURUTAN DATA / QUICKSORT
Berikut ini  saya akan menjelaskan membuat program pengurutan data (Quick Sort ).
Interface / Tampilan yang akan dibuat seperti pada gambar dibawah ini :
Cara membuatnya :
1.    Buka program Delphi 7
2.    Buatlah interface seperti gambar sesuai Komponennya
3.    Ubahlah properti dari object inspector
a.    “Form1” Name diubah “Ali_2b”
b.    “Label1” Captionnya diubah “Pengurutan Data/QuickSort”
c.    “Label2” Captionnya diubah “ Masukkan Angka”
d.    “Label3” Captionnya diubah “ Data”
e.    “Label4” Captionnya diubah “Hasil”
f.      “Edit1” Textnya “dikosongkan”
g.    “Button1” Captionnya diubah “ Tambahkan”
h.    “Button2” Captionnya diubah “ Proses”
i.      “Button3” Captionnya diubah “ Close”
j.     “Button4” Captionnya diubah “ Clear”
k.    “ListBox1” tetap ( Tidak usah diubah )
l.    “ListBox2” tetap ( Tidak usah diubah )
4.    Buatlah Listing Programnya
a.    Tambahkan Listing program yang ada tanda kotak merahnya pada program seperti dibawah ini :
  private
    { Private declarations }
    Data : array of integer;
  public
    { Public declarations }
  end;
var
  Ali_2b: TAli_2b;

implementation

{$R *.dfm}
procedure QuickSort(var A: array of integer; iLo, iHi:integer);
var
  Lo, Hi, Pivot, T: integer;
begin
  Lo := iLo;
  Hi := iHi;
  Pivot := A[(Lo+Hi) div 2];
  repeat
    while A [Lo] < Pivot do Inc(Lo);
    while A [Hi] > Pivot do Dec(Hi);
    if Lo <=Hi then
begin
  T:= A[Lo];
  A[Lo]:= A[Hi];
  A[Hi]:= T;
  Inc(Lo);
  Dec(Hi);
end;
until Lo > Hi;
  if Hi > iLo then QuickSort(A, iLo, Hi);
  if Lo < iHi then QuickSort(A, Lo, iHi);
end;
b.    Double Klik pada Button “Tambahkan”, Lalu ketik listing programnya
procedure TAli_2b.Button1Click(Sender: TObject);
var
  nilai:integer;
begin
//menambahkan nilai ke listbox
if TryStrToInt(edit1.Text,Nilai)then
ListBox1.Items.Add(IntToStr(Nilai));
//membersihkan komponen inputan nilai
edit1.Clear;
//focus kursor keinputan nilai
edit1.SetFocus;
end;
c.    Double Klik pada Button “Proses”, Lalu ketik Listing programnya
procedure TAli_2b.Button2Click(Sender: TObject);
var
  indek:word;
begin
//menentukan panjang array
SetLength(Data,ListBox1.Items.Count);
//pemasukan nilai ke array
for indek:= 0 to Listbox1.Items.Count-1 do
Data[indek]:=StrToInt(ListBox1.Items[indek]);
//proses pengurutan / sorting
QuickSort(data,Low(Data), High(Data));
//kosongkan hasil
Listbox2.Items.Clear;
//memasukkan nilai hasil
for indek := 0 to ListBox1.Items.Count - 1 do
ListBox2.Items.Add(IntToStr(data[indek]));
end;
d.    Double Klik Button “Clear”
procedure TAli_2b.Button4Click(Sender: TObject);
begin
ListBox1.Clear;
ListBox2.Clear;
end;
   e.    Double Button “Keluar”
procedure TAli_2b.Button3Click(Sender: TObject);
begin
close;
end
end.

5.    Running Program dengan menekan F9
             a. Masukkan angka berapa saja yang akan diurutkan semisal: 7,6,5,4,3,2,1,10,9,11,12,13,14,15
lalu tekan tombol proses maka data tersebut akan terurut .
      b.  Tekan Button “Clear” untuk membersihkan data dan Klik Button “Keluar” untuk menutup program














No comments:

Post a Comment