BAHASA PEMROGRAMAN Definisi o Bahasa Pemrograman merupakan notasi
![BAHASA PEMROGRAMAN BAHASA PEMROGRAMAN](https://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-1.jpg)
BAHASA PEMROGRAMAN
![Definisi o Bahasa Pemrograman merupakan notasi yang dipergunakan untuk mendeskripsikan proses komputasi dalam format Definisi o Bahasa Pemrograman merupakan notasi yang dipergunakan untuk mendeskripsikan proses komputasi dalam format](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-2.jpg)
Definisi o Bahasa Pemrograman merupakan notasi yang dipergunakan untuk mendeskripsikan proses komputasi dalam format yang dapat dibaca oleh komputer dan manusia o Bahasa Natural dirancang untuk memfasilitasi komunikasi antar manusia o Bahasa Pemrograman dirancang untuk memfasilitasi komunikasi antara manusia dengan komputer Bahasa Pemrograman – STMIK SATYAGAMA - Ari Wibowo, S. Kom
![Tingkatan Bahasa Pemrograman o Bahasa Mesin (Machine Languages) o Bahasa Rakitan (Assembly Languages) o Tingkatan Bahasa Pemrograman o Bahasa Mesin (Machine Languages) o Bahasa Rakitan (Assembly Languages) o](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-3.jpg)
Tingkatan Bahasa Pemrograman o Bahasa Mesin (Machine Languages) o Bahasa Rakitan (Assembly Languages) o Bahasa Tingkat Tinggi (High Level Languages) Bahasa Pemrograman – STMIK SATYAGAMA - Ari Wibowo, S. Kom
![Bahasa Mesin o Diawali dengan ENIAC dan EDVAC, komputer generasi pertama yang dikembangkan oleh Bahasa Mesin o Diawali dengan ENIAC dan EDVAC, komputer generasi pertama yang dikembangkan oleh](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-4.jpg)
Bahasa Mesin o Diawali dengan ENIAC dan EDVAC, komputer generasi pertama yang dikembangkan oleh John W. Mauclhy dan John von Neumann pada Agustus 1944 o ENIAC menggunakan decimal arithmetic o EDVAC menggunakan binary arithmetic o Mengalami perubahan sangat besar setelah 4 dekade sejak EDVAC Bahasa Pemrograman – STMIK SATYAGAMA - Ari Wibowo, S. Kom
![Bahasa Rakitan (Assembly) o Dimulai sejak awal 1950 o Disebut juga sebagai symbolic machine Bahasa Rakitan (Assembly) o Dimulai sejak awal 1950 o Disebut juga sebagai symbolic machine](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-5.jpg)
Bahasa Rakitan (Assembly) o Dimulai sejak awal 1950 o Disebut juga sebagai symbolic machine languages o Symbol yang dipergunakan untuk memfasilitasi aspek pemrograman : n n Mnemonic Opcodes Symbolic Names Memory Address Automatic Assignment Addressing Modes Bahasa Pemrograman – STMIK SATYAGAMA - Ari Wibowo, S. Kom
![High Level languages o Dimulai sejak akhir 1950 o Memiliki kemampuan untuk merepresentasikan algoritma High Level languages o Dimulai sejak akhir 1950 o Memiliki kemampuan untuk merepresentasikan algoritma](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-6.jpg)
High Level languages o Dimulai sejak akhir 1950 o Memiliki kemampuan untuk merepresentasikan algoritma yang kompleks o Human-oriented readability o Machine-independent Bahasa Pemrograman – STMIK SATYAGAMA - Ari Wibowo, S. Kom
![Perbandingan Penambahan dua buah integer n Machine Language 10100101 11100101 10000101 00000010 00000011 n Perbandingan Penambahan dua buah integer n Machine Language 10100101 11100101 10000101 00000010 00000011 n](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-7.jpg)
Perbandingan Penambahan dua buah integer n Machine Language 10100101 11100101 10000101 00000010 00000011 n Assembly LOAD A ADD B STO C n High Level (contoh dengan Pascal) C : = A + B; Bahasa Pemrograman – STMIK SATYAGAMA - Ari Wibowo, S. Kom
![Sejarah Bahasa Pemrograman o 1830 - 1840, Charles Babbage, Analytical Engine o Programmer pertama: Sejarah Bahasa Pemrograman o 1830 - 1840, Charles Babbage, Analytical Engine o Programmer pertama:](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-8.jpg)
Sejarah Bahasa Pemrograman o 1830 - 1840, Charles Babbage, Analytical Engine o Programmer pertama: Ada Byron Countess Of Lovelace o 1940, John von Neumann, Komputer pertama dengan stored programs Bahasa Pemrograman – STMIK SATYAGAMA - Ari Wibowo, S. Kom
![Era 1950 an o FORTRAN (FORmula TRANslation), 1954~1957, IBM, John Backus, arrays, loops, if-statements Era 1950 an o FORTRAN (FORmula TRANslation), 1954~1957, IBM, John Backus, arrays, loops, if-statements](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-9.jpg)
Era 1950 an o FORTRAN (FORmula TRANslation), 1954~1957, IBM, John Backus, arrays, loops, if-statements o COBOL (Common Business-Oriented Language), 1959~1960, US DOD, Grace Hopper, records, output formatting o Algol 60 (ALGOrithmic Language), 1958~1960, , structured statements, begin-end blocks, type declarations, recursion, pass-by-value parameters o LISP (LISt Processor), akhir 1950 s, MIT, John Mc. Carthy, functions dan garbage collection o APL (A Programming Language), akhir 1950 s, Harvard University dan IBM, K. Iverson, arrays and matrices Bahasa Pemrograman – STMIK SATYAGAMA - Ari Wibowo, S. Kom
![Era 1960 an o PL/I, 1963 -1964, IBM, concurrency, exception handling o Algol 68, Era 1960 an o PL/I, 1963 -1964, IBM, concurrency, exception handling o Algol 68,](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-10.jpg)
Era 1960 an o PL/I, 1963 -1964, IBM, concurrency, exception handling o Algol 68, 1963 -1968, general type system, orthogonal language o SNOBOL (Stri. Ng Oriented sym. BOlic Language), awal 1960 s, Bell Labs, R. Griswold, string processing, pattern matching o Simula 67, 1965~1967, Norwegian Computing Center, Kristen Nygaard dan le-Johan Dahl, simulations, classes o ISWIM, Peter Landin, functional language murni o BASIC, 1964, Dartmouth College, John Kemeny dan Thomas Kurtz, bahasa instructional yang sederhana dan interaktif Bahasa Pemrograman – STMIK SATYAGAMA - Ari Wibowo, S. Kom
![Era 1970 an o Pascal, 1971, Niklaus Wirth, bahasa instruksional sederhana dengan pernyataan terstruktur Era 1970 an o Pascal, 1971, Niklaus Wirth, bahasa instruksional sederhana dengan pernyataan terstruktur](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-11.jpg)
Era 1970 an o Pascal, 1971, Niklaus Wirth, bahasa instruksional sederhana dengan pernyataan terstruktur o C, 1972, Bell Labs, Dennis Ritchie, type system sederhana dan runtime environment o CLU, 1974~1977, MIT, Barbara Liskov, pendekatan konsisten untuk mekanisme abstraksi, data abstraction, control abstraction, and exception handling o Euclid, 1976~1977, University of Toronto, abstract data types, program verification o Mesa, 1976~1979, Xerox, module facility, exception handling, concurrency Bahasa Pemrograman – STMIK SATYAGAMA - Ari Wibowo, S. Kom
![Era 1980 an o Ada, 1983, DOD, abstract data types, concurrency o Modula-2, 1982, Era 1980 an o Ada, 1983, DOD, abstract data types, concurrency o Modula-2, 1982,](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-12.jpg)
Era 1980 an o Ada, 1983, DOD, abstract data types, concurrency o Modula-2, 1982, Niklaus Wirth, modules, coroutine o Smalltak, 1980, Xerox, Alan Kay and Dan Ingalls, a complete object-oriented programming system o C++, 1980, Bell Labs, Bjarne Stroustrup, classes, library o Scheme, 1975~1978, MIT, Gerald Sussman dan Guy Steele, versi baru dari LISP o ML, 1978, Edinburgh University, Robin Milner, a syntax and type checking similar to Pascal o Prolog, 1972~1980, A. Colmerauer, mathematical logic Bahasa Pemrograman – STMIK SATYAGAMA - Ari Wibowo, S. Kom
![Era 1990 an o Java, 1995, Gosling, bahasa pertama yang dikeluarkan dengan API yang Era 1990 an o Java, 1995, Gosling, bahasa pertama yang dikeluarkan dengan API yang](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-13.jpg)
Era 1990 an o Java, 1995, Gosling, bahasa pertama yang dikeluarkan dengan API yang sudah dikembangkan o Bahasa-bahasa Scripting seperti : Perl, Tcl, Javascript, VBScript, Python, dan PHP Bahasa Pemrograman – STMIK SATYAGAMA - Ari Wibowo, S. Kom
![Era 2000 an o. NET framework yang dikembangkan oleh Microsoft o Mono yang mengadopsi. Era 2000 an o. NET framework yang dikembangkan oleh Microsoft o Mono yang mengadopsi.](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-14.jpg)
Era 2000 an o. NET framework yang dikembangkan oleh Microsoft o Mono yang mengadopsi. NET framework. Awalnya dikembangkan pada platform Linux Bahasa Pemrograman – STMIK SATYAGAMA - Ari Wibowo, S. Kom
![Interpreter & Kompiler o Interpreter merupakan sebuah program yang dapat mengerti sebuah bahasa dan Interpreter & Kompiler o Interpreter merupakan sebuah program yang dapat mengerti sebuah bahasa dan](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-15.jpg)
Interpreter & Kompiler o Interpreter merupakan sebuah program yang dapat mengerti sebuah bahasa dan mengeksekusi program yang ditulis dengan bahasa tersebut o Compiler merupakan program yang menterjemahkan program yang ditulis dengan sebuah bahasa menjadi program yang ditulis oleh bahasa lain Bahasa Pemrograman – STMIK SATYAGAMA - Ari Wibowo, S. Kom
![Interpreter Input Source program Interpreter Output Bahasa Pemrograman – STMIK SATYAGAMA - Ari Wibowo, Interpreter Input Source program Interpreter Output Bahasa Pemrograman – STMIK SATYAGAMA - Ari Wibowo,](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-16.jpg)
Interpreter Input Source program Interpreter Output Bahasa Pemrograman – STMIK SATYAGAMA - Ari Wibowo, S. Kom
![Compiler Source program Compiler Input Target program Output Bahasa Pemrograman – STMIK SATYAGAMA - Compiler Source program Compiler Input Target program Output Bahasa Pemrograman – STMIK SATYAGAMA -](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-17.jpg)
Compiler Source program Compiler Input Target program Output Bahasa Pemrograman – STMIK SATYAGAMA - Ari Wibowo, S. Kom
![Semantics & Syntax o Semantics dari bahasa pemrograman menspesifikasikan arti dari program o Syntax Semantics & Syntax o Semantics dari bahasa pemrograman menspesifikasikan arti dari program o Syntax](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-18.jpg)
Semantics & Syntax o Semantics dari bahasa pemrograman menspesifikasikan arti dari program o Syntax dari bahasa pemrograman menspesifikasikan struktur dari program
![Semantics Expression Evaluating If x > 2 Then z : = x * 5 Semantics Expression Evaluating If x > 2 Then z : = x * 5](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-19.jpg)
Semantics Expression Evaluating If x > 2 Then z : = x * 5 Else z : = x; Executing statements in TRUE condition block Optionaly, execute statements in FALSE condition block Mendeskripsikan bagaimana program berjalan
![Syntax KEYWORD If x > 2 Then z : = x * 5 Else Syntax KEYWORD If x > 2 Then z : = x * 5 Else](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-20.jpg)
Syntax KEYWORD If x > 2 Then z : = x * 5 Else z : = x; EXPRESSION STATEMENTS Mendeskripsikan bagaimana program ditulis
![Semantics o Dasar mekanisme abstraksi pada bahasa pemrograman adalah penggunaan nama atau identifiers o Semantics o Dasar mekanisme abstraksi pada bahasa pemrograman adalah penggunaan nama atau identifiers o](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-21.jpg)
Semantics o Dasar mekanisme abstraksi pada bahasa pemrograman adalah penggunaan nama atau identifiers o Pada kebanyakan bahasa pemrograman, variabel, konstanta dan prosedur dapat diberikan nama yang didefinisikan oleh programmer
![Atribut o Arti dari nama ditegaskan oleh atribut yang diasosiasikan oleh nama tersebut const Atribut o Arti dari nama ditegaskan oleh atribut yang diasosiasikan oleh nama tersebut const](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-22.jpg)
Atribut o Arti dari nama ditegaskan oleh atribut yang diasosiasikan oleh nama tersebut const phi = 3. 14; {phi merupakan sebuah konstanta} var x: integer; {x merupakan sebuah variabel} procedure Cetak; {Cetak merupakan sebuah prosedur}
![Binding o Proses mengasosiasikan atribut ke nama disebut dengan Binding const phi = 3. Binding o Proses mengasosiasikan atribut ke nama disebut dengan Binding const phi = 3.](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-23.jpg)
Binding o Proses mengasosiasikan atribut ke nama disebut dengan Binding const phi = 3. 14; {static binding} var x: integer; {static binding} x: =2; {dynamic binding}
![Binding Time o Language definition time: pada saat pendeklarasian o Language implementation time: pada Binding Time o Language definition time: pada saat pendeklarasian o Language implementation time: pada](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-24.jpg)
Binding Time o Language definition time: pada saat pendeklarasian o Language implementation time: pada saat penggunaan o Translation time: tipe-tipe dari variabel o Link time: pada saat pemanggilan fungsi external o Load time: lokasi global variabel o Execution time: nilai dari variabel, lokasi local variabel
![Deklarasi o Deklarasi merupakan prinsip dalam menyediakan binding o Umumnya diasosiasikan dengan sebuah block Deklarasi o Deklarasi merupakan prinsip dalam menyediakan binding o Umumnya diasosiasikan dengan sebuah block](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-25.jpg)
Deklarasi o Deklarasi merupakan prinsip dalam menyediakan binding o Umumnya diasosiasikan dengan sebuah block o Lokal, deklarasi yang ditempatkan didalam block o Global, deklarasi yang ditempatkan diluar block
![Deklarasi program Test; Uses crt; var x: integer; procedure Cetak(y: integer); var z: integer; Deklarasi program Test; Uses crt; var x: integer; procedure Cetak(y: integer); var z: integer;](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-26.jpg)
Deklarasi program Test; Uses crt; var x: integer; procedure Cetak(y: integer); var z: integer; begin z : = 2 * x; writeln (z + y); end; begin x : = 5; Cetak(x); Readln; end. GLOBAL LOCAL
![Ruang Lingkup (Scope) program Test; Uses crt; var x: integer; procedure Cetak(y: integer); var Ruang Lingkup (Scope) program Test; Uses crt; var x: integer; procedure Cetak(y: integer); var](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-27.jpg)
Ruang Lingkup (Scope) program Test; Uses crt; var x: integer; procedure Cetak(y: integer); var z: integer; begin z : = 2 * x; writeln (z + y); end; begin x : = 5; Cetak(x); Readln; end.
![Ruang Lingkup (Scope) program Test; Uses crt; var x: integer; procedure Cetak(y: integer); var Ruang Lingkup (Scope) program Test; Uses crt; var x: integer; procedure Cetak(y: integer); var](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-28.jpg)
Ruang Lingkup (Scope) program Test; Uses crt; var x: integer; procedure Cetak(y: integer); var z: integer; begin z : = 2 * x; writeln (z + y); end; begin x : = 5; z : = 3; Cetak(x); Readln; end. ERROR !!!
![Syntax o Lexical Structure menspesifikasikan bagaimana kata dibentuk dari karakter o Syntactic Structure menspesifikasikan Syntax o Lexical Structure menspesifikasikan bagaimana kata dibentuk dari karakter o Syntactic Structure menspesifikasikan](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-29.jpg)
Syntax o Lexical Structure menspesifikasikan bagaimana kata dibentuk dari karakter o Syntactic Structure menspesifikasikan bagaimana kalimat dibentuk dari kata characters words Lexical Structure sentences Syntactic Structure
![Lexical Structure o Pada lexical structure, bahasa pemrograman menggunakan tokens untuk membentuk grammatical categories Lexical Structure o Pada lexical structure, bahasa pemrograman menggunakan tokens untuk membentuk grammatical categories](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-30.jpg)
Lexical Structure o Pada lexical structure, bahasa pemrograman menggunakan tokens untuk membentuk grammatical categories yang akan membentuk blok-blok syntax o Standar tokens: n Keywords, seperti IF, WHILE, REPEAT, dll n Literals, seperti 10 (numeric literal) atau ‘A’ (string literal) n Special Symbols, umumnya dipergunakan untuk membentuk operator n Identifiers , umumnya dipergunakan untuk menamai routine (prosedur & fungsi) n Comments, baris program yang tidak akan dieksekusi
![Syntactic Structure o Menggunakan notasi Backus-Naur Form (BNF) untuk definisi formal o Contoh : Syntactic Structure o Menggunakan notasi Backus-Naur Form (BNF) untuk definisi formal o Contoh :](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-31.jpg)
Syntactic Structure o Menggunakan notasi Backus-Naur Form (BNF) untuk definisi formal o Contoh : Binary : binary. Digits 0 binary. Digits 1 binary. Digits 0|1 Integer : integer digit|integer digit 0|1|2|3|4|5|6|7|8|9
![Parse Tree integer digit digit 1 digit 1 2 digit 123 integer Sentential Form Parse Tree integer digit digit 1 digit 1 2 digit 123 integer Sentential Form](http://slidetodoc.com/presentation_image/2273d721213f9be01ee45229ee5cdd64/image-32.jpg)
Parse Tree integer digit digit 1 digit 1 2 digit 123 integer Sentential Form integer Sentence integer digit 1 2 3
- Slides: 32