BAB 2 LANDASAN TEORI
2.1
Teori-teori Umum Dalam penulisan skripsi ini, penulis mengambil tema tentang analisa dan perancangan basis data (database). Maka dari itu, diperlukan beberapa teori umum yang berhubungan dengan perancangan basis data tersebut, seperti teori tentang data, basis data (database), sistem basis data (database system), sistem manajemen basis data (Database Management System, DBMS), bahasa basis data (database language), siklus hidup basis data (database life cycle), metodologi perancangan
basis
data
(database
design
methodology),
normalisasi
(normalization), pemodelan entitas-hubungan (entity-relationship modelling).
2.1.1
Pengertian Data Menurut Turban (2003,p2), data adalah kumpulan fakta yang belum diolah serta transaksi yang direkam dan disimpan, tetapi tidak disusun untuk menyampaikan suatu arti khusus lainnya. Menurut Yuhefizar (2003,p2), data adalah fakta, baik berupa sebuah objek, orang dan lain-lain yang dapat dinyatakam dalam suatu nilai tertentu (angka, simbol, karakter tertentu, dan lain-lain). Jadi, dapat disimpulkan bahwa data adalah fakta mengenai sesuatu, kejadian, aktivitas, dan transaksi yang dapat di catat (record) dan berguna bagi suatu organisasi. Bentuk umum dari suatu data, antara lain dapat berupa teks, gambar, audio, video dan animasi. 8
9
2.1.2
Pengertian Table Menurut Whitten, Bentley, dan Dittman (2004, p521), table merupakan ekuivalensi basis data relasional dari sebuah file.
2.1.3
Pengertian Basis Data Menurut Connolly dan Begg (2010, p65), basis data (database) adalah suatu kumpulan data
yang berhubungan
logis dan sebuah
gambaran terhadap data itu, dimana dirancang untuk memenuhi informasi yang dibutuhkan dalam suatu organisasi. Menurut Yuhefizar (2003, p2), basis data (database) adalah sebuah koleksi atau kumpulan data yang saling berhubungan, disusun menurut aturan tertentu secara logis, sehingga menghasilkan informasi. Menurut Seema Kedar (2009, p1) basis data adalah sebuah kumpulan dari rekaman - rekaman yang umumnya dapat dicari, diakses, dan dimodifikasi, seperti rekaman akun bank, catatan sekolah, dan data pendapatan pajak.
2.1.4
Sistem Basis Data Sistem basis data merupakan kumpulan dari program aplikasi yang berinteraksi dengan basis data bersama dengan DBMS dan basis data itu sendiri (Connolly dan Begg, 2010, p66).
10
2.1.5
Sistem Manajemen Basis Data Menurut Connolly dan Begg (2010, p66), sistem manajemen basis data adalah sebuah sistem perangkat lunak yang memungkinkan pengguna
untuk
mendefinisikan,
menciptakan,
memelihara,
dan
mengontrol akses ke basis data. Menurut P. S. Gill (2008, p2), sistem manajemen basis data adalah sebuah set program untuk mendefinisikan, menciptakan, memelihara dan memanipulasi sebuah basis data.
2.1.5.1 Komponen DBMS Menurut Connolly dan Begg (2010, p68), ada 5 komponen dari suatu sistem manajemen basis data (database management system) yaitu :
Gambar 2.1 Komponen DBMS
•
Perangkat keras (Hardware)
DBMS dan aplikasi membutuhkan perangkat keras (hardware) untuk berjalan.
DBMS hanya berjalan pada perangkat keras (hardware)
11
tertentu atau sistem operasi, sementara yang lain dijalankan pada berbagai perangkat keras dan sistem operasi.
•
Perangkat lunak (Software)
Komponen perangkat lunak (software) terdiri dari perangkat lunak DBMS itu sendiri dan program aplikasi, bersama dengan sistem operasi, termasuk perangkat lunak jaringan jika DBMS digunakan lewat sebuah jaringan.
•
Data
Data merupakan komponen yang paling penting dalam lingkungan DBMS. Basis data berisi baik operasional data dan metadata, 'data tentang data'. Struktur basis data disebut skema. •
Prosedur (Procedure )
Prosedur merujuk pada instruksi dan aturan yang mengatur desain dan penggunaan dari basis data.
Para pengguna sistem dan staf yang
mengelola basis data membutuhkan dokumentasi prosedur tentang cara menggunakan atau menjalankan sistem. Instruksi – instruksi tersebut dapat berupa : -
Log on ke DBMS
-
Penggunaan sebagian fasilitas DBMS atau program aplikasi
-
Memulai dan menghentikan DBMS
-
Membuat backup dari basis data
-
Menangani kegagalan perangkat keras atau perangkat lunak
12
-
Mengubah struktur dari sebuah tabel, mengatur kembali basis data dalam multiple disk, meningkatkan perfoma, atau membuat arsip data pada penyimpanan sekunder.
•
Manusia (People)
Komponen terakhir adalah orang-orang yang terlibat dengan sistem, antara lain: -
DBA (Database Administrator)
-
Database Designer
-
Application Developer
-
End User
2.1.5.2 Fungsi DBMS Menurut Connolly dan Begg (2010, p99), fungsi dari DBMS antara lain : 1. Penyimpanan data (data storage), pengambilan (retrieval), dan memperbarui (update) Sebuah DBMS harus melengkapi pengguna dengan kemampuan untuk menyimpan, mengambil, dan memperbarui data dalam basis data. Ini adalah fungsi dasar dari sebuah DBMS. 2. Sebuah katalog yang dapat diakses pengguna (a useraccessible catalog) Sebuah DBMS harus memberikan katalog di mana deskripsi item data yang disimpan dan dapat diakses oleh
13
pengguna. Sistem katalog DBMS adalah salah satu komponen fundamental dari sistem. 3. Transaksi dukungan (transaction support) Sebuah DBMS harus memberikan suatu mekanisme yang akan memastikan baik bahwa semua pembaruan sesuai dengan transaksi yang dibuat atau bahwa tidak satupun dari mereka dibuat. Sebuah transaksi adalah serangkaian tindakan yang dilakukan oleh pengguna tunggal atau program aplikasi, yang mengakses atau mengubah isi dari basis data. 4. Pengaturan pelayanan secara bersamaan (concurrency control services) Sebuah DBMS harus memberikan mekanisme untuk memastikan bahwa basis data diperbarui dengan benar ketika beberapa pengguna memperbarui basis data secara bersamaan. Salah satu tujuan utama dalam menggunakan DBMS adalah untuk memungkinkan banyak pengguna untuk mengakses data secara bersamaan. 5. Pemulihan layanan (recovery services) Sebuah DBMS harus memberikan mekanisme untuk memulihkan basis data pada saat basis data rusak dengan cara apapun.
14
6. Otorisasi layanan (authorization services) Sebuah DBMS harus memberikan mekanisme untuk memastikan
bahwa hanya pengguna
yang
sah
dapat
mengakses basis data. 7. Dukungan
untuk
komunikasi
data
(support
for
data
communication) Sebuah
DBMS
harus
mampu
mengintegrasikan
dengan perangkat lunak komunikasi. Sebagian besar pengguna mengakses basis data dari workstation. Kadang-kadang workstation yang terhubung langsung ke komputer DBMS. 8. Integritas layanan (Integrity services) Sebuah DBMS harus memberikan sarana untuk memastikan bahwa kedua data dalam basis data dan perubahan dengan data mengikuti aturan tertentu. Integritas basis data mengacu pada kebenaran dan konsistensi data yang disimpan. 9. Layanan untuk mempromosikan independensi data (Services to promote data independence) Sebuah DBMS harus mencakup fasilitas untuk mendukung kemandirian program dari struktur basis data sebenarnya.
15
10. Utilitas layanan (Utility services) Sebuah DBMS harus menyediakan satu set layanan utilitas. Program utilitas membantu DBA untuk mengelola basis data secara efektif. 2.1.5.3 Keuntungan dan Kerugian DBMS Menurut Connolly dan Begg (2010, p77-81), keuntungan dan kerugian DBMS adalah sebagai berikut: Keuntungan dari DBMS antara lain : 1. Pengendalian redundansi data 2. Konsistensi data 3. Banyaknya informasi yang didapat dari data yang sama 4. Berbagi data (sharing of data) 5. Peningkatan integritas data 6. Peningkatan keamanan 7. Penetapan standarisasi 8. Skala ekonomi 9. Menyeimbangkan konflik kebutuhan 10. Peningkatan data aksesibilitas dan responsif 11. Peningkatan produktivitas 12. Peningkatan pemeliharaan melalui independensi data 13. Peningkatan konkurensi 14. Peningkatan cadangan dan pemulihan layanan
16
Kerugian dari DBMS antara lain : 1. Kompleksitas 2. Ukuran (size) 3. Biaya DBMS 4. Tambahan biaya dari perangkat keras 5. Biaya proses konversi 6. Performa 7. Pengaruh terhadap kegagalan yang tinggi
2.1.6
SQL (Structured Query Language) Menurut Connolly dan Begg (2010, p66), SQL merupakan singkatan dari Structured Query Language. Dalam bahasa inggris sering dibaca sebagai ‘SEE-QUEL’. SQL merupakan standar bahasa query yang secara formal maupun de facto digunakan untuk mengakses sistem manajemen basis data
relasional. Pada umumnya, sebuah DBMS
menyediakan tiga bahasa, yaitu Data Definition Language (DDL), Data Manipulation Language (DML) dan Data Control Language (DCL).
2.1.6.1 Data Definition Language (DDL) Menurut Connolly dan Begg (2010, p92), Data Definition Language adalah sebuah bahasa yang memungkinkan DBA atau pengguna untuk menggambarkan nama entitas, atribut, dan hubungan yang dibutuhkan oleh aplikasi, bersama dengan beberapa integritas dan kendala keamanan yang berhubungan.
17
DDL digunakan untuk mendefinisikan skema atau memodifikasi yang sudah ada. Hal ini tidak dapat digunakan untuk memanipulasi data. Beberapa pernyataan Data Definition Language yang biasa dipakai dalam SQL (Connolly dan Begg, 2010, p237-p242), antara lain : •
Create Table, digunakan untuk membuat tabel dengan mengidentifikasi tipe data tiap kolom.
•
Alter Table, digunakan untuk menambah atau merubah definisi struktur dari tabel yang telah dibuat.
•
Drop Table, digunakan untuk menghapus tabel beserta semua data yang terkait di dalamnya.
•
Create Index, digunakan untuk membuat indeks pada suatu tabel.
•
Drop Index, digunakan untuk menghapus indeks yang telah dibuat sebelumnya.
2.1.6.2 Data Manipulation Language (DML) Menurut Connolly dan
Begg (2010, p92), Data
Manipulation Language adalah sebuah bahasa yang menyediakan seperangkat operasi untuk mendukung manipulasi operasi data dasar pada data dalam basis data. Operasi manipulasi data biasanya termasuk berikut: 1. Menambahkan data baru ke dalam basis data (insertion).
18
2. Memodifikasi data yang disimpan di dalam basis data (modify). 3. Memanggil data yang terdapat di dalam basis data (retrieval). 4. Penghapusan data dari basis data (delete).
Menurut Connolly dan Begg (2010, p93), DML dibagi menjadi 2 jenis : 1. Prosedural DML (Procedural DML) Adalah bahasa yang memungkinkan pengguna untuk memberitahu sistem data apa yang dibutuhkan dan bagaimana untuk mengambil data. 2. Bukan Prosedural DML (Nonprocedural DML) Adalah sebuah bahasa yang memungkinkan pengguna untuk
menyatakan
data
apa
yang
dibutuhkan
tanpa
memperhatikan bagaimana cara data diperoleh.
2.1.6.3 Data Control Language (DCL) Memungkinkan pengguna melakukan akses terkontrol ke dalam basis data, antara lain : •
Sistem keamanan, untuk mencegah pengguna tanpa otoritas mengakses ke basis data yaitu melalui fasilitas grant dan
19
revoke. Dimana grant memberikan hak akses tertentu dan revoke untuk mencabut hak akses tertentu. •
Sistem integritas, untuk memlihara konsistensi penyimpanan data dan menjaga konsistensi daripada data – data yang ada pada sistem basis data.
•
Sistem
kontrol
pada
saat
yang
bersamaan,
yang
memperbolehkan shared akses terhadap basis data. •
Sistem
kontrol
untuk
pengembalian
data,
yang
mengembalikan data ke keadaan semula apabila terjadi kegagalan perangkat lunak (software) atau perangkat keras (hardware). Sistem ini sangat penting mengingat data yang disimpan dalam basis data adalah sangat berharga dan sistem kontrol juga disebut dengan recovery data. •
Katalog, yang dapat diakses oleh pengguna dan menjelaskan data yang disimpan dalam basis data.
2.1.7
Siklus Hidup Basis Data (Database Lifecycle) Ketika sistem basis data menjadi komponen mendasar suatu sistem informasi organisasi yang lebih besar dan luas, maka siklus aplikasi basis data dihubungkan dengan siklus hidup sistem informasi.
20
Gambar 2.2 Siklus Hidup Basis Data Penjelasan siklus aplikasi basis data (Connolly dan Begg, 2010, p313-335) : 1. Perencanaan Basis Data (Database Planning) Perencanaan basis data merupakan aktivitas manajemen yang memungkinkan tahapan dari siklus aplikasi basis data direalisasikan
21
seefektif mungkin. Perencanaan basis data harus terintegrasi dengan keseluruhan strategi sistem informasi dari organisasi. Terdapat tiga hal pokok yang berkaitan dengan strategi sistem informasi, yaitu: •
Identifikasi rencana dan sasaran dari perusahaan termasuk mengenai informasi yang dibutuhkan.
•
Evaluasi sistem informasi yang ada untuk menetapkan kelebihan dan kekurangan yang dimiliki.
•
Penaksiran kesempatan teknologi informasi yang mungkin memberikan keuntungan kompetitif.
2. Pendefinisian Sistem (System Definition) Pendefinisian sistem menjelaskan batasan-batasan dan cakupan dari aplikasi basis data dan sudut pandang user (user view) yang utama. User view mendefinisikan apa yang diwajibkan dari suatu aplikasi basis data melalui beberapa perpektif. Suatu aplikasi basis data dapat memiliki lebih dari satu user view. Identifikasi user view membantu memastikan bahwa tidak ada pengguna utama dari suatu basis data yang terlupakan ketika pembuatan aplikasi baru dibutuhkan. User view juga membantu dalam
pengembangan
aplikasi
basis
data
yang
kompleks
memungkinkan permintaan dipecah ke dalam bagian-bagian yang lebih mudah diatur.
22
3. Analisis dan Pengumpulan Kebutuhan (Requirements Collection and Analysis) Analisis dan pengumpulan kebutuhan merupakan suatu proses pengumpulan data dan analisa informasi mengenai bagian organisasi yang didukung oleh aplikasi basis data, dan menggunakan informasi tersebut untuk identifikasi kebutuhan pengguna pada sistem baru. Informasi yang dikumpulkan untuk setiap user view meliputi: • Deskripsi data yang digunakan atau dihasilkan. • Detail
mengenai
bagaimana
data
digunakan
atau
dihasilkan. • Beberapa kebutuhan tambahan untuk aplikasi basis data yang baru. Informasi-informasi
tersebut
kemudian
dianalisa
untuk
diidentifikasi kebutuhan agar disertakan dalam aplikasi basis data yang baru. Selain mengumpulkan informasi, aktivitas penting lain yang dikerjakan pada bagian ini adalah menentukan bagaimana mengatur aplikasi basis data dengan banyak user view. Hal tersebut dapat dikerjakan melalui tiga pendekatan, yaitu: •
Pendekatan Terpusat (Centralized Approach) Pendekatan terpusat menggabungkan kebutuhan dari setiap
user
view
menjadi
sekumpulan
kebutuhan.
Berdasarkan kumpulan kebutuhan tersebut dapat dibuat global data model yang merepresentasikan seluruh user view.
23
•
Pendekatan Integrasi Tampilan (View Integration Approach) Pendekatan integrasi tampilan merupakan pendekatan dimana kebutuhan untuk setiap user view digunakan untuk membangun model data terpisah untuk merepresentasikan user view tersebut. Hasil dari model data tersebut nantinya digabungkan dalam tahapan perancangan basis data.
•
Kombinasi dari pendekatan terpusat dan pendekatan integrasi tampilan.
4. Perancangan Basis Data (Database Design) Perancangan basis data merupakan suatu proses pembuatan sebuah desain basis data yang akan mendukung tujuan dan operasi dari perusahaan. Tujuan utama perancangan basis data adalah sebagai berikut: •
Merepresentasikan data dan relationship antar data yang dibutuhkan oleh seluruh area aplikasi utama dan grup pengguna.
•
Menyediakan model data yang mendukung segala transaksi yang diperlukan pada data.
•
Menspesifikasikan rancangan minimal yang secara tepat disusun untuk memenuhi kebutuhan performa yang ditetapkan pada sistem.
24
Beberapa pendekatan yang digunakan dalam perancangan basis data: •
Top-Down Pendekatan Top-Down diawali dengan pembentukan model data yang berisi beberapa entitas tingkat tinggi (high level) dan relationship, yang kemudian menggunakan pendekatan TopDown secara berturut-turut untuk mengidentifikasi entitas lowe lever, relationship, dan atribut lainnya.
•
Bottom-Up Pendekatan Bottom-Up dimulai dari atribut dasar dengan analisis dari penggabungan antar atribut, yang dikelompokan ke dalam suatu relasi yang merepresentasikan tipe dari entitas dan relationship antar entitas.
•
Inside-Out Pendekatan Inside-Out berhubungan dengan pendekatan BottomUp tetapi sedikit berbeda dengan identifikasi awal entitas utama dan kemudian menyebar ke entitas, relationship, dan atribut terkait lainnya yang lebih dulu diidentifikasi.
• Mixed Pendekatan Mixed menggunakan pendekatan Bottom-Up dan TopDown untuk bagian yang berbeda sebelum pada akhirnya digabungkan menjadi satu.
25
Kegunaan utama dari pemodelan data adalah untuk membantu dalam memahami arti (semantik) dari data sekaligus untuk memfasilitasi komunikasi mengenai informasi yang dibutuhkan. Kriteria untuk menghasilkan model data yang optimal: •
Validitas Struktural (Structural Validity) harus konsisten dengan definisi perusahaan dan informasi organisasi.
•
Kesederhanaan (Simplicity), mudah dimengerti baik oleh profesional sistem informasi maupun pengguna non-teknik.
•
Ketetapan (Expressibility), kemampuan untuk membedakan antar data yang berlainan, relationship antar data dan batasanbatasan.
•
Tidak Rangkap (Nonredundancy), pengeluaran informasi yang tidak berhubungan, dengan kata lain, representasi setiap bagian informasi hanya satu kali.
•
Dapat digunakan bersama (Shareability), tidak ditentukan untuk aplikasi atau teknologi tertentu dan dapat digunakan oleh banyak pengguna.
•
Perluasan penggunaan (Extensibility), kemampuan untuk menyusun dan mendukung kebutuhan baru dengan akibat sampingan yang minimal terhadap pengguna yang sudah ada.
•
Integritas (Integrity), konsistensi dengan cara yang digunakan enterprise dan pengaturan informasi.
26
•
Representasi
Diagram
(Diagrammatic
Representation),
kemampuan untuk merepresentasikan model menggunakan notasi diagram yang mudah dimengerti.
Terdapat tiga fase dalam perancangan basis data, yaitu: a. Perancangan basis data konseptual Suatu proses pembentukan model dari informasi yang digunakan
dalam
perusahaan,
tidak
tergantung
dari
keseluruhan aspek fisik. Model data dibagun dengan menggunakan pengguna.
informasi
Model
dalam
spesifikasi
data konseptual
kebutuhan
merupakan
submer
informasi untuk fase perancangan logikal. b. Perancangan basis data logical Suatu proses pembentukan model dari informasi yang digunakan dalam perusahaan berdasarkan model data tertentu, tetapi tidak tergantung terhadap DBMS tertentu dan aspek fisik lainnya. Model data konseptual yang telah dibuat sebelumnya, diperbaiki dan dipetakan ke dalam model data logikal. c. Perancangan basis data fisikal Suatu proses yang menghasilkan deskripsi implementasi basis data pada penyimpanan sekunder. Menggambarkan struktur penyimpanan dan metode akses yang digunakan untuk mencapai akses yang efisien terhada data.
27
5. Penyeleksian DBMS (DBMS Selection) Pemilihan DBMS yang tepat untuk mendukung aplikasi basis data. Dapat dilakukan kapanpun sebelum menuju desain logikal asalkan terdapat cukup informasi mengenai kebutuhan sistem.
6. Perancangan Aplikasi (Application Design) Perancangan antarmuka pengguna dan program aplikasi yang menggunakan dan memproses basis data. Perancangan basis data dan aplikasi merupakan aktifitas paralel yang meliputi dua aktifitas penting, yaitu : •
Perancangan Transaksi (Transaction Design) Transaksi adalah salah satu aksi atau serangkaian aksi yang dilakukan oleh pengguna tunggal atau program aplikasi yang mengakses atau merubah isi dari basis data. Kegunaan dari perancangan transaksi adalah untuk menetapkan keterangan karakteristik high level dari suatu transaksi yang dibutuhkan pada basis data, diantaranya sebagai berikut: -
Data yang akan digunakan oleh transaksi
-
Karakteristik fungsional dari suatu transaksi
-
Output transaksi
-
Keuntungan bagi pengguna
-
Tingkat kegunaan yang diharapkan
28
•
Perancangan Antarmuka Pengguna (User Interface Design) Sebelum mengimplementasikan suatu form atau report, sangat penting untuk merancang layout. Beberapa aturan pokok untuk merancang form atau report adalah sebagai berikut: -
Judul yang sesuai arti
-
Instruksi yang komprehensif
-
Pengelompokan logikal dan field yang berurutan
-
Tampilan layout form atau report menarik
-
Nama field mudah dikenali
-
Terminologi dan penggunaan singkatan yang konsisten
-
Penggunaan warna yang konsisten
-
Tempat dan batasan tempat untuk data yang akan dimasukkan
-
Pergerakan kursor yang mudah
-
Koreksi kesalahan untuk satu karakter atau seluruh field
-
Pesan kesalahan dimunculkan untuk nilai yang tidak dapat diterima
-
Field yang bersifat opsional diberi tanda yang jelas
-
Penjelasan untuk setiap field dapat dibaca dengan jelas
-
Pemberian suatu tanda jika proses telah selesai
29
7. Pembuatan Prototype (Prototyping) Pembuatan prototype adalah kegiatan membuat model kerja suatu aplikasi basis data. Tujuan utama dari pembuatan prototype adalah sebagai berikut: •
Mengidentifikasi fitur dari sistem berjalan dengan baik atau tidak
•
Memberikan perbaikan atau penambahan fitur baru
•
Mengklarifikasi kebutuhan pengguna
•
Mengevaluasi feasibilitas dari rancangan sistem khusus. Dalam
membuat
prototype,
ada dua macam
strategi
pembuatan prototype yang digunakan, yaitu: -
Requirements Prototyping Requirements prototyping menggunakan prototype untuk menentukan kebutuhan dari aplikasi basis data yang diinginkan dan ketika kebutuhan itu terpenuhi maka prototype akan dibuang.
-
Evolutionary Prototyping Evolutionary prototyping digunakan untuk tujuan yang sama dengan requirements prototyping, tetapi prototype tidak dibuang melainkan pengembangan lanjutan menjadi aplikasi basis data yang digunakan.
30
8. Implementasi (Implementation) Implementasi merupakan realisasi fisik dari basis data dan rancangan aplikasi. Impelementasi basis data dicapai dengan menggunakan: •
DDL untuk membuat skema basis data dan file basis data kosong.
•
DDL untuk membuat user view yang diinginkan.
•
3GL dan 4GL untuk membuat program aplikasi. Termasuk basis data transaksi disertakan dengan menggunakan DML atau ditambahkan pada bahasa pemrograman.
9. Konversi dan Pemuatan Data (Conversion and Data Loading) Pemindahan data yang ada ke dalam basis data baru dan mengkonverikan aplikasi yang ada agar dapat digunakan pada basis data yang baru. Tahapan ini dibutuhkan ketika sistem basis data baru menggantikan sistem yang lama. DBMS biasanya memiliki utilitas yang memanggil ulang file yang sudah ada ke dalam basis data baru.
10. Pengujian (Testing) Pengujian merupakan proses eksekusi program aplikasi dengan tujuan untuk menemukan kesalahan. Dengan menggunakan strategi tes yang direncanakan dan data
yang sesungguhnya.
Pengujian hanya akan terlihat jika terjadi kesalahan software.
31
Mendemonstrasikan basis data dan program aplikasi terlihat berjalan seperti yang diharapkan.
11. Perawatan Operasional (Operational Maintenance) Suatu proses pengawasan dan pemeliharaan sistem setelah instalasi, meliputi: •
Pengawasan performa sistem, jika performa menurun maka memerlukan perbaikan atau pengaturan ulang basis data.
•
Pemeliharaan dan pembaharuan aplikasi basis data (jika dibutuhkan).
•
2.1.8
Penggabungan kebutuhan baru ke dalam aplikasi basis data.
Metodologi Perancangan Basis Data Menurut
Connolly
dan
Begg
(2010,
p466),
metodologi
perancangan (design methodology) adalah sebuah pendekatan terstruktur yang menggunakan prosedur, teknik, alat dan dokumentasi bantuan untuk mendukung dan memfasilitasi proses desain. Perancangan basis data ini berfokus pada perancangan metodologi yang terdiri dari beberapa tahapan dimana pada setiap tahapan memiliki tahapan – tahapan lagi. Perancangan metodologi ini bertujuan untuk membimbing perancang dalam memilih teknik yang cocok seperti bagaimana
mereka
merencanakan,
mengatur,
mengontrol,
dan
mengevaluasi basis data pada tiap tahapan pengembangan proyek.
32
Menurut Connlly dan Begg (2010, p467), proses perancangan terbagi menjadi tiga fase utama, yaitu :
2.1.8.1 Perancangan Basis Data Konseptual Menurut Connolly dan Begg (2010, p467), perancangan basis data konseptual (conceptual database design) adalah suatu proses untuk membangun sebuah model menggunakan data dari suatu
perusahaan,
terlepas
dari
semua
pertimbangan
–
pertimbangan fisikal yang ada. Fase perancangan basis data konseptual dimulai dengan membuat sebuah model data konseptual dari perusahaan, di mana semua rincian pelaksanaannya berdiri sendiri seperti target DBMS, program aplikasi, bahasa pemrograman, platform perangkat keras, masalah perfoma, atau pertimbangan fisik lainnya. Tahap – tahap perancangan basis data meliputi:
Langkah 1 Membangun model data konseptual Pada tahap membangun model data konseptual, langkah – langkah yang dilakukan adalah sebagai berikut : a. Mengidentifikasi tipe entitas
Langkah awal dalam membangung model data konseptual adalah mengidentifikasi tipe entitas. Menurut Connolly dan Begg (2010, p65), Entitas (Entity) adalah sebuah objek yang berbeda (orang, tempat, benda, konsep, kejadian) dalam
33
organisasi yang akan diwakili dalam basis data. Tujuan dari langkah ini adalah untuk menentukan tipe entitas utama yang dibutuhkan. Menetukan entitas dapat dilakukan dengan memeriksa
user’s
requirements
specification.
Setelah
terdefinisi, entitas diberikan nama yang tepat dan jelas, missal Mahasiswa, Dosen, atau Mata_Kuliah. b. Mengidentifikasi tipe relasi atau hubungan Setelah mendapatkan tipe entitas, langkah selanjutnya adalah melakukan identifikasi tipe relasi atau hubungan dari entitas sebelumnya. Menurut Connolly dan Begg (2010, p144), Relasi (Relation) adalah table dengan kolom dan baris. Tujuan
dari
langkah
pada
tahap
ini
adalah
untuk
mengidentifikasi suatu hubungan (relationship) yang penting yang ada antar entitas yang telah diidentifikasi. Nama dari suatu relationship menggunakan kata kerja (verb), missal mempelajari, memiliki, mempunyai, dan lain – lain. c. Mengidentifikasi dan menghubungkan atribut dengan tipe entitas atau relationship Pada langkah
ini akan dilakukan identifikasi dan
hubungan atribut dengan tipe entitas. Menurut Connolly dan Begg (2010, p144), Atribut (Attribute) adalah nama kolom dari suatu relasi. Tahap ini bertujuan untuk menghubungkan atribut dengan entitas atau relationship yang tepat. Atribut yang dimiliki setiap entitas atau relationship memiliki
34
identitas atau karakteristik yang sesuai dengan memperhatikan atribut berikut : simple attribute, composite attribute, singlevalued attribute, multi-valued attribute dan derived attribute. d. Menentukan domain atribut Langkah selanjutnya ialah menentukan domain atribut. Menurut Connolly dan Begg (2010, p144), Domain (Domain) adalah himpunan nilai-nilai yang diijinkan untuk satu atau lebih atribut. Tujuan dari tahap ini ialah menentukan domain atribut pada model data konseptual. Tahap ini meliputi : •
Menentukan himpunan nilai yang boleh diisikan pada atribut
•
Menentukan ukuran dan format atribut Selain dua hal diatas, dapat juga disertai informasi tentang
operasi – operasi yang boleh dilakukan pada atribut tersebut. Dokumentasikan
nama
dan
karakteristiknya
saat
mengidentifikasi atribut domain. e. Menentukan atribut candidate, primary, dan alternate key Untuk menentukan jenis relasi kunci (key) terlebih dahulu harus mengetahui pengertian dari masing – masing relasi key tersebut. Menurut Connolly dan Begg (2010, p150-p151), •
Super Key adalah atribut atau kumpulan atribut, yang secara unik mengidentifikasi sebuah tupel dalam relasi,
35
•
Candidate Key
merupakan himpunan atribut minimal
yang dapat membedakan setiap baris data dengan unik dalam sebuah tabel, •
Primary Key adalah candidate key yang dipilih untuk mengidentifikasi tupel secara unik dalam relasi,
•
Alternate Key adalah candidate key yang tidak dipilih untuk mengidentifikasi tupel secara unik dalam relasi,
•
Foreign Key adalah atribut atau bagian dari atribut, dalam satu relasi yang cocok
dengan candidate key dari
beberapa (mungkin sama) relasi. Tahap ini bertujuan untuk mengidentifikasi candidate key dari setiap entitas dan, jika ada lebih dari satu candidate key maka akan dipilih salah satunya untuk menjadi primary key sedangkan yang lainnya sebagai alternate key. f. Mempertimbangkan
penggunaan
Enhanced
Modelling
Concepts (optional step) Mempertimbangkan
penggunaan
konsep
enhanced
modeling, seperti specialization/generalization, aggregration dan composition. g. Memeriksa model untuk redundansi Cek untuk setiap entity dan attribute terhadap redundansi (redundancy) dalam model. Pada tahap ini dilakukan pengecekan untuk memastikan bahwa tidak ada dua entitas
36
yang sama. Kemudian diperiksa juga apakah ada hubungan antar entitas yang bersifat rangkap. Hal yang biasa dilakukan pada tahap ini yaitu : •
Melakukan pengecekan terhadap relasi one – to – one (1:1)
•
Menghapus redundant relationship.
h. Memvalidasi model konseptual terhadap transaksi pengguna Menjamin model konseptual dapat mendukung kebutuhan transaksi yang diperlukan oleh view. Pengujian dilakukan dengan melakukan operasi – operasi pada entitas secara manual. Ada dua cara pengujian yaitu : •
Mendeskripsikan transaksi beserta sumber data atributnya.
•
Menggambarkan jalur transaksi pada ERD.
i. Meninjau kembali model data konseptual dengan pengguna Melakukan review terhadap model data konseptual dengan user untuk menjamin model telah merepresentasikan user’s view berdasarkan kebutuhan perusahaan. Jika ditemukan anomali pada model, maka perlu diadakan penyesuaian dengan mengulangi beberapa langkah diatas. Proses ini dapat diulang,
hingga
dibutuhkan user.
mendapatkan
model
konseptual
yang
37
2.1.8.2 Perancangan Basis Data Logikal Menurut Connolly dan Begg (2010, p323), perancangan basis data logikal (logical database design) adalah suatu proses untuk membangun sebuah model menggunakan data dari suatu perusahaan berdasarkan pada model data yang spesifik, tetapi independen
dari
DBMS
tertentu
dan
pertimbangan
–
pertimbangan fisikal lainnya. Fase perancangan basis data logikal dimulai dengan memetakan model konseptual menjadi sebuah model logikal, yang dipengaruhi oleh model data untuk target basis data (misalnya, model relasional). Model data logikal merupakan sumber informasi untuk fase perancangan fisikal, menyediakan rancangan basis data fisikal sebagai sarana untuk membuat timbal balik
yang sangat penting untuk rancangan basis data yang
efisien. Tahap – tahap perancangan basis data selanjutnya, setelah dilakukan perancangan basis data konseptual meliputi :
Langkah 2 Membangun dan memvalidasi model data logikal Pada tahap membangun model data logikal, langkah – langkah yang dilakukan adalah sebagai berikut: a. Derived relation untuk model data logikal Tahap ini tujuannya adalah untuk membuat hubungan bagi model data logikal untuk mewakili beberapa entitas, hubungan, dan atribut yang telah diidentifikasi. Berikut
38
beberapa hubungan yang mungkin terjadi pada model data konseptual : •
Tipe strong entity
•
Tipe weak entity
•
Tipe hubungan biner one-to-many (1:*)
•
Tipe hubungan one-to-one (1:1)
•
Tipe hubungan rekursif one-to-one (1:1)
•
Tipe hubungan superclass/subclass
•
Tipe hubungan biner many-to-many (*:*)
•
Tipe Complex relationship
•
Multi-valued attributes
b. Memvalidasi relasi menggunakan normalisasi Tujuannnya adalah untuk memvalidasi hubungan— hubungan di dalam model data logikal menggunakan normalisasi. Tujuan dari normalisasi adalah untuk memastikan bahwa himpunan relasi setidaknya memiliki jumlah atribut yang cukup untuk mendukung kebutuhan data perusahaan. Normalisasi adalah sebuah teknik untuk menghasilkan sebuah set hubungan dengan sifat-sifat yang diinginkan sesuai dengan kebutuhan data dari perusahaan (Connolly & Begg, 2010, p416). Proses normalisasi pertama-tama dimulai dengan mengirim data dari sumbernya (contohnya, bentuk standar entry data) kedalam format table dengan beberapa baris dan
39
kolom. Format yang dimaksud adalah tabel dengan bentuk yang belum ternormalisasi (unnormalized form) dan disebut sebagai unnormalized table. Menurut Connolly dan Begg (2010, p430), bentuk yang belum ternormalisasi (Unnormalized Form, UNF) adalah sebuah tabel yang mengandung satu atau lebih repeating groups
(kelompok
data
yang
berulang).
Pengulangan
kelompok (repeating groups) adalah sebuah atau sekelompok atribut yang berada didalam sebuah tabel dimana atribut tersebut mempunyai beberapa nilai untuk satu atribut nominated key pada tabel tersebut. Key yang dimaksud adalah atribut yang secara unik diidentifikasi pada tiap baris didalam tabel yang belum ternormalisasi. Bentuk – bentuk normalisasi antara lain : 1. First Normal Form (1NF) Sebuah relasi dimana persimpangan setiap baris dan kolom berisi satu dan hanya satu nilai (Connolly & Begg, 2010, p430).
Sebuah relasi akan berada dalam bentuk
1NF jika repeating groups sudah hilang. Ada dua pendekatan untuk menghilangkan repeating groups pada tabel yang tidak normal (unnormalized table), yaitu : •
Dengan memasukan data yang sesuai ke dalam kolom yang kosong dari baris yang mengandung kata yang berulang.
40
•
Dengan menempatkan data yang berulang bersama salinan dari atribut kunci pada relasi yang terpisah.
2. Second Normal Form (2NF) Menurut Connolly dan Begg (2010, p434) relasi dikatakan 2NF jika relasi berada pada 1NF dan setiap atribut yang bukan primary key bergantung sepenuhnya (full functionally dependent) terhadap primary key. Full functionally dependent terjadi jika A dan B merupakan atribut dari suatu relasi, dan B dikatakan bergantung penuh terhadap A (A->B), namun bukan subset dari A. 3. Third Normal Form (3NF) Menurut Connolly dan Begg (2010, p436), Third Normal
Form
(3NF)
adalah sebuah relasi yang
memenuhi first normal form (1NF) dan second normal form (2NF) di mana tidak terdapat atribut non-primary key yang bersifat transitively dependent dari primary key-nya. Menurut Connolly dan Begg (2010, p424), transitive dependency adalah jika kondisi A, B, dan C merupakan atribut-atribut dari sebuah relasi seperti jika A->B dan B>C, maka C adalah transitively dependent dari A melalui atau via B (disediakan bahwa A bukan functionally dependent dari B dan C). Dalam normalisasi ketiga ini, atribut yang tidak memberikan kontribusi terhadap penjelasan karakteristik primary key, akan dipindahkan ke
41
sebuah tabel yang terpisah. Keuntungan dari tabel relasional dalam 3NF adalah menghilangkan data yang berulang-ulang dengan tujuan menghemat tempat dan mengurangi keanehan manipulasi.
c. Memvalidasi relasi terhadap transaksi pengguna Tujuannya adalah untuk memastikan bahwa relasi dalam model
data
logikal
mendukung
kebutuhan
transaksi.
Dengan menggunakan relasi, link primary key/foreign key yang diperlihatkan pada relasi, diagram ER dan kamus data akan dilakukan secara manual. d. Memeriksa integrity constraint Tujuannya adalah untuk memeriksa batasan integritas yang ditunjukkan dalam model data logikal. Integrity constraint adalah batasan yang dipaksakan untuk melindungi basis data dari ketidaklengkapan, ketidakakuratan dan ketidak konsistenan. Beberapa tipe integrity constraint yaitu: •
Required data;
•
Attribute domain constraints;
•
Multiplicity;
•
Entity integrity;
•
Referential integrity;
•
General constraints.
42
e. Meninjau kembali model data logikal dengan pengguna Tujuannya adalah untuk meninjau kembali model data logikal
dengan
pengguna
untuk
memastikan
bahwa
mereka mempertimbangkan model tersebut untuk menjadi representasi sesungguhnya
dari
kebutuhan
data
oleh
perusahaan. Jika pengguna puas dengan model tersebut maka langkah selanjutnya yang diambil tergantung pada jumlah user view yang terkait dengan basis data dan bagaimana pengelolaannya. f. Menggabungkan model data logikal kedalam model global (optional step) Tujuannya data logikal semua
adalah
untuk
menggabungkan
model
ke dalam model data global yang mewakili
pandangan
pengguna
basis data.
Tahapan
ini
meliputi proses penggabungan model data logikal ke dalam global, validasi model data logikal dan meninjau ulang model data logikal global dengan pengguna. g. Memeriksa untuk pertumbuhan di masa depan Tujuannya
adalah
untuk
menentukan
apakah
ada
perubahan signifikan yang mungkin terjadi di masa yang akan datang dan untuk menilai apakah model data logikal dapat mengakomodasi perubahan tersebut.
43
2.1.8.3 Perancangan Basis Data Fisikal Menurut Connolly dan Begg (2010, p467) perancangan basis data fisikal
(physical database design) adalah proses
memproduksi sebuah deskripsi implementasi dari basis data pada penyimpanan sekunder. Perancangan ini juga menjelaskan base relations, file organizations dan indeks yang digunakan untuk mencapai akses yang efisien pada data dan semua integrity constraints yang terkait serta langkah – langkah keamanan. Fase ini memperkenankan perancang untuk membuat keputusan
tentang
implementasikan.
bagaimana
Oleh
karena
basis itu,
data
dapat
perancangan
di
fisikal
disesuaikan dengan DBMS tertentu. Terdapat umpan balik antara desain fisikal dan logikal, karena keputusan yang diambil selama desain fisikal yang digunakan untuk meningkatkan perfoma dapat mempengaruhi model data logikal. Tahap – tahap perancangan basis data selanjutnya, setelah dilakukan perancangan basis data logikal meliputi: Langkah 3 Menerjemahkan model data logical untuk target DBMS Pada tahap membangun model data fisikal, langkah selanjutnya yang dilakukan adalah sebagai berikut:
44
a. Merancang base relations Tujuannya adalah untuk memutuskan bagaimana relasi dasar yang diidentifikasi dalam model data logikal dalam target
DBMS
dapat
diwakilkan.
Dalam
mewakili
perancangan relasi dasar gunakan bentuk extended dari DBDL (Database
Design Language) untuk menentukan domain,
default values, dan indikator null.
b. Merancang representasi dari derived data Tujuannya adalah untuk memutuskan bagaimana derived data apapun yang muncul di dalam model data logikal dalam target DBMS dapat diwakilkan. Derived atau calculated attributes adalah nilai atribut yang dapat ditemukan dengan memeriksa nilai dari atribut lain.
c. Merancang general constraint Tujuannya adalah untuk merancang beberapa general constraint pada target DBMS. Pembaruan ke relasi mungkin dibatasi oleh integrity constraint yang mengatur transaksi ‘real world’.
Langkah 4 Merancang file organizations dan indeks Pada tahap membangun model data fisikal, langkah selanjutnya yang dilakukan adalah sebagai berikut :
45
a. Menganalisa transaksi – transaksi Tujuannya adalah untuk memahami fungsionalitas dari transaksi yang akan berjalan di basis data dan menganalisa beberapa transaksi penting. Dalam menganalisa transaksi yang harus diidentifikasi pada kriteria performa yaitu: •
Transaksi
yang
berjalan
cukup
sering
dan
akan
mempunyai dampak yang signifikan pada performa; •
Transaksi yang dinilai cukup kritis ke operasi bisnis;
•
Waktu dimana pada hari atau minggu tertentu terjadi permintaan yang tinggi pada basis data (disebut peak load).
b. Memilih file organizations Tujuannya adalah untuk menentukan organisasi file yang efisien pada setiap base relation. Beberapa organisasi file yang ada yaitu: •
Heap
•
Hash
•
Indexed Sequential Office Access Method (ISAM)
•
B+-tree
•
Clusters
c. Memilih indeks Tujuannya adalah untuk menentukan apakah dengan menambahkan indeks akan memperbaiki kinerja sistem.
46
d. Memperkirakan kebutuhan disk space Tujuannya adalah memperkirakan jumlah ruang disk yang akan diperlukan oleh basis data.
Langkah 5 Merancang user views Tujuannya adalah untuk merancang user view yang diidentifikasi saat melakukan tahap pengumpulan dan analisa kebutuhan dari siklus hidup pengembangan sistem basis data.
Langkah 6 Merancang mekanisme keamanan Tujuannya adalah untuk merancang mekanisme keamanan untuk basis data yang ditentukan oleh pengguna saat melakukan tahap pengumpulan dan analisa kebutuhan dari siklus hidup pengembangan sistem basis data.
Langkah 7 Mempertimbangkan
pengenalan
redundansi
kontrol Pada
langkah
mempertimbangkan meningkatkan
perancangan
denormalisasi
performa.
Hasil
basis skema dari
data
fisikal
relasional
normalisasi
ini
untuk adalah
perancangan basis data logikal secara struktural konsisten dan
47
menekan jumlah redundansi. Faktor yang perlu dipertimbangkan adalah : -
Denormalisasi membuat implementasi lebih kompleks.
-
Denormalisasi selalu mengorbankan fleksibilitas.
-
Denormalisasi akan membuat cepat dalam retrieve data tetapi lambat dalam updates. Ukuran performa dari suatu perancangan basis data dapat
dilihat dari sudut pandang
tertentu, yaitu melalui pendekatan
efisiensi data (normalisasi) atau pendekatan
efisiensi
proses
(denormalisasi). Efisiensi data dimaksudkan untuk meminimalkan kapasitas
disk,
dan
efisiensi
proses
dimaksudkan
untuk
mempercepat proses saat retrieve data dari basis data. Langkah 8 Memonitor dan mengatur sistem operasional Bertujuan
untuk
memonitor
sistem
operasional,
meningkatkan performa, dan menentukan perancangan sistem yang tepat atau menggambarkan perubahan kebutuhan.
2.1.9
Pemodelan Hubungan Entitas Entity Relationship (ER) merupakan sebuah abstraksi dan representasi konseptual dari data. Menurut Connolly dan Begg (2010, p371), Entity Relationship Modeling adalah pendekatan top-down untuk merancang basis data dimana proses perancangan diawali dengan mengidentifikasi data utama yaitu entity dan relationship yang keduanya harus direpresentasikan dalam sebuah model. Menurut Connolly dan
48
Begg (2010,p372-p392), Entity Relationship Modeling memiliki beberapa konsep dasar, yaitu : 1. Tipe entitas (Entity type) Menurut Connolly dan Begg (2010, p372), tipe adalah sekelompok objek dengan sifat yang sama, yang diidentifikasikan oleh perusahaan sebagai sebuah objek yang dapat berdiri sendiri. Tipe entitas merupakan bentuk representasi dari kumpulan objek di “real world” dengan sifat yang sama, dimana tipe entitas tersebut memiliki keberadaan yang independen yaitu dapat menjadi objek yang nyata (fisik) maupun tidak nyata (abstrak/konseptual). Entity occurrence adalah objek dari tipe entitas yang dapat diidentifikasi secara unik. 2. Tipe relasi (Relationship type) Menurut Connolly dan Begg (2010, p374), tipe relasi merupakan sebuah kumpulan hubungan yang memiliki arti antara tipe-tipe entitas. Relationship occurrence adalah hubungan yang dapat diidentifikasi secara unik, dimana hubungan tersebut meliputi satu kejadian dari setiap tipe entitas yang berpartisipasi.
•
Derajat tipe relasi (Degree of relationship type) Menurut Connolly dan Begg (2010, p376), derajat tipe relasi merupakan jumlah tipe entitas yang berpartisipasi dalam relasi. Entitas yang berkaitan dalam tipe relasi dikenal sebagai participant dalam relasi. Jumlah participant dalam tipe relasi
49
dikenal sebagai degree dari relasi. Relasi dengan degree dua disebut binary, sedangkan relasi dengan degree tiga disebut ternary, dan relasi dengan degree empat disebut quaternary. •
Relasi Rekursif (Recursive relationship) Menurut Connolly dan Begg (2010, p376), relasi rekursif merupakan sebuah tipe relasi dimana tipe entity yang sama berpartisipasi lebih dari satu kali dalam peran yang berbeda.
3. Atribut (Attribute) Menurut Connolly dan Begg (2010, p379), atribut merupakan properti dari sebuah entity atau tipe relasi. Attribute domain adalah kumpulan nilai-nilai yang diperbolehkan untuk satu atau lebih atribut (Connolly dan Begg, 2010, p379). •
Simple dan Composite attribute Simple attribute adalah atribut yang tersusun dari satu komponen secara independen sehingga tidak dapat dipecah menjadi atribut yang lebih kecil (Connolly dan Begg, 2010, p379). Sedangkan, Composite attribute adalah atribut yang tersusun dari banyak komponen secara independen sehingga dapat dipecah menjadi komponen independen yang lebih kecil(Connolly dan Begg, 2010, p380).
•
Single-valued dan Multi-valued attribute Single-valued attribute adalah atribut yang hanya memiliki satu nilai untuk setiap tipe entitas. Sebagian besar atribut adalah
50
single-value (Connolly dan Begg, 2010, p380). Sedangkan, Multivalued attribute adalah atribut yang memiliki banyak nilai untuk setiap tipe entitas (Connolly dan Begg, 2010, p380). •
Derived Attribute Menurut Connolly dan Begg (2010, p379), derived attribute merupakan sebuah atribut yang merepresentasikan nilai yang berasal dari nilai sebuah atribut yang berhubungan atau kumpulan atribut sehingga tidak perlu berada dalam tipe entity yang sama.
•
Kunci (Key) Kunci (key) merupakan atribut – atribut yang digunakan untuk menjelaskan sebuah entitas. Adapun tipe – tipe dari key yaitu : -
Candidate key adalah minimal set dari atribut yang secara unik mengidentifikasi suatu tipe entitas (Connolly dan Begg, 2010, p381).
-
Primary key adalah candidate key yang dipilih untuk mengidentifikasi secara unik suatu tipe entitas (Connolly dan Begg, 2010, p381). Candidate key yang tidak dipilih sebagai primary key disebut alternate key.
-
Composite key adalah candidate key yang terdiri dari dua atau lebih atribut (Connolly dan Begg, 2010, p382).
51
4. Tipe entitas kuat dan lemah (Strong and weak entity type) Menurut Connolly dan Begg (2010, p383), tipe entitas kuat adalah sebuah tipe entitas yang keberadaannya tidak bergantung pada tipe entitas lain. Karakteristiknya adalah setiap entitas dapat diidentifikasi dengan primary key dari tipe entitas tersebut. Sedangkan, tipe entitas lemah adalah sebuah tipe entitas yang keberadaannya bergantung pada tipe entitas lain. Karakteristiknya adalah atribut yang terdapat pada entitas tersebut tidak dapat mengidentifikasi tipe entitas secara unik.
5. Attributes on Relationships Attributes on Relationship merupakan atribut pada relasi yang mengidentifikasi hubungan antar entitas (Connolly dan Begg, 2010, p384). 6. Structural Constraints Tipe utama batasan hubungan didalam relationship disebut multiplicity (Connolly dan Begg, 2010, p385). Multiplicity adalah Jumlah (atau range) dari kejadian yang mungkin dari suatu entitas yang mungkin berhubungan dengan kejadian tunggal dari jenis entitas terkait melalui hubungan tertentu (Connolly dan Begg, 2010, p385). Berikut jenis-jenis multiplicity menurut Connolly dan Begg (2010, p386-p388):
52
One – to – one (1:1) relationship Setiap entitas maksimal hanya dapat memiliki satu relasi dengan entitas lain.
Gambar 2.3 Relasi one – to - one One – to – many (1:*) relationship Setiap entitas dapat memiliki satu atau lebih relasi dengan entitas lain.
Gambar 2.4 Relasi one – to - many
53
Many – to – many (*:*) relationship Setiap entitas dapat memiliki lebih dari satu relasi dengan entitas yang lain.
Gambar 2.5 Relasi many – to - many Multiplisitas sebenarnya terdiri dari dua kendala (constraints) yang terpisah dikenal sebagai kardinalitas (cardinality) dan partisipasi (participation) (Connolly dan Begg, 2010, p390). -
Kardinalitas (Cardinality) menjelaskan jumlah maksimum kejadian
kemungkinan
hubungan
untuk
entitas
yang
berpartisipasi dalam jenis hubungan yang diberikan (Connolly dan Begg, 2010, p390). -
Partisipasi (Participation) menentukan apakah semua atau hanya beberapa kejadian entitas berpartisipasi dalam sebuah hubungan (Connolly dan Begg, 2010, p391).
54
2.2
Teori - teori Khusus Teori – teori khusus yang akan dibahas berhubungan dengan topik yang diteliti dan teori yang mendukung bagi perancangan suatu sistem basis data yang meliputi : Data Flow Diagram (DFD), State Transition Diagram (STD), HTML, PHP, MySQL, JQuery yang akan diuraikan dibawah ini.
2.2.1
Pengertian Pemesanan Dalam dunia usaha, pemesanan adalah hal yang penting dan tidak bias dihilangkan. Menurut Poewadarminta (2003, ‘Kamus Umum Bahasa Indonesia’), pengertian •
Pesan adalah suruhan (perintah, nasihat, permintaan, amanat) yang harus dilakukan atau disampaikan kepada orang lain.
•
Pesanan
adalah
permintaan
hendak
membeli (supaya dikirim, dibuatkan, dan sebagainya). •
Pemesan adalah orang yang memesan (tempat, barang, dan sebagainya), dan Pemesanan adalah perbuatan (hal, cara) memesan atau memesankan. Menurut Kamus Besar Bahasa Indonesia, pemesanan adalah proses,
perbuatan, cara memesan atau memesankan. Maka pengertian pemesanan
55
secara umum yaitu kondisi dimana pembeli melakukan pemesanan terhadap satu atau lebih barang yang ditawarkan oleh penjual.
2.2.2
Pengertian Makanan Makanan merupakan kebutuhan pokok manusia yang dibutuhkan setiap saat dan dimanapun ia berada serta memerlukan pengelolaan yang baik dan benar agar bermanfaat bagi tubuh. Tanpa adanya makanan dan minuman, manusia tidak dapat melangsungkan hidupnya. Adapun pengertian makanan menurut WHO (World Health Organization) yaitu semua substansi yang diperlukan tubuh, kecuali air dan obat – obatan dan substansi – substansi yang dipergunakan untuk pengobatan (Putraprabu, 2008).
2.2.3
Pengertian Minuman Minuman merupakan bahan yang sangat dibutuhkan oleh makhluk hidup, yang berguna bagi kelangsungan hidupnya. Definisi minuman adalah segala sesuatu yang dapat dikonsumsi dan dapat menghilangkan rasa haus. Minuman umumnya berbentuk cair, namun ada pula yang berbentuk padat seperti es krim (Winarti, 2006).
2.2.4
Pengertian Ketersediaan
56
Menurut Kamus besar Bahasa Indonesia, ketersediaan adalah kesiapan suatu sarana (tenaga, barang, modal, anggaran) untuk dapat digunakan atau dioperasikan di waktu yg telah ditentukan.
2.2.5
Pengertian Stok Stok atau persediaan merupakan
barang yang disimpan untuk
digunakan atau dijual pada periode mendatang. Menurut Ikatan Akuntansi Indonesia (2004 : 14) pengertian persediaan adalah sebagai berikut : Persediaan adalah aktiva : -
Tersedianya
untuk
Dalam
proses
dijual dalam kegiatan usaha normal produksi dan atau dalam perjalanan, atau -
Dalam bentuk bahan atau perlengkapan (supplier) untuk digunakan dalam proses produksi atau pemberian jasa. Sedangkan menurut Soemarso S.R (2004: 384), persediaan adalah
barang – barang yang dimiliki oleh perusahaan untuk dijual atau digunakan kembali.
2.2.6
Pengertian Restoran
57
Menurut Soekresno (2001, p16), restoran adalah “suatu usaha komersil yang menyediakan jasa pelayanan makan dan minum bagi umum dan dikelola secara profesional”. Menurut Dictionary of Hotels, Tourism and Catering Management, restoran adalah tempat dimana makanan dapat dibeli dan dikonsumsi. Sedangkan menurut Ninemeir dan Perdue (2005), restoran adalah bisnis makanan yang secara individu menghasilkan revenue dari penjualan makanan dan minuman itu sendiri. Menurut Marsum (2000), restoran adalah suatu tempat atau bangunan yang diorganisir secara komersil, yang
menyelenggarakan
pelayanan
dengan
baik
kepada
semua
konsumennya baik berupa makanan atau minuman.
2.2.7
Data Flow Diagram (DFD) DFD secara grafikal mendeskripsikan proses data, aliran dari data dan penyimpanan data dalam sebuah organisasi atau sistem bisnis (Kendall, 2005, p224). Menurut Whitten, Bentley, dan Dittman (2004, p326-327), data flow diagram adalah model proses yang digunakan untuk menggambarkan aliran data melalui sebuah sistem dan tugas atau pengolahan yang dilakukan oleh sistem. DFD digunakan untuk mendokumentasikan sistem yang ada serta untuk merencanakan dan merancang sistem yang baru. DFD terdiri dari simbol – simbol sebagai berikut : Simbol
Nama
Keterangan
58
Proses
Proses
mengubah
maupun
mengolah dari data masukan menjadi keluaran
Aliran Data
Aliran
data
menggambarkan
perpindahan informasi dari satu proses
(bagian)
ke
proses
(bagian) lain dari sistem. Penyimpanan Data Proses dapat mengambil data dari atau memberikan data ke penyimpanan data. Entitas luar
Entitas
luar
menggambarkan
entitas yang berada di luar dari suatu orang,
sistem,
dapat
kelompok
berupa yang
berhubungan dengan sistem. Ada 3 tingkatan DFD yaitu : • Diagram konteks Merupakan
tingkatan
yang
paling
pertama,
yang
menggambarkan ruang lingkup sistem dari sistem yang digunakan oleh organisasi. Menurut Whitten (2004, p351), context data flow merupakan sebuah model proses yang digunakan untuk mendokumentasikan ruang lingkup dari sebuah sistem. Diagram ini hanya memiliki satu proses yang
59
menggambarkan dan mewakili sistem secara keseluruhan, hubungan antara sistem dengan entitas – entitas di luar sistem tersebut, dan tidak boleh ada data store (penyimpanan data). • Diagram nol Diagram yang menggambarkan proses – proses aliran data yang terjadi di dalam suatu sistem. Proses – proses ini dapat dipecah menjadi proses – proses dan aliran data yang lebih terperinci. Dalam diagram nol sudah menunjukkan data store (penyimpanan data) yang digunakan sebagai proses untuk menyimpan data. • Diagram rinci Diagram yang menggambarkan rincian proses – proses yang ada pada diagram nol dan rincian proses – proses ini dapat dipecah lagi menjadi proses – proses yang lebih rinci jika memang masih bisa dipecah. 2.2.8
State Transition Diagram (STD) Menurut Whitten, Bentley, dan Dittman (2004, p366-367), state transition diagram adalah alat yang digunakan untuk menggambarkan urutan dan variasi screen yang dapat terjadi selama satu sesi pengguna. State transition diagram diartikan juga sebagai suatu modeling tools yang menggambarkan sifat ketergantungan pada waktu dari suatu sistem. State transition diagram terdiri dari : a. State (keadaan).
60
b. Event atau tindakan yang menyebabkan perpindahan dari satu state ke state lainnya. Ada 2 macam simbol yang menggambarkan proses dari State Transition Diagram (STD) yaitu : a. Gambar persegi panjang menunjukan state dari sistem.
State b. Gambar panah menunjukan transisi antar state.
Transition 2.2.9
Internet Menurut Connolly dan Begg (2010, p1024), Internet merupakan kumpulan jaringan komputer yang terhubung secara luas. Secara fisik dianalogikan sebagai jaringan laba – laba yang menyelimuti bola dunia dan terdiri dari titik – titik (node) yang saling berhubungan. Internet juga merupakan sumber daya informasi yang menjangkau seluruh dunia, sumber daya informasi ini sangat luas dan sangat besar sehingga tidak ada satu orang, satu organisasi atau satu negara yang menanganinya sendiri.
2.2.9.1 Istilah Dalam Internet Berikut adalah istilah – istilah yang sering muncul dalam penggunaan internet, antara lain :
61
a. HTTP Menurut Connolly dan Begg (2010, p1029), HTTP (Hypertext
Transfer
Protocol)
adalah
protokol
yang
digunakan unntuk mentransfer halaman web melalui internet. Protokol ini merupakan protokol standar yang digunakan untuk mengakses web pages. Selain HTTP terdapat pula Secure HTTP yang dikembangkan oleh Enterprise Integration Technology (EIT), National Centre for Supercomputing Application (NCSA), dan RSA Data Security. HTTP merupakan serangkaian aturan untuk pertukaran file (teks, grafik, gambar, suara, video, dan file multimedia yang lain) di dalam world wide web, berhubungan dengan protokol TCP/IP yang merupakan protokol utama dalam pertukaran informasi di internet. b. Transmission Control Protocol / Internet protocol (TCP/IP) Menurut Connolly dan Begg (2010, p745), TCP/IP adalah standar komunikasi data yang digunakan oleh komunitas internet dalam proses tukar – menukar data dari satu komputer ke komputer lain di dalam jaringan internet. Protokol ini tidak dapat berdiri sendiri, karena memang protokol ini berupa kumpulan protokol (protocol suite).
Protocol ini juga
merupakan protocol yang paling banyak digunakan saat ini. Data tersebut diimplementasikan dalam bentuk perangkat
62
lunak (software) di sistem operasi. Istilah yang diberikan kepada perangkat lunak ini adalah TCP/IP stack. c. Pengertian Web (World Wide Web) Menurut Connolly dan Begg (2010, p1028), Web (World Wide Web) adalah sebuah sistem berbasis hypermedia yang mendukung sarana browsing informasi di internet dengan cara non-sekuensial menggunakan hyperlink.
Web terdiri atas 2 macam, yaitu •
Web Server Menurut Hoffer dan Prescott (2006, p395), web server merupakan suatu program yang bertanggung jawab untuk menerima permintaan HTTP dari client dan menyediakan respon HTTP beserta data – data tambahannya. Web server berfungsi untuk menyimpan dokumen yang disebut web pages (halaman web) dalam format HTML
dan
mengirimkannya ke web client berdasarkan permintaan klien, yang disebut browser. •
Web Browser Adalah aplikasi perangkat lunak (software) yang umumnya dijalankan pada komputer pengguna untuk mengakses web. Web browser menjadi sarana akses universal karena mengirimkan antarmuka yang sama pada semua sistem operasi yang dijalankan.
63
•
Web Database System Menurut Eaglestone (2001, p38), “Web Database System are systems in which both web and database technologies are used”. Dapat dikatakan web database system adalah sistem dimana dipadukannya teknologi web dan basis data (database). Oleh karena itu web database menyediakan akses yang lebih luas kedalam sistem database, cara untuk mendistribusikansistem dan banyak lagi servis melalui integrasinya sistem.
2.2.10
HTML (HyperText Markup Language) Menurut Connolly dan Begg (2010, p1031) HyperText Markup Language adalah bahasa standar yang digunakan web, dalam memformat dokumen dan digunakan untuk merancang halaman web. HTML merupakan turunan dari Standard Generalized Markup Language (SGML) yang lebih kompleks. SGML merupakan bahasa berbasis teks yang menjelaskan isi dan struktur dari komponen digital.
2.2.11 Hypertext Preprocessor (PHP) PHP adalah bahasa scripting yang menyatu dengan HTML (kode dasar website) dan dijalankan pada server side. Artinya, semua sintaks PHP yang diberikan akan sepenuhnya dijalankan
64
pada server, sedangkan yang dikirmkan ke browser hannya hasilnya saja (Wardana, 2010, p7).
2.2.11.1 Keunggulan PHP Berikut adalah beberapa keunggulan dari PHP (Wahyono, 2009, p36-37): •
Source program atau script tidak dapat dilihat dengan menggunakan fasilitas view HTML source, yang ada web browser seperti Internet Explorer atau semacamnnya.
•
Script tersebut dapat memanfaatkan sumbersumber aplikasi yang dimilki oleh server, seperti misalnya untuk keperluan database connection. Saat ini, PHP sudah mampu melakukan koneksi dengan berbagai database seperti MYSQL, Microsoft SQL Server, Velocis, IBM DB2, Interbase, PostgreSQL, bahkan semua database yang mempunyai provider ODBC, seperti Microsoft Access dan lain-lain.
•
Pada aplikasi yang dibuat oleh PHP, pada saat dijalankan server akan mengerjakan script dan hasilnyalah yang dikirimkan ke web browser. Hal itu akan menyebabkan aplikasi tidak memerlukan kompatibilitas web browser atau harus menggunakan
65
web browser tertentu dan pasti dikenal oleh web browser apapun. •
PHP
dapat
melakukan
semua
aplikasi
program, baik dengan modul ISAPI, CGI maupun FastCGI dalam melakukan pemrograman dinamis. Hal itu membuat PHP mampu menangani fungsifungsi
seperti mengambil form, menghasilkan
halaman web yang dinamis, mengatur session, mengirimkan atau menerima cookies dan lain sebagainya. PHP juga dapat berkomunikasi dengan layananlayanan yang menggunakan protokol IMAP, SNMP, NNTP, POP3, HTTp dan lainnya.
2.2.12 MySQL Menurut Welling dan Thomson (2008, p3), MySQL adalah cepat, kuat, dan merupakan sistem manajemen basis data relasional (RDBMS). Basis data memungkinkan anda secara efisien untuk menyimpan, mencari, mengurutkan, dan mengambil data. Server MySQL mengontrol akses ke data anda untuk memastikan banyak user dapat bekerja bersamaan, dapat menyediakan akses cepat, dan memastikan hanya yang berwenang yang dapat memperoleh akses. Oleh karena itu MySQL data disebut dengan multi-user dan multi-server.
66
2.2.13
JQuery Menurut Solichin (2010), JQuery merupakan suatu framework (library) javascript yang menekankan bagaimana interaksi antara Javascript dan HTML. Pada perkembangannya JQuery tidak sekedar
sebagai
framework
javascript,
namun
memiliki
kehandalan dan kelebihan yang cukup banyak. Hal tersebut menyebabkan banyak developer web menggunakannya. JQuery memiliki slogan “Write less, do more” yang kurang lebih maksudnya adalah kesederhanaan dalam penulisan code, tapi dengan hasil yang lebih banyak.