Konsep dan operasi Bahasa otomata






Konsep Bahasa      


Simbol.  Simbol merupakan elemen unik terkecil dari bahasa. Dalam sebuah bahasa terdapat sejumlah berhingga simbol-simbol.

Abjad / Alfabet. Merupakan himpunan dari simbol-simbol yang digunakan dalam suatu bahasa. Biasanya dinotasikan dengan S. Misalkan S = {0,1}.

String / word / kata / untai. Adalah barisan berhingga dari simbol-simbol dalam suatu alfabet. Misalkan :  S = {0,1} maka 01, 00, 111 merupakan string yang dibentuk berdasarkan alfabet S. Dalam pembahasan, seringkali suatu untai/string dinyatakan dengan suatu variabel, yang biasanya berupa huruf kecil. Contoh : w = “01”; x = “aba”, dst.

Panjang String. Suatu string disusun dari sejumlah n simbol, dengan n³0. Banyaknya simbol yang menyusun sebuah string disebut panjang string, yang disimbolkan dengan |x|. contoh : x = aba , maka |x| = 3.

Untai hampa.  Sebuah string dengan panjang nol (n=0) disebut untai hampa dan dinotasikan dengan l. Untai hampa (l) merupakan untai yang dibentuk berdasarkan abjad apa saja. Sehingga l merupakan himpunan bagian dari sembarang himpunan.

Bahasa.  Bahasa merupakan himpunan string/kata dari alfabet bahasa itu.  Misal untuk
-          S1 = {0,1} maka L1 = {00,01,11,111} merupakan bahasa yang dibentuk berdasarkan abjad S1   .
-          S2 = {a,b} maka L2 = {a, ab, aab, aaab, … } merupakan bahasa berdasarkan abjad S2
Misalkan S suatu abjad dan w adalah untai yang dibentuk berdasarkan abjad S. Jika terdapat L yang merupakan bahasa berdasar abjad S dan jika w ada di dalam L, kita tuliskan w Î L, yang berarti w elemen dari L.
  
Bahasa kosong. Merupakan bahasa yang tidak terdiri dari untai apapun. Dinotasikan dengan {} atau Æ.

Bahasa Universal. Adalah bahasa yang terdiri dari semua kata yang dapat dibentuk berdasarkan suatu abjad S. Misalkan S = {1} maka bahasa universal, dinotasikan S*, adalah S* = {l, 1, 11, 111, 1111, …}

 

Operasi pada String


 Perangkaian (Concatenation).  Jika w dan z adalah untai, perangkaian w dengan z merupakan untai yang diperoleh dengan merekatkan  z ke w. Contoh : w = “abang” dan z = “none” maka wz atau w.z = “abangnone”. Panjang kata wz, |wz| = |w| + |z|=9.
Sebarang kata jika dirangkai dengan l, tidak akan merubah kata tersebut. wl=lw=w. Jadi l merupakan identitas (identity) terhadap operasi perangkaian.

Pangkat (Exponentiation). Misalkan w merupakan sebuah kata, untuk n Î bilangan asli, didefinisikan :
             
Misalkan , S = {0,1} dan w = 110, diperoleh :
            w­0 = l
            w1 = w.w0 = 110.l = 110
            w2 = w.w1 = 110.110 = 110110
            w3 = w.w2 = 110.110110 = 110110110
           

Sama Dengan (Equal). Jika w dan z adalah untai, dikatakan w sama dengan z jika keduanya terdiri dari simbol-simbol yang sama dan panjangnya sama, dinotasikan w = z.

Awalan (prefix). Jika w dan x adalah kata, maka x merupakan awalan dari w jika untuk suatu untai y, berlaku w = xy. Contoh w = 121 dan x = 12, maka x merupakan awalan dari w, dimana dalam hal ini y = 1.

Subuntai (substring). Sebuah untai w merupakan subuntai dari untai lain z jika terdapat untai-untai x dan y, sehingga berlaku z = xwy.

Pembalikan (reversal / transpose). Transpose dari sebuah untai w, yaitu wR, didefinisikan sebagai :


                
Contoh : w = “able”,
                wR = (able)R = (ble)R a
                                     = (le)Rba
                                     = (e)R lba
                                     = (l)Relba
                                     = l. elba
                                     = elba


Operasi Pada Bahasa


Concatenation. Misal A dan B adalah bahasa berdasarkan suatu abjad. Didefinisikan perangkaian dari bahasa A dan B sebagai :
            A.B = { w.x | w Î A dan x Î B}
Jadi A.B terdiri dari semua untai yang dibentuk dengan mengambil setiap untai di A dan merangkaikannya dengan setiap untai di B. Contoh : A = {bird, dog} dan B = { house} maka AB = {birdhouse, doghouse}

Eksponensiasi. Misalkan A bahasa berdasarkan abjad S, didefinisikan :
             
Jadi, jika misalkan A = {ab,a} berdasarkan abjad S = {a,b} maka :
            A0 = { l }
            A1 = A.A0 = {ab,a}{l} = {ab,a}
            A2 = A.A1 = {ab,a}{ab,a} = {abab,aba,aab,aa}
A3 = A.A2 = {ab,a}{abab,aba,aab,aa} = {ababab,ababa,abaab,abaa,aabab,aaba, aaab,aaa}
                     

Gabungan (Union). Jika A dan B adalah bahasa berdasarkan abjad S maka gabungan dari A dan B, A È B, terdiri dari semua kata yang muncul sekurang-kurangnya sekali di dalam A dan B.
            A È B = {x | x Î A atau xÎB}

Irisan (intersection). Irisan dari bahasa A dan B terdiri dari kata-kata yang muncul di A sekaligus di B. Dinotasikan sebagai : A Ç B,
            A Ç B = {x | x Î A dan x Î B}

Selisih (Difference). Jika A dan B bahasa berdasarkan abjad S, didefinisikan selisih antara bahasa-bahasa tersebut sebagai :
            A – B = {x | x Î A dan x Ï B}

Komplemen. Komplemen dari suatu bahasa A berdasarkan abjad  S didefinisikan sebagai : .

Subbahasa (sublanguage). Jika A dan B bahasa berdasarkan abjad S, dan jika semua untai di A juga merupakan untai di B maka A disebut subbahasa dari B. (A Í B)

Equal. Dua bahasa A dan B dikatakan sama atau equal, A = B, jika kedua bahasa tersebut secara persis mempunyai untai-untai yang sama.

Pembalikan (Transpose/Reversal). Pembalikan dari suatu bahasa A dapat didefinisikan sebagai :
            AR = { xR | x Î A }
Contoh : A = { dog, bog} maka AR = {god, gob}.

Kleene Closure / Star Closure. Jika A sebuah bahasa maka penutup kleene dari bahasa A didefinisikan sebagai :  A* = .
Contoh : A = {a} maka A* = {l,a,aa,aaa,…}

Positive Closure / Plus Closure. Jika A sebuah bahasa maka penutup kleene dari bahasa A didefinisikan sebagai :  A+ = .
Contoh : A = {a} maka A+ = {a,aa,aaa,…}.

Teorema :  A+ = A. A* = A*. A