Dalam matematika dan komputasi, algoritma
atau algoritme merupakan
kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini
dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut
dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria
kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan
dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam
hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (Logika boolean dan perbandingan) sampai tugasnya selesai.
Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu
algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma
tersebut. Dalam cabang disiplin ini algoritma dipelajari secara abstrak,
terlepas dari sistem komputer atau bahasa pemrograman yang digunakan. Algoritma yang
berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama.
Kompleksitas dari suatu algoritma merupakan
ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk
menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan
suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah,
sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya
mempunyai kompleksitas yang tinggi.
Sejarah
istilah "algoritma"
Kata algoritma berasal dari
latinisasi nama seorang ahli matematika dari Uzbekistan Al Khawarizmi (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.
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 memecahkan permasalahan-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 yg 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 Pemrograman dinamik, 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/Algoritmaww.wikipedia.com
Tidak ada komentar:
Posting Komentar