Algoritma
Kata ‘algoritma’ diturunkan dari nama belakang seorang tokohmatematikawan Persia bernama Muhammad ibn Musa al-Khuwarizmi (lahir
tahun 730an, meninggal antara tahun 835 dan 850). Al-Khuwarizmi berasal
dari propinsi Khorasan di negara yang saat ini bernama Uzbekistan. Uni
Soviet menghormati jasa-jasa Al-Khuwarizmi dengan membuat gambar dirinya
sebagai perangko.
Algoritma merupakan metode umum yang digunakan untuk
menyelesaikan kasus-kasus tertentu. Dalam menuliskan algoritma, dapat
digunakan bahasa natural atau menggunakan notasi matematika, sehingga
masih belum dapat dijalankan pada komputer.
Dalam kehidupan sehari-hari, kita sudah melakukan penyusunan
algoritma untuk menyelesaikan permasalahan atau tantangan yang dihadapi.
Sebagai contoh, pada saat diminta untuk membuat telur dadar. Sebelum
membuat algoritmanya, kita perlu mendefinisikan masukan (input) dan luaran
(output) terlebih dahulu, dimana input berupa telur mentah, dan output
berupa telur dadar yang sudah matang.
Susunan algoritmanya sebagai berikut:
1. Nyalakan api kompor
2. Tuangkan minyak ke dalam wajan
3. Pecahkan telur ayam ke dalam mangkok
4. Tambahkan garam secukupnya
5. Aduk campuran telur dan garam
6. Tuang adonan telur ke dalam wajan
7. Masak telur hingga matang
Algoritma akan lebih baik jika ditulis secara sistematis menggunakan
beberapa skema, Flowchart dan
Pseudocode.
Flowchart
Dalam membuat algoritma, diperlukan suatu mekanisme atau alatbantu untuk menuangkan hasil pemikiran mengenai langkah-langkah
penyelesaian masalah yang sistematis dan terurut. Pada dasarnya untuk bisa
menyusun solusi diperlukan kemampuan problem-solving yang baik.
Oleh karena itu, sebagai sarana untuk melatih kemampuan tersebut terdapat
sebuah tool (alat) yang dapat digunakan, yakni flowchart.
Secara formal, flowchart didefinisikan sebagai skema penggambaran dari algoritma atau proses.
Dengan menggunakan flowchart, tahapan-tahapan penting dalam
algoritma dapat ditunjukkan dengan diagram di atas. Aliran proses ditunjukkan
dengan arah panah atau disebut dengan ’flowlines’.
Keuntungan menggunakan flowchart adalah penggunaan diagram
untuk menggambarkan tahapan proses, sehingga lebih mudah dilihat dan
dipahami. Namun demikian, flowchart juga memiliki kelemahan, yakni jika
digunakan untuk menggambarkan proses atau algoritma untuk skala kasus
yang besar, maka akan dibutuhkan banyak kertas.
Pseudocode
Skema lain yang dapat digunakan untuk menyusun algoritma adalahpseudocode. Pseudocode adalah bentuk informal untuk mendeskripsikan
algoritma yang mengikuti struktur bahasa pemrograman tertentu.
Tujuan dari penggunaan pseudocode adalah supaya :
1. lebih mudah dibaca oleh manusia
2. lebih mudah untuk dipahami
3. lebih mudah dalam menuangkan ide/hasil pemikiran
Pseudocode sering digunakan dalam buku-buku tentang ilmu komputer
ataupun publikasi ilmiah untuk menjelaskan urutan proses atau metode
tertentu. Seorang programer yang ingin yang ingin menerapkan algoritma
tertentu, terutama yang kompleks atau algoritma baru, biasanya akan
memulainya dengan membuat deskripsi dalam bentuk pseudocode. Setelah
pseudocode tersebut jadi, maka langkah selanjutnya hanya tinggal
menterjemahkannya ke bahasa pemrograman tertentu. Pseudocode ini biasnya
disusun dalam bentuk yang terstruktur dengan pendekatan sekuensial
(berurutan) dari atas ke bawah.
Algoritma yang menjelaskan tentang proses membuat telur dadar,
sebenarnya sudah menerapkan penggunaan pseudocode. Sesungguhnya tidak
ada suatu standar untuk menyusun algoritma menggunakan pseudocode.
Oleh karena pseudocode lebih cocok digunakan untuk menyusun
algoritma dengan kasus yang besar dan kompleks, maka sangat dianjurkan
kepada programer pemula untuk mulai menggunakan pseudocode dalam
menyelesaikan masalah. Berikut adalah contoh pseudocode yang dibandingkan
dengan bahasa pemrograman C++.
Contoh Penggunaannya:
Program
Program adalah formulasi sebuah algoritma dalam bentuk bahasapemrograman, sehingga siap untuk dijalankan pada mesin komputer.
Membuat program seperti memberitahukan apa yang harus dilakukan kepada
orang lain. Sebagai contoh, pada saat kita memberitahukan algoritma
membuat telur dadar kepada orang lain, kita sudah melakukan pemrograman.
Pemrograman membuat telur dadar kepada orang lain akan lebih
mudah karena orang tersebut sudah mengetahui apa itu telur dadar. Pada
langkah yang ke-3 diminta untuk memecahkan telur, bagaimana cara orang
tersebut memecahkan telur tentunya sudah diketahui dan kita tidak perlu
menjelaskan terlalu detil.
Lain halnya jika kita harus menyuruh komputer untuk melakukan apa
yang kita inginkan. Komputer sebenarnya hanyalah sebuah mesin bodoh yang
tidak memiliki emosi dan kemampuan bersosialisasi. Oleh karena itu, untuk
membuatnya menjadi mudah, diperlukan penyusunan algoritma yang benar.
Mendesain algoritma yang benar dan menterjemahkannya ke dalam
bahasa pemrograman bukanlah hal yang mudah karena bahasa pemrograman
memiliki tata penulisan sendiri.
Bahasa Pemrograman
Bahasa pemrograman adalah bahasa buatan yang digunakan untukmengendalikan perilaku dari sebuah mesin, biasanya berupa mesin
komputer, sehingga dapat digunakan untuk memberitahu komputer
tentang apa yang harus dilakukan.
Struktur bahasa ini memiliki kemiripan dengan bahasa natural manusia,
karena juga tersusun dari elemen-elemen dasar seperti: kata benda dan kata
kerja serta mengikuti aturan untuk menyusunnya menjadi kalimat.
Klarifikasi Menurut Generasi
1. First Generation Language (1GL)
Bahasa pemrograman ini berupa kode-kode mesin yang hanyabisa dipahami oleh mikroprosesor.
2. Second Generation Language (2GL)
Bahasa pada generasi ini adalah assembly language, dimana bahasaini masih menggunakan kode-kode yang disebut dengan
mnemonic. Bahasa assembly disebut sebagai generasi kedua karena
bahasa ini bukan bahasa asli mikroprosesor, meskipun begitu
programer tetap harus mengetahui keunikan dari masing-masing
mikroprosesor (register dan jenis instruksi).
3. Generasi ketiga
Bahasa pemrograman generasi ketiga sengaja didesain supayamudah dipahami oleh manusia. Pada generasi ini mulai dikenalkan
istilah variabel, tipe data, ekspresi aljabar dan sudah mendukung
pemrograman terstruktur.
Contoh bahasa: FORTRAN, COBOL, ALGOL, BASIC, C, C++,
Pascal, Java.
4. Generasi keempat
Pada generasi ini, bahasa pemrograman didesain untukmengurangi effort dan mempercepat proses pembuatan program.
Pada 3GL, pembuatan program membutuhkan waktu yang lama
dan mudah sekali didapati error. Pada 4GL, telah menggunakan
metodologi dimana sebuah perintah dapat menghasilkan beberapa
instruksi 3GL yang kompleks dengan sedikit error.
Contoh bahasa:
a. Pemrograman umum : DataFlex, WinDev, PowerBuilder
b. Basis data : SQL, Progress 4GL
c. Manipulasi data, analisis dan pelaporan : ABAP, Matlab,
PL/SQL.
5. Generasi kelima
Bahasa pemrograman generasi kelima disebut sebagai constraintprogrammingatau declarative-programming. Program tidak
dituliskan dalam bentuk algoritma melainkan dituliskan batasan
atau fakta dari sebuah lingkup masalah, sehingga program akan
menghasilkan luaran dalam bentuk solusi[5].
Bahasa pemrograman ini digunakan untuk membangun sistem
kecerdasan buatan dan belum digunakan secara meluas di dunia
industri. Contoh bahasa: Prolog, LISP, Mercury.
Klarifikasi Menurut Tingkatan
1. Low-level programming language
Tingkat bahasa pemrograman ini disebut ”rendah” (low level)bukan karena posisinya berada di bawah, melainkan karena
kurangnya abstraksi (penggambaran kode instruksi) antara bahasa
natural dengan bahasa mesin. Oleh karena itu, bahasa di tingkat
ini sering disebut sebagai ’bahasa mesin’.
Bahasa pemrograman yang masuk kategori ini adalah bahasa
mesin itu sendiri (1GL) dan bahasa assembly (2GL).
2. High-level programming language (HLL)
Bahasa pemrograman di tingkat ini memiliki abstraksi yang lebihbanyak dan terdapat kemiripan dengan bahasa natural (bahasa
Inggris), lebih mudah untuk digunakan dan mudah untuk
dipindahkan antar platform.
3. Very high-level programming language (VHLL)
Bahasa ini memiliki abstraksi yang lebih tinggi dibandingkan HLL,dan digunakan untuk menunjang produktifitas programer
profesional. Biasanya VHLL digunakan hanya untuk tujuan yang
spesifik, misalnya untuk keperluan bisnis: mengolah data,
membuat laporan, dsb.
