Jarak Titik dan Lingkaran

Pseudocode dan Code Generator berdasarkan kasus:

input titik pusat dari lingkaran beserta dengan jari-jarinya, input titik lain, lalu program akan mencari apakah titik lain tersebut terletak di luar, di dalam atau persis di titik jari-jari lingkaran.

Pseudocode:
float distance, distanceX, distanceY;
input Xa, Ya, Ra;
input Xb, Yb;
distanceX = Xa-Xb;
distanceY = Ya-Yb;
distance = sqrt(pow(distanceX,2) + pow(distanceY,2));
if(distance > Ra)
print ‘diluar lingkaran’;
else if (distance == Ra)
print ‘sama dengan jari-jari’;
else print ‘di dalam lingkaran’

Code Generator
Representatif Machine Language:
01. mov Xa, R0
02. mov Xb, R1
03. sub R1, R0
04. mov R0, distanceX
05. mov Ya, R2
06. mov Yb, R3
07. sub R3, R2
08. mov R2, distanceY
09. mov distanceX, R4
10. pow #2, R4
11. mov distanceY, R5
12. pow #2, R5
13. add R5, R4
14. sqrt #2, R4
15. mov Ra, R6
16. gt R6, R4
17. jmpF R4, (20)
18. prt , “diluar lingkaran”
19. jmp ,(25)
20. eq R6, R4
21. jmpF R4, (24)
22. prt , “sama dengan jari-jari”
23. jmp , (25)
24. prt , “di dalam lingkaran”
25. …

http://binus.ac.id

Posted in Tips & Trik | Leave a comment

Kuis Kelas (1 April 2014)

Nomor 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 dari Production diatas!

Jawaban:

–          Left Recursive

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

S’-> +AS’ | -AS’ | e

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

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

A->a

–          Left Factoring

S-> AS”  | B*AS’

S’-> +AS’ | -AS’ | e

S”-> +SS’ | -SS’

B-> aB” | bB’

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

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

A->a

First (S) = {a, b}

First (S’) = {+, -, e}

First (S”) = {+, -}

First (B) = {a, b}

First (B’) = {(, *, e}

First (B”) = {a, b, (}

First (A) = {a}

Follow (S) = {$, +, -}

Follow (S’) = {$, +, -}

Follow (S”) = {$, +, -}

Follow (B) = {), (, *}

Follow (B’) = {), (, *}

Follow (B”) = {), (, *}

Follow (A) = {$, +, -}

Tabel 1

Nomor 2 :

S->if E the 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

Jawab:

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

S’-> ε |else S

V->id V’

V’-> ε | [E]

E->T E’

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

Follow (E’)= { then, $ , else }

Follow (T)= { + , – }

Follow (T’)= { + , – }

Follow (F)= { * , / }

Tabel No 2

Nomor 3 :

S ->  a = A

A -> aA’ | bA’

A’ -> +AA’ | є

First :

First (S) = { a }

First (A) = {a , b}

First (A’) = {+ , є }

Follow :

Follow (S) = { $ }

Follow (A) = { $ , +}

Follow (A’) = { $ , + }

Table :

$

+

a

b

S

S ->  a = A

A

A -> aA’ A -> bA’

A’

A’ -> e

A’ -> +AA’ | e

Nomor 4 :

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

a.       Menentukan First

First (be)              : not, (, true, false

First (be’)            : or, e

First (bt)               : not, (, true, false

First (bt’)             : e, and

First (bf)               : not, (, true, false

b.      Menentukan follow

Follow (be)         : { $, ) }

Follow (be’)        : { $, ) }

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

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

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

c.       Tabel

not true false
  • or
and ( ) $
be be -> bt be’ be -> bt be’ be -> bt be’ be -> bt be’
be’ be’ -> or bt be’
bt bt -> bf bt’ bt -> bf bt’ bt -> bf bt’
bt’ bt’ -> e bt’ -> and bf bt’
bf bf -> not bf bf ->true bf ->false

d.      Pemeriksaan Input

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. notbfbt’ 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. truebt’ 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. orbt 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. falsebt’ 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. truebt’ 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. truebt’ 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. falsebt’ be’ $ false not (false) true $ pop false
32. bt’ be’ $ not (false) true $ ditolak
Posted in Tips & Trik | Leave a comment

Analisis Entity Relationship Diagram Untuk Twitter

ERD Twitter

Penjelasan dari Entity Relationship Diagram

Dalam analisis kami, fitur twiter yang kami fokuskan adalah Follow, Tweet Activity (Membuat tweet baru, retweet dan membalas tweet) serta pesan (mengirim dan menerima pesan).

Data pengguna twitter akan disimpan dalam table MsUser, dimana primary key nya adalah UserID, sedangkan UserName dan Email dibuat unique. Kami tidak membuat UserName sebagai Primary Key supaya lebih memudahkan dalam proses update atau delete tabel lain meskipun username sering diubah oleh pengguna. UserStatus untuk mengetahui apakah user ingin tweetnya bersifat public atau private. Bila bersifat public, semua user dapat melihat tweet dari user tersebut. Sementara bila bersifat private, tweet dari user tersebut hanya dapat dilihat oleh user yang menfollow.

Dalam table TrFollowUser terdapat transaksi follow maupun block, tergantung dari kolom Status.  Table ini akan memetakan Setiap UserID yang difollow (FollowedID) dan UserID yang men-follow (FollowerID).

Table TrTweet akan menyimpan tweet, dimana link akan disimpan dalam kolom Link (Untuk tweet berupa URL ataupun gambar, dapat berisi NULL) dan Content yang akan berisi text. ReferencesTweet akan menyimpan TweetID lain, jika tweet tersebut merupakan hasil retweet atau mereply suatu tweet. Jika tweet yang di post adalah tweet baru maka ReferencesTweetnya adalah kosong (NULL).

Table TrDirectMessage berisi transaksi kirim-mengirim pesan.

Secara keseluruhan setiap tabel mengandung kolom AuditedActivity, AuditedTime dan AuditedUser. AuditedActivity berisi status dari baris tersebut, apakah sudah terhapus, terupdate atau baru terinsert. AuditedTime menyimpan waktu terakhir dari insert, update atau delete baris tersebut sedangkan AuditedUser untuk menyimpan ID dari user yang terakhir mengubah baris tersebut.

www.binus.ac.id

Posted in Web Database | Leave a comment

Percobaan Create Table Menggunakan Keyword SQL

SQL CASE

Berikut hasil percobaan CREATE TABLE menggunakan keyword dari SQL  yang tadi didiskusikan dikelas

Pertama-tama , jika query seperti gambar di bawah dijalankan

Create Table

maka akan menghasilkan Error seperti gambar di bawah ini

wdb1 wdb0.1

Hal ini dikarenakan karena kita ingin membuat tabel dengan nama null  , yang mana null tersebut adalah keyword dari SQL Server.

Jadi solusi untuk menggunakan keyword SQL Server sebagai nama tabel adalah dengan menambahkan Square brackets pada nama tabel tersebut. Seperti contoh di bawah ini

Solution to create table

www.binus.ac.id

Posted in Web Database | Leave a comment

TM2 Teknik Kompilasi

Mengapa dalam top down parsing tidak boleh ada left recursive atau  left factoring?

Metode Top Down Parsing ada 2 jenis metode:

1. Backtrack/Backup: Brute Force

2. No Backtrack: Recursive Descent Parser

Metode Brute Forcer

Dalam metode Brute Forcer, grammar yang memiliki Left Recursion tidak bisa diperiksa, karena Left Recursion akan mengalami loopng atau perulangan secara terus-menerus atau tak terhingga. Sehingga perlu diubah terlebih dahulu menjadi grammar yang tidak mengandung Left Recursion.

Contoh:

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

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

F -> i

Grammar ini diterima karena tidak mengalami left recursive.

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

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

F -> i

Grammar ini tidak diterima karena mengalami left recursive.

Dalam Top Down Parsing kita harus melakukan left factoring karena jika tidak melakukan left factoring, maka akan ada kemungkinan grammar tersebut mengalami ambiguitas. Left Factoring ini akan memperbaiki grammar yang ambigu (bila digambar dengan tree akan menghasilkan lebih dari 1 sintaks). Pada case – case tertentu, jika kita sudah melakukan eliminasi left recursion dan grammarnya sudah tidak ambigu tetapi kita masih tidak dapat menentukan “first” dari symbol tertentu, maka kita harus melakukan factorial.

Contoh:

–          Grammar sebelum melakukan left factoring

1

–           Grammar Sesudah melakukan left factoring

2

Source : http://cse.spsu.edu/clo/teaching/cs4713/lecture/node28.html

www.binus.ac.id

Posted in Tips & Trik | Leave a comment

Web Database TM1

Web Database merupakan 2 kata yang memiliki arti masing-masing

Web : sebuah aplikasi internet yang memungkinkan berbagai informasi dan pelayanan untuk disimpan dan diakses di internet. Web teknologi penting karena menyediakan cara yang murah dan sederhana untuk program komputer menyimpan dan akses informasi serta melaksanakan yang tersimpan dalam komputer.

Database : pengumpulan data yang dibagi secara logika terkait dan deskripsi dari data desain untuk memenuhi kebutuhan informasi organisasi. Database teknologi penting karena memungkinkan pengumpulan data yang besar dari semua jenis.

Database Web : sistem di mana kedua web dan teknologi database digunakan. Menyediakan akses lebih luas untuk sistem database, cara sistem distribusi dan layanan lebih melalui integrasi sistem Web. Database teknologi penting karena memungkinkan banyak komputer untuk bekerja sama untuk memberikan solusi untuk masalah tunggal dan kompleks berkaitan dengan pengumpulan kecil atau besar data dari semua jenis.

Contoh aplikasi web :

  1. Publikasi web
    Digunakan untuk mempublikasikan dan menyebarkan informasi.
    Manfaat : menyebarkan informasi dalam biaya rendah, jangkauan luas, dan aksesibilitas web.
    Contoh : Akademik Halaman Web, seperti http://www.binus.ac.id

    BINUS

  2. Digunakan sebagai komunikasi elektronik untuk semua proses bisnis, iklan, dll
    Manfaat : untuk membuat bisnis lebih cepat, lebih murah dan lebih luas.
    Contoh : Online Book Store, seperti http://www.amazon.comAmazon
  3. Group-kegiatan
    Aplikasi yang menunjang kegiatan kelompok.
    Manfaat : untuk menyimpan dan memperbarui informasi dan untuk berkomunikasi dengan pengguna lain di seluruh Web.
    Contoh : Blog Binusian

Untuk bisa mengakses aplikasi web seperti yang telah disebutkan di atas, kita memerlukan yang namanya web browser.

Web Browser : perangkat lunak yang berfungsi untuk menerima dan menyajikan sumber informasi di internet
Contoh : Google Chrome, Internet Explorer, Safari

Selain itu, dalam teknologi web database ada beberapa istilah yaitu :

  • 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.
    Contoh : Apache, IIS, Nginx
  • Database Management System (DBMS)
    Perangkat lunak yang mengelola semua interaksi dengan database.
    Contoh : Microsoft Access,  Microsoft SQL Server, ORACLE, MySQL
  • Database Client
    Perangkat lunak yang menggunakan pengguna akhir untuk berinteraksi dengan
    DBMS.
    Contoh : SQuirrel SQL, MySQL Workbench, SQL Anywhere

Referensi :

www.binus.ac.id

Posted in Web Database | Tagged | Leave a comment

TM1 Teknik Kompilasi

TM1-2RE :  a*(b|cd)*(a|b)#

Cara 1 :

Tree

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 :

TM1-2

DFA tersebut sudah terminimisasi.

Cara 2 : 

NFA ∈

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:

TM1-2

Link Binus Website

Posted in Teknik Kompilasi | Tagged | Leave a comment