Terdapat beberapa definisi mengenai
kata Algoritma :
1.
Algoritma
adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara
sistematis (Rinaldi Munir :2002).
2.
Algoritma
adalah urutan logis pengambilan keputusan untuk pemecahan masalah (KBBI :1988).
3.
Algoritma
adalah suatu himpunan hingga dari instruksi-instruksi yang secara jelas
memperinci langkah-langkah proses pelaksanaan, dalam pemecahan suatu masalah tertentu,
atau suatu kelas masalah tertentu, dengan dituntut pula bahwa himpunan
instruksi tersebut dapat dilaksanakan secara mekanik (Team Gunadarma :1988).
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 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 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 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.
Karena itu suatu Algoritma harus dinyatakan dalam
bentuk yang dapat dimengerti oleh pemroses.
Jadi suatu pemroses harus :
1. Mengerti setiap langkah dalam Algoritma
2. Mengerjakan operasi yang sesuai dengan langkah tersebut.
1. Mengerti setiap langkah dalam Algoritma
2. Mengerjakan operasi yang sesuai dengan langkah tersebut.
Mekanisme Pelaksanan Algoritma Oleh Pemroses. Komputer hanyalah salah satu pemroses. Agar dapat
dilaksanakan oleh komputer, algoritma harus ditulis dalam notasi bahasa pemrograman sehingga
dinamakan program.
Jadi program adalah perwujudan atau implementasi teknis Algoritma yang
ditulis dalam bahasa pemrogaman tertentu sehingga dapat dilaksanakan
oleh komputer.
Ciri penting algoritma:
• Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas.
• Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (Ambiguitas).
• Algoritma memiliki nol atau lebih masukkan.
• Algoritma memiliki nol atau lebih keluaran.
• algoritma harus efektif (setiap langkah harus sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal).
• Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas.
• Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (Ambiguitas).
• Algoritma memiliki nol atau lebih masukkan.
• Algoritma memiliki nol atau lebih keluaran.
• algoritma harus efektif (setiap langkah harus sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal).
Kriteria Algoritma:
a.Input, algoritma dapat memiliki 0 atau lebih inputan dari
luar.
b.Output, algoritma harus memiliki 1 buat output keluaran.
c.Definiteness (pasti), algoritma memiliki instruksi yang
jelas dan tidak ambigu.
d.Finiteness (batas), algoritma memiliki titik berhenti
setiap pernyataan.
e.Effectiveness (tepat dan efisien), algoritma harus dapat
dilaksanakan dan efisien.
Jenis proses Algoritma:
a.Sequence Process, instruksi yang dikerjakan berurutan.
b.Selection Process, instruksi yang dikerjakan jika memenuhi
kriteria tertentu.
c.Iteration Process, instruksi yang dikerjakan jika memenuhi
kondisi tertentu.
d.Concurrent Process, instruksi yang dikerjakan secara
bersamaan.
Sumber Referensi :
-->http://id.wikipedia.org/wiki/Algoritma
http://aizazmi.blogspot.com/2011/03/pengertian-algoritma-pseudocode-dan.html#!/2011/03/pengertian-algoritma-pseudocode-dan.html
Tidak ada komentar:
Posting Komentar