Anda di halaman 1dari 99

Struktur Bahasa Pemrograman

Semester Pendek
Penyaji : SUARGA

Struktur Bahasa Pemrograman (SBP)


1
Modul1, SUARGA
Silabus
1. Elemen Dasar Bahasa & 8. Bahasa Fungsional (Haskell)
Struktur Umum
9. Bahasa Deklaratif (R)
2. Bahasa imperative-1 (C,C++)
10. Final test
3. Bahasa imperative-2 (Python)
4. Bahasa OOP (C++, Java)
Literatur: Watt,D.A. and Findlay,
5. Mid test W. “Programming Language
6. Bahasa Visual EventDriven Design Concepts”, John Wiley &
(Java, C#) Son,.Ltd, England (2004)
7. Bahasa Web (HTML+PHP)

Struktur Bahasa Pemrograman (SBP)


2
Modul1, SUARGA
STRUKTUR BAHASA PEMROGRAMAN

Modul-1: Elemen Dasar dan Struktur Umum


Bahasa

Struktur Bahasa Pemrograman (SBP)


3
Modul1, SUARGA
Bahasa Pemrograman
• Bahasa Pemrograman (Programming
Languages : adalah bahasa yang digunakan
untuk membuat program komputer.
• Program Komputer : susunan instruksi dalam
bahasa pemrograman yang menyatakan
urutan proses yang harus dikerjakan oleh
komputer terhadap data.
• Struktur umum program: Data input, Proses
terhadap data, Hasil proses / informasi.
Struktur Bahasa Pemrograman (SBP)
4
Modul1, SUARGA
Kelompok Terkait dengan Bahasa
Pemrogram
(1) Pemrogram Aplikasi (Application Programmer)
(2) Perancang Bahasa (Language Designer)
(3) Implementer Bahasa (Language Implementer)

Struktur Bahasa Pemrograman (SBP)


5
Modul1, SUARGA
Pemrogram Aplikasi
• Pemrogram profesional adalah orang yang
menggunakan bahasa pemrograman untuk
menciptakan program aplikasi, tidak semua dari
mereka sama tingkatannya, ada yang hanya
menguasai satu macam bahasa saja, ada yang
menguasai beberapa bahasa
• Beberapa bidang aplikasi pemrograman adalah:
• Artificial Intelligence; Education; Science and
engineering; Information systems; Systems and
networks; World Wide Web; Games; dsb
Struktur Bahasa Pemrograman (SBP)
6
Modul1, SUARGA
Perancang Bahasa
• Perancang bahasa adalah orang atau grup yang
menciptakan satu atau beberapa bahasa program.
• Ada banyak bahasa diciptakan oleh per-orangan, pada
umumnya mereka ini tidak puas dengan bahasa yang
telah ada, mereka merasa terkendala oleh bahasa
yang ada untuk menciptakan suatu aplikasi, oleh sebab
itu mereka merancang bahasa yang bisa memenuhi
kebutuhannya.
• Beberapa bahasa diciptakan oleh sebuah tim, ada
bahasa yang pada awalnya ditulis oleh satu orang,
namun kemudian diperkaya oleh kontribusi banyak
orang.

Struktur Bahasa Pemrograman (SBP)


7
Modul1, SUARGA
Implementer Bahasa
• Implementer bahasa adalah orang yang melakukan
implementasi suatu bahasa program pada suatu mesin
tertentu dalam bentuk compiler atau interpreter.
• Karena adanya perbedaan hardware antar mesin maka
sering ditemukan beberapa macam compiler untuk
satu bahasa tertentu, misalnya compliler C++ untuk
sistem windows 32-bit, compiler C++ utk system Unix,
dsb.
• Implementer ini sangat tertarik dengan disain satu
bahasa agar bahasa ini dapat disesuaikan dengan
mesin dimana bahasa akan digunakan.
• Para implementer ini menciptakan program installer
untuk meng-install compiler/interpreter dari bahasa.
Struktur Bahasa Pemrograman (SBP)
8
Modul1, SUARGA
Tingkatan Bahasa
• (1) Bahasa Deklaratif (Declarative language)
• (2) Bahasa Tingkat Tinggi (High-level language)
• (3) Bahasa Tingkat Menengah (Medium level /
Assembly language)
• (4) Bahasa Tingkat Rendah (Low level /
Machine language)

Struktur Bahasa Pemrograman (SBP)


9
Modul1, SUARGA
Bahasa Low-level
• Bahasa low level adalah bahasa mesin (machine
language) yang sangat bergantung pada hardware
• Bahasa mesin adalah bahasa spesifik dari satu
hardware tertentu yang pada umumnya dalam bentuk
kode biner atau kode hexadecimal.
• Bahasa ini sulit dibaca oleh manusia tetapi mudah oleh
mesin yang memiliki hardware berupa rangkaian logik.
• Suatu program dalam bahasa tingkat tinggi maupun
tingkat menengah harus diterjemahkan kedalam
bahasa mesin sebelum dilaksanakan oleh mesin.

Struktur Bahasa Pemrograman (SBP)


10
Modul1, SUARGA
Medium-level language
• Bahasa Tingkat Menengah sebenarnya bahasa yang ada
diantara bahasa tingkat tinggi dan bahasa mesin, bahasa ini
memiliki instruksi yang merupakan kode yang dapat
dilaksanakan atau memiliki akses langsung ke mesin.
• Bahasa Assembly adalah bahasa yang paling dikenal pada
tingkat menengah, namum perlu diketahui bahasa ini
spesifik pada satu mesin tertentu, sehingga Assembly pada
mesin X tidak akan sama dengan Assembly pada mesin Y
kecuali hardware kedua-nya sama.
• Seorang yang menulis program memakai Assembly pada
satu mesin, pada umumnya harus menulis kembali program-
nya ketika memprogram pada mesin yang berbeda.
• Bahasa C adalah bahasa yang dapat dikategorikan sebagai
medium level language, karena beberapa instruksinya dapat
meng-akses hardware

Struktur Bahasa Pemrograman (SBP)


11
Modul1, SUARGA
High-level language
• Bahasa Tingkat Tinggi adalah bahasa yang umumnya dikenal
oleh programmer, suatu bahasa dengan instruksi merupakan
kata-kata dalam bahasa Inggris seperti: Read, Print, Write,
do, while, if/then, dan sebagainya.
• Bahasa tingkat tinggi memungkinkan programmer mampu
memprogram pada berbagai tipe mesin tanpa ada
perubahan yang berarti, atau satu program dapat
dipindahkan dari satu mesin ke mesin lain (porting).
• Bahasa ini tidak dimengerti oleh mesin komputer kecuali
diterjemahkan dahulu ke dalam bahasa mesin sebelum
dilaksanakan, dilaksanakan oleh “compiler”.
• Terdapat banyak sekali bahasa dalam kategori ini seperti:
Pascal, Fortran, Cobol, C++, C#, Java, Python, Ruby, Go,
Haskel, Kotlin dan sebagainya.

Struktur Bahasa Pemrograman (SBP)


12
Modul1, SUARGA
Contoh

Pascal Assembly Machine code


(high level) (low level)

Z := W + X*Y L 3, X 41 3 0C1A4
M 2, Y 3A 2 0C1A8
A 3, W 1A 3 0C1A0
ST 3, Z 50 3 0C1A4

Struktur Bahasa Pemrograman (SBP)


13
Modul1, SUARGA
Bahasa Declarative
• Bahasa dengan orientasi instruksi untuk
langsung melakukan sesuatu (what to do),
bukan bagaimana melakukan sesuatu (how to
do it).
• Pada umumnya bahasa program bukan
“deklaratif”, sebab anda harus menyusun
algoritma (how to do it) untuk menyelesaikan
satu masalah.
• Contoh: MATLAB, MAPLE, SCILAB, mySQL
Struktur Bahasa Pemrograman (SBP)
14
Modul1, SUARGA
Paradigma Bahasa Program
• (1) Imperative Programming
• (2) Object Oriented Programming
• (3 Functional Programming
• (4) Logical Programming
• (5) Scripting Language
• (6) Visual/Event-driven programming
• (7) Declarative Programming
• (8) Web programming
• (9) Concurrent/Distributed Computing

Struktur Bahasa Pemrograman (SBP)


15
Modul1, SUARGA
Imperative Programming
• kategori imperative adalah bahasa yang
mendefinisikan komputasi sebagai untaian
statement yang mengubah keadaan atau nilai
variabel yang tersimpan dalam memory, sehingga
state dari program berubah dari satu langkah ke
langkah lain
• Kategori ini sering juga disebut prosedural, dimana
setiap tindakan merupakan suatu prosedur.
Bahasa-bahasa seperti Fortran, Basic, C, Java, PHP
adalah contoh bahasa Imperative.

Struktur Bahasa Pemrograman (SBP)


16
Modul1, SUARGA
Object Oriented Programming (OOP)

• Bahasa yang memungkinkan pembuatan


objek.
• Suatu objek memiliki tiga sifat utama, yaitu
encapsulation, inheritance, polymorphism.
• Suatu objek terdiri atas atribut-atribut yang
menentukan sifat dari objek dan juga method
yang dioperasikan terhadap atribut.
• Contoh bahasa OOP adalah C++, Java, Python
Struktur Bahasa Pemrograman (SBP)
17
Modul1, SUARGA
Functional Programming
• bahasa yang melakukan komputasi seperti
evaluasi fungsi dalam matematik, sangat
menghindari pengubahan pada keadaan
(state) .
• Bahasa ini didasarkan pada lambda calculus,
cotohnya: Haskell, Erlang, Clojure, Racket.

Struktur Bahasa Pemrograman (SBP)


18
Modul1, SUARGA
Logic Programming
• bahasa yang didasarkan pada eksekusi logik
dengan mengutamakan “tujuan (goal)” dari
komputasi bukan rentetan algoritmik secara detil.
• program tersusun dari aturan-aturan (rules) dari
pernyataan, kemudian hasil tujuan merupakan
hasil deduksi dari pernyataan terhadap aturan-
aturan atau data yang ada, atau boolean
implication.
• Contoh bahasa adalah: Lisp, Prolog.

Struktur Bahasa Pemrograman (SBP)


19
Modul1, SUARGA
Scripting Language
• program dalam bahasa ini sering disebut
sebagai “script”, yaitu merupakan susunan
instruksi, dimana setiap instruksi bukan
mengubah nilai variabel tetapi melaksanakan
satu bagian dari tugas tertentu.
• Pada umumnya bahasa script di-interpretasi
bukan di-kompilasi
• contoh-nya Perl, Javascript, VBScript.

Struktur Bahasa Pemrograman (SBP)


20
Modul1, SUARGA
Event-driving / Visual Programming
• program dalam kategori ini bereaksi akan
adanya suatu event terlaksana, misalnya
akibat mouse-click terhadap satu objek
• sehingga bahasa yang masuk dalam kategori
ini umumnya bersifat visual yang menyediakan
beberapa objek-objek GUI.
• Contoh bahasa adalah: Visual Basic, Delphi,
Visual C++, Visual Java, C#, Visual Python

Struktur Bahasa Pemrograman (SBP)


21
Modul1, SUARGA
Declarative Programming
• bahasa deklarative adalah bahasa yang
mengutamakan hasil akhir, bukan langkah-langkah
detil algoritmik.
• Suatu perintah dalam declarative programming
menghasilkan sesuatu yang diharapkan (what to
do), misalnya perintah SORT() akan meng-urutkan
data tanpa memberitahu secara detil bagaimana
data di-sort (how to do?).
• Contoh: SQL, MATLAB, R, MAPLE, SCILAB

Struktur Bahasa Pemrograman (SBP)


22
Modul1, SUARGA
Web Programming
• bahasa untuk merancang tampilan dan proses
di halaman web termasuk didalamnya adalah
HTML, CSS, PHP, XML

Struktur Bahasa Pemrograman (SBP)


23
Modul1, SUARGA
Concurrent Programming
• bahasa dalam kategori ini pada umumnya
menunjang kolaborasi dari komputasi
• beberapa program dapat secara bersama di-
eksekusi untuk menyelesaikan suatu
pekerjaan.
• Pada umumnya program yang bekerja dalam
jaringan seperti program untuk mesin ATM,
atau jaringan data terpusat.

Struktur Bahasa Pemrograman (SBP)


24
Modul1, SUARGA
Struktur Bahasa Pemrograman (SBP)
25
Modul1, SUARGA
SEJARAH PERKEMBANGAN
• Ketika komputer mulai diciptakan di era tahun 40-
an, maka pada saat itu bahasa pemrograman juga
mulai berkembang
• Bahasa era Generasi I:
– machine language
– assembly
– Fortran (formula translator)1955, John Backus
– ALGOL (algorithmic language), 1958, C.A.R Hoare
– LISP (List Processor), 1958, John McCarthy
– COBOL (common business oriented language) 1960,
Grace Hopper

Struktur Bahasa Pemrograman (SBP)


26
Modul1, SUARGA
John Backus
Grace Hopper

C.A.R. Hoare John McCarthy


Struktur Bahasa Pemrograman (SBP)
27
Modul1, SUARGA
• Era Generasi II:
– BASIC (Beginner’s All Symbolic Instruction Code),
1963, John Kemeny dan Thomas Kurtz
– PASCAL, 1970, Nicklaus Wirth
– ML, 1971, Robin Miner
– C, 1972, Dennis Ritchie
– Modula, 1977, Nicklaus Wirth
– PL/I, 1978, UK’s National Laboratory, Radin

Struktur Bahasa Pemrograman (SBP)


28
Modul1, SUARGA
John Kemeny Thomas Kurtz

Nicklaus Wirth Dennis Ritchie

Struktur Bahasa Pemrograman (SBP)


29
Modul1, SUARGA
• Bahasa Generasi III :
– Small Talk, 1971, Alan Kay
– Prolog, 1972, Alain Colmerauer
– Ada, 1978, Jean Ichbiah / DoD USA
– C++, 1983, Bjarne Stroustrup
– Perl, 1987, Larry Wall

Struktur Bahasa Pemrograman (SBP)


30
Modul1, SUARGA
Bjarne Stroustrup
Alan Kay

Jean Ichbiah

Struktur Bahasa Pemrograman (SBP)


31
Modul1, SUARGA
• Bahasa Generasi IV:
– Haskell, 1990, Thompson
– Python, 1991, Guido Von Rossum
– Script HTML, URI, HTTP, 1992, Tim Berners-Lee
– JAVA, 1995, James Gosling
– Ruby, 1995, Yukihiro Matsumoto
– PHP, 1995, Rasmus Lerdorf
– JavaScript, 1995, Brendan Eich
– Racket, 1995, Mathias Felleisen
– C#, 2000, Drayton cs, Microsoft
– GO, 2007, Ken Thompson, Rob Pike, Robert G
Struktur Bahasa Pemrograman (SBP)
32
Modul1, SUARGA
Brendan Eich
James Gosling Yukihiro Matsumoto

Mathias Felleisen Rasmus Lerdorf Timothy B.Lee


Guido Von Rossum Struktur Bahasa Pemrograman (SBP)
33
Modul1, SUARGA
• Visual Languages:
– Visual Basic (1991)
– Delphi (Pascal) (1996)
– Visual C (1997)
– Visual Studio .net (C++, C#, Java, Basic) : 2000-an
• Pencetus Ide: Alan Cooper

Struktur Bahasa Pemrograman (SBP)


34
Modul1, SUARGA
• Declarative Language:
– MAPLE (Mathematical Program Language),
dimulai di Univ. of Waterloo, 1985, kini oleh
Maple Software Inc.
– MATLAB (Matrix Laboratory), dimulai di Stanford
Univ 1970, kini oleh Mathworks, Inc
– SQL (Stuctured Query Language), 1990, Microsoft
– R, 1993, Ross Ihaka & Robert Gentlemen

Struktur Bahasa Pemrograman (SBP)


35
Modul1, SUARGA
Struktur Bahasa Pemrograman (SBP)
36
Modul1, SUARGA
Struktur Bahasa Pemrograman (SBP)
37
Modul1, SUARGA
Bahasa Program
Yang Perlu anda Kuasai
C-language JS (Java Script)
Go-lang Rust
PHP Text Script
Ruby
Swift (ios) Web programming
C# memerlukan tambahan:
C++ HTML, SQL, JQuery,
Python JSon
JAVA & Kotlin
9/10/2014 Algoritma Pemrograman,@SUARGA 38
Proses Kompilasi

Struktur Bahasa Pemrograman (SBP),


39
Modul-2, Suarga
Analisa Lexical
• Ketika suatu program di-kompilasi maka baris-
baris instruksi akan mengalami analisis leksikal,
yaitu mengurai instruksi dari untaian karakter
menjadi untaian token, dimana spasi (white
spaces) dan komentar (comment) diabaikan.
• Token adalah untaian karakter yang mewakili satu
simbol dari sintaksis bahasa misalnya: reserved
word (mis: for, while), literal (mis 3.1416),
operator (mis + * ), tanda-baca(mis ;).
• Token akan di-periksa sesuai Syntax oleh “Parser”
• Proses analisa leksikal ini memakan waktu sekitar
75% dari seluruh waktu kompilasi.
Struktur Bahasa Pemrograman (SBP),
40
Modul-2, Suarga
Contoh
int main() {
char c;
int i;
c = ‘h’;
i = c + 3;
} // main

Hasil lexical dicocokkan


dengan tabel “Regular
Expression” (Regex).
Token hasil lexical

Struktur Bahasa Pemrograman (SBP),


41
Modul-2, Suarga
Regex
• Jenis setiap token didefinisikan dalam “regular expression” (regex) dari
bahasa tersebut, misalnya:

Struktur Bahasa Pemrograman (SBP),


42
Modul-2, Suarga
Conventions for Writing Regular Expressions
Figure 2.6
Parse Tree for the
Expression x+2*y
Figure 2.8

Parse
Sketch of a Parse Tree for a Complete Program
Figure 2.9
Semantic
• Semantik berkaitan erat dengan pemberian makna
dari instruksi sehingga mesin hardware dapat
melaksanakan instruksi tersebut, ada beberapa hal
yang berkaitan dengan semantik, yaitu:

• types, binding, operator, coercion


• storage allocation
• control structures
• procedure and parameters
• run-time environment.
Struktur Bahasa Pemrograman (SBP),
46
Modul-2, Suarga
Types, binding, operator, coercion
• Setiap variabel/data memiliki tipe (type), ada
bahasa yang mengharuskan tipe di nyatakan
sebelum variabel digunakan (strong type)
misalnya: C, C++, Pascal, Java
• Ada bahasa yang tidak mengharuskan (weak
type), karena tipe diberikan pada saat diberi
nilai (binding) misalnya: Python, Basic,
MATLAB, Kotlin

Struktur Bahasa Pemrograman (SBP),


47
Modul-2, Suarga
• Binding adalah peristiwa dimana variabel, statement
atau prosedure di-ikat dengan semantik-nya, seperti
tipe data, byte storage, atau nilai data. Pada umumnya
binding terjadi ketika program di-compile, beberapa
bahasa justru melakukan binding pada saat program
dijalankan (runtime).
• Namun apabila ada ketidak samaan dalam tipe data
ketika instruksi dilaksanakan, maka akan ada
tambahan baris instruksi untuk melakukan konversi
tipe data, peristiwa ini disebut “coercion”.
• Beberapa bahasa program menetapkan tipe data
variabel hasil pembacaan menjadi char/string,
sehingga bila data yang di-input adalah integer atau
real maka pada instruksi input/read harus terjadi
coercion.
Struktur Bahasa Pemrograman (SBP),
48
Modul-2, Suarga
• Storage allocation: Setiap variabel yang di-
deklarasi dalam program akan menempati
lokasi dalam memory, dimana nama variabel
adalah representasi alamat lokasi dalam
memory, kemudian tipe data akan menentuan
jumlah byte, misalnya setiap karakter
menempati 1 byte, setiap integer menempati
2 byte, dan setiap real menempati 4 byte.
• Ketika variabel didefinisikan sebagai larik atau
record maka jumlah byte merupakan kelipatan
byte dasar dengan banyaknya elemen dalam
larik.
Struktur Bahasa Pemrograman (SBP),
49
Modul-2, Suarga
Sebagai contoh berikut ini adalah deklarasi variabel dalam Pascal:

var A:array [1..5] of integer;


B:array[0..4, 0..3] of string[5];
C:array[1..5, 1..4, 1..2] of real;

Maka berapa byte memory yang diperlukan untuk menyimpan variabel


tersebut.
Deskripsi Larik A B C
Dimensi 1 2 3
Entri di setiap dimensi 5 5, 4 5, 4, 2
Subscript tiap dimensi 1..5 0..4, 0..3 1..5, 1..4, 1,,2
type data integer string[5] real
Byte per-elemen 2 5 4
Jumlah byte 5 x 2 = 10 5 x 4 x 5 = 100 5 x 4 x 2 x 4 =160
Struktur Bahasa Pemrograman (SBP),
50
Modul-2, Suarga
Implementation
• meng-implementasikan suatu programming
language ber-arti “menulis” compiler untuk bahasa
tersebut. Berarti juga membuat sebuah mesin-
abstrak untuk “object” dari hasil compiler.
• Atau menulis sebuah “interpreter” dan “abstract
machine” untuk bahasa dimana interpreter ditulis.
• Disamping itu kemungkinan juga membuat
campuran dari kedua teknik diatas.

Struktur Bahasa Pemrograman (SBP),


51
Modul-2, Suarga
Proses Kompilasi

Struktur Bahasa Pemrograman (SBP),


52
Modul-2, Suarga
dot Net Compilation
Komponen Struktur Umum
1. Character Set
2. Keyword
3. Tipe data dan deklarasi variabel
4. Operator
5. Instruksi input-output
6. Instruksi Seleksi
7. Instruksi Perulangan
8. Penanganan File
9. Pemakaian Fungsi dan Subprogram

Struktur Bahasa Pemrograman, Modul-4,


58
@Suarga
1. Character Set
• Character set adalah himpunan semua
karakter yang dikenal dan dapat digunakan
dalam bahasa program.
• Pada umumnya bahasa program menerima
karakter yang berasal dari kode ASCII, namun
beberapa bahasa memiliki karakter yang lebih
banyak lagi karena menggunakan Unicode.
• Beberapa bahasa juga menerima ASCII
maupun Unicode.
Struktur Bahasa Pemrograman, Modul-4,
59
@Suarga
KODE ASCII dalam Desimal: huruf ‘A’ = 65, huruf ‘a’ = 97, dsb

Struktur Bahasa Pemrograman, Modul-4,


60
@Suarga
2. Keyword
• Keyword adalah perbendaharaan kata dari suatu
bahasa, dimana setiap kata merupakan suatu
instruksi tertentu.
• Keyword hanya boleh dipakai sebagai instruksi,
tidak untuk keperluan lain.
• Keyword pada dasarnya diperlukan:
– pertama untuk mengetahui sintaks dari command,
– kedua untuk menjadi acuan ketika membuat variable
agar tidak sama dengan keyword.
• Setiap bahasa memiliki keyword yang berbeda
Struktur Bahasa Pemrograman, Modul-4,
61
@Suarga
Contoh Python Keywords
• Misalnya dalam bahasa Python berikut ini adalah
Keyword:

and def finally in or try


as del for is pass while
assert elif from lambda print with
break else global None raise yield
class except if nonlocal return exec
continue False import not True

Struktur Bahasa Pemrograman, Modul-4,


62
@Suarga
3. Tipe Data dan Deklarasi
• Pertama adalah tipe data, bahwa data secara
umum dapat dikategorikan menjadi tiga macam:
numerik, non-numerik, dan logik.
• Data numerik sendiri paling tidak ada dua macam,
bilangan bulat (integer) dan bilangan tidak bulat
(real, float).
• Data non-numerik biasa disebut karakter
merupakan semua kode karakter yang bisa
diperoleh melalui keyboard, seperti huruf dan
simbol-simbol lainnya.
Struktur Bahasa Pemrograman, Modul-4,
63
@Suarga
• Beberapa tipe data utama (numerik) yang sering
dijumpai dalam bahasa program adalah:
• integer, yaitu tipe bilangan bulat seperti 10, 253,
8, 1024
• float atau fixed, tipe bilangan tidak bulat, seperti
12.5, 100.453
• character, tipe yang diberikan pada karakter
• boolean, tipe untuk data logik
• complex : tidak semua bahasa menyediakan
bilangan complex, beberapa diantaranya adalah
Python, Ada, Lisp, dan Ruby

Struktur Bahasa Pemrograman, Modul-4,


64
@Suarga
• Tipe non-numerik antara lain:
• character (char): karakter tunggal dengan tanda petik
tunggal
• string : untaian karakter seperti nama dengan tanda petik
dobel
• boolean (bool) : data logik, true atau false
• enumeration (enum) : pemberian angka ke suatu nama,
seperti seperti enum name (senin, selasa, …, minggu) berarti
senin=1, selasa=2, dst
• object : kumpulan data, boleh tidak sejenis, yang disertai
metoda pengolahannya.
• array : larik, vektor, matriks, kumpulan data sejenis, dengan
indeks
• record : kumpulan data tak sejenis tanpa method
pengolahan, dapat digunakan untuk penciptaan tipe baru.
• pointer : penunjuk ke objek data yang lain

Struktur Bahasa Pemrograman, Modul-4,


65
@Suarga
• Pada setiap tipe data ditetapkan batasan-
batasan nilai, misalnya integer antara 0 hingga
255 atau -65536 hingga +65535, real memiliki
batasan … Setiap bahasa menetapkan tipe
dan batasan nilai dari data.
• Batasan nilai pada bahasa C++ dapat dilihat
pada tabel berikut:

Struktur Bahasa Pemrograman, Modul-4,


66
@Suarga
Struktur Bahasa Pemrograman, Modul-4,
67
@Suarga
• Deklarasi pada hakekatnya adalah pernyataan
yang mengikat variabel dengan tipe dan nilai-nya.
• Beberapa bahasa mengharuskan adanya deklarasi
(strong-typed), namun tidak semua bahasa
memerlukan deklarasi awal tersebut (weak-typed)
sehingga binding terjadi pada saat suatu identifier
diberi nilai.
• Beberapa jenis deklarasi yang sering dijumpai
adalah:
(a) type declaration
(b) constant declaration
(c) variable declaration
(d) procedure definition

Struktur Bahasa Pemrograman, Modul-4,


68
@Suarga
• Contoh deklarasi variabel sebagai berikut:

• integer x,y,z;
• float a,b,c;
• character g,h;
• boolean n;

Struktur Bahasa Pemrograman, Modul-4,


69
@Suarga
(a) Type Declaration:
• type vektor is array(1..10) of integer;
• vektor dinyatakan sebagai tipe baru berupa array
dengan 10 elemen integer.

• typedef char* alpha; alpha dinyatakan sebagai


tipe pointer dari character
• struct Book { Alpha title, int edn }; Book adalah
tipe baru

(b) Constant Declaration:


• pi : constant float := 3.145;
• twice_pi: constant float := 2.0 * pi;

Struktur Bahasa Pemrograman, Modul-4,


70
@Suarga
(c) Variable Declaration:
• double x, y, z;
• double luas, keliling;

(d) Function Declaration:


• double luas(double x,double y) {
return (x*y);
}

• double keliling(double x, double y) {


return (2 * (x+y) );
}

4. Operator
• Operator adalah simbol operasi terhadap data dan
variabel
• Operator diperlukan ketika beberapa variabel
dihubungkan satu dengan yang lainnya misalnya
dalam penilaian suatu ekspressi.
• Ada beberapa jenis operator yang sering
digunakan dalam bahasa program, antara lain:
– aritmetika
– logika
– relasional
Struktur Bahasa Pemrograman, Modul-4,
72
@Suarga
• Operator aritmetika adalah operator dalam ekpressi
aritmetika, antara lain:
– tambah +
– kurang -
– kali *
– bagi /
– pangkat ^ atau ** (tdk semua bahasa memiliki)
– tanda kurung ( dan )
• Operator aritmetika memiliki urutan (precedence)
dalam pelaksanaan
– urutan 1 : adalah yang berada dalam tanda kurung ( )
– urutan 2 : pangkat **
– urutan 3 : kali * atau bagi /
– urutan 4 : tambah + atau kurang -
Struktur Bahasa Pemrograman, Modul-4,
73
@Suarga
• Operator logika adalah operator untuk
hubungan secara logika seperti AND (&&)
operator OR (||) dan NOT (!).

• Operator relational menyatakan relasi antar


variabel atau antar ekspressi, antara lain:
– lebih besar >
– lebih besar atau sama >=
– sama besar ==
– lebih kecil <
– lebih kecil atau sama <=
– tidak sama != atau <> atau ~=
Struktur Bahasa Pemrograman, Modul-4,
74
@Suarga
Struktur Bahasa Pemrograman, Modul-4,
75
@Suarga
5. Instruksi Input / Output
• (1) Instruksi input-output: setiap bahasa program
menyediakan cara untuk komunikasi dengan user, yaitu
menyediakan cara untuk meminta data dari user (input) dan
cara untuk menampilkan data/informasi ke user (output).

• Variasi dari instruksi input antara lain adalah: read, get,


input, scanf, cin, Console.Read(), System.in.read() dan
formatnya pada umumnya seperti:
• (a) read var-data, atau get (var-data)
• (b) var-data = input(‘string’)
• (c) cin >> var-data;
• (d) x = System.in.read()

Struktur Bahasa Pemrograman, Modul-4,


76
@Suarga
• Variasi dari instruksi output antara lain adalah:
write, print, put, cout, printf, Console.Write(),
System.out.print(), dan formatnya pada
umum-nya seperti:
• (a) write(var-data), write(“string ..”, var-data)
• (b) print(“string..”, vardata), put(var-data),
put(“string”)
• (c) cout << “string ..” << vardata
• (d) System.out.println(x)
Struktur Bahasa Pemrograman, Modul-4,
77
@Suarga
6. Instruksi Seleksi
• Instruksi seleksi (selection statement)
menyediakan cara untuk memilih instruksi
berikutnya berdasarkan suatu syarat / kondisi.
• Bentuk seleksi dapat dibagi menjadi:
– Two-way selection (dua pilihan)
– Multiple selection (pilihan ganda)

Struktur Bahasa Pemrograman, Modul-4,


78
@Suarga
Two-way Selection
• Semantik: Pilihan pertama dilaksanakan apabila syarat
yang diberikan dapat terpenuhi, dan pilihan kedua
dikerjakan apabila syarat tersebut tidak terpenuhi.
• Bentuk:
– if (syarat) then pilihan-1 else pilihan-2;
• Syarat adalah ekspressi logik/boolean bernilai true
(benar, terpenuhi) atau false (salah, tdk terpenuhi).
• Variasi instruksi: beberapa bahasa tidak menggunakan
clause then, namun clause else tetap ada.
• Beberapa bahasa mengharuskan pemakaian kurung { }
pada pilihan.

Struktur Bahasa Pemrograman, Modul-4,


79
@Suarga
• Contoh bentuk instruksi:
• C, C++, C++, Java:
if (sum == 0) {
if (count == 0)
result = 0;
}
else
result = 1;

• Ruby:
if sum == 0 then
if count == 0 then
result = 0
else
result = 1
end
end

Struktur Bahasa Pemrograman, Modul-4,


80
@Suarga
Multiple Selections
• Instruksi seleksi yang memungkinkan lebih dari dua
seleksi, n-selections
• Bentuk umum:
switch (expression) {
case constant_expression1:statement1;
. . .
case constantn: statement_n;
[default: statementn+1]
}

• Variasi instruksi: beberapa bahasa mengharuskan


clause break setelah statement. Beberapa yang lain
tidak memakai switch, tetapi case(variabel)
menggantikan switch, sehingga selanjutnya langsung
ke constant_expression

Struktur Bahasa Pemrograman, Modul-4,


81
@Suarga
• Contoh beberapa instruksi multiple selection:
• C#
switch (value) {
case -1:
Negatives++;
break;
case 0:
Zeros++;
goto case 1;
case 1:
Positives++;
default:
Console.WriteLine("Error in switch \n");
}

Struktur Bahasa Pemrograman, Modul-4,


82
@Suarga
• Ruby:
case
when count < 10 then bag1 = true
when count < 100 then bag2 = true
when count < 1000 then bag3 = true
end

• C++:
switch (x) {
case 1:
cout << "x is 1";
break;
case 2:
cout << "x is 2";
break;
default:
cout << "value of x unknown";
}

Struktur Bahasa Pemrograman, Modul-4,


83
@Suarga
Multiple selection pakai if
if count < 10 :
bag1 = True
elif count < 100 :
bag2 = True
elif count < 1000 :
bag3 = True
else:
bag4 = True

Bila ada n pilihan maka jumlah if harus (n-1).

if count < 10 :
Struktur Bahasa Pemrograman, Modul-4,
84
bag1 = True @Suarga
7. Instruksi Perulangan
• Instruksi Perulangan: adalah instruksi untuk
melakukan perulangan terhadap serangkain
instruksi lainnya.
• Ada beberapa bentuk umum dari instruksi
perulangan, antara lain:
(a) for n=awal to akhir
(b) for (n=awal; n < akhir; n++)
(c) for x in (list)
(d) while (x < akhir) do {...}
(e) do {...} until (x > akhir)
(f) repeat {...} until ( x > akhir)

Struktur Bahasa Pemrograman, Modul-4,


85
@Suarga
• Contoh: menampilkan “Halo…” 10 kali
(a) for n=1 to 10 print(“Halo…”);
(b) for (n=0; n < 10; n++) cout << “Halo …”;
(c) for x in (1..10) do print(“Halo …”);
(d) i = 0;
while ( i < 10) do
write(“Halo …”);
i = i + 1;
endwhile.
(e) x=1;
do print(“Halo…”);
x=x+1;
until (x > 10);

Struktur Bahasa Pemrograman, Modul-4,


86
@Suarga
8. Penanganan File
• File adalah media untuk menyimpan data (data
storage)
• Sistem operasi membebaskan user dari kerumitan
dalam penanganan file yang dapat saja terjadi
pada media-media fisik yang berbeda, pada lokasi
berbeda, dengan cara perekaman dan pembacaan
secara fisik berbeda.
• Sistem operasi menyediakan sistem file secara
logik, sehingga dari sisi pemrograman tidak ada
perbedaan menyolok antara pemakaian file di
hard-disk, flash-disk, dan sebagainya.
Struktur Bahasa Pemrograman, Modul-4,
87
@Suarga
• Suatu file memiliki beberapa atribut, antara lain:
– Nama file : nama simbolik dari file sehingga user dan
sistem operasi dapat meng-identifikasi file.
– Tipe file : identifikasi tentang jenis file, seperti file
binary, teks, ASCII, dsb
– Identifier : identifikasi file untuk keperluan sistem,
sehingga sistem dapa memeriksa keberadaanya di
dalam sistem file.
– Lokasi : suatu pointer ke perangkat dimana file berada
– Size : ukuran dari file (byte, word, atau block)
– Protection : kontrol terhadap akses ke file, apakah
hanya bisa dibaca (read) atau bisa di-isi (write), atau
lainnya.
– Time, date, user identification : informasi tentang
kapan file di-ciptakan, kapan terakhir dibaca atau
dimodifikasi, dan siapa yang akses terakhir.
Struktur Bahasa Pemrograman, Modul-4,
88
@Suarga
• Operasi terhadap File:
– Creating a file : menciptakan satu file, pada saat operasi ini
dilakukan maka pertama sistem akan memeriksa apakah
ada tempat di storage untuk file ini, bila ada maka VTC akan
ditambah dengan atribut file ini.
– Writing a file : ketika perintah merekam ke file diberikan
maka sistem akan memeriksa VTC untuk memastikan
keberadaan file tersebut kemudian pointer rekam ditujukan
ke posisi rekam, data direkam, kemudian posisi pointer
rekam diubah.
– Reading a file : ketika perintah membaca file diberikan
maka sistem akan memeriksa VTC untuk memastikan file ini
ada. Selanjutnya bila ada maka pointer baca akan
ditempatkan pada posisi sesuai permintaan, misalnya
apakan baca dari awal atau dari posisi baca sebelumnya.
Setelah selesai posisi terakhir akan diperbaharui.
– Repositioning within a file : menempatkan pointer dari
suatu file terjadi ketika diadakan pencarian (seek) suatu
record dalam file.
Struktur Bahasa Pemrograman, Modul-4,
89
@Suarga
– Deleting a file : ketika suatu file akan dihapus maka
pertama sistem akan mencari file ini dalam VTC, bila
ditemukan maka nama file dihapus dari VTC dan space
yang digunakan-nya akan dilepas.
– Truncating a file : operasi file untuk menghapus isi file
dan nama file tetap ada pada VTC, ketika perintah ini
muncul maka pada hakekatnya sistem hanya
mengganti size (ukuran file) menjadi nol, sehingga
perekaman berikutnya akan mulai dari awal, atribut
lain tidak berubah.
• Atribut atribut ini tersimpan pada direktori file
yang juga terdapat pada storage, direktori ini
sering disebut sebagai: VTC (Volume Table of
Contents). Tentu saja VTC harus nonvolatile,
sehingga dapat dimuat ke dalam RAM setiap saat
akses file diperlukan.
Struktur Bahasa Pemrograman, Modul-4,
90
@Suarga
Struktur Bahasa Pemrograman, Modul-4,
91
@Suarga
9. Fungsi / Subprogram
• Prosedur adalah abstraction dari proses, bentuknya
dua macam:
– function procedure
– proper procedure
• Function procedure merupakan abstraksi dari
suatu expressi, sehingga harus mengembalikan
hasil ekspressi.
• Proper procedure adalah abstraksi dari rentetan
instruksi, atau serangkaian instruksi dapat diwakili
oleh satu baris panggilan ke prosedur.
Struktur Bahasa Pemrograman, Modul-4,
92
@Suarga
• Beberapa bahasa memakai istilah fungsi /
function untuk proses terpisah yang
mengembalikan nilai.
• Kemudian memakai istilah prosedur /
procedure untuk proses terpisah yang tidak
mengembalikan nilai.
• Beberapa bahasa lainnya memakai istilah
fungsi untuk yang mengembalikan nilai
maupun yang tidak mengembalikan nilai.
Istilah prosedur tidak dikenal pada bahasa
tersebut
Struktur Bahasa Pemrograman, Modul-4,
93
@Suarga
• Contoh: fungsi menukar nilai dalam C
void swap2(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}

• C++
void swap2(int &a, int &b) {
int temp = a;
a = b;
b = temp;
}
• Contoh diatas adalah bentuk fungsi, dimana nilai
dipertukarkan, dikembalikan memakai pointer * (C)
atau reference & (C++) .
Struktur Bahasa Pemrograman, Modul-4,
94
@Suarga
• Fungsi dalam Python:
def Fibo(n) :
if (n < 2)
return n
else:
return (Fibo(n-1) + Fibo(n-2))

• Fungsi dalam Java:


public static int minFunction(int n1, int n2) {
int min;
if (n1 > n2)
min = n2;
else
min = n1;
return min;
}
Struktur Bahasa Pemrograman, Modul-4,
95
@Suarga
• Procedure dari ADA
procedure Push(Stk : in out Stack_Type;
Element : in Integer) is
begin
if Stk.Topsub >= Max_Size then
Put_Line("ERROR - Stack overflow");
else
Stk.Topsub := Stk.Topsub + 1;
Stk.List(Topsub) := Element;
end if;
end Push;

Struktur Bahasa Pemrograman, Modul-4,


96
@Suarga
Variabel Local dan Global
• Penggunaan Prosedur pada suatu program menyebabkan
munculnya dua kategori variabel, yaitu variabel lokal dan
variabel global.
• Variabel Lokal adalah variabel yang hanya dikenal dan
berlaku dalam suatu prosedur saja.
• Variabel Global adalah variabel yang berlaku di semua
bagian program dan di semua prosedur. Ingat scope dari
identifier.
• Semua variabel yang didefinisikan pada deklarasi suatu
prosedur adalah variabel lokal, dan variabel-variabel yang
didefinisikan pada deklarasi algoritma/program utama
adalah variabel global. Beberapa bahasa memakai predikat
global untuk mendefinisikan variabel global, dan predical
local untuk variabel lokal.
Struktur Bahasa Pemrograman, Modul-4,
97
@Suarga
Parameter
• Ketika suatu prosedur dipanggil maka pada hakekatnya
bisa dilakukan pertukaran data antara program utama
dan prosedur. Pertukaran ini dilakukan melalui
parameter.
• Parameter Aktual adalah parameter yang disertakan
pada saat prosedur dipanggil untuk dilaksanakan,
sering disebut sebagai argumen. Kadangkala
bentuknya adalah nilai-data.
• Parameter Formal adalah parameter yang dituliskan
pada definisi suatu prosedur / fungsi, pada umumnya
berbentuk variabel yang disiapkan untuk menerima
nilai-data parameter aktual.

Struktur Bahasa Pemrograman, Modul-4,


98
@Suarga
• Proses penyerahan nilai dari argumen ke parameter
formal dapat dilakukan melalui dalah satu dari dua
cara:
(a) copy parameter: nilai parameter aktual/ argumen di-
copy langsung oleh parameter formal, berlaku bagi
parameter input dan parameter output. Pada kasus ini
terjadi binding parameter formal ke variabel lokal yang
merupakan copy dari argument. Perubahan parameter
formal tidak mempengaruhi parameter aktual, hanya
copy-nya yang berubah.
(b) copy referensi/address: alamat dari parameter aktual
dicopy bukan nilai-nya sebagai akibatnya perubahan nilai
pada parameter formal otomatis merubah nilai
parameter aktual, berlaku pada parameter input-output.
Pada kasus ini terjadi binding antara parameter aktual
dan parameter formal.
Struktur Bahasa Pemrograman, Modul-4,
99
@Suarga

Anda mungkin juga menyukai