Anda di halaman 1dari 21

ALGORITMA PEMROGRAMAN 1C

SINTAKS
Indah Wahyuni
Konsep Bhs. Pemrograman, 2012
PENDAHULUAN
 Bahasa mesin adalah bentuk terendah komputer.
Kita dapat berhubungan langsung dengan bagian-
bagian yang ada didalam komputer seperti bits,
register. Bahasa mesin terdiri dari bit-bit 0 dan 1.

Sintaks, Indah Wahyuni


 Bahasa tingkat tinggi adalah suatu bahasa yang
dapat dimengerti baik oleh manusia maupun
komputer.
 Pada bahasa tingkat tinggi kedalam bahasa mesin
dibutuhkan sesuatu untuk menterjemahkan agar
mesin komputer mengerti apa yang diinginkan oleh
manusia, yaitu:
1. Interpreter
2
2. Compiler
Konsep Bhs. Pemrograman, 2012
SINTAKS
 Sintaks merupakan kumpulan aturan yang
mendefenisikan suatu bentuk bahasa.
 Sintaks mendefenisikan bagaimana suatu kata
dikembangkan menjadi suatu statement yang

Sintaks, Indah Wahyuni


benar sehingga dapat disusun menjadi suatu
program yang dapat berjalan dengan benar.
 Sintaks dari bahasa pemrograma didefenisikan
dengan 2 kumpulan aturan, yaitu:
1. Aturan Lexical (Lexical Analysis)/ Scanner
2. Aturan Syntactic (Syntactic Analyzer)/ Parser

3
Konsep Bhs. Pemrograman, 2012
KONSEP & NOTASI BAHASA
 Alfabet:Kumpulan dari objek-objek yang
disebut dengan symbol.
 Contoh: ∑ 1 = { a,b,c,….,z}

Sintaks, Indah Wahyuni


∑ 2 = {c,f}
 Bahasa: Kumpulan symbol-simbol yang
ditulis secara berurutan.
 Tata bahasa (Grammar): Sekumpulan
dari himpunan variabel-variabel, simbol-
simbol terminal, simbol non-terminal,
symbol awal yang dibatasi oleh aturan- 4
aturan produksi.
Konsep Bhs. Pemrograman, 2012
GRAMMAR
 Sebuah grammar didefinisikan dengan 4
tipe:
( Vn, Vt, S, Q)

Sintaks, Indah Wahyuni


 Dimana:
 Vn: simbol non terminal (ditulis dgn huruf
besar)
 Vt: simbol terminal (ditulis dgn huruf kecil)
 S: suatu elemen tertentu dari Vn yang
disebut simbo start
 Q: sebuah elemen (α,β) dari Q yang ditulis
5
sebagai α β yang disebut produksi
Konsep Bhs. Pemrograman, 2012
ATURAN PRODUKSI
 Aturan produksi dinyatakan dalam bentuk:
α β ; (α menghasilkan(menurunkan) β)
 α simbol-simbol untuk ruas kiri, β simbol-simbol
untuk ruas kanan

Sintaks, Indah Wahyuni


 Simbol-simbol bisa berupa terminal atau non-
terminal
 Contoh aturan produksi:
 T a, artinya T menghasilkan a
 E T | T + E, artinya E menghasilkan T atau
menghasilkan T + E
6
Konsep Bhs. Pemrograman, 2012 Sintaks, Indah Wahyuni
7
HIRARKI CHOMSKY
Konsep Bhs. Pemrograman, 2012
HIRARKI CHOMSKY
 Tipe 0 ( Unrestricted Grammar)
 Ciri : α, β ∈ (VT |VN)*, |α| > 0
 Tidak ada batasan aturan produksi

Sintaks, Indah Wahyuni


 Abc De

 Tipe 1 (Context Sensitive Grammar)


 Ciri : α, β ∈ (VT |VN)*, 0 < |α| ≤ |β|
 Panjang string ruas kiri harus <= ruas kanan
 Ab DeF
 CD eF 8
Konsep Bhs. Pemrograman, 2012
HIRARKI CHOMSKY
 Tipe 2 (Context Free Grammar)
 Ciri : α ∈ VN , β ∈ (VT | VN)*, |α| > 0
 Ruas kiri haruslah tepat satu simbol variabel non-
terminal

Sintaks, Indah Wahyuni


 B CdeFg
 D BcDe
 Tipe 3 (Regular Grammar)
 Ciri: α ∈ VN, β ∈ {VT , VTVN},atau α ∈ VN, β ∈ {a, bC}
 Ruas kanan hanya memiliki maksimum 1 simbol
non-terminal yang diletakkan paling kanan sendiri
 A efG
9
 A efgH
 C D
Konsep Bhs. Pemrograman, 2012
CONTEXT FREE GRAMMAR
 Contoh
 L(G3) = { an b an | n >= 1 }
 Dimana: G3 = ( {S,C}, {a,b}, S, Q )

Sintaks, Indah Wahyuni


 Dengan Q adalah produksi:
S aCa
C aCa
C b

 Contoh turunan/derifasi untuk a3ba3 :


S aCa
a aCa a
10
aa aCa aa
aaabaaa
Konsep Bhs. Pemrograman, 2012
BACKUS NAUR FORM (BNF)
 Aturan produksi dapat dinyatakan dengan notasi
BNF
 BNF menggunakan abstraksi untuk struktur
sintaks:

Sintaks, Indah Wahyuni


 ::= : sama identik dengan simbol
 | : sama dengan atau
 <> : pengapit simbol non terminal
 {} : elemen yang ada didalamnya merupakan
terminal
 Contoh:
Aturan produksi sebagai berikut :
E T|T+E|T–E
T a 11
Konsep Bhs. Pemrograman, 2012
BACKUS NAUR FORM (BNF)
 Notasi BNF :
E ::= <T> | <T> + <E> | <T> - <E>
T ::= a

Sintaks, Indah Wahyuni


<identifier> ::= <letter> | <identifier><letter>
<letter> ::= a|b|c|…|y|z

12
Konsep Bhs. Pemrograman, 2012
ATURAN LEKSIKAL / LEXICAL ANALYSIS
(SCANNER)
 Berhubungan dengan bahasa sering disebut dengan
SCANNER bertugas sebelum proses syntax analyzer
dan intermediate code dilakukan dimana tugas
analisis leksikal ini mendekomposisikan program

Sintaks, Indah Wahyuni


sumber menjadi bagian-bagian kecil.
 Tugas-tugasnya secara detil adalah :
1. Mengidentifikasi semua pesan yang mengandung
bahasa
2. Mentransformasikan ke token-token (simbol terminal)
3. Menentukan jenis dari token-token
4. Menangani kesalahan
5. Menangani table simbol
13
6. Scanner di desain untuk mengenali keyword, operator,
identifier
Konsep Bhs. Pemrograman, 2012
ATURAN LEKSIKAL / LEXICAL ANALYSIS
(SCANNER)
 Contoh: Besaran lexical (tergantung
programnya)
 Identifier dapat berupa keyword seperti : IF THEN
ELSE, BEGIN….END (pada PASCAL), integer
(PASCAL), int,float (Bahasa C)

Sintaks, Indah Wahyuni


 Konstanta besaran yang berupa bilangan bulat
(integer), bilangan pecahan (float/real), Boolean
(true/false), string dsb
 Operator : Operator aritmatika, operator logika
(and, or,not), operator relational (<,>,=,!=)
 Delimiter : berguna sebagai pemisah / pembatas
seperti kurung buka, kurung tutup, titik, koma, titik
dua, titik koma.
 White space : pemisah yang diabaikan oleh program 14
seperti enter, spasi
Konsep Bhs. Pemrograman, 2012
ATURAN LEKSIKAL / LEXICAL ANALYSIS
(SCANNER)
 Bilangan penyajian internal
 Identifier (variabel) : 1
 Identifier (konstanta) : 2
 Identifier (label) : 3

Sintaks, Indah Wahyuni


 Identifier (keyword) : 4
 Operator (penjumlahan) : 5
 Operator (penugasan) : 6
 Operator (pengurangan) : 7
 Operator (perkalian) : 8
 Operator (pembagian) : 9
 Tanda baca (koma) : 10
15
 Tanda baca (titik dua) : 11
 Tanda baca (titik koma) : 12
Konsep Bhs. Pemrograman, 2012
ATURAN LEKSIKAL / LEXICAL ANALYSIS
(SCANNER)
 Contoh. Statement : Fahrenheit := 32 + celcius *
1.8
Token Bil. Penyajian Besaran Leksikal Lokasi

Sintaks, Indah Wahyuni


Fahrenheit 1 Identifier 1
:= 6 Operator (penugasan) 0
32 2 Konstanta (integer) 2
Operator
+ 5 0
(penjumlahan)
Celcius 1 Identifier 3
* 8 Operator (perkalian) 0
16
1.8 2 Konstanta (real) 4
Konsep Bhs. Pemrograman, 2012
ATURAN SYNTACTIC / SYNTAX ANALYZER
(PARSER)
 Bertugas memeriksa kebenaran dari urutan
token-token yang terbentuk oleh leksikal
analisis.
 Pengelompokkan ke dalam class sintaks

Sintaks, Indah Wahyuni


(bentuk sintaks) seperti procedure, stat n dan
ekspresi.
 Grammar dipakai oleh sintaks analyzer untuk
menetukan struktur dari program sumber.
 Proses pendeteksian (pengenalan token)
disebut dengan parsing, maka syntax analyzer
sering disebut dengan parser. 17
Konsep Bhs. Pemrograman, 2012
ATURAN SYNTACTIC / SYNTAX ANALYZER
(PARSER)
 Pohon sintaks yang dihasilkan digunakan untuk
semantic analyzer yang bertugas untuk
menentukan maksud dari program sumber,
misalnya operator penjumlahan maka semantic

Sintaks, Indah Wahyuni


analyzer akan mengambil aksi apa yang harus
dilakukan.
 Parsing atau proses penurunan dapat dilakukan
dengan:
1. Penurunan terkiri (leftmost derivation): simbol
variabel yang paling kiri diturunkan dahulu
2. Penurunan terkanan (rightmost derivation): simbol
variabel yang paling kanan diturunkan dahulu 18
Konsep Bhs. Pemrograman, 2012
ATURAN SYNTACTIC / SYNTAX ANALYZER
(PARSER)
 Ada 2 metoda parsing:
1. TOP-DOWN PARSING: Konstruksi pohon
sintaks dimulai dari akar dilanjutkan turun
kebawah menuju daun
Meliputi, Backtrack: Brute Force

Sintaks, Indah Wahyuni


 Memilih aturan produksi mulaik dari kiri
 Meng-expand simbol nonterminal sampai
simbol terminal
 Bila terjadi kesalahan (string tidak sesuai)
maka dilakukan back track
 Algoritma ini membuat pohon parsing secara
top-down, yaitu dengan cara mencoba segala
kemungkinan untuk setiap nonterminal
 BOTTOM-UP PARSING: Konstruksi dimulai dari
daun, bergerak keatas menuju akar 19
Konsep Bhs. Pemrograman, 2012
ATURAN SYNTACTIC / SYNTAX ANALYZER
(PARSER)
 Contoh: Buatlah derifasi kiri & kanan dari string
aabbaa dari context free grammar
S aAS | a
A SbA | ba

Sintaks, Indah Wahyuni


 Penurunan kiri • Penurunan kanan
S aAS S aAS
a SbA S a Aa
aabA S a SbA a
a Sbba a
aabba S
a a bbaa
aabba a 20
Konsep Bhs. Pemrograman, 2012 Sintaks, Indah Wahyuni
21

Anda mungkin juga menyukai