Modul Pemrograman Dasar Pertemuan 12 - 17

15
MODUL PEMROGRAMAN DASAR PERTEMUAN 12 1. Algoritma Perulangan Ada kalanya untuk menyelesaikan suatu masalah, satu atau beberapa perintah harus dikerjakan beberapa kali. Misalnya anda hendak menampilkan tulisan algoritma sebanyak tiga kali. Maka algoritmanya dapat ditulis 1. Mulai 2. Tulis ‘Algoritma’ 3. Tulis ‘Algoritma’ 4. Tulis ‘Algoritma’ 5. Selesai Sehingga diperoleh keluaran Algoritma Algoritma Algoritma Contoh lain. Anda hendak menghitung suatu bilangan dipangkatkan tiga. Maka algoritmanya dapat dituliskan 1. Mulai 2. Masukkan bilangan X 3. Set nilai Y=1 4. Kalikan X dengan Y, simpan sebagai Y 5. Kalikan X dengan Y, simpan sebagai Y PAK ANDI 1

description

Modul Pemrograman Dasar Pertemuan 12 - 17

Transcript of Modul Pemrograman Dasar Pertemuan 12 - 17

Page 1: Modul Pemrograman Dasar Pertemuan 12 - 17

MODUL PEMROGRAMAN DASAR

1. Algoritma Perulangan

Ada kalanya untuk menyelesaikan suatu masalah, satu atau beberapa perintah harus

dikerjakan beberapa kali. Misalnya anda hendak menampilkan tulisan algoritma sebanyak

tiga kali. Maka algoritmanya dapat ditulis

1. Mulai

2. Tulis ‘Algoritma’

3. Tulis ‘Algoritma’

4. Tulis ‘Algoritma’

5. Selesai

Sehingga diperoleh keluaran

Algoritma

Algoritma

Algoritma

Contoh lain. Anda hendak menghitung suatu bilangan dipangkatkan tiga. Maka

algoritmanya dapat dituliskan

1. Mulai

2. Masukkan bilangan X

3. Set nilai Y=1

4. Kalikan X dengan Y, simpan sebagai Y

5. Kalikan X dengan Y, simpan sebagai Y

6. Kalikan X dengan Y, simpan sebagai Y

7. Tulis (Y)

8. Selesai

PAK ANDI 1

Page 2: Modul Pemrograman Dasar Pertemuan 12 - 17

MODUL PEMROGRAMAN DASAR

Atau dalam algoritma standar ditulis

Deskripsi

Read(X)

Y1

YX*Y

YX*Y

YX*Y

Write(Y)

Jika input algoritma (X) adalah 2, maka dengan tabel penyimpanan data

Perintah X Y Ouput

Read(X)

Y1

YX*Y

YX*Y

YX*Y

Write(Y)

2

1

4

8

16

16

Cara ini memang dapat menyelesaikan permasalahan tersebut di atas, tapi sangat

tidak efisien dalam penulisannya. Bayangkan kalau pengulangannya dilakukan

sebanyak

1000 kali, maka kita harus menulisnya sebanyak seribu kali pula. Tentunya akan sangat

merepotkan. Untuk itu kita perlu mengenal satu lagi algoritma dasar yaitu algoritma

pengulangan. Dengan algoritma ini kita cukup menuliskan perintahnya sekali untuk

pengulangan berapapun banyaknya.

PAK ANDI 2

Page 3: Modul Pemrograman Dasar Pertemuan 12 - 17

MODUL PEMROGRAMAN DASAR

Bila mengacu pada bahasa pemrograman Pascal, terdapat tiga ekspresi algoritma

untuk pengulangan :

1. for-do

2. while-do

3. repeat-until

yaitu :

Namun demikian, ketiganya memiliki komponen-komponen pengulangan yang sama

- Kondisi pengulangan : Setiap aksi atau kumpulan aksi dikerjakan jika memenuhi kondisi

tertentu. Selama kondisi terpenuhi aksi akan terus dikerjakan

- Badan pengulangan : bagian aksi yang diulang

- Nilai awal atau inisialisasi : Pemberian nilai satu atau beberapa variabel sebelum

pengulangan dilakukan.

2. Pengulangan For-Do

Ada 2 macam pengulangan for-do, yaitu for-do menaik dan for-do menurun. Berikut ini

adalah bentuk umumnya.

Fo r - d o me n a i k

For varnilai_awal to nilai_akhir do

pernyataan

Flowchart for-do menaik

Var ni...nf

pernyataan

Fo r - d o me n u ru n

For variabelnilai_awal downto nilai_akhir doPernyataan

PAK ANDI 3

Page 4: Modul Pemrograman Dasar Pertemuan 12 - 17

MODUL PEMROGRAMAN DASAR

Flowchart for-do menurun

Var = ni...nf

pernyataan

Kondisi pengulangan for secara tersirat dapat dilihat pada ni (nilai_awal) dan nf

(nilai_akhir); Nilai yang terkandung pada var mula-mula sama dengan nilai_awal, kemudian

bertambah (berkurang) sebanyak satu, kemudian berhenti setelah var lebih besar (lebih kecil)

nilai_akhir.

Karakteristik pengulangan for-do

- Aksi mula-mula dilakukan saat var=nilai_awal dan terakhir saat var=nilai_akhir.

- Var, nilai_awal dan nilai_akhir bertipe bilangan bulat (integer)

- Setiap selesai satu kali pengulangan var berubah +1 (for-do menaik) atau –1 (for-do menurun).

- Pengulangan paling sedikit dilakukan sekali, banyaknya pengulangan adalah selisih nilai_awal

dan nilai_akhir ditambah 1

Contoh

for i1 to 3 do

Write(‘Halo’)

var 3…1

Write (‘Halo’)

Pada perintah di atas, mula-mula i diberi nilai 1. Kemudian perintah write(‘Halo’)

dikerjakan. Setelah itu i bertambah satu sehingga menjadi 2, dilanjutkan dengan perintah

write(‘Halo’). Proses yang sama diulang lagi hingga i bernilai tiga, perintah write(’Halo’)

dikerjakan. Setelah itu proses pengulangan berhenti di situ.

PAK ANDI 4

Page 5: Modul Pemrograman Dasar Pertemuan 12 - 17

MODUL PEMROGRAMAN DASAR

Dengan demikian outputnya dapat kita nyatakan seperti berikut :

Halo

Halo

Halo

Kita dapat membuat output yang sama seperti di atas dengan for-do menurun.

for i3 downto 1 do

Write(‘Halo’) var 3…1

Write (‘Halo’)

Perbedaannya, pada for-do menaik i berubah dari 1 sebanyak +1 dan berhenti

setelah lebih dari 3, sedangkan pada for-do menurun, i berubah dari 3 sebanyak –1 hingga

akhirnya berhenti saat i kurang dari 1. Coba tentukan bentuk dari algoritma di atas.

PAK ANDI 5

Page 6: Modul Pemrograman Dasar Pertemuan 12 - 17

MODUL PEMROGRAMAN DASAR

3. Perulangan While-Do

Secara umum algoritma while adalah :

while <kondisi> do

begin

end

pernyataan

sedangkan bentuk flowchartnya

t <kondisi>?

y loop

Aksi

Teks algoritma dan flowchart di atas menunjukkan bahwa ada pengecekan kondisi

dulu sebelum aksi berikutnya dilakukan. Aksi di bawah kondisi dikerjakan jika kondisinya

atau lebih tepatnya nilai boolean kondisi bernilai benar. Jika kondisi bernilai salah maka

proses akan ‘melompat’ atau mengerjakan aksi yang berada di luar loop.

Contoh soal.

Buat algoritma menampilkan deret 2, 4, 6, …, N. N adalah masukan berupa bilangan genap.

Algoritma deret

Deklarasi

N,x : integer

PAK ANDI 6

Page 7: Modul Pemrograman Dasar Pertemuan 12 - 17

MODUL PEMROGRAMAN DASAR

Deskripsi

read(N)

PAK ANDI 7

Page 8: Modul Pemrograman Dasar Pertemuan 12 - 17

MODUL PEMROGRAMAN DASAR

x2

while x<=N do

Write(x)

xx+2

begin

read(N)

x<--2

tx<=N

y

write (x)

x<--x+2

End

Mula-mula inputkan nilai N, kemudian x diberi nilai 2 (proses inisialisasi). Setelah

itu x dibandingkan dengan N, jika pernyataan (x<=N) bernilai benar maka x ditampilkan,

lalu x ditambah 2 dan menghasilkan x baru. Setelah itu arus data kembali ke atas untuk

menguji apakah pernyataan x<=N bernilai benar. Jika iya, maka proses yang sama dengan

sebelumnya dilakukan kembali. Demikian seterusnya hingga pernyataan x<=N bernilai

PAK ANDI 8

Page 9: Modul Pemrograman Dasar Pertemuan 12 - 17

MODUL PEMROGRAMAN DASAR

salah.

PAK ANDI 9

Page 10: Modul Pemrograman Dasar Pertemuan 12 - 17

MODUL PEMROGRAMAN DASAR

Untuk input N = 8, tabel penyimpanan datanya dapat kita nyatakan sebagai berikut.

Perintah Kondisi x N Output

Read(N) 8

x2 2

Blok pengulangan

x<=N Write(x) /

output

xx+2

true 2 4

true 4 6

true 6 8

true 8 10

false

Jika N adalah 10 maka output algoritma deret : 2, 4, 6, 8

4. Perulangan Repeat-Until

Secara umum algoritma repeat-until adalah

repeat

aksi

until <kondisi>

PAK ANDI 10

Page 11: Modul Pemrograman Dasar Pertemuan 12 - 17

202

MODUL PEMROGRAMAN DASAR

sedangkan bentuk flowchartnya

Aksiloop

t<kondisi>

y

Secara umum teks dan flowchart di atas berarti bahwa aksi tidak dikerjakan lagi jika kondisi

bernilai benar.

Algoritma while-do dengan repeat-until sebenarnya hampir sama, perbedaannya

hanya terletak pada penempatan kondisinya. Pada while-do pengecekan kondisi diletakkan

di awal loop, sedangkan pada repeat-until pengecekan kondisi dilakukan di akhir loop. Itu

sebabnya pada algoritma while-do aksi bisa jadi tidak dilakukan sama sekali jika sejak

awal kondisinya sudah bernilai salah. Sedangkan pada pada repeat-until aksi sekurang-

kurangnya dilakukan sebanyak satu kali. (Perhatikan flowchart)