Anda di halaman 1dari 17

SINTAKS

Analisa Leksikal dan Analisa Sintaksis


SINTAKS
 Sintaks merupakan kumpulan aturan yang mendefenisikan suatu bentuk bahasa. Sintaks
mendefenisikan bagaimana suatu kata dikembangkan menjadi suatu statement yang benar
sehingga dapat disusun menjadi suatu program yang dapat berjalan dengan benar.

 Sintaks dari bahasa pemrograman di defenisikan dengan 2 kumpulan aturan, yaitu:

1. Aturan Lexical (Lexical Analysis)/ Scanner


2. Aturan Syntactic (Syntactic Analyzer)/ Parser
 Aturan leksikal menspesifikasikan kumpulan karakter yang terdapat dalam alfabet dari bahasa
dan cara supaya karakter-karakter tersebut dikombinasikan ke dalam kata-kata yang valid dan
dapat diterima.
 Suatu bahasa pemrograman juga dibangun berdasarkan elemen-elemen syntactic, yang dapat
membentuk suatu statemen-statemen dalam bahasa pemrograman. Elemen-elemen tersebut
antara lain:
1. Himpunan karakter
2. Identifier
3. Simbol untuk operator
4. Keyword dan reserved word
5. Noise word
6. Komentar
7. Blank
8. Delimiter dan tanda kurung
KONSEP DAN NOTASI BAHASA
 Alfabet : himpunan hingga yang tidak kosong (hampa) dari symbol. Symbol anggota dari
alfabet dinamakan huruf atau karakter atau token.
Contoh : ∑1 = {a, b, c, .., z} ∑2 = {α, β, γ, δ}
Contoh alfabet pada Basic : 26 huruf besar, 26 huruf kecil, 10 angka, dan symbol
khusus seperti : ‘(‘, ‘)’, ‘.’, ‘+’ dsb
 Bahasa : merupakan himpunan hingga ataupun tak hingga dari kalimat atau kumpulan kalimat.
 Tata Bahasa atau Grammar : sekumpulan dari himpunan variabel-variabel, symbol-symbol
terminal, symbol non terminal, symbol awal yang dibatasi oleh aturan-aturan produksi.
 Tata bahasa dalam bahasa pemrograman merupakan suatu kumpulan aturan (disebut
production) yang menentukan urutan-urutan karakter (lexical token).
 Tata Bahasa G didefinisikan sebagai pasangan 4 tuple yaitu V T, VN, P dan S, yang dituliskan: G = (VT ,
VN, P, S), dimana:
VT : Himpunan simbol-simbol terminal
VN : Himpunan simbol-simbol non-terminal
P : Himpunan produksi
S : Simbol awal
Ketentuan notasi
1. Simbol-simbol berikut adalah terminal
 Huruf kecil awal alfabet seperti a,b dan c
 Simbol operator seperti +, -, dan sebagainya.
 Simbol tanda baca seperti tanda kurung, koma dan sebagainya.
 Digit 0,1,2, …, 9
 Rangkaian tercetak tebal seperti if, then, else

2. Simbol-simbol berikut adalah non-terminal:


 Huruf besar awal alfabet seperti A, B, dan C.
 Huruf S, jika muncul biasanya dianggap sebagai simbol awal
 Nama dengan huruf kecil seperti expr atau stmt.
 Tahun 1956 -1959 Noam Chomsky melakukan penggolongan tingkatan dalam bahasa, yaitu
menjadi 4 class yang disebut dengan Hirarki Chomsky.
 Tahun 1959 Backus memperkenalkan notasi formal baru untuk sintaks bahasa yang lebih
spesifik.
 Peter Nour (1960) merevisi metode dari sintaks yang sekarang dikenal dengan BNF (Backus
Nour Form)
 Aturan produksi dinyatakan dalam bentuk : α  β (α menghasilkan(menurunkan) β)
 α simbol-simbol untuk ruas kiri, β simbol-simbol untuk ruas kanan

Contoh:
 Berikut ini adalah tata bahasa “barisan dari angka-angka yang dipisahkan oleh tanda plus atau
minus”.
list  list + digit
list  list – digit
list  digit
digit  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
HIRARKI CHOMSKY
Unrestricted
Context Sensitive
Context Free
Regular

Keterangan Gambar :

Tipe 0 / Unrestricted Grammar (UG): tidak ada batasan pada aturan produksi
Abc → De
Tipe 1 / Context Sensitive Grammar (CSG) : panjang string ruas kiri harus < (lebih kecil) atau = (sama dengan) ruas kanan
Ab → DeF
CD → eF
Tipe 2 / Context Free Grammar (CFG) : ruas kiri haruslah tepat satu symbol variabel, yaitu simbol non terminal
B → CDeFg
D → BcDe
Tipe 3 / Regular Grammar (RG): ruas kanan hanya memiliki maksimal satu symbol non terminal dan diletakkan paling
kanan sendiri
A→e
A → efg
A → efgH
C→D
NOTASI BNF (BACKUS – NOUR FORM)
 Aturan-aturan produksi dapat dinyatakan dalam bentuk BNF ( Backus Naur Form )

Beberapa simbol yang dipakai dalam notasi BNF:

Contoh,
terdapat aturan produksi sebagai berikut :
E  T | T+E | T-E
Ta
Notasi BNF :
<E> ::= <T> | <T> + <E> | <T> - <E>
<T> ::= a
SYNTAX ANALYZER (PARSER)

 Bertugas memeriksa kebenaran dan urutan dari token-token yang terbentuk oleh Lexical
Analysis
 Pengelompokan token-token kedalam class syntax (bentuk sintaks), seperti prosedur,
statement dan expression
 Grammar dipakai oleh syntax analyzer untuk menentukan struktur dari program sumber
 Proses pendeteksian (pengenalan token) disebut dengan parsing, maka syntax analyzer sering
disebut dengan parser
 Pohon sintaks yang dihasikan digunakan untuk semantic analyzer yang bertugas untuk
menentukan maksud dari program sumber, misalnya operator penjumlahan maka semantic
analyzer akan mengambil aksi apa yang harus dilakukan
PARSING ATAU PROSES PENURUNAN
Berguna untuk menggambarkan bagaimana cara memperoleh suatu untai (string) dengan cara
menurunkan atau mengganti simbol-simbol variabel menjadi terminal. Setiap simbol variabel akan
diturunkan atau diganti menjadi terminal.
Proses penurunan (atau parsing) bisa dilakukan antara lain dengan cara:
a. Penurunan melalui arah kiri (leftmost derivation) : simbol variabel terkiri yang diperluas lebih
dulu.
b. Penurunan melalui arah kanan (rightmost derivation) : simbol variabel terkanan yang diperluas
lebih dulu.

METODE PARSING
Ada 2 metoda parsing : top-down dan bottom-up.

Parsing Top-Down : Parsing dimulai dari simbol awal S sampai kalimat x


Parsing bottom-up : Parsing dimulai dari kalimat x sampai simbol awal S
CONTOH 1
1. Diberikan Grammar dengan aturan Produksi:
list  list + digit
list  list – digit
list  digit
digit  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Uraikan untuk membentuk Kalimat: 9-5+2

Jawab:
LeftMost Derivation (Penurunan Kiri) RightMost Derivation:

list  list + digit list  list + digit


 list - digit + digit  list + 2
 digit - digit + digit  list - digit + 2
 9 - digit + digit  list - 5 + 2
 9 - 5 + digit  digit - 5 + 2
9-5+2 9-5+2
Parsing Top-Down:
CONTOH 2
1. Diketahui tata bahasa bebas konteks (CFG, context free grammar) memiliki aturan produksi
sebagai berikut:
S  aAS | a
A  SbA | ba
Uraikan untuk kalimat: aabbaa
CONTOH 3
1. Diketahui tata bahasa bebas konteks memiliki aturan produksi:
S  aB | bA
A  a | aS | bAA
B  b | bS | aBB
Uraikan penurunan untuk untai ’aaabbabbba’
CONTOH 4
1. Diberikan sebuah grammar yang menyajikan operasi aritmatika sederhana meliputi
penambahan(+), pengurangan(-), perkalian(*), dan pembagian (/). Symbol diartikan sebagai
suatu nama variabel atau identifier :
VN = { E, T, F}, VT = {i, *, /, +, -, (,)}, S = E
dengan aturan produksi:
ET|E+T|E-T
TF|T*F|T/F
F(E)|i
Uraikan untuk kalimat:
a. i + i + i
b. ( i + i ) / i
CONTOH 5:
<program> → BEGIN <stat_list> END
<Stat_list> → <stat>│ <stat>; <stat_list>
<stat> → <var> := <expression>
<expression> → <term> │ <term><op1><expression>
<term> → <factor> │<factor><op2><term>
<factor> → <var> │ <constant>
 
<var> → A│ B │..│Z
<op1> → +│ - │=
<op2> → ^│ * │/
<constant> → <real_number> │ <integer_part>
<real_number> → <integer_part> │ <fraction>
<integer_part> → <digit> │ <integer_part> <digit>
<fraction> → <digit> │ <digit> <fraction>
<digit> → 0 │ 1 │ .. │ 9
 
Uraikan untuk kalimat:
Begin
A := 1;
B := A + 2
End

Anda mungkin juga menyukai