Pengguna:Sulhan/Algoritma
![](http://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Euclid_flowchart_1.png/220px-Euclid_flowchart_1.png)
Dalam matematika dan ilmu komputer, sebuah algoritma adalah sebuah prosedur langkah-demi-langkah untuk penghitungan. Algoritma digunakan untuk penghitungan, pemrosesan data, dan penalaran otomatis.
Sebuah algoritma adalah sebuah metode efektif diekspresikan sebagai sebuah rangkaian terbatas [1] dari instruksi-instruksi yang telah didefinisikan [2] untuk menghitung sebuah fungsi. [3] Dimulai dari sebuah kondisi awal dan input awal (mungkin kosong), [4] instruksi-instruksi tersebut menjelaskan sebuah komputasi yang, bila dieksekusi, diproses lewat sejumlah urutan kondisi terbatas [5] yang terdefinisi dengan baik, yang pada akhirnya menghasilkan "keluaran" [6] dan berhenti di kondisi akhir. Transisi dari satu kondisi ke kondisi selanjutnya tidak harus deterministik; beberapa algoritma, dikenal dengan algoritma pengacakan, menggunakan masukan acak. [7]
Walaupun agorism-nya al-Khawarizmi dirujuk sebagai aturan-aturan melakukan aritmatika menggunakan bilangan Hindu-Arab dan solusi sistematis dan persamaan kuadrat, sebagian formalisasi yang nantinya menjadi algoritma modern dimulai dengan usaha untuk memecahkan permasalahan keputusan yang diajukan oleh David Hilbert pada tahun 1928. Formalisasi selanjutnya dilihat sebagai usaha untuk menentukan "penghitungan efektif" [8] atau "metode efektif"; [9] formalisasi tersebut mengikutkan fungsi rekursif-nya Kurt Godel - Jacques Herbrand - Stephen Cole Kleene pada tahun 1930, 1934, dan 1935, kalkulus lambda-nya Alonzo Church pada tahun 1936, "Formulasi 1"-nya Emil Post pada tahun 1936, dan Mesin Turing-nya Alan Turing pada tahun 1936, 1937 dan 1939. Memberikan sebuah definisi formal dari algoritma, berkaitan dengan konsep intuituf, masih tetap menjadi masalah yang menantang. [10]
Catatan
- ^ "Setiap algoritma klasik, misalnya, bisa dijelaskan dengan sejumlah kata bahasa Inggris yang terbatas" (Rogers 1987:2).
- ^ Telah didefinisikan terhadap agen yang menjalankan algoritma tersebut: "Ada agen komputasi, biasanya manusia, yang bisa beraksi terhadap instruksi dan melakukan komputasi" (Rogers 1987:2).
- ^ "Sebuah algoritma adalah sebuah prosedur untuk menghitung sebuah fungsi (terhadap beberapa notasi terpilih integer) ... batasan ini (terhadap fungsi bilangan) tanpa kehilangan generalisasi", (Rogers 1987:1).
- ^ Sebuah algoritma memiliki input nol atau lebih, yaitu, kuantitas yang diberikan padanya sejak awal sebelum algoritma dijalankan" (Knuth 1973:5).
- ^ ""Sebuah prosedur yang memiliki semua karakteristik dari sebuah algoritma kecuali prosedur tidak memiliki keterbatasan bisa disebut sebuah 'metode komputasi'" (Knuth 1973:5).
- ^ "Sebuah algoritma memiliki satu atau lebih keluaran, yaitu kuantitas yang memiliki relasi tertentu terhadap masukan" (Knuth 1973:5).
- ^ Apakah sebuah proses dengan proses-proses bagian dalam yang acak (tidak termasuk masukan) adalah sebuah algoritma atau bukan masih diperdebatkan. Rogers beropini bahwa: "sebuah komputasi dilakukan dengan sebuah gaya diskrit bertahap, tanpa menggunakan metode-metode berkelanjutan atau perangkat analog ... dijalakan terus secara deterministik, tanpa menggunakan metode-metode atau perangkat acak, misalnya, dadu" Rogers 1987:2
- ^ Kleene 1943 dalam Davis 1965:274
- ^ Rosser 1939 dalam Davis 1965:225
- ^ Moschovakis, Yiannis N. (2001). "What is an algorithm?". Dalam Engquist, B.; Schmid, W. Mathematics Unlimited — 2001 and beyond. Springer. hlm. 919–936 (Part II). ISBN 9783540669135.