Algoritma
· Etimologi

Sebuah
algoritma adalah satu set instruksi khusus untuk melaksanakan prosedur
atau pemecahan masalah, biasanya dengan persyaratan bahwa prosedur
berakhir pada beberapa titik. Algoritma tertentu kadang-kadang juga dikenal dengan nama metode , prosedur , teknik ataupun formula.
Pada dasarnya algoritma adalah sebuah contoh dari logika ditulis dalam perangkat lunak
oleh pengembang perangkat lunak menjadi efektif untuk komputer
dimaksudkan "target" (s), dalam rangka untuk mesin target untuk
menghasilkan output dari input yang diberikan (mungkin nol).
Dalam matematika dan ilmu komputer, algoritma biasanya berarti prosedur kecil yang memecahkan masalah yang berulang. Ada pula yang menyebutkan bahwa algoritma adalah sebuah metode yang efektif dinyatakan sebagai terbatas daftar didefinisikan dengan baik instruksi untuk menghitung fungsi . Algoritma yang digunakan untuk perhitungan , pengolahan data , dan penalaran otomatis . Dengan kata yang sederhana algoritma adalah prosedur langkah-demi-langkah untuk perhitungan.
Konsep algoritma juga digunakan untuk menentukan gagasan decidability, yaitu pusat untuk menjelaskan bagaimana sistem formal terwujud mulai dari satu set kecil aksioma dan aturan. Algoritma dapat dianggap setiap urutan operasi yang dapat disimulasikan oleh Turing-lengkap sistem. Penulis yang menyatakan tesis ini termasuk Minsky (1967), Savage (1987) dan Gurevich (2000).
Algoritma dapat dinyatakan dalam berbagai macam notasi, termasuk bahasa-bahasa alamiah , pseudocode , flowchart , bahasa pemrograman atau tabel kontrol (diproses oleh interpreter). Pseudocode, flowchart dan tabel kontrol terstruktur cara untuk
mengekspresikan algoritma yang menghindari banyak ambiguitas pernyataan
umum dalam bahasa alami. Bahasa pemrograman yang terutama ditujukan
untuk mengekspresikan algoritma dalam bentuk yang dapat dieksekusi oleh
komputer, tetapi sering digunakan sebagai cara untuk mendefinisikan atau
dokumen algoritma.
Salah
satu algoritma paling sederhana adalah untuk menemukan jumlah terbesar
dalam sebuah daftar (disortir) nomor. Solusinya tentu membutuhkan
mencari di setiap nomor dalam daftar, tetapi hanya sekali pada
masing-masing. Dari ini mengikuti algoritma sederhana, yang dapat
dinyatakan dalam sebuah prosa deskripsi tingkat tinggi bahasa Inggris,
sebagai:
Tingkat tinggi description:
· Asumsikan item pertama adalah terbesar.
· Lihatlah setiap item yang tersisa dalam daftar dan jika lebih besar dari item terbesar sejauh ini, buatlah catatan tentang itu.
· Item terakhir adalah mencatat terbesar di daftar ketika proses selesai.
Analisis algorithmic : penting untuk mengetahui berapa banyak sumber daya tertentu (seperti waktu atau penyimpanan) secara teoritis diperlukan untuk algoritma tertentu. Para analisis dan studi algoritma adalah disiplin ilmu komputer , dan sering dipraktekkan abstrak tanpa menggunakan bahasa tertentu pemrograman
atau implementasi. Analisis algoritma menyerupai disiplin matematika
lain yang berfokus pada sifat yang mendasari algoritma dan bukan pada
spesifik dari setiap implementasi tertentu. Biasanya pseudocode digunakan untuk analisis karena merupakan representasi paling sederhana dan paling umum.
Klasifikasi Algoritma
· Dengan implementasi
1) Rekursi atau iterasi :
2) Logis
3) Serial atau paralel atau terdistribusi
4) Deterministik atau non-deterministik
5) Tepat atau perkiraan
6) Quantum algoritma
· Dengan paradigma desain
· Brute-force
· Membagi dan menaklukkan
· Metode serakah
· Pemrograman linear.
· Pengurangan
· Cari dan pencacahan.
· Dengan bidang studi
Lihat juga: Daftar algoritma
Setiap
bidang ilmu memiliki masalah sendiri dan kebutuhan algoritma yang
efisien. Masalah yang berkaitan dalam satu bidang sering dipelajari
bersama. Beberapa kelas contoh adalah algoritma pencarian, algoritma pengurutan , algoritma merge, algoritma numerik, grafik algoritma, algoritma String, algoritma geometrik komputasi, algoritma kombinatorial, algoritma medis, pembelajaran mesin, kriptografi, kompresi data algoritma dan teknik parsing.
· Dengan kompleksitas
Lihat juga: kelas Kompleksitas dan kompleksitas parameterized
Algoritma
dapat diklasifikasikan oleh jumlah waktu yang mereka butuhkan untuk
menyelesaikan dibandingkan dengan ukuran masukan mereka. Ada berbagai
macam: beberapa algoritma selesai dalam waktu linier relatif terhadap
ukuran input, beberapa melakukannya dalam jumlah eksponensial waktu atau
bahkan lebih buruk, dan beberapa tidak pernah berhenti.
**********
Komentar
Posting Komentar