Laboratorium Komputer

Algoritma, bukan sekedar membuat program

Apa yang terlintas ketika mendengar kata Algoritma ?

Untuk orang-orang yang mendalami teknologi informasi, sudah akrab, biasanya banyak yang menghubungkan dengan pemrograman komputer. Tapi untuk orang-orang yang tidak berada dalam dunia teknologi informasi, algoritma bisa jadi kata yang asing, padahal kita semua sudah akrab dengan algoritma dalam keseharian.

Belakangan ini, kata algoritma juga jadi populer, dan banyak disebut oleh para konten kreator. Mereka mengenali algoritma sebagai cara sebuah platform media sosial menampilkan konten untuk tujuan tertentu.

Algoritma memang umumnya berada dalam domain ilmu sains komputer atau teknologi informasi. Menjadi dasar untuk menyelesaikan masalah dalam ilmu komputer. Tapi sebenarnya algoritma punya pengertian yang lebih luas. Tidak sekedar dalam domain ilmu komputer, bahkan tidak dalam pengertian yang lebih sempit, yaitu pemrograman.

Kalau saja belajar algoritma ini disamakan dengan belajar pemrograman, maka menurut saya, sama saja menyamakan belajar menulis dengan belajar mengetik.

Sejarah

Sejarahnya istilah algoritma merupakan latinisasi dari Al Khawarizmi, seorang ilmuwan matematika abad ke 8, Muhammad ibn Musa al-Khwarizmi, dari daerah Khwarzm, sekarang ini ada di Usbekistan.

Selain Algoritma dari paman Muhammad ibn Musa al-Khwarizmi juga lahir istilah Aljabar. Selain itu beliau juga menulis buku Aritmatika, Astronomi dan Geografi.

Buku-buku beliau yang dalam tulisan arab, diterjemahkan kedalam bahasa latin, dan dalam setiap terjemahannya selalu di awali dengan “Dixit Algorismi”, atau “Menurut Al Khawarizmi”.

Aljabar ini adalah buku pertama yang menjadi asal muasal kata Algoritma. Al Khwarizmi menuliskan langkah-langkah untuk menyelesaikan persamaan matematika.

Di abad 20, dari pengertian matematika, Alan Turing membuat model komputasi matematik yang digunakan untuk memformalkan gagasan tentang apa yang dapat dihitung secara algoritmis. Ini menghubungkan matematika dengan dasar teori komputasi.

Pengertian Algoritma

Definisi algoritma menurut KBBI adalah prosedur sistematis untuk memecahkan masalah matematis dalam langkah-langkah terbatas, atau urutan logis pengambilan keputusan untuk pemecahan masalah.

Dari definisi tersebut, algoritma seharusnya sudah ada sejak manusia ingin menyelesaikan masalah yang di alami. Penemuan cara memanfaatkan api oleh Homo Erectus 1.6 juta tahun yang lalu merupakan salah satu bukti awal penggunaan algoritma.

Dokumentasi tertulis penggunaan algoritma yang tertua adalah pada papan dari Babylonia, dibuat tahun 1600-1800 SM, berisi tentang cara perhitungan trigonometri dalam bilangan basis 60, atau sexagesimal.

Apakah algoritma sama dengan programming ?

Algoritma tidak sama dengan pemrograman komputer, walaupun kedua subjek tersebut relatif bersinggungan satu sama lain.

Algoritma adalah langkah sistematis dan tidak berlaku spesifik pada satu domain ilmu pengetahuan tertentu. Algoritma bisa di terapkan dalam ilmu sosial, sains, seni. Artinya cabang ilmu hukum, ekonomi, biologi, fisika, matematika dan sebagainya dapat menggunakan Algoritma.

Algoritma harus bersifat umum, dan independen, artinya algoritma tidak boleh dibuat hanya untuk satu domain ilmu pengetahuan tertentu, sehingga dapat memecahkan masalah untuk konteks yang lebih luas.

Selain itu algoritma harus sistematis dan logis, artinya langkah-langkah algoritma harus berurutan dan terstruktur, dapat di terima oleh akal sehat.

Tata cara atau tata laksana dalam kehidupan sehari-hari adalah algoritma. Resep makanan, cara mengikat sepatu, cara memesan makanan, cara menuju ke suatu tempat, adalah implementasi Algoritma dalam domain kehidupan sehari-hari.

Sedangkan pemrograman atau programming adalah implementasi dari algoritma sesuai konteks bahasa pemrograman dalam ilmu komputer.

Karakteristik Algoritma di definisikan oleh Donald Knuth, dalam buku The Art of Computer Programming, yang sudah jadi salah satu kitab suci ilmu komputer.

Dijelaskan bahwa algoritma harus ada batasan (finite), harus ada awal dan akhir.

Ketika melakukan satu tugas tertentu harus ada hasil yang pasti (definite), dan menghasilkan keluaran (output) yang punya hubungan spesifik dengan masukan atau kondisi awal (input).

Dan algoritma harus cukup sederhana untuk bisa di tulis di atas kertas, atau medium lain untuk di baca dan di ikuti (efektif).

Contoh mengikat sepatu, algoritmanya mempunyai batasan awal dan akhir, atau finite, awalnya tali sepatu tidak terikat, akan berakhir ketika tali sepatu selesai di ikat. Mempunyai kepastian, definit, hasilnya adalah tali sepatu yang terikat.

Inputnya adalah tali sepatu, jumlah sepatu, model ikatan. Outputnya adalah sepatu yang terikat. Efektif, karena langkah-langkahnya cukup sederhana untuk di baca bila di tuliskan, diikuti dan di mengerti.