Anda di halaman 1dari 41

REVIEW TEORI BAHASA & AUTOMATA

SANDY EKA NUGGROHO 140401113


i

Daftar Isi
Materi 1. Komponen Ilmu Komputer .................................................... 1

Materi 2. Model Komputasi dan Teori Komputasi ................................. 1

Materi 3. Pemanfaatan Teori Bahasa Automata ..................................... 3

Materi 4. Dasar Dasar Teori Bahasa .................................................... 5

Materi 5. Representasi bahasa Automata ................................................ 6

Materi 6. Grammar dan Klasifikasi Chomsky ........................................ 7

Materi 7. Himpunan dan Ekspresi Reguler ............................................. 9

Materi 8. Finite Automata ..................................................................... 10

Materi 9. Deterministic Finite Automata .............................................. 10

Materi 10. Non Deterministic Finite Automata .................................... 16

Materi 11. Terapan Ekspresi Reguler ................................................... 22

Materi 12. Lex flex ............................................................................ 23

Materi 13. Ekspresi Reguler di bahasa Java ......................................... 24

Materi 14. Arti dan Translator Bahasa .................................................. 25

Materi 15. Lamda Kalkulus .................................................................. 27

Materi 16. Mesin Turing ....................................................................... 27

Materi 17. Bahasa Komputer serta Penerapan ...................................... 29

Materi 18. Bahasa Pemrograman .......................................................... 29

Materi 19. Pemanfaatan Bahasa Automata ........................................... 30

Materi 20. Bahasa MarkUp ................................................................... 32

Materi 21. Bahasa web scripting ........................................................... 33

Materi 22. Bahasa UML ....................................................................... 35


ii

Daftar Gambar

Gambar 1 Komponen Komputer ................................................................... 1


Gambar 2 Deterministic Finite Automata (DFA) ........................................ 11
Gambar 3 graf transisi ................................................................................. 12
Gambar 4 Contoh ........................................................................................ 13
Gambar 5 konfigurasi awal .......................................................................... 14
Gambar 6 Membaca Input ........................................................................... 15
Gambar 7 defenisi formal DFA ................................................................... 16
Gambar 8 NFA ............................................................................................ 17
Gambar 9 gambar NFA2 ............................................................................. 17
Gambar 10 contoh NFA............................................................................... 18
Gambar 11 Pilihan pertama ......................................................................... 19
Gambar 12 Firts Choice ............................................................................... 20
Gambar 13 input .......................................................................................... 21
Gambar 14 diterima & ditolak ..................................................................... 21
Gambar 15 Hubungan Scanner dengan Panser ............................................ 24
Gambar 16 Translator .................................................................................. 26
Gambar 17 Mesin Turing............................................................................. 28
Gambar 18 Html .......................................................................................... 32
Gambar 19 struktur PHP .............................................................................. 34
Gambar 20 UML.......................................................................................... 36
1

Materi 1. Komponen Ilmu Komputer


Kata komputer berasal dari bahasa Latin yaitu Computare yang artinya
menghitung. Dalam bahasa Inggris disebut to compute. Secara definisi komputer
diterjemahkan sebagai sekumpulan alat elektronik yang saling bekerja sama,
dapat menerima data (input), mengolah data (proses) dan memberikan informasi
(output) serta terkoordinasi dibawah kontrol program yang tersimpan di
memorinya. Jadi cara kerja komputer dapat kita gambarkan sebagai berikut
(Render, 2014) :

Gambar 1 Komponen Komputer

Materi 2. Model Komputasi dan Teori Komputasi


Model Komputasi

Bahasa tidak dapat dispesifikasikan dengan mendaftarkan kalimat-kalimat


yang terdapat di bahasa itu bila jumlah kalimat di bahasa itu tak berhingga.
Spesifikasi terhadap bahasa tidak dapat dilakukan dengan cara mendaftarkan semua
kalimat atau string yang termasuk di bahasa, melainkan harus dengan cara
mengemukakan syarat-syarat yang menyatakan suatu kalimat atau string termasuk
string di bahasa itu. (Nurdiana,Epri. Rahmatika,Hadi K, 2007)
2

1. Metode Pendefinisian Bahasa

Bahasa dapat mempunyai karakteristik sebagai berikut :

a. Finite (berhingga), untuk kompilasinya dapat dilakukan dengan


mendaftarkan semua kalimat dan arti dari masing-masing kalimat tersebut.
b. Infinite (tak berhingga), diperlukan cara agar kita dapat menspesifikasikan
bahasa. Dalam hal cara menspesifikasikan bahasa ini haruslah terbatas.
Teori Komputasi

1. Metode Pendefenisian Bahasa


2. Gramar

Grammar mendefinisikan bahasa secara rekursif.

Grammar adalah sistem matematis untuk mendefinisikan bahasa. Bahasa


yang mendefinisikan oleh grammar adalah himpunan string yang hanya berisi
terminal dan dapat diturunkan mulai dari simbol tertentu yang berisi terminal
dan dapat diturunkan mulai dari simbol tertentu yang disebut S atau simbol
mula.

Grammar mendefinisikan bahasa secara formal

Grammar didefinisikan oleh 4 tupel G = (VN, VT, S, ), dimana VN adalah


himpunan simbol non-terminal, VT adalah simbol terminal, S adalah sebuah
eleman dari VN yang khusus yang disebut dengan simbol awal. Dan adalah
himpunan bagian tak kosong dari relasi (VT VN)* VN(VT VN)* ke (VT
VN)*. Secara umum dapat ditulis (,) yang disebut aturan produksi.

Grammar adalah 4 tupel G = (VN, VT, P, S)

1. VN adalah himpunan berhingga simbol non-terminal (disebut variabel atau


kategori sintaks), kumpulan kelas sintaks. Elemen VN dilambangkan dengan
huruf kapital.
3

2. VT adalah himpunan berhingga simbol terminal, disjoint dengan VN Elemen


VT dilambangkan dengan huruf kecil.
3. P adalah himpunan bagian berhingga dari :
(VN VT) * VN(VN VT) * X (VN VT)*

4. S adalah simbol terbedakan pada VN disebut simbol kalimat (mula).

Vocabulary = VT VN

String-string pada vocabulary dilambangkan dengan , ,, panjang string


dinyatakan dengan .

3. Recognizer (Finite Automata)

Bagian recognizer, yaitu tape masukan, kendali berstatus berhingga, dan


memori Recognizer beroperasi dengan suatu barisan gerak. Di awal gerak, simbol
masukan dibaca dan memori dicocokan dengan fungsi fecth bersama state saat itu
dan menentukan grakan apa yang harus terjadi.

Pergerakan berisi :

c. Geser (shifting), menggeser head masukan satu ke kiri, kanan, atau tetap.
d. Simpan (storing), menyimpan informasi ke memori.
e. Ubah (changing), mengubah keadaan kendali.(Nurdiana,Epri.
Rahmatika,Hadi K, 2007)

Materi 3. Pemanfaatan Teori Bahasa Automata


Pemanfaatan Teori Bahasa Automata

1. Metode Pendefinisian Bahasa

Bahasa dapat mempunyai karakteristik sebagai berikut :


4

a. Finite (berhingga), untuk kompilasinya dapat dilakukan dengan


mendaftarkan semua kalimat dan arti dari masing-masing kalimat tersebut.
b. Infinite (tak berhingga), diperlukan cara agar kita dapat menspesifikasikan
bahasa. Dalam hal cara menspesifikasikan bahasa ini haruslah terbatas.

2. Grammar

Grammar mendefinisikan bahasa secara rekursif.

Grammar adalah sistem matematis untuk mendefinisikan bahasa. Bahasa


yang mendefinisikan oleh grammar adalah himpunan string yang hanya berisi
terminal dan dapat diturunkan mulai dari simbol tertentu yang berisi terminal
dan dapat diturunkan mulai dari simbol tertentu yang disebut S atau simbol
mula.

Grammar mendefinisikan bahasa secara formal :

Grammar didefinisikan oleh 4 tupel G = (VN, VT, S, ), dimana VN adalah


himpunan simbol non-terminal, VT adalah simbol terminal, S adalah sebuah
eleman dari VN yang khusus yang disebut dengan simbol awal. Dan adalah
himpunan bagian tak kosong dari relasi (VT VN)* VN(VT VN)* ke (VT
VN)*. Secara umum dapat ditulis (,) yang disebut aturan produksi.

3. Recognizer (Finite Automata)

Bagian recognizer, yaitu tape masukan, kendali berstatus berhingga, dan


memori Recognizer beroperasi dengan suatu barisan gerak. Di awal gerak, simbol
masukan dibaca dan memori dicocokan dengan fungsi fecth bersama state saat itu
dan menentukan grakan apa yang harus terjadi.

Pergerakan berisi :

Geser (shifting), menggeser head masukan satu ke kiri, kanan, atau tetap.
Simpan (storing), menyimpan informasi ke memori.
5

Ubah (changing), mengubah keadaan kendali.


4. Translasi Bahasa

Translasi adalah himpunan pasangan string. Kompilator mendefinisikan


translasi sebagai pasangan (program sumber, program objek). Jika kita anggap
kopilator berisi tiga tahap, yaitu :

Analisis leksik adalah translasi string-string yang merepresentasikan


program sumber dipetakan menjadi string-string token.
Analisis sintaks memetakan string-string token menjadi string-string
yang merepresentasikan pohon sintaks.
Pembangkit kode kemudian mengambil string-string yang dihasilkan
analisis menjadi bahasa atau assembly.(Muhammad, 2010)

Materi 4. Dasar Dasar Teori Bahasa


Dasar Teori Bahasa Automata
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 selanjutnya bahasa formal
akan disebut bahasa saja. (Juarna, 2012)

Automata 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.
6

String adalah deretan terbatas (finite) simbol-simbol. Sebagai contoh, jika


a, b, dan c adalah tiga buah simbol maka abcb adalah sebuah string yang
dibangun dari ketiga simbol tersebut.
Jika w adalah sebuah string maka panjang string dinyatakan sebagai w
dan
didefinisikan sebagai cacahan (banyaknya) simbol yang menyusun string
tersebut.
Sebagai contoh, jika w = abcb maka w = 4. String hampa adalah sebuah
string dengan nol buah simbol. String hampa dinyatakan dengan simbol
(atau ^) sehingga = 0. String hampa dapat dipandang sebagai simbol
hampa karena keduanya tersusun dari nol buah simbol.
Alfabet adalah hinpunan hingga (finite set) simbol-simbol.

Materi 5. Representasi bahasa Automata


Representasi Bahasa Automata
Bahasa tidak dapat dispesifikasikan dengan mendaftarkan kalimat-kalimat
yang terdapat di bahasa itu bila jumlah kalimat di bahasa itu tak berhingga.
Spesifikasi terhadap bahasa tidak dapat dilakukan dengan cara mendaftarkan semua
kalimat atau string yang termasuk di bahasa, melainkan harus dengan cara
mengemukakan syarat-syarat yang menyatakan suatu kalimat atau string termasuk
string di bahasa itu. (Nurdiana,Epri. Rahmatika,Hadi K, 2007)

Metode Pendefinisian Bahasa

Bahasa dapat mempunyai karakteristik sebagai berikut :

f. Finite (berhingga), untuk kompilasinya dapat dilakukan dengan


mendaftarkan semua kalimat dan arti dari masing-masing kalimat tersebut.
g. Infinite (tak berhingga), diperlukan cara agar kita dapat menspesifikasikan
bahasa. Dalam hal cara menspesifikasikan bahasa ini haruslah terbatas.
(Nurdiana,Epri. Rahmatika,Hadi K, 2007)
Klasifikasi Gramar Noam Chomsky
7

Konsep Dasar

1. Dalam pembicaraan grammar, anggota alfabet dinamakan simbol terminal


atau token.
2. Kalimat adalah deretan hingga simbol-simbol terminal.
3. Bahasa adalah himpunan kalimat-kalimat. Anggota bahasa bisa tak hingga
kalimat.
4. Simbol-simbol berikut adalah simbol terminal :
a. huruf kecil awal alfabet, misalnya : a, b, c
b. simbol operator, misalnya : +, , dan
c. simbol tanda baca, misalnya : (, ), dan ;
d. string yang tercetak tebal, misalnya : if, then, dan else.
5. Simbol-simbol berikut adalah simbol non terminal :
a. huruf besar awal alfabet, misalnya : A, B, C
b. huruf S sebagai simbol awal
c. string yang tercetak miring, misalnya : expr dan stmt.
6. Huruf besar akhir alfabet melambangkan simbol terminal atau non terminal,
misalnya : X, Y, Z.
7. Huruf kecil akhir alfabet melambangkan string yang tersusun atas simbol
simbol terminal, misalnya : x, y, z.
8. Huruf yunani melambangkan string yang tersusun atas simbol-simbol
terminal atau simbol-simbol non terminal atau campuran keduanya,
misalnya : , , dan .
9. 9. Sebuah produksi dilambangkan sebagai , artinya : dalam sebuah
derivasi dapat dilakukan penggantian simbol dengan simbol .
10. 10. Simbol dalam produksi berbentuk disebut ruas kiri produksi
sedangkan simbol disebut ruas kanan produksi.

Materi 6. Grammar dan Klasifikasi Chomsky


Grammar dan Klasifikasi Chomsky

Grammar G didefinisikan sebagai pasangan 4 tuple : V T , V N , S, dan Q,


dan dituliskan sebagai G(V T , V N , S, Q), dimana :
8

VT : himpunan simbol-simbol terminal (atau himpunan token -token, atau


alfabet)

VN : himpunan simbol-simbol non terminal S V

N : simbol awal (atau simbol start)

Q : himpunan produksi

Berdasarkan komposisi bentuk ruas kiri dan ruas kanan produksinya ( ),


Noam

Chomsky mengklasifikasikan 4 tipe grammar :

1. Grammar tipe ke-0 : Unrestricted Grammar (UG) Ciri : , (V T VN


)*, >0

2. Grammar tipe ke-1 : Context Sensitive Grammar (CSG)

Ciri : , (V T V N )*, 0 <

3. Grammar tipe ke-2 : Context Free Grammar (CFG)

Ciri : VN , (V T V N )*

4. Grammar tipe ke-3 : Regular Grammar (RG)

Ciri : VN , {V T , V T V N } atau V N , {V T , V N V T }

Mengingat ketentuan simbol-simbol (hal. 3 no. 4 dan 5), ciri-ciri RG sering

dituliskan sebagai : V N , {a, bC} atau V N , {a, Bc}

Tipe sebuah grammar (atau bahasa) ditentukan dengan aturan sebagai berikut
:

A language is said to be type-i (i = 0, 1, 2, 3) language if it can be

specified by a type-i grammar but cant be specified any type-(i+1)


9

grammar. (Juarna, 2012)

Materi 7. Himpunan dan Ekspresi Reguler


Himpunan dan Ekspresi Reguler

Himpunan Reguler :

Definisi himpunan reguler pada Vt:

adalah himpunan reguler pada Vt

{e},{a},{123} bil bulat {0,1,2..}

Jik P dan Q adalah himpunan reguler pada Vt,maka :

PQ

P.Q

P* (Mahtarami, 2007)

Ekspresi Reguler :

Ekspresi Regular salah satu cara mengekspresikan bahasa reguler (selain


menggunakan dfa & nfa). *.sm

String dengan kombinasi dari symbol pada:

(alphabet)

parentheses ( dan )

operator + (untuk union)

operator (untuk concatenation)

operator * (star-closure)
10

adalah ekspresi reguler yang menunjukkan himpunan reguler

begitu juga dg , a{a}

Jika p dan q adalah ekspresi reguler yang menunjukkan himpunan reguler p dan
Q,maka :

(p+q) p q

(pq) p.q

(p)* p* (Mahtarami, 2007)

Materi 8. Finite Automata


Finite Automata
Finite Automata (FA) merupakan sistem pengenal (recogniser) suatu
bahasa, khususnya bahasa reguler.

Finite Automata menerima input berupa string, tetapi tidak menghasilkan


output. Namun demikian dapat digunakan untuk mengetahui apakah string
tersebut diterima/dikenal oleh sistem tersebut atau tidak.

Secara umum, FA terdiri atas alfabet, himpunan state, dan suatu transisi.

Perubahan state terjadi jika sistem membaca substring (karakter) awal.

Suatu string diterima kalau dia dapat dibaca habis dari state awal, dan state
terakhir berada dalam state tujuan (akhir). (Widianto, 2015)

Bahasa Reguler dan Finite Automata


Hubungan bahasa reguler dengan finite automata adalah: suatu bahasa
merupakan bahasa reguler bila dan hanya bila diterima oleh suatu FA.

Ini berarti bahwa bahasa yang diterima oleh FA merupakan bahasa reguler.

Sebaliknya dari suatu bahasa reguler dapat dikonstruksi suatu FA yang


menerima bahasa reguler tersebut. (Widianto, 2015)

Materi 9. Deterministic Finite Automata


DFA (deterministic finite automata)
11

DFA: Deterministic Finite Automata Atau Automata Hingga Deterministik


(AHD)

Merupakan salah satu bentuk dari Finite Automata. Finite Automata


merupakan salah satu dari mesin automata. FA tidak memiliki memory.
(Mutiawani, 2014a)

Gambar 2 Deterministic Finite Automata (DFA)


12

Gambar 3 graf transisi


13

Gambar 4 Contoh
14

Gambar 5 konfigurasi awal


15

Gambar 6 Membaca Input


16

Gambar 7 defenisi formal DFA

Materi 10. Non Deterministic Finite Automata


NDFA (Non Deterministic Finite Automata)
Non Deterministic Finite Automata (Mutiawani, 2014b)
17

(Mutiawani, 2014b)

Gambar 8 NFA

Gambar 9 gambar NFA2


18

Gambar 10 contoh NFA


19

Gambar 11 Pilihan pertama


20

Gambar 12 Firts Choice


21

Gambar 13 input

Gambar 14 diterima & ditolak


22

Materi 11. Terapan Ekspresi Reguler


Ekspresi Reguler

Ekspresi Regular adalah menggambarkan bahasa regular

Contoh:

Menggambarkan bahasanya

(a + b * c)*

a,bc* ,a,bc,aa,abc,bca,...

Definisi Rekursif , , Ekspresi reguler yg paling sederhana : Diberikan


ekspresi reguler and r1 r2Maka:

r1 + r2

r1 * r2

r1 * Merupakan Ekspresi Reguler

(r1)

Contoh :

Ekspresi reguler a bc*( c )

Bukan Ekspresi reguler : a b

Contoh 1 :

Tentukan L(r) dari : Ekspresi reguler r a b*a bb

Jawab
Ekspresi reguler r a b * a bb Adalah:
11 Lr a,bb,aa,abb,ba,bbb,... (Handayaningsih, 2010)
23

Materi 12. Lex flex


Lexical
Pembuatan lexical analyzer dengan pendekatan dikodekan secara langsung di
program kompilator mempunyai keunggulan efisiensi yg tinggi, namun LA
sulit dipelihara.
Salah satu kakas yg terkenal adalah Lex.
Lex digunakan secara luas utk menspesifikasi LA beragam bahasa.
Program Lex dpt menerjemahkan deskripsi kumpulan token menjadi table
driven lexical Analyzer.
Program Lex menggunakan teori bahasa utk menspesifikasikan himpunan
token lexical analyzer .
Leksik-leksik yg berkorespondensi dgn token semuanya didefenisikan sbg
serangkaian operasi himpunan.
Program kemudian menerjemahkan spesifikasi bahasa itu menjadi kode sumber
C utk program komputer yg mengenali string2x di bahasa itu.
Spesifikasi untuk lex menggunakan ER.
ER adalah WFF(well form formula) pada gabungan(union),
penyambungan(Concatenation), dan kleene Closure.

Lexical Analyzer dan Token

LA disebut scanner/tokenizer, menerjemahkan masukan menjadi bentuk yg


lebih berguna untuk tahap-tahap kompilasi berikutnya.
LA merupakan antarmuka antara kode sumber program dan penganalisis
sintaks(parser).
Token = scanner yg melakukan pemeriksaan karakter per karakter pada teks
masukan, memecah program sumber menjadi beberapa bagian.
Token merupakan unit / elemen dasar bahasa komputer (yg tidak dpt terbagi
lagi).

Hubungan dengan Parser


24

Parser berfungsi menghasilkan pohon sintaks program yg didefenisikan


grammar.
Simbol terminal pohon sintaks adalah token-token yg dihasilkan scanner.

Gambar 15 Hubungan Scanner dengan Panser

Materi 13. Ekspresi Reguler di bahasa Java


Ketentuan ER di Java:

1. Literal
2. Wilcard
3. Kualifier: * dan +
4. Pengelompokan
5. Kelas-kelas karakter
6. Kelas-kelas karakter yg sudah didefenisi
7. Sekuensing
8. Pencocok batas
9. Pencocokan tidak tamak
Literal
25

Adalah sembarang karakter di himpunan karakter yg tidak memiliki arti


khusus di dlm ER. Literal di ER berarti hanya cocok dgn karakter itu
sendiri.
Contoh :
Ekspresi regular : a
String besar/target : a
String yg ditemukan adalah : a
Ekspresi regular : b
String besar/target : a
String yg ditemukan adalah : [tidak ada]
Wilcard

Karakter . Mempunyai arti dapat cocok dgn sembarang karakter tunggal,


kecuali ganti baris (newline). Ganti baris juga dpt sbg termasuk bila flag
DOTALL dispesifikasikan.
Contoh :
Ekspresi regular : .
String besar/target : a
String yg ditemukan adalah : a
Ekspresi regular : .
String besar/target : a
String yg ditemukan adalah : a
Ekspresi regular : .
(Wirawan, Hendri, 2015)

Materi 14. Arti dan Translator Bahasa


Translator Bahasa Automata

Translasi adalah himpunan pasangan string. Kompilator mendefinisikan


translasi sebagai pasangan (program sumber, program objek). Jika kita anggap
kopilator berisi tiga tahap, yaitu :
26

Analisis leksik adalah translasi string-string yang merepresentasikan


program sumber dipetakan menjadi string-string token.
Analisis sintaks memetakan string-string token menjadi string-string
yang merepresentasikan pohon sintaks.
Pembangkit kode kemudian mengambil string-string yang dihasilkan
analisis menjadi bahasa atau assembly.

Translator
Translator adalah sistem yang membaca program yang ditulis dalam suatu
bahasa da menterjemahkannya ke suatu program target yang ekivalen dalam bahasa
lain.

Pro Pro
TRANSLA
gram gram
TOR
Sumber
Gambar 16 Translator
Target

Translator untuk bahasa assembly disebut assembler, sedangkan translator


untuk bahasa tingkat tinggi disebut kompilator.

Saat ini terdapat ribuan kompilator mulai dari bahasa pemograman umum
seperti Fortran. Pascal sampa bahasa spesialis yang digunakan pada beragam
bidang aplikasi komputer. Meskipun demikian sesungguhnya tugas-tugas yang
perlu dilakukan kompilator adalah serupa tak peduli bahasa sumber dan target
mesin. Satu kumpulan prinsip dan teknik kompilator yang sama diperlukan dalam
pengembangan translator/kompilator apapun.

Terdapat dua metode untuk mendefinisikan translasi, yaitu :


27

1. Skema translasi (grammar). Mekanisme untuk memproduksi keluaran


untuk kalimat yang dihasilkan.
2. Transducer, adalah recognizer yang dapat mengeluarkan string dengan
panjang berhingga dari simbol-simbol keluaran pada tiap gerak.

Semantik kadang digunakan untuk menunjukkan asosiasi dengan kalimat-


kalimat keluaran dimana string keluaran mendefinisikan arti kalimat masukan.

Penerjemahan
Asumsi yang dilakukan adalah penerjemahan sebagai pemetaan, maka
spesifikasi kompilator adalah sebagai himpunan pasangan string (x,y), dimana :

x adalah program bahasa sumber.


y adalah program bahasa target dimana x diterjemahkan.
Kompilator mendefinisikan penerjemah yang merupakan pasangan
(program sumber, program objek). Bila kompilator terdiri dari lexical analysis,
syntactic analysis, dan code generation maka masing-masing fase ini
mendefinisikan penerjemahan. Lexical analysis merupakan penerjamahan string
yang merepresentasikan program sumber dipetakan menjadi string token. Syntatic
analysis memetakan string token menjadi string yang merepresentasikan pohon
parse. Code generation memetakan string yang merepresentasikan pohon parse
menjadi string dalam bahasa mesin atau assembly.

Masalah yang dihadapi adalah upaya menghasilkan perangkat (device) yang


efisien dalam melakukan penerjemahan yaitu yang bila diberikan x sebagai
masukan akan menghasilkan y sebagai keluaran secara efisien. (Nurdiana,Epri.
Rahmatika,Hadi K, 2007)

Materi 15. Lamda Kalkulus


Materi 16. Mesin Turing
Mesin Turing
28

Mesin Turing adalah model yang sangat sederhana dari komputer. Secara
esensial, mesin Turing adalah sebuah finite automaton yang miliki sebuah tape
tunggal dengan panjang tak terhingga yang dapat membaca dan menulis data.
Mesin Turing menggunakan notasi seperti ID-ID pada PDA untuk menyatakan
konfigurasi dari komputasinya.

Gambar 17 Mesin Turing

Computing step : update dari state internal fungsi berdasarkan state


sekarang dan nilai input x
Operation step:melakukan sebuah operasi berdasarkan dari state sekarang
dan nilai input .

Notasi Normal Mesin Turing Mesin Turing dijelaskan oleh 7-tuple:

M = (Q, , , , q0, B, F)

Komponen-komponennya adalah:

a) Q: Himpunan berhingga dari state dari finite control.


b) : himpunan berhingga dari simbol-simbol input.
c) : Himpunan dari tape symbol. merupakan subset dari .
d) : Fungsi transisi. Argumen (q, X) adalah sebuah state q dan sebuah
tape symbol X. Nilai dari (q, X), jika nilai tersebut didefinisikan, adalah
triple (p, Y, D), dimana:
e) p adalah next state dalam Q
f) Y adalah simbol, dalam , ditulis dalam sel yang sedang di-scan,
menggantikan simbol apapun yang ada dalam sel tersebut.
29

g) D adalah arah, berupa L atau R, berturut-turut menyatakan left atau right,


dan menyatakan arah dimana head bergerak.

h) q0: start state, sebuah anggota dari Q, dimana pada saat awal finite
control ditemukan.

i) B: simbol blank. Simbol ini ada dalam tapi tidak dalam , yaitu B
bukan sebuah simbol input.

j) F: himpunan dari final state, subset dari Q. (Ayadi, 2013)

Materi 17. Bahasa Komputer serta Penerapan


Bahasa komputer dan penerapannya

Pemanfaatan komputer dewasa ini tidak terbatas untuk membantu sistem


administrasi di kantor-kantor saja, tetapi sudah merambah keberbagai bidang.
Sehingga aplikasinya sangat dibutuhkan untuk membantu berbagai disiplin ilmu.
Untuk itulah dibutuhkan software yang menjebatani komputer dengan kebutuhan
dan tujuan pemerograman komputer (friendly). Sebuah software akan memudahkan
user untuk dapat menggunakan komputer unruk berbagai keperluan. Berbagai
macam software yang dapat digunakan untuk membuat program aplikasi seperti :
bahasa C, C++, C#, Clipper, LISP, ADA, ALGOL, Modula 2, Smalltalk, Prolog,
Perl, PHP, ASP, JSP, J#, J++, Cobol, Basic, Fortran, Java, Paskal, dan lain
sebagainya.(Ayadi, 2013)

Materi 18. Bahasa Pemrograman


Bahasa Pemrograman

Sejarah pemrograman komputer tidak seperti yang dibayangkan oleh


kebanyakan orang. Kebanyakan orang mengira bahwa pemrograman komputer ini
mulai berkembang atau ditemukan pada akhir abad duapuluhan. Namun dalam
30

kenyataannya, sejarah pemrograman modern dan bahasa pemrograman mulai


berkembang sejak 1940-an, yaitu sekitar 68 tahun yang lalu.
Pada tahun 1922. Charles Babbage. Ketika belajar di Universitas Cambridge
Inggris, ia melihat bahwa pada saat itu banyak terdapat berbagai macam tabel
perhitungan seperti tabel yang terkait dengan astronomi, kelautan, navigasi dan
sebagainya. Meskipun tabel-tabel perhitungan ini tersedia, namun yang terjadi
adalah banyak sekali kejadian musibah seperti kapal tenggelam, kecelakaan dan
kapal hilang. Dalam hal ini, Charles Babbage mengira bahwa musibah ini
disebabkan oleh faktor kesalahan manusia yaitu keterbatasan kemampuan dalam
mengimplementasikan tabel perhitungan yang ada. Hal inilah yang memicunya
untuk memikirkan bagaimana cara mengelola data-data yang ada dalam tabel
perhitungan tersebut supaya mudah digunakan. Bagaimana caranya? yaitu
menggunakan sebuah mesin. Mesin ini ia beri nama Difference Engine.
Perkembangan dunia komputasi berlanjut pada tahun 1980-an tepatnya pada
tahun 1854, yaitu ketika seseorang bernama Charles Boole telah mampu
menciptakan sebuah sistem logika simbolik yang diberinama Logika Boole. Sistem
ini mencakup pula logika untuk menyatakan hubungan lebih besar, lebih kecil,
sama dengan dan tidak sama dengan. Sistem logika ini masih digunakan sampai
dengan saat ini.(Ayadi, 2013)

Materi 19. Pemanfaatan Bahasa Automata


Pemanfaatan Bahasa Automata

5. Metode Pendefinisian Bahasa

Bahasa dapat mempunyai karakteristik sebagai berikut :

c. Finite (berhingga), untuk kompilasinya dapat dilakukan dengan


mendaftarkan semua kalimat dan arti dari masing-masing kalimat tersebut.
d. Infinite (tak berhingga), diperlukan cara agar kita dapat menspesifikasikan
bahasa. Dalam hal cara menspesifikasikan bahasa ini haruslah terbatas.
31

6. Grammar

Grammar mendefinisikan bahasa secara rekursif.

Grammar adalah sistem matematis untuk mendefinisikan bahasa. Bahasa


yang mendefinisikan oleh grammar adalah himpunan string yang hanya berisi
terminal dan dapat diturunkan mulai dari simbol tertentu yang berisi terminal
dan dapat diturunkan mulai dari simbol tertentu yang disebut S atau simbol
mula.

Grammar mendefinisikan bahasa secara formal :

Grammar didefinisikan oleh 4 tupel G = (VN, VT, S, ), dimana VN adalah


himpunan simbol non-terminal, VT adalah simbol terminal, S adalah sebuah
eleman dari VN yang khusus yang disebut dengan simbol awal. Dan adalah
himpunan bagian tak kosong dari relasi (VT VN)* VN(VT VN)* ke (VT
VN)*. Secara umum dapat ditulis (,) yang disebut aturan produksi.

7. Recognizer (Finite Automata)

Bagian recognizer, yaitu tape masukan, kendali berstatus berhingga, dan


memori Recognizer beroperasi dengan suatu barisan gerak. Di awal gerak, simbol
masukan dibaca dan memori dicocokan dengan fungsi fecth bersama state saat itu
dan menentukan grakan apa yang harus terjadi.

Pergerakan berisi :

Geser (shifting), menggeser head masukan satu ke kiri, kanan, atau tetap.
Simpan (storing), menyimpan informasi ke memori.
Ubah (changing), mengubah keadaan kendali.
8. Translasi Bahasa

Translasi adalah himpunan pasangan string. Kompilator mendefinisikan


translasi sebagai pasangan (program sumber, program objek). Jika kita anggap
kopilator berisi tiga tahap, yaitu :
32

Analisis leksik adalah translasi string-string yang merepresentasikan


program sumber dipetakan menjadi string-string token.
Analisis sintaks memetakan string-string token menjadi string-string
yang merepresentasikan pohon sintaks.
Pembangkit kode kemudian mengambil string-string yang dihasilkan
analisis menjadi bahasa atau assembly.(Muhammad, 2010)
Materi 20. Bahasa MarkUp
Bahasa Markup
HyperText Markup Language (HTML) adalah suatu bahasa pengkodean yang
akan diinterpretasikan oleh browser. Browserlah yang akan memberikan hasilnya
dan dapat kita lihat di browser. Untuk mengenali file ini kita dapat perhatikan
ekstensi filenya yaitu html atau htm. Untuk membuat halaman HTML ini kita
dapat menggunakan editor seperti notepad. Setiap file yang kita buat dengan
notepad maka simpanlah dengan nama yang diakhiri .html atau .htm (Wardani,
2014)

Gambar 18 Html

Mengenal Atribut HTML


Setiap tag HTML dapat memiliki satu atau lebih atribut, atribut ini berfungsi untuk

menyimpan informasi yang berkaitan dengan tag tersebut. Pada tag <img> kita akan
menggunakan atribut src untuk menyimpan lokasi gambar:

<img src>

Selanjutnya untuk memasukkan nilai pada atribut, kita gunakan operator sama
dengan (=) diikuti dengan lokasi gambar yang diapit oleh tanda kutip.

<img src=gambar.jpg>
33

Tag img termasuk ke dalam tag spesial dan tidak memiliki tag penutup (Disebut
juga sebagai Self Closed Tag), seperti tag-tag lainnya. Ini dikarenakan tag ini tidak
memiliki konten seperti :

<title>Ini adalah Konten tag title</title>

Sebagai pengganti, kita tambahkan tanda slash (/) sebelum kurung tutup :

<img src=gambar.jpg /> (Ariona, 2013)

Materi 21. Bahasa web scripting


Bahasa Web Scripting

PHP adalah bahasa scripting open source yang ditulis menggunakan sintaks
bahasa C, Java dan Perl yang sederhana dan mudah dipelajari. Script PHP menyatu
dengan file HTML, dieksekusi dan bekerja di komputer server (server side). Setelah
eksekusi, Script PHP mengirimkan hasil eksekusi ke komputer client melalui jalur
HTTP.(Wardani, 2014)

PHP Pertama kali ditemukan pada 1995 oleh seorang Software Developer
bernama Rasmus Lerdrof. Ide awal PHP adalah ketika itu Radmus ingin
mengetahui jumlah pengunjung yang membaca resume onlinenya. script yang
dikembangkan baru dapat melakukan dua pekerjaan, yakni merekam informasi
visitor, dan menampilkan jumlah pengunjung dari suatu website. Dan sampai
sekarang kedua tugas tersebut masih tetap populer digunakan oleh dunia web saat
ini. Kemudian, dari situ banyak orang di milis mendiskusikan script buatan Rasmus
Lerdrof, hingga akhirnya rasmus mulai membuat sebuah tool/script, bernama
Personal Home Page (PHP).

Keunggulan PHP :

1. Gratis

Apa yang membuat PHP begitu berkembang sangat pesat?? hingga jutaan domain

menggunakan PHP, begitu populernya PHP?? Jawabannya adalah karena PHP itu
34

gratis. Saya sendiri menyukai bahasa yang satu ini selain mudah juga karena gratis.

2. Cross platform

Artinya dapat di gunakan di berbagai sistem operasi, mulai dari linux, windows,
mac os dan os yang lain.

3. Mendukung banyak database

PHP telah mendukung banyak database, ini mengapa banyak developer web

menggunakan PHP Adabas D Adabas D, dBase dBase, Empress Empress, FilePro

(read-only) FilePro (read-only) Hyperwave, IBM DB2, Informix, Ingres, InterBase,

FrontBase mSQL, Direct MS-SQL, MySQL MySQL, ODBC, Oracle (OCI7 and

OCI8), Ovrimos, PostgreSQL SQLite, Solid, Sybase, Velocis, Unix


dbm.(Dwiartara, 2012)

Gambar 19 struktur PHP


35

Materi 22. Bahasa UML


Unified Modeling Langue

A language for visualization, designing and documentation of a software.

UML != Methodology

UML diagrams:

Class diagram focus

Package diagram
Use Case Diagram
Sequence Diagram
And list goes on

Class Model
Represent the basics of Object Oriented Programming

Identify what class they are, show the details, and how they interrelate and
interact

Capture structure of OOP

Consists of:

A unique name (start with an Uppercase letter)


A list of attributes (int, char, String, double, etc)
A list of methods (Nugraha, 2014)
36

TitleDeed
Token 1 1 Player
+selectedTokenpicks +player +player 1
+titleDeed
1
buy has

+ownProperty +property
PropertyOwner 1
0..*
Property

develop

+buildings 1..*
builds on
Building Street Utility RailwayStation
1..*

House Hotel

Gambar 20 UML
37

Daftar Pustaka

Ariona, R. (2013). Belajar HTML dan CSS, 1148. Retrieved from


http://www.ariona.net/ebook-belajar-html-dan-css/

Ayadi, A. (2013). Turing-Mesin.

Dwiartara, L. (2012). Menyelam dan Menaklukan Samudra PHP. Ilmuwebsite.


Com, 3. Retrieved from
http://scholar.google.com/scholar?hl=en&btnG=Search&q=intitle:menyelam
+dan+menaklukan+samudra+php#0

Handayaningsih, S. (2010). Ekspresi Reguler. Informatika.

Juarna, A. (2012). Teori Bahasa Dan Automata.

Mahtarami, A. (2007). Himpunan dan Ekspresi Reguler.

Muhammad, B. (2010). Bahasa-Pemrograman-Pascal.

Mutiawani, V. (2014a). Deterministic Finite Automata. Informatika, 158.

Mutiawani, V. (2014b). Non-Deterministic Finite Automata. Informatika, 1106.

Nugraha, A. (2014). Lecture 2 - Class Modeling.

Nurdiana,Epri. Rahmatika,Hadi K, T. (2007). TEORI BAHASA OTOMATA DAN


KOMPUTASI BESERTA PENERAPANNYA.

Render, R. (2014). eBook .: KOMPUTER:.

Wardani, R. (2014). Pemrograman Web dengan PHP. Pemrograman Web, 82101.

Widianto, teguhkukuh. (2015). Finite Automata.

Wirawan, Hendri, D. (2015). TM_Teori_Bahasa_dan_Otomata.


38

Anda mungkin juga menyukai