Selasa, 05 April 2011

SEJARAH ALGORITMA

Algoritma adalah jantung ilmu computer atau informatika. Ditinjau dari asal usul kata, kata “algoritma” sendiri mempunyai sejarah yang cukup aneh. Kata ini tidak muncul di dalam kamus Webster sampai akhir tahun 1957. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka Arab [KNU73]. Kata algorism berasal dari nama penulis buku Arab yang terkenal, yaitu Abu Ja’far Muhammad ibnu Musa al-Khuwarizmi ( al-Knuwarizmi dibaca orang barat menjadi algorism).
Pada tahun 1950, kata algoritma pertama kali digunakan pada “ algoritma Euclidean” (Euclid’s algorithm). Euclid, seorang matematikawan Yunani (lahir pada tahun 350 M), dalam bukunya berjudul Element menuliskan langkah-langkah untuk menemukan pembagi bersama terbesar (common greatest divisor atau gcd), dari dua buah bilangan bulat, mdan n [KNU73] (Euclid tidak menyebut metodenya sebagai algoritma, baru di abab modernlah orang-orang menyebut metodenya itu sebagai “algoritma Euclidean”).
Pembagi bersama terbesar dari dua buah bilangan bulat tak negative adalah bilangan bulat positif terbesar yang habis membagi kedua bilangan tersebut.




Misalnya, m=80 dan n=12. Semua factor pembagi 80 adlah

1,2,4,5,8,10,16,20,40,80,

Dan semua factor pembagi 12 adalah

1,2,3,4,6,12,

Maka gcd(80,12)=4. Langkah-langkah mencari gcd(80,12) dengan algoritma Euclidean sbb:

80 dibagi 12 hasilnya = 6, sisa = 8 (atau: 80 = 6 . 12 + 8)
12 dibagi 8 hasilnya = 1, sisa = 4 (atau: 12 =1 . 8 + 4)
8 dibagi 4 hasilnya = 2, sisa = 0 (atau: 8 = 4 .2 + 0)


Karena pembagian yang terakhir menghasilkan 0, maka sisa pembagian terakhir sebelum 0, yaitu 4, menjadi gcd(80,12). Jadi, gcd(80,12) = gcd(12,8) =gcd(8,4) = gcd(4,0) = 4.

Terdapat beberapa versi algoritma Euclidean, salah satu versinya dituliskan di bawah ini:

ALGORITMA EUCLIDEAN:

{Diberikan dua buah bilangan bulat tak-negatif m dan n (m>=n).
Algoritma Euclidean mencari pembagi bersama terbesar, gcd, dari kedua
bilangan tersebut, yaitu bilangan bulat positif terbesar yang habis
membagi m dan n.}
1. Jika n= 0 maka
m adalah jawabannya;
stop.
tetapi jika n#0,
lanjutkan ke langkah 2.
2. Bagilah m dengan n dan misalkan r adalah sisanya.
3. Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang
kembali ke langkah 1.

Dengan menggunakan algoritma Euclidean ini, kita dapat menhitung gcd dari dua buah bilangan bulat sembarang secara sistematis.

Contoh-contohalgoritma yang sudah dijelaskan di atas memberi dua pesan penting. Pertama, sebuah algoritma harus benar. Kedua, algoritma harus berhenti, dan setelah berhenti, algoritma memberi hasil yang benar.



Ciri-ciri Algoritma yang baik: Menurut Donald E.Knuth dalam bukunya yang berjudul the Art Of Computer Programming [KNU73], Algoritma mempunyai 5 ciri penting yaitu:
1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas Setiap langkah didefenisikan dengan tepat dan tidak berarti dua
(ambiguous).
3. Algoritma memiliki nol atau lebih masukan(input). Masukan ialah
besaran yang diberikan kepada algoritma untuk diproses.
4. Algoritma mempunyai nol atau lebih keluaran(output). Keluaran
dapat berupaPesan atau besaran yang memiliki hubungan dengan
masukan.
5. Algoritma harus sangkil (effective). Setiap langkah harus
sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang
masuk akal.

Ciri-ciri Algoritma yana baik:
1. Tepat sasaran: memenuhi spesifikasi pekerjaan dan bekerja sesuai tujuan
2. Flexible dan portable:
-Flexible untuk dikembangkan lebih lanjut
-portable untuk digunakan pada berbagai system dan mesin
3. Bersih dari kesalahan system atau lojik
4. Efektif: setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal.
5. Murah:
• Efisien dalam pengguna piranti memori dan penyimpanan lainnya
• Cepat waktu pelaksanaanya
6. Didokumentasi dengan baik untuk pengoperasian, pemeliharaan dan Pengembangan
7. Algoritma merupakan pemberian (description) pelaksanaan suatu proses
8. Tidak ambiguous: tidak bermakna ganda
9. Harus berhenti setelah mengerjakan sejumlah langkah terbatas

Tidak ada komentar:

Posting Komentar