Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
PENGULANGAN INSTRUKSI
MATERI 8 PENGULANGAN INSTRUKSI
2
Pendahuluan Meskipun penggunaan prosedur mampu me-nyingkat instruksi, namun penggunaan prosedur tak mampu menghilangkan sekuens instruksi yang bersifat pengulangan atau repetisi dalam suatu program. Penggunaan instruksi repetisi bersifat meng-hemat penulisan dan membuat struktur logika dari suatu program menjadi lebih sederhana dan jelas sehingga mudah dipahami, dimodifikasi bilamana diperlukan.
3
Tiga Instruksi Tambahan (1)
diam Instruksi yang tidak berpengaruh apa-apa, dapat ditempatkan dalam urutan mana saja. Contoh: diam; X = X; diam cn Mencetak nilai berupa angka desimal. Contoh: cn(3) 3 cn(3+ 4) 7
4
Tiga Instruksi Tambahan (2)
let Mengasosiasikan nama dengan suatu nilai sama halnya dengan mengasosiasi nama dalam argumen suatu prosedur, namun dikerjakan tanpa menulis suatu prosedur. Contoh: let c = ‘+’; cc( c); Urutan terjadi let dalam definisi tidak masalah Contoh: let x = 7 let y = 3 cc( x+y) 10 let y = 4 let x = y+1 cn(x+y) 9
5
Perulangan/Repetisi Sederhana (1)
*** Pola tersebut diwujudkan dengan BB; c*;c*;c*; BB; c*;c*;c* atau def r3(p) = p();p();p() akhdef def tiga() = BB; p*;p*;p* akhdef r3(tiga)
6
Perulangan Sederhana (2)
Prosedur tersebut meskipun cukup baik tetapi tidak menolong untuk mencetak bujursangkar dengan ukuran yang berbeda-beda, misalkan 4x4, 2x2 dst. Penggunaan perulangan/repetisi akan sangat menolong dalam hal-hal seperti ini. Salah satu perulangan sederhana dengan kali sbb: kali 3 {c*} *** kali 4 {BB;c*} akan mencetak sekolom 4 *
7
Perulangan Sederhana (3)
Jadi untuk pola 3x3 * dapat direalisasi sebagai berikut: kali 3 { BB; kali 3 {c*} } (Program 5.1)
8
Kali dan Formula Bukan Konstan (1)
Seringkali perulangan seperti dalam Program 5.1 bisa bersifat variabel agar dapat mencetak bujursangkar dengan ukuran yang berbeda. Program 5.1 dalam bentuk variabel adalah: kali n { BB; kali m {c*} } (Program 5.2)
9
Kali dan Formula Bukan Konstan (2)
Kalau Program 5.2 dieksekusi dengan n = m = 3, maka didapatkan pola 3x3. Salah satu cara untuk memberikan nilai adalah dengan menggunakan prosedur sbb: def segiempat(n,m) = kali n { BB; kali m {c*} } akhdef (Program 5.3)
10
Repetisi Sebagai Suatu Urutan Langkah (1)
Perulangan sederhana seperti times do adalah suatu instruksi perulangan dengan jumlah pengulangan yang bersifat tetap sehingga tidak mampu untuk menangani semua bentuk perulangan yang ada.
11
Repetisi Sebagai Suatu Urutan Langkah (2)
Untuk contoh di bawah akan sulit menggunakan kali * ** *** **** ***** Pola tersebut dapat dicetak menggunakan instruksi: BB; c*; BB; kali 2 {c*} BB; kali 3 {c*} BB; kali 4 {c*} BB; kali 5 {c*} (Program 5.4)
12
Repetisi Sebagai Suatu Urutan Langkah (3)
Namun dapat dilihat bahwa program ini mempunyai struktur yang bersifat perulangan di mana semua baris terdiri dari bentuk sbb: NL; kali n {c*} dengan n mempunyai nilai yang berbeda-beda tetapi meningkat secara berurutan. Dapat dibuat prosedur sbb: def tn(n) = BB; kali n {c*} akhdef tn(1); tn(2); tn(3); tn(4); tn(5) (Program 5.5)
13
Repetisi Sebagai Suatu Urutan Langkah (3)
Program 5.5 lebih sederhana dari Program 5.4, tetapi belum memanfaatkan struktur perulangan, karena masih terdapat suatu set pengulangan <1,2,3,4,5>. Pada bahasa pemrograman, biasanya terdapat bentuk perulangan FOR sebagai berikut : for n runningthrough 1..5 { BB; kali n { c* } } (Program 5.6)
14
Repetisi Sebagai Suatu Urutan Langkah (4)
Program 5.5 digabung dengan Program 5.6 menjadi for n rt 1..5 {tn(n)} (Program 5.7)
15
For Do yang Menghitung Turun (1)
Penggunaan for juga mengijinkan perhitungan turun <5,4,3,2,1>. for n rt { BB; kali n {c*} } (Program 5.8) Hasil: ***** **** *** ** *
16
Merencanakan Solusi dengan Perulangan (1)
Setiap kali ada persoalan, harus dipilih struktur mana yang paling tepat untuk persoalan tersebut, apakah menggunakan sequence atau perulangan Misal: ******* * * * * * * * * * * *
17
Merencanakan Solusi dengan Perulangan (2)
Langkah 1: mencari penggalan-penggalan urutan Baris pertama: BB; kali 7 { c* } Baris kedua: BB; cs; c*; kali 4 { cs }; c* Baris ketiga: BB; kali 2 { cs }; c*; kali 3 {cs}; c* Baris keempat: BB;kali 3 {cs}; c*; kali 2 {cs}; c*
18
Merencanakan Solusi dengan Perulangan (3)
Ternyata baris ke-2,3,4 dan 5 dari pola 7x7 di atas dapat dicetak menggunakan repetisi for. Namun perhatikan juga bahwa program ini bukan suatu repetisi mutlak melainkan suatu sequence (urutan) sbb: cetak baris pertama; cetak baris-baris tengah menggunakan for; cetak baris terakhir.
19
Merencanakan Solusi dengan Perulangan (4)
Langkah 2: mencari formula yang membuat situasi umum Baris-baris tengah dari pola mempunyai bentuk sbb: BB; kali A { cs }; c*; kali B { cs }; c* Terlihat bahwa untuk baris kedua A dimulai dari 1 sedangkan B mulai dari 2. Baik A dan B mempunyai maksimum 5.
20
Merencanakan Solusi dengan Perulangan (5)
Program lengkap menjadi sbb: BB; kali 7 { c* }; for n rt 1..5 do BB; kali n { cs }; c*; kali 5-n { cs }; c* } BB; kali 6 { cs }; c* (Program 5. 9)
21
Merencanakan Solusi dengan Perulangan (5)
Untuk menggeneralisasikan program ini menjadi nxn segitiga maka 7 dapat diganti dengan n: def segitiga (n) = BB; kali n { c* }; for m rt 1..n-2 { BB; kali m { cs }; c*; kali n-2-m { cs }; c* } BB; kali n-1 { cs }; c* akhdef (Program 5.10)
22
Merencanakan Solusi: Raster Printing (1)
Dalam setiap penggambaran pola metoda yang selalu dipakai adalah penggambaran raster yaitu menurut baris per baris. Metoda ini digunakan untuk mencetak sebaris k segitiga dengan ukuran nxn. Jarak antar segitiga satu spasi. **** **** **** *** *** *** ** ** ** * * *
23
Merencanakan Solusi: Raster Printing (2)
Langkah 1: menjelaskan elemen-elemen tipikal dari sequence instruksi yang menghasilkan pola ini Baris 1 BB; kali 4 { c* }; cs; kali 4 { c* }; cs; kali 4 { c* } Baris 2: BB; cs; kali 3 { c* }; kali 2 { cs }; kali 3 { c* };
24
Merencanakan Solusi: Raster Printing (3)
Baris 3: BB; kali 2 { cs }; kali 2 { c* }; kali 3 { cs }; kali 2 { c* }; Baris 2 dan 3 memberikan generalisasi sbb BB; kali A-1 { cs }; kali B { c* }; kali A { cs }; kali B { c* }; kali A { cs }; kali B { c* };
25
Merencanakan Solusi: Raster Printing (4)
Jika ingin mencetak ekstra spasi di awal baris (sebelum segitiga 1), dapat digunakan perulangan kali { BB; kali 3 { kali A { cs }; kali B { c* }; } Atau bisa juga dengan menambahkan ekstra spasi pada akhir baris sbb: BB; kali 3 { kali A-1 { cs }; cs
26
Merencanakan Solusi: Raster Printing (5)
Misalkan ingin menaruh ekstra spasi di awal baris. A dan B berubah-ubah, karena itu perlu menggunakan for. Kalau for dari 4..1, maka A haruslah n dan B haruslah 5-n. for n rt 4..1 { BB; kali 3 { kali 5-n kali { cs }; kali n c* } } } (Program 5.11)
27
Generalisasi Program 11 Generalisasi Program 5.11 dari 4 baris dan 3 kolom menjadi n baris dan k kolom. for n rt 4…1 mencetak 4 baris; kali 3 datang dari kenyataan untuk mencetak 3 segitiga kali 5-n berasal dari kenyataan untuk mencetak 1 spasi lebih dari ukuran segitiga Program yang mencetak n baris dan k kolom segitiga nxn sbb: def row (n, k) = for m rt n...1 { BB; kali k { kali n+1-m { cs }; kali m { c* } } akhdef (Program 5.12)
28
Generalisasi untuk Bentuk Segitiga yang Berbeda
**** **** * * *** *** ** ** ** ** *** *** * * **** **** (A) (B) (C) (D) Program 5.12 mencetak pola B. Pola D: for n rt 1..4 { BB; kali 3 { kali n kali { c* }; kali 5-n cs } } } (Program 5.13)
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.