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 komponenkomponen 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 tabeltabel 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 entitasentitas 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.