Menurut kamus besar bahasa
indonesia terbitan balai pustaka tahun 1988, “algoritma adalah urutan logis pengambilan putusan untuk pemecahan
masalah”.
Menurut Microsoft Book-shelf, “algoritma adalah urutan langkah berhingga
untuk memecahkan masalah logika atau matematika”.
Berdasarkan defenisi-defenisi
tersebut maka dapat disimpulkan, “algoritma
adalah urutan langkah-langkah logis yang berhingga yang digunakan untuk
memecahkan masalah”.
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.
Menurut Donald E. Knuth dalam
bukunya yang berjudul “the art of
computer programming”, algoritma harus mempunyai lima ciri penting:
- Algoritma harus berhenti setelah mengerjakan sejumlah langkah. Suatu program yang tidak pernah berhenti adalah program yang berisi algoritma yang salah.
- Setiap langkah harus didefenisikan dengan tepat dan tidak berarti-dua (ambigu).
- Algoritma memiliki nol atau lebih masukan (input). Masukan adalah besaran yang diberikan kepada algoritma sebelum algoritma mulai bekerja.
- Algoritma mempunyai nol atau lebih keluaran (output). Keluaran ialah besaran yang memiliki hubungan dengan masukan.
- Algoritma harus sangkil (efektif). Setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal.
Algoritma adalah jantung ilmu
komputer atau informatika. Banyak cabang ilmu komputer yang diacu dalam
terminologi algoritma. Namun demikian, jangan beranggapan algoritma selalu
identik dengan ilmu komputer saja. Dalam kehidupan sehari-haripun banyak proses
yang digambarkan dalam suatu algoritma.
Realisasi algoritma dalam bahasa pemrograman disebut dengan program. Sedangkan pemrograman adalah kegiatan mengkonversi algoritma ke dalam bahasa pemrograman. Bahasa pemrograman atau bahasa komputer adalah teknik komunikasi standar untuk memerintah komputer. Bahasa pemrograman adalah suatu set aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Suatu bahasa memungkinkan seorang programmer secara persis menentukan data yang mana akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan langkah apa secara persis yang akan diambil dalam berbagai situasi.