Anda di halaman 1dari 7

TEORI BAHASA DAN AUTOMATA

I. PENDAHULUAN
Teori Bahasa
Teori bahasa membicarakan bahasa formal (formal language), terutama untuk
kepentingan perancangan kompilator (compiler) dan pemroses naskah (text
processor). Bahasa formal adalah kumpulan kalimat. Semua kalimat dalam sebuah
bahasa dibangkitkan oleh sebuah tata bahasa (grammar) yang sama. Sebuah bahasa
formal bisa dibangkitkan oleh dua atau lebih tata bahasa berbeda. Dikatakan bahasa
formal karena grammar diciptakan mendahului pembangkitan setiap kalimatnya.
Bahasa manusia bersifat sebaliknya; grammar diciptakan untuk meresmikan kata-kata
yang hidup di masyarakat. Dalam pembicaraan selanutnya !bahasa formal" akan
disebut !bahasa" saa.
Automata
#utomata adalah mesin abstrak yang dapat mengenali (recognize), menerima
(accept), atau membangkitkan (generate) sebuah kalimat dalam bahasa tertentu.
Beberapa Pengertian Dasar
Simbol adalah sebuah entitas abstrak (seperti halnya pengertian titik dalam
geometri). Sebuah huruf atau sebuah angka adalah contoh simbol.
String adalah deretan terbatas (finite) simbol-simbol. Sebagai contoh, ika a, b,
dan c adalah tiga buah simbol maka abcb adalah sebuah string yang dibangun dari
ketiga simbol tersebut.
$ika w adalah sebuah string maka panang string dinyatakan sebagai w dan
didefinisikan sebagai cacahan (banyaknya) simbol yang menyusun string tersebut.
Sebagai contoh, ika w % abcb maka w% &.
String hampa adalah sebuah string dengan nol buah simbol. String hampa
dinyatakan dengan simbol (atau ') sehingga % (. String hampa dapat
dipandang sebagai simbol hampa karena keduanya tersusun dari nol buah simbol.
#lfabet adalah hinpunan hingga (finite set) simbol-simbol
Operasi Dasar String
Diberikan dua string ) x % abc, dan y % 123
*refik string w adalah string yang dihasilkan dari string w dengan menghilangkan
nol atau lebih simbol-simbol paling belakang dari string w tersebut.
+ontoh ) abc, ab, a, dan adalah semua *refi,(x)
*roper*refi, string w adalah string yang dihasilkan dari string w dengan
menghilangkan satu atau lebih simbol-simbol paling belakang dari string w
tersebut.
+ontoh ) ab, a, dan adalah semua *roper*refi,(x)
*ostfi, (atau Sufi,) string w adalah string yang dihasilkan dari string w dengan
menghilangkan nol atau lebih simbol-simbol paling depan dari string w tersebut.
+ontoh ) abc, bc, c, dan adalah semua *ostfi,(x)
*roper*ostfi, (atau *operSufi,) string w adalah string yang dihasilkan dari string
w dengan menghilangkan satu atau lebih simbol-simbol paling depan dari string w
tersebut.
+ontoh ) bc, c, dan adalah semua *roper*ostfi,(x)
-ead string w adalah simbol paling depan dari string w.
+ontoh ) a adalah -ead(x)
hal 1
Tail string w adalah string yang dihasilkan dari string w dengan menghilangkan
simbol paling depan dari string w tersebut.
+ontoh ) bc adalah Tail(x)
Substring string w adalah string yang dihasilkan dari string w dengan
menghilangkan nol atau lebih simbol-simbol paling depan dan.atau simbol-simbol
paling belakang dari string w tersebut.
+ontoh ) abc, ab, bc, a, b, c, dan adalah semua Substring(x)
*roperSubstring string w adalah string yang dihasilkan dari string w dengan
menghilangkan satu atau lebih simbol-simbol paling depan dan.atau simbol-
simbol paling belakang dari string w tersebut.
+ontoh ) ab, bc, a, b, c, dan adalah semua Substring(x)
Subse/uence string w adalah string yang dihasilkan dari string w dengan
menghilangkan nol atau lebih simbol-simbol dari string w tersebut.
+ontoh ) abc, ab, bc, ac, a, b, c, dan adalah semua Subse/uence(x)
*roperSubse/uence string w adalah string yang dihasilkan dari string w dengan
menghilangkan satu atau lebih simbol-simbol dari string w tersebut.
+ontoh ) ab, bc, ac, a, b, c, dan adalah semua Subse/uence(x)
+oncatenation adalah penyambungan dua buah string. 0perator concatenation
adalah concate atau tanpa lambang apapun.
+ontoh ) concate(xy) % xy % abc123
#lternation adalah pilihan satu di antara dua buah string. 0perator alternation
adalah alternate atau .
+ontoh ) alternate(xy) % xy % abc atau 123
1leene +losure ) x2 % xxxxxx3 % xx
4
x
5
3
*ositi6e +losure ) x
+
% xxxxxx3 % xx
4
x
5
3
Beberapa Siat Operasi
Tidak selalu berlaku ) x % *refi,(x)*ostfi,(x)
Selalu berlaku ) x % -ead(x)Tail(x)
Tidak selalu berlaku ) *refi,(x) % *ostfi,(x) atau *refi,(x) *ostfi,(x)
Selalu berlaku ) *roper*refi,(x) *roper*ostfi,(x)
Selalu berlaku ) -ead(x) Tail(x)
Setiap *refi,(x), *roper*refi,(x), *ostfi,(x), *roper*ostfi,(x), -ead(x), dan
Tail(x) adalah Substring(x), tetapi tidak sebaliknya
Setiap Substring(x) adalah Subse/uence(x), tetapi tidak sebaliknya
Dua sifat alabar concatenation )
0perasi concatenation bersifat asosiatif ) x(yz) % (xy)z
7lemen identitas operasi concatenation adalah ) x % x % x
Tiga sifat alabar alternation )
0perasi alternation bersifat komutatif ) xy % yx
0perasi alternation bersifat asosiatif ) x(yz) % (xy)z
7lemen identitas operasi alternation adalah dirinya sendiri ) xx % x
Sifat distributif concatenation terhadap alternation ) x (yz) % xyxz
Beberapa kesamaan )
1esamaan ke-8 ) (x2)2 % (x2)
hal 2
1esamaan ke-4 ) x
+
% x
+
% x2
1esamaan ke-5 ) (xy)2 % xyxxyyxyyx3 % semua string yang
merupakan concatenation dari nol atau lebih x, y, atau keduanya.
II. !RAMMAR DAN BAHASA
"onsep Dasar
8. Dalam pembicaraan grammar, anggota alfabet dinamakan simbol terminal atau
token.
4. 1alimat adalah deretan hingga simbol-simbol terminal.
5. Bahasa adalah himpunan kalimat-kalimat. #nggota bahasa bisa tak hingga
kalimat.
&. Simbol-simbol berikut adalah simbol terminal )
huruf kecil a9al alfabet, misalnya ) a, b, c
simbol operator, misalnya ) :, , dan
simbol tanda baca, misalnya ) (, ), dan ;
string yang tercetak tebal, misalnya ) i, then, dan e#se.
;. Simbol-simbol berikut adalah simbol non terminal )
huruf besar a9al alfabet, misalnya ) #, B, +
huruf S sebagai simbol a9al
string yang tercetak miring, misalnya ) expr dan stmt.
<. -uruf besar akhir alfabet melambangkan simbol terminal atau non terminal,
misalnya ) =, >, ?.
@. -uruf kecil akhir alfabet melambangkan string yang tersusun atas simbol-simbol
terminal, misalnya ) ,, y, A.
B. -uruf yunani melambangkan string yang tersusun atas simbol-simbol terminal
atau simbol-simbol non terminal atau campuran keduanya, misalnya ) , , dan .
C. Sebuah produksi dilambangkan sebagai , artinya ) dalam sebuah deri6asi
dapat dilakukan penggantian simbol dengan simbol .
8(. Simbol dalam produksi berbentuk disebut ruas kiri produksi sedangkan
simbol disebut ruas kanan produksi.
88. Deri6asi adalah proses pembentukan sebuah kalimat atau sentensial. Sebuah
deri6asi dilambangkan sebagai ) .
84. Sentensial adalah string yang tersusun atas simbol-simbol terminal atau simbol-
simbol non terminal atau campuran keduanya.
85. 1alimat adalah string yang tersusun atas simbol-simbol terminal. $elaslah bah9a
kalimat adalah kasus khusus dari sentensial.
8&. *engertian terminal berasal dari kata terminate (berakhir), maksudnya deri6asi
berakhir ika sentensial yang dihasilkan adalah sebuah kalimat (yang tersusun atas
simbol-simbol terminal itu).
8;. *engertian non terminal berasal dari kata not terminate (belum.tidak berakhir),
maksudnya deri6asi belum.tidak berakhir ika sentensial yang dihasilkan
mengandung simbol non terminal.
!rammar $an "#asii%asi &homs%'
Drammar D didefinisikan sebagai pasangan & tuple ) E
T
, E
F
, S, dan G, dan
dituliskan sebagai D(E
T
, E
F
, S, G), dimana )
E
T
) himpunan simbol-simbol terminal (atau himpunan token -token, atau
alfabet)
hal 3
E
F
) himpunan simbol-simbol non terminal
S E
F
) simbol a9al (atau simbol start)
G ) himpunan produksi
Berdasarkan komposisi bentuk ruas kiri dan ruas kanan produksinya ( ), Foam
+homsky mengklasifikasikan & tipe grammar )
8. Drammar tipe ke-( ) Hnrestricted Drammar (HD)
+iri ) , (E
T
E
F
)2, I (
4. Drammar tipe ke-8 ) +onte,t Sensiti6e Drammar (+SD)
+iri ) , (E
T
E
F
)2, ( J
5. Drammar tipe ke-4 ) +onte,t Kree Drammar (+KD)
+iri ) E
F
, (E
T
E
F
)2
&. Drammar tipe ke-5 ) Legular Drammar (LD)
+iri ) E
F
, ME
T
, E
T
E
F
N atau E
F
, ME
T
, E
F
E
T
N
Oengingat ketentuan simbol-simbol (hal. 5 no. & dan ;), ciri-ciri LD sering
dituliskan sebagai ) E
F
, Ma, b+N atau E
F
, Ma, BcN
Tipe sebuah grammar (atau bahasa) ditentukan dengan aturan sebagai berikut )
A language is said to be type-i (i = ! 1! 2! 3" language if it can be
specified by a type-i grammar but can#t be specified any type-(i$1"
grammar%
&ontoh Ana#isa Penentuan T'pe !rammar
8. Drammar D
8
dengan G
8
% MS aB, B bB, B bN. Luas kiri semua
produksinya terdiri dari sebuah E
F
maka D
8
kemungkinan tipe +KD atau LD.
Selanutnya karena semua ruas kanannya terdiri dari sebuah E
T
atau string E
T
E
F
maka D
8
adalah LD.
4. Drammar D
4
dengan G
4
% MS Ba, B Bb, B bN. Luas kiri semua
produksinya terdiri dari sebuah E
F
maka D
4
kemungkinan tipe +KD atau LD.
Selanutnya karena semua ruas kanannya terdiri dari sebuah E
T
atau string E
F
E
T
maka D
4
adalah LD.
5. Drammar D
5
dengan G
5
% MS Ba, B bB, B bN. Luas kiri semua
produksinya terdiri dari sebuah E
F
maka D
5
kemungkinan tipe +KD atau LD.
Selanutnya karena ruas kanannya mengandung string E
T
E
F
(yaitu bB) dan
uga string E
F
E
T
(Ba) maka D
5
bukan LD, dengan kata lain D
5
adalah
+KD.
&. Drammar D
&
dengan G
&
% MS a#b, B aBN. Luas kiri semua produksinya
terdiri dari sebuah E
F
maka D
&
kemungkinan tipe +KD atau LD. Selanutnya
karena ruas kanannya mengandung string yang panangnya lebih dari 4 (yaitu
a#b) maka D
&
bukan LD, dengan kata lain D
&
adalah +KD.
;. Drammar D
;
dengan G
;
% MS a#, S aB, a#b aB+bN. Luas kirinya
mengandung string yang panangnya lebih dari 8 (yaitu a#b) maka D
;

kemungkinan tipe +SD atau HD. Selanutnya karena semua ruas kirinya lebih
pendek atau sama dengan ruas kananya maka D
;
adalah +SD.
hal &
<. Drammar D
<
dengan G
<
% MaS ab, S#c bcN. Luas kirinya mengandung
string yang panangnya lebih dari 8 maka D
<
kemungkinan tipe +SD atau HD.
Selanutnya karena terdapat ruas kirinya yang lebih panang daripada ruas
kananya (yaitu S#c) maka D
<
adalah HD.
Deri(asi "a#imat $an Penentuan Bahasa
Tentukan bahasa dari masing-masing gramar berikut )
8. D
8
dengan G
8
% M8. S a#a, 4. # a#a, 5. # bN.
$a9ab )
Deri6asi kalimat terpendek ) Deri6asi kalimat umum )
S a#a (8) S a#a (8)
aba (5) aa#aa (4)

a
n
#a
n
(4)
a
n
ba
n
(5)
Dari pola kedua kalimat disimpulkan ) P
8
(D
8
) % M a
n
ba
n
n 8N
4. D
4
dengan G
4
% M8. S aS, 4. S aB, 5. B b+, &. + a+, ;. + aN.
$a9ab )
Deri6asi kalimat terpendek ) Deri6asi kalimat umum )
S aB (4) S aS (8)
ab+ (5)
aba (;) a
8 - n
S (8)
a
n
B (4)
a
n
b+ (5)
a
n
ba+ (&)

a
n
ba
8 - m
+ (&)
a
n
ba
m
(;)
Dari pola kedua kalimat disimpulkan ) P
4
(D
4
) % M a
n
ba
m
n 8, m 8N
5. D
5
dengan G
5
% M8. S aSB+, 4. S ab+, 5. bB bb,
&. b+ bc, ;. +B B+, <. c+ ccN.
$a9ab )
Deri6asi kalimat terpendek 8) Deri6asi kalimat terpendek 5 )
S ab+ (4) S aSB+ (8)
abc (&) aaSB+B+ (8)
Deri6asi kalimat terpendek 4 ) aaab+B+B+ (4)
S aSB+ (8) aaabB++B+ (;)
aab+B+ (4) aaabB+B++ (;)
aabB++ (;) aaabBB+++ (;)
aabb++ (5) aaabbB+++ (5)
aabbc+ (&) aaabbb+++ (5)
aabbcc (<) aaabbbc++ (&)
hal '
aaabbbcc+ (<)
aaabbbccc (<)
Dari pola ketiga kalimat disimpulkan ) P
5
(D
5
) % M a
n
b
n
c
n
n 8N
Menentu%an !rammar Sebuah Bahasa
8. Tentukan sebuah gramar regular untuk bahasa P
8
% M a
n
n 8N
$a9ab )
G
8
(P
8
) % MS aSaN
4. Tentukan sebuah gramar bebas konteks untuk bahasa )
P
4
) himpunan bilangan bulat non negatif ganil
$a9ab )
Pangkah kunci ) digit terakhir bilangan harus ganil.
Buat dua buah himpunan bilangan terpisah ) genap (D) dan ganil ($)
G
4
(P
4
) % MS $DS$S, D (4&<B, $ 85;@CN
5. Tentukan sebuah gramar bebas konteks untuk bahasa )
P
5
% himpunan semua identifier yang sah menurut bahasa pemrograman *ascal
dengan batasan ) terdiri dari simbol huruf kecil dan angka, panang identifier
boleh lebih dari B karakter
$a9ab )
Pangkah kunci ) karakter pertama identifier harus huruf.
Buat dua buah himpunan bilangan terpisah ) huruf (-) dan angka (#)
G
5
(P
5
) % MS --T, T #T-T-#, - abc3, #
(843N
&. Tentukan gramar bebas konteks untuk bahasa P
&
(D
&
) % Ma
n
b
m
n,m 8, n
mN
$a9ab )
Pangkah kunci ) sulit untuk mendefinisikan P
&
(D
&
) secara langsung. $alan
keluarnya adalah dengan mengingat bah9a , y berarti , I y atau , J y.
P
&
% P
#
P
B
, P
#
%Ma
n
b
m
n I m 8N, P
B
% Ma
n
b
m
8 n J mN.
G
#
(P
#
) % M# a#a+, + a+babN, G(P
B
) % MB BbDb, D
aDbabN
G
&
(P
&
) % MS #B, # a#a+, + a+bab, B BbDb, D aDbabN
;. Tentukan sebuah gramar bebas konteks untuk bahasa )
P
;
% bilangan bulat non negatif genap. $ika bilangan tersebut terdiri dari dua
digit atau lebih maka nol tidak boleh muncul sebagai digit pertama.
$a9ab )
Pangkah kunci ) Digit terakhir bilangan harus genap. Digit pertama tidak boleh
nol. Buat tiga himpunan terpisah ) bilangan genap tanpa nol (D), bilangan genap
dengan nol (F), serta bilangan ganil ($).
G
;
(P
;
) % MS FD#$#, # FF#$#, D 4&<B, F
(4&<B, $ 85;@CN
hal (
hal )

Anda mungkin juga menyukai