Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehYenny Pranata Telah diubah "7 tahun yang lalu
1
Prodi S1-Sistem Komputer, F Teknik Elektro
KUG1A3 Algoritma& Pemrograman Burhanuddin D Prodi S1-Sistem Komputer, F Teknik Elektro Universitas Telkom Presentasi 6 Pengulangan 2
2
Pengujian di akhir pengulangan
repeat aksi-1 aksi-2 until (kondisi) Aksi akan diulang selama kondisi masih bernilai false/salah. Kondisi akan selalu diuji setelah aksi dilakukan Salah satu aksi harus mengubah nilai kondisi menjadi benar. Pengulangan akan berhenti jika kondisi bernilai benar.
3
Contoh1: Pengujian di akhir pengulangan
Ambil sebuah apel dan masukkan ke keranjang, dan ulangi sampai keranjang penuh repeat ambil sebuah apel masukkan ke keranjang until (keranjang penuh)
4
Perhatikan repeat ambil sebuah apel masukkan ke keranjang
until (keranjang penuh) Pengambilan dan pemasukan apel selalu dilakukan minimal 1x. Dengan demikian, harus dipastikan bahwa kelompok instruksi dapat dilakukan minimal satu kali sebelum pengecekan kondisi.
5
Perhatikan Jika di awal gelas telah penuh, seperti video tersebut :
Struktur while..do: tidak akan mengambil dan mengisi minuman ke dalam gelas. Struktur repeat..until: akan terjadi kesalahan karena kelompok instruksi harus dilakukan meskipun kondisi sudah memenuhi syarat. Penggunaan struktur repeat..until harus dilakukan dengan hati-hati : harus dijamin instruksi bisa dilakukan minimal satu kali !
6
Contoh2: Pengujian di akhir pengulangan
Baca data, jumlahkan data tersebut, tambahkan x dengan 2 dan ulangi sampai nilai x lebih dari y. Nilai x dan y harus diketahui sebelum pengulangan Pengujian dengan ( x > y ) x1; y 10 repeat input(data) jumlah jumlah + data x x + 2 until (x>y)
7
Contoh3 : Pengujian di akhir pengulangan
Baca data dan jumlahkan data tersebut sampai data yang dibaca adalah 999. Hati-hati : kalau data pertama sudah 999, maka ‘jumlah’ harus=0. Pengujian dengan ( data = 999 ) Input(data) If (data≠ 999 ) then repeat jumlah jumlah + data input (data ) until (data=999)
8
Pascal: Pengujian di akhir pengulangan
Bentuk program sangat mirip dengan notasi algoritma x:=1; y:=10; repeat readln(data); jml:= jml + data; x:=x + 2; until (x>y); readln(data); If (data≠ 999 ) then repeat jml:=jml+data; readln(data ); until (data=999); Perhatian : repeat –until tidak perlu ‘begin’ dan ‘end’.
9
Berdasarkan dua aksi iterate kelompok-aksi-1 Stop ( kondisi )
Kelompok-aksi-1 akan diulang selama kondisi bernilai false/salah. Jika kondisi bernilai salah, kelompok-aksi-2 akan dijalankan dan berlanjut ke kelompok-aksi-1. Salah satu aksi harus mengubah nilai kondisi menjadi benar. Pengulangan akan berhenti jika kondisi bernilai benar.
10
Contoh: Pengujian 2 aksi
Ambil sebuah apel. Masukkan ke keranjang, dan ulangi sampai keranjang penuh, dengan mengambil lagi sebuah apel. Ambil sebuah apel iterate masukkan ke keranjang stop (keranjang penuh) ambil sebuah apel Perhatian : pemasukan apel ke keranjang dilakukan minimal 1x, sedangkan instruksi di bawah ‘stop’ belum tentu dilakukan.
11
Contoh: Pengujian 2 aksi
Ambil sebuah apel. Masukkan ke keranjang, dan ulangi sampai keranjang penuh, dengan mengambil lagi sebuah apel. Ambil sebuah apel Masukkan ke keranjang Cek : keranjang penuh? (T) Ambil 1 apel Masukkan ke keranjang Cek : keranjang penuh? (T) Ambil 1 apel .... Masukkan ke keranjang Cek : keranjang penuh? (Y)
12
Contoh2: Pengujian di akhir pengulangan
Baca data. Jumlahkan data tersebut, tambahkan x dengan 2 dan ulangi sampai nilai x lebih dari y. Sebelum mengulang, bacalah kembali sebuah data. input(data) iterate jumlah jumlah + data x x + 2 stop (x>y)
13
Contoh3 : Pengujian di akhir pengulangan
Baca data. Jumlahkan data tersebut dan ulangi sampai data yang dibaca adalah 999. Baca data kembali sebelum mengulang penjumlahan data. Hati-hati. Kalau data pertama sudah 999, maka isi variabel jumlah harus=0. Pengujian dengan ( data = 999 ) Input(data) If (data≠ 999 ) then Iterate jumlah jumlah + data stop (data=999) input (data )
14
Hubungan antar pengulangan (1)
Traversal merupakan kasus khusus untuk pengulangan while-do: Kondisi menggunakan counter / penghitung Penghitung bertambah / berkurang satu-satu I traversal [1..5] output(‘Data ke-’,i) input(data) jml jml + data i 1 While i<=5 do output(‘Data ke-’,i) input (data) jml jml + data i i+1
15
Hubungan antar pengulangan (2)
Secara umum, traversal juga dapat diubah menjadi repeat-until. Pengubahan harus diuji dengan benar agar hasilnya sama. i 1 repeat output(‘Data ke-’,i) input (data) jml jml + data i i+1 Until i>5 I traversal [1..5] output(‘Data ke-’,i) input(data) jml jml + data
16
Hubungan antar pengulangan (3)
Repeat-until merupakan kondisi kebalikan dari while-do, sehingga ekspresi pada kondisi keduanya berkebalikan. i 1 repeat output(‘Data ke-’,i) input (data) jml jml + data i i+1 Until i > 5 i 1 While i<=5 do output(‘Data ke-’,i) input (data) jml jml + data i i+1
17
Catatan Penggunaan Pengulangan(1)
Repeat n times : Digunakan untuk jumlah pengulangan yang pasti, dan tidak perlu counter / penghitung. Struktur tidak ada dalam Pascal. Tidak ada kaitan apapun antara kumpulan instruksi yang diulang dengan kondisi, kecuali jika ada pengubahan nilai n pada kumpulan instruksi. Sangat tidak dianjurkan! Tidak memungkinkan keluar dari pengulangan sebelum pengulangan mencapai n kali.
18
Catatan Penggunaan Pengulangan
Traversal : Digunakan untuk jumlah pengulangan pasti, dengan tahapan naik/turun satu demi satu. Counter penghitung umumnya dimanfaatkan untuk mengetahui proses ke-i. Sangat efektif untuk menprosesan array. Hampir terdapat pada semua bahasa pemrograman.
19
Catatan Penggunaan Pengulangan
While-do : Digunakan untuk pengulangan yang tergantung pada kondisi tertentu. Kondisi pengujian di depan, sehingga ada kemungkinana kelompok instruksi tidak pernah dilakukan jika pertama kali nilai kondisi sudah tidak memenuhi syarat. Sebelum pengulangan umumnya perlu inisialisasi nilai varibel penyusun kondisi untuk menentukan nilai kondisi awal. Harus ada baris yang mengubah nilai kondisi agar keluar dari pengulangan.
20
Catatan Penggunaan Pengulangan
Repeat-until : Digunakan untuk pengulangan yang tergantung pada kondisi tertentu. Kondisi pengujian di akhir, sehingga kelompok instruksi selalu dilaksanakan setidaknya 1x. Harus dipastikan bahwa kelompok instruksi dapat dilakukan setidaknya 1x, sebelum mencapai kondisi berhenti. Harus ada baris yang mengubah nilai kondisi agar keluar dari pengulangan.
21
Catatan Penggunaan Pengulangan
Iterate-stop : Digunakan untuk pengulangan yang tergantung pada kondisi tertentu. Kondisi pengujian di akhir, sehingga kelompok instruksi selalu dilaksanakan setidaknya 1x. Gabungan antara repeat dan while. Relatif jarang digunakan. Harus dipastikan bahwa kelompok instruksi dapat dilakukan setidaknya 1x, sebelum mencapai kondisi berhenti. Harus ada baris yang mengubah nilai kondisi agar keluar dari pengulangan.
22
Contoh algoritma[1] Program Baca
Persoalan : membaca N buah nilai & menjumlahnya Program Baca { membaca N masukan dan menjumlahkannya } Kamus N : integer Data , Jml : integer Algoritma : input (N) ; Jml 0 repeat N times input (Data) Jml Jml + Data output(Jml)
23
Contoh algoritma[2] Program Kelipatan3
{Membaca N bilangan dan menuliskan bilangan tersebut jika kelipatan 3.} Kamus : i, N : integer { N cacah bilangan yang dibaca } Bil : integer {bilangan yang akan dibaca} Algoritma : input (N) i traversal [1..N] input(Bil) if ( Bil mod 3 )=0 then output(Bil)
24
Contoh algoritma[3] Program UJIBIL
{Menguji N bilangan genap atau ganjil.} Kamus : i : integer {bilangan yang akan diuji} N : integer { cacah bilangan yang diuji } Algoritma : input (N) i 1 while i <= N do if (i mod 2)=0 then output (i,’ adalah bilangan genap’) else output (i,’ adalah bilangan ganjil’) i i + 1
25
Contoh algoritma[4] Program UJIBIL
{Membaca dan menjumlah nilai-nilai sampai nilai penghenti loop} Kamus : Data : integer {bilangan yang akan dibaca} Jml : integer { total bilangan yang dibaca } Cch : integer { cacah nilai yang dibaca } Algoritma : input (Data); Jml 0; Cch 1; while ( Data <> 999) do Jml Jml + Data input ( Data ) Cch Cch + 1 output (‘Total ’,Cch-1,’ bil adalah’,Jml)
26
Latihan 1 Buat algoritma untuk menampilkan deret berikut: 1 3 5 7 ……..
…….. Ketentuan : Cacah suku yang ditampilkan adalah N. Misal: jika N = 5, maka program akan menampilkan : Pengulangan untuk program menggunakan while. Buat juga jumlah dari semua suku tersebut dan tampilkan hasilnya. Buat juga program Pascalnya.
27
Latihan 2 Buat algoritma untuk menampilkan deret Fibonacci
…….. Ketentuan : Cacah suku yang ditampilkan adalah N. Misal : jika N = 7, maka program akan menampilkan : Pengulangan untuk program menggunakan repeat …. until. Tampilkan juga semua suku ke-ganjil ( pertama, ketiga, kelima dst ) dan jumlahkan. Tampilkan hasilnya. Buat juga program Pascalnya.
28
Latihan 3 Buat algoritma dalam Pascal untuk menampilkan bentuk berikut ini : * * * * * * * * * * Buat juga untuk bentuk-bentuk lainnya.
29
Latihan 4 Buat algoritma untuk menampilkan matriks 5 x 5 berikut ini :
Buat juga program Pascalnya.
30
Latihan 5 Ada beberapa menu di warung : batagar dengan harga 1000, soto 2000, dan bakso Batagor ada 2 macam, kuah dan kering. Masukan adalah jml_duit dan pilihan menu. Jika memilih batagor, ada masukan tambahan jenisnya, yaitu ‘kuah’ atau ‘kering’. Tulis notasi algoritma untuk output pilihan menu beserta jumlah harga dan kembalian. Pembeli boleh mengulangn pilihan selama uangnya masih cukup. Buat juga program Pascalnya.
31
Latihan 5 ( lanjut) Masukkan jumlah duit : 4500
Pilihan : 1. Batagor (1000), 2. Soto (2000) 3. Bakso(3000) Pilih : 1 Batagor : 1. Kuah 2. Kering Pilih : 2 Pengeluaran anda : Batagor Kering dengan harga 1000 Sisa uang anda : Pilih menu lain ? (Y/T ) Y Pilihan : 1. Batagor (1000), 2. Soto (2000)3. Bakso(3000) Pilih : 3 Pengeluaran anda : Bakso dengan harga 3000 Sisa uang anda : 500, tidak bisa memilih lagi.
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.