34
Algoritma Algoritma Pemrograman Pemrograman Pertemuan Ke- 6 dan 7 Pengulangan atau Looping Rahmady Liyantanto [email protected] liyantanto.wordpress.com S1 Teknik Informatika-Unijoyo

AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

Embed Size (px)

Citation preview

Page 1: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

AlgoritmaAlgoritma PemrogramanPemrogramanPertemuan Ke- 6 dan 7Pengulangan atau Looping

Rahmady Liyantanto

[email protected]

S1 Teknik Informatika-Unijoyo

Page 2: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 3: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 4: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 5: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 6: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 7: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 8: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 9: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 10: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

S1 Teknik Informatika-Unijoyo

Page 11: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 12: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

S1 Teknik Informatika-Unijoyo

Page 13: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 14: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 15: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 16: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

ContohContoh 1:1: MencetakMencetak tulisantulisan ‘‘InformatikaInformatika’’ sebanyaksebanyak 5 kali5 kali

S1 Teknik Informatika-Unijoyo

Page 17: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 18: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

S1 Teknik Informatika-Unijoyo

Page 19: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 20: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

S1 Teknik Informatika-Unijoyo

Page 21: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 22: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 23: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

S1 Teknik Informatika-Unijoyo

Page 24: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 25: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 26: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 27: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

S1 Teknik Informatika-Unijoyo

Page 28: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 29: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

S1 Teknik Informatika-Unijoyo

Page 30: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 31: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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)

Page 32: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 33: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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

Page 34: AlgoritmaAlgoritma Pemrograman Pemrograman · MacamMacam struktur struktur pengulanganpengulangan Struktur FOR pengulangan tanpa kondisi (unconditional looping): jumlah pengulangan

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