Perulangan (Loop) Oleh : Tim Teaching Bernadus Anggo Seno Aji, S.Kom., M.Kom Farah Zakiyah Rahmanti, S.ST., M.T. Agustus 2018
Bahan kajian Mata kuliah Notasi Algoritmik, Tipe Dasar, Nilai, Percabangan Percabangan Perulangan Skema Pemprosesan Sekuensial Fungsi UTS Fungsi Rekursif Prosedur Array dan String Searching Sorting UAS
Pengantar Percabangan Komputer dapat melakukan pengulangan dengan performansi yang selalu sama Berbeda dengan manusia yang melakukan kesalahan jika melakukan sesuatu yang sama berulang-ulang. (karena kecapekan dan sebagainya)
Pengantar Perulangan Perulangan harus berhenti Perulangan yang tidak berhenti berarti algoritmanya salah Perulangan yang tidak berhenti harus dapat dideteksi oleh programmer sebelum program dieksekusi Pengulangan harus berhenti, ini yang harus dijamin oleh pemrogram. Pada bab tentang "mengupas kentang" telah diberikan suatu contoh di mana pengulangan mungkin dilakukan terus menerus. salah satu sifat algoritma yang harus dipenuhi adalah terjadi dalam selang waktu terbatas maka pengulangan yang terus menerus (looping) adalah algoritma yang salah. Pengulangan yang terus menerus harus dapat dideteksi pemrogram bahkan sebelum program dieksekusi oleh mesin, berdasarkan ketidaksesuaian (invariansi) dari badan pengulangan tersebut.
Struktur Perulangan 2 Bagian : Kondisi, syarat atau kondisi yang harus dipenuhi jika ingin melakukan perulangan Badan Perulangan, aksi yang dilakukan jika kondisi terpenuhi. Pengulangan terdiri dari dua bagian : kondisi yang mengakibatkan pengulangan suatu saat berhenti, yang dinyatakan oleh sebuah ekspresi logik baik secara eksplisit maupun implisit badan pengulangan, yaitu aksi yang harus diulang selama kondisi yang ditentukan untuk pengulangan masih dipenuhi
Loop Structure In addition, the loop structure is usually accompanied by parts: initialization, the action is performed before the loop was first performed. termination, i.e. the actions taken after the repetitions completed Disamping itu, struktur pengulangan biasanya disertai dengan bagian : inisialisasi, yaitu aksi yang dilakukan sebelum pengulangan dilakukan pertama kali. terminasi, yaitu aksi yang dilakukan setelah pengulangan selesai dilakukan
Kenapa pengulangan diperlukan ??? Tulis “Institut Teknologi Telkom Surabaya” 10 kali Tanpa pengulangan Algoritma : Output(“Institut Teknologi Telkom Surabaya”)
Kenapa pengulangan diperlukan??? [2] Tulis “Institut Teknologi Telkom Surabaya” 10 kali Dengan pengulangan Algoritma : loop 10 times Output(“Institut Teknologi Telkom Surabaya”)
Kenapa pengulangan diperlukan??? [3] I want to eat until I can’t eat anymore Without looping Algoritma : Eat() If want more then …. Repetition of The same process Repetition of The same process Not certain how many times we have to write
Kenapa pengulangan diperlukan??? [2] I want to eat until I can’t eat anymore With looping Algoritma : loop until not want more Eat()
Looping Notation There are three kinds of repetition notation: by stop condition (repeat until) based on the condition of repetition (while do) based enumerator (for to do)
Loop : FOR-TO-DO The value of var will increase automatically after each iteration Action will be repeated until the value of var equals to end Action might be never executed if since the beginning the condition is not met
Loop : FOR-TO-DO Buatlah algoritma untuk menampilkan deret bilangan dari 1 sampai n Input : n (integer) Proses : Tampilkan bilangan dari 1 sampai n Output : 1 2 3 . . . n
Contoh Buatlah algoritma untuk menampilkan deret bilangan genap antara 1 sampai n Input : n (integer) Proses : Tampilkan bilangan genap X dimana 1 <= X <= n Output : deret bilangan genap
Loop : Repeat-Until Action will be stopped if stop condition satisfied Action will be repeated if the stop condition has not been reached Actions will be performed at least once Aksi akan dihentikan jika kondisi-berhenti dipenuhi (berharga true) Aksi akan diulang jika kondisi-berhenti belum tercapai. Badan pengulangan pada notasi ini (Aksi) minimal akan dilakukan satu kali karena pada waktu eksekusi pengulangan yang pertama tidak ada dilakukan test terhadap kondisi-berhenti. Test terhadap kondisi berhenti dilakukan setelah Aksi dilaksanakan. Pengulangan ini berpotensi untuk menimbulkan "kebocoran" (ada Aksi yang dileksekusi tanpa pernah diperiksa kondisi pelaksanaannya), jika ada kemungkinan bahwa seharusnya Aksi tidak pernah boleh dilakukan untuk kasus yang tertentu
Repeat-until Buatlah algoritma untuk menampilkan deret bilangan dari 1 sampai n Input : n (integer) Proses : Tampilkan bilangan dari 1 sampai n Output : 1 2 3 . . . n
Loop : While-do Aksi akan di ulang selama kondisi terpenuhi Aksi mungkin tidak dilakukan sama sekali jika sejak awal kondisi tidak terpenuhi Aksi akan dilakukan selama kondisi-pengulangan masih dipenuhi (berharga true). Badan pengulangan (Aksi) pada notasi ini mungkin tidak akan pernah dilakukan, karena sebelum aksi yang pertama dieksekusi dilakukan test terhadap kondisi berhenti. Test terhadap kondisi-pengulangan dilakukan setiap kali sebelum Aksi dilaksanakan. Pengulangan ini berpotensi untuk menimbulkan aksi "kosong" (tidak pernah melakukan apa-apa karena pada test yang pertama, kondisi-pengulangan tidak dipenuhi (berharga false).
While-do Buatlah algoritma untuk menampilkan deret bilangan dari 1 sampai n Input : n (integer) Proses : Tampilkan bilangan dari 1 sampai n Output : 1 2 3 . . . n
Repeat-Until Vs While-do
For to do
repeat-until
while-do
Latihan 1 Buatlah algoritma untuk meminta inputan bilangan bulat dari user secara berulang-ulang sampai user menginputkan angka 999. Kemudian outputkan jumlah bilangan yang telah diinputkan user tersebut (selain 999)
Latihan 2 Buatlah algoritma untuk menghitung n!, dimana n adalah bilangan bulat inputan dari user.
Latihan 3 Buatlah algoritma yang meminta dua buah bilangan bulat. Bilangan yang lebih rendah menjadi batas bawah, dan bilangan yang lebih tinggi menjadi batas atas. Lalu outputkan jumlah bilangan genap, dan jumlah bilangan ganjil yang ada diantara batas bawah dan batas atas tersebut (termasuk batas atas dan batas bawah).
Question?
Terima Kasih