1. Definisi Alogaritma
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 kriteria
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 alasan 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 paradigma dapat digunakan dalam banyak Algoritma yang berbeda.
1. Divide and Conquer,
paradigma 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 denganmembagi masalah besar dan
kemudian memecahkan permasalahan-permasalahan kecil yang terbentuk.
2. Dynamic programming,
paradigma pemrograman dinamik 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 intrinsik ada perbedaan dari karakter permasalahan
yang dihadapi.
3. Metode Serakah. Sebuah Algoritma serakah mirip
dengan sebuah Pemrograman dinamik,
bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap tahap dan
menggunakan pilihan “serakah” apa yang dilihat terbaik pada saat itu.
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:
1. Defenisi Masalah;
2. Membuat Model;
3. Rancangan Algoritma;
4. Tulis Program;
5. 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;
6. Executable code: =>Run,
apabila terjadi error maka kita dapat melakukan pengecekan ulang (perbaikan)
pada tahap menulis program, merancang algoritma, membuat model, atau pada tahap
mendifinidikan masalah. Jika tidak terjadi error maka lanjut pada tahap
selanjutnya;
7. Dokumentasi
3. Penyajian Algoritma
Algoritma
dapat disajikan dengan menggunakan banyak cara, diantaranya:
1. 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.
2. 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 variabel 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.
Flowchart
Bagan
alir (flowchart) adalah suatu bagan 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).
Simbol-simbol yang menggambarkan urutan
prosedur secar detail di dalam suatu sistem komputerisasi dan bersifat fisik
(hardware).
Tidak ada komentar:
Posting Komentar