Anda di halaman 1dari 3

LAPORAN AKHIR PRATIKUM

Mata Pratikum : Teknik Kompilasi


Kelas : 4IA22
Pratikum Ke - :4
Tanggal : 21 Januari 2021
Materi : Tabel Parsing
NPM : 53417556
Nama : META FITRIA K
Ketua Asisten :
Nama Asisten :
Paraf Asisten :
Jumlah Lembar : 3 Lembar

LABORATORIUM TEKNIKINFORMATIKA

UNIVERSITAS GUNADARMA
2021
Soal untuk Laporan Akhir Praktikum Pertemuan 4
Tentukan tabel parsing dari kedua produksi berikut:
1. S -> AB • • • • K -> LK’
2. A -> Ca | e • K’ -> /LK’ | Ɛ L
3. B -> BaAC | e -> ML’
4. C -> b | e
L’ -> -ML’ | Ɛ
M -> +M | (K) | x |
Berikan penjelasan dari tabel yang kalian y
buat.

Jawaban:

Aturan produksi pertama


• FIRST(S) = { b, ε } • FOLLOW(S) =
{$}
• FIRST(A) = { b, ε } FIRST(B) = { c } • FOLLOW(A) = { c, b, a, $ }
• FOLLOW(B) =
• { $}
• FIRST(B’) = { a } FOLLOW(B’) = { $
• FIRST(C) = { b, ε } }

FOLLOW(C) = { a, Tabel
$} Parsing
Simbol Input
Non-Terminal
a b c $
S error S -> AB error S -> ε
A A -> ε A -> Ca A -> ε A -> ε
A -> ε
B error error B -> cB’ B -> ε
B’ B’ -> aACB’ error error B’ -> ε
C C -> ε C -> b error C -> ε

Penjelasan:
1. Kolom S kedua (S -> AB) didapat dari FIRST(S) = { b } yang diambil dari aturan
produksi S -> AB. Kolom S keempat diambil dari FOLLOW(S) = { $ }
2. Kolom A kedua (A -> Ca) didapat dari FIRST(A) = { b, ε } yang diambil dari aturan
produksi A -> Ca. Kolom A lain (A -> ε) didapat dari FOLLOW(A) = { c, b, a, $ }
3. Kolom B ketiga (B -> cB’) didapat dari FIRST(B) = { c } yang diambil dari aturan
produksi B -> cB’. Kolom B keempat (B -> ε) diambil dari FOLLOW(B) = { $ }
4. Kolom B’ pertama (B’ -> aACB’) didapat dari FIRST(B’) = { a, ε } yang diambil
dari aturan produksi B’ -> aACB’ (aturan ini merupakan hasil rekursif kiri dari B ->
BaAC | ε). Kolom B’ keempat (B -> ε) diambil dari FOLLOW(B’) = { $ }
5. Kolom C kedua (C -> b) didapat dari FIRST(C) = { b, ε } yang diambil dari aturan
produksi C -> b. Kolom C kedua dan keempat (C -> ε) diambil dari FOLLOW(C’) =
{ a, $ }

• FIRST(M) = { +, (, x, y }
Aturan produksi kedua Tabel parsing
• FIRST(K) = { +, (, x, y } • FOLLOW(K) = { $, ) }
• FIRST(K’) = { /, ε } • FOLLOW(K’) = { $, ) }
• FIRST(L) = { +, (, x, y } • FOLLOW(L) = { /, $, ) }
• FIRST(L’) = { -, ε } • FOLLOW(L’) = { /, $, ) }
• FOLLOW(M) = { -, /, $, )
}
Non- Simbol Input
Terminal + - ( ) / x y $
K K-> LK’ error K-> LK’ K -> ε error K-> K-> K -> ε
LK’ LK’
K’ error error error K’ -> ε K’-> /LK’ error error K’ -> ε
L L-> ML’ error L-> ML’ L -> ε L -> ε L-> L-> L -> ε
ML’ ML’
L’ error L’-> ML’ error L’ -> ε L’ -> ε error error L’ -> ε

M M-> +M M -> ε M-> (K) M -> ε M -> ε M-> x M-> y M -> ε

Penjelasan:
1. Kolom K pertama, ketiga, keenam, dan ketujuh (K-> LK’) didapat dari FIRST(K) = {
+, (, x, y } yang diambil dari aturan produksi K-> LK’. Kolom K keempat dan
kedelapan (K -> ε) diambil dari FOLLOW(K) = { $, ) }
2. Kolom K’ kelima (K’-> /LK’) didapat dari FIRST(K’) = { /, ε } yang diambil dari
aturan produksi K’-> /LK’. Kolom K’ keempat dan kedelapan (K’ -> ε) didapat dari
FOLLOW(K’) = { $, ) }
3. Kolom L pertama, ketiga, keenam, dan ketujuh (L-> ML’) didapat dari FIRST(L) = {
+, (, x, y } yang diambil dari aturan produksi L-> ML’. Kolom L keempat, kelima dan
kedelapan (L -> ε) diambil dari FOLLOW(L) = { /, $, ) }
4. Kolom L’ kedua (L’-> -ML’) didapat dari FIRST(L’) = { -, ε } yang diambil dari
aturan produksi L’-> -ML’. Kolom L’ keempat, kelima, dan kedelapan (L’ -> ε)
diambil dari FOLLOW(L’) = { /, $, ) }
5. Kolom M pertama, ketiga, keenam, dan ketujuh didapat dari FIRST(M) = { +, (, x, y }
yang diambil dari aturan produksi M -> +M | (K) | x | y. Kolom M lainnya (M -> ε)
diambil dari FOLLOW(M) = { -, /, $, ) }

Anda mungkin juga menyukai