TINJAUAN PUSTAKA
2.1 Pengertian Basis DataMenurut Connolly (Connolly 2010 p65) basis data adalah salah satu koleksi data-data yang terkait secara logis, dan juga merupakan pendeskripsian dari data-data tersebut yang dirancang untuk menyajikan informasi yang dibutuhkan oleh sebuah organisasi. Dalam basis data ada tiga istilah penting, yaitu entitas, atribut, dan relationship. Entitas adalah sebuah objek berbeda (seseorang, tempat, benda, konsep, atau kejadian) dalam organisasi yang harus direpresentasikan dalam basis data. Atribut adalah sebuah property yang mendeskripsikan beberapa aspek yang indi direcord. Relationship adalah asosiasi antar entitas (Connolly 2010, p65).
Menurut Abdul Kadir (2009:25) langkah pertama yang harus diambil dalam perancangan database adalah melakukan suatu pengumpulan data kebutuhan akan informasi yang diperlukan didalam suatu organisasi dan menganalisa data tersebut. Mencari informasi ini dapat dilakukan dengan cara seperti : melakukan wawancara, mengamati sistem yang sedang berjalan di organisasi tersebut. Dengan cara yang seperti itu diharapkan dapat memudahkan untuk mendapatkan data serta menyusun informasi agar dapat teridentifikasi.
Gambar 2.1 Proses Perancangan Basis Data
2.1.1. Perancangan konseptual
Pada tahap ini data yang dibutuhkan oleh organisasi atau perusahaan dikelompokkan menurut kriteria tertentu. Kemudian antara grup data dengan grup data lainnya dilengkapi dengan hubungan. Diterminologibasis data grup data tersebut dinamakan Entitas, Adapun hubungan antar entitas biasa dijabarkan dengan menggunakan diagram E-R (Entity-Relationship).
2.1.2. Model Basis Data
Menurut Connolly (Connolly 2010 p45) model basis data menyatakan hubungan antara rekaman yang tersimpan didalam basis data. Model yang paling umum dipakai ada 3 macam, antara lain:
1. Model Hirarkis
Model data hirarki sering disebut Tree Structure. Ini menjelaskan kepada user tentang hubungan logis antar data dalam database dalam bentuk hubungan bertingkat. Elemen penyusunnya disebut node yang pada kenyataannya dapat berupa rinci data, agregat data, atau record. Level paling tinggi dalam suatu hirarki hanya harus terdapat satu node dan disebut root. Suatu node pada level yang lebih rendah hanya diizinkan mempunyai satu relasi dengan node pada tingkat lebih tinggi yang disebut parent. Sedangkan kebalikannya, parent dapat mempunyai level lebih rendah dan dihubungkan dengan parent. Suatu node yang tidak mempunyai child disebut leaves.Jadi, dalam model hirarki tidak ada child yang mempunyai lebih dari satu parent.
2. Model Jaringan
Model jaringan ini juga disebut model CODASYL (Conferense on Data Systems Languages) atau Plex Structure. Seperti pada model hirarki, model jaringan dapat dideskripsikan ke dalam struktur parent dan child dan digambarkan sedemikian rupa sehingga child pasti berada pada level yang lebih rendah dari pada parent. Hal ini yang membedakan antara model hirarki dan model jaringan. Teknik leveling pada model jaringan adalah sama dengan teknik leveling pada model hirarki.
3. Model Relasional
Model data relasional menjelaskan kepada user tentang hubungan logis antar data dalam database dengan memvisualisasikan kedalam bentuk table yang terdiri dari sejumlah baris dan kolom yang menunjukan atribut tertentu. Relasi dirancang sedemikian rupa sehingga dapat menghilangkan kemubaziran data dan menggunakan kunci tamu untuk berhubungan dengan relasi lain.
2.1.3. Model E-R
Model E-R (Entity-Relationship) adalah model yang digunakan untuk menggambarkan data dalam bentuk entitas, atribut dan hubungan antar entitas. Model ini dinyatakan dalam bentuk diagram. Itulah sebabnya model E-R seringkali juga disebut sebagai diagram E-R. Model ini tidak mencerminkan bentuk fisik yang nantinya akan disimpan dalam basis data, melainkan hanya bersifat konseptual (Abdul kadir, 2009).
Adapun beberapa istilah penting yang terkait dengan model data relasional sebagai berikut :
1. Relasi
Relasi adalah tabel yang terdiri atas baris dan kolom. Perlu diketahui kumpulan relasi yang terkait membentuk sebuat basis data.
2. Atribut
Atribut adalah suatu nama untuk kolom yang terdapat pada suatu relasi.
3. Tuple
Tuple adalah sebuah baris dalam sebuah relasi. Sebuah relasi mengandung banyak baris.
4. Domain
Domain adalah seluruh kemungkinan nilai yang dapat diberikan ke suatu atribut
2.1.4. Perancangan Fisik
Perancangan ini sangat spesifik terhadap DBMS yang digunakan. Sebagai contoh, tipe data atau domain untuk masing-masing kolom dalam setiap tabel harus disesuaikan dengan DBMS yang digunakan.
2.2 Database Lifecycles
Menurut Connolly dan Begg (2010, p313), siklus basis data adalah sebuah proses yang sangat terkait dengan siklus pengembangan sistem informasi.
Gambar 2.2 Diagram Siklus Hidup Basis Data
Tahapan dari siklus pengembangan sistem basis data adalah sebagai berikut:
a) Database Planning
Database Planning adalah kegiatan manajemen yang memungkinkan siklus pengembangan sistem basis data untuk direalisasikan seefisien dan seefektif mungkin.
b) Definisi Sistem
Definisi sistem menjelaskan ruang lingkup dan batasan dari sistem basis data yang akan dibuat serta pandangan pengguna terhadap sistem-sistem basis data.
c) Analisis dan Pengumpulan Kebutuhan
Analisis dan pengumpulan kebutuhan adalah proses pengumpulan dan analisis informasi tentang bagian dari organisasi yang akan didukung oleh sistem basis data, dan menggunakan informasi itu untuk mengindentifikasi kebutuhan terhadap sistem yang baru. Terdapat banyak teknik untuk mengumpulkan informasi ini yang disebut fact-finding technique diantaranya:
1. Mempelajari Dokumentasi
Mempelajari dokumentasi berguna untuk memperoleh wawasan mengenai kebutuhan organisasi terhadap basis data, mengidentifikasi bagian dari organisasi yang terkait dengan masalah, dan memahami sistem yang sedang berjalan.
2. Wawancara
Wawancara adalah teknik fact-finding yang paling popular dan umum digunakan. Teknik ini memungkinkan pengumpulan informasi secara tatap muka.
3. Observasi
Observasi adalah teknik yang mudah digunakan untuk mengumpulkan data terhadap pertanyaan dan sesuai dengan kebutuhan sistem berdasarkan keterangan pengguna.
4. Riset
Riset adalah teknik yang digunakan untuk mengkaji masalah. Riset dapat menggunakan informasi terkini seperti internet, buku, dan buku referensi.
5. Kuesioner
Kuesioner adalah teknik pengumpulan data dan informasi yang bias didapatkan secara cepat dari banyak responden yang dikelola dengan beberapa control melalui pemberian pertanyaan. Ada dua tipe pertanyaan, yaitu format bebas dan format terkait.
6. Database Design
Database Design adalah proses perancangan yang akan mendukung misi perusahaan dan tujuan misi untuk sistem basis data yang diperlukan.
7. DBMS Selection
DBMS Selection adalah pemilihan suatu perangkat lunak DBMS yang tepat untuk mendukung sistem basis data.
8. Application Design
Application design adalah tahap untuk merancang tampil untuk pengguna dan program aplikasi yang digunakan untuk mengakses basis data.
9. Prototyping
Prototyping adalah tahap untuk membangun model kerja sementara pada sistem basis data.
10.Implementasi
Implementasi adalah tahapan penerapan atau implementasi rancangan basis data fisikal beserta rancangan aplikasinya
11.Data Conversion dan Loading
Data Conversion dan Loading adalah proses mentransfer data yang ada ke dalam basis data baru dan mengkonversi setiap aplikasi yang ada untuk dijalankan pada sistem baru.
12.Testing
Testing adalah proses menjalankan sistem basis data dengan tujuan menemukan masalah.
13.Operational Maintenance
Operational Maintenance adalah proses pemantauan dan pemeliharaan sistem basis data instalasi perangkat lunak terbaru guna menjaga performa sistem.
2.3 ERD (Entity Relationship Diagram) 2.3.1 Konsep Model ERD
1. Relationship
Relationship adalah kumpulan keterhubungan yang mempunyai arti antara tipe entitas yang ada (Connolly 2010, p375).
2. Structural Constraints
Batasan utama pada relationship multiplicity, yaitu jumlah dari kejadian yang mungkin terjadi pada suatu entitas yang terhubung ke satu kejadian dari entitas lain yang berhubungan melalui suatu relationship. Relationship yang paling umum ada binary relationship. Macam-macam binary relationship, yaitu:
a. One-to-one (1:1) b. Many-to-many 3. Atributs
Atributs merupakan sifat-sifa dari sebuah entitas atau tipe relationship. Atributs domain adalah himpunan nilai yang diperbolehkan untuk satu atau lebih (Connolly 2010, p379). Bentuk-bentuk dari atribut:
a. Simple Atribut, adalah atribut yang terditi dari satu komponen tunggal dengan keberadaan yang independen dan tidak dapat dibagi menjadi bagian yang lebih kecil lagi.
b. Composite Atribut, adalah yang terdiri dari beberapa komponen, dimana masing-masing komponen memiliki keberadaan yang independen.
c. Single Valued Atribut, yaitu atribut yang mempunyai nilai tunggal untuk setiap kejadian.
d. Multi Valued Atribut, yaitu atribut yang mempunyai beberapa nilai untuk setiap kejadian.
e. Derived Atribut, yaitu atribut yang memiliki nilai yang dihasilkan dari satu atau beberapa atribut lainnya dan tidak harus berasal dari satu entitas.
4. Keys
a. Candidate key, yaitu jumlah minimal atribut-atribut yang dapat mengidentifikasikan setiap kejadian secara unik.
b. Primary key, yaitu Candidate key yang terpilih untuk mengidentifikasi setiap kejadian dari suatu entitas secara unik. c. Composite Key, yaitu Candidate key yang terdiri dari dua atau
lebih atribut. 2.4 Normalisasi
Tujuan utama dalam pengembangan model data logical pada sistem basis data relasional adalah untuk menciptakan representasi akurat suatu data, keterhubungan dan batasan-batasannya. Untuk mencapai tujuan ini, maka harus diidentifikasi sekumpulan relasi.
Empat bentuk normal yang biasa digunakan, yaitu First Normal Form (1NF), Second Normal Form (2NF), dan Third Normal Form (3NF) dan Boyce-Codd Normal Form (BCNF). Terdapat bentuk Fourth Normal Form (4NF) dan Fifth Normal Form (5NF) untuk situasi yang jarang terjadi (Connolly 2010, P416).
Berdasarkan pada Functional Dependencies antara atribut dalam relasi. Sebuah relasi dapat dinormalisasikan ke dalam bentuk tertentu untuk mengatasi kemungkinan terjadinya pengulangan dari foreign key yang tidak baik, normalisasi adalah suatu teknik untuk menghasilkan sekumpulan relasi dengan sifat-sifat yang diinginkan, memenuhi kebutuhkan data pada enterprise.
Normalisasi sendiri dilakukan melalui sejumlah langkah. Setiap langkah berhubungan dengan bentuk normal tertentu. Bentuk normal dalam normalisasi dapat berupa:
1. Bentuk Normal Pertama
Bentuk normal pertama (1NF) adalah suatu keadaan yang membuat setiap perpotongan baris dan kolom dalam relasi hanya berisi satu nilai.
2. Bentuk Normal Kedua
Bentuk normal kedua adalah suatu bentuk yang menyaratkan bahwa relasi harus sudah berada dalam bentuk normal pertama dan tidak mengandung dependensi parsial.
3. Bentuk Normal Ketiga
Bentuk normal ketiga adalah suatu keadaan yang menyatakan bahwa relasi sudah harus berada dalam bentuk normal kedua dan tidak mengandung dependensi transitif.
4. Bentuk Normal Boyce-Codd
Bentuk normal ini adalah suatu keadaan yang menyaratkan bahwa setiap determinan (penentu) dalam suatu relasi berkedudukan sebagai kunci kandidat.
5. Bentuk Normal keempat
Bentuk normal keempat adalah suatu keadaan yang menyatakan relasi berada pada BCNF dan tidak mengandung lebih dari satu dependensi bernilai-banyak yang bersifat independen.
6. Bentuk Normal kelima
Bentuk normal kelima adalah suatu keadaan yang membuat relasi yang telah memenuhi bentuk normal keempat tidak dapat didekomposisi menjadi relasi-relasi yang lebih kecil dengan kunci kandidat relasi.
1. Data redundancy
Tujuan utama dari desain basis data relasional adalah untuk mengelompokkan atribut-atribut ke dalam relasi-relasi sehingga meminimalisir redundansi data dan mengurangi penggunaan tempat penyimpanan yang dibutuhkan oleh sebuah relasi dasar. Masalah-masalah yang terkait dengan redundansi dapat dijelaskan dengan membandingkan relasi staff dan branch dengan relasi dari branch dituliskan berulang-ulang setiap staff. Sebaliknya, informasi mengenai branch muncul hanya satu kali pada relasi branch dan hanya BranchNo saja yang diulang dalam relasi staff, untuk merepresentasikan dimana setiap staff tersebut bekerja. (Connolly 2010, P418)
2. Foreign key Anomalies
Relasi yang mengandung informasi yang redundan dapat diakibatkan oleh foreign key anomalies, beberapa tipe dari foreign key anomalies, diantaranya foreign keyion, deletion, dan modification. (Connolly 2010, P419)
3. Functional Dependency
Merupakan konsep inti yang terkait dengan normalisasi. Menjelaskan relationship antar atribut-atribut dalam relasi. Misalkan, jika X dan Z adalah atribut dari suatu relasi R, Z dikatakan Functional Dependent pada X(X→Z), jika setiap nilai X dihubungkan dengan tepat pada satu nilai Z (X dan Z masing-masing dapat terdiri dari satu atau lebih atribut).
Functional Dependency merupakan sifat dari arti semantic suatu atribut dalam sebuah relasi. Direpresentasikan dalam diagram:
Determinant dari functional dependency mengacu kepada atribut atau himpunan atribut di sebelah anak panah
Gambar 2.4 Contoh Functional dependency 2
Aturan Functional Dependencies (Armstrong’s Axioms) :
1. Reflectivity
Jika B adalah bagian A, maka A -> B
2. Augmentation
Jika A -> B, maka A, C -> B, C
3. Transivity
4. Decomposition
Jika A -> B, C, maka A -> B dan A -> C
5. Union
Jika A -> B dan A -> C, maka A -> B, C
6. Composition
Jika A -> B dan C -> D, maka A, C -> B, D
2.5. Metodologi Perancangan Database
Dalam merancang sebuah databse, ada tiga tahap yang harus dilewati. Tahap-tahap tersebut akan dijabarkan, antara lain :
2.5.1. Perancangan Conceptual Database
Conceptual Databse adalah proses perancangan sebuah model informasi yang lepas dari semua pertimbangan secara fisikal, yang akan digunakan dalam sebuah organisasi. (Connolly dan Begg, 2010, p467). Langkah pertama dalan perancangan conceptual database adalah merancang model data konseptual lokal untuk setiap tampilan, yang terdiri dari:
1. Mengidentifikasi tipe entitas
Pada tahap ini dilakukan pengidentifikasian tipe entitas utama yang dibutuhkan oleh pengguna dengan cara menelusuri kata benda, objek utama yang ada dalam prosedur sistem. Setelah tipe entitas diidentifikasi, dilakukan pemberian nama yang jelas kepada pengguna dan mencatat nama dan deskripsi entitas dalam kamus data (Connolly dan Begg, 2010, p471).
2. Mengidentifikasi tipe relasi
Pada tahap ini dilakukan identifikasi relasi yang penting diantara tipe entitas dengan cara menelusuri kata kerja yang ada dalam prosedur sistem (Connolly dan Begg, 2010, p472).
3. Mengidentifikasi dan menggabungkan atribut dan entitas atau relasi Pada tahap ini dilakukan penggabungan atribut dan tipe entitas atau relasi yang sesuai yaitu dengan mengidentifikasi simple/composite atribut, single/multi-value atribut, dan derived atribut. Setelah diidentifikasi, dilakukan pemberian nama yang berarti kepada pengguna, kemudian mencatat beberapa informasi untuk tiap atribut (Connolly dan Begg, 2010, p474).
4. Menentukan domain atribut
Pada tahap ini ditentukan domain atribut dalam model data konseptual (Connolly dan Begg, 2010, p478).
5. Menentukan atribut primary key dan candidate key
Pada tahap ini dilakukan identifikasi candidate key untuk setiap tipe entitas dan jika terdapat lebih dari satu candidate key, harus dilakukan pemilihan sebuah primary key (Connolly dan Begg, 2010, p479). 6. Mempertimbangkan penggunaan enchanced modeling concept
Pada tahap ini dipertimbangkan penggunaan dari enhanced modeling concept, seperti specialization, generalization, dan composition (Connolly dan Begg, 2010, p480).
7. Mengecek model redundansi
Pada tahap ini dilakukan pengecekkan ada atau tidaknya redudansi dalam model data dan menghilangkannya jika ada (Connolly dan Begg, 2010, p482).
8. Menvalidasi model conceptual local terhadap transaksi pengguna Pada tahap ini dilakukan penegasan bahwa model konseptual lokal mendukung transaksi yang dibutuhkan oleh tampilan (Connolly dan Begg, 2010, p483).
2.5.2 Perancangan Logical Database
Menurut Connolly dan Begg (2010, p490-518) langkah kedua adalah membangun dan menvalidasi logical data model untuk setiap tampilan, terdiri dari:
1. Menentukan relasi untuk logical data model
Pada tahap ini dibuat relasi untuk logical data model lokal yang mewakili entitas, relasi, dan atribut yang sudah diidentifikasi.
2. Menvalidasi relasi dengan menggunakan normalisasi
Pada tahap ini dilakukan validasi relasi dalam logical data model lokal dengan menggunakan teknik normalisasi.
3. Memvalidasi relasi terhadap transaksi pengguna
Pada tahap ini dilakukan validasi bahwa relasi dalam model data logical lokal mendukung transaksi yang dibutuhkan tampilan, juga bahwa tidak ada kesalahan dalam relasi yang telah dibuat.
4. Menentukan integrity constraint
Pada tahap ini ditetapkan integrity constraint yang terdapat dalam tampilan.
5. Menggabungkan model data logical menjadi model data global
Pada tahap ini dilakukan penggabungan beberapa model data logical menjadi model data global.
2.5.3. Perancangan Basis Data Fisikal
Perancangan basis data fisikal adalah proses dalam membuat suatu deskripsi mengenai implementasi database pada penyimpanan sekunder, menggambarkan basis relasi, organisasi file, dan indeks yang digunakan untuk mencapai akses data secara efisien, dan juga beberapa integritas terkait serta pengukuran keamanan (Connolly dan Begg, 2010, p467). Menurut Connolly dan Begg (2010, p523-543) langkah-langkah yang digunakan dalam perancangan basis data fisikal:
1. Menerjemahkan Model Data Logikal ke DBMS pilihan
Tujuannya untuk menghasilkan skema relasional basis data dari model data logical yang dapat diimplementasikan pada DBMS.
a) Merancang Relasi Dasar
Tujuannya untuk memutuskan bagaimana merepresentasikan relasi dasar yang diidentifikasikan dalam model data logical. b) Merancang Representasi dari Data Turunan (Derived Data)
Tujuannya untuk memutuskan bagaimana merepresentasikan semua data turunan pada model data logical.
c) Merancang Batasan Umum (General Constraint)
Tujuannya untuk merancang batasan umum pada DBMS yang dipilih
2. Merancang Organisasi File dan Indeks
Tujuannya untuk menentukan bagaimana pengorganisasian file yang efektif untuk menyimpan relasi dasar dan menentukan indeks yang diperlukan untuk mencapai hasil yang diharapkan.
a) Menganalisa Transaksi
Tujuannya untuk memahami fungsi dari suatu transaksi yang dijalankan pada basic data dan menganalisa transaksi yang penting.
b) Memilih Indeks
Tujuannya untuk menentukan penambahan indeks yang dapat digunakan untuk meningkatkan performa suatu system.
c) Memperkirakan Kapasitas Penyimpanan Yang Dibutuhkan Tujuannya untuk memperkirakan kapasitas disk yang dibutuhkan.
3. Merancang User View
Tujuannya untuk merancang user view yang dianalisis dari siklus hidup aplikasi basis data dan diidentifikasikan selama pengumpulan informasi.
4. Merancang Mekanisme Keamanan
Tujuannya untuk merancang keamanan basis data yang dispesifikan untuk user.
2.6. Data Flow Diagram
Menurut Indrajani (2011, p11), Data Flow Diagram adalah sebuah alat yang menggambarkan aliran data sampai sebuah sistem selesai, dan kerja atau proses dilakukan dalam sistem tersebut. Dalam DFD ada 4 komponen utama, yaitu:
1. External Agent
External Agent mendefinisikan orang atau sebuah unit organisasi, sistem lain, atau organisasi yang berada di luar sistem proyek tapi dapat mempengaruhi sistem kerja.
Gambar 2. 5 Simbol External Agent 2. Proses
Proses adalah penyelenggaraan kerja atau jawaban, datangnya aliran data atau kondisinya.
Gambar 2. 6 Simbol Proses 3. Data Flow
Mempresentasikan sebuah input data ke dalam sebuah proses atau output dari data (atau informasi) pada sebuah proses. Data flow juga digunakan untuk pembuatan, pembacaan, penghapusan, atau pembaruan data dalam file atau database.
Gambar 2. 7 Simbol Data Flow 4. Data Store
Suatu penyimpanan data yang ditujukan untuk pengguna selanjutnya. Sinonimnya adalah file dan database.
Jenis-jenis DFD adalah sebagai berikut : 1. Level 0 ( Diagram konteks)
Level ini merupakan sebuah proses yang berada di posisi pusat.
2. Level 1 (Diagram Nol)
Level ini merupakan sebuah proses di level 0 yang dipecahkan menjadi beberapa proses lainnya
3. Level 2 (Diagram Rinci)
Level ini merupakan perincian dari diagram level
2.7. Web Database
Menurut Kurniawan(2008), web database merupakan sistem penyimpanan data yang dapat diakses oleh bahasa pemrograman tertentu. Namun tidak seperti sistem basis data konvensional yang hanya ditunjukan untuk platform tertentu, web database dapat diakses oleh aplikasi-aplikasi web yang dikembangkan dengan tag HTML atau script yang bersifat server-side seperti PHP. Kemampuan untuk mengintegrasikan basis data ke dalam aplikasi yang dapat diakses menggunakan web browser inilah yang menjadikan suatu basis data bisa menjadi web database.
2.8. MySQL
Menurut Achmad Solichin (2010, p10), MySQL adalah sebuah perangkat lunak sistem manajemen berbasis data SQL atau DBMS yang multiread, multi-user. MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL). Tidak seperti PHP atau Apache yang merupakan software yang dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing.