1. Dasar teori
Kadang-kadang diperlukan pengerjaan sekumpulan pernyataan secara berulang-ulang sampai pada suatu kondisi tertentu. Untuk keperluan tersebut, ada tiga perulangan yang dapat dipergunakan yaitu While .. Do, Repeat .. Until dan For..Do.
a. Perulangan While…Do
Pernyataan perulangan While…Do berfungsi mengulang suatu pertanyaan atau satu blok pernyataan selama (while) suatu kondisi (syarat) bernilai True. Sintaks dari pernyataan tersebut adalah sebagai berikut:
While <Kondisi> Do <Pernyataan>;
Prosedur perulangan di atas adalah sebagai berikut:
1) Pertama, program akan menguji nilai <kondisi>
2) Jika <kondisi> bernilai False, maka <pernyataan> tidak dikerjakan dan progam menghentikan perulangan, kemudian mengerjakan pernyataan setelah while.
3) Jika <kondisi> bernilai True, maka pernyataan akan dikerjakan satu kali
4) Lalu kembali ke langkah 1
Pada dasarnya, perulangan akan berhenti kalau <kondisi> bernilai False. Tetapi dapat juga digunakan pernyataan Break untuk memaksa program keluar dari perulangan dan melanjutkan ke baris program yang terletak setelah perintah perulangan.
<Pernyataan> bisa berupa satu pernyataan atau blok pernyataan yang diawali dengan begin dan diakhiri dengan end. Untuk satu pernyataan penulisan pernyataan harus diakhiri dengan titik koma sebagai tanda akhir dari While. Untuk lebih jelasnya, perhatikan contoh kode program berikut.
While Nilai < 20 Do Nilai := Nilai + 1;
Program di atas akan mengulang Nilai := Nilai + 1 selama variabel Jumlah memiliki nilai lebih kecil dari 20. Berikut ini adalah contoh penulisan pernyataan yang diawali dengan begin dan diakhiri dengan end.
While Kode <> ‘X’ Do
Begin
A := A + 1;
B := B * A;
End;
Program di atas akan mengulang blok pernyataan selama Kode tidak sama dengan ‘X’.
While Kode <> ‘X’ Do
Begin
If A > 0 Then
Begin
A := A + 1;
B := B * A;
End
Else
Break;
Nilai := B + 10; End;
Program di atas akan mengulang blok pernyataan selama Kode tidak sama dengan ‘X’. Pernyataan While…Do biasanya digunakan bila Anda belum tahu dengan pasti berapa kali perulangan harus dilakukan. Berakhirnya perulangan dapat ditentukan oleh suatu kondisi, dimana bila kondisi sudah tidak terpenuhi perulangan akan berakhir.
b. Perulangan Repeat…Until
Perulangan ini hampir sama dengan perulangan While…Do dan biasanya digunakan jika jumlah perulangan belum dapat ditentukan pada saat program ditulis. Perbedaannya, pernyataan repeat…until dan while…do terletak pada letak pengecekan kondisi. Jika pada pernyataan while…do kondisi diperiksa pada awal pernyataan while…do, sedangkan pada pernyataan repeat…until, kondisi dicek pada akhir pernyataan repeat…until. Perbedaan lain adalah pernyataan while…do mengulang pernyataan selama kondisi masih terpenuhi, tetapi pernyataan repeat…until hanya akan mengulang pernyataan selama kondisi belum terpenuhi. Selain itu pernyataan repeat…until akan menjalankan pernyataan yang berada diantara repeat…until minimal satu kali, karena pengujian terletak dibagian akhir pernyataan repeat…until. Pada dasarnya perulangan akan berhenti kalau <kondisi> bernilai True. Tetapi anda juga dapat menggunakan pernyataan Break untuk memaksa program keluar dari perulangan dan melanjutkan ke pernyataan setelah repeat…until. Sintaks dari repeat... until adalah sebagai berikut :
Repeat
<pernyataan>
---
<pernyataan>
Until <kondisi>
Contoh :
Counter := 1; Repeat
---
Counter := Counter + 1;
Until Counter > 5;
c. Perulangan For…Do
Perulangan For…Do merupakan perintah perulangan yang paling sederhana di antara perintah perulangan lain yang disediakan Delphi. Perulangan For…Do digunakan untuk pengerjaan satu pernyataan atau blok pernyataan secara berulang-ulang yang ditentukan oleh nilai awal dan nilai akhir dari pencacah. Dengan kata lain, jumlah perulangan yang akan dikerjakan sudah diketahui.
For <pencacah> := <awal> To <akhir> Do < pernyataan>;
atau
For <pencacah>:= <awal> Downto <akhir> Do < pernyataan>;
<pencacah> adalah variabel bertipe integer, char, byte, shortint, subrange, dan lain– lain. Variabel tersebut mempunyai nilai pasti, dimana nilainya dapat dikurangi atau ditambah satu satuan. Nilai <pencacah> tidak boleh diubah dalam <pernyataan>.
Jika anda menggunakan bentuk pertama, maka For…Do akan mengulang <pernyataan> dimulai dari nilai <pencacah> sama dengan nilai <awal> hingga nilai <pencacah> sama dengan nilai <Akhir>. Jika anda menggunakan bentuk kedua, pada prinsipnya sama dengan bentuk pertama, perbedaannya <pencacah> nilainya menurun.
Contoh:
Jumlah := 0;
For i := 1 To 10 Do Jumlah := Jumlah + 5;
Program diatas mengubah nilai variabel Jumlah dengan menambahkan variabel tersebut dengan angka 5, dimana pengulangan perintah dilakukan sebanyak sepuluh kali, dengan urutan proses sebagai berikut:
1) Variabel pencacah i diberi nilai 1
2) Pernyataan setelah Do yaitu Jumlah := Jumlah + 5 dikerjakan satu kali
3) Diulang kembali ke langkah 1, dengan menambahkan nilai 1 ke variabel pencacah i
4) Jika nilai pencacah telah mencapai lebih besar dari nilai akhir (yaitu 10), pengulangan dihentikan dan akan dikerjakan pernyataan setelah perintah For….Do.
Ketentuan dalam For…Do bahwa variabel pencacah (i) harus didefinisikan secara lokal di dalam blok For…Do. Ketentuan lain ialah nilai awal dari variabel pencacah (i) harus lebih kecil dari nilai akhir. Anda juga dapat mencacah mundur, dengan contoh sbb.:
Jumlah := 0;
For i := 10 Downto 1 Do Jumlah := Jumlah + 5;
2. Praktikum
a. Buatlah sebuah aplikasi/project baru
b. Buatlah tampilan sederhana seperti pada gambar 5.1 berikut:
Gambar 5.1 Program Deret |
Desain form di atas menggunakan komponen Page Control dan TabSheet. Langkah-langkah untuk membuatnya:
§ Dari form kosong, sisipkan komponen PAGE CONTROL (ada di dalam pallete WIN 32) dan atur lebar dan panjangnya.
§ Untuk memb
uat TAB SHEET, caranya klik kanan pada PAGE CONTROL, pilih
NEW PAGE
§ Lengkapilah TAB SHEET yang baru saja dibuat dengan menyisipkan beberapa komponen dan propertiesnya seperti pada tabel 5.1 berikut:
Tabel 5.1. Komponen Program Deret
Nama Komponen |
Properties |
Value |
Tabsheet1 |
Caption |
Deret Aritmatika |
Label1 |
Caption |
Suku Awal |
Label2 |
Caption |
Beda |
Label3 |
Caption |
Jumlah Suku |
Edit1 |
Name |
Sukuawal |
|
Text |
[kosongkan] |
Edit2 |
Name |
Beda |
|
Text |
[kosongkan] |
Edit3 |
Name |
Jumlahsuku |
|
Text |
[kosongkan] |
Button1 |
Caption |
Proses |
Button2 |
Caption |
Hapus |
Memo1 |
Lines |
[kosongkan] |
|
Name |
Hasilderet |
|
ReadOnly |
True |
|
Scrollbars |
ssVertical |
Desain skenario
Ketika program ini (deret aritmatika) diaktifkan, kursor akan langsung fokus kekomponen suku awal untuk meminta user memasukkan suku awal (bisa positif, negatif, dan nol). Berikutnya user mengisi beda (bisa positif, negatif, dan nol), serta jumlah suku (harus positif), dan selanjutnya user menekan tombol PROSES.
Apabila jumlah suku yang dimasukkan tidak positif, maka akan muncul WARNING yang menyatakan 'Maaf Jumlah Suku Harus Positif‘. Setelah user meng-confirm warning tersebut, maka kursor akan kembali ke kotak jumlah suku untuk diperbaiki inputnya kembali.
Sedangkan apabila jumlah suku yang dimasukkan positif, hasil deretnya akan ditampilkan dalam memo.
Tombol hapus digunakan untuk membersihkan semua input untuk perhitungan berikutnya. Setelah tombol hapus ditekan, kursor akan kembali ke kotak suku awal kembali.
Untuk mengimplementasikan skenario di atas, maka berikut ini adalah code untuk eventnya:
Event ONSHOW pada TabSheet1 (Deret Aritmatika) procedure TForm1.TabSheet1Show(Sender: TObject);
begin
sukuawal.SetFocus;
end;
Event ONKEYPRESS pada Edit1 (SUKU AWAL)
procedure TForm1.sukuawalKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then beda.SetFocus;
end;
Event ONKEYPRESS pada Edit2 (BEDA)
procedure TForm1.bedaKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then jumlahsuku.SetFocus;
end;
Event ONKEYPRESS pada Edit3 (JUMLAH SUKU)
procedure TForm1.jumlahsukuKeyPress(Sender:TObject;var Key: Char);
begin
if key = #13 then button1.SetFocus;
end;
Keterangan:
Perintah Key = #13 untuk mengecek apakah tombol yang ditekan adalah ENTER atau bukan.
Event ONCLICK pada Button1 (PROSES)
procedure TForm1.Button1Click(Sender: TObject);
var i, n, x, b : integer;
begin
n := strtoint(jumlahsuku.Text);
x := strtoint(sukuawal.text);
b := strtoint(beda.text);
if n > 0 then begin
for i:=1 to n do begin
hasilderet.Lines.Add(format('Suku ke-%3d :%4d',[i,x]));
x := x + b;
end;
end
else
begin
if messagedlg('Jmlh suku harus positif',mtwarning, [mbOK,mbcancel],0) = mrOK then jumlahsuku.SetFocus
else
begin
messagedlg('Lho kok malah dicancel!!! Ayo ganti dulu',mtwarning,[mbOK],0);
jumlahsuku.SetFocus;
end;
end;
end;
Event OnClick pada Button2 (Hapus)
procedure TForm1.Button2Click(Sender: TObject);
begin
sukuawal.Clear;
beda.Clear;
jumlahsuku.Clear;
hasilderet.Clear;
sukuawal.SetFocus;
end;
Keterangan:
o Perintah format digunakan untuk mengatur tampilan presisi output. Simbol %3d, %4d bermaksud untuk mengatur lebar space untuk bilangan bulat. Untuk bilangan real contohnya %8.2f (mengatur 2 decimal di belakang koma).
o Perintah messagedlg digunakan untuk membuat pesan dialog. Sintaksnya:
Messagedlg (‘string yang akan ditampilkan’, jenis dialog, [tombol], help file); Jenis dialog dapat diisi:
- mtwarning - mterror
- mtinformation - mtconfirmation
Jenis tombol dapat diisi:
- mbyes - mbno - mbok - mbignore
- mbcancel - mbabort - mbretry - mbhelp
Help file merupakan parameter untuk menunjukkan informasi Help yang berhubungan dengan pesan tsb. Jika fasilitas Help File tidak dibuat diisi nol.
o Perintah setfocus digunakan untuk mengaktifkan komponen (dalam kondisi ready)
Silakan lanjutkan project ini untuk bagian TabSheet Deret Geometri seperti pada gambar 5.1.
Perulangan merupakan proses yang dilakukan secara berulang-ulang dalam batas yang telah ditentukan. Dengan menggunakan proses perulangan, penulisan kode program dapat menjadi lebih efisien. Perulangan dapat dibedakan menjadi Pernyataan while do, repeat until, dan for do.
4.video bisa dilihat disini
5. Tugas
Buatlah dua program dari pilihan berikut ini! |
1. Persamaan non linier dapat diselesaikan dengan menggunakan beberapa program diantranya program Bisection. Buatlah program Bisection menggunakan Delphi untuk menyelesaikan solusi persamaan non linier 2. Buatlah program yang dapat digunakan untuk menghitung bilangan asli kelipatan 5 dan hitunglah jumlahnya yang diinputkan melalui keyboard. 3. Diketahui persamaan grafik y = x2 - x + 3; dengan x = {1, 2, 3, …}. Buatlah program yang dapat digunakan untuk mendapatkan nilai y. Displaykan nilai x dan y secara berpasangan. 4. Dengan inputnya bilangan asli n, buat program untuk menghitung bilangan n! (n faktorial).
|
Tidak ada komentar:
Posting Komentar
Silahkan Meninggalkan Pesan