Anda di halaman 1dari 14

TUGAS 1 TEKNIK KOMPILASI

Nama : Immardion Djara Rohi


N I M : 1906080007

Grammar dan Bahasa

Konsep Dasar :
 Anggota alfabet dinamakan simbol terminal.
 Kalimat adalah deretan hingga simbol-simbol terminal.
 Bahasa adalah himpunan kalimat-kalimat. Anggota bahasa bisa tak
hingga kalimat.
 Simbol-simbol berikut adalah simbol terminal :
 huruf kecil, misalnya : a, b, c, 0, 1, ..
 simbol operator, misalnya : +, , dan 
 simbol tanda baca, misalnya : (, ), dan ;
 string yang tercetak tebal, misalnya : if, then, dan else.
 Simbol-simbol berikut adalah simbol non terminal /Variabel :
 huruf besar, misalnya : A, B, C
 huruf S sebagai simbol awal
 string yang tercetak miring, misalnya : expr
 Huruf yunani melambangkan string yang tersusun atas simbol-
simbol terminal atau simbol-simbol non terminal atau campuran
keduanya, misalnya : , , dan .
 Sebuah produksi dilambangkan sebagai artinya : dalam sebuah
derivasi dapat dilakukan penggantian simbol  dengan simbol .
 Derivasi adalah proses pembentukan sebuah kalimat atau sentensial.
Sebuah derivasi dilambangkan sebagai : 
 Sentensial adalah string yang tersusun atas simbol-simbol terminal
atau simbol-simbol non terminal atau campuran keduanya.
 Kalimat adalah string yang tersusun atas simbol-simbol terminal.
Kalimat adalah merupakan sentensial, sebaliknya belum tentu.

Grammar :
Grammar G didefinisikan sebagai pasangan 4 tuple : V T , V N , S, dan P, dan
dituliskan sebagai G(V T , V N , S, P), dimana :
VT : himpunan simbol-simbol terminal (alfabet) kamus
VN : himpunan simbol-simbol non terminal
SV N : simbol awal (atau simbol start)
P : himpunan produksi
1. Kelas-kelas Bahasa, Mesin Pengenalnya beserta contohnya :

a. Bahasa tipe – 0 (Unretricted Grammar/UG)

Bahasa tipe-0, atau biasa disebut sebagai Un-restricted grammar adalah kelas
bahasa yang paling luas, juga biasa disebut PHRASE STRUCTURED GRAMMAR.
Kelas bahasa Tipe-0 adalah tata-bahasa yang memiliki aturan produksi :    dengan
batasan :
 : minimal terdiri dari 1 simbol Non terminal , atau   {(  N)* N ( N)*}
 : tidak dibatasi, atau :   {(  N)*
Mesin pengenalnya = Mesin Turing
Contoh :
Dimiliki grammar G( ,N ,S , P) dengan  = { a, b } , N={ A, B , S} dan P =
{ SABa, ABB, B ab, ABab, BBBaa}. Perlihatkan bahwa string : abababa
dan aaa adalah string-string yang diproduk oleh grammar tersebut.
Jawab :
Jika dicermati produksi yang ada , terlihat bahwa seluruh produksi yang ada
memenuhi syarat grammar tipe-0, yaitu string kiri dalam aturan produksi
minimal terdiri SATU non terminal.

Penurunan abababa , ditempuh dari proses penurunan : S  ABa  BBBa ababBa


 abababa
Penurunan string aaa ditempuh dengan penurunan berikut: S  ABa  BBBa aaa

b. Bahasa Tipe 1 (Context Sensitive Grammar / CSG):


Tata-bahasa tipe-1, adalah tata-bahasa tipe-0 yang memiliki aturan produksi :  
dengan tambahan batasan :
|  | < |  | jika tidak dalam bentuk S 
yaitu panjang string  lebih kecil atau sama dengan panjang string 
esin Pengenalnya = Linear Bounded Automata, LBA
Contoh :
Dimiliki grammar G( ,N ,S , P) dengan  = { a, b } , N={ A, B , S} dan P = {
SABa, ABB, B ab, ABAAA , Aaa , A }
Apakah kelas bahasa ini termasuk dalam tipe-1? Bandingkan dengan kelas
bahasaa contoh kelas bahasa UG di atas, apakah termasuk tipe -1? Tunjukkan
bahwa string a termasuk anggota bahasa.
Jawab :
Grammar contoh 2 memenuhi tata bahasa tipe-0 dan tipe satu . Sedangkan tata
bahasa pada contoh 1 hanya memenuhi tipe-0 dan tidak memenuhi tipe-1, karena
ada aturan produksi : BBBaa pada contoh 1. Penurunan string "a" ditempuh
dengan :
SABa  AAAa  a a

c. Kelas Bahasa Tipe 2 (Context -Free Grammar / CFG):


Kelas bahasa tipe-1 yang memiliki aturan produksi :   dengan tambahan
batasan:

 : HANYA terdiri dari 1 simbol Non terminal saja, atau   N


 : tidak dibatasi, atau :   {(  N)*
Mesin Pengenalnya = Pushdown Automata( PDA )

Contoh :
Tunjukkan bahwa contoh sebelumnya adalah tidak termasuk pada grammar
tipe 2.
Jawab:
Jika diperhatikan aturan produksi pada contoh 2 : SABa, ABB, B ab,

ABAAA , Aaa , A

Ada aturan : AB AAA ; yaitu aturan produksi dimana ruas kiri (AB) memiliki
panjang lebih dari 1. Ini melanggar aturan untuk grammar tipe- 2, dengan
demikian tidak termasuk grammar tipe-2.

d. Tata-bahasa Tipe 3 ( Regular Grammar):


Tata-bahasa tipe-3, adalah tata-bahasa tipe-2 yang memiliki aturan produksi :  
dengan tambahan batasan :
 : HANYA terdiri dari 1 simbol Non terminal saja, atau   N

 : dalam bentuk salah satu diantara : a, aB, atau 


dimana a adalah simbol terminal dan B adalah simbol Non terminal. Tata bahasa
tipe-3 (regular) merupakan tata bahasa yang paling ketat (paling banyak aturan) dari
hierarkhi tata bahasa yang ada.
Mesin Pengenalnya = Finite State Automata, FSA
Secara diagram keempat tata bahasa dapat digambarkan sebagai berikut :

0 = Tipe-0
1 = Tipe-1
2 = Tipe-2
3 = Tipe-3

Gambar 1 Hierarkhi Tata Bahasa (Grammar) menurut Noam Chomsky


Contoh :
Dimiliki grammar G( ,N ,S , P) dengan  = { a, b } , N={ A, B , S} dan P =

{ SaA, AaA, A B, BbB, B }. Tentukan bahasa yang dibangkitkan


oleh tata bahasa regular berikut.
Jawab :
Penurunan : SaAa B aa menghasilkan string : a
Penurunan : SaAaaA aaaA … aaaa..aa B aaa..aaaa..aa
Hasilnya : aaaa..aa

Penurunan : SaAaaA aaaA … aaaa..aa Baaa..abBaaa..aab

Hasilnya : aaa..aab
Penurunan : SaAaaA aaaA … aaaa..aa Baaa..abBaaa..aabbB
aaa..aabb…bBaaa..aabb…baaa..aabb…b
Hasilnya : aaa..aabbb..b
Bahasa yang dibangkitkan adalah "sederatan a dengan jumlah minimal SATU
buah diikuti sederetan b dengan jumlah minimal NOL buah" atau dapat
dituliskan sebagai:
L(G)={aa*b*}
Dimana a*={a0  a1  a2 … a}

b*={b0  b1  b2 …  b }
FINITE STATE AUTOMATA (FSA)

• FSA didefinisikan sebagai pasangan 5 tupel : (Q, ∑, δ, S, F).

Q : himpunan hingga state


∑ : himpunan hingga simbol input (alfabet)
δ : fungsi transisi, menggambarkan transisi state FSA akibat pembacaan simbol
input.
Fungsi transisi ini biasanya diberikan dalam bentuk tabel.
S  Q : state AWAL
F  Q : himpunan state AKHIR

Contoh : FSA untuk mengecek parity ganjil


Q ={Gnp, Gjl} diagram transisi
∑ = {0,1}

tabel transisi
Δ 0 1
Gnp Gnp Gjl
Gjl Gjl Gnp

S = Gnp, F = {Gjl}

• Ada dua jenis FSA :

- Deterministic finite automata (DFA) : transisi state FSA akibat


pembacaan sebuah simbol bersifat tertentu.
δ : Q ∑ Q

- Non deterministik finite automata.(NFA) : transisi state FSA akibat


pembacaan sebuah simbol bersifat tak tentu.
δ : Q ∑  2Q
DFA :

Q = {q0, q1, q2}


δ diberikan dalam tabel berikut :

∑= {a, b} S δ a b
= q0
F = {q0, q1}
q0 q0 q1
q1 q0 q2
q2 q2 q2
a ba

q0 q1 q2 b

a b

Kalimat yang diterima oleh DFA : a, b, aa, ab, ba, aba, bab, abab, baba
Kalimat yang dittolak oleh DFA : bb, abb, abba

DFA ini menerima semua kalimat yang tersusun dari simbol a dan b yang
tidak mengandung substring bb.

Contoh :
Telusurilah, apakah kalimat-kalimat berikut diterima DFA di atas :
abababaa  diterima
aaaabab  diterima
aaabbaba  ditolak
Jawab :
i) q0,abababaa q0,bababaa)   (q1,ababaa) 
 (q0,babaa)  δ (q1,abaa)  δ (q0,baa)  δ (q1,aa)
 (q0,a)  q0
Tracing berakhir di q0 (state AKHIR)  kalimat abababaa diterima
ii) (q0, aaaabab)  (q0,aaabab)  (q0,aabab) 
 (q0,abab)   (q0,bab)   (q1,ab)   (q0,b) 
q1
Tracing berakhir di q1 (state AKHIR)  kalimat aaaababa
diterima
iii) (q0, aaabbaba)   (q0, aabbaba)  (q0, abbaba) 
 (q0, bbaba)   (q1,baba)  (q2,aba) 
(q2,ba)
 δ (q2,a)  q2
Tracing berakhir di q2 (bukan state AKHIR)  kalimat aaabbaba
ditolak
Kesimpulan :
sebuah kalimat diterima oleh DFA di atas jika tracingnya berakhir di
salah satu state AKHIR.

NFA :

Berikut ini sebuah contoh NFA (Q, ∑, δ, S, F). dimana :


Q = {q 0 , q1, q 2 ,q 3 , q 4 }  diberikan dalam tabel berikut :

δ a b c
∑= a, b,c} S = q 0
q0 {q 0 , q1} {q 0 , q 2 {q 0 , q
F = {q 4 } } }
q1 {q1, q 4 } {q1} {q1}
q2 {q 2 } {q 2 , q 4 {q 2 }
}
q3 {q 3 } {q 3 } {q 3 , q
Ilustrasi graf untuk NFA adalah sebagai berikut :

a, b, c a, b, c

a
q0 q
1
c b a

b
q3 q2 q4

a, b, c a, b, c

kalimat yang diterima NFA di atas : aa, bb, cc, aaa, abb, bcc, cbb kalimat yang
tidak diterima NFA di atas : a, b, c, ab, ba, ac, bc

Sebuah kalimat di terima NFA jika :

• salah satu tracing-nya berakhir di state AKHIR, atau


• himpunan state setelah membaca string tersebut mengandung state
AKHIR
2. Himpunan
A. Pengertian himpunan dan macam himpunan
Konsep himpunan pertama kali dicetuskan oleh George Cantor (1845-1918), ahli
mtk berkebangsaan Jerman Semula konsep tersebut kurang populer di kalangan
matematisi, kurang diperhatikan, namun th 1920-an menjadi landasan matematika.
Kata lain dari himpunan yaitu: set, gugus, kelompok, kumpulan. Dalam matematika,
himpunan merupakan pengertian pangkal (tidak didefinisikan, undefined term).
Untuk memahaminya, himpunan sering diartikan sebagai kumpulan objek-objek
(abstrak atau konkret) yang didefinisikan dengan jelas (well defined), jadi
keanggotaannya harus jelas Didefinisikan dengan jelas, berarti himpunan dapat
mengklasifikasikan objek kedalam anggota atau bukan anggota himpunan itu.
• Contoh himpunan:
 Kumpulan nama-nama hewan-hewan berkaki empat
 Kumpulan bilangan bulat antara 3 dan 8
 Kumpulan nama-nama mahasiswa PGSD
• Contoh kumpulan yang bukan himpunan:
o Kumpulan bunga-bunga yang indah
o Kumpulan lukisan yang indah
o Kumpulan nama-nama mahasiswa ilmu komputer yang jago Coding.

Deskripsi Himpunan
• Nama himpunan berupa huruf kapital (Mis.: A, B, G, H, S, C)
• Notasi himpunan berupa kurung kurawal
Contoh:
W : { d, m, p, t }
Objek yang dibicarakan dalam himpunan (Mis. d, m, p, t ) disebut anggota
(elemen, unsur) dan ditulis di dalam kurung kurawal tersebut

Tanda Keanggotaan
Relasi anggota dengan himpunan menggunakan notasi ““ dan yang bukan anggota
menggunakan notasi “”
Contoh:
H : { d, m, p, t }
p  { d, m, p, t } atau p  W
b  { d, m, p, t } atau b  W
Banyaknya anggota H dinotasikan dengan n(H) Jadi n(H) = 4.
Menyatakan Himpunan
1) Cara tabulasi (rooster method, pendaftaran):
Menuliskan anggotanya satu per satu dalam kurung kurawal. A :
{merah, kuning, hijau}
H : {ayam, itik, bebek, angsa}
Anggota-anggota yang sama dianggap sebagai satu anggota
{6, 4, 7, 9, 6, 9, 2} = {2, 4, 6, 7, 9}
{p, c, a, m, p, m, h} memiliki 5 anggota
2) Cara deskriptif (rule method, cara aturan/metode pembentukan himpun-an)
Menuliskan aturan atau perumusan tentang sifat keanggotaannya
M : {x3  x  16, x bilangan genap}
H : {x x nama-nama hewan berkaki dua} P :
{xx bilangan prima kurang dari 15}.

Macam-Macam Himpunan
a) Himpunan kosong
• Suatu himpunan H disebut himpunan kosong jika n(H) = 0.
• Notasi untuk himpunan kosong adalah Ø atau { }
• Contoh himpunan kosong:
 Himpunan nama-nama hewan berkaki tiga
 Himpunan bilangan asli kurang dari satu
 Himpunan bilangan prima genap antara 10 dan 20
 Himpunan nama-nama dosen unila yg berusia lebih dari 500 tahun.

b) Himpunan bagian
• Himpunan A disebut himpunan bagian (Subset) dari himpunan B jika setiap
anggota A juga menjadi anggota B
A  B ⟺ xA xB.
• Himpunan bagian dari {a, d, t} adalah
Ø, {a}, {d}, {t}, {a, d}, {a, t}, {d,t}, dan
{a, d, t} → ada delapan himpunan bagian
• Himpunan bagian sejati dari {a, d, t} adalah Ø,
{a}, {d}, {t}, {a, d}, {a, t}, {d,t}.

c) Himpunan semesta
Himpunan semesta S adalah himpunan yang memuat semua anggota
himpunan yang dibicarakan
Himpunan semesta dari {1,2,3,4,5} antara lain adalah:
a) {0,1,2,3,4,5,6}
b) {x|x bilangan asli}
c) Himpunan bilangan cacah kurang dari 20.

d) Himpunan terhingga dan himpunan takhingga

• Himpunan H disebut himp terhingga (finite set) jika n(H) = c, c bilangan cacah
Contoh:
G : Himpunan nama-nama hari dalam seminggu
N : {7,8,9,10, …, 2015}
• Himpunan D disebut himp takhingga (infinite set, transfinite set) jika n(D)
= ~ Contoh:
F = {2, 3, 4, 5, …}
M : {x2  x  4, x bilangan real}

e) Himpunan terbilang dan himpunan tak terbilang

 Himpunan terbilang , anggotanya dapat ditunjukkan satu per satu


Contoh:
P = {4,5,6, …}
Q = {r, s, t, v, w, k, d, a}
R = {1, 2, 3, …, 138}.
 Himpunan tak terbilang, anggotanya tidak dapat ditunjukkan satu per satu
(kontinu)
Contoh:
D = {x0  x  7, x bilangan rasional}
F = {xx  4, x bilangan real positip}.

f) Himpunan terbatas
 Himpunan terbatas yaitu himpunan yang mempunyai batas Ada
himpunan terbatas kiri dan ada himpunan terbatas kanan
Contoh:
K = {4, 1, 3, 8, 6}
L = {x0  x  7, x bilangan asli}
B = {x0  x  7, x bilangan bulat}.
Himpunan terbatas biasanya beranggotakan bilangan.
Batas yang kecil disebut batas bawah, dan batas yang besar disebut batas atas
Unsur yang menjadi batas itu tidak harus menjadi anggota himpunan Pada
himpunan terhingga yang ditulis secara tabulasi, anggota terkecil menjadi batas
bawah, dan anggota terbesar menjadi batas atas.
Khusus untuk bil real, himpunan tak terbilang (kontinu) bisa dinyatakan dengan
interval atau selang
a) {x | 2 x  7} = (2,7]
b) {x | 2  x  7} = [2,7)
c) {x | 2 x  7} = (2,7)
d) {x | 2  x  7} = [2,7].
B. Relasi himpunan
a. Dua Himpunan Sama
Kedua himpunan tersebut mempunyai anggota yang sama
A = B AB dan BA
A = B ⟺ xA xB  xB xA
Contoh:
A = {5, 2, 7, 2, 9, 8, 7}
B = {8, 8, 2, 7, 5, 9, 8, 5}
maka A = B.
b. Dua himpunan Saling Lepas (Disjoin)
Kedua himpunan tersebut tidak mempunyai anggota yang sama
Contoh:
P = {a, b, c, d}
Q = {2, 4, 6, 8, 9, 3}
Himpunan P dan Q dikatakan saling lepas
c. Dua himpunan saling berpotongan
Antar kedua himpunan tsb, ada anggota yang sama dan ada anggota yang
tidak sama
A = {5, 8, 2, 9}
B = {14, 2, 8, 7, 26}
Himpunan A dan B saling berpotongan (saling beririsan)
d. Dua himpunan, yang satu bagian dari himpunan kedua
Himpunan A disebut himpunan bagian (Subset) dari himpunan B jika
setiap anggota A juga menjadi anggota B
e. Dua himpunan yang Ekivalen.
Himpunan A dikatakan ekivalen dengan himpunan B jika n(A) = n(B).
Contoh:
A = { 4,6,3,2,2,6}
B = { r, k, d, w}
Maka A~B

C. Operasi himpunan
a) Union (gabungan) dua himpunan
• AB = {x|xA atau xB}
• Gabungan dari himpunan A dan B adalah suatu himpunan yang
anggotanya adalah anggota A atau anggota B.
Contoh:
A = {a,c,e}
B = {b, c, d}
maka AB = {a, b, c, d, e}

b) Intersection (Irisan) dua himpunan


• AB = {x|xA dan xB}
• Irisan dari himpunan A dan B adalah suatu himpunan yang anggotanya adalah
anggota A dan sekaligus juga anggota B.
• Contoh:
A = {a,c,d,e}
B = {a, b, e, f, g}
maka A  B = {a, e}

c) Pengurangan himpunan
• A – B = {x|xA dan xB}
• A – B berarti suatu himpunan yang anggotanya adalah anggota A tetapi tidak
menjadi anggota B.
• Contoh:
A = {a,c,d,e}
B = {a, b, e, k, g}
A – B = {c, d}
B – A = {b, k, g}

d) Penjumlahan himpunan (Beda Setangkup)


• A  B = (A – B)  (B – A)
• A  B berarti suatu himpunan yang anggotanya adalah anggota A saja atau anggota
B saja.
• Contoh:
A = {a,c,d,e}
B = {a, b, e, k, g}
A  B = {b, c, d, k, g}
B  A = {b, c, d, k, g}

e) Perkalian (persilangan) himpunan


• A X B = {(x,y) | xA dan yB}
• Persilangan dari himpunan A ke B adalah suatu himpunan yang
anggotanya adalah (x,y) di mana x anggota A dan y anggota B.
• Contoh:
A = {a,b,c}
B = {1, 2}
maka A X B = {(a,1), (a,2), (b,1), (b,2), (c,1), (c, 2)}
B X A = {(1,a), (1,b), (1,c), (2,a), (2,b), (2, c)}

D. Himpunan bilangan.
Barisan bilangan asli : 1, 2, 3, 4, 5, 6, 7, ….
Himpunan bilangan asli A : {1, 2, 3, 4, 5, 6, 7, ….}
Contoh bilangan asli: 7, 4, 9, 28, 13.

E. Diagram Venn
Istilah diagram Venn berasal dari seorang ahli bangsa Inggris yang menjadi tokoh
logika matematika, yaitu John Venn (1834-1923). Ia menulis buku simbolik logic
dalam analisisnya menggunakan banyak diagram khususnya diagram lingkaran,
diagram tersebut kini dikenal nama diagram Venn.
Biasanya himpunan semesta digambarkan sebagai daerah persegi panjang dan suatu
himpunan bagian dari himpunan semesta ditunjukkan dengan daerah kurva tertutup
sederhana. Anggota-anggota suatu himpunan ditunjukkan dengan noktah-noktah
sedangkan jika anggotanya cukup banyak maka noktah sebagai wakil-wakil anggota
himpunan tidak perlu ditulis.

Anda mungkin juga menyukai