BAB 2 LANDASAN TEORI

advertisement
BAB 2
LANDASAN TEORI
2.1
Teori-Teori Basis Data
Menurut sejarah, sistem pemrosesan basis data terbentuk setelah masa
sistem pemrosesan manual dan sistem pemrosesan berkas.
Sistem pemrosesan manual (berbasis kertas) merupakan bentuk
pemrosesan yang menggunakan dasar berupa setumpuk rekaman yang disimpan
pada rak-rak berkas. Jika suatu berkas diperlukan berkas tersebut harus dicari
pada rak-rak tersebut. Bentuk seperti ini masih banyak dijumpai pada kehidupan
sehari-hari.
Pada sistem pemrosesan berkas, sekelompok rekaman disimpan pada
sejumlah berkas secara terpisah. Sistem ini tentu saja memiliki kelebihan jika
dibandingkan dengan sistem pemrosesan manual, yaitu antara lain dalam hal
kecepatan dan keakuratannya. Sedangkan kelemahan dari sistem ini ada dalam
hal kemubaziran data, keterbatasan berbagi data, ketidakkonsistenan dan
kurangnya integritas, serta ketidakluwesan.
Tetapi dengan adanya perkembangan teknologi, maka kedua sistem diatas
tersebut sudah tidak banyak digunakan lagi. Karena adanya kelemahankelemahan seperti itulah, sistem pemrosesan basis data tumbuh. sistem seperti ini
dikenal dengan sebutan Database Management.
8
9
Perkembangan teknologi basis data tidak lepas dari perkembangan
perangkat keras dan perangkat lunak. Perkembangan pada dunia perangkat lunak,
seperti kecerdasan buatan, sistem pakar, dan pemrograman berorientasi objek,
juga mempengaruhi perkembangan basis data, sehingga muncul istilah seperti
basis data berorientasi objek dan basis data cerdas.
Perkembangan teknologi jaringan komputer dan komunikasi data
merupakan salah satu penyumbang kemajuan penerapan basis data, yang
kemudian melahirkan sistem basis data terdistribusi.
2.1.1
Pengertian Basis Data
Menurut Connoly (2002, p14), basis data adalah suatu kumpulan yang
berhubungan dari data secara logikal, dan suatu deskripsi tentang data tersebut
yang dirancang untuk mencari informasi yang diperlukan oleh suatu organisasi.
C.J Date (2000, p5) mengemukakan bahwa suatu sistem basis data adalah
suatu sistem yang pada dasarnya menyimpan record-record didalam suatu sistem
yang dilakukan secara komputerisasi yang tujuannya secara keseluruhan adalah
untuk memelihara informasi dan untuk membuat informasi tersebut tersedia
berdasarkan pada saat dibutuhkan.
Kroenke (2002, p13) berpendapat bahwa basis data adalah sekumpulan
rekord-rekord yang terintegrasi.
Sedangkan Chou seperti yang dituliskan oleh Kadir (1999, p9),
mendefinisikan basis data sebagai kumpulan informasi bermanfaat yang
diorganisasikan ke dalam tatacara yang khusus.
10
Menurut Fabbri dan Schwab seperti yaang ditulis oleh Kadir (1999, p9),
basis data adalah sistem berkas terpadu yang dirancang terutama untuk
meminimalkan pengulangan data.
Sedangkan menurut Kristanto (1993, p1), basis data adalah kumpulan
file-file yang saling berelasi, relasi tersebut biasa ditunjuk dengan kunci dari tiap
file yang ada. Satu basis data menunjukkan satu kumpulan data yang dipakai
dalam satu lingkup perusahaan.
Menurut Subekti (2004, p8), basis data adalah kumpulan terintegrasi dari
occurences file atau tabel yang merupakan representasi data dari suatu model
enterprise.
2.1.2
Database Management System (DBMS)
2.1.2.1 Pengertian Database Management System (DBMS)
Connoly (2002, p16) mendefinisikan DBMS sebagai sebuah sistem
software yang memungkinkan pemakai untuk mendefinisikan, membuat,
memelihara, dan mengontrol akses ke basis data.
Menurut Kadir (1999, p17) DBMS diartikan sebagai suatu program
komputer yang digunakan untuk memasukkan, mengubah, menghapus,
memanipulasi, dan memperoleh data informasi dengan praktis dan efisien.
11
2.1.2.2 Fungsi Database Management System (DBMS)
Connoly (2002, p48-52) menjelaskan adanya fungsi-fungsi dari DBMS,
yaitu :
1. Data penyimpanan, retrival, dan update
Suatu DBMS harus menyediakan pemakai dengan kemampuannya untuk
menyimpan, mendapatkan kembali, dan mengupdate data dalam suatu basis
data.
2. Pemakai katalog aksesibel
Suatu DBMS harus menyediakan sebuah katalog yang mana deskripsi dari
data itemnya disimpan dan dapat diakses oleh pemakai.
3. Dukungan transaksi
DBMS harus menyediakan sebuah mekanisme yang akan menjamin setiap
dari semua kegiatan update yang berhubungan dengan transaksi maupun
tidak.
4. Kontrol konkurensi
Suatu DBMS harus menyediakan sebuah mekanisme yang memastikan
bahwa basis data di update secara benar ketika banyak pemakai mengupdate
basis data secara konkuren.
5. Layanan recovery
Suatu DBMS harus menyediakan sebuah mekanisme untuk memperbaiki
basis data dalam suatu kejadian yang mana basis data tersebut dapat rusak
diberbagai tempat.
12
6. Layanan otorisasi
Suatu DBMS harus menyediakan sebuah mekanisme untuk memastikan
bahwa hanya pemakai yang berhak yang dapat mengakses basis data.
7. Mendukung data komunikasi
Suatu DBMS harus dapat berintegrasi dengan software komunikasi.
8. Layanan kontrol integritas
Suatu DBMS harus menyediakan sebuah fasilitas untuk memastikan fungsi
penambahan data dalam basis data dan perubahan data mengikuti aturan
tertentu.
9. Layanan untuk independensi data program
Suatu
DBMS
harus
meliputi
fasilitas-fasilitas
untuk
mendukung
independensi program dari struktur basis data yang aktual.
10. Layanan kebutuhan
Suatu DBMS harus menyediakan serangkaian layanan kebutuhan.
2.1.2.3 Fasilitas Database Management System (DBMS)
Suatu DBMS merupakan software yang berinteraksi dengan program
aplikasi pemakai dan basis data. Pada umumnya, suatu DBMS menyediakan
beberapa fasilitas sebagai berikut :
•
DBMS mengijinkan pemakai untuk menggambarkan basis data, biasanya
melalui suatu Data Definition Language (DDL). DDL tersebut mengijinkan
pemakai untuk menspesifikasikan tipe data dan strukturnya, serta batasanbatasan pada data untuk disimpan di dalam basis data.
13
•
DBMS mengijinkan pemakai untuk menginsert, mengupdate, menghapus,
dan mendapatkan kembali data dari basis data, biasanya melalui suatu Data
Manipulation Language (DML). Mempunyai sebuah tempat penyimpanan
utama untuk semua data dan deskripsi data, mengijinkan DML untuk
menyediakan fasilitas pencarian data, yang disebut dengan bahasa queri.
Pada umumnya bahasa queri yang digunakan adalah Structured Query
Language (SQL).
•
DBMS menyediakan akses yang disediakan kepada basis data. Sebagai
contoh :
-
Sistem keamanan, yang mana mencegah pemakai yang tidak berhak
dapat mengakses basis data.
-
Sistem integritas, yang mana memelihara kekonsistensian dari data yang
disimpan.
-
Sistem kontrol konkurensi, yang mana mengijinkan basis data diakses
secara bersama.
-
Sistem kontrol perbaikan, yang mana mengembalikan basis data pada
sebuah status yang konsisten sebelumnya, bila terjadi kegagalan hardware
atau software yang gagal.
-
Pemakai katalog yang dapat diakses, berisi deskripsi dari data dalam
basis data.
14
2.1.2.4 Keuntungan dan Kerugian Database Management System (DBMS)
Keuntungan dari DBMS adalah sebagai berikut :
•
Kontrol untuk tidak mengulang data
•
Data konsisten
•
Semakin banyak informasi yang didapat dari data yang sama
•
Data terdistribusi
•
Menambah integritas data
•
Menambah keamanan data
•
Penetapan standarisasi
•
Mempermudah pengoperasian data
•
Memperbaiki pengaksesan data dan hasilnya
•
Menambah produktivitas
•
Memperbaiki pemeliharaan data melalui independensi data
•
Memperbaiki pengaksesan data secara bersama-sama
Adapun kerugiannya adalah sebagai berikut :
•
Komplek (rumit)
•
Ukurannya besar
•
Biaya besar dari suatu DBMS
•
Adanya biaya penambahan hardware
15
2.1.2.5 Komponen Utama Database Management System (DBMS)
Menurut Kadir (1999, p18-21), komponen utama DBMS dapat dibagi
menjadi beberapa komponen, yaitu sebagai berikut :
1. Perangkat Keras (Hardware)
Perangkat keras yang dimaksudkan adalah berupa komputer dan bagianbagian di dalamnya, seperti prosesor, memori, dan harddisk. Komponen
inilah yang melakukan pemrosesan dan juga untuk menyimpan basis data.
2. Perangkat Lunak (Software)
Perangkat lunak, dalam hal ini DBMS, berkedudukan antara basis data (data
yang disimpan dalam harddisk) dan pemakai. Perangkat lunak inilah yang
berperan melayani permintaan-permintaan pemakai.
3. Data
Data di dalam basis data mempunyai sifat terpadu (intgrated) dan berbagi
(shared).
a. Data terpadu (integrated)
Terpadu berarti bahwa berkas-berkas data yang ada pada basis data saling
terkait, tetapi kemubaziran data tidak akan terjadi atau hanya terjadi
sedikit sekali.
b. Data digunakan bersama (shared)
Berbagi berarti bahwa data dapat dipakai oleh sejumlah pemakai. Intinya,
sesuatu data dapat diakses oleh sejumlah pemakai dalam waktu
bersamaan. Sifat ini biasa terdapat pada sistem multiuser, yaitu sistem
yang memungkinkan banyak orang bisa mengakses suatu data pada suatu
waktu.
16
4. Pemakai
Pemakai dapat dibedakan menjadi tiga ketegori, yaitu :
a. Pemakai akhir
Pemakai akhir dibagi menjadi dua macam, yaitu :
•
Pemakai aplikasi
Merupakan orang yang dapat mengoperasikan program aplikasi yang
dibuat oleh pemrogram aplikasi.
•
Pemakai interaktif
Merupakan orang yang dapat memberikan perintah-perinta berasas
tinggi pada antarmuka basis data yang tersedia (misalnya denga
menggunakan perintah SELECT, INSERT, dan sebagainya) atau
melakukan perintah-peritah melalui antarmuka berbasis semu.
b. Pemrogram aplikasi
Merupakan orang yang membuat program aplikasi yang menggunakan
basis data. Program aplikasi yang dibuat tentu saja sesuai dengan
kebutuhan pengguna.
c. Administrator basis data (DBA / Database Administrator)
Merupakan orang yang bertanggung jawab terhadap pengelolaan basis
data. Adapun tugas DBA adalah sebagai berikut :
•
Mendefinisikan basis data
•
Menentukan isi basis data
•
Menentukan sekuritas basis data
17
Setiap pemakai diberi hak akses terhadap basis data secara tersendiri.
Tidak semua pemakai bisa menggunakan data yang bersifat sensitif.
Penentuan hak akses disesuaikan dengan wewenang pemakai dalam
organisasi.
2.1.3
Data Definition Language (DDL)
Menurut Connoly (2002, p40), DDL adalah sebuah bahasa yang
mengijinkan administrator basis data (DBA) atau pemakai untuk menguraikan
dan memberi nama entiti, atribut, relationship yang dibutuhkan bagi aplikasi,
bersama dengan banyak integritas yang diasosiasikan dan batasan keamanan.
Sedangkan Kadir (1999, p29) berpendapat bahwa DDL adalah perintahperintah yang biasa digunakan oleh administrator basis data (DBA) untuk
mendefinisikan skema ke DBMS.
Pada level teoritikal, perbedaan DDL dapat diidentifikasikan
pada
masing-masing skema dalam tiga tingkatan arsitektur, yaitu DDL untuk skema
eksternal, DDL untuk skema konseptual, dan DDL untuk skema internal. Akan
tetapi dalam kenyataannya terdapat satu DDL menyeluruh yang mengijinkan
spesifikasi sedikitnya pada skema eksternal dan skema konseptual.
DDL dapat juga dipakai untuk mendefinisikan subskema. Dengan kata
lain, subskema bisa mencakup sebagian atau seluruh bagian skema. Bila suatu
item tidak tercantum pada suatu subskema seorang pemakai, maka item tersebut
tidak tersedia bagi pemakai yang bersangkutan. Subskema dapat menjadi
mekanisme pengamanan sistem basis data, yakni dengan mengatur hak
pengaksesan item-item dalam basis data.
18
DDL juga digunakan untuk menciptakan, mengubah, dan menghapus
basis data.
2.1.4
Data Manipulation Language (DML)
Menurut Connoly (2002, p41), DML adalah suatu bahasa yang
menyediakan serangkaian operasi untuk mendukung operasi manipulasi basis
data pada data yang disimpan di database. Dan operasi manipulasi data tersebut
meliputi :
•
Penyisipan data baru ke dalam database
•
Memodifikasi dari data yang disimpan di dalam database
•
Mengembalikan data yang diisikan dalam database
•
Menghapus data dari database
Sedangkan menurut Kadir (1999, p31), DML adalah perintah-perintah
yang digunakan untuk mengubah, memanipulasi, dan mengambil data pada basis
data. DML pada dasarnya dibagi menjadi dua, yaitu :
•
Prosedural, yang menuntut pemakai menentukan data apa saja yang
diperlukan dan bagaimana cara mendapatkannya.
•
Nonprosedural, yang menuntut pemakai menentukan data apa saja yang
diperlukan,
tetapi
tidak
perlu
menyebutkan
cara
mendapatkannya.
Keuntungannya adalah lebih mudah dipelajari dan digunakan oleh pemakai.
Sedangkan kerugiannya adalah kurang efisien karena pemakai tidak tahu cara
mendapatkan datanya.
19
2.1.5
Normalisasi
2.1.5.1 Pengertian Normalisasi
Connoly (2002, p376) menyatakan bahwa normalisasi adalah suatu teknik
yang menghasilkan serangkaian hubungan dengan properti yang diinginkan,
yang diberi kebutuhan data dari suatu perusahaan.
Menurut Kroenke yang dituliskan oleh Kadir (1999, p65), normalisasi
didefinisikan sebagai proses untuk mengubah suatu relasi yang memiliki masalah
tertentu ke dalam dua buah relasi atau lebih yang tidak memiliki masalah
tersebut. Masalah yang dimaksud ini sering disebut dengan istilah anomali.
Sedangkan menurut Subekti (2004, p113), normalisasi merupakan suatu
teknik untuk mendapatkan satu himpunan (set) tabel yang ternormalisasi dan
memenuhi aturan-aturan yang berlaku dalam basis data model relasional.
2.1.5.2 Anomali
Kadir (1999, p65) mengemukakan bahwa anomali adalah efek samping
yang tidak diharapkan (misal menyebabkan ketidakkonsistenan data atau
membuat suatu data menghilang saat data lain dihapus) yang muncul dalam suatu
proses perancangan basis data.
Anomali yang dimaksud tersebut terdiri dari tiga macam anomali, yaitu
sebagai berikut :
a. Anomali Pemutakiran (Update Anomali)
Anomali ini terjadi bila terdapat pengubahan pada sejumlah data yang
mubazir, tetapi tidak seluruhnya diubah.
20
Sebagai contoh, terdapat relasi JADWAL_TRAINING yang mengandung
kata SISWA dan ALAMAT yang menyatakan lokasi siswa, TRAINING, dan
HARI yang menyatakan jenis training dan hari training yang diambil.
SISWA
ALAMAT
TRAINING
HARI
Kartika
Jl. Sudirman
ORACLE
Senin
Citra
Jl. Sandang
Crystal Report
Selasa
Candra
Jl. Senayan
Microsoft Desktop
Kamis
Citra
Jl. Thamrin
Microsoft CTEC
Jumat
Tabel 2.1 Relasi JADWAL_TRAINING
Seandainya siswa Citra berpindah ke alamat lain, misalnya ke Jl. A.Yani dan
pengubahan hanya dilakukan pada data pertama (data siswa Citra pada relasi
JADWAL_TRAINING ada dua buah), maka hasilnya adalah seperti yang
terlihat pada tabel 2.2 berikut.
SISWA
ALAMAT
TRAINING
HARI
Kartika
Jl. Sudirman
ORACLE
Senin
Citra
Jl. A.Yani
Crystal Report
Selasa
Candra
Jl. Senayan
Microsoft Desktop
Kamis
Citra
Jl. Thamrin
Microsoft CTEC
Jumat
Tabel 2.2 Relasi JADWAL_TRAINING Setelah Ada Pengubahan
Terlihat adanya ketidakkonsistenan. Fakta pertama menyatakan bahwa
pemasok Citra berlokasi di Jl. A.YANI, tetapi fakta kedua menyatakan
21
bahwa pemasok Citra berlokasi di Jl. Thamrin. Keadaan inilah yang
menyatakan adanya ketidakkonsistenan.
b. Anomali Penghapusan (Delete Anomali)
Anomali penghapusan terjadi sekiranya sesuatu baris (tupel) yang tidak
terpakai dihapus dan sebagai akibatnya terdapat data lain yang hilang.
Sebagai contoh, terdapat kasus pada relasi berikut :
NO_SISWA
NAMA_KURSUS
BIAYA
10
ORACLE
Rp. 1.500.000,-
15
Microsoft Desktop
Rp. 3.000.000,-
20
Microsoft CTEC
Rp. 5.000.000,-
Tabel 2.3 Relasi KURSUS
Jika data yang menyatakan bahwa siswa dengan identitas 20 yang mengambil
kursus Microsoft CTEC dihapus, maka data yang menyatakan bahwa biaya
kursus Microsoft CTEC sebesar Rp. 5.000.000,- juga akan terhapus.
c. Anomali Penyisipan (Insert Anomali)
Anomali ini terjadi jika pada saat penambahan hendak dilakukan ternyata ada
element data yang masih kosong dan elemen data tersebut justru menjadi
kunci.
Sebagai contoh, terdapat relasi yang berisi tiga buah atribut, yaitu KURSUS,
RUANG, dan LANTAI.
22
KURSUS
RUANG
LANTAI
ORACLE
Merapi
Lt. 1
Microsoft Desktop
Merbabu
Lt. 1
Microsoft CTEC
Rama
Lt. 2
Crystal Report
Merapi
Lt. 1
Tabel 2.4 Contoh Relasi yang Menimbulkan Anomali Penyisipan
Relasi diatas menyatakan bahwa :
•
KURSUS
menggunakan
RUANG
tertentu
(misalnya
ORACLE
menggunakan ruang Merapi).
•
Suatu RUANG berada pada LANTAI tertentu (misalnya ruang Merapi
terdapat pada Lt. 1.
Masalahnya, jika akan menyimpan fakta bahwa ruang baru bernama Arjuna
terdapat pada Lt. 2, maka penyisipan tidak dapat dilakukan mengingat tidak
adanya informasi KURSUS yang menggunakan ruang tersebut.
2.1.5.3 Dependency
Dependensi menurut Kadir (1999, p68-72) merupakan suatu konsep yang
mendasari normalisasi. Dependensi menjelaskan hubungan antar atribut atau
secara lebih khusus menjelaskan nilai suatu atribut yang menentukan nilai atribut
lainnya. Dependensi ini kelak menjadi acuan bagi proses dekomposisi data ke
dalam bentuk yang paling efisien.
Bentuk-bentuk dependensi dapat dibagi sebagai berikut :
23
a. Dependensi Fungsional
Dependensi fungsional adalah jenis dependensi yang banyak diulas pada
literatur basis data. Dependensi ini didefinisikan sebagai berikut :
“Suatu atribut Y mempunyai dependensi fungsional terhadap atribut X jika
dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y.”
Definisi tersebut biasa dituangkan dalam bentuk notasi seperti berikut :
XÆY
(dibaca “X secara fungsional menentukan Y” atau terkadang cukup dibaca
“X panah Y”).
Contoh :
Gambar 2.1 Dependensi Fungsional
b. Dependensi Fungsional Sepenuhnya
Definisi dependensi fungsional sepenuhnya adalah sebagai berikut :
“Suatu atribut Y mempunyai dependensi fungsional penuh terhadap atribut X
jika :
•
Y mempunyai dependensi fungsional terhadap X
•
Y tidak memiliki dependensi terhadap bagian dari X”
24
c. Dependensi Total
Definisi dependensi total adalah sebagai berikut :
“Suatu atribut Y mempunyai dependensi total terhadap atribut X jika :
•
Y memiliki dependensi fungsional terhadap X
•
X mempunyai dependensi fungsional terhadap Y”
Dependensi seperti inidinyatakan dengan notasi :
X↔Y
d. Dependensi Transitif
Dependensi ini didefinisikan sebagai berikut :
“Atribut Z mempunyai dependensi transitif terhadap X bila :
•
Y memiliki dependensi fungsional terhadap X
•
Z memiliki dependensi fungsional terhadap Y”
25
2.1.5.4 Bentuk Normalisasi
Gambar 2.2 Bentuk-Bentuk Normalisasi
1. Bentuk Normal Pertama (1NF)
Bentuk Normal Pertama biasa dikenakan pada tabel yang belum
ternormalisasi. Tabel yang belum ternormalisasi adalah tabel yang memiliki
atribut yang berulang. Bentuk seperti ini sering disebut dengan unnormalized
form (UNF).
Pada bentuk normal pertama (1NF) berarti mengidentifikasi dan
membuang atribut yang berulang (Repeating Group) dan memiliki nilai yang
lebih dari satu (Multivalue). 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 (Multivalue) telah dihilangkan.
26
2. Bentuk Normal Kedua (2NF)
Suatu relasi berada dalam bentuk normal kedua (2NF) jika dan hanya
jika :
-
Berada pada bentuk normal pertama (1NF)
-
Semua atribut bukan kunci (atribut bukan kunci adalah atribut yang tidak
merupakan bagian kunci primer) memiliki dependensi sepenuhnya (full
functional dependence) kunci primer (primary key).
Dalam ungkapan yang lebih praktis, bentuk normal kedua (2NF)
mensyaratkan setiap atribut bergantung pada kunci primer (primary key).
Untuk mengubah suatu relasi yang tergolong sebagai bentuk normal
pertama (1NF) ke bentuk normal kedua (2NF) perlu dilakukan dekomposisi
terhadap relasi tersebut. Proses dekomposisi dapat dilakukan dengan
menggambarkan
diagram
dependensi
fungsional
terlebih
dahulu.
Berdasarkan diagram ini, relasi dalam bentuk normal pertama (1NF).
3. Bentuk Normal Ketiga (3NF)
Suatu relasi dikatakan dalam bentuk normal ketiga (3NF) jika :
-
Berada dalam bentuk normal kedua atau yang telah memenuhi bentuk
normal kedua (2NF)
-
Setiap atribut bukan kuncinya tidak memiliki unsur dependensi transitif
(transitive dependency) terhadap kunci primer (primary key)
27
4. Bentuk Normal Boyce-Codd (BCNF)
Suatu relasi disebut memenuhi bentuk Normal Boyce-Codd (BCNF)
jika dan hanya jika semua penentu (determinan) adalah kunci kandidat
(atribut yang bersifat unik).
BCNF merupakan bentuk normal sebagai perbaikan dari 3NF, karena
bentuk normal ketiga (3NF) mungkin masih mengandung anomaly, sehingga
masih perlu dinormalisasi lebih lanjut. Suatu relasi yang memenuhi BCNF
selalu memenuhi 3NF, tetapi tidak untuk sebaliknya. Suatu relasi yang
memenuhi 3NF belum tentu memenuhi BCNF.
Suatu tabel berada pada kasus BCNF jika table tersebut :
-
Memiliki dua atau lebih kunci kandidat.
-
Kunci-kunci kandidat tersebut berupa komposisi.
-
Kunci-kunci kandidat tersebut beririsan (overlapped) setidaknya pada
sebuah atribut.
5. Bentuk Normal Keempat (4NF)
Meski sebuah tabel telah mencapai normal BCNF, namun masih
mungkin terjadi kesulitan berkenaan dengan adanya informasi berulang yang
disebut sebagai multivalued. Sehubungan dengan hal tersebut maka perlu
diperkenalkan suatu konsep yang dinamakan dengan dependensi nilai banyak
(Multivalued Dependency / MVD), yaitu merupakan bentuk umum
(generalization) dari dependensi fungsional (fungsional dependency).
28
MVD ini pertama kali diperkenalkan oleh R. Forgin pada tahun 1977,
dipakai pada bentuk normal keempat (4NF). Dependensi ini dipakai untuk
menyatakan hubungan satu ke banyak.
Secara umum, dependensi nilai banyak muncul pada relasi yang
paling tidak memiliki tiga atribut secara umum, dependensi nilai banyak
muncul pada relasi yang paling tidak memiliki tiga atribut dan dua
diantaranya bernilai banyak, dan nilai-nilainya tergantung hanya pada atribut
ketiga.
Pada suatu relasi R dengan atribut A, B, C, atribut B dikatakan
bersifat MVD terhadap A jika :
-
Sekumpulan nilai B yang diberikan pada pasangan (A, C) hanya
tergantung pada nilai A.
-
Tidak tergantung pada nilai C.
Hubungan diatas dinyatakan dengan
A
B
(dibaca : “A menentukan banyak nilai B“ atau “B multidependen terhadap
A”)
Secara praktis, suatu relasi memenuhi bentuk normal keempat (4NF)
jika :
-
Telah berada pada BCNF.
-
Tidak mengandung dua atribut atau lebih yang bernilai banyak.
29
6. Bentuk Normal Kelima (5NF)
Suatu relasi dikatakan berada dalam bentuk normal kelima (5NF) jika
data yang ada padanya tidak dapat lagi didekomposisi menjadi relasi-relasi
yang lebih kecil dengan candidate key.
Tujuan dari normalisasi ini adalah :
a. Menghilangkan kumpulan relasi dari inserting, updating, dan deleting
dependensi yang tidak diharapkan.
b. Mengurangi
kebutuhan
restrukturisasi
dari
kumpulan
relasi
dan
meningkatkan life spam program aplikasi.
c. Membuat model relasional lebih formatif.
2.1.6
4th GL (Generation Language)
Sekarang ini terdapat suatu bahasa yang disebut 4-GL, yaitu merupakan
bahasa pemrograman yang diminimalisasi. Suatu operasi yang biasanya
membutuhkan ratusan baris di bahasa pemrograman 3-GL seperti COBOL, maka
pada 4-GL hanya membutuhkan baris pemrograman yang lebih sedikit.
Klaim 4-GL adalah dapat menambah produktivitas berkali-kali lipat dan
penanganan masalahnya yang lebih banyak.menurut Connoly (2002, p42), 4-GL
mempunyai kemampuan sebagai berikut :
•
bahasa presentasi, seperti Query Language dan Report Generator.
•
bahasa spesialis, seperti Spreadsheets dan Database Language.
30
•
aplikasi generator, seperti mendefinisikan, menambah, mengedit, dan
mengembalikan data dari database untuk membangun aplikasi.
•
2.1.7
bahasa pemrograman yang dapat menghasilkan kode aplikasi.
Siklus Hidup Aplikasi Basis Data
Siklus hidup aplikasi database penting untuk diperhatikan bahwa stage
dari database Aplication Lifecycle tidak sepenuhnya sekuensial, tetapi terlibat
dalam suatu perulangan dari bagan-bagan yang sebelumnya melalui umpan balik.
Sebagai contoh, masalah yang dihadapi selama perancangan database adalah
masih diperlukannya analisis dan pengumpulan data tambahan.
Untuk aplikasi database kecil dengan jumlah pemakai yang sedikit, siklus
hidup tidaklah kompleks. Bagaimanapun juga, ketika perancangan sedang
dilakukan pada suatu apliksi database ukuran sedang dengan jumlah pemakai
antara 10 sampai dengan ribuan pemakai, dengan menggunakan ratusan query
dan program aplikasi, siklus hidup akan menjadi kompleks.
Menurut Connoly (2002, p272), suatu basis data dianalisis dan dirancang
berdasarkan siklus terhadap seperti tergambar pada gambar berikut :
31
Gambar 2.3 Siklus Hidup Aplikasi Basis Data
Berikut ini ringkasan dari aktivitas utama yang ada di setiap langkah dari siklus
hidup aplikasi database, antara lain :
a. Database Planning
Merencanakan bagaimana tahapan-tahapan dari siklus hidup tersebut dapat
direalisasikan dengan efektif dan efisien.
32
b. System Definition
Menspesifikasikan ruang lingkup dan batasan dari aplikasi database, pemakai
database, dan area-area aplikasi.
c. Requirements Collection and Analysis
Mengumpulkan dan menganalisis kebutuhan pemakai serta area-area
aplikasi.
d. Database Design
Mencakup rancangan konseptual, rancangan logical, dan rancangan fisikal
database.
e. DBMS Selection (optional)
Menyeleksi DBMS yang cocok untuk aplikasi database.
f. Application Design
Merancang antarmuka pemakai (user interface) dan program-program
aplikasi yang akan menggunakan serta memproses database.
g. Prototyping (optional)
Membangun sebuah model kerja dari aplikasi database yang memungkinkan
designer atau pemakai untuk memvisualisasi dan mengevaluasi wujud serta
fungsi sistem akhir.
h. Implementation
Menciptakan definisi-definisi dari database eksternal, konseptual, internal,
serta program -program aplikasi.
i. Data Conversion and Loading
Memindahkan data dari sistem yang lama ke sistem yang baru.
33
j. Testing
Melihat apakah masih ada kesalahan (error) dan menvalidasinya sesuai
dengan kebutuhan pemakai.
k. Operational Maintenance
Pada tahap ini aplikasi basis data diimplementasikan sepenuhnya. Sistem
diawasi dan dipelihara secara berkelanjutan. Jika diperlukan, kebutuhankebutuhan baru dimasukan dalam aplikasi basis data melalui tahapan data
terdahulu.
2.1.8
Tahapan Perancangan Basis Data
Connoly (2002, p417-476 ) mendefinisikan metodologi perancangan
basis data atas tiga tahapan , yaitu :
2.1.8.1 Perancangan Basis Data Konseptual
Tahapan ini merupakan proses
pembentukan model informasi yang
digunakan di dalam sebuah perusahaan dan tidak tergantung pada semua
pertimbangan fisikal.
Tujuannya adalah untuk membangun representasi konseptual dari
database, yang mana terdiri dari entiti-entiti, relationships, dan atribut-atribut
yang penting.
Perancangan ini terdiri dari sembilan langkah :
Langkah 1 Membangun Model Data Konseptual Lokal Untuk MasingMasing Pandangan
Langkah 1.1 Mengidentifikasi tipe entiti
Langkah 1.2 Mengidentifikasi tipe relasi
34
Langkah 1.3 Mengidentifikasi dan mengasosiasikan atribut dengan entiti atau
tipe relasi
Langkah 1.4 Mengidentifikasi domain atribut
Langkah 1.5 Menggunakan candidate key dan primary key
Langkah 1.6 Menggunakan enchanced modeling concepts (langkah optional)
Langkah 1.7 Mengecek redundansi
Langkah 1.8 Validasi model konseptual lokal dengan transaksi pemakai
Langkah 1.9 Mereview model data konseptual lokal dengan pemakai
Berikut ini menjelaskan langkah-langkah yang telah disebutkan diatas
secara lebih detail adalah sebagai berikut :
Langkah 1.1 : Mengidentifikasi Tipe Entiti
Tujuan dari langkah ini adalah mengidentifikasikan entiti utama yang diminta
oleh pemakai. Salah satu metode untuk mengidentifikasi tipe entiti yang utama
adalah dengan mengidentifikasi kata benda atau frase kata benda yang telah
disebutkan oleh pemakai.
Langkah 1.2 : Mengidentifikasi Tipe Relasi
Tujuan dari langkah ini adalah untuk mengidentifikasi relasi yang penting antara
berbagai
tipe
entiti
yang
telah
diidentifikasikan.
Biasanya,
diidentifikasikan dengan menggunakan kata kerja atau frase kata kerja.
relasi
35
Adapun langkah-langkah dalam mengidentifikasi tipe relasi adalah sebagai
berikut :
-
Gunakan Entiti RelationshipDiagram (ERD).
-
Menentukan pembatas multiplicity dari tipe relasi.
-
Mengecek Fan traps dan Chasm traps.
-
Mengecek setiap entiti yang mempunyai relasi minimal satu.
Langkah 1.3 : Mengidentifikasi dan Mengasosiasikan Atribut Dengan Entiti
atau Tipe Relasi
Tujuannya adalah untuk mengasosiasikan atribut dengan entity atau tipe relasi.
Simple / Composite Attributes
Composite attribute adalah atribut yang dibangun dari simpel atribut. Sebagai
contoh, atribut alamat bisa saja dibuat simpel dan menyimpan beberapa detail
dari alamat sebagai suatu nilai. Misalnya : Dumbarton Road, Glasgow, G116YG.
Atribut alamat dapat juga mempresentasikan sebuah composite atribut, yang
terdiri dari beberapa detail yang mempunyai nilai terpisah dalam atribut street
(“115 Dumbarton Road”), City (“Glasgow”), dan postcode (“G116YG”). Atribut
alamat dapat dijadikan simple atribut atau composite atribut tergantung dengan
kebutuhan pemakai. Jika pemakai tidak membutuhkan detail dari atribut alamat
seperti nama jalan, kota, kode pos, dan sebagainya, maka sebaiknya alamat
tersebut dibuat sebagai composite atibut.
36
Single / Multi – Valued Attributes
Suatu atribut juga dapat mempunyai satu atau lebih nilai. Contoh : Atribut no
telepon. Seseorang dapat saja mempunyai no telepon lebih dari satu, apabila
memang adanya demikian maka dapat disebut Multivalued Atribut. Tetapi
apabila atribut tersebut hanya mempunyai suatu nilai maka disebut sebagai
Single Atribut.
Derived Attributes
Atribut yang nilainya tergantung dengan nilai atribut yang lain, maka atribut ini
disebut sebagai Derived Atribut. Sebagai contoh :
-
Umur dari seorang staff.
-
Banyaknya properti yang diatur oleh anggota staff.
Langkah 1.4 : Mengidentifikasikan Domain Atribut.
Tujuan dari langkah ini adalah untuk menentukan domain dari atribut yang ada
di dalam lokal konseptual data model.
Langkah 1.5 Menggunakan Candidate Key dan Primary Key
Tujuan dari langkah ini adalah untuk mengidentifikasi candidat key dari setiap
tipe entiti, dan jika memang terdapat lebih dari satu candidat key, pilihlah salah
satunya untuk menjadi primary key.
37
Jika memilih sebuah primary key dari candidat key, gunakan petunjuk berikut
untuk membantu membuat pilihan :
•
Candidat key dengan serangkai atribut yang minimal.
•
Candidat key tersebut adalah yang paling penting yang mungkin mempunyai
nilai-nilai perubahan.
•
Candidat key dengan karakter yang paling sedikit.
•
Candidat key dengan nilai maksimal yang paling kecil .
•
Candidat key tersebut paling mudah digunakan dari segi pandang pemakai.
Langkah 1.6 Menggunakan Enchanced Modeling Concepts (Langkah
Optional)
Tujuan dari langkah ini adalah untuk mempertimbangkan penggunaan enchanced
modeling concepts, seperti specialization, generalization, aggregation, dan
composition.
Langkah 1.7 : Mengecek Redundansi
Tujuan dari langkah ini adalah untuk mengecek apakah ada redundansi dalam
model database. Pada langkah ini, dilakukan pengujian lokal konseptual data
model dengan penglihatan secara spesifik. Apabila ada redundansi, maka dapat
dihilangkan redundansi tersebut dengan dua langkah berikut :
1. Menguji kembali hubungan one-to-one.
2. Menghilangkan relasi redundansi.
38
Langkah 1.8 : Validasi Model Konseptual Lokal Dengan Transaksi Pemakai
Tujuan dari langkah ini adalah untuk memastikan bahwa model konseptual lokal
mendukung permintaan transaksi oleh pemakai.
Pengujian dilakukan dengan dua kemungkinan pendekatan dengan memastikan
bahwa model data konseptual lokal mendukung permintaan transaksi :
1. Deskripsikan transaksi
Dengan pendekatan ini, dicek bahwa semua informasi (entiti, relationship,
dan atributnya) dibutuhkan oleh masing-masing transaksi yang disediakan
oleh model, dokumentasi sebuah deskripsi dari masing-masing kebutuhan
transaksi.
2. Gunakan alur transaksi
Pada pendekatan yang kedua ini, digunakan untuk menvalidasi model data
melawan transaksi yang dibutuhkan yang melibatkan representasi alur secara
diagramatik yang diambil oleh masing-masing transaksi secara langsung
pada ERD.
Langkah 1.9 : Mereview Lokal Konseptual Data Model Dengan Pemakai
Tujuan dari langkah ini adalah untuk mereview lokal konseptual data model
bersama pemakai untuk memastikan bahwa model yang ada sudah sesuai dengan
yang diminta.
39
2.1.8.2 Perancangan Basis Data Logikal
Pada tahapan ini diartikan sebagai proses pembentukan model informasi
yang digunakan pada perusahaan yang berdasarkan pada model data spesifik,
tetapi tidak tergantung pada DBMS partikular ataupun pertimbanganpertimbangan fisikal lainnya. Perancangan ini mempunyai tujuan untuk
menterjemahkan representasi konseptual ke struktural.
Pada perancangan ini terdiri dari beberapa langkah :
Langkah 2 Membuat dan Menvalidasi Model Data Logikal Lokal Untuk
Setiap Bagian
Langkah 2.1 Menghilangkan bagian yang tidak sesuai dengan model relasi
(langkah optional)
Langkah 2.2 Menganalisis relasi untuk lokasi logikal data model
Langkah 2.3 Menvalidasi relasi dengan normalisasi
Langkah 2.4 Menvalidasi relasi dengan transaksi pemakai
Langkah 2.5 Mengecek integritas basis data
Langkah 2.6 Mereview lokal logikal data model dengan pemakai
Langkah 3
Membangun dan Menvalidasi Model Data Logikal Global
Langkah 3.1 Menggabungkan Local Logical Data Model menjadi Global Model
Langkah 3.2 Menvalidasi Model Data Logikal Global
Langkah 3.3 Mengecek untuk kemungkinan pengembangan di masa depan
Langkah 3.4 Mereview model data logikal global dengan pemakai
40
Berikut ini detail mengenai langkah-langkah yang telah disebutkan,
antara lain :
Langkah 2.1 : Menghilangkan Bagian yang Tidak Sesuai Dengan Model
Relasi (Langkah Optional)
Bagian yang akan dibahas pada langkah ini antara lain :
a. Menghilangkan many-to-many (* : *) tipe relasi binary.
b. Mehilangkan many-to-many (* : *) tipe relasi rekursif.
c. Menghilangkan tipe relasi kompleks.
d. Menghilangkan multivalue atribut.
Langkah 2.2 : Menganalisis Relasi Untuk Lokasi Model Data Logikal
Adapun pendeskripsian bagaimana relasi dapat diturunkan dari struktur data
model yang ada sekarang, yaitu :
a. Tipe entiti kuat
b. Tipe entiti lemah
c. One-to-many (1 : *) tipe relasi binary
d. One-to-one (1 : 1) tipe relasi binary
e. One-to-one (1 : 1) tipe relasi rekursif
f. Superclass atau subclass tipe relasi
g. Many-to-many tipe relasi binary
h. Tipe relasi kompleks
i. Atribut multivalue
41
Langkah 2.3 : Menvalidasi Relasi Dengan Normalisasi
Tujuan dari langkah ini adalah untuk menvalidasi relasi dalam lokal logikal data
model denga menggunakan teknik normalisasi.
Langkah utama dari proses normalisasi yaitu sebagai berikut :
1. bentuk normal pertama (1NF), menghilangkan kelompok perulangan
(repeating).
2. bentuk normal kedua (2NF), menghilangkan ketergantungan sebagian
(partial dependencies) pada primary key.
3. bentuk normal ketiga (3NF), menghilangkan ketergantungan transitif
(transitive dependencies) pada primary key.
4. bentuk normal Boyce-Codd (BCNF), menghilangkan anomali sisa dari
ketergantungan fungsional (functional dependencies).
Langkah 2.4 : Menvalidasi Relasi Dengan Transaksi Pemakai
Tujuannya adalah untuk memastikan bahwa relasi di dalam lokal logikal data
model mendukung transaksi yang diminta pemakai. Pada langkah ini,
pengecekan bahwa relasi yang dibuat di langkah sebelumnya juga mendukung
transaksi ini, dan juga pastikan bahwa tidak ada ekor dalam relasi yang telah
dibuat.
Langkah 2.5 : Mengecek Integritas Basis Data
Dalam langkah ini ada lima tipe dari ruang lingkup integritas, antara lain :
1. data yang diminta
2. domain pembatas atribut
42
3. integritas entiti
4. integritas referensi
5. pembatas enterprise
Langkah 2.6 : Mereview Model Data Logikal Lokal Dengan Pemakai
Tujuannya adalah untuk mamastikan bahwa lokal logikal data model dan
pendukung dokumentasi mendeskripsikan model tersebut sebagai representasi
yang sesuai dengan keadaan sebenarnya.
Langkah 3.1 : Menggabungkan Model Data Logikal Lokal Menjadi Model
Global
Tujuan dari langkah ini adalah untuk menggabungkan suatu model data logikal
lokal ke dalam suatu model data logikal global dari suatu enterprise.
Beberapa tugas dari pendekatan ini adalah sebagai berikut :
•
mereview nama dan isi entiti atau relasi serta candidate key-nya.
•
mereview nama dan isi dari relationship atau foreign key.
•
menggabungkan entiti atau relasi dari lokal data model.
•
meliputi (kecuali penggabungan) entiti atau relasi yang unik ke masingmasing lokal data model.
•
menggabungkan relationship atau foreign key dari lokal data model.
•
meliputi (kecuali penggabungan) relationship atau foreign key yang unik ke
masing-masing lokal data model.
43
•
mengecek apakah ada kehilangan entiti atau relasi dan relationship atau
foreign key.
•
mengecek foreign key.
•
mengecek batasan integriti.
•
menggambar ER atau relasi diagram.
•
Membaharui dokumentasi.
Langkah 3.2 : Menvalidasi Model Data Logikal Global
Tujuannya adalah untuk menvalidasi relasi dibuat dari global logikal data model
dengan menggunakan teknik normalisasi and memastikannya untuk mendukung
kebutuhan transaksi, jika diperlukan.
Langkah 3.3 : Mengecek Untuk Kemungkinan Pengembangan di Masa
Depan
Tujuan dari langkah berikut adalah untuk menentukan apakah ada banyak
perubahan signifikan yang penting di masa depan yang dapat diduga dan untuk
mengakses apakah global logikal data model dapat mengakomodasi perubahan
ini.
Hal ini penting bahwa global logikal data model dapat diperluas dengan mudah.
Jka model dapat menopang kebutuhan yang sekarang saja, maka kehidupan
model tersebut mungkin relatif pendek dan pengerjaan yang signifikan mungkin
dibutuhkan untuk mengakomodasi kebutuhan yang baru. Hal ini penting untuk
mengembangkan model yang dapat diperluas dan mempunyai kemampuan yang
44
dapat meningkatkan untuk mendukung kebutuhan yang baru dengan efek yang
minimal pada pamakai yang ada.
Langkah 3.4 : Mereview Model Data Logikal Lokal Dengan Pemakai
Model data logikal lokal untuk sebuah perusahaan seharusnya sekarang
dilengkapi dan akurat. Model dan dokumentasi yang menjelaskan model
seharusnya direview dengan pemakainya untuk memastikan bahwa ini adalah
representasi perusahaan yang benar.
2.1.8.3 Perancangan Basis Data Fisikal
Yang
dimaksud
dengan
perancangan
ini
adalah
proses
untuk
menghasilkan sebuah pendeskripsian mengenai pengimlementasian database
pada media penyimpanan tambahan.
Tujuannya adalah untuk menentukan bagaimana struktur logika
diimplementasikan secara fisik (sebagai relasi) dalam target DBMS.
Langkah 4
Menterjemahkan Model Data Logikal Global Untuk DBMS
yang Digunakan
Langkah 4.1
Desain Dasar Relasi
Langkah 4.2
Desain Representasi dari Data Turunan (Derived Data)
Langkah 4.3
Design Enterprise Constraint
Langkah 5
Desain Representasi Fisik
Langkah 5.1
Menganalisis Transaksi
Langkah 5.2
Memilih File Organisasi
Langkah 5.3
Memilih Index
45
Langkah 5.4
Memperkirakan kebutuhan ruang disk
Langkah 6
Desain Tampilan Pemakai
Langkah 7
Desain Mekanisme Keamanan
Berikut ini adalah detail dari perancangan basis data secara fisik, antara
lain :
Langkah 4.1 : Desain Dasar Relasi
Tujuan dari langkah ini adalah untuk memutuskan bagaimana merepresentasikan
relasional dasar yang diidentifikasi dalam global logikal data model pada DBMS
yang dipakai.
Untuk memulai proses perancangan basis data fisik, pertama-tama harus
mengumpulkan dan mengasimilisasikan suatu informasi tentang relasional yang
dirancang selama perancangan basis data logikal. Informasi yang diperlukan bisa
berasal dari kamus data dan definisi dari relasional yang didefinisikan
menggunakan Database Design Language (DBDL). Untuk setiap relasional yang
diidentifikasi pada global logikal data model, dapat didefinisikan salah satu
sebagai berikut :
•
Nama dari relasional yang ada
•
Suatu list untuk atribut yang simpel
•
Primary key, alternative key, dan foreign key
•
Suatu daftar dari atribut turunan dan bagaimana pembuatannya
•
Batasan integrasi untuk setiap foreign key yang diidentifikasi
46
Dari kamus data, dari setiap atributnya dapat diketahui :
•
Domain atribut tersebut yang terdiri dari tipe data, panjang, dan berbagai
keterangan atribut tersebut
•
Suatu optional nilai default untuk atribut
•
Apakah atribut dapat diisi nilai null
Langkah 4.2 : Representasi Desain Dari Data Turunan (Derived Data)
Tujuan dari langkah ini adalah untuk memutuskan bagaimana merepresentasikan
suatu data turunan pada model data logikal global pada DBMS yang dipakai.
Atribut yang nilainya didapatkan dengan mengevaluasi atribut lain dikenal
sebagai atribut turunan atau kalkulasi. Sebagai contoh :
•
Jumlah banyaknya staff yang bekerja pada suatu kantor
•
Total gaji yang dibayarkan ke seluruh staff
•
Total dari properti yang ditangani oleh seorang staff
Langkah 4.3 : Design Enterprise Constraint
Mengupdate suatu relasi yang mungkin dibatasi oleh aturan perusahaan sesuai
dengan transaksi yang sebenarnya bisa diupdate. Perancangan batasan tersebut
sekali lagi tergantung pada DBMS yang digunakan, fasilitas yang dipunyai oleh
sistem dibandingkan dengan DBMS yang lain. Pada awalnya, jika sistem
tersebut mempunyai aturan sesuai dengan aturan standart SQL, beberapa batasan
dapat diterapkan.
47
Langkah 5.1 : Menganalisis Transaksi
Tujuan langkah ini adalah untuk mengerti fungsi dari suatu transaksi yang mana
akan dijalankan pada basis data dan untuk menganalisis transaksi yang penting.
Untuk membuat perancangan basis data fisikal yang efisien, maka perlu untuk
mempunyai pengetahuan mengenai transaksi atau query yang akan dijalankan di
dalam basis data. Ini termasuk kuantitatif atau kualitatif informasi. Dalam
menganalisis transaksi, dapat diidentifikasi kriteria performansi sebagai berikut :
•
Transaksi yang sering digunakan dan akan berdampak besar terhadap
performansi keseluruhan
•
Transaksi yang merupakan transaksi bisnis yang kritis
•
Durasi waktu dalam harian atau mingguan yang akan mendapatkan banyak
permintaan pada database
Langkah 5.2 : Memilih Organisasi File
Dalam banyak kasus yang ada, suatu relasional DBMS akan memberikan sedikit
bahkan tanpa pilihan dalam memilih organisasi file, walaupun beberapa akan
mempunyai indeks yang spesifik. Bagaimanapun, berikut ini beberapa organisasi
file yang ada adalah sebagai berikut :
•
Heap
•
Hash
•
Indexed Sequential Access Method (ISAM)
•
B*-tree
•
Cluster
48
Langkah 5.3 : Memilih Index
Tujuannya
adalah
untuk
menentukan
penambahan
indeks
yang
akan
meningkatkan performansi dari suatu sistem. Biasanya atribut untuk indeks
adalah sebagai berikut :
•
Suatu atribut yang digunakan paling sering untuk operasi penggabungan,
yang akan membuat penggabungan tersebut lebih efektif
•
Suatu atribut yang digunakan paling banyak untuk mengakses suatu record di
dalam relasi yang ada
Langkah 5.4 : Memperkirakan Kebutuhan Kapasitas Disk
Tujuannya adalah untuk mengestimasi ukuran kapasitas disk yang diperlukan
untuk basis data. Sasaran dari langkah ini adalah untuk menaksirkan jumlah
ruang disk yang diperlukan untuk mendukung implementasi basis data pada
tempat penyimpanan sekunder.
Langkah 6 : Desain Tampilan Pemakai
Tujuan dari langkah ini adalah untuk merancang tampilan pemakai yang
diidentifikasi selama pengumpulan informasi dan analisis dari siklus hidup
aplikasi basis data.
Langkah 7 : Desain Mekanisme Keamanan
Tujuan dari langkah ini adalah untuk merancang ukuran keamanan untuk basis
data yang telah dispesifikasikan pemakai. Definisi keamanan basis data adalah
49
suatu mekanisme yang memproteksi basis data dari suatu kejadian yang
disengaja maupun yang tidak di sengaja.
Suatu basis data merupakan sumber dari perusahaan yang essensial yang perlu
dilindungi dengan menggunakan suatu kontrol yang memadai. Beberapa issue
keamanan basis data yang perlu diperhatikan adalah sebagai berikut :
1. pencurian data (theft and Fraud)
2. kehilangan kerahasiaan suatu data (loss of confidentially)
3. kehilangan hak pribadi (loss of privacy)
4. kehilangan integritas (loss of integrity)
5. kehilangan ketersediaan data (loss of availability)
Hasil akhir dari perancangan fisik basis data adalah suatu proses yang
mendeskripsikan suatu implementasi dari suatu basis data pada media
penyimpanan. Ini mendeskripsikan suatu relasional dan struktur penyimpanan
dan metodologi pengaksesan data oleh pemakai yang efisien, selama batasan
integritas dan pengukuran keamanan.
2.2
Teori-Teori Khusus
Berikut ini adalah teori-teori yang mendukung topik yang sedang dibahas
oleh penulis, yaitu antara lain :
2.2.1
Pengertian Training
Menurut McLaughlin (1982, p3), kebanyakan sistem pembelajaran di
sekolah masih pasif, dengan keterlibatan yang terbatas. Sekarang ini orang-orang
menginginkan tugas yang lebih aktif dalam sistem pembelajarannya. Maksudnya
kita harus melibatkan mereka sebanyak mungkin. Itulah mengapa cara berdiskusi
50
lebih baik dari pengajaran, dan tugas dengan sistem bermain juga lebih baik
daripada harus menghafal diluar kepala. Dalam suatu pekerjaan, pelatihan adalah
suatu cara yang paling baik.
Kalau terdapat keinginan pada sebagian siswa untuk belajar dan
menguasai apa yang telah dipelajarinya, maka ada sedikit harapan hasil yang
menguntungkan dari program training (pelatihan).
Setiap individu cenderung untuk mengulangi dan mempelajari dengan
cepat. Reaksi ini disertai atau diikuti oleh dampak yang memuaskan dan jika
sebaliknya maka responnya akan disertai dengan hasil yang negatif atau diulangulang. Oleh karena itu, perlu suatu pelatihan atau training untuk memantapkan
sistem pembelajarannya. Dengan seringnya latihan, maka secara perlahan-lahan
akan terbiasa, terlatih, dan menjadi lebih paham.
Dengan adanya training juga, maka kita akan mendapatkan pengetahuan
yang lain selain dari sekolah atau pusat pembelajaran yang lain.
Adapun sembilan aturan dasar bagi training atau pelatihan, yaitu sebagai
berikut :
1. kemampuan seorang siswa yang harus tahu dalam menentukan apa yang
dapat dipelajari dan seberapa lama akan terjadi.
2. tingkatan pembelajaran, yang berdasarkan umur siswa, pengalaman, dan latar
belakang adalah penting dalam menentukan bahwa siswa tersebut dapat
belajar pada tingkatan yang sesuai.
3. sesuatu yang dipelajari dan dimengerti biasanya lebih menguasai daripada
sesuatu yang dihafalkan tanpa berpikir.
51
4. praktek yang terdistribusi menawarkan beberapa periode yang lebih ekonomi
dalam sistem pembelajarannya daripada praktek yang terkonsentrasi dalam
suatu periode tunggal.
5. jika mengajar seseorang yang sudah mempunyai kemampuan yang lebih
tinggi, yang paling baik adalah memperlihatkan performansi dalam cara yang
sama sebagai seorang pengajar.
6. menunjukkan dan menjelaskan kesalahan-kesalahan dalam sesuatu pekerjaan,
sehingga dapat meningkatkan proses pembelajaran.
7. lebih mudah untuk mengakui sesuatu daripada untuk memanggilnya kembali.
8. pembelajaran dibantu oleh praktek yang aktif daripada yang pasif.
9. pengetahuan merupakan hasil yang menunjuk pada peningkatan dalam proses
pembelajaran.
Adapun metode-metode yang berbeda bagi orang yang training, yaitu
dengan cara :
•
penelitian
•
pengajaran
•
demonstrasi
•
audiovisual
•
bisnis permainan
•
tugas
52
2.2.2
Computer Based Training
Menurut Chute, Thompson, dan Han Cook (2000, p37-38), computer
based training adalah metode penyampaian training dimana komputer digunakan
sebagai alat untuk menyampaikan materi pelajarannya. Murid membaca
informasi yang disampaikan melalui layar komputer dan berinteraksi dengan isi
yang ada di dalamnya dengan menggunakan mouse atau keyboard. Secara
otomatis komputer mengatur data tracking dan proses informasi dalam
melakukan registrasi, test, dan instruksi pengajaran. Pada mulanya komputer
hanya memiliki kemampuan untuk menampilkan dalam bentuk text dan grafik
monochrome sederhana. Dengan semakin berkembangnya komputer saat ini,
maka tampilan grafik dan text ditingkatkan, penambahan suara dan warna, serta
kapasitas yang besar dari RAM (Random Access Memory), maka menjadikan
desktop komputer menjadi alat yang cocok untuk penyampaian materi pelajaran.
Dengan penyampaian materi melalui internet, maka dapat mengurangi
biaya pemeliharaan peralatan dan fasilitas yang disediakan apabila dilakukan
melalui kelas tatap muka. Internet adalah pilihan yang sangat baik dalam
penyampaian secara update dengan cepat. Kemudahan dalam menggunakan
browser akan memudahkan siapa saja untuk menggunakan internet. Murid juga
dapat menggunakan fasilitas ini dan memberikan pertanyaan kepada instruktur
melalui diskusi online atau melalui email. Update juga dapat dilakukan secara
elektronik melalui web. Jadi siapapun yang mengakses informasi setelah
diupdate, maka dapat menerima informasi yang terbaru.
53
2.2.3
Entity Relational Diagram (ERD)
Menurut Date (1990, p587), ERD merupakan suatu teknik untuk
menggambarkan struktur logik dari sebuah basis data dalam suatu acara
bergambar. Tentu saja, popularitas dari model E/R seperti sebuah pendekatan
pada perancangan basis data dapat dilengkapi lebih untuk keberadaan teknik
ERD daripada untuk beberapa kasus lainnya.
Menurut McFadden dan Hoffer (1994, p124), ER model adalah sangat
detail, merupakan representasi logikal dari data untuk sebuah organisasi atau
untuk area bisnis. ER model ditekankan pada istilah entiti dalam lingkungan
bisnis, relasi (atau asosiasi) antara entiti in, dan atribut (properti) dari kedua entiti
dan relasinya. Suatu ER model dinyatakan secara normal sebagai diagram relasi
entiti (Entity Relationship Diagram / ERD), yang mana merupakan representasi
dari ER model.
ER model biasanya dibangun sepanjang tahap analisis dari proses
perkembangan database. Sebuah ER model boleh juga digunakan untuk
merepresentasikan suatu data model perusahaan. Output dari tahap analisis
merupakan data model konseptual yang dinyatakan dalam bentuk suatu ERD
yang detail.
54
Contohnya adalah sebagai berikut :
Gambar 2.4 Entity Relational Diagram Hubungan Pegawai Dengan Department
2.2.4
Data Flow Diagram (DFD)
Menurut Yourdon (1989, p139), diagram aliran data adalah model atau
alat yang digunakan untuk menggambarkan sistem sebagai jaringan dari
sekumpulan proses fungsional, yang dihubungkan satu dengan yang lainnya oleh
suatu aliran data dan meneruskannya menjadi data. DFD merupakan salah satu
sistem model yang paling umum digunakan, khususnya untuk sistem operasi
yang mana fungsi dari sistem tersebut adalah sangat penting dan lebih kompleks
dari data yang memanipulasi sistem.
55
Ada tiga tingkatan dalam DFD, yaitu :
1. Diagram Konteks
Merupakan tingkatan yang paling pertama yang menggambarkan ruang
lingkup sistem dari sistem yang digunakan. Diagram ini hanya memiliki satu
proses yang menggambarkan sistem secara keseluruhan dan hubungan antara
sistem dengan unit-unit yang diluar sistem tersebut.
2. Diagram Nol
Diagram yang menggambarkan proses-proses dan aliran data yang terjadi di
dalam suatu sistem. Proses-proses ini dapat dipecah menjadi proses-proses
dan aliran data yang lebih rinci.
3. Diagram Rinci
Diagram yang menggambarkan rincian proses-proses yang ada pada diagram
nol dan rincian proses-proses ini dapat dipecah lagi menjadi proses-proses
yang lebih terperinci.
Menurut Yourdon (1989, p141-152), diagram aliran data terdiri dari
simbol-simbol sebagai berikut:
a. Proses (bubble atau function atau transformation)
Proses yang menggambarkan bagian dari sistem yang mengolah masukan
menjadi keluaran. Proses digambarkan dengan sebuah lingkaran.
Gambar 2.5 Simbol Proses Dalam DFD
56
b. Aliran Data(data flow)
Aliran menggambarkan perpindahan informasi dari satu bagian ke bagian
yang lain dari sistem. Awal panah menggambarkan asal data, sedangkan arah
panah menggambarkan tujuan.
Gambar 2.6 Simbol Aliran Data Dalam DFD
c. Data Store
Simbol ini digunakan untuk menggambarkan penyimpanan data.
Gambar 2.7 Simbol Data Store Dalam DFD
d. Entiti Eksternal
Merupakan simbol yang menggambarkan entitas yang dapat berupa orang,
kelompok, atau organisasi yang berhubungan dengan sistem.
Gambar 2.8 Simbol Entiti Eksternal Dalam DFD
57
2.2.5
Structured Query Language (SQL)
2.2.5.1 Pengertian SQL
SQL singkatan dari Structured Query Language. Dalam bahasa Inggris
sering dibaca sebagai SEQUEL. Menurut Kadir (1999, p101), SQL merupakan
bahasa query standar yang digunakan untuk mengakses basis data relasional.
Standarisasi internasional terhadap SQL pertama kali dilakukan oleh ANSI
(American National Standards Intitution), melalui publikasi Database Language
SQL. Saat ini, ANSI dan ISO (International Standards Organization) merupakan
dua organisasi yang membuat standarisasi terhadap SQL.
SQL pertama kali diterapkan pada sistem R (sebuah proyek riset pada
laboratorium riset San Jose, IBM). Namun kini SQL juga dijumpai pada berbagai
platform, dari mikrokomputer 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.
2.2.5.2 SQL Sebagai SubBahasa
Penyebutan SQL sebagai bahasa query sebenarnya tidak tepat sebab
kemampuan SQL tidak terbatas hanya untuk query (memperoleh data), tetapi
juga mencakup kemampuan lain seperti :
•
Pendefinisian struktur data
•
Pengubahan data
•
Pengaturan sekuritas, dan lain-lain
58
Terkadang SQL dikatakan sebagai subbahasa data, bukan sebagai bahasa.
Adapun alasan SQL dikatakan sebagai subbahasa data adalah karena SQL tidak
mendukung persyaratan bahasa yang lengkap, sekalipun SQL dapat dipakai
untuk mengakses basis data. SQL tidak menyediakan hal-hal berikut :
•
Pernyataan penguji kondisi (semacam IF pada COBOL)
•
Pernyataan pengulangan atau iterasi (semacam REPEAT pada Pascal)
2.2.5.3 Antarmuka SQL Terhadap DBMS
Penggunaan SQL pada DBMS cukup luas. SQL dapat dipakai oleh
berbagai kalangan (DBA, pemrogram, ataupun pemakai).
•
SQL sebagai bahasa administrasi basis data
Dalam hal ini SQL dipakai oleh DBA untuk menciptakan serta
mengendalikan pengaksesan basis data.
•
SQL sebagai bahasa query interaktif
Pemakai dapat memberikan perintah-perintah untuk mengakses basis data
yang sesuai dengan kebutuhannya. Hal seperti ini sangat berguna untuk
memenuhi kebutuhan-kebutuhan yang bersifat seketika (hanya digunakan
saat itu saja).
•
SQL sebagai bahasa pemrograman basis data
Pemrogram dapat menggunakan perintah-perintah SQL dalam program
aplikasi yang dibuat, guna mengakses basis data.
59
•
SQL sebagai bahasa client/server
SQL juga dipakai sebagai untuk mengimplementasikan sistem klien/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 dapat berbeda. Sebagai contoh, server barang kali menggunakan UNIX
dan klien menggunakan Windows NT. Aplikasi pada klien bisa juga dibuat
dengan menggunakan perangkat lunak DBMS yang berbeda. Contoh yang
lain, klien menggunakan Visual FoxPro dan server menggunakan Informix
atau Oracle.
Gambar 2.9 Model Klien/Sever Dengan Berbagai DBMS
Di lingkungan PC, pengaksesan data antar DBMS yang berbeda dapat
dilakukan dengan mudah berkat adanya ODBC (Open Database Connectivity).
ODBC
merupakan
antarmuka
pemrograman
standar
industri
yang
memungkinkan aplikasi-aplikasi mengakses berbagai sistem manajemen basis
60
data
yang
berada
dalam
berbagai
platform.
ODBC
memungkinkan
ketidaktergantungan basis data melalui kaidah SQL yang standar. Perangkat
lunak ODBC tersusun oleh sejumlah komponen, yaitu lapisan aplikasi, manajer
pengendali (driver manager), pengendali yang spesifik terhadap basis data dan
sumber data.
2.2.5.4 Elemen SQL
Elemen dasar SQL mencakup pernyataan, nama, tipe data, konstanta,
ekspresi, dan fungsi bawaan.
a. Pernyataan
Pernyataan adalah perintah SQL yang meminta sesuatu tindakan
kepada DBMS. SQL kira-kira mempunyai 30 pernyataan.
b. Nama
Nama digunakan sebagai identitas bagi objek-objek pada DBMS.
Contoh objek pada DBMS adalah tabel, kolom, dan pengguna.
c. Tipe Data
Setiap data memiliki tipe data. Tipe data sendiri dapat dibedakan
menjadi dua, yaitu tipe data standar dan tipe data perluasan.
Dari tipe data standar terdapat tiga jenis, yaitu karakter (CHAR),
integer (INTEGER), dan numerik (NUMERIC). Sedangkan untuk tipe data
perluasan ada beberapa jenis, yaitu contohnya VARCHAR, MONEY,
BOOLEAN, BLOB, dan SERIAL atau AUTOINCREMENT.
61
d. Konstanta
Konstanta menyatakan nilai yang tetap (kebalikan dari konstanta
adalah variabel). Beberapa contoh konstanta :
•
Konstanta numerik : 123, -245, 5.45
•
Konstanta : ‘Jl. Sukapura 23’
•
Konstanta simbolik (konstanta yang tersedia pada SQL dan mempunyai
makna tersendiri) : SYSDATE (tanggal sistem), USER (nama pemakai
yang menjalankan SQL). Konstanta simbolik seringkali disebut variabel
sistem.
e. Ekspresi
Ekspresi adalah segala sesuatu yang menghasilkan nilai. Ekspresi
digunakan untuk menghitung nilai. Sebagai contoh :
(BIAYA KURSUS / GAJI INSTRUKTUR) * 100
merupakan ekspresi untuk membagi isi variabel BIAYA KURSUS
dengan GAJI INSTRUKTUR, dan kemudian dikalikan dengan 100.
f. Fungsi Bawaan
Fungsi adalah sebuah subprogram yang menghasilkan suatu nilai jika
dipanggil. SQL memiliki sejumlah fungsi bawaan (fungsi yang disedikan
oleh SQL). Sebagai contoh, terdapat fungsi bernama MIN yang berguna
untuk memperoleh nilai terkecil atau AVG untuk memperoleh nilai rata-rata.
62
2.2.5.5 Kelompok Pernyataan SQL
Menurut Kadir (1999, p106), pernyataan SQL dapat dikelompokkan
menjadi lima kelompok, yaitu DDL, DML, DCL, pengendali transaksi, dan
pengendali programatik.
a. DDL (Data Definition Language)
DDL
merupakan
kelompok
perintah
yang
berfungsi
untuk
mendefinisikan atribut-atribut basis data, tabel, atribut (kolom), batasanbatasan, terhadap suatu atribut, serta hubungan antar tabel. Yang termasuk
dalam kelompok DDL ini adalah CREATE, ALTER, dan DROP.
Perintah
Keterangan
CREATE
Menciptakan tabel, indeks, atau view
ALTER
Mengubah struktur tabel
DROP
Menghapus tabel, indeks, atau view
Tabel 2.5 Perintah Dalam Kategori DDL
b. DML (Data Manipulation Language)
DML adalah kelompok perintah yang berfungsi untuk memanipulasi
data dalam basis data. Misalnya untuk pengambilan, penyisipan, pengubahan,
dan penghapusan data. Perintah yang masuk kategori DML adalah :
63
Perintah
Keterangan
SELECT
Memilih data
INSERT
Menambah data
DELETE
Menghapus data
UPDATE
Mengubah data
Tabel 2.6 Perintah Dalam Kategori DML
c. DCL (Data Control Language)
DCL berisi perintah-perintah untuk mengendalikan pengaksesan data.
Pengendalian dapat dilakukan berdasarkan per pemakai, per tabel, per kolom,
maupun per operasi yang boleh dilakukan. Perintah-perintah yang termasuk
dalam DCL adalah sebagai berikut :
Perintah
Keterangan
GRANT
Memberikan kendali pengaksesan data
REVOKE
Mencabut kemampuan pengaksesan data
LOCK TABLE
Mengunci tabel
Tabel 2.7 Perintah Dalam Kategori DCL
d. Pengendali Transaksi
Pengendali transaksi adalah perintah-perintah yang berfungsi untuk
mengendalikan pengeksekusian transaksi. Printah-perintah yang termasuk
dalam kategori ini adalah :
64
Perintah
COMMIT
Keterangan
Menyetujui rangkaian perintah yang berhubungan
erat (disebut transaksi) yang telah berhasil dilakukan.
ROLLBACK
Membatalkan transaksi yang dilakukan karena adanya
kesalahan atau kegagalan pada salah satu rangkaian
perintah.
Tabel 2.8 Perintah Dalam Kategori Pengendali Transaksi
e. Pengendali Programatik
Pengendali programatik mencakup pernyataan-pernyataan yang
berhubungan dengan pemanfaatan SQL dalam bahasa lain (SQL yang
dilekatkan).
Pernyataan-pernyataan
ini
biasa
dipakai
dalam
bahasa
konvensional (3-GL), seperti COBOL. Yang termasuk dalam pengendali
programatik adalah : DECLARE, OPEN, FETCH, dan CLOSE.
Perintah
Keterangan
CLOSE
Menutup kursor (pointer yang menunjuk ke tabel)
DECLARE
Mendeklarasikan kursor
FETCH
Mengambil nilai baris berikutnya
OPEN
Untuk membuka kursor
Tabel 2.9 Perintah Dalam Kategori Pengendali Programatik
65
2.2.6
Model Relasional
Menurut Kadir (1999, p25), model relasional merupakan model yang
paling sederhana sehingga mudah digunakan dan dipahami oleh pemakai, serta
merupakan yang paling populer saat ini. Model ini menggunakan sekumpulan
tabel berdimensi dua (yang disebut relasi atau tabel), dengan masing-masing
relasi tersusun atas tupel atau baris dan atribut. Relasi dirancang sedemikian rupa
sehingga dapat menghilangkan kemubaziran data dan menggunakan kunci tamu
(foreign key) untuk berhubungan dengan relasi lain.
Sedangkan menurut Subekti (2004, p31), dalam model basis data
relasional maka data diorganisir dalam bentuk tabel-tabel dua dimensi (seperti
halnya bentuk konvensional dari file sequential). Organisasi data dalam bentuk
tabel atau disebut juga dengan relation, terdiri atas baris (row / tuple) yang
merepresentasikan record dan kolom (column) yang merepresentasikan atribut
(field).
Berbagai keuntungan yang dimiliki oleh basis data relasional yaitu antara
lain :
•
Bentuknya sederhana sehingga mudah dimengerti (representasi tabel).
•
Bentuknya alami (natural) sehingga mudah bagi pemakai melakukan
berbagai operasi data (insert, update, delete).
66
2.2.7
Kunci Relasional
Menurut Connoly (2002, p78), dalam suatu relasi atau hubungan tidak
ada
salinan
tupel,
oleh
karena
itu
diperlukan
kemampuan
untuk
mengidentifikasikan satu atau lebih atribut (disebut dengan kunci relasi) yang
mengidentifikasikan masing-masing tupel secara unik dalam suatu relasi.
Macam-macam kunci relasi tersebut adalah :
•
Superkey
Merupakan suatu atribut atau sekumpulan atribut yang mengidentifikasikan
tupel secara unik dalam suatu relasi.
•
Kunci Komposit (Composite Key)
Kunci komposit adalah kunci yang disusun berdasarkan lebih dari satu
atribut.
•
Kunci Kandidat (Candidate Key)
Kunci kandidat adalah satu atribut atau satu set minimal atribut yang
mengidentifikasikan secara unik suatu kejadian spesifik dari entiti.
•
Kunci Primer (Primary Key)
Merupakan kunci kandidat yang dipilih untuk mengidentifikasikan tupel
secara unik dalam suatu relasi.
•
Kunci Alternatif (Alternate Key)
Merupakan kunci kandidat yang tidak dipakai sebagai kunci primer.
•
Kunci Tamu (Foreign Key)
Merupakan suatu atribut atau sekumpulan atribut dalam satu relasi yang
melengkapi kunci kandidat beberapa relasi.
67
2.2.8
Struktur Data Relasional
Menurut Connoly (2002, p72), suatu struktur data relasional terdiri dari
beberapa macam, yaitu :
•
Relation (Relasi)
Suatu relasi adalah sebuah tabel dengan kolom-kolom dan baris-baris.
•
Attribute (Atribut)
Suatu atribut merupakan nama kolom dari suatu relasi.
•
Domain
Suatu domain merupakan sekumpulan nilai-nilai yang diperbolehkan bagi
satu atau lebih atribut.
•
Tuple (Tupel)
Tupel adalah sebuah baris dalam suatu relasi.
•
Degree (Derajat)
Derajat dalam suatu relasi merupakan sejumlah atribut yang terkandung di
dalamnya.
•
Cardinality (kardinalitas)
Kardinalitas dari suatu relasi merupakan sejumlah tupel yang terkandung di
dalamnya.
•
Relational Database (Relasi Basis Data)
Suatu koleksi dari relasi normalisasi dengan nama-nama relasi yang jelas.
68
2.2.9
Disk Space Requirement
Menurut Elmasri dan Navathe (2000, p131), perhitungan untuk
kebutuhan disk space dapat menggunakan rumus-rumus sebagai berikut :
B
bfr = ──
R
r
b = ──
bfr
Keterangan :
B
= Block (1024 Byte)
R
= Record Length
r
= Record Number
bfr
= Banyaknya record per Block
b
= Banyaknya Block per tabel
Download