Anda di halaman 1dari 9

BAB 3

STRUKTUR DASAR ALGORITMA

Pada bab ini akan dijelaskan konsep-konsep dasar algoritma, meliputi


beberapa istilah yang sering dipakai dalam pemrograman dan struktur dasar
pembangunan algoritma. Untuk menjelaskan konsep dasar itu, kita mengambil
contoh-contoh sederhana yang terdapat dalam kehidupan sehari-hari yang mudah
dimengerti.

A. Pernyataan

Sebuah algoritma merupakan deskripsi langkah-langkah pelaksanaan


suatu proses. Setiap langkah di dalam algoritma dinyatakan dalam sebuah
pernyataan (statement) atau istilah lainnya instruksi. Sebuah pernyataan berisi
aksi (action) yang dilakukan. Bilas sebuah pernyataan dieksekusi oleh
pemroses, maka aksi yang bersesuaian dengan pernyataan itu dikerjakan.
Sebagai contoh, misalkan di dalam algoritma ada pernyataan berikut:

Tulis Hello, world

Maka pernyataan tersebut menggambarkan aksi menulis pesan Hello, world.

Pernyataan:

Kalikan a dengan 2

Menggambarkan aksi mengalikan a dengan 2 dan hasil perkalian disimpan di


dalam peubah a lagi.

Pernyataan:

Jika bulan = januari maka tulis jumlah hari = 31

Terdiri dari dua aksi, yaitu membandingkan nilai variable bulan dengan
januari, dan aksi tulis pesan jumlah hari = 31, jika perbandingan itu benar.

Di dalam algoritma terdapat beberapa jenis pernyataan, seperti


pernyataan ekspresi, pernyataan pemilihan, pernyataan pengulangan,
pernyataan prosedur, pernyataan gabungan, dan sebgaainya. Semua jenis
pernyataan tersebut akan kita bahas nanti.

B. Konstruksi Dasar

Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-


langkah tersebut dapat berupa runutan aksi, pemilihan aksi, dan pengulangan
aksi. Ketiga jenis langkah tersebut membentuk konstruksi suatu algoritma.
Jadi, sebuah algoritma dapat dibangun dari tiga buah konstruksi atau struktur
dasar, yaitu runutan (sequence), pemilihan (selection), dan pengulangan
(repetition).

Runtunan Pemilihan Pengulangan


Gambar 3.1. Tiga konstruksi dasar algoritma. Setiap persegi panjang
melambangkan pernyataan. Anak panah menunjukkan aliran instruksi

Gambaran ringkas masing-masing konstruksi dasar tersebut akan


dijelaskan pada sub-bab dibawah ini. Pembahasan lengkap mengenai masing-
masing konstruksi akan diberikan pada bab-bab selanjutnya.

1. Runtunan

Sebuah runtunan terdiri dari satu atau lebih pernyataan, setiap


pernyataan ditulis dalam satu baris atau dipisahkan dengan tanda titik koma.
Tiap pernyataan dikerjakan secara berurutan (sekuansial) sesuai dengan
urutannya di dalam teks algoritma, yaitu sebuah instruksi dilaksanakan
setelah instruksi sebelumnya selesai dilaksanakan. Urutan instruksi
menentukan keadaan akhir algoritma. Bila urutannya diubah, maka hasil
akhirnya mungkin juga berubah. Runtunan satu atau lebih pernyataan
dinamakan pernyataan-gabungan (compound statements).
Perhatikan runtunan lima buah pernyataan yang dilambangkan dengan
S1, S2, S3, S4 dan S5 berikut:

S1
S2
S3
S4
S5

Mula-mula pemroses melaksanakan pernyataan S1. Pernyataan S2


dilaksanakan setelah pernyataan S1 selesai. Selanjutnya, pernyataan S3
dilaksanakan setelah pernyataan S2 selesai. Demikian seterusnya sampai
terakhir S5 dilaksanakan. Setelah pernyataan S5 selesai dilaksanakan,
algoritma berhenti.
Sebagai contoh pertama, tinjau kembali algoritma mempertukarkan isi
dua buah ember A dan B:

ALGORITMA mempertukarkan isi dua buah ember, A dan B:


1. Tuangkan air dari ember A ke dalam ember C.
2. Tuangkan air dari ember B ke dalam ember A.
3. Tuangkan air dari ember C ke dalam ember B.
Algoritma diatas adalah sebuah runtunan yang terdiri atas tiga buah
pernyataan. Tiap pernyataan akan dieksekusi dalam urutan yang sama
sebagaimana tertulis di dalam teks algoritma tersebut. Hasil akhir algoritma
ini adalah: ember A berisi air dari ember B semula, dan ember B berisi air
dari ember A semula.
Algoritma pertukaran isi dua buah ember memberikan isnpirasi
bagaimana mempertukarkan nilai dari dua peubah (variable). Misalkan
peubah A berisi nilai 8 dan peubah B berisi nilai 5. Kita ingin
mempertukarkan nilai A dan B sedemikian sehingga A bernilai 5 dan B
bernilai 8. Kalau Anda menulis algoritmanya seperti ini:

Masukkan nilai A ke dalam B


Masukkan nilai B ke dalam A

Maka hasilnya A = 8 dan B = 8, tidak terjadi pertukaran karena


algoritmanya salah. Agar pertukaran keduanya benar, maka kita memerlukan
peubah bantu, misalnya C, sehngga algoritmanya menjadi:
Masukkan nilai A ke dalam C
Masukkan nilai B ke dalam A
Masukkan nilai C ke dalam B

Ilustrasi ketiga pernyataan ini ditunjukkan pada Gambar 3.2 di bawah


ini:
Sebelum pertukaran:

A C B

Proses pertukaran:

A C B
Masukkan nilai A ke dalam C

A C B
Masukkan nilai B ke dalam A

A C B
Masukkan nilai C ke dalam B

Setelah pertukaran:

A C B
Gambar 3.2. Proses mempertukarkan nilai A dan B dengan menggunakan
peubah bantu C.

2. Pemilihan

Adakalanya sebuah instruksi dikerjakan jika kondisi tertentu dipenuhi.


Misalkan kendaraan Anda tiba di perempatan yang ada traffic light. Jika
lampu traffic light sekarang berwarna merah, maka kendaraan Anda harus
berhenti. Langkah ini kita tulis dalam pernyataan berikut:

Jika lampu traffic light berwarna merah, maka berhenti

Pernayataan diatas dapat ditulis dalam pernyataan-pemilihan


(selection statement), atau disebut juga pernyataan-kondisional, sebagai
berikut:
if kondisi then
aksi
Dalam bahasa Indonesia, if berarti jika dan then artinya maka;
kondisi adalah persyaratan yang dapat bernilai benar atau salah; aksi
sesudah kata then hanya dapat dilaksanakan apabila kondisi bernilai benar.
Sebaliknya, apabila kondisi bernilai salah, maka aksi tidak dapat
dilaksanakan. Perhatikan bahwa kata yang digarisbawahi, if dan then,
merupakan kata kunci (keywords) untuk struktur pemilihan ini.
Dalam kehidupan sehari-hari, kita sering menuliskan pelakasanaan
aksi bila suatu persyaratan dipenuhi. Misalnya:

if air di dalam ketel mendidih then


matikan api kompor

if suhu ruangan diatas 50oC then


bunyikan alarm tanda bahaya

if mobil rusak then


naik angkot

if x habis dibagi 2 then


tulis bahwa x bilangan genap
Struktur pemilihan if-then hanya memberikan satu pilihan aksi bila
kondisi (persyaratan) dipenuhi (bernilai benar), dan tidak memberi pilihan
aksi lain bila kondisi bernilai salah. Bentuk pemilihan yang lebih umum
ialah memilih satu dari dua buah aksi bergantung pada nilai kondisinya:
if kondisi then
aksi 1
else
aksi 2
else artinya kalau tidak. Bila kondisi terpenuhi, aksi 1 akan
dikerjakan, tetapi kalau tidak (yaitu kondisi salah), aksi 2 yang akan
dikerjakan. Misalnya pada pernyataan berikut:
if lampu A nyala then
tekan tombol merah
else
tekan tombol biru
Jika lampu A menyala, maka aksi tekan tombol merah dilakukan,
sebaliknya, aksi tekan tombol biru dilakukan bila lampu A tidak menyala.
Contoh lain adalah menentukan nilai terbesar dari dua buah bilangan bulat,
x dan y (andaikan x y):
if x > y then
tulis nilai x
else
tulis nilai y
menentukan apakah bilangan bulat x merupakan bilangan genap atau
ganjil:
if x habis dibagi 2 then
tulis genap
else
tulis ganjil
Apabila pilihan aksi yang akan dilakukan lebih dari dua buah, maka
struktur pemilihannya menjadi lebih rumit, seperti pada contoh berikut
(pemilihan bersarang atau nested-if):
if lampu traffic light berwarna merah then
berhenti
else
if lampu traffic light berwarna kuning then
jalan hati-hati
else
jalan terus
Perhatikanlah bahwa penggunaan indentasi (rongak kosong) membuat
algoritma menjadi lebih mudah dibaca. Tanpa indentasi, algoritma mungkin
menjadi sulit dibaca, misalnya jika algoritma diatas ditulis seperti ini:
if lampu traffic light berwarna merah then
berhenti
else
if lampu traffic light berwarna kuning then
jalan hati-hati
else
jalan terus
Contoh lain tentang pentingnya penggunaan indentasi adalah pada
pemilihan bersarang untuk menentukan bilangan terbesar dari tiga buah
bilangan x, y, dan z:
if x > y then
if x > z then
tulis x sebagai bilangan terbesar
else
tulis z sebagai bilangan terbesar
else
if y > z then
tulis y sebagai bilangan terbesar
else
tulis z sebagai bilangan terbesar
Bayangkan betapa sulitnya memahami algoritma diatas jika ia ditulis
seperti di bawah ini:
if x > y then
if x > z then
tulis x sebagai bilangan terbesar
else
tulis z sebagai bilangan terbesar
else
if y > z then
tulis y sebagai bilangan terbesar
else
tulis z sebagai bilangan terbesar
Tentu saja masalah menentukan bilangan terbesar untuk empat
bilangan atau lebih mempunyai struktur pemilihan bersarang yang makin
rumit. Kelebihan struktur pemilihan terletak pada kemampuannya yang
memungkinkan pemroses mengikuti jalur aksi yang berbeda berdasarkan
kondisi yang ada. Tanpa struktur pemilihan, kita tidak mungkin menulis
algoritma untuk permasalahan praktis yang demikian kompleks.

3. Pengulangan

Salah satu kelebihan computer adalah kemampuannya untuk


mengerjakan pekerjaan yang sama berulang kali tanpa kenal lelah. Ini
berbeda dengan manusia yang cepat lelah bila mengerjakan pekerjaan yang
sama berulang-ulang. Tidak hanya lelah, tetapi juga cepat bosan.

Bagaimana menuliskan sebuah kalimat yang sama sebanyak 100 kali ?


mungkin pada waktu duduk di sekolah dasar, Anda pernah dihukum oleh
Bapak/Ibu guru dengan menuliskan sebuah kalimat yang sama sebanyak
100 kali misalnya, karena Anda nakal atau tidak membuat PR. Misalkan
kalimat yang harus ditulis sebanyak 500 kali adalah seperti ini:

Saya berjanji tidak akan nakal dan malas lagi


Bagaimana jika menuliskan algoritmanya seperti ini:

ALGORITMA tulis kalimat 500 kali:


1. Tulis Saya berjanji tidak akan nakal dan malas lagi
2. Tulis Saya berjanji tidak akan nakal dan malas lagi
3. Tulis Saya berjanji tidak akan nakal dan malas lagi
.
.
500. Tulis Saya berjanji tidak akan nakal dan malas lagi
Tentu saja algoritma tersebut kurang baik, karena instruksi
Tulis Saya berjanji tidak akan nakal dan malas lagi
Harus ditulis dalam algoritma sebanyak 500 kali. Agar kita tidak perlu
menuliskan aksi yang sama berkali-kali, kita dapat menggunakan notasi
pengulangan. Di dalam algoritma terdapat banyak notasi pengulangan yang
bias digunakan, antara lain repeat N times, for, repeat-until, dan while.

Dengan notasi pertama, repeat N times (yang artinya: ulangi sebanyak


N kali), maka algoritmanya dapat kita tulis menjadi:

ALGORITMA tulis kalimat 500 kali:


repeat 500 times
Tulis Saya berjanji tidak akan nakal dan malas lagi
Struktur pengulangan ini dapat ditulis secara umum dengan
pernyataan pengulangan:

repeat N times
aksi

yang artinya: aksi diulang dikerjakan sebanyak 500 kali.

Struktur pengulangan yang mirip dengan repeat N times adalah for:


for pencacah pengulangan dari 1 sampai N do
aksi
yang artinya: aksi dilakukan sebanyak hitungan cacah pengulangan,
yaitu dari 1 sampai N (yaitu sebanyak N kali). Pencacah pengulangan dapat
diatur tidak hanya mulai dari 1, tetapi juga dari sembarang nilai yang lain.
Contoh masalah penulisan 500 kalimat dengan notasi for menjadi:

ALGORITMA:
for i dari 1 sampai 500 do
Tulis Saya berjanji tidak akan nakal dan malas lagi

i adalah pencacah pengulangan yang mencacah pengulangan dari 1 sampai


500.

Anda mungkin juga menyukai