Sejarah istilah "algoritma"

Kata
algoritma berasal dari latinisasi nama seorang ahli matematika dari
Uzbekistan Al Khawārizmi
(hidup sekitar abad ke-9), sebagaimana tercantum pada terjemahan
karyanya dalam bahasa latin dari abad ke-12 "Algorithmi de numero
Indorum". Pada awalnya kata
algorisma
adalah istilah yang merujuk kepada aturan-aturan aritmetis untuk
menyelesaikan persoalan dengan menggunakan bilangan numerik arab
(sebenarnya dari India, seperti tertulis pada judul di atas). Pada abad
ke-18, istilah ini berkembang menjadi
algoritma,
yang mencakup semua prosedur atau urutan langkah yang jelas dan
diperlukan untuk menyelesaikan suatu permasalahan. Masalah timbul pada
saat akan menuangkan bagaimana proses yang harus dilalui dalam
suatu/sebuah sistem (program) bagi komputer sehingga pada saat
eksekusinya, komputer dapat bekerja seperti yang diharapkan. Programer
komputer akan lebih nyaman menuangkan prosedur komputasinya atau urutan
langkah proses dengan terlebih dahulu membuat gambaran (diagram alur)
diatas kertas.
Klasifikasi Algoritma
Terdapat beragam klasifikasi
algoritma dan setiap klasifikasi mempunyai alasan tersendiri.
Berdasarkan implementasi
Salah satu yang perlu dipikirkan adalah bagaimana dan dimana implemntasi algoritma itu sendiri.
- Rekursi atau iterasi
- Dalam banyak kasus, kita perlu memecahkan suatu masalah dimana harus melakukan pekerjakan yang berulang-ulang terhadap benda yang sama. Dalam algoritma, dikenal dua teknik kasus yang cocok menangani kasus tersebut:
- Algoritma rekursif
adalah proses memanggil dirinya sendiri sampai suatu kondisi terpenuhi,
teknik ini menggunakan fungsi atau prosedur yang dikenal dalam pemrograman prosedural. Sedangkan algoritma iterasi adalah kontruksi pengulangan suatu metode yang menggunakan loop dan biasanya juga menggunakan |struktur data.
Satu implementasi memang cocok untuk beberapa masalah, namun tidak
semua masalah dapat diselesaikan secara maksimal hanya dengan
mengandalkan satu implementasi saja. Contoh yang paling baik adalah menara hanoi dimana masalah ini dapat diselesaikan dengan baik melalui implementasi algoritma rekursif.
Berdasarkan desain paradigma
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.
- Bagi and selesaikan
- 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 memecahkan permasalahan-permasalahan kecil yang terbentuk.
Optimalisasi masalah
- Pemrograman dinamis
- Paradigma pemrograman dinamis 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 dinamis,
bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap
tahap; dan menggunakan pilihan "serakah" apa yang dilihat terbaik pada
saat itu.
- Sumber http://id.wikipedia.org/wiki/Algoritma
Sip
BalasHapus