Modul Pemrograman Dasar Pertemuan 12 - 17
description
Transcript of Modul Pemrograman Dasar Pertemuan 12 - 17
![Page 1: Modul Pemrograman Dasar Pertemuan 12 - 17](https://reader036.fdokumen.com/reader036/viewer/2022081201/55cf9475550346f57ba22561/html5/thumbnails/1.jpg)
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](https://reader036.fdokumen.com/reader036/viewer/2022081201/55cf9475550346f57ba22561/html5/thumbnails/2.jpg)
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](https://reader036.fdokumen.com/reader036/viewer/2022081201/55cf9475550346f57ba22561/html5/thumbnails/3.jpg)
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](https://reader036.fdokumen.com/reader036/viewer/2022081201/55cf9475550346f57ba22561/html5/thumbnails/4.jpg)
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](https://reader036.fdokumen.com/reader036/viewer/2022081201/55cf9475550346f57ba22561/html5/thumbnails/5.jpg)
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](https://reader036.fdokumen.com/reader036/viewer/2022081201/55cf9475550346f57ba22561/html5/thumbnails/6.jpg)
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](https://reader036.fdokumen.com/reader036/viewer/2022081201/55cf9475550346f57ba22561/html5/thumbnails/7.jpg)
MODUL PEMROGRAMAN DASAR
Deskripsi
read(N)
PAK ANDI 7
![Page 8: Modul Pemrograman Dasar Pertemuan 12 - 17](https://reader036.fdokumen.com/reader036/viewer/2022081201/55cf9475550346f57ba22561/html5/thumbnails/8.jpg)
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](https://reader036.fdokumen.com/reader036/viewer/2022081201/55cf9475550346f57ba22561/html5/thumbnails/9.jpg)
MODUL PEMROGRAMAN DASAR
salah.
PAK ANDI 9
![Page 10: Modul Pemrograman Dasar Pertemuan 12 - 17](https://reader036.fdokumen.com/reader036/viewer/2022081201/55cf9475550346f57ba22561/html5/thumbnails/10.jpg)
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](https://reader036.fdokumen.com/reader036/viewer/2022081201/55cf9475550346f57ba22561/html5/thumbnails/11.jpg)
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)