Daftar Menu


video pembelajaran

Selasa, 04 April 2023

P5_Perulangan (While .. Do, Repeat .. Until dan For..Do) pada delphi

 

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 ForDo 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.

 

 3.    Rangkuman

 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