Teknik Kompilasi – Code Generator

Antonius T S – 1501166213

Soal:

Ditentukan 2 buah titik, dimana salah satu titik merupakan titik pusat dari sebuah lingkaran dan mempunyai jari – jari. Bagaimana memastikan titik yang lain apakah titik tersebut berada di dalam lingkaran, atau berada pada garis lingkaran, atau berada diluar lingkaran ?

Jawab :

Persamaan lingkaran dengan pusat di A (a, b) dan berjari-jari r, yaitu :

Persamaan lingkaran

Jika diketahui suatu titik B (x1 , y1), maka untuk memastikan apakah titik B berada di dalam lingkaran, atau berada pada garis lingkaran, atau berada diluar lingkaran dapat dibuat pseudocode seperti berikut :

Input x1 , y1
Input a , b
Input r

if (x1-a)^2 + (y1-b)^2 < r^2 then
print “Titik berada didalam lingkaran”
else if (x1-a)^2 + (y1-b)^2 = r^2 then
print “Titik berada pada garis lingkaran”
else
print “Titik berada diluar lingkaran”

Code generator :

01. mov x1,R0
02. mov a, R1
03. sub R1,R0
04. mul R0,R0
05. mov y1, R2
06. mov b, R3
07. sub R3,R2
08. mul R2,R2
09. add R2,R0
10. mov r,R4
11. mul R4,R4
12. lt R4,R0
13. jmpf R0,(16)
14. prt “Titik berada didalam lingkaran”
15. jmp ,(21)
16. eq R4,R0
17. jmpf R0,(20)
18. prt “Titik berada pada garis lingkaran”
19. jmp ,(21)
20. prt “Titik berada diluar lingkaran”
21. …

 

www.binus.ac.id

 

Posted in Uncategorized | 2 Comments

Tugas Quiz Tehnik Kompilasi

1501166213-Antonius TS

06PFT

 

1.S -> S + A | S – A | A + S | A – S | B * A

B -> aB | B(a + B) | B * a | a(a + B) | b

A -> a

Jawab :

S-> AS’’ | B*AS’

S’ -> +AS’ | -AS’ | ε

S’’ -> +SS’ | -SS’

B -> aB’’ | bB’

B’ -> (a+B)B’ | *aB’ | ε

B’’ -> BB’ | (a+B)B’

A -> a

First (S) -> {a,b }
First (S’) -> { +,-, ε }
First (S’’) -> {+,- }
First (B) -> {a,b }
First (B’) -> { (,*,ε }
First (B’’) -> { a,b,(}
First (A) -> {a }
Follow (S) -> { $}
Follow (S’) -> { $}
Follow (V) -> {:}
Follow (V’) -> {:}
Follow (E) -> { then,$,),]}
Follow (E’) -> { then,$,),]}
Follow (T) -> { +,-}
Follow (T’) -> { +,- }
Follow (F) -> { *,/ }
a b + * ( $
S S-> AS’’| B*AS’ S->B*AS’
S’ S’ -> +AS’ S’ -> -AS’ S’ -> ε
S’’ S’’ -> +SS’ S’’ -> -SS’
B B -> aB’’ B -> bB’’
B’ B’-> ε B’->*aB’| ε B’ -> (a+B)B’ | ε
B’’ B’’ -> BB’ B’’ -> BB’ B’’->(a+B)B’
A A -> a

2.      2. S -> if E then S | if E then S else S | V := E

V -> id | id [E]

E -> E + T | E – T | T

T -> T * F | T / F | F

F -> V | (E) | const

S -> if E then S S’ | V := E

S’ -> ε | else S

V -> idV’

V’ -> ε | [E]

E -> TE’

E’ -> +TE’ | -TE’ | ε

T -> FT’

T ‘-> *FT’ | /FT’ | ε

F -> V | (E) | const

First (S) -> {if,id }
First (S’) -> { ε,else }
First (V) -> { id}
First (V’) -> { ε ,[}
First (E) -> { id,(,const}
First (E’) -> { +,-, ε }
First (T) -> { id,(,const}
First (T’) -> { *,/, ε }
First (F) -> { id,(,const}
Follow (S) -> { $}
Follow (S’) -> { $}
Follow (V) -> {:}
Follow (V’) -> {:}
Follow (E) -> { then,$,),]}
Follow (E’) -> { then,$,),]}
Follow (T) -> { +,-}
Follow (T’) -> { +,- }
Follow (F) -> { *,/ }

3.S-> a = A

A -> aA’ | bA’

A’ -> +AA’ | ε

First (S)                 : { a }

First (A)                 : { a, b }

First (A’)               : { +, ε }

Follow (S)            : { $ }

Follow (A)           : { $, + }

Follow (A’)          : { $, + }

a

b

+

$

S

S-> a = A

A

A -> aA’

A -> bA’

A’

A’ -> +AA’ | ε

A’ -> ε

4.Diketahui grammar:

be -> bt be

be’ -> or bt be’

be’ -> ε

bt-> bf bt’

bt -> and bf bt’

bt’-> ε

bf -> not bf

bf -> (be)

bf -> true

bf -> false

Inputan: not (true or false) and true and true and false not (false) true

First (be)              = {not , ( , true , false}

First (be’)            = {or , ε}

First (bt)               = {not , ( , true , false}

First (bt’)             = {and , ε}

First (bf)               = {not , ( , true , false}

Follow (be)         = {$ , )}

Follow (be’)        = {$ , )}

Follow (bt)          = {or , $ , )}

Follow (bt’)         = {or , $ , )}

Follow (bf)          = {or, $, ) , and}

or

not

(

)

true

false

and

$

be be->bt be’ be->bt be’ be->bt be’ be->bt be’
be’ be’->or bt be’ be’->ε be’->ε
bt bt->bf bt’ bt->bf bt’ bt->bf bt’ bt->bf bt’
bt’ bt’->ε bt’->ε bt’-> and bf bt’ bt’->ε
bf bf->not bf bf-> (be) bf->true bf->false

No

Stack

Input

Output

1. be $ not (true or false) and true and true and false not (false) true be -> bt be’
2. bt be’ $ not (true or false) and true and true and false not (false) true bt -> bf bt’
3. bf bt’ be’ $ not (true or false) and true and true and false not (false) true bf -> not bf
4. not bf bt’ be’ $ not (true or false) and true and true and false not (false) true pop not
5. bf bt’ be’ $ (true or false) and true and true and false not (false) true bf -> (be)
6. (be) bt’ be’ $ (true or false) and true and true and false not (false) true pop (
7. be) bt’ be’ $ true or false) and true and true and false not (false) true be -> bt be’
8. bt be’) bt’ be’ $ true or false) and true and true and false not (false) true bt -> bf bt’
9. bf bt’ be’) bt’ be’ $ true or false) and true and true and false not (false) true bf ->true
10. true bt’ be’) bt’ be’ $ true or false) and true and true and false not (false) true pop true
11 bt’ be’) bt’ be’ $ or false) and true and true and false not (false) true bt’ -> ε
12 be’) bt’ be’ $ or false) and true and true and false not (false) true be’ ->or bt be’
13. or bt be’ ) bt’ be’ $ or false) and true and true and false not (false) true pop or
14. bt be’) bt’ be’ $ false) and true and true and false not (false) true bt ->bf bt’
15. bf bt’ be’) bt’ be’ $ false) and true and true and false not (false) true bf -> false
16. false bt’ be’) bt’ be’ $ false) and true and true and false not (false) true pop false
17. bt’ be’) bt’ be’ $ ) and true and true and false not (false) true bt’ -> ε
18. be’) bt’ be’ $ ) and true and true and false not (false) true be’ -> ε
19. ) bt’ be’ $ ) and true and true and false not (false) true pop )
20. bt’ be’ $ and true and true and false not (false) true bt’-> and bf bt’
21. and bf bt’ be’ $ and true and true and false not (false) true pop and
22. bf bt’ be’ $ true and true and false not (false) true bf -> true
23. true bt’ be’ $ true and true and false not (false) true pop true
24. bt’ be’ $ and true and false not (false) true bt’ -> and bf bt’
25. and bf bt’ be’ $ and true and false not (false) true pop and
26. bf bt’ be’ $ true and false not (false) true bf -> true
27. true bt’ be’ $ true and false not (false) true pop true
28. bt’ be’ $ and false not (false) true bt’ -> and bf bt’
29. and bf bt’ be’ $ and false not (false) true pop and
30. bf bt’ be’ $ false not (false) true bf -> false
31. false bt’ be’ $ false not (false) true pop false
32. bt’ be’ $ not (false) true ditolak

http://binus.ac.id

Posted in Uncategorized | Leave a comment

Create table menggunakan keyword insert pada MySQL

Antonius Tirta Surya -1501166213  Web Database

Pertama kita mencoba untuk menggunakan keyword CREATE ketika kita membuat table baru dengan keyword yang sama yaitu CREATE

1

Setelah coba di compile maka akan muncul pesan error sbb:

2

Hal ini disebabkan karena penggunan keyword CREATE sebagai nama table.Hal ini bisa dihindari dengan memberikan kurung siku pada keyword tersebut [].

3

Maka setelah di compile tidak ada error yang muncul.

4

www.binus.ac.id

Posted in Uncategorized | Leave a comment

Analisis ERD Twitter

Antonius T S – 1501166213                    Web Database

Berikut ini adalah analisis kami mengenai twitter

1374276_521373244638507_392364643_n

Dalam analisis kami ini, kami mendapatkan 7 tabel diantaranya Member, Tweet, DirectMessage, TweetTransaction, DirectMessageTransaction, Following, dan Follower.

Dalam analisis kami ini, kami sengaja memisahkan antara tabel DirectMessage dengan Tweet karena keduanya memiliki perbedaan yang signifikan dimana Tweet itu dapat dilihat oleh banyak orang walaupun orang itu tidak memfollow atau tidak kita follow sedangkan DirectMessage hanya dapat dilihat antara orang yang berkirim pesan saja dan tentunya harus memfollow dan kita follow terlebih dahulu baru transaksi direct message bisa terjadi sehingga dapat kita simpulkan keduanya terpisah karena cara transaksi mereka yang sedikit berbeda. DirectMessage terhubung dengan DirectMessageTransaction dimana DirectTransaction sebagai detail dari transaksi yang terjadi seperti siapa yang melakukan, kapan waktunya, pesannya apa, dll. Begitu juga dengan Tweet yang dihubungkan ke Member oleh tabel TweetTransaction dimana tugas dari TweetTransaction ini sama dengan DirectMessageTransaction. Tabel Following dan Follower sengaja kami pisah karena ada sedikit perbedaan dan keduanya terhubung ke tabel Member.

 

www.binus.ac.id

Posted in Uncategorized | Leave a comment

Web Database Environment

Web Database Environment

Definisi Web Database
• Tempat penyimpanan (repositories) database atau informasi yang secara dinamis
berinteraksi dengan halaman Web.

• Sebuah metode untuk menyimpan content WWW, dalam format terstruktur atau usable, yang terhubung baik secara statis maupun dinamis dengan database lain.
• Membantu komunikasi antara Web server dan Database.dan memungkinkan pemakai
menerbitkan atau mengumpulkan informasi dari manapun.

Definisi Database:

Pangkalan data[1] atau basis data (bahasa Inggris: database), atau sering pula dieja basisdata, adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. 

Data:Basic facts; information is some useful combination of facts.

Information:Some useful combination of facts.

Web Database Technology

-Web server:Mengelola interaksi dengan kumpulan halaman web. Web server mendengarkan permintaan dari web browser untuk dokumen dalam koleksi, dan merespon permintaan tersebut dengan mengirimkan salinan dokumen ke browser web.

 -Database management system (DBMS):Perangkat lunak yang mengelola semua interaksi dengan database.

-Database client:Perangkat lunak yang menggunakan pengguna akhir untuk berinteraksi dengan DBMS.

Static and Dynamic Web Content

Static Web:Konten statis adalah tetap dan berubah hanya ketika seseorang update dokumen web secara manual.

Dynamic Web:Dynamic content is generated afresh each time the web document is
requested.

-Statis dan konten dinamis digabungkan untuk menghasilkan halaman web akhir dalam aplikasi database web.
-A web database yang menyimpan aplikasi isi dokumen dinamis dalam database.
-Setiap kali sebuah dokumen web dengan konten dinamis diminta oleh browser, konten dinamis yang diambil dari database dan digabungkan dengan konten statis (sering disebut teks boiler-plate) untuk membuat halaman web.

Untitled

Komponen-komponen yang harus diketahui untuk membangun web database adalah:

  1. HTML
  2. Microsoft Active Server Page (ASP)
  3. Microsoft Visual Basic Scripting Edition (VBScript)
  4. Desain dan Implementasi Database
  5.  Microsoft ActiveX Data Objects (ADO)
  6.  Structured Query Language (SQL)
  7.  Windows NT atau Windows 2000 Server
  8.  Internet Information Server (IIS)/ Personal Web Server (PWS)

Contoh Aplikasi Yang Menggunakan Webdb
• E-Commerce
• Resource libraries
• Catalogs
• Directories (Yellow Pages)
• Online Shopping
• Online Auctions
• Training Courses
• Survey
• Financial Analysis

www.binus.ac.id

 

Sumber lain:http://id.wikipedia.org/wiki/Basis_data,PDF1

Posted in Uncategorized | Leave a comment

Top-Down Parsing

Antonius Tirta Surya – 1501166213

Question:Mengapa dalam top down parsing tidak boleh terdapat left recursion dan left factoring?

Metoda Parsing
Ada 2 metoda parsing : top-down dan bottom-up.

*A parser is a top down if it discovers a parse tree top to bottom.
*A top down parse corresponds to a preorder traversal of the parse tree

Parsing top-down : Diberikan kalimat x sebagai input. Parsing dimulai dari simbol awal
S sampai kalimat x nyata (atau tidak nyata jika kalimat x memang
tidak bisa diturunkan dari S) dari pembacaan semua leaf dari pohon
parsing jika dibaca dari kiri ke kanan.

Parsing bottom-up : Diberikan kalimat x sebagai input. Parsing dimulai dari kalimat x
yang nyata dari pembacaan semua leaf pohon parsing dari kiri ke
kanan sampai tiba di simbol awal S (atau tidak sampai di S jika
kalimat x memang tidak bisa diturunkan dari S)

Metode Top-Down Parsing ini meliputi :

  1. Backtrack/ Backup           : Brute Force
  2. No Backtrack                : Recursive Descent Parser

Metoda Brute-Force tidak dapat menggunakan grammar rekursi kiri, yaitu grammar yang
mengandung produksi rekursi kiri (left recursion) :

Problems:

  1. Left Recursion
  2. Left factoring

Sebuah grammar dikatakan bersifat left recursion apabila grammar tersebut mengandung suatu nonterminal dan derivasinya.

Contoh : A → Aα

Contoh 2:

A → Aα|β

Maka, A → βA’

A’ → αA’ | ε

Metode Top-Down Parsing tidak bisa menangani grammar yang mengandung left recursive, sehingga left recursive perlu dihilangkan.. Produksi rekursi kiri akan
menyebabkan parsing mengalami looping tak hingga.

Grammar dapat dikatakan left factoring apabila terdapat produksi yang berbentuk seperti di bawah ini :

Contoh  :

A → αβ1 | αβ2

Grammar tersebut diubah menjadi :

A → αA’

A’ → β1 2

Adanya left factoring ini menyebabkan grammar menjadi ambigu karena tidak jelas yang mana dari dua produksi alternatif yang bisa digunakan untuk memperluas nonterminal A. Dari contoh soal di atas, kita tidak tahu mau menelusuri A ke αβ1 atau ke αβ2.

www.binus.ac.id

Sumber lain:pdf1

Posted in Uncategorized | Leave a comment

RE->DFA

06PFT
Daftar Nama Kelompok:

  • Antonius Tirta Surya – 1501166213
  • Herlina Astari – 1501155506
  • Putri Indah – 1501210536
  • Steven – 1501154182

Soal:
Diketahui RE = a(ab*a+|ba*b+)#
Buatlah DFA (yang sudah diminimisasi) dari RE tersebut dengan menggunakan 2 cara, yaitu cara tree dan cara dengan melalui ε-NFA!

Jawab:
CARA TREE

Firstpos dan Lastpos

tree1

Followpos

Followpos  1 = 2,5
Followpos  2 = 3,4,8
Followpos  3 = 3,4,8
Followpos  4 = 4,8
Followpos  5 = 6,7
Followpos  6 = 6,7
Followpos  7 = 7,8
Followpos  8 = –

Tabel DFA

a

b

S0

2,5 (S1)

S1

3,4,8 (S2)

6,7 (S3)

S4

4,8 (S4)

7,8 (S5)

S3

S3

S4

S4

S5

S5

DFA

dfa1

CARA ε-NFA

e-nfa1

ε-closure

ε-closure({0})={0} -> S1
ε-closure({S0,a}) = ε-closure({1}) = {1,2,8} ->S1
ε-closure({S0,b}) = –
ε-closure({S1,a}) = ε-closure({3}) = {3,4,6} ->s2
ε-closure({S1,b}) = ε-closure({9}) = {9,10,12} ->s3
ε-closure({S2,a}) = ε-closure({7}) = {6,7,14} ->S4
ε-closure({S2,b}) = ε-closure({5}) = {4,5,6} ->S5
ε-closure({S3,a}) = ε-closure({11}) = {11,12,10} ->S6
ε-closure({S3,b}) = ε-closure({13}) = {12,13,14} ->S7
ε-closure({S4,a}) = ε-closure({7}) = s4
ε-closure({S4,b}) = –
ε-closure({S5,a}) = ε-closure({7}) = S4
ε-closure({S5,b}) = ε-closure({5}) = S5
ε-closure({S6,a}) = ε-closure({11}) = S6
ε-closure({S6,b}) = ε-closure({13}) = S7
ε-closure({S7,a}) = –
ε-closure({S7,b}) = ε-closure({13}) = S7

Tabel Minimisasi DFA

a

b

S0

S1

S1

S2

S3

S2

S4

S5

S3

S6

S7

S4*

S4*

S5

S4

S5

S6

S6

S7

S7*

S7*

DFA

3

www.binus.ac.id

Posted in Uncategorized | Leave a comment

Hello world!

Welcome to Binusian blog.
This is the first post of any blog.binusian.org member blog. Edit or delete it, then start blogging!
Happy Blogging 🙂

Posted in Uncategorized | 1 Comment