SEJARAH ALGORITMA
Algoritma adalah antung dari ilmu komputeratau infirmatika. Banyak cabang dari ilmu komputer yang di acu dalam terminologi algoritma, misalnyaalgoritma perutean (
routing) pesan didalam jaringan komputer, algoritma
Brensenham untuk menggambar garis lurus (bidang grafika komputer), algoritma knuth-morris-pratt untuk mencari suatu pola di dalam teks (pattern matching), dan sebagai nya.
Di tinjau dari asal usul kata, kata "algorotma" sendiri mempunyai sejarah yang cukup unik. Kata ini tidak muncul di dalam kamus Webster sampai akhir tahun 1957, malah kata yang di temukan adalah algorism yang artinya "proses menghitung angka arab ". Ingatlah bahwa angka 1,2,3... adalah angka-angka arab, sedangkan I, II, III ....adalah angka romawi. Jika anda menggunakan angka-angka arab maka anda di namakan algorism.
para ahli berusaha menemukan angka algorism ini namun hasilnya kurang memuaskan, sampai ahirnya para ahli sejarah matematika menemukan asal usul kata tersebu. Kata algorism berasal dari nama penulis buku arab yang terkenal, yaitu Abu Ja'far Muhammad Ibnu Musa Al Khuwarizmi (Al Khuwarizmi di baca orang barat menjadi algorism). Menulis buku yang berjudul kitsn al jabar wal mutaqabala, yang artinya "buku pemugaran dan pengurangan " (The Book of restoration and reduction). Dari judul itu juga kita memproleh akar kata "Aljabar" (algebra).
Perubahan dari kata algorism menjadi algorithm muncul kaena kata algorism sering di kelirukan dengan arithmetic sehingga ahitran -sm berubah menjadi -thm. Karena perhitungan dengan angka arab sudah menjadi hal yang biasa atau lumrah, maka lambat laun kara algorithm bengasur-angsur di pakai sebabai metode perhitungan atau (komputasi) secara umum, sehingga kehilangan makna aslinya. Falam bahasa Indonesia, kata algorithm diserap menjadi algoritma
pada tahun 1950 kata algoritma pertamakali di sandangkan pada Algoritma Euclidean (Euclid's algorithm ) Euclid, seorang matematikawan yunani (lahir pada tahun 350 M ) dalam bukunya nyang berjudul Element menuliskaan langkah-langkah untuk menemukan pembagi bersama terbsar (common greatest divisior atau gcd) dari dua belah bilangan bulat, m dan n . Tentu saja Euclid tidak menyebut metode gcd-nya itu dengan kata algoritma, baru di abad modern lah orang orang menyebut metodenya itu sebagai "Algoritma Euclidean". Pembagi bersama terbesar dari dua buah bilangan bulat tak negatif adalah bilangan bulat positip terbesar yang habis membagi dua bilangan tersebut.
KARAKTERISTIK ALGORITMA
Algoritma berisi urutan langkah-langkah untuk menyelasikan persoalan yang di berikan. Pada dasar nya sebuah algoritma menerima beberapa masuka (input), memprosesnya dalam urutan langkah-langkah dan menghasilkan luaran (output).
Ketika algoritma di jalankan (oleh manusia ataupun oleh komputer), maka langkah langkah tersebut di kerjakan dari awal sampai akhirnya berhenti dan kita memperoleh solusi persoalan. Jika algorima nya benar maka hasil nya (solusi) kan benar, dan sebaliknya jika algoritma nya salah maka hasil nya pun akan salah.
Jadi ada dua pesan yang penting tentang algoritma , pertama,sebuah algoritma hrus benar. Kedua aloritma harus berhenti dan setelah berhenti algoritma memberikan hasil yang benar. Menurut Donald E Knuth di dalam Art of Computer Programming, algoritma harus mempunyai lima ciri penting:
1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. sebagai contoh
pada algoritma Euclidean jika n = 0 algoritma berhenti (Langkah 1). JIka n tidak = 0 maka nilai n selalu berkurang sebagai akibat langkah 2 dan 3, dan akhir nya nilai n = 0 . Program tidak pernah berhenti mengidikasikan bahwa program tersebut berisi algoritma yang salah
2. Setiap langkah harus di definisikan dengan tepat dan tidak boleh berarti dua (ambiguous). Contoh Pertanyaan " Bagilah P dengan sejumlah beberapa buah bilangan bulat positif " dapat bermakna ganda .Berapakah yang dimaksud dengan "beberapa" ?. Algoritma menjadi jelas jika langkah tersebut di tulis "bagilah P dengan 10 bilangan bulat positif ".
3. Algoritma memiliki nol atau lebih masukan (input). Masukan adalah parameter nilai yang diberikan kepada algoritma untik di proses.
4.Algoritma memiliki nol atau lebih luaran (output). Luaran dapat berupa pesan ataau besaran yang memiliki hubungan dengan masukan.
5. Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat di kerjakan dalam sejumlah waktu yang masuk akal.