Bab 05 - Struktur Pengulangan

29
Algoritma dan Pemrograman Bab 05 Struktur Pengulangan Adam Mukharil Bachtiar, S.Kom. Universitas Komputer Indonesia

Transcript of Bab 05 - Struktur Pengulangan

Page 1: Bab 05 - Struktur Pengulangan

Algoritma dan Pemrograman

Bab 05 – Struktur Pengulangan

Adam Mukharil Bachtiar, S.Kom.

Universitas Komputer Indonesia

Page 2: Bab 05 - Struktur Pengulangan

Latar Belakang Pengulangan

Tampilkan di layar kata “Saya suka Algoritma”

sebanyak 1000 kali!

WHAT WILL YOU DO???

Page 3: Bab 05 - Struktur Pengulangan

Kelebihan Komputer

Komputer tidak pernah bosan untuk melakukan

statement berkali-kali.

Page 4: Bab 05 - Struktur Pengulangan

Pengertian Struktur Pengulangan

Struktur Algoritma yang memungkinkan adanya

statement yang dijalankan berkali-kali sampai kondisi

pengulangannya terpenuhi.

Page 5: Bab 05 - Struktur Pengulangan

Bagian dalam Struktur Pengulangan

1. Kondisi Pengulangan

2. Badan Pengulangan

3. Inisialisasi

4. Terminasi

Page 6: Bab 05 - Struktur Pengulangan

3 Konstruksi Struktur Pengulangan

1. FOR

2. WHILE

3. REPEAT

Page 7: Bab 05 - Struktur Pengulangan

Pernyataan FOR

1. FOR digunakan untuk pengulangan yang akhir

pengulangannya telah dispesifikasikan.

2. Jumlah pengulangan sudah diketahui di awal.

3. Bisa ASCENDING dan DESCENDING.

Page 8: Bab 05 - Struktur Pengulangan

Pernyataan FOR Ascending

Format Algoritma:

for pencacah nilai_awal to nilai_akhir do

statement

endfor

Page 9: Bab 05 - Struktur Pengulangan

Pernyataan FOR Ascending

Format Pascal:

for pencacah := nilai_awal to nilai_akhir do

statement;

Atau

for pencacah:= nilai_awal to nilai_akhir do

begin

statement;

end;

Page 10: Bab 05 - Struktur Pengulangan

Algoritma Pernyataan FOR Ascending

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Algoritma Deret_Bilangan_Ganjil

{I.S: Diinputkan satu nilai akhir oleh user}

{F.S: Menampilkan jumlah deret ganjil}

Kamus:

x,akhir:integer

jumlah:integer

Algoritma:

input(akhir)

jumlah 0

for x 1 to akhir do

if x mod 2 = 1 then

jumlah jumlah + x;

endfor

output(‘Jumlah deret ganjil dari 1 – ‘,akhir,’ = ‘

,jumlah)

Page 11: Bab 05 - Struktur Pengulangan

Pascal Pernyataan FOR Ascending1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

program Deret_Bilangan_Ganjil;

uses crt;

var

x,akhir:integer;

jumlah:integer;

begin

write('Masukan batas akhir angka : ');readln(akhir);

jumlah:=0;

for x:=1 to akhir do

begin

if x mod 2=1 then

jumlah:=jumlah+x;

end;

writeln('Jumlah Deret ganjil dari 1 - ',akhir,' = ',jumlah);

writeln();

write('Tekan sembarang tombol untuk menutup...');

readkey();

end.

Page 12: Bab 05 - Struktur Pengulangan

Pernyataan FOR Descending

Format Algoritma:

for pencacah nilai_akhir downto nilai_awal do

statement

endfor

Page 13: Bab 05 - Struktur Pengulangan

Pernyataan FOR Descending

Format Pascal:

for pencacah := nilai_akhir downto nilai_awal do

statement;

Atau

for pencacah:= nilai_akhir downto nilai_awal do

begin

statement;

end;

Page 14: Bab 05 - Struktur Pengulangan

Algoritma Pernyataan FOR Descending

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Algoritma Deret_Faktorial

{I.S: Diinputkan satu nilai oleh user}

{F.S: Menampilkan faktorial dari bilangan tersebut}

Kamus:

i,nilai:integer

faktorial:integer

Algoritma:

input(nilai)

faktorial1

for i nilai downto 1 do

faktorialfaktorial*i

endfor

output(nilai,’! = ‘,faktorial)

Page 15: Bab 05 - Struktur Pengulangan

Pascal Pernyataan FOR Descending

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

program Deret_Faktorial;

uses crt;

var

i,nilai:integer;

faktorial:integer;

begin

write('Masukan nilai = ');readln(nilai);

faktorial:=1;

for i:=nilai downto 1 do

faktorial:=faktorial*i;

writeln(nilai,'! = ',faktorial);

writeln();

write('Tekan sembarang tombol untuk menutup...');

readkey();

end.

Page 16: Bab 05 - Struktur Pengulangan

Pernyataan WHILE

1. While digunakan untuk melakukan pengulangan

selama kondisi pengulangannya bernilai true.

2. Apabila kondisi pengulangan sudah bernilai false

maka pengulangan berhenti.

3. WHILE melakukan pemeriksaan kondisi di awal

pengulangan.

Page 17: Bab 05 - Struktur Pengulangan

Pernyataan WHILE

Format Algoritma:

while kondisi do

statement

endwhile

Page 18: Bab 05 - Struktur Pengulangan

Pernyataan WHILE

Format Pascal:

while kondisi do

statement;

Atau

while kondisi do

begin

statement;

end;

Page 19: Bab 05 - Struktur Pengulangan

Algoritma Pernyataan WHILE

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

Algoritma Deret_Bilangan

{I.S: Diinputkan satu angka oleh user}

{F.S: Menampilkan jumlah deret dari 1 sampai angka}

Kamus:

i,deret:integer

angka:integer

Algoritma:

input(angka)

deret0

i1

while i<=angka do

deretderet+i

ii+1;

endwhile

output(‘Jumlah deret dari 1 – ‘,angka,’ = ‘,deret)

Page 20: Bab 05 - Struktur Pengulangan

Pascal Pernyataan WHILE

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

program Deret_Angka;

uses crt;

var

i,deret:integer;

angka:integer;

begin

write('Masukan angka = ');readln(angka);

deret:=0;

i:=1;

while i<=angka do

begin

deret:=deret+i;

i:=i+1;

end;

writeln('Jumlah deret dari 1 - ',angka,' = ',deret);

writeln();

write('Tekan sembarang tombol untuk menutup...');

readkey();

end.

Page 21: Bab 05 - Struktur Pengulangan

Pernyataan REPEAT

1. REPEAT akan melakukan pengulangan sampai

kondisi pengulangan bernilai true.

2. Apabila kondisi pengulangan sudah bernilai true

maka pengulangan berhenti.

3. REPEAT melakukan pemeriksaan kondisi di akhir

pengulangan.

Page 22: Bab 05 - Struktur Pengulangan

Pernyataan REPEAT

Format Algoritma:

repeat

statement

until kondisi

Page 23: Bab 05 - Struktur Pengulangan

Pernyataan REPEAT

Format Pascal:

repeat

statement;

until kondisi;

Page 24: Bab 05 - Struktur Pengulangan

Algoritma Pernyataan REPEAT

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

Algoritma Coba_Password

{I.S: Diinputkan password oleh user}

{F.S: Menampilkan pesan benar atau salah}

Kamus:

const

password=1234

pass,i,j:integer

Algoritma:

i1

j3

repeat

input(pass)

if pass=password then

output(‘Password anda benar!’);

else

ii+1

jj-1

output(‘Password salah (‘,j,’ kali lagi)!’)

endif

until (pass=password)or(i=4)

Page 25: Bab 05 - Struktur Pengulangan

Pascal Pernyataan REPEAT1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

21

22

23

24

25

26

27

28

29

30

31

32

program Coba_Password;

uses crt;

const

password=1234;

var

pass,i,j:integer;

begin

i:=1;

j:=3;

repeat

write('Masukan password (',i,'): ');readln(pass);

if pass=password then

begin

writeln('Password anda benar!');

writeln();

writeln('Tekan sembarang tombol untuk menutup...');

readkey();

end

else

begin

i:=i+1;

j:=j-1;

writeln('Password salah (',j,' kali lagi)!');

readkey();

end;

clrscr();

until (pass=password)or(i=4);

end.

Page 26: Bab 05 - Struktur Pengulangan

WHILE dan REPEAT

KAPAN HARUS MENGGUNAKAN

WHILE???

KAPAN HARUS MENGGUNAKAN

REPEAT???

Page 27: Bab 05 - Struktur Pengulangan

Kasus

1. Buatlah algoritma dan program untuk

menyelesaikan kasus seperti di bawah ini (warna

bintang setiap baris dibedakan):

N=5

*

* *

* * *

* * * *

* * * * *

Page 28: Bab 05 - Struktur Pengulangan

Kasus

2. Buatlah algoritma dan program untuk

menyelesaikan kasus seperti di bawah ini (warna

bintang setiap baris dibedakan):

N=3

*

* *

* * *

* *

*

Page 29: Bab 05 - Struktur Pengulangan

Kasus

3. Modifikasi project menu pada struktur pemilihan agar menunya bisa

terus ditampilkan sampai user menginput pilihan keluar.

4. Modifikasi program-program deret yang ada di dalam slide ini agar

bisa juga menampilkan deretnya juga!

5. Buat algoritma dan program untuk menghitung:

a. s = 1 – 2/3 + 3/5 – 4/7

b. Jumlah deret bilangan prima sampai suku ke-n.

6. Buat Algoritma dan program untuk menghitung nilai terbesar dan nilai

rata-rata dari 10 orang mahasiswa.