Upload
dinhxuyen
View
226
Download
0
Embed Size (px)
Citation preview
AlgoritmaAlgoritma PemrogramanPemrogramanPertemuan Ke- 6 dan 7Pengulangan atau Looping
Rahmady Liyantanto
S1 Teknik Informatika-Unijoyo
SubSub PokokPokok BahasanBahasan
� Pendahuluan� Struktur Pengulangan� Pengulangan tanpa kondisi dan dengan kondisi� Struktur FOR (menaik dan menurun)� Struktur WHILE� Struktur REPEAT� WHILE vs REPEAT
S1 Teknik Informatika-Unijoyo
PendahuluanPendahuluan� Pengulangan (looping) adalah pelaksanaan suatu instruksi
berulangkali� Di dalam algoritma, pengulangan dapat dilakukan
sejumlah kali, atau sampai kondisi berhenti pengulangantercapai
S1 Teknik Informatika-Unijoyo
StrukturStruktur PengulanganPengulangan� Bentuk Umum:
� <inisialisasi>: aksi yang dilakukan sebelum pengulangan dilakukanuntuk pertama kalinya.
� badan pengulangan: bagian algoritma yang diulang
� <terminasi>: aksi yang dilakukan setelah pengulangan selesaidilaksanakan
� <inisialisasi> dan <terminasi> tidak selalu harus ada, namun padaberbagi kasus inisialisasi umumnya diperlukan
� awal dan akhir pengulangan dinyatakan sebagai kata kunci yangbergantung pada struktur pengulangan yang digunakan
S1 Teknik Informatika-Unijoyo
MacamMacam strukturstruktur pengulanganpengulanganStruktur FOR pengulangan tanpa kondisi
(unconditional looping):jumlah pengulangan sudahdiketahui sebelum
eksekusiStruktur WHILE pengulangan dengan kondisi
(conditional looping): jumlahpengulangan tidak diketahui sebelum
Struktur REPEAT eksekusi program. Yang dapat ditentukanhanya kondisi berhenti pengulangan(instruksi-instruksi di dalam badanpengulangan diulangi sampaikondisi berhenti terpenuhi)
S1 Teknik Informatika-Unijoyo
StrukturStruktur FORFOR� Jumlah pengulangan diketahui atau dapat ditentukan
sebelum eksekusi.� Untuk mencacah sudah jumlah pengulangan diperlukan
sebuah peubah (variable) pencacah (counter). Peubah ininilainya selalu bertambah satu setiap kali pengulangandilakukan
� Jika cacah pengulangan sudah mencapai jumlah yangdispesifikasikan, maka proses pengulangan berhenti
� Bentuk umum struktur FOR:q Menaik (ascending)q Menurun (descending)
S1 Teknik Informatika-Unijoyo
StrukturStruktur FOR:FOR: menaikmenaik
� Pencacahàmenggunakan tipe data yang memiliki predecessor dansuccessor, yaitu integer atau karakter (tipe riil tidak dapat digunakansebagai pencacah)
� Aksià satu atau lebih instruksi yang diulang.
� Nilai_awal harus lebih kecil atau sama dengan nilai_akhir (jikanilai_awal lebih besar dari nilai_akhir, maka badan pengulangantidak dimasuki)
� Pada awalnya pencacah diinisialisasikan dengan nilai_awal. Nilaipencacah secara otomatis bertambah satu setiap kali aksipengulangan dimasuki, sampai akhirnya nilai pencacah sama dengannilai_akhir
� Jumlah pengulangan yang terjadi = nilai_akhir – nilai_awal + 1
S1 Teknik Informatika-Unijoyo
ContohContoh 1:1: MencetakMencetak tulisantulisan ‘‘InformatikaInformatika’’ sebanyaksebanyak 5 kali5 kali
� Jumlah pengulangan sudahditentukan sebelumnya (5 kali)
� Badan pengulangan hanya berisisatu instruksi, yaituwrite(‘Informatika’)
� k adalah peubah pencacah yangbertipe integer
� pada mulanya k bernilai 1, nilai kselalu bertambah 1 setiap kalipengulangan dilakukan, sampaiakhirnya k mencapai 5
� Jumlah pengulangan yang dilakukan:
5 – 1 + 1 = 5 kali
� Keluaran dari algoritmaCETAK_INFORMATIKA adalahstring ‘Informatika’ sebanyak 5 kali.
S1 Teknik Informatika-Unijoyo
ContohContoh 2:2:� Menghitung jumlah angka-angka
dari 1 sampai N
jumlah = 1 + 2 + 3 + ... + N
� Nilai N dibaca terlebih dahulu daripiranti masukan. Misalnya, jika N =5, maka jumlah angka dari 1 sampai5 adalah deret:
1 + 2 + 3 + 4 + 5 = 15
S1 Teknik Informatika-Unijoyo
S1 Teknik Informatika-Unijoyo
ContohContoh 3:3:� Menghitung nilai rata-rata dari
N buah data bilangan bulatyang dibaca dari pirantimasukan. Nilai rata-rata adalahjumlah seluruh nilai dibagidengan banyaknya nilai
� Misalkan, N = 5 dan databilangan yang dibaca berturut-turutadalah 12, 10, 6, 2,4, makanilai rata-atanya adalah:
=(12 +10 + 6 + 2 + 4)/5= 34/5= 6.8
S1 Teknik Informatika-Unijoyo
S1 Teknik Informatika-Unijoyo
StrukturStruktur FOR:FOR: menurunmenurun
� Pencacahàmenggunakan tipe data yang memiliki predecessor dansuccessor, yaitu integer atau karakter (tipe riil tidak dapat digunakansebagai pencacah)
� Aksià satu atau lebih instruksi yang diulang.
� Nilai_akhir harus lebih besar atau sama dengan nilai_awal (jikanilai_akhir lebih kecil dari nilai_awal , maka badan pengulangantidak dimasuki)
� Pada awalnya pencacah diinisialisasikan dengan nilai_akhir. Nilaipencacah secara otomatis bertambah satu setiap kali aksipengulangan dimasuki, sampai akhirnya nilai pencacah sama dengannilai_awal.
� Jumlah pengulangan yang terjadi = nilai_akhir – nilai_awal + 1
S1 Teknik Informatika-Unijoyo
Contoh: Mencetak angka 5, 4, …, 1Contoh: Mencetak angka 5, 4, …, 1
� Pada algoritmaCETAK_ANGKA_TURUN,angka-angka yang dicetakbersesuaian dengan nilaipencacah pengulangan.Keluaran dari algoritmaadalah angka 5 yang turunsampai ke angka 1:
5 4 3 2 1
S1 Teknik Informatika-Unijoyo
StrukturStruktur WHILEWHILE
� aksi (atau runtunan aksi) dilaksanakan berulang kali selamakondisi bernilai true. Jika kondisi bernilai false, badanpengulangan tidak akan dilaksanakan, yang berartipengulangan selesai
� Pengulangan harus berhenti. Pengulangan yang tidak pernahberhenti menandakan bahwa logika algoritma tersebut salah.
� Pengulangan berhenti apabila kondisi bernilai false. Agarkondisi suatu saat bernilai false, maka di dalam badanpengulangan harus ada instruksi yang mengubah nilai peubahkondisi
S1 Teknik Informatika-Unijoyo
ContohContoh 1:1: MencetakMencetak tulisantulisan ‘‘InformatikaInformatika’’ sebanyaksebanyak 5 kali5 kali
S1 Teknik Informatika-Unijoyo
ContohContoh 2:2:� Menghitung jumlah angka-
angka dari 1 sampai N. NilaiN dibaca terlebih dahulu daripiranti masukan.
� Misalnya, jika N = 5, makajumlah angka dari 1 sampai 5adalah deret
1 + 2 + 3 + 4 + 5 = 15
S1 Teknik Informatika-Unijoyo
S1 Teknik Informatika-Unijoyo
ContohContoh 3:3:� Menghitung nilai rata-rata dari
N buah data bilangan bulatyang dibaca dari pirantimasukan. Nilai rata-rata adalahjumlah seluruh nilai dibagidengan banyaknya nilai
� Misalkan, N = 5 dan databilangan yang dibaca berturut-turutadalah 12, 10, 6, 2,4, makanilai rata-atanya adalah:
=(12 +10 + 6 + 2 + 4)/5= 34/5= 6.8
S1 Teknik Informatika-Unijoyo
S1 Teknik Informatika-Unijoyo
PerihalPerihal WHILEWHILE� Kesalahan yang biasa terjadi pada penggunaan struktur
WHILE adalah tidak menuliskan instruksi yangmengubah peubah kondisi, misalnya tidak menuliskaninstruksi kßk+1. Sehingga pengulangan tidak pernahmemenuhi kondisi pengulangan berhenti
� WHILE juga dapat digunakan sebagai penggunaan FOR.(WHILE juga dapat digunakan untuk proses yang jumlahpengulangannya tidak dapat ditentukan)
S1 Teknik Informatika-Unijoyo
ContohContoh 4:4:� Dalam algoritma
JUMLAH_DAN_KALI,ditetapkan bahwa darimasukan nilai integer x, jika xganjil, maka peubah M yangtelah diinisialisasi dengan 1ditambah 10, dan jika x genapmaka M dikali 10
� Pengulangan ini akan terusdilakukan selama x tidaksama dengan 0
S1 Teknik Informatika-Unijoyo
S1 Teknik Informatika-Unijoyo
StrukturStruktur REPEATREPEAT
� Notasi ini mendasarkan pengulangan pada kondisiboolean. Aksi di dalam badan pengulangan diulangsampai kondisi boolean bernilai true. Dengan kata lain,jika kondisi boolean masih false, pengulangan masihterus dilakukan. Karena proses pengulangan suatu saatharus berhenti, maka di dalam badan pengulangan harusada aksi yang mengubah nilai peubah kondisi .
� Struktur REPEAT mempunyai makna yang sama denganWHILE, dan dalam beberapa masalah kedua strukturtersebut komplemen satu sama lain.
S1 Teknik Informatika-Unijoyo
ContohContoh 1:1: MencetakMencetak tulisantulisan ‘‘InformatikaInformatika’’ sebanyaksebanyak 5 kali5 kali
� Badan pengulangan berisi duainstruksi:
write(‘Informatika’) dankßk+1
� Kondisi berhenti pengulangan adalahk > 5, artinya jika k masih ≤ 5, makabadan pengulangan masih bolehdimasuki
� k harus terdefinisi nilainya sebelumpengulangan dilaksanakan pertamakali. Karena itu, pada bagian inisialisasi,k diisi dengan nilai 1
� Instruksi yang mengubah nilaipeubahkondisi adalah instruksi kßk+1.Instruksi ini mencacah jumlahpengulangan, sehingga jika k > 5,pengulangan dihentikan
S1 Teknik Informatika-Unijoyo
Contoh 2: Menghitung 1 + 2 + 3+ … + NContoh 2: Menghitung 1 + 2 + 3+ … + NNilai N dibaca terlebih dahulu (N > 0).Nilai N dibaca terlebih dahulu (N > 0).
S1 Teknik Informatika-Unijoyo
S1 Teknik Informatika-Unijoyo
ContohContoh 3:3: MenghitungMenghitung nilainilai ratarata--rata Nrata N buahbuah datadatabilanganbilangan bulat yang dibaca dari piranti masukanbulat yang dibaca dari piranti masukan
S1 Teknik Informatika-Unijoyo
S1 Teknik Informatika-Unijoyo
WHILEWHILE vsvs REPEATREPEAT� Seperti halnya pada struktur WHILE, struktur REPEAT juga dapat
digunakan untuk masalah yang jumlah pengulangannya tidak diketahui atautidak dapat ditentukan
� Pemilihan struktur WHILE atau REPEAT bergantung padakarakteristik dari persoalan. Ada permasalahan yang hanya benar bilamenggunakan struktur WHILE, tetapi bisa fatal bila menggunakanREPEAT
� Perbedaan antara struktur REPEAT dan WHILE:
q struktur REPEATà kondisi pengulangan diperiksa pada akhirpengulangan. Jadi, instruksi di dalam badan pengulangan dilaksanakandulu, baru kemudian pengetesan kondisi dilakukan. Sehingga badanpengulangan dilaksanakan paling sedikit satu kali
q struktur WHILEà kondisi pengulangan diperiksa di awalpengulangan. Jadi, instruksi di dalam badan pengulangan hanya dapatdilaksanakan bila pengetesan kondisi menghasilkan nilai true. Sehingga,badan pengulangan mungkin tidak akan pernah dilaksanakan bilakondisi pengulangan pertama kali bernilai false
S1 Teknik Informatika-Unijoyo
WHILEWHILE vsvs REPEAT:REPEAT: JumlahJumlah PengulanganPengulangan
Hasil dari algoritma tidak ada(karena badan pengulangan tidakpernah dimasuki)
S1 Teknik Informatika-Unijoyo
Hasil dari algoritma adalah 8(karena badan pengulangantelah dimasuki satu kali)
KesimpulanKesimpulan [1][1]� Pemilihan struktur pengulangan yang tepat tergantung
pada masalah yang akan diprogram� Struktur-struktur pengulangan terdiri dari Struktur
FOR,Struk tur WHILE, dan Struktur REPEAT� Struktur FOR digunakan pada aksi yang jumlah
pengulangannya diketahui atau dapat ditentukan sebelumeksekusi
� Struktur FOR ada 2 macam, yaitu menaik (ascending)dan menurun (descending)
S1 Teknik Informatika-Unijoyo
KesimpulanKesimpulan [2][2]� Struktur WHILE dan REPEAT digunakan pada aksi yang
jumlah pengulangan tidak diketahui sebelum eksekusiprogram. Yang dapat ditentukan hanya kondisi berhentipengulangan
� Struktur WHILE digunakan pada kasus yangmengharuskan terlebih dahulu pemeriksaan kondisiobjek sebelum objek tersebut dimanipulasi
� Struktur REPEAT digunakan pada kasus yang terlebihdahulu memanipulasi objek, baru kemudian memeriksakondisi objek tersebut
S1 Teknik Informatika-Unijoyo
DaftarDaftar PustakaPustaka� Jogiyanto HM [1989]. Turbo Pascal, Yogyakarta: Andi
Offset.� Noor Ifada [2005]. Diktat Matakuliah Algoritma
Pemrograman (Hibah Kompetisi A1), Bangkalan:Jurusan Teknik Informatika, Universitas Trunojoyo.
� Rinaldi Munir [2003]. Algoritma dan Pemrogramandengan Pascal dan C edisi Kedua, Bandung:Informatika.
S1 Teknik Informatika-Unijoyo