Anda di halaman 1dari 13

BAB 4

Struktur Dasar Algoritma

4.1. Pengertian Struktur Dasar Algoritma

Algoritma merupakan langkah-langkah penyelesaian masalah. Langkah-


langkah tersebut dapat berupa runtunan aksi, pemilihan/percabangan aksi, dan
pengulangan aksi. Ketiga jenis langkah tersebut membentuk konstruksi suatu
algoritma. Semua program yang ada di dunia ini pasti mengandung salah satu
dari ketiga struktur ini. Jadi, sebuah algoritma dapat dibangun dari tiga buah
struktur dasar, yaitu:
1. Runtunan (sequence).
2. Pemilihan/Percabangan (selection).

3. Pengulangan (repetition/looping).

4.2. Runtunan (seguence)


Sebuah runtunan terdiri dari satu atau lebih instruksi. Tiap instruksi
dikerjakan secara berurutan sesuai dengan urutan penulisannya, yakni sebuah
instruksi dilaksanakan setelah instruksi sebelumnya selesai dilaksanakan. Urutan
instruksi menentukan keadaan akhir algoritma. Bila urutannya diubah, maka
hasil akhir mungkin juga berubah.
Pada struktur sekuensial instruksi dikerjakan secara berurutan baris
perbaris mulai dari baris pertama hingga baris terakhir, tanpa ada loncatan atau
perulangan. Proses struktur runtunan sebagai berikut:
- Tiap instruksi dikerjakan satu per satu.
- Tiap instruksi dilaksanakan tepat sekali, tidak ada instruksi yang diulang.
- Urutan instruksi yang dilaksanakan pemroses sama dengan urutan instruksi
sebagai tertulis di dalam teks algoritma.
- Akhir dari instruksi terakhir merupakan akhir algoritma.

Contoh Algoritma Menghitung Luas Persegi Panjang :


1. Masukkan panjang (p)
2. Masukkan lebar (l)
3. Hitung Luas (p * l)
4. Tulis Luas

Pengaruh Urutan Instruksi


- Urutan instruksi dalam algoritma adalah penting. Urutan instruksi menunjukan
urutan logik penyelesaian masalah.
- Urutan instruksi yang berbeda mungkin tidak ada pengaruh terhadap solusi
persoalan, tetapi mungkin juga menghasilkan keluaran yang berbeda,
tergantung pada masalahnya

17
Contoh urutan instruksi yang berbeda tetapi tidak mempengaruhi hasil.

Deklarasi : Deklarasi:
A, B, C, D : Integer A, B, C, D : Integer
Algoritma : Algoritma :
1. Read (A,B) 1. Read (A, B)
2. C ← A + B 2. D ← A * B
3. D ← A * B 3. C ← A + B
4. Write (C, D) 4. Write(C, D)

Dari kedua algoritma hasil C dan D adalah sama

Tetapi jika algoritma di atas urutan no. 1,2 dan 3 diubah (ditukarkan ) maka
menghasil keluaran yang berbeda (tidak sama) seperti berikut :

Deklarasi :
A, B, C, D
Algoritma :
1. C ← A + B
2. D ← A * B
3. Read (A, B)
4. Write (C, D)

4.3. Pemilihan/Percabangan (Selection)

Pada umumnya, masalah yang akan diselesaikan melalui algoritma memiliki


beberapa alternatif pelaksanaan aksi. Sebuah aksi akan dikerjakan jika suatu
kondisi terpenuhi. Misalkan suatu massalah memiliki beberapa kasus, sehingga
untuk menyelesaikan masalah tersebut harus dilakukan proses analisis terhadap
kasus-kasus yang ada serta aksi apa yang akan dilakukan pada kasus tertentu.

Contoh kasus ibu Tuti dalam menentukan penggunaan celemek untuk


mengupas kentang. Jika baju ibu Tuti berwarna muda maka gunakan celemek.

if baju = warna muda then

Gunakan celemek

endif

Adakalanya sebuah instruksi dikerjakan jika kondisi tertentu dipenuhi. Kondisi


adalah persyaratan yang dapat bernilai benar atau salah. Dalam pemilihan
dikenal beberapa struktur pemilihan, yaitu:
18
a. If – then (satu kasus)

Statemen if dengan satu kasus merupakan bentuk yang paling sederhana karena
hanya melibatkan satu kondisi yang akan diperiksa. Aksi hanya akan
dilaksanakan apabila kondisi bernilai benar. Sebaliknya, apabila kondisi bernilai
salah, maka aksi tidak akan dilaksanakan.

Bentuk umum : if kondisi then

aksi/penyataan

endif

Contoh 1:

Algoritma bilangan genap atau ganjil


Deklarasi
Bil : integer
Algoritma
Read(bil)
if bil mod 2 = 0 then
Write(‘Bilangan Genap’)
endif
end Algoritma

b. If –then-else (dua kasus)

Statemen if yang melibatkan dua kasus merupakan perluasan dari statemen if


satu kasus. Pada bentuk pemilihan ini terdapat statemen tambahan yang
digunakan untuk mengatasi kejadian pada saat kondisi yang didefinisikan
bernilai salah atau tidak terpenuhi. Apabila kondisi dipenuhi maka aksi-1
dilaksanakan bila kondisi tidak dipenuhi maka aksi- 2 yang dilaksanakan. Else
artinya ”kalau tidak”. Bila kondisi benar, aksi 1 yang akan dikerjakan, tetapi
kalau tidak, aksi 2 yang akan dikerjakan.

19
Bentuk umum :

if kondisi then

aksi1

else

aksi2

end if

Contoh 2:

Algoritma menentukan bilangan terbesar


Deklarasi
bilangan1, bilangan2 : integer
ket : string[35]
Algoritma
Read (bilangan1, bilangan2)
if bilangan1 > bilangan2 then
ket ← ‘Bilangan 1 adalah bilangan terbesar’
else
ket ← ‘Bilangan 2 adalah bilangan terbesar’
endif
end algoritma

c. Tiga kasus atau lebih

Bentuk ini merupakan bentuk pemilihan yang sedikit kompleks, karena


memiliki tiga buah atau lebih kasus sehingga akan terdapat statemen if di dalam
if lainnya, yang sering dikenal dengan if bersarang (nested-if). Berikut ini
gambar yang dapat mengilustrasikan proses logik yang terjadi di dalam
statemen if yang memiliki tiga kasus atau lebih.Apabila pilihan aksi yang
dilakukan lebih dari dua buah, maka struktur pilihannya menjadi lebih rumit,
biasanya untuk pemilihan seperti ini disebut pemilihan bersarang.

Bentuk umum :
if kondisi1 then
aksi1
else
if kondisi2 then
aksi2
else
aksi3

20
Contoh 3:

Algoritma menentukan bilangan nol, posistif atau negatif


Deklarasi
X : intenger
Algoritma
Read(X)
if X = 0 then
write(‘NOL’)
else
if X > 0 then
write(‘POSITIF)
else
write(‘negatif’)
endif
endif
end algoritma

Contoh 4:

Algoritma menentukan bilangan terbesar dari tiga buah


bilangan: x, y, z:
Deklarasi
x, y, z : integer
Algoritma
Read(x, y, z)
if x > y then
if x > z then
write (‘x sebagai bilangan terbesar’)
else
write (‘z sebagai bilangan terbesar’)
else
if y > z then
write(‘y sebagai bilangan terbesar’)
else
write(‘z sebagai bilangan terbesar’)
end if
end if
end if
end algoritma

Kelebihan struktur pemilihan terletak pada kemampuannya yang


memungkinakan pemroses mengikuti jalur aksi yang berbeda berdasarkan
kondisi yang ada.

21
d. Struktur Case

Untuk masalah dengan dua kasus atau lebih, struktur case dapat
menyederhanakan penulisan IF-THEN-ELSE yang bertingkat. Struktur case
adalah sebagai berikut:
case (ekspresi) of
kondisi1 : aksi1
kondisi2 : aksi2
kondisi3 : aksi3
.
.
Kondisin : aksin
[otherwise aksiX]
endcase

Kondisi1, kondisi2,…, kondisiN dapat bernilai benar atau salah. Tiap kondisi
diperiksa nilai kebenarannya mulai dari kondisi pertama sampai ditemukan
kondisi yang bernilai benar. Jika kondisi ke-n dilaksanakan, selanjutnya keluar
dari struktur case. Aksi yang dipasangkan dengan kondisi ke-n dapat lebih dari
satu. Jika tidak ada satupun kondisi yang benar, maka aksi sesudah otherwise
dikerjakan. Perhatikanlah bahwa otherwise optional, artinya boleh ditulis boleh
juga tidak ditulis.

Struktur case menggantikan analisis kasus yang ekivalen dengan struktur


IF-THEN-ELSE berikut:
if kondisi1 then
aksi1
else
if kondisi2 then
aksi2
else
if kondisi3 then
aksi3
else
if kondisi4 then
aksi4
endif
endif
endif
endif

Tidak semua bahasa pemrograman menyediakan struktur case (misalnya


bahasa Fortran). Bahasa C, JAVA, dan PASCAL menyediakan struktur ini. Jika
bahasa pemrograman tidak menyediakan struktur case, maka case dapat diganti
dengan struktur IF-THEN-ELSE yang ekivalen.
Contoh Soal:
Buatlah algoritma yang membaca sebuah angka bulat yang nilainya terletak
antara 1 sampai 4, lalu menuliskan ke piranti keluaran angka tersebut dalam
22
kata-kata. Misalkan bila dibaca angka 1, maka tercetak tulisan “satu”, bila dibaca
2, maka tercetak tulisan “dua”, demikian seterusnya. Jika angka yang
dimasukkan selain 1 sampai 4 tuliskan pesan bahwa angka yang dimasukkan
salah.

Dengan struktur IF-THEN-ELSE


Algoritma kata untuk angka
Deklarasi
Angka : integer
Algoritma
Read(angka)
if angka = 1 then
write(‘satu’)
else
if angka = 2 then
write(‘dua’)
else
if angka = 3 then
write(‘tiga’)
else
if angka = 4 then
write(‘empat’)
else
if angka = 5 then
write(‘lima’)
else
write(‘angka yang dimasukkan
salah’)
endif
endif
endif
endif
endif
end algoritma

23
Dengan struktur Case, algoritma untuk masalah tersebut dapat dibuat menjadi
lebih singkat sebagai berikut:
Algoritma kata untuk angka
Deklarasi
Angka : integer
Algoritma
Read(angka)
Case angka of
Angka = 1 : write(‘satu’)
Angka = 2 : write(‘dua’)
Angka = 3 : write(‘tiga’)
Angka = 4 : write(‘empat’)
Angka = 5 : write(‘lima’)
Otherwise : write(‘angka yang dimasukan salah’)
end case

4.4. Pengulangan (Repetition/Looping)

Pegulangan adalah instruksi yang dapat mengulang sederetan instruksi


secara berulang-ulang sesuai persyaratan yang ditetapkan. Struktur instruksi
perulangan pada dasarnya terdiri atas :
• Kondisi perulangan; suatu kondisi yang harus dipenuhi agar perulangan dapat
terjadi.
• Badan (body) perulangan; deretan instruksi yang akan diulang-ulang
pelaksanaannya.
• Pencacah (counter) perulangan; suatu variabel yang nilainya harus berubah
agar perulangan dapat terjadi dan pada akhirnya membatasi jumlah
perulangan yang dapat dilaksanakan
Pengulangan digunakan untuk menjalankan satu atau beberapa
pernyataan sebanyak beberapa kali. Dengan kata lain, pengulangan
memungkinkan pengerjaan beberapa kali perintah tetapi penulisan perintah
tersebut hanya satu kali.
Struktur pengulangan yang umum digunakan antara lain:
• For Do
• While Do
• Repeat Until

a. Pengulangan For Do

Pernyataan pengulangan for digunakan jika kita sudah tahu berapa kali
kita akan mengulang satu atau beberapa pernyataan.

Bentuk umum pernyataan for-do adalah sbb:

24
For pencacah := nilai_awal to/downto nilai_akhir
do
Aksi/pernyataan
End for

Aksi akan dilakukan sebanyak hitungan pencacah pengulangan, yaitu dari


nilai_awal sampai nilai_akhir.

 Perulangan Posisitif (for – to – do)


Perulangan positif adalah perulangan dengan penghitung dari kecil ke besar
atau pertambahan positif. Perulangan positif dapat dibentuk dengan
menggunakan pernyataan for-to-do
Bentuk umum:
for pencacah = nilai_awal to nilai_akhir do
aksi/statement
end for

Contoh 1 :
Algoritma program mencetak urutan bilangan dari 1 sampai
ke n
Deklarasi
i, n : integer
Algoritma
Read(n)
for i = 1 to n do
write(n)
end for
end algoritma

Contoh 2:
Algoritma program mencetak 10 kali
Deklarasi
i : integer
Algoritma
for i = 1 to 10 do
write(‘Saya Mahasiswa Unindra’)
end for
end algoritma

 Perualangan Negatif (for – downto – do)


Perulangan negatif adalah perulangan dengan penghitung dari besar ke kecil
atau pertambahan negatif. Perulangan negatif dapat dibentuk dengan
menggunakan pernyataan for-downto-do
Bentuk umum:
for pencacah = nilai_awal downto nilai_akhir do
aksi/statement
end for

25
Contoh 3 :
Algoritma program mencetak urutan bilangan dari 10
sampai 1
Deklarasi
i : integer
Algoritma
for i = 10 downto 1 do
Write(i)
Endfor
End algoritma

 Perulangan Bersarang
Perulangan bersarang adalah perulangan yang berbeda di dalam perulangan
yang lainnya. Perulangan yang lebih dalam akan diproses terlebih dahulu
sampai habis, kemudian perulangan yang lebih luar baru akan akan
bertambah. Mengerjakan perulangan yang lebih dalam lagi mulai dari nilai
awalnya dan seterusnya.

Contoh 4 :
Algoritma Program ForBersarang1
Deklarasi
i, j : integer
Algoritma
for i = 1 to 5 do
for j = 1 to 3 do
write(i,j)
endfor
endfor
endalgoritma

output :
1 1 1 2 1 3
2 1 2 2 2 3
3 1 3 2 3 3
4 1 4 2 4 3
5 1 5 2 5 3

Contoh 5:
Algoritma program forbersarang2
Const
Akhir = 4
Deklarasi
Baris, kolom : integer
Algoritma
For baris = 1 to akhir do
for kolom = 1 to baris do
write(baris)
endfor
26
endfor
end algoritma

output :
1
22
333
4444

b. Pengulangan while do

Pernyataan while adalah pernyataan yang berguna untuk memproses


suatu pernyataan atau pernyataan beberapa kali. Jenis perulangan ini digunakan
untuk mengulang statement atau satu blok statemen berulang kali yang
jumlahnya belum bisa ditentukan, tergantung nilai kondisi yang terletak antara
While – Do. Pernyataan atau aksi akan di ulang jika kondisi bernilai True dan jika
False maka keluar dari blok perulangan (loop) atau pengulangan selesai.

Bentuk umum while do :


while kondisi do
aksi/statement-1
.
.
aksi/statement-n
endwhile

contoh 1 :

Algoritma cetak angka{mencetak 1, 2, 3, ..., 10 ke piranti


keluaran}
Deklarasi:
i, n : integer
Deskripsi:
Read(n)
i ← 1 {inisialisasi}
while (i < 10) do
i ← i + 1
write (i)
endwhile
end algoritma

contoh 2:
Algoritma Program MencetakSepuluhKali
Deklarasi
i : integer
27
Algoritma
i ← 1
while i <= 10 do
Write(‘Saya Senang Belajar Pascal’)
i← i + 1
Endwhile
{ i > 10 }
end Algoritma

contoh 3:
Algoritma Program PenjumlahanDeret {Menjumlahkan deret
1+2+3+4+5+6 …. +n}
Deklarasi
n : integer {banyaknya suku deret, > 0}
i : integer {suku deret}
jumlah : integer {jumlah deret]}
Algoritma
Read(n)
Jumlah ← 0
i ← 1
while i <= n do {ulangi sebanyak n kali}
Jumlah ← jumlah + i
i ← i + 1
endwhile
{ i > n }
write(jumlah)

contoh 4:
Algoritma Program Peluncuran Roket {Hitung mundur
peluncuran roket}
Deklarasi
i : integer
Algoritma
i ← 10
while i >= 0 do
write(i)
i ← i – 1
endwhile
{ i < 0 }
write(‘Go’)
end Algoritma

c. Pengulangan Repeat – Until

Pernyataan repeat-until akan melakukan pengulangan aksi hingga kondisi


(persyaratan) berhenti terpenuhi.

28
Bentuk umum pernyataan repeat-until adalah sbb:

Repeat
Aksi
Until kondisi

Tidak seperti pada struktur for yang jumlah pengulangannya diketahui sebelum
pengulangan dilaksanakan, maka untuk struktur repeat-until digunakan jika
jumlah pengulangan tidak dapat diketahui di awal. Namun yang pasti,
pengulangan aksi akan terus dilakukan sampai kondisi berhenti dipenuhi.

Contoh 1:
Algoritma Mencetak kata ‘Unindra’ sebanyak 10 kali
Deklarasi
i : integer {Pencacah pengulangan}
Algoritma
i ← 1 {inisialisasi}
repeat
write(‘Unindra’)
i ← i +1
until i > 10
end algoritma

contoh 2:
Algoritma Program Mencetak angka 1 sampai N
Deklarasi
N, i: integer
Algoritma
read(N)
i ← 1
repeat
write(i)
i ← i + 1
until i > N
end algoritma

29

Anda mungkin juga menyukai