You are on page 1of 34

MATERI KE-1: 3 SKS / IT044315

BAHASA PEMROGRAMAN ( S1 | Agroteknologi )


Mengapa bahasa pemrograman?
 Bahasa merupakan sarana untuk berkomunikasi
 Untuk ‘berkomunikasi’ dengan komputer kita perlu
menguasai ‘bahasa komputer’
 Bahasa yang dimengerti komputer adalah bahasa
pemrograman
 Memprogram adalah proses berkomunikasi dengan
komputer
 Tujuan memprogram computer: memerintahkan
komputer untuk melakukan tugas-tugas komputasi dan
input-output sesuai yang diinginkan pemrogram
Komputer & Pemrograman
 Komputer merupakan salah satu produk teknologi tinggi
yang dapat melakukan hampir semua pekerjaan
diberbagai disiplin ilmu, tetapi komputer hanya akan
merupakan barang mati tanpa adanya bahasa
pemrograman untuk menggambarkan apa yang kita
kerjakan, sistem bilangan untuk mendukung komputasi,
dan matematika untuk menggambarkan prosedur
komputasi yang kita kerjakan
Komputer & Pemrograman
 Bagaimana komputer menjalankan instruksi-instruksi
pemrograman??
 Gambaran sederhana komputer dan instruksi
pemrograman:

‘memori’

Instruksi 1

Instruksi 2
eksekusi
eksekusi secara
Instruksi 3
sekuensial
komputer
(berurutan)
Instruksi 4

....

Instruksi n
Definisi Bahasa Pemrograman
 Bahasa (language) adalah suatu sistim untuk berkomunikasi.
Bahasa tertulis menggunakan simbol (yaitu huruf) untuk
membentuk kata
 Bahasa Pemrograman (programming language):
◼ Notasi yang dipergunakan untuk mendeskripsikan proses
komputasi dalam format yang dapat dibaca oleh komputer
dan manusia
◼ Kumpulan perintah-perintah bermakna, berstruktur
tertentu (syntax) yang dapat dimengerti komputer yang
berguna didalam penyelesaian masalah
 Bahasa Natural dirancang untuk memfasilitasi komunikasi
antar manusia
 Bahasa Pemrograman dirancang untuk memfasilitasi
komunikasi antara manusia dengan komputer
Definisi Bahasa Pemrograman
 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.
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 bahasa
pemrograman tersebut diukur dari kemudahan
programmer menyusun suatu program
 Lebih ‘tidak canggih’ bukan berarti tidak
‘powerful’ → kadang-kadang dalam membuat
suatu program dibutuhkan penggunaan bahasa
tingkat 1 atau 2 atau kombinasi antara bahasa
tingkat tinggi dengan bahasa assembly.
Tergantung tujuan programnya dan komputer
jenis 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 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
Machine Language
 Merupakan kode-kode bilangan biner, terdiri dari kombinasi
bilangan ‘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 langsung
dimasukkan ke memori untuk dieksekusi komputer

Note:
1) Intel 8051 adalah komputer generasi lama yang sekarang digunakan sebagai
mikrokontroler
2) Z80 adalah komputer generasi lama produksi Zilog
Assembly Language
 Merupakan penyempurnaan bhs generasi pertama, sudah
memasukkan 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 untuk
menjadi programmer bahasa assembly yang cakap kita harus memahami
arsitektur mesin, yakni bagaimana mesin itu secara fisik memproses data
❑ 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 efisien dalam penggunaan komputer (butuh
memori yang kecil)
High-level Language
❑ Memasukkan lebih banyak unsur kata bahasa Inggris yang digunakan
sehari-hari dan mempunyai sintaksis yang lebih baik
❑ Merupakan bahasa pemrograman yang digunakan sekarang pada
umumnya 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 dan
portable
❑ “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 berinteraksi
langsung 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 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
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 dan
mengeksekusi program yang ditulis dengan bahasa
tersebut
o Contoh: Basica, Foxpro, Matlab

 Compiler
o Merupakan suatu program yang menterjemahkan bahasa
program (source code) ke dalam bahasa objek (object
code) secara keseluruhan program
o Program yang menterjemahkan program yang ditulis
dengan sebuah bahasa menjadi program yang ditulis oleh
bahasa 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 Bila terjadi kesalahan kompilasi maka
langsung diperbaiki 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

Input

Source Interpreter Output


program
Compiler

Source
Compiler
program

Input Target Output


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 arti
dari program

 Syntax dari bahasa pemrograman menspesifikasikan struktur


dari 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 bisa
membentuk kalimat, sebagai contoh: Saya makan nasi. Dalam
hubungannya dengan bahasa pemrograman, kita musti
memenuhi sintaks (baca: aturan struktur bahasa) agar
program dapat berjalan. Sebagai contoh, dalam bahasa BASIC,
untuk mengassign sebuah variabel dengan sebuah nilai, kita
memakai operand ‘=’, tetapi kalau dalam Pascal, kita pakai
‘:=’. Contoh dalam BASIC: a=1, tapi dalam bahasa Pascal,
a:=1.
Semantics

Expression Evaluating

If x > 2 Then Executing statements


in TRUE condition
z := x * 5 block
Else
z := x; Optionaly, execute
statements in FALSE
condition block

Mendeskripsikan bagaimana program berjalan


Syntax

KEYWORD

EXPRESSION
If x > 2 Then
STATEMENTS
z := x * 5
Else
z := x;

Mendeskripsikan bagaimana program ditulis


Semantics
 Dasar mekanisme abstraksi pada
bahasa pemrograman adalah
penggunaan nama atau identifiers

 Pada kebanyakan bahasa


pemrograman, variabel, konstanta
dan prosedur dapat diberikan nama
yang 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-jenis
bahasa pemrograman beserta contoh-contohnya, berdasarkan:
1. Metodenya
2. Bentuk/Corak Kode
3. Tujuan
4. Lainnya
 Tugas Individu
Buat dalam bentuk Tayangan PPT yang isinya 5 contoh
algoritma suatu masalah sederhana serta buatkan flowchart-
nya.

You might also like