Menurut Donald E. Knuth (1973, p4-6), algoritma memiliki 5 ciri pokok, yaitu:
- Finiteness Algoritma harus selalu berakhir setelah melakukan sejumlah langkah berhingga.
- Definiteness Setiap langkah dari suatu algoritma harus terdefinisi secara tepat (logis).
- Input Suatu algoritma dapat tidak memiliki input, ataupun memiliki satu atau lebih dari satu input.
- Output Suatu algoritma harus memiliki paling sedikit satu output.
- Effectiveness Algoritma yang dibuat diharapkan efektif, artinya setiap langkah yang hendak dilaksanakan dalam algoritma haruslah sederhana sehingga dapat secara prinsip dilakukan dengan tepat dan dalam waktu yang masuk akal apabila dilakukan secara manual oleh manusia dengan menggunakan pensil dan kertas.
I. Input
Input artinya meminta data yang diperlukan dari user. Sebagai contoh, dalam menghitung luas persegi panjang, tentu diperlukan data berupa besarnya panjang dan lebar bangun persegi panjang tersebut. Dengan kata lain, algoritma menentukan luas persegi panjang mempunyai 2 input berupa panjang dan lebar persegi panjang.
Algoritma di buku ini menggunakan kata kunci read untuk menginput data. Bentuk penulisannya adalah
Data yang dapat diinputkan hanyalah data berupa integer, real, char, atau string. Sedangkan data boolean tidak dapat diinputkan menggunakan read. Dalam algoritma, kita tidak perlu memikirkan dari peralatan mana user menginput data, apakah dari mouse, keyboard, scanner, dan lain sebagainya. Hal itu merupakan masalah pemrograman. Pembuat algoritma juga tidak perlu memikirkan masalah tampilan saat penginputan berlangsung.
Contohnya adalah
2. Output
Output artinya mencetak informasi yang dihasilkan oleh algoritma. Sebagai contoh dalam algoritma menghitung luas persegi panjang, hasil akhir yang diinginkan adalah luas persegi panjang. Dengan kata lain, algoritma tersebut memiliki satu output yaitu luas persegi panjang.
Algoritma dalam buku ini menggunakan kata kunci write untuk mencetak suatu data. Bentuk penulisannya adalah
dimana data dapat berupa suatu data konstan, nama konstanta, ekspresi, maupun suatu variabel.
Dalam algoritma, kita tidak mempermasalahkan ke peralatan mana data tersebut akan dicetak, karena merupakan masalah pemrograman. Kita juga tidak mempermasalahkan dalam format bagaimana data tersebut dicetak.
Contoh :