Simbol
Entitas tunggal yang terdiri dari 1 karakter
• Contoh: a, b, c, 0, 1, 2, …
Alfabet atau Abjad (Σ)
• Himpunan terbatas simbol-simbol
• Contoh:
• Σ = {a, b, c}
• Σ = {0, 3, 8}
• alfabet latin, Σ = {a, b, c, …, z}
• alfabet Yunani, Σ = {α, β, γ, δ, …, ω}
• alfabet biner, Σ = {0, 1}
String atau Untai
• String adalah barisan yang disusun oleh simbol-simbol alfabet.
• Nama lain untuk string adalah “kata” atau word
Contoh:
a, b, 0, 1, aa, bb, 01, …
1011 adalah untai yang berasal dari alfabet Σ = {0, 1}
cilok, seblak, pedas; adalah untai yang berasal dari alfabet Σ = {a, b, c, … , z}
• 111201998765 adalah untai yang berasal dari alfabet Σ = {1, 2, 3, 4, … , 9}
• String kosong (null string) adalah string yang tidak mempunyai simbol yang berasal dari alfabet
- Notasi: ε atau λ
• Panjang string adalah jumlah simbol yang membentuk string
Contoh:
Panjang string 7418 ditulis |7418| = 4
Panjang string “cilok” ditulis |cilok| = 5
Panjang string ε ditulis |ε| = 0
Pangkat Alfabet
• Jika Σ = {0, 1}, maka:
• Σ0 = {ε}
• Σ1 = {0, 1}
• Σ2 = {00, 01, 10, 11}
• Σ3 = {000, 001, 010, 011, 100, 101,110, 111}
• Σ* (Kleene Star)
• Himpunan seluruh string mulai dari string kosong sampai string dengan panjang tertentu
• Σ* = Σ0 + Σ1 + Σ2 + … = Σ0 ∪ Σ1 ∪ Σ2 ∪ …
• Σ* = {ε, 0, 1, 00, 01, 10, 11, 000, …}
• Σ+ (Kleene Plus)
• Himpunan seluruh string tanpa string kosong
• Σ+ = Σ1 + Σ2 + Σ3 +… = Σ1 ∪ Σ2 ∪ Σ3 ∪ …
• Σ+ = {0, 1, 00, 01, 10, 11, 000, …}
Bahasa Formal (Formal Language)
• Bahasa Formal – selanjutnya disebut bahasa – adalah himpunan bagian dari Σ*
• Jika Σ adalah alfabet, dan L ⊆ Σ* , maka L adalah bahasa.
Contoh: Σ = {0, 1}
Himpunan seluruh string dengan panjang untai 2:
- L1 = {00, 01, 10, 11}
Himpunan seluruh string dengan panjang untai 3:
- L2 = {000, 001, 010, 011, 100, 101, 110, 111}
Himpunan bilangan biner yang nilainya sama dengan bilangan prima:
- L3 = {10, 11, 101, 111, 1011, 1101, …}
Bahasa pemrograman C++, atau Java, termasuk bahasa formal yang berasal dari alfabet
• Σ = {a, b, c, … , z, A, B, C, …, Z, 0, 1, 2, …, 9, < , >, =, +, – , *, /, (, ), ., &,!, %, ^, {, }, |, ‘, :, ;}
Tata bahasa (grammar)
• Tata bahasa (grammar) adalah aturan yang digunakan untuk membangkitkan atau mengenali kalimat di dalam suatu bahasa.
• Penulisan suatu kalimat dalam sebuah bahasa, akan mengikuti tata bahasa yang berlaku pada bahasa tersebut
Operasi pada Bahasa
Perangkaian (Concatenation)
Misal L1 dan L2 merupakan bahasa-bahasa berdasarkan alfabet Σ. Perangkaian L1 dan L2 ditulis : L1 . L2 = {w1.w2 | w1 ∈ L1 dan w2 ∈ L2}
Contoh:
L1 = {sandal, paku}
L2 = {goreng, rebus}
Maka, L1 . L2 = {sandalgoreng, sandalrebus, pakugoreng, pakurebus}
Eksponensiasi (Exponentiation)
Misal L merupakan suatu bahasa berdasarkan alfabet Σ.
Contoh:
Jika L = {xy}, maka:
L0 = {ε}
L1 = L = {xy}
L2 = L . L1 = {xyxy}
L3 = L . L2 = {xyxyxy}
Gabungan (Union)
L1 ∪ L2 = {x|x ∈ L1 atau x ∈ L2}
Union terdiri dari semua untai yang muncul sekurang-kurangnya sekali dalam L1 dan L2
Contoh:
Jika Σ = {0, 1}
L1 = {ε, 0, 1, 10, 11}
L2 = {ε, 1, 0110, 11010}
L1 ∪ L2 = {ε, 0, 1, 10, 11, 0110, 11010}
Irisan (Intersection)
L1 ∩ L2 = {x|x ∈ L1 dan x ∈ L2}
Irisan terdiri dari semua untai yang muncul baik di L1 maupun L2
Contoh:
Jika Σ = {0, 1}
L1 = {ε, 0, 1, 10, 11}
L2 = {ε, 1, 0110, 11010}
L1 ∩ L2 = {ε, 1}
Sub Bahasa
L1 ⊆ L2
Jika semua string di L1 juga merupakan string di L2, maka L1 disebut sub bahasa dari L2
Contoh:
Jika L1 = {0, 00, 000} dan L2 = {0, 00, 000, 0000, 00000}, maka L1 ⊆ L2.
Sama (Equal)
L1 = L2
Dua buah bahasa L1 dan L2 dikatakan sama, jika kedua bahasa tersebut secara persis mempunyai untai-untai yang sama
Contoh:
Jika L1 = {0, 00, 000} dan L2 = {0, 00, 000}, maka L1 = L2.