ALGORITMA
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 riteria kondisi awal yang harus dipenuhi
sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua
kondisi awal yang memenuhi riteria, 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 riteria
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 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.
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.
Masduki
NPM
: 130403020006
Tidak ada komentar:
Posting Komentar