My Blog for Binusian and Others

Just another Binusian blog site

Representative Machine Language

May20

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.

Jawab:

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. …

 

www.binus.ac.id

Tekkom Quiz 1

April1

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 Factory

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

 

a

b

(

)

+

*

$

S

S-> AS’’ | B*AS’

S-> B*AS’

S’

S’-> +AS’ | e

S’-> -AS’ | e

S’->e

S’’

S’’-> +SS’

S’’-> -SS’

B

B-> aB”

B-> bB’

B’

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

B’->e

B’-> *aB’ | e

B’’

B”-> BB’

B”-> BB’

B”-> (a+B)B’

A

A->a

 

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)= { * , / }

if then else : = id [ ] ( ) + * / const $
S S->if E then S S’ S-> V:=E
S’ S’-> εS’->else S S’-> ε
V V->id V’
V’ V’-> ε V’-> εV’->[E] V’-> ε V’-> ε
E E->T E’ E->T E’ E->T E’
E’ E’-> ε E’-> ε E’-> +TE’E’-> -TE’ E’-> +TE’ E’-> -TE’ E’-> ε
T T’->FT’ T’->FT’ T’->FT’
T’ T-> ε T-> ε T’-> *FT’ T’->/FT’
F F->V F->(E) F->const

3

S ->  a = A

A -> aA’ | bA’

A’ -> +AA’ | e

First (S) = { a }

First (A) = {a , b}

First (A’) = {+ , e }

Follow (S) = { $ }

Follow (A) = { $ , +}

Follow (A’) = { $ , + }

$

+

a

b

S

S ->  a = A

A

A -> aA’ | bA’ A -> aA’ | bA’

A’

A’ -> e

A’ -> +AA’

A’ -> e

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’

bfbf à not bfbf àtruebf à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

www.binus.ac.id

Web Database-Analisis ERD Modelling pada Instagram (TM3)

March20

Analisis ERD Modelling pada Instagram

10149269_596698160417113_1203727947_n

User boleh melakukan posting dalam bentuk video dan image. Namun postingan tersebut harus diketahuin tanggalnya sehingga posting yang baru dapat diletakkan di paling atas timeline. Setiap posting dapat diberi komentar oleh orang lain. Sehingga tabel post harus berhubungan dengan tabel comment karena comment yang diberikan oleh user berhubungan dengan posting dari user lain. Lalu tabel MsPhoto dan MsVideo berhubungan juga dengan tabel Post karena setiap user dapat posting gambar dan video. Tabel Follow dibuat untuk mengetahui siapa saja yang saling follow satu sama lain, dan bagaimana status masing-masing user.

www.binus.ac.id

Web Database-Membuat Tabel Menggunakan Keyword SQL (TM2)

March20

1. CREATE TABLE MENGGUNAKAN KEYWORD SQL

contoh: menggunakan keyword SELECT

2

Saat memasukan query dengan tulisan SELECT tanpa menggunakan kurung siku, query tersebut tidak dapat diexecute.

2. CREATE TABLE MENGGUNAKAN KEYWORD SQL YANG BENAR

1

Saat di execute, CREATE TABLE dan DROP TABLE berhasil.

3

Seharusnya dalam membuat sintaks menggunakan keyword, harus menggunakan kurung siku sebagai tanda bahwa keyword “Select” merupakan nama tabel yang ingin dibuat. Saat di execute, tabel “Select” dapat muncul.

www.binus.ac.id

Teknik Kompilasi-Mengapa Top Down Parsing Tidak Boleh Ada Left Recursion dan Left Factorial? (TM2)

March11

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 kemungkinangrammar 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

img201

–          Grammar Sesudah melakukan left factoring

img203

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

www.binus.ac.id

Teknik Kompilasi-NFAe, DFA, Tree, Thompson’s Construction (TM1)

March9

Soal: a*(b|cd)*(a|b)#

Cara 1: Menggunakan Tree

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

TM1-2

Cara 2: Thompson’s Construction

TM1-3

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 = ɸ

TM1-2

www.binus.ac.id

Artikel Web Database (Tugas GSLC 1)

March7

Bab 1. Dasar Web Database

1.1 Data dan Informasi

Data adalah suatu kumpulan dari banyaknya data dalam database dan tersimpan dalam database. Ada beberapa jenis data: general (text, audio, video, image), security (encryption, cryptografi), dan confidential (contohnya dalam bank). Data juga merupakan kombinasi dari berbagai macam fakta. Data-data tersebut nantinya akan diambil untuk suatu hal yang bermanfaat. Sehingga data yang diambil berdasarkan fakta-fakta yang berguna disebut informasi. Informasi ini nantinya akan berguna untuk suatu perusahaan/penelitian.

1.2 Functional Requirement  dan Non-Functional Requirement

Functional Requirement

Non-Functional Requirement

Sumber data yang berhubungan dengan sistem yang ingin dibuat Sumber data tidak terkait dengan sistem yang ingin dibuat, namun tetap diperlukan
Contoh: Ingin buat website Bimay, lalu ingin tahu kegiatan yang terjadi dalam perkuliahan seperti apa. Apa atributnya yang diperlukan? Sistemnya mau seperti apa? Contoh: Dalam buat website Bimay, berapa orang yang memakai website ini nantinya? Lalu siapa saja yang boleh pakai, performancenya bagaimana?

1.3 Database, Database Schema, Database Instance, dan Meta-Data

Database merupakan kumpulan dari banyak data.

Database Schema merupakan gambaran dari struktur database yang terhubung oleh suatu relasi dalam suatu instance. Biasanya dikenal dengan ERD model. Berikut contohnya:

gambar 1-index

Gambar tersebut merupakan database yang terhubung oleh suatu relasi dengan tabel lain.

Database Instance merupakan tempat penyimpanan data yang mengatur penyimpanan data.

Meta-Data merupakan informasi terstruktur yang mendeskripsikan, menjelaskan, menemukan, atau setidaknya membuat menjadikan suatu informasi mudah untuk ditemukan kembali, digunakan, atau dikelola. Metadata sering disebut sebagai data tentang data atau informasi tentang informasi. Metadata ini mengandung informasi mengenai isi dari suatu data yang dipakai untuk keperluan manajemen file/data itu nantinya dalam suatu basis data.

1.4 Data Model dan Document Model

Data model merupakan suatu pendekatan umum untuk mengelolah data dalam suatu database. Syarat data model yang baik adalah:

-harus menjelaskan dengan baik skemanya,

-struktur datanya harus jelas.

Sedangkan, document model berbentuk suatu dokumen yang tersimpan dalam database. Syarat document model yang baik adalah:

-jelas struktur kontennya dalam database,

-dapat memberikan user untuk menulis data dan sharing data,

-dapat menampilkan berbagai jenis dokumen file.

1.5 Distributed Database

Ada 2 jenis distributed database:

-Centralized

gambar 2-Centralized

Semua aplikasi terhubung dengan masing-masing database dan terhubung oleh 1 pusat server

-Distributed

gambar 3-distributed

Komputer terhubung dengan database di komputer lain.

Bab 2. Network, Database, dan Technology

Network adalah suatu jaringan yang terhubung ke beberapa komputer untuk diakses oleh orang lain. Contohnya: komputer dengan printer menggunakan jaringan agar apa yang ingin diprint dari komputer dapat dicetak oleh printer.

2.1 Perbedaan Internet, Intranet, dan Extranet

Internet adalah jaringan global yang terkoneksi secara global yang digunakan oleh suatu organisasi dan setiap orang di seluruh dunia.

Intranet adalah private network yang hanya bisa diakses oleh 1 perusahaan itu saja. Contohnya sistem absen Binus yang hanya bisa diakses di lingkungan dalam Binus saja.

Extranet adalah private network yang terhubung oleh 1/lebih organisasi untuk berkolaborasi di tempat yang berbeda. Contohnya: Bimay yang bisa diakses oleh mahasiswanya dimana saja.

2.2 Client-Server Computing

Client-server computing adalah suatu pendekatan umum untuk pengembangan sistem informasi. Terdiri dari 2 jenis client-server computing:

-2 Tier

gambar 4-2 Tier

Client request data ke server, lalu server merespon dan membalas ke client.

-3 Tier

gambar 5-3 Tier

Antara client dan server, ada web server sebagai perantara.

2.3 Internet Protocol (IP)

Pengertian dari protocol sendiri merupakan aturan, sehingga internet protocol merupakan aturan di internet agar website yang satu tidak bertabrakan dengan website yang lain. Protokol Internet yang digunakan adalah protokol TCP/IP, yang digunakan untuk melakukan pengalamatan dan routing paket data antar host-host di jaringan komputer berbasis TCP/IP. Versi IP yang banyak digunakan adalah IP versi 4 (IPv4) yang didefinisikan pada RFC 791 dan dipublikasikan pada tahun 1981, tetapi akan digantikan oleh IP versi 6 pada beberapa waktu yang akan datang.

Protokol IP merupakan salah satu protokol kunci di dalam kumpulan protokol TCP/IP. Sebuah paket IP akan membawa data aktual yang dikirimkan melalui jaringan dari satu titik ke titik lainnya. Metode yang digunakannya adalah connectionless yang berarti ia tidak perlu membuat dan memelihara sebuah sesi koneksi. Selain itu, protokol ini juga tidak menjamin penyampaian data, tapi hal ini diserahkan kepada protokol pada lapisan yang lebih tinggi (lapisan transport dalam OSI Reference Model atau lapisan antar host dalam DARPA Reference Model), yakni protokol Transmission Control Protocol (TCP).

2.4 DBMS

DBMS merupakan sistem software yang memberikan/membantu user untuk membuat, mengelolah, dan mengontrol akses dalam database.

Ada 3 jenis language yang digunakan dalam DBMS:

-Data Definition Language(DDL)

Mendefinisikan sintaks dalam database. Contoh: CREATE, ALTER, DROP.

-Data Manipulation Language(DML)

Untuk membuat dan memanipulasi data untuk user yang diolah menjadi sebuah informasi. Contoh: SELECT, UPDATE, DELETE, INSERT.

-Data Control Language(DCL)

Untuk memberikan hak akses kepada siapa yang boleh mengakses database. Contoh: GRANT, REVOKE.

Bab 3. Data Model

3.1 Tipe Model

-value=nilai dari tipe data yang ada,

-variabel=jeni variabel yang digunakan untuk data,

-operator=kombinasi dari suatu value,

-expression=kombinasi dari operator dan value,

-user-defined=mengganti nama data dengan yang lain, lebih dikenal sebagai alias

3.2 Relational Data Model

-Candidate Key=calon –calon key yang akan menjadi primary key.

-Primary Key=candidate key yang dipilih secara unik.

-Alternate Key=candidate key yang tidak terpilih menjadi primary key.

-Composite Key=candidate key yang mempunyai 2/lebih atribut.

References:

-http://id.wikipedia.org/wiki/Metadata

-http://thepursuitofalife.com/wp-content/uploads/2007/11/sample-db-erd.png

-http://www.mystudyroom.com.np/notes/images/msr_1323314002.jpg

-http://docs.oracle.com/cd/A87860_01/doc/server.817/a76965/ds_conc3.gif

-http://static.commentcamarche.net/en.kioskea.net/pictures/cs-images-2-tier.gif

-http://www.c-sharpcorner.com/UploadFile/051e29/deploy3-tier-visual-studio-lightswitch-application/Images/3-tier.gif

-http://id.wikipedia.org/wiki/Protokol_Internet

www.binus.ac.id