TOPIK 5

35
TOPIK 5 TOPIK 5 PENGULANGAN INSTRUKSI PENGULANGAN INSTRUKSI

description

TOPIK 5. PENGULANGAN INSTRUKSI. Pendahuluan. Meskipun penggunaan prosedur mampu me-nyingkat instruksi, namun penggunaan prosedur tak mampu menghilangkan sekuens instruksi yang bersifat pengulangan atau repetisi dalam suatu program. - PowerPoint PPT Presentation

Transcript of TOPIK 5

Page 1: TOPIK 5

TOPIK 5TOPIK 5

PENGULANGAN INSTRUKSIPENGULANGAN INSTRUKSI

Page 2: TOPIK 5

PendahuluanPendahuluan

Meskipun penggunaan prosedur mampu me-Meskipun penggunaan prosedur mampu me-nyingkat instruksi, namun penggunaan nyingkat instruksi, namun penggunaan prosedur tak mampu menghilangkan prosedur tak mampu menghilangkan sekuens instruksi yang bersifat pengulangan sekuens instruksi yang bersifat pengulangan atau repetisi dalam suatu program. atau repetisi dalam suatu program.

Penggunaan instruksi repetisi bersifat meng-Penggunaan instruksi repetisi bersifat meng-hemat penulisan dan membuat struktur hemat penulisan dan membuat struktur logika dari suatu program menjadi lebih logika dari suatu program menjadi lebih sederhana dan jelas sehingga mudah sederhana dan jelas sehingga mudah dipahami, dimodifikasi bilamana diperlukan.dipahami, dimodifikasi bilamana diperlukan.

Page 3: TOPIK 5

Tiga Instruksi Tambahan (1)Tiga Instruksi Tambahan (1)

donothingdonothing

Instruksi yang tidak berpengaruh apa-Instruksi yang tidak berpengaruh apa-apa, dapa, dapat ditempatkan dalam urutan apat ditempatkan dalam urutan mana saja.mana saja.

Contoh: donothing; X = X; donothingContoh: donothing; X = X; donothing pnpn

Mencetak nilai berupa angka desimal.Mencetak nilai berupa angka desimal.

Contoh: pn(3) Contoh: pn(3) 3 3

pn(3+ 4) pn(3+ 4) 7 7

Page 4: TOPIK 5

Tiga Instruksi Tambahan (2)Tiga Instruksi Tambahan (2)

letlet

Mengasosiasikan nama dengan suatu nilai Mengasosiasikan nama dengan suatu nilai sama halnya dengan mengasosiasi nama sama halnya dengan mengasosiasi nama dalam argumen suatu prosedur, namun dalam argumen suatu prosedur, namun dikerjakan tanpa menulis suatu prosedur.dikerjakan tanpa menulis suatu prosedur.

Contoh: let c = ‘+’; pc( c);Contoh: let c = ‘+’; pc( c);

Urutan terjadi let dalam definisi tidak Urutan terjadi let dalam definisi tidak masalahmasalah

Contoh: let x = 7 let y = 3 pc( x+y) Contoh: let x = 7 let y = 3 pc( x+y) 10 10

let y = 4 let x = y+1 pn(x+y) let y = 4 let x = y+1 pn(x+y) 9 9

Page 5: TOPIK 5

Perulangan Sederhana (1)Perulangan Sederhana (1) ******

************Pola tersebut diwujudkan denganPola tersebut diwujudkan dengan

NL; p*;p*;p*;NL; p*;p*;p*; NL; p*;p*;p*;NL; p*;p*;p*; NL; p*;p*;p*NL; p*;p*;p*

atau atau def r3(p) = p();p();p() enddefdef r3(p) = p();p();p() enddefdef tiga() = NL; p*;p*;p* enddefdef tiga() = NL; p*;p*;p* enddefr3(tiga) r3(tiga)

Page 6: TOPIK 5

Perulangan Sederhana (2)Perulangan Sederhana (2)

Prosedur tersebut meskipun cukup baik tetapi Prosedur tersebut meskipun cukup baik tetapi tidak menolong untuk mencetak bujursangkar tidak menolong untuk mencetak bujursangkar dengan ukuran yang berbeda-beda, misalkan dengan ukuran yang berbeda-beda, misalkan 4x4, 2x2 dst. 4x4, 2x2 dst.

Penggunaan perulangan akan sangat Penggunaan perulangan akan sangat menolong dalam hal-hal seperti ini. Salah satu menolong dalam hal-hal seperti ini. Salah satu perulangan sederhana dengan perulangan sederhana dengan times do times do sbb:sbb:

times 3 do p* od times 3 do p* od *** ***

times 4 do NL;p* od akan mencetak sekolom 4 times 4 do NL;p* od akan mencetak sekolom 4 **

Page 7: TOPIK 5

Perulangan Sederhana (3)Perulangan Sederhana (3)

Jadi untuk pola 3x3 * dapat Jadi untuk pola 3x3 * dapat direalisasi sebagai berikut:direalisasi sebagai berikut:

times 3 dotimes 3 do

NL; times 3 do p* odNL; times 3 do p* od

odod

((Program 1Program 1))

Page 8: TOPIK 5

Times - Do dan Times - Do dan Formula Bukan Konstan (1)Formula Bukan Konstan (1)

Seringkali perulangan seperti dalam Seringkali perulangan seperti dalam Program 1 bisa bersifat variabel agar Program 1 bisa bersifat variabel agar dapat mencetak bujursangkar dengan dapat mencetak bujursangkar dengan ukuran yang berbeda. Program 1 ukuran yang berbeda. Program 1 dalam bentuk variabel adalah:dalam bentuk variabel adalah:

times n dotimes n do NL; times m do p* odNL; times m do p* od od od

((Program 2Program 2))

Page 9: TOPIK 5

Times - Do dan Times - Do dan Formula Bukan Konstan (2)Formula Bukan Konstan (2)

Kalau Program 2 dieksekusi dengan n = m Kalau Program 2 dieksekusi dengan n = m = 3, maka didapatkan pola 3x3. = 3, maka didapatkan pola 3x3.

Salah satu cara untuk memberikan nilai Salah satu cara untuk memberikan nilai adalah dengan menggunakan prosedur sbb:adalah dengan menggunakan prosedur sbb:

def segiempat(n,m) = times n dodef segiempat(n,m) = times n do

NL; times m do p*odNL; times m do p*od

odod

enddef enddef ( (Program 3Program 3))

Page 10: TOPIK 5

Repetisi Sebagai Repetisi Sebagai Suatu Urutan Langkah (1)Suatu Urutan Langkah (1)

Perulangan sederhana seperti times Perulangan sederhana seperti times do adalah suatu instruksi perulangan do adalah suatu instruksi perulangan dengan jumlah pengulangan yang dengan jumlah pengulangan yang bersifat tetap sehingga tidak mampu bersifat tetap sehingga tidak mampu untuk menangani semua bentuk untuk menangani semua bentuk perulangan yang ada. perulangan yang ada.

Page 11: TOPIK 5

Repetisi Sebagai Repetisi Sebagai Suatu Urutan Langkah (2)Suatu Urutan Langkah (2)

Untuk contoh di bawah akan sulit menggunakan Untuk contoh di bawah akan sulit menggunakan times dotimes do

******************************

Pola tersebut dapat dicetak menggunakan instruksi:Pola tersebut dapat dicetak menggunakan instruksi:NL; p*;NL; p*;NL; times 2 do p* odNL; times 2 do p* odNL; times 3 do p* od NL; times 3 do p* od NL; times 4 do p* od NL; times 4 do p* od NL; times 5 do p* od (NL; times 5 do p* od (Program 4Program 4))

Page 12: TOPIK 5

Repetisi Sebagai Repetisi Sebagai Suatu Urutan Langkah (3)Suatu Urutan Langkah (3)

Namun dapat dilihat bahwa program ini Namun dapat dilihat bahwa program ini mempunyai struktur yang bersifat mempunyai struktur yang bersifat perulangan di mana semua baris terdiri perulangan di mana semua baris terdiri dari bentuk sbb:dari bentuk sbb:

NL; times n do p* odNL; times n do p* oddengan n mempunyai nilai yang berbeda-dengan n mempunyai nilai yang berbeda-beda tetapi meningkat secara berurutan. beda tetapi meningkat secara berurutan. Dapat dibuat prosedur sbb:Dapat dibuat prosedur sbb:

def tn(n) = NL; times n do p* od def tn(n) = NL; times n do p* od enddef enddef tn(1); tn(2); tn(3);tn(4);tn(5) tn(1); tn(2); tn(3);tn(4);tn(5) ( (Program 5Program 5))

Page 13: TOPIK 5

Repetisi Sebagai Repetisi Sebagai Suatu Urutan Langkah (3)Suatu Urutan Langkah (3)

Program 5 lebih sederhana dari Program 4, Program 5 lebih sederhana dari Program 4, tetapi belum memanfaatkan struktur tetapi belum memanfaatkan struktur perulangan, karena masih terdapat suatu perulangan, karena masih terdapat suatu set pengulangan <1,2,3,4,5>.set pengulangan <1,2,3,4,5>.

Pada bahasa pemrograman, biasanya Pada bahasa pemrograman, biasanya terdapat bentuk perulangan terdapat bentuk perulangan FOR DOFOR DO sbb: sbb:

for n runningthrough 1..5 dofor n runningthrough 1..5 doNL; times n do p* odNL; times n do p* od

od. od. ((Program 6Program 6))

Page 14: TOPIK 5

Repetisi Sebagai Repetisi Sebagai Suatu Urutan Langkah (4)Suatu Urutan Langkah (4)

Program 5 digabung dengan Program Program 5 digabung dengan Program 6 menjadi6 menjadi

for n rt 1..5 do for n rt 1..5 do

tn(n) tn(n)

od od

((Program 7Program 7))

Page 15: TOPIK 5

For Do yang Menghitung Turun For Do yang Menghitung Turun (1)(1)

Penggunaan for do juga mengijinkan Penggunaan for do juga mengijinkan perhitungan turun <5,4,3,2,1>.perhitungan turun <5,4,3,2,1>.

for n runningbackthrough 5..1 dofor n runningbackthrough 5..1 doNL; time n do p* odNL; time n do p* od

od (od (Program 8Program 8)) Hasil:Hasil: ********** ******** ****** **** **

Page 16: TOPIK 5

Merencanakan Solusi Merencanakan Solusi dengan Perulangandengan Perulangan (1) (1)

Setiap kali ada persoalan, harus dipilih struktur Setiap kali ada persoalan, harus dipilih struktur mana yang paling tepat untuk persoalan mana yang paling tepat untuk persoalan tersebut, apakah menggunakan sequence atau tersebut, apakah menggunakan sequence atau perulanganperulangan

Misal:Misal:***************** ** ** ** ** ** ** ** ** ** ***

Page 17: TOPIK 5

Merencanakan Solusi Merencanakan Solusi dengan Perulangandengan Perulangan (2) (2)

Langkah 1: mencari penggalan-Langkah 1: mencari penggalan-penggalan urutanpenggalan urutan– Baris pertama: NL;times 7 do p* odBaris pertama: NL;times 7 do p* od– Baris kedua: NL; ps;p*; times 4 do ps od; Baris kedua: NL; ps;p*; times 4 do ps od;

p*p*– Baris ketiga: Baris ketiga: NL;times 2 do ps od; p*; NL;times 2 do ps od; p*;

times 3 do ps od; p*times 3 do ps od; p*– Baris keempat: Baris keempat: NL;times 3 do ps od; p*; NL;times 3 do ps od; p*;

times 2 do ps od; p*times 2 do ps od; p*

Page 18: TOPIK 5

Merencanakan Solusi Merencanakan Solusi dengan Perulangandengan Perulangan (3) (3)

– Ternyata baris ke-2,3,4 dan 5 dari pola Ternyata baris ke-2,3,4 dan 5 dari pola 7x7 di atas dapat dicetak menggunakan 7x7 di atas dapat dicetak menggunakan repetisi for-do.repetisi for-do.

– Namun perhatikan juga bahwa program Namun perhatikan juga bahwa program ini bukan suatu repetisi mutlak ini bukan suatu repetisi mutlak melainkan suatu sequence (urutan) sbb:melainkan suatu sequence (urutan) sbb: cetak baris pertama;cetak baris pertama; cetak baris-baris tengah menggunakan for cetak baris-baris tengah menggunakan for

do;do; cetak baris terakhir.cetak baris terakhir.

Page 19: TOPIK 5

Merencanakan Solusi Merencanakan Solusi dengan Perulangandengan Perulangan (4) (4)

Langkah 2: mencari formula yang Langkah 2: mencari formula yang membuat situasi umummembuat situasi umum– Baris-baris tengah dari pola mempunyai Baris-baris tengah dari pola mempunyai

bentuk sbb:bentuk sbb:

NL; times A do ps od; p*;NL; times A do ps od; p*;

times B do ps od; p*times B do ps od; p*– Terlihat bahwa untuk baris kedua A Terlihat bahwa untuk baris kedua A

dimulai dari 1 sedangkan B mulai dari 2. dimulai dari 1 sedangkan B mulai dari 2. Baik A dan B mempunyai maksimum 5.Baik A dan B mempunyai maksimum 5.

Page 20: TOPIK 5

Merencanakan Solusi Merencanakan Solusi dengan Perulangandengan Perulangan (5) (5)

Program lengkap menjadi sbb:Program lengkap menjadi sbb:NL; times 7 do p* od;NL; times 7 do p* od;

for n rt 1..5 dofor n rt 1..5 do NL; times n do ps od; p*;NL; times n do ps od; p*; times 5-n do ps od; p*times 5-n do ps od; p*

ododNL; times 6 do ps od; p* NL; times 6 do ps od; p*

((Program 9Program 9))

Page 21: TOPIK 5

Merencanakan Solusi Merencanakan Solusi dengan Perulangandengan Perulangan (5) (5)

Untuk menggeneralisasikan program ini menjadi Untuk menggeneralisasikan program ini menjadi nxn segitiga maka 7 dapat diganti dengan n:nxn segitiga maka 7 dapat diganti dengan n:

def segitiga (n) = def segitiga (n) = NL; times n do p* od;NL; times n do p* od;for m rt 1..n-2 dofor m rt 1..n-2 do

NL; times m do ps od; p*;NL; times m do ps od; p*;times n-2-m do ps od; p*times n-2-m do ps od; p*

ododNL; times n-1 do ps od; p* NL; times n-1 do ps od; p* enddef enddef

((Program 10Program 10))

Page 22: TOPIK 5

Merencanakan Solusi: Merencanakan Solusi: Raster Printing (1)Raster Printing (1)

Dalam setiap penggambaran pola metoda Dalam setiap penggambaran pola metoda yang selalu dipakai adalah penggambaran yang selalu dipakai adalah penggambaran raster yaitu menurut baris per baris. raster yaitu menurut baris per baris.

Metoda ini digunakan untuk mencetak Metoda ini digunakan untuk mencetak sebaris k segitiga dengan ukuran nxn. sebaris k segitiga dengan ukuran nxn. Jarak antar segitiga satu spasi.Jarak antar segitiga satu spasi.

**** **** ******** **** **** *** *** ****** *** *** ** ** **** ** ** * * ** * *

Page 23: TOPIK 5

Merencanakan Solusi: Merencanakan Solusi: Raster Printing (2)Raster Printing (2)

Langkah 1: mejelaskan elemen-elemen Langkah 1: mejelaskan elemen-elemen tipikal dari sequence instruksi yang tipikal dari sequence instruksi yang menghasilkan pola inimenghasilkan pola ini– Baris 1Baris 1

NL; times 4 do p* od; ps;NL; times 4 do p* od; ps;times 4 do p* od; pstimes 4 do p* od; pstimes 4 do p* odtimes 4 do p* od

– Baris 2:Baris 2:NL; ps; times 3 do p* od;NL; ps; times 3 do p* od;times 2 do ps od; times 3 do p* od;times 2 do ps od; times 3 do p* od;times 2 do ps od; times 3 do p* od;times 2 do ps od; times 3 do p* od;

Page 24: TOPIK 5

Merencanakan Solusi: Merencanakan Solusi: Raster Printing (3)Raster Printing (3)

– Baris 3:Baris 3:

NL; times 2 do ps od; times 2 do p* od;NL; times 2 do ps od; times 2 do p* od;

times 3 do ps od; times 2 do p* od;times 3 do ps od; times 2 do p* od;

times 3 do ps od; times 2 do p* od;times 3 do ps od; times 2 do p* od;– Baris 2 dan 3 memberikan generalisasi sbbBaris 2 dan 3 memberikan generalisasi sbb

NL; times A-1 do ps od; times B do p* NL; times A-1 do ps od; times B do p* od;od;

times A do ps od; times B do p* od;times A do ps od; times B do p* od;

times A do ps od; times B do p* od;times A do ps od; times B do p* od;

Page 25: TOPIK 5

Merencanakan Solusi: Merencanakan Solusi: Raster Printing (4)Raster Printing (4)

Jika ingin mencetak ekstra spasi di awal baris Jika ingin mencetak ekstra spasi di awal baris (sebelum segitiga 1), dapat digunakan (sebelum segitiga 1), dapat digunakan perulangan times doperulangan times do

NL; times 3 do times A do ps od;NL; times 3 do times A do ps od;times B do p* od;times B do p* od;

odod Atau bisa juga dengan menambahkan ekstra Atau bisa juga dengan menambahkan ekstra

spasi pada akhir baris sbb:spasi pada akhir baris sbb:NL; times 3 do times A-1 do ps od;NL; times 3 do times A-1 do ps od;

times B do p* od;times B do p* od;psps

odod

Page 26: TOPIK 5

Merencanakan Solusi: Merencanakan Solusi: Raster Printing (5)Raster Printing (5)

Misalkan ingin menaruh ekstra spasi di awal Misalkan ingin menaruh ekstra spasi di awal baris. A dan B berubah-ubah, karena itu baris. A dan B berubah-ubah, karena itu perlu menggunakan for do. Kalau for do dari perlu menggunakan for do. Kalau for do dari 4..1, maka A haruslah n dan B haruslah 5-n.4..1, maka A haruslah n dan B haruslah 5-n.

for n rt 4..1 dofor n rt 4..1 doNL; times 3 do times 5-n times do ps NL; times 3 do times 5-n times do ps

od;od;times n p* odtimes n p* ododod

od od ((Program 11Program 11))

Page 27: TOPIK 5

Generalisasi Program 11Generalisasi Program 11 Generalisasi Program 11 dari 4 baris dan 3 kolom Generalisasi Program 11 dari 4 baris dan 3 kolom

menjadi n baris dan k kolom.menjadi n baris dan k kolom.– for n rt 4…1 mencetak 4 baris;for n rt 4…1 mencetak 4 baris;– times 3 datang dari kenyataan untuk mencetak 3 segitigatimes 3 datang dari kenyataan untuk mencetak 3 segitiga– times 5-n berasal dari kenyataan untuk mencetak 1 spasi times 5-n berasal dari kenyataan untuk mencetak 1 spasi

lebih dari ukuran segitigalebih dari ukuran segitiga– Program yang mencetak n baris dan k kolom segitiga nxn Program yang mencetak n baris dan k kolom segitiga nxn

sbb:sbb:def row (n, k) =def row (n, k) =for m rt n...1 dofor m rt n...1 do

NL; times k do times n+1-m do ps od;NL; times k do times n+1-m do ps od;times m do p* odtimes m do p* od

od od ododenddefenddef ((Program 12Program 12))

Page 28: TOPIK 5

Generalisasi untuk Bentuk Generalisasi untuk Bentuk Segitiga yang BerbedaSegitiga yang Berbeda

**** **** * ***** **** * **** *** ** ***** *** ** **** ** *** ***** ** *** ***

* * **** ***** * **** ****(A) (B) (C) (D)(A) (B) (C) (D)

Program 12 mencetak pola B. Program 12 mencetak pola B. Pola D:Pola D:

for n rt 1..4 dofor n rt 1..4 doNL; times 3 do times n times do p* od;NL; times 3 do times n times do p* od;

times 5-n ps odtimes 5-n ps odod od

od od ((Program 13Program 13))

Page 29: TOPIK 5

Bagaimana kalau * diganti dengan Bagaimana kalau * diganti dengan angka?angka?

Buat prosedur untuk membuat pola Buat prosedur untuk membuat pola sebagai berikut:sebagai berikut:

11 11

1 21 2 2 22 2

1 2 31 2 3 3 3 33 3 3

Page 30: TOPIK 5

Untuk membuat pola:Untuk membuat pola:

11

2 22 2

3 3 33 3 3

for n rt 1..3 dofor n rt 1..3 do

NL; times n do pc(n);NL; times n do pc(n);

NL;NL;

Page 31: TOPIK 5

Nomor 1Nomor 1function apaini(a: integer; b: integer): integer;function apaini(a: integer; b: integer): integer;var x,y,r: integer;var x,y,r: integer;beginbeginx := a;x := a;y := b;y := b;while (y <> 0) dowhile (y <> 0) dobeginbeginr := x mod y;r := x mod y;x := y;x := y;y := r;y := r;end;end;apaini := x;apaini := x;end;end;Apa hasil dari “writeln(apaini(414, 662));”Apa hasil dari “writeln(apaini(414, 662));”

Page 32: TOPIK 5

Nomor 2Nomor 2

Perhatikan potongan program berikut:Perhatikan potongan program berikut:n:=10;n:=10;x:=0;x:=0;for i:=0 to n dofor i:=0 to n dobeginbeginx:=x+2*i;x:=x+2*i;end;end;writeln(x);writeln(x);Berapakah output dari program di atas?Berapakah output dari program di atas?

Page 33: TOPIK 5

Nomor 3Nomor 3

x = 0 x = 0 for i = 1 to n do for i = 1 to n do for j = i to n do for j = i to n do for k = i to n do for k = i to n do x = x + 1 x = x + 1 print x print x What will be printed by the What will be printed by the pseudocode above if n=10? pseudocode above if n=10?

Page 34: TOPIK 5

Nomor 4Nomor 4

x = 0 x = 0

for i = 1 to 9 do for i = 1 to 9 do

for j = 11 to 19 do for j = 11 to 19 do

for k = 1 to 19 do for k = 1 to 19 do

x = x + 1 x = x + 1

print x print x

What will be printed by this What will be printed by this pseudocode? pseudocode?

Page 35: TOPIK 5

Nomor 5Nomor 5

i = 0 i = 0 while i < 10 do while i < 10 do begin begin j = i j = i while j < 30 do while j < 30 do begin begin print j print j j = j + 1 ; end j = j + 1 ; end i = i + 1 ; end i = i + 1 ; end How many times j will be printed? How many times j will be printed?