Perbezaan antara semakan "Algoritma"

3,775 bait ditambah ,  1 tahun lalu
Pengembalian kandungan melalui peneutralan kandungan
(Pengembalian kandungan melalui peneutralan kandungan)
Dalam [[sains komputer]] pula, '''algoritma''' ialah langkah-langkah dalam proses larian kod komputer yang mengkaji tahap keberkesanan [[atur cara komputer|kod program komputer]]. Usaha dalam kajian ini bertemakan "bagimanakah cara untuk menghasilkan langkah tersingkat dalam penyelesaian setiap masalah komputer yang diutarakan.
 
== Ciri algoritma ==
# Mempunyai permulaan
# Mempunyai input (dalam sesetengah kes, tiada input) dan output
Algoritma mesti memenuhi syarat-syaratnya. Jika syarat tidak dipenuhi, maka itu bukan algoritma.
 
== Kepenggunaan algoritmaJenis ==
Algoritma dikelaskan mengikut cara implementasi ia:
 
; Rekursi atau iterasi
: Sebuah algoritma [[Algoritme rekursi|rekursi]] yaitu algoritma yang memanggil dirinya sendiri berulang kali sampai kondisi tertentu tercapai, ini merupakan metode umum bagi [[pemrograman fungsional]]. algoritma [[Iterasi|iteratif]] menggunakan konstruksi berulang seperti [[Pengulangan program|pengulangan]] dan terkadang struktur data tambahan seperti [[Tumpukan (struktur data)|tumpukan]] untuk menyelesaikan permasalahan. Beberapa permasalahan secara alami cocok dengan satu implementasi atau lainnya. Sebagai contoh, [[Menara Hanoi]] dikenal dengan implementasi rekursif. Setiap versi rekursif memiliki kesamaan (tapi bisa lebih atau kurang kompleks) dengan versi iteratif, dan sebaliknya.
 
; Logika
: Sebuah algoritma bisa dilihat sebagai [[Penalaran deduktif|logika deduksi]] terkontrol. Pernyataan ini diekspresikan sebagai: '''algoritma = logika + kawalan'''.<ref>Kowalski 1979</ref> Komponen logika mengekspresikan aksioma yang bisa digunakan dalam komputasi dan komponen kawalan menentukan cara deduksi digunakan pada aksioma. Ini merupakan dasar dari paradigma [[pemrograman logika]]. Dalam bahasa pengaturcaraan logika tulenm komponen kawalan adalah tetap dan algoritma ditentukan dengan memberikan hanya komponen logikanya. Daya tarik dari pendekatan ini adalah [[Semantik formal dari bahasa pemrograman|semantik]] elegan: sebuah perubahan dalam aksioma memiliki perubahan dalam algoritma.
 
; Serial, paralel atau terdistribusi
: Algoritma biasanya diibncangkan dengan tanggapan bahawa komputer menjalankan satu arahan algoritma pada suatu-suatu masa. Komputer tersebut kadangkalanya diungkapkan menggunakan komputer serial. Rancangan algoritma untuk lingkungan tersebut diungkapkan dengan menggunakan algoritma serial, perkara ini terbalik algoritma-algoritma jenis [[Algoritma selari|selari]] atau [[Algoritma teragih|teragih]]: algoritma selari memanfaatkan seni bina komputer yang mana beberapa pemproses bisa mengerjakan suatu permasalahan pada waktu yang sama, manakala algoritma teragih memanfaatkan banyak mesin yang dihubungkan dengan suatu [[Jaringan komputer|jaringan]]. Kedua-dua algoritma ini membahagikan permasalahan menjadi banyak sub-masalah yang bersifat simetris atau asimetris lalu mengumpulkan kembali hasil perkiraan submasalah tersebut. Kos sumber pada algoritma tersebut tidak hanya pada setiap putaran pemproses tetapi juga daya komunikasi antara prosesor. Algoritma pengurutan bisa diselarikan secara efisien, namun biaya komunikasinya memakan kos sangat mahal. Algoritma iteratif secara umum bisa diparalelkan. Beberapa permasalahan tidak ada algoritma paralelnya, dan disebut dengan permasalahan serial lahiriah.
 
; Deterministik atau non-deterministik
: [[Algoritme deterministik|algoritma deterministik]] menyelesaikan masalah dengan keputusan yang tepat disetiap langkah dari algoritma sedangkan [[Algoritme non-deterministik|algoritma non-deterministik]] menyelesaikan masalah lewat penerkaan walaupun penerkaan biasanya lebih akurat dengan menggunakan [[heuristik]].
 
; Tepat atau perkiraan
: Bila banyak algoritma sampai pada solusi yang tepat, [[Algoritme perkiraan|algoritma perkiraan]] mencari sebuah perkiraan yang terdekat dengan solusi benarnya. Perkiraan bisa menggunakan baik strategi deterministik atau acak. algoritma seperti itu memiliki nilai guna untuk banyak permasalahan sulit.
 
; [[Algoritma kuantum]]
: Algoritma ini dijalankan dalam suatu model realistik hasil suatu [[komputasi quantum]]. Istilah ini biasanya digunakan untuk algoritma yang tampak pada dasarnya bercirikan kuantum atau menggunakan beberapa ciri penting dalam perkiraan kuantum seperti [[Superposisi kuantum|superposisi kuantum]] atau [[Belitan kuantum|belitan kuantum]].
 
== Kepenggunaan ==
Algoritma banyak digunakan dalam bidang sains dan teknologi terutama dalam bidang [[sains komputer]]. Dalam sains komputer, algoritma digunakan sebelum proses pengaturcaraan C dimulakan. Melalui algoritma, pengaturcara dapat memastikan pengaturcaraan dikod dengan betul dan dapat digunakan.