Definisi
Algoritma
Meskipun pada penjelasan diatas algoritma hanyalah bagian
dari 7 langkah dalam pembuatan program, namun ia memiliki posisi yang teramat
penting. Algoritma adalah urutan langkah berhingga untuk memecahkan masalah
logika atau matematika. Algoritma adalah jantung ilmu komputer atau informatika. Dalam
kehidupan sehari-haripun sebenarnya kita juga menggunakan algoritma untuk
melakukan sesuatu. Sebagai contoh untuk menulis surat diperlukan langkah-langkah
sebagai berikut:
·
Mempersiapkan
kertas dan amplop
·
Mempersiapkan
alat tulis
·
Mulai
menulis.
·
Memasukkan
kertas ke dalam amplop.
·
Pergi
ke kantor pos untuk mengeposkan surat tersebut.
Langkah-langkah dari nomor 1 sampai dengan nomor 5 di atas itulah yang
disebut dengan algoritma. Jadi sebenarnya kita menggunakan algoritma baik
dengan sadar maupun tanpa kita sadar.
Algoritma ditemukan
dan dipopulerkan oleh seorang Ilmuwan Muslim yang bernama Muhammad ibnu Musa Al-Khwarizmi.
Beliau adalah ilmuwan besar
Islam
yang karya-karyanya banyak menjadi dasar
perkembangan ilmu modern, antara lain dalam bidang Matematika, Astronomi,
Astrologi,Geografi dan banyak cabang ilmu lainnya. Al-khwarizmi kemudian
berubah menjadi Dan dari namanya
istilah yang akan kita pelajari dalam bab ini muncul. Dari Al-Khawarizmi kemudian berubah menjadi algorithm dalam Bahasa Inggris dan diterjemahkan menjadi algoritma dalam bahasa Indonesia.
Pengertian
Algoritma sendiri adalah urutan langkah-langkah
logis penyelesaian masalah yang
disusun secara sistematis. Sedangkan dalam Kamus Besar Bahasa Indonesia
(KBBI) terbitan Balai Pustaka (1988); Algoritma
adalah urutan logis pengambilan putusan untuk pemecahan masalah.
Dari
dua definisi tersebut diatas maka kata
kuncinya adalah “Urutan” dan “logis”,
sehingga selain logis Algoritma juga mengharuskan
agar langkah langkah tersebut berurutan secara sistematis,
agar hasil akhirnya sesuai dengan yang diharapkan.
Struktur Algoritma
Struktur dasar algoritma terbentuk
dari tiga struktur dasar, yakni struktur berurutan, struktur
percabangan/pemilihan/keputusan dan struktur pengulangan. Dalam bahasa pemrograman
ketiga dasar pembentuk sebuah algoritma tersebut dikenal dengan sequencing, branching dan looping. Pada dasarnya hampir semua
algoritma merupakan gabungan dari struktur tersebut.
Algoritma
yang dapat menyelesaikan suatu permasalahan dalam
waktu
yang singkat
memiliki tingkat kerumitan yang rendah, sementara
algoritma
yang
membutuhkan waktu lama untuk
menyelesaikan suatu masalah membutuhkan tingkat kerumitan yang tinggi.
Menurut Donald E.Knuth dalam bukunya yang
berjudul The Art of Komputer Programming,
Algoritma harus mempunyai lima ciri penting:
· Algoritma
harus berhenti setelah mengerjakan sejumlah langkah terbatas. Program yang tidak
berhenti berarti mengandung algoritma yang salah.
· Setiap
langkah harus mempunyai langkah yang tepat dan tidak mempunyai tafsiran ganda
(ambigu).
· Algoritma
memiliki masukan nol atau lebih sebelum algoritma itu sendiri bekerja (input).
· Algoritma
memiliki keluaran nol atau lebih sebagai output yang berhubungan dengan input.
Dan keluaran tersebut harus benar adanya, artinya harus sesuai dengan yang kita
harapkan.
· Algoritma
harus efektif, artinya setiap langkah harus sederhana sehingga dapat dikerjakan
dalam sejumlah waktu yang masuk akal.
Perhatikan contoh algoritma sederhana berikut:
a)
Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus
dilakukan adalah:
· Menyiapkan Peralatan Tulis
· Menulis surat
· Surat dimasukkan ke dalam amplop tertutup
· Amplop ditempeli perangko secukupnya.
· Pergi ke Kantor Pos terdekat untuk
mengirimkannya
b)
Algoritma menghitung luas persegi panjang:
· Masukkan panjang (P)
· Masukkan lebar (L)
· Luas P
* L
· Tulis Luas
Perhatikan algoritma menghitung luas
segitiga berikut :
1. Start
2. Baca data alas
dan tinggi.
3. Luas
adalah alas
kali tinggi kali 0.5
4. Tampilkan Luas
5. Stop
Penjelasan :
Algoritma di atas adalah algoritma yang sangat sederhana, hanya ada lima langkah. Pada
algoritma ini tidak dijumpai perulangan ataupun pemilihan. Semua langkah dilakukan hanya satu kali.
Sekilas algoritma di atas benar, namun apabila dicermati maka algoritma ini mengandung
kesalahan yang mendasar, yaitu tidak ada pembatasan pada nilai data untuk alas dan tinggi.
Hasil perbaikan algoritma perhitungan luas segitiga
1. Start
2. Baca data alas
dan tinggi.
3. Periksa data alas dan tinggi, jika nilai data alas dan tinggi lebih besar dari nol maka lanjutkan ke langkah ke 4
jika tidak maka stop
4. Luas
adalah alas
kali tinggi kali 0.5
5. Tampilkan Luas
6. Stop
Dari penjelasan di
atas dapat diambil
kesimpulan
pokok
tentang algoritma. Pertama, algoritma harus benar.
Kedua algoritma harus berhenti,
dan setelah berhenti, algoritma
memberikan hasil yang benar.
Dalam banyak kasus, algoritma yang dilakukan tidak selalu berutan
seperti diatas. Kadang-kadang harus memilih dua atau beberapa pilihan. Sebagai
contoh jika kita ingin makan, kita harus menentukan akan memasak sendiri atau
dirumah makan. Jika kita memilih untuk makan dirumah makan kita akan
menjalankan algoritma yang berbeda jika kita ingin memasak sendiri. Didalam
pemrograman hal tersebut dikenal sebagai percabangan.
Dalam kasus lain lagi mungkin kita harus melakukan langkah-langkah tertentu beberapa
kali Sebagai contoh, saat kita menulis surat, sebelum memasukkan kertas ke
dalam amplop, mungkin kita harus memeriksa apakah surat tersebut sudah benar
atau belum. Jika belum benar berarti kita harus menyisihkan kertas baru untuk
memperbaiki surat tersebut. Demikian seterusnya sampai surat yang dibuat sesuai
dengan yang diharapkan. Hal seperti ini disebut sebagai pengulangan.
Pembuatan algoritma mempunyai banyak keuntungan di
antaranya:
·
Pembuatan atau penulisan
algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan
algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.
·
Notasi algoritma dapat
diterjemahkan ke dalam berbagai bahasa pemrograman
·
Apapun bahasa
pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.
·
Algoritma merupakan hasil
pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus
ditranslasikan ke dalam notasi bahasa pemrograman