A.
Asal Usul Algoritma
Para
ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama
penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa
Al-Khuwarizmi. Alkhuwarizmi dibaca orang barat menjadi algorism. Al-Khuwarizmi
menulis buku berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku Pemugaran
dan Pengurangan” (The Book Restoration and Reduction). Dari buku itu memperoleh
kata Aljabar (Algebra) biasa disebut Arithmetic, dalam bahasa indonesia diserap
menjadi Algoritma.
B.
Definisi Algoritma
·
Prosedur :
Himpunan hingga instruksi, yg bersifat
diskrit dan jelas, serta dapat dijalankan secara mekanik. Secara mekanik
maksudnya dapat dibuat program komputer.
·
Semi- Algoritma :
Adalah prosedur yang mampu menghasilkan
pemecahan atau solusi masalah, bila solusi memang ada, dan kemudian berhenti.
·
Algoritma :
Semi algoritma yang mampu mendeteksi tidak adanya
solusi, bila solusi memang tidak ada, dan mampu untuk berhenti, suatu susunan
langkah-langkah instruksi untuk menyelesaikan masalah.
Dari
definisi diatas bisa diambil kesimpulan bahwa :
“Algoritma
adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara
sistematis dan logis”. Kata logis merupakan kata kunci
dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat
ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah
spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan
dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya
algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang
diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran
yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik.
Sedangkan
Pemrograman
Segala
kegiatan pembuatan program komputer. Bahasa pemrograman yang
berarti bahasa yang digunakan dalam pembuatan program komputer.
Definisi
Pemrograman : Adalah kumpulan instruksi-instruksi tersendiri biasanya disebut
source code yang dibuat oleh programmer (pembuat program).
Struktur
Dasar Dari Algoritma
Algoritma
berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut
dapat berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan
aksi (iteration) atau kombinasi dari ketiganya. Jadi struktur dasar pembangunan
algoritma ada tiga, yaitu:
·
Struktur Runtunan, Digunakan
untuk program yang pernyataannya sequential atau urutan.
·
Struktur Pemilihan, Digunakan
untuk program yang menggunakan pemilihan atau penyeleksian kondisi.
·
Struktur Perulangan, Digunakan
untuk program yang pernyataannya akan dieksekusi berulang-ulang.
Dalam
Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman
tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa
pemrograman apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh
bahasa pemrograman manapun.
C.
KRITERIA ALGORITMA
Terdapat
5 (lima) kriteria untuk algoritma dapat dikatakan baik (knuth), yaitu meliputi:
- Masukan(input)
tanpa ada input maka
proses dalam algoritma tidak akan jalan, artinya sebuah algoritma harus
memiliki data untuk sebuah proses sebagai masukan.
- Keluaran (Output)
ditinjau dari
pengertian algoritma di atas maka sebuah algoritma harus memiliki minimal
keluaran sebagai tujuan, tanpa ada keluaran yang pasti tujuan dari algoritma
tidak bisa dicapai untuk digunakan sebagai solusi permasalahan.
- Batasan
karena orientasi
algoritma pada tujuan maka harus ada batasan dalam mencari solusi, jika hal ini
diabaikan maka algoritma akan berpeluang untuk tidak mencapai pada tujuan
berupa keluaran yang diinginkan. Untuk algoritma terbuka artinya tanpa adanya
batasan maka akan tampak berupa algoritma yang tidak logis dan tidak sistematis
serta sulit untuk dimengerti.
- Arah
algoritma harus
memiliki kejelasan arah guna mencapai tujuan yang diinginkan, arah dari sebuah
algoritma harus diawali dan harus diakhiri, memiliki kejelasan logika dan
tahapan sekuensial sehingga didapatkan sebuah hasil berupa keluaran algoritma
terkait dengan tujuan.
- Efisiensi
algoritma harus
memiliki efisiensi yang tinggi, artinya tidak merupakan penyelesaian yang
abstrak (imajiner) atau bukan angan-angan tetapi lebih merupakan solusi riil
guna menyelesaikan suatu masalah. Disini mengandung pengertian untuk tidak
melakukan hal-hal yang tidak perlu atau cara memutar-mutar tanpa mengarah pada
keluaran sebagai tujuan yang diharapkan.
D.
PENULISAN ALGORITMA
Untuk
menyajikan Algoritma terdapat kesepakatan dalam bidang pemrograman peralatan
elektronik, yaitu dapat dinyatakan dalam bentuk:
Menggunakan
bahasa natural dalam bentuk narasi seperti contoh di atas.
Menggunakan
diagram alir (flow chart)
Adapun
cara penyajian algoritma, adalah sebagai berikut:
- Penulisan
Algoritma Menggunakan Bahasa Natural
Untuk
penyajian algoritma menggunakan bahasa natural dalam bentuk narasi, dan sebagai
contoh penulisannya dapat dilihat pada contoh permasalahan di atas.
- Diagram Alir (Flow
Chart)
Flowchart adalah
algoritma penyelesaian suatu masalah yang diwujudkan dalam bentuk penggambaran
bagan, dimana dalam bagan tersebut memiliki kandungan aliran data yang lebih
menggambarkan langkah-langkah penyelesaian suatu masalah. Terdapat 2(dua)
penggambaran Flowchart yaitu System Flowchart dan Program Flowchart.
Flowchart dapat
digunakan untuk menggambarkan perilaku suatu algoritma (dengan menggunakan
gambar-gambar atau tanda-tanda yang sesuai) Bila suatu flowchart lengkap telah
selesai dikerjakan, gambaran lengkap tentang proses pemikiran seorang
programmer dalam memecahkan suatu masalah dapatlah diikuti. Peranan flowchart
sangat penting terutama pada pemeriksaan program. Flowchart yang merupakan bagian penting dalam suatu
program yang telah selesai juga dapat membantu orang lain dalam memahami
algoritma yang tepat yang dibuat programmer.
Ada
dua jenis flowchart, yaitu:
- Flowchart sistem
: menunjukkan jalannya program secara umum.
- Flowchart terperinci
: rincian (detail) yang dibutuhkan programer.
Biasanya
suatu program yang rumit didahului dengan flowchart sistem,
lalu dilengkapi pula dengan. flowchart terperinci. Keuntungan
dari flowchart ialah dapat menunjukkan urutan langkah-langkah
dengan menggunakan simbol anak panah.
- Flowchart Sistem
Digunakan
untuk menggambarkan aliran data atau informasi secara garis besarnya yang
melewati suatu tahapan proses dalam sebuah sistem dengan menunjukkan media yang
digunakan dalam sistem. Seperti media input, output maupun media penyimpanan
dalam proses pengolahan data.
Adapun
simbol yang digunakan meliputi:
Gambar
1. Simbol flowchart sistem
2.
Flowchart Program
Digunakan
untuk menggambarkan aliran data atau informasi secara rinci yang melewati suatu
tahapan proses dengan menunjukkan tahapan penyelesaian permasalahan untuk
mendapatkan hasil sesuai tujuan yang diharapkan.
Gambar
2. Simbol Flowchart Umum
Sebuah flowchart minimal
umumnya terdiiri dari simbol mulai yang menggambarkan bahwa sebuah algoritma
dimulai, dilanjutkan dengan masukan data, selanjutnya data diproses kemudian
hasil proses dikeluarkan dan diakhiri dengan simbol akhir dari aliran program.
Gambar
3 adalah contoh flowchart sederhana penyelesaian bertahap
untuk menghitung luas sebuah bangun segi empat, dimana bangun tersebut memiki
panjang = p dan lebar = l, dimana luas = p x l :
Menghitung
luas bangun ternyata tidak hanya sebuah bangun yang bisa dilakukan dalam
program, dengan menambahkan menu pilihan ternyata dapat dipilih untuk
menghitung beberapa luas bangun dari bidang tertentu.
Jika
sebuah algoritma membutuhkan alternatip pilihan maka dibutuhkan simbol
percabangan, sebagai contoh sebuah sistem program harus melakukan layanan
perhitungan luas bangun segi empat, luas bangun segi tiga dan luas bangun
lingkaran.
Gambar
3. Flowchart Sederhana (menghitung luas)
Dengan
demikian maka terdapat pilihan alternatip (gambar 4), jika dipilih 1 maka
digunakan untuk menghitung luas bidang segi empat, untuk pilihan 2 digunakan
menghitung luas bangun segi tiga dan untuk pilihan 3 digunakan untuk menghitung
luas bangun lingkaran, maka flowchart-nya dapat digambarkan sebagai
berikut:
Gambar
4 Simbol Flowchart Program Pilihan
Aliran
program dimulai, kemudian memberi kesempatan pada user untuk memberikan masukan
berupa angka 1 atau angka 2 atau angka 3, jika angka tersebut adalah 1 maka
akan diteruskan pada proses menghitung luas bangun segi empat.
Jika
ternyata angka yang diberikan adalah 2 maka akan diteruskan pada proses
menghitung luas bangun segi tiga, dan juika ternyata angka yang diberikan
adalah 3 maka akan diteruskan pada proses menghitung luas bangun lingkaran.
Suatu
saat dibutuhkan sebuah algoritma untuk menggambarkan suatu proses yang
berulang, misal pada suatu program dibutuhkan sebuah rutin yang berfungsi
sebagai penghitung (counter). Untuk itu flowchartnya dapat digambarkan sebagai
berikut:
Gambar
5. Flowchart Untuk Proses Diulang
Dalam
membuat algoritma untuk pemrograman mikroprosesor dalam bahasa asembler
biasanya notasi yang digunakan dalam flowchart menggunakan kode-kode, berikut
contoh flowchart dengan notasi kode:
Gambar
6. Flowchart Dengan Notasi Kode Program.
Sumber
Referensi :