E N D
Pencabangan Bersyarat Case-Of
Pencabangan bersyarat case-of digunakan untuk menyederhanakan penggunaan if-then-else yang terlalu panjang. Hanya saja pencabangan bersyarat case-of ini biasanya dipakai untuk percabangan dengan lebih dari dua pilihan. Sebagai contoh, anda dapat mengganti penulisan fungsi if-then-else menjadi lebih ringkas dan lebih mudah dibaca dengan bentuk penulisan sebagai berikut :
Bentuk umum case nilai of nilai_1: statement_1; nilai_2 :statement_2; …………………. nilai_n : statement_n; else Statement; End; CTT : NILAI ADALAH TIPE DATA ORDINAL
contoh • Buat program untuk mencari nama bulan jika yang diinput adalah bulan dalam angka, dimana jika Bulan_angka = 1 maka hasilnya adalah ‘Januari’ dst
Nilai dalam bentuk kondisi Case <kondisi> of <daftar-1> : <pernyataan-1>; <daftar-2> : <pernyataan-2>; -------- -------- <daftar-n> : <pernyataan-n>; else <pernyataan-x>; end;
Case Nilai of 0..50 : Hasil :=’E’; 51..74 : Hasil :=’D’; 75..84 : Hasil :=’C’; 85..94 : Hasil :=’B’; Else Hasil :=’A’; End;
Buatlah program untuk menghitung nilai kelulusan matakuliah, dimana data yang di input adalah nim, nama, nilai kehadiran, nilai quiz, nilai tugas,nilai mid dan nila semester • Hitunglah nilai akhir mahasiswa dengan rumus • NA = (10%*Kehadiran) + (15%*quiz) + (15%*Tugas) + (25%*Mid)+(35%*semester) • Dan cari nilai hurufnya dengan range nilai akhir (NA) A = 85 s/d 100, B = 70 s/d 85, C = 55 s/d 70 D = 40 s/d 55 dan nilai E = 0 s/d 40 ( Untuk mengkompersi string menjadi real gunakan strtofloat dan sebalikanya ) Cth hadir := strtofloat(edit1.text) edit1.text := floattostr(NA) Gunakan fungsi trunc untuk mengkonversi real ke integer X :integer := trunc(y:Real)
Contoh penulisan berikut ini adalah fungsi Case untuk menguji suatu subrange yang bernama Hari yang berisi data Senin, Selasa, Rabu, Kamis, Jumat, Sabtu, dan Minggu : Case Nilai of Senin,Selasa : Hasil :=’1’; Rabu,Kamis : Hasil :=’2’; Jumat,Sabtu : Hasil :=’3’; Minggu : Hasil :=’4’; End;
Pernyataan Pengulangan • Kadang-kadang kita menjalankan sekumpulan pernyataan berulang-ulang sampai pada suatu kondisi tertentu. Untuk keperluan tersebut, perhatikan beberapa ulasan tentang pernyataan pengulangan berikut : • Pengulangan While…Do • Pengulangan Repeat…Until • Pengulangan For…Do
Pengulangan While…Do • Pernyataan pengulangan While…Do bertugas mengulang satu pertanyaan atau suatu blok pernyataan atau selama (while) suatu kondisi (syarat) bernilai True, penulisannya adalah sebagai berikut : While <Kondisi> do <Pernyataan>; Procedure alur pengulangan di atas adalah sebagai berikut: Pernyataan akan dikerjakan selama kondisi bernilai benar, dan akan berhenti jika kondisi bernila salah
Pengulangan Repeat…Until • Pengulangan ini hampir sama dengan pengulangan While…Do dan biasanya digunakan jika jumlah pengulangan 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 dicek pada awal blok pernyataan yang harus diulang, sedangkan pada pernyataan repeat….until, kondisi pada akhir blok pernyataan yang harus diulang. • Perbedaan lainnya adalah pernyataan while…do mengulang pernyataan selama kondisi masih terpenuhi, tetapi pernyataan repeat…until hanya akan mengulang pernyataan selama kondisi belum terpenuhi. Perbedaan lain yang dapat ditemukan untuk pernyataan repeat until adalah :
Dapat melaksanakan pengulangan lebih dari satu pernyataan baik beupa kumpulan pernyataan tunggal atau kumpulan blok pernyataan. Jadi bagian yang diulang adalah segala sesuatu yang berada di antara pernyataan repeat…until. • Menjalankan perintah yang berada di antara pernyataan repeat…until karena pengujian terletak di bagian bawah pernyataan, minimal satu kali. • Pada dasarnya pengulangan akan berhenti kalau <kondisi> bernilai False. Tetapi anda juga dapat menggunakan pernyataan Break untuk memaksa program keluar dari pengulangan dan melanjutkan ke baris bawah pengulangan.
Pengulangan For…Do • Pengulangan For…Do merupakan perintah pengulangan yang paling sederhana di antara perintah penglangan lain yang disediakan Delphi. Pengulangan For…Dodi gunakan untuk melaksanakan pengulangan satu pernyataan atau blok program beberapa kali yang di tentukan oleh nilai awal dan nilai akhir. Dengan kata lain, jumlah pengulangan yang akan di kerjakan sudah di ketahui.
For I := 0 to 10 do Jumlah := Jumlah + 5; • Program di atas mengubah nilai variabel Jumlah dengan menambahkan variabel Jumlah tersebut dengan angka 5 dengan pengulangan perintah sebanyak sepuluh kali, dengan urutan proses sebagai berikut : • Variabel Pencacah diberi nilai 1 • Pernyataan di kanan Do dikerjakan sekali • Jika pencacah lebih besar dari nilai akhir (yaitu 10), pengulangan selesai dan akan dikerjakan pernyataan setelah perintah For….Do. • Jika pencacah tidak lebih besar dari nilai akhir (yaitu 10) maka pernyataan setelah Do akan dikejakan lagi
For <pencacah> := <Awal> to <akhir> do < pernyataan> Atau For <pencacah> : = <awal> downto<akhor> do < pernyataan>; • <pencacah> adalah variabel bertipe integer, yaitu variabel yang mempunyai nilai pasti jika di kurangi atai di tambah satu satuan, misalnya byte, shortint, subrange, dan lain – lain. Nilai <pencacah> tidak boleh diubah dakam <pernyataan>. • Jika anda menggunakan bentuk pertama, maka For…..Do akan mengulang <Pernyataan> dan akan berhenti kalaiu nilai <awal> sudah melampaui <Akhir>. Jika anda menggunakan bentuk kedua, maka pengulangan akan berhenti jika nilai <awal> sudah di bawah nilai <akhir>
Ketentuan dalam For…Do yang dipakai untuk menyimpan nilai pengulangan pencacah harus didefinisikan secara lokal di dalam blok For…Do. Ketentuan lain ialah bahwa nilai awal (angka 1) harus lebih kecil dari nilai akhir. • Anda juga dapat mencacah mundu, dengan contoh: For Jumlah :=25 downto 1 do
Contoh penggunaan while do Source code ambil di http://192.168.0.5/~jaidup/delphi Prima.pdf
procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; y: array[1..100] of char;
procedure TForm1.Button1Click(Sender: TObject); var x : integer; i,j : integer; begin x := strtoint(edit1.Text); if x > 100 then begin application.MessageBox ('data yang anda masukkan terlalu besar','Konfirmasi',1); edit1.Clear; edit1.SetFocus; close; end;
i:=2; while i<= sqrt(x) do begin j:=i; if y[j]<>'*' then while j<= 100 do begin j:= j+i; y[j]:='*'; end; i:= i+1; end; i:= 1; while i<= X DO BEGIN IF Y[I] <>'*' THEN MEMO1.Lines.Add(INTTOSTR(I)); I:= I+1; END; end;
procedure TForm1.Button2Click(Sender: TObject); begin edit1.Clear; memo1.Clear; edit1.SetFocus; end; procedure TForm1.Button3Click(Sender: TObject); begin close; end; end.