interface
uses
const
maxelemen =10;
type
TMahasiswa = record
Npm : String;
end;
TAntrian = record
end;
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
StringGrid1: TStringGrid;
Labelinfo: TLabel;
Button5: TButton;
procedure tampilkandata;
private
{ Private declarations }
Angka:array[1..maxelemen]of string ;
Antrian : TAntrian;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
Tmp : Integer;
begin
H := 1;
H := 3 * H + 1;
while H > 0 do
begin
begin
Tmp := StrToInt(Mahasiswa[Luar].Npm);
Temp1 := Mahasiswa[Luar].Nama;
Temp2 := Mahasiswa[Luar].prodi;
Dalam := Luar;
begin
Mahasiswa[Dalam].Npm := Mahasiswa[Dalam-H].Npm;
Dalam := Dalam - H;
end;
Mahasiswa[Dalam].Npm := IntToStr(Tmp);
Mahasiswa[Dalam].Nama := Temp1;
Mahasiswa[Dalam].Prodi := Temp2;
end;
H := (H - 1) div 3;
end;
tampilkandata;
end;
var
hasil : string;
begin
Hasil := Hasil + 'Data : '+ Edit2.Text +' Ada Pada Posisi : ' + IntToStr(Find(strtoint(Edit2.Text))) + #13#10;
LabelInfo.Caption := Hasil;
end;
var
begin
Bawah := 1;
Atas := Antrian.Belakang;
begin
Bawah := Tengah + 1
else
else
begin //Ketemu
Posisi := Tengah;
Bawah := Atas + 1;
end;
end;
Find := Posisi;
end;
begin
Close;
end;
begin
begin
Exit;
end;
Insert(Edit2.Text,Edit1.Text,Edit3.Text);
TampilkanData;
end;
begin
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
end;
begin
StringGrid1.Cells[0,0] := 'NPM';
StringGrid1.Cells[1,0] := 'Nama';
StringGrid1.Cells[2,0] := 'Prodi';
end;
var
PosisiBelakang : 1..MaxElemen;
begin
PosisiBelakang := 1
else
PosisiBelakang := Antrian.Belakang + 1;
ShowMessage('Antrian Penuh')
else
begin
Antrian.Belakang := PosisiBelakang;
Mahasiswa[Antrian.Belakang].Nama := y;
Mahasiswa[Antrian.Belakang].Prodi := z;
end;
end;
procedure TForm1.tampilkanData;
var
begin
JumData := 0
else
StringGrid1.RowCount := JumData+1;
for I := 0 to MaxElemen do
StringGrid1.Cells[0,I] := ''
else
begin
Nomor := 1;
begin
StringGrid1.Cells[0,Nomor] := Mahasiswa[I].Npm;
StringGrid1.Cells[1,Nomor] := Mahasiswa[I].Nama;
StringGrid1.Cells[2,Nomor] := Mahasiswa[I].Prodi;
Nomor := Nomor + 1
end
end
else
begin
Nomor := 1;
begin
StringGrid1.Cells[0,Nomor] := Antrian.Data[I];
Nomor := Nomor + 1
end;
for I := 1 to Antrian.Belakang do
begin
StringGrid1.Cells[0,Nomor] := Antrian.Data[I];
Nomor := Nomor + 1
end;
end;
end;
end.