Nama
: Yopi Lala
NIM
Modul
: V (Lima)
BAB I
Tujuan dan Landasan Teori
A. Tujuan
Mahasiswa lebih mahir menggunakan perintah dasar pemrograman Delphi.
B. Landasan Teori
Array itu sebuah tipe data yang dapat diisi koleksi beberapa data dan mempunyai
index untuk masing-masing Elemen array dapat diakses dengan menggunakan indeks
yang berada pada kurung kotak([ ]).
Larik atau array juga bias diartikan sebagai kumpulan dari nilai-nilai data bertipe
sama dalam urutan tertentu yang menggunakan sebuah nama yang sama. Nilai-nilai
data di suatu larik disebut dengan elemen-elemen larik. Letak urutan dari suatu
elemen larik ditunjukkan oleh suatu subscript atau suatu indeks larik.
Larik dapat berdimensi satu, dua, tiga atau lebih. Larik dimensi satu (onedimensional array) mewakili bentuk suatu vektor. Larik dimensi dua (twodimensional array) mewakili bentuk dari suatu matrik atau tabel. Larik dimensi tiga
(three-dimensional array) mewakili bentuk suatu ruang.
Data Delphi menyediakan beberapa tipe data array, yaitu static array, dynamic
array, serta open array.
1.Static Array
Statis array adalah tipe data array yang sudah tetap dan tidak bisa di rubahrubah ukurannya, array tipe statis bisa berupa satu dimensi atau multidimensi.
2.DynamicArray
Array dinamis tidak mempunyai permintaan
penyimpanan di dalam
SetLength(dynArray, 5);
3.Open Array
Open Array mengindikasikan type parameter namun tidak mengetahui berapa
banyak elemen yang akan disimpan ke array tersebut.
Berikut contoh dari definisi tersebut
Function Sum (const A : array of Integer) : Integer;
Var
I: Integer;
Begin
Result := 0;
For I := Low (A) to High(A) do
Result := Result + A[I];
End;
Bentuk umum definisi array adalah :
<NamaArray>=array[Tipe Indeks] of <Tipe Dasar>
<NamaArray>=array[Tipe Indeks, ] of <Tipe Dasar>
<NamaArray>=array of <Tipe Dasar>
BAB II
Langkah Kerja
Program 1 :
1. Memilih menu file dan klik new Form
2. Pada Form 2 tanamkan control GroupBox (2buah), label (6 buah), Edit (3
buah), Button (3 Buah), dan stringGrid (3 buah) pada jendela tool Additional.
3. Mengatur properti-properti dari masing-masing control sesuai dengan table
sebagai berikut :
Komponen
Form2
GroupBox 1
GroupBox 2
StringGrid 1
StringGrid 2
StringGrid 3
Label 1
Label 2
Label 3
Label 4
Label 5
Properti
Nama
Caption
Borderstyle
Name
Caption
Nilai
Frmarray Matrik
Menjumlahkan Matriks
bsDialog
GroupBox 1
Input Jumlah Baris dan kolom
Name
Caption
Name
FixedRow
FixedColl
Name
FixedRow
FixedColl
Name
FixedRow
FixedColl
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
matriks
GroupBox2
Input Elemen Matriks
StringGrid 1
0
0
StringGrid 2
0
0
StringGrid 3
0
0
Label 1
Jumlah Baris
Label 2
Jumlah Kolom
LblInput
Elemen
Label 4
MATRIK A
Label 5
MATRIK B
Label 6
Edit 1
Edit 2
Edit 3
Button 1
Button 2
Buton 3
Name
Caption
Name
Name
Name
Name
Caption
Name
Caption
Name
Caption
Label 6
MATRIK C
EdBaris
EdKolom
EdMat
BTJumlah
OK
BTJumlah
Matrik A+B
BTBtInput
OK
TFrmArray_Matrik.BtJumlahClick(Sender:
Status:=True;
StringGrid1.RowCount:=strtoint(Edbaris.Text);
StringGrid1.ColCount:=strtoint(EdKolom.Text);
StringGrid2.RowCount:=strtoint(Edbaris.Text);
StringGrid2.ColCount:=strtoint(EdKolom.Text);
StringGrid3.RowCount:=strtoint(Edbaris.Text);
StringGrid3.ColCount:=strtoint(EdKolom.Text);
EdBaris.Enabled:=false;
EdKolom.Enabled:=false;
GroupBox2.Enabled:=true;
End;
ShowMesagge(Elemen
sudah
matrik A dan B);
GroupBox2.Enabled:=false;
End;
I:=0;
J:=0;
Status:=false;
End;
habis
Isi
Jumlahkan
TFrmArray_Matrik.BtTambahClick(Sender:
TObject);
Var EMaA,EMatB:Integer;
Begin
For i:=0 to strtoint(EdBaris.Txt)-1 do
For j:=0 to StrToInt(Edkolom.Text)-1 do
Begin
EMaA:=StrToInt(StringGrid1.Cells[i,j]);
EMaB:=StrToInt(StringGrid2.Cells[i,j]);
StringGrid3.Cells[i,j]:=IntToStr(EmaA+EMatB);
End;
End;
Program 2
Buatlah program untuk melakukan perkalian dua buah matrik.
1. Buatlah program untuk mengurutkan N buah bilangan (ascending dan
descending)
BAB III
PEMBAHASAN
Tugas Praktikum :
Project 1
Pada praktikum modul lima ini, kita diminta membuat program untuk melakukan
perkalian dua buah matrik. Dimana untuk membuat desain interface program kita
membutuhkan satu buah form, 4 buah button, 3 buah edit teks, 6 buah label, 2 buah
GroupBox, dan 3 buah StringGrid. Berikut adalah desain yang kita dapatkan :
Setelah kita membuat desain interface seperti pada gambar di atas, sekarang kita
mengatur property-properti dari masing-masing component yang telah kita buat,
sehingga kita akan lebih mudah dalam membuat koding programnya, berikut adalah
masing-masing property dari komponen-komponen pada program di atas :
Form1
GroupBox1
GroupBox2
Label1
Label1
Label3
Label4
Label5
Label6
Edit1
Name
Caption
Caption
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Text
Frm1
Perkalian Matrriks
Input Jumlah Baris dan
Kolom Matriks
Input Elemen Matriks
Lbl1
Jumlah Baris
Lbl2
Jumlah Kolom
Lbl3
Elemen
Lbl4
MATRIK A
Lbl5
MATRIK B
Lbl6
MATRIK C
Ed1
Edit2
Edit3
Button1
Button2
Button3
Button4
StringGrid1
StringGrid2
StringGrid3
Name
Text
Name
Text
Name
Caption
Name
Caption
Name
Caption
Font Style
Name
Caption
Font Style
Name
FixedRows
FixedCols
Name
FixedRows
FixedCols
Name
FixedRows
FixedCols
Ed2
Ed3
Btn1
OK
Btn2
OK
Btn3
MATRIK A * B
Bold
Btn4
Keluar
Bold
MatriksA
0
0
MatriksB
0
0
MatriksAB
0
0
Setelah kita mengatur property dari komponen sesuai dengan table di atas, sekarang
kita akan mengetikan koding dari program yang akan kita buat. Berikut adalah koding
yang kita gunakan untuk membuat operasi perkalian pada matriks.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TFrnArray_Matrik = class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Label1: TLabel;
Label2: TLabel;
EdBaris: TEdit;
EdKolom: TEdit;
lBINPUT: TLabel;
EdMat: TEdit;
BTInput: TButton;
BtJumlah: TButton;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
StringGrid3: TStringGrid;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
BtTambah: TButton;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure BtTAMBAHClick(Sender: TObject);
procedure EdMatChange(Sender: TObject);
procedure BTInputClick(Sender: TObject);
procedure BtJumlahClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
i,j,k,l:integer;
status:boolean;
FrnArray_Matrik: TFrnArray_Matrik;
implementation
{$R *.dfm}
procedure TFrnArray_Matrik.FormCreate(Sender: TObject);
begin
GroupBox2.Enabled:=false;
end;
procedure TFrnArray_Matrik.BtTAMBAHClick(Sender: TObject);
Var EMaA,EMab:integer;
begin
for i:=0 to strtoint(EdBaris.text)-1 do
for j:=0 to strtoint(EdKolom.text)-1 do
begin
EMaA:=Strtoint(StringGrid1.cells[i,j]);
EMaB:=Strtoint(StringGrid2.cells[i,j]);
StringGrid3.cells[i,j]:=Inttostr(EMaA+EMAB);
end
end;
end;
end;
procedure TFrnArray_Matrik.BtJumlahClick(Sender: TObject);
begin
Status:=true;
StringGrid1.RowCount:=strtoint(EdBaris.Text);
StringGrid1.ColCount:=strtoint(EdKolom.Text);
StringGrid2.RowCount:=strtoint(EdBaris.Text);
StringGrid2.ColCount:=strtoint(EdKolom.Text);
StringGrid3.RowCount:=strtoint(EdBaris.Text);
StringGrid3.ColCount:=strtoint(EdKolom.Text);
EdBaris.Enabled:=false;
EdKolom.Enabled:=false;
GroupBox2.Enabled:=true;
end;
procedure TFrnArray_Matrik.Button1Click(Sender: TObject);
begin
application.Terminate;
close;
end;
end.
Berikut adalah sedikit penjelasan dari koding di atas.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TFrnArray_Matrik = class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Label1: TLabel;
Label2: TLabel;
EdBaris: TEdit;
EdKolom: TEdit;
lBINPUT: TLabel;
EdMat: TEdit;
BTInput: TButton;
BtJumlah: TButton;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
StringGrid3: TStringGrid;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
BtTambah: TButton;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure BtTAMBAHClick(Sender: TObject);
procedure EdMatChange(Sender: TObject);
procedure BTInputClick(Sender: TObject);
procedure BtJumlahClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Koding di atas merupakan koding untuk mendesain desain interface dari program
yang akan kita buat dan pengaturan dari component-komponent yang kita butuhkan.
var
i,j,k,l:integer;
status:boolean;
FrnArray_Matrik: TFrnArray_Matrik;
Koding di atas merupakan deklarasi dari variable yang akan kita gunakan
pada program nanti, pada program ini kita menggunakan variable I,j k, l yang bertipe
data integer yang akan di simpan pada variable tersebut adalah data yang berupa
angka bilangan bulat, selain itu maka program error. Selanjutnya status bertipe data
Boolean yang artinya pada status hanya mengenal ya atau tidak dan benar atau salah
jadi tipe data boleean berarti tipe data yang hanya memiliki dua kemungkinan benar
atau salah saja. Sedangkan FrnArray_Matrik bertipe data array atau larik yang artinya
dapat menyimpan data yang tipe datanya berbeda-beda.
procedure TFrnArray_Matrik.BtTAMBAHClick(Sender: TObject);
Var EMaA,EMab:integer;
begin
for i:=0 to strtoint(EdBaris.text)-1 do
for j:=0 to strtoint(EdKolom.text)-1 do
begin
EMaA:=Strtoint(StringGrid1.cells[i,j]);
EMaB:=Strtoint(StringGrid2.cells[i,j]);
StringGrid3.cells[i,j]:=Inttostr(EMaA+EMAB);
end
end;
Procedure di atas di gunakan untuk mengganti label yang akan di tampilkan pada saat
kita menginputkan data ke dalam matriks, label yang muncul adalah berupa kolom
dan baris ke berapa data yang kita input.
procedure TFrnArray_Matrik.BTInputClick(Sender: TObject);
begin
if status=True then
begin
StringGrid1.Cells[i,j]:=EdMat.Text;
groupbox2.Caption:='Input Elemen Matriks A'
end
else if status=false then
begin
StringGrid2.Cells[i,j]:=EdMat.Text;
groupbox2.Caption:='Input Elemen Matriks B'
end;
if(i<>strtoint(EdKolom.Text)-1)
(j<>strtoint(EdBaris.Text)-1) then
begin
if i< strtoint(EdKolom.Text)-1 then
i:=i+1
else if j< strtoint(EdBaris.Text)-1 then
begin
i:=0;
or
j:=j+1 ;
end;
end
else
begin
if status = true then
ShowMessage('Elemen sudah habis isi matrik
berikutnya')
else
begin
ShowMessage('Elemen sudah habis isi jumlahkan
Matriks A dan B');
GroupBox2.Enabled:=false;
end;
i:=0;
j:=0;
status:=false;
end;
end;
Procedure di atas di gunakan untuk menetukan berapa jumlah kolom dan baris
matriks yang akan kita lakukan operasi penjumlahan.
Sedangkan procedure di atas di gunakan untuk keluar dari program, jika kita
mengklik button tersebut dan program akan berakhir.
Sekarang kita masuk pada program selanjutnya, program yang selanjutnya,
adalah program yang di gunakan untuk mengurutkan N buah bilangan secara
ascending dan descending. Berikut adalah tampilan programnya.
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
EdBanyak: TEdit;
EdInput: TEdit;
lbbanyak: TLabel;
LblInput: TLabel;
BtnInput: TButton;
GroupBox1: TGroupBox;
RBAscending: TRadioButton;
RBDescending: TRadioButton;
LBLoop1: TListBox;
LBLoop2: TListBox;
BtnUrut: TButton;
LBloop3: TListBox;
btexit: TButton;
Lbascending: TLabel;
Label3Lbdecending: TLabel;
procedure BtnInputClick(Sender: TObject);
procedure BtnUrutClick(Sender: TObject);
procedure btexitClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
Data : array of integer;
end;
var
Form1: TForm1;
i, j, k, l, n, nilai : integer;
implementation
{$R *.dfm}
procedure QuickSortAsc(var A: array of Integer; iLo, iHi:
Integer) ;
var
Lo, Hi, Pivot, T: Integer;
begin
Lo := iLo;
Hi := iHi;
;
;
iLo, Hi) ;
Lo, iHi) ;
i:=i+1;
LblInput.Caption :='Bilangan ke '+IntToStr(i);
LBLoop1.Items.Add(IntToStr(nilai));
EdInput.Clear;
EdInput.SetFocus;
until i<=n;
if TryStrToInt(EdInput.Text,Nilai) then
Lbloop1.Items.Add(IntToStr(nilai));
if Lbloop1.Items.Count = N then
begin
Btninput.Enabled := True;
BtnInput.Enabled := False;
end else
begin
Btnurut.Enabled := true;
end;
end;
QuickSortDesc(Data,Low(Data),High(Data));
LBLoop3.Items.Clear;
for indek := 0 to LBLoop1.Items.Count - 1 do
LBLoop3.Items.Add(IntToStr(data[indek]))
end;
end;
procedure TForm1.btexitClick(Sender: TObject);
begin
if (application.MessageBox('Anda Yakin Keluar Dari Program
ini ?','Pemberitahuan',Mb_YesNo)=idyes)then
close;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
end.
Berikut adalah sedikit penjelasan dari koding program di atas :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
EdBanyak: TEdit;
EdInput: TEdit;
lbbanyak: TLabel;
LblInput: TLabel;
BtnInput: TButton;
GroupBox1: TGroupBox;
RBAscending: TRadioButton;
RBDescending: TRadioButton;
LBLoop1: TListBox;
LBLoop2: TListBox;
BtnUrut: TButton;
LBloop3: TListBox;
btexit: TButton;
Lbascending: TLabel;
Label3Lbdecending: TLabel;
procedure BtnInputClick(Sender: TObject);
procedure BtnUrutClick(Sender: TObject);
procedure btexitClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
Koding di atas merupakan bagian deklarasi variable dari program yang telah
kita buat. Di mana semua variable di atas bertipe data integer yang artinya tipe data
tersebut hanya menyimpan data berupa angka.
procedure QuickSortAsc(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;
LBLoop1.Items.Add(IntToStr(nilai));
EdInput.Clear;
EdInput.SetFocus;
until i<=n;
if TryStrToInt(EdInput.Text,Nilai) then
Lbloop1.Items.Add(IntToStr(nilai));
if Lbloop1.Items.Count = N then
begin
Btninput.Enabled := True;
BtnInput.Enabled := False;
end else
begin
Btnurut.Enabled := true;
end;
end;
Procedure di atas di gunakan untuk melakukan inputan atau masukan data jika
kita klik tombol input, jumlah data yang dapat di masukan sesuai dengan jumlah
banyak data yang telah kita masukkan.
Procedure di atas di gunakan untuk keluar dari program, di mana sebelum kita
keluar, kita akan di Tanya dulu apakah yakin ingin keluar jika kita klik ya maka
program akan keluar dan selesai dan sebaliknya jika tidak maka kita tidak akan keluar
dari program.
BAB IV
Kesimpulan
Dari praktikum yang telah kita buat, dapat di simpulkan bahwa :
1. Array (larik) merupakan tipe data terstruktur yang dapat menyimpan
sejumlah data yang bertipe sama. Berbeda dengan himpunan, suatu array
dapat menampung data yang jauh lebih banyak dan nilai yang ada pada
array dapat kembar.
2. Setiap elemen array mempunyai indeks, dengan menggunakan indeks ini,
setiap elemen array dapat diakses secara tersendiri.
3. Berdasarkan pengalokasiannya, array dapat dikategorikan sebagai :
array statis, dan
array dinamis.
BAB V
Daftar Pustaka
http://yulianus-putra.blogspot.com/2012/01/larik-atau-array-pada-delphi.html
http://devribudic.blogspot.com/2013/04/array-dalam-delphi.html
http://pemodelan.com/tiga-jenis-array-pada-delphi.html
https://annur24.wordpress.com/2013/12/23/array-pada-delphi/
https://annur24.wordpress.com/2013/12/23/contoh-array-pada-delphikonversitanggal-ke-hari/
(Di akses pada Rabu, 3 Desember 2014 sekitar pukul 17.20 WIB)
BAB VI
Lampiran
Program 1
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TFrnArray_Matrik = class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Label1: TLabel;
Label2: TLabel;
EdBaris: TEdit;
EdKolom: TEdit;
lBINPUT: TLabel;
EdMat: TEdit;
BTInput: TButton;
BtJumlah: TButton;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
StringGrid3: TStringGrid;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
BtTambah: TButton;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure BtTAMBAHClick(Sender: TObject);
procedure EdMatChange(Sender: TObject);
procedure BTInputClick(Sender: TObject);
procedure BtJumlahClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
i,j,k,l:integer;
status:boolean;
FrnArray_Matrik: TFrnArray_Matrik;
implementation
{$R *.dfm}
procedure TFrnArray_Matrik.FormCreate(Sender: TObject);
begin
GroupBox2.Enabled:=false;
end;
procedure TFrnArray_Matrik.BtTAMBAHClick(Sender: TObject);
Var EMaA,EMab:integer;
begin
for i:=0 to strtoint(EdBaris.text)-1 do
for j:=0 to strtoint(EdKolom.text)-1 do
begin
EMaA:=Strtoint(StringGrid1.cells[i,j]);
EMaB:=Strtoint(StringGrid2.cells[i,j]);
StringGrid3.cells[i,j]:=Inttostr(EMaA+EMAB);
end
end;
if(i<>strtoint(EdKolom.Text)-1) or
(j<>strtoint(EdBaris.Text)-1) then
begin
if i< strtoint(EdKolom.Text)-1 then
i:=i+1
else if j< strtoint(EdBaris.Text)-1 then
begin
i:=0;
j:=j+1 ;
end;
end
else
begin
if status = true then
ShowMessage('Elemen sudah habis isi matrik
berikutnya')
else
begin
ShowMessage('Elemen sudah habis isi jumlahkan
Matriks A dan B');
GroupBox2.Enabled:=false;
end;
i:=0;
j:=0;
status:=false;
end;
end;
procedure TFrnArray_Matrik.BtJumlahClick(Sender: TObject);
begin
Status:=true;
StringGrid1.RowCount:=strtoint(EdBaris.Text);
StringGrid1.ColCount:=strtoint(EdKolom.Text);
StringGrid2.RowCount:=strtoint(EdBaris.Text);
StringGrid2.ColCount:=strtoint(EdKolom.Text);
StringGrid3.RowCount:=strtoint(EdBaris.Text);
StringGrid3.ColCount:=strtoint(EdKolom.Text);
EdBaris.Enabled:=false;
EdKolom.Enabled:=false;
GroupBox2.Enabled:=true;
end;
procedure TFrnArray_Matrik.Button1Click(Sender: TObject);
begin
application.Terminate;
close;
end;
end.
Program 2
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
EdBanyak: TEdit;
EdInput: TEdit;
lbbanyak: TLabel;
LblInput: TLabel;
BtnInput: TButton;
GroupBox1: TGroupBox;
RBAscending: TRadioButton;
RBDescending: TRadioButton;
LBLoop1: TListBox;
LBLoop2: TListBox;
BtnUrut: TButton;
LBloop3: TListBox;
btexit: TButton;
Lbascending: TLabel;
Label3Lbdecending: TLabel;
procedure BtnInputClick(Sender: TObject);
procedure BtnUrutClick(Sender: TObject);
procedure btexitClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
Data : array of integer;
end;
var
Form1: TForm1;
i, j, k, l, n, nilai : integer;
implementation
{$R *.dfm}
procedure QuickSortAsc(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 QuickSortAsc(A, iLo, Hi) ;
then
Btninput.Enabled := True;
BtnInput.Enabled := False;
end else
begin
Btnurut.Enabled := true;
end;
end;