Algoritma: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
k robot Adding: sr |
Kalimat pada paragraph versi sebelum ini saya pecah-pecah agar lebih mudah dimengerti, ditambah dengan asal kata algoritma. |
||
Baris 1:
== Pendahuluan ==
Jika dijelaskan secara luas, '''algoritma''' (Inggris: ''algorithm'') adalah suatu set terbatas dari perintah yang dapat diterjemahkan per satu baris perintah hingga akhir berkaitan dengan kemungkinan dan menyelesaikan suatu tugas yang bisa apa saja, yang mempunyai status yang dapat dikenali, titik akhir, atau hasil untuk semua masukan. (berbeda dengan [[heuristik]]). Algoritma sering mempunyai langkah pengulangan ([[iterasi]]) atau memerlukan keputusan ([[Aljabar Boolean|logika Boolean]] dan [[pertidaksamaan|perbandingan]]) sampai tugas selesai.▼
Kata Algoritma berasal dari nama seorang ahli matematika dari persia [[Al Khawarizmi]]. Pada awalnya kata [[algorism]] adalah istilah yang merujuk kepada aturan-aturan aritmetis untuk menyelesaikan persoalan dengan menggunakan bilangan numerik arab. Pada abad 18, istilah ini berkembang menjadi [[algoritma]], yang mencakup semua prosedur atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan.
▲Jika dijelaskan
[[Desain dan analisis algorithma]] 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 suatu masalah membutuhkan kompleksitas yang tinggi.
== 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.
* [[Dynamic programming]], paradigma pemrograman dinamik akan sesuai jika digunakan pada suatu masalah yang mengandung [[sub-struktur yang optimal]] ([[en:optimal substructure]], dan mengandung beberapa [[bagian permasalahan yang tumpang tindih]] [[en:overlapping subproblems]]. 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.
{{Stub}}
[[af:Algoritme]]
|