BAB 2 LANDASAN TEORI
2.1 Teori Umum Teori umum akan menjelaskan teori-teori yang berhubungan dengan database, seperti : data, database, entity, database management system (DBMS), normalisasi, dan sebagainya. 2.1.1 Data Menurut Atzeni, et.al (2003, p2), data adalah informasi mentah yang terekam yang dapat menyediakan informasi-informasi lainnya. Dikatakan juga, sebuah data yang berupa informasi mentah bisa sangat tidak berarti, namun menjadi berarti jika data-data itu digabungkan. Menurut Connoly & Begg (2005, p20), data adalah jembatan yang menghubungkan antara komponen manusia dengan komponen mesin. 2.1.2 Database Menurut Connolly & Begg (2005, p15), database adalah kumpulan data logical yang saling berhubungan dan deskripsi dari data, didesain untuk memenuhi kebutuhan informasi sebuah organisasi. Menurut Roman (2002, p11), database adalah kumpulan data yang persisten. Syarat data yang persisten adalah sesuatu yang kurang jelas, tetapi dirancang untuk menyiratkan data lebih atau kurang bebas keberadaannya atau semi permanen.
5
6
Database adalah sebuah tempat penyimpanan data yang bisa digunakan oleh banyak departemen dan pengguna. Database mengintegrasikan data-data dan meminimalkan jumlah duplikasi data. Sebuah database tidak hanya mengandung data operasional organisasi melainkan juga deskripsi dari data tersebut. Database juga merepresentasikan entitas-entitas, atribut-atribut, dan relasi logis antara entitas yang satu dengan entitas yang lainnya. Secara singkat database dapat didefinisikan sebagai koleksi bersama dari data-data yang berelasi secara logis, dan sebuah deskripsi dari data tersebut yang dirancang untuk memenuhi kebutuhan informasi sebuah organisasi. 2.1.3 Bahasa-Bahasa dalam Database Sebuah sub-bahasa data terdiri dari 2 bagian yaitu: Data Definition Language(DDL) dan Data Manipulation Language(DML). -
Data Definition Language (DDL) Data
Definition
mengizinkan
Language
Database
adalah
Administrator
sebuah atau
bahasa
pengguna
yang untuk
menjelaskan dan memberi nama ke entitas-entitas, atribut-atribut, dan relasi yang diperlukan untuk aplikasi, bersama pula dengan kendala keamanan dan integritas yang berhubungan. -
Data Manipulation Language (DML) Data Manipulation Language (DML) adalah sebuah bahasa yang menyediakan
operasi-operasi
untuk
mendukung
operasi
7
pemanipulasian data pada data yang berada di database diantaranya adalah: -
Melakukan penambahan data baru ke database
-
Melakukan perbaharuan terhadap data yang disimpan pada database
-
Mengambil kembali data yang berada pada database
-
Menghapus data dari database
Terdapat dua tipe DML yaitu: procedural dan nonprocedural. Secara garis besar perbedaan diantara dua tipe Data Manipulation Language tersebut adalah, DML procedural menspesifikasikan bagaimana hasil dari sebuah pernyataan DML diperoleh, sedangkan DML non-procedural hanya menjelaskan apa hasil yang akan diperoleh. 2.1.4 Relational Data Model Sebuah Relational Data Model terdiri dari beberapa elemen diantaranya yaitu: Relational Data Structure dan Relational Keys 2.1.4.1 Relational Data Structure Suatu Relational Data Model terdiri dari relasi, atribut, domain, tuple, degree, dan kardinalitas.
8
2.1.4.1.1 Relasi Menurut Connolly & Begg (2005, p346), Relasi adalah suatu hubungan antar satu atau lebih tipe entitas.
Gambar 2.1 Relasi Pada Tabel Branch Didalam suatu relationship terdapat batasan-batasan yang kita sebut dengan multiplicity. Multiplicity adalah nilai atau jangkauan nilai dari suatu kejadian tipe entitas yang mungkin berhubungan dengan kejadian tipe entitas lain melalui hubungan yang bersangkutan. Jenis batasan multiplicity terdiri dari: •
One-to-one(1 : 1) relationship
•
One-to-many(1 : *) relationship
•
Many-to-many(* : *) relationship
2.1.4.1.2 Atribut Atribut adalah nama dari sebuah kolom pada suatu relasi. Pada relational model, relasi digunakan untuk menampung informasi mengenai obyek yang akan direpresentasikan di database. Sebuah relasi di representasikan dalam bentuk tabel dua
9
dimensi, dimana baris dari tabel tersebut berkorespondensi dengan record masingmasing dan kolom dari tabel tersebut berkorespondensi ke atribut.
Gambar 2.2 Atribut Pada Tabel Branch Macam-macam atribut: 1. Simple Attribute yaitu atribut yang terdiri dari suatu komponen tunggal dengan keberadaan yang independent dan tidak dapat dibagi menjadi lebih kecil lagi. Dikenal juga dengan nama atomic attribute. 2. Composite attribute yaitu atribut yang terdiri dari beberapa komponen, dimana masing-masing komponen memiliki keberadaan yang independen. Misalkan atribut address dapat terdiri dari street, city, postcode. 3. Single-Valued Attribute, yaitu atribut yang mempunyai nilai tunggal untuk setiap kejadian. Misalnya entitas Branch memiliki satu nilai untuk atribut BranchNo pada setia kejadian. 4. Multi-valued attribute, yaitu atribut yang mempunyai beberapa nilai utnuk setiap kejadian. Misal 1 karyawan memiliki lebih dari 1 notelp. 5. Derived-attribute yaitu atribut yang memiliki nilai yang dihasilkan dari satu atau beberapa atribut2 lainnya, dan tidak harus berasal dari satu entitas.
10
2.1.4.1.3 Domain Domain adalah sebuah set dari nilai yang diperbolehkan untuk satu atau lebih atribut. Setiap atribut dalam sebuah relasi didefinisikan pada oleh sebuah domain. Domain bisa saja berbeda untuk setiap atribut, atau 2 atau lebih atribut boleh didefinisikan dalam domain yang sama. Konsep untuk domain digolongkan sebagai penting dikarenakan mengizinkan pengguna untuk mendefinisikan di suatu tempat yang tersentralisasi mengenai nilai dan sumber dari nilai yang atribut-atribut bisa pegang. Sebagai hasilnya, lebih banyak informasi yang tersedia pada saat sistem melakukan operasi relasional, dan operasi yang secara semantik tidak benar bisa dihindari.
Gambar 2.3 Domain Pada Tabel Branch
2.1.4.1.4 Tuple Tuple adalah sebuah baris dalam suatu tabel relasi.
Gambar 2.4 Tuple Pada Tabel Branch
11
2.1.4.1.5 Derajat Derajat dari sebuah relasi adalah jumlah atribut-atribut dalam suatu tabel. Pada gambar 2.5 memiliki derajat empat.
Gambar 2.5 Derajat Pada Tabel Branch 2.1.4.1.6 Kardinalitas Kardinalitas dari sebuah relasi adalah jumlah tuple-tuple dalam suatu tabel. Pada gambar 2.6 berkardinalitas lima.
Gambar 2.6 Kardinalitas Pada Tabel Branch 2.1.4.2 Relational Keys Dalam sebuah relasi tidak terdapat duplikat dari sebuah tuple, maka dengan itu dibutuhkan sebuah key untuk mengidentifikasi secara unik setiap tuple dalam sebuah relasi. Key-key tersebut diantaranya adalah superkey, candidate key, composite key, primary key, alternate key, dan foreign key.
12
2.1.4.2.a Super Key Sebuah superkey mengidentifikasi secara unik setiap tuple dalam sebuah relasi. Meski begitu, sebuah superkey bisa mengandung atribut-atribut tambahan yang tidak dibutuhkan untuk mengidentifikasi secara unik. 2.1.4.2.b Candidate Key Candidate Key adalah key yang bisa terpilih untuk menjadi primary key. Sebuah candidate key memiliki dua ciri-ciri yaitu: - Keunikan yaitu di setiap tuple R, nilai dari K secara unik mengidentifikasi tuple tersebut. - Tidak bisa di reduksikan yaitu tidak ada subset yang tepat dari K mempunyai ciri-ciri keunikan. 2.1.4.2.c Composite Key Composite key adalah candidate key yang terdiri dari dua atribut atau lebih. 2.1.4.2.d Primary Key Primary key adalah atribut unik yang mengidentifikasi setiap row dalam table atau candidate key yang terpilih untuk mengidentifikasi secara unik suatu entitas.
13
Gambar 2.7 Primary Key Pada Tabel Branch 2.1.4.2.e Alternate Key Alternate key adalah candidate key yang tidak dipilih untuk menjadi primary key. 2.1.4.2.f Foreign Key Foreign key adalah sebuah atribut atau set dari atribut, yang berada dalam suatu relasi yang serasi dengan candidate key dari relasi yang lain. Atribut sebuah tabel yang menggabungkan diri ke tabel lain.
Gambar 2.8 Foreign Key Pada Tabel Branch
14
2.1.5 Database Management System (DBMS) Menurut Connolly & Begg (2005, p16), DBMS adalah sebuah piranti lunak yang memungkinkan user untuk mendefinisikan, membuat, memelihara, dan mengontrol akses ke database. Secara khusus, sebuah DBMS menyediakan fasilitas sebagai berikut: -
Mengizinkan pengguna untuk mendefinisikan diatabase melalui Data Definition Language (DDL).
-
Mengizinkan pengguna untuk melakukan penambahan, memperbaharui, menghapus, dan mengambil kembali data dari database melalui Data Manipulation Language(DML).
-
Menyediakan akses yang terkontrol ke database Secara singkat DBMS dapat didefinisikan sebagai sebuah perangkat lunak yang
mengizinkan pengguna untuk mendefinisikan, membuat, memelihara, dan mengontrol akses ke database. 2.1.5.1 Fungsi-fungsi pada Database Management System(DBMS) Sebuah DBMS diharuskan memiliki fungsi-fungsi sebagai berikut: -
Sebuah DBMS harus menyediakan pengguna dengan kemampuan untuk menyimpan, mengambil kembali data, dan memperbaharui data pada database.
-
Sebuah DBMS harus menyediakan sebuah katalog dimana deskripsi-deskripsi dari data-data disimpan dan bisa diakses oleh pengguna.
15
-
Sebuah DBMS harus menyediakan sebuah mekanisme dimana perbaharuan yang dilakukan oleh sebuah transaksi harus dilakukan sampai selesai atau transaksi tersebut tidak dilakukan sama sekali, yang berarti jikalau terjadi kegagalan pada suatu transaksi sebelum transaksi tersebut benar-benar berakhir, maka kondisi database akan dikembalikan ke sebelum transaksi tersebut dilakukan.
-
Sebuah DBMS harus menyediakan sebuah mekanisme untuk menjamin bahwa database diperbaharui dengan benar pada saat banyak pengguna memperbaharui suatu database secara bersamaan.
-
Sebuah DBMS harus menyediakan sebuah mekanisme untuk memulihkan database pada saat database rusak oleh sesuatu.
-
Sebuah DBMS harus menyediakan sebuah mekanisme untuk menjamin bahwa hanya orang yang terotorisasi yang dapat melakukan akses ke database.
-
Sebuah DBMS harus bisa melakukan integrasi dengan perangkat lunak komunikasi. Sebuah DBMS harus menyediakan sebuah cara untuk menjamin bahwa data yang berada dalam database dan perubahan yang dilakukan terhadap data dalam database mengikuti peraturan-peraturan tertentu untuk menjamin integritas dari data yang disimpan pada database.
16
2.1.5.2 Komponen –komponen dalam Database Management System
Gambar 2.9 Komponen-Komponen dalam DBMS Sebuah DBMS dibagi-bagi ke dalam beberapa komponen-komponen perangkat lunak atau modul, dimana setiap modul melakukan operasi-operasi tertentu. Berikut adalah komponen-komponen tersebut: -
Query Processor yang berfungsi untuk mengubah query-query menjadi sebuah rentetan dari instruksi tingkat rendah yang ditujukan kepada Database Manager.
-
Database Manager yang menerima query-query dan memeriksa skema eksternal dan konseptual untuk menentukan catatan-catatan konseptual yang diperlukan
17
untuk memenuhi permintaan. Kemudian Database Manager memberikan perintah kepada File Manager untuk melaksanakan permintaan tersebut. -
File Manager yang berfungsi untuk memanipulasi penyimpanan data dan mengatur alokasi dari tempat penyimpanan pada disk.
-
DML preprocessor yang berfungsi untuk melakukan konversi pernyataanpernyataan DML.
-
DDL compiler yang berfungsi untuk melakukan konversi dari pernyataanpernyataan DDL.
-
Catalog Manager
yang berfungsi untuk mengatur akses ke katalog dan
memelihara katalog sistem. 2.1.5.3 Komponen – komponen dalam Lingkungan Database Management System.
Gambar 2.10 Lingkungan dalam DBMS 2.1.5.3.1 Perangkat Keras ( Hardware ) DBMS membutuhkan perangkat keras untuk berjalan. Perangkat keras tersebut dapat berkisar dari sebuah komputer pribadi, hingga ke sebuah mainframe, hingga ke jaringan dari komputer-komputer. Perangkat keras yang digunakan bergantung pada kebutuhan dari organisasi dan DBMS yang digunakan. Beberapa DBMS hanya berjalan pada perangkat keras atau sistem operasi tertentu sedangkan DBMS-DBMS yang lainnya
18
dapat berjalan pada bermacam-macam perangkat keras dan bermacam-macam sistem operasi. 2.1.5.3.2 Perangkat Lunak ( Software ) Komponen perangkat lunak dalam lingkungan DBMS termasuk perangkat lunak DBMS itu sendiri beserta program-program aplikasinya, serta sistem operasi, dan termasuk juga perangkat lunak jaringan jikalau DBMS tersebut digunakan oleh sebuah jaringan. 2.1.5.3.3 Data dalam DBMS Data merupakan sebuah komponen dalam lingkungan DBMS, data merupakan sebuah jembatan antara komponen-komponen mesin dan komponen-komponen manusia. 2.1.5.3.4 Prosedur-Prosedur Prosedur-prosedur mengacu pada instruksi-instruksi dan peraturan-peraturan yang mengendalikan rancangan dan pengunaan dari database. 2.1.5.3.5 Orang Orang-orang yang terlibat dengan sistem seperti pemilik sistem, stakeholder, database administrator, dan sebagainya.
19
2.1.6 Arsitektur File-Server untuk DBMS Pada arsitektur ini, pemrosesan dibagikan ke jaringan. file-server menyimpan file-file yang dibutuhkan oleh aplikasi-aplikasi dan DBMS. Tetapi, aplikasi-aplikasi dan DBMS berjalan pada masing-masing workstation, meminta file-file dari file-server jika dibutuhkan. 2.1.6.1 Arsitektur Two-Tier Client-Server
Gambar 2.11 Arsitektur Two Tier Client Server Aliran data yang berjalan arsitektur Two Tier Client Server adalah sebagai berikut: Pertama-tama client menerima permintaan dari pengguna, mengecek sintakssintaks dan menghasilkan permintaan database dengan bahasa yang sesuai dengan application logic. Setelah itu mentransmisikan perintah tersebut ke server. Server menerima dan memproses permintaan, lalu mentransmisikan hasilnya ke client. Lalu client mengatur respon yang diberikan oleh server sesuai dengan format untuk pengguna.
20
2.1.6.2 Arsitektur Three-Tier Client-Server
Gambar 2.12 Arsitektur Three Tier Client Server Aliran data yang berjalan arsitektur Three Tier Client Server adalah sebagai berikut: Pertama-tama client menerima permintaan dari pengguna, lalu mengirimkan permintaan tersebut kepada Application Server yang akan mengecek sintaks-sintaks dan menghasilkan permintaan database dengan bahasa yang sesuai dengan application logic. Setelah itu mentransmisikan perintah tersebut ke server. Server menerima dan memproses permintaan, lalu mentransmisikan hasilnya ke application server dan kemudian ke client. Lalu client mengatur respon yang diberikan oleh server sesuai dengan format untuk pengguna.
21
2.1.7 Database Lifecycle Untuk merancang aplikasi sistem database diperlukan tahapan terstruktur yang harus diikuti yang dinamakan dengan siklus hidup aplikasi database (database Lifecycle) atau yang disingkat dengan DBLC. Perlu diingat bahwa tahapan dalam DBLC tidak harus berurutan, namun juga melibatkan beberapa pengulangan ke tahapan sebelumnya melalui putaran balik (feedback loop).
22 Database Planning
System definition Requirements collection and analysis Database Design
Conceptual database design DBMS selection (optional)
Application design Logical database design
Physical database design
Prototyping (optional)
Implementation
Data conversion and loading
Testing
Operational Maintenance
Gambar 2.13 Database Lifecycle
23
2.1.7.1 Database Planning Menurut Connolly & Begg (2005, p285) Database Planning adalah kegiatan manajemen atau pengendalian yang memungkinkan tahapan dalam aplikasi database untuk direalisasikan seefisien dan seefektif mungkin. Sebuah langkah penting dalam database planning adalah secara jelas mendefinisikan pernyataan misi dari sistem database. Pernyataan misi ini mendefinisikan apa tujuan-tujuan dari sistem database. Sebuah pernyataan misi membantu untuk mengklarifikasikan maksud dari sistem database dan menyediakan sebuah jalan yang jelas untuk penggunaan yang efisien dan efektif dari sistem database yang dibutuhkan. Setelah pernyataan misi didefinisikan, baru selanjutnya adalah misi tujiuan. Setiap misi tujuan harus mengidentikasi setiap tugas yang sistem database akan dukung.
2.1.7.2 System Definition Menurut Connolly & Begg (2005, p286) System Definition mendeskripsikan ruang lingkup dan batasan dari aplikasi database dan sudut pandang pengguna yang utama.
2.1.7.3 Requirement Collection and Analysis Menurut Connolly & Begg (2005, p288) Requirement collection and Analysis adalah proses mengumpulkan dan menganalisis informasi mengenai bagian dari perusahaan yang akan didukung oleh aplikasi database, serta menggunakan informasi
24
tersebut untuk mengidentifikasi kebutuhan-kebutuhan pengguna untuk sistem yang baru. 2.1.7.4 Database Design Menurut Connolly & Begg (2005, p291) Database Design adalah proses membuat rancangan database yang akan mendukung kegiatan dan tujuan perusahaan.
2.1.7.4.1 Conceptual Database Design Conceptual database design adalah sebuah proses meng-konstruksi sebuah model dari data yang digunakan dalam organisasi, independen dari semua pertimbangan-pertimbangan fisikal.
2.1.7.4.2 Logical Database Design Logical database design adalah sebuah proses meng-konstruksi sebuah model dari data yang digunakan dalam organisasi berdasarlan model data yang spesifik, tetapi independen dari DBMS tertentu dan pertimbangan-pertimbangan fisikal yang lain.
2.1.7.4.3 Physical Database Design Physical database design adalah sebuah proses memproduksi deskripsi-deskripsi dari implementasi dari database pada tempat penyimpanan sekunder; physical database design menjelaskan mengenai basis relasi, organisasi file, dan indeks-indeks yang
25
digunakan untuk mencapai akses yang efisien ke data, dan kendala integritas yang berhubungan serta langkah langkah keamanan. 2.1.7.5 DBMS Selection Menurut Connolly & Begg (2005, p295) pada tahap ini melakukan pemilihan database yang tepat untuk mendukung aplikasi database. Tahap-tahap utama dalam pemilihan DBMS adalah: -
Mendefinisikan syarat-syarat dari yang dibutuhkan ada pada DBMS
-
Membuat catatan pendek mengenai dua atau tiga produk.
-
Mengevaluasi produk-produk.
-
Merekomendasikan pilihan dan membuat laporan.
2.1.7.6 Apllication Design Menurut Connolly & Begg (2005, p299) pada tahap ini melakukan perancangan antar muka pemakai dan program aplikasi yang menggunakan dan memproses database.
2.1.7.7 Prototyping Menurut Connolly & Begg (2005, p303) pada tahap ini membangun suatu model kerja dari sistem database. Tujuan dari prototyping adalah untuk mengizinkan pengguna untuk mengindentifikasi fitur-fitur sistem yang berjalan dengan baik, atau
26
tidak cukup, dan menyarankan perbaikan-perbaikan atau menyarankan fitur-fitur baru ke sistem database yang dibuat.
2.1.7.8 Implementation Menurut Connolly & Begg (2005, p304) Implementation adalah realisasi fisik dari database dan desain aplikasi. 2.1.7.9 Data Conversion and Loading Menurut Connolly & Begg (2005, p305) Data conversion dan loading adalah pemindahan data yang ada kedalam database yang baru dan mengkonversikan aplikasi yang ada agar dapat digunakan pada database yang baru. Tahap ini hanya dibutuhkan jika sistem database yang baru akan mengganti sistem yang lama.
2.1.7.10 Testing Menurut Connolly & Begg (2005, p305) Testing adalah suatu proses eksekusi program aplikasi dengan tujuan untuk menemukan kesalahan.
2.1.7.11 Operational Maintenance Menurut Connolly & Begg (2005, p306) Operational Maintenance adalah suatu proses pengawasan dan pemeliharaan sistem database setelan instalasi. Pada tahap ini sistem dipantau performanya, jikalau performa dari sistem turun dibawah level yang bisa diterima, maka tuning dan organisasi ulang dari database mungkin dibutuhkan.
27
2.1.8 Normalisasi Normalisasi adalah sebuah teknik untuk mengidentifikasi sebuah set relasi-relasi dengan properti-properti yang di inginkan sesuai dengan kebutuhan data organisasi. Set relasi-relasi yang cocok untuk sebuah organisasi adalah: ‐
Jumlah atribut minimal yang dibutuhkan untuk mendukung kebutuhan data dari perusahaan.
‐
Atribut-atribut yang memiliki ketergantungan fungsional ditemukan dalam realasi yang sama.
‐
Redudansi yang minimal dengan setiap atribut hanya direpresentasikan sekali dengan pengecualian yang merupakan atau bagian dari foreign key, yang penting untuk melakukan joining terhadap relasi yang berhubungan.
2.1.8.1 Proses Normalisasi Normalisasi biasanya dieksekusi tahap demi tahap,mulai dari 1NF, 2NF, 3NF, BCNF, 4NF, hingga 5NF.
28
2.1.8.1.1 First Normal Form (1NF)
Gambar 2.14 Client Rental sebelum di normalisasi (UNF)
Gambar 2.14a Client Rental pada 1NF
First Normal Form adalah tahapan pertama dalam normalisasi, First Normal Form mengubah UNF (Unormalized Form) yang merupakan tabel yang mengandung satu atau lebih grup pengulangan menjadi bentuk 1NF yaitu sebuah bentuk dimana sebuah relasi pada setiap perpotongan dari setiap baris dan kolom hanya mengandung satu dan hanya satu nilai. Terdapat 2 pendekatan untuk menghilangkan grup pengulangan dari tabel yang belum di normalisasikan atau UNF yaitu:
29
‐
Dengan memasukkan data yang sesuai pada baris yang kosong pada kolom yang mengandung data berulang. Pendekatan ini dikenal dengan mendatarkan tabel
‐
Dengan menaruh data yang berulang, bersama dengan kopi dari atribut kunci yang semula, ke relasi yang berbeda.
2.1.8.1.2 Second Normal Form (2NF)
Gambar 2.15 Client Rental pada 2NF
Second Normal Form adalah sebuah relasi yang berada dalam First Normal Form dan setiap key yang bukan merupakan atribut primary key bergantung penuh secara fungsional kepada primary key. Second Normal Form diaplikasikan pada relasi dengan composite key yaitu relasi dengan primary key terdiri dari dua atau lebih atribut. Sebuah relasi dengan satu atribut primary key secara otomatis sudah berada paling sedikit pada 2NF. Normalisasi dari relasi 1NF ke 2NF melibatkan penghapusan dari
30
ketergantungan parsial. Jika terdapat sebuah ketergantungan parsial , maka atribut yang dependen secara parsial dihilangkan dari relasi dengan menaruh nya pada relasi yang baru bersama dengan copy dari determinant nya.
2.1.8.1.3 Third Normal Form (3NF)
Gambar 2.16 Tabel Client Rental pada 3NF
Third Normal Form adalah sebuah relasi yang berada pada First Normal Form dan Second Normal Form dan dimana tidak terdapat atribut yang bukan merupakan primary key memiliki ketergantungan transitif pada primary key. Jika terdapat sebuah ketergantungan transitif, maka atribut yang memiliki ketergantungan transitif tersebut dihilangkan dari relasi dengan menaruh atribut-atribut pada relasi baru bersama dengan copy dari determinant nya.
31
2.1.8.1.4 Boyce-Codd Normal Form (BCNF) Sebuah relasi berada dalam bentuk BCNF, jika dan hanya jika setiap determinant merupakan sebuah candidate key.
2.1.8.1.5 Fourth Normal Form (4NF) Fourth normal form adalah sebuah relasi yang berada dalam bentuk Boyce-Codd normal form dan tidak mengandung ketergantungan multi-valued non-trivial. 2.1.8.1.6 Fifth Normal Form (5NF) Fifth normal form adalah sebuah relasi yang tidak mempunyai ketergantungan join.
2.2 Teori Khusus Teori khusus ini akan menjelaskan tentang teori-teori pendukung yang mendukung pembangunan database. Seperti analisis dan perancangan sistem, penjualan, pembelian, persediaan, DFD, web, php dan MySQL. 2.2.1 Analisa dan Perancangan Sistem 2.2.1.1 Analisa Sistem Menurut McLeod (2001, p190), analisis sistem adalah penelitian atas sistem yang telah ada yang bertujuan untuk merancang sistem baru atau diperbaharui.
32
2.2.1.2 Perancangan Sistem Menurut McLeod (2001, p238), perancangan sistem adalah penentuan proses dan data yang diperlukan oleh sistem baru, jika sistem itu berbasis komputer, perancangan dapat menyatakan spesifikasi peralatan yang akan digunakan.
2.2.2 Penjualan Menurut Mulyadi (2001, p202), kegiatan penjualan terdiri dari transaksi penjualan barang atau jasa baik secara kredit maupun tunai. Penjualan menurut cara bayarnya dapat dibedakan sebagai berikut: 1. Penjualan tunai, yaitu penjualan yang dilaksanakan oleh perusahaan dengan cara mewajibkan pembeli dengan melakukan pembayaran terlebih dahulu sebelum barang diserahkan kepada pembeli. 2. Penjualan kredit, yaitu penjualan yang dilakukan dengan cara memenuhi order dari pelanggan dengan mengirimkan barang atau menyerahkan jasa dan untuk jangka waktu tertentu perusahaan memiliki piutang kepada pelanggannya.
Jaringan prosedur yang membentuk sistem penjualan : 1. Prosedur order penjualan Fungsi penjualan menerima order dari pembeli dan menambahkan informasi penting pada surat order dari pembeli, kemudian membuat surat order pengiriman dan mengirimkannya kepada berbagai fungsi yang lain.
33
2. Prosedur pengiriman Prosedur pengiriman mengirimkan barang kepada pembeli sesuai dengan informasi yang tercantum dalam surat order pengiriman yang diterima dari fungsi pengiriman. 3. Prosedur penagihan Fungsi penagihan membuat faktur penjualan dan mengirimkannya kepada pembeli. 4. Prosedur pencatatan piutang Fungsi akutansi mencatat tembusan faktur penjualan ke dalam kartu piutang. 5. Prosedur distribusi penjualan Fungsi akutansi mendistribusikan data penjualan menurut informasi yang diperlukan oleh manajemen.
2.2.3 Persediaan Menurut Nasution (2003, p103), persediaan adalah sumber daya yang menganggur yang menunggu proses lebih lanjut. Proses lebih lanjut terserbut berupa kegiatan produksi pada sistem manufaktur, kegiatan pemasaran pada sistem distribusi ataupun kegiatan konsumsi pangan pada sistem rumah tangga.
34
Menurut Render & Heizer (2001, p314), ada 6 penggunaan persediaan, yaitu: 1. Untuk memberikan suatu stok barang-barang agar dapat memenuhi permintaan yang diantisipasi akan timbul dari customer. 2. Untuk memasangkan produksi dengan distribusi. 3. Untuk mengambil keuntungan dari potongan jumlah. 4. Untuk melakukan hedging terhadap inflasi dan perubahan harga. 5. Untuk menghindari dari kekurangan stok yang dapat terjadi karena cuaca, kekurangan pasokan, masalah mutu, atau pengiriman yang tidak tepat. 6. Untuk menjaga agar operasi dapat berlangsung dengan baik dengan menggunakan “barang-dalam-proses” dalam persediaannya. Menurut Horngren (2002, p759), persediaan terdiri dari beberapa jenis, antara lain : •
Persediaan bahan mentah Persediaan bahan-bahan mentah yang digunakan dalam proses manufaktur.
•
Persediaan barang dalam proses Persediaan barang-barang yang telah melalui beberapa tahap pada proses manufaktur, tapi masih perlu diolah lagi.
•
Persediaan barang jadi Persediaan barang-barang yang telah selesai diproses dan siap untuk dijual.
35
2.2.3.1 Stok Minimum Stok minimum adalah sebuah tingkat pada persediaan, ditetapkan dengan tujuan untuk mengontrol barang, dimana stok barang tersebut tidak boleh jatuh dibawah jumlah yang telah ditetapkan.
2.2.4 Pembelian Menurut Mulyadi (2001, p209), pembelian adalah suatu usaha yang digunakan dalam perusahaan untuk pengadaan barang yang diperlukan oleh perusahaan. Secara umum definisi pembelian adalah usaha pengadaan barang atau jasa dengan tujuan yang akan digunakan sendiri, untuk kepentingan proses produksi maupun untuk dijual kembali, baik dengan atau tanpa proses, dalam proses, dalam proses pembelian yang ada, agar kegiatan pembelian dapat dilakukan dengan benar.
2.2.5 Data Flow Diagram (DFD) Menurut Whitten, et.al (2004, hal 334), “Data Flow Diagram (DFD) is a tool that depicts the flow of data through a system and the work or processing performed by that system” , dapat diartikan sebagai DFD adalah sebuah alat yang menggambarkan aliran data sampai sebuah sistem selesai dan kerja atau proses dan dilakukan dalam sistem tersebut.
36
2.2.5.1 Empat Komponen DFD 1. External agent Menurut Whitten, et.al (2004, 363), “External agents define a person, an organization unit, another system or another organization that lies outside to scope of the project but that interacts with the system being studied”, dapat diartikan sebagai external agent mendefinisikan orang, sebuah unit organisasi, sistem lain atau organisasi lain yang berada di luar sistem projek tetapi yang mempengaruhi kerja sistem. 2. Process Menurut Whitten, et.al (2004, 347), proses adalah penyelenggaraan kerja atau jawaban, datangnya aliran data atau kondisinya. Menurut Whitten, et.al (2004, 347) ada beberapa bentuk proses diantaranya : a. Bentuk Gane dan Sarson b. Bentuk DeMarco/Yourdon c. Bentuk SSADM/IDEFO 3. Data stores Data stores adalah tempat penyimpanan data. Menurut Whitten, et.al (2004, hal 366) ada beberapa bentuk data stores diantaranya:
37
a.
Bentuk Gane dan Sarson
b. Bentuk DeMarco/Yourdon c. Bentuk SSADM/IDEFO 4. Data flow Data flow dapat diartikan sebagai merepresentasikan sebuah input ke dalam sebuah proses atau output dari data (atau informasi) dari sebuah proses.
2.2.5.2 Jenis-jenis DFD 1. Level 0 (Diagram konteks) Level ini terdapat sebuah proses yang berada di posisi pusat. 2. Level 1 (Diagram Nol) Level ini merupakan sebuah proses yang terdapat di level nol yang dipacahkan menjadi beberapa proses lainnya. 3. Level 2 (Diagram Rinci) Pada level ini merupakan diagram yang merincikan diagram dari level 1. o Tanda ‘*’ digunakan hanya jika proses tersebut tidak bisa dirincikan lagi. Contoh : 2.0*, artinya proses level rendah tidak bisa ririncikan lagi. o Penomoran yang dilakukan berdasarkan urutan proses.
38
2.2.6 Web Menurut Williams & Sawyer (2004, p6) tentang World Wide Web (www), biasa disebut dengan web, adalah sistem yang saling berhubungan pada komputer internet(disebut juga server) yang mana mendukung dokumen dengan format spesial dalam bentuk multimedia.
2.2.7 PHP dan MySQL Menurut Rainer, et.al (2003, p168), PHP adalah server-side scripting language dan didesain spesifik untuk web. Menurut Welling & Thomson (2001,p3), MySQL adalah relation database management system (RDBMS). Sebuah database memungkinkan untuk menyimpan sesuatu secara efisien, dapat dicari, disorting, dan diambil kembali datanya. MySQL server mengontrol segala akses terhadap data agar banyak user dapat bekerjan dalam satu waktu dan menyediakan akses yang lebih cepat dan meyakinkan bahwa hanya user tertentu yang dapat diberikan akses.