Definisi Algoritma
Algoritma adalah prosedur langkah-demi-langkah untuk penghitungan. Algoritma digunakan untuk penghitungan, pemrosesan data, dan penalaran otomatis.
Algoritma adalah metode efektif diekspresikan sebagai rangkaian terbatas dari instruksi-instruksi yang telah didefinisikan dengan baik untuk menghitung sebuah fungsi. Dimulai dari sebuah kondisi awal dan input awal (mungkin kosong), instruksi-instruksi tersebut menjelaskan sebuah komputasi yang, bila dieksekusi, diproses lewat sejumlah urutan kondisi terbatas yang terdefinisi dengan baik, yang pada akhirnya menghasilkan "keluaran" dan berhenti di kondisi akhir. Transisi dari satu kondisi ke kondisi selanjutnya tidak harus deterministik; beberapa algoritma, dikenal dengan algoritma pengacakan, menggunakan masukan acak.
Walaupun algorism-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 (Entscheidungsproblem) yang diajukan oleh David Hilbert di tahun 1928. Formalisasi selanjutnya dilihat sebagai usaha untuk menentukan "penghitungan efektif" atau "metode efektif", formalisasi tersebut mengikutkan Godel-Herbrand-Kleene fungsi rekursif-nya Kurt Godel - Jacques Herbrand - Stephen Cole Kleene di tahun 1930, 1934, dan 1935, kalkulus lambda-nya Alonzo Church di tahun 1936, "Formulasi 1"-nya Emil Post di tahun 1936, dan Mesin Turing-nya Alan Turing di tahun 1936-7 dan 1939. Dari definisi formal dari algoritma di atas, berkaitan dengan konsep intuituf, masih tetap ada masalah yang menantang.
Contoh Algoritma
Salah satu dari algoritma sederhana adalah menemukan bilangan terbesar dalam sebuah deretan angka (tak berurut). Solusinya membutuhkan pemeriksaan setiap angka dalam deret, tapi hanya sekali. Dari hal ini munculah algoritma sederhana, yang bisa dinyatakan dalam kalimat bahasa deskripsi tingkat-tinggi, sebagai:
Deskripsi tingkat-tinggi:
Deskripsi (Quasi-)formal: Ditulis dalam kalimat yang lebih dekat dengan bahasa tingkat-tinggi dari program komputer, berikut ini adalah kode formal dari algoritma dalam pseudokode atau kode pijin :
Algoritma adalah metode efektif diekspresikan sebagai rangkaian terbatas dari instruksi-instruksi yang telah didefinisikan dengan baik untuk menghitung sebuah fungsi. Dimulai dari sebuah kondisi awal dan input awal (mungkin kosong), instruksi-instruksi tersebut menjelaskan sebuah komputasi yang, bila dieksekusi, diproses lewat sejumlah urutan kondisi terbatas yang terdefinisi dengan baik, yang pada akhirnya menghasilkan "keluaran" dan berhenti di kondisi akhir. Transisi dari satu kondisi ke kondisi selanjutnya tidak harus deterministik; beberapa algoritma, dikenal dengan algoritma pengacakan, menggunakan masukan acak.
Walaupun algorism-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 (Entscheidungsproblem) yang diajukan oleh David Hilbert di tahun 1928. Formalisasi selanjutnya dilihat sebagai usaha untuk menentukan "penghitungan efektif" atau "metode efektif", formalisasi tersebut mengikutkan Godel-Herbrand-Kleene fungsi rekursif-nya Kurt Godel - Jacques Herbrand - Stephen Cole Kleene di tahun 1930, 1934, dan 1935, kalkulus lambda-nya Alonzo Church di tahun 1936, "Formulasi 1"-nya Emil Post di tahun 1936, dan Mesin Turing-nya Alan Turing di tahun 1936-7 dan 1939. Dari definisi formal dari algoritma di atas, berkaitan dengan konsep intuituf, masih tetap ada masalah yang menantang.
Contoh Algoritma
Salah satu dari algoritma sederhana adalah menemukan bilangan terbesar dalam sebuah deretan angka (tak berurut). Solusinya membutuhkan pemeriksaan setiap angka dalam deret, tapi hanya sekali. Dari hal ini munculah algoritma sederhana, yang bisa dinyatakan dalam kalimat bahasa deskripsi tingkat-tinggi, sebagai:
Deskripsi tingkat-tinggi:
- Jika tidak ada angka dalam deret makan tidak ada bilangan terbesar.
- Asumsikan item pertama dalam deret adalah yang terbesar.
- Untuk setiap sisa angka dalam deret, jika angka tersebut besar dari angka terbesar sekarang, anggap angka tersebut menjadi yang terbesar dalam deret.
- Bila tidak ada lagi angka yang tersisa pada deret untuk diperiksa, anggap angka terbesar sekarang menjadi angka yang terbesar dalam deret.
Animasi dari algoritma quicksort mengurutkan larik dari nilai acak. Batang merah menandakan elemen pivot; pada awal animasi, elemen paling kanan dipilih sebagai pivot.
Deskripsi (Quasi-)formal: Ditulis dalam kalimat yang lebih dekat dengan bahasa tingkat-tinggi dari program komputer, berikut ini adalah kode formal dari algoritma dalam pseudokode atau kode pijin :
Algoritma LargestNumber Masukan: Deret angka L. Keluaran: Angka terbesar dalam daftar L.
terbesar ← Lnull
untuk setiap item dalam L, lakukan
jika item > terbesar, maka
terbesar ← item
kembalikan terbesar
- "←" adalah singkatan untuk "diubah menjadi". Misalnya, "terbesar ← item" artinya nilai dari terbesar diubah menjadi nilai dari item.
- "kembalikan" mengakhiri algoritma dan mengeluarkan nilai kembalian.
Contoh Flowchart :




Comments
Post a Comment