LOGIKA dan ALGORITMA
Materi kuliah Dosen Pengampu: Heri Sismoro, S.Kom., M.Kom.
MATERI 6
STRUKTUR PERULANGAN (Repetition Structure) • Pemrograman untuk melakukan suatu proses yang berulang-ulang, jika suatu kondisi dipenuhi atau tidak • Proses ini biasanya digunakan, untuk : - Mengulang proses pamasukan data - Mengulang proses perhitungan - Mengulang proses penampilan hasil pengolahan data • Struktur perulangan terdiri dari 2 bagian : - Kodisi pengulangan, yaitu ekspresi boolean yang harus dipenuhi untuk melaksanakan pengulangan - Badan (body) pengulangan, yaitu satu atau lebih aksi yang akan diulang Disamping itu biasanya disertai dengan : - Inisialisasi, yaitu aksi yang dilakukan sebelum pengulangan dilakukan pertama kali - Terminasi, yaitu aksi yang dilakukan setelah pengulangan selesai dilaksanakan • Bentuk instruksi perulangan : - Instruksi FOR - NEXT FOR-NEXT Tunggal FOR-NEXT Tersarang - Instruksi WHILE – WEND - Instruksi DO - LOOP DO WHILE - LOOP DO UNTIL - LOOP DO – LOOP WHILE DO – LOOP UNTIL
Materi 6. Repetition Structure
22
LOGIKA dan ALGORITMA
Materi kuliah Dosen Pengampu: Heri Sismoro, S.Kom., M.Kom.
INSTRUKSI FOR - NEXT • Digunakan untuk mengeksekusi suatu baris/blok instruksi secara berulangulang selama kondisi terpenuhi • Kondisi yang digunakan untuk menguji hanya sebatas perhitungan manambah/mengurangi isi variabel counter dengan STEP tertentu • Jumlah perulangan diketahui secara pasti (n kali) • Jumlah perulangan = nilai_akhir – nilai_awal + 1 Bentuk instruksi : FOR variable_counter = nilai_awal TO nilai_akhir [STEP nilai naik/turun]
NEXT variable_counter Flowchart : FOR
Var = nilai_awal
Var <= nilai akhir
F
T Blok pernyataan
Var = Var + 1
Pernyataan sesudah NEXT
Materi 6. Repetition Structure
23
LOGIKA dan ALGORITMA
Materi kuliah Dosen Pengampu: Heri Sismoro, S.Kom., M.Kom.
Instruksi FOR- NEXT Tunggal 9 Instruksi untuk perulangan yang hanya menggunakan sebuah counter 9 Contoh : - menampilkan bilangan bulat 1 ..100 - menampilkan “hallo” 10 kali - menampilkan angka 0 .. n - menjumlahkan deret 1+2+3+…+n - menghitung rata-rata bilangan - menghitung perpangkatan (an) - menghitung faktorial (n!)
Instruksi FOR- NEXT Tersarang 9 Urutan instruksi dimulai dari kalang yang paling dalam 9 Syarat yang harus dipenuhi : - Setiap kalang tidak boleh menggunakan variabel counter yang sama - Antara kalang-kalang tersebut tidak boleh saling berpotongan (overlapping) Kalang yang berpotongan, contohnya : FOR I = 1 TO 10 FOR J = 1 TO 10 PRINT I,J NEXT I NEXT J Kalang yang menggunakan variabel counter yang sama, contohnya : FOR J = 1 TO 10 FOR J = 1 TO 10 PRINT J,J NEXT J NEXT J Kalang yang tersarang, contohnya : FOR I = 1 TO 10 FOR J = 1 TO 10
Materi 6. Repetition Structure
24
LOGIKA dan ALGORITMA
Materi kuliah Dosen Pengampu: Heri Sismoro, S.Kom., M.Kom.
PRINT J,I NEXT J NEXT I
INSTRUKSI WHILE - WEND • Proses berulang selama sebuah kondisi terpenuhi • Proses berulang tidak diketahui jumlahnya Bentuk Instruksi : WHILE WEND Bentuk ini identik dengan DO WHILE – LOOP Flowchart : F kondisi
T Blok pernyataan
Pernyatan sesudah WEND
INSTRUKSI DO - LOOP • Mempunyai fungsi yang sama dengan WHILE–WEND, yaitu melakukan operasi perulangan, tetapi untuk penulisan kondisinya dapat dilakukan secara fleksibel • Proses berulang tidak diketahui jumlahnya Bentuk Umum: 1. DO [ WHILE / UNTIL kondisi ] Materi 6. Repetition Structure
25
LOGIKA dan ALGORITMA
Materi kuliah Dosen Pengampu: Heri Sismoro, S.Kom., M.Kom.
LOOP 2. DO LOOP [ WHILE / UNTIL kondisi ] Perbedaannya : 1. Kondisi diperiksa dulu, bila memenuhi syarat, maka instruksi akan dilaksanakan 2. Minimal proses instruksi dilaksanakan sekali, baru pemeriksaan kondisi penulisan ♦
Instruksi DO WHILE – LOOP - Pengulangan dilakukan selama kondisi bernilai benar - Pengujian dilakukan sebelum blok pernyataan dijalankan Bentuk Instruksi : DO WHILE LOOP Flowchart : kondisi
F
T Blok pernyataan
Pernyatan sesudah LOOP
Contoh: Algoritma untuk menjumlahkan deret 1 + 2 + 3 +….+ N Input (N) Jml Å 0 Angka Å 1 Materi 6. Repetition Structure
26
LOGIKA dan ALGORITMA
Materi kuliah Dosen Pengampu: Heri Sismoro, S.Kom., M.Kom.
DO WHILE Angka <=N Jml Å Jml + Angka Angka Å Angka + 1 LOOP Output(Jml) END ♦
Instruksi DO UNTIL – LOOP - Pengulangan dilakukan selama kondisi bernilai salah - Pengujian dilakukan sebelum blok pernyataan dijalankan Bentuk Instruksi : DO UNTIL LOOP Flowchart : kondisi
T
F Blok pernyataan
Pernyatan sesudah LOOP
Contoh: Algoritma untuk menjumlahkan deret 1+2+3+….+N Input (N) Jml Å 0 Angka Å 1 DO UNTIL Angka >N Jml Å Jml + Angka Angka Å Angka + 1 LOOP Materi 6. Repetition Structure
27
LOGIKA dan ALGORITMA
Materi kuliah Dosen Pengampu: Heri Sismoro, S.Kom., M.Kom.
Output(Jml) END
♦
Instruksi DO LOOP – WHILE - Pengulangan dilakukan selama kondisi bernilai benar - Pengujian dilakukan setelah blok pernyataan dijalankan, sehingga minimal sekali pernyataan akan dieksekusi Bentuk Instruksi : DO LOOP WHILE DO Flowchart : Blok pernyataan
T
kondisi
F Pernyatan sesudah LOOP
Contoh : Algoritma untuk menjumlahkan deret 1+3+5+….+Un Input(Un) Jml Å 0 Angka Å 1 DO Jml Å Jml + Angka Materi 6. Repetition Structure
28
LOGIKA dan ALGORITMA
Materi kuliah Dosen Pengampu: Heri Sismoro, S.Kom., M.Kom.
Angka Å Angka + 2 LOOP WHILE Angka <=Un Output(Jml) END
Instruksi DO LOOP - UNTIL - Pengulangan dilakukan selama kondisi bernilai salah - Pengujian dilakukan setelah blok pernyataan dijalankan, sehingga minimal sekali pernyataan akan dieksekusi Bentuk Instruksi : DO LOOP UNTIL
Flowchart :
DO
Blok pernyataan
F
kondisi
T Pernyatan sesudah LOOP
Contoh : Algoritma untuk mengakses, dengan password maksimal melakukan kesalahan 3 kali Password$ Å ”sP” DO IF N>3 THEN EXIT DO END IF Materi 6. Repetition Structure
29
LOGIKA dan ALGORITMA
Materi kuliah Dosen Pengampu: Heri Sismoro, S.Kom., M.Kom.
Input(Pass$) N=N+1 LOOP UNTIL Pass$ = Password$ IF N>3 THEN Output(“Akses ditolak”) ELSE Output(“Selamat Bergabung”) END IF END
LATIHAN Tuliskan algoritma untuk: 1. Menghitung perpangkatan (an) 2. Menghitung faktorial (n!) 3. Tunjukkan keluaran dari algoritma berikut: XÅ8 JmlNilai Å 5 KÅ2 DO WHILE K <=X Input(bil) IF bil mod K = 0 THEN Jml Å Jml + bil ENDIF KÅK+2 LOOP Output(Jml) Catatan. Input bilangan berturut turut 2, 10, 6 dan 12
Materi 6. Repetition Structure
30