CS 1023 Pemrograman Komputer Lecture Pengulangan 20107 Looping

  • Slides: 21
Download presentation
CS 1023 Pemrograman Komputer Lecture Pengulangan 20/1/'07 Looping

CS 1023 Pemrograman Komputer Lecture Pengulangan 20/1/'07 Looping

Pengantar[1] • Salah satu kemampuan komputer yang dapat dimanfaatkan adalah mengulang suatu instruksi, bahkan

Pengantar[1] • Salah satu kemampuan komputer yang dapat dimanfaatkan adalah 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), komputer akan melakukan pengulangan dengan setia sesuai dengan perintah yang diberikan. 20/1/'07 Looping 2

Pengantar[2] • Pengulangan harus berhenti, ini yang harus dijamin oleh pemrogram. Pada bab tentang

Pengantar[2] • 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. 20/1/'07 Looping 3

Struktur Pengulangan terdiri dari dua bagian : • kondisi yang mengakibatkan pengulangan suatu saat

Struktur 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 20/1/'07 Looping 4

Struktur Pengulangan Disamping itu, struktur pengulangan biasanya disertai dengan bagian : • inisialisasi, yaitu

Struktur Pengulangan 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 20/1/'07 Looping 5

Notasi Pengulangan • Notasi pengulangan adalah satu notasi dasar dalam penulisan algoritma selain analisa

Notasi Pengulangan • Notasi pengulangan adalah satu notasi dasar dalam penulisan algoritma selain analisa kasus. Notasi pengulangan merupakan sebagian dari skema pengulangan yang akan dibahas pada bab-bab berikutnya. Ada lima macam notasi pengulangan: • berdasarkan jumlah pengulangan (repeat times) • berdasarkan kondisi berhenti (repeat until) • berdasarkan kondisi pengulangan (while do) • berdasarkan dua aksi (iterate stop) • berdasarkan pencacah (traversal) 20/1/'07 Looping 6

Berdasarkan jumlah pengulangan • Aksi akan diulang sebanyak n kali, dan bukan urusan pemrogram

Berdasarkan jumlah pengulangan • Aksi akan diulang sebanyak n kali, dan bukan urusan pemrogram untuk mengelola pengulangan tersebut. • Dengan hanya menyebutkan pengulangan tersebut, pengulangan pasti akan berhenti suatu saat. 20/1/'07 Looping 7

Berdasarkan kondisi berhenti • Aksi akan dihentikan jika kondisi-berhenti dipenuhi (berharga true) • Aksi

Berdasarkan kondisi berhenti • 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 kondisiberhenti. • 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. 20/1/'07 Looping 8

Berdasarkan kondisi pengulangan • Aksi akan dilakukan selama kondisi-pengulangan masih dipenuhi (berharga true). •

Berdasarkan kondisi pengulangan • 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). 20/1/'07 Looping 9

Berdasarkan dua aksi(iterate stop) iterate Aksi-1 stop (kondisi-berhenti) Aksi-2 { Kondisi berhenti dicapai di

Berdasarkan dua aksi(iterate stop) iterate Aksi-1 stop (kondisi-berhenti) Aksi-2 { Kondisi berhenti dicapai di titik program ini} 20/1/'07 Looping 10

Berdasarkan dua aksi(iterate stop) • • Pengulangan ini seolah-olah adalah "gabungan“ pengulangan kedua dan

Berdasarkan dua aksi(iterate stop) • • Pengulangan ini seolah-olah adalah "gabungan“ pengulangan kedua dan ketiga Mekanisme : 1. 2. 3. – Secara otomatis Aksi-1 dieksekusi Kemudian test terhadap kondisi berhenti Tergantung kondisi berhenti : Aksi-2 akan diaktifkan dan kemudian Aksi-1 yang berikutnya diulang, atau – pengulangan dihentikan karena efek neto dari Aksi-1 menghasilkan kondisi berhenti • Pengulangan ini berguna untuk kasus-kasus dimana Aksi-2 merupakan hal yang harus dilakukan tergantung dari hasil Aksi-1 20/1/'07 Looping 11

Berdasarkan pencacah (traversal) nama-pencacah traversal [range harga] Aksi { Catatan : nama--pencacah harus suatu

Berdasarkan pencacah (traversal) nama-pencacah traversal [range harga] Aksi { Catatan : nama--pencacah harus suatu type yang terdefinisi suksesor dan predesesornya, setelah pelaksanaan pengulangan selesai, harga yang tersimpan pada nama-pencacah tidak terdefinisi : jika hendak dipakai, harus didefinisikan kembali } 20/1/'07 Looping 12

Berdasarkan pencacah (traversal) • Pemrogram tidak perlu melakukan operasi terhadap suksesor/predesesor karena setiap kali

Berdasarkan pencacah (traversal) • Pemrogram tidak perlu melakukan operasi terhadap suksesor/predesesor karena setiap kali selesai melakukan Aksi, otomatis mesin akan melakukan operasi mendapatkan suksesor dari harga yang sedang berlaku saat itu • Pengulangan otomatis berhenti setelah penjelahan terhadap nama-pencacah sudah mencakup semua harga yang terdefinisi dalam range harga • Pengulangan ini biasanya dipakai jika harga yang tersimpan dalam nama-pencacah ingin dimanfaatkan dalam Aksi, namun tidak boleh DIUBAH karena akan mengacaukan urutan eksekusi yang dilakukan. 20/1/'07 Looping 13

Penutup • Suatu bentuk pengulangan dapat "diterjemahkan" menjadi bentuk yang lain dengan notasi algoritmik

Penutup • Suatu bentuk pengulangan dapat "diterjemahkan" menjadi bentuk yang lain dengan notasi algoritmik yang tersedia • Instruksi pengulangan tidak dapat berdiri sendiri, dan harus disertai dengan instruksi lain sebelum dan sesudah pengulangan • Persoalannya adalah memilih bentuk pengulangan yang benar dan tepat • Tidak semua bahasa pemrograman yang ada menyediakan semua bentuk pengulangan di atas 20/1/'07 Looping 14

Contoh algoritma[1] Program TULISBIL 1 {Dibaca N >= 0, Menuliskan 1, 2, 3, …

Contoh algoritma[1] Program TULISBIL 1 {Dibaca N >= 0, Menuliskan 1, 2, 3, … N berderet ke bawah, dengan bentuk repeat. . N times} Kamus : integer {bilangan yang akan ditulis} Algoritma : input (N) i 1 repeat N times output (i) i i + 1 20/1/'07 Looping 15

Contoh algoritma[2] Program TULISBIL 2 {Dibaca N >= 0, Menuliskan 1, 2, 3, …

Contoh algoritma[2] Program TULISBIL 2 {Dibaca N >= 0, Menuliskan 1, 2, 3, … N berderet ke bawah, dengan bentuk repeat. . until…} Kamus : integer {bilangan yang akan ditulis} Algoritma : input (N) i 1 repeat output (i) i i + 1 until (i>N) 20/1/'07 Looping 16

Contoh algoritma[3] Program TULISBIL 3 {Dibaca N >= 0, Menuliskan 1, 2, 3, …

Contoh algoritma[3] Program TULISBIL 3 {Dibaca N >= 0, Menuliskan 1, 2, 3, … N berderet ke bawah, dengan bentuk while…do} Kamus : integer {bilangan yang akan ditulis} Algoritma : input (N) i 1 while i <= N do output (i) i i + 1 { i > N} 20/1/'07 Looping 17

Contoh algoritma[4] Program TULISBIL 4 {Dibaca N >= 0, Menuliskan 1, 2, 3, …

Contoh algoritma[4] Program TULISBIL 4 {Dibaca N >= 0, Menuliskan 1, 2, 3, … N berderet ke bawah, dengan bentuk traversal} Kamus : integer {bilangan yang akan ditulis} Algoritma : input (N) i traversal [1. . N] output (i) 20/1/'07 Looping 18

Contoh algoritma[5] Program TULISBIL 1 {Dibaca N >= 0, Menuliskan 1, 2, 3, …

Contoh algoritma[5] Program TULISBIL 1 {Dibaca N >= 0, Menuliskan 1, 2, 3, … N berderet ke bawah, dengan bentuk repeat. . N times} Kamus : integer {bilangan yang akan ditulis} Algoritma : input (N) i 1 repeat N times output (i) i i + 1 20/1/'07 Looping 19

Exercise : • In 2020, Mary Smith, a student of STT Telkom, has borrowed

Exercise : • In 2020, Mary Smith, a student of STT Telkom, has borrowed $3, 000 to help pay her college expenses. After setting up a budget, $85 was the maximum monthly payment she could afford to make on the loan. Develop a solution to calculate and print the interest, the principal, and the balance on the loan per month. Other information she would like to know is the number of years and months it will take to pay the loan back and the total interest she will pay during hat period. The interest rate is 1% per month on the unpaid balance. Keep in mind these formulas : interest = balance * interest rate payment = balance – interest new balance = balance - payment 20/1/'07 Looping 20

Terima kasih, selamat mengerjakan latihan 20/1/'07 Looping 21

Terima kasih, selamat mengerjakan latihan 20/1/'07 Looping 21