Pengertian
algoritma adalah langkah langkah logis yang tersusun secara sistematis untuk
menyelesaikan masalah. Pada saat kita memiliki masalah, maka kita harus dapat
untuk menyelesaikan masalah tersebut dengan menggunakan langkah-langkah yang
logis.
Pengertian Algoritma
Algoritma
sangat diperlukan untuk mengolah data yang ada di komputer. Dalam sistem
komputer, pengertian algoritma ialah logika yang dibuat dengan memakai software
oleh para pembuat perangkat lunak untuk membuat software tersebut menjadi lebih
bagus. Algoritma berbeda dengan Logaritma. Perlu diketahui juga bahwa logaritma
adalah sebuah operasi di ilmu matematika guna menghitung kebalikan eksponen
dari sebuah perpangkatan.
Kata Algoritma ditemukan oleh Abu
Abdullah Muhammad Ibnu Musa Al-Khwarizmi, beliau merupakan matematikawan yang
berasal dari Persia yang ditemukan pada Abad Ke 9. Dari masa ke masa, kata
algoritma mulai berkembang di abad ke 18.
Bentuk Dasar Algoritma
Algoritma sendiri mempunyai tiga 3 bentuk dasar, antara lain
:
1.
Algoritma Sekuensial (Sequence Algorithm)
Sequence
algorithm atau algoritma sekuensial merupakan algoritma yang langkah-langkahnya
secara urut dari awal hingga akhir. Bentuk dari algoritma sekuensial ini salah
satu contohnya seperti algoritma memasak air. Langkah demi langkah yang
dijalankan harus urut dari atas sampai bawah.
2.
Algoritma Perulangan (Looping Algorithm)
Looping
algorithm atau algoritma perulangan merupakan suatu algoritma yang menjalankan
beberapa langkah tertentu secara berulang-ulang atau looping. Pada masalah yang
kita hadapi, ada pula sebuah langkah yang harus kita lakukan secara
berulang-ulang. Contoh dari algoritma looping ini adalah algoritma menjemur
pakaian:
1) Siapkan
jemuran.
2) Ambil satu
pakaian yang nantinya akan dijemur.
3) Peras pakaian
tersebut terlebih dahulu.
4) Letakkan
pakaian tersebut pada tiang jemuran.
5) Ulangi langkah
dari 2 sampai 4 hingga pakaian habis.
Dari algoritma di
atas, dapat diketahui bahwa dari langkah 2 sampai 4 harus dilakukan secara
berulang-ulang hingga pakaian habis.
3.
Algoritma Percabangan atau Bersyarat
(Conditional Algorithm)
Conditional
algorithm atau algoritma bersyarat merupakan algoritma yang menjalankan langkah
berikutnya apabila terdapat syarat yang sudah dapat dipenuhi. Berikut salah
satu contoh dari algoritma bersyarat :
1) Siapkan panci.
2) Masukkan air
secukupnya ke dalam panci.
3) tutup panci
tersebut.
4) letakkan panci
tersebut di atas kompor.
5) Hidupkan
kompor.
6) Apabila air
sudah mendidih, lalu matikan kompor.
7) Angkat panci
tersebut dari kompor.
Algoritma
bersyarat atau contional algorithm terdapat pada langkah ke 6. Apabila air
sudah mendidih, lalu matikan kompor. Sehingga apabila air tersebut belum
mendidih, maka kompor tidak dimatikan.
Merancang Algoritma yang Baik
Menurut Donald
E. Knuth, dari pengertian algoritma diatas dapat diketahui bahwa sebuah
algoritma yang baik yaitu algoritma yang mempunyai kriteria sebagai berikut :
Masukan (Input)
Algoritma
mempunyai input 0 (nol) atau lebih
Keluaran (Output)
Algoritma harus
menghasilkan atau mengeluarkan minimal 1 output.
Terbatas (Finite)
Algoritma harus
berhenti setelah melakukan langkah-langkah yang diperlukan.
Pasti (Definite)
Algoritma harus
jelas kapan dimulai dan berakhir. Tujuan dari algoritma harus jelas. Setiap
langkah-langkah harus dijelaskan dengan jelas.
Efisien
Membuat sebuah
algoritma haruslah efisien. Adanya langkah seperti mencari hasil 1 + 0 tidak
efisien. Hal ini karena bilangan apapun itu jika ditambah dengan nol maka
hasilnya ialah bilangan itu sendiri. Sehingga adanya langkah seperti itu tidak
perlu dimasukkan ke dalam sebuah algoritma.
Algoritma
dapat disajikan ke dalam 2 bentuk, yaitu bentuk tulisan atau bahasa dan bentuk
gambar. Penyajian algoritma dalam bentuk bahasa atau tulisan harus memakai
sebuah bahasa yang dapat untuk dimengerti manusia dalam membuat langkah-langkah
dari algoritma itu sendiri. Penyajian algoritma dalam bentuk tulisan/bahasa
dapat dilakukan dengan memakai pseudocode. Pseudocode berasal dari
"pseudo" aritnya "menyerupai atau mirip" dan
"code" yaitu "kode program". Contoh dari beberapa bahasa
pemrograman yang sering digunakan untuk menyatakan pseudocode antara lain : pascal,
BASIC, Pascal, C, dan lain sebagainya. Terdapat juga penyajian algoritma yang
dalam bentuk gambar disebut flow chart.
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.
Itulah artikel yang saya berikan kepada kalian semoga
artikel ini ber manfaat..

EmoticonEmoticon