Algoritma & Pemrograman 1B M6. Pengulangan Proses By : Guntur Eka Saputra, ST., MMSI.
Subjectives FOR-NEXT DO WHILE-LOOP DO UNTIL-LOOP DO LOOP-WHILE DO LOOP-UNTIL WHILE-WEND
PERNYATAAN GOTO
PERNYATAAN GOTO Berfungsi untuk mengarahkan eksekusi ke satu baris. Pernyataan ini memungkinkan eksekusi pernyataan- pernyataan tidak secara sekuensial seperti pada normalnya. Bentuk Umum : GOTO label Label : dapat berupa nomor baris atau suatu nama label. Dalam hal ini GOTO akan menyebabkan eksekusi dilanjutkan ke baris yang diawali dengan label.
PERNYATAAN GOTO ‘**************************************************************** ‘* LONCAT.BAS CLS PRINT “A” PRINT “B” GOTO Akhir: PRINT “C” PRINT “D” Akhir: PRINT “E” PRINT “F” END
PERNYATAAN GOTO Pada contoh berikut ini, GOTO beserta IF digunakan untuk mengimplementasikan penampilan tulisan “QBASIC” sebanyak sepuluh kali. Bagaimana programnya ???
PERNYATAAN GOTO ‘**************************************************************** ‘* ULANG.BAS CLS i% = 1 Ulang: IF i% = 10 THEN GOTO Akhir PRINT “QBasic” i% = i% + 1 GOTO Ulang Akhir: END
PERNYATAAN GOTO Note : Pernyataan GOTO sebaiknya dihindari sedapat mungkin, karena cenderung membuat program menjadi sulit dibaca. Banyak pernyataan lain yang dapat mengurangi pemakaian GOTO.
PERNYATAAN FOR
PERNYATAAN FOR Bentuk sederhana dari pernyataan FOR: Dalam hal ini: Variabel (biasa disebut variebel pencacah) harus bertipe bilangan (bulat maupun pecahan) Setiap kali sesudah blok pernyataan dieksekusi, variabel akan dinaikkan sebesar satu NilaiAwal harus lebih besar daripada NilaiAkhir FOR Variabel = NilaiAwal TO NilaiAKhir [Blok pernyataan] NEXT [Variabel]
PERNYATAAN FOR ‘**************************************************************** ‘* FOR1.BAS CLS FOR i% = 1 TO 10 PRINT i% NEXT i% END
PERNYATAAN FOR Perlu diketahui, bagian: NEXT i% bisa saja ditulis menjadi: NEXT saja Seperti pada contoh : FOR i% = 1 TO 10 ...
PERNYATAAN FOR Nilai akhir dari variabel i% (sesudah pengulangan berakhir) sebenarnya adalah sama dengan nilai akhir yang ditentukan setelah TO ditambah 1. Perhatikan contoh program berikut ini:
PERNYATAAN FOR ‘**************************************************************** ‘* FOR2.BAS CLS FOR i% = 1 TO 10 NEXT i% PRINT “Nilai setelah keluar dari FOR = ”, i% END
PERNYATAAN FOR Contoh berikut ini menunjukkan cara menampilkan tulisan “Qbasic ” sebanyak sepuluh kali. Contoh ini merupakan alternatif yang lebih baik dari contoh sebelumnya.
PERNYATAAN FOR ‘**************************************************************** ‘* FOR3.BAS CLS FOR i% = 1 TO 10 PRINT “QBasic” NEXT i% END
PERNYATAAN FOR Adapun contoh berikut menunjukkan penggunaan FOR untuk membuat penundaan eksekusi
PERNYATAAN FOR ‘**************************************************************** ‘* FOR4.BAS CLS PRINT “Tunggu Sebentar ...” FOR i% = 1 TO 200000 NEXT i% PRINT “Selesai” END
PERNYATAAN FOR Penggunaan STEP Diakhir dari baris FOR dapat ditambahkan bagian berupa : STEP NilaiKenaikan NilaiKenaikan menyatakan nilai yang digunakan untuk menaikkan nilai variabel pencacah setiap kali bagian yang terletak di dalam FOR-NEXT dieksekusi. Contoh :
PERNYATAAN FOR ‘**************************************************************** ‘* FOR5.BAS CLS FOR i% = 1 TO 10 STEP 2 PRINT i% NEXT i% PRINT “Selesai” END
PERNYATAAN FOR FOR Bersarang Pernyataan FOR juga dapat diletakkan di dalam FOR yang lain. Seperti biasa disebut juga sebagai FOR bersarang (nested for) Sebagai contoh, penggunaannya yaitu untuk membentuk tabel perkalian sebagai berikut:
PERNYATAAN FOR 1 2 3 4 5 6 n 1 1 2 2 4 3 3 6 9 4 4 8 12 16 5 5 10 15 20 25 6 6 12 18 24 30 36 N Bagian di atas dapat diperoleh dengan menggunakan program berikut ini!
PERNYATAAN FOR ‘**************************************************************** ‘* FOR6.BAS CLS INPUT “Nilai n = ”; n% FOR i% = 1 TO n% FOR j% = 1 TO i% PRINT USING “### ”; i% + j%; NEXT j% PRINT NEXT i% PRINT “Selesai” END
PERNYATAAN DO WHILE-LOOP
PERNYATAAN DO WHILE-LOOP Bentuk pernyataan ini: Pengulangan eksekusi terhadap BlokPernyataan dilakukan sesama kondisi bernilai benar. Pengujian dilakukan sebelum blok pernyataan dijalankan. DO WHILE kondisi [Blok Pernyataan] LOOP
PERNYATAAN DO WHILE-LOOP Program berikut ini menunjukkan pemakaian DO WHILE- LOOP untuk menampilkan bilangan ganjil antara 1 sampai dengan 10. Bagaimana programnya??
PERNYATAAN FOR ‘**************************************************************** ‘* DO1.BAS CLS i% = 1 DO WHILE i% < 10 PRINT i% i% = i% + 2 LOOP PRINT “Selesai” END
PERNYATAAN FOR Tampak, agar Bil% naik sebesar 2, maka di dalam blok pernyataa n di dalam DO WHILE – LOOP harus ada perintah yang secara eksplisit menaikkan 10%. Bil% = Bil% + 2 Perintah seperti ini cukup diselesaikan dengan menggunakan STEP 2 pada pernyataan FOR, kalau FOR yang digunakan.
PERNYATAAN DO UNTIL - LOOP
PERNYATAAN DO UNTIL - LOOP Bentuk pernyataan ini : Dalam hal ini, Blok Pernyataan dieksekusi selama kondisi bernilai salah. DO UNTIL kondisi [Blok Pernyataan] LOOP
PERNYATAAN DO UNTIL - LOOP Bentuk ini identik dengan : DO WHILE NOT kondisi [Blok Pernyataan] LOOP
PERNYATAAN DO – LOOP WHILE
PERNYATAAN DO – LOOP WHILE Bentuk pernyataan ini: Perintah ini semacam DO WHILE – LOOP, Perbedaanya: DO [Blok Pernyataan] LOOP WHILE kondisi
PERNYATAAN DO – LOOP WHILE Pada DO – LOOP WHILE kondisi diperiksa setelah BlokPernyataan dieksekusi. Minimal BlokPernyataanDO-LOOP WHILE akan dieksekusi sekali Pada DO WHILE – LOOP, ada kemungkinan BlokPernyataan tidak dieksekusi sama sekali, yaitu jika kondisi awal bernilai salah.
PERNYATAAN DO – LOOP UNTIL
PERNYATAAN DO – LOOP UNTIL Bentuk pernyataan ini: DO [Blok Pernyataan] LOOP UNTIL kondisi
PERNYATAAN DO – LOOP WHILE ‘**************************************************************** ‘* VALIDASI.BAS CLS DO INPUT “Masukkan sebuah bilangan bulat (1..3) : ”; Bil% MasukkanBenar = (Bil% >= 1) AND (Bil% <= 3) IF NOT MasukkanBenar THEN PRINT “Masukkan salah. Ulangi” END IF LOOP UNTIL Masukan Benar PRINT “Oke..” END
PERNYATAAN WHILE - WEND
PERNYATAAN WHILE - WEND Bentuk pernyataan ini: Bentuk ini identik dengan: DO WHILE kondisi [BlokPernyataan] LOOP WHILE kondisi [BlokPernyataan] WEND
PERNYATAAN FOR ‘**************************************************************** ‘* DO1.BAS CLS i% = 1 DO WHILE i% < 10 PRINT i% i% = i% + 2 LOOP PRINT “Selesai” END
Keluar dari Pengulangan Proses
Keluar dari Pengulangan Proses Qbasic menyediakan fasilitas yang memungkinkan keluar dari loop tanpa menggunakan pernyataan GOTO. Pernyataan yang digunakan untuk keperluan ini adalah : EXIT DO : Untuk keluar dari semua bentuk DO EXIT FOR : Untuk keluar dari FOR-NEXT
Keluar dari Pengulangan Proses Bentuk pernyataan ini: Contoh program yang menggunakan pernyataan EXIT FOR dapat dilihat sebagai berikut DO .... IF KondisiKeluar THEN EXIT DO ... END
Keluar dari Pengulangan Proses ‘**************************************************************** ‘* CARIDATA.BAS CLS JumData% = 5 DIM Nama$(JumData%) ‘Alokasi Array ‘Inisialisasi Data FOR i% = 1 TO JumData5% READ Nama$ (i%) NEXT i% ‘CariData INPUT “Nama yang dicari : ”; NamaX$ FOR i% = 1 TO JumData% IF Nama$ (i%) = NamaX$ THEN EXIT FOR END
Keluar dari Pengulangan Proses Contoh eksekusi : Nama yang dicari : ASRI Data yang dicari tidak ditemukan Nama yang dicari : KARTIKA Nama ada pad anomor utuy 5
Pengulangan Tiada Henti
Pengulangan Tiada Henti Sering kali karena kekeliruan dalam memberikan kondisi menyebabkan suatu proses berulang tanpa berhenti. Sebagai contoh ditunjukkan pada contoh berikut ini. FOR i% = 0 TO STEP 0 PRINT i% NEXT i%
Pengulangan Tiada Henti Proses yang terus berulang pada contoh di slide sebelumnya, disebabkan adanya kesalahan dalam menuliskan nilai sesudah STEP, yang seharusnya berupa 10 tetapi ditulis menjadi 0. Jika keadaan demikian terjadi, And bisa menghentikan eksekusi program dengan menekan tombol Ctrl+Break
End of File