5.3 Pernyataan REPEAT
Bentuk umum struktur kontrol REPEAT dapat dirumuskan dengan :
REPEAT
aksipernyataan
UNTIL kondisi_berhenti
Keterangan:
Aksi pernyataan akan dikerjakan minimal satu kali , karena pernyataan dilaksanakan terlebih dahulu kemudian baru diperiksa kondisi berhenti.
Aksi pernyataan akan dikerjakan berulang-ulang dan akan berhenti jika kondisi berhenti
terpenuhi
Tidak mengetahui berapa kali pengulangan akan dikerjakan
Di dalam pernyataan, harus ada instruksi yang mengubah nilai kondisi agar pengulangan berhenti..
Notasi Pascal :
Contoh :
Buat algoritmaprogram untuk menampilkan menu masakan sebagai berikut : Menu Masakan
1. Ayam Goreng 2. Ayam Tulang Lunak
3. Ayam Bakar 4. Keluar
Dan membaca nomor pilihan menu yang diinput oleh user. Kemudian tampilkan pesan sesuai dengan nomor menu yang di-input.
Misalnya : input : 1 Output : ”Anda memilih Ayam Goreng”
Algoritmik :
Program CetakAngka; Var
i, angka : integer; Begin
writeMasukan angkanya: ; readlnangka;
i:=1; While angka 0 do
Begin writeln‘Angka yang anda input:’, angka;
writeMasukan angkanya: ; readlnangka;
i
i+1;
end end.
repeat begin
aksipernyataan end;
until kondisi_berhenti
Program Memilih_Menu Deklarasi :
pilihan : char Algoritma :
Repeat write‘Menu Masakan’
write‘1.Ayam Goreng’ write‘2. Ayam Tulang Lunak’
write‘3. Ayam Bakar’ write‘4. Keluar’
write‘Masukan pilihan anda:’ read pilihan
case pilihan of ’1’ : write ‘Anda memilih Ayam Goreng’
’2’ : write ‘Anda memilih Ayam Tulang lunak’ ’3’ : write ‘Anda memilih Ayam Bakar’
’4’ : exit else ‘Menu yang anda pilih salah’
endcase Until pilihan=’4’
Pascal : Kesimpulan :
FOR digunakan
untuk proses
pengulangan yang jumlah
pengulangannya dapat diketahui diawal.
WHILE fungsinya
sama seperti FOR, tetapi WHILE juga
dapat digunakan
untuk proses yang jumlah
pengulangannya tidak dapat
ditentukan sebelum eksekusi.
REPEAT fungsinya sama seperti WHILE,
kita dapat menggunakan WHILE maupun REPEAT untuk masalah-masalah tertentu. Tetapi, pada beberapa masalah, pemilihan WHILE atau REPEAT bergantung kepada persoalannya. Ini artinya, ada
masalah yang hanya benar bila menggunakan struktur WHILE, tetapi bisa fatal bila menggunakan REPEAT.
Untuk mengetahui struktur mana yang lebih tepat, kita harus mengetahui perbedaannya, yaitu :
Pada Konstruksi REPEAT, kondisi pengulangan diperiksa pada akhir pengulangan. Jadi instruksi di dalam badan pengulangan dilaksanakan dulu, baru pemeriksaan kondisi dilakukan.
Konsekuensinya badan pengulangan dilaksanakan paling sedikit satu kali.
Pada konstruksi WHILE, kondisi pengulangan diperiksa di awal pengulangan. Jadi instruksi didalam badan pengulangan hanya dapat dilaksanakan jika pemeriksaan kondisi menghasilkan
nilai true. Konsekuensinya badan pengulangan mungkin tidak akan pernah dilaksanakan, bila
Program MemilihMenu; Var
pilihan : char; Begin
Repeat writeln‘Menu Masakan’;
writeln‘1.Ayam Goreng’; writeln‘2. Ayam Tulang Lunak’;
writeln‘3. Ayam Bakar’; writeln‘4. Keluar’;
write‘Masukan pilihan anda:’; readln pilihan;
case pilihan of ’1’ : writeln ‘Anda memilih Ayam Goreng’;
’2’ : writeln ‘Anda memilih Ayam Tulang lunak’; ’3’ : writeln ‘Anda memilih Ayam Bakar’;
’4’ : exit; else
writeln‘Menu yang anda pilih salah’; end;
Until pilihan=’4’; end.
kondisi pengulangan pertama kali bernilai false. Jadi :
→ Gunakan konstruksi WHILE pada kasus yang mengharuskan terlebih dahulu pemeriksaan kondisi objek sebelum objek tersebut dimanipulasi
→ Gunakan konstruksi REPEAT pada kasus yang terlebih dahulu memanipulasi objek, baru kemudian memeriksa kondisi objek tersebut.
Latihan
1.
Tuliskanlah algoritma untuk menentukan nilai terkecil dari N buah data integer yang dibaca dari papan ketik. Nilai N dibaca terlebih dahulu N0
2. Buat algoritmaprogram untuk menampilkan kata “Saya sedang belajar pemrograman” sebanyak 50 kali.
3. Buat algoritmaprogram untuk menulis angka deret tambah mulai dari angka 0 hingga 100 dengan pertambahan 10.
Sehingga tampilan output di layar : 10 20 30 40 50 60 70 80 90 100
dengan selang 2 spasi diantara angka-angka itu. 4. Buat algoritmaprogram untuk menampilkan jumlah angka 20 bilangan asli pertama. Bilangan asli
adalah bilangan bulat dimulai dari 1,2,3,…. 5. Buat algoritmaprogram untuk membuat Daftar telepon. Daftar Telepon berisi Nama dan No.Telp.
Pertama kali dibaca berapa jumlah data Nama dan No.Telp yang akan diinput, kemudian masukan data Nama dan No.Telp sesuai dengan jumlah data yang dibaca dari keyboard.
6. Buat algoritmaprogram untuk menghitung nilai rata-rata dari N buah data bilangan bulat yang dibaca dari keyboard. Nilai rata-rata adalah jumlah seluruh data dibagi dengan banyaknya data.
Misalnya, jika N=5 dan data bilangan yang dibaca berturut-turut adalah 2,5,3,4,2 maka nilai rata- ratanya adalah 2+5+3+4+25=165=3.2.
7. Buat algoritma untuk memeriksa apakah password dari suatu kartu ATM diterima atau ditolak. Pakailah flag Ok bertipe Boolean. Buatlah password sebagai konstanta= ‘100107’. Pemasukan
password boleh diulang sampai 3x. Jika password benar, Output : ‘PIN benar, lanjutkan proses’
Jika password salah, Output : ‘PIN salah, ulangi lagi’ Jika password 3x salah, Output : ‘Kartu ditolak’
5.4 MESIN ABSTRAK