Jumat, 15 April 2011

Mengenal Looping Delphi

Dalam bahasa pemrograman apapun pasti dikenal suatu mekanisme looping atau perulangan. Looping disini sangat berguna sekali untuk mengontrol jalannya program, terutama jika ada aktivitas yang berulang-ulang dan bahkan ada suatu kondisi tertentu di dalam looping tersebut. Nah, kali ini kita akan bahas mengenai mekanisme looping apa saja yang terdapat dalam Borland Delphi.
Dalam penulisan program Delphi ada kalanya tidak membutuhkan program yang terlalu panjang ketika hanya terdiri dari pengulangan dari program yang sebelumnya. Proses pengulangan suatu proses dalam batas tertentu tersebut dapat ditulis secara singkat dengan menggunakan looping. Jenis-jenis dari looping dapat dibagi sebagai berikut:
1. for…to..do dan for…downto…do
2. repeat…until
3. while…do
Untuk lebih jelasnya akan dibahas masing – masing dari proses looping tersebut beserta contoh sederhana yang akan memudahkan dalam pengaplikasiannya.
1. for…to…do dan for…down…to
Perulangan for dibagi lagi menjadi 2 jenis yaitu:
a. for…to…do
b. for…downto…do
Keduanya mempunyai fungsi yang sama dengan sintaks program seperti berikut ini.
for variable := nilai_awal to nilai_akhir do pernyataan
for variable := nilai_awal downto nilai_akhir do pernyataan
Looping for bisa digunakan untuk beberapa jenis proses pengulangan yaitu jenis pengulangan integer, pengulangan character dan pengulangan enumeration.
Contoh program:
– Pengulangan pada jenis variabel integer
var
i : integer;
begin
for i:= 1 to 5 do
showmessage (‘nilai i =’ + inttostr(i));
end;

ketika di-run:
nilai i = 1
nilai i = 2
nilai i = 3
nilai i = 4
nilai i = 5
– Pengulangan pada jenis variable character
var
i : char;
begin
for i:= ‘a’ to ‘e’ do
showmessage(‘nilai i =’ + i);
end;

ketika di-run:
nilai i = a
nilai i = b
nilai i = c
nilai i = d
nilai i = e
– Pengulangan pada jenis variable enumeration
var
kota: (surabaya,jakarta,bandung,jogja,sidoarjo);
begin
for kota:= bandung to sidoarjo do
showmessage(‘kota i =’ + inttostr(ord(kota)));
end;

ketika di-run:
kota i = 2
kota i = 3
kota i = 4
Pada enumeration akan diberikan nomor urut (ordinal type) pada masing – masing isi dari kota saat pendeklarasiannya pada bagian var. Nomor urut dimulai dari 0 sampai 4. Nomor urut surabaya adalah 0,nomor urut dari jakarta adalah 1 dan seterusnya. Karena looping dimulai dari bandung yang bernomor urut 2 maka ketika dirun yang pertama kali muncul adalah kota i = 2.
Untuk jenis looping for… downto…do hampir sama hanya saja pengulangan dilakukan secara hitungan turun.
Contoh program:
var
i : char;
begin
for i:= ‘f’ downto ‘c’ do
showmessage(‘nilai i =’ + i);
end;

ketika di-run:
nilai i = f
nilai i = e
nilai i = d
nilai i = c
2. repeat…until
Jenis looping ini digunakan untuk looping dengan sampai dengan batas yang ditentukan setelah pernyataan until. Sintaks dari jenis looping ini dapat dilihat seperti dibawah ini:
repeat pernyataan until syarat
Contoh program:
var
i,a : integer;
begin
i:=1;
repeat
a:=i*5;
showmessage(‘nilai ‘+ inttostr(i)+’ * 5 = ‘+inttostr(a));
inc(i); // inc(i)===> i=i+1
until i > 5;
end;

ketika di-run:
nilai 1 * 5 =5
nilai 2 * 5 =10
nilai 3 * 5 =15
nilai 4 * 5 =20
nilai 5 * 5 =25
Pada jenis looping repeat, nilai i diberi nilai awal dahulu sebelum masuk ke looping. Untuk menaikkan nilai i diperlukan pernyataan tambahan inc(i) atau i = i + 1, tidak seperti dalam looping jenis for yang tidak membutuhkan pernyataan untuk menaikkan nilai i.
3. while…do
Jenis looping ini hampir sama dengan jenis looping repeat…until. Beda dari kedua jenis looping ini adalah jika pada looping repeat…until dilakukan proses dahulu baru dilihat syarat mengakhiri looping masih memenuhi atau tidak. Jika memenuhi maka proses looping akan berhenti tapi kalau tidak maka looping akan terus berjalan sedangkan pada jenis looping while…do syarat melakukan looping diajukan terlebih dahulu jika memenuhi maka proses akan dilakukan tapi jika tidak maka looping tidak dilakukan.
Sintaks dari jenis looping ini adalah sebagai berikut:
while syarat do pernyataan
Contoh program:
var
i,a : integer;
begin
i:=1;
while i<6 do
begin
a:=i*i;
showmessage(‘nilai kuadrat dari ‘+ inttostr(i)+’ adalah ‘ + inttostr(a));
inc(i); // inc(i)===> i=i+1
end;
end;

ketika di-run:
nilai kuadrat dari 1 adalah 1
nilai kuadrat dari 2 adalah 4
nilai kuadrat dari 3 adalah 9
nilai kuadrat dari 4 adalah 16
nilai kuadrat dari 5 adalah 25
Menghentikan proses looping
Ketika proses looping masih dilakukan kadang kala kita perlu untuk keluar dari looping berdasarkan suatu kondisi tertentu, untuk itu ada 3 cara untuk menghentikan proses looping tersebut yaitu dengan menggunakan:
1. goto
Biasanya penghentian looping dengan menggunakan sintak ini jarang digunakan. Penghentian looping dilakukan dengan pernyataan if. Jika syarat if terpenuhi maka looping berhenti dengan melompat ke label yang dibuat secara terpisah dengan program proses looping.
Contoh program:
var
i,a : integer;

label
berhenti;

begin
i:=1;
for i:=1 to 17 do
begin
a:=i*i;
showmessage (‘nilai kuadrat dari ‘+ inttostr(i)+’ adalah ‘ + inttostr(a));
if a>15 then goto berhenti;
end;

berhenti:
showmessage(‘loop berhenti saat i = ‘+inttostr(i)+’ dan kuadratnya adalah ‘+inttostr(a));
end;

ketika di-run:
nilai kuadrat dari 1 adalah 1
nilai kuadrat dari 2 adalah 4
nilai kuadrat dari 3 adalah 9
nilai kuadrat dari 4 adalah 16
loop berhenti saat i = 4 dan kuadratnya adalah 16
Pada proses tersebut looping tidak dilakukan sampai i ke-17 seperti perintah looping for…to…do, tetapi hanya hingga nilai a lebih dari 15 untuk pertama kalinya. Looping berhenti dan program melompat pada pernyataan dalam label.
2. continue
Penghentian loop ini digunakan dengan menggunakan pernyataan if . Jika pernyataan if dipenuhi maka looping tidak akan mengambil nilai tersebut tetapi meneruskan loop berikutnya.
Contoh program:
var
i : integer;
a : string;
begin
for i:=5 to 10 do
begin
if (i=6) or (i=9) then continue;
a:=a+’ ‘ +inttostr(i);
showmessage(‘a =’ + a);
end;
end;

ketika di-run:
a = 5
a = 5 7
a = 5 7 8
a = 5 7 8 10
Pada saat i = 6 maka looping tidak dilakukan, looping dilakukan kembali untuk nilai i = 7. Begitu pula pada saat i = 9.
3. break
Pernyataan ini digunakan untuk keluar dari proses looping, tanpa masuk ke pernyataan lain seperti pada goto dan juga tanpa meneruskan looping dengan menggunakan nilai selanjutnya seperti pada continue.
Contoh program:
var
i : integer;
begin
for i:=1 to 12 do
begin
if i=6 then
break;
showmessage(‘nilai i =’ + inttostr(i));
end;
end;

ketika di-run:
nilai i = 1
nilai i = 2
nilai i = 3
nilai i = 4
nilai i = 5
Looping dilakukan hanya sampai nilai i = 5. Ketika nilai i = 6 perintah break menghentikan looping.

Operator Aritmetika Dasar

Operasi Aritmetika Dasar meliputi : penjumlahan, pengurangan, perkalian dan pembagian, Div (hasil pembagian dengan pembulatan kebawah), mod (sisa hasil pembagian dengan pembulatan keatas).

A. Contoh design form.
B. Komponen yang dibutuhkan.
1. 3(tiga) komponen label (ada di tab standar).
2. 2(dua) komponen groupbox (ada di tab standar).
3. 8(delapan) komponen edit (ada di tab standar).
4. 6(enam) komponen button (ada di tab standar).
C. Design Properties (ada di jendela object inspector)
Object / Komponen
Name
Caption / Text
Label1
Label2
Label3
Groupbox1
Groupbox2
Edit1
Edit2
Edit3
Edit4
Edit5
Edit6
Edit7
Edit8
Button1
Button2
Button3
Button4
Button5
Button6
Label1
Label2
Label3
Groupbox1
Groupbox2
Edit1
Edit2
Edit3
Edit4
Edit5
Edit6
Edit7
Edit8
Button1
Button2
Button3
Button4
Button5
Button6
Operasi Aritmetika Dasar
Angka Pertama
Angka Kedua
Angka yang akan diproses
Hasil Proses
(dikosongkan)
(dikosongkan)
(dikosongkan)
(dikosongkan)
(dikosongkan)
(dikosongkan)
(dikosongkan)
(dikosongkan)
Tambah
Kurang
Kali
Bagi
Div
Mod
D. Kode Program
1. Program Tambah
Double Klik Button1/ Button Tambah, Tuliskan Kode Program Sebagai berikut :
procedure TForm1.Button1Click(Sender: TObject);
var
angka1,angka2,hasil:double;
begin
angka1:=strtofloat(edit1.Text);
angka2:=strtofloat(edit2.Text);
hasil:=angka1+angka2;
edit3.Text:=floattostr(hasil);
end;

2. Program Kurang
Double Klik Button2/ Button Kurang, Tuliskan Kode Program Sebagai berikut :
procedure TForm1.Button2Click(Sender: TObject);
var
angka1,angka2,hasil:double;
begin
angka1:=strtofloat(edit1.Text);
angka2:=strtofloat(edit2.Text);
hasil:=angka1-angka2;
edit4.Text:=floattostr(hasil);
end;

3. Program Kali
Double Klik Button3/ Button Kali, Tuliskan Kode Program Sebagai berikut :
procedure TForm1.Button3Click(Sender: TObject);
var
angka1,angka2,hasil:double;
begin
angka1:=strtofloat(edit1.Text);
angka2:=strtofloat(edit2.Text);
hasil:=angka1*angka2;
edit5.Text:=floattostr(hasil);
end;

4. Program Bagi
Double Klik Button4/ Button Bagi, Tuliskan Kode Program Sebagai berikut :
procedure TForm1.Button4Click(Sender: TObject);
var
angka1,angka2,hasil:double;
begin
angka1:=strtofloat(edit1.Text);
angka2:=strtofloat(edit2.Text);
hasil:=angka1/angka2;
edit6.Text:=floattostr(hasil);
end;
5. Program Div
Double Klik Button5/ Button Div, Tuliskan Kode Program Sebagai berikut :
procedure TForm1.Button5Click(Sender: TObject);
var
angka1,angka2,hasil:integer;
begin
angka1:=strtoint(edit1.Text);
angka2:=strtoint(edit2.Text);
hasil:=angka1 div angka2;
edit7.Text:=floattostr(hasil);
end;
6. Program Mod
Double Klik Button6/ Button Mod, Tuliskan Kode Program Sebagai berikut :
procedure TForm1.Button6Click(Sender: TObject);
var
angka1,angka2,hasil:integer;
begin
angka1:=strtoint(edit1.Text);
angka2:=strtoint(edit2.Text);
hasil:=angka1 mod angka2;
edit8.Text:=inttostr(hasil);
end;
E. Penjelasan Singkat Program
Var digunakan untuk mendeklarasikan suatu variable, yang berguna untuk menampung suatu nilai atau data.
Double merupakan salah satu tipe data yang ada di Delphi yang digunakan untuk menampung angka / bilangan decimal.
Integer merupakan salah satu tipe data yang ada di Delphi yang digunakan untuk menampung angka / bilangan bulat.
StrToInt digunakan untuk mengubah tipe data String menjadi Integer.
IntToStr digunakan untuk mengubah tipe data Integer menjadi String.
FloatToStr digunakan untuk mengubah tipe data Double menjadi String.
Tipe Data perlu diubah karena komponen edit hanya bisa menampung tipe data String.
Download contoh program

Perulangan (ForToDo dan ForDownTo)

berikut contoh perulangan ForToDo dan Perulangan ForDownTo : 
A. Contoh Design Program
B. Komponen yang dibutuhkan.
1. 3(tiga) komponen label (ada di tab standard component pallete).
2. 3(tiga) komponen edit (ada di tab standard component pallete).
3. 1(satu) komponen memo (ada di tab standard component pallete).
4. 2(dua) komponen Radiobutton (ada di tab standard component pallete)
C. Design Properties (ada di jendela object inspector)
Object / Komponen
Name
Caption / Text
Label1
Label2
Label3
Edit1
Edit2
Memo1
Radiobutton1
Radiobutton2
Label1
Label2
Label3
Edit1
Edit2
Memo1
Radiobutton1
Radiobutton2
Angka Pertama
Angka Dua
Hasil Perulangan
(dikosongkan)
(dikosongkan)
-
For To Do
For Downto Do
D. Kode Program
1. Program For To Do
Double Klik Radiobutton1 atau pilih events onclick pada Objects Inspector, Tuliskan Kode Program Sebagai berikut :
procedure TForm1.RadioButton1Click(Sender: TObject);
var
angka_awal,angka_akhir,hasil_perulangan:integer;
begin
angka_awal:=strtoint(edit1.Text);
angka_akhir:=strtoint(edit2.Text);
for hasil_perulangan:= angka_awal to angka_akhir do
begin
memo1.Lines.Add(inttostr(hasil_perulangan));
end;
end;
2. Program For Downto Do
Double Klik Radiobutton2 atau pilih events onclick pada Objects Inspector, Tuliskan Kode Program Sebagai berikut :
procedure TForm1.RadioButton2Click(Sender: TObject);
var
angka_awal,angka_akhir,hasil_perulangan:integer;
begin
angka_awal:=strtoint(edit1.Text);
angka_akhir:=strtoint(edit2.Text);
for hasil_perulangan:= angka_awal downto angka_akhir do
begin
memo1.Lines.Add(inttostr(hasil_perulangan));
end;
end;
E. Penjelasan Singkat Program
For To Do digunakan untuk melakukan perulangan dari angka kecil ke angka besar.
For DownTo Do digunakan untuk melakukan perulangan dari angka besar ke angka kecil.

Percabangan IF dan Case Of

Contoh percabangan IF dan Case of :

A. Contoh design form.





A. Komponen yang dibutuhkan.
1. 1(satu) komponen label (ada di tab standard component pallete).
2. 1(satu) komponen edit (ada di tab standard component pallete).
3. 3(tiga) komponen button (ada di tab standard component pallete).

B. Kode Program
1. Program IF Then
Double Klik button1 atau pilih events onclick pada Objects Inspector, Tuliskan Kode Program Sebagai berikut :
procedure TForm1.Button1Click(Sender: TObject);
begin
if strtoint(edit1.Text)>80 then
showmessage('Lulus');
end;

2. Program IF Then Else
Double Klik button2 atau pilih events onclick pada Objects Inspector, Tuliskan Kode Program Sebagai berikut :
procedure TForm1.Button2Click(Sender: TObject);
begin
if strtoint(edit1.Text)>90 then
showmessage('Nilai A')
else
if strtoint(edit1.Text)>70 then
showmessage('Nilai B')
else
if strtoint(edit1.Text)>50 then
showmessage('Nilai C')
else
if strtoint(edit1.Text)>30 then
showmessage('Nilai D')
else
showmessage('Nilai E')
end;

3. Program Case Of
Double Klik button3 atau pilih events onclick pada Objects Inspector, Tuliskan Kode Program Sebagai berikut :
procedure TForm1.Button3Click(Sender: TObject);
var
hasil:integer;
begin
hasil:=strtoint(edit1.Text);
case hasil of
0..30:showmessage('Nilai E');
31..50:showmessage('Nilai D');
51..70:showmessage('Nilai C');
71..90:showmessage('Nilai B');
91..100:showmessage('Nilai A');
end;
end;

Download contoh program

Procedure (Prosedur)

Procedure digunakan untuk koding program yang digunakan berulang-ulang, pendeklarasian procedure dituliskan setelah kata Public, berikut contoh penggunaan procedure :

A. Contoh Design Form




B. Penggalan Koding Program

Double klik button1 atau pilih events onclik pada pada objects inspector, berikut potongan programnya :

...
public
{ Public declarations }
procedure kosong_data;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
procedure tform1.kosong_data;
begin
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
kosong_data;
end;

end.


Download contoh program

Function (Fungsi)

Function Mirip dengan Procedure bedanya Function mengembalikan suatu nilai sedangkan procedure tidak, berikut contoh penggunaan Function :Ane kasih yang sederhana aja ya agar kepalanya gak cenut cenut

A. Contoh Design Form




B. Penggalan Koding Program

function luas(alas,tinggi:real):real;
begin
result:=1/2*alas*tinggi;
end;


procedure TForm1.Button1Click(Sender: TObject);
var alas,tinggi:double;
begin
alas:=strtofloat(edit1.Text);
tinggi:=strtofloat(edit2.Text);
edit3.Text:=floattostr(luas(alas,tinggi));
end;

Download contoh program

Perulangan While Do dan Repeat Until

Berikut contoh Perulangan While Do dan Repeat Until :




A. Contoh design form.




B. Komponen yang dibutuhkan.

1. 3(tiga) komponen label (ada di tab standard component pallete).

2. 3(tiga) komponen edit (ada di tab standard component pallete).

3. 1(satu) komponen memo (ada di tab standard component pallete).

4. 2(dua) komponen Radiobutton (ada di tab standard component pallete)


C. Kode Program

1. Program While Do

Double Klik Radiobutton1 atau pilih events onclick pada Objects Inspector,
Tuliskan Kode Program Sebagai berikut :

var

angka_awal,angka_akhir:integer;

begin

memo1.clear;

angka_awal:=strtoint(edit1.Text);

angka_akhir:=strtoint(edit2.Text);

while angka_awal<=angka_akhir do

begin

memo1.Lines.Add(inttostr(angka_awal));

inc(angka_awal);

end;

end;


2. Program Repeat Until

Double Klik Radiobutton2 atau pilih events onclick pada Objects Inspector,
Tuliskan Kode Program Sebagai berikut :

var

angka_awal,angka_akhir:integer;

begin

memo1.clear;

angka_awal:=strtoint(edit1.Text);

angka_akhir:=strtoint(edit2.Text);

repeat

memo1.Lines.Add(inttostr(angka_awal));

inc(angka_awal)

until

angka_awal>angka_akhir;

end;


D. Penjelasan Singkat Program


Memo1.clear digunakan untuk menghapus isi memo1

Inc kependekan dari increment, inc(angka_awal) digunakan untuk menambah
angka_awal dengan angka 1 (satu).

Perulangan While Do, Repeat Until, For To Do dan For DownTo Do akan
menghasilkan nilai yang sama.