// kode iklan
*/
Materi Teknik Informatika Semester 1 Algoritma
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:
Algoritma Tukar Isi
Bejana:
Diberikan dua buah bejana, A dan B; bejana A berisi larutan
berwarna merah, bejana B berisi larutan berwarna biru. Pertukaran isi kedua
bejana itu sedemikian sehingga bejana A berisi
larutan berwarna biru dan bejana B berisi larutan berwarna merah.
Deskripsi:
1. Tuangkan
larutan dari bejana A ke dalam bejana C.
2. Tuangkan
larutan dari bejana B ke dalam bejana A.
3. Tuangkan
larutan dari bejana C ke dalam bejana B.
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 kekeliruan, 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
Algoritma
EUCLIDEAN
Diberikan dua buah bilangan bulat
tak-negatif m dan n (m ≥ n). carilah
pembagi bersama terbesar, pbt, dari kedua bilangan tersebut, yaitu bilangan
bulat positif terbesar yang habis membagi m dan n.
Deskripsi:
- Jika n
= 0 maka
m adalah jawabannya;
Stop.
Tetapi jika
m ≠ 0, lanjutkan ke langkah 2
- Bagilah m dengan n dan misalkan r
adalah sisanya.
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, pengonversian 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.
Algoritma
EUCLIDEAN
{Dibaca dua
buah bilangan bulat tak-negatif m dan n (m≥n).
carilah pembagi bersama terbesar, pbt, dari kedua bilangan tersebut, yaitu
bilangan bulat positif terbesar yang habis membagi m dan n.}
DEKLARASI:
m, n : integer {bilangan bulat yang akan dicari pbt-nya}
r : integer
{sisa hasil bagi}
DESKRIPSI:
read
(m,n) {m ≥
n}
while
n
≠ 0 do
r ß m MOD n {hitung
sisa hasil pembagian}
m ß n
n ß r
endwhile
{kondisi
selesai pengulangan: n= 0, maka pbt(m,n) = m}
write(m)
2.3 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.3 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.3.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.3.2 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
Sumber:http://www.hanivinside.net/
// kode iklan
jangan lupa iklannya diklik ya, to "Materi Teknik Informatika Semester 1 Algoritma"
Post a Comment