Pengulangan adalah suatu cara untuk mengulang satu atau sekumpulan perintah sampai mencapai kondisi tertentu.
Dalam Struktur Pengulangan kita harus memperhatikan bagian-bagian berikut ini :
KONDISI : yaitu Ekspresi boolean yang harus dipenuhi untuk melaksanakan pengulangan
BADAN : yaitu satu atau lebih aksi yang akan diulang
Pada dasarnya ada 3 jenis pengulangan, yaitu :
1. WHILE … DO
2. REPEAT ... UNTIL
3. FOR … DO
1. WHILE … DO
- Perulangan Tidak Tentu
- Digunakan untuk mengulang statemen selama kondisi masih bernilai Benar
- Bentuknya :
WHILE kondisi DO
AKSI
ENDWHILE
- Diagram alirnya :
- Contoh :
Procedure TForm1.BtUlangClick(Sender: TObject);
Var
i : real;
BEGIN
MmUlang.Clear;
i:=0;
while i<10 do
begin
i:=i+0.5;
MmUlang.Lines.Add(FloatToStr(i));
end;
end;
2. REPEAT ... UNTIL
- Perulangan Tidak Tentu
- Digunakan untuk mengulang statemen selama kondisi masih bernilai Salah
- Bentuknya :
REPEAT AKSI UNTIL
AKSI
kondisi
- Diagram alirnya :
- Contoh :
Procedure TForm1.BtUlangClick(Sender: TObject);
Var
i : real;
BEGIN
MmUlang.Clear;
i:=0;
repeat
i:=i+0.5;
MmUlang.Lines.Add(FloatToStr(i));
until i=10;
end;
3. FOR … DO
- Perulangan Tertentu
- Digunakan untuk mengulang statemen sebanyak yang ditentukan
- Bentuknya :
Untuk FOR ... TO .. DO FOR nilai_awal TO
nilai_akhir DO
AKSI
ENDFOR
Contoh :
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i:integer;
c:char;
Begin
MmUlang.Clear;
for i:=1 to 10 do
MmUlang.Lines.Add(IntToStr(i));
for c:='A' to 'Z' do
MmUlang.Lines.Add(c);
end;
Untuk FOR ... DOWNTO .. DO FOR nilai_awal TO
nilai_akhir DO
AKSI
ENDFOR
Contoh :
Procedure TForm1.BtUlangClick(Sender: TObject);
var
i:integer;
c:char;
Begin
MmUlang.Clear;
for i:=10 downto 1 do
MmUlang.Lines.Add(IntToStr(i));
for c:='Z' downto 'A' do
MmUlang.Lines.Add(c);
end;
LATIHAN PENGULANGAN
Listing Programnya :
procedure TForm1.Button1Click(Sender: TObject);
Var
C,F : Real;
begin
C:= StrToFloat(edC.Text);
F:= 9*C/5+32;
edF.Text:=FloatToStr(F);
MeC.Lines.Add(FloatToStr(C));
MeF.Lines.Add(FloatToStr(F));
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
Var
F : Real;
i : Integer;
begin
i:=0;
While i<= 100 Do
Begin
F:= 9*i/5+32;
edFu.Text:=FloatToStr(F);
edCu.Text:=FloatToStr(i);
MeCu.Lines.Add(FloatToStr(i));
MeFu.Lines.Add(FloatToStr(F));
i:=i+10;
End;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
Var
F : Real;
i : Integer;
begin
i:=0;
Repeat
Begin
F:= 9*i/5+32;
Edit2.Text:=FloatToStr(F);
Edit1.Text:=FloatToStr(i);
Memo1.Lines.Add(FloatToStr(i));
Memo2.Lines.Add(FloatToStr(F));
i:=i+10;
End;
Until i> 100;
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
Var
F : Real;
i : Integer;
begin
For i:=0 To 10 Do
Begin
F:= 9*10*i/5+32;
Edit3.Text:=FloatToStr(i*10);
Edit4.Text:=FloatToStr(F);
Memo3.Lines.Add(FloatToStr(i*10));
Memo4.Lines.Add(FloatToStr(F));
End
end;

Listing Programnya :
procedure TForm1.Button1Click(Sender: TObject);
Var
t,Vt : Real;
begin
t:= StrToFloat(edC.Text);
Vt:= 10+10*t;
edF.Text:=FloatToStr(Vt);
MeC.Lines.Add(FloatToStr(t));
MeF.Lines.Add(FloatToStr(Vt));
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
Var
Vt : Real;
i : Integer;
begin
i:=0;
While i<= 100 Do
Begin
Vt:= 10+10*i;
edFu.Text:=FloatToStr(Vt);
edCu.Text:=FloatToStr(i);
MeCu.Lines.Add(FloatToStr(i));
MeFu.Lines.Add(FloatToStr(Vt));
i:=i+10;
End;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
Var
Vt : Real;
i : Integer;
begin
i:=0;
Repeat
Begin
Vt:= 10+10*i;
Edit2.Text:=FloatToStr(Vt);
Edit1.Text:=FloatToStr(i);
Memo1.Lines.Add(FloatToStr(i));
Memo2.Lines.Add(FloatToStr(Vt));
i:=i+10;
End;
Until i> 100;
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
Var
Vt : Real;
i : Integer;
begin
For i:=0 To 10 Do
Begin
Vt:= 10+10*i;
Edit3.Text:=FloatToStr(i*10);
Edit4.Text:=FloatToStr(Vt);
Memo3.Lines.Add(FloatToStr(i*10));
Memo4.Lines.Add(FloatToStr(Vt));
End
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
Var
Vt : Real;
i : Integer;
begin
For i:=10 downTo 0 Do
Begin
Vt:= 10+10*i;
Edit5.Text:=FloatToStr(i*10);
Edit6.Text:=FloatToStr(Vt);
Memo5.Lines.Add(FloatToStr(i*10));
Memo6.Lines.Add(FloatToStr(Vt));
End
End;