Vous êtes sur la page 1sur 13

Algoritma Perulangan Pemrograman Dasar

Andi Saputro | August 24, 2014 |

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
1Deskripsi
X*YY

Read(X)

X*Y
Write(Y)X*Y
Jika input algoritma (X) adalah 2, maka dengan tabel penyimpanan data
Perintah
Read(X)

YY
Ouput

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
nilai_awal to nilai_akhir do pernyataanFor var
Flowchart for-do menaik
pernyataan
For-do menurun
nilai_awal downto nilai_akhir doPernyataanFor variabel
Flowchart for-do menurun
Var = ninf
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
1 to 3 dofor i
Write(Halo)
31var
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
Kita dapat membuat output yang sama seperti di atas dengan for-do menurun.

Halo

3 downto 1 dofor i
Write(Halo)
31var
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
while <kondisi> do begin

algoritma

while

adalah

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)
2x
while x<=N do
Write(x)
x+2x
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
Read(N)
2
Blok pengulangan

Kondisi

Output
8
2x

x<=N Write(x) /
x+2output
true
2
true
4
true
6
true
8
false
Jika N adalah 10 maka output algoritma deret : 2, 4, 6, 8
4. Perulangan Repeat-Until
Secara umum algoritma repeat-until adalah

x
4
6
8
10

repeat
until <kondisi>

aksi

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 repeatuntil aksi sekurang- kurangnya dilakukan sebanyak satu kali. (Perhatikan flowchart)
Andi Saputro
Artikel Algoritma Perulangan Pemrograman Dasar Materi Pertemuan 12 15
ditulis oleh : Andi Saputro
Kata Kunci : Featured, Materi, Materi Multimedia, Materi Pemrograman
Dasar, Pemrograman Dasar
Kelompok Artikel: Materi, Pemrograman Dasar

Struktur Algoritma Percabangan


Written By Anisa indra on Wednesday, May 29, 2013 | 3:50 AM
Sebuah program tidak selamanya akan berjalan dengan mengikuti struktur
berurutan, kadang-kadang kita perlu merubah urutan pelaksanaan program dan
menghendaki agar pelaksanaan program meloncat ke baris tertentu. Peristiwa ini
kadang disebut sebagai percabangan/pemilihan atau keputusan. Hal ini seperti
halnya ketika mobil berada dalam persimpangan seperti pada gambar 5.7. Pengemudi
harus memutuskan apakah harus menempuh jalur yang kanan atau yang kiri (lurus).

Pada struktur percabangan, program akan berpindah urutan pelaksanaan jika suatu
kondisi yang disyaratkan dipenuhi. Pada proses seperti ini simbol flowchart Decision
harus digunakan. Simbol decision akan berisi pernyataan yang akan diuji
kebenarannya. Nilai hasil pengujian akan menentukan cabang mana yang akan
ditempuh.
Contoh 5.15. Struktur percabangan untuk masalah batasan umur.
Sebuah aturan untuk menonton sebuah film tertentu adalah sebagai berikut: Jika
usia penonton lebih dari 17 tahun maka penonton diperbolehkan, dan apabila kurang
dari 17 tahun maka penonton tidak diperbolehkan nonton. Buatlah flowchart untuk
permasalahan tersebut.
Penyelesaian:
Permasalahan diatas merupakan ciri permasalahan yang menggunakan struktur
percabangan. Hal ini ditandai dengan adanya pernyataan: jika .. maka ...(atau If ...
Then dalam Bahasa Inggris).
Flowchart penyelesaian masalah tampak pada gambar 5.9. Pada gambar tersebut,
tampak penggunaan simbol Decision. Pada simbol ini terjadi pemeriksaan kondisi,

yaitu: apakah usia lebih dari 17 tahun atau tidak. Jika jawaban ya maka program
akan menghasilkan keluaran teks "Silahkan Menonton", sedangkan jika input usia
kurang dari 17 tahun maka program akan menghasilkan keluaran teks "Anda Tidak
Boleh Menonton".

Contoh 5.16. Struktur percabangan untuk perhitungan dua buah bilangan.


Dalam suatu perhitungan, nilai P = X + Y. Jika P positif, maka Q = X * Y, sedangkan
jika negative maka nilai Q = X/Y. Buatlah flowchart untuk mencari nilai P dan Q
Penyelesaian:
Pada contoh ini input yang dibutuhkan adalah nilai X dan Y, sedangkan proses
pemeriksaan kondisi dilakukan pada nilai P apakah positif (termasuk 0) ataukah
negative. Perhatikan flowchart penyelesaian masalah pada gambar 5.10.

dalam struktur percabangan yang lain, atau yang biasa disebut nested (bersarang).
Perhatikan contoh-contoh berikut.
Contoh 5.17. Struktur percabangan bersarang untuk masalah fotokopi.
Sebuah usaha fotokopi mempunyai aturan sebagai berikut:

Jika yang fotokopi statusnya adalah langganan, maka berapa lembar pun dia
fotokopi, harga perlembarnya Rp. 75,-

Jika yang fotokopi bukan langganan, maka jika dia fotokopi kurang dari 100
lembar harga perlembarnya Rp. 100,-. Sedangkan jika lebih atau sama dengan
100 lembar maka harga perlembarnya Rp. 85,-.

Buatlah flowchart untuk menghitung total harga yang harus dibayar jika seseorang
memfotokopi sejumlah X lembar.
Penyelesaian:
Pada contoh ini, masalah terlihat lebih rumit. Ada dua percabangan yang terjadi.
Yang pertama adalah pemeriksaan apakah status seseorang pelanggan atau bukan.
Kedua, apabila status seseorang bukan pelanggan, maka dilakukan pemeriksaan
berapa jumlah lembar fotokopi, apakah lebih dari 100 lembar atau tidak.
Pada soal ini kita juga menjumpai apa yang disebut sebagai nested. Perhatikan
pernyataan pada syarat kedua dari persoalan di atas.
'Jika yang fotokopi bukan langganan, maka jika dia fotokopi kurang dari 100 lembar
harga perlembarnya Rp.100'
pernyataan jika yang kedua berada di dalam jika yang pertama.
Input yang dibutuhkan untuk permasalahan ini adalah status orang yang fotokopi,
dan jumlah lembar yang difotokopi. Sehingga variable input yang digunakan adalah:

Status untuk status orang yang fotokopi


JLF untuk jumlah lembar yang difotokopi

Selain itu, terdapat variable dengan nama HPP yang digunakan untuk menyimpan
harga per lembar, dan TH untuk menyimpan nilai total harga. Perhatikan, variable
Status bertipe data char, sehingga penulisannya harus menggunakan tanda " ".
Flowchart penyelesaian masalah ini dapat dilihat pada gambar 5.11.

Contoh 5.18. Struktur percabangan bersarang untuk masalah kelulusan siswa.


Aturan kelulusan siswa pada mata pelajaran Pemrograman Web diterapkan sebagai
berikut:

Jika nilai ujian tengah semester (UTS) lebih besar dari 70 maka siswa
dinyatakan lulus dan Nilai Akhir sama dengan nilai UTS.
Jika nilai UTS kurang atau sama dengan 70, maka siswa dinyatakan lulus jika
Nilai Akhir lebih besar atau sama dengan 60 dimana Nilai Akhir = (nilai UTS x
40%) + (nilai UAS x 60%).

Buatlah flowchart penyelesaian masalah tersebut apabila output yang diinginkan


adalah NIM, Nama Siswa, Nilai Akhir, dan Status Kelulusan.
Penyelesaian:
Pada contoh ini, ada dua percabangan. Yang pertama adalah pemeriksaan apakah nilai
UTS siswa lebih dari 70. Kedua, apabila nilai UTS tidak lebih dari 70, maka
dilakukan pemeriksaan apakah nilai akhir lebih dari 60. Input yang dibutuhkan untuk
permasalahan ini adalah NIM, nama siswa, nilai UTS, dan nilai UAS. Sehingga
variable input yang digunakan adalah: NIM untuk Nomor induk siswa, nama untuk
nama siswa, NUTS untuk nilai ujian tengah semester, dan NUAS untuk nilai ujian
akhir semester. Sedangkan variabel ouput terdiri dari NA yang digunakan untuk
menyimpan nilai akhir, dan Status untuk menyimpan status kelulusan.

Copyright 2013.
Halaman Terkait:
| Struktur algoritma pemrograman | Pengertian algoritma | Cara penulisan
algoritma | Struktur algoritma berurutan | Struktur algoritma pengulangan |
Diposkan oleh Anisa indra di 3:50 AM

Nama

: Siti Nur Hidayah

No.Absen : 23
Kelas

: X TKJ 3