Bahasa tertulis menggunakan simbol (yaitu huruf) untuk membentuk kata
BAHASA PEMROGRAMAN
LOGO
1
PENDAHULUAN
LOGO
Bahasa (language)
Adalah suatu sistim untuk berkomunikasi.
Bahasa tertulis menggunakan simbol (yaitu huruf) untuk
membentuk kata
Bahasa pemrograman (programming language)
yaitu kumpulan perintah-perintah bermakna, berstruktur
tertentu (syntax) yang dapat dimengerti komputer yang
berguna didalam penyelesaian masalah
2
PEMROGRAMAN
LOGO
Dalam pengertian luas pemrograman meliputi seluruh kegiatan
yang tercakup dalam :
Pembuatan program, termasuk analisis kebutuhan
(requirement's analysis)
Keseluruhan tahapan dalam perencanaan (planning) ,
perancangan (design) dan pewujudannya (implementation).
Dalam pengertian yang lebih sempit, pemrograman merupakan :
Pengkodean (coding atau program writing = penulisan
program)
Pengujiannya (testing) berdasarkan rancangan tertentu.
3
Lima Generasi Bahasa Pemrograman
LOGO
1. Bahasa Mesin: Generasi pertama
2. Bahasa Assembly: Generasi kedua
3. Bahasa Tingkat-tinggi : Generasi ketiga
4. Bahasa Generasi Keempat
5. Bahasa Generasi Kelima
4
Lima Generasi Bahasa Pemrograman
LOGO
5
Mechine Language: The First Generation
LOGO
Bahasa mesin adalah bahasa internal komputer yang
mengeksekusi secara langsung tanpa terjemahan
(translation)
Disebut generasi pertama karena merupakan jenis yang
paling awal dikembangkan: tahun 1940-an dan awal 1950an semua program harus dikodekan dalam bahasa mesin
Pemrograman dalam bahasa mesin:
menyita waktu dan kondusif untuk membuat kesalahan
berbeda untuk setiap jenis komputer, sehingga
bergantung pada komputer dan tidak standar
Semua program harus ada dalam bahasa mesin agar dapat
dieksekusi, sehingga bahasa lain yang ditulis programer
perlu diterjemahkan oleh komputer ke bahasa mesin untuk
eksekusi
6
Assembly Language: The Second Generation
LOGO
Penggunaan komputer secara komersial tahun 1950-an
meratakan jalan ditemukannya bahasa assembly
Dalam bahasa assembly:
Kode ditandai dengan nama yang mudah diingat seperti
ADD, SUB, dan MULT
Alamat penyimpanan (storage addresses) nyata di mana
data ditempatkan dapat didefinisikan dengan nama-nama
seperti AMT1 dan AMT2 untuk memudahkan rujukan
Bahasa assembly sangat menyerupai bahasa mesin,
sehingga untuk menjadi programmer bahasa assembly yang
cakap kita harus memahami arsitektur mesin, yakni
bagaimana mesin itu secara fisik memproses data
7
Assembly Language: The Second Generation
LOGO
Sama seperti bahasa mesin, bahasa assembly
tergantung komputer (tidak portable)
Untuk menerjemahkan kode-kode diperlukan program
khusus yang disebut ASSEMBLER
Bahasa assembly masih digunakan karena begitu mirip
dengan bahasa mesin dengan kode yang sangat efisien
Untuk membuat system software lebih disukai
menggunakan bahasa assembly karena sangat efisiean
dalam penggunaan komputer (butuh memori yang kecil)
High-level Language: The Third Generation
LOGO
Penggunaan komputer dalam bisnis berkembang
sangat dramatis pada tahun 1950-an
Bahasa mesin dan assembly terlalu sulit, sehingga
muncul third-generation languages (3GLs) yang
lebih mudah untuk program dan portable
Disebut tingkat tinggi karena mudah dipelajari &
Program tingkat-tinggi memerlukan proses
penerjemahan oleh komputer yang sangat rumit
Program penerjemahnya disebut COMPILER atau
INTERPRETER
9
High-level Language: The Third Generation
LOGO
Seperti 1GL dan 2GL, 3GL disebut bahasa prosedural
(4GL dan 5GL disebut bahasa nonprosedural), yakni
program harus menentukan kumpulan instruksi yang
tepat yang dibutuhkan untuk menyelesaikan tugas yang
diberikan
Contoh bahasa tingkat-tinggi: FORTRAN (FORmula
TRANslator), Cobol, Pascal, BASIC, MODULA-2, ADA,
dan Object-oriented programming language
Bahasa C disebut bahasa “tingkat-menengah” karena
format instruksinya dengan bahasa tingkat-tinggi
sekaligus bisa berinteraksi langsung dengan hardware
Contoh listing program dalam bahasa C
source code program hello world1
#include
int main ()
{
char quit;
quit = '\0';
while (quit != 'q')
{
printf("Hello World!\n");
printf("Press q then enter to quit\n");
scanf("%c",&quit);
}
return 0;
}
LOGO
Tampilan program ketika dijalankan
LOGO
Penerjemah Bahasa Pemrograman
LOGO
Interpreter
Menganalisis dan mengeksekusi setiap
baris dari program tanpa melihat program
secara keseluruhan
Compiler
Merupakan suatu program yang
menterjemahkan bahasa program (source
code) ke dalam bahasa objek (object code)
secara keseluruhan program
13
Perbedaan Compiler & Interpreter
Compiler
LOGO
Interpreter
Menterjemahkan secara keseluruhan
Menterjemahkan intruksi per intruksi
Bila terjadi kesalahan kompilasi maka
source program harus diperbaikai dan di
kompilasi ulang
Bila terjadi kesalahan interpretasi dapat
langsung diperbaiki
Dihasilkan object program
Tidak dihasilkan object program
Dihasilkan executable program
Tidak dihasilkan executable program
Proses pengerjaan program lebih cepat
Proses pengerjaan lebih lambat
Source program tidak di pergunakan
hanya bila untuk perbaikan saja
Seource program terus dipergunakan
Keamanan dari program lebih terjamin
Keamanan dari program kurang terjamin
14
Fourth-Generation Language
LOGO
Mudah untuk dipelajari dan dipahami
Tepat untuk pengaksesan database
Memfokuskan pada memaksimalkan produktivitas
manusia dari pada minimisasi waktu komputer
Nonprosedural
Tersedia dalam software paket yang dapat digunakan
untuk mengembangkan aplikasi yang diinginkan
Contoh:
Query language seperti SQL (structured query
language), QBE (query-by-example) dan
INTELLECT
Report generator
Application generator seperti MANTIS dan ADS
15
Fifth-Generation Language
LOGO
Sering digunakan untuk akses database atau membuat
sistem pakar (expert system) atau knowledge-based
system
Dalam konsep, ditujukan untuk bahasa alami (natural
languages) yang semirip mungkin dengan hubungan
kemanusiaan
Contoh: LISP dan Prolog
Sekarang ini banyak sistem pakar dikodekan baik dalam
LISP maupun Prolog, meski untuk hal yang sama bisa
ditulis dalam C atau C++.
Usaha yang sekarang dilakukan adalah memperbaiki
bahasa AI (artificial intellegence) dengan
mengkombinasikan kemampuan terbaik dari LISP dan
Prolog
16
Perbandingan
Penambahan dua buah integer
Machine Language
10100101
11100101
10000101
00000001
00000010
00000011
Assembly
LOAD A
ADD B
STO C
High Level (contoh dengan Pascal)
C := A + B;
LOGO
Sejarah Bahasa Pemrograman
LOGO
1830 - 1840, Charles Babbage, Analytical
Engine
Programmer pertama: Ada Byron
Countess Of Lovelace
1940, John von Neumann, Komputer
pertama dengan stored programs
Era 1950 an
LOGO
FORTRAN (FORmula TRANslation), 1954~1957, IBM,
John Backus, arrays, loops, if-statements
COBOL (Common Business-Oriented Language),
1959~1960, US DOD, Grace Hopper, records, output
formatting
Algol60 (ALGOrithmic Language), 1958~1960,,
structured statements, begin-end blocks, type
declarations, recursion, pass-by-value parameters
LISP (LISt Processor), akhir 1950s, MIT, John McCarthy,
functions dan garbage collection
APL (A Programming Language), akhir 1950s, Harvard
University dan IBM, K. Iverson, arrays and matrices
Era 1960 an
LOGO
PL/I, 1963-1964, IBM, concurrency, exception handling
Algol68, 1963-1968, general type system, orthogonal
language
SNOBOL (StriNg Oriented symBOlic Language), awal
1960s, Bell Labs, R. Griswold, string processing, pattern
matching
Simula67, 1965~1967, Norwegian Computing Center,
Kristen Nygaard dan le-Johan Dahl, simulations, classes
ISWIM, Peter Landin, functional language murni
BASIC, 1964, Dartmouth College, John Kemeny dan
Thomas Kurtz, bahasa instructional yang sederhana dan
interaktif
Era 1970 an
LOGO
Pascal, 1971, Niklaus Wirth, bahasa
instruksional sederhana dengan pernyataan
terstruktur
C, 1972, Bell Labs, Dennis Ritchie, type system
sederhana dan runtime environment
CLU, 1974~1977, MIT, Barbara Liskov,
pendekatan konsisten untuk mekanisme
abstraksi, data abstraction, control abstraction,
and exception handling
Euclid, 1976~1977, University of Toronto,
abstract data types, program verification
Mesa, 1976~1979, Xerox, module facility,
exception handling, concurrency
Era 1980 an
LOGO
Ada, 1983, DOD, abstract data types, concurrency
Modula-2, 1982, Niklaus Wirth, modules, coroutine
Smalltak, 1980, Xerox, Alan Kay and Dan Ingalls, a
complete object-oriented programming system
C++, 1980, Bell Labs, Bjarne Stroustrup, classes, library
Scheme, 1975~1978, MIT, Gerald Sussman dan Guy
Steele, versi baru dari LISP
ML, 1978, Edinburgh University, Robin Milner, a syntax
and type checking similar to Pascal
Prolog, 1972~1980, A. Colmerauer, mathematical logic
Era 1990 an
LOGO
Java, 1995, Gosling, bahasa pertama
yang dikeluarkan dengan API yang sudah
dikembangkan
Bahasa-bahasa Scripting seperti : Perl,
Tcl, Javascript, VBScript, Python, dan
PHP
Era 2000 an
LOGO
.NET framework yang dikembangkan oleh
Microsoft
Mono yang mengadopsi .NET framework.
Awalnya dikembangkan pada platform
Linux
Video
LOGO
25
LATIHAN
LOGO
1. Sebutkan dan jelaskan dua contoh
bahasa pemrograman tingkat tinggi
(Generasi Ketiga) yang anda ketahui !
2. Analisis kekurangan dan kelebihannya
26
Thank You !
www.themegallery.com
LOGO
LOGO
1
PENDAHULUAN
LOGO
Bahasa (language)
Adalah suatu sistim untuk berkomunikasi.
Bahasa tertulis menggunakan simbol (yaitu huruf) untuk
membentuk kata
Bahasa pemrograman (programming language)
yaitu kumpulan perintah-perintah bermakna, berstruktur
tertentu (syntax) yang dapat dimengerti komputer yang
berguna didalam penyelesaian masalah
2
PEMROGRAMAN
LOGO
Dalam pengertian luas pemrograman meliputi seluruh kegiatan
yang tercakup dalam :
Pembuatan program, termasuk analisis kebutuhan
(requirement's analysis)
Keseluruhan tahapan dalam perencanaan (planning) ,
perancangan (design) dan pewujudannya (implementation).
Dalam pengertian yang lebih sempit, pemrograman merupakan :
Pengkodean (coding atau program writing = penulisan
program)
Pengujiannya (testing) berdasarkan rancangan tertentu.
3
Lima Generasi Bahasa Pemrograman
LOGO
1. Bahasa Mesin: Generasi pertama
2. Bahasa Assembly: Generasi kedua
3. Bahasa Tingkat-tinggi : Generasi ketiga
4. Bahasa Generasi Keempat
5. Bahasa Generasi Kelima
4
Lima Generasi Bahasa Pemrograman
LOGO
5
Mechine Language: The First Generation
LOGO
Bahasa mesin adalah bahasa internal komputer yang
mengeksekusi secara langsung tanpa terjemahan
(translation)
Disebut generasi pertama karena merupakan jenis yang
paling awal dikembangkan: tahun 1940-an dan awal 1950an semua program harus dikodekan dalam bahasa mesin
Pemrograman dalam bahasa mesin:
menyita waktu dan kondusif untuk membuat kesalahan
berbeda untuk setiap jenis komputer, sehingga
bergantung pada komputer dan tidak standar
Semua program harus ada dalam bahasa mesin agar dapat
dieksekusi, sehingga bahasa lain yang ditulis programer
perlu diterjemahkan oleh komputer ke bahasa mesin untuk
eksekusi
6
Assembly Language: The Second Generation
LOGO
Penggunaan komputer secara komersial tahun 1950-an
meratakan jalan ditemukannya bahasa assembly
Dalam bahasa assembly:
Kode ditandai dengan nama yang mudah diingat seperti
ADD, SUB, dan MULT
Alamat penyimpanan (storage addresses) nyata di mana
data ditempatkan dapat didefinisikan dengan nama-nama
seperti AMT1 dan AMT2 untuk memudahkan rujukan
Bahasa assembly sangat menyerupai bahasa mesin,
sehingga untuk menjadi programmer bahasa assembly yang
cakap kita harus memahami arsitektur mesin, yakni
bagaimana mesin itu secara fisik memproses data
7
Assembly Language: The Second Generation
LOGO
Sama seperti bahasa mesin, bahasa assembly
tergantung komputer (tidak portable)
Untuk menerjemahkan kode-kode diperlukan program
khusus yang disebut ASSEMBLER
Bahasa assembly masih digunakan karena begitu mirip
dengan bahasa mesin dengan kode yang sangat efisien
Untuk membuat system software lebih disukai
menggunakan bahasa assembly karena sangat efisiean
dalam penggunaan komputer (butuh memori yang kecil)
High-level Language: The Third Generation
LOGO
Penggunaan komputer dalam bisnis berkembang
sangat dramatis pada tahun 1950-an
Bahasa mesin dan assembly terlalu sulit, sehingga
muncul third-generation languages (3GLs) yang
lebih mudah untuk program dan portable
Disebut tingkat tinggi karena mudah dipelajari &
Program tingkat-tinggi memerlukan proses
penerjemahan oleh komputer yang sangat rumit
Program penerjemahnya disebut COMPILER atau
INTERPRETER
9
High-level Language: The Third Generation
LOGO
Seperti 1GL dan 2GL, 3GL disebut bahasa prosedural
(4GL dan 5GL disebut bahasa nonprosedural), yakni
program harus menentukan kumpulan instruksi yang
tepat yang dibutuhkan untuk menyelesaikan tugas yang
diberikan
Contoh bahasa tingkat-tinggi: FORTRAN (FORmula
TRANslator), Cobol, Pascal, BASIC, MODULA-2, ADA,
dan Object-oriented programming language
Bahasa C disebut bahasa “tingkat-menengah” karena
format instruksinya dengan bahasa tingkat-tinggi
sekaligus bisa berinteraksi langsung dengan hardware
Contoh listing program dalam bahasa C
source code program hello world1
#include
int main ()
{
char quit;
quit = '\0';
while (quit != 'q')
{
printf("Hello World!\n");
printf("Press q then enter to quit\n");
scanf("%c",&quit);
}
return 0;
}
LOGO
Tampilan program ketika dijalankan
LOGO
Penerjemah Bahasa Pemrograman
LOGO
Interpreter
Menganalisis dan mengeksekusi setiap
baris dari program tanpa melihat program
secara keseluruhan
Compiler
Merupakan suatu program yang
menterjemahkan bahasa program (source
code) ke dalam bahasa objek (object code)
secara keseluruhan program
13
Perbedaan Compiler & Interpreter
Compiler
LOGO
Interpreter
Menterjemahkan secara keseluruhan
Menterjemahkan intruksi per intruksi
Bila terjadi kesalahan kompilasi maka
source program harus diperbaikai dan di
kompilasi ulang
Bila terjadi kesalahan interpretasi dapat
langsung diperbaiki
Dihasilkan object program
Tidak dihasilkan object program
Dihasilkan executable program
Tidak dihasilkan executable program
Proses pengerjaan program lebih cepat
Proses pengerjaan lebih lambat
Source program tidak di pergunakan
hanya bila untuk perbaikan saja
Seource program terus dipergunakan
Keamanan dari program lebih terjamin
Keamanan dari program kurang terjamin
14
Fourth-Generation Language
LOGO
Mudah untuk dipelajari dan dipahami
Tepat untuk pengaksesan database
Memfokuskan pada memaksimalkan produktivitas
manusia dari pada minimisasi waktu komputer
Nonprosedural
Tersedia dalam software paket yang dapat digunakan
untuk mengembangkan aplikasi yang diinginkan
Contoh:
Query language seperti SQL (structured query
language), QBE (query-by-example) dan
INTELLECT
Report generator
Application generator seperti MANTIS dan ADS
15
Fifth-Generation Language
LOGO
Sering digunakan untuk akses database atau membuat
sistem pakar (expert system) atau knowledge-based
system
Dalam konsep, ditujukan untuk bahasa alami (natural
languages) yang semirip mungkin dengan hubungan
kemanusiaan
Contoh: LISP dan Prolog
Sekarang ini banyak sistem pakar dikodekan baik dalam
LISP maupun Prolog, meski untuk hal yang sama bisa
ditulis dalam C atau C++.
Usaha yang sekarang dilakukan adalah memperbaiki
bahasa AI (artificial intellegence) dengan
mengkombinasikan kemampuan terbaik dari LISP dan
Prolog
16
Perbandingan
Penambahan dua buah integer
Machine Language
10100101
11100101
10000101
00000001
00000010
00000011
Assembly
LOAD A
ADD B
STO C
High Level (contoh dengan Pascal)
C := A + B;
LOGO
Sejarah Bahasa Pemrograman
LOGO
1830 - 1840, Charles Babbage, Analytical
Engine
Programmer pertama: Ada Byron
Countess Of Lovelace
1940, John von Neumann, Komputer
pertama dengan stored programs
Era 1950 an
LOGO
FORTRAN (FORmula TRANslation), 1954~1957, IBM,
John Backus, arrays, loops, if-statements
COBOL (Common Business-Oriented Language),
1959~1960, US DOD, Grace Hopper, records, output
formatting
Algol60 (ALGOrithmic Language), 1958~1960,,
structured statements, begin-end blocks, type
declarations, recursion, pass-by-value parameters
LISP (LISt Processor), akhir 1950s, MIT, John McCarthy,
functions dan garbage collection
APL (A Programming Language), akhir 1950s, Harvard
University dan IBM, K. Iverson, arrays and matrices
Era 1960 an
LOGO
PL/I, 1963-1964, IBM, concurrency, exception handling
Algol68, 1963-1968, general type system, orthogonal
language
SNOBOL (StriNg Oriented symBOlic Language), awal
1960s, Bell Labs, R. Griswold, string processing, pattern
matching
Simula67, 1965~1967, Norwegian Computing Center,
Kristen Nygaard dan le-Johan Dahl, simulations, classes
ISWIM, Peter Landin, functional language murni
BASIC, 1964, Dartmouth College, John Kemeny dan
Thomas Kurtz, bahasa instructional yang sederhana dan
interaktif
Era 1970 an
LOGO
Pascal, 1971, Niklaus Wirth, bahasa
instruksional sederhana dengan pernyataan
terstruktur
C, 1972, Bell Labs, Dennis Ritchie, type system
sederhana dan runtime environment
CLU, 1974~1977, MIT, Barbara Liskov,
pendekatan konsisten untuk mekanisme
abstraksi, data abstraction, control abstraction,
and exception handling
Euclid, 1976~1977, University of Toronto,
abstract data types, program verification
Mesa, 1976~1979, Xerox, module facility,
exception handling, concurrency
Era 1980 an
LOGO
Ada, 1983, DOD, abstract data types, concurrency
Modula-2, 1982, Niklaus Wirth, modules, coroutine
Smalltak, 1980, Xerox, Alan Kay and Dan Ingalls, a
complete object-oriented programming system
C++, 1980, Bell Labs, Bjarne Stroustrup, classes, library
Scheme, 1975~1978, MIT, Gerald Sussman dan Guy
Steele, versi baru dari LISP
ML, 1978, Edinburgh University, Robin Milner, a syntax
and type checking similar to Pascal
Prolog, 1972~1980, A. Colmerauer, mathematical logic
Era 1990 an
LOGO
Java, 1995, Gosling, bahasa pertama
yang dikeluarkan dengan API yang sudah
dikembangkan
Bahasa-bahasa Scripting seperti : Perl,
Tcl, Javascript, VBScript, Python, dan
PHP
Era 2000 an
LOGO
.NET framework yang dikembangkan oleh
Microsoft
Mono yang mengadopsi .NET framework.
Awalnya dikembangkan pada platform
Linux
Video
LOGO
25
LATIHAN
LOGO
1. Sebutkan dan jelaskan dua contoh
bahasa pemrograman tingkat tinggi
(Generasi Ketiga) yang anda ketahui !
2. Analisis kekurangan dan kelebihannya
26
Thank You !
www.themegallery.com
LOGO