BAB 2 LANDASAN TEORI
2.1
Teori Sistem Basis Data 2.1.1 Basis Data Menurut Connolly dan Begg (2010 ,p65) basis data dapat dianggap sebagai sekumpulan data yang saling terkait secara logis yang disertai deskripsi data tersebut , dan dirancang untuk memenuhi kebutuhan informasi perusahaan. Sedangkan basis data menurut Date (1999, p5) adalah suatu sistem yang pada dasarnya menyimpan record-record
di
dalam
suatu
sistem yang dilakukan secara komputerisasi yang tujuannya adalah menjadi suatu kumpulan data yang terhubung dan Database Management System (DBMS) menjadi program yang mengatur dan mengontrol akses ke basis data, serta memelihara informasi dan membuat informasi tersebut tersedia berdasarkan permintaan. 2.1.2 Relational Database Menurut Connolly dan Begg (2010, p87), relational database adalah suatu kumpulan dari relasi yang telah dinormalisasi dengan nama relasi yang berbeda satu dengan yang lain. Relational database terdiri dari kumpulan tabel yang menyimpan data tertentu. Relational database menghasilkan informasi dalam tabel dan kolom. Tabel diartikan sebagai relasi yaitu sekumpulan data yang berasal dari jenis yang sama. Data- data dalam tabel dihubungkan sesuai dengan keys yang ada. 5
6
2.1.3 Database Management Sistem Menurut Connolly dan Begg (2010, p66), DBMS adalah sebuah sistem perangkat lunak yang memampukan user untuk mendifinisikan, membuat, memelihara, dan mengendalikan akses terhadap sistem basis data 2.1.3.1 Komponen DBMS Komponen DBMS terdiri dari 5 yang utama yaitu : 1. Hardware (Perangkat Keras) Dibutuhkan perangkat keras untuk menjalankan DBMS dan aplikasinya seperti personal computer, mainframe, maupun jaringan yang terdiri dari banyak computer. 2. Software (Perangkat Lunak) Komponen dari perangkat lunak terdiri dari perangkat lunak DBMS itu sendiri dan program aplikasi. 3. Data Data pada sebuah sistem basis data baik itu single-user system maupun multi-user system harus terintegrasi dan dapat digunakan bersama. 4. Prosedur Intruksi dan aturan yang harus disertakan dalam mendesain dan menggunakan data dalam basis data dan DBMS. 5. Manusia Orang-orang yang terlibat dalam DBMS antara lain : a.
Data Administrator, orang yang berwenang untuk membuat keputusan strategi dan kebijakan mengenai data yang ada.
7
b.
Database Administrator, orang yang menyediakan dukungan teknis untuk implementasi kebutuhan tersebut dan bertanggung jawab atas kontrol sistem pada level teknis.
c.
Database Designer, ada dua tipe dari database designer yaitu : i.
Logical
Database
Designer,
tugasnya
berhubungan
dengan mengidentifikasi relasi antar data dan batasan pada data yang akan disimpan pada basis data. ii.
Physical Database Designer, bertugas untuk memutuskan bagaimana desain logikal basis data direalisasikan.
d.
Aplication Programmer, bertanggung jawab untuk membuat aplikasi basis data dengan menggunakan bahasa pemrograman yang ada.
e.
End User, terdiri dari pengguna yang tidak perlu mengetahui basis data dan DBMS (Naive), serta pengguna yang familiar dengan struktur basis data dan DBMS (Shopisticated).
2.1.3.2 Fasilitas DBMS Fasilitas yang dimiliki DBMS yaitu : 1. Data
Definition
Language
(DDL),
digunakan
untuk
menspesifikasikan tipe data, struktur, dan constraint data. Semua spesifikasi disimpan d dalam basis data. 2. Data
Manipulation
Language
memberikan fasilitas query data.
(DML),
digunakan
untuk
8
3. Pengendalian akses basis data, digunakan untuk mengontrol keamanan sistem, integritas sistem, pengendalian share data, backup dan recovery system, dan katalog deskripsi data dalam basis data. 4. Mekanisme View, digunakan untuk ditampilkan kepada pengguna data yg diperlukan dan digunakan.
2.1.4 Database System Development Lifecycle
Gambar 2.1 Tahapan dari Database Application Lifecycle
9
Tahapan Database System Development Lifecycle adalah : 1. Database Planning, perencanaan basis data merupakan aktivitas menajemen yang memungkinkan tahapan dari database lifecycle direalisasikan seefektif dan dan se-efisien mungkin (Connolly and Begg, 2010, p313). Tahap perancangan basis data juga harius menjelaskan : a. Mission Statement, sasaran utama sistem basis data. Mission Statement menjelaskan tujuan sistem basis data dan menyediakan maksud lebih jelas dalam pembuatan aplikasi basis data secara efisien dan efektif (Connolly and Begg, 2010, p313). b. Mission Objectives, selain merumuskan tujuan dari sebuah proyek basis data namun harus diperhatikan mengenai tugas apa saja yang harus didukung oleh basis data tersebut. Setiap Mission Objectives akan menjelaskan tugas tertentu yang harus didukung oleh basis data, dengan asumsi jika basis data mendukung Mission Objectives, maka Mission Statement juga akan sesuai (Connolly and Begg, 2010, p314). 2. System Definition, proses menspesifikasikan ruang lingkup dan batasan dari aplikasi sistem basis.Menjelaskan batasan dan cakupan dari aplikasi basis data dan sudut pandang user (user view) utama (Connolly and Begg, 2010, p316). 3. Requirement Collection and Analysis, proses pengumpulan dan analisa informasi mengenai bagian dari organisasi yang akan didukung oleh aplikasi sistem basis data dan mengggunakan informasi ini untuk mengidentifikasi kebutuhan pada sistem yang baru.Ada banyak teknik untuk mengumpulkan informasi. Teknik tersebut dinamakan fact-finding.
10
4. Database Design, proses dari pembuatan sebuah rancangan yang mendukung visi dan misi perusahaan yang dibutuhkan untuk sebuah sistem basis data. Menurut Conolly dan Begg, metodologi perancangan sistem basis data terdiri dari 3 tahap, yaitu : Tahap 1: Perancangan Sistem Basis data secara koseptual, yaitu proses membuat model dari data yang digunakan dalam perusahaan tanpa pertimbangan fisikal. Tahap 2: Perancangan sistem basis data secara logikal, yaitu proses membuat model dari data yang akan digunakan dalam perusahaan berdasarkan sebuah model data yang spesifik. Tahap 3: Perancangan sistem basis data secara fisikal, yaitu proses menghasilkan sebuah deskripsi implementasi dari database pada penyimpanan sekunder. 5. DBMS selection, Pemilihan DBMS yang tepat untuk mendukung sistem basis data. Tahap-tahap utama untuk memilih DBMS
(Connolly dan
Begg, 2010, p325) : a. Mendefinisikan terminologi studi referensi Dibuat dengan menyatakan tujuan dan ruang lingkup pembelajaran, tugas-tugas yang akan dikerjakan, penjelasan kriteria (berdasarkan spesifikasi digunakan
kebutuhan
pengguna)
yang
akan
dalam mengevaluasi produk-produk DBMS, daftar
produk-produk yang dimungkinkan, semua batasan-batasan dan skala waktu yang dibutuhkan untuk proses pembelajaran.
11
b. Mendaftar dua atau tiga produk Kriteria
yang
dianggap
penting
dalam
keberhasilan
implementasi dapat digunakan untuk membuat daftar produkproduk DBMS dalam evaluasi, seperti dana yang tersedia, tingkat dukungan vendor, kecocokan dengan perangkat lunak lainnya, dan apakah produk hanya berjalan pada perangkat keras tertentu. c. Evaluasi produk Ada berbagai
fitur
yang
dapat
digunakan
untuk
mengevaluasi produk DBMS (Connolly dan Begg, 2010, p326). dikelompokkan menjadi definisi data, definisi fisik, kemampuan akses, penanganan keperluan-keperluan, pengembangan, dan fitur lainnya. d. Rekomendasi pilihan dan laporan produk Langkah
terakhir
dari
pemilihan
DBMS
adalah
mendokumentasikan prosesnya dan membuat pernyataan dalam penemuan dan rekomendasi atas produk DBMS tertentu. 6. Application Design, Desain aplikasi adalah rancangan dari user interface dan programprogram aplikasi yang di gunakan dan proses suatu basis data. Desain basis data dan aplikasi merupakan aktivitas paralel yang meliputi dua aktivitas penting, yaitu (Connolly dan Begg, 2010, p329) : a. Perancangan transaksi (transaction design) Transaksi adalah satu aksi atau serangkaian aksi yang dilakukan oleh pengguna tunggal atau program aplikasi, yang mengakses atau merubah isi dari database. Kegunaan dari desain
12
transaksi adalah untuk menetapkan dan keterangan karakteristik high-level dari suatu transaksi yang dibutuhkan pada database, diantaranya : i. Data yang akan digunakan oleh transaksi ii. Karakteristik fungsional dari suatu transaksi iii. Output transaksi iv. Keuntungannya bagi user v. Tingkat kegunaan yang diharapkan Terdapat tiga tipe transaksi yaitu : i. Retrieval transaction, digunakan untuk pemanggilan data untuk ditampilkan di layar atau menghasilkan suatu laporan, ii. Update transaction, digunakan untul menambahkan record baru, menghapus record lama, atau memodifikasi record yang sudah ada di dalam basis data. iii. Mixed transaction, meliputi pemanggilan dan perubahan data. b. Perancangan antarmuka pengguna (user interface design). Tujuan dari Perancangan Antarmuka Pengguna adalah merancang interface yang efektif untuk sistem perangkat lunak. 7. Prototyping, Membuat model kerja dari sebuah aplikasi basis data. Tujuan utama dari pembuatan prototyping adalah (Connolly dan Begg, 2010, p333): a. Untuk memungkinkan pengguna untuk menggunakan prototipe b. Untuk mengidentifikasi feature dari sistem yang berkerja dengan baik atau tidak.
13
c. Untuk menyarankan
/
memberikan perbaikan-perbaikan atau
penambahan feature baru. d. Untuk klarifikasi kebutuhan user. e. Untuk evaluasi kemungkinan yang terjadi dari desain sistem khusus. Terdapat dua macam strategi prototyping yang digunakan saat ini : a. Requirements
prototyping,
menggunakan
prototype
untuk
menentukan kebutuhan dari aplikasi database yang diinginkan dan ketika kebutuhan itu terpenuhi maka prototype akan dibuang. b. Evolutionary prototyping, digunakan untul tujuan yang sama. Perbedaannya protoype tidak dibuang tetapi dengan pengembangan lanjutan menjadi aplikasi database yang digunakan. 8. Implementation, Implementasi merupakan realisasi secara fisik dari basis data dan desain aplikasi (Connolly dan Begg, 2010, p333). Implementasi basis data dilakukan dengan menggunakan Data Definition Language (DDL) dari DBMS yang dipilih atau Graphical User Interface (GUI). Aplikasi program diimplementasikan menggunakan third or forth generation language (3GL atau 4GL). Bagian dari aplikasi program dan transaksi basis data, yang diimplementasikan menggunakan Data Manipulation Language (DML), kemungkinan sudah ada dalam host pemrograman. 9. Data Conversion dan Loading, Pemindahan data yang ada dalam basis data yang baru dan mengubah aplikasi yang sedang berjalan agar dapat digunakan dalam basis data yang baru (Connolly dan Begg, 2010, p334)
14
langkah ini diperlukan hanya ketika suatu sistem basis data baru sedang menggantikan suatu sistem basis data yang lama. 10. Testing, proses menjalankan sistem basis data dengan tujuan mencari kesalahan(error). 11. Operational Maintanance, Suatu
proses
untuk
memonitor
dan
merawat sistem aplikasi setelah instalasi. Dalam langkah-langkah yang sebelumnya, aplikasi basis data telah secara penuh diterapkan dan diuji. Sistem sekarang pindah kesuatu langkah pemeliharaan yang melibatkan aktivitas yang berikut (Connolly dan Begg, 2010, p335) : a. Monitoring performance dari sistem. Jika performance jatuh dibawah suatu tingkatan yang bisa diterima penyetelan atau reorganisasi basis data mungkin diperlukan. b. Maintaining dan meningkatkan mutu aplikasi basis data
(ketika
diperlukan).
2.1.5 SQL SQL adalah contoh dari transformasi - bahasa rorientasi (transform oriented language), atau bahasa yang dirancang untuk menggunakan hubungan untuk mengubah input menjadi output yang diperlukan. sebagai bahasa, standard ISO SQL memiliki dua komponen utama, yaitu (Connolly dan Begg, 2010, p184) : 2.1.5.1 Data Definition Language (DDL) Connolly and Begg (2010, p92) mendifinisikan DDL sebagai suatu bahasa yang mengijinkan administrator sistem basis data atau
15
user untuk menggambarkan dan memberi nama entitas, atribut, dan relasi yang dibutuhkan untuk aplikasi disertai dengan batasanbatasan integritas dan keamanan (Integrity Constraint and Security Constraint). Contoh operasinya adalah sebagai berikut: 1. Membuat tabel baru ke dalam database (Create) 2. Menghapus tabel dari database (Drop) 3. Memodifikasi tabel dalam database (Alter)
2.1.5.2 Data Manipulation Language (DML) Connolly and Begg (2010, p92) mendifinisikan DML merupakan suatu bahasa yang menyediakan seperangkat operasi untuk mendukung dasar operasi untuk manipulasi data dasar dari data yang tersimpan pada sistem basis data. Operasi manipulasi data biasanya adalah sebagai berikut: 1. Memasukkan data baru ke dalam database (Insert) 2. Memodifikasi data yang tersimpan dalam database (Update) 3. Pengambilan data yang terdapat dalam database (Select) 4. Penghapusan data dari database (Delete / Drop)
2.1.6 Entity Relationship Modeling Menurut Connolly dan Begg (2010, p371), salah satu aspek yang sulit dalam perancangan database adalah kenyataannya bahwa, perancang, programmer, dan end-user cenderung melihat data dengan cara yang berbeda. Karena itu, untuk memastikan pemahaman secara alamiah dari data
16
dan bagaimana data digunakan oleh perusahaan membutuhkan sebuah bentuk komunikasi yang non- teknis (non-technical) dan bebas dari kebingungan.
2.1.6.1 Entity Relationship Diagram Menurut pendapat Kronke (2006, p37) Entity-Relationship Diagram (ERD) adalah adalah suatu pemodelan konseptual yang didesain secara khusus untuk mengidentifikasikan entitas yang menjelaskan data dan hubungan antar data, yaitu dengan menuliskan dalam cardinality.
2.1.6.2 Tipe Entity Konsep dasar dari model ER adalah tipe entity, yaitu kumpulan dari
objek-objek
diidentifikasi
oleh enterprise
independen. (Connolly
dengan
sifat
yang
sama,
mempunyai eksistensi
yang yang
Keberadaannya dapat berupa fisik maupun abstrak dan
Begg,
2010,
p372).Entity
occurence,
yaitu
pengidentifikasian objek yang unik dari sebuah tipe entity.Setiap entity diidentifikasikan dan disertakan property-nya (Connolly dan Begg, 2010, p374).
Gambar 2.2 Representasi Diagram dari Tipe Entity
17
2.1.6.3 Tipe Relationship Tipe
relationship
merupakan
kumpulan
keterhubungan
yang mempunyai arti antara tipe entity yang ada (Connolly dan Begg, 2010, p374). Relationship occurence,
yaitu keterhubungan yang
diidentifikasi secara unik yang meliputi keberadaan tiap tipe entity yang berpartisipasi.
Gambar 2.3 Representasi Diagram dari Relationship
2.1.6.4 Derajat Relationship Yaitu
jumlah
entity
yang
berpartisipasi
dalam
suatu
relationship (Connolly dan Begg, 2010, p376). Derajat relationship terdiri dari : 1. Binary relationship, keterhubungan antar dua tipe entity.
Gambar 2.4 Contoh Binary Relationship
18
2. Ternary relationship, keterhubungan antar tiga tipe entity.
Gambar 2.5 Contoh Ternary Relationship
3. Quaternary relationship, keterhubungan antar empat tipe entity.
Gambar 2.6 Contoh Quaternary Relationship
4. Recursive relationship, keterhubungan antar satu tipe entity, dimana tipe entity tersebut berpartisipasi lebih dari satu kali dengan peran yang berbeda
19
Gambar 2.7 Contoh Recursive Relationship
2.1.6.5 Atribut Atribut merupakan sifat-sifat dari sebuah entity atau tipe relationship (Connolly dan Begg, 2010, p379). Attribute domain adalah himpunan nilai yang diperbolehkan untuk satu atau lebih atribut. Macam-macam atribut antara lain : 1. Simple attribute, yaitu atribut yang terdiri dari satu komponen tunggal dengan keberadaan yang independen dan tidak dapat dibagi menjadi bagian yang lebih kecil lagi (Connolly dan Begg, 2010, p379). 2. Composite attribute, yaitu atribut yang terdiri dari beberapa komponen,
dimana
masing-masing
komponen
memiliki
keberadaan yang independen. 3. Single-valued attribute, yaitu atribut yang mempunyai nilai tunggal untuk setiap kejadian. 4. Multi-valued attribute, yaitu atribut yang mempunyai beberapa nilai untuk setiap kejadian.
20
5. Derived attribute, yaitu atribut yang memiliki nilai yang dihasilkan dari satu atau beberapa atribut lainnya, dan tidak harus berasal dari satu entity.
2.1.6.6 Keys Candidate key adalah kumpulan attribute minimal yang unik untuk mengidentifikasikan suatu entity types (Connolly dan Begg, 2010, p381). Primary key adalah key yang telah menjadi candidate key yang dipilih secara unik untuk mengidentifikasi suatu entity types. Composite key adalah candidate key yang terdiri dari dua atau lebih atribut. Alternate key adalah key yang digunakan sebagai alternatif dari key yang telah didefinisikan (Fathansyah,1999,p104). Foreign key adalah primary key pada sebuah entity yang digunakan pada entity lainnya untuk mengidentifikasikan sebuah relationship (Navathe dan Elmasri, 2002, p28).
2.1.6.7 Strong Entity dan Weak Entity Strong
entity (entity
kuat) : entity yang mandiri, yang
keberadaannya tidak bergantung pada keberadaan entity yang lainnya(Connolly dan Begg 2010, p383). Instansiasi entity kuat selalu memiliki karakteristik yang unik disebut identifier (sebuah atribut
21
tunggal atau gabungan atribut-atribut yang secara unik dapat digunakan untuk membedakannya dari entity kuat yang lain). Weak entity (entity lemah) : entity yang keberadaannya sangat bergantung pada keberadaan entity yang lainnya (Connolly dan Begg, 2010, p383). Entity lemah tidak memiliki arti apa-apa dan tidak dikehendaki kehadirannya dalam ER diagram tanpa kehadiran entity di mana mereka bergantung.
Gambar 2.8 Contoh Strong Entity dan Weak Entity
2.1.6.8 Structural Constraints Multiplicity adalah jumlah occurence yang mungkin terjadi pada sebuah entity yang berhubungan ke sebuah occurence dari tipe entity lain pada suatu relationship (Connolly dan Begg, 2010, p385). Relationship yang terjadi diantara dua himpunan entity (misalnya A dan B) dalam satu basis data yaitu (Kadir, 2008, p48) : 1. One-to-One (1:1) Relationships : Hubungan relasi satu ke satu yaitu setiap entity pada himpunan entity A berhubungan paling banyak dengan satu entity pada himpunan entity B.
22
Gambar 2.9 Contoh One-to-One (1:1) Relationships
2. One-to-Many (1:*) Relationships : Setiap entity pada himpunan entity A dapat berhubungan dengan banyak entity pada himpunan entity B, tetapi setiap entity pada entity B dapat berhubungan dengan satu entity pada himpunan entity A.
Gambar 2.10 Contoh Many-to-Many (1:*) Relationships
3. Many-to-Many (*:*) Relationships : Setiap entity pada himpunan entity A dapat berhubungan dengan banyak entity pada himpunan entity B.
23
Gambar 2.11 Contoh Many-to-Many (*:*) Relationships
2.1.7 Normalisasi Proses normalisasi pertama kali dikembangkan oleh E.F.Codd. Menurut Connolly dan Begg (2010, p416), normalisasi adalah teknik untuk menghasilkan sejumlah
relations dengan property yang diperlukan,
memberikan data yang dibutuhkan perusahaan. Berikut ini adalah tahaptahap dalam melakukan normalisasi: 1.
Unnormalized form (UNF) Merupakan bentuk dimana sebuah table berisi satu atau lebih repeating group. Untuk mengubah unnormalized table menjadi 1NF, repeating group dalam table diidentifikasi dan dihilangkan. Repeating group adalah sebuah atau sekelompok atribut di dalam sebuah table yang memiliki banyak nilai untuk sebuah kejadian dari atribut key. Ada dua pendekatan untuk menghilangkan repeating group dari unnormalized table yaitu: a.
Repeating group dihilangkan dengan memasukkan data yang tepat pada baris kolom kosong yang berisi data yang berulang.
24
b.
Repeating group dihilangkan dengan menempatkan data yang berulang bersama dengan salinan key atribut asli.
2.
First normal form (1NF) Relasi yang dimana di tiap persimpangan baris dan kolomnya hanya berisi satu nilai saja. Dalam 1 NF ini, repeating group dihilangkan dengan cara memasukkan data yang benar ke dalam kolom yang kosong.
3.
Second normal form (2NF) Relasi yang berada di dalam normal form dan setiap atribut nonprimary key nya bergantung secara fungsional kepada primary key. Normalisasi relasi 1NF menjadi 2NF dengan menghilangkan partial dependency.Jika terdapat partial dependency, atribut yang bergantung secara fungsional dihilangkan dari relasi dengan meletakkannya pada relasi baru bersama dengan salinan determinannya.
4.
Third normal form (3NF) Relasi yang ada di 1NF dan 2NF dan atribut yang tidak mempunyai non-primary key mempunyai ketergantungan transitif kepada primary key. Normalisasi 2NF menjadi 3NF menghilangkan transitive dependency. Jika terdapat transitive dependency, atribut yang bergantung secara transitif dihilangkan dari relasi dengan meletakkan atribut pada relasi baru bersama dengan salinan determinan.
25
2.1.8 Perancangan Basis Data Konseptual, Logikal, dan Fisikal 2.1.8.1 Perancangan
Basis
Data
Konseptual (Conceptual
Database
Design) 1. Membangun data model konseptual Suatu proses pembentukan model dari informasi yang digunakan dalam enterprise, independen dari keseluruhan aspek fisik (Connolly dan Begg, 2010, p322). Model basis data dibangun dengan menggunakan informasi dalam spesifikasi kebutuhan dari user.Model data konseptual merupakan sumber informasi untuk fase desain logikal. Langkah ini bertujuan untuk membagi rancangan menjadi tugas-tugas yang dapat diatur dengan melihat sudut pandang yang berbeda dari pengguna di dalam suatu organisasi. Hasil dari langkah
ini
berupa
pembuatan
satu
atau
lebih
local
conceptual data model yang merupakan gambaran yang tepat dan lengkap dari suatu organisasi dilihat dari para pengguna yang berbeda-beda.
Langkah-langkah
yang
terdapat
dalam
perancangan basis data konseptual antara lain : a.
Mengidentifikasikan tipe-tipe entity Bertujuan untuk menentukan tipe-tipe entity utama yang dibutuhkan. Menentukan
entity
dapat
dilakukan
dengan memeriksa spesifikasi kebutuhan pengguna. Setelah terdefinisi, entity diberikan nama yang tepat dan jelas
26
dengan menggunakan kata benda atau frase kata benda pada spesifikasi kebutuhan pengguna. b.
Mengidentifikasikan tipe-tipe relationship Bertujuan
untuk
mengidentifikasi
suatu
relationship yang penting yang ada antar entity yang telah diidentifikasi. Nama dari suatu relationship menggunakan kata kerja atau suatu kata yang berhubungan dengan kata kerja. c.
Mengidentifikasikan
dan
menghubungkan
atribut-
atribut dengan tipe entity dan relationship. Bertujuan untuk menghubungkan atribut dengan tipetipe entity atau relationship yang tepat (Connolly dan Begg, 2010, p474). Atribut yang dimiliki setiap entity atau relationship memiliki identity atau karakteristik yang sesuai dengan memperhatikan atribut berikut
: simple atau
composite attribute, single atau multi-valued attribute dan derived attribute. d.
Menentukan domain atribut Domain adalah sekumpulan nilai dimana satu atau lebih atribut memperoleh nilainya (Connolly dan Begg, 2010, p478). Bertujuan untuk menentukan atribut domain pada conceptual data model. Contohnya yaitu menentukan nilai atribut jenis_kelamin pada entity mahasiswa dangan ‘M’atau ‘F’.
27
e.
Menentukan atribut-atribut candidate key dan primary key Bertujuan untuk mengidentifikasi candidate key pada setiap entity dan memilih primary key jika ada lebih dari satu candidate key untuk memilih satu untuk menjadi primary
key
dan
yang
lainnya
menjadi
alternate
keys.(Connolly dan Begg, 2010, p479). f.
Mempertimbangkan penggunaan enhanced modeling (optional). Pada langkah ini bertujuan untuk menentukan specialization, generalization, aggregation, composition. Dimana masing-masing sesuai
pendekatan
dapat
dilakukan
dengan kebutuhan yang ada. Specialization dan
generalization
adalah
proses
dalam
mengelompokan
beberapa entity dan menghasilkan entity yang baru (Connolly dan Begg, 2010, p480). Beda dari keduanya adalah cara prosesnya, dimana spesialisasi menggunakan proses topdown dan generalisasi menggunakan proses bottom-up. Aggregation menggambarkan sebuah tipe entity dengan sebuah tipe relationship dimana suatu relasi hanya akan ada jika telah ada relationship lainnya. g.
Memeriksa model dari redudancy
28
Bertujuan
untuk
memeriksa
conceptual
model
untuk menghindari dari adanya informasi yang redundan. Yang dilakukan pada langkah ini adalah : i.
Memeriksa kembali one-to-one relationship.
ii.
Menghilangkan relasi yang redundansi.
iii.
Mempertimbangkan dimensi waktu.
h.
Memvalidasi local conceptual model dengan transaksitransaksi user Tujuanya adalah untuk menjamin bahwa conceptual data model mendukung kebutuhan transaksi (Connolly dan Begg, 2010, p483). Ada dua pendekatan yang mungkin untuk mejamin bahwa local conceptual data model mendukung kebutuhan transaksi yaitu : i.
Mendeskripsikan transaksi Memeriksa
seluruh
relationship, dan attribute)
informasi yang
(entities,
diperlukan
pada
setiap transaksi yang disediakan oleh model dengan mendokumentasikan penggambaran dari tiap kebutuhan transaksi. ii.
Mengunakan transaksi pathways Pendekatan kedua, untuk memvalidasi data model dengan keperluan transaksi yang melibatkan diagram yang mewakili path ways diambil dari tiap
29
transaksi
secara langsung yang terdapat pada ER
diagram.
i.
Meninjau kembali local conceptual model dengan pengguna. Bertujuan untuk me-review kembali conceptual model dan memastikan bahwa data model tersebut sudah benar.
2.1.8.2 Perancangan Basis Data Logikal (Logical Database Design) 2. Membangun data model logical Adalah untuk menerjemahkan conceptual data model ke logical data model dan kemudian melakukan validasi model ini untuk memeriksa bahwa secara struktural benar dan mampu mendukung transaksi yang diperlukan. Tujuan utama adalah untuk menerjemahkan conceptual data model yang dibuat pada langkah pertama ke dalam logical data model dari persyaratan data perusahaan. Langkah- langkah yang dilakukan : a.
Menghilangkan fitur yang tidak compatible dengan model relasional (optional). Bertujuan untuk menghasilkan
model
kompatibel dengan model relasional. Yaitu dengan :
yang
30
i. Menghilangkan many-to-many (*:*) binary relationship types ii. Menghilangkan many-to-many(*:*) recursive relationship types iii. Menghilangkan complex relationship types iv. Menghilangkan multi-valued attributes b.
Memperoleh relasi untuk local logical data model Bertujuan untuk membuat hubungan logical model yang mewakili entity, relationship dan attribute yang telah didefinisi. Mendeskripsikan
komposisi tiap hubungan
memakai Database Definition Language
(DBDL) untuk
relasi yang diikuti dengan daftar dari relasi attribute yang mudah lalu mengidentifikasikan primary key dan foreign key dari suatu relasi. Untuk memperoleh relasi untuk local data model, maka
diperluka penjelasan untuk mendeskripsikan
struktur yang mungkin dalam data model saat ini. c.
Memvalidasi relasi dengan menggunakan normalisasi Dengan menggunakan normalisasi, maka model yang dihasilkan mendekati model dari kebutuhan perusahaan, konsisten dan memiliki sedikit redundansi dan stabilitas yang maksimum.
d.
Memvalidasi relasi dengan transaksi pengguna Bertujuan untuk menjamin bahwa relasi dalam model logikal
tersebut
mendukung
spesifikasi
kebutuhan
31
pengguna secara detail. Selain itu juga untuk meyakinkan bahwa tidak ada kesalahan yang muncul sewaktu membuat suatu relasi. e.
Memeriksa kendala-kendala integritas (Check Integrity Constraints) untuk
memeriksa
kendala-kendala
integritas
dinyatakan dalam model data logis (logical data model). Terdapat
lima tipe integrity constraints
yang
harus
diperhatikan, yaitu : i.
Required data Beberapa atribut harus selalu berisi nilai yang benar (valid), tidak dapat bernilai null. Constraint ini harus diidentifikasikan pada saat pemilihan atribut domain untuk data model.
ii.
Attribute domain constraints Setiap atribut memiliki domain, yaitu himpunan nilai yang dibolehkan. Constraint ini harus diidentifikasikan pada saat pemilihan atribut domain untuk data model.
iii.
Entity integrity Primary key dari sebuah entity tidak boleh bernilai null. Constraint
ini
harus
dipertimbangkan
penentuan primary key bagi setiap tipe entity. iv.
Referential integrity
pada
saat
32
Jika suatu foreign key memiliki nilai, maka nilai tersebut harus menunjuk ke sebuah baris yang ada pada relasi ‘parent’.
v.
Enterprise constraints Kegiatan update entity dibatasi oleh peraturan atau kebijakan organisasi yang mengatur transaksi yang diwakilkan oleh update yang dilakukan.
f.
Melihat kembali local logical data model dengan pengguna Bertujuan untuk menjamin local logical data model dan mendukung dokumentasi yang menggambarkan model yang sudah benar.
g.
Menggabungkan local logical data model menjadi global model Pada langkah ini, setiap local logical data model menghasilkan ER diagram, skema relasional, kamus data dan dokumen
pendukung
yang
mendeskripsikan constraints
dari model. Beberapa tugas yang harus dikerjakan adalah sebagai berikut : i. Memeriksa lembali nama dan isi dari entities dari relationship dan candidate key.
33
ii. Memeriksa kembali nama dan isi dari relationships atau foreign keys. iii. Menggabungkan entities atau hubungan dari local data model. iv. Mengikutsertakan (tanpa menggabungkan) entities atau relationships yang unik pada tiap local data model. v. Menggabungkan relationships atau foreign key dari local data model. vi. Mengikutsertakan (tanpa menggabungkan) relationships atau foreign key unik pada tiap local data model. vii. Memeriksa untuk entities (hubungan) dan relationships atau foreign key. viii. Memeriksa integrity constraints. ix. Menggambarkan ER diagram. x. Melakukan update dokumen. h.
Mengecek pertumbuhan yang akan datang Bertujuan untuk menentukan apakah ada perubahan yang signifikan seperti keadaan yang tidak terduga dimasa mendatang dan menilai apakah model logikal tersebut dapat menampung atau menyesuaikan perubahan yang terjadi.
2.1.8.3 Perancangan Basis Data Fisikal (Physical Database Design)
34
Suatu proses yang menghasilkan deskripsi implementasi basis data pada pemyimpanan sekunder. Itu menggambarkan hubungan dasar, organisasi file, dan indeks yang digunakan untuk arsip akses yang efisien terhadap data, dan setiap kendala terkait integritas dan keamanan diukur. Dapat dikatakan juga desain fisikal merupakan cara pembuatan menuju sistem DBMS tertentu. Tugas-tugas yang dilakukan dalam langkah ini antara lain : 3. Menerjemahkan
model
data
logikal
untuk
DBMS
yang
ditargetkan. Langkah- langkahnya sebagai berikut : a.
Merancang basis relasional Dalam
memulai
merancang
physical
design,
diperlukan untuk mengumpulkan dan memahami informasi tentang relasi yang dihasilkan dari logical database design. Informasi yang penting bisa didapatkan dari kamus data dan DBDL (Database Design Language). b.
Merancang representasi dari data yang diperoleh Bertujuan untuk menentukan bagaimana setiap data yang diperoleh mewakili global logical data model ke dalam DBMS.
c.
Merancang enterprise constraints bertujuan untuk merancang batasan-batasan umum yang ada pada perusahaan.
4. Merancang organisasi file dan index a.
Menganalisis transaksi
35
Bertujuan untuk mengerti fungsi dari transaksi yang dijalankan pada basis data dan menganalisis transaksi yang penting. Kriteria kemampuan yang harus diidentifikasikan dalam menganalisis transaksi adalah : i.
Transaksi
dapat
berjalan
secara
sering
dan
akan
mempunyai dampak yang signifikan pada performa. ii.
Transaksi yang kritis pada operasi dan bisnis.
iii.
Waktu selama sehari atau seminggu ketika akan ada permintaan yang tinggi pada saat basis data dibuat.
b.
Memilih file organisasi Untuk menentukan organisasi file yang efisien untuk setiap hubungan dasar.
c. Memilih indeks Bertujuan untuk meningkatkan performa dalam suatu sistem basis data. Salah satu pendekatan untuk memilih organisasi file yang cocok untuk relasi adalah untuk menyimpan
tuples
yang
tidak
disimpan
dan
dibuat
sebanyak secondary Indexes sebagaimana diperlukan. Oleh karena itu, atribut yang digunakan adalah: i.
Atribut yang sering digunakan untuk joint operations untuk membuat lebih efisien.
ii.
Atribut yang sering dipesan untuk mengakses tuples pada suatu relasi didalam urutan yang menunjukkan atribut.
Terdapat tiga jenis index yaitu :
36
i.
Primary Index Pengindeksan dilakukan pada kolom kunci (key field), yang diurutkan terlebih dahulu secara sekuensial.
ii.
Clustering Index Pengindeksan dilakukan pada kolom bukan kunci (non-key field), yang diurutkan terlebih dahulu secara sekuensial (Connolly dan Begg, 2010, p535).
iii.
Secondary Index Pengindeksan
yang
dilakukan
pada
kolom
yang tidak terurut di dalam file data (Connolly dan Begg, 2010, p536). d.
Memperkirakan kebutuhan ruang penyimpanan Bertujuan
untuk
memperkirakan
jumlah
ruang
penyimpanan yang akan diperlukan dalam basis data. Perkiraannya didasari pada ukuran setiap tabel dalam suatu relasi. Contohnya dalam lima
tahun
mendatang
berapa
kapasitas hard disk yang dibutuhkan untuk menampung data. 5. Merancang User Views Bertujuan buntuk merancang pandangan pengguna yang telah diidentifikasi selama mengumpulkan kebutuhan dan menganalisis
langkah
Development Lifecycle. 6. Merancang keamanan
dari
relasional Database System
37
Untuk mendesain sebuah mekanisme security untuk basis data (database) seperti yang di spesifikasikan oleh user pada tahapan requirement dan collection dari Database System Development Lifecycle. Perancang database harus menyadari fasilitas yang ditawarkan oleh DBMS target. DBMSs relasional umumnya memberikan dua jenis keamanan database : a. Sistem Keamanan (System Security), mencakup akses dan penggunaan database di tingkat sistem, seperti user name dan password. b. Keamanan Data (Data security), mencakup akses dan penggunaan
objek
database (seperti
hubungan
dan
pandangan) dan tindakan yang dapat dimiliki user pada object tersebut. 7. Mempertimbangkan pengenalan atasredundansi kontrol Pada
langkah
physical
mempertimbangkan denormalisasi meningkatkan
performa. Hasil
database skema
design
relational
ini untuk
dari normalisasi adalah
perancangan basis data logikal secara struktural, konsisten, dan menekan jumlah redudansi. Faktor yang perlu dipertimbangkan adalah : a. Denormalisasi membuat implementasi lebih kompleks. b. Denormalisasi selalu mengorbankan fleksibilitas. c. Denormalisasi akan membuat cepat dalam retrieve data tetapi lambat dalam meng-update.
38
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 daribasis data. 8. Memonitor dan memasang sistemoperasi Bertujuan untuk memonitor sistem operasi, meningkatkan performa dan menentukan perancangan sistem yang tepat atau menggambarkan perubahan kebutuhan.
2.2
Teori Khusus 2.2.1 Proses Bisnis Perusahaan Proses bisnis merupakan proses yang memberikan pandangan dari struktur organisasi relatif terhadap suatu proyek tertentu. 2.2.1.1
Penjualan Proses penjualan dalam perusahaan sangat menentukan keberhasilan perusahaan tersebut. Kegiatan penjualan meliputi pengorderan
barang
kepada
customer
hingga
penerimaan
pembayaran dari customer. Setiap penjualan barang dikerjakan oleh beberapa orang dalam perusahaan mulai dari sales, gudang, teknisi. Penjualan barang dapat dipesan langsung oleh customer dan akan langsung dilayani oleh sales-sales perusahaan.
39
2.2.1.2
Pembelian Proses pembelian merupakan proses pendukung kegiatan penjualan, dimana terjadi penambahan barang dan jasa dalam proses pembelian, sehingga perusahaan memiliki ketersediaan sumber daya ketika melakukan proses penjualan kepada customer. Semakin kecil nilai/harga dari sumber daya yang dibeli dan semakin besar kualitas sumber daya yang dibeli oleh perusahaan maka dapat menekan biaya produksi sekecil mungkin.
2.2.1.3
Persediaan Proses
persediaan
merupakan
sejumlah
barang
yang
disediakan untuk memenuhi permintaan dari pelanggan. Dalam perusahaan perdagangan pada dasarnya hanya ada satu golongan inventory (persediaan), yang mempunyai sifat perputaran yang sama yaitu yang disebut “Merchandise Inventory” (persediaan barang dagangan). Persediaan ini merupakan persediaan barang yang selalu dalam perputaran, yang selalu dibeli dan dijual, yang tidak mengalami proses lebih lanjut didalam perusahaan tersebut yang mengakibatkan perubahan bentuk dari barang yang bersangkutan.
2.2.2 PHP Hypertext Preprocessor adalah sebuah bahasa script
yang dapat
ditanamkan atau disisipkan ke dalam code HTML. PHP banyak dipakai dalam pemrograman situs web dinamis. Pada awalnya PHP merupakan
40
singkatan dari Personal Home Page (situs personal). PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada saat itu PHP masih bernama Form Interpreted
(FI), yang wujudnya berupa sekumpulan scrip yang
digunakan untuk mengolah data formulir dari web. Selanjutnya Rasmus merilis kode sumber tersebut untuk umum dan menamakannya PHP/FI. Dengan perilisan menjadi sumber terbuka, banyak programmer yang tertarik
untuk ikut mengembangkan PHP. Pada tahun 1997, sebuah
perusahaan bernama Zend menulis ulang interpreter PHP menjadi lebih bersih, lebih baik, dan lebih cepat. Kemudian pada Juni1998, perusahaan tersebut merilis interpreter baru untuk PHP dan meresmikan rilis tersebut sebagai PHP 3.0 dan singkatan PHP diubah menjadi akronim berulang PHP: Hypertext Preprocessing. Pada Juni 2004, Zend merilis PHP 5.0. Dalam versi ini, inti dari interpreter PHP mengalami perubahan besar. Versi ini juga memasukkan model pemrograman berorientasi objek ke dalam PHP
untuk menjawab
perkembangan bahasa pemrograman ke arah paradigma berorientasi objek. PHP sebagai suatu bahasa scripting open source yang tersedia untuk sejumlah platform biasanya dihubungkan dengan MySQL atau Postgre SQL, karena kombinasi dari database yang tersedia (untuk Unix) dan bahasa scripting yang gratis mampu memberikan sebuah paket lengkap guna membangun aplikasi web database (Eaglestone, 2001, p 363). Beberapa kelebihan PHP, yaitu: 1.
Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaannya.
41
2.
Web Server yang mendukung PHP dapat ditemukan di mana-mana dari
mulai Apache, IIS, Lighttpd, hingga Xitami
dengan konfigurasi yang relatif mudah. 3.
Dalam sisi pengembangan lebih mudah, karena banyaknya milis-milis
dan
developer
yang
siap
membantu
dalam
pengembangan. 4.
Dalam sisi pemahaman, PHP adalah bahasa scripting yang paling mudah karena memiliki referensi yang banyak.
5.
PHP adalah bahasa open source yang dapat digunakan diberbagai mesin (Linux, Unix, Macintosh, Windows) dan dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintah-perintah sistem.
2.2.3 HTML/XHTML (Hypertext/Extensible Markup Language) XHTML merupakan sebuah
rekomendasi
penerus dari
yang
terpisah
HTML. dari
XHTMLmerupakan HTML.W3C
tetap
merekomendasikan untuk tetap menggunakan XHTML 1.0, XHTML 1.1, dan HTML 4.01 untuk digunakan dalam web publishing. Perlunya reformulasi HTML menjadi XHTML disebabkan karena W3C merasa adanya kebutuhan agar sebuah konten World Wide Web dapat diakses dari perangkat
mobile
selain
komputer-komputer
tradisional karena
kompleksitas sintaks dari HTML yang memerlukan sumber daya dan waktu yang cukup banyak.
42
2.2.4 CSS (Cascading Stylesheet) CSS atau Cascading Stylesheet adalah sebuah bahasa stylesheet berbentuk markup language yang digunakan untuk mendeskripsikan sebuah representasi tampilan untuk sebuah dokumen. CSS biasanya digunakan untuk menghias halaman web dalam bentuk HTML atau XHTML.
2.2.5 Java Script Java Script adalah bahasa yang digunakan untuk membuat program yang digunakan agar dokumen HTML yang ditampilkan dalam browser menjadi lebih interaktif, tidak sekedar indah saja. Java Script memberikan beberapa fungsionalitas ke dalam halaman web, sehingga dapat menjadi sebuah program yang disajikan dengan menggunakan antarmuka web. Umumnya program Java Script adalah program yang ditanamkan (disisipkan) ke dalam halaman web, sehingga halaman (dokumen) web menjadi sebuah aplikasi yang berjalan di dalam browser web. Beberapa sistem operasi menggunakan Java Script untuk membuat aplikasi non-web, seperti sistem operasi MS Windows, yang menggunakan istilah Windows Scripting Host (WSH) sebagai interpreter Java Script dan VB Script, sehingga program yang dibuat dengan Java Script dan VB Script dapat langsung dijalankan di atas sistem operasi, tanpa harus menggunakan browser web terlebih dahulu.
2.2.6 MySQL
43
MySQL adalah sebuah server database open source yang terkenal yang digunakan berbagai aplikasi terutama untuk server atau membuat WEB. MyAQL berfungsi sebagai SQL (Structured Query Language) yang dimiliki sendiri dan sudah diperluas oleh MySQL umumnya digunakan bersamaan dengan PHP untuk membuat aplikasi server yang dinamis dan powerfull.
2.2.7 Apache Server HTTP Apache atau Server Web/WWW Apache adalah server web yang dapat dijalankan di banyak sistem operasi (Unix, BSD, Linux, Microsoft Windows dan Novell Netware serta platform lainnya) yang berguna untuk melayani dan memfungsikan situs web. Protokol yang digunakan untuk melayani fasilitas web/www ini mengunakan HTTP. Apache memiliki fitur-fitur canggih seperti pesan kesalahan yang dapat dikonfigurasi, autentikasi berbasis basis data dan lain-lain. Apache juga didukung oleh sejumlah antarmuka pengguna berbasis grafik (GUI) yang memungkinkan penanganan server menjadi mudah. Apache merupakan perangkat lunak sumber terbuka dikembangkan oleh komunitas terbuka yang terdiri dari pengembang-pengembang dibawah naungan Apache Software Foundation.