Mengenai Saya

Selasa, 21 Oktober 2008

Quick Sort

Mengajarkan kepada programmer pemula tentang pengurutan data dengan metode
spasi

Jika kita membuat program aplikasi yang berhubungan dengan data, maka kita sering kali harus melakukan proses pengurutan data. Pengurutan data merupakan suatu proses yang digunakan untuk mendapatkan nilai tertinggi atau terendah.
Pembahasan kali ini diberikan dengan materi yang sangat sederhana. Tujuannya adalah agar mudah dipahami dan dimengerti oleh programmer pemula. Kemudian diharapkan setelah anda membaca artikel ini dan mencobanya secara langsung anda bisa membuat program aplikasi lain yang lebih kompleks.
Untuk menambah pemantapan akan materi ini, silahkan anda baca link terkait dari artikel ini, semoga dengan semakin anda banyak wawasan secara tidak langsung akan membuat anda semakin paham akan penggunaan sorting secara tepat.
spasi
Struktur pengurutan :
spasi
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;
spasi
Silahkan anda ikuti langkah - langkah berikut ini dengan pelan - pelan agar bisa berjalan dengan lancar sesuai dengan petunjuk yang sudah diberikan.
spasi
Buat program aplikasi baru.
 
Tambahkan beberapa object kedalam Form
 
ListBox1: TListBox;
ListBox2: TListBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
Button3: TButton;
spasi
Atur desainnya seperti berikut ditampilkan pada gambar form dibawah ini
 

 
Silahkan anda buat fungsi QuickSort. Untuk lebih jelasnya silahkan lihat potongan kode program dibawah ini.
 


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 doInc(Lo) ;
while A[Hi] > Pivot doDec(Hi) ;
if Lo <= Hi then
begin
T := A[Lo];
A[Lo] := A[Hi];
A[Hi] := T;
Inc(Lo) ;
Dec(Hi) ;
end;
untilLo > Hi;
if Hi > iLo then QuickSort(A, iLo, Hi) ;
if Lo < iHi then QuickSort(A, Lo, iHi) ;
end;


 
Deklarasikan array data pada bagian Private. Untuk lebih jelasnya silahkan anda lihat potongan kode program dibawah ini.
 


private
{ Private declarations }
Data : array of integer;


 
Silahkan anda klik 2x tombol Tambah. Setelah itu anda lanjutkan dengan menuliskan kode program didalam event OnClick seperti terlihat pada potongan kode program dibawah ini.
 


procedure TForm1.Button1Click(Sender: TObject);
var
nilai : Integer;
begin
// Validasi inputan yang akan ditambahkan
if TryStrToInt(Edit1.Text,Nilai) then
ListBox1.Items.Add(IntToStr(nilai));
end;


 
Silahkan anda klik 2x tombol Proses. Setelah itu anda lanjutkan dengan menuliskan kode program didalam event OnClick seperti terlihat pada potongan kode program dibawah ini.
spasi


procedure TForm1.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;


spasi
Silahkan anda compile. Tekan tombol Ctrl + F9.
 
Tunggu beberapa saat… ( Sedang di cek kode programnya )
Apabila tidak muncul pesan error, berarti program yang anda buat telah berhasil dan silahkan anda tekan tombol F9 untuk menjalankan program aplikasinya.
spasi
Silahkan anda tekan tombol Proses
 

 
Program sudah selesai anda buat. Sekarang silahkan anda tekan tombol Keluar
Semoga artikel ini bisa bermanfaat. Silahkan anda berikan informasi ini kepada teman - teman anda yang belum tahu.
Mari kita wujudkan kemajuan IT Indonesia bersama dengan teman - teman yang lain dengan Delphi sebagai media pemupuk kebersamaan.
spasi
spasi
Sorting - Quick Sort
Silahkan anda download link diatas untuk mendapatkan contoh program aplikasi secara lengkap.
Ada beberapa masukan dan keluhan dari teman - teman, bahwa ada beberapa program contoh tidak bisa dijalankan dari delphi 7. Hal ini dikarenakan program contoh dibuat dengan menggunakan Delphi 2007 for win32.
Apabila anda menggunakan D7, sebaiknya anda mengikuti pandauan dari langkah - langkah yang sudah diberikan.
Atas perhatiannya, saya mengucapkan banyak terimakasih.

Tidak ada komentar: