BAB 1
Algoritma & 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 [1]. 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, dalam buku ini akan dibahas mengenai
skema Flowchart dan Pseudocode.
Program
Program adalah formulasi sebuah algoritma dalam
bentuk bahasa pemrograman[1], 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[2], sehingga dapat digunakan untuk memberitahu komputer tentang apa
yang harus dilakukan[3].
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.
Klasifikasi 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[4].
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
constraint-programming 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.
Klasifikasi 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.
Paradigma Pemrograman
Paradigma pemrograman merupakan sebuah cara pandang seorang programmer
dalam menyelesaikan sebuah masalah dan
memformulasikannya kedalam sebuah bahasa pemrograman. Terdapat beberapa
paradigma pemrograman, antara lain:
Paradigma Imperatif
Inti dari paradigma ini adalah menjalankan sebuah urutan perintah, jalankan
satu perintah kemudian jalankan perintah yang selanjutnya. Sebuah program
imperatif tersusun dari sekumpulan urutan perintah yang akan dijalankan oleh
komputer. Pemrograman prosedural merupakan salah satu contoh dari paradigma
ini, dan seringkali dianggap sebagai sebuah sebuah paradigma yang sama.
·
Ide dasarnya adalah dari model komputer Von Neumann.
·
Eksekusi langkah-langkah komputasi diatur oleh
sebuah struktur kontrol.
·
Berdasarkan urutan-urutan atau sekuensial.
·
Program adalah suatu rangkaian
prosedur untuk memanipulasi data. Prosedur merupakan kumpulan instruksi yang
dikerjakan secara berurutan.
·
Contoh bahasa pemrograman: Fortran, Algol, Pascal,
Basic, C
Paradigma
Fungsional
Pemrograman Fungsional adalah sebuah paradigma yang menjadikan fungsi
matematika sebagai penentu dalam eksekusi komputasi. Fungsi tersebut merupakan
dasar utama dari program yang akan dijalankan. Paradigma ini lebih banyak
digunakan di kalangan akademis daripada produk komersial, terutama yang murni
fungsional.
- Ide dasar dari matematika
dan teori fungsi.
- Beberapa contoh
bahasa fungsional adalah APL, Erlang, Haskell, Lisp, ML, Oz dan Scheme.
Paradigma
Logika
Umumnya digunakan pada domain yang berhubungan dengan ekstraksi
pengetahuan yang berbasis kepada fakta dan relasi. Dalam paradigma ini, logika
digunakan secara murni untuk representasi bahasa deklaratif yang kebenarannya
ditentukan oleh programmer, sedangkan pembukti-teorema atau model pembangkit
digunakan sebagai pemecah masalah.
- Berasal dari
pembuktian otomatis didalam intelegensia buatan.
- Berdasar kepada
aksioma, aturan dan query.
- Eksekusi program
menjadi proses pencarian secara sistematik dalam sekumpulan fakta, dengan
menggunakan sekumpulan aturan.
- Beberapa contoh
bahasa pemrograman: ALF, Fril, Gödel,
Mercury, Oz, Ciao, Visual Prolog, XSB, and λProlog
Paradigma Berorientasi Obyek
Pemrograman berorientasi obyek muncul untuk
mengatasi masalah kompleksitas dari sebuah perangkat lunak sehingga kualitas
dari perangkat lunak tersebut dapat dikelola dengan lebih mudah. Caranya adalah
dengan memperkuat modularity dan reusability didalam perangkat lunak
tersebut. Pemrograman berorientasi obyek menggunakan obyek dan interaksi antar
obyek dalam penyusunan sebuah perangkat lunak. Paradigma ini semakin banyak
digunakan karena lebih mudah dalam menggambarkan kondisi yang ada pada dunia
nyata.
Ide dari interaksi antar obyek yang ada pada dunia nyata.
Antar obyek saling berinteraksi dengan saling mengirimkan pesan (message).
Terdapat beberapa karakteristik utama, yaitu: Abstraksi, Enkapsulasi,
Pewarisan dan Polimorfisme.
0 komentar:
Post a Comment