BAB 2
TINJAUAN PUSTAKA
2.1
Teori Kaitan Basis Data
Bagian ini menjelaskan teori-teori yang menjelaskan basis data.
2.1.1
Definisi Data, Basis Data dan Sistem Basis Data
Data adalah fakta, baik objek, variabel, maupun peristiwa apapun
yang dianggap penting dan dapat diproses untuk menjadi sebuah informasi.
Jika data ini berdiri sendiri dan tanpa diolah maka tidak akan memberikan
makna bagi pengguna data tersebut (Whitten dan Bentley, 2005:21).
Dimisalkan dalam sebuah sekolah ada data-data murid. Data-data murid
dapat diartikan secara berbeda-beda baik oleh guru, oleh bagian keuangan
sekolah dan sebagainya. Bagian keuangan sekolah membutuhkan data murid
untuk dimasukkan ke laporan keuangan sekolah melalui proses keuangan dan
menghasilkan informasi berupa informasi keuangan murid-murid di sekolah
tersebut.
Sistem adalah komponen-komponen yang saling berhubungan,
bekerja sebagai kesatuan  untuk mencapai hasil yang diinginkan (Whitten dan
Bentley, 2005:6). Misal terdapat sebuah sistem komputer, berarti komponen-
komponen yang dimaksud adalah monitor, CPU, hardisk, memory dan
sebagainya. Komponen-komponen tersebut saling berinteraksi untuk
melakukan kegiatan-kegiatan sesuai dengan tujuan dari sistem komputer itu
sendiri.
Basis Data (Database) adalah kumpulan dari data-data yang
berhubungan satu sama lain secara logikal, memiliki deskripsi mengenai data
itu sendiri, dirancang untuk memenuhi kebutuhan informasi dari suatu
perusahaan (Connoly dan Begg, 2005:15). Basis data mampu memenuhi
kebutuhan informasi tidak terbatas pada satu pengguna ataupun satu bagian
dari komunitas penggunanya (Hoffer, Prescott dan McFadden ,2005:4). Misal
pada basis data yang terdapat pada sebuah sekolah bagian perpustakaan dapat
melihat informasi mengenai murid yang meminjam buku. Pada informasi
  
murid tersebut terdapat nomor induk siswa dan nama siswa yang berasal dari
data bagian registrasi siwa. 
Sistem basis data adalah kumpulan elemen-elemen baik perangkat
lunak, perangkat keras dan data itu sendiri dimana perancang dapat
memasang basis data dan aplikasi basis data yang telah dibuat (Lungu,
Velicanu, dan Botha 2009:84). Pada web basis data maka elemen-elemen
yang dimaksud adalah monitor, CPU, memori, keyboard, mouse, perangkat
jaringan, perangkat lunak seperti sistem operasi, browser, PHPMyAdmin,
MySQL dan sebagainya.
2.1.2
Database Management System (DBMS)
DBMS adalah sebuah sistem perangkat lunak dimana pengguna dapat
mendefinisikan, memelihara dan mengontrol basis data
(Connoly dan Begg,
2005:4). DBMS menyediakan tiga hal berikut:
1.
Data Definition Language (DDL)
DDL
digunakan untuk mendefinisikan tipe data, struktur
data dan batasan-batasan (constraint) basis data yang akan
disimpan
(Connoly dan Begg, 2005:16). Constraint
yang
dimaksud adalah sejumlah kondisi atau syarat pada tabel untuk
membatasi nilai data tersebut untuk menjaga integritas dari basis
data (Andresscu dan Mircea, 2012:64 ). 
2.
Data Manipulation Language (DML)
DML
digunakan untuk memanipulasi data seperti insert,
update, delete. Ketiga fungsi tersebut mengubah isi data tetapi
tidak merubah struktur dan
definisi data dalam basis data
(Connoly dan Begg, 2005:16). 
3.
Kontrol Akses
Dalam DBMS
diperlukan adanya pengawasan akses ke
dalam basis data agar menjaga konsistensi dan integritas dari
basis data tersebut
(Connoly dan Begg, 2005:27). Contohnya
adalah pencegahan pengguna yang tidak berwenang.
  
2.1.3
Keuntungan dan Kerugian  dari penggunaan DBMS
Keuntungan dari penggunaan DBMS meliputi:
1.
Kontrol Terhadap Redudansi Data
Redudansi data terjadi ketika data yang sama disimpan di
tempat yang berbeda. Hal ini akan memboroskan ruang
penyimpanan data (Connoly dan Begg, 2005:26).
2.
Konsistensi Data
Konsistensi data memastikan data direpresentasikan secara
sama, baik secara arti dan logika pada setiap tabel dalam basis
data (Dhull dan Sharma, 2010:48).
3.
Meningkatkan Produktifitas dan Keamanan Data
 
Dengan adanya penggunaan sistem basis data akan
meningkatkan produktifitas dari segi pencarian data, menipulasi
data dan penyimpanan data. DBMS
juga membantu segi
keamanan penggunaan data tersebut
(Connoly dan Begg,
2005:26).
Kerugian dari penggunaan DBMS meliputi:
1.
Kompleksitas dan Penggunaan Penyimpanan 
Kompleksitas dari perancangan dan penggunaan basis data
dapat menjadi hambatan dalam penggunaan DBMS. DBMS juga
membutuhkan penggunaan penyimpanan (storage) yang cukup
besar dibandingkan sistem perangkat lunak berbasis file
(Connoly dan Begg, 2005:30).
2.
Biaya dan Resiko
 
Meng-upgrade
sistem lama ke DBMS
yang baru akan
membutuhkan biaya. Resiko akibat kegagalan  DBMS yang baru
juga akan memberikan dampak yang besar kepada penggunanya
(Connoly dan Begg, 2005:30).
  
2.1.4
Perancangan Basis Data (Database Design)
Proses membuat rancangan basis data sesuai dengan tujuan yang
telah ditetapkan penggunanya. Perancangan basis data terdiri dari tiga
tahap, yaitu:
1.
Perancangan Basis Data Konseptual
(Connoly dan Begg, 2005:293)
Dalam tahap ini dilakukan perancangan model data
seperti menentukan entitas, relationship
yang terjadi antar
entitas dan perancangan ini tidak bergantung pada
penggunaan perangkat lunak atau perangkat keras tertentu
seperti DBMS
dan  bahasa pemrograman. Hasil dari
perancangan basis data konseptual adalah tipe entitas, tipe
relasi, attribut dan terpilihnya primary key serta candidate
key (Connoly dan Begg, 2005:292). Dengan perancangan
basis data konseptual akan menghasilkan data model
konseptual, dan data model ini harus benar dan dapat
menggambarkan kebutuhan-kebutuhan sistem yang akan
dibangun. Jika terjadi kesalahan pembuatan data model
konseptual maka data model logikal akan salah juga.
2.
Perancangan Basis Data Logikal
(Connoly dan Begg, 2005:294).
Pada tahap ini dilakukan perancangan model data
lanjutan dari perancangan konseptual. Relasi antar entitas
menjadi sorotan utama dan dilakukan validasi agar setiap
relasi mampu menunjang transaksi-transaksi yang akan
terjadi didalam DBMS. Normalisasi juga dilakukan di
tahap ini, tujuan normalisasi adalah membuat model data
yang tidak redudan dan efisien dan mampu menyesuaikan
jika terjadi kebutuhan-kebutuhan baru. Secara umum
dibutuhkan 3 tingkat normalisasi untuk menghasilkan
model data yang efisien dan efektif, yaitu sebagai berikut:
a.
Unnormalized form (UNF)
UNF
terjadi ketika langsung memindahkan
semua  field yang ada di form hasil identifikasi
  
ke dalam tabel model data. Didalam UNF
terdapat attribut-attribut yang kemunculannya
berulang-ulang atau yang disebut dengan
repeating group
(Connoly dan Begg,
2005:402).
b.
First normal form (1NF)
1NF adalah keadaan data yang sudah memiliki
primary key
dan ada pemisahan antara data
berulang dan tidak berulang (Connoly dan
Begg, 2005:403).
c.
Second Normal form (2NF)
2NF
adalah keadaan data yang bebas dari
ketergantungan parsial. Yang dimaksud
ketergantungan parsial adalah ada attribut
yang bergantung tidak  penuh pada primary
key
dalam satu
entitas. Biasanya terjadi pada
entitas yang memiliki lebih dari satu primary
key (Connoly dan Begg, 2005:407).
d.
Third Normal form (3NF)
3NF
adalah keadaan data yang bebas dari
ketergantungan transitif. Yang dimaksud
ketergantungan transitif adalah ada attribut
non key yang tidak bergantung langsung pada
primary key
melainkan lebih bergantung pada
attribut non key
lainnya (Connoly dan Begg,
2005:408).
Perancangan basis data logikal akan menghasilkan
data model logikal dimana dapat dibentuk menjadi tabel-
tabel yang mempunyai relasi, attribut, primary key, foreign
key dan sudah ternormalisasi.
3.
Perancangan Basis Data Fisikal
Pada tahap ini sang perancang sudah menentukan
DBMS apa yang akan digunakan sebagai media dari model
  
data konseptual dan logikal yang telah dibuat (Connoly
dan Begg, 2005:496). Kapasitas disk untuk pengguna
dipertimbangkan serta mendefinisikan keamanan yang
akan melindungi basis data didalam DBMS
2.1.5
Permodelan Entity Relationship (ER Modelling)
Dalam menampilkan perancangan diperlukan adanya model
yang dapat dipahami oleh perancang, programmer
dan penggunanya
(Connoly dan Begg, 2005:342). Permodelan data ini secara garis besar
terdiri dari entitas, relationship, dan attribut.
1.
Entitas
Entitas adalah objek yang memiliki karakteristik dan
karakteristik itu merepresentasikan keberadaan entitas tersebut
(Connoly dan Begg, 2005:343). Dalam kenyataan biasanya
entitas memiliki wujud fisik seperti karyawan, produk, sales
order dan sebagainya. Tipe entitas adalah kumpulan dari entitas-
entitas yang dapat diidentifikasi dari analisis kebutuhan
penggunanya. 
Gambar 2.1 Contoh Entitas
2.
Relasi
Tipe relasi menggambarkan hubungan antara satu entitas
dengan entitas lainnya. Setiap relasi diberikan nama yang
mewakili fungsi hubungan tersebut
(Connoly dan Begg,
2005:346). Berikut adalah contoh relasi antara entitas Karyawan
dan SalesOrder
yang diartikan bahwa seorang karyawan dapat
mengurus banyak SalesOrder sekaligus dalam satu waktu.
  
Gambar 2.2 Contoh Relasi
3.
Attribut
Attribut adalah sifat-sifat yang menggambarkan entitas
dan relasi didalam model data. Attribut ini dapat menyimpan
data atau nilai dan
dapat diproses secara logikal (Connoly dan
Begg, 2005:350).
Gambar 2.3 Contoh Attribut
2.1.6
Macam-macam Key
Dibawah ini menjelaskan macam-macam key yang ada dalam
sistem basis data (Connoly dan Begg, 2005:352-353).
1.
Candidate Key
Candidate key
adalah kumpulan attribut yang mampu
mengidentifikasi entitas secara unik. Nilai dari candidate key
tidak boleh null.
2.
Primary Key
Primary key
adalah kumpulan attribut yang mampu
mengidentifikasi entitas secara unik. Primary key
dipilih dari
candidate key yang telah dibuat.
3.
Composite Key
  
Composite key
adalah attribut-attribut yang
mengidentifikasi entitas secara unik, lebih dari satu. Hal ini
disebabkan satu attribut tidak mampu secara penuh
merepresentasikan sebuah entitas.
4.
Foreign Key
Foreign key
adalah attribut dalam sebuah entitas (tabel)
dan menjadi primary key
di entitas lain pada saat kedua entitas
ini terhubung.
5.
Alternate Key
Alternate key
adalah candidate key
yang tidak terpilih
menjadi primary key.
2.2
Teori Tematik
Bagian ini menjelaskan teori-teori yang berkaitan dengan sistem yang
akan dibangun.
2.2.1
Penjualan
Penjualan adalah kegiatan jual baik barang dan jasa secara tunai
maupun kredit (Mulyadi,2001:202)  . Penjualan tunai dilakukan ketika
pembeli membayar semua biaya barang yang dibeli sebelum pihak
penjual menyerahkan barang yang dijual. Sedangkan penjualan secara
kredit terjadi ketika penjual memberikan barang yang dijual kepada
pembeli dan memberikan jangka waktu bagi pembeli untuk
melunasinya. 
2.2.2 
Pembelian
Pembelian dapat didefinisikan sebagai pengadaan barang
dagang untuk dijual kembali (Mulyadi, 2001:299).
2.2.3 
Pergudangan
Pergudangan
atau persediaan bertujuan untuk memberikan
informasi perubahan yang terjadi di gudang (Mulyadi, 2001:553).
Perubahan dapat terjadi karena penjualan, retur penjualan, pembelian
ataupun retur pembelian. 
  
2.2.4 
Web
Web
dapat didefinisikan sebagai sistem yang menunjang
berbagai media berisi teks, suara, video dan sebagainya yang dapat
diakses oleh penggunanya melalui internet
(Connoly dan Begg,
2005:998). Terdapat 2 macam halaman web, yaitu web statis dan web
dinamis. Web
statis adalah halaman web
yang isi nya tidak akan
berubah apabila file sumber web tersebut tidak diubah. Web
dinamis
adalah halaman web yang isinya berubah menyesuaikan dengan
pandangan (view) tertentu setiap kali diakses oleh penggunanya.
2.2.5 
HyperText Markup Language (HTML)
HTML adalah standar komunikasi dalam proses requests
dan
response
yang terjadi antara browser
pengguna dengan  server
dari
web yang melayaninya (Nixon ,2012:2).
2.2.6 
PHP
PHP
adalah bahasa pemrograman berbasis web yang mampu
memberikan output
dinamis. Browser pengguna mengirimkan pesan
kepada server yang berbentuk halaman web berekstensi .php lalu web
server
akan memproses permintaan tersebut dan merespon output
hasil pemrosesan. Halaman yang menggunakan PHP akan berekstensi
.php, namun halaman dapat dikonfigurasi menjadi berekstensi .html
sesuai keinginan programmer (Nixon, 2012:37). Potongan  kode PHP
dapat dibuat didalam bagian kode HTML
dan server
akan
mengirimkan output halaman html sehingga web browser tidak dapat
menampilkan source code PHP yang diproses (Sebesta,2011:119).
2.2.7 
PHPMyadmin
PhpMyadmin adalah sebuah aplikasi berbasis web yang dibuat
dengan php dibantu dengan XHTML, CSS dan Javascript.  Aplikasi
ini menyediakan fitur-fitur untuk mengatur  basis data SQL melalui
antarmuka halaman web (Delisle,2012:8). PhpMyadmin
menjadi
antarmuka untuk menggunakan basis data MySQL, dapat diakses
  
melalui web browser
menjadikan kemudahan bagi penggunanya.
Untuk menggunakan  PhpMyadmin
perlu dipasang perangkat lunak
tambahan.  PHPMyadmin
dapat mengakses basis data MySQL
dan
menghasilkan file berekstensi .sql.
2.2.8
MySQL
MySQL
adalah sebuah DBMS
yang paling popular untuk
penggunaan web database server. Dibuat di pertengahan 1990,
sekarang MySQL menjadi teknologi yang digunakan  hampir di
semua halaman web (Nixon,2012:161). Tidak dipungut biaya dalam
menggunakan, mendistribusikan basis data MySQL
ini menjadi salah
satu alasan kepopuleran serta kompatibel dengan PHPMyadmin
2.3
Hasil Produk Sebelumnya
Bagian ini memperlihatkan analisis terhadap contoh aplikasi basis data
sebelumnya.
2.3.1
Perbandingan Produk Basis Data
Penulis menggunakan produk basis data sejenis untuk menjadi
bahan perbandingan analisis dan perancangan basis data. Produk basis
data yang dijadikan bahan perbandingan adalah “Analisa dan
Perancangan Sistem Basis Data Persediaan, Pembelian, dan Penjualan
Berbasis Web Pada PT. Rabana Chemical”
serta “Sistem Basis Data
Penjualan, Pembelian SukuCadang dan Antrian Servis Berbasis Web
Pada PT. Agung Perkasa Motor”. Produk tersebut merupakan hasil
dari skripsi mahasiswa Binus yang membahas sistem penjualan,
pembelian dan persediaan berbasis web. Bahan tersebut cocok untuk
dijadikan perbandingan pada skripsi yang ditulis ini karena kemiripan
fiturnya dan melengkapi apa yang menjadi kekurangan dari produk
tersebut.
  
2.3.2
Analisis Produk Sebelumnya
Hal pertama, penulis menemukan kesalahan penggunaan key
pada tabel detail: penjualan, retur penjualan, order pembelian, retur
pembelian, dan order pembelian.
Berikut adalah gambar ERD
dari
perancangan basis data logikal tersebut.
  
Gambar 2.4  ERD PT.Rabana Chemical
  
Penggunaan key pada tabel detail:
penjualan, retur penjualan,
order pembelian, retur pembelian, dan order pembelian seharusnya
mengunakan dua primary key. Contohnya pada tabel detail penjualan
seharusnya primary key nya adalah NoFakJual dan KdBrg. Jika
KdBrg tidak dijadikan primary key
maka tabel tersebut belum dapat
mengidentifikasikan setiap attributnya secara unik dan belum
ternormalisasi. 
Hal kedua adalah tentang keamanan akses basis data. Terlihat
pada diagram ERD
diatas bahwa pada sistem tersebut tidak
menggunakan fitur akses basis data melainkan otentikasi data
berdasarkan tabel “login”. Hal ini didukung oleh pernyataan prosiding
berikut “keamanan lebih terjamin dengan dibuatnya pembagian hak
akses sesuai dengan jabatan dan bagian pengguna”(Oenzil,
Christiandy, Margetha, Seminar Nasional Binus ICTC 2011: 147). 
Hal ketiga
adalah mengenai normalisasi. Relasi yang memiliki
derajat normalisasi tinggi akan memiliki jumlah attribut yang lebih
sedikit tetapi memperberat kinerja pengambilan data /retrieval
(Cotelea,2012:18). Hal ini diperjelas dengan kutipan jurnal berikut
”Dalam proses mengorganisasi data terdapat dua hal yang harus
diperhatikan , kecepatan akses data dan penggunaan ruang disk yang
minimal” (Lungu, Velicanu, Botha, 2009:85). Ketika menginginkan
kecepatan proses data meningkat maka membutuhkan ruang disk yang
besar pula. Sebaliknya jika menginginkan penggunaan ruang disk
yang minimal maka akan memperlambat kinerja proses data.
  
Gambar 2.5  ERD PT.Agung Perkasa Motor
Untuk gambar ERD hasil normalisasi diatas dapat ditunjukkan
bahwa ERD tersebut menunjukkan penggunaan dua primary key pada
tiap tabel detail. Contohnya Detail Pengiriman Sparepart dan Detail
Penjualan SparePart.
  
Gambar 2.6  Layar Penjualan  PT.Agung Perkasa Motor
Gambar diatas adalah contoh layar antarmuka web yang
digunakan  pada PT. Agung Perkasa Motor.