MODUL MATA KULIAH LOGIKA DAN ALGORITMA
STIMIK EL RAHMA JOGJAKARTA 2015
JURUSAN : SISTEM INFORMASI SEMESTER GENAP 2015
Materi : ITERASI
Iterasi adalah sifat tertentu dari algoritma atau program komputer di mana suatu urutan atau lebih dari langkah algoritmik yang dilakukan di loop program.
Iterasi dapat diartikan sebagai suatu proses atau metode yang digunakan secara berulang-ulang (pengberulang-ulangan) dalam menyelesaikan suatu permasalahan matematik.
Salah satu kelebihan komputer dibandingkan dengan manusia adalah kemampuannya untuk mengulang suatu instruksi, bahkan aksi, secara berulang-ulang dengan performansi yang sama. Berbeda dengan manusia yang cenderung melakukan kesalahan jika melakukan hal yang sama karena lelah atau bosan.
Struktur pengulangan secara umum terdiri dari dua bagian :
1. Kondisi pengulangan, yaitu ekspresi boolean yang harus dipenuhi untuk melaksanakan pengulangan. Kondisi ini ada yang dinyatakan secara ekplisit oleh pemrogram atau dikelola sendiri oleh komputer (implisit).
2. Badan pengulangan, yaitu aksi/pernyataan yang harus diulang selama kondisi yang ditentukan untuk pengulangan masih dipenuhi.
Disamping itu, struktur pengulangan biasanya disertai dengan bagian :
1. Inisialisasi, yaitu aksi yang dilakukan sebelum pengulangan dilakukan pertama kali. 2. Terminasi, yaitu aksi yang dilakukan setelah pengulangan selesai dilaksanakan. Insialisasi dan terminasi tidak selalu harus ada, namun pada berbagai kasus inisisalisasi umumnya diperlukan.
Struktur pengulangan secara umum :
<inisialisasi> awal pengulangan
badan pengulangan akhir pengulangan
<terminasi>
Struktur Kontrol pengulangan terdiri dari : a. Pernyataan FOR
b. Pernyataan WHILE a. Pernyataan REPEAT 5.1 Pernyataan FOR
Adalah pengulangan yang paling sederhana. Pengulangan ini dipakai jika kita mengetahui berapa kali pengulangan akan dilakukan.
Bentuk umum pernyataan FOR ada dua macam, yaitu menaik (ascending) atau menurun (descending).
FOR menaik
Bentuk umum struktur kontrol FOR menaik ini, dapat dirumuskan dengan : Notasi Algoritmik :
FOR (nama_pencacahnilai_awal) TO (nilai_akhir) DO
(aksi/pernyataan) EndFor
Keterangan:
 Aksi/pernyataan adalah satu atau lebih instruksi yang diulang.
Keterangan:
 Nilai_awal dan nilai_akhir pada umumnya bilangan integer atau karakter, asal nilai_akhir ≥ nilai_awal
 Pengulangan dilaksanakan berulang-ulang tanpa kondisi atau syarat apapun dengan jumlah ulangan= nilai_akhir – nilai_awal + 1
 Pada awalnya, pencacah diinisialisasi dengan nilai_awal. Nilai pencacah secara otomatis bertambah satu setiap kali badan pengulangan dimasuki, sampai akhirnya nilai pencacah = nilai_akhir.
Notasi Pascal :
Contoh :
for (nama_pencacah:=nilai_awal) to (nilai_akhir) do begin
Misalkan kita ingin mencetak angka 1 sampai 10, maka algoritma dan programnya adalah :
Algoritmik :
Program Tulis_nomor Deklarasi :
nomor: integer Algoritma :
FOR nomor1 To 10 DO
write(nomor)
EndFor
Pascal :
Program Tulis_nomor; Var
nomor : integer; Begin
for nomor:= 1 to 10 do
writeln(nomor); end.
FOR menurun
Bentuk umum struktur kontrol FOR menurun ini, dapat dirumuskan dengan : Notasi Algoritmik :
FOR (nama_pencacahnilai_awal) DOWNTO
(nilai_akhir) DO
(aksi/pernyataan)
EndFor
Keterangan:
 Nilai_awal dan nilai_akhir pada umumnya bilangan integer atau karakter, asal nilai_awal ≥ nilai_akhir
 Pengulangan dilaksanakan berulang-ulang tanpa kondisi atau syarat apapun dengan jumlah ulangan= nilai_awal – nilai_akhir + 1.
 Pada awalnya, pencacah diinisialisasi dengan nilai_awal. Nilai pencacah secara otomatis berkurang satu setiap kali badan pengulangan dimasuki, sampai akhirnya nilai pencacah = nilai_akhir.
Notasi Pascal :
Contoh :
Misalkan kita ingin meghitung mundur angka dari 10 sampai 1, maka algoritma dan programnya adalah :
Algoritmik :
Program hitung_mundur Deklarasi :
nomor: integer Algoritma :
FOR nomor10 Downto 1 DO
write(nomor)
EndFor Pascal :
Program Hitung_mundur; Var
nomor : integer; Begin
for nomor:= 10 downto 1 do
writeln(nomor); end.
for (nama_pencacah:=nilai_awal) downto (nilai_akhir) do begin
5.2 Pernyataan WHILE
Bentuk umum struktur kontrol WHILE dapat dirumuskan dengan :
Keterangan:
 Pengulangan bisa tidak dilakukan , jika pada saat awal, kondisi_pengulangan tidak terpenuhi (false).
 Tidak mengetahui berapa kali pengulangan akan dikerjakan
 Kondisi pengulangan akan diperiksa sebelum masuk ke aksi / pernyataan.
 Pengulangan akan dilaksanakan berulang-ulang jika kondisi_pengulangan dipenuhi (true).
 Di dalam pernyataan, harus ada instruksi yang mengubah nilai kondisi agar pengulangan berhenti.
Notasi Pascal :
Contoh :
Buat algoritma/program untuk menampilkan angka sesuai dengan angka yang di-input dari keyboard. Program akan berhenti jika user meng-input angka 0 ;
Algoritmik :
Program CetakAngka Deklarasi :
i,angka: integer Algoritma :
write('Masukan angkanya: ') read(angka)
i1
While (angka ≠ 0) do
write(‘Angka yang anda input:’, angka) write('Masukan angkanya: ')
WHILE (kondisi_pengulangan) DO
(aksi/pernyataan)
EndWhile
while (kondisi_pengulangan) do begin
read(angka) 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 :
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 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 (N>0)
2. Buat algoritma/program untuk menampilkan kata “Saya sedang belajar pemrograman” sebanyak 50 kali.
3. Buat algoritma/program untuk menulis angka deret tambah mulai dari angka 0 hingga 100 dengan pertambahan 10.
Sehingga tampilan output di layar :
0 10 20 30 40 50 60 70 80 90 100 (dengan selang 2 spasi diantara angka-angka itu).
Bilangan asli adalah bilangan bulat dimulai dari 1,2,3,….
5. Buat algoritma/program 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 algoritma/program 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.