Code Generator

May 20th, 2014 by Felix Hendrian No comments »

SOAL:

Diketahui pusat lingkaran titik A(x1,y1) dan titik B (x2,y2) serta jari-jari r, maka untuk menentukan titik pada lingkaran  menggunakan persamaan lingkaran.

Sehingga posisi titik terhadap lingkaran terbagi menjadi 3:

k = (x2-x1)2 + (y2-y1)2

  • jika k > r2 maka titik berada di luar lingkaran
  • jika k < r2 maka titik berada di dalam lingkaran
  • jika k = r2 maka titik bersingung pada lingkaran

 

JAWABAN :

Pseudocode :

float x1, x2, y1, y2,r,k ;

input x1, x2, y1, y2,r;

k = (x2-x1)2 + (y2-y1)2;

if(k > r2)

print “titik berada di luar lingkaran”;

else if(k < r2)

print “titik berada di dalam lingkaran”;

else

print “titik bersingung pada lingkaran”;

 

Code Generator :

01 mov x2, R0

02 sub x1,R0

03 mul R0,R0

04 mov y2,R1

05 sub y1, R1

06 mul R1, R1

07 add R1, R0

08 mov R0, k

09 mov k, R2

10 mov r,R3

11 mul r,R3

12 gt R3, R2

13 jmpf R2,(16)

14 prt, (titik berada di luar lingkaran)

15 jmp ,(20)

16 mov k, R4

17 lt R3, R4

18 jmpf R4, (21)

19 prt, (titik berada di dalam lingkaran)

20 jmp , (22)

21 prt, (titik bersingung pada lingkaran)

22 …

Website Binus University

Top Down Parsing

April 1st, 2014 by Felix Hendrian No comments »

Tentukan first, follow, dan production table nya!

1.

SOAL:

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

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

A      ->       a

S  ->            A+SS’ | A – S S’ | B*AS’

S’     ->       +AS’ | -AS’ | Ɛ

S       ->       AS’‘| B*AS’

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

B      ->       aBB’ | a(a+B)B’ | bB’

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

B      ->       aB’’ | bB’

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

A       ->      a

JAWABAN :

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 S’’= {$}

Follow B= {*,)}

Follow B’= {*,)}

Follow B’’= {*.)}

Follow A= {+,-,$}

Capture

2.

SOAL : 

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

JAWABAN : 

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

S’-> ε | else S

V -> id V’

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) = {$,else}

Follow (S’) = {$,else}

Follow (V) = {:}

Follow (V’) = {:}

Follow (E) = {],)}

Follow (E’) = {],)}

Follow (T) = {+,-,]}

Follow (T’) = {+,-,]}

Follow (F) = {*,/,+,-,],}

Capture

3.

SOAL:

S -> a = A

A -> aA’ | bA

A’ -> +AA’ | Ɛ

JAWABAN :

First S = { a }

First A = { a, b }

First A’ = { +, Ɛ }

Follow S = { $ }

Follow A = { $, + }

Follow A’ = { $, + }

Capture

4.

SOAL:

be -> bt be’

be’ -> or bt be’

be’ -> e

bt -> bf bt’

bt’ -> and bf bt’

bt’ -> e

bf -> not bf

bf -> ( be)

bf -> true

bf -> false

Periksalah input sebagai berikut : not (true or false) and true and true and false not (false) true

JAWABAN: 

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}

Capture

 

 

Capture

Website Binus University

Analisis Design Database

March 25th, 2014 by Felix Hendrian No comments »

Capture

Website Binus University

Data Model

March 15th, 2014 by Felix Hendrian No comments »

Jika kita berbicara tentang Data Model, kita harus terlebih dahulu mengerti tentang hal mendasar dari model data dan hal-hal lainnya yang bersangkutan dengan model data tersebut. Hal-hal tersebut seperti tipe data, model yang digunakan, bahkan data itu sendiri.

Data dan tipe data 

Data Item adalah data itu sendiri yang merupakan sebuah fakta yang diinginkan oleh organisasi untuk disimpan di dalam database.

Value adalah nilai dari data item yang disimpan di dalam database dan berbentuk biner, sehingga komputer dapat membacanya.

Literal adalah value yang direpresentasikan ulang dalam bentuk bahasa yang dimengerti manusia sebagai user.

Variable adalah sebuah penampung untuk menyimpan nilai.

Operator adalah gabungan dari beberapa nilai yang ada, untuk disatukan menjadi satu output yang diinginkan.

Expression adalah kombinasi yang valid dari literal,operator dan variable.

Data type adalah sebuah kumpulan dari nilai – nilai data. Dimana data type dapat berdasarkan user defined (berdasarkan dari yang dibuat oleh user untuk keperluan tertentu) dan system defined (merupakan data type bawaan yang pasti ada pada tiap DBMS).

Pengertian dari data model adalah sekumpulan konsep yang berfungsi untuk menerangkan data, hubungan antar data, dan batasan-batasan data yang terintegrasi di dalam suatu organisasi.

Relational Data Model

Relational Data Model adalah  model basis data yang berdasarkan first-order predicate logic, pertama diformulasikan dan di temukan pada tahunn1969 oleh Edgar F. Codd. Di dalam RDM, semua data direpresentasikan di dalam tuples dan dikelompokkan menjadi bentuk relasi. Jika sebuah basis data/ database dikelompokkan berdasarkan model relasi maka dinamakan relational database.

280px-Relational_Model

Dalam RDM terdapat beberapa hal yang perlu diketahui terlebih dahulu:

Tabel adalah data – data yang tersusun secara baris dan kolom.

Dan ada 2 jenis tabel :
Base Table memiliki tiap instance-nya sendiri yang tersimpan dalam media penyimpanan yang persistent seperti hard disk.
Derived Table  hanya memiliki instance yang tersimpan di memory.

Picture1

Di dalam tabel ada pula beberapa hal yang penting agar dapat dibuat Relational Data Model, yaitu :

a. Keys

  1. Candidate Key merupakan kumpulan dari beberapa kolom yang unik yang dapat mewakili tiap – tiap tabel data.
  2. Primary Key merupakan candidate key yang terpilih untuk mewakili 1 tabel data.
  3. Foreign Key merupakan primary key dari tabel data lain yang menjadi penunjuk suatu relasi dari tabel – tabel data.
  4. Simple Key merupakan key yang hanya terdiri dari 1 kolom.
  5. Composite Key adalah key yang terdiri dari dua atau lebih kolom.
  6. Referencing Table  adalah tabel yang memiliki foreign key.
  7. Referenced Table adalah tabel yang ditunjuk oleh foreign key.

280px-Relational_key

b. Constraint

Constraint merupakan batasan yang tidak boleh dilanggar.
Candidate Key Constraint adalah expression boolean yang menyatakan tiap nilai kolom pada tiap barisnya merupakan nilai yang unik.
Foreign Key Constraint adalah setiap nilai foreign key yang menunjuk pada primary key pada tabel lain haruslah ada dan nilai dari foreign key haruslah sama seperti primary key.

BINA NUSANTARA UNIVERSITY WEBSITE

Tugas 2 Teknik Kompilasi

March 11th, 2014 by Felix Hendrian No comments »

Question:
Mengapa di dalam top down parsing tidak boleh ada left recursive dan left factoring?

Answer:

TOP-DOWN PARSING

Dapat dipandang sebagai :

Usaha untuk mencari leftmost deri-vation dari suatu input string
Usaha untuk membangun parse tree dari suatu input string, dimulai dari root (top) sampai dengan leaves (bottom), dengan urutan preorder.
Dalam parser top-down, Left-recursive dan left factor grammars tidak bekerja karena jika terdapat Left-recursion kita tidak tahu kapan recursionnya berhenti ( loop forever ) dan jika terdapat left factor, akan menghasilkan 2 atau lebih produksi ( ambiguitas ). Jadi sebelum melakukan Top-Down parsing, left-recursion harus dihilangkan ( dieliminasi ) dan melakukan left factoring jika terdapat left factor grammar untuk mendapatkan grammar yang sesuai untuk parsing

Contoh :

grammar

Pada grammar diatas tidak terdapat left-recursion, tetapi grammar tersebut memiliki left factor sehingga harus dilakukan left-factoring, menghasilkan :

grammar2

www.binus.ac.id

Mengubah bentuk RE ke dalam DFA

March 9th, 2014 by Felix Hendrian No comments »

Task:

Buat RE -> DFA dengan 2 cara:

  • Menggunakan cara tree
  • Cara ε – NFA

Setelah itu lakukan DFA minimized.

Constraint:

  • State dari DFA minimal 5 state dan maksimal 8 state.
  • Final state minimal 2 state dan maksimal 3 state

Solution:

RE

Menggunakan Cara Tree :

RE cara tree

Dari Tree tersebut dapat ditentukan bahwa S0 atau First postnya adalah 1 , lalu juga diketahui follow postnya sebagai berikut:

Follow post 1 = 2, 4, 5, 6
Follow post 2 = 3
Follow post 3 = 2, 4, 5, 6
Follow post 4 = 4, 5, 6
Follow post 5 = 4, 5, 6
Follow post 6 = 7
Follow post 7 = 6, 8
Follow post 8 = –

Maka dari itu dapat dibuat tabelnya seperti di bawah ini :

Maka dari bentuk seperti ini didapat DFA seperti ini:

Menggunakan Cara ε – NFA:

Menggunakan cara ini untuk mendapatkan DFA pertama-tama kita buat dulu ε-nfa nya.

Selanjutnya dibuatlah ε-closure nya :

ε-closure (0) = 0 → {S0}
ε-closure (move(S0, a)) = ε-closure {1} = {1, 2, 5, 6, 7, 9, 12} → {S1}
ε-closure (move(S0, b)) = {}
ε-closure (move(S1, a)) = ε-closure {3, 8, 13} = {3, 6, 7, 8, 9, 11, 12, 13} → {S2}
ε-closure (move(S1, b)) = ε-closure {10} = {6, 7, 9, 10, 11, 12} → {S3}
ε-closure (move(S2, a)) = ε-closure {8, 13} = {6, 7, 8, 9, 11, 12, 13} → {S4}
ε-closure (move(S2, b)) = ε-closure {4, 10, 14} = {2, 4, 5, 6, 7, 9, 10, 11, 12, 14} → {S5*}
ε-closure (move(S3, a)) = ε-closure {8, 13} = {S4}
ε-closure (move(S3, b)) = ε-closure {10} ={S3}
ε-closure (move(S4, a)) = ε-closure {8, 13} = {S4}
ε-closure (move(S4, b)) = ε-closure {10, 14} = {6, 7, 9, 10, 11, 12, 14} → {S6*}
ε-closure (move(S5, a)) = ε-closure {3, 8, 13} = {S2}
ε-closure (move(S5, b)) = ε-closure {10} = {S3}
ε-closure (move(S6, a)) = ε-closure {8, 13} = {S4}
ε-closure (move(S6, b)) = ε-closure {10} = {S3}

Maka dapat dibuat tabel seperti berikut:

Table e-closure

Dari tabel dapat dibuat graph DFA sebagai berikut:

Ternyata dengan menggunakan kedua cara tersebut didapatkan bentuk DFA yang sama, selanjutnya kita akan melakukan minimalisasi DFA menjadi bentuk yang lebih sederhana.

Pertama-tama kita membuat tabel dari DFA yang telah terbentuk, setelah itu pengelompokan state di dalam DFA yang dapat digabung seperti berikut :

Table Minimized DFA

Lalu dibuatlah Graph DFA yang telah diminimalisasi (Minimized DFA)

BINA NUSANTARA UNIVERSITY WEBSITE

Hello world!

March 9th, 2014 by Felix Hendrian 1 comment »

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 🙂