Pertemuan Ke-6
(Pengulangan atau Looping [1])
Pendahuluan
Pengulangan (looping) adalah pelaksanaan suatu instruksi berulangkali Di dalam algoritma, pengulangan dapat dilakukan sejumlah kali, atau sampai kondisi berhenti pengulangan tercapai
Struktur Pengulangan
Bentuk Umum:
<inisialisasi> awal pengulangan badan pengulangan akhir pengulangan <terminasi>
<inisialisasi>: aksi yang dilakukan sebelum pengulangan dilakukan untuk pertama kalinya. badan pengulangan: bagian algoritma yang diulang <terminasi>: aksi yang dilakukan setelah pengulangan selesai dilaksanakan <inisialisasi> dan <terminasi> tidak selalu harus ada, namun pada berbagi kasus inisialisasi umumnya diperlukan awal dan akhir pengulangan dinyatakan sebagai kata kunci yang bergantung pada struktur pengulangan yang digunakan
4
Struktur FOR
Jumlah pengulangan diketahui atau dapat ditentukan sebelum eksekusi. Untuk mencacah sudah jumlah pengulangan diperlukan sebuah peubah (variable) pencacah (counter). Peubah ini nilainya selalu bertambah satu setiap kali pengulangan dilakukan
Jika cacah pengulangan sudah mencapai jumlah yang dispesifikasikan, maka proses pengulangan berhenti
Bentuk umum struktur FOR:
Menaik (ascending) Menurun (descending)
6
menggunakan tipe data yang memiliki predecessor dan pencacah successor, yaitu integer atau karakter (tipe riil tidak dapat digunakan sebagai pencacah) satu atau lebih instruksi yang diulang. aksi nilai_awal harus lebih kecil atau sama dengan nilai_akhir (jika nilai_awal lebih besar dari nilai_akhir, maka badan pengulangan tidak dimasuki) pada awalnya pencacah diinisialisasikan dengan nilai_awal. Nilai pencacah secara otomatis bertambah satu setiap kali aksi pengulangan dimasuki, sampai akhirnya nilai pencacah sama dengan nilai_akhir jumlah pengulangan yang terjadi = nilai_akhir nilai_awal + 1
7
Jumlah pengulangan sudah ditentukan sebelumnya (5 kali) Badan pengulangan hanya berisi satu instruksi, yaitu write(Informatika) k adalah peubah pencacah yang bertipe integer pada mulanya k bernilai 1, nilai k selalu bertambah 1 setiap kali pengulangan dilakukan, sampai akhirnya k mencapai 5 Jumlah pengulangan yang dilakukan:
5 1 + 1 = 5 kali
Contoh 2:
Algoritma PENJUMLAHAN_DERET { Menjumlahkan deret 1 + 2 + 3 + ... + N, dengan N adalah bilangan bulat positif yang dibaca dari piranti masukan }
Nilai N dibaca terlebih dahulu dari piranti masukan. Misalnya, jika N = 5, maka jumlah angka dari 1 sampai 5 adalah deret: 1 + 2 + 3 + 4 + 5 = 15
Program PENJUMLAHAN_DERET; { Menjumlahkan deret 1 + 2 + 3 + ... + N, dengan N adalah bilangan bulat positif yang dibaca dari piranti masukan } (* DEKLARASI *) var k, N, jumlah : integer; (* DESKRIPSI *) begin write(Masukkan banyaknya suku deret : ); readln(N); jumlah := 0; for k := 1 to N do jumlah := jumlah + k; (*endfor*) writeln(jumlah); end.
10
Contoh 3:
Algoritma HITUNG_RATA_RATA { Menghitung rata-rata N buah bilangan bulat yang dibaca dari masukan. N > 0. } DEKLARASI k : integer { pencacah pengulangan } N : integer { jumlah data, > 0 } x : integer {bilangan bulat yang dibaca} jumlah : integer rata : real DESKRIPSI : read(N) { banyaknya suku deret } jumlah 0 for k1 to N do {ulangi sebanyak N kali}
piranti
Menghitung nilai rata-rata dari N buah data bilangan bulat yang dibaca dari piranti masukan. Nilai rata-rata adalah jumlah seluruh nilai dibagi dengan banyaknya nilai Misalkan, N = 5 dan data bilangan yang dibaca berturutturut adalah 12, 10, 6, 2, 4, maka nilai rata-ratanya adalah:
(12 +10 + 6 + 2 + 4)/5 = 34/5 = 6.8
write(rata)
11
Program HITUNG_RATA_RATA; { Menghitung rata-rata N buah bilangan bulat yang dibaca dari piranti masukan. N > 0. } (* DEKLARASI *) var k, N, x, jumlah : integer; rata : real;
(* DESKRIPSI *) begin write(Masukkan banyaknya suku deret : ); readln(N); jumlah := 0; for k := 1 to N do begin write(Bilangan ke-,k, : );readln(x); jumlah := jumlah + x; end; rata := jumlah/N; writeln(rata); end.
12
menggunakan tipe data yang memilki predecessor dan pencacah successor, yaitu integer atau karakter (tipe riil tidak dapat digunakan sebagai pencacah. aksi adalah satu atau lebih instruksi yang diulang) nilai_akhir harus lebih besar atau sama dengan nilai_awal (Jika nilai_akhir lebih kecil dari nilai_awal, maka badan pengulangan tidak dimasuki) pada awalnya pencacah diinisialisasikan dengan nilai_akhir. Nilai pencacah secara otomatis berkurang satu setiap kali aksi diulangi, sampai akhirnya nilai pencacah sama dengan nilai_awal. jumlah pengulangan yang terjadi = nilai_akhir nilai_awal + 1
13
Pada algoritma CETAK_ANGKA_TURUN, angka-angka yang dicetak bersesuaian dengan nilai pencacah pengulangan. Keluaran dari algoritma adalah angka 5 yang turun sampai ke angka 1: 54321
14