Modul 02
ALGORITMA
2.1
Pengertian Algoritma
Sebuah algoritma merupakan deskripsi pelaksanaan suatu
proses, dimana algoritma disusun oleh sederetan langkah instruksi yang logis.
Kata logis merupakan kata kunci dalam sebuah algoritma.
Langkah-langkah di dalam algoritma harus logis, ini berarti hasil dari urutan langkah-langkah
tersebut harus dapat ditentukan, benar atau
salah. Langkah-langkah yang tidak
benar dapat memberikan hasil yang salah.
Sebagai contoh, tinjau persoalan mempertukarkan isi dua
bejana, A dan B. Bejana A berisi larutan yang berwarna merah, sedangkan
bejana B
berisi air berwarna biru.
Kita ingin mempertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan berwarna biru dan
bejana B berisi larutan berwarna
merah.
Untuk mempertukarkan isi dua bejana, kita memerlukan
sebuah bejana tambahan yang diperlukan sebagai tempat penampungan sementara.
Sebut bejana tambahan tersebut bejana C.
Dengan menggunakan bejana bantu C
ini, algoritma mempertukarkan isi dua buah bejana yang benar adalah sebagai
berikut ini:
|
2.2 Tahapan
Pelaksanaan Program Oleh Komputer
![]() |
||||||||||
![]() |
||||||||||
|
||||||||||
![]() |
||||||||||
![]() |
||||||||||
|
||||||||||
![]() |
||||||||||
![]() |
||||||||||
|
||||||||||
|
Keterangan:
Algoritma
di translasikan menjadi program dalam bahasa tingkat tinggi. Selanjutnya,
program dikompilasi dan diterjemahkan menjadi program dalam bahasa mesin dan
di-link dengan berkas library. Instruksi dalam bahasa mesin
diinterpretasikan oleh CPU. Operasi yang bersesuaian dengan setiap instruksi
dilaksanakan.
2.3
Notasi Algoritma
Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Notasi
algoritma bukan notasi bahasa pemrograman, sehingga siapapun dapat membuat
notasi algoritma yang berbeda. Hal yang penting mengenai notasi tersebut adalah
mudah dibaca dan dimengerti. Meskipun demikian untuk menghindari kekeliriuan,
ketaatan terhadap notasi perlu diperhatikan. Di bawah ini notasi yang umum
digunakan dalam penulisan algoritma :
2.3.1 Notasi I:
menyatakan langkah-langkah algoritma dengan untaian kalimat deskriptif
|
Dengan notasi bergaya kalimat ini, deskripsi setiap
langkah dijelaskan dengan bahasa yang gambling. Proses
diawali dengan kata kerja seperti ‘baca’, ‘hitung’, ‘bagi’, ‘ganti’, dan
sebagainya, sedangkan pernyataan kondisional dinyatakan dengan ‘jika…maka…’.
Notasi ini bagus untuk algoritma yang pendek, namun untuk masalah yang
algoritmanya besar, notasi ini jelas tidak efisien. Selain itu, pengkonversian
notasi algoritma ke notasi bahasa pemrograman cenderung relative sukar.
2.3.2
Notasi
II: menggunakan diagram alur (Flow chart)
Diagram alir popular pada awal-awal era pemrograman
dengan computer (terutama dengan bahasa Basic,
Fortran, dan Cobol). Diagram alir lebih
menggambarkan aliran instruksi di dalam program secara visual disbanding
memperlihatkan struktur program. Notasi diagram alur lebih cocok digunakan
untuk masalah yang kecil, untuk masalah yang besar tidak cocok digunakan karena
membutuhkan berlembar halaman kertas. Selain itu, pengkonversian notasi
algoritma ke bahasa pemrograman cenderung relatif sukar.
|
2.3.3 Notasi III: menggunakan Pseudo-code
Pseudo-code adalah
notasi yang menyerupai notasi bahasa pemrograman tingkat tinggi, khususnya
Pascal dan C. Bahasa pemrograman
umumnya mempunyai notasi yang hamper mirip untuk beberapa instruksi seperti
notasi if-then-else, while-do,
repeat-until, read, write, dan sebagainya. Namun tidak seperti bahasa pemrograman yang direpotkan
dengan tanda titik koma, indeks, format keluaran, kata-kata khusus, dan
sebagainya, sembarang versi Pseudo-code dapat
diterima asalakan perintahnya tidak membingungkan pembaca. Keuntungan
menggunakan notasi Pseudo-code adalah
kemudahan mentranslasi ke notasi bahasa pemrograman, karena terdapat
korespodensi antara setiap Pseudo-code dengan
notasi bahasa pemrograman.
|
Kata-kata yang digarisbawahi menyatakan kata-kata kunci
untuk setiap notasi pseudo-code yang
digunakan.
2.4 Proses, Instruksi, dan Aksi
Pada dasrnya, sebuah algoritma merupakan deskripsi
pelaksanaan suatu proses. Tiap langkah instruksi tersebut mengerjakan suatu
tindakan (aksi). Bila suatu aksi dilaksanakan, maka sejumlah operasi yang bersesuaian dengan aksi itu
dikerjakan oleh pemroses. Efek dari pengerjaan suatu aksi dapat diamati dengan
membandingkan keadaan pada saat aksi belum dimulai, dan keadaan pada saat aksi
selesai dikerjakan.
Tahap-tahap penyususnan algoritma seringkali dimulai dari
langkah yang global lebih dahulu. Langkah global ini diperhalus samapai langkah
yang lebih rinci. Pendekatan desain algoritma seperti ini dinamakan Top-Down design. Cara pendekatan seperti
ini sangant bermanfaat dalam membuat algoritma untuk masalah yang cukup rumit
atau kompleks. Gagasan penghalusan langkah adalah memecah proses menjadi
beberapa langkah. Tiap langkah diuraikan lagi menjadi beberapa langkah yang lebih
sederhana. Penghalusan langkah terus berlanjut samapai tiap langkah sudah cukup
rinci dan tepat untuk dilaksanakan oleh
pemroses.
2.5 Struktur Dasar Algoritma
Algoritma berisi langkah-langkah penyelesaian masalah.
Langkah-langkah tersebut dapat berupa runtunan aksi, pemilihan aksi, dan
pengulangan aksi. Ketiga jenis langkah tersebut membentuk konstruksi suatu
algoritma. Jadi, sebuah algoritma dapat dibangun dari tiga buah struktur dasar,
yaitu:
1. Runtunan (sequence).
2. Pemilihan (selection).
3. Pengulangan (repetition).
2..5.1 Runtunan
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.
2.5.2 Pemilihan
Adakalanya sebuah instruksi dikerjakan jika kondisi
tertentu dipenuhi. Kondisi adalah persyaratan yang dapat bernilai benar atau
salah. Dalam pemilihan dikenal beberapa
struktur pemilihan, yaitu:
- If - then
Aksi hanya akan dilaksanakan apabila kondisi bernilai
benar. Sebaliknya, apabila kondisi bernilai salah, maka aksi tidak akan
dilaksanakan.
Struktur Umum: if
kondisi then
Aksi
Struktur pemilihan if-then
hanya memberikan satu pilihan aksi bila kondisi (persyaratan) dipenuhi
(bernilai benar), dan tidak memberikan pilihan aksi lain bila kondisi bernilai
salah.
- If-then-else
Struktur pemilihan ini memberikan dua buah aksi yang akan
dikerjakan tergantung pada nilai kondisinya. Struktur umumnya:
if kondisi then
aksi
1
else
aksi 2
Else artinya ”kalau tidak”. Bila kondisi benar, aksi 1 yang
akan dikerjakan, tetapi kalau tidak, aksi 2 yang akan dikerjakan.
Contoh:
If x
> y then
Tulis x sebagai bilangan terbesar
Else
Tulis y sebagai
bilangan terbesar
Contoh diatas adalah untuk menentukan nilai terbesar dari
dua buah bilangan bulat, x dan y (andaikan x ≠ y)
- If-then-else if
Apabila pilihan aksi yang dilakukan lebih dari dua buah,
maka struktur pilihannya menjadi lebih rumit, biasanya untuk pemilihan seperti
ini disebut pemilihan bersarang.
Contoh: menentukan bilangan
terbesar dari tiga buah bilangan: x, y, 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
Kelebihan struktur pemilihan terletak pada kemampuannya
yang memungkinakan pemroses mengikuti jalur aksi yang berbeda berdasarkan
kondisi yang ada.
2.5.3 Pengulangan
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:
- Pernyataan for
Pernyataan pengulangan for digunakan jika kita sudah tahu
berapa kali kita akan mengulang satu atau beberapa pernyataan. Bentuk
umum pernyataan for adalah sbb:
For pencacah := nilai_awal to
nilai_akhir do
Aksi
Aksi akan dilakukan sebanyak hitungan pencacah
pengulangan, yaitu dari nilai_awal sampai nilai_akhir
- Pernyataan repeat-until
Pernyataan repeat-until akan melakukan pengulangan aksi
hingga kondisi (persyaratan) berhenti terpenuhi. Bentuk
umum pernyataan repeat-until adalah sbb:
Repeat
Aksi
Until kondisi
Tidak seperti pada
struktur for-do yang jumlah pengulangannya diketahui sebelum pengulangan
dilaksanakan, maka untuk struktur repeat-until digunakan jika jumlah pengulangan
tidak dapt diketahui di awal. Namun
yang pasti, pengulangan aksi akan terus dilakukan sampai kondisi berhenti
dipenuhi.
- Pernyataan while-do
Sama seperti pada pernyataan repeat-until, pada
pernyataan while-do ini digunakan untuk pengulangan yang belum diketahui pasti
jumlah pengulangannya.berakhirnya pengulangan ini ditentukan oleh suatu
kondisi. Bila kondisi sudah tidak terpenuhi, maka pengulangan akan berakhir.
Dengan kata lain, selama kondisi masih terpenuhi, pengulangan akan terus
dilakukan. Bentuk umum pernyataan while-do adalah sebagai berikut:
While kondisi do
Aksi
Catatan:
Pada pernyataan repeat-until dan while-do, pada dasarnya
hampir sama yaitu digunakan jika jumlah pengulangan belum dapat ditentukan.
Tetapi terdapat perbedaan yaitu pada pengecekan kondisi. Jika pada pernyataan
while, kondisi dicek pada awal blok pengulangan, pada pernyataan repeat-until,
kondisi dicek pada akhir blok pengulangan.
Perbedaan yang lain, bila pernyataan while mengulang
pernyataan selama kondisi masih terpenuhi, pernyataan repeat-until mengulang
pernyataan selama kondisi belum terpenuhi.
Latihan:
1. Buatlah algoritma dengan notasi deskriftif dengan masalah
sbb:
Seorang pemuda
berada di tepi sebuah sungai, pemuda tersebut membawa seekor kambing, seekor
serigala, dan sekeranjang sayur. Mereka bermaksud menyebrang sungai. Pemuda
tersebut menemukan sebuah perahu kecil yang hanya dapat memuat satu bawaan
setiap kali menyebrang. Situasi dipersulit dengan dengan kenyataan bahwa
serigala tidak dapt ditinggal berdua dengan kambing (karena serigala akan
memangsa kambing) atau kambing tidak dapt ditinggal berdua dengan sekeranjang
sayur (karena kambing akan memakan sayur). Buatlah algoritma untuk
menyebrangkan pemuda dan seluruh bawaannya itu sehingga mereka sampai ke seberang
sungai dengan selamat.
2. Buatlah algoritma untuk meminta masukan tiga bilangan
dari pengguna kemudian menampilkan bilangan terkecil di antara ketiga bilangan
tersebut.
3. Sebuah tabel terdiri atas kolom NIM, Nama, alamat, dan
Nomor Telepon. Tabel tersebut sudah berisi data utama sekumpulan mahasiswadi
sebuah Perguruan Tinggi. Tuliskan algoritma dalam notasi pseudo-code jika kita
ingin mengetahui alamat dan nomor telepon mahasiswa dengan NIM tertentu pada
tabel tersebut.
==================
Referensi:
Antony Pranata, Algoritma dan Pemrograman, J & J Learning, Yogyakarta, 2000
Rinaldi Munir, Algoritma
& Pemrograman Dalam Bahasa Pascal dan C, Informatika Bandung, 2002
0 komentar:
Post a Comment