Langsung ke konten utama
KLASIFIKASI ALGORITMA
Klasifikasi Algoritma
Salah satu cara untuk mengklasifikasikan algoritma yaitu dengan menggunakan cara implementasi.
- Rekursi atau iterasi
Algoritma rekursi ialah suatu algoritma yang memanggil dirinya sendiri
secara berulang kali (looping) hingga pada kondisi tertentu dapat
tercapai. Rekursi merupakan suatu metode umum dalam pemrograman
fungsional. Algoritma iteratif memakai konstruksi berulang seperti pada
pengulangan dan terkadang terdapat struktur data tambahan. Beberapa
permasalahan secara alami dapat cocok dengan 1 implementasi atau yang
lainnya. Contohnya : Menara Hanoi yang dikenal dengan implementasi
rekursif. Pada setiap versi rekursif mempunyai adanya kesamaan (bisa
lebih ataupun kurang kompleks) dengan versi iteratif, ataupun
sebaliknya.
- Logical
Algoritma dapat dilihat sebagai sebuah logika deduksi terkontrol.
Pernyataan ini dapat diekspresikan sebagai: Algoritma = kontrol +
logika. Komponen logika yang mengekspresikan aksioma dapat digunakan
dalam komputasi serta komponen kontrol dalam menentukan cara-cara
deduksi yang digunakan pada aksioma. Hal tersebut adalah dasar dari
paradigma pemrograman logika. Dalam pemrograman, logika murni komponen
kontrol ialah tetap serta algoritma yang ditentukan dengan memberikan
hanya ada komponen logikanya. Daya tarik dari pendekatan logical ialah
semantik elegan, sebuah perubahan yang ada dalam aksioma mempunyai
perubahan dalam algoritma.
- Serial, paralel atau terdistribusi
Pada umumnya, suatu algoritma menjalankan satu instruksi algoritma
setiap waktu. Komputer tersebut dapat disebut dengan komputer serial.
Rancangan algoritma yang digunakan bagi lingkungan tersebut ialah
algoritma serial, terbalik dengan algoritma terdistribusi atau algoritma
paralel. Algoritma paralel menggunakan arsitektur komputer yang mana
terdapat prosesor-prosesor dapat mengerjakan masalah pada waktu yang
sama. Sedangkan algoritma terdistribusi menggunakan banyak mesin yang
terhubung ke jaringan. Algoritma terdistribusi atau paralel membagi
permasalahan ke banyak submasalah simetris maupun asimetris dan
mengumpulkan hasil yang didapat kembali. Konsumsi dari sumber pada
algoritma tersebut tidak hanya ada perputaran prosesor tapi juga
terdapat daya komunikasi antara prosesor. Algoritma pengurutan dapat
untuk diparalelkan secara efisien, namun terdapat biaya komunikasi yang
sangat mahal. Algoritma iteratif pada umumnya dapat untuk diparalelkan.
Ada juga permasalah yang tidak ada algoritma paralelnya, disebut dengan
permasalahan serial lahiriah.
- Deterministik atau non-deterministik
Terdapat juga algoritma determministik dan non-determenistik. Algoritma
deterministik dapat menyelesaikan masalah-masalah dengan keputusan tepat
disetiap langkah-langkah dari sebuah algoritma. Algoritma
non-deterministik dapat menyelesaikan masalah-masalah lewat adanya
penerkaan walaupun penerkaan tersebut pada umumnya lebih akurat dengan
memakai heuristik.
- Tepat atau perkiraan
Jika terdapat banyak algoritma dapat sampai ke solusi yang tepat, ada
juga algoritma perkiraan yang mencari perkiraan terdekat dengan solusi
benarnya. Perkiraan tersebut dapat memakai strategi deterministik
ataupun acak. Algoritma yang seperti itu dapat mempunyai nilai lebih
untuk banyak permasalahan yang sulit.
- Algoritma quantum
Berjalan pada model realistik dari komputasi quantum. Istilah tersebut
pada umumnya dipakai bagi algoritma yang pada dasarnya quantum, ataupun
memakai fitur-fitur penting dari komputasi quantum seperti belitan
quantum atau superposisi quantum.
Komentar
Posting Komentar