Dalam matematika dan komputasi, Algoritma atau Algoritme merupakan
kumpulan perintah untuk menyelesaikan suatu masalah. Perintah perintah ini dapat
diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada criteria kondisi awal yang harus dipenuhi sebelum menjalankan Algoritma. Algoritma
akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria.
Algoritma
sering mempunyai langkah pengulangan (iterasi) atau memerlukan
keputusan (logika Boolean dan perbandingan) sampai
tugasnya selesai. Algoritma secara sederhana
dapat diartikan sebagai urutan langkah-langkah logis untuk menyelesaikan masalah
yang disusun secara sistematis. Misalkan saja “Algoritma aktifitas pagi hari ini
sebelum berangkat kuliah” yaitu (1) turun dari tempat tidur,(2) mandi,(3)
berpakaian,(4) makan pagi, (5) pergi kuliah. Jadi perlu diingat bahwa Algoritma
tidak hanya diterapkan pada dunia komputasi, tetapi juga Algoritma diterapkan dalam
kehidupan sehari-hari.
Terdapat
beragam klasifikasi Algoritma dan setiap klasifikasi mempunyai alas
an tersendiri.Salah satu cara untuk melakukan klasifikasi jenis-jenis Algoritma
adalah dengan memperhatikan paradigma dan metode yang digunakan untuk mendesain
Algoritma tersebut. Beberapa paradigma yang digunakan dalam menyusun suatu Algoritma
akan dipaparkan dibagian ini. Masing-masing paradigm dapat digunakan dalam banyak
Algoritma yang berbeda.
A. Divide and Conquer, paradigm
untuk membagi suatu permasalahan besar menjadi permasalahan-permasalahan
yang lebih kecil. Pembagian masalah ini dilakukan terus menerus sampai ditemukan
bagian masalah kecil yang mudah untuk dipecahkan. Singkatnya menyelesaikan keseluruhan
masalah dengan membagi masalah besar dan
kemudian memecahkan permasalahan-permasalahan kecil yang terbentuk.
B. Dynamic programming, paradigm
pemrograman dinamika akan sesuai jika digunakan pada suatu masalah yang
mengandung sub-struktur
yang optimal dan mengandung beberapa bagian
permasalahan yang tumpang tindih . Paradigma ini sekilas terlihat
mirip dengan paradigma Divide and Conquer,
sama-sama mencoba untuk membagi permasalahan menjadi sub permasalahan yang
lebih kecil, tapi secara intrinsic ada perbedaan dari karakter permasalahan
yang dihadapi.
C. Metode Serakah. Sebuah Algoritma serakah mirip
dengan sebuah Pemrograman dinamik,
bedanya jawaban dari sub masalah tidak perlu diketahui dalam setiap tahap dan
menggunakan pilihan "serakah" apa yang dilihat terbaik pada saat itu.
D. Kompleksitas dari
suatu Algoritma merupakan ukuran seberapa banyak komputasi yang
dibutuhkan Algoritma tersebut untuk menyelesaikan masalah. Secara informal,
Algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki
kompleksitas yang rendah, sementara Algoritma yang membutuhkan waktu lama untuk
menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.
Jadi
intinya, Pengertian Algoritma adalah suatu langkah/urutan yang logis dan
sistematis untuk pemecahan suatu masalah atau untuk mencapai tujuan yang diinginkan.
2. Tahap Pengembangan Algoritma
Tahap-tahap pengembangan Algoritma
antara lain:
a. Defenisi Masalah;
b. Membuat Model;
c. Rancangan Algoritma;
d. Tulis Program;
e. Compile, apabila terjadi
“Compile Error” atau “Sintak Error” kita dapat melakukan pengecekan ulang
(perbaikan) pada tahap menulis program. Jika tidak terjadi “Compile Error” atau
“Sintak Error” maka lanjut pada tahap selanjutnya;
f. Executable code:
=>Run, apabila terjadi error maka kita dapat melakukan pengecekan ulang
(perbaikan) pada tahap menulis program, merancang algoritma, membuat model,
atau pada tahap mendifinisikan masalah. Jika tidak terjadi error maka lanjut
pada tahap selanjutnya;
g. Dokumentasi
- Penyajian Algoritma
Algoritma
dapat disajikan dengan menggunakan banyak cara, diantaranya:
a. Structure
English
Penyajian
Algoritma dengan Structure English dilakukan dengan menyusun uraian kata yang menggunakan
bahasa Inggris atau dengan bahasa lain, misalnya bahasa Indonesia. Algoritma dengan
Structure English dapat ditulis dengan menggunakan huruf besar di awal kalimat
dan selanjutnya dengan huruf kecil, atau dengan menggunakan huruf besar seluruhnya.
Untuk memperjelas dapat ditambahkan nomor urut untuk setiap langkah yang ada.
Karena menggunakan bahasa yang sehari-hari digunakan manusia, maka penyajian Algoritma
dengan Bahasa alamiah dapat dipahami oleh pembaca yang belum memahami Bahasa pemrograman,
misalnya pemakai sistem.
b. Pseudocode
(sandi semu)
Penulisan
sandi semu menggunakan simbol-simbol perintah yang mirip dengan yang
menggunakan di dalam bahasa pemrograman. Pseudocode berasal dari kata pseudo
yang berarti mirip atau menyerupai, dan code yang berarti program. Pseudocode
ditulis dengan menggunakan huruf besar, sedangkan variable atau komentar ditulis
dengan menggunakan huruf kecil. Untuk memperjelas struktur Algoritma, digunakan
tabulasi yang berbeda untuk penulisan sandi semu yang berada dalam kalang
(loop) atau struktur kondisional. Dengan penulisan sandi semu mirip dengan penulisan
program, maka Algoritma yang ditulis dengan sandi semu lebih tepat digunakan untuk
mengkomunikasikan Algoritma kepada pemrogram.
c. Flowchart
Bagan
alir (flowchart) adalah suatu bagian yang menggambarkan arus logika dari data
yang akan diproses dalam suatu program dari awal sampai akhir .Jenis-jenis
flowchart adalah sebagai berikut:
1) Program Flowchart
Simbol-simbol
yang menggambarkan proses secara rinci dan detail antara instruksi yang satu dengan
iunstruksi yang lainnya di dalam suatu program komputer yang bersifat logik
(software).
2) Sistem
Flowchart
Simbol-simbol
yang menggambarkan urutan prosedur secara detail di dalam suatu system komputerisasi
dan bersifat fisik (hardware).
terimakasih atau penjelasnya min
BalasHapussemoga bermanfaat yaa
Hapus