2. Istilah-istilah
Program adalah kata, ekspresi, pernyataan atau kombinasi yang
disusun dan dirangkai menjadi satu kesatuan prosedur yang menjadi
urutan langkah untuk menyesuaikan masalah dan diimplementasikan
dengan bahasa pemrograman.
Bahasa pemrograman merupakan prosedur atau tata cara
penulisan program. Dalam bahasa pemrograman, terdapat dua
faktor penting yaitu sintaksis dan semantik.
Sintak adalah aturan-aturan gramatikal yang mengatur tata cara
penulisan kata, ekspresi dan pernyataan sedangkan semantik
adalah aturan-aturan untuk menyatakan suatu arti.
Contoh : Write, Read
Pemrograman merupakan proses mengimplementasikan urutan
langkah-langkah untuk menyelesaikan suatu masalah dengan
bahasa pemrograman.
Pemrogram (programmer) adalah orang yang membuat program.
3. Bahasa Pemrograman
Notasi algoritma nantinya dapat dituangkan ke
dalam bahasa pemrograman apapun, dengan
kata lain algoritma bersifat independen.
Belajar bahasa pemrograman tidak sama
dengan belajar algoritma.
Belajar logika pemrograman
Belajar bahasa pemrograman
4. Sejarah Perkembangan Bahasa
Pemrograman
50an - 60an :
Bahasa tingkat tinggi awal : FORTRAN, COBOL,
ALGOL60.
Bahasa berbasis matematika : LISP, APL, SNOBOL.
General-purpose language : PL/1.
Bahasa tingkat tinggi : Algol68, SIMULA67, BASIC.
70an
Pemrograman terstruktur : Pascal
Systems programming : C, modula-2
Logical programming: Prolog
Functional programming: Scheme
5. 5
A short history of programming
languages (cont.)
80s:
Development of functional programming: ML, Miranda
Need for reliability and maintainability: Ada
Object-oriented programming: Smalltalk, C++
90s:
Fourth-generation languages
Productivity tools (such as spreadsheets)
Visual languages : Delphi
Scripting languages : Perl
Expert systems shells
Network computing : Java
6. Sejarah Perkembangan Bahasa
Pemrograman
80an :
Pengembangan functional programming : ML,
Miranda
Object-oriented programming: Smalltalk, C++
90an
Fourth-generation languages
Productivity tools (such as spreadsheets)
Visual languages : Delphi, VB
Scripting languages : Perl
Expert systems shells
Network computing : Java
7. Evolusi Bahasa Pemrograman
Ditinjau dari segi kemudahan
pemakaian dan interaksi dengan
perangkat keras, bahasa
pemrograman dibagi menjadi 4
generasi :
1. Bahasa Mesin (1st Generation
Language)
2. Bahasa Assembly (2nd
Generation Language)
3. Bahasa Tingkat Tinggi (3th
Generation Language)
4. 4-GL (4th Generation
Language)
Bahasa Generasi 1
Bahasa Mesin
Bahasa Generasi 2
Bahasa Rakitan
Bahasa Generasi 3
Bahasa prosedural
(ADA, Basic, C, Cobol, dll)
Bahasa Generasi 4
Bahasa nonprosedural
(Oracle,NOMAD, dll)
8. Bahasa Mesin (1st GL)
Bahasa pemrograman sudah muncul pada era
1940, bahasa yang digunakan pada masa itu
dikenal dengan nama bahasa mesin (machine
language)
Bahasa mesin (first generation languages)
merupakan sederetan kode biner (0 dan 1)
yang dapat dimengerti oleh perangkat keras.
Perangkat keras yang berbeda akan memiliki
kode mesin yang berbeda pula. Contohnya :
Komputer IBM menggunakan bahasa mesin
yang berbeda dengan Komputer Apple
9. Bahasa Assembly (2nd GL)
Second Generation Languages muncul pada
era 1950, lebih mudah digunakan dibandingkan
dengan bahasa mesin namun masih sangat
“complicated”
2-GL dikenal juga dengan bahasa Assembly
Karena komputer hanya mengerti bahasa
mesin, maka kode yang ditulis dalam Assembly
harus ditranslasikan ke dalam bahasa mesin
Kode diterjemahkan menjadi bahasa mesin
dengan menggunakan translator yang disebut
assembler
11. Bahasa Tingkat Tinggi(3thGL)
Merupakan bahasa pemrograman yang dekat
dengan bahasa manusia.
Sebelum dijalankan, program harus di-compile
terlebih dahulu
Kelebihan :
Mudah dalam baca, tulis maupun diperbarui.
Menyediakan lingkungan yang lebih user
friendly.
Bersifat portable, artinya kode yang
dihasilkan untuk suatu sistem dapat
ditranslasikan agar dapat digunakan untuk
sistem lain.
12. 4-GL
4-GL lebih mendekati bahasa manusia
sehingga lebih mudah digunakan dibandingkan
3-GL.
Ditulis dalam text-based environment, bahkan
ada yang menyediakan visual environtment
bagi programmer untuk membuat program.
Contoh 4-GL
Berbasis teks (biasa digunakan untuk
mengakses database) : SQL
Berbasis visual : Visual Basic (VB), VisualAge
13. Klasifikasi Bahasa Pemrograman
Berdasarkan aplikasi kegunaannya :
1. Bahasa pemrograman bertujuan khusus
Contoh : Cobol (adm bisnis), Fortran (komputasi
ilmiah), Prolog (Artificial Intelligent)
2. Bahasa pemrograman bertujuan umum
Contoh : Pascal, Basic, C, C++
Berdasarkan notasi kedekatan ke mesin :
1. Bahasa tingkat rendah : sulit dimengerti oleh
manusia
Contoh : bahasa mesin
2. Bahasa tingkat tinggi : lebih menyerupai bahasa
manusia sehingga lebih mudah dipahami
Contoh : Pascal, Cobol, Basic, Fortran, C, C++
14. Paradigma Pemrograman
Paradigma pemrograman : cara pandang kita dalam
menyelesaikan suatu masalah pemrograman.
Beberapa paradigma pemrograman yang ada :
Prosedural / Terstruktur
Fungsional
Deklaratif / Logika
Object-Oriented
Paradigma Konkuren
15. Paradigma Prosedural
Algoritma berisi urutan langkah-langkah penyelesaian masalah ↔
proses yang prosedural.
Program dibedakan menjadi bagian data dan bagian instruksi :
o Bagian instruksi terdiri atas runtutan (sequence) instruksi yang
dilaksanakan satu per satu secara berurutan oleh pemroses.
Alur pelaksanaan instruksi dapat berubah karena adanya
percabangan kondisional.
o Data yang tersimpan di dalam memori dimanipulasi oleh
instruksi secara beruntun / prosedural.
Kelebihan : efisien dalam eksekusi
Contoh : Algol, Pascal, Fortran, Basic, C
16. Paradigma Fungsional
Paradigma fungsional memandang penyelesaian
masalah sebagai komposisi dan aplikasi fungsi yang
memetakan masalah ke jawaban.
Tidak ada pemisahan data dan instruksi.
Pemrogram tidak perlu lagi mengetahui bagaimana
mesin mengeksekusi atau bagaimana informasi
disimpan di memori. Yang menjadi perhatian hanya
keadaan awal dan akhir (setiap fungsi berperan sebagai
kotak hitam).
Kelemahan : proses eksekusi tidak efisien dibandingkan
dengan prosedural.
17. Paradigma Deklaratif / Logika
Paradigma deklaratif memandang penyelesaian
masalah sebagai inferensi terhadap fakta dan aturan
yang diberikan.
Ketika dieksekusi, pemakai mengajukan pertanyaan
(query) dan program akan menjawab apakah
pernyataan itu dapat dideduksi dari aturan atau fakta
yang ada.
Program akan memakai aturan deduksi dan
mencocokkan pertanyaan dengan fakta-fakta yang ada
untuk menjawab pertanyaan.
Contoh : Prolog
18. Paradigma Konkuren
Paradigma ini erat hubungannya dengan arsitektur
perangkat keras yang memungkinkan pemrosesan
secara paralel.
Contoh : Ada, Java, dll
19. Paradigma Object-Oriented
OOP memandang penyelesaian masalah sebagai hasil
interaksi dari kelas yang membentuk objek.
Beberapa konsep dalam OOP :
Kelas : kumpulan atas definisi data dan fungsi-fungsi
dalam suatu unit untuk suatu tujuan tertentu.
Objek : membungkus data dan fungsi bersama
menjadi suatu unit dalam sebuah program komputer
Atribut : adalah data yang dimiliki oleh object dalam
kelas.
20. Paradigma Object-Oriented
Contoh :
Dari pengertian tersebut diatas dapat diberikan contoh
sebagai berikut :
Kelas : Manusia
Object : Rini, Budi
Atribut : Rini memiliki atribut nama, Alamat, Umur
22. Tahap Pembuatan Program
Algoritma
Program dalam bahasa tingkat tinggi
Program dalam bahasa mesin
Interpretasi
Kompilasi + Linking
Interpretasi oleh CPU
Operasi (baca, tulis, hitung, perbandingan, dsb)
23. Translator
Translator melakukan pengubahan source code/source
program ke dalam target code/object code.
Translator
Interpreter
Compiler
Tidak membangkitkan object
code
Source code dan data diproses
bersamaan
Contoh : BASICA, SPSS,
DBASE III
Source Code adalah bahasa tingkat tinggi.
Object Code adalah bahasa mesin atau
assembly
Source code dan data diproses tidak
bersamaan
Contoh : PASCAL, C
Assembler
Source Code adalah
bahasa Assembly
Object Code adalah bahasa
mesin
Contoh : Turbo Assembler
25. Assembler
Source Code adalah bahasa Assembler, Object Code adalah bahasa
mesin
Object Code dapat berupa file object (.OBJ), file .EXE, atau file .COM
Contoh : Turbo Assembler (dari IBM) dan Macro Assembler (dari
Microsoft)
Source
Code
Object CodeAssembler
File
TargetLingker
.ASM .OBJ .EXE /
.COMProses Sebuah Kompilasi pada Bahasa
Assembler
26. Compiller
Kompilator : program yang menerjemahkan sebuah program
dalam bahasa sumber (source language) ke bahasa sasaran
(target language).
Proses kompilasi dapat digambarkan sebagai berikut :
Proses kompilasi dikelompokkan menjadi :
1. Analisa : program sumber dipecah-pecah dan dibentuk menjadi
bentuk antara (intermediate representation).
2. Sintesa : membangun program sasaran yang diinginkan dari
CompilerProgram
sumber
Bahasa
sasaran
Pesan-pesan kesalahan (error
messages)
28. Keterangan :
Program Sumber ditulis dalam bahasa sumber, misal Pascal,
Assembler, dsb.
Program Sasaran dapat berupa bahasa pemrograman lain atau
bahasa mesin pada suatu komputer.
Scanner : Memecah program sumber menjadi besaran leksik/token.
Parser : Memeriksa kebenaran dan urutan kemunculan token.
Penganalisa semantik : Melakukan analisa semantik, biasanya
dalam realisasi akan digabungkan Dengan intermediate code
generator (bagian yang berfungsi membangkitkan kode antara)
Pembentuk Kode : Membangkitkan kode objek
Pengoptimal Kode : Memperkecil hasil dan mempercepat proses.
Tabel : Menyimpan semua informasi yang berhubungan dengan
proses kompilasi
Compiller
29. Compiller
Source
Code 1
Source
Code 2
Source
Code n
Object
Code 1
Object
Code 2
Object
Code n
Compiler 1
Compiler 2
Compiler n
Linker Executable
Library
Object
Code
Pembentukan file Executable dari beberapa Source Code
Source Code dapat terdiri dari satu atau lebih behasa
pemrograman.
30. Interpreter vs. Compiller
Interpreter Compiler
1. Menerjemahkan instruksi per instruksi.
2. Bila tejadi kesalahan kompilasi, dapat
langsung dibetulkan secara interaktif.
3. Tidak menghasilkan objek program.
4. Tidak menghasilkan executable program
karena langsung dijalankan pada saat
program diinterprestasi
5. Proses interprestasi terasa cepat, karena
tiap-tiap instruksi langsung dikerjakan dan
output langsung dilihat hasilnya
6. Source program terus dipergunakan karena
tidak dihasilkan executable program.
7. Proses pengerjaan program lebih lambat
karena setiap instruksi dikerjakan harus
diinterprestasikan ulang kembali
8. Keamanan dari program kurang terjamin,
karena yang selalu digunakan adalah source
program
1. Menerjemahkan secara keseluruhan sekaligus.
2. Bila tejadi kesalahan kompilasi, Source
program harus dibenarkan dan
proses kompilasi diulang kembali.
3. Menghasilkan objek program.
4. Menghasilkan executable program, sehingga
dapat dijalankan di keadaan prompt sistem.
5. Proses kompilasi lama karena sekaligus
menerjemahkan seluruh instruksi program.
6. Source program sudah tidak dipergunakan lagi
untuk mengerjakan program.
7. Proses mengerjakan program lebih cepat,
karena executable program sudah dalam
bahasa mesin.
8. Keamanan dari program lebih terjamin,
karena yang dipergunakan executable
program
Perbedaan interpreter dan compiller