Anda di halaman 1dari 22

Algoritma Pemrograman

Pertemuan Ke-7
(Pengulangan atau Looping [2]) !oor Ifa"a

S1 Teknik Informatika-Unijoyo

Su# Pokok $a%a&an


Struktur '(I)* Struktur +*P*AT

S1 Teknik Informatika-Unijoyo

Struktur '(I)*
while kondisi do
aksi

endwhile

- Aksi (atau runtunan ak&i) "ilak&anakan #erulang kali &elama kondisi #ernilai true. /ika kondisi #ernilai false0 #a"an 1engulangan ti"ak akan "ilak&anakan0 yang #erarti 1engulangan &ele&ai. - Pengulangan %aru& #er%enti. Pengulangan yang ti"ak 1erna% #er%enti menan"akan #a%2a logika algoritma ter&e#ut &ala%. Pengulangan #er%enti a1a#ila kon"i&i #ernilai false. Agar kon"i&i &uatu &aat #ernilai false0 maka "i "alam #a"an 1engulangan %aru& a"a in&truk&i yang mengu#a% nilai 1eu#a% kon"i&i.

S1 Teknik Informatika-Unijoyo

4onto% 5en6etak tuli&an 7Informatika8 &e#anyak 9 kali.


Algoritma CETAK_INFORMATIKA { Mencetak Informatika sebanyak 5 kali } DEKLA A!I k " inte#er $en#%lan#an } { $encacah Program CETAK_INFORMATIKA; { Mencetak Informatika sebanyak 5 kali } (, DEKLA A!I ,) var k " integer(, DE!K I&!I ,) begin k ". 'w ile k /. 5 do begin writeln(Informatika)k ". k * 'end; end!

DE!K I&!I " k ' while k 5 do { %lan#i sebanyak 5 kali } write(Informatika) kk*' endwhile { kondisi berhenti" k + 5 }

S1 Teknik Informatika-Unijoyo

- Ke&ala%an yang #ia&a terja"i 1a"a 1enggunaan &truktur '(I)* a"ala% ti"ak menuli&kan in&truk&i yang mengu#a% 1eu#a% kon"i&i0 mi&alnya ti"ak menuli&kan in&truk&i kk:1. Se%ingga 1engulangan ti"ak 1erna% memenu%i kon"i&i 1engulangan #er%enti.
S1 Teknik Informatika-Unijoyo 9

4onto% 5eng%itung jumla% angka-angka "ari 1 &am1ai !. !ilai ! "i#a6a terle#i% "a%ulu "ari 1iranti ma&ukan. 5i&alnya0 jika ! < 90 maka jumla% angka "ari 1 &am1ai 9 a"ala% "eret
1 : 2 : , : 3 : 9 < 19

Algoritma PEN"#M$A%AN_&ERET { Men0%mlahkan deret ' * 1 * 2 * 333 * 45 den#an 4 adalah bilan#an b%lat $ositif yan# dibaca dari $iranti mas%kan3 6%mlah deret dicetak ke $iranti kel%aran } DEKLA A!I k " inte#er { $encacah $en#%lan#an } 4 " inte#er 0%mlah " inte#er DE!K I&!I " read(4) { banyaknya s%k% deret } 0%mlah 7 k ' { inisialisasi } while k 4 do 0%mlah 0%mlah * k k k * ' endwhile { kondisi berhenti" k + 4 } write(0%mlah)

S1 Teknik Informatika-Unijoyo

Program PEN"#M$A%AN_&ERET; { Men0%mlahkan deret ' * 1 * 2 * 333 * 45 den#an 4 adalah bilan#an b%lat $ositif yan# dibaca dari $iranti mas%kan } (, DEKLA A!I ,) var k5 45 0%mlah " integer(, DE!K I&!I ,) begin write(Mas%kkan banyaknya bilan#an " )- readln(4)k ". '0%mlah ". 7w ile k /. 4 do begin 0%mlah ". 0%mlah * kk ". k * 'end; writeln(0%mlah)end!

S1 Teknik Informatika-Unijoyo

4onto% 5eng%itung nilai rata-rata "ari ! #ua% "ata #ilangan #ulat yang "i#a6a "ari 1iranti ma&ukan. !ilai rata-rata a"ala% jumla% &eluru% nilai "i#agi "engan #anyaknya nilai. 5i&alkan0 ! < 9 "an "ata #ilangan yang "i#a6a #erturut-turut a"ala% 120 1>0 ;0 20 30 maka nilai rata-ratanya
(12 : 1> : ; : 2 : 3)?9 < ,3?9 < ;.=

Algoritma %IT#N'_RATA_RATA { Men#hit%n# rata8rata 4 b%ah bilan#an b%lat yan# dibaca dari $iranti mas%kan3 4 + 73 } DEKLA A!I k " inte#er { $encacah $en#%lan#an } 4 " inte#er { 0%mlah data5 + 7 } 9 " inte#er { bilan#an b%lat yan# dibaca } 0%mlah " inte#er rata " real DE!K I&!I " read(4) { banyaknya s%k% deret } 0%mlah 7 k ' { inisialisasi } while k 4 do read(9) 0%mlah 0%mlah * 9 k k * ' endwhile { kondisi berhenti" k + 4 } rata 0%mlah:4 write(rata)

S1 Teknik Informatika-Unijoyo

Program %IT#N'_RATA_RATA; { Men#hit%n# rata8rata 4 b%ah bilan#an b%lat yan# dibaca dari $iranti mas%kan3 4 + 73 } (, DEKLA A!I ,) var k5 45 95 0%mlah " integerrata " real(, DE!K I&!I ,) begin write(Mas%kkan banyaknya s%k% deret " )readln(4)0%mlah ". 7k ". 'w ile k /. 4 do begin write(;ilan#an ke85k5 " )-readln(9)0%mlah ". 0%mlah * 9k ". k * 'end; rata ". 0%mlah:4writeln(rata)end!

S1 Teknik Informatika-Unijoyo

- '(I)* juga "a1at "igunakan &e#agai 1enggunaan AB+. !amun0 &e#enarnya '(I)* le#i% lua& lagi 6aku1an kegunaannya. '(I)* juga "a1at "igunakan untuk 1ro&e& yang jumla% 1engulangannya ti"ak "a1at "itentukan.

S1 Teknik Informatika-Unijoyo

1>

4onto% Calam algoritma /U5)A(DCA!DKA)I0 "iteta1kan #a%2a "ari ma&ukan nilai integer E0 jika E ganjil0 maka 1eu#a% 5 yang tela% "iini&iali&a&i "engan 1 "itam#a% 1>0 "an jika E gena1 maka 5 "ikali 1>. Pengulangan ini akan teru& "ilakukan &elama E ti"ak &ama "engan >

Algoritma "#M$A%_&AN_KA$I { Men0%mlahkan ata% men#alikan seb%ah bilan#an den#an '75 ber#ant%n# ke$ada nilai 9 (#ena$ ata% #an0il) } DEKLA A!I M " inte#er 9 " inte#er DE!K I&!I " M ' { inisialisasi M den#an ' } read(9) while 9 7 do {lak%kan kom$%tasi selama 9 tidak nol } if 9 mod 1 . then { 9 #an0il } M M*'7 else M M,'7 endif read(9) endwhile { 9 . 7 } write(M)

S1 Teknik Informatika-Unijoyo

11

Program "#M$A%_&AN_KA$I; { Men0%mlahkan ata% men#alikan seb%ah bilan#an ber#ant%n# ke$ada nilai 9 (#ena$ ata% #an0il) } (, DEKLA A!I ,) var M5 9 " integer(, DE!K I&!I ,) begin M ". 'write(Mas%kkan bilan#an " )- readln(9)w ile 9 /+ 7 do begin begin i( ) mod * + , t en M ". M * '7 else M ". M , '7end; write(Mas%kkan bilan#an " )- readln(9)endwriteln(M)end!

den#an

'75

S1 Teknik Informatika-Unijoyo

12

Struktur +*P*AT
re$eat aksi %ntil kondisi

- !ota&i ini men"a&arkan 1engulangan 1a"a kon"i&i boolean. Aksi "i "alam #a"an 1engulangan "iulang &am1ai kondisi boolean #ernilai true. Cengan kata lain0 jika kondisi boolean ma&i% false0 1engulangan ma&i% teru& "ilakukan. Karena 1ro&e& 1engulangan &uatu &aat %aru& #er%enti0 maka "i "alam #a"an 1engulangan %aru& a"a aksi yang mengu#a% nilai 1eu#a% kon"i&i. - Struktur +*P*AT mem1unyai makna yang &ama "engan '(I)*0 "an "alam #e#era1a ma&ala% ke"ua &truktur ter&e#ut kom1lemen &atu &ama lain.

S1 Teknik Informatika-Unijoyo

1,

4onto% 5en6etak tuli&an 7Informatika8 &e#anyak 9 kali


Algoritma CETAK_INFORMATIKA { Mencetak Informatika sebanyak 5 kali } DEKLA A!I k " inte#er { $encacah $en#%lan#an } DE!K I&!I " k' { inisialisasi } re$eat write(Informatika) kk*' %ntil k + 5 Program CETAK_INFORMATIKA; { Mencetak Informatika sebanyak 5 kali } (, DEKLA A!I ,) var k " integer(, DE!K I&!I ,) begin k ". 're-eat begin writeln(Informatika)k ". k * 'end; .ntil k + 5end!

- $a"an 1engulangan #eri&i "ua in&truk&i write(Informatika) "an kk+1 - Kon"i&i #er%enti 1engulangan a"ala% k F 90 artinya jika k ma&i% 90 maka #a"an 1engulangan ma&i% #ole% "ima&uki. - k %aru& ter"efini&i nilainya &e#elum 1engulangan "ilak&anakan 1ertama kali. Karena itu0 1a"a #agian ini&iali&a&i0 k "ii&i "engan nilai 1. - In&truk&i yang mengu#a% nilai 1eu#a% kon"i&i a"ala% in&truk&i kk+1. In&truk&i ini men6a6a% jumla% 1engulangan0 &e%ingga jika k F 90 1engulangan "i%entikan.
13

S1 Teknik Informatika-Unijoyo

4onto% 5eng%itung 1 : 2 : ,: G : ! !ilai ! "i#a6a terle#i% "a%ulu (! F >).


Algoritma PEN"#M$A%AN_&ERET { Men0%mlahkan deret ' * 1 * 2 * 333 * 45 den#an 4 adalah bilan#an b%lat $ositif yan# dibaca dari $iranti mas%kan3 6%mlah deret dicetak ke $iranti kel%aran } DEKLA A!I k " inte#er { s%k% deret } 4 " inte#er { banyaknya s%k% deret5 4 + 7 } 0%mlah " inte#er { 0%mlah deret } DE!K I&!I " read(4) { banyaknya s%k% deret } 0%mlah 7 { inisialisasi 0%mlah deret } k ' { s%k% deret yan# $ertama } re$eat 0%mlah 0%mlah * k { 0%mlah deret sekaran# } k k * ' { s%k% deret berik%tnya } %ntil k + 4 write(0%mlah)
S1 Teknik Informatika-Unijoyo 19

Program PEN"#M$A%AN_&ERET; { Men0%mlahkan deret ' * 1 * 2 * 333 * 45 den#an 4 adalah bilan#an b%lat $ositif yan# dibaca dari $iranti mas%kan } (, DEKLA A!I ,) var k5 45 0%mlah " integer(, DE!K I&!I ,) begin write(Mas%kkan banyaknya bilan#an " )- readln(4)k ". '0%mlah ". 7re-eat begin 0%mlah ". 0%mlah * kk ". k * 'end; .ntil k + 4writeln(0%mlah)end!
S1 Teknik Informatika-Unijoyo 1;

4onto% 5eng%itung nilai rata-rata ! #ua% "ata


#ilangan #ulat yang "i#a6a "ari 1iranti ma&ukan.
Algoritma %IT#N'_RATA_RATA { Men#hit%n# rata8rata 4 b%ah bilan#an b%lat yan# dibaca dari $iranti mas%kan3 4 + 73 } DEKLA A!I k " inte#er { $encacah banyak bilan#an } 4 " inte#er { banyak bilan#an5 4 + 7 } 9 " inte#er { bilan#an b%lat yan# dibaca } 0%mlah " inte#er { $encatat 0%mlah bilan#an } rata " real { rata8rata bilan#an } DE!K I&!I " read(4) 0%mlah 7 { inisialisasi } k ' { inisialisasi $encacah banyak bilan#an } re$eat read(9) 0%mlah 0%mlah * 9 k k * ' %ntil k + 4 rata 0%mlah:4 write(rata)
S1 Teknik Informatika-Unijoyo 17

Program %IT#N'_RATA_RATA; { Men#hit%n# rata8rata 4 b%ah bilan#an b%lat yan# dibaca dari $iranti mas%kan3 4 + 73 } (, DEKLA A!I ,) var k5 45 95 0%mlah " integerrata " real(, DE!K I&!I ,) begin write(Mas%kkan banyaknya s%k% deret " )readln(4)0%mlah ". 7k ". 're-eat begin write(;ilan#an ke85k5 " )-readln(9)0%mlah ". 0%mlah * 9k ". k * 'end; .ntil k + 4rata ". 0%mlah:4writeln(rata)end!
S1 Teknik Informatika-Unijoyo 1=

- Se1erti %alnya 1a"a &truktur '(I)*0 &truktur +*P*AT juga "a1at "igunakan untuk ma&ala% yang jumla% 1engulangannya ti"ak "iketa%ui atau ti"ak "a1at "itentukan. Pemili%an &truktur '(I)* atau +*P*AT #ergantung 1a"a karakteri&tik "ari 1er&oalan. A"a 1erma&ala%an yang %anya #enar #ila menggunakan &truktur '(I)*0 teta1i #i&a fatal #ila menggunakan +*P*AT. - Per#e"aan antara &truktur +*P*AT "an '(I)*
H struktur REPEAT kon"i&i 1engulangan "i1erik&a 1a"a ak%ir 1engulangan. /a"i0 in&truk&i "i "alam #a"an 1engulangan "ilak&anakan "ulu0 #aru kemu"ian 1engete&an kon"i&i "ilakukan. Se%ingga #a"an 1engulangan "ilak&anakan 1aling &e"ikit &atu kali. H struktur WHILE kon"i&i 1engulangan "i1erik&a "i a2al 1engulangan. /a"i0 in&truk&i "i "alam #a"an 1engulangan %anya "a1at "ilak&anakan #ila 1engete&an kon"i&i meng%a&ilkan nilai true. Se%ingga0 #a"an 1engulangan mungkin ti"ak akan 1erna% "ilak&anakan #ila kon"i&i 1engulangan 1ertama kali #ernilai false.
S1 Teknik Informatika-Unijoyo 1@

Per#an"ingan antara 1engulangan '(I)* "engan +*P*AT tentang jumla% 1engulangannya.


Algoritma PER/AN&IN'AN_0%I$E_REPEAT { Al#oritma %nt%k men%n0%kkan $erbandin#an $en#%lan#an <=ILE dan E&EA> tentan# 0%mlah $en#%lan#annya } DEKLA A!I 9 " inte#er DE!K I&!I " 9 ? while 9 / 5 do write(9) 9 9 * ' endwhile Algoritma PER/AN&IN'AN_0%I$E_REPEAT { Al#oritma %nt%k men%n0%kkan $erbandin#an $en#%lan#an <=ILE dan E&EA> tentan# 0%mlah $en#%lan#annya } DEKLA A!I 9 " inte#er DE!K I&!I " 9 ? re$eat write(9) 9 9 * ' %ntil 9 + 5

(a&il "ari algoritma ti"ak a"a (karena #a"an 1engulangan ti"ak 1erna% "ima&uki)

(a&il "ari algoritma a"ala% = (karena #a"an 1engulangan tela% "ima&uki &atu kali)
2>

S1 Teknik Informatika-Unijoyo

Summary
- Struktur '(I)* "an +*P*AT "igunakan 1a"a ak&i yang jumla% 1engulangan ti"ak "iketa%ui &e#elum ek&eku&i 1rogram. Iang "a1at "itentukan %anya kon"i&i #er%enti 1engulangan - Struktur '(I)* "igunakan 1a"a ka&u& yang meng%aru&kan terle#i% "a%ulu 1emerik&aan kon"i&i o#jek &e#elum o#jek ter&e#ut "imani1ula&i - Struktur +*P*AT "igunakan 1a"a ka&u& yang terle#i% "a%ulu memani1ula&i o#jek0 #aru kemu"ian memerik&a kon"i&i o#jek ter&e#ut

S1 Teknik Informatika-Unijoyo

21

Caftar Pu&taka
/ogiyanto (5 [1@=@]. Turbo Pas a!0 An"i Bff&et0 Iogyakarta. !oor Ifa"a0 ST [2>>9]. "iktat #ataku!ia$ A!%oritma Pemro%raman& (i#a% Kom1eti&i A10 /uru&an Teknik Informatika0 UniJer&ita& Trunojoyo. +inal"i 5unir [2>>,]. A!%oritma dan Pemro%raman den%an Pas a! dan ' edisi (edua0 Pener#it Informatika0 $an"ung.

S1 Teknik Informatika-Unijoyo

22

Anda mungkin juga menyukai