Algoritma: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Perbaikan
Tag: halaman dengan galat kutipan Menghilangkan referensi VisualEditor
Maulana.AN (bicara | kontrib)
k Membalikkan revisi 21647393 oleh Cahyogunadi (bicara)
Tag: Pembatalan halaman dengan galat kutipan
Baris 1:
[[Berkas:Euclid flowchart 1.png |jmpl|lright | [[Diagram alur]] dari sebuah algoritme ([[Algoritme Euclid]]) untuk menghitung faktor persekutuan terbesar (f.p.b.) dari dua angka ''a'' dan ''b'' dalam lokasi bernama A dan B. Algoritme dijalankan dengan pengurangan berturut-turut dalam dua pengulangan: JIKA pengujian B >= A menghasilkan "ya" (atau benar) (lebih akuratnya ''angka'' ''b'' dalam lokasi B lebih besar atau sama dengan ''angka'' ''a'' dalam lokasi A) MAKA, algoritme menentukan B ← B - A (artinya angka ''b'' - ''a'' menggantikan ''b'' sebelumnya). Hal yang sama, JIKA A > B, MAKA A ← A - B. Proses tersebut berhenti saat (isi dari) B adalah 0, menghasilkan f.p.k. dalam A. (Algoritme tersebut diambil dari Scott 2009:13; simbol dan gaya penggambaran dari Tausworthe 1977).]]
 
'''Algoritma''' adalah sekumpulan instruksi yang terstruktur dan terbatas yang diimplementasikan kedalam bentuk program komputer untuk menyelesaikan suatu masalah komputasi tertentu.<ref>{{cite book|last=Mushthofa|first=|date=2021|url=http://setditjen.dikdasmen.kemdikbud.go.id/eppa/unggah/unduhan/INFORMATIKA-BS-KLS_X/pdf|title=Informatika untuk SMA Kelas X|place=[[Jakarta]]|publisher=Pusat Kurikulum dan Perbukuan|isbn=978-602-244-506-7|edition=|pages=245|language=|url-status=live|coauthors=}}</ref> Dalam [[matematika]] dan [[ilmu komputer]], algoritme adalah prosedur langkah-demi-langkah untuk penghitungan.
Dalam [[matematika]] dan [[ilmu komputer]], '''algoritma''' (/ˈælɡərɪðəm/ ( simak)) adalah rangkaian terhingga dari instruksi-instruksi yang rumit, yang biasanya digunakan untuk menyelesaikan atau menjalankan suatu kelompok masalah [[komputasi]] tertentu. Algoritma digunakan sebagai spesifikasi untuk melakukan perhitungan dan pemrosesan data. Algoritma yang lebih mutakhir dapat melakukan deduksi otomatis (disebut sebagai penalaran otomatis) dan menggunakan tes matematis dan logis untuk mengarahkan eksekusi kode melalui berbagai rute (disebut sebagai pengambilan keputusan otomatis). Penggunaan karakteristik manusia sebagai deskriptor mesin secara metaforis telah dipraktekkan oleh [[Alan Turing]] dengan terminologi seperti "memori", "pencarian" dan "stimulus".<ref>Blair, Ann, Duguid, Paul, Goeing, Anja-Silvia and Grafton, Anthony. Information: A Historical Companion, Princeton: Princeton University Press, 2021. p. 247</ref>
Algoritme digunakan untuk [[penghitungan]], [[pemrosesan data]], dan [[penalaran otomatis]].
 
Algoritme adalah [[metode efektif]] diekspresikan sebagai rangkaian [[terbatas]]<ref>
Sebaliknya, [[heuristika]] adalah pendekatan untuk pemecahan masalah komputasi yang mungkin tidak sepenuhnya terspesifikasi atau tidak menjamin hasil yang benar atau optimal, terutama dalam ranah masalah komputasi yang mana tidak ada hasil yang benar atau optimal yang terdefinisi dengan baik.<ref>David A. Grossman, Ophir Frieder, ''Information Retrieval: Algorithms and Heuristics'', 2nd edition, 2004, {{isbn|1402030045}}</ref>
"Setiap algoritme klasik, misalnya, bisa dijelaskan dengan sejumlah kata bahasa Inggris yang terbatas"
(Rogers 1987:2).
</ref>
dari instruksi-instruksi yang telah didefinisikan dengan baik<ref>
Telah didefinisikan terhadap agen yang menjalankan algoritme tersebut: "Ada agen komputasi, biasanya manusia, yang bisa beraksi terhadap instruksi dan melakukan komputasi"
(Rogers 1987:2).
</ref>
untuk menghitung sebuah [[Fungsi (matematika)|fungsi]].<ref>
"Sebuah algoritme adalah sebuah prosedur untuk menghitung sebuah ''fungsi'' (terhadap beberapa notasi terpilih integer) ... batasan ini (terhadap fungsi bilangan) tanpa kehilangan generalisasi",
(Rogers 1987:1).
</ref>
Dimulai dari sebuah kondisi awal dan input awal (mungkin [[deretan null|kosong]]),<ref>
Sebuah algoritme memiliki input [[nol]] atau lebih, yaitu, [[kuantitas]] yang diberikan padanya sejak awal sebelum algoritme dijalankan"
(Knuth 1973:5).
</ref>
instruksi-instruksi tersebut menjelaskan sebuah [[komputasi]] yang, bila [[Eksekusi (komputasi)|dieksekusi]], diproses lewat sejumlah urutan kondisi terbatas<ref>
"Sebuah prosedur yang memiliki semua karakteristik dari sebuah algoritme kecuali prosedur yang tidak memiliki keterbatasan bisa disebut sebagai sebuah 'metode komputasi'"
(Knuth 1973:5).
</ref>
yang terdefinisi dengan baik, yang pada akhirnya menghasilkan "keluaran"<ref>
"Sebuah algoritme memiliki satu atau lebih keluaran, yaitu kuantitas yang memiliki relasi tertentu terhadap masukan"
(Knuth 1973:5).
</ref>
dan berhenti di kondisi akhir.
Transisi dari satu kondisi ke kondisi selanjutnya tidak harus [[deterministik]];
beberapa algoritme, dikenal dengan [[algoritme pengacakan]], menggunakan masukan acak.<ref>
Apakah sebuah proses dengan proses-proses bagian dalam yang acak (tidak termasuk masukan) adalah sebuah algoritme 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
</ref>
 
Walaupun ''[[algorism]]''-nya [[al-Khawarizmi]] dirujuk sebagai aturan-aturan melakukan aritmetika menggunakan [[bilangan Hindu-Arab]] dan solusi sistematis dan [[persamaan kuadrat]], sebagian formalisasi yang nantinya menjadi ''algoritme'' modern dimulai dengan usaha untuk memecahkan [[permasalahan keputusan]] (''Entscheidungsproblem'') yang diajukan oleh [[David Hilbert]] pada tahun 1928.
Sebagai metode yang efektif, algoritma dapat diekspresikan dalam jumlah ruang dan waktu yang terbatas,<ref>"Any classical mathematical algorithm, for example, can be described in a finite number of English words" (Rogers 1987:2).</ref> dan dalam bahasa formal yang terdefinisi dengan baik<ref>Well defined with respect to the agent that executes the algorithm: "There is a computing agent, usually human, which can react to the instructions and carry out the computations" (Rogers 1987:2).</ref> untuk menghitung suatu [[Fungsi (matematika)|fungsi]].<ref>"an algorithm is a procedure for computing a ''function'' (with respect to some chosen notation for integers) ... this limitation (to numerical functions) results in no loss of generality", (Rogers 1987:1).</ref> Dimulai dari tataran awal dan input awal (bisa jadi kosong),<ref>"An algorithm has [[zero]] or more inputs, i.e., [[Quantity|quantities]] which are given to it initially before the algorithm begins" (Knuth 1973:5).</ref> instruksi-instruksi yang ada menggambarkan sebuah komputasi yang, ketika dieksekusi, berjalan melalui sejumlah tataran dengan jumlah terhingga yang terdefinisi dengan baik,<ref>"A procedure which has all the characteristics of an algorithm except that it possibly lacks finiteness may be called a 'computational method{{'"}} (Knuth 1973:5).</ref> yang pada akhirnya menghasilkan "output"<ref>"An algorithm has one or more outputs, i.e. quantities which have a specified relation to the inputs" (Knuth 1973:5).</ref> dan berakhir pada tataran final akhir. Transisi dari satu tataran ke tataran berikutnya tidak selalu bersifat menentukan; beberapa algoritme, yang dikenal sebagai algoritme acak, menggabungkan input acak.<ref>Whether or not a process with random interior processes (not including the input) is an algorithm is debatable. Rogers opines that: "a computation is carried out in a discrete stepwise fashion, without the use of continuous methods or analogue devices ... carried forward deterministically, without resort to random methods or devices, e.g., dice" (Rogers 1987:2).</ref>
Formalisasi selanjutnya dilihat sebagai usaha untuk menentukan "[[penghitungan efektif]]"
<ref>
Kleene 1943 dalam Davis 1965:274
</ref>
atau "metode efektif";
<ref>
Rosser 1939 dalam Davis 1965:225
</ref>
formalisasi tersebut mengikutkan [[Kurt Godel|Godel]]-[[Jacques Herbrand|Herbrand]]-[[Stephen Cole Kleene|Kleene]] [[Rekursi (ilmu komputer)|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-7 dan 1939.
Dari definisi formal dari algoritme di atas, berkaitan dengan konsep intuituf, masih tetap ada masalah yang menantang.
<ref>{{cite book
|last1 = Moschovakis
|first1 = Yiannis N.
|editor1-last = Engquist
|editor1-first = B.
|editor2-last = Schmid
|editor2-first = W.
|title = Mathematics Unlimited — 2001 and beyond
|url = http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.32.8093
|year = 2001
|publisher = Springer
|isbn = 9783540669135
|pages = 919–936 (Part II)
|chapter = What is an algorithm?
}}</ref>
apa itu algoritma?
 
== Asal kata ==