Algoritma: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
RobotQuistnix (bicara | kontrib)
k robot Adding: sr
Wongiseng (bicara | kontrib)
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 secaralebih luaslanjut, '''algoritma''' (Inggris: ''algorithm'') adalahmerupakan suatu setkumpulan terbatas dariperintah untuk menyelesaikan suatu masalah. Perintah-perintah yangini dapat diterjemahkan persecara satubertahap barisdari perintahawal hingga akhir. berkaitanMasalah dengantersebut kemungkinandapat danberupa menyelesaikanapa suatusaja, tugasdengan yangcatatan bisauntuk apasetiap sajamasalah, yangada mempunyaikriteria statuskondisi awal yang dapatharus dikenali,dipenuhi titiksebelum akhir,menjalankan ataualgoritma. hasil[[Algoritma]] akan dapat selalu berakhir untuk semua masukan.kondisi awal yang memenuhi kriteria, (berbeda dengan [[heuristik]]). Algoritma sering mempunyai langkah pengulangan ([[iterasi]]) atau memerlukan keputusan ([[Aljabar Boolean|logika Boolean]] dan [[pertidaksamaan|perbandingan]]) sampai tugas selesai.
 
[[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]]