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
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 OuputRead(X)
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.
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.
For-do menaik
For varnilai_awal to nilai_akhir do pernyataan
Flowchart for-do menaik
pernyataan
For-do menurun
For variabelnilai_awal downto nilai_akhir doPernyataan
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.
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.
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
Deskripsi read(N)
x2
while x<=N do
Write(x)
xx+2
begin
read
(N)
x<–2
t
x<=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 salah.
Untuk input N = 8, tabel penyimpanan datanya dapat kita nyatakan sebagai berikut.
erintah 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>
sedangkan bentuk flowchartnya
Aksi
loop
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.
Terima kasih informasinya sangat membantu kami
BalasHapus