Peran basis data sangatlah menonjol sekali. Pemrosesan data menjadi andalan yang
kehadirannya sangat diperlukan oleh berbagai institusi dan perusahaan. Basis data tidak
hanya akan mempercepat pencarian dan pelacakan data dan informasi saja, tetapi juga
dapat meningkatkan pelayanan kepada banyak orang dan publik. Hal inilah yang menjadi
alasan kenapa saat ini banyak perusahaan yang mulai beralih menggunakan komputer untuk
pemrosesan datanya.
Sejarah perkembangan basis data terbentuk setelah masa sistem pemrosesan manual
dan sistem pemrosesan berkas. Sistem pemrosesan kertas atau manual merupakan bentuk
pemrosesan yang menggunakan dasar berupa setumpuk rekaman yang disimpan dalam rak
berkas. Jika berkas diperlukan maka berkas tersebut akan dicari pada rak. Sistem seperti ini
masih banyak dijumpai dalam kehidupan sehari-hari. Bentuk nyata adalah sebuah katalog
buku telepon saku maupun buku telepon yellow pages dimana orang akan mudah mencari
nama
orang
dengan
menggunakan
indeks
alphabetik
walaupun
kadang
juga
membingungkan karena susah untuk mencari dengan index nama atau nomor telepon. Pada
saat awal penerapan sistem komputer, sekelompok rekaman disimpan pada sejumlah berkas
secara terpisah, dimana sistem ini akan sangat jauh berbeda dengan menggunakan sistem
manual terutama dari sisi akurasi dan kecepatan.
Basis Data (Database) dapat dibayangkan sebagai sebuah lemari arsip. Jika kita
memiliki sebuah lemari arsip dan berwenang untuk mengelolanya, maka kemungkinan
besar kita akan melakukan hal-hal seperti memberi sampul atau map pada kumpulan atau
bundel arsip yang akan disimpan, menentukan kelompok jenis arsip, memberi penomoran
dengan pola tertentu yang nilainya unik pada setiap sampul atau map, lalu menempatkan
arsip-arsip tersebut dengan cara urutan tertentu didalam lemari. Kalaupun hal-hal tersebut
tidak seluruhnya dilakukan, paling tidak semua lemari arsip menerapkan suatu aturan dan
cara tertentu tentang bagaimana keseluruhan arsip-arsip tadi ditempatkan dan disusun. Yang
paling sederhana adalah tentu menyusun dan menempatkan arsip-arsip tadi sesuai
kedatangan atau kronologisnya dan tanpa pengelompokan, hampir tidak akan pernah kita
jumpai adanya lemari arsip yang tidak memiliki aturan dan cara dalam penyusunan
penempatan arsip-arsip di dalamnya.
Bahkan untuk sebuah lemari buku atau baju pun, secara alamiah kita seringkali
menerapkan suatu cara atau aturan tertentu dalam menyusun dan menempatkan buku - buku
atau baju - baju itu didalam sebuah lemari. Upaya penyusunan dan penempatan ini memang
baru kita lakukan jika kita rasakan, bahwa buku atau baju tersebut sudah cukup banyak.
Mengapa hal-hal itu kita lakukan ? Jawabannya yaitu kita berharap agar pada suatu saat
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
nanti, sewaktu kita bermaksud untuk mencari dan mengambil kembali arsip, buku atau baju
dari lemari kita dapat melakukannya dengan mudah dan cepat.
DEFINISI
Istilah basis data banyak menimbulkan interpretasi yang berbeda. Pada saat maraknya paket
pemrograman dbase sebuah berkas dengan ekstensi *.DBF biasa disebut basis data.
Ungkapan ini sebenarnya benar tapi salah. Orang umum menyebutnya salah kaprah. Karena
sebenarnya *.DBF adalah objek data dan bukan basis data. Suatu Database Manajemen
System (DBMS) akan berisi satu koleksi data yang akan saling berelasi dan 1 set program
untuk mengakses data yang sudah diciptakan. Jadi sebenarnya DBMS terdiri dari database
dan set program pengelola untuk memproses data. Sebelum membahas basis data lebih
lanjut maka akan lebih baik jika istilah data dan informasi dibahas terlebih dahulu.
Basis Data terdiri atas 2 kata, yaitu Basis dan Data. Basis kurang lebih dapat
diartikan sebagai markas atau gudang, tempat bersarang dan berkumpul. Sedangkan Data
adalah fakta yang terungkap atau representasi fakta dunia nyata yang mewakili suatu objek
seperti manusia (pegawai, siswa, pembeli, pelanggan, barang, hewan, peristiwa, konsep,
keadaan dan sebagainya yang direkam dalam bentuk angka, huruf, simbol, teks, gambar,
bunyi atau kombinasinya. Basis Data sendiri dapat didefinisikan dalam sejumlah sudut
pandang, seperti :
Kumpulan file, tabel, arsip yang saling berhubungan yang disimpan dalam media
penyimpanan elektronis.
Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian
rupa dan tanpa pengulangan (redundansi) yang tidak perlu untuk memenuhi berbagai
kebutuhan.
Dalam sebuah berkas data akan terdapat rekaman-rekaman yang sejenis, sama besar, sama
bentuk dan merupakan kumpulan entity yang seragam. Dalam sebuah rekaman (record)
akan terdiri dari field-field atau medan yang saling berhubungan untuk menunjukkan bahwa
medan tersebut berada dalam satu pengertian yang lengkap dan direkam dalam sebuah
rekaman.
Basis Data dan lemari arsip sesungguhnya memiliki prinsip kerja dan tujuan yang sama.
Prinsip utamanya adalah pengaturan data dan arsip. Tujuan utamanya adalah kemudahan
dan kecepatan dalam pengambilan kembali data atau arsip. Perbedaannya hanya terletak
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
pada media penyimpanan yang digunakan. Jika lemari arsip menggunakan lemari dari besi
atau kayu sebagai media penyimpanan, maka basis data menggunakan media penyimpanan
elektronis seperti disk (disket atau harddisk). Hal ini merupakan konsekuensi yang logis,
karena lemari arsip langsung dikelola dan ditangani oleh manusia, sementara basis data
dikelola dan ditangani melalui perantaraan alat mesin pintar elektronis yang kita kenal
sebagai komputer. Perbedaan media ini yang selanjutnya melahirkan perbedaan - perbedaan
lain yang menyangkut jumlah dan jenis metoda atau cara yang dapat digunakan dalam
upaya penyimpanan.
Satu hal yang juga harus diperhatikan bahwa basis data bukan hanya sekedar
penyimpanan data secara elektronis dengan bantuan komputer. Artinya tidak semua bentuk
penyimpanan data secara elektronis bisa disebut basis data. Kita dapat menyimpan
dokumen berisi data dalam file teks dengan program pengolah kata, file spread sheet dan
lain-lain, tetapi tidak bisa disebut sebagai basis data. Karena didalamnya tidak ada
pemilahan dan pengelompokkan data sesuai jenis dan fungsi data, sehingga akan
menyulitkan pencarian data kelak. Yang sangat ditonjolkan dalam basis data adalah
pengaturan, pemilahan, pengelompokkan, pengorganisasian data yang akan kita
simpan sesuai fungsi dan jenisnya. Pemilahan, pengelompokan, pengorganisasian ini dapat
berbentuk sejumlah file atau tabel terpisah atau dalam bentuk pendefinisian kolom-kolom
field-field data dalam setiap file dan tabel.
HERARKI DATA
Secara tradisional data diorganisasikan kedalam suatu herarki yang terdiri atas elemen data,
rekaman dan berkas.
Entity. Adalah orang tempat kejadian atau konsep yang informasinya direkam. Pada
bidang administrasi mahasiswa misalnya, entity adalah mahasiswa, buku pembayaran
dan nilai ujian. Pada bidang kesehatan entity adalah pasien, dokter, obat, kamar dan
diet.
Atribute / elemen data. Setiap entity mempunyai atribut atau sebutan untuk mewakili
suatu entity. Seorang mahasiswa dapat dilihat atributnya, misalnya nama, NIM, alamat,
nama orang tua, agama dan jenis kelamin. Atribut juga disebut sebagai data elemen,
data field, item data atau medan.
Data value atau isi. Adalah data aktual atau informasi yang disimpan pada tiap elemen
data atau atribut. Atribut nama karyawan akan menunjukkan tempat dimana informasi
nama karyawan disimpan, sedangkan data value adalah bejo, mitro yang merupakan isi
dari data nama karyawan tersebut.
Record / Tuple / Rekaman / baris. Adalah gabungan dan kumpulan sejumlah elemen elemen data yang saling berkaitan menginformasikan tentang entity secara lengkap.
Satu record akan mewakili satu data atau informasi yang mewakili tentang seseorang
atau objek lain misalnya NIM, Nama, Alamat, Nomor telepon, email dan sebagainya.
File / berkas. Adalah kumpulan rekaman data yang berkaitan dengan subjek data.
KEGUNAAN DATABASE / SYARAT DATABASE
Penyusunan suatu basis data digunakan untuk mengatasi berbagai masalah pada
penyusunan data, yaitu redundansi dan inkonsistensi data, kesulitan pengaksesan data,
isolasi data untuk standarisasi, multipel user atau banyak pemakai, masalah keamanan,
masalah kesatuan dan masalah kebebasan data.
1. Redundansi dan Inkonsistensi Data
Jika berkas-berkas dan program aplikasi diciptakan oleh seorang programmer yang berbeda
pada waktu yang berselang cukup panjang, maka ada beberapa bagian data akan mengalami
penggandaan pada berkas-berkas yang berbeda pula. Sebagai contoh adalah alamat dan
nomor telepon pelanggan kita tercatat pada berkas deposito juga pada berkas rekening
koran dan juga berkas nasabah. Penyimpanan dibeberapa lokasi untuk data yang sama ini
disebut sebagai redundansi dan mengakibatkan pemborosan ruang penyimpanan dan juga
biaya untuk mengakses menjadi lebih tinggi.
Penyimpanan data yang sama berulang - ulang dibeberapa berkas dapat
mengakibatkan juga inkonsistensi atau tidak konsisten. Hal ini terjadi jika suatu ketika
seorang pelanggan pindah alamat atau nomor telepon, maka seharusnya ketiga berkas yang
memuat data tersebut harus diubah juga. Jika salah satu saja dari berkas yang mengandung
data tersebut terlewat diupdate maka terjadilah tidak konsisten lagi.
2. Kesulitan dalam Pengaksesan Data
Pada suatu saat akan dibutuhkan untuk mencetak data siapa saja pelanggan yang berada
dikode pos 55122 Yogyakarta, padahal belum tersedia program yang telah ditulis untuk
menampilkan data tersebut. Maka kesulitan akan timbul dan penyelesaiannya untuk itu
adalah kearah DBMS yang mampu mengambil data secara langsung dengan bahasa yang
familier dan mudah digunakan.
3. Isolasi Data Untuk Standarisasi
Jika data tersebar dalam beberapa berkas dalam bentuk format yang berbeda, maka akan
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
menyulitkan dalam menulis program aplikasi untuk mengambil dan menyimpan data. Maka
data dalam satu database harus dibuat 1 format sehingga mudah dibuat program
aplikasinya. Dapat dibayangkan betapa sulitnya membuat program aplikasi jika data dibuat
dari format teks berkas Pascal, Basic. C++ dan juga format dari versi Lotus 123.
4. Multiple User atau Banyak Pemakai
Dalam rangka mempercepat semua daya guna sistem dan mendapat responsi waktu yang
cepat, beberapa sistem mengijinkan banyak pemakai untuk mengupdate data secara
simultan. Salah satu alasan mengapa database dibangun adalah karena nantinya data
tersebut akan digunakan oleh banyak orang dalam waktu yang berbeda, diakses oleh
program yang sama tapi berbeda orang dan waktu. Semua ini akan memungkinkan untuk
terjadi karena data yang diolah tidak tergantung dan menyatu dalam program tapi ia
terlepas dalam satu kelompok data.
5. Masalah Keamanan
Tidak setiap pemakai sistem database diperkenankan untuk mengakses semua data.
Misalkan data mengenai gaji pegawai hanya boleh diakses bagian keuangan dan personalia
dan tidak diperkenankan bagian gudang membaca dan mengubahnya. Keamanan ini dapat
diatur lewat program yang dibuat oleh pemrogram atau fasilitas keamanan sistem operasi.
6. Masalah Integritas atau Kesatuan
Database berisi berkas yang saling berkaitan, masalah utamanya adalah bagaimana kaitan
antara berkas yang ada. Meskipun diketahui bahwa berkas A berkaitan dengan berkas B,
tetapi secara teknis maka ada medan kunci yang akan mengaitkan kedua berkas tersebut.
7. Masalah Data Independence (Kebebasan Data)
Pada suatu aplikasi yang dibuat dengan bahasa pemrograman Basic misalnya, jika program
telah dibuat untuk menyelesaikan masalah pembacaan data untuk berkas pelanggan dengan
berkas No, Nama, Alamat, maka setelah program jadi dan terdapat perubahan struktur
berkas pelanggan maka program tersebut harus diubah. Hal ini disebut bahwa program
yang telah dibuat tidak bebas terhadap database.
Berlainan dengan paket bahasa yang diciptakan dari DBMS, apapun yang terjadi
pada struktur berkas, setiap kali hendak dilihat data maka cukup dengan utility LIST,
hendak menambah data cukup dengan APPEND. Ini berarti perintah dalam paket DBMS
bebas terhadap database. Apapun perubahan dalam database semua perintah akan
mengalami kestabilan tanpa perlu ada yang diubah. Akan tetapi juga perlu dipikirkan
bagaimana jika ada syarat terhadap database yang ada. Misalnya saja syarat pengambilan
uang tabungan bank adalah harus disisakan minimal Rp 25.000. Syarat ini tentu akan
dimasukkan kedalam aplikasi program yang dibangun. Tetapi bagaimana halnya jika suatu
ketika syarat itu telah bergeser dari syarat Rp 25.000 menjadi Rp Rp 50.000. Disini
program aplikasi yang telah dibangun harus diubah dan ini menunjukkan ketidakbebasan
program yang dibuat terhadap basis data.
OPERASI DASAR BASIS DATA
Di dalam sebuah disk, basis data dapat diciptakan dan dapat pula ditiadakan. Di dalam
sebuah disk kita dapat pula menempatkan beberapa atau lebih dari satu basis data.
Sementara dalam sebuah basis data, kita dapat menempatkan satu atau lebih file atau tabel.
Pada file atau tabel inilah sesungguhnya data disimpan dan ditempatkan. Setiap basis data
umumnya dibuat untuk mewakili sebuah semesta data yang spesifik. Misalnya, ada basis
data kepegawaian, basis data akademik, basis data inventori atau pergudangan dan
sebagainya. Sementara dalam basis data akademik, misalnya kita dapat menempatkan file
mahasiswa, file mata-kuliah, file dosen, file jadwal, file kehadiran, file nilai dan seterusnya.
Karena itu operasi-operasi dasar yang dapat kita lakukan berkenaan dengan basis data dapat
meliputi :
Pembuatan basis data baru (create database), yang identik dengan pembuatan lemari
arsip yang baru.
Penghapusan basis data (drop database), yang identik dengan perusakan lemari arsip
(sekaligus beserta isinya jika ada).
Penghapusan file tabel dari suatu basis data (drop table), yang identik dengan perusakan
map arsip lama yang ada di sebuah lemari arsip.
Pembuatan file tabel baru ke suatu basis data (create table), yang identik dengan
penambahan map arsip baru ke sebuah lemari arsip yang telah ada.
Penambahan atau pengisian data baru ke sebuah file atau tabel disebuah basis data
(insert), yang identik dengan penambahan lembaran arsip ke sebuah map arsip,
Pengambilan data dari sebuah file atau tabel (retrieve/search), yang identik dengan
pencarian lembaran arsip dari sebuah map arsip.
Pengubahan data dari sebuah file/tabel (update), yang identik dengan perbaikan isi
lembaran arsip yang ada di sebuah map arsip.
Penghapusan data dari sebuah file/tabel (delete), yang identik dengan penghapusan
sebuah lembaran arsip yang ada di sebuah map arsip.
Operasi yang berkenaan dengan pembuatan objek yaitu basis data dan tabel merupakan
operasi awal yang hanya dilakukan sekali dan berlaku seterusnya. Sedang operasi-operasi
yang berkaitan dengan isi tabel yaitu data merupakan operasi rutin yang akan berlangsung
berulang-ulang dan karena itu operasi inilah yang lebih tepat mewakili aktivitas
pengelolaan (management) dan pengolahan (processing) data dalam basis data.
OBJEKTIF BASIS DATA
Tujuan awal dan utama dalam pengelolaan data dalam sebuah basis data adalah agar dapat
memperoleh dan menemukan kembali data yang kita cari dengan mudah dan cepat.
Disamping itu pemanfaatan basis data untuk pengelolaan data juga memiliki tujuan-tujuan
lain. Secara lebih lengkap, pemanfaatan basis data dilakukan untuk memenuhi sejumlah
tujuan atau objektifitas seperti berikut :
Efisiensi Ruang Penyimpanan (Space). Karena keterkaitan yang erat antar kelompok
data dalam sebuah basis data, maka redundansi (pengulangan) data pasti akan selalu
ada. Banyaknya redundansi ini tentu akan memperbesar ruang penyimpanan baik
dimemori utama maupun sekunder yang harus disediakan. Dengan basis data, efisiensi
dan optimalisasi penggunaan ruang penyimpanan dapat dilakukan, karena dapat
melakukan penekanan jumlah redundansi data, baik dengan menerapkan sejumlah
pengkodean atau dengan relasi dalam file antar kelompok data yang saling
berhubungan.
Ketersediaan (Availability). Pertumbuhan data baik dari sisi jumlah maupun jenisnya
sejalan dengan waktu akan semakin membutuhkan ruang penyimpanan yang besar.
Padahal tidak semua data itu selalu digunakan dan butuhkan. Karena itu maka dapat
dipilah adanya data utama atau master atau referensi data transaksi, data histori hingga
data kadaluarsa. Data yang sudah jarang atau bahkan tidak pernah lagi digunakan dapat
diatur untuk dilepaskan dari sistem basis data yang sedang aktif (menjadi off-line) baik
dengan cara penghapusan atau dengan memindahkannya ke media penyimpanan offline (seperti removable disk atau tape). Di sisi lain, karena kepentingan pemakaian data,
sebuah basis data dapat memiliki data yang disebar di banyak lokasi geografis. Data
nasabah sebuah bank misalnya, dipisah-pisah dan disimpan dilokasi yang sesuai dengan
keberadaan nasabah. Dengan pemanfaatan teknologi jaringan komputer, data yang
berada di suatu lokasi atau cabang, dapat juga diakses menjadi tersedia dan available
bagi lokasi atau cabang lain.
Kelengkapan (Completeness). Lengkap tidaknya data yang kita kelola dalam sebuah
basis data bersifat relatif baik terhadap kebutuhan pemakai maupun terhadap waktu.
Bila seorang pemakai sudah menganggap bahwa data yang dipelihara sudah lengkap,
maka pemakai yang lain belum tentu berpendapat sama. Atau yang sekarang dianggap
sudah lengkap belum tentu dimasa yang akan datang juga demikian. Dalam sebuah
basis data, disamping data kita juga harus menyimpan struktur, baik yang
mendefinisikan objek-objek dalam basis data maupun definisi detail dari tiap objek,
seperti struktur file atau tabel dan indeks. Untuk mengakomodasi kebutuhan
kelengkapan data yang semakin berkembang, maka kita tidak hanya dapat menambah
record-record data, tetapi juga dapat melakukan perubahan struktur dalam basis data,
baik dalam bentuk penambahan objek baru (tabel) atau dengan penambahan field-field
baru pada suatu tabel.
Keamanan (Security). Memang ada sejumlah sistem aplikasi pengelola basisdata yang
tidak menerapkan aspek keamanan dalam penggunaan basisdata. Tetapi untuk sistem
yang besar dan serius, aspek keamanan dapat diterapkan dengan ketat. Dengan begitu
kita dapat menentukan pemakai yang boleh menggunakan basisdata beserta objek-objek
didalamnya dan menentukan jenis-jenis operasi apa saja yang boleh dilakukannya.
Perbankan, dalam melakukan pengelolaan data nasabah, data tabungan, data pinjaman,
pembuatan laporan-laporan akuntansi, pelayanan informasi pada nasabah / calon
nasabah dan lain-lain.
Komputer, 1 untuk sistem yang stand-alone atau lebih dari satu untuk sistem jaringan.
10
Memori sekunder yang off-line (Tape atau Removable Disk) untuk keperluan backup.
11
Pengguna interaktif. Adalah orang yang dapat memberikan perintah beraras tinggi
pada antarmuka basis data yang tersedia.
Pengguna Umum (End User/Naive User). Pemakai yang berinteraksi dengan sistem
basis data melalui pemanggilan satu program aplikasi permanen (executable
program) yang telah ditulis atau disediakan sebelumnya.
b. Pemrogram Aplikasi
Adalah orang yang membuat program aplikasi yang menggunakan basis data. Program
aplikasi yang dibuat tentu saja disesuaikan dengan kiebutuhan pengguna akhir.
c. Administrator Basis Data / Database Administrator
Setiap pengguna akan diberikan hak akses data secara tersendiri. Tidak semua pengguna
dapat menggunakan data yang sifatnya sangat sensitif. Penentuan hak akses disesuaikan
dengan wewenang pengguna dalam organisasi. DBA adalah orang yang bertanggung jawab
terhadap pengelolaan basis data, tugasnya adalah :
a. Mendefinisikan pola struktur basis data. Merencanakan dan merancang basis data.
b. Menentukan keamanan basis data. Berhubungan dengan keamanan sistem secara
keseluruhan.
c. Mendefinisikan struktur penyimpanan dan metode akses
d. Memodifikasi pola dan organisasi fisik
e. Memberikan hak akses kepada user
f. Memantau kinerja sistem
Secara periodik DBA memantau kinerja DBMS. Termasuk pemantauan waktu
tanggapan selama beban puncak. Informasi yang diperoleh dapat digunakan untuk
menentukan pengembangan sistem, baik software, hardware mapupun struktur data.
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
12
13
bagaimana data disimpan dan dipelihara. Namun demikian tentu saja hal ini dilakukan
dengan sedapat mungkin mengusahakan data agar dapat diakses secara efisien. Fungsi
utama sistem basisdata adalah agar pemakai mampu menyusun suatu pandangan abstraksi
data. Bayangan mengenai data tidak memperhatikan kondisi sesungguhnya bagaimana
suatu data masuk ke database, disimpan dalam disk, disektor mana, tetapi menyangkut
secara menyeluruh bagaiman data yang ada tersebut diabstraksikan atau digambarkan
menyerupai kondisi yang dihadapi oleh pemakai setiap harinya. Sistem yang sesungguhnya
tentang teknis bagaimana data disimpan dan dipelihara seakan disembunyikan
kerumitannya dan kemudian diungkapkan dalam bahasa dan gambar yang mudah
dimengerti oleh orang awam. Abstraksi data merupakan tingkatan level dalam melihat data
dalam sebuah sistem basis data.
Ada 3 level abstraksi data:
1. Level Fisik (Physical Level). Merupakan level terendah dalam abstraksi data, yang
menunjukkan bagaimana sesungguhnya suatu data disimpan. Pada level ini, pemakai
melihat data sebagai gabungan dari struktur dan datanya sendiri. User juga berkompeten
mengetahui bagaimana representasi fisik dari penyimpanan atau pengorganisasian data.
Pada level ini kita berurusan dengan data sebagai teks, angka atau bahkan melihatnya
sebagai himpunan bit data.
2. Level Logika / Konseptual (Conceptual Level). Merupakan level berikutnya dalam
abstraksi data yang menggambarkan data apa yang sebenarnya secara fungsional
disimpan dalam basis data dan hubungannya dengan data yang lain. Pemakai pada level
ini misalnya, mengetahui bahwa data pegawai disimpan atau direpresentasikan dalam
beberapa file atau tabel, seperti file pribadi, file pendidikan, file pekerjaan, file keluarga
dan sebagainya.
3. Level Penampakan (View Level). Merupakan level tertinggi dari abstraksi data yang
hanya menunjukkan sebagian dari basis data. Banyak user dalam sistem basis data tidak
akan terlibat (concern) dengan semua data dan informasi yang ada dan disimpan. Para
user umumnya hanya membutuhkan sebagian data atau informasi dalam basis data yang
kemunculannya dimata pemakai diatur oleh aplikasi end-user. Aplikasi ini juga yang
mengkonversi data asli atau fisik menjadi data bermakna logika pada pemakai.
Misalnya, data hari yang disimpan dalam bentuk kode, msialnya 1 untuk Senin, 2 untuk
Selasa dan seterusnya yang kemudian ditampilkan bukan dalam bentuk kodenya 1,2,3
dan seterusnya tapi sudah dalam bentuk nama harinya, yaitu Senin, Selasa, Rabu dan
seterusnya. Data yang dinikmati pemakai juga bahkan sama sekali berbeda dengan
representasi fisiknya, misalnya untuk data yang dapat divisualkan sebagai gambar, data
14
yang dapat diperdengarkan sebagai suara dan sebagainya. Data yang diperlihatkan juga
bisa saja tidak berasal dari hanya sebuah tabel tapi mewakili relasi antar tabel, tapi bagi
pemakai yang menggunakannya terasa sebagai satu kesatuan data yang kompak.
BAHASA BASIS DATA (DATABASE LANGUAGE)
DBMS merupakan perantara bagi pemakai dengan basis data dalam cara berinteraksi
berkomunikasi antara pemakai dengan basis data tersebut diatur dalam suatu bahasa khusus
yang ditetapkan perusahaan pembuat DBMS. Bahasa itu dapat kita sebut sebagai Basis
Data yang terdiri atas sejumlah perintah (statement) diforrnulasikan dan dapat diberikan
user dan dikenali atau diproses oleh DBMS untuk melakukan suatu aksi pekerjaan tertentu.
Contoh-contoh bahasa basis data adalah SQL, dbase, QUEL dan sebagainya. Sebuah
Bahasa Basis Data biasanya dapat dipilah ke dalam 2 bentuk yaitu :
Query
15
File Manager, yang mengelola alokasi ruang dalam disk dan struktur data yang dipakai
untuk merepresentasikan informasi yang tersimpan dalam disk. Sebenarnya Sistem
Operasi tempat di mana DBMS diaktifkan juga memiliki modul File Manager. Tetapi
File Manager di DBMS lebih difokuskan pada efisiensi dan efektivitas penyimpanan.
Database Manager, yang menyediakan interface antara data low-level yang ada di
basis data dengan program aplikasi dan query yang diberikan ke sistem.
DML Precompiler, yang mengkonversi perintah DML yang ditambahkan dalam sebuah
program aplikasi ke pemanggilan proses normal dalam bahasa induk. Precompiler ini
akan berinteraksi dengan query processor
DDL Compiler, yang mengkonversi perintah DDL ke dalam sekumpulan tabel yang
16
17
Nama
Sandra
Dewa
Rama
KodeMK
AG
PDE
AG
PDE
AG
PDE
KodeMK
BD
PDE
AG
Nama
Basis Data
Pengolahan Data Elektronik
Pendidikan Agama
Nilai
A
B
A
B
A
B
18
Relasional. Model basis data ini diperkenalkan pertama kali oleh E.F Codd. Model Basis
Data menunjukkan suatu cara atau mekanisme yang digunakan untuk mengelola atau
mengorganisasi data secara fisik dalam memori sekunder yang akan berdampak pula
bagaimana kita mengelompokkan dan membentuk keseluruhan data terkait dalam sistem
yang sedang kita tinjau. Hingga saat ini, model basis data yang paling banyak digunakan
adalah Model Basis Data Relasional. Tentu saja ada model basis data yang lain, seperti
Model Basis Data Hirarki dan Basis Data Jaringan (Network). Kemudahan dalam
penerapan dan kemampuannya dalam mengakomodasi berbagai kebutuhan pengelolaan
basis data yang ada didunia (real world) merupakan alasan mengapa model ini lebih
populer diterapkan. Kemudahan merupakan sesuatu yang penting, karena disamping aspek
pemodelan yang digunakan, dalam lingkup pengelolaan basisdata yang juga menuntut
perhatian serius dari siapa saja yang berkecimpung dalam kegiatan itu.
Definisi Basis Data Relasional
Pada Model Relasional, basis data akan 'disebar' atau dipilah-pilah kedalam berbagai tabel
2 dimensi. Setiap tabel selalu terdiri atas lajur yang disebut dengan Baris Data
(Row/Record) dan lajur vertikal biasa disebut dengan Kolom (Column/Field). Di setiap
pertemuan Data dan Kolom itulah, item-item data satuan data terkecil ditempatkan. Dalam
kehidupan kita sehari-hari, Tabel merupakan bentuk n (alamiah) dalam menyatakan fakta /
data yang sering kita gunakan. Itulah sebabnya, model ini lebih mudah kita terapkan
ketimbang model data yang lain. Sebagaimana yang telah disebutkan, menerapkan sebuah
basis data yang terdiri atas sejumlah tabel saling berhubungan maka kita membutuhkan
sebuah perangkat lunak (software) yang memang dikhususkan untuk itu. Perangkat lunak
umum disebut Sistem Pengelola Basis Data (Database Manage SystenzIDBMS).
Keseluruhan contoh DBMS yang disebutkan tersebut, seperti dbase III+, MS-Access,
Borland Paradox hingga Oracle merupakan DBMS yang diperuntukkan untuk mengakses
basis data. Prinsip perangkat lunak tersebut hampir sama. Perbedaannya terletak pada
teknis pemakaian dan kelengkapan fungsi (feature) yang dimiliki masing-masing perangkat
lunak. Agar dapat memberi pemahaman yang lebih baik dan nyata.
Basis Data MDK
Untuk mengilustrasikan Model Data Relasional secara lebih nyata, kita ambil sebuah
contoh basis data sederhana yang berkaitan dengan pendidikan akademik perguruan tinggi.
Basis Data ini terdiri atas tiga buah Tabel yaitu Mahasiswa, Dosen dan Kuliah kita singkat
saja dengan MDK. Yang kita ketahui, data itu sudah tersedia dalam bentuk cetakan /
19
hardcopy dan siap diimplementasikan. Sebelum penerapan basis data dapat dilakukan
dengan menggunakan salah satu perangkat lunak DBMS yang ada, maka lebih dahulu harus
diketahui contoh data yang akan digunakan. Contoh data ini harus dianalisis untuk
mengetahui karakteristik setiap tabel data. Pengetahuan tentang karakteristik ini penting,
karena hal itu akan dijadikan dasar untuk penetapan struktur setiap tabel. Di dalam
penerapan basis data, penetapan struktur tersebut harus dilakukan sebelum penyimpanan
datanya dapat dilakukan. Berikut adalah contoh data yang akan kita gunakan tentu saja data
yang ada dalam contoh ini tidak menggambarkan kenyataan yang sesungguhnya, tetapi itu
dirasa cukup sebagai bahan untuk pembahasan berikutnya:
Data Mahasiswa dengan isi sebagai berikut:
NIM
J.990001
J.990002
J.990003
Nama
DEDY ARYANTO
RIRIN KURNIAWATI
SIGIT HERMANTO
Kota
Solo
Yogyakarta
Semarang
Telepon
25189
25117
519858
EMail
dedy@unsa.ac.id
ririn@unsa.ac.id
sigit@unsa.ac.id
Dengan data ini dapat kita ketahui hal-hal karakteristik sebagal berikut:
Kolom pertama berisi data angka tetapi tidak menunjukkan suatu jumlah disebut alfa numerik dengan
lebar (banyaknya karakter) tetap, yaitu 8 karakter/digit.
Kolom kedua berisi data karakter/string dengan lebar maksimum 30 karakter. Angka 30 ini merupakan
perkiraan bahwa untuk nama mahasiswa yang sudah ada dan nama mahasiswa lain menyusul untuk
ditambahkan, tidak ada yang melebihi karakter. Akan tetapi jika temyata ada mahasiswa yang nama
melebihi 30 karakter, maka nama tersebut harus kita singkat dapat tertampung.
JIBA001
JICC002
JLD003
Nama
Bambang,S.Kom
Cicilia Puji Rahayu, S.Si
Didik Nugroho, S.Kom
Kota
Solo
Yogyakarta
Semarang
Telepon
25189
25117
519858
bambang@unsa.ac.id
cicilia@unsa.ac.id
didik@unsa.ac.id
Kolom pertama berisi data kode dosen dengan lebar (banyaknya karakter) tetap, yaitu 8
karakter/digit.
Kolom kedua berisi data karakter/string dengan lebar maksimum 30 karakter. Angka 30
ini merupakan perkiraan bahwa untuk nama dosen yang sudah ada dan nama mahasiswa
20
lain menyusul untuk ditambahkan, tidak ada yang melebi karakter. Akan tetapi jika
ternyata ada dosen yang namanya melebihi 30 karakter, maka nama tersebut harus kita
singkat dapat tertampung.
NmMK
Pendidikan Pancasila
Pendidikan Agama
Sistem Berkas
Berangkat dari karakteristik masing-masing kelompok data diatas, maka kita dapat menetapkan
struktur masing-masinu tabel. Secara minimal, yang harus ditentukan dalam struktur tabel adalah
Nama kolom (field), Tipe data, Lebar (banyaknya karakter/digit maksimum yang dapat
ditampung).
Untuk nama kolom (field) biasanya disesuaikan dengan nama kolom dari contoh data,
tetapi penamaan itu harus diubah karena panjang nama kolom dalam DBMS biasanya
dibatasi, pembatasan ini berbeda antar masing-masing DBMS dan harus dinyatakan dalam
1 kata tidak boleh menggunakan spasi atau tanda minus, tetapi masih boleh menggunakan
tanda underscore. Berangkat dari karakteristik yang dapat kita simpulkan dari fakta yang
ada pada masing-masing data, struktur dari ketiga Tabel dalam basis data MDK yang dapat
kita tentukan adalah sebagai berikut:
Tabel Mahasiswa dengan struktur sebagai berikut :
Nama Berkas : Maha.DBF
Fungsi : Menampung data mahasiswa
Medan Kunci : NIM
Jumlah Medan: 5
Panjang Rekaman
:
No
1
2
Nama Medan
NIM
Nama
Tipe
K
K
Lebar Keterangan
8
NIM
20
Nama
21
3
4
5
Kota
Telepon
EMail
K
K
K
15
11
15
Kota Asal
Nomor Telepon
Alamat EMail
Nama Medan
KdDosen
Nama
Kota
Telepon
Email
Tipe
K
K
K
K
K
Lebar
8
20
15
11
15
Keterangan
Kode Dosen
Nama Dosen
Kota Asal
Nomor Telepon
Alamat EMail
Nama Medan
KodeMK
NmMK
Tipe
K
K
Lebar
7
20
Keterangan
Kode Mata Kuliah
Nama Mata Kuliah
Berikut adalah contoh penerapan struktur tersebut (khusus untuk tabel mahasiswa dan
kuliah saja) derngan menggunakan beberapa perangkat lunak :
22
23
Menampilkan data(query).
Cara atau Teknis penerapan operasi-operasi basis data tersebut sangat tergantung dari
DBMS yang digunakan. Tetapi secara umum ada dua macam cara untuk menjalankan
operasi-operasi basis data, yaitu:
1. Menjalankan program khusus untuk melakukan operasi basis data secara
interaktif
Program semacam ini umumnya disediakan oleh setiap DBMS untuk mempermudah
pemakai (user) dalam melakukan operasi-operasi basis data. Kemudahan tersebut
berbentuk penyediaan menu untuk DBMS yang berbasis teks dan bahkan ditambah dengan
pemanfaatan perangkat mouse untuk DBMS yang berbasis grafis. DBMS semacam MSAccess dapat menunjukkan hal itu.
,vdw dua
2. Menggunakan bahasa basis data (Data Manipulation Language)
Dengan bahasa basis data, pemakai harus menuliskan perintah-perintah khusus untuk
melakukan operasi-operasi basis data. Bahasa dalam basis data tersebut ada yang memang
berlaku khusus untuk DBMS seperti bahasa dbase untuk dbase III+ dan Foxbase, Quel
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
24
untuk CA-Open Ingres, tetapi ada pula bahasa basis data yang sudah menjadi standar
seperti SQL untuk berbagai MS-SQL Server, Oracle, CA-Open Ingres, dll. Pada bab ini
juga ditunjukkan sedikit contoh penggunaan bahasa basis data. Khusus untuk bahasa SQL
yang telah menjadi bahasa basis data standar pada sejumlah DBMS.
RELASI ANTAR TABEL
Salah satu definisi basis data menyebutkan bahwa basis data terdiri atas tabel-tabel yang
saling berhubungan. Secara intuitif data dosen, mahasiswa dan kuliah (DMK) memang
terasa berhubungan, tetapi dari struktur dan data yang terdapat pada ketiga tabel yang telah
digambarkan diatas, keterhubungan (relasi) tersebut tidak terlihat secara fisik/nyata. Karena
itu, representasi struktur dan data dari ketiga tabel tersebut belumlah mencukupi untuk
dinyatakan sebagai sebuah basis data.
Dengan demikian, untuk membentuk sebuah basis data, kita harus melengkapi
ketiga tabel DMK itu dengan tabel lain yang merepresentasikan keterhubungan (relasi)
antar ketiganya. Berikut adalah data tambahan yang, kita butuhkan untuk menunjukkan
adanya keterhubunuan (relasi) antar tabel-tabel DMK tersebut:
Data Nilai dengan data sebagai berikut:
(Dr. Umar Hakim merigajar
NIM
J.990001
J.990002
J.990003
J.990001
J.990002
J.991001
Nama
DEDY ARYANTO
RIRIN KURNIAWATI
SIGIT HERMANTO
DEDY ARYANTO
RIRIN KURNIAWATI
SUSILOWATI
Matakuliah
Struktur Data
Struktur Data
Pancasila
Basis Data
Basis Data
Nilai
3.7
4
4
3.5
4
Data Nilai merepresentasikan adanya relasi antara data, Mahasiswa dengan data
Kuliah untuk menunjukkan mata kuliah yang diambil / diikuti mahasiswa dan
indeks nilai yang diperoleh mahasiswa untuk mata kuliah yang diikutinya.
Seorang mahasiswa dapat mengambil atau mengikuti beberapa mata kuliah atau
tidak mengikuti kuliah apapun misalnya mahasiswa, bernama Dedy Aryanto
mengambil atau mengikuti 2 mata kuliah dan mahasiswa bernama Susilowati yang
tidak terlihat menunjukkan ia tidak mengikuti kuliah apapun.
Satu mata kuliah dapat diikuti oleh beberapa mahasiswa misalnya mata kuliah
Struktur Data diikuti 2 mahasiswa, Basis Data diikuti 3 mahasiswa dan seterusnya,
5 mata kuliah sudah mempunyai data indeks nilai dan ada mata kuliah Basis Data.
25
Waktu
Senin, 08.00
Selasa, 08.00
Rabu, 08.00
Kamis,08.00
Ruang
A
B
A
B
Dosen
Bambang, S.Kom
Emi, Amd
Drs. Bekti
Titi, S.Kom
Kesimpulannya:
Data jadwal diatas merepresentasikan adanya relasi antara data kuliah denagnd ata
dosen untuk menunjukkan nama dosen yang mengajar setiap mata kuliah ditambah
dengan data waktu dan tempat pelaksanaan perkuliahanynya.
Setiap mata kuliah hanya dapat diajarkan oleh seorang dosen, tetapi seorang dosen
boleh mengajar lebih dari satu matakuliah, tentunya waktu dan ruangnya berbeda.
dapat segera
Tipe
C
C
C
N
Lebar
30
8
30
3
Keterangan
Menampung data matakuliah
Menyimpan data NIM
Nama Mahasiswa
Nilai
Tabel Jadwal
Nama Berkas : Maha.DBF
Fungsi : Menampung data jadwal
Medan Kunci : NIM
Jumlah Medan: 4
Panjang Rekaman
:
Medan
MK
Waktu
Ruang
Dosen
Tipe
C
C
C
C
Lebar
30
8
30
3
Keterangan
Menampung data matakuliah
Menyimpan data NIM
Nama Mahasiswa
Nilai
26
Dengan adanya kedua tabel tambahan yang menunjukkan relasi antar tabel DMK
sebelumnya, maka syarat minimal sebuah basis data telah terpenuhi. Tetapi sekali lagi perlu
diperhatikan, persoalan utama dalam penerapan basis data bukanlah agar data yang kita
miliki dapat segera kita simpan. Yang paling penting untuk dipikirkan justru bagaimana
agar operasi-operasi selanjutnya (pencarian data, perubahan data hingga penghapusan data)
dapat kita lakukan dengan cepat dan mudah.
Basis Data Yang Baik
Kelima buah tabel DMK ditambah tabel Nilai dan tabel Jadwal kendati telah membentuk
sebuah basis data, perlu dianalisis lebih jauh dari berbagai aspek seperti efisiensi tempat
penyimpanan data, integritas data (redundansi data yang minimal), kecepatan pemrosesan,
kemudahan operasi basis data dll. Jika aspek-aspek tersebut telah dipertimbangkan dengan
baik, maka kita tidak hanya sekedar membentuk basis data, tapi lebih jauh lagi akan dapat
melahirkan sebuah basis data yang baik. Berikut adalah sejumlah uraian yang menunjukkan
inefisiensi basis data perkuliahan yang berisi kelima tabel tersebut:
Bisa saja terjadi ada lebih dari 1 dosen dengan nama termasuk gelarnya yang sama.
Misalnya kita tambahkan data baru di tabel Dosen dengan nama dosen Ir. Taufik
Ismail yang beralamat di Jl Rukun No. 15, Depok 40115'. Dengan tambahan data
tersebut, maka dari tabel Dosen kita dapat mengetahui bahwa ada 2 orang dosen,
dengan nama yang sama tapi berbeda tempat tinggal. Lalu coba kita beranjak ke
tabel Jadwal, maka kita akan mendapatkan adanya ambiguitas (ketidakpastian).
Ambigutitas terjadi pada jadual mata kuliah 'Matematika I' yang
diajarkan oleh
dosen bernama 'It. Taufi Ismail'. Nah, 'Ir. Taufik Ismail' yang manakah yang di
Bogor atau yang di 'Depok' yang sebenarnya mengajar mata kuliah tersebut.
Pada tabel Mahasiswa kita dapat mengetahui nama mahasiswa melalui data NIM
nya. Karena itu, penyertaan data nama mahasiswa pada tabel Nilai menjadi tidak
praktis/efisien. Redundansi data yang tidak perlu (boros) terjadi pada data nama
mahasiswa ini. Jika kolom data nama mahasiswa ini tidak disertakan, kita masih
tetap dapat mengetahui nama mahasiswa yang mengambil/mengikuti mata kuliah
tertentu dengan mengacu ke tabel Mahasiswa.
Jika kita melakukan pengubahan terhadap nama mata kuliah (baik karena alasan
perbaikan kesalahan atau memang adanya perubahan data, maka perubahan ini
harus diikuti juga dengan perubahan tabel lain. Misalnya mata kuliah 'Basis Data'
berubah menjadi 'Basis Data Dasar', maka kita juga harus melakukan hal yang sama
ke tabel Nilai dan tabel Jadual. Jika penjalaran perubahan tidak dilakukan maka
27
konsistensi data antar tabel menjadi terganggu. Tapi jika dilakukan apalagi jika
sering dilakukan, maka perubahan semacam ini tentu menjadi tidak praktis.
Pada tabel Jadual, bagaimanakah kita menyatakan struktur untuk kolom Waktu
perkuliahan? Apakah dengan sebuah kolom bertipe karakter/string dengan lebar
kolom 30 karakter? Jika dinyatakan dalam sebuah kolom, apa yang terjadi jika
sebuah mata kuliah yang waktu perkuliahannya 2 kali dalam seminggu ternyata
dilaksanakan pada tempat yang berbeda?
PDE
Pancasila
Basis Data
Waktu
Senin, 08.00
Ruang
A
Dosen
Bambang, S.Kom
Kamis 08.00
Selasa, 08.00
B
B
Emi, Amd
Jumat 08.00
A
A
Drs. Bekti
B
B
Titi, S.Kom
Rabu, 08.00
Kamis,08.00
Kelemahan pada alternatif ini adalah lebar kolom untuk waktu dan tempat akan mubadzir
bagi matakuliah yang dilaksanakan 1 kali / minggu dan dapat mempersulit operasi
pengubahan data jika mujalnya saja ingin mengubah waktu kuliah yang kedua sedang
waktu pertama tetap.
Alternatif 2 (Matakuliah yang 2 kali seminggu dinyatakan 2 baris):
Matakuliah
Struktur Data
Struktur Data
PDE
PDE
Pancasila
Basis Data
Waktu
Senin, 08.00
Kamis 08.00
Selasa, 08.00
Jumat 08.00
Rabu, 08.00
Kamis,08.00
Ruang
A
B
B
A
A
B
Dosen
Bambang, S.Kom
Bambang, S.Kom
Emi, Amd
Emi, Amd
Drs. Bekti
Titi, S.Kom
Kelemahan pada alternatif ini adalah nama dosen akan disimpan berulang untuk matakuliah
yang dilaksanakan 2 kali seminggu.
Alternatif 3 (Matakuliah yang 2 kali seminggu diakomodasikan dalam kolom
terpisah):
Matakuliah
Struktur Data
PDE
Pancasila
Basis Data
Waktu1
Senin, 08.00
Selasa, 08.00
Rabu, 08.00
Kamis,08.00
Waktu2
Kamis 08.00
Jumat 08.00
Rabu, 08.00
Kamis,08.00
Ruang
A
B
A
B
Ruang2
A
B
A
B
Dosen
Bambang, S.Kom
Emi, Amd
Drs. Bekti
Titi, S.Kom
28
Kelemahan alternatif ini adalah kolom waktu2 dan tempat2 akan menjadi mubazir untuk
matakuliah yang dilaksanakan hanya 1 kali seminggu. Yang manakah dari ketiga
alternatif ini yang paling efisien ? atau adakah alternatif lain yang lebih baik ? Dengan
uraian diatas maka pembentukan basis data yang baik tentu saja menjadi sangat
penting. Basis data perkuliahan dengan struktur dan data yang disajikan baru sederhana
saja, maka kebutuhan data yang baik belumterlalu mendesak.
Pembentukan basis data yang baik dan efisien sendiri sebagai sebuah hasil
perancangan yang matang akan memberikan sejumlah karakteristik dan keuntungan seperti:
Struktur basis data, yaitu tabel dan relasi antar tabel yang lebih kompak
Semakin kecil ukuran trabel maka akan makin cepat operasi basis data yang
dilakukan
29
Metode waterfall atau air terjun yang membagi daur hidup pengembangan sistem
menjadi 6 tahapan, yaitu konsepsi, pendahukuan, analisis, perancangan,
implementasi dan pengujian.
Fabbri dan Schab membaginya menjadi 5 tahapan, yaitu studi kelayakan, rencana
pendahuluan, analisis sistem, perancangan sistem dan implementasi sistem
30
Hasil tahapan ini berupa daftar kebutuhan, perkiraan biaya untuk membuat sistem baru dan
juga solusi yang dikehendaki. Perkiraan biaya antara lain didasarkan oleh DBMS yang
digunakan dan juga komputer yang dipakai.
2. Tahapan Rencana Pendahukuan
Tahapan pendahuluan menentukan lingkup proyek atau sistem yang akan ditangani. Hal ini
digunakan untuk menentukan jadwal proyek. Adapun lingkup sistem yang ditangani
dijabarkan dalam bentuk DFD konteks atau diagram konteks. DFD (Data Flow Diagram)
diistilahkan kedalam bahasa Indonesia menjadi Diagram Aliran Data merupakan alat yang
biasa dipakai untuk mendokumentasikan proses didalam sistem. DAD menekankan pada
fungsi-fungsi didalam sistem, cara mengguankan informasi yang tersimpan dan
pemindahan informasi antarfungsi didalam sistem. DAD konteks adalah DAD yang
memperhatikan sistem sebagai sebuah proses. Tujuannya adalah memberikan pandangan
umum sistem. DAD konteks memperlihatkan sebuah proses yang berinteraksi dengan
lingkungannya. Ada fihak luar atau lingkungannya yang memberi masukan dan ada fihak
yang menerima keluaran sistem. Dalam hal ini fihak luar (sering disebut terminator) dapat
berupa sistem lain, suatu perangkat keras, orang atau organisasi.
TAHAPAN ANALISIS SISTEM
Pada tahapan ini analisis sistem, yaitu orang yang bertanggung jawab terhadap
pengembangan sistem secara menyeluruh sering berdialog dengan pengguna untuk
memperoleh informasi detail kebutuhan pengguna. Pengumpulan kebutuhan pengguna
biasa dilakukan melalui interview, observasi dan kuisoner. Hasil yang didapatkan dipakai
sebagai bahan untuk menyusun DAD untuk sistem baru. Untuk memperinci DAD, itemitem yang terdapat pada aliran data yang biasa digambarkan dengan tanda panah dan garis
dan juga terdapat pada penyimpanan data dijabarkan dalam bentuk kamus data. Kamus data
adalah deskripsi formal mengenai seluruh elemen yang tercakup dalam DAD. Pada tahapan
perancangan, elemen pada kamus data yang menjadi bahan untuk menyusun basis data.
TAHAPAN PERANCANGAN SISTEM
Tediri dari perancagan basis data dan perancangan proses. Perancangan basis data
merupakan langkah untuk menentukan basis data yang diharapkan dapat mewakili seluruh
kebutuhan pengguna. Penyusunan pengguna data ini berlandaskan kamus aliran data yang
telah dibuat pada tahapan sebelumnya. Perancangan basis data secara konseptual, logis dan
31
perancangan basis data secara fisik. Perancangan basis data secara konseptual terdiri atas
langkah berikut :
1. Penentuan entitas pada basis data
2. Pendefinisian hubungan antar entitas
3. Penerjemahan hubungan kedalam entitas
MERANCANG MODEL BASIS DATA KONSEPTUAL
Tugas seorang database administrator adalah merancang model basis data konseptual.
Model konseptual bukanlah pendekatan proses informasi seorang programmer aplikasi,
tetapi merupakan kombinasi beberapa cara untuk memproses data untuk beberapa aplikasi.
Model konseptual tidak tergantung pada aplikasi individual, DBMS yang digunakan
perangkat keras atau pada phisikal model. Pada perancangan model konseptual penekanan
tinjauan dilakukan pada struktur data dan relasi antar file. Tidaklah perlu dipikirkan tentang
terapan dan operasi yang akan dilakukan pada basis data. Pendekatan yang dilakuakan pada
perancangan model konseptual adalah menggunakan model data relasional. Ada dua teknik,
yaitu menggunakan teknik normalisasi dan entity relationship.
NORMALISASI DATA
Perancangan basis data seringkali diasosiasikan dengan pembuatan Entity-Relationship
(model E-R), dimana kelompok-kelompok data relasi antar kelompok data tersebut
diwujudkan dalam bentuk diagram, Hal itu tidak salah, karena model memang merupakan
representasi nyata dari sebuah perancangan. Normalisasi sendiri merupakan cara
pendekatan lain dalam membangun desain logik basis data relasional yang tidak secara
langsung berkaitan dengan model data, tetapi dengan menerapkan sejumlah aturan dan
kriteria standar untuk menghasilkan struktur yang normal. Namun demikian, dalam
pelaksanaannya desain lojik basis data relasionsip yang didasari oleh transformasi secara
hati-hati dari model E-R ke bentuk fisik akan menghasilkan basis data yang mirip.
Dalam pendekatan Normalisasi, perancang/desainer basis data bertitik tolak dari
situasi yang nyata. Ia telah memiliki item-item data yang siap ditempatkan dalam baris dan
kolom pada tabel-tabel relasional. Demikian juga dengan sejumlah aturan tentang
keterhubungan antara item-item data tersebut. Sementara pendekatan kedua, dengan
langsung membuat model data lebih tepat dilakukan jika yang telah diketahui baru prinsipprinsip sistem secara keseluruhan. Cukup sering terjadi, kedua pendekatan ini dilakukan
bersama-sama, berganti-ganti. Dari fakta yang telah kita miliki, kita takukan Normalisasi.
Untuk kepentingan evaluasi dan dokumentasi, hasil Normalisasi kita wujudkan dalam
sebuah model data. Model data yang sudah jadi tersebut bisa saja dimodifikasi dengan
pertimbangan tertentu. Hasil modifikasinya kemudian kita implementasikan dalam bentuk
sejumlah struktur tabel dalam sebuah basis data. Struktur ini dapat kita uji kembali dengan
menerapkan aturan-aturan Normalisasi, hingga akhirnya kita peroleh sebuah struktur basis
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
32
data yang benar-benar efektif dan efisien. Begitulah, kedua pendekatan ini dapat saling
memperkuat satu sama lain.
Diasumsikan bahwa kita telah memiliki item-item data dan pengetahuan yang
memadai untuk dijadikan dasar bagi perancangan basis data yang baik. Maka fokus utama
pembahasan kita adalah penerapan Normalisasi basis data terhadap fakta yang telah
tersedia tersebut. Dalam uraian tentang Normalisasi basis data, kita akan banyak
menggunakan istilah-istilah baru seperti Atribut, Key, Domain dan Ketergantungan
Fungsional. Karena itu, sebelum masuk lebih jauh ke pembahasan tersebut, istilah-istilah
tersebut akan dijelaskan lebih dahulu.
ANOMALI
Anomali adalah proses pada basis data yang memberikan efek samping yang tidak
diharapkan misalnya ketidakkonsistenan data atau membuat sesuatu data menjadi hilang
ketika data lain dihapus. Yang terdiri dari peremajaan, penghapusan dan penyisipan.
Anomali Peremajaan
Anomali ini terjadi jika terjadi pengubahan pada sejumlah data yang mubadzir tetapi tidak
seluruhnya diubah. Misalnya saja terdapat relasi Pesanan_Beli yang mengandung data
pemasok dan kota yang menyatakan lokasi pemasok, barang dan jumlah yang menyatakan
nama barang dan jumlah barang yang dipesan.
Anomali Penyisipan
Terjadi pada saat penambahan hendak dilakukan ternyata ada elemen data yang masih
kosong dan elemen data tersebut justru menjadi kunci.
Anomali Penghapusan
Terjadi jika suatu baris yang tak terpakai dihapus dan sebagai akibatnya terdapat data lain
yang hilang. Dengan mengambil contoh relasi kursus, apa yang terjadi seandainya data
bahwa siswa dengan identitas 20 yang mengambil kursus bahasa Jepang dihapus. Data
yang menyatakan bahwa biaya kursus Jepang sebesar Rp 65.000 juga akan ikut terhapus.
Dependensi (Ketergantungan)
Dependensi merupakan 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
33
bagi
pendekomposisian data kedalam bentuk yang paling efisien. Macam dependensi adalah :
dependensi fungsional, dependensi fungsional sepenuhnya, dependensi total dan
dependensi transitif.
Dependensi Fungsional
Adalah macam dependensi yang banyak diulas pada literatur basis data. Didefinisikan
sbagai berikut : Suatu atribut Y mempunyai dependensi fungsional terhadap atribut X jika
dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y. Dituangkan dalam bentuk
notasi sebagai berikut :
X Y
Dibaca X secara fungsional menentukan Y atau terkadang cukup dibaca X panah Y
Sebagai contoh terdapat relasi Pesanan_Jual yang dinotasikan dengan
Pesanan_Jual (Pembeli, Kota, Barang, Jumlah)
yang artinya bahwa relasi Pesanan_Jual mengandung atribut Pembeli, Kota, Barang dan
Jumlah. Sampel data pada relasi ini diperlihatkan sebagai berikut
Pembeli
P1
P1
P2
P2
Kota
Yogya
Yogya
Solo
Solo
Barang
B1
B2
B1
B2
Jumlah
10
8
4
8
Pada contoh ini Pembeli secara fungsional menentukan Kota, sebab terlihat bahwa untuk
Pembeli yang sama, kotanya juga sama. Dengan demikian
Pembeli Kota
{Pembeli, Barnag} Jumlah
{Pembeli, Barang} Kota
{Pembeli, Barang} {Jumlah, Kota}
Bagian yang terletak disebelah kiri panah biasa disebut penentu atau determinan dan
bagian yang terletak disebelah kanan panah disebut yang tergantung atau dependen.
Tanda { } biasa digunakan kalau ada lebih dari satu atribut, baik pada penentu
maupun yang tergantung.
34
Dinayakan sebagai
KdPemasok
K1
C1
C2
XY
NmPemasok
Titik
Rara
Dewi
Kota
Jakarta
Bandung
Jakarta
KodePemasok Nama_Pemasok
Dengan asumsi bahwa tidak ada nama pemasok yang sama
Dependensi Transitif
Atribut Z mempunyai dependensi transitif terhadap X jika
35
Kuliah
Jaringan Komputer
Kalkulus I
Sistem Pakar
Fisika I
Ruang
Merapi
Rama
Sinta
Merapi
Tempat
G Utara
G Selatan
G Selatan
G Utara
Waktu
Senin, 08.00
Selasa, 07.00
Rabu, 10.00
Selasa 08.00
Nama
Sentot
Bejo
Sentot
Fakultas
Ekonomi
Ekonomi
Hukum
Nama
Sentot
Bejo
Sentot
Jurusan
36
99001
99002
99003
Ekonomi
Ekonomi
Hukum
Nama
Sentot
Bejo
Sentot
Fakultas
Ekonomi
Ekonomi
Hukum
Pada kasus A, dekomposisi bersifat tak hilang. Berdasarkan kedua relasi hasil dekomposisi
terkadang disebut proyeksi, relasi semula bisa diperoleh kembali. Sebagai contoh
berdsasarkan kledua relasi hasil dekomposisi, informasi bahwa nomor 99001 bernama
Sentot denmgan jurusan Ekonomi dapat diperoleh kembali . Begitu juga untuk nomor
99002 dan 99003.
Pada kasus b terdapat suatu kerancuan. Nama yang bernomro 99001 memang betul adalah
Sentot (Relasi NIM dan Nama), tetapi si Sentot yang bernomor 99001 ini mengambil
program studi Ekonomi atau Fisika (Relasi Nama dan Jurusan), karena ada dua nama
Sentot. Dekomposisi yang menghasilkan relasi NIM-Nama dan Nama-Juruisan merupakan
contoh dekomposisi hilanmg.
Atribut Tabel (Table Attribut)
Normalisasi, seperti yang telah dikemukakan sebelumnya, lebih difokuskan pada tinjauan
komprehensif terhadap setiap kelompok data (tabel) secara individual. Lebih jauh lagi,
tinjauan tersebut dititik beratkan pada data di masing-masing kolom pembentuk tabel. Kita
menggunakan istilah baru yaitu Atribut yang sebenarnya identik dengan pemakaian istilah
kolom data. Istilah Atribut ini lebih umum digunakan dalarn perancangan basis data, karena
istilah itu lebih impresif dalam menunjukkan fungsinya sebagai pembentuk karakteristik
(sifat-sifat) melekat pada sebuah tabel. Apalagi, penerapan aturan-aturan normal terhadap
atribut-atribut pada sebuah tabel bisa berdampak penghilangan kolom tertentu, penambahan
kolom baru atau bahan penambahan tabel baru.
Dapat kita katakan:
tabel Mahasiswa memiliki 4 buah atribut, yaitu nim, namaalamat - mhs dan tgllahir
tabel Dosen memiliki 2 buah atfibut, yaitunama-dosdan alama
tabel Kuliah memiliki 4 buah atribut, yaitukode_kul, nama-kul, dan semester
tabel Nilai memiliki 4 buah atribut, yaitunama-kul, nim, nama dan indeks nilai
tabel Jadual memiliki 4 buah atribut, yaitu nama-kul, tempat, w dan nama-dos
Di samping penamaan yang unik berdasarkan fungsinya disetiap atribut-atribut itu dapat
dibedakan berdasarkan sejumlah pengelompokkan. Ada atribut yang dijadikan sebagai key
dan yang lainnya disebut atribut deskfiptif. Ada pula atribut yang tergolong atribut
sederhana ataupun atribut komposit dan sebagainya.
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
37
38
Kunci Kandidat
Ninduk, karena unik tidak mungkin ganda
NKTP , karena unik tidak mungkin ganda
Nama, sering dipakai sebagai kunci pencarian, tetapi tidak dapat dikatakan kunci karena
bisa saja ada dua atau lebih nama yang sama
Nama + TgLahir, mungkin dapat digunakan sebagai kunci karena kumungkinannya akan
sangat kecil seseorang mempunyai nama dan tanggal lahir yang sama.
Kunci Primer / Primary Key
Primary key adalah satu atribut atau satu set minimal atribut yang tidak hanya
mengidentifikasi secara unik suatu kejadian spesifik, tetapi juga dapat mewakili setiap
kejadian dari suatu entity. Setiap kunci kandidat mempunyai peluang untuk menjadi
primary key, tetapi sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh
terhadap entity yang ada.
Ninduk karena unik tidak mungkin ganda dan mewakili secara menyeluruh terhadap
entity Pegawai dan setiap pegawai selalu punya Nomor induk
NKTP hanya dipakai jika sampai dengan pembayaran gaji pegawai ternyata nomor induk
belum keluar.
4. Alternate Key (Kunci Alternatif)
Alternate key adalah kunci kandidat yang tidak dipakai sebagai primary key. Seringkali
kunci alternatif dipakai sebagai kunci pengurutan dalam laporan.
5. Foreign Key (Kunci Tamu)
Adalah suatu atribut atau satu set atribut yang melengkapi satu relationship atau hubungan
yang menunjukkan keinduknya. Kunci tamu ditempatkan pada entity anak dan sama
dengan kunci primer induk direlasikan. Hubungan antara entity induk dengan anak adalah
hubungan satu lawan banyak (one to many relationship).
Contoh :
Medan
Ninduk
Nbukti
Tanggal
GajiKotor
Potongan
GajiBersih
Pajak
Kunci tamu
39
Dalam hal hubungan dua buah berkas yang punya relationship banyak lawan banyak maka terdapat dua buah
kunci tamu pada berkas konektornya.
40
alamatmhs dan tglahir) merupakan Atribut Bernilai Tunggal, karena atribut-atribut tersebut
hanya ada berisi 1 (satu) nilai. Jika ada seorang mahasiswa yang memiliki 2 dua tempat
tinggal, maka hanya salah satu saja yang boleh diisikan kedalam atribut alamat-mhs.
Sedangkan, Atribut Bernilai Banyak ditujukan pada atribut-atribut yang dapat kita
isi dengan lebih dari 1 nilai, tetapi isinya sama, kita dapat menambahkan atribut hobbi pada
data Mahasiswa tersebut. Seorang mahasiswa ada yang mempunyai 1 hobbi saja, ada juga
yang mempunyai banyak hobbi dan bahkan ada mahasiswa yang tidak memiliki hoby
Atribut semacam ini tergolong Atribut Bernilai Banyak (Multivalue Attribute). Atribut
waktu pada tabel Jadual juga dapat digolongkan sebagai Atribut Bernilai Banyak, karena
ada mata kuliah yang banyak memiliki sebuah nilai waktu dan ada pula yang lebih dari
satu nilai waktu.
Atribut Harus Bernilai (mandatori Atribute) Dan Nilai Null
Ada sejumlah atribut pada sebuah tabel yang kita tetapkan harus beri data. Jadi
nilainya tidak boleh kosong. Atribut semacam ini disebut Mandatory Attribute. Pada tabel
Mahasiswa, misalnya, atribut nim nama-mhs dapat kita golongkan sebagai Mandatory
Attribute, karena setiap mahasiswa yang datanya ingin disimpan ke tabel tersebut, paling
tidak harus diketahui dengan pasti NIM dan Nama-nya. Sebaliknya, pula atribut-atribut lain
pada suatu tabel yang nilainya boleh dikosongkan (Non Mandatory Attribute). Nilai
(konstanta) Null digunakan untuk menyatakan / mengisi atribut-atribut demikian yang
nilainya memang belum siap atau tidak ada. Nilai Null tidak sama dengan spasi, walaupun
pada waktu nilainya ditampilkan, sama-sama tidak memperlihatkan apa-apa. Perbedaan
tersebut dapat ditinjau dari segi makna maupun dari segi representasi fisik. Dari segi
makna, pengisian spasi ke suatu atribut berarti atribut tersebut memiliki nilai yaitu spasi,
sedangkan pengisian nilai Null berarti, atribut tersebut belum/tidak memiliki nilai. Dari segi
representasi fisik, nilai spasi ekuivalen dengan karakter ke-32 dalam tabel ASCII,
sedangkan nilai Null ekuivalen dengan karakter ke-0.
Atribut Turunan (Dedved Attribute)
Adalah atribut yang nilai-nilainya diperoleh dari pengolahan atau dapat diturunkan dari
atribut atau tabel lain yang berhubungan. Atribut demikian sebenarnya dapat ditiadakan dari
sebuah tabel karena nilai-nilainya bergantung dari nilai yang ada diatribut lainnya.
Penambahan atribut angkatan dan ip (indeks prestasi) pada tabel mahasiswa. Secara fisik,
tanpa melihat layak/tidaknya data tersebut bila dilihat dari kenyataan pemakaiannya.
Sementara Domain nilai lebih ditekankan pada batas-batas nilai yang diperbolehkan dari
suatu atribut, dilihat dari kenyataan yang ada. Pada tabel Kuliah misalnya, kita memang,
menetapkan bahwa tipe data untuk atribut sks adalah integer. Dengan begitu secara fisik
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
41
kita dapat saja menyimpan nilai -1, 0 atau 100 untuk atribut sks tersebut. Tetapi kita
mengetahui dengan pasti, bahwa nitai-nilai itu sebetulnya tidak pantas (invcilid) untuk
menjadi data pada atribut sks.Lalu nilai-nilai seperti apa yanc, boleh. Dari kenyataan yang
ada, kita ketahui bahwa nilai yang layak (valid) untuk atribut sks adalah 1, 2, 3 atau 4.
Maka dapat dikatakan, Domain nilai untuk atribut sks adalah 1, 2, 3 dan 4.
Pada saat pekerjaan perancangan basis data telah dilakukan, yang perlu dilihat dari
pertimbangkan hanyalah Domain nilai dari setiap atribut. Penetapan tipe data bagi suatu
atribut baru akan relevan dan penting untuk diperhitungkan pada saat implementasi data.
Ketergantungan Fungsional (Function Dependency)
Diberikan sebuah tabel T berisi paling sedikit 2 buah atribut, yaitu A dan B. Kita dapat
inenyatakan notasi berikut ini:
AB
yang berarti A secara fungsional menentukan B atau B secara fungsional tergantung pada A,
jika dan hanya jika untuk setiap kumpulan baris dan data (row) yang ada di tabel T, pasti
ada 2 baris data (row) di tabel T dengan nilai untuk A yang sama, maka nilai untuk B pasti
juga sama. Definisi yang lebih formal untuk itu adalah:
diberikan 2 row r1 dan r2 dalam tabel T di mana A B,
jika r1 (A) - r2(A), maka r1 (B) = r2(B).
c.
dan seterusnya.
Coba kita perhatikan tabel Nilai sepei-ti yang diperlihatkan, tabel ini memperlihatkan 4
buah atribut, yaitu nama ketidaktergantungan tersebut untuk mendapatkan seluruh KF.
Seringkali untuk mendapatkan seluruh KF dari sebuah tabel (karena bisa terrdapat lebih
dari satu KF di sebuah tabel), kita lebih dulu membahas yang lebih rinci tentang
Ketergantunoan Fungsional yang ada.
NORMALISASI
Bentuk Tidak Normal. Merupakan bentuk kumpulan data yang akan direkam, tidak ada
keharusan mengikuti suatu format tertentu, dapat saja data tidak lengkap atau terduplikasi,
data dikumpulkan apa adanya sesuai dengan kedatangannya.
Normalisasi dengan Ketergantungan Fungsional
Setelah cukup jelas dalam memahami pengertian Atribut, Key, Domain dan Ketergantungan
Fungsional, maka kita siap untuk melakukan pembahasan tentang Normalisasi. Dalam
perspektif Normalisasi, sebuah basis data dapat dikatakan baik, jika setiap tabel yang
menjadi unsur pembentuk basis data tersebut juga telah berada dalam keadaan baik, atau
normal. Selanjutnya sebuah tabel dapat dikategorikan baik (efisien, atau normal, jika telah
memenuhi 3 (tiga) kriteria berikut:
Jika ada dekomposisi (penguraian) tabel, maka dekomposisilam dijamin aman (LosslessJoin Decomposition).
Terpeliharanya ketergantungan fungsional pada saat perubahan data Dependency
Preservation).
Tidak melanggarBoyce-Code Normal Form (BCNF).
42
Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak, tabel tersebut tidak
melangcar Bentuk Normal tahap Ketiga (3st Normal Form 3NF). Kriteria ini merupakan
kriteria minimal untuk mendapatkan predika efisien/normal bagi sebuah tabel. Akan tetapi,
kita juga dapat menerapkan kriteria-kriteria lain yang juga tercakup dalam kerangka
Normalisasi walaupun bukan merupakan kriteria utama. Kriteria-kriteria lain tersebu yang
juga akan dibahas dalam bab ini untuk memperkaya khasanal pengetahuan kita tentang
Normalisasi adalah:
'v.,
Kriteria-kriteria Nortnalisasi di atas memang dapat kita terapkan (ujikan pada setiap tabel
yang ada di Bab 3. Akan tetapi, untukjuga menunjukkan adanya proses dekomposisi tabel,
akan lebih baikjika keseluruhan tabel itu kita rekonstruksi menjadi sebuah tabel saja (yang
tentu saja sangat tidak efisien). Dari tabel tunggal ini, lalu kita terapkan kriteria-kriteria
Normalisasi di atas hingga kita dapatkan sejumlah tabel yang sudah normal (efisien)
melalui proses Dekomposisi. Dekomposisi sendiei merupakan langkah yang paling sering
ditempuh dalam proses normalisasi, jika sebuah tabel tidak memenuhi Bentuk Normal
tertentu. Sebuah tabel yang merangkum semua kelompok data yana saling berhubungan
biasa disebut sebagai tabel Universal (Universal/Star tabel).
Jika kita memusatkan diri pada tabel universal tersebut, paling tidak ada 3 kelemahan
mendasar yang dapat dilihat, yaitu :
Pengulangan informasi, yang terjadi pada atribut nama mhs, alamat mhs dan tgl lahirya
yang dinyatakan berulang-ulang sesuai dengan data untuk atribut nilainya. Begitu juga
dengan atribut nama_kul, tempat, waktu, dan seterusnya.
Potensi inkonsistensi data pada operasi pengubahan, yang terjadi jika ada perubahan pada
data nama mhs, dimana perubahan ini harus dijalarkan ke seluruh baris data pada tabel
tersebut. Jika perubahan ini tidak dilakukan maka KF yang telah ditetapkan akan terganggu.
Tersembunyinya informasi tertentu. Tabel universal dibangun atas dasar keterkaitan
antaritem-item dan karena itu, tabel semacam ini tidak akan mampu menampilkan
informasi tentang item-item data yang kebetulan belum memiliki keterkaitan dengan item
data yana lain. Di tabel diketahui terdapat data dari 4 orang mahasiswa. Tetapi tabel
tersebut hanya ada 3 mahasiswa yang terlihat, karena mahasiswa dengan NIM = '980003'
sedang tidak ada, sehingga ia tidak disertakan dalam tabel tersebut. Tabel tersebut juga
tidak dapat merepresentasikan adanya mata kuliah yang belum diselenggarakan (belum ada
mahasiswa yang mengambilnya atau adanya dosen yang sedang tidak mengajar.
43
Lossless-Join Decomposition
Dekomposisi memang merupakan upaya untuk mendapatkan tabel yang baik. Tetapi
jika tidak hati-hati, upaya ini justru dapat menghasilkan kesalahan. Dekomposisi yang
benar terjadi jika tabel-tabel dekomposisi kita gabungkan kembali dan menghasilkan tabel
sebelum didekomposisi. Dekomposisi yang benar semacam ini di Lossless-Join
Decomposition atau Lossless Dec-oniposition dapat diIndonesiakan dengan istilah
Dekomposisi Aman).
Berikut kita ambil sebuah contoh abstrak yang menghasilkan dekomposisi yang
tidak aman (Lossv-Joiii Deco ipositio ). Kita asumsikan ada ABC yang didefinisikan
den(,an dua buah KF yaitu: A @ B dan B Kedua KF tersebut kita peroleli dari pen(,ai-natan
terhadap data kurang itiemadai atau karena asumsi yang kurang tepat.
Dependency Preservation
Dependency Preservation (dapat diIndonesiakan sebagai Pemeliharaan Ketergantungan)
merupakan kriteria kedua yang harus dicapai untuk mendapatkan tabel dan basis data yang
baik. Ketika kita melaksanakan perubahan data, maka harus bisa dijamin agar perubahan
tersebut menghasilkan inkonsistensi data yang mengakibatkan KF yang sudah benar
menjadi tidak terpenuhi. Akan tetapi, dalam upaya untuk memelihara KF yang ada untuk
tetap terpenuhi tersebut, prosesnya harus dapat dilakukan dengan efisien.
Tabel universal yang telah digambarkan sebelumnya sudah jelas sangat rapuh
didalam memenuhi kriteria Dependency Preservation ini. Kalaupun ingin dipaksakan agar
KF yang ada tetap bisa terjaga pada saat ada perubahan yang terjadi, maka upaya
perubahan juga akan terjadi, maka upaya pemeliharaan KF itu berlangsung tidak efisien.
Katakanlah, ada perubahan data Alamat untuk mahasiswa dengan NIM = 98001 maka
perubahan ini harus dilakukan pada atribut alamat_mhs di semua row yang nilai atribut
Nimnya berharga 98001.
1. Bentuk Normal Kesatu (1st Normal Form)
Bentuk normal kesatu mempunyai ciri setiap data dibentuk dalam flat berkas (berkas
rata/datar), data dibentuk dalam satu rekaman demi rekaman dan nilai dari medan berupa
atomic value. Tidak ada set atribut yang berulang-ulang atau atribut bernilai ganda
(multivalue). Tiap medan hanya ada satu pengertian, bukan merupakan kumpulan kata yang
mempunyai arti medua, hanya satu arti saja dan juga bukanlah pecahan kata-kata sehingga
artinya lain. Atom sendiri adalah zat terkecil yang masih mempunyai sifat induknya, jika
dipecah lagi maka dia tidak akan memiliki sifat seperti induknya, karena hanya akan terdiri
dari inti atom dan elektron. Contohnya adalah :
44
Kelas(KdKelas, NmKelas, Instruktur) Merupakan bentuk 1NF karena tidak ada yang
berganda dan tiap atribut satu pengertian yang tunggal. Sedangkan contoh datanya adalah :
KdKelas
U32
S31
B33
NmKelas
Bio Medik
Basis Data
Pengolahan Data Elektronik
Instruktur
Dr. Eka
Dwi Bekti,S.Kom
Bambang,S.Kom
Wali
Denok
Parto
Kelas1
U32
U32
Kelas1
S31
B33
Kelas1
S31
Nama
Sinta
Sinta
Santi
Santi
Santi
Wali
Denok
Denok
Parto
Parto
Parto
KdKelas
U32
S31
U32
S31
B33
Wali
Denok
Parto
45
A1
A2
A2
A2
S31
U32
S31
B33
Seminar
2281
2281
2291
2291
2291
Instruktur
Denok
Parto
Parno
Ranti
Ranti
Bentuk relasi seminar adalah bentuk normal ketiga, tetapi BCNF karena nomor seminar
masih bergantung fungsi pada instruktur, jika setiap instruktur dapat mengajar hanya pada
satu seminar. Seminar hanya bergantung secara fungsi pada satu atribut, bukan superkey
seperti yang disyaratkan oleh BCNF. Maka relasi Seminar harus dipecah menjadi 2, yaitu :
Relasi Pengajar
Instruktur
Denok
Seminar
2281
46
Parto
Parno
Ranti
Ranti
2281
2291
2291
2291
NIM Instruktur
A1
Denok
A2
Parto
A3
Parno
A1
Ranti
A9
Ranti
(Relasi Seminar-Instruktur)
47
FAKTUR PEMBELIAN
Sukoharjo
Kode Suplier : G01
Tanggal
: 1 Maret 2001
Nomor
: 1000
Kode
A01
A02
Nama Barang
AC Split PK
AC Split 1 PK
Qty Harga
10
1.350.000
10
2.000.000
Total Faktur
Jumlah
13.500.000
20.000.000
33.500.000
KdSup
NmSuplier
KdBrg
NmBarang
Tanggal
JtTempo
Qty
Harga
Jumlah
Total
779
998
S02
G01
Andini
Intan
R02
R01
A02
AC Split PK
AC Split 1 PK
Rice Cooker
1/4/2001
1/4/2001
10/4/2001
10/4/2001
10
10
10
150000
135000000
2000000
1500000
1350000000
20000000
1500000
1350000000
Menuliskan semua data yang akan direkam, bagian yang ganda tidak perlu dituliskan,
terlihat ada rekaman yang tidak lengkap, sehingga akan mengalami kesulitan bagaimana
bentuk rekaman yang harus dibentuk untuk merekam data tersebut.
2. Step II Bentuk Normal Kesatu
Akan dijadikan menjadi bentuk normal kesatu dengan memisahkan data pada medan yang
tepat dan bernilai atomic, juga seluruh rekaman harus lengkap adanya. Bentuk berkas
adalah berkas flat. Dengan bentuk normal kesatu ini maka sudah dapat dibuat 1 berkas
dengan 11 medan, yaitu nomor faktur, kode suplier, nama suplier, kode barang, nama
barang, tanggal, jatuh tempo, quantitas, harga, jumlah dan total satu faktur.
NFak
KdSup
NmSuplier
KdBrg
NmBarang
Tanggal
JtTempo
Qty
Harga
Jumlah
Total
779
998
998
S02
G01
G01
Andini
Intan
Intan
R02
R01
A02
AC Split PK
AC Split 1 PK
Rice Cooker
1/4/2001
1/4/2001
1/4/2001
10/4/2001
10/4/2001
10/4/2001
10
10
10
150000
135000000
2000000
1500000
1350000000
20000000
1500000
1350000000
3300000000
Akan tetapi bentuk normal kesatu ini mempunyai banyak kelemahan, yaitu :
a. Inserting / Penyisipan. Kita tidak dapat memasukkan kode dan nama suplier saja, tanpa
ada transaksi pembelian, sehingga suplier baru akan dapat masuk jika ada transaksi
pembelian.
48
b. Deleting / Penghapusan. Jika satu rekaman diatas dihapus misalnya nomor faktur
(Andini), padahal data suplier masih diperlukan.
c. Updateing / pengubahan. Kode dan nama suplier terlihat ditulis berkali-kali, jika suatu
ketika terjadi perubahan nama suplier misalnya maka harus mengganti disemua
rekaman yang membuatn data menjadi tidak konsisten.
d. Redundancy. Field jumlah diatas merupakan redundancy, karena setiap kali harga
dikalikan dengan quantitas akan menghasilkan jumlah. Maka field tersebut dapat
dibuang, jika tidak dibuang maka mengakibatkan tidak konsisten. Ini disebabkan karena
jika ada perubahan harga, hanya data harga yang diubah, data jumlah tidak maka nilai
jumlah tidak sama dengan qty x harga
Step III Bentuk Normal Kedua
Pembentukan bentuk normal kedua dengan mencari kunci field yang dapat dipakai sebagai
patokan dalam pencarian dan sifatnya unik. Berdasarkan kasus diatas, maka dapat diambil
kunci kandidat yaitu :
No Faktur
Kode Suplier
Kode Barang
MODEL DATA
Sebagaimana telah disebutkan sebelumnya, upaya perancangan basis data dapat juga
ditempuh dengan secara langsung membuat sebuah model dari awal sama sekali
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
49
(scratching). Langkah ini biasa ditempuh dari kelangkaan data/fakta yang kita miliki. Disisi
lain sebagai model yang dinyatakan dalam bentuk diagram awal (prelimina design) akan
lebih mudah untuk dievaluasi/dianalisis untuk kemudian dilakukan perbaikan-perbaikan
untuk mendapatkan sebuah model data yang permanen dan lebih mendekati kenyataan yang
sesungguhnya.
Model Data sendiri dapat didefinisikan sebagai kumpulan peran konseptual untuk
menggambarkan data, hubungan data, sema (makna) data dan batasan data. Oleh karena
yang ingin ditunjukkan adalah makna dari data dan keterhubungannya dengan data lain,
maka M Data ini lebih tepat jika disebut Model Data Lojik. Penyingkatan menjadi Model
Data
dilakukan
demi
penyederhanaan
penulisan.
Ada
sejumlah
cara
dalam
merepresentasikan Model Data dalam perancangan basis data yang secara umum dapat
dibagi dalam 2 kelompok, yaitu:
1. Model Lojik Data Berdasarkan Objek (Object-Based Logical Models) terdiri dari:
Model Keterhubungan Entitas (Entity-Relationship Model).
Model Berorientasi Objek (Object-Oriented Model).
Model Data Semantik (Semantic Data Model).
Model Data Fungsional (Functional Data Model).
2. Model Lojik Data Berdasarkan Record (Record-Based Logica Models) terdiri dari:
Model Relasional (Relational Model).
Model Hirarlcis (HierarchicalModel).
Model Jaringan (Network Model).
Mode Keterhubungan Entitas (Entity-Relationship Models) merupakan Model Data
yang paling populer digunakan dalam perancangan basi data. Sementara Model
Berorientasi Objek yang sejalan dengan perkembangan teknologi pembangunan aplikasi
mutakhir (Pemrograma C, Berorientasi Objek).
Fakta Dunia Nyata (Real World)
Istilah 'dunia nyata' disini bukan berarti dunia dan segala isinya, tapi lebih bermakna
sempit yang merujuk pada semesta yang belum terstruktur yang secara nyata ada / terkait
lingkup topik yang sedang ditinjau. Karena itu, 'dunia nyata perbankan berbeda dengan
'dunia nyata' bagi sistem misalnya. Dalam 'dunia nyata' data berasal / bermula dari apa
yang diketahui. Data ini kemudian bisa disimpan untuk proses pada saat yang lain atau
diolah lebih lanjut untuk menjadi data baru (informasi) yang diinginkan. Apa yang dimiliki
atau diketahui sebagai data itu kemudian dipilah-pilah sesuai jenis / fungsinya. Pemilahan /
pengelompokan data yang kemudian dikombinasikan dan disempurnakan dengan proyeksi
kebutuhan dalam pengolahan menjadi informasi ini kemudian melahirkan model dunia
nyata. Ada dua pertanyaan penting yang menyangkut pemodelan data berasal dari 'dunia
nyata', yaitu :
Penerapan data dari 'dunia nyata' ke dalam sebuah basis data, mensyaratkan adanya
struktur (keteraturan) data yang ingin disimpan. Lalu, dengan struktur data yang
bagaimana, data itu akan diimplementasikan dalam sebuah basis data secara fisik.
Apa saja karakteristik (property) dari suatu data yang akan disimpan dan bagaimana
sebaiknya data tersebut direpresentasikan kedalam struktur fisik.
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
50
Untuk memperjelas uraian diatas, kita tinjau sebuah dunia nyata dalam
sistem perkuliahan. Karena kita berbicara tentang 'dunia nyata', maka dibutuhkan tempat
yang pasti dimana sistem perkuliahan berada / diterapkan. Itu berarti, sistem yang sama
dapat menghasilkan cara / strategi penerapan yang berbeda antara satu tempat dengan
tempat yang lain. Hal ini teriadi karena apa yang dimiliki / diketahui (input) apa yang
diharapkan (output) serta bagaimana cara menghasilkann (proseslprosedur) antara tempat
yang satu dapat berbeda dengan tempat yang lain.
Di sebuah perguruan tinggi X, diketahui adanya mahasiswa, dosen,
kurikulum, ruang kuliah, penilaian, ujian hingga praktikum. Apa yang diketahui untuk
kemudian diimplementasikan dalam basis data dapat lebih dibatasi ataupun diperluas,
tergantung pada apa yang ingin diharapkan dari hal-hal itu. Kita misalnya, dapat
menambahkan data tersebut dengan penjadwalan dan kehadiran, jika memang ada
kebutuhan untuk itu misalnya penilaian akhir seorang mahasiswa juga tergantung pada
kehadirannya. Selanjutnya, harus dipilah / mengelompokkan data tersebut dalam satuansatuan data yang juga baru merepresentasikan adanya keterhubungan antar satuan-satuan
data. Satuan data yang satu akan memiliki karakteristik yang berbeda dengan satuan data
yang lain yang dideskripsikan lagi dengan adanya sejumlah atribut. Misalnya seperti yang
sudah ditunjukkan di pembahasan sebelumnya satuan data Mahasiswa dideskripsikan
dengan atribut-atribut nilai, nama mhs, alamat-Mhs dan tgllahir. Atribut-atribut tersebut
dapat dibatasi hingga di situ atau diperluas lagi dengan atribut-atribut lagi seperti tempatlahir, jurusan, nama-orang_tua, agama, dan seterusnya. Namun demikian efisiensi,
pembatasan atribut yang akan disertakan pada suatu satuan data perlu dilakukan dengan
tetap mempertimbangkan aspek kebutuhan.
Sementara itu, terhadap atribut-atribut yang telah ditetapkan / dipilih untuk
mendeskripsikan sebuah satuan data, kita memiliki banyak pilihan tentang cara
merepresentasikannya. Karena itu yang juga harus dipikirkan adalah menetapkan cara
representasi tiap atribut tersebut. Misalnya, atribut Jurusan dapat dinyatakan secara jelas
dan panjang seperti 'Teknik Informatika', 'Ekonomi', 'Sastra Jepang', dan lain-lain. Tetapi
kita juga dapat menyatakannya dalam bentuk kode ('IF', 'EK', 'SJ') dan lain-lain yang tentu
saja lebih ringkas dan efisien. Karena ketidakteraturannya dan karena banyaknya hal yang
baru dipertimbangkan maka akan cukup sulit dan sangat riskan jika kita mencoba
melakukan pengimplementasian secara langsung apa yang akan diimplementasikan di
'dunia nyata' ke dalam sebuah basis data fisik. Untuk mempermudahnya dimembutuhkan
model antara (model data lojik) dan Model Entity Relationship merupakan salah satu model
antara yang dapat digunakan.
Model Entity-Relationship (Model Keterhubungan Entitas)
Pemakaian istilah 'Model Keterhubungan-Entitas' dalam bahasa Indonesia dapat
digunakan sebagai padanan istilah asing Entity Relationship Model (E-R Model). Tetapi
istilah Model Entity Relationship telah umum digunakan diberbagai pembahasan tentang
analisis perancangan Basis Data. Pada Model Entity-Relationship, semesta data yang ada di
'Dunia Nyata diterjemahkan dan ditransformasikan dengan memanfaatkan sejumlah
perangkat konseptual menjadi sebuah diagram data, yang umum diset sebagai Diagram
Entity-Relationship (Diagram E-R). Yang harus lebih dulu diketahui adalah komponem
pembentuk Model Entity-Relationship. Sesuai namanya, ada 2 komponen utama
pembentuk Model Entity-Relationship yaitu Entitas (Entity) dan Relasi (Relation). Kedua
komponen dideskripsikan lebih jauh melalui sejumlah Atribut Properti.
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
51
52
Kumpulan semua relasi diantara entitas yang terdapat pada himpunan entitas
himpunan entitas tersebut membentuk Himpunan Relasi (Relationship Sets). Sebagaimana
istilah Himpunan Entitas yang banyak sekali disingkat menjadi Entitas (walaupun
sebenamya memiliki perbedaan makna), istilah Himpunan Relasi jarang digunakan dan
lebih sering disingkat dengan istilah Relasi saja. Di samping himpunan entitas Mahasiswa
yang telah ditunjukkan diatas kita juga memiliki himpunan entitas Kuliah dengan struktur
dan contoh data yang kita cuplik dari pembahasan sebelumnya.
Himpunan Entitas
Untuk memudahkan, sebut saja masing-masing entitas nilai dari atribut Namanya Oadi
pada himpunan entitas mahasiswa 'Ali Akbar', entitas 'Budi Haryanto', entitas 'Iman entitas
'Indah Susanti' dan pada himpunan entitas Kuliah, ada entitas 'Struktur Data', entitas 'Basis
Data', entitas 'Bahasa Indonesia' dat entitas 'Matematika I'. Dari ilustrasi ini terlihat adanya
relasi antara entitas 'Ali dengan entitas 'Struktur Data', entitas 'Basis Data' dan entitas
'Bahasa Indonesia'. Relasi ini mengandung arti, bahwa mahasiswa bernama Akbar'
mengambil 3 matakuliah, yaitu 'StrukturData', 'Basis Data' dan 'Bahasa Indonesia'. Lalu
entitas 'Budi Haryanto' memiliki relasi, yaitu dengan entitas 'Basis Data' dan entitas
'Matematika I berarti, mahasiswa bernama 'Budi Haryanto' tersebut mengambil
mempelajari 2 mata kuliah saja. Berikutnya, kita lihat entitas 'Iman tidak memiliki satupun
relasi dengan entitas-entitas dihimpunan entitas Kuliah. Hal ini berangkat dari Fakta, bahwa
mahasiswa bernama 'Faisal' memang tidak mengambil satupun mata kuliah (mungkin
karena sedang cuti kuliah). Terakhir entitas 'Indah Susanti' dengan entitas 'Struktur Data'
dan 'Basis Data' yang berarti mahasiswa tersebut mengambil dua mata kuliah tersebut.
Memang benar, bahwa hubungan atau relasi antar entitas tersebut berlaku pada
suatu masa pada semester dan tahun ajaran tertentu. Dengan kata lain, pada masa yang lain
pada semester dan tahun ajaran sebelumnya atau berikutnya, relasi-relasi yang terjadi
berbeda dengan yang digambarkan di atas. Kelak akan ditunjukkan, adanya faktor lain
dalam relasi antar entitas ini dapat diakomodasi / terapkan. Keserelasian yang ada di antara
kedua himpunan entitas tersebut memberikan sebuah Himpunan Relasi. Untuk menjelaskan
hubungan apa yang terjadi diantara kedua himpunan entitas tersebut, kita dapat memberi
nama Himpunan Relasi 'Mempelajari', atau Himpunan Relasi 'Belajar'.
Kardinalitas/Derajat Relasi
Kardinalitas Relasi menunjukkan jumlah maksimum entitas yang berelasi dengan entitas,
pada himpunan entitas yang lain. Pada contoh sebelumnya, dapat dilihat bahwa entitasentitas pada himpunan entitas Mahasiswa dapat berelasi dengan satu entitas, banyak entitas
bahkan tidak satupun entitas dari himpunan entitas Kuliah. Begitu juga sebaliknya, entitasentitas pada himpunan entitas Kuliah ada yang berelasi dengan beberapa entitas pada
himpunan entitas Mahasiswa dan ada Pula yang berelasi dengan satu entitas pada himpunan
Mahasiswa. Dari sejumlah kemungkinan banyaknya hubungan antar entitas tersebut
Kardinalitas Relasi merujuk kepada hubungan maksimum yang terelasi dari himpunan
entitas yang satu ke himpunan entitas yang lain dan benar juga sebaliknya. Pada contoh
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
53
diatas, maka hubungan maksimum himpunan entitas Mahasiswa kehimpunan entitas Kuliah
adalah lebih dari satu dan demikian Pula hubungan maksimum dari himpunan entitas
Kuliah ke himpunan entitas Mahasiswa adalah Banyak (lebih satu). Dengan demikian
Kardinalitas Relasi antara kedua himpunan entitas adalah Banyak ke Banyak. Kardinalitas
Relasi yang terjadi di antara dua himpunan entitas misalnya A dan B dapat berupa:
a. Satu ke Satu (One to One), yang berarti setiap entitas pada himpunan entitas A. dengan
paling banyak dengan satu entitas pada himpunan B, dan begitu juga sebaliknya setiap
entitas pada himpunan Kardinalitas Relasi B berhubungan dengan paling banyak satu
dengan paling Banyak ke Satu himpunan entitas A.
A
B
C
D
A
B
C
D
A
B
C
D
A
B
C
D
c. Satu ke Banyak (One to Many), di mana setiap entitas pada himpunan entitas A dapat
berhubungan dengan banyak entitas pada himpunan entitas B, tetapi tidak sebaliknya, di
mana setiap entitas pada himpunan entitas B berhubungan dengan paling banyak dengan
satu entitas pada himpunan A.
A
B
C
D
A
B
C
D
54
Jadi penggambaran pada contoh yang berarti setiap entitas pada himpunan entitas A
berhubungan Kardinalitas Relasi Banyak ke Satu, di mana himpunan entitas A dengan
paling banyak dengan satu entitas pada himpunan B yang ditempatkan di sebelah kanan dan
himpunan entitas B kita tempatkan sebelah kiri (dan hal ini boleh-boleh saia dilakukan),
maka kardinalitas Relasinya menjadi Satu ke Banyak B, tetapi tidak sebaliknya, di mana
setiap entitas pada himpunan entitas A berhubungan dengan paling banyak satu entitas
himpunan entitas B.
Diagram Entity-Relationship (Diagram E-R)
sebagai keN, pada hiiiipunin i-elasi tcrsebLIt. Ktrcn@i kedua tti-i
Model Entity-Relationship yang berisi komponen-komponen Himpuna ke-N tersebut
sebetulnya berasal dari atribut ke-N, dari Entitas dan Himpunan Relasi yang masing-masing
dilengkapi dengan himpunan entitas yang dihubungkannya, maka keduanya digolongkan
sebagai Key Asing (Foreign-Key).
2.
55
sesungguhnya ada banyak himpunan entitas yang bisa dilibatkan seperti Mahasiswa, Kuliah
Praktikum, Dosen, Asisten, Ruang, Jurusan, Literatur dan lain-lain.
2. Menentukan atribut-atribut key dari masing-masing himpun entitas.
Atribut-atribut ke N, yang disertakan dari himpunan masing-masing entitas merupakan
atribut terpenting yang dapat diidentifikasikan (membedakan) setiap entitas yang ada
didalamnya. Keberadaan atribut ini juga akan memberi keyakinan tentang keberadaan
eksistensinya dari setiap himpunan entitas. Salah satu ciri dari himpunan entitas adalah
kemandiriannya. Kemandirian itu terlihat dari kejelasan atribut yang menjadi k-N, dan
perbedaannya dengan yang ada himpunan entitas yang lain. Dengan mudah dapat
disepakati bahwa pengidentifikasian setiap entitas secara unik di himpunan entitas
Mahasiswa adalah atribut lalu di himpunan entitas Kuliah adalah atribut kode kuliah dan di
himpunan entitas Dosen adalah atribut kode-kul dan dosen merupakan atribut-atribut yang
tidak saling tergantung karena itulah dapat diyakini bahwa Mahasiswa, Kuliah dan Dosen
memang merupakan himpunan entitas yang tepat.
3. Mengidentifikasi dan menetapkan seluruh himpunan relasi antara himpunan
entitas-himpunan entitas yang ada beserta foreign key-nya.
Langkah ini merupakan langkah terpenting dalam Pembentukan Diagram E-R. Ketepatan
dalam menentukan relasi yang terjadi diantara himpunan entitas akan sama menentukan
kualitas rancangan basis data yang dibangun. Relasi yang ditetapkan harus dapat
mengakomodasi semua fakta yang ada dan menjamin semua kebutuhan penyajian data.
1. Menentukan derajat/kardinalitas relasi untuk setiap himpun.
2. Melengkapi himpunan entitas dan himpunan relasi dengan atribi
56
57
58
59
pemanfaatan dbase III+ semakin luas dan diperkaya dengan perangkat lunak pembangun
aplikasi (development tools) untuk basis data semacam Clipper dan FoxPro. Sementara
untuk kelas komputer yang lebih tinggi (mini dan mainframe) sudah mulai lahir produkproduk DBMS, seperti IBM-DB2, SDK-Ingres dan Oracle, yang pemakaiannya tetap
dipadukan dengan bahasa pemrograman yang populer saat itu, yaitu COBOL. DBMSDBMS itu yang selanjutnya menjadi cikal-bakal DBMS yang sekarang banyak digunakan.
Sejalan dengan perkembangan teknologi perangkat keras yang membuat C, komputer
semakin cepat dan kapasitas memori (baik memori utama maupun memori sekunder) yang
semakin besar, penerapan DBMS dengan kemampuan yang lebih kaya menjadi layak
(feasible) untuk diterapkan. Hal itu terjadi baik untuk komputer mikro maupun untuk
komputer mini dan mainframe. Bahkan dengan antusiasme dari Microsoft selaku pionir
perangkat lunak dalam komputer mikro, teknologi basis data dan DBMS di antara kelaskelas komputer (mikro, mini dan mainframe) sudah tidak jelas lagi batasnya. DBMS yang
digunakan untuk jaringan komputer mikro sudah sama bagusnya dengan DBMS Yang
digunakan untuk jaringan komputer mini/mainframe. Dengan semakin kaburnya batas
teknologi antara berbagai kelas komputer tersebut, hampir semua DBMS telah disediakan
dalam berbagai platform dan kelas komputer. Kita misalnya, akan dengan mudah
menemukan DBMS Oracle untuk versi HP-Unix dalam komputer mini atau DBMS Oracle
untuk versi MSWindows NT dalam komputer mikro. Dengan demikian, saat ini sudah tidak
beralasan lagi jika kita melakukan pemilahan kelompok DBMS berdasarkan kelas
komputer. Yang masih bisa diterima barangkali pengelompokkan DBMS berdasarkan
orientasi pemakaiannya dan berdasarkan teknologinya.
Berdasarkan orientasi pemakaiannya, kita dapat mengelompokkan DBMS dalam 2
katagori, yaitu :
1. DBMS yang berorientasi untuk satu atau sedikit pemakai
MS-Access, dBase/Clipper, FoxBase, Borland-Paradox merupakan contoh-contoh DBMS
yano, lebih diorientasikan untuk satu pemakai dan karena itu dapat dengan mudah dipasang
di komputer pribadi (personal contputerIPC).
Jika awalnya, struktur tabel hanya mencakup pendefinisian nama-field, tipe dan
ukurannya, DBMS yang lebih baru juga memasukkan feature boleh tidaknya field
dikosongkan, nilai awal (default), deskripsi field dan bentuk validasi (pendefinisian domain
nilai) sebagai bagian dari struktur tabel. Tipe data Yang dapat ditangani oleh DBMS terbaru
sudah semakin banyak, seperti untuk mengakomodasi kebutuhan penyimpanan data teks
Yang panjang, teks berformat gambar, data OLE, uang dan data autoincrement (Yang
nilainya bertambah otomatis).
Bersama dengan komponen utamanya, DBMS kelompok ini juga seringkali
dilengkapi dengan berbagai utilitas tambahan untuk mempermudah pemakai dalam
menggunakan DBMS, seperti untuk pembuatan query, pembuatan laporan, pembuatan
screen untuk berinteraksi dengan data, bahkan hingga pembuatan (men-getierate)
perintah/makro basis data secara otoinatis melalui pendefinisian menu dan tampilan layar.
DBMS kelompok ini, karena memang lebih diorientasikan untuk pemakai tunggal, juga
sering dimanfaatkan sebagai media pembangun aplikasi basis data, schingga DBMS dan
aplikasi basis data jadi menyatu bahkan aplikasi basis data sendiri cenderung dianggap
60
sebagai objek basis data sebagaimana tabel-tabel data Yang kita gunakan untuk menyimpan
data.
Karena orientasi pemakai seperti itu, maka DBMS-DBMS kelompok ini, lemah
dalam sejumlah aspek Yang justru harus sangat diperhatikan pada kelompok DBMS Yang
kedua, seperti yang berkaitan dengan masalah pengamanan basis data, pemeliharaan basis
data, mengendalikan persaingan pemakaian basis data dan lain-lain. Objek-objek basis data
basis pengelolaan DBMS kelompok pertama ini akan sangat transparan bagi para pemakai
dan sisten, operasi Yang kita gunakan. Melalui sistem operasi kita dapat dengan mudah
menemukan file-file basis data sebagaimana file-file biasa, walaupun tidak sedang bekerja
dengan DBMS Yang bersangkutan. Karena sifatnya Yang transparan ini, maka file-file
tersebut menjadi terbuka untuk diakses dan dikelola oleh perangkat lunak Yang lain asalkan
perangkat lunak tersebut dapat mengenali format penyimpanan datanya.
2.
DBMS Yang berorientasi untuk banyak pemakai
Oracle, Borland-Interbase, MS-SQL Server, CA-OpenIngres, Sybase, Informix, IBM-DB2
merupakan contoh-contoh DBMS Yang lebih diorientasikan untuk banyak pemakai dan
karena itu lebih ditujukan untuk pemakaian pada sistem jaringan komputer (LAN ataupun
WAN). Tidak sebagaimana kelompok pertama, DBMS pada kelompok ini sangat tegas
memisahkan fungsi pengelolaan basis data dan fungsi pembangunan aplikasi. Jika pada
kelompok pertama, objek-objek basis data bersifat transparan, maka objek-objek Yang
dihasilkan oleh DBMS kelompok kedua bersifat sebaliknya. Transparansi hanya berlaku
bagi DBMS Yang bersangkutan, sehingga pemanfaatan objek-objek basis datanya hanya
mungkin dilakukan dengan lebih dulu mengaktifkan DBMS tersebut. Fungsi-fungsi
pendukung (utilitas) Yang umumnya disatukan pada DBMS kelompok pertama, disediakan
terpisah pada DBMS kelompok kedua ini, bukan saja karena fungsi-fungsi pendukung
tersebut tidak relevan untuk selalu diaktifkan, tetapi juga karena fungsi pengelolaan Yang
ditangani DBMS kelompok ini memang sudah sedemikian banyak dan jauh lebih penting.
Pada versi-versi terbaru dari DBMS kelornpok kedua ini, seperti juga di kelompok pertama,
perluasan definisi struktur data dan pengkayaan tipe-tipe data baru juga diakomodasi.
Perbedaan Yang sangat mencolok di antara kedua kelompok DBMS terletak pada lingkup
fungsi pengelolaan basis data. Selain memiliki fungsi-fungsi standar (Yang juga dimiliki
DBMS kelompok pertama) seperti pembentukan objek-objek basis data (tabel dan indeks),
manipulasi data (penambahan, pengubahan dan penghapusan data) dan pencarian data
(query), f'ungsi pengelolaan DBMS kelompok kedua ini juga mcnangani aspek-aspek :
Pengamanan objek basis data terhadap akses pemakai Yang berhak (aspek securitas dan
bentuk-bentuk operasi Yang diperbolehkan (aspek integrity).
Penanganan pemulihan data akibat kegagalan operasi basis data (aspek recovery), baik
yang disebabkan oleh operasi-operasi basis data Yang salah atau menimbulkan konflik,
maupun disebabkan oleh faktor-faktor eksternal seperti mesin Yang (crash), disk Yang
rusak atau terputusnya koneksi jaringan .
Pembuatan data cadangan (aspek backup) yang dapat dilakukan secara insidental maupun
periodik, Yang dapat dilakukan statis (dengan menonaktifkan pemakaian basis data) atau
secara dinamis (tanpa menghalangi pemakaian basis data para pemakai). Pengendalian
persaingan pemakaian objek-objek basis data banyak pemakai pada saat Yang sama (aspek
concur control) demi terjaminnya konsistensi data dan optimal pemakaian setiap sumber
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
61
daya mesin. Optimalisasi pengerjaan query (aspek query processing) diberikan oleh
aplikasi pada server DBMS demi peningkatan performansi / kecepatan pengerjaannya.
Optimalisasi pemanfaatan sumber daya (aspek processing/database) dengan
memperhatikan optimal pemakaian sumber daya mesin seperti prosesor, disk dan
mengutamakan jika tersedia lebih dari satu dalam sebuah mesin.
Di samping fungsi pengelolaan basis data Yang demikian ban produsen pembuat DBMS
juga menyiapkan modul-modul khusus (program utilitas) Yang erat hubungannya dengan
pengelolaan basis data. Program-program tersebut ada Yang dapat diaktifkan ditempat
DBMS berada atau dipasang dan dijalankan di pemakaian (di sisi client atau work-station).
Program-program utility tersebut dapat berupa:
Program penentuan awal untuk pengalokasian sumber di server/basis data (program setup)
Yang dapat menetapkan prosesor mana saja ada lebih dari satu) Yang digunakan dalam
pengelolaan basis data, berapa besar ruang memori utama Yang digunakan untuk mengeloia
data, berapa banyak batas pemakai kotikuren Yang boleh terjadi, berapa banyak ruang
penyimpanan (disk) maksimal yang digunakan untuk penyimpanan data, user mana saja
yang boleh mengakses basis data dan lain-lain.
Program untuk memonitor pelaksanaan pengetolaan basis data yang dapat digunakan untuk
melihat tingkat pemakaian kesibukan DBMS bahkan ada pula yang dilengkapi dengan
fungsi intervensi (misalnya untuk mematikan proses berat yang sangat menghambat
pelaksanaan proses-proses lain).
Program untuk pengaturan dan pengoptimalan penggunaan berbagai sumber daya server
dan basis data (program tuning) selama proses pengelolaan basis data berlangsung.
Berdasarkan perkembangan teknologinya, kita dapat memilah DBMS dalam beberapa
katagori yang jumlahnya bisa bertambah seiring dengan perkembangan teknologi di masa
yang akan datang. Beberapa kategori DBMS itu adalah:
1.
DBMS Konvensional (Legacy DBMS)
Sebagian besar DBMS yang ada saat ini masih dapat dikatagorikaa sebagai DBMS
Konvensional yang sudah menjadi standar pemakai di berbagai tempat. DBMS
Konvensional ini meliputi juga DBMS untuk pemakai tunggal maupun banyak pemakai
tetapi dengan menerapkan model basis data lama, yaitu model jaringan, model hirarkis,
ataupun model yang lebih populer, model relasional.
DBMS Berorientasi Objek (Object-OrientedDBMSIOODBMS)
DBMS Berorientasi Objek merupakan respon terhadap perkembangan yang terjadi dalam
dunia pemrograman (pemrograman berorientasi objek).
DBMS Objek Relasional (Object-RelationalDBMSIORDBMS)
DBMS Objek Relasional merupakan DBMS yang merupakan kompromi antara DBMS
Relasional dengan yang berorientasi objek yang memang masih dalam tarap
pengembangan, Secara objektif, DBMS ini sebenarnya masih menerapkan model relasional
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
62
sebagai basis pengelolaan datanya. Aspek Objek dalam DBMS ini merupakan tambahan
feature yang bisa digunakan ataupun tidak digunakan sama sekali. Jika DBMS sudah
menjadi standar dan mulai banyak diterapkan, hampir bisa dipastikan DBMS kompromi ini
tidak memadai lagi untuk digunakan.
4.
DBMS untuk Web/Internet (Internet DBMS)
DBMS untuk Web/Internet merupakan DBMS yang dibuat untuk keperluan khusus yaitu
menangani dokumen-dokumen (halaman-halaman) Web yang banyak digunakan di dunia
Internet.
5. Lingkup Penerapan Basis Data
Awalnya, pembangunan Model Basis Data bertitik tolak dari sistem pengelolaan file. Jika
sistem operasi lebih melihat file secara utuh yang merupakan objek yang tidak bisa dibagi
lagi, maka DBMS melihat file sebagai objek yang berisi banyak data yang disusun secara
sistematis yang masing,-masing dapat dikenai berbagai operasi secara individual. Sistem
pengelolaan file yang lebih kaya semacam ini direalisasikan dalam model jaringan, model
hirarkis dan kemudian model relasional. Model-model basis data tersebut memiliki
sejumlah karakteristik seperti Keseragaman (uniformity). Sekian banyak data dikelola
dengan struktur dan ukuran (byte) yang sama.
Berorientasi Record (Record Otientation)
Satuan-satuan data utama terdiri atas record-record yang sama panjangnya, Satuan Data
Kecil (Small Data Items). Ukuran setiap record relatif pendek (umumnya berukuran hinoga
beberapa ratus byte).
Field-Field Atomik (Atomic Fields).
Field-.field dalam record relatif pendek dan sama ukurannya. Field tidak mungkin
terbentuk dari struktur yang lebih kecil lagi jadi sifatnya atomik). Dalam beberapa tahun
terakhir, teknologi basis data dengan karakteristik semacam itu sudah tidak memadai lagi
untuk diterapkan pada sejumiah aplikasi terbaru. Aplikasi-aplikasi seperti itu diantaranya
adalah :
* Computer-Aided Design(CAD)
Basis data untuk CAD harus dapat menampung data yang berkaitan dengan desain
perekayasaan yang berbentuk grafis seperti komponen-komponen dengan berbagai properti
dan relasi antar komponen serta versi-versi lama dari desain. Penyimpanan data yang
berbentuk grafis di samping berukuran besar juga sangat bervariasi ukurannya.
* Computer-Aided Software Engineering (CASE)
Basis data untuk CASE harus dapat menampung data yang dibutuhkan untuk membantu
para pembangun aplikasi. Data semacam ini meliputi kode sumber, ketergantungan antar
modul-modul aplikasi, definisi dan pemakaian variabel dan histori pembangunan aplikasi.
* Basis Data Multimedia
Basis data multimedia harus dapat mengelola gambar, data spasial (ruang), audio (suara dan
musik), video dan sejenisnya. Basis data semacam ini dibutuhkan untuk menyimpan fotofoto, data geografis (pemetaan), sistem voice-ditail dan aplikasi-aplikasi grafis.
63
Gagasan
tentang
pemrograman
berorientasi
objek
(object-oriented
programming/OOP) segera saja menarik perhatian orang karena berbagai kelebihan yang
dimilikinya. Dalam dunia OOP, diperkenalkan adanya objek dalam pemrograman. Objek
meniadi komponen utama pemrograman OOP. Kita dapat mengambil objek dalam OOP
64
sebagaimana objek dalam kenyataan sehari-hari. Seorang manusia sebagai sebuah objek,
misalnya, memiliki sifat-sifat dan kepemilikan yang khusus seperti nama, alamat, usia,
tinggi badan, jenis kelamin dan sebagainya yang juga dimiliki manusia lain tapi dengan
nilai-nilai yang berbeda. Seorang manusia sebagai sebuah objek dapat melakuk pekerjaanpekerjaan khusus seperti makan, bergerak, tidur dan seterusnya yang tentu dapat pula
dikerjakan oleh manusia lain tapi belum tentu dapat dikerjakan oleh objek yang jenisnya
berbeda, misalnya sepeda (sepeda bisa bergerak tapi tidak dapat makan dan tidur).
Konsep objek tersebut kemudian diterapkan dalam lingkup pemrograman. Dalam
sebuah program, menu adalah sebuah objek, tampilan layar adalah sebuah objek, tulisan
(teks) yang tertera di layar adalah sebu objek, isian tempat user memasukkan data adalah
sebuah objek dan seterusnya. Namun sedikit berbeda dengan objek manusia dan sepeda
diatas, penggunakan istilah sifat / kepemilikan digantikan dengan atribut (atau properti)
dan istilah kerja digantikan dengan metoda. Penerapan konsep objek tersebut membawa
konsekuensi-konsekuensi baru yang sangat menarik, seperti adanya kepemilikan objek
(ownership) hubungan ayah-anak di antara objek (parent-child relationship pewarisan
(inheritance) atribut dan metoda dari kelas objek yang lebih tinggi ke kelas objek di
bawahnya, pembungkusan (encapsulation) atribut dan metoda suatu objek oleh objek
lainnya dan pemaksaan perubah perilaku (polymorphism) suatu objek menjadi objek lain.
Penerapan konsep objek ini membuat penulisan pemrograman menjadi lebih sederhana,
lebih kompak, lebih fleksibel tetapi dengan kemampuan yang jauh lebih baik (powerful).
Keunggulan yang ditunjukkan oleh pemrograman berorientasi objek kemudian
menerbitkan gagasan untuk juga menerapkan konsep yang sama dalam lingkungan
pengelolaan basis data. Riset dan pembuat prototipe DBMS yang secara khusus mengelola
basis data yang berorientasi objek ini sudah lama dilakukan. Malah saat ini sudah ada
DBMS berorientasi objek (Object-Oriented DBMS/OODBMS) yang dipasarkan, seperti
CA-Jasmine. Kendati belum semapan apa yang telah dicapai oleh OOP, di masa datang
pemakaian OOP DBMS cukup menjanjikan. Belum populerya pemakaian OOP DBMS
selain disebabkan oleh beberapa keraguan akan kehandalannya, juga karena upaya
konvergen sistem dari DBMS konvensional ke OOP DBMS meniadi sangat berarti kita
ingin benar-benar menerapkan aspek object-oriented ini dalam sistem yang baru. Karena,
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
65
jika melakukan konversi sistem yang ini (konversi langsung), maka kita tidak akan
memperoleh keuntungan yang berarti. Dalam basis data berorientasi objek, secara
sederhana, kita dapat membayangkan objek sebagaimana entitas dalam model E-R.
Orientasi objek pada basis data ini didasarkan pada terjadinya pembungkusan (menyatunya)
data dan aksi yang berhubungan dengan suatu objek menjadi sebuah unit tunggal. Secara
konseptual, semua interaksi di antara sebuah objek dan sistem yang menjadi lingkungannya
dijalankan melalui pesan (message), atau tepatnya sekumpulan pesan. Secara umum,
sebuah objek dalam basis data berasosiasi dengan :
Sekumpulan variabel/atribut yang berisi data untuk objek tersebut; kita dapat
menyetarakannya dengan atribut dalam model E-R.
Sekumpulan pesan (message) yang dapat menimbulkan reaksi objek tersebut, setiap pesan
dapat memiliki satu, dua atau lebih parameter atau malah tanpa parameter.
Sekumpulan metoda (method), yang masing-masing merupakan bagian utama aksi (code)
yang mengerjakan sebuah pesan (message), sebuah metoda akan memberikan sebuah nilai
sebagai respon ke message yang memintanya.
Kita dapat mengilustasikan hal-hal tersebut dengan mengambil contoh tentang entitas
mahasiswa dalam basis data perkuliahan. Setiap entitas mahasiswa memiliki variabelvariabel seperti nim, nama-mhs, alamat-mhs dan tgLahir yang berturut-turut menyimpan
data nim, nama, alamat dan tanggal lahir mahasiswa. Di samping itu, terhadap setiap enfitas
tersebut ditetapkan pula sejumlah message seperti total-Sks, hitung-ip, panjangdata yang
masing-masing memiliki fungsi yang khusus/berbeda. Sebagaimana variabel, jumlah dan
macam message yang kita gunakan/sediakan bisa bertambah dan berkurang tergantung
kebutuhan dan relevansinya dengan pemanfaatan basis data di dalam sistem. Message
hitung-ip, misalnya, digunakan untuk menghitung dan sekaligus memberikan hasil tentang
nilai Indeks Prestasi dari entitas mahasiswa tertentu. Aplikasi yang kita buat dan
memanfaatkan basis data semacam ini hanya perlu memberi/menggunakan message yang
telah disediakan tanpa perlu tahu bagaimana cara mendapatkannya. Oleh basis data,
message yang diterima terhadap suatu objek (entitas) akan diproscs oleh sekumpulan kode
(sebuah metoda) yang juga telah melekat (terenkapsulasi) pada objek tersebut. Dengan
begitu, penggunaan perintah-perintah yang berhubungan dengan pengaksesan basis data
akan menjadi lebih mudah dan sederhana dan akan lebih bertahan lama. Jika kelak di
kemudian hari, formula yang digunakan untuk menghitung nilai Indeks Prestasi mahasiswa
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
66
berubah, kita tidak perlu melakukan perubahan di aplikasi. Perubahan hanya dilakukan
pada pengkodean metoda yarig berhubungan dengan message untuk menghitung Indeks
Prestasi tersebut. Di sinilah salah satu keunggulan dari basis data berorientasi objek.
BA / DA
Metoda dari sebuah objek dapat dikelompokkan dalam metoda read only dan metoda
update. Metoda read-only tidak akan mempengaruhi nilai-nilai variabel dari suatu objek,
sementara metoda update date mengubah nilai-nilai variabel. Demikian juga dengan
message yang didasarkan pada metoda yang melaksanakan message tersebut.
Atribut Turunan (Derived Attribute) sebuah entitas dalam model E-R dapat
diekspresikan dalam model berorientasi objek sebagai message read-only. Pada contoh di
atas hitung-ip merupakan message read-only. Message hitung-ip ini dapat kita setarakan
dengan atribut turunan ip yang dapat kita tambahkan tabel Mahasiswa. Sedangkan ubahdata yang berfungsi untuk melakukan perubahan nilai-nilai variabel suatu objek (entitas)
mahasiswa merupakan message update.
Biasanya, akan banyak objek yang memiliki kesamaan dalam basis data Memiliki
kesamaan artinya dapat memberi respon terhadap niessageya sama, menggunakan metoda
yang sama dan memiliki variabel-variabel dengan nama dan tipe yang sama. Objek-objek
dengan kesamaan tersebut dapat dikelompokkan dalam sebuah kelas (class). Setiap objek
yang meniadi anggota sebuah class biasa disebut instance. Semua objek dalam sebuah
class memiliki definisi yang sama, walaupun berbeda pada nilai nilai variabelnya. Sebuah
class dapat diasosiasikan dengan sebuah himpunan entitas dalam model E-R. Contoh class
dalam basis data perkuliahan adalah Mahasiswa, Dosen dan Kuliah.
Struktur basis data berorientasi objek dibangun atas banyak clas Sejumlah class seringkali
memiliki kesamaan. Sebagai contoh kita memiliki class Mahasiswa dan class Dosen.
Kedua class ini memiliki kesamaan karena keduanya memiliki variabel yang berisi nama
dan alamat setiap objek. Kedua class ini dapat 'disatukan' dalam class baru yaitu class
Civitas-Akademika. Jika lebih lanjut lagi kita membuat spesialisasi atas class Dosen
dengan memilahnya menjadi Dosen Tetap dan Dosen Tidak Tetap.
67
68
itu, perlu ada DBMS yang dapat mengelola data multimedia di dalam basis data. Di dalam
basis data berarti bahwa data multimedia tersebut sama kedudukannya sebagaimana fieldfield data sederhana, tetapi dengan perlakuan yang sedikit berbeda, karena ada sejumlah isu
yang juga harus terpenuhi jika data multimedia tersimpan di dalam basis data, yaitu:
basis data harus dapat mengakomodasi objek-objek yang besar, karena data multimedia
seperti video dapat membutuhkan ruang penyimpanan hingga beberapa GB (gigabyte).
adanya fasilitas untuk pengambilan data berdasarkan kemiripan (similari), based retrieval
yang diperlukan oleh banyak aplikasi basis data multimedia. Contohnya, pada basis data
yang menyimpan data sidik jari, ada kebutuhan untuk mencari data sidik jari (yang
berbentuk gambar) yang sama atau memiliki kemiripan dengan batas toleransi tertentu.
pencambilan sejumlah data dengan tipe tertentu, seperti musik (audio) dan video, juga
mensyaratkan adanya kecepatan pengambilan yang tetap dan tertentu (continuous-media
data). Pengambilan data yang lebih cepat atau lebih lambat dari yang seharusnya atau
kecepatan yang berubah-ubah akan mengganggu kualitas hasil yang diterima oleh pemakai.
Similarity-Based Retrieval
Pada sejumlah aplikasi multimedia, data direpresentasikan hanya sebagai pendekatan pada
fakta yang sesungguhnya. Contoh yang sudah disebutkan adalah data sidik jari. Contoh
lainnya :
Data foto (pictorial data)
Dua foto atau gambar yang sedikit berbeda dan disimpan dalam basis data dapat dianggap
sama oleh seorang pemakai. Logo perusahaan atau merk dagang, misalnya, bisa kita nilai
memiliki kemiripan dengan logo perusahaan atau merk dagang lain yang lebih dulu ada.
Data audio
Sudah ada aplikasi yang menyediakan antar muka (interface) yang berbasis suara (audio),
sehingga pemakai dapat memberi perintah pada aplikasi dengan menggunakan suaranya.
Suara juga dapat menjadi semacam password untuk mengidentifikasi seseorang.
Pengenalan suara tersebut dilakukan dengan pembanding kemiripan suara yang diberikan
dengan basis data suara yang telah ada lebih dulu.
* Data tanda tangan
Data tanda tangan dapat dijadikan sebagai pengidentifikasi seseorang. Karena seseorang
tidak mungkin membuat tanda tangan yang benar-benar sama, maka pencari data yang
berbasis kemiripan data diperlukan. Kemiripan memang seringkali bersifat subjektif dan
sangat tergantung pada persepsi user. Kendati demikian, sudah ada sejumlah algoritma
yang dapat dipakai untuk memenuhi kebutuhan pembandingan atau pencari data yang
berbasis kemiripan tersebut dengan kualitas yang sangat memadai.
Continuous-Media Data
Tipe data yang paling penting yang berkenaan denoan conttinuous-media data adalah data
audio dan video. Sistem cotitinuous-media ditangani dengan volume data yang besar dan
kebutuhan transfer data yan- real time (tepat waktu) :
t,
Data harus dapat terkirim secara konstan tanpa adanya kesenjangan pada tampilan audio
ataupun video yang dihasilkan.
Data harus dapat terkirim dengan kecepatan yang dapat ditampung oleh sistem buffer yang
ada.
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
69
Sinkronisasi diantara aliran data yang berbeda harus dapat terpelhara. Sebagai contoh, suara
orang yang berbicara (audio) harus sesuai dengan gerakan bibir yang terlihat sebagai
gambar video.
Kebutuhan di atas dapat terpenuhi dengan kerjasama yang baik antara format/pola
penyimpanan data tersebut dalam basis data dan strate algoritma yang digunakan dalam
aplikasi yang memanfaatkan data tersebut.
Format Data Multimedia
Karena besarnya ukuran yang dibutuhkan untuk merepresentasikan data multimedia, maka
menjadi penting sekali jika data tersebut dapat disimpan dan ditransfer dalam bentuk yang
terkompresi. Karena ukuran data terkompresi jauh lebih kecil, maka ruang penyimpanan
yang dibutuhkan akan lebih sedikit dan demikian juga dengan waktu yang dibutuhkan
untuk transfer data. Memang benar, merepresentasikan data dalam bentuk yang terkompresi
juga membutuhkan waktu tambahan (time-overhead) khususnya untuk melakukan proses
pengkodean (encoding) pada saat penyimpanan dan penguraian kode (decoding) pada saat
penayangan data pada pemakai. Tetapi mengingat besarnya data, waktu untuk encoding
decoding yang tergantung pada kecepatan prosesor dan pengaksesan memori utama akan
relatif lebih kecil bila dibandingkan dengan waktu yang dibutuhkan untuk baca-tulistransfer data yang tergantung pada kecepatan kerja memori sekunder/disk jika tidak
terkompresi. Data berupa gambar (image), misalnya, sering disimpan dalam format
kompresi. Yang banyak digunakan adalah format JPEG, yang diambil dari nama
penciptanya, yaitu Joint Picture Experts Group. Kita juga dapat memanfaatkan format ini
untuk menyimpan data video, walaupun ada format lain yang lebih umum digunakan.
MPEG (Motion Picture Experts Group) juga telah membuat standar untuk mengkompresi
data video dan audio dengan menggunakan teknik kesamaan (commonalities) di antara
sekuen/potongan frame-frame video dan audio untuk mendapatkan derajat kompresi yang
lebih besar. Standar MPEG-I mampu menyimpan 1 menit data video dan audio (dengan
kecepatan 30 frame per detik) hanya dalam 12.5 MB (bandingkan dengan penyimpanan
dalam format JPEG untuk video yang membutuhkan 75 MB atau bahkan jika tidak
dikompresi dan disimpan dalam format BMP yang membutuhkan hingga 800 MB). Akan
tetapi, format MPEG-1 juga menghasilkan penurunan pada kualitas hasil (khususnya
video). Standar format kompresi yang lebih baik adalah MPEG-2 yang dapat menghasilkan
kualitas gambar yang lebih baik, tapi dengan kebutuhan ruang penyimpanan yang sedikit
lebih besar. MPEG2 dapat menyimpan 1 menit data video dan audio dalam 17 MB.
Basis Data untuk Internet (Web Technologj)
World Wide Web (www atau Web saja) merupakan sistem informasi terdistribusi yang
berbasis hypertext. Dokumen-dokumen yang menjadi unsur utama di dalam Web dapat
dinyatakan dalam beberapa tipe. TIP yang paling populer adalah dokumen hypertext yang
disusun memakai bahasa khusus, seperti HTML (Hypertext Markup Language). Dokumen
HTML terdiri atas teks, spesifikasi jenis huruf (font) dan instruksi format lainnya. Di
dalamnya juga terdapat link ke dokumen lainnya atau kehalaman lain pada dokumen yang
sama. Gambar dan suara juga diakses dengan menggunakan link (ke file gambar atau suara
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
70
tersebut). Para pemakai (user) sistem Web akan melihat tampilan teks yang terformat
bersama dengan gambar, bukannya teks awal (yang masih bersama sejumlah instruksi
pemberian format. Secara visual tentu teks terformat dan bergambar akan lebih menarik
perhatian para pemakai. Lebih jauh lagi, dokumen yang terlihat oleh pemakai merupakan
dokumen hypertext yang dengan program browser tertentu, pemakai dapat mengklik
(menekan tombol mouse) pada lokasi/daerah teks tertentu dan dokumen untuk kemudian
terhubung (berpindah) ke lokasi/dokumen. Program browser merupakan program khusus
untuk menterjemahkan dan mengerjakan instruksi-instruksi format terhadap teks dan
gambar yang hasilnya kemudian disajikan pada para pemakai. Program-program browser
yang banyak digunakan saat ini seperti Netscape-Navigator Microsoft-Internet Explorer.
Dalam perkembangan selanjutnya, program browser terbaru juga mampu menjalankan
bahasa pemrograman khusus seperti java (yang dibuat oleh Sun-Microsystem), yang
memugkinkan dokumen-dokumen berisi program yang dapat dieksekusi di komputer (site)
milik pemakai. Dengan begitu, dokumen menjadi aktif tidak sebagaimana sebelumnya yang
lebih bersifat pasif.
Universal Resource Locator (URL)
Sistem hypertext mengandung konsekuensi tentang adanya penyimpanan pointer (penunjuk
lokasi) ke tempat dokumen-dokumen berada. Dalam Web, fungsi pointer ini diberikan oleh
Universal Resource Locator ( Berikut ini adalah sebuah contoh URL:
http://www.fath.com/buku/basis-data
Bagian pertama dari URL menunjukkan bagaimana dokumen dapat diakses. Potongan 'http'
menunjukkan bahwa dokumen harus diakses dengan menggunakan hypertext Transfer
Protocol, yang berupa sebuah protokol untuk pentransferan dokumen HTML. Bagian kedua
padat URL ('www.fath.com') menunjukkan nama unik dari sebuah mesin Internet, Lalu
bagian sisa pada URL merupakan nama path yang menunjukkan lokasi file pada mesin
tersebut. Dengan demikian, URL mernberikan nama unik secara global untuk setiap
dokumen yang dapat diakses oleh sistem Web. Karena URL mudah dibaca dan terbuka
untuk diakses, maka setiap orang dapat menggunakan secara langsung untuk mengakses
dokumen tertentu dan berpindah-pindah dari satu dokumen ke dokumen lain bahkan dari
satu mesin ke mesin lain.
Servey untuk Web (Web serves)
HTTP menyediakan fasilitas yang bagus, di samping transfer dokumen yang mudah, juga
melakukan enkripsi pada dokumen demi alasan keamanan. Bagian nama dokumen dalam
URL dapat mengidentifikasi sebuah program executable, yang ketika dijalankan, akan
menghasilkan dokumen HTML. Sebuah server menerima perrnintaan untuk pengambilan
dokumen tertentu, server mengeksekusi program tersebut dan mengirimkan dokumen
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
71
HTML yang dihasilkan program tersebut. Lebih jauh lagi, client Web dapat mengirimkan
argumen-argumen tambahan yang akan digunakan program pada saat dieksekusi. Dengan
begitu, pembentukan dokumen dapat menjadi bervariasi karena ditentukan oleh argumenargumen yang disertakan ke server tersebut. Sebagaian dari feature demikian, sebuah
Server Web dapat dengan mudah melayani berbagai macam layanan informasi.
72
73
perancangan basis data. Berat/ringannya pekerjaan perancangan basis data lebih banyak
disebabkan oleh perkembangan dan kompleksitas 'dunia nyata' yang ingin diakomodasi
dalam sebuah sistem basis data. Perancangan basis data menjadi lebih berat lagi jika faktor
fleksibilitas juga harus diakomodasi untuk mengantisipasi perkembangan sistem di masa
datang yang saat ini belum terjadi atau untuk mengantisipasi adanya kondisi-kondisi
anomali. Kompleksitas dunia akademik saat ini semakin meningkat jika dibandingkan
dengan kompleksitasnya di 10 tahun yang lalu. Perancangan basis data akademik /
perkuliahan akan menjadi semakin rumit jika kemudian perancangan itu bukan hanya
diperuntukkan bagi sebuah perguruan tinggi tertentu, tapi juga dibuat untuk tujuan
penerapan yang lebih luas, di berbagai perguruan tinggi dengan fakta dan aturan yang
berbeda-beda.
Tidak ada sebuah carapun yang dapat digunakan untuk menyederhanakan sebuah
sistem yang memang telah bekerja dan menjadi kenyataan. Menyederhanakan sistem,
menyederhanakan persoalan dan menyederhanakan 'dunia nyata' bukanlah tugas dari
perancangan sistem basis data ataupun pembangunan sistem informasi. Sumbangan yang
lebih diharapkan dari penerapan teknologi informasi pada sebuah sistem adalah akurasi
hasil serta kemudahan dan kecepatan pengoperasian sistem. Memang akan menjadi cukup
sulit atau paling tidak membutuhkan waktu yang tidak sebentar untuk bisa mengajukan
solusi yang optimal terhadap sebuah sistem atau 'dunia nyata' dengan tingkat kompleksitas
yang tinggi. Terhadap persoalan atau kenyataan yang demikian kompleks, yang paling
penting adalah bagaimana cara pendekatan yang diambil untuk menghasilkan solusi
sementara yang kemudian disempurnakan hingga akhirnya didapat sebuah solusi akhir. Di
sini kita harus sadar betul bahwa pembangunan sebuah solusi adalah siklus dan karena itu
bisa berulang, tapi juga liarus berakhir.
Katakanlah kita ditugaskan untuk membangun sebuah sistem major untuk
mendukung/membantu pengoperasian sebuah sistem di sebuah perusahaan. Hasil analisa
yang telah dilakukan menunjukkan adanya A hingga Z himpunan entitas yang terlibat dan a
hingga z aturan status yang berlaku dalam pengoperasian sistem tersebut. Terhadap sistem
yang demikian kompleks, mada beberapa alternatif cara pendekatan yang dapat kita
lakukan, yaitu :
Sistem Basis Data & Perancangan Sistem
AMIK JTC Semarang
74
75
atas hasil analisis terhadap persoalan/sistem tersebut, pada saat ini telah banyak perangkat
lunak yang dapat digunakan untuk membantu kegiatan perancangan basis data. Pada
perangkat lunak bantu tersebut telah tersedia komponen-komponen (notasi-notasi)
perancangan basis data. Dengan melakukan serangkaian klik, drag dan drop terhadap
komponen-komponen built-in tersebut, sebuah rancangan basis data dalam bentuk grafis
dapat kita hasilkan dengan mudah. Perangkat lunak demikian juga menyediakan sarana
penyuntingan yang lengkap, sehingga kita dengan mudah dapat melakukan penambahan,
perubahan dan penohapusan atau hanya sekedar mengubah format tampilan pada rancangan
basis data yang sedang kita buat. Juga tersedia segenap operasi file, sehingga rancangan
tersebut juga dapat disimpan, dibuka kembali atau disimpan ke format gambar. Salah satu
perangkat lunak bantu untuk keperluan semacam itu adalah S-Designer yang dibuat oleh
Sybase, Inc.
Manfaat yang lebih besar dan lebih penting dari pemakaian perangkat lunak bantu
ditunjukkan oleh adanya fasilitas untuk membangun (generate) basis data fisik dari
perancangan basis data yang sudah kita buat. Artinya, aktivitas implementasi rancangan
basis data yang berbentuk pemetaan notasi-notasi perancangan ke pembantu strukturstruktur tabel dalam basis data fisik, dapat dijalankan secara otomatis oleh perangkat lunak
bantu tersebut.
76