Posted May 20th, 2014 by agungroyat
Diketahui pusat lingkaran titik A(x1,y1) dan titik B (x2,y2) serta jari-jari r1, maka untuk menentukan titik pada lingkaran menggunakan persamaan lingkaran
(x2-x1)^2 + (y2-y1)^2 = r1^2
Sehingga posisi titik terhadap lingkaran terbagi menjadi 3:
- jika (x2-x1)^2 + (y1-y2)^2 = r1^2 maka titik terletak pada lingkaran
- jika (x2-x1)^2 + (y1-y2)^2 < r1^2 maka titik berada di dalam lingkaran
- jika (x2-x1)^2 + (y1-y2)^2 > r1^2 maka titik berada di luar lingkaran
Pseudocode
Input x1,y1,x2,y2, r1
if((x2-x1)^2 + (y1-y2)^2 = r1^2)then
print ‘titik terletak pada lingkaran’
else if((x2-x1)^2 + (y1-y2)^2 < r1^2) then
print ‘titik berada di dalam lingkaran’
else
print ‘titik berada di luar lingkaran’
Code Generator
01 mov x2, Ro
02 mov x1, R1
03 sub R1, Ro
04 mul Ro,Ro
05 mov y2, R2
06 mov y1, R3
07 sub R3, R2
08 mul R2, R2
09 add R2, Ro
10 mov r1, R4
11 mul R4, R4
12 eq r1, Ro
13 jmpf Ro,16
14 prt, “titik terletak pada lingkaran”
15 jmp, 21
16 lt r1, Ro
17 jmpf Ro,20
18 prt, “titik berada di dalam lingkaran”
19 jmp, 21
20 prt, “titik berada di luar lingkaran”
21 …
www.binus.ac.id
Posted April 1st, 2014 by agungroyat
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
Tentukan First, Follow, dan Table Parsing!
Jawab:
S -> A+SS’ | A – SS’ | B * AS’
S’ -> +AS’ | -AS’ | ε
S = > AF | B * AS’
S’ -> +AS’ | -AS’ | ε
S’’ -> +SS’ | -SS’
B -> aBB’ | a(a+B)B’ | bB’
B’-> (a+B)B’ | *aB’
B -> aG | 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,(}
Follow S -> {$,+,-}
Follow S’ -> {$}
Follow B -> {$,a,b,)}
Follow B’ -> {$}
Follow S’’ -> {$,+,-}
Follow B’’ -> {$,a,b,)}
|
a |
b |
+ |
– |
* |
( |
) |
$ |
S |
S -> AF |
S -> B*AS’ |
|
|
|
|
|
|
S’ |
|
|
S->+AS’ |
S->-AS’ |
|
|
|
S-> ε |
B |
B->aG |
B->bB’ |
|
|
|
|
|
|
B’ |
|
|
|
|
B->*aB’ |
B’->(a
+b)B’ |
|
|
F |
|
|
F->+SS’ |
F->-SS’ |
|
|
|
|
G |
G->BB’ |
G->BB’ |
|
|
|
G->(a+b)B’ |
|
|
2. S -> if E then S | if E then S else S | V:= E
S’->ε | else S
E-> TE’
E’-> TE’ | -TE’ | ε
T->FT’
T’-> FT’|/FT’|ε
F-> V|(E)|const
V-> id V’
V’-> ε|[E]
Tentukan First, Follow, dan Table Parsing!
first(S) = {if, id}
first(S’) = {ε, else}
first(E) = { id, ( , const}
first(E’) = {+, -, ε}
first(T) = {id,(, const}
first(T’) = {*, /,ε }
first(F) = {id,(, const}
first(V) = {id}
first(V’) = {a b c}
follow(S) = {$}
follow(S’) = {$}
follow(E) = { then, $,),]}
follow(E’) = { then, $,),]}
follow(T) = {+, -}
follow(T’) = {+, -}
follow(F) = {*,/ }
follow(V) = {:}
follow(V’) = {:}
|
if |
Id |
else |
( |
const |
+ |
– |
* |
/ |
[ |
$ |
then |
) |
] |
: |
S |
S-> if E then S S’ |
S->V:=E |
|
|
|
|
|
|
|
|
|
|
|
|
|
S’ |
|
|
S->else S |
|
|
|
|
|
|
|
|
|
|
|
|
E |
|
E->TE’ |
|
E->TE’ |
E->TE’ |
|
|
|
|
|
|
|
|
|
|
E’ |
|
|
|
|
|
E’->TE’ |
E’->TE’ |
E’->TE’ |
|
|
|
E->ε |
E->ε |
E->ε |
|
T |
|
T->FT’ |
|
T->FT’ |
T->FT’ |
|
|
|
|
|
|
|
|
|
|
T’ |
|
|
|
|
|
T’->ε |
T’->ε |
T’->*FT’ |
T’->/FT’ |
|
|
|
|
|
|
F |
|
F->V |
|
F->(E) |
F->const |
|
|
|
|
|
|
|
|
|
|
V |
|
V->idV’ |
|
|
|
|
|
|
|
|
|
|
|
|
|
V’ |
|
|
|
|
|
|
|
|
|
V’->[E] |
|
|
|
|
V->ε |
3. S -> a = A
A -> aA’ | bA’
A’ -> +AA’ | ε
Tentukan First, Follow, dan Table Parsing!
Jawab:
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 sbb:
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
Tentukan input ini diterima atau ditolak!
not(true or false) and true and true and false not (false) true
Jawab:
First (be) -> not,(,true,false
First (be’) -> or, ε
First (bt) -> not,(,true,false
First (bt’) -> and, ε
First (bf) -> not,(,true,flase
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 -> or bt’ |
3
|
bf bt’ be’$ |
not(true or false) and true and true and false not (false) true$ |
bf -> not bf |
4
|
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
|
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
|
bt’ be’ ) bt’ be’$ |
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
|
bt be’ ) bt’ be’$ |
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’$ |
) 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 $ |
be’->ε |
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 br’ |
21
|
and bf bt’ be’$ |
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’$ |
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’$ |
true and false not (false) true $ |
pop and |
26
|
bf bt’ be’$ |
true and false not (false) true $ |
bf -> true |
27
|
true bf bt’ be’$ |
and false not (false) true $ |
pop true |
28
|
bt’ be’$ |
and false not (false) true $ |
bt’ -> and bf bt’ |
29
|
and bf bt’ be’$ |
false not (false) true $ |
pop and |
30
|
bf bt’ be’$ |
false not (false) true $ |
bf -> false |
31
|
false bf bt’ be’$ |
not (false) true $ |
pop false |
32
|
bt’ be’$ |
not (false) true $ |
rejected |
www.binus.ac.id
Posted March 21st, 2014 by agungroyat
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 March 20th, 2014 by agungroyat
Pada SQL Server, terdapat batasan dalam memberi nama tabel baru yang ingin kita buat. Karena pada SQL Server terdapat banyak keyword yang menjadi grammar dari SQL yang digunakan untuk mendefinisikan, memanipulasi, dan mengakses database. Keyword-keyword tersebut tidak dapat kita gunakan sebagai nama identifier suatu tabel.
Contoh:
CREATE TABLE dengan nama “ALTER”
Dari gambar di atas, proses CREATE TABLE tidak dapat dilakukan karena dianggap sebagai error.
Untuk dapat menggunakan keyword SQL sebagai identifier, kita perlu menambahkan tanda ‘[]’ pada nama identifier.
CREATE TABLE dengan menambahkan ‘[]’
Solusi di atas diizinkan oleh SQL Server, maka terdapat message bahwa perintah CREATE TABLE sukses.
Kemudian jika kita ingin menampilkan tabel tersebut, kita juga harus menambahkan tanda ‘[]’ pada nama tabel.
SELECT tabel ALTER tanpa menggunakan ‘[]’
SELECT tabel ALTER dengan menambahkan ‘[]’
www.binus.ac.id
Posted March 18th, 2014 by agungroyat
Model data adalah sekumpulan konsep-konsep untuk menerangkan data, hubungan-hubungan antara data dan batasan-batasan data yang terintegrasi di dalam suatu organisasi. Model data juga merupakan suatu cara untuk menjelaskan bagaimana pemakai dapat melihat data secara logik.
Data dan Tipe Data
Beberapa istilah yang digunakan dalam model data:
- Data : informasi atau fakta yang dimiliki oleh organisasi yang disimpan ke dalam database
- Value : data aktual yang biasanya berupa bilangan biner
- Literal : representasi dari value yang dapat dibaca dan dipahami manusia
- Operator : menggabungkan nilai-nilai yang diwakili oleh literal dan variabel. Dibutuhkan satu atau lebih nilai sebagai input yang kemudian diubah dalam beberapa cara menjadi single value.
- Expression : sebuah kombinasi yang valid dari literal, variabel dan operator
- Data type : seperangkat nama jenis nilai-nilai data
- User-defined : jenis sistem yang diciptakan oleh database designer atau database administrator (DBA) untuk memenuhi kebutuhan aplikasi tertentu, dan mungkin tidak dapat diakses oleh semua aplikasi database.
- System defined : jenis sistem yang dibangun ke dalam DBMS sehingga tersedia untuk setiap aplikasi.
Model Data Relasional
Pada model database relasional, seluruh data diwakili dalam bentuk tuple, digabungkan dalam relasi-relasi. Database yang diorganisasikan dalam hal model relasi merupakan database relasi.
Beberapa istilah yang dipakai dalam model data relasional :
- Candidate key : satu atribut atau kombinasi satu atribut atau lebih yang secara unik menjadi identifier pada suatu relasi.
- Candidate key constraint : sebuah ekspresi Boolean yang menyatakan bahwa kombinasi dari nilai-nilai kolom candidate key pada setiap baris adalah unik.
- Primary key : candidate key yang dipilih sebagai pengidentifikasi utama untuk tabel.
- Simple key : key yang terdiri dari satu kolom.
- Composite key : key yang terdiri dari dua atau lebih kolom.
- Foreign key : kolom atau field pada suatu tabel yang berfungsi sebagai kunci tamu dari tabel lain. Foreign Key sangat berguna bila kita bekerja dengan banyak tabel yang saling berelasi satu sama lain.
- Referencing table : tabel yang mengandung foreign key.
- Referenced table : tabel yang mengandung matching candidate key.
- Matching candidate key : candidate key pada referenced table yang nilainya cocok dengan nilai foreign key dari referencing table.
- Foreign key constraint : menyatakan bahwa untuk setiap baris dari referencing table, harus ada baris dari referenced table sehingga nilai kolom foreign key sama dengan nilai kolom matching candidate key.
- Null : merepresentasikan bahwa suatu kolom bernilai kosong atau “unknown”.
Perbedaan Base Table dan Derived Table
Base table menyimpan instance nya ke dalam media penyimpanan persisten (cth: hard disk) sedangkan Derived table hanya menyimpan instance nya ke dalam memory.
Perbedaan View dan Ordinary Derived Table
View adalah tabel yang skema tabelnya disimpan dalam kamus data (data dictionary).
Referensi :
www.binus.ac.id
Posted March 12th, 2014 by agungroyat
Mengapa top down parsing harus menghilangkan left recursion dan left factoring?
Alasan:
Top-Down Parsing merupakan salah satu metode yang digunakan untuk mencari leftmost derivation pada input suatu string. Selain itu, Top-Down Parsing juga dapat digunakan untuk membuat pars tree dari suatu input string yang dimulai dari root sampai dengan leaves dengan urutan preorder.
Ada 2 hal yang perlu diperhatikan pada Top-Down Parsing. Pertama, left recursive harus dihilangkan karena terdapat Metode Brute-Force. Ciri pada metode tersebut antara lain seperti memilih aturan produksi mulai dari kiri, meng-expand simbol non terminal hingga terminal. Sehingga apabila terjadi kesalahan, dalam hal ini string yang tidak sesuai maka dilakukan backtrack. Salah satu kelemahan yang ditemukan pada Metode Brute-Force adalah mencoba semua aturan produksi yang ada sehingga menjadi lambat. Hal tersebut menyebabkan grammar yang memiliki left recursive (rekursif kiri) mengalami loop secara terus-menerus. Kedua, berkaitan dengan left factoring. Left factoring dapat menghasilkan suatu grammar yang ambigu (ambiguity). Suatu kalimat disebut ambigu apabila terdapat lebih dari 1 pohon sintaks yang dapat dibentuk oleh kalimat tersebut.
www.binus.ac.id
Posted March 9th, 2014 by agungroyat
RE : a*(b|cd)*(a|b)#
Cara 1 :
Followpos 1 : 1 , 2, 3, 5, 6
Followpos 2 : 2, 3, 5, 6
Followpos 3 : 4
Followpos 4 : 2, 3, 5, 6
Followpos 5 : 7
Followpos 6 : 7
Followpos 7 : –
S0 = 1, 2, 3, 5, 6
State
|
a
|
b
|
c
|
d
|
S0 = 1, 2, 3, 5, 6 |
1, 2, 3, 5, 6, 7 = S1* |
2, 3, 5, 6, 7 = S2* |
4 = S3 |
– |
S1* |
S1* |
S2* |
S3 |
– |
S2* |
7 = S4* |
S2* |
S3 |
– |
S3 |
– |
– |
– |
2, 3, 5, 6 = S5 |
S4* |
– |
– |
– |
– |
S5 |
S4* |
S2* |
S3 |
– |
Maka hasil DFAnya ialah :
DFA tersebut tidak dapat diminimisasi lagi.
Cara 2 :
S0 ɛ closure = (0, 1, 3, 4, 5, 6, 11, 12, 14)
S0,a = (2, 13) ɛ closure = (1, 2, 3, 4, 5, 7, 11, 12 ,14, 16) –> S1*
S0,b = (6, 15) ɛ closure = (4, 5, 7, 10 ,11, 12 14, 16) –> S2*
S0,c = (8) ɛ closure = (ɸ) –> S3
S0,d = ɸ
S1,a = (2, 13) –> S1
S1,b = (6,15) –> S2*
S1,c = (8) –> S3
S1,d = ɸ
S2,a = (13) ɛ closure (16) –> S4*
S2,b = (6, 15) –> S2*
S2,c = (8) –> S3
S2,d = ɸ
S3,a = ɸ
S3,b = ɸ
S3,c = ɸ
S3,d = (9) ɛ closure (10, 11, 12, 14) –> S5
S4,a = ɸ
S4,b = ɸ
S4,c = ɸ
S4,c = ɸ
S5,a = (13) –> S4
S5,b = (15) –> S2
S5,c = (8) –> S3
S5,c = ɸ
Maka hasil DFAnya:
Link Binus Website
Posted March 7th, 2014 by agungroyat
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 🙂