SEJARAH ALGORITMA

A. Pengertian
Algoritma adalah langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis untuk menghasilkan solusi yang tepat. Awalnya algoritma digunakan untuk penghitungan dalam ilmu matematika namun dalam perkembangannya, kata algoritma justru banyak dipakai pada bidang pemrograman komputer.

B. Sejarah Algoritma
Algoritma berasal dari nama penulis buku, yakni Abu Ja`far Muhammad Ibnu Musa Al-Khwarizmi yang berasal dari Uzbekistan. Orang Barat menyebut Al-Khwarizmi dengan Algorism. Pada tahun 1950, kata algoritma pertama kali digunakan pada "algoritma Euclidean" (Euclid`s algorithm).

Al-Khuwarizmi lahir di Khwarizm (kheva), kota yang terletak di selatan Sungai Oxus (sekarang Uzbekistan). Ketika masih kecil, ia pindah bersama orangtuanya ke selatan kota Baghdad (Irak). Salah satu buku Al-Khuwarizmi yang terkenal adalah Kitab Al Jabar Wal-Muqabala yang berarti “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu jugalah didapat kata “Aljabar” yang sekarang menjadi salah satu cabang ilmu matematika.

Abad ke -9, Muhammad bin Musa al-Khawarizmi menulis buku tentang algoritma.

Tahun 1360, masalah komputasi dan juga matematis. Sebuah awal untuk kemunculan logaritma.

Tahun 1684, algoritma mulai digunakan secara lebih luas, yaitu untuk menyelesaikan masalah kalkulus.

Tahun 1759, algoritma mulai diakui sebagai metode untuk menyelesaikan masalah.

Tahun 1936, algoritma mulai didefinisikan secara lebih jelas sehingga bisa menyelesaikan problem matematika yang sebelumnya tidak terjawab. Salah satunya, dilakukan oleh Alan Turing.

Tahun 1950, algoritma mulai akrab disebut bersamaan dengan komputer dan AI.

Tahun 1956, mesin AI pertama kali diciptakan untuk menjawab problem geometrik berbekal bahasa pemrograman dan informasi tertentu. Di tahun ini, peneliti mulai serius melihat potensi komputer yang diprogram dengan bahasa tertentu untuk menyelesaikan masalah sehari-hari.

Tahun 1958, LISP atau bahasa pemrograman untuk AI mulai diperkenalkan.

Tahun 1963, program bernama “ANALOGY” diperkenalkan. Program ini mampu mengerjakan tes masuk universitas (SAT versi Amerika Serikat) hanya dengan aturan semantik untuk interpretasinya.

Tahun 1961, “UNIMATE” robot industrial pertama mulai digunakan oleh General Motors.

Tahun 1966, AI pertama kali diajari untuk menerjemahkan informasi visual, tapi gagal. Ada juga “ELIZA”, mesin percakapan pertama yang dibuat berbekal pola tingkah laku manusia.

Tahun 1967, muncul bahasa pemrograman “LOGO” untuk memprogram robot.

Tahun 1979, muncul sistem untuk mendiagnosa penyakit berbahaya hanya lewat darah. Namun, praktik ini dihentikan karena alasan etis.

Tahun 1982, muncul mesin “speech recognition” pertama yang mampu mengubah suara menjadi informasi.

Tahun 1997, mesin “Deep Blue” mampu mengalahkan pemain catur dunia dalam pertandingan catur.

Tahun 2005, Amerika Serikat menggunakan robot otomatis untuk melontarkan bom di Iraq dan Afghanistan.

Tahun 2008, Google memperkenalkan teknologi “voice recognition”.

C. Fungsi Algoritma

1. Algoritma dapat memperkecil kesalahan atau kesalahan dalam pemrograman. Sebab, menjalankan segala sesuatu secara otomatis sesuai rumus atau instruksi yang sudah ditentukan.
2. Algoritma juga membantu developer mencari kesalahan atau error dari program yang sudah dibuat sebelumnya.
3. Algoritma membuat penulisan kode dalam sebuah program menjadi lebih efisien. Pengembang tidak perlu mengulang-ulang penulisan kode untuk program yang ingin dibuat.
4. Algoritma membantu sebuah program atau aplikasi menjadi lebih ringkas dan berukuran kecil. Sebab, aplikasi berjalan lewat proses otomatis algoritma. Bukan dari kode yang ditulis secara manual. 
5. Algoritma membantu pembuatan program yang lebih terstruktur dan logistik. Percaya diri ini akan memudahkan pengembang ketika perlu mengembangkan fitur tambahan.

D. KARAKTERISTIK ALGORITMA

1. Jelas, tidak ambigu. Setiap instruksi yang ditulis langsung dapat menjangkau dan tidak membuat orang salah mengartikannya.
2. Punya masukan yang jelas. Jika memerlukan input atau data, ia harus ditentukan secara jelas. Punya output yang jelas. Hasil dari algoritma juga perlu ditentukan dengan jelas. 
3. Terbatas. Algoritma memiliki langkah-langkah yang terbatas. Ini untuk memastikan secepat mungkin menghasilkan output yang diinginkan.
4. Layak atau mungkin dieksekusi. Algoritma tidak boleh mengandung komponen yang tidak universal atau bagian dari teknologi masa depan. Tujuannya, agar algoritma bisa menjalankan bisnis dengan mudah tanpa hambatan.
5. Tidak ada pada bahasa pemrograman tertentu. Algoritma harus ditulis dengan instruksi sederhana, hingga bisa ditulis ulang dengan bahasa apapun. 

E. ALGORITMA VS PROGRAM

Algoritma itu berisi langkah-langkah untuk menyelesaikan masalah. 
Untuk memudahkan orang memahaminya, algoritma juga mengubah bentuk ke flowchart ataupun pseudocode. Selain itu, algoritma juga bisa mengubah bentuk ke dalam bahasa pemrograman apa saja.
Akan tetapi, algoritma kerja tidak terbatas pada mesin saja. Orang pun bisa menggunakan algoritme untuk menyelesaikan masalah tertentu.

Beda halnya dengan program yang dijalankan di mesin. Program perlu dijalankan dengan bahasa pemrograman tertentu. Selain itu, program yang valid juga perlu memiliki langkah-langkah pengerjaan yang dapat dijangkau oleh si mesin.

F. Kekurangan dan Kelebihan Algoritma

Kelebihan Algoritma
1. Sangat mudah dijangkau. 
2. galeri langkah pemecahan masalah dengan gamblang. 
3. Langkah-langkah yang singkat dan jelas memudahkan pengembang mengubahnya ke program.

Kekurangan Algoritma
1. Sulit dan butuh waktu lama untuk menulisnya.
2. Percabangan dan perulangan akan sulit terlihat.

Semoga bisa membantu kamu untuk memahami materi-materi lain seputar pemrograman, Kekurangan dan Kelebihan Algoritma.

By: Ayang Oktapiani
IG: @ayangoktaviani