Perbedaan Algoritma, Program dan Bahasa Pemrograman

Perbedaan Algoritma, Program dan Bahasa Pemrograman


Algoritma

Kata ‘algoritma’ diturunkan dari nama belakang seorang tokoh
matematikawan 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 alat
bantu 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.


Contoh Penggunaannya : 
Flowchart


Pseudocode

Skema lain yang dapat digunakan untuk menyusun algoritma adalah
pseudocode. 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:


Pseudocode


Program

Program adalah formulasi sebuah algoritma dalam bentuk bahasa
pemrograman, 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 untuk
mengendalikan 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 hanya
bisa dipahami oleh mikroprosesor.


2. Second Generation Language (2GL)

Bahasa pada generasi ini adalah assembly language, dimana bahasa
ini 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 supaya
mudah 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 untuk
mengurangi 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 constraintprogramming
atau 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 lebih
banyak 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.
Komentar Facebook
1 Komentar Blogger

1 komentar:

Write komentar
Anonymous
AUTHOR

wahh terimakasih artikelnya bermanfaat

Balas
avatar

Post a Comment