LANDASAN TEORI
2.1
Teori-Teori Umum
Dalam penyusunan skripsi ini ada beberapa teori umum yang digunakan sebagai
2.1.1
Teori-Teori Database
2.1.1.1 Basis Data
Menurut Connolly (2010, p65), basis data adalah suatu koleksi bersama
data-data yang saling terkait secara logis, dan juga merupakan pendeskripsian
dari data-data tersebut, yang dirancang untuk menyajikan informasi yang
dibutuhkan oleh sebuah organisasi.
Database juga dapat diartikan sebagai serangkaian program komputer
yang mengendalikan pembuatan, pemeliharaan, dan pemanfaatan basis data
sebagai sebuah organisasi (OBrien, 2003, p5).
Dalam basis data, terdapat tiga istilah penting, yakni entitas, atribut, dan
relationship. Entitas adalah sebuah objek berbeda (bisa seseorang, tempat,
sesuatu,
konsep,
ataupun
kejadian)
dalam
organisasi
yang
harus
associations)
antara
type
entitas
yang
ada
(Connolly,2010,p374).
Structural Constraints
Batasan utama pada relationship disebut multiplicity, yaitu jumlah
(atau range) darikejadian yang mungkin terjadi pada suatu entitas yang
terhubung ke satu kejadian dari entitaslain yang berhubungan melalui
suatu relationship. Relationship yang paling umum adalah binary
relationship. Macam-macam binary relationship yaitu :
one-to-one (1:1)
one-to-many(1:*)
many-to-many(*:*)
dimana
masing-masing
komponen
memiliki
Keys
Primary
Key,
yaitu
Candidate
key
yang
dipilih
untuk
Composite Key, yaitu Candidate key yang terdiri dari dua atau
lebih atribut.
Gambar 2. 5ER Diagram of Staff and Branch Entities and their Attributes
(Connolly, Database Systems, p382)
2.1.1.3 Normalisasi
Menurut Connolly (2010, p416) tujuan utama dalam pengembangan
model data logical pada sistem basis relasionaladalah untuk menciptakan
representasi akurat suatu data, keterhubungannya dan batasan-batasannya.Untuk
mencapai tujuan ini, maka harus ditetapkan/diidentifikasi sekumpulan relasi.
Empat bentuk normal yang biasa digunakan yaitu, first normal form (1NF),
second normalform (2NF) dan third normal form (3NF) dan BoyceCodd normal
form (BCNF).Terdapat bentuk fourth normal form (4NF) dan fifth normal form
(5NF) untuk situasi yangjarang terjadi.
Berdasarkan pada functional dependencies antar atribut dalam relasi.
Sebuah relasi dapat dinormalisasi kedalam bentuk tertentu untuk mengatasi
kemungkinanterjadinya pengulangan dari update yang tidak baik.Normalisasi
adalah suatu teknik untuk menghasilkan sekumpulan relasi dengan sifatsifat(properties) yang diinginkan, memenuhi kebutuhan data pada enterprise.
1. Data Redundacy
Menurut Connolly (2010, p418) tujuan utama dari desain basis data
relasional adalah untuk mengelompokkan atribut-atribut ke dalam relasirelasi sehingga meminimalisasi redundansi data dan mengurangi penggunaan
tempat penyimpanan yang dibutuhkan oleh sebuah relasi dasar.Masalahmasalah yang terkait dengan redundansi dapat dijelaskan dengan
membandingkanrelasi Staff dan Branch dengan relasi StaffBranch.Relasi
StaffBranch memiliki data redundan, yaitu detail dari branch dituliskan
berulang-ulanguntuk setiap staff.Sebaliknya, informasi mengenai branch
muncul hanya satu kali pada relasi Branch danhanya branchNo saja yang
diulang dalam relasi Staff, untuk merepresentasikan dimana setiap staff
tersebut bekerja.
Menurut Connolly (2010, p420) merupakan konsep inti yang terkait dengan
normalisasi.Functional dependency, menjelaskan relationship antar atributatribut dalam relasi.Misalkan, jika A dan B adalah atribut dari suatu relasi R,
B dikatakan Functionally Dependent pada A (dinotasikan A --> B), jika setiap
nilai A dihubungkan dengan tepat satu nilai B. ( A dan B masing-masing
dapat terdiri atas satu atau lebih atribut). Functional dependency merupakan
sifat dari arti semantik suatu atribut dalam sebuah relasi. Direpresentasikan
dalam diagram :
Reflectivity
Jika B adalah bagian dari A, maka AB
Augmentation
Jika AB, maka A,CB,C
Transitivity
Jika AB dan BC, maka AC
Decomposition
Jika AB,C, maka AB dan AC
Union
Jika AB dan AC, maka AB,C
Composition
Jika AB dan CD, maka A,CB,D
2.1.2
1.
Top-down
Pendekatan ini diawali dengan pembentukan model data yang berisi beberapa
entitas high level dan relationship, kemudian entitas lower level, relationship,
dan atribut lainnya akan didefinisikan secara berurut ke bawah.
2.
Bottom-up
Pendekatan ini diawali dengan atribut-atribut dasar, yang terdiri dari sifat entitas
dan relationship, kemudian dilanjutkan dengan analisis dan penggabungan antar
atribut yang dikelompokkan di dalam suatu relasi yang menggambarkan tipe dari
entitas dan relationship antar entitas.
3.
Inside-out
Mixed
proses
yang
menghasilkan
deskripsi
implementasi
basis
data
Contoh kasus :
Kumpulan formulir-formulir penyewaan properti. Berikut dimasukkan ke dalam
tabel :
Tabel 2. 1 Contoh Tabel Kasus Untuk Penyewaan Properti
No.Penyewa
A
No.Properti
B
PE001
PR01
PR03
PR01
PR04
PE002
Sewa/bulan
G
Nama
Penyewa
C
Andri
Reni
Alamat
Properti
D
JL.Kebon
JL.Sawah
JL.Kebon
JL.Rawa
Tgl.Mulai
E
Tgl.Akhir
F
01/01/2009
01/01/2009
01/01/2008
01/01/2009
01/06/2009
01/12/2009
01/12/2008
01/06/2009
No.Pemilik
H
Nama
Pemilik
I
500
PE01
Michael
1000
PE03
Roni
PE01
500
Michael
PE04
1500
Tobi
Functional Dependencies yang terdapat pada relasi SewaProperti dari tabel kasus
penyewaan properti :
Fd1 No.Penyewa, No.Properti Tgl.Mulai, Tgl.Akhir (Primary Key)
Fd2 No.Penyewa NamaPenyewa (Partial Dependency)
Fd3 No.Properti AlamatProperti, Sewa/bulan, No.Pemilik, NamaPemilik
(Partial Dependency)
Fd4 No.Pemilik NamaPemilik (Transitive Dependency)
Mencari relasi fully dependency, yaitu atribut non key yang tergantung
kepada seluruh atribut primary key.
A,B E,F,G,H,I,C,D
Mencari relasi partial dependency, yaitu atribut non key yang tergantung
kepada sebagian atribut primary key.
A,B E,F
A dan B adalah Primary Key, sekaligus Foreign Key. Menjadi tabel
SewaProperti.
AC,
A adalah Primary Key. Menjadi tabel Penyewa.
B D,G,H ,I ,
B adalah Primary Key. Menjadi tabel Properti.
A,B E,F
A dan B adalah Primary Key, sekaligus Foreign Key. Menjadi tabel
SewaProperti.
AC,
A adalah Primary Key. Menjadi tabel Penyewa.
B D,G,H ;
B adalah Primary Key. H adalah Foreign Key. Menjadi tabel Properti.
HI ;
H adalah Primary Key. Menjadi tabel pemilik.
Description
Aliases
Occurance
Penyewa
Mendeskripsikan
semua Penyewa
Pelanggan
Properti
Mendeskripsikan
semua properti
Rumah
Mendeskripsikan
semua pemilik
yang mempunyai
properti
Pemilik
Pemilik
Multiplicity
Relationship
1..*
1..1
Memiliki
Memiliki
Entitas
Name
Properti
Properti
Multiplicity
1..*
1..*
Berdasarkan contoh kasus di atas berikut adalah Tabel Kamus Hubungan Atribut
dengan Entitas :
Tabel 2. 4 Tabel Kamus Hubungan Atribut
Entitas
Name
Penyewa
Attributes
Description
No.Penyewa
Unik, mengidentifikasi
setiap penyewa
Nama Penyewa
NamaPenyewa
No.Properti
Properti
Alamat
Sewa/bulan
No.Pemilik
Pemilik
NamaPemilik
Unik, mengidentifikasi
setiap properti
Alamat properti
Harga sewa per bulan
Unik, mengidentifikasi
setiap pemilik
Nama Pemilik
Data type
& length
Nulls
Multivalued
10 varchar
No
30 varchar
No
10 varchar
No
No
50 varchar
15 varchar
No
No
No
No
10 varchar
No
No
35 varchar
No
No
No
No
Attributes
Domain
No.Penyewa
NamaPenyewa
No.Properti
Alamat
Sewa/bulan
No.Pemilik
NamaPemilik
Di awali dengan PY
Di awali dengan PR
Di awali dengan PE
5.
Untuk mengidentifikasikan candidate key untuk setiap entitas dan jika terdapat
lebih dari satucandidate key, maka pilih satu sebagai primary key.
Berdasarkan contoh kasus di atas berikut adalah tabel atribut primary dan
candidate key :
Tabel 2. 6 Tabel Atribut Primary Key dan Candidate Key
Penyewa(No.Penyewa,NamaPenyewa)
Candidate Key NamaPenyewa
Primary Key No.Penyewa
Alternate Key NamaPenyewa
Properti (No.Properti, Alamat, Sewa/bulan)
Candidate Key No.Properti
Primary Key No.Properti
Alternate Key
Pemilik(No.Pemilik, NamaPemilik)
Candidate Key No.Pemilik, NamaPemilik
Primary Key No.Pemilik
Alternate Key NamaPemilik
b.
c.
telah dibuat sebelumnya, diperbaiki dan dipetakan kedalam model data logikal
(Connolly,2010, p490).
Adapun langkah-langkahnya yaitu :
Pemilik(No.Pemilik, NamaPemilik)
Primary Key No.Pemilik
Properti(No.Properti, Alamat, Sewa/bulan)
Primary Key No.Properti
Penyewa(No.Penyewa, NamaPenyewa)
Primary Key No.Penyewa
b. Weak Entitas
SewaProperti(No.Penyewa, No.Properti, TglMulaiSewa, TglAkhirSewa)
Primary Key No.Penyewa, No.Properti
Properti(No.Properti,No.Pemilik,
Alamat, Sewa/bulan)
Primary Key No.Properti
Properti(No.Properti,
Sewa/bulan)
Primary Key No.Properti
Alamat,
(No.Penyewa,
NamaPenyewa,{No.Properti,
AlamatProperti,
(No.Penyewa,No.Properti,
NamaPenyewa,
AlamatProperti,
AlamatProperti,
Sewa/bulan,
No.Pemilik,
3NF
Sebuah relasi berada dalam 3NF bila relasi tersebut dalam 1NF dan 2NF dan
tidak ada atribut non-key yang tergantung fungsional kepada atribut non-key yang
lainnya (transitive dependency).
Berdasarkan contoh kasus di atas terjadi
Penyewa(No.Penyewa, NamaPenyewa)
SewaRumah(No.Penyewa,No.Properti, TglMulaiSewa, TglAkhirSewa)
Properti (No.Properti, AlamatProperti, Sewa/bulan, No.Pemilik)
Pemilik(No.Pemilik, NamaPemilik)
No.Pemilik
: variable length character
string, length 10,diawali dengan
PE
Domain NamaPemilik : variable length character string,
length 35
Pemilik(
No.Pemilik
Nomor Pemilik
NamaPemilik
Nama Pemilik
Primary Key (No.Pemilik));
Penyewa
Domain No.Penyewa
NOT NULL,
NOT NULL,
:
variable
length
character
string, length 10,diawali dengan PY
Domain NamaPenyewa
:
variable length character
string, length 30
Penyewa(
No.Penyewa
Nomor Penyewa
NamaPenyewa
Nama Penyewa
Primary Key (No.Penyewa));
NOT NULL,
NOT NULL,
Properti
Domain No.Properti :
variable
length
character
string, length 10,diawali dengan PR
Domain Alamat : variable length character string,
length 50
Domain Sewa/bulan
: integer value
Domain No.Pemilik
:
variable
length
character
string, length 10,diawali dengan PE
Properti (
No.Properti
Nomor Properti
NOT NULL,
AlamatProperti Alamat Properti
NOT NULL,
Sewa/bulan
Sewa per Bulan
NOT NULL,
No.Pemilik
Nomor Pemilik
NOT NULL,
Primary Key (No.Properti),
Foreign
Key
(No.Pemilik)
references
Pemilik
(No.Pemilik) ON UPDATE CASCADE ON DELETE NO ACTION );
SewaProperti
Domain No.Properti
: variable length character
string, length 10,diawali dengan PR
Domain No.Penyewa : variable length character string,
length 10,diawali dengan PY
Domain Tgl.MulaiSewa : date/time
Damain Tgl.AkhirSewa : date/time
SewaProperti(
No.Properti
Nomor Properti
NOT NULL,
No.Penyewa
Nomor Penyewa
NOT NULL,
Tgl.MulaiSewa Tanggal Mulai Sewa NOT NULL,
Tgl.AkhirSewa Tanggal Akhir Sewa NOT NULL,
Primary Key (No.Properti, No.Penyewa),
Foreign
Key
(No.Properti)
references
Properti
(No.Properti) ON UPDATE CASCADE ON DELETE NO ACTION,
Foreign
Key
(No.Penyewa)
references
Penyewa
(No.Penyewa) ON UPDATE CASCADE ON DELETE NO ACTION );
2.
Menganalisis transaksi
Tujuan dari langkah ini adalah untuk memahami fungsionalitas dari transaksi
yang akan berjalan pada basis data dan untuk menganalisis transaksi yang
penting.
Berdasarkan contoh kasus di atas deskripsi transaksinya meliputi :
a.
b.
c.
3.
Memilih Index
Tujuan dari langkah ini adalah untuk menentukan apakah penambahan index
akan meningkatkan kinerja dari sistem.Index Clustered artinya . Index NonClusteredartinya. Pada DBMS MySQL primary key didefinisikan ke dalam Index
Clustered
(sumber:
http://dev.mysql.com/doc/refman/5.0/en/innodb-index-
types.html). Dari contoh kasus di atas index yang akan digunakan adalah sebagai
berikut :
Tabel 2. 8 Tabel Index
Tabel
Pemilik
Penyewa
Properti
SewaProperti
4.
Index
Clustered
NonClustered
PemilikInd
PenyewaInd
PropertiInd
SewaPropertiInd
Tujuan dari langkah ini adalah untuk melihat sudut pandang pengguna terhadap
tabel dan field yang ada di dalam database.
5.
Tujuan dari langkah ini adalah untuk merancang mekanisme keamanan pada
basis data seperti yang telah dispesifikasikan oleh user. Mekanisme keamanan
tersebut adalah pembatasan hak akses guna menjaga keamanan data. Selain itu
perlu juga diperhatikan keamanan DBMS dan sistem operasinya.
6.
Tujuan dari langkah ini adalah untuk menghitung kapasitas penyimpanan yang
dibutuhkan oleh basis data. Hal yang harus diperhatikan adalah seberapa besar
ruang penyimpanan yang tersedia saat ini. Penyimpanan yang tersedia saat ini
akan menentukan besarnya kapasitas penyimpanan yang dibutuhkan sekarang
dan lima tahun mendatang.
MySQL Storage Requirement (sumber : http://dev.mysql.com/doc/refman/5.0/
en/storage-requirements.html) :
VARCHAR(M), ukurannya M+1 bytes.
INT, INTEGER, ukurannya 4 bytes.
TEXT, ukurannya 65535 bytes .
DATE, ukurannya 3 bytes.
DATETIME, ukurannya 8 bytes.
NUMBER(M,D), ukurannya M+2 bytes jika D > 0, M+1 bytes jika D =
0, D+2 bytes jika M < D.
2.1.3
Dari contoh kasus di atas akan menghasilkan konseptual web data model seperti
berikut ini :
Layanan data merupakan sebuah DBMS yang mewakili satu atau lebih
penyimpanandata. Lapisan ini menyediakan permintaan data bagi
aplikasi client dengan melaluilapisan layanan bisnis.
2.2
Teori-Teori Khusus
2.2.1
2.2.1.3 JavaScript
JavaScript digunakan pada jutaan halaman Web untuk meningkatkan
desain, memvalidasi form, mendeteksi browser, membuat cookie dan banyak
lagi. JavaScript menjadi bahasa scripting paling populer di Internet dan dapat
bekerja pada semua browser umum.
2.2.1.4 MySQL
Menurut Allen dan Honberger (2002, p220) dalam bukunya Mastering
PHP 4.1 MySQL merupakan bahasa pemrograman open source yang paling
banyak digunakan oleh para programmer, terutama pada Linux, karena query
basis datanya yang handal dan jarang bermasalah.
2.2.1.5 jQuery
jQuery adalah sebuah library untuk JavaScript yang ringan, cepat dan
ringkas. jQuery menyederhanakan HTML document traversing, event handling,
animation dan interaksi AJAX untuk rapid web development.
2.2.2
2.2.2.2 Flowchart
Flowchart atau bagan alur merupakan metode untuk menggambarkan
tahap-tahap penyelesaian masalah (prosedur) beserta aliran data dengan simbolsimbol standar yang mudah dipahami. Tujuan utama penggunaan Flowchart
adalah untuk menyederhanakan rangkaian proses atau prosedur untuk
memudahkan
pemahaman
pengguna
terhadap
(Soeherman,2008,p133)
informasi
tersebut.