BAB II
LANDASAN TEORI
2.1 TEORI BASIS DATA
2.1.1 PENGERTIAN SISTEM
Menurut
Mulyadi  
(2001,
p2).
System adalah
sekelompok
unsure
yang
erat
berhubungan satu dengan yang lainnya, yang berfungsi bersama -  sama untuk mencapai
tujuan tertentu
Menurut McLeod (2001, p11), Sistem adalah sekelompok elemen yang terintegrasi
dengan maksud yang sama untuk  mencapai satu tujuan .
Sedangkan
O’Brien
(2003,
p8),
Sistem sebagai
a
group
of
interrelated
or
interacting elements forming a unified whole”,
yang berarti system adalah sekumpulan
elemen – elemen yang saling berinteraksi membentuk satu kesatuan yang utuh.
Berdasarkan definisi – definisi di atas dapat disimpulkan bahwa system merupakan
sekumpulan  elemen  yang  saling  berinteraksi  dan  terintegrasi  dan  melakukan  suatu
fungsi untuk mencapai satu tujuan tertentu.
2.1.2 PENGERTIAN DATA
Menurut Hoffer, Prescott dan Mcfadden (2005, p5), data adalah fakta – fakta yang
telah
diketahui
dan
dapat
dikimpulkan
serta
dapat
disimpan
dalam
media
komputer
yang secara relative mempunyai arti bagi pengguna.
5
  
6
Menurut James A. O’Brien (2002, p13), data adalah fakta –
fakta atau observasi
yang mentah, biasanya mengenai kejadian atau transaksi.
Menurut whitten, Bentley, Dittman (2002, P475), data adalah sumber yang mesti
dikontrol dan ditangani.
Jadi, data adalah fakta – fakta mengenai kejadian atau transaksi yang berguna bagi
pengguna.
2.1.3 PENGERTIAN BASIS DATA
Menurut Connoly dan Begg (2002, p14), basis data adalah sekumpulan data yang
terhubung
secara
logical
yang dipakai
bersama
dan
deskripsi dari
data
ini
dirancang
untuk menemukan informasi – informasi yang dibutuhkan oleh suatu organisasi.
Menurut Post (2005, p2), basis data adalah sebuah kumpulan dari data yang
disimpan
dalam suatu
format
yang
sudah
distandarisasi,
yang
di
desain
agar
dapat
digunakan banyak pengguna (multiuser).
Menurut James A. O’Brien (2002, p145), basis data adalah sebuah kumpulan yang
terintegrasi  dari  elemen  data  yang 
terhubung  secara  logical. 
Elemen 
data
mendeskripsikan entitas – entitas dan hubungan antara entitas – entitas.
2.1.4 SISTEM BASIS DATA
Menurut Connolly dan
Begg (2002, p4), system basis data pada dasarnya adalah
system penyimpanan
record
yang
terkomputerisasi
dimana
tujuan
sebenarnya
adlah
menyimpan
informasi
dan
membuat
informasi tersebut selalu
tersedia
pada saat
dibutuhkan.
2.1.5 DATABASE MANGEMENT SYSTEM (DBMS)
Menurut   Connolly   dan   Begg   (2002,   p16),   Database  Management  System
merupakan  sebuah  system  perangkat 
lunak  yang 
memungkinkan  pengguna 
untuk
  
7
mendefinisikan,  membuat, 
mengatur,  dan 
mengontrol  penngaksesan  ke  basis  data.
Sebuah DBMS menyediakan fasilitas – fasilitas berikut :
1. DBMS   memungkikan   pengguna   untuk   mendefinisikan   basis   data,   dengan
menggunakan    Data  Definition  Language  (DDL).  DDl  memungkinkan  pemakai
untuk menspesifikasikan tipe – tipe dan struktur data dan constraint pada data untuk
disimpan di dalam basis data.
2. DBMS
memungkinkan
pengguna
untuk
memasukkan, mengubah, menghapus, dan
mengambil data dari basis data, dengan
menggunakan Data Manipulation Language
(DML).
3.
DBMS   menyediakan   pengontrolan   akses   ke   basis   data.   Contohnya,   DBMS
menyediakan :
a.
Security System,  mencegah pengguna yang tidak memiliki hak dalam mengakses
basis data
b.
Integrity system,  mengatur konsistensi dari data yang disimpan.
c.
Concurrency  control  system  ,  memungkinkan pengaksesan basis data secara
bersama – sama.
d.
Recovery  control  system,
memperbaiki  basis  data  kembali  ke  bentuk  semula
sebelum terjadinya kerusakan perangkat keras atau kerusakan perangkat lunak.
e.
User-accessible catalog, berisi
gambaran dari data yang
terdapat di dalam basis
data.
  
8
2.2 TEORI – TEORI KHUSUS
2.2.1 DATABASE APPLICATION LIFECYCLE (DBLC)
Untuk merancang aplikasi system basis data diperlukan tahapan –
tahapan
terstruktur  yang harus diikuti yang dinamakan dengan Siklus Hidup Aplikasi Basis Data
(Database Application Lificycle). Tahapan-tahapan tersebut terlihat pada gambar 2.1 :
Gambar 2.1 Database Application Lifecycle(Connolly,2002,p.272)
2.2.2 PENGUMPULAN KEBUTUHAN DAN ANALISA
Dalam tahap
ini
dilakukan
proses
pengumpulan
dan
analisa
informasi
tentang
bagian  organisasi  yang  akan  didukung  oleh  aplikasi  basis  data,  dan  menggunakan
  
9
informasi
ini
untuk
mengidentifikasi
kebutuhan
pengguna
terhadap
system
yang
baru
(Connolly, 2002,p.276).
Ada lima keiatan yang dipakai dalam teknik fact-finding, yaitu :
1.
Memeriksa dokumentasi
Pemahaman
terhadap
jalannya
system akan
cepat
diperoleh
dengan
memeriksa
dokumen-dokumen,
formulir,
laporan,
dan
berkas
yang
terkait dengan
system
yang
sedang berjalan pada perusahaan. Dengan pemeriksaan ini diharapkan dapat
mengetahui data-data apa saja yang akan disimpan di dalam basis data.
2.
Wawancara
Wawancara bertujuan untuk mengumpulkan fakta-fakta, memeriksa kebenrana fakta
yang ada dan mengklarifikasinya, membangkitkan semangat, melibatkan pengguna
akhir, mengidentifikasi kebutuhan-kebutuhan, dan mengumpulkan ide-ide dan
pendapat(Connlly, 2002, .306).
3.
Mengamati operasional perusahaan
Pengamatan operasional perusahaan memungkinkan untuk ikut serta atau mengamati
seseorang  dalaman  melakukan  kegiatan  untuk  mempelajari  system.  Setelah  satu
factor 
pengamatan 
dapat 
berhasil 
adalah 
dengan 
mencari 
informasi  sebanyak
mungkin tentang aktifitas tersebut.
4.
Penelitian
Selain melakukan penelitian yang berasal dari dalam organisasi itu sendiri, dapat juga
dilakukan 
pengumpulan 
informasi 
yang 
berasal 
dari 
luar 
organisasi 
tersebut.
Beberapa contoh sumber informasi tersebut diantaranya jurnal computer, buku-buku
referensi, dan internet.
  
10
5.
Kuisioner
Teknik lain yang dapat digunakan untuk mengumpulkan
informasi
yang dibutuhkan
adalah dengan menggunakan kuisioner. Kuisioner adalah suatu dokumen dengan
tujuan khusus yang memungkinkan fakta –fakta dikumpulkan dari banyak orang yang
menjaga control terhadap tanggapan yang diberikan. (Connolly,2002,p.308).
2.2.3
PROYEK
Proyek (Iman Soeharto,1995,p.13) adalah kegiatan sekali lewat, dengan waktu dan
sumber daya terbatas untuk mencapai hasil akhir yang telah ditentukan. 
Dalam proses
mencapai akhir kegiatan proyek dibatasi oleh anggaran, jadwal, dan mutu.
2.2.4   MANAJEMEN PROYEK
Manajemen proyek (Iman Soeharto, 1995,p.17) adalah kegiatan merencanakan,
mengorganisasikan, mengarahkan, dan mengendalikan sumber daya organisasi untuk
mencapai tujuan tertentu dalam waktu tertentu dan dengan sumber daya tertentu.
Fungsi manajemen menurut pengertian diatas dapat diuraikan sebagai berikut :
a.
Merencanakan
Suatu proses mendefinisikan suatu tujuan, membangun strategi untuk mencapai
tujuan itu, dan membangun rencana yang terintegrasi dan terkoordinasi.
b.
Mengorganisasi
Suatu
proses
menentukan
tugas
yang
harus diselesaikan,  
siapa yang harus
melakukannya, bagaimana membagi tugas, siapa yang harus melapor kepada
siapa, dan dimana keputusan harus dibuat.
  
11
c.
Memimpin
Suatu proses mengarahkan dan mempengaruhi sumber daya manusia dalam
organisasi agar dapat bekerja dengan baik sehingga dapat mencapai tujuan yang
telah ditentukan.
d.
Mengendalikan
Suatu proses dalam menuntun,
memantau,
mengkaji, dan bila perlu
melakukan
koreksi agar hasil dapat sesuai dengan yang telah ditentukan.
2.3
Teori Metodologi Perancangan Basis Data
2.3.1   Perancangan Basis Data Konseptual (Conceptual Database Design)
Perancangan basis data konseptual adalah
proses
membangun
suatu
model
informasi
yang
digunakan oleh
perusahaan
atau
organisasi
yang
tidak tergantung dari
pertimabangan fisik(Connolly,2002,p.421).
Langkah   pertama   :   membuat  local  conceptual  data  model  untuk  setai
pandangan.
Bertujuan
untuk
memecah
rancangan
menjadi
tugas
tugas
yang
dapat
diatur 
dengan 
memeriksa  sudut 
pandang 
yang 
berbedadari 
pengguna  dari 
suatu
organisasi (Connolly, 2002, p.421)
Pada tahap membuat local conceptual data model, 
langkah-langkah yang
dilakukan adalah sebagai berikut :
a.
Mengidentifikasi entity types
Bertujuan
untuk
menentukan
entity
types utama
yang
dibutuhkan.
Menentukan
entity
dapat
dilakukan
dengan
memeriksa user
requirements
specification. Setelah terdefinisi, entity 
diberikan nama yang tepat dan jelas
seperti mahasiswa, dosen, matakuliah.
  
12
b.
Mengidentifikasi relationship types
Bertujuan untuk mengidentifikasi suatu relationship yang penting yang ada
antar
entity   
yang
telah
didefinisikan.
Namun
dari
suatu relationship
menggunakan kata kerja (Verb) seperti mempelajari, memiliki, mempunyai, dan
lain-lain.
c.
Mengidentifikasi attribute  dengan entity atau relationship types
Bertujuan untuk menghubungkan attribute dan entity atau relationship yang
tepat.
Attribute
yang
dimiliki
setiap
entity
atau
relationship
memiliki
identitas
atau
karakteristik
yang
sesuai
dengan
memperhatikan attribute berikut :
simple/composite attribute, single-value attribute,
dan  derived attribute.
d.
Menentukan attribute domain
Bertujuan
untuk
menentukan attribute domain pada conceptual data model.
Contohnya yaitu menentukan nilai attribute jenis kelamin pada entity mahasiswa
dengan
‘M’
atau
‘F’
atau
nilai
attribute
sks
pada
entity
mataKuliah
dengan
‘1’,’2’,’3’, dan ‘4’.
e.
Menentukan candidate key dan primary key attribute
Bertujuan unuk mengidentifikasi candidate key pada setiap entity dan
memilih primary key
jika ada
lebih dari satu candidate key. Pemilihan primary
key didasari pada panjang dari attribute dan keunikan key di masa mendatang.
f.
Mempertimbangkan penggunaan enhance modeling concepts(pilihan)
Pada langkah ini bertujuan untuk menentukan specialization, generalization,
aggregation, comoposition. Dimana masing-masing pendekatan dapat dilakukan
sesuai dengan kebutuhan yang ada.
  
13
Specialization dan generalization adalah prose dalam mengelompokkan beberapa
entity dan menghasilkan entity yang baru. Beda dari keduanya adalah cara
prosesnya,
dimana
spesialisasi
menggunakan proses top-down dan
generalisasi
menggunakan proses bottom-up.
Aggregation  menggambarkan  sebuah  entity  tyoes  dengan  sebuah
relationship types dimana suatu relasi hanya akan ada jika telah ada relationship
lainnya.
g.
Mengecek Redundansi
Bertujuan untuk memeriksa Conceptual Model untuk menghindari adanya
informasi yang redundan. Yang dilakukan pada langkah ini adalah:
1.    Memerika kembali one-to-one relationship (1:1)
Setelah
entity
diidentifikasikan
maka
kemungkinan ada dua entity yang
mewaikili  satu 
objek.  Untuk 
itu, 
dua  entity 
tersebut  harus 
di-merger
bersama. Dan jika primary key-nya berbeda
maka harus dipilih salah satu
dan yang lainnya disajikan sebagai alternate key.
2.    Menghilangkan relasi yang redundansi
Untuk menekan jumlah model data, maka relationship data yang redundan
harus dihilangkan.
h.
Menvalidasi conceptual model dengan transaksi
Bertujuan unutk menjamin bahwa conceptual data model mendukung
kebutuhan transaksi. Dengan menggunakan model yang telah divalidasi tersebut,
dapat   digunakan   untuk   melaksanakan   operasi   secara   manual.   Ada   dua
pendekatan yang mungkin untuk menjamin bahwa local conceptual data model
mendukung kebutuhan transaksi yaitu :
  
14
1.
Mendeskripsikan transaksi
Memeriksa seluruh
informasi (entities, relationships, dan attribute)
yang
diperlukan
pada
setiap
transaksi
yang
disediakan
oleh model
dengan
mendokumentasikan penggambaran dari tiap kebutuhan transaksi.
2.
Menggunakan transaksi pathways
Pendekatan kedua, yaitu untuk menvalidasi data model dengan keperluan
transaksi
yang
melibatkan
diagram yang
mewakili
pathways
diambil dari
tiap transaksi secara langsung yang terdapat pada E-R diagram.
2.3.2
Perancangan Basis Data Logikal (Logical Database Design)
Logical database Design adalah proses pembuatan suatu
model 
informasi
yang
digunakan
pada
perusahaan
berdasarkan
pada
model
data yang
spesifik,
tetapi
tidak
tergantung dari Database Management System (DBMS) yang khusus dan pertimbangan
fisik lain (Connoly, 2002, p.441)
Langkah kedua : membuat dan menvalidasi local logical data model untuk setiap
pandangan.
Bertujuan
untuk
membuat local logical
data
model
dari
local
conceptual
data model yang merepresentasikan pandangan khusus dari perusahaan dan menvalidasi
model tersebut unutk menjamin
kebenaran
strukturnya (dengan menggunakan teknik
normalisasi) dan menjamin bahwa model tersebut mendukung kebutuhan transaksi.
Pada perancangan model logical langkah kedua, tahapan – tahapannya adalah :
a.
Menghilangkan
feature
yang
tidak
kompetibel
dengan
model
relasional
(pilihan)
Bertujuan
untuk menghasilkan
model yang kompatibel dengan
model
relasional,
yaitu dengan :
1. Menghilangkan many-to-many (*:*) binary relationship types.
  
15
Dengan
cara
memecah relationship yang
mengandung many-to-many
(*:*)
untuk mengidentifikasikan sebuah entity tengah (intermediate entity) sehingga
relationship
ini
digantikan
dengan
dua
buah
one-to-many
(1:*) relationship,
dengan entity tengah berada di antara dua buah entity lama.
2. Menghilangkan many-to-many (*:*) recursive relationship types.
Jika
recursive
relationship ada
pada conceptual
data
model,
relationship
tersebut
harus dipecah untuk mengidentifikasikan sebuah entity tengah dengan
cara menganggap entity lain yang terlibat pada relationship ini merupakan dua
buah
entity dengan
jenis
relationship
many-to-many
(*:*)
binary sehingga
penyelesaiannya sama
dengan
penyelesaian
pada relationship many-tomany
(*:*) binary.
3. Menghilangkan complex-relationship types.
Dihilangkan
dengan
memecah
relationship
ini
untuk
mengindentifikasi
entity
tengah. Kemudian complex relationship ini akan digantikan dengan beberapa
one-tomany (1:*) relationship.
4. Menghilangkan multi-valued attributes.
Dengan cara memecah atribut ini untuk mengidentifikasi sebuah entity.
b. Memperoleh relasi untuk local logical data model
Bertujuan
untuk
membuat
hubungan
logical model
yang mewakili
entity,
relationship dan attribute yang telah didefinisi. Mendeskripsikan komposisi tiap
hubungan  memakai  Database Definition Language (DDL)  untuk  relasi  basis
data. Dengan menggunakan DDL dapat dibuat spesifikasi
nama dari relasi
yang
diikuti
dengan
daftar dari
relasi
attribute
yang
mudah
lalu
mengidentifikasikan
primary key dan foreign key dari suatu
relasi. Untuk
memperoleh relasi
untuk
  
16
local
logical
data
model,
maka
diperlukan
penjelasan
untuk
mendeskripsikan
struktur yang mungkin dalam data model saat ini.
c. Memvalidasi relasi dengan menggunakan normalisasi
Menurut Connolly dan Begg (2002,
p.376), normalisasi adalah sebuah
teknik untuk menghasilkan relasi dengan propertiproperti yang diinginkan,
memberikan kebutuhan data dari sebuah perusahaan.
Tujuan normalisasi adalah terjaminnya
struktur
yang
konsisten,
kerangkapan yang minimal, dan stabilitas struktur data yang maksimal.
Manfaat normalisasi adalah sebagai berikut :
1.
Meminimalkan
jumlah kapasitas
penyimpanan
yang
diperlukan
untuk
menyimpan data.
2. Meminimalkan resiko data yang tidak konsisten dalam suatu basis data.
3. Meminimalkan kemungkinan update dan delete anomally.
4. Memaksimalkan stabilitas struktur data.
Struktur
normalisasi tabel secara detil dibagi
menjadi
lima tahap sehingga
dikenal bentuk-bentuk tabel normal sesuai dengan tahapan normalisasi yang telah
dilakukan
yaitu
bentuk
normal
pertama,
kedua,
ketiga,
Boyce-Codd,
keempat,
dan kelima.
d. Memvalidasi Relasi Dengan Transaksi Pengguna
Bertujuan
untuk
menjamin
bahwa
relasi dalam logical model tersebut
mendukung
user
requirement
specification
secara
detil.
Selain itu
juga
untuk
menyakinkan bahwa tidak ada kesalahan
yang muncul sewaktu membuat suatu
relasi.
e. Menentukan Integrity Constraints
  
17
Bertujuan untuk
mendefinisikan integrity constraints yang disampaikan
dalam pandangan.
Terdapat
lima
tipe
integrity
constraints
yang
harus
diperhatikan, yaitu :
Required data
Attribute domain constraints
Entity integrity
Referential integrity
Enterprise constraints
Langkah  ketiga 
Membuat 
dan 
memvalidasi 
global 
logical 
data 
model.
Bertujuan  untuk  menyatukan  local logical data model  menjadi  global logical data
model. Pada perancangan logical model langkah ketiga, tahapan-tahapannya adalah :
a. Menggabungkan local logical data model
Menghasilkan   E-R   diagram,   skema   relasional,   kamus   data   dan   dokumen
pendukung
yang
mendeskripsikan constraints dari
model.
Beberapa
tugas
yang
harus
dikerjakan adalah sebagai berikut :
1.
Memeriksa kembali nama dan isi dari entities dari relationships dan candidate
key.
2.
Memeriksa kembali nama dan isi dari relationships / foreign keys.
3.
Menggabungkan entities atau hubungan dari local data model.
4.
Mengikutsertakan (tanpa
menggabungkan) entities atau relationships
yang unik
pada tiap local data model.
5.
Menggabungkan relationships atau foreign key dari local data model.
6.
Mengikutsertakan
(tanpa
menggabungkan)
relationships
atau foreign
key
unik
pada tiap local data model.
  
18
7.
Memeriksa untuk entities (hubungan) dan relationships atau foreign key.
8.
Memeriksa integrity constraints.
9.
Menggambarkan E-R diagram.
10.
Melakukan update dokumen.
b. Memvalidasi Global Logical Data Model
Bertujuan
untuk
memvalidasi relasi
yang dibuat
dari global
logical data
model
dengan teknik normalisasi dan menjamin bahwa model tersebut mendukung kebutuhan
transaksi.
c. Mengecek pertumbuhan yang akan datang
Bertujuan  untuk  menentukan  apakah  ada  perubahan 
yang  signifikan  seperti
keadaan  yang  tidak  terduga  dimasa  mendatang  dan  menilai  apakah  model  logikal
tersebut dapat menampung atau menyesuaikan perubahan yang terjadi.
d. Melihat Kembali Global Logical Data Model dengan Pengguna
Bertujuan
untuk
menjamin
model
data
logikal
yang
bersifat
global
telah
tepat
untuk perusahaan.
2.3.3 Perancangan Basis Data Fisik (Physical Database Design)
Physical database design adalah suatu proses untuk menghasilkan gambaran dari
implementasi
basis
data
pada
tempat
penyimpanan, menjelaskan dasar dari relasi,
organisasi file
dan
indeks
yang
digunakan
untuk
efesiensi
data
dan
menghubungkan
beberapa integrity constraints dan tindakan keamanan (Connolly, 2002, p.478).
Langkah
keempat
: Menerjemahkan
global logical data model untuk target
DBMS.
Bertujuan
menghasilkan skema basis data relasional dalam global logical data
model yang dapat diimplementasikan ke DBMS.
Pada perancangan physical model, langkah-langkahnya adalah :
  
19
a. Merancang basis data relasional
Dalam memulai merancang physical design, diperlukan untuk mengumpulkan dan
memahami
informasi
tentang
relasi
yang
dihasilkan
dari logical
database
design.
Informasi yang penting bisa didapatkan dari kamus data dari DDL.
b. Merancang representasi dari data yang diperoleh
Bertujuan  untuk  menentukan  bagaimana  setiap  data  yang  diperoleh  mewakili
global logical data model ke dalam DBMS.
c. Merancang enterprise constraints
Pada langkah ini bertujuan untuk merancang batasanbatasan yang ada pada perusahaan.
Langkah kelima : Merancang representasi physical. Bertujuan untuk menentukan
organisasi file yang
untuk
menyimpan dan menentukan
indeks
yang dibutuhkan untuk
meningkatkan performa.
Terdapat tiga faktor yang memungkinkan digunakan representasi physical :
1. Transaction throughput
2. Response time
3. Disk storage
Dalam langkah kelima ini perlu untuk memahami system resource untuk meningkatkan
performa basis data.
1. Main memory
Dengan  semakin  besar  main memory yang  ada  maka  akan  dapat  menigkatkan
performa DBMS dan aplikasi basis data yang digunakan.
2. CPU
Mengontrol tugas-tugas dari system resource lain dan mengeksekusi prosesnya.
3. Disk I/O
  
20
Dengan
menggunakan
DBMS
yang
besar,
maka
disk
I/O yang
diperlukan
sangat
signifikan
dalam menyimpan
dan
mengambil
data.
Untuk
menghindari
kemacetan
transfer data, maka:
a.
File sistem operasi harus dipisahkan dari file basis data.
b.
File utama basis data harus dipisahkan dari file indeks.
c.    File recovery log harus dipisahkan dari basis data yang sedang  digunakan.
4.  Network
Ketika jumlah data yang ditransfer telah banyak,maka dengan menggunakan network
sangat
dianjurkan.
Selain
itu
juga untuk
menghindari
dari
kemacetan
dalam
mentransfer data.
Langkah-langkah dalam langkah kelima ini adalah :
a. Menganalisa transaksi
Bertujuan
untuk
memahami
fungsi dari
transaksi yang dijalankan pada basis data
dan menganalisa transaksi yang penting. Kriteria kemampuan yang harus diidentifikasi
dalam menganalisa transaksi adalah :
1. 
Transaksi  dapat  berjalan  secara  sering  dan  akan 
mempunyai  dampak
yang
signifikan pada performa.
2. 
Transaksi yang kritis pada operasi dan bisnis.
3.  Waktu selama sehari atau seminggu ketika akan ada permintaan yang tinggi pada
saat basis data dibuat.
b. Memilih file organisasi
Bertujuan untuk menyimpan data secara tepat ke tempat penyimpanan data.
  
21
c. Memilih indeks
Bertujuan untuk meningkatkan performa dalam suatu sistem basis data. Salah satu
pendekatan untuk
memilih
organisasi
file yang
cocok
untuk
relasi
adalah
untuk
menyimpan
tuples yang tidak disimpan dan dibuat sebanyak secondary indexes
sebagaimana diperlukan. Oleh karena itu, pilih attribute yang digunakan adalah :
1.   Attribute  yang sering digunakan untuk join  operations  untuk membuat lebih
efisien.
2.   Attribute yang sering dipesan
untuk
mengakses tuples pada suatu relasi
di dalam
urutan yang menunjukkan attribute.
d. Memperkirakan kebutuhan ruang penyimpanan
Bertujuan   untuk   memperkirakan   jumlah   ruang   penyimpanan   yang   akan
diperlukan dalam basis data. Perkiraannya didasari pada ukuran setiap tabel dalam suatu
relasi.
Contohnya
dalam lima
tahun
mendatang
berapa
kapasitas
harddisk
yang
dibutuhkan untuk menampung data.
Langkah keenam : Merancang pandangan pengguna (user interface). Bertujuan
untuk
merancang
user
interface
yang
telah diidentifikasi
selama
mengumpulkan
kebutuhan dan
menganalisa
langkah dari relasional database lifecycle. Contohnya pada
branch terdiri dari interface direktur dan manajer.
Langkah
ketujuh
:
Merancang
keamanan.
Dalam sebuah
sistem basis
data,
keamanan adalah elemen yang sangat penting mengingat isi dari basis data berupa
informasi yang sangat penting.
Langkah kedelapan :
Mempertimbangkan pengenalan dan redundansi kontrol.
Pada
langkah
physical
database
design ini
mempertimbangkan
denormalisasi
skema
relasional
untuk
meningkatkan
performa.
Hasil
dari
normalisasi
adalah
perancangan
  
22
basis data logikal
secara struktural konsisten dan
menekan jumlah redundansi. Faktor
yang perlu dipertimbangkan adalah :
1. 
Denormalisasi membuat implementasi lebih kompleks.
2. 
Denormalisasi selalu mengorbankan fleksibilitas.
3. 
Denormalisasi akan membuat cepat dalam retrieve data tetapi lambat dalam updates.
Ukuran  performa  dari  suatu  perancangan  basis  data  dapat  dilihat  dari  sudut
pandang tertentu yaitu melalui pendekatan efisiensi data (Normalisasi) atau pendekatan
efisiensi proses (Denormalisasi). Efesiensi
data
dimaksudkan
untuk
meminimalkan
kapasitas  disk,  dan  efesiensi  proses  dimaksudkan  untuk  mempercepat  proses  saat
retrieve data dari basis data.
Langkah  kesembilan  :  Memonitor dan memasang sistem  operasi. Bertujuan
untuk memonitor sistem operasi, meningkatkan performa dan menentukan perancangan
sistem yang tepat atau menggambarkan perubahan kebutuhan.
2.4  ENTITY RELATIONSHIP MODELLING
2.4.1 ENTITY TYPE
Entity adalah kumpulan objek dengan sifat-sifat sama
yang diidentifikasikan oleh
perusahaan dan mempunyai keberadaannya sendiri.  
Entity dilambangkan dengan
sebuah kotak yang dibubuhi nama dari entity
tersebut didalam kotak tersebut. Dalam
UML
huruf
pertama
entity
selalu
menggunakan
huruf capital.
Entity ada dua jenis,
yaitu :
a. Strong entity : keberadaannya tidak bergantung pada entity lain.
b. Weak entity : keberadaannya bergantung pada entity lain.
  
23
2.4.2 Relationship type
Sekumpulan asosiasi yang artinya mempunyai
satu atau lebih
tipe entity. Setiap
tipe relasi diberikan nama yang menggambarkan fungsinya. Representasi diagram dari
tipe relasi ditunjukkan dengan
garis
yang
menghubungkan tipe entity yang berasosiasi
dan diberi label dengan nama relasi.
2.4.2.1 Derajat tipe relasi
Entity yang dilibatkan dalam tipe relasi tertentu dinyatakan sebagai partisipan pada
relasi tersebut. Jumlah partisipan
pada
tipe
relasi
disebut derajat relasi. Relasi dengan
derajat dua disebut binary.
Relasi
dengan
derajat tiga disebut
ternary. Relasi dengan
derajat empat disebut quaternary.
2.4.2.2 Relasi rekursif
Merupakan tipe relasi dimana tipe entity yang sama berpartisipasi lebih dari sekali
dengan peranan yang berbeda.
2.4.3 Atribut
Merupakan
property
dari
sebuah
entity
atau
tipe
relasi.
Contohnya,
tipe entity
pegawai, bisa memiliki atribut nomor pegawai,nama pegawai, jabatan, dan gaji. Atribut
dapat dikelompokan sebagai berikut :
2.4.3.1 Atribut Sederhana dan Komposit
Atribut sederhana merupakan atribut yang terdiri dari satu komponen tunggal
dengan
keberadaannya
sendiri, sehingga tidak
dapat
dipecah
menjadi
komponen-
kompenen yang lebih kecil lagi. Contoh atribut sederhana meliputi jabatan dan gaji dari
entity
Pegawai.
Atribut
komposit
merupakan atribut
yang
dibentuk
dari
banyak
komponen. Contohnya atribut alamat dapat dipecah menjadi atribut jalan, kota, dan kode
pos.
  
24
2.4.3.2 Atribut Single-Valued dan Multi-Valued
Atribut
Single-Valued merupakan
atribut
yang
menyimpan
nilai
tunggal
untuk
setiap  entity.  Kebanyakan  atribut  adalah  Single-Valued
Atribut 
Multi-Valued
merupakan atribut yang menyimpan banyak nilai untuk setiap entity.
2.4.3.3 Atribut Turunan
Atribut Turunan merupakan atribut dimana nilainya diperoleh atau diturunkan dari
nilai atribut atau sekumpulan atribut lainnya, dan tidak harus dari tipe entity yang sama.
2.4.4. KEYS
2.4.4.1 Simple Key
Simple  key  merupakan candidate  key  yang terdiri atas dua atau  lebih atribut,
dimana nilai dari atribut tersebut bila digabungkan secara bersama-sama baru akan dapat
mengidentifikasikan sebuah record unik untuk tipe entity tersebut.
2.4.4.2 Composite Key
Composite  Key  merupakan candidate  key  yang terdiri atas dua lebih atribut,
dimana nilai dari atribut tersebut bila digabungkan secara bersama-sama baru akan dapat
mengidentifikasikan sebuah record unik tipe entity tersebut.
2.4.4.3 Candidate Key
Candidate Key
merupakan sekumpulan minimal atribut yang secara unik untuk
mengidentifikasikan setiap kemunculan tipe entity.
2.4.4.4 Primary Key
Primary Key merupakan key yang terpilih secara
unik
untuk
mengidentifikasikan
setiap kemunculan tipe entity.
  
25
2.4.4.5 Alternate Key
Alternate Key merupakan kunci candidate yang tidak dapat dipakai sebagai kunci
primer (primary key).
2.4.4.6 Foreign Key
Foreign  Key  yang merupakan suatu atribut yang melengkapi satu hubungan
(relationship) yang menunjukkan ke induknya.
2.5 NORMALISASI
Merupakan serangkaian test dari sebuah relasi untuk menentukan apakah relasi
tersebut
memuaskan
atau
mengganggu
kebutuhan
dari
sebuah
normal form
yang
diberikan (Connolly,2002,p.376).
2.5.1 PROSES NORMALISASI
Teknik
normalisasi
menyangkut
sebuah
rangkaian aturan yang digunakan untuk
memeriksa  sebuah 
relasi, 
sehingga 
sebuah 
basis 
data 
dapat 
dinormalisasi  dalam
beberapa tahap. Normalisasi biasanya
dijalankan
seperti sekumpulan
langkah
secara
bertahap,
dimana
relasi
menjadi
semakin
kuat
bila
langka
(degree) yang dikenakan
padanya semakin tinggi.
2.5.1.1 Bentuk Normal Kesatu (1NF)
Mengidentifikasi
dan
membuang
atribut
yang
berulang
(repeting group)
dan
memiliki nilai yang lebih dari satu. Suatu hubungan dikatakan normal pertama jika :
a) Setiap dari baris dan kolom berisi atribut yang bernilai tunggal.
b) Kunci primer telah ditentukan.
c) Atribut nilai banyak (multi value) telah dihilangkan.
  
26
2.5.1.2 Bentuk Normal kedua (2NF)
Suatu relasi
yang
memiliki
composite key sebagai
primary key-nya
mempunyai
kemungkinan untuk memilikipartial functional dependency, dimana atribut primary key
merupakan
fungsi
pada
salah
satu atau
sebagian
dari
primary
key.
Dalam
2NF
maka
setiap atribut yang merupakan partial functional dependency harus dipisahkan ke relasi
atau tabel yang baru dengan mengikutsertakan determinannya. Bentuk 2NF diperoleh
apabila
setiap atribut bukan bagian dari primary key suatu
tabel
merupakan functional
dependency dari primary key tabel tersebut.
2.5.1.3 Bentuk Normal Ketiga (3NF)
Suatu
tabel
atau
relasi
memiliki transitive
dependency apabila
memiliki
atribut
bukan primary key yang bergantung fungsional pada atribut bukan primary key lainnya
pada tabel tersebut. Maka setiap atribut yang transitive dependency dipisahkan menjadi
relasi 
yang  baru  dengan 
mengikutsertakan  determinannya.  Bentuk  3NF  diperoleh
apabila
setiap
atribut bukan
primary
key
dalam suatu
tabel
merupakan
transitive
dependency dari atribut bukan primary key tabel tersebut.
2.6  SQL (Structured Query Language)
2.6.1 Pengertian SQL
Menurut
Kadir
(2002,
p.101),
SQL
singkatan
dari
Structured Query
Language.
Dalam bahasa inggris sering dibaca sebagai SEQUEL.
SQL
merupakan bahasa query
standard
yang
digunakan
untuk
mengakses basis
data
relasional.
Standardisasi
internasional
terhadap sql
pertama
kali
dilakukan
oleh
ANSI
(American
National
Standard Institution), melalui publikasi database language SQL (ANSI X3.136 1986).
Saat 
ini,  ANSI 
dan  ISO 
(International Standards
Organization)
merupakan  dua
  
27
organisasi
yang
membuat
standardisasi
terhadap
SQL.
SQL
pertama
kali
diterapkan
pada sistem R (sebuah proyek riset pada laboratorium riset San Jose, IBM). Namun kini
SQL
juga
di
jumpai
pada
berbagai
platform,
dari
microcomputer
hingga
mainframe.
SQL dapat digunakan baik secara berdiri sendiri maupun dilekatkan pada bahasa-bahasa
lain seperti COBOL dan C. SQL juga telah menjadi bagian dari sejumlah DBMS seperti
ORACLE, SYBASE, dan INFORMIX. SQL bukanlah satu satunya query yang
diterapkan pada basis data. QUELL adalah contoh bahasa query yang lain, yang pertama
kali diperkenalkan pada sistem basis data Ingres.
2.6.2 SQL sebagai Sub Bahasa
Penyebutan SQL sebagai bahasa query
tidak
tepat
sebabkemampuan
SQL
tidak
terbatas
hanya
untuk
query (memperoleh
data)tetapi
juga mencakup
kemampuan
lain
seperti :
a. Pendefinisian struktur data.
b. Pengubahan data.
c. Pengaturan sekuritas, dan sebagainya.
Terkadang SQL dikatakan sebagai sub bahasa data, bukan sebagai bahasa. Alasan
SQL bukanlah bahasa query telah dijelaskan. Adapun alasan SQL dikatakan sebagai sub
bahasa
data
adalah
karena
SQL
tidak mendukung
persyaratan
bahasa yang lengkap,
sekaligus SQL dapat dipakai untuk mengakses basis data. SQL tidak menyediakan hal-
hal berikut :
Pernyataan penguji kondisi (semacam IF pada COBOL).
Pernyataan pengulangan/iterasi (semacam REPEAT pada pascal).
  
28
2.6.3 Antarmuka SQL Terhadap DBMS
Penggunaan SQL pada
DBMS cukup luas. SQL dapat dipakai oleh berbagai
kalangan (DBA, pemrogram, ataupun pengguna).
2.6.3.1 SQL sebagai bahasa administrasi basis data
Dalam hal
ini
SQL
dipakai oleh
DBA
untuk
menciptakan serta
mengendalikan
pengaksesan basis data.
2.6.3.2 SQL sebagai bahasa query interaktif
Pengguna dapat memberikan perintah-perintah untuk mengakses basis data yang
sesuai dengan kebutuhannya. Hal seperti ini sangat berguna untuk memenuhi
kebutuhankebutuhan yang seketika (hanya digunakan saat itu saja).
2.6.3.3 SQL sebagai bahasa pemrograman basis data
Pemrograman dapat menggunakan perintah-perintah SQL dalam program aplikasi
yang dibuat, guna mengakses basis data.
2.6.3.4 SQL sebagai bahasa client / server
SQL juga dipakai untuk mengimplementasikan system client/server. Sebuah klien
dapat menjalankan suatu aplikasi yang mengakses basis data yang ada pada suatu server.
Dalam
hal
ini
sistem
operasi
antara
server
dan
klien
bisa
berbeda.
Sebagai
contoh,
server barangkali menggunakan UNIX dan client menggunakan perangkat lunak DBMS
yang
berbeda.
Sebagai
contoh, client
menggunakan
Visual
Foxpro
dan
server
menggunakan Informix.
2.6.4 Elemen SQL
Menurut Kadir (1999,p.104-p.106), elemen dasar SQL mencakup pernyataan,
nama, tipe data, konstanta, ekspresi, dan fungsi bawaan.
  
29
2.6.4.1 Pernyataan
Pernyataan adalah perintah SQL yang meminta suatu tindakan pada DBMS. SQL
memiliki kira-kira 30 pernyataan.
Beberapa pernyataan dasar SQL bisa dilihat pada tabel berikut :
Tabel 2.1 Tabel Pernyataan dasar SQL
PERNYATAAN
KETERANGAN
ALTER
Mengubah struktur tabel
COMMIT
Mengakhiri sebuah eksekusi transaksi
CREATE
Menciptakan tabel, indeks, atau pandangan
DELETE
Menghapus baris pasa tabel
DROP
Menghapus tabel, indeks,atau pandangan
GRANT
Menugaskan hak terhadap basis data kepada
pengguna atau grup pengguna
INSERT
Menambahkan sebuah baris pada tabel
REVOKE
Membatalkan hak terhadap basis data
ROLLBACK
Mengembalikan ke keadaan semula
sekiranya transaksi gagal dilaksanakan
SELECT
Memilih baris dan kolom pada tabel
UPDATE
Mengubah nilai pada sebuah baris
2.6.4.2 Nama
Nama digunakan sebagai identitas bagi objek-objek pada DBMS. Contoh objek
pada DBMS adalah tabel, kolom, dan pengguna.
  
30
2.6.4.3 Tipe Data
Setiap data memiliki tipe data. Beberapa tipe data standar dapat dilihat pada tabel
berikut :
Tabel 2.2 Tabel Tipe data dasar
TIPE DATA
KETERANGAN
CHAR
Untuk menyatakan deretan karakter (string).
Misalnya, untuk menyatakan nama orang,
nama jalan, atau nama kota
INTEGER
Untuk menyatakan bilangan bulat
NUMERIC
Untuk menyatakan bilangan real
Adapun beberapa tipe data perluasan dapat dilihat pada tabel berikut :
Tabel 2.3 Tabel Tipe Data Perluasan
TIPE DATA
KETERANGAN
VARCHAR
Untuk menyatakan string yang
panjangnya bervariasi
MONEY
Untuk menyatakan uang
BOOLEAN
Untuk menyatakan tipe logis
(true atau false)
BLOB
Untuk menyatakan data biner
AUTO INCREMENT
Untuk menyatakan nilai yang
urut
  
31
2.6.4.4 Konstanta
Konstanta menyatakan nilai yang tetap (kebalikan dari konstanta variable).
Beberapa contoh konstanta :
a. Konstanta numerik : 123, -245, 5.45
b. Konstanta : ‘Jl. Kartika 21’
c. Konstanta simbolik (konstanta yang tersedia pada SQL dan mempunyai makna
tersendiri) :
SYSDATE (tanggal system), USER (nama pengguna yang menjalankan SQL),
Konstanta simbolik seringkali disebut variabel sistem.
2.6.4.5 Ekspresi
Ekspresi adalah segala sesuatu yang menghasilkan nilai. Ekspresi digunakan untuk
menghitung nilai.
Contoh : (LABA / MODAL) * 100 merupakan ekspresi untuk membagi isi
variable LABA dengan MODAL, dan kemudian dikalikan dengan 100. Simbol-simbol
yang dapar digunakan pada ekspresi aritmatika antara lain :
Tabel 2.4 Tabel Simbol ekspresi Aritmatika
SIMBOL
KETERANGAN
*
Perkalian
/
Pembagian
+
Penjumlahan
-
Pengurangan
  
32
2.6.4.6 Fungsi Bawaaan
Fungsi
bawaan
adalah
sebuah
sub-program yang
menghasilkan
suatu
nilai
jika
dipanggil. SQL memiliki sejumlah fungsi bawaan (fungsi yang disediakan oleh SQL).
Sebagai contoh, terdapat fungsi bernama MIN yang digunakan untuk memperoleh nilai
terkecil atau avg untuk memperoleh nilai rata-rata.
2.6.5 Kelompok Pernyataan SQL
Pernyataan SQL dapat dikelompokkan menjadi 5 kelompok yaitu DDL (Data
Definition Language),
DML
(Data
Manipulation
Language),
DCL
(Data
Control
Language).
2.6.5.1 DDL (Data Definition Language)
Suatu
bahasa
yang mengijinkan
seorang DBA
atau
pengguna
untuk
menggambarkan
dan
memberikan
nama
suatu entity, attribute dan
relationships yang
dibutuhkan untuk
aplikasi,
bersama-sama
yang
terhubung
dan
memiliki
batasan
keamanan (Connolly, 2002, p.40). DDL digunakan untuk mendefinikan skema atau
memodifikasi skema yang sudah ada. DDL tidak dapat digunakan
untuk
memanipulasi
data.
2.6.5.2 DML (Data Manipulation Language)
Suatu bahasa yang medukung suatu sekumpulan operasi untuk mendukung operasi
manipulasi
basis
data
yang dibuat
dalam
basis
data
(Connolly,
2002,
p.41).
Perintah
yang masuk kategori DML adalah :
a.
SELECT memilih data
b.
INSERT memasukkan data
c.
DELETE menghapus data
d.
UPDATE mengubah data
  
33
2.6.5.3 DCL (Data Control Language)
DCL  berisi  perintah-perintah  untuk  mengendalikan  pengaksesan  data.
Pengendalian dapat dilakukan per pengguna, per table, per kolom,
maupun per operasi
yang boleh dilakukan. Perintah-perintah yang termasuk DCL :
a.
GRANT memberikan pengendalian akses data
b.
REVOKE mencabut kemampuan pengaksesan data
c.
LOCK TABLE mengunci table
2.6.5.4 Pengendali Transaksi
Pengendalian transaksi adalah perintah-perintah yang berfungsi untuk
mengendalikan
pengeksekusian
transaksi.
Perintah
yang
termasuk
dalam kategori
ini
antara lain :
a.
COMMIT   menyetujui   rangkaian   perintah   ynag   berhubungan   erat   (disebut
transakasi) yang telah berhasil dilakukan.
b.
ROLLBACK 
membatalkan 
transaksi 
yang 
ada 
karena 
ada 
kesalahan 
atau
kegagalan pada salah satu rangkaian perintah.
2.6.5.5 Pengendali Programatik
Pengendali programatik mencakup pernyataanpernyataan yang berhubungan
dengan
pemanfaatan
SQL
dalam bahasa
lain
(SQL
yang
dilekatkan).
Pernyataanpernyataan 
ini  bisa  dipakai  pada  bahasa  konvensional  (3-  GL)  seperti
COBOL. Yang termasuk dalam pengendalian programatik :
a. CLOSE menutup kursor (pointer yang menunjuk ke tabel)
b. DECLARE mendeklarasikan kursor
c. FETCH mengambil nilai baris berikutnya
d. OPEN untuk membuka kursor
  
34
2.7 Teori-teori Lain
2.7.1 Entity Relationship Diagram (ERD)
Menurut Whitten (2004, p.281) Entity Relationship Diagram (ERD) yaitu model
data
yang
menggunakan
beberapa
notasi
untuk
menggambarkan
data
dalam konteks
entitas dan hubungan yang dideskripsikan oleh data tersebut.