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 .
lalu tekan tombol proses maka data tersebut akan terurut .
b. Tekan
Button “Clear” untuk membersihkan data dan Klik Button “Keluar” untuk menutup
program



















