1 BAB 2 LANDASAN TEORI Database system pada dasarnya

advertisement
1
BAB 2
LANDASAN TEORI
Database system pada dasarnya adalah sistem pencatatan terkomputerisasi di
mana sistem tersebut ditujukan untuk menyimpan informasi dan mengizinkan pengguna
untuk menerima dan mengubah informasi sesuai permintaan (Date, 2000, p5). Informasi
yang disimpan dapat berupa apa saja yang dibutuhkan untuk membantu proses bisnis dari
individu atau organisasi.
Sedangkan database sendiri adalah sekumpulan data yang terhubung secara logika
beserta deskripsinya. Database didesain untuk memenuhi kebutuhan informasi dari
sebuah organisasi (Connolly, 2010, p65). Terhubung secara logika di sini maksudnya
adalah sebuah database mewakili entity, atribut dan logic relation di antara tiap entity.
Data-data di dalam database memiliki struktur relasi yang dinamakan relational data
structure. Struktur relasi ini terdiri dari relasi, atribut, domain, tuple, degree, dan
cardinality. Relasi diartikan sebagai sebuah tabel dengan kolom dan baris.
Atributmerupakan nama kolom dari relasi tersebut dan domain merupakan suatu set nilai
yang diperbolehkan untuk satu atau lebih atribut. Nama baris dari suatu relasi disebut
dengan tuple. Degree merupakan jumlah dari atribut. Misalkan dalam suatu
relasimemiliki empat atribut, maka kita bisa menyebut relasi tersebut memiliki degree
four. Jumlah dari tuple disebut dengan cardinality.
2
Contoh :
Gambar 2. 1 Contoh Hubungan Atribut, Relasi, Degree, dan Tuple
Koleksi dari relasi yang telah ternomalisasi dengan nama relasi yang berbeda
disebut dengan relational database. Relational database terdiri dari relasi yang tepat
terstruktur. Ketepatan struktur ini dikenal dengan normalisasi.
2.1
Database Design
2.1.1 Database Lifecycle
Database lifecyle merupakan tahapan dalam merancang suatu database
system (Connoly, 2010, p311). Siklus hidup database digambarkan seperti berikut
ini:
3
Gambar 2. 2 Database Lifecycle
(Connolly, p314)
1.
Database Planning
Suatu kegiatan pengelolaan yang dilakukan agar tiap tahap dalam daur
pembuatan dapat dijalankan secara efisien dan efektif.
2.
System Definition
Menjelaskan tentang cakupan dan batasan dari aplikasi database dan
menggambarkan kebutuhan user akan aplikasi database secara umum.
3. Requirements Collection and Analysis
4
Proses mengumpulkan dan menganalisis informasi tentang bagian dari
organisasi yang nantinya akan didukung oleh aplikasi database dan kemudian
menggunakan informasi ini untuk mengetahui kebutuhan pengguna terhadap
sistem yang baru.
4.
Database Design
Perancangan dibagi menjadi tiga tahap yaitu conceptual, logical, dan
physical.
5.
DBMS Selection
Memilih DBMS yang tepat untuk mendukung aplikasi database.
6.
Application Design
Proses mendesain user interface dan membuat program aplikasi yang
digunakan untuk mengakses database.
7.
Prototipe
Membuat suatu model dari aplikasi database, yang digunakan agar
pengembang dan pengguna bisa mengevaluasi bagaimana sistem nantinya
akan berjalan dan juga melihat tampilannya.
2.1.1.1 Database Design
Menurut Connolly dan Begg (2005, p285), perencanaan basis data
adalah kegiatan manajemen yang merencanakan tahapan-tahapan siklus
hidup dari suatu aplikasi basis data agar dapat diwujudkan seefisien dan
seefektif mungkin. Dengan menggunakan metodologi :
5
•
Mission statement dari proyek basis data. Mission statement
mendefinisikan tujuan utama dari aplikasi basis data, membantu
menjelaskan tujuan proyek basis data, dan menyediakan maksud
yang lebih jelas untuk mencapai efektifitas dan efesiensi dalam
pembuatan aplikasi basis data yang diinginkan (Connolly dan Begg,
2005, p286).
•
Mission objectives. Selain merumuskan tujuan dari sebuah proyek
basis data, harus diperhatikan juga mengenai tugas apa saja yang
harus didukung oleh basis data tersebut. Setiap mission objective
akan menjelaskan tugas tertentu yang harus didukung oleh basis
data, dengan asumsi jika basis data mendukung mission objective,
maka mission statement juga akan tercapai (Connolly dan Begg,
2005, p286).
2.1.1.2 System Definiton
Menurut Connolly dan Begg (2005, p286), definisi sistem adalah
mendeskripsikan ruang lingkup dan batasan dari aplikasi basis data dan
sudut pandang pengguna (user view) yang utama. User view
mendefinisikan kebutuhan suatu aplikasi basis data dari perspektif
aturan kerja khusus (seperti Manajer atau Supervisor) atau area aplikasi
perusahaan (seperti marketing, personalia, atau stock control). Suatu
aplikasi basis data dapat memiliki satu atau lebih user view. Identifikasi
user view merupakan aspek yang penting dalam membuat aplikasi basis
6
data karena dapat membantu memastikan bahwa tidak ada pengguna
utama dari suatu basis data yang terlupakan ketika pembuatan aplikasi
baru yang dibutuhkan. User view juga membantu dalam pengembangan
aplikasi basis data yang kompleks dengan cara membagi permintaanpermintaan kedalam bagian-bagian yang lebih sederhana (Connolly dan
Begg, 2005, p287).
2.1.1.3 Requirements Collection and Analysis
Menurut Connolly dan Begg (2005, p288), dalam tahap ini
dilakukan suatu proses pengumpulan dan analisis informasi mengenai
bagian organisasi yang akan didukung oleh sistem basis data, dan
menggunakan informasi tersebut untuk mengidentifikasi kebutuhan
pengguna akan sistem yang baru.
Ada beberapa teknik untuk
mengumpulkan informasi, salah satunya adalah fact-finding techniques.
Menurut Connolly dan Begg (2005, p317), teknik fact-finding adalah
suatu proses resmi dalam menggunakan teknik-teknik seperti wawancara
atau kuesioner untuk mengumpulkan fakta-fakta tentang sistem dan
kebutuhan-kebutuhannya. Ada lima kegiatan yang dipakai dalam teknik
ini, yaitu memeriksa dokumentasi, wawancara, mengamati operasional
perusahaan, penelitian, dan kuesioner.
a. Memeriksa Dokumentasi
Menurut Connolly dan Begg (2005, p317), memeriksa dokumentasi
dapat berguna apabila digunakan untuk menemukan beberapa kebutuhan
7
dari basis data. Dokumentasi juga dapat membantu untuk meningkatkan
informasi mengenai perusahaan yang dihubungkan dengan masalah yang
ada. Apabila masalah yang dihadapi berhubungan dengan sistem yang
sedang berjalan, maka seharusnya dokumentasi berhubungan dengan
sistem tersebut. Pemahaman terhadap jalannnya sistem akan cepat
diperoleh dengan memeriksa dokumen, formulir, laporan, dan file yang
berhubungan dengan sistem yang sedang berjalan.
b. Wawancara
Menurut Connolly dan Begg (2005, p317), wawancara bertujuan
untuk
mengumpulkan
fakta
yang ada
dan
mengklarifikasinya,
membangkitkan semangat, melibatkan pengguna akhir, mengidentifikasi
kebutuhan-kebutuhan, dan mengumpulkan ide-ide.
c. Mengamati Operasional Perusahaan
Menurut Connolly dan Begg (2005, p319), teknik ini memungkinkan
pengamat untuk ikut serta atau mengamati seseorang melakukan
kegiatan untuk mempelajari sistam. Faktor pengamatan dapat berhasil
dengan mencari informasi sebanyak mungkin tentang kegiatan yang
akan diamati serta orang yang melakukan kegiatan tersebut.
d. Penelitian
Menurut Connolly dan Begg (2005, p319), jurnal komputer, bukubuku referensi, dan internet merupakan sumber informasi yang baik
yang menyediakan informasi bagaimana orang lain memecahkan
masalah yang serupa.
8
e. Kuesioner
Menurut Connolly dan Begg (2005, p320), kuesioner adalah suatu
dokumen dengan tujuan khusus yang memungkinkan fakta-fakta
dikumpulkan dari banyak orang sambil menjaga kontrol terhadap
tanggapan yang diberikan.
2.1.1.4 Database Design
2.1.1.4.1 Conceptual Database Design
Conceptual database design adalah proses dari membangun
sebuah model data yang digunakan di perusahaan dan bebas dari detail
implementasi seperti Database Management System (DBMS), program
aplikasi, bahasa pemrograman, platform hardware, masalah performa, dan
pertimbangan fisikal lainnya (Connolly, 2010, p467). Menurut Lawson, et
al. (2012) DBMS merupakan standar penyimpanan data atau informasi dan
dapat mengatur serta memelihara struktur dari data yang disimpan. Tahaptahap yang dilakukan dalam conceptual database design yaitu:
1. Mengidentifikasi tipe entity.
2. Mengidentifikasi tipe relasi.
3. Mengidentifikasi dan menghubungkan atribut-atribut dengan entity atau
relation types.
4. Menentukan atribut domain.
5. Menentukan candidate, primary, dan alternate key.
6. MempertimbangkanPenggunaanEnhanced Modeling Concept
7. Memeriksa redudansi pada model.
9
8. Memvalidasi conceptual data model terhadap transaksi pengguna.
9. Meninjau kembali conceptual data model dengan pengguna.
Gambar 2. 3 Contoh ConceptualDataModel
2.1.1.4.2 Logical Database Design
Logical database design adalah proses dari membangun sebuah
model data yang digunakan di perusahaan berdasarkan specific data model
yang tidak bergantung kepada DBMS, program aplikasi, bahasa
pemrograman,
platform
perangkat
keras,
masalah
performa,
dan
pertimbangan fisikal lainnya (Connolly, 2010, p467). Tahap-tahap yang
dilakukan dalam logical database design yaitu:
1. Menurunkan relasi-relasi dari conceptual database design.
2. Memvalidasi relasi menggunakan normalisasi.
3. Memvalidasi relasi terhadap transaksi pengguna.
4. Memeriksa integrityconstraits.
10
5. Meninjau kembali logical data model dengan pengguna.
6. Menggabungkanlogical data model dengan model global.
7. Memeriksa perkembangan data di masa yang akan datang.
Permintaan
Barang
NoBarang {PK}
NamaBarang
0..* Stok
Memiliki
NoPermintaan {PK}
TanggalPermintaan
0..* JumlahPermintaan
0..*
1..*
Menyetujui
0..*
1..1
Membuat
GeneralServicesStaff
1..1
Adalah
Menyiapkan
1..1
Menghubungi
1..1
1..1
WarehouseStaff
Adalah
Karyawan
NoKaryawan {PK}
NamaKaryawan
Telepon
Alamat
Posisi
Gambar 2. 4 Contoh Logical Data Model
2.1.1.4.3 Physical Database Design
Physical database design adalah proses menghasilkan deskripsi
implementasi database pada penyimpanan sekunder (Connolly, 2010,
p467). Tahap ini menggambarkan relasi dasar organisasi file dan indeksindeks untuk mencapai akses ke data dan beberapa kendala integritas serta
keamanan data. Tahap-tahap yang dilakukan dalam physical database
design yaitu:
1.
Menerjemahkan logical data model ke DBMS sasaran:
-
Merancang relasi dasar.
-
Merancang representasi dari data turunan.
11
2.
Merancang kendala umum.
Merancang organisasi file dan indeks-indeks:
-
Menganalisis transaksi.
-
Memilih organisasi file.
-
Memilih indeks-indeks.
-
Mengestimasi kebutuhan ruang penyimpanan.
3. Merancang user views.
4. Mempertimbangkan pengenalan redundansi yang terkontrol.
5. Memantau dan menyesuaikan sistem operasi.
2.1.1.5 DBMS Selection
Menurut Connolly dan Begg (2005, p295), pemilihan DBMS
disesuaikan untuk mendukung sistem basis data. Adapun dalam
pemilihan DBMS sebaiknya mencakup (Connolly dan Begg, 2005,
p297):
1. Mendefnisikan syarat-syarat referensi studi.
Menentukan sasaran, batasan, dan tugas yang harus dilakukan.
2. Mendaftar dua atau tiga jenis barang.
Membuat daftar barang-barang, misalnya pencatatan terhadap asal
barang, harga barang, serta bagaimana mendapatkannya.
3. Mengevaluasi barang.
Barang-barang yang ada dalam daftar diteliti lebih lanjut untuk
mengetahui kelebihan dan kekurangan barang tersebut.
12
4. Merekomendasikan pilihan dan membuat laporan.
Merupakan
langkah
terakhir
dari
seleksi
DBMS,
yaitu
mendokumentasikan proses dan untuk menyediakan pernyataan
mengenai kesimpulan dan rekomendasi terhadap salah satu produk
DBMS.
2.1.1.5.1
Komponen DBMS
Menurut Connolly dan Begg (2005, p18), ada lima
komponen utama dalam suatu lingkungan Sistem Manejemen Basis
Data, yaitu sebagai berikut :
1. Perangkat Keras (Hardware)
Piranti keras sangat dibutuhkan untuk menjalankan aplikasi dan
DBMS. Piranti keras dapat berupa sebuah komputer, sebuah
mainframe, ataupun sebuah jaringan antar komputer, yang nantinya
disesuaikan dengan kebutuhan organisasi dan DBMS yang digunakan.
2. Perangkat Lunak (Software)
Merupakan komponen perangkat lunak yang terdiri dari DBMS dan
program-program aplikasi, termasuk sistem operasi dan dan perangkat
lunak jaringan apabila dalam penggunaannya menggunakan jaringan
komputer.
13
3. Data
Merupakan komponen yang terpenting dari suatu DBMS dilihat dari
sudut
pandang
pengguna.
Data
memegang
peranan
sebagai
penghubung antara komponen mesin dengan manusia dalam
lingkungan DBMS.
4. Prosedur
Merupakan instruksi dan aturan yang diterapkan untuk mendesain dan
menggunakan basis data.
5. Manusia
Merupakan komponen yang terlibat dalam sistem yang terdiri atas
application programmer, end users, dan database administrator.
2.1.1.5.2
Kelebihan dan Kekurangan DBMS
Menurut Connolly dan Begg (2005, p26), kelebihan DBMS
yaitu antara lain :
1. Kontrol terhadap redudansi data.
2. Konsistensi data.
3. Lebih banyak informasi dari jumlah yang sama.
4. Banyaknya data.
5. Sharing data.
6. Meningkatkan integritas data.
7. Meningkatkan keamanan.
8. Standarisasi.
14
9. Lebih ekonomis.
10. Menyeimbangkan kebutuhan yang bertentangan.
11. Meningkatkan akses dan respon data.
12. Meningkatkan produktivitas.
13. Meningkatkan pemeliharaan melalui indepedensi data.
14. Meningkatkan konkurensi data.
15. Meningkatkan pelayanan bakcup dan recovery.
Kekurangan DBMS yaitu antara lain :
1. Kompleksitas.
2. Ukuran.
3. Biaya DBMS.
4. Biaya tambahan perangkat keras.
5. Biaya konversi.
6. Performa.
7. Dampak kegagalan yang lebih tinggi.
2.1.1.6
Prototipe
Prototipe pada dasarnya adalah sebuah desain output dari sebuah
aplikasi, di mana output itu sendiri adalah yang akan merepresentasikan informasi
ke system user. Isi dari prototipe tidak mencakup keseluruhan fungsi dari versi
akhir sistem atau aplikasi. Selain itu, prototipe hanya mengandung fitur-fitur
utama dari sistem dan tidak mengandung fitur-fitur pendukung seperti fitur
keamanan yang akan ada di versi akhir sistem.
15
Tujuan utama pembuatan prototipe adalah memperkenankan pengguna
untuk mencoba menggunakan prototipe (Connolly, 2010, p333). Hal tersebut
dilakukan, diantaranya agar pengguna dapat:
1.
Mengidentifikasi fitur – fitur yang ada dalam sistem.
2.
Menyarankan perbaikan atau bahkan fitur baru untuk sistem.
Dengan demikian user requirements menjadi jelas, bagi pengguna
maupun pengembang. Selain itu sistem juga dapat dievaluasi kelayakannya.
Terdapat dua tipe strategi pembuatan prototipe. Requirements
prototyping akan dibuang setelah berhasil merepresentasikan sistem yang akan
diimplementasi. Evolutionary prototyping bertujuan sama dengan requirements
prototyping, hanya saja prototipe tidak akan dibuang melainkan akan
dikembangkan lebih lanjut untuk menjadi sistem yang bekerja penuh.
2.1.2
Data Flow Diagram
Menurut McGraw-Hill (2004, p357), DFD adalah aliran data antara sistem
dengan lingkungannya, atau diantara dua proses didalam sistem. Aliran data yang
direpresentasikan adalah suatu input kedalam proses atau output data dari suatu
proses. Aliran data juga merepresentasikan pembuatan, pembacaan, penghapusan
dan pengubahan data pada suatu file atau basis data.
2.1.2.1 Perancangan DFD
Dalam pembuatan DFD, terdapat levelisasi yang bertujuan untuk
menghindari aliran data yang rumit. Levelisasi dimulai dari dengan
16
tingkatan tertinggi dan kemudian diuraikan ke dalam bentuk yang lebih
rinci. Tingkatan tersebut terdiri dari :
1. Diagram konteks (Context Data Flow Diagram)
Diagram konteks merupakan sebuah model proses yang digunakan
untuk mendokumentasikan ruang lingkup dari sebuah sistem.
2. Diagram nol (Level-0 Diagram)
level-0 diagram merupakan diagram aliran data yang menggambarkan
sebuah major processes, data flow, dan data stores dari sebuah sistem
yang berada pada tingkatan tertinggi untuk detailnya.
2.1.3
Entity Relationship
Entity type adalah kelompok objek dengan properti yang sama yang
diidentifikasikan oleh
perusahaan
yang memiliki independent existence
(Connolly, 2010, p372). Entity type merupakan konsep dasar dari ER model yang
umum digunakan untuk data model, menurut Lee dan Ling (2003). Sedangkan
yang dimaksud dengan relationship types adalah suatu set hubungan di antara satu
atau lebih entity type (Connolly, 2010, p374). Setiap tipe hubungan ditunjukan
dengan garis penghubung entity type dan diberikan label nama dari relationship.
Normalnya relationship ini diberi nama menggunakan kata kerja.
Degree of relationship types mengidentifikasikan jumlah entity yang
berpartisipasi dalam relasi. Beberapa degree of relationship types diantaranya,
yaitu:
1.
Binary yaitu jumlah entity yang terlibat ada dua buah.
17
2.
Ternary yaitu jumlah entity yang terlibat ada tiga buah.
3.
Quartenary yaitu jumlah entity yang terlibat ada empat buah.
Atribut merupakan properti dari suatu entity type atau relationship.
Sedangkan yang dimaksud dengan attribute domain yaitu nilai yang
diperbolehkan untuk satu atau lebih atribut (Connolly, 2010, p350). Setiap atribut
dihubungkan oleh suatu set nilai yang disebut dengan domain. Domain tersebut
menetapkan nilai potensi yang mungkin atribut tersebut pegang dan sama dengan
domainconcept pada relational model. Entity type diklasifikasikan ke dalam dua
kelompok, yaitu:
1.
Strong Entity
Tipe entity yang tidak bergantung dengan tipe entity lainnya
(parent, owner or dominant entities).
2.
Weak Entity
Tipe entity yang bergantung dengan tipe entity lainnya (child,
dependent or subordinate emtities).
Gambar 2. 5 Contoh Strong dan WeakEntity
Telah disebutkan sebelumnya, degree of relationship types yang paling
umum yaitu binary relationship. Secara umum, binary relationship dibagi
18
menjadi tiga berdasarkan kendala integritasnya, yaitu one to one, one to many,
dan many to many. Berikut penjelasan ketiganya:
1.
One to One (1:1) Relationship
Gambar 2. 6 Contoh One to One (1:1) Relationship
Relasi ini menggambarkan bahwa tepat satu atribut pada entity A
berpasangan tepat satu atribut pada entity B. Seperti yang disebutkan
pada contoh, bahwa setiap satu general services staff akan
menghubungi tepat satu warehouse staff.
2.
One to Many (1:*) Relationship
Gambar 2. 7 Contoh One to Many (1:*) Relationship
Relasi ini menggambarkan bahwa satu atribut pada entity A
berpasangan pada banyak jumlah atribut pada entity B. Seperti yang
disebutkan pada contoh, bahwa pegawai dapat tidak membuat hingga
membuat banyak transaksi permintaan.
3.
Many to Many (*:*) Relationship
Gambar 2. 8 Contoh Many to Many (*:*) Relationship
19
Relasi ini menggambarkan bahwa lebih dari satu atau lebih dari
nol atribut pada entity A berpasangan pada banyak jumlah atribut pada
entity B. Seperti yang disebutkan pada contoh, bahwa transaksi
memiliki paling tidak satu atau banyak barang di dalamnya.
Dalam perancangan hubungan antar entity, dimungkinkan adanya konsep
spesialisasi/generalisasi. Konsep ini berhubungan dengan entity type spesial yang
dikenal sebagai superclass dan subclass, juga berhubungan dengan proses
pewarisan atribut.
Yang dimaksud dengan superclass adalah entity type yang mengandung
satu atau lebih subgrouping. Sedangkan subclass adalah subgrouping yang
merupakan bagian dari superclass (Connolly, 2010, p400). Hubungan antara
superclass dan subclass adalah One to One (1:1) Relationship. Sebagai contoh,
entity
Pegawai
merupakan
superclass
yang
memiliki
subclass,
yaitu:
GeneralServicesStaff dan WarehouseStaff. Sehubungan dengan pewarisan atribut,
entitysubclass akan mewarisi semua atribut entitysuperclass, namun subclass bisa
saja memiliki atribut tambahan. Dalam pewarisan atribut antara superclass dan
subclass terdapat tipe hierarki, diantaranya hierarki generalisasi (Pegawai
generalisasi WarehouseStaff), hierarki spesialisasi (WarehouseStaff spesialisasi
Pegawai), dan hierarki IS-A (WarehouseStaff adalah bagian dari Pegawai).
Generalisasi sendiri adalah proses meminimalisir perbedaan antar entity
dengan mengidentifikasi karakteristik yang sama (Connolly, 2010, p403).
20
Sedangkan spesialisasi adalah proses memperbanyak perbedaan antar entity
(Connolly, 2010, p402).
Gambar 2. 9 Contoh Generalisasi/Spesialisasi
Gambar 2. 10 Contoh EntityRelationship
2.1.3.1
Keys
Menurut Connolly dan Begg (2005, p352), candidate keys
adalah set atribut minimal yang secara unik mengidentifikasikan setiap
kejadian dari sebuah tipe entitas. Primary key adalah candidate key
yang dipilih untuk secara unik mengidentifikasi setiap occurrence dari
tipe entitas. Composite key adalah candidate key yang terdiri dari dua
atau lebih atribut.
21
2.1.3.2
Relational Database Keys
Menurut Coronel, Morris, dan Rob (2010, p96) Relational
database keys ada 5 macam yaitu :
• Superkey
Sebuah
atribut
(atau
kombinasi
atribut)
yang
secara
unik
mengidentifikasi setiap baris dalam sebuah tabel.
• Candidate key
Sebuah superkey (tereduksi) minimal. Sebuah superkey yang tidak
berisi subset dari atribut itu sendiri yaitu superkey.
• Primary key
Key kandidat yang dipilih untuk secara unik mengidentifikasi semua
nilai atribut lain dalam baris yang diberikan
• secondary key
Digunakan secara ketat untuk tujuan pengambilan data.
• Foreign key
Sebuah atribut (atau kombinasi atribut) dalam satu meja yang nilainya
baik harus sesuai dengan primary key dalam tabel lain atau menjadi
null.
2.1.3
Normalisasi
Normalisasi adalah teknik untuk membuat kumpulan relasi dengan
properti yang diinginkan berdasarkan persyaratan data dari suatu perusahaan
(Connolly, 2010, p416). Proses dari normalisasi adalah metode formal yang
22
mengidentifikasi relasi berdasarkan primary key, candidate key, dan functional
dependency di mana functional dependency itu sendiri menjelaskan tentang
hubungan antara dua atribut di dalam sebuah relasi. Proses normalisasi dimulai
dari memindahkan data dari sumber data. Misalnya, entry form ke dalam bentuk
tabel yang selanjutnya disebut Unnormalized Form (UNF).
Tabel 2. 1 Tabel Request (UNF)
TransID
T01
UserID
U01
Username
User1
TransDate
10-01-2012
T02
T03
U02
U03
User2
User3
10-02-2012
10-02-2012
T04
U02
User2
10-03-2012
ProductID
P0001
P0004
P0002
P0002
P0003
P0003
ProductName
Product01
Product04
Product02
Product02
Product03
Product03
Qty
1
2
3
4
1
6
Normalisasi sendiri memiliki lima tahap yaitu 1NF, 2NF, 3NF, BCNF,
4NF, dan 5NF. Namun pada praktiknya normalisasi dilakukan hanya sampai pada
tahap 3NF, BCNF, atau paling jauh sampai pada tahap 4NF. Adapun penjelasan
mengenai tahap normalisasi adalah sebagai berikut:
1. 1NF
Untuk menghasilkan bentuk 1NF, akan dilakukan identifikasi dan
penghilangan repeating groups dari tabel UNF. Berikut adalah contoh bentuk
1NF dari tabel UNF 2.1:
Tabel 2. 2 Tabel Request (1NF)
TransID
UserID
Username
TransDate
ProductID
ProductName
Qty
T01
U01
User1
10-01-2012
P0001
Product01
1
T01
U01
User1
10-01-2012
P0004
Product04
2
23
T02
U02
User2
10-02-2012
P0002
Product02
3
T03
U03
User3
10-02-2012
P0002
Product02
4
T03
U03
User3
10-02-2012
P0003
Product03
1
T04
U02
User2
10-03-2012
P0003
Product03
6
Pada bentuk 1NF ini, functional dependency dari setiap atribut dipaparkan
untuk
dihilangkan
pada
tahap
selanjutnya.
Functional
dependency
menjelaskan tentang hubungan antara dua atribut di dalam sebuah relasi.
Contoh:
Gambar 2. 11 Contoh FunctionalDependency
A disebut dengan determinant dan B disebut dengan dependent. Gambar di
atas menunjukan functional dependency antar atribut A dan B. Setiap nilai B
bergantung atau ditentukan oleh tepat satu nilai A (Connolly, 2010, p421).
Ada tiga jenis functional dependency yaitu:
1. Fully Functional Dependency
Sebuah atribut dapat dikatakan fully functional dependency jika atribut
tersebut bergantung pada seluruh atribut primary key. Pengindikasian jika
A dan B merupakan atribut dalam suatu relasi. B bergantung penuh secara
fungsional pada A jika penghapusan atribut dari A menghasilkan
ketidaktergantungan.
2. Partial Functional Dependency
24
Sebuah atribut dapat dikatakan partial funstional dependency jika
atribut tersebut bergantung pada sebagian atribut primary key. B
bergantung sebagian secara fungsional pada A jika penghapusan atribut
dari A masih menghasilkan ketergantungan.
3. Transitive Functional Dependency
Kondisi di mana A, B, dan C merupakan atribut dalam suatu relasi. A
→ B dan B → C, maka C bergantung secara transitif pada A melalui B.
2. 2NF
Pada tahap ini akan dilakukan penghilangan partial dependencydaritabel
1NF,di mana partial dependency itu sendiri adalah atribut non-primary key
yang bergantung kepada sebagian atribut primary key. Berikut adalah contoh
perubahan dari bentuk 1NF ke 2NF:
Gambar 2. 12 FunctionalDependency 1NF Tabel Request
Gambar diatas merupakan bentuk functional dependency dari tabel 2.2. A
dan E merupakan primary key. Atribut F hanya bergantung kepada atribut E
yang merupakan sebagian atribut primary key. Dengan kata lain, F merupakan
25
partial dependency yang harus dihilangkan untuk memenuhi syarat bentuk
2NF. Begitu juga dengan atribut D dan B.
Gambar 2. 13 Functional Dependency 2NF Tabel Request
3.
3NF
Pada tahap ini akan dilakukan penghilangan transitive dependencydaritabel
2NF, di mana transitive dependency adalah atribut non-primary key yang
bergantung kepada atribut non-primary key lain. Berikut ini adalah contoh
perubahan dari bentuk 2NF menjadi 3NF:
Atribut C bergantung kepada B, sementara atribut B merupakan
atribut non-primary key, maka atribut B merupakan transitive dependency
yang harus dihilangkan untuk memenuhi syarat bentuk 3NF.
26
A
E
G
A
D
B
B
C
E
F
Keterangan:
A: TransID
B: UserID
C: Username
D:TransDate
G: Qty
E: ProductID
F: ProductName
Gambar 2. 14 FunctionalDependency 3NF Tabel Request
2.2
Penjualan
Menurut Mulyadi (2001, p204), kegiatan penjualan terdiri dari penjualan
barang atau jasa baik secara kredit maupun tunai. Penjualan menurut cara
bayarnya dapat dibedakan sebagai berikut :
1. Penjualan tunai adalah penjualan yang dilaksanakan oleh perusahaan dengan
cara mewajibkan pembeli dengan melakukan pembayaran harga barang
terlebih dahulu sebelum barang diserahkan kepada pembeli.
2. Penjualan kredit adalah penjualan yang dilakukan dengan cara memenuhi
pesanan dari pelanggan dengan mengirimkan barang atau menyerahkan jasa
dan untuk jangka waktu tertentu perusahaan memiliki piutang kepada
pelanggannya.
2.3
PHP
PHP adalah bahasa scripting bertipe server-side, lintas platform dan
HTML embedded (Cullen, 2002). PHP memungkinkan pengembang untuk
menempatkan elemen-elemen program dalam teks HTML. Dengan metode ini
27
HTML standart dapat ditulis seperti biasa sementara konten dinamis dihasilkan
oleh scripting language. PHP adalah bahasa scriptingopen source yang memang
didesain khusus untuk membuat aplikasi web dinamis.
Pada awalnya PHP merupakan singkatan dari Personal Home Page namun
kemudian kini berganti menjadi PHP: Hypertext Preprocessor. PHP dapat
menjalankan hampir semua tugas yang dapat dikerjakan oleh bahasa
pemrograman seperti Active Server Pages (ASP), ColdFusion, Java Server Pages
(JSP). Dengan kata lain PHP merupakan teknologi yang menyerupai ASP, JSP
dan ColdFusion. File PHP memiliki tag khusus dan dapat dibuat menggunakan
text editor apapun. Berikut adalah contoh script sederhana dari PHP:
Gambar 2. 15 Contoh Script PHP
Menurut Zeev Suraski dalam artikel yang dibuat oleh Sharon Machlis
(2002), PHP memiliki satu kekurangan. Kapabilitas PHP dalam pemrograman
berbasis objek jika dibandingkan dengan Java misalnya, masih tidak sebaik Java.
Hal ini membuat PHP sulit untuk digunakan dalam membuat aplikasi yang sangat
besar skalanya.
Download