Algoritma ialah tatacara langkah demi langkah yang diaturkan teliti mengikut bilangan dan susunan tertentu bertujuan menyelesaikan sesuatu masalah dalam masa yang terhingga.
Dalam sains komputer pula, algoritma ialah serangkap langkah dalam proses larian kod komputer yang mengkaji tahap keberkesanan kod program komputer. Usaha dalam kajian ini bertemakan "bagimanakah cara untuk menghasilkan langkah tersingkat dalam penyelesaian setiap masalah komputer yang diutarakan.
Tatacara ini boleh diungkapkan dengan cekap dalam lingkungan ruang dan masa yang terbatas dari bahasa yang teratur memberi arahan ditakrif didefinisikan dengan baik untuk mengira hitung sesebuah fungsi tertentu. Arahan-arahan ini menjelaskan sebuah kiraan yang dimajukan setelah dilalukan sejumlah sifat terbatas yang berturutan apabila dilaksanakan bermula dari sifat dan masukan awal (mungkin kosong) sehingga akhirnya menghasilkan "keluaran" dan berhenti dalam suatu sifat akhir. Peralihan Transisi dari satu sifat ke sifat selanjutnya tidak harus ditentukan secara mutakhir; terdapat juga beberapa algoritma yang bersifat rawak seikutan dengan masukan rawak.
Istilah ini pada asalnya bermaksud "sistem angkaperpuluhan" melalui ungkapan algorismus hasil pelatinannisbah Al-Khwārizmī (Parsi: الخوارزمیcode: fa is deprecated ) diberikan kepada Muhammad bin Musa Al-Khawarizmi, seorang ilmuwan hisab dan falakBaitul HikmahBaghdad keturunan Parsi berasal dari Khwarazm kini terletak di Uzbekistan; beliau menulis mengenai sistem angka Hindu-Arab pada abad ke-825; karya ini diperkenalkan ke dunia Barat melalui manuskrip berjudul Dixit Algorizmi ("Al-Khwarizmi menyebut") hasil terjemahan dari bahasa Arab ke bahasa Latin pada abad ke-12. Penungkapan ini kemudiannya dieja semula sebagai algortihmus pada abad ke-17; makna ungkapan ini beralih luas kepada tatakira pada abad ke-19.
Ciri
Mempunyai permulaan
Mempunyai input (dalam sesetengah kes, tiada input) dan output
Mempunyai proses
Mempunyai penamat
Algoritma mesti memenuhi syarat-syaratnya. Jika syarat tidak dipenuhi, maka itu bukan algoritma.
Jenis
Algoritma dikelaskan mengikut cara implementasi ia:
Rekursi atau iterasi
Sebuah algoritma rekursi iaitu algoritma yang memanggil dirinya sendiri berulang kali sampai kondisi tertentu tercapai, ini merupakan metode umum bagi pemrograman fungsional. algoritma iteratif menggunakan konstruksi berulang seperti pengulangan dan terkadang struktur data tambahan seperti 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 boleh lebih atau kurang kompleks) dengan versi iteratif, dan sebaliknya.
Logika
Sebuah algoritma boleh dilihat sebagai logika deduksi terkontrol. Pernyataan ini diekspresikan sebagai: algoritma = logika + kawalan. Komponen logika mengekspresikan aksioma yang boleh 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 elegan: sebuah perubahan dalam aksioma memiliki perubahan dalam algoritma.
Seturut/bersiri, selari 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 selari atau teragih: algoritma selari memanfaatkan seni bina komputer yang mana beberapa pemproses boleh mengerjakan suatu permasalahan pada waktu yang sama, manakala algoritma teragih memanfaatkan banyak mesin yang dihubungkan dengan suatu jaringan. Kedua-dua algoritma ini membahagikan permasalahan menjadi banyak sub-masalah yang bersifat simetri atau asimetri 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 boleh diselarikan secara efisien, namun biaya komunikasinya memakan kos sangat mahal. Algoritma iteratif secara umum boleh diparalelkan. Beberapa permasalahan tidak ada algoritma sama sifat selarinya lalu disebut dengan permasalahan serial lahiriah.
Deterministik atau non-deterministik
algoritma deterministik menyelesaikan masalah dengan keputusan yang tepat disetiap langkah dari algoritma sedangkan 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, algoritma perkiraan mencari sebuah perkiraan yang terdekat dengan solusi benarnya. Perkiraan boleh 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 atau 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.
Contoh algoritma
Penukaran unit meter kepada kilometer.
1) Mula
2) Input
2.1) Nilai dalam meter
3) Proses
3.1) Kilometer=meter/1000
4) Output
4.1) Nilai dalam kilometer
5) Tamat
Rujukan
Sumber utama
Rogers, Jr, Hartley (1987). Theory of Recursive Functions and Effective Computability. The MIT Press. ISBN978-0-262-68052-3.
Knuth, Donald (1969). Volume 2/Seminumerical Algorithms, The Art of Computer Programming First Edition. Reading, Massachusetts: Addison–Wesley.
This article uses material from the Wikipedia Bahasa Melayu article Algoritma, which is released under the Creative Commons Attribution-ShareAlike 3.0 license ("CC BY-SA 3.0"); additional terms may apply (view authors). Kandungan disediakan dengan CC BY-SA 4.0 kecuali jika dinyatakan sebaliknya. Images, videos and audio are available under their respective licenses. ®Wikipedia is a registered trademark of the Wiki Foundation, Inc. Wiki Bahasa Melayu (DUHOCTRUNGQUOC.VN) is an independent company and has no affiliation with Wiki Foundation.