Anda di halaman 1dari 22

ALGORITMA

TUGAS 2

RESUME ALGORITMA PERCABANGAN

DAN ALGORITMA PERULANGAN

Disusun Oleh :
Sakina Mawardah
Teknik Informatika

Dosen :
Asep M. Yusuf, S.T

UNIVERSITAS NASIONAL PASIM


DAFTAR ISI

A. Algoritma Percabangan........................................................................................... 1
1. Pengertian Algoritma Percabangan .................................................................. 1
2. Ekspresi Boolean ............................................................................................... 1
3. Algoritma Teks dan Flowchart Percabangan .................................................... 3
4. Percabangan Tersarang .................................................................................... 6
5. Menggunakan Operator Boolean ..................................................................... 8
6. Percabangan 3 Kondisi atau Lebih .................................................................... 10

B. Algoritma Perulangan ............................................................................................. 12


1. Pengertian Algoritma Perulangan..................................................................... 12
2. Perulangan For – Do.......................................................................................... 14
3. Perulangan While – Do ..................................................................................... 17
4. Perulangan Repeat – Until ................................................................................ 19
A. ALGORITMA PERCABANGAN

1. Pengertian Algoritma Percabangan

Pada algoritma runtunan telah kita lihat bahwa setiap pernyataan selalu
dilakukan bila telah sampai gilirannya. Namun demikian ada kalanya suatu pernyataan
atau perintah hanya bisa dilakukan bila memenuhi suatu kondisi atau persyaratan
tertentu. Algoritma ini kita sebut dengan algoritma seleksi kondisi atau juga
percabangan.

Contoh. Misalnya kita ingin menentukan apakah suatu bilangan merupakan


bilangan genap atau ganjil. Algoritmanya dapat kita jabarkan

1. Mulai
2. Masukkan satu bilangan (X)
3. jika X habis dibagi dua maka lanjut ke 4. Jika tidak
lanjut ke 5
4. tulis ‘X bilangan genap’. Lanjut ke 6.
5. tulis ‘X bilangan ganjil’
6. Selesai

Perhatikan bahwa ada dua kemungkinan perintah yang akan dikerjakan setelah
perintah ke-3 dikerjakan. Jika X habis dibagi dua maka selanjutnya perintah ke-4 yang
dikerjakan, kemudian melompat ke 6 (perintah 5 tidak dikerjakan). Sebaliknya jika X
tidak habis dibagi dua perintah selanjutnya melompat ke-5 (perintah 4 tidak
dikerjakan) dan kemudian berakhir pada perintah ke-6.

2. Ekspresi Boolean

Ada dua komponen utama dalam ekspresi percabangan yaitu kondisi dan
pernyataan. Kondisi adalah syarat dilakukannya sebuah (atau sekelompok)
pernyataan, sedangkan pernyataan dalam konteks ini adalah perintah yang berkaitan
dengan suatu kondisi. Contoh umum pernyataan kondisi-pernyataan

1
1. Jika hari hujan, maka saya tidak jadi keluar rumah
kondisi pernyataan
2. Jika nilai ujian lebih besar atau sama dengan 60, maka ujian dinyatakan lulus
kondisi 1 pernyataan 1
Jika nilai ujian kurang dari 60, maka ujian dinyatakan gagal
kondisi 2 pernyataan 2

Sebagaimana contoh sebelumnya dapat dilihat bahwa adakalanya suatu


perintah dilakukan jika kondisi yang mempersyaratkannya telah jelas nilai benar
salahnya. Dalam hal pemrograman kondisi tersebut harus bisa dinyatakan dalam suatu
ekspresi boolean. Ekspresi boolean adalah ekspresi yang hasil ekspresinya bernilai
boolean (true atau false).

Ekspresi Boolean dapat diperoleh dengan menggunakan dua jenis operasi :

1. Operasi Boolean.

Operasi boolean adalah operasi yang menggunakan operator boolean


seperti and, or, not, xor.

Contoh operasi relasional

1. z1  x and y

2. z2  a=2 or b=10

3. z3  not(x)

4. z4  p+2=4 xor q=0

2
2. Operasi Relasional (Operasi Perbandingan)

Operasi relasional adalah operasi yang membandingkan dua buah


operan dengan menggunakan operator perbandingan (ingat, operator
perbandingan : =, <>, <, ≤, >, ≥).

Contoh operasi relasional

1. z1  x > y
2. z2  a <> 10
3. z3  x + y = 17
4. z4  p div q < r
5. z5  p mod 2 = 0

Hasil dari operasi perbandingan memiliki dua kemungkinan, yaitu true


(benar) atau false (salah). Oleh karena itu tipe hasil (z1, z2, z3, z4, z5) dari
setiap operasi di atas adalah boolean.

3. Algoritma Teks dan Flowchart Percabangan

Ada dua tipe algoritma percabangan yang akan kita bahas berikut ini yaitu :

- Satu kondisi (if-then) : artinya hanya ada satu kondisi yang menjadi syarat
untuk melakukan satu atau satu blok (sekelompok) pernyataan. Bentuk
umum algoritma teks standar percabangan dengan satu kondisi :

if <kondisi> then
pernyataan

Jika <kondisi> bernilai benar maka pernyataan dikerjakan, sedangkan jika


tidak, maka pernyataan tidak dikerjakan dan proses langsung keluar dari
percabangan (begin).

3
Contoh.
if A>B then
write (A)

Ekspresi di atas menunjukkan bahwa perintah menulis /


menampilkan A dikerjakan hanya jika kondisi A>B bernilai benar. Jika yang
terjadi adalah sebaliknya, tidak ada pernyataan yang dilakukan atau proses
langsung keluar dari percabangan (endif). Secara flowchart ekspresi itu
dapat ditulis seperti berikut.

t
A>B?

Write(A)

Perhatikan bahwa pada kotak belah ketupat memiliki dua cabang


arus data, yang satu untuk kondisi bernilai benar (y, artinya ya), sedang yang
lain untuk kondisi bernilai salah (t, artinya tidak). Jika kondisi bernilai benar
(y) maka perintah yang dikerjakan adalah write(A). Jika kondisi salah (t)
maka arus data langsung menuju ke bawah tanpa mengerjakan pernyataan
apapun.

- Dua kondisi (if-then-else) : artinya ada dua kondisi yang menjadi syarat
untuk dikerjakannya dua jenis pernyataan. Bentuk umum percabangan
dengan dua kondisi :

if <kondisi> then
pernyataan1
else
pernyataan2

4
Jika <kondisi> bernilai benar maka pernyataan1 dikerjakan.
Sedangkan jika tidak (<kondisi> bernilai salah), maka pernyataan yang
dikerjakan adalah pernyataan2. Berbeda dengan percabangan satu kondisi,
pada percabangan dua kondisi ada dua pernyataan untuk dua keadaan
kondisi, yaitu untuk <kondisi> yang bernilai benar dan <kondisi> yang
bernilai salah. Contoh algoritma percabangan dua kondisi :
if A>B then
write (A)
else
write (B)
Ekspresi di atas sedikit berbeda dengan sebelumnya. Perintah
menulis/menampilkan A dikerjakan hanya jika kondisi A>B bernilai benar,
sedangkan jika yang terjadi adalah sebaliknya maka pernyataan yang
dilakukan adalah menulis B. Secara flowchart pernyataan di atas dapat
ditulis sebagai berikut.

Write
A>B?
(B)

Write
(A)

5
Berikut ini adalah beberapa contoh lainnya.

a. If x > 0 then
ket  ‘bilangan positif’
b. if m = n
i  m*n
write(i)
c. if bil>=0 then
ket  (‘bilangan positif’)
else
ket  (‘bilangan negatif’)
d. if m = n then
i  m*n
j  m-n
else
i  m/n
j  m+n
write(i,j)

4. Percabangan Tersarang
Percabangan tersarang adalah percabangan di dalam percabangan. Banyak sekali
bentuknya, namun salah satu contohnya adalah sebagai berikut.

If <kondisi1> then
if <kondisi2> then
Pernyataan1
else
Pernyataan2
else
If <kondisi3>
Pernyataan3
else

6
Pernyataan4

Misalnya, buatlah algoritma untuk menentukan apakah suatu bilangan merupakan


bilangan kelipatan 2 saja, atau kelipatan 5 saja, atau kelipatan 2 dan 5, atau bukan
kelipatan 2 dan 5. Bilangan yang dimaksud merupakan input algorritma.

t y
Kondisi1

Kondisi3 Kondisi2

Pernyataan4 Pernyataan3 Pernyataan2 Pernyataan1

Algoritma Kelipatan2 Kelipatan5

Deklarasi
Bil : integer
Ket : string

Deskripsi
read (bil)
if bil mod 2 = 0 then
if bil mod 5 = 0 then
Ket  ‘ Kelipatan 2 dan Kelipatan 5’

7
else
Ket  ‘ Kelipatan 2 tapi Bukan Kelipatan 5’
else
if bil mod 5 = 0 then
Ket  ‘Bukan Kelipatan 2 tapi Kelipatan 5’
else
Ket  ‘Bukan Kelipatan 2 atau 5’)
Write(Ket)

5. Menggunakan Operator Boolean


Kita dapat menyederhanakan persoalan percabangan dengan menggunanakan
operator boolean (and, or, not, dan xor) untuk ekspresi boolean yang lebih dari satu.
Misalnya, sebuah univeritas memberlakukan yudisium cumlaude untuk mahasiswa yang
lulus dengan IPK lebih besar sama dengan 3.5 dan masa kuliah tidak lebih dari 4 tahun.
Bagaimana algoritma penentuan yudisiumnya?
(Input : IPK dan masa kuliah)
Begin

Algoritma yudisium1
Deklarasi read (IPK,
MK)
IPK, MK : real
Ket : string
Deskripsi (IPK>=3.5) t
and (MK <=4)
Read (IPK,MK)
If (IPK>=3.5) and (MK<=4) y
ket <-- 'tidak cum
then ket <-- 'cum laude'
laude'

Ket  ‘cum laude’


else
write(ket)
Ket  ‘tidak cumlaude’
write (Ket)
End

8
Penjelasan
Mula mula IPK dan MK, misalnya, kita beri nilai 3.6 dan 4. Karena kondisi (IPK>=3.5) and
(MK<=4) bernilai benar maka perintah berikutnya adalah Ket  ‘cum laude’. Sehingga
ketika perintah Write (Ket) menghasilkan output ‘cum laude’. Cobalah menganalisa soal
ini dengan memberikan input yang lain.

Penggunaan operator logika sangat membantu untuk menyederhanakan algoritma. Jika


tidak menggunakan operator logika maka algoritmanya dapat ditulis sebagai berikut.

Algoritma yudisium2

Deklarasi

IPK, MK : real

Ket : string

Deskripsi

read (IPK,MK)

if IPK>=3.5 then

if MK<=4 then

Ket  ‘cum laude’

else

Ket  ‘tidak cumlaude’

else

Ket  ‘Tidak cumlaude’

write (Ket)

9
Di sini terlihat algoritmanya menjadi sedikit rumit. Kerumitan bertambah
karena kita harus membuat percabangan dalam percabangan (percabangan
tersarang). Selain itu penulisan Ket’Tidak cumlaude’ harus ditulis dua kali agar
tujuan algoritma dapat dicapai. Dengan demikian penggunaan operator logika dalam
hal ini jelas menyederhanakan algoritma di atas.

6. Percabangan Tiga Kondisi Atau Lebih


Percabangan dengan tiga kondisi atau lebih adalah bentuk pengembangan dari dua
bentuk percabangan percabangan yang telah kita bahas sebelumnya. Akan ada banyak
sekali variasinya tetapi secara umum ekspresi percabangannya dapat kita tuliskan sebagai
berikut.

If <kondisi1> then

Pernyataan1

else if <kondisi2> then

Pernyataan2

...

else if <kondisi(n-1)> then

Pernyataan(n)

else

Pernyataan(n)

Mula-mula <kondisi1> dicek nilai kebenarannya. Jika benar, maka dikerjakan


pernyataan1. Jika salah, maka dicek nilai kebenaran <kondisi2>. Jika <kondisi2> benar,
maka dikerjakan pernyataan2. Jika tidak algoritma akan mengecek ke kondisi berikutnya
dengan cara yang sama dengan yang sebelumnya. Terakhir, jika semua kondisi bernilai
salah, maka pernyataan yang dikerjakan adalah Pernyataan(n+1). Bentuk flowchartnya
dapat dilihat di bawah ini.

10
y
<kondisi1>? aksi1

y
<kondisi2> aksi2

aksi(n+1)<--0

Pada algoritma di atas pernyataan1 akan dikerjakan jika <kondisi1> bernilai


benar, jika tidak pemeriksan dilanjutkan ke <kondisi2>. Jika <kondisi2> bernilai benar
maka pernyataan2 dikerjakan. Jika tidak, pemeriksaan dilanjutkan pada kondisi-kondisi
berikutnya. Pemeriksaan ini terus terhadap semua kondisi yang ada. Jika tidak ada kondisi
yang benar maka pernyataan yang dikerjakan adalah pernyataan(n+1).

11
B. ALGORITMA PENGULANGAN
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

12
Atau dalam algoritma standar ditulis

Deskripsi

Read(X)

Y1

YX*Y

YX*Y

YX*Y

Write(Y)

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

Perintah X Y Ouput

Read(X) 2

Y1 1

YX*Y 4

YX*Y 8

YX*Y 16

Write(Y) 16

Output yang dihasilkan adalah : 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.

13
Bila mengacu pada bahasa pemrograman Pascal, terdapat tiga ekspresi algoritma
untuk pengulangan :

1. for-do
2. while-do
3. repeat-until

Namun demikian, ketiganya memiliki komponen-komponen pengulangan yang sama


yaitu :

- 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 varnilai_awal to nilai_akhir do


pernyataan
Flowchart for-do menaik

Var  ni...nf

pernyataan

For-do menurun
For variabelnilai_awal downto nilai_akhir do
Pernyataan

14
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
var  3…1

for i1 to 3 do
Write(‘Halo’)
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.

15
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 i3 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.

16
3. Perulangan While-Do
Secara umum algoritma while adalah :
while <kondisi> do
begin
pernyataan
end
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)

17
x2

while x<=N do

Write(x)

xx+2

begin

read
(N)

x<--2

t
x<=N

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.

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

Perintah Kondisi x N Output

Read(N) 8

x2 2

Blok pengulangan

x<=N Write(x) / xx+2


output
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>

19
sedangkan bentuk flowchartnya

Aksi
loop

t
<kondisi>

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)

20