Algoritma adalah daftar yang berisikan tentang instruksi yang telah disusun secara jelas untuk menyelesaikan masalah yang mempunyai keadaan awal dan keadaan akhir. Biasanya dinyatakan dalam primitif, yakni aksi yang telah didefinisikan dan diberi nama. Aksi ini diasumsikan dapat dikerjakan, sehingga menghasilkan efek neto yang diinginkan.

Aksi primitif ini harus dapat dilaksanakan! Misalnya : “Mengupas kentang” adalah algoritma, sementara “pergi ke Pluto” bukan merupakan algoritma, karena dianggap tidak dapat dilakukan. Urutan serta perintah dalam algoritma juga harus jelas. Misalnya “Panaskan oven” tidaklah jelas, karena tidak jelas batasan panas itu seberapa panas.

Perhatikan aksi yang telah kita pilih sebelumnya, inilah algoritmanya :

·         Ambil kantong kentang dari rak

·         Ambil panci dari lemari

·         Kupas kentang

·         Kembalikan kantong ke rak

Algoritma yang kita bahas sampai sekarang hanya mempunyai satu alur. Dalam algoritma yang sesungguhnya, kita akan menghadapi dua, tiga, bahkan tak terhingga kemungkinan. Sekarang, akan diperkenalkan tentang pengandaian. Pengandaian digunakan bila terdapat kemungkinan yang dapat mengubah masalah. 

Misalnya dalam aksi ”mengupas kentang”, kita misalkan kadang-kadang pelaku menggunakan celemek, kadang-kadang tidak. Maka, kita akan mendapatkan laporan seperti :

 

·         Ambil kantong kentang dari rak

·         Ambil panci dari lemari

·         Lakukan persiapan, tergantung pakaian

·         Kupas kentang

.     Kembalikan kantong ke rak 

Notasi Kondisional

Misalnya, pada pengamatan pertama didapatkan : 

” Pelaku memakai celemek karena melihat bajunya berwarna cerah”

Pada pengamatan lain didapatkan : 

” Pelaku tidak memakai celemek karena melihat bajunya berwarna gelap”

Maka kita dapat menuliskan notasi kondisional [if .[aksi]. then .[aksi].]

 

·         Ambil kantong kentang dari rak

·         Ambil panci dari lemari

·         If baju berwarna muda then

Pakai celemek

·         Kupas kentang

·         Kembalikan kantong ke rak

Notasi While 

Sekarang, masalah lain. Misalnya pelaku akan mengupas banyak sekali kentang, misalnya 20 buah. Namun, sangat-sangat tidak efektif bila kita menuliskan baris ”Kupas kentang” sebanyak 20 kali. Selain itu, bagaimana jika jumlah kentang yang dikupas tidak sama setiap hari? Jika kita gunakan notasi kondisional untuk mendapatkan kupasan kentang tertentu, maka kita akan mendapatkan :

 

·         If jumlah kentang yang dikupas belum cukup then

Kupas kentang

Dengan notasi seperti ini, akan tetap merepotkan, karena kita tetap akan menulis lebih banyak dari yang kita inginkan. [misalnya kita telah menulis 50 baris notasi, sementara pelaku hanya mengupas 20, maka selanjutnya akan didapatkan 30 notasi yang salah, sehingga notasi kondisional sangat-sangat tidak efektif pada kasus seperti ini ] 

Masalah ini akan lebih efektif diselesaikan dengan notasi while, yakni notasi yang menjelaskan proses pengulangan sampai dijumpai suatu keadaan tertentu. Notasi while dituliskan seperti :

While [kondisi] Do [aksi] 

Sehingga algoritma dapat dituliskan sebagai

 

·         Ambil kantong kentang dari rak

·         Ambil panci dari lemari

·         If baju berwarna muda then

Pakai celemek

·         While jumlah kentang belum cukup then

Kupas satu kentang

·         Kembalikan kantong ke rak

Notasi Depend on 

Kita juga dapat menuliskan algoritma di atas seperti :

 

·         Ambil kantong kentang dari rak

·         Ambil panci dari lemari

·         Depend on baju

Berwarna muda : pakai celemek

Berwarna gelap : –

·         While jumlah kentang belum cukup then

Kupas satu kentang

·         Kembalikan kantong ke rak

Telah disebutkan, bahwa aksi terjadi dalam selang waktu tertentu. Sehingga kita tidak boleh menuliskan :

·         While baju berwarna muda then

Kupas satu kentang

Karena bila kita menuliskan seperti itu, hanya akan ada dua kemungkinan : 

·         Pengupasan tidak pernah dilakukan

·         Pengupasan dilakukan secara berulang-ulang [looping]

Sehingga, algoritma tersebut adalah algoritma yang salah.  

Mesin

Jika kita memberikan algoritma ini kepada orang lain [misalnya], dan orang lain itu dapat mengerjakan algoritma ini dan menghasilkan efek neto yang kita inginkan, maka kita dapat menyebutkan orang lain tersebut sebagai mesin. Mesin adalah sebuah mekanisme yang dapat menyebabkan suatu aksi terjadi mengikuti suatu pola yang dijelaskan algoritma yang dinyatakan dalam primitif mesin tersebut. 

Algoritma yang mengatur tingkah laku suatu mesin disebut sebagai program. Algoritma ini harus dapat dimengerti oleh mesin, serta menghasilkan efek neto yang kita inginkan.

 

Selanjutnya, notasi algoritmik.

*disadur dari diktat Dasar Pemrograman oleh Inggriani Liem