SEJARAH ALGORITMA
Algoritma adalah urutan langkah-langkah
logis penyelesaian masalah yang disusun secara sistematis dan logis". Algoritma berasal dari nama penulis buku, yakni Abu Ja’far Muhammad Ibnu Musa Al-Khwarizmi yang berasal dari Uzbekistan. Orang
Barat menyebut Al-Khwarizmi. Al-Khwarizmi menulis buku dengan judul Al
Jabar wal-Muqabala yang artinya 'Buku Pemugaran dan Pengurangan' (The book of
Restoration and Reduction). Dari judul buku tersebut, kita juga memperoleh kata
“aljabar” atau biasa dikenal dengan algebra.
Abu Abdullah Ibnu Musa al-Khawar. Ada beberapa cabang ilmu matematika yang berhasil ditemukannya, antara lain yang dikenal sebagai astronom dan geografer.izmi (770M-840M) lahir di Khawarizm (Kheva), kota yang berada di selatan Sungai Oxus (sekarang disebut Uzbekistan) pada 770 M. Al Khawarizmi merupakan salah satu ilmuan terkenal di zamannya
Abu Abdullah Ibnu Musa al-Khawar. Ada beberapa cabang ilmu matematika yang berhasil ditemukannya, antara lain yang dikenal sebagai astronom dan geografer.izmi (770M-840M) lahir di Khawarizm (Kheva), kota yang berada di selatan Sungai Oxus (sekarang disebut Uzbekistan) pada 770 M. Al Khawarizmi merupakan salah satu ilmuan terkenal di zamannya
Awalnya, algoritma merupakan istilah yang merujuk kepada aturan-aturan aritmetis yang berguna untuk menyelesaikan persoalan dengan menggunakan bilangan numeric Arab.
Pada 1950, algoritma pertama kali digunakan pada Algoritma Eucliden (Euclid Algorithm). Euclid sendiri merupakan seorang matemaitkawan Yunani yang lahir sekitar 350 SM. Euclid menulis buku yang berjudul Element. Di dalam buku tersebut, dijelaskan langkah-langkah untuk menemukan pembagi bersama terbesar (common greatest divisor) dari dua bilangan bulat, yakni m dan n. Namun, Eucliden pada saat itu tidak menyebutkan bahwa cara yang digunakannya adalah metode algoritma. Hal tersebut baru disebut sebagai algoritma pada abad-abad modern.
Menurut
Donal E.Knuth syarat-syarat algoriyma sebagai berikut :
1. Finiteness (keterbatasan) , yaitu
algoritma harus berakhir setelah melakukan sejumlah langkah proses.
2. Definiteness (kepastian) , yaitu
setiap langkah algoritma harus didefinisikan dengan tepat dan tidak menimbulkan
makna ganda.
3. Input (masukan) , yaitu sebuah
algoritma memiliki nol atau lebih
masukan (input) yang diberikan algoritma sebelum dijalankan.
4. Output (keluaran) , yaitu setiap
algoritma memberikan satu atau beberapa
hasil keluaran.
5. Effectiveness (efektivitas) , yaitu
langkah algoritma dikerjakan dalam waktu yang wajar.
Jenis-jenis
Algoritma
Terdapat beragam klasifikasi algoritma dan
setiap klasifikasi mempunyai alasan tersendiri. Salah satu cara untuk melakukan
klasifikasi jenis-jenis algoritma adalah dengan memperhatikan paradigma dan
metode yang digunakan untuk mendesain algoritma tersebut. Beberapa paradigma
yang digunakan dalam menyusun suatu algoritma akan dipaparkan dibagian ini.
Masing-masing paradigma dapat digunakan dalam banyak algoritma yang berbeda.
- Divide and Conquer, paradigma untuk membagi suatu permasalahan besar menjadi permasalahan-permasalahan yang lebih kecil. Pembagian masalah ini dilakukan terus menerus sampai ditemukan bagian masalah kecil yang mudah untuk dipecahkan. Singkatnya menyelesaikan keseluruhan masalah dengan membagi masalah besar dan kemudian memecahkanpermasalahan-permasalahan kecil yang terbentuk.
- Dynamic programming, paradigma pemrograman dinamik akan sesuai jika digunakan pada suatu masalah yang mengandung sub-struktur yang optimal (, dan mengandung beberapa bagian permasalahan yang tumpang tindih . Paradigma ini sekilas terlihat mirip dengan paradigma Divide and Conquer, sama-sama mencoba untuk membagi permasalahan menjadi sub permasalahan yang lebih kecil, tapi secara intrinsik ada perbedaan dari karakter permasalahan yang dihadapi.
- Metode serakah. Sebuah algoritma serakah mirip dengan sebuah Pemrograman dinamik, bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap tahap; dan menggunakan pilihan “serakah” apa yang dilihat terbaik pada saat itu.
- Sistem Flowchart
Sistem flowchart merupakan diagram
alir yang menggambarkan suatu sistem peralatan komputer yang digunakan
dalam proses pengolahan data serta hubungan antar peralatan
tersebut. Sistem flow chart tidak digunakan untuk menggambarkan
urutan langkah untuk memecahkan masalah , tetapi hanya untuk
menggambarkan prosedur dalam sistem yang dibentuk.
Tabel Simbol Dasar
Flowchart
·
Pseudecode
Pseudo Code (Kode Semu) ,Pseudo Code (kode
semu) merupakan metode yang cukup efisien untuk menggambarkan
suatu algoritma . Pseudo Code dituliskan dengan menggunakan bahasa yang mudah
dipahami (boleh menggunakan bahasa Indonesia) agar alur logika yang digambarkan
dapat dimengeti oleh orang awam sekalipun. Flowchart Pseudo Code (kode
semu) disusun dengan tujuan untuk menggambarkan tahap-tahap
penyelesaian suatu masalah dengan kata-kata (teks). Metode
ini mempunyai kelemahan, dimana penyusunan algoritma dengan kode
semu sangat dipengaruhi oleh tata bahasa pembuatnya, sehingga
kadang-kdang sulit dipahami oleh orang lain. Oleh karena itu kemudian
dikembangkan suatu metode lain yang dapat menggambarkan suatu
algoritma program secara lebih mudah dan sederhana yaitu dengan menggunakan
flowchart (diagram alir).
Emoticon