Materi Perkuliahan BAHASA...
-
Upload
nguyenphuc -
Category
Documents
-
view
244 -
download
0
Transcript of Materi Perkuliahan BAHASA...
MATERI KE-1:BAHASA PEMROGRAMAN
3 SKS / IT044315
( S1 | Agroteknologi )
Mengapa bahasa pemrograman?
Bahasa merupakan sarana untuk berkomunikasi
Untuk ‘berkomunikasi’ dengan komputer kita perlumenguasai ‘bahasa komputer’
Bahasa yang dimengerti komputer adalah bahasapemrograman
Memprogram adalah proses berkomunikasi dengankomputer
Tujuan memprogram computer: memerintahkankomputer untuk melakukan tugas-tugas komputasi daninput-output sesuai yang diinginkan pemrogram
Komputer & Pemrograman
Komputer merupakan salah satu produk teknologi tinggiyang dapat melakukan hampir semua pekerjaandiberbagai disiplin ilmu, tetapi komputer hanya akanmerupakan barang mati tanpa adanya bahasapemrograman untuk menggambarkan apa yang kitakerjakan, sistem bilangan untuk mendukung komputasi, dan matematika untuk menggambarkan prosedurkomputasi yang kita kerjakan
Komputer & Pemrograman
Bagaimana komputer menjalankan instruksi-instruksipemrograman??
Gambaran sederhana komputer dan instruksipemrograman:
komputer
eksekusi
‘memori’
eksekusi secara
sekuensial
(berurutan)
Instruksi 1
Instruksi 2
Instruksi 3
Instruksi 4
. . . .
Instruksi n
Definisi Bahasa Pemrograman
Bahasa (language) adalah suatu sistim untuk berkomunikasi. Bahasa tertulis menggunakan simbol (yaitu huruf) untukmembentuk kata
Bahasa Pemrograman (programming language):
◼ Notasi yang dipergunakan untuk mendeskripsikan proses komputasi dalam format yang dapat dibaca oleh komputerdan manusia
◼ Kumpulan perintah-perintah bermakna, berstrukturtertentu (syntax) yang dapat dimengerti komputer yang berguna didalam penyelesaian masalah
Bahasa Natural dirancang untuk memfasilitasi komunikasiantar manusia
Bahasa Pemrograman dirancang untuk memfasilitasikomunikasi antara manusia dengan komputer
Definisi Bahasa Pemrograman
Dalam pengertian luas pemrograman meliputi seluruh kegiatanyang 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, pemrogramanmerupakan:
◼ Pengkodean (coding atau program writing = penulisanprogram)
◼ Pengujiannya (testing) berdasarkan rancangan tertentu.
Lima Generasi Bahasa Pemrograman
1. Bahasa Mesin: Generasi pertama
2. Bahasa Assembly: Generasi kedua
3. Bahasa Tingkat-tinggi : Generasi ketiga
4. Bahasa Generasi Keempat
5. Bahasa Generasi Kelima
Lima Generasi Bahasa Pemrograman
Lima Generasi Bahasa Pemrograman
Ukuran ‘kecanggihan’ suatu bahasapemrograman tersebut diukur dari kemudahanprogrammer menyusun suatu program
Lebih ‘tidak canggih’ bukan berarti tidak‘powerful’ → kadang-kadang dalam membuat
suatu program dibutuhkan penggunaan bahasatingkat 1 atau 2 atau kombinasi antara bahasatingkat tinggi dengan bahasa assembly. Tergantung tujuan programnya dan komputerjenis apa yang diprogram.
Machine Language
❑ 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 1950-an semuaprogram harus dikodekan dalam bahasa mesin
❑ Pemrograman dalam bahasa mesin:
• menyita waktu dan kondusif untuk membuat kesalahan
• berbeda untuk setiap jenis komputer, sehingga bergantungpada komputer dan tidak standar
❑ Semua program harus ada dalam bahasa mesin agar dapatdieksekusi, sehingga bahasa lain yang ditulis programer perluditerjemahkan oleh komputer ke bahasa mesin untuk eksekusi
Machine Language
Merupakan kode-kode bilangan biner, terdiri dari kombinasibilangan ‘1’ dan ‘0’
Setiap kombinasi mewakili satu instruksi
Instruksi bahasa mesin tergantung dari jenis komputer yang dipakai(machine dependent)
contoh: instruksi transfer data dari akumulator ke register:
◼ Komputer intel 8051 1) : ‘01000111B’ (47H)
◼ Komputer Z80 2) : ‘00010011B’ (13H)
Pemrograman bahasa mesin: instruksi-instruksi langsungdimasukkan ke memori untuk dieksekusi komputer
Note:
1) Intel 8051 adalah komputer generasi lama yang sekarang digunakan sebagaimikrokontroler
2) Z80 adalah komputer generasi lama produksi Zilog
Assembly Language
Merupakan penyempurnaan bhs generasi pertama, sudahmemasukkan unsur kata bahasa Inggris dalam bentuk singkat
Masih bersifat machine dependent Penulisan sudah jauh lebih mudah dari bahasa mesin,tetapi
programmer tetap harus memahami perangkat keras komputer Beberapa variabel masih mengacu pada register,alamat
memori maupun I/O Contoh: instruksi transfer data dlm bhs assembly:
◼ Komputer 8051 : MOV R1,#22H◼ Komputer AVR 3) : LDI R1,0x22
Note:3) AVR digunakan sebagai mikrokontroller produksi Atmel
Assembly Language
❑ Bahasa assembly sangat menyerupai bahasa mesin, sehingga untukmenjadi programmer bahasa assembly yang cakap kita harus memahamiarsitektur mesin, yakni bagaimana mesin itu secara fisik memproses data
❑ Sama seperti bahasa mesin, bahasa assembly tergantung komputer (tidakportable)
❑ Untuk menerjemahkan kode-kode diperlukan program khusus yang disebutASSEMBLER
❑ Bahasa assembly masih digunakan karena begitu mirip dengan bahasamesin dengan kode yang sangat efisien
❑ Untuk membuat system software lebih disukai menggunakan bahasaassembly karena sangat efisien dalam penggunaan komputer (butuhmemori yang kecil)
High-level Language
❑ Memasukkan lebih banyak unsur kata bahasa Inggris yang digunakansehari-hari dan mempunyai sintaksis yang lebih baik
❑ Merupakan bahasa pemrograman yang digunakan sekarang padaumumnya untuk memprogram komputer
❑ Contoh macam-macam bahasa tingkat tinggi: dsb
❑ Bahasa mesin dan assembly terlalu sulit, sehingga muncul third-generation languages (3GLs) yang lebih mudah untuk program danportable
❑ “High-level” → mudah dipelajari & program tingkat-tinggi memerlukan
proses penerjemahan oleh komputer yang sangat rumit
Memiliki kemampuan untuk merepresentasikan algoritma yang kompleks
Human-oriented readability; Machine-independent
❑ Program penerjemahnya disebut COMPILER atau INTERPRETER
❑ Contoh: FORTRAN (FORmula TRANslator), Cobol, Pascal, BASIC, C, C++, dan Object-oriented programming language
❑ Bahasa C disebut bahasa “tingkat-menengah” karena format instruksinya dengan bahasa tingkat-tinggi sekaligus bisa berinteraksilangsung dengan hardware
Perbandingan
Penambahan dua buah integer◼ Machine Language
10100101 00000001
11100101 00000010
10000101 00000011
◼ Assembly
LOAD A
ADD B
STO C
◼ High Level (contoh dengan Pascal)
C := A + B;
Fourth-Generation Language
❑ 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• Matlab
Fifth-Generation Language
❑ Sering digunakan untuk akses database atau membuatsistem pakar (expert system) atau knowledge-based system
❑ Dalam konsep, ditujukan untuk bahasa alami (natural languages) yang semirip mungkin dengan hubungankemanusiaan
❑ Contoh: LISP dan Prolog❑ Sekarang ini banyak sistem pakar dikodekan baik dalam
LISP maupun Prolog, meski untuk hal yang sama bisaditulis dalam C atau C++.
❑ Usaha yang sekarang dilakukan adalah memperbaikibahasa AI (artificial intellegence) denganmengkombinasikan kemampuan terbaik dari LISP danProlog
Penerjemah Bahasa Pemrograman
Interpreter
o Menganalisis dan mengeksekusi setiap baris dari program tanpa melihat program secara keseluruhan
o Sebuah program yang dapat mengerti sebuah bahasa danmengeksekusi program yang ditulis dengan bahasatersebut
o Contoh: Basica, Foxpro, Matlab
Compiler
o Merupakan suatu program yang menterjemahkan bahasaprogram (source code) ke dalam bahasa objek (object code) secara keseluruhan program
o Program yang menterjemahkan program yang ditulisdengan sebuah bahasa menjadi program yang ditulis olehbahasa lain
o Contoh: Turbo Basic, Pascal, C/C++, dll
Penerjemah Bahasa Pemrograman
Interpreter Compiler
Menterjemahkan intruksi per intruksi Menterjemahkan secara keseluruhan
Bila terjadi kesalahan interpretasi dapat
langsung diperbaiki
Bila terjadi kesalahan kompilasi maka
source program harus diperbaiki dan di
kompilasi ulang
Tidak dihasilkan object program Dihasilkan object program
Tidak dihasilkan executable program Dihasilkan executable program
Proses pengerjaan lebih lambat Proses pengerjaan program lebih cepat
Seource program terus dipergunakan Source program tidak di pergunakan
hanya bila untuk perbaikan saja
Keamanan dari program kurang terjamin Keamanan dari program lebih terjamin
Interpreter
Source
programOutput
Input
Interpreter
Compiler
Source
program
OutputInput
Compiler
Target
program
Sejarah Bahasa Pemrograman
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
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
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
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
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
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
.NET framework yang dikembangkan oleh Microsoft
Mono yang mengadopsi .NET framework. Awalnya dikembangkan pada platform Linux
Semantics & Syntax
Semantics dari bahasa pemrograman menspesifikasikan artidari program
Syntax dari bahasa pemrograman menspesifikasikan strukturdari program.Sintaks sebuah bahasa berhubungan dengan struktur bahasa. Sebagai contoh, untuk membentuk sebuah kalimat yang valid dalam bahasa kita memakai struktur: [subyek] + [kata kerja] + [kata benda]. Dengan memakai struktur ini, kita bisamembentuk kalimat, sebagai contoh: Saya makan nasi. Dalamhubungannya dengan bahasa pemrograman, kita mustimemenuhi sintaks (baca: aturan struktur bahasa) agar program dapat berjalan. Sebagai contoh, dalam bahasa BASIC, untuk mengassign sebuah variabel dengan sebuah nilai, kitamemakai operand ‘=’, tetapi kalau dalam Pascal, kita pakai‘:=’. Contoh dalam BASIC: a=1, tapi dalam bahasa Pascal, a:=1.
Semantics
If x > 2 Then
z := x * 5
Else
z := x;
If x > 2 Then
z := x * 5
Else
z := x;
Expression Evaluating
If x > 2 Then
z := x * 5
Else
z := x;
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
If x > 2 Then
z := x * 5
Else
z := x;
If x > 2 Then
z := x * 5
Else
z := x;
If x > 2 Then
z := x * 5
Else
z := x;
KEYWORD
EXPRESSIONIf x > 2 Then
z := x * 5
Else
z := x;
STATEMENTS
Mendeskripsikan bagaimana program ditulis
Semantics
Dasar mekanisme abstraksi pada bahasa pemrograman adalah penggunaan nama atau identifiers
Pada kebanyakan bahasa pemrograman, variabel, konstantadan prosedur dapat diberikan namayang didefinisikan oleh programmer
Atribut
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}
Tugas
Tugas Kelompok (3-4 orang/kelompok)Buat Tayangan PPT yang menjelaskan tentang jenis-jenisbahasa pemrograman beserta contoh-contohnya, berdasarkan:
1. Metodenya
2. Bentuk/Corak Kode
3. Tujuan
4. Lainnya
Tugas IndividuBuat dalam bentuk Tayangan PPT yang isinya 5 contohalgoritma suatu masalah sederhana serta buatkan flowchart-nya.