ALGORITMA
Algoritma secara sederhana merupakan
urutan langkah-langkah logis untuk menyelesaikan masalah yang disusun secara
sistematis. Misalkan saja “algoritma aktifitas pagi hari ini sebelum berangkat
kerja” yaitu turun dari tempat tidur, melepas piama, mandi, berpakaian, makan
pagi, pergi kerja.
Istilah algoritma berasal dari nama
seorang pedagang berkebangsaan arab bernama Ja’fat
Mohammed bin Musa al Khowarizmi (tahun 790 – 840), yang sangat terkenal
dengan sebutan bapak Aljabar.
A.
DEFINISI ALGORITMA
Terdapat beberapa
definisi mengenai kata Algoritma :
1. Algoritma
adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara
sistematis (Rinaldi Munir :2002).
2. Algoritma
adalah urutan logis pengambilan keputusan untuk pemecahan masalah (KBBI :1988).
3. Algoritma
adalah suatu himpunan hingga dari instruksi-instruksi yang secara jelas
memperinci langkah-langkah proses pelaksanaan, dalam pemecahan suatu masalah
tertentu, atau suatu kelas masalah tertentu, dengan dituntut pula bahwa himpunan
instruksi tersebut dapat dilaksanakan secara mekanik (Team Gunadarma :1988).
B.
CIRI ALGORITMA
Menurut Donald E.
Knuth, algoritma mempunyai lima ciri penting :
1.
Algoritma harus berhenti setelah
mengerjakan sejumlah langkah terbatas.
2.
Setiap langkah harus didefinisikan
secara tepat dan tidak berarti dua.
3.
Algoritma memiliki nol atau lebih
masukan (input).
4.
Algoritma mempunyai nol atau lebih
keluaran (output).
5.
Algoritma harus efektifitas dan
efisiensi.
C. ANALISIS SUATU ALGORITMA
Untuk
melihat faktor efisiensi & efektifitas dari algoritma tersebut, dapat
dilakukan terhadap suatu algoritma dengan melihat pada:
1. Waktu
tempu (Running Time) dari suatu algoritma: adalah satuan waktu yang ditempuh
atau diperlukan oleh suatu algoritma dalam menyelesaikan suatu masalah. Hal-hal
yang dapat mempengaruhi dari pada waktu tempuh adalah:
a. Banyaknya langkah:
Makin banyak langkah atau instruksi yang digunakan dalam menyelesaikan masalah,
maka makin lama waktu tempuh yang dibutuhkan dalam proses tersebut.
b. Besar dan jenis input data:
Besar dan jenis input data pada suatu algoritma akan sangat berpengaruh pada
proses perhitugan yang terjadi. Jika jenis data adalah tingkat ketelitian
tunggal (Single precision), maka waktu tempuh akan menjadi relatif lebih cepat
dibandingkan dengan tingkat ketelitian ganda (double precesion).
c. Jenis operasi:
Waktu tempuh juga dipengaruhi oleh jenis operasi yang digunakan. Jenis operasi
tersebut meliputi operasi matematika, nalar atau logika, atau yang lainnya.
Sebagai contoh, operasi perkalian atau pembagian akan memakan waktu lebih lama
dibandingkan operasi penjumlahan atau pengurangan.
d. Komputer dan kompilator:
hal terakhir yang mempengaruhi waktu tempuh suatu proses algoritma adalah
komputer dan kompilatornya, walaupun sebenarnya faktor ini diluar tahap
rancangan atau tahap pembuatan algoritma yang efisien. Algoritma dibuat untuk
mencapai waktu tempuh yang seefektif dan seefisien mungkin, tetapi kesemuanya
itu akan sangat bergantung pada kemampuan komputer yang tentunya harus sesuai
dengan jumlah program atau langkah yang diperlukan oleh algoritma, begitu juga
dengan kompilator tersebut, misalnya PC XT 8086 akan kalah cepat dibandingkan
8088 atau dengan AT 80286 atau 80386 atau 80486 dan seterusnya.
2.
Jumlah Memori Yang
digunakan: banyaknya langkah yang digunakan dan jenis variabel data yang
dipakai dalam suatu algoritma akan sangat mempengaruhi penggunaan memori. Dalm
hal ini, diharapkan dapat memperkirakan seberapa banyak kebutuhan memori yang
diperlukan selama proses berlangsung hingga proses selesai dikerjakan. Dengan
demikian, dapat disiapkan storage yang memadai agar proses suatu algoritma
berjalan tanpa ada hambatan atau kekurangan memori.
D. SIFAT-SIFAT ALGORITMA
1. Banyaknya langkah instruksi harus berhingga:
pelaksanaan sebuah algoritma yang terprogram haruslah dapat diakhiri atau
diselesaikan melalui sejumlah langkah operasional yang berhingga. Jika tidak
demikian, kita tidak akan dapat mengharapkan bahwa pelaksaan algoritma tersebut
dapat menghasilkan suatu solusi yang baik.
2. Langkah atau instruksi harus jelas:
artinya bahwa penulisa setiap langkah yang terdapat didalam sebuah algoritma
harus memiliki arti yang khusus atau spesifik sehingga dapat dibedakan antara
penulisan langkah untuk computer (program/pemrograman) dengan penulisan langkah
bagi manusia (pesudocode). Manusia akan lebih mudah memahami algoritma yang
terdiri atas simbol-simbol (Contoh: pembuatan algoritma dengan diagram
alur/flowchart) sedangkan komputer hanya membutuhkan sebuah penulisan algoritma
dengan kode-kode yang dituangkan dalam bahasa yang dimengerti oleh komputer itu
sendiri (bahasa pemrograman).
3. Proses harus jelas dan mempunyai
batasan: rangkaian suatu proses yang berisi langkah-langkah
instruksi dari suatu algoritma yang akan dilaksanakn harus ditetapkan dengna
jelas, baik dan pasti sebab sebuah algoritma harus memiliki instruksi dasar
tertentu dimana setiap instruksi harus memiliki unsur pelaksana yang berfungsi
sebagai pemroses data yang akan dimasukkan dalam sebuah komputer. Dengan
demikian, sebuah algoritma harus ditulis dengan jelas tentang batasa-batasan
proses yang akan dilaksanakan oleh komputer.
4. Efektifitas:
instruksi yang diberikan pada komputer agar hanya menjalankan atau melaksanakan
proses yang mampu dilaksanakannya. Yang dimaksud mampu adalah bahwa suatu
algoritma atau instruksi-instruksi dalam sebuah program hanya akan dapat
dilaksanakan jika informasi yang diberikan oleh instruksi-instruksi tersebut
lengkap, benar dan jelas.
5. Adanya batasan ruang lingkup,
sebuah algoritma yang baik adalah hanya ditujukan bagi suatu masalah tertentu
saja. Susunana input harus ditentukan lebih dulu sebab susunan tersebut
enentukan sifat umum dari algoritma yang bersangkutan.
E.
TEKS ALGORITMA
Pada
dasarnya, teks algoritma disusun atas tiga bagian (blok) : bagian judul (header)
agoritma, bagian deklarasi, dan bagian deskripsi. Setiap bagian dapat diberi
komentar untuk memperjelas maksud teks yang dituliskan. Komentar biasanya
ditulis menggunakan kurung kurawal.
1) Judul Algoritma
Judul
algoritma adalah bagian yang terdiri atas nama algoritma dan penjelasan
(spesifikasi) tentang algoritma tersebut. Nama algoritma sebaiknya singkat,
namun cukup menggambarkan apa yang akan dilakukan oleh algoritma tersebut. Di
bawah nama algoritma disertai dengan penjelasan singkat (intisari) tentang apa
yang dilakukan oleh algoritma. Penjelasan di bawah nama algoritma sering
dinamakan juga spesifikasi algoritma. Algoritma harus ditulis sesuai dengan
spesifikasi yang didefinisikan.
Contoh :
Algoritma Luas_Lingkaran
{ Menghitung luas lingkaran untuk ukuran
jari-jari tertentu. Algoritma menerima masukan jari-jari lingkaran, menghitung luasnya,
lalu cetak luasnya ke piranti keluaran }
2) Deklarasi
Di dalam
algoritma, deklarasi nama adalah bagian untuk mendefinisikan semua nama yang
dipakai di dalam algoritma. Nama tersebut dapat berupa nama terapan, nama
peubah, nama tipe, nama prosedur dan nama fungsi.
Contoh Deklarasi
:
Panjang = integer {tipe data bilangan bulat}
Lebar = integer
Luas = real {tipe data bilangan pecahan}
3) Deskripsi
Deskripsi
adalah bagian terpenting dari struktur algoritma. Bagian ini berisi uraian
langkah-langkah penyelesaian masalah. Langkah-langkah ini dituliskan dengan
notasi yang lazim dalam penulisan algoritma. Setiap langkah algoritma dibaca
dari langkah paling atas hingga langkah paling bawah. Urutan penulisan
menentukan urutan pelaksanaan perintah.
Contoh Deskripsi
:
Read (nama)
Read (NIM)
Read (nilai)
If (nilai < 45) then
Grade = E
Else if (nilai >= 45) and (nilai < 60) then
Grade = D
Else if (nilai >= 60) and (nilai < 70) then
Grade = C
Else if (nilai >= 70) and (nilai < 80) then
Grade = B
Else
Grade = A
Write (nama)
Write (NIM)
Write (nilai)
F. STRUKTUR DASAR ALGORITMA
Algoritma
berisi langkah-langkah penyelesaian suatu 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)
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 dikerjakan.
2)
Pemilihan (selection)
Adakalanya
sebuah instruksi dikerjakan jika kondisi tertentu dipenuhi. Tiap–tiap instruksi
akan diseleksi oleh kondisi, apabila instruksi memenuhi kondisi yang diminta,
maka instruksi akan dijalankan.
3)
Pengulangan (repetition)
Salah
satu kelebihan komputer adalah kemampuannya untuk mengerjakan pekerjaan
yang sama berulang kali tanpa mengenal lelah. Kita tidak perlu menulis
instruksi yang sama berulang kali, tetapi cukup melakukan pengulangan dengan
instruksi yang tersedia.
Algoritma
Konversi
{ Terdapat tiga sub bagian (menu) dari program konversi. Pertama, konversi
nilai dolar ke rupiah. Nilai tukar dan jumlah dolar diinput dari piranti
masukan. Kedua, konversi Kilo meter (KM) ke meter (m). Nilai kilometer diinput
dari piranti masukan. Ketiga, konversi Celcius ke Fahrenheit. Nilai celcius
diinput dari piranti masukan. Ketiga nilai diolah dengan masing-masing rumus
yang berbeda. Hasilnya dicetak ke piranti keluaran }
Deklarasi
:
Pilih, Tukar, Dolar, KM =
Integer
Nilai1, Nilai2, Celcius =
Integer
Nilai3 = Real
Lagi = Char
Deskripsi
:
Cetak (judul program)
Cetak (pilihan)
Baca (Pilih)
If (Pilih=1) then
Baca (Tukar)
Baca (Dolar)
Nilai1 = Tukar * Dolar
Cetak (Nilai1)
ElseIf (Pilih=2) then
Baca (KM)
Nilai2 = KM * 1000
Cetak (Nilai2)
Else
Cetak (Peringatan)
Endif
Baca (Lagi)
If (Lagi = ‘Y’) then goto
(x,y)
Cetak (selesai)
0 komentar:
Posting Komentar