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














PROCEDUR DAN FUNCTION

Mencari Luas Alas dan Volume Balok menggunakan Procedur dan Function
Dibawah ini interface program yang akan saya buat :


Cara membuatnya sebagai berikut :

1.   
Buka program delphi 7
2.  Buatlah interface seperti gambar dibawah ini :
3.    Ubahlah property dari object inspector
·         Form1 Namenya diubah “Ali_2b”
·         Label1 Captionnya diubah “Menghitung Volume dan Luas Alas Balok”
·         Label2 Captionnya diubah “Panjang”
·         Label3 Captionnya diubah “Lebar”
·         Label4 Captionnya diubah “Tinggi”
·         Label5 Captionnya diubah “Luas Alas Balok”
·         Label6 Captionnya diubah “Volume Balok”
·         Edit1 Textnya dikosongkan
·         Edit2 Textnya dikosongkan
·         Edit3 Textnya dikosongkan
·         Edit4 Textnya dikosongkan
·         Edit5 Textnya dikosongkan
·         Button1 Captionnya diubah “PROSES”
·         Button2 Captionnya diubah “RESET”
·         Button3 Captionnya diubah “CLOSE”
4. Buatlah Listing programnya

a.   

Buatlah fungsi Balok dan Prosedur Reset










public
    { Public declarations }
    Function VBalok(Panjang,Lebar,Tinggi:TEdit;out Luas:integer):String;
    procedure reset;
  end;
var
  Ali_2b: TAli_2b;
implementation
{$R *.dfm}
procedure TAli_2b.reset;
var i:Byte; Komponen:TComponent;
begin
for i:=0 to ComponentCount-1 do
begin
  Komponen:=Components[i];
  if Komponen.InheritsFrom(TEdit)then
  begin
    TEdit (Komponen).Clear;
    if TEdit (Komponen).TabOrder=0 then
    begin
      TEdit(Komponen).SetFocus
      end;
    end;
  end;
end;
Function TAli_2b.VBalok(Panjang,Lebar,Tinggi:TEdit;out Luas:integer):string;
var P,L,T, Vol:integer;
begin
  P:=StrToInt(Panjang.Text);
  L:=StrToInt(Lebar.Text);
  T:=StrToInt(Tinggi.Text);
  Luas:=P*L;
  Vol:=Luas*T;
  Result:=IntToStr(Vol)+ ' cm3';
  end;
b.    Double Klik Button “PROSES” Lalu ketik listing programnya
procedure TAli_2b.Button1Click(Sender: TObject);
var
LBalok:integer;
begin
  Edit5.Text:= VBalok(Edit1,Edit2,Edit3,LBalok);
  Edit4.Text:=IntToStr(LBalok)+' cm2';
  end;
c.    Double Klik Button “RESET”, Ketik Listing programnya
procedure TAli_2b.Button2Click(Sender: TObject);
begin
  reset
end;
d.    Double Klik Button “CLOSE”, Ketik Listing programnya
procedure TAli_2b.Button3Click(Sender: TObject);
begin
close;
end;
end.
5.    Jalankan Programnya dengan menekan f9 ( Running )
Jika tidak ada kesalahan maka akan tampil seperti pada gambar, semisal saya coba masukkan :
Panjang : 14, Lebar : 6, Tinggi : 4 maka
Luas Alas Balok : 84 cm2 dan Volume Balok : 336 cm3





PROGRAM INPUT DATA DENGAN ARRAY



Program Input Data Dengan Array
                  Pada kesempatan kali ini saya akan membuat program sederhana input data peserta didik baru SMK AL HIDAYAH WONOREJO dengan Array menggunakan DELPHI 7
Tampilan Program yang akan saya buat : 
 


Gambar 1.1
 

   Cara membuat program sederhana diatas diatas sebagai berikut :
1.    Buka program Delphi 7
2.    Buatlah Interface program yang akan di buat seperti gambar dibawah ini
 

Gambar 1.2
1.    Ubah properti dari object inspector
·         “Form1” Captionnya diubah “Ali_2b”
·         “Label1” Captionnya diubah “Data Nama Peserta Didik baru SMK AL Hidayah Wonorejo”
·         “Label2” Captionnya diubah “Jumlah Data”
·         “Button1” Captionnya diubah “Input”
·         “Button2” Captionnya diubah “Clear”
·         “Button 3” Captionnya diubah “Close”
·         “Edit1” Textnya “dikosongkan”
·         “Listbox1” Namenya diubah “lbdata”
2.    Buatlah Kode Programnya
a.    Double Klik Button Input
Lalu ketik listing program seperti dibawah ini :
   
Gambar 1.3

procedure TAli_2b.Button1Click(Sender: TObject);
var i,a: integer;
nama1, nama2 : array [1..5] of string;
s : string;
begin
      s:=inputbox('input data','masukkan jumlah data :','0');
for i:= 1 to strtoint (s) do
begin
nama1[i]:=inputbox('data ke:'+ inttostr(i),'nama awal','');
nama2[i]:=inputbox('data ke:'+ inttostr(i),'nama belakang','');
lbdata.Items.add (nama1[i]+' '+nama2[i]);
edit1.Text := inttostr (lbdata.items.count);
end;
end;

a.    Double Klik Button Clear
Ketik Listing programnya
Gambar 1.4
procedure TAli_2b.Button2Click(Sender: TObject);
begin
lbdata.Clear;
edit1.Text:='';
end;

b.    Double Klik Button Close
Lalu ketik programnnya
Gambar 1.5
procedure TAli_2b.button3Click(Sender: TObject);
begin
CLOSE;
end;
 
1.    Menjalankan program tekan F9
a.    Klik Button Input
 


     b.    Lalu masukkan Jumlah Data yang akan dimasukkan, Semisal 3 Enter  
 

     c.    Masukkan Nama Awal dan nama Akhir peserta, Enter 

Lanjutkan pada data ke:2 dan ke:3, maka akan tampil seperti berikut :
   
    d.    Klik Clear untuk membersihkan data dan klik Close untuk menutup program