Sabtu, 30 April 2011

Struktur Pengulangan Dan Pemilihan DELPHI

Pengulangan

Dalam menyelesaikan masalah, terkadang kita harus melakukan suatu proses yang sama lebih dari satu kali. Untuk itu perlu dibuat suatu algoritma pengulangan. Pascal memberikan tiga alternatif pengulangan, yaitu dengan For, While, atau Repeat. Masing-masing memiliki karakteristik, yang akan dipelajari pada modul ini. Ada dua hal yang penting dalam melakukan merancang perintah pengulangan, yaitu :

- Inisialisasi awal
- Nilai akhir pengulangan atau kondisi berhenti.
Pengulangan digunakan untuk menjalankan satu atau beberapa pernyataan beberapa kali. Jadi anda bisa menjalankan beberapa pernyataan hanya dengan menuliskan pernyataan tersebut satu kali saja.

FOR – TO- DO
Pernyataan pengulangan yang paling sering digunakan adalah For. Pernyataan ini digunakan bila anda sudah tahu berapa kali anda akan mengulang satu atau beberapa pernyataan. Pada pengulangan dengan For, inisialisasi awal dan kondisi akhir ditentukan dengan menggunakan suatu variabel kendali yang nilainya dibatasi dalam suatu range tertentuu. Perbedaan antara to dan downto adalah pada kondisi nilai awal dan akhir. Pada to; nilai awal lebih kecil dari nilai akhir, sedangkan pada downto nilai awal lebih besar dari nilai akhir. Perlu diingat, bahwa variable kendali harus dideklarasikan dengan tipe data integer.
Untuk lebih jelasnya peerhatikan contoh berikut ini :

For x := 1 to 10 do
ListBox1.Items.Add (‘Borland Delphi’) ;

Pernyataan ini akan menambahkan ‘ Borland Delphi ‘ pada ListBox1 sebanyak sepuluh kali. Anda juga dapat menghasilkan hasil yang sama dengan menuliskan program berikut :


For x := 3 to 12 do
ListBox1.Items.Add (‘Borland Delphi’) ;

Meskipun hasil yang di dapat sama tetapi penulisan yang pertama lebih mudah dibaca karena anda akan segera tahu bahwa teks ‘Borland Delphi’ dituliskan sepuluh kali. Pada penulisan yang kedua anda harus menghitung ( 12 – 3 + 1) sebelum tahu berapa jumlah pengulangan yang dilakukan. Anda dapat melakukan pengulangan dari bilangan yang lebih besar ke bilangan yang lebih kecil. Caranya adalah dengan mengganti to dengan downto seperti contoh berikut :


For x := 10 downto 1 do

Jangan menambahkan tanda koma di belakang kata kunci do, seperti contoh berikut :

For x := 1 to 10 do ;
ListBox1.Items.Add (‘Borland Delphi’) ;

Bila anda menambahkan tanda koma di belakang kata kunci do, Delphi tidak akan menjalankan pernyataan apapun. Akibatnya teks ‘Borland Delphi’ hanya akan berjumlah satu saja.

Pernyataan For Bersarang
Anda bisa juga menuliskan pernyataan for di dalam pernyataan for . Konstruksi semacam ini sering disebut dengan pernyataan for bersarang. Perhatikan contoh berikut :


For x := 1 to 3 do ;
For y := 1 to 2 do ;
ListBox1.Items.Add (IntToStr (x) + ‘ ‘ + IntToStr (y)) ;

Kalau for yang di luar ( dengan pencacah variabel x ) akan menjalankan kalang yang dalam (dengan pencacah y) sebanyak 3 kali. Dan pada setiap pengulangan di layar akan ditambahkan nilai X dan Y. Bila anda menjalankan program di atas, pada ListBox1 akan terdapat hasil sebagai berikut :


1 1
1 2
2 1
2 2
3 1
3 2

Hasilnya adalah : 1, 2, 3, 4, 5

WHILE – DO
Pernyataan pengulangan ini biasanya digunakan bila anda belum tahu pasti berapa banyak anda akan mengulang pernyataan – pernyataan. Berakhirnya pengulangan ini di tentukan oleh suatu kondisi. Bila kondisi sudah tidak terpenuhi maka pengulangan akan berakhir. Dengan kata lain, selama kondisi masih terpenuhi, pengulangan akan terus dilakukan. Pada metode pengulangan ini aksi hanya akan diproses bila kondisi pengulangan terpenuhi, bentuk sintaks dari pengulangan ini adalah :

Selama kondisi pengulangan bernilai true maka aksi kan dilakukan, dan baru akan berhenti setelah kondisi pengulangan bernilai false. Karena kondisi pengulangan diperiksa pada bagian awal, maka ada kemungkinan aksi tidak pernah dilakukan, yaitu bila kondisi pengulangan tidak pernah bernilai true.

REPEAT – UNTIL
Pernyataan pengulangan ini hamper sama dengan pernyataan pengulangan While, dan biasanya digunakan bila jumlah pengulangan belum dapat dutentukan pada saat program ditulis. Perbedaan pernyataan repeat … until dengan while terletak pada letak pengecekan kondisi. Jika pada pernyataan while, kondisi di cek pada awal kalang, pada pernyataan repeat .. until kondisi dicek pada akhir kalang. Perbedaan yang lain, bila pernyataan while mengulang pernyataan selama kondisi masih terpenuhi, pernyataan repeat … until mengulang pernyataan selama kondisi belum terpenuhi. Metode pengulangan ini juga melakukan pengulangan berdasarkan pemeriksaan kondisi pengulangan. Hanya saja nature dari pengulangan ini adalah system seakan-akan memaksa untuk melakukan pengulangan, sampai diketahui adanya kondisi berhenti. Berlawanan dengan While, yang akan memproses aksi hanya bila kondisi pengulangan bernilai true, pada pengulangan Repeat, system akan memproses aksi selama kondisiberhenti false. Dengan demikian aksi pasti akan selalu diproses (minimal satu kali). Pada tipe ini, pengulangan dapat terjadi terus menerus (tidak pernah berhenti), yaitu bila kondisi berhenti tidak pernah bernilai true. Contoh potongan program berikut :


Repeat
X := X – 1;
Y := Y – 1;
Until ( X<=0 );

Program ini akan mengulang dua pernyataan (X := X – 1) dan (Y := Y – 1) sampai nilai X lebih kecil atau sama dengan 0. Mungkin anda menduga bahwa contoh ini adalah pengkorvesian dari contoh pengulangan dengan pernyataan while di atas. Bila diperhatikan sekilas memang keduanya seolah-olah sama. Tetapi keduanya memiliki sedikit perbedaan. Untuk lebih jelasnya ikuti penjelasan berikut :
Pada contoh while di atas, program akan melakukan pengulangan selama nilai X masih lebih besar dari pada 0., sedangkan pada contoh repeat … until disini, program akan melakukan pengulangan sampai nilai X lebih kecil atau sama dengan 0. Bila nilai X sebelum masuk kalang adalah positif, kedua pernyataan pengulangan ini memang sama. Tetapi jika nilai X negative, masalahnya akan berbeda.
Untuk pernyataan while, program tidak akan pernah melakukan pengulangan karena sebelum masuk kalang, nilai X sudah negative. Sebaliknya pada pernyataan repeat … until program akan melakukan pengulangan satu kali. Oleh karena itu sebaiknya anda harus berhati-hati dalam memilih menggunakan pernyataan while atau repeat … until.

Pernyataan Break dan Continue
Pada beberapa kasus, anda mungkin ingin menghentikan suatu pengulangan di tengah jalan. Untuk menghentikan pengulangan, gunakanlah pernyataan break. Anda bisa menggunakan pernyataan break pada pernyataan for while, maupun repeat … until. Contoh :

X : = 0;
While (X >= 0) do
begin
X := X + 1;
If ( X > 100) then
Break;
end;

Bila di lihat sekilas, kalang di atas sepertinya tidak akan pernah berakhir. Namun bila dijalankan, setelah nilai X lebih besar dari 100, pengulangan akan berhenti. Hal ini dikarenakan adanya pernyataan break. Pernyataan Continue, adalah bentuk pernyataan khusus lain yang digunakan pada pengulangan. Pernyataan ini digunakan untuk mengembalikan aliran program ke pengujian kondisi pengulangan. Dengan kata lain, pernyataan-pernyataan di bawah continue akan di abaikan. Contoh :


For i := 0 to100 do ;
Begin
If ( ( i mod 3) <> 0 ) then
Continue ;
ListBox1.Items.Add (IntToStr ( i ) ;
End ;

Program ini akan menuliskan semua bilangan kelipatan tiga yang kurang dari 100. Mengapa bisa demikian ? Karena pada saat nilai pencacah pengulangan habis di bagi 3, program akan memanggil pernyataan continue, akibatnya pernyataan ListBox1.Item.Add (IntToStr i)) tidak dipanggil. Pernyataan break dan continue dapat juga digunakan pada pernyataan pengulangan bersarang (baik for, while, maupun repeat ... until) Pada pernyataan bersarang, pernyataan break dan continue akan menghentikan atau melanjutkan kalang paling dalam. Contoh :

For i := 0 to 2 do
For j := 0 to5 do
Begin
If ( j=3 ) then
Break ; ;
ListBox1.Items.Add (IntToStr ( i )) ;;
End ;

Program di atas hanya akan menampilkan 0, 1, dan 2 masing-masing sebanyak 3 kali (bukan 5 kali seperti yang tertulis pada kalang j ). Hal ini dikarenakan pada saat nilai j sama dengan 3, kalang j dihentikan.

Latihan :
Buatlah program untuk menampilkan pengulangan sebagai berikut :
- Apabila Button FortoDo di klik akan menampilkan teks ‘ Saya Belajar Delphi 7’ sebanyak lima kali.
- Apabila Button WhileDo di klik akan menampilkan teks ‘ Saya anak Informatika’ sebanyak lima kali.
- Apabila Button Repeat Until di klik akan menampilkan teks ‘ Saya anak UMB’ sebanyak lima kali.

Pemilihan

IF…THEN : Pemilihan 1 kasus
Perintahn bersyarat If-then digunakan hanya melakukan 1 aksi bila kondisi dipenuhi. Bentuk sintaks dari perintah bersyarat ini adalah :


IF..THEN …ELSE : Pemilihan 2 kasus
Perintah bersyarat If umumnya digunakan untuk melakukan pencabangan sederhana (antara 2 atau 3 cabang). Atau untuk pencabangan yang banyak, dimana kondisi yang menjadi prasyaratnya melibatkan lebih dari satu parameter. Bentuk sintaks dari perintah bersyarat ini adalah :
IF…THEN…ELSE : Pemilihan N kasus


CASE…OF…
Perintah bersyarat Case umumnya digunakan untuk kondisi dengan banyak pencabangan. Syarat pencabangan pada bentuk ini hanya boleh melibatkan satu buah parameter dengan tipe data bukan Real. Pemeriksaan kondisi di sini lebih tepat disebutkan dalam hubungan relasi samadengan (=). Dengan demikian bila parameter bernilai tertentu maka dilakukan suatu aksi terkait, bila bernilai lain maka dilakukan aksi yang lain juga, demikian seterusnya.

Praktikum 2
If then else

unit if_then_else;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Data:integer;
begin
Data:=strtoint(edit1.Text);
if (data>=80) and (data<100) then
begin
showmessage('Nilai saya A');
edit1.Text:='';
end
else
if (data>=70) and (data<80) then
begin
showmessage('Nilai saya B');
edit1.Text:='';
end
else
if (data>=60) and (data<70) then
begin
showmessage('Nilai saya C');
edit1.Text:='';
end
else
if (data>=50) and (data<60) then
begin
showmessage('Nilai saya D');
edit1.Text:='';
end
else
if (data>=0) and (data<50) then
showmessage('Nilai saya E');
edit1.Text:='';
end;
end.

Latihan :
Rubahlah program di atas dengan menggunakan Case Of

End

0 komentar: