BAB 2 TINJAUAN PUSTAKA 2.1 Teori Umum Pada bagian teori umum ini membahas tentang teori-teori yang berhubungan dengan basis data dalam pelaksanaan skripsi ini yang meliputi penjelasan tentang pengertian Data, Basis Data (Database), Sistem Basis Data (Database System), Sistem Manajemen Basis Data (Database Management System – DBMS), Entity Relationship Modeling, Siklus Hidup Aplikasi Basis Data (Database Application Life Cycle), perancangan basis data (Database Design), dan normalisasi. 2.1.1 Data Menurut (Jeffrey A. Hoffer(2005, p5)), Data merupakan representasi objek dan kejadian-kejadian penting yang disimpan dan memiliki arti yang penting bagi user. Sedangkan menurut (James A, O’Brien, (2003, p13)), Data merupakan fakta-fakta mentah, biasanya mengenai kejadian atau transaksi bisnis. Selain itu menurut (Indrajani, (2011, p2)), Data merupakan representasi fakta yang mewakili suatu objek seperti pelanggan, karyawan, mahasiswa, dan lain-lain, yang di simpan dalam bentuk angka, huruf, simbol, teks, gambar, bunyi, dan kombinasinya. 2.1.2 Basis Data (Database) Menurut (Connolly dan Begg, (2005, p15)), Database merupakan koleksidata yang berhubungansecara logis, dan deskripsidaridata tersebut, yang dirancang untukmemenuhi kebutuhan informasidarisuatu organisasi. Manfaat-manfaat dari penggunaan Basis Data (Database) adalah: 1. Menghilangkan redudancy data (pengulangan data) 2. Independensi data (kebebasan data) 3. Keterbatasan akses data 4. Multiple User (jumlah pengguna dapat lebih dari satu orang) 5. Meningkatkan keamanan 5 6 Sedangkan menurut Indrajani (2011, p2), basis data merupakan kumpulan terpadu dari elemen data yang saling berhubungan. Basis data mengonsolidasi banyak catatan yang sebelumnya di simpan dalam file terpisah. 2.1.3 Sistem Manajemen Basis Data (Database Management System – DBMS) Database Management System – DBMS, merupakan suatu sistem perangkat lunak yang memungkinkan pengguna untuk mendefinisikan, membuat, memelihara, dan mengontrol akses kepada database. (Connolly dan Begg, (2005, p16)) DBMS merupakan sebuah yang berinteraksi dengan pengguna program aplikasi dan database.DBMS menyediakan fasilitas-fasilitas seperti berikut: - Memungkinkan pengguna untuk mendefinisikan Database, biasanya melalui Data Definition Language (DDL). DDL memungkinkan pengguna untuk menentukan tipe data dan struktur data dan juga regangan data untuk di simpan di Database. - Memungkinkan pengguna untuk memasukkan, memperbarui, menghapus, dan menerima data dari database, biasanya melalui Data Manipulation Language (DML).Bagian dari DML yang berhubungan dengan perolehan data disebut Query Language (Bahasa Query). Query Language dapat dibilang sebagai bahasa tingkat tinggi yang digunakan untuk memenuhi beberapa perintah/permintaan data-data yang disimpan dalam Database. Query Language yang umum digunakan adalah Structured Query Language (SQL, atau biasa disebut “SeeQuel”), yang mana sekarang menjadi bahasa standart untuk DBMS relasional. - Memungkinkan kontrol akses ke Database. Sebagai contoh, menyediakan: Security System, yang mencegah pengguna yang tidak memiliki hak akses untuk mengakses database. Integrity System, yang memelihara konsistensi data yang tersimpan. Concurrency Control System, yang memungkinkan akses bersama ke Database. 7 Recovery Control System, yang memulihkan Database ke keadaan sebelumnya ketika perangkat lunak atau perangkat kerasnya mengalami kegagalan. User-Accsessible Catalog, yang mengandung deskripsi dari data yang berada di dalam Database. Komponen – komponen yang ada dalam DBMS (Connolly, 2005, p20): - Hardware, aplikasi DBMS pasti memerlukan suatu perangkat keras untuk dapat berjalan, seperti PC (Personal Computer), single mainframe, dan jaringan komputer yang bergantung pada kebutuhan organisasi dan DBMS yang digunakan. - Software, bagian ini meliputi perangkat lunak DBMS itu sendiri, program aplikasi, bersama dengan sistem operasi, termasuk perangkat lunak untuk jaringan jika DBMS digunakan melalui jaringan. - Data, merupakan sebuah komponen yang paling penting didalam suatu lingkungan DBMS. Data bertindak sebagai jembatan antara komponen mesin dan komponen manusia. Database mengandung semua dari operational data dan metadata. - Procedure, merupakan acuan pada instruksi dan peraturan yang mengatur perancangan dan penggunaan database bagi pengguna sistem dan staf yang menangani database tentang bagaimana menggunakan atau menjalankan suatu sistem. - People, manusia yang terlibat dengan sistem. Bagian ini terdiri dari: Data Administrator (DA), adalah seseorang yang bertanggung jawab untuk pengaturan sumber daya data meliputi perencanaan basis data, pengembangan dan pemeliharaan standarisasi, kebijakan dan prosedur, dan perancangan basis data konseptual/logikal. Database Administrator (DBA), adalah seseorang yang bertanggung jawab terhadap realisasi fisik dari basis data, meliputi perancangan basis data fisikal dan implementasi, pengaturan integritas dan keamanan, pemeliharaan dari sistem operasional dan memastikan pencapaian yang memuaskan dari aplikasi terhadap user. Database Designer, bagian ini terdiri dari dua bagian, yaitu: a. Logical database designer, bagian ini terlibat dalam pengindentifikasian data (dalam artian menangani dengan 8 entitas dan atribut), hubungan antar data, batasan data yang akan disimpan dalam database. b. Physical database designer, bagian ini yang menentukan bagaimana desain logikal basis data dapat direalisasikan secara fisik. Application developer, bagian ini bertanggung jawab untuk mengimplementasikan program aplikasi yang menyediakan fungsionalitas yang dibutuhkan oleh pengguna akhir setelah basis data diimplementasikan. End-user (pengguna akhir), bagian ini merupakan pihak klien dari basis data yang didesain dan diimplementasikan, dan dipelihara untuk melayani kebutuhan informasi mereka. End-user dapat dikelompokkan menjadi dua bagian, yaitu: a. Naive User, merupakan user yang mengakses basis data melalui program aplikasi spesial yang mencoba untuk membuat operasi sesederhana mungkin sehingga tidak perlu mengetahui segala sesuatu mengenai basis data atau DBMS. b. Sophisticated User, merupakan user yang lebih mengenal struktur basis data dan fasilitas yang ditawarkan oleh DBMS. Bahkan beberapa Sophisticated User bahkan dapat menulis program aplikasi untuk kepentingan mereka sendiri. 2.1.3.1 Keuntungan dan Kerugian DBMS DBMS memiliki keuntungan dan kerugian (Connoly, 2005, p26). Keuntungan DBMS: Kontrol redundansi data Pendekatan basis data berusaha menghapus redundansi dengan menggabungkan file sehingga data yang sama tidak dapat di simpan kembali. Pendekatan basis data tidak menghapus redundansi secara keseluruhan, tetapi mengontrol jumlah redundansi yang terdapat pada basis data. Konsistensi data Dengan menghapus atau mengontrol redundansi, maka akan mengurangi resiko data yang tidak konsisten akan muncul. Jika sebuah data di simpan hanya satu kali dan nilai baru tersedia untuk user. 9 Semakin banyak informasi yang di dapat dari data yang sama Dengan integrasi dari data operasional, maka memungkinkan perusahaan untuk menurunkan informasi tambahan dari data yang sama. Data yang berbagi File biasanya dimiliki oleh orang atau departemen yang menggunakannya. Meningkatkan integritas data Integritas data merujuk pada validitas dan konsistensi data yang di simpan.Integritas biasanya di gambarkan dalam bentuk constraint.Constraint adalah peraturan yang konsisten pada basis data yang tidak diijinkan untuk di langgar. Meningkatkan keamanan Keamanan basis data adalah perlindungan pada basis data dari user yang tidak memiliki hak akses. Tanpa pengukuran keamanan yang cocok, integrasi membuat data lebih rentan dari pada file berbasis sistem Menjalankan standar Integrasi memperbolehkan administrator untuk mengdefinisikan and menjalan standart yang di perlukan. Standar ini dapat meliputi standar departemen, organisasi, nasional, atau internasional untuk melakukan format data dalam menfasilitasi pertukaran data antar sistem, aturan penamaan,standar dokumentasi, prosedur update, dan aturan akses. Skala ekonomi Menggabungkan semua operasi organisasi menjadi satu database, dan membuat sebuah aplikasi yang bekerja pada satu sumber data, dapat menghasilkan pengurangan biaya. Keseimbangan persyaratan yang saling bertentangan Setiap pengguna aatau departemen mempunyai kebutuhan yang mungkin bertentangan dengan kebutuhan dari pengguna lainnya Peningkatan integritas data 10 Integritas database menunjuk kepada validasi dan konsistensi dari data yang tersimpan. Integritas biasanya di nyatakan dalam jangka waktu, yang merupakan konsistensi aturan bahwa basis tidak di perbolehkan untuk di langgar Peningkatan aksesbilitas dan reponsif data Sebagai hasil dari integrasi, data yang menyebrangi perbatasan departemen yang langsung di akses ke pengguna akhir.Ini menyediakan sistem dengan berpotensial meningkatkan fungsi yang ada. Produktif yang meningkat DBMS banyak menyediakan fungsi-fungsi standar yang biasanya programmer akan menuliskan aplikasi berbasiskan file Meningkatkan maintenance melalui independensi data Dalam sistem berbasis file, deskripsi data dan logika untuk mengakses data di bangun setiap program aplikasi, membuat aplikasi terpisah dari perubahan deskripsi data. Meningkatkan concurrency Dalam beberapa sistem berbasis file, jika 2 atau lebih pengguna di perbolehkan untuk mengakses file yang sama dan serentak, memungkinkan yang mengakses akan terganggu dengan yang lain, menghasilkan hilangnya informasi bahkan bisa kehilangan integritas. Peningkatan back up dan pelayanan pemulihan Beberapa sistem berbasis file menaruh tanggung jawab pada pengguna untuk menyediakan ukuran pengaman data dari kegagalan pada sistem komputer atau aplikasi program Kerugian DBMS : Kompleksitas Ketentuan dari fungsi bagus yang kita harapkan dari DBMS membuat DBMS bagian perangkat lunak yang sangat kompleks.Perancang basis data dan pengembang, data dan administrator, dan pengguna akhir harus mengerti fungsi yang bisa di ambil penuh kegunaannya. 11 Ukuran Kompleksitas dan luasnya kegunaan membuat DBMS bagian yang sangat besar dari sebuah perangkat lunak, menduduki banyaknya megabyte dari ruang disk dan membutuhkan subtansial ukuran jumlah memory untuk berjalan dengan efisien Biaya dari DBMS Biaya dari DBMS bervariasi secara signifikan, tergantung pada lingkungan dan fungsional yang tersedia.Sebagai contoh, pengguna tunggal DBMS untuk PC mungkin hanya berbiaya 1 juta rupiah.Namun, sebuah mainframe yang besar multi pengguna DBMS melayani ratusan pengguna menyebabkan biaya sangat mahal, mungkin 100 juta rupiah atau bahkan 1 miliar rupiah. Penambahan biaya perangkat keras Ketentuan penyimpanan disk pada DBMS dan basis data mungkin kebutuhan pembelian dari penambahan ruang simpan. Selanjutnya, untuk mencapai kebutuhan performance, mungkin membutuhkan pembelian mesin yang besar, bahkan mungkin mesin di dedikasikan untuk menjalankan DBMS Biaya Konversi Dalam berbagai situasi, biaya dari DBMS dan penambahan perangkat keras mungkin tidak signifikan dengan biaya konversi aplikasi yang ada untuk menjalan DBMS yang baru dan perangkat keras. Biaya ini termasuk juga dengan biaya pelatihan staf untuk menggunakan sistem baru tersebut, dan memungkinkan karyawan dari staf spesialis untuk membantu dengan konversi dan jalannya sistem Performa Sangat tipikal, fileberbasis sistem tertulis pada aplikasi yang spesifik, seperti faktur.Sebagai hasilnya, umumnya performa berjalan sangat baik.Namun, DBMS tertulis untuk menjadi lebih umum, untuk memenuhi banyaknya aplikasi daripada hanya satu. Dampak kegagalan yang lebih tinggi 12 Pemusatan dari sumber daya meningkatkan keretanan dari sistem. Sejak semua pengguna dan aplikasi bergantung dalam ketersediaan dari DMBS, komponen – komponen tertentu dapat menyebabkan operasi terhenti 2.1.4 Tipe Entitas Menurut (Connolly dan Begg, (2005, p343)) Tipe Entitas adalah Sekumpulan Object dengan sifat yang sama, yang mana diidentifikasi oleh perusahaan sebagai eksistensi yang independen. Sedangkan menurut (Indrajani, (2011, p 109)) tipe entitas adalah kumpulan objek-objek dengan sifat (property) yang sama, yang di identifikasi oleh enterprise mempunyai eksistensi yang independen. 2.1.5 Tipe Hubungan Menurut (Connolly dan Begg, (2005, p346)) Tipe hubungan adalah Seperangkat asosiasi yang berarti di antara tipe entitas. Sedangkan menurut (Indrajani, (2011, p110)) tipe hubungan adalah kumpulan keterhubungan yang mempunyai arti antara tipe entitas yang ada 2.1.6 Attribute Menurut (Connolly dan Begg, (2005, p350) Attribute adalah keterangan dari sebuah entitas atau sebuah tipe hubungan. Sedangkan menurut (Indrajani, (2011, p111) Attibute adalah sifatsifat(property) sebuah entitas atau tipe hubungan. 2.1.7 Kunci relasional Menurut (Connolly dan Begg, (2005, p78) Kunci Relational adalah di butuhkan untuk mengidentifikasi satu atau lebih atribut yang memiliki nilai unik untuk setiap datanya. Kunci relasi dibagi menjadi: Kunci Primer (Primary Key ) adalah suatu atribut atau kumpulan atribut yang tidak hanya mengidentifikasi suatu kejadian secara spesifik. Kunci Alternatif (Alternative Key) adalah kunci kandidat yang tidak terpilih menjadi kunci primer Kunci Asing (Foreign Key) adalah atribut atau kumpulan atribut yang melengkapi suatu relasi yang menunjuk ke induknya. 13 Kunci Kandidat (Candidate Key) adalah suatu atribut atau kumpulan atribut yang mengidentifikasikan secara unik suatu kejadian dari suatu entitas. Kunci Gabungan (Composite Key) adalah kunci yang disusun berdasarkan lebih dari satu atribut. Kunci Sederhana (Simple Key) adalah Kunci yang dibentuk oleh satu attribute. 2.1.8 Multiplicity Menurut (Connolly dan Begg, (2005, p256) Multiplicity adalah Jumlah Kemungkinan Kejadian dari suatu entity yang mungkin berhubungan dengan kejadian tunggal dari jenis entitas terkait. 2.1.9 Database System Development Life Cycle Menurut (Connolly dan Begg, (2005, p283)) Langkah-Langkah Database System Development Life Cycle : 1. Database Planning. 2. System Definition. 3. Requirement Collection and Analysis. 4. Database Design, yang didalamnya terdiri dari: a. Conceptual Database Design. b. Logical Database Design. c. Physical Database Design. 5. DBMS Selection. 6. Application Design 7. Prototyping 8. Implementation 9. Data Conversion and Loading 10. Testing 11. Operation and Maintenance 14 Gambar 2.1 Database System Development Lifecycle Penjelasan Langkah-Langkah Database System Development Lifecycle: 1. Database Planning : Perancanaan bagaimana tahap-tahap siklus hidup dapat direalisasikan paling efisien dan efektif. 2. System Definition : Menentukan ruang lingkup dan batas-batas dari system database, termasuk pandangan utama pengguna, penggunanya, dan area applikasi. 3. Requirement Collection and Analysis : Mengumpulkan dan menganalisis data-data untuk database baru 4. Database Design :Conceptual, Logical, Physical design dari basis data. 15 5. DBMS selection (optional) : pemilihan DBMS yang cocok untuk basis data system 6. Application Design : Merancang tampilan pengguna dan program applikasi yang di gunakan dan memproses basis data. 7. Prototyping (Optional) : Membangun model kerja dari system basis data.yang memungkinkan perancang atau pengguna untuk memvisualisasikan dan mengevaluasi bagaimana system akhir akan berfungsi. 8. Implementation : Membuat basis data definisi fisik dan applikasi program. 9. Data Conversion and Loading : Mengambil data dari system lama ke system baru, mengubah applikasi yang ada untuk dijalankan pada basis data baru 10. Testing : system basis data diuji untuk menemukan kesalahan dan divalidasi terhadap persyaratan yang ditentukan oleh pengguna 11. Operational Maintenance : Sistem basis data sepenuhnya dilaksanakan. System ini terus dipantau dan dipelihara. 2.1.10 Database Design Menurut (Connolly and Begg,(2005, p438) Database Design Methodology adalah sebuah pendekatan terstruktur yang menggunakan prosedur, teknik, alat, dan bantuan dokumentasi untuk mendukung dan memfasilitasi proses desain. Desain basis data di bagi menjadi: Conceptual Database Design Langkah langkah dalam pembuatan desain basis data konseptual(Connolly, 2005,p443): 1. Membuat Konseptual Data Model Tujuannya adalah untuk membuat konseptual data model dari kebutuhan sebuah perusahaan. 1.1 Identifikasi tipe entitas. Tujuannya adalah untuk mengidentifikasi tipe entitas yang akan digunakan. 1.2 Identifikasi tipe hubungan. 16 Tujuannya adalah untuk mengidentifikasi hubungan penting di antara tipe-tipe entitas. 1.3 Mengidentifikasi dan mengasosiasikan atribut dengan entitas atau jenis hubungan. Tujuannya adalah untuk mengasosiasikan atribut dengan jenis yang sesuai atau jenis hubungan. 1.4 Menentukan domain atribut. Tujuannya adalah untuk menentukan domain untuk atribut pada konseptual data model 1.5 Menentukan atribut dari kunci kandidat, kunci utama, dan kunci pengganti. Tujuannya adalah untuk mengidentifikasi kunci kandidat untuk setiap jenis entitas, dan jika terdapat lebih dari satu kunci kandidat maka, memilih salah satu kunci untuk menjadi kunci utama dan yang lainnya menjadi kunci pengganti. 1.6 Pertimbangkan penggunaan konsep pemodelan yang ditingkatkan(Langkah pilihan). Tujuannya adalah untuk mempertimbangkan penggunaan konsep pemodelan yang ditingkatkan seperti Specialization, Generalization, Aggregation, dan Composition. 1.7 Periksa model untuk redundansi. Tujuannya adalah untuk memeriksa keberadaan setiap redundansi dalam model. 1.8 Validasi model konseptual terhadap transaksi pengguna. Tujuannya adalah untuk memastikan bahwa model konseptual mendukung transaksi yang di perlukan pengguna. 1.9 Meninjau model data konseptual dengan pengguna. Tujuannya adalah mempertimbangkan untuk model memastikan untuk bahwa menjadi Representasi dari persyaratan data dari perusahaan. mereka “Benar” 17 Logical Database Design for relational model 2. Membuat dan Validasi Model Data Logis. Tujuannya adalah untuk menterjemahkan dari model data konseptual menjadi model data logis dan kemudian validasi model data untuk memeriksa bahwa secara structural benar dan dapat mendukung transaksi yang diperlukan. 2.1 Turunkan hubungan dengan model data logis. Untuk membuat hubungan dengan model data logis untuk merepresentasikan entitas, hubungan dan atribut yang sudah di identifikasi. 2.2 Validasi hubungan menggunakan normalisasi. Tujuannya adalah untuk validasi hubungan menggunakan Normalisasi. 2.3 Validasi hubungan dengan transaksi pengguna. Tujuannya adalah untuk memastikan bahwa hubungan pada model data logis mendukung transaksi yang digunakan. 2.4 Periksa kendala integritas. Tujuannya adalah Untuk memeriksabatasan integritasdiwakilidalam modeldata logis. 2.5 Meninjau model data logis dengan pengguna Tujuannya adalah untuk memastikan bahwa mereka menganggap model untuk menjadi representasi yang benar dari persyaratan data dari perusahaan. 2.6 Menggabungkan model data logis kedalam model global (langkah pilihan) Tujuannya adalah untuk menggabungkan model data logis menjadi sebuah model data global yang merepresentasikan seluruh pengguna dari sebuah basis data. Terdapat tiga langkah yang terdapat pada langkah ini yaitu: Menggabungkan model data logis menjadi model global. Validasi model data global logis. Meninjau model data global logis dengan user. 2.7 Periksa untuk perkembangan di masa depan 18 Tujuannya adalah untuk menentukan perkembangan yang signifikan di masa depan dan untuk menilai model data logis yang mengakomodasi perubahan ini. Physical database design for relational database 3. Menterjemahkan model data logis untuk target DBMS Tujuannya adalah untuk menghasilkan skema basis data relasional dari model data logis bahwa dapat diimplementasikan dalam target DBMS. Terdapat tiga langkah : 3.1 Relasi dasar desain Tujuannya adalah untuk menentukan bagaimana untuk merepresentasikan relasi dasar yang diidentifikasikan dalam model data logis. 3.2 Representasi desain data yang asal Tujuannya adalah untuk menentukan bagaimana untuk merepresentasikan data yang asal pada model data logis. 3.3 Desain kendala umum Tujuannya adalah untuk mendesain kendala umum untuk DBMS. 4. Mendesain data organisasi dan indeks Tujuannya adalah untuk menentukan data organisasi yang optimal untuk menyimpan relasi dasar dan indeks yang di butuhkan untuk mencapai kinerja yang dapat diterima, yaitu, cara dimana hubungan dan tupel akan ditampung pada penyimpanan sekunder. 4 Aktifitas yang terdapat pada langkah ke 4 ini adalah : 4.1 Menganalisa transaksi. Tujuannya adalah untuk memahami fungsi dari transaksi yang akan berjalan pada basis data dan untuk menganalisa transaksi yang penting. 4.2 Memilih data organisasi. Tujuannya adalah untuk menentukan data organisasiyang efisienuntuksetiap relasidasar. 4.3 Memilih indeks . 19 Tujuannya adalah menentukan jika menambahkan indeks dapat meningkatkan performa kinerja dari system. 4.4 Memperkirakan kebutuhan ruang disk. Tujuannya adalah untuk memperkirakan kebutuhan ruang disk yang dibutuhkan oleh basis data 5. Desain tampilan pengguna Tujuannya adalah untuk merancang tampilan pengguna yang telah diidentifikasi selama persyaratan pengumpulan(Requirements Collection) dan analisis tahap siklus hidup pengembangan system basis data. 6. Mekanisme keamanan desain Tujuannya adalah untuk merancang mekanisme keamanan untuk basis data yang ditentukan oleh pengguna selama persyaratan pengumpulan(Requirements Collection) dan analisis tahap siklus hidup pengembangan system basis data. 7. Mempertimbangkan pengenalan redundansi terkendali Tujuannya adalah untuk menentukan apakah pengenalan redundansi terkendali oleh aturan santai normalisasi akan meningkatkan kinerja sistem. Ada 7 aktifitas pada langkah ini ,yaitu: 7.1 Menggabungkan Hubungan One to One (1:1) . 7.2 Menggandakan atribut bukan kunci pada hubungan One to Many (1:*) untuk mengurangi penggabungan. 7.3 Menggandakan atribut kunci asing pada hubungan One to Many (1:*) untuk mengurangi penggabungan. 7.4 Menggandakan atribut pada hubungan Many to Many (*:*) untuk mengurangi penggabungan. 7.5 Memperkenalkan perulangan kelompok 7.6 Membuat table ekstrak. 7.7 Hubungan partisi. 8. Memantau sistem operasi Tujuannya adalah untuk memantau sistem operasi dan meningkatkan performa sistem dan untuk memperbaiki keputusan desain yang tidak pantas atau mencerminkan perubahan kebutuhan 20 2.1.11 Normalization Menurut (Connolly dan Begg, 2005, P388- 409) Normalisasi adalah sebuah teknik untuk menghasilkan kumpulan relasi dengan keterangan yang di inginkan, untuk kebutuhan data suatu perusahaan. Normalisasi bertujuan untuk mengurangi redudansi data menghilangkan anomaliBeberapa proses normalisasi dijelaskan sebagai berikut : 1. UNF ( Unormalized Form) Tabel yang berisi satu atau lebih repeating group. Tabel ini lah yang akan menjadi acuan untuk proses 1NF. 2. 1NF (First Normal Form) Suatu relasi yang setiap irisan baris dan kolomnya hanya berisi satu nilai. Dalam proses ini perulangan yang terjadi di dalam UNF dihilangkan. Selain itu semua data dalam tabel 1NF harus bersifat single value. 3. 2NF (Second Normal Form) Suatu relasi yang ada di dalam 1NF dimana setiap atribut yang bukan merupakan primary key bergantung secara penuh kepada primary key.Dalam proses ini dilakukan pemisahan sesuai sifat ketergantungan fungsional. 4. 3NF (Third Normal Form) Sebuah hubungan yang ada dalam 1NF dan 2NF yang atributnya bukan merupakan non primary key yang tergantung secara transitif pada primary key. 2.1.12 Eight Golden Rules Berikut ini adalah Eight Golden Rules dari Designing the User Interface oleh Shneiderman. (2010:88-89) Konsistensi, yang dimaksudkonsistensi adalah konsistensi untuk beberapa situasi. Dalam penggunaan menu, bantuan, tampilan yang harus disediakan secara konsisten pada setiap halaman. Shortcuts, digunakan untuk memudahkan pengguna dalam mengakses halaman tertentu. Menawarkan umpan balik yang informatif, setiap tindakan harus terdapat sistem umpan balik. Untuk tindakan yang sering dilakukan suatu respon dapat menjadi sederhana.. 21 Pilihan untuk mengakhiri atau menutup suatu halaman, adanya pilihan untuk keluar dari halaman tertentu. Penawaran penanganan error sederhana, suatu aksi yang ditawarkan oleh sistem untuk menangani penyelesaian error secara sederhana dan dapat dilakukan oleh pengguna. Konfirmasi terhadap sebuah aksi yang ingin dilakukan, hal ini dilakukan untuk memudahkan pengguna apabila terdapat kesalahan dalam melkukan aksi atau memasukkan input. Pengguna memiliki hak akses untuk melakukan aksi, pengguna menjadi inisiator dalam melakukan suatu aksi dibandingkan sebuah koresponden dalam aksi tersebut. Mengurangi ingatan jangka pendek, desain sistem harus dibuat sesederhana mungkin dan mudah dipahami oleh pengguna. 2.2 Teori Khusus Dalam bagian ini akan membahas tentang teori-teori yang digunakan dalam pembuatan program untuk skripsi ini, seperti definisi Persediaan, definisi Penjualan, Flowchart, Data Flow Diagram (DFD), Hypertext Preprocessor (PHP), XAMPP. 2.2.1 Persediaan (Stock) Menurut (N. Gregory Mankiw (2006, p19)), Persediaan (stock) adalah jumlah yang diukur pada titik waktu tertentu. Menurut (Dra. Farah Margaretha M.E (2006, p145)), Persediaan merupakan sejumlah bahan/barang yang disediakan oleh perusahaan, baik berupa barang jadi, bahan mentah, maupun barang dalam proses yang disediakan untuk menjaga kelancaran operasi perusahaan guna memenuhi permintaan konsumen setiap waktu. 2.2.2 Penjualan Menurut (Himayati (2008, p123)), Penjualan adalah suatu proses transaksi yang bertujuan untuk mendapatkan suatu keuntungan, dan merupakan suatu jantung dari suatu perusahaan. 2.2.3 FIFO (First In First Out) Menurut (Alam S. (2007, p16)), Metode FIFO menyatakan bahwa barang yang pertama kali dibeli dianggap sebagai barang yang pertama kali pula dijual. 22 2.2.4 LIFO (Last In First Out) Menurut (Alam S. (2007, p16)), Metode LIFO menyatakan bahwa harga pokok barang adalah sama dengan barang yang terakhir dibeli. 2.2.5 Average Menurut (Alam S. (2007, p17)), Metode Average menyatakan bahwa harga pokok barang dagang yang berbedabeda tanggal pembeliannya dirata-ratakan. 2.2.6 Flowchart Menurut (Marimin (2006, p107)), Flowchart digunakan untuk melihat proses secara detail. Flowchart dapat didefinisikan sebagai sebuah gambaran yang menjelaskan proses yang akan dilihat atau dikaji. Selain itu, flowchart biasanya digunakan untuk merencanakan tahapan suatu kegiatan. Pembuatan flowchart harus dimulai dan diakhiri dengan poin yang jelas. Tanda panah menunjukkan ke mana arah aliran atau proses selanjutnya. 2.2.7 Data Flow Diagram (DFD) Menurut (Marimin (2006, p110)), Data Flow Diagram (DFD) menggambarkan aliran data atau informasi dimana didalamnya terlihat keterkaitan di antara data-data yang ada. Terdapat banyak simbol-simbol yang digunakan dalam pembuatan DFD. Hal tersebut tergantung dengan konvensi yang disepakati. DFD merupakan salah satu alat analisis dan teknik permodelan terbaik untuk menggambarkan proses dan kebutuhan fungsional dari suatu sistem. DFD merupakan serangkaian diagram yang menggambarkan kegiatan-kegiatan yang ada dalam suatu sistem. 2.2.8 Fact Finding Technique (Teknik Pencarian Fakta) Menurut (Indrajani(2011, p92)), Teknik pencarian fakta adalah proses formal menggunakan teknik seperti wawancara dan daftar pertanyaan untuk mengumpulkan fakta tentang sistem, kebutuhan, dan pilihan. Setiap tahapan dalam siklus hidup basis data membutuhkan teknik pencarian fakta. 23 Terdapat beberapa teknik dalam Fact Finding Technique, yaitu: 1. Sampling Dokumen Merupakan proses mengumpulkan sampel dokumen, form, dan record yang representatif. Kelebihan: - Biaya murah - Informasi yang didapat akurat Kekurangan: - Dibutuhkan keterampilan tertentu 2. Penelitian Merupakan proses penelitian terhadap sumber informasi seperti aplikasi, jurnal komputer, buku petunjuk, dan internet yang dapat menyediakan informasi untuk mencari dan memecahkan masalah. Kelebihan: - Hemat waktu jika telah ada solusi - Bisa mendapatkan hasil riset terbaru Kekurangan: - Membutuhkan waktu yang lama - Membutuhkan akses ke sumber informasi yang sesuai dengan masalah 3. Observasi Merupakan proses pengamatan langsung terhadap objek atas masalah yang dihadapi. Observasi merupakan salah satu teknik pencarian data yang paling efektif untuk pemahaman suatu sistem. Kelebihan: - Dapat memeriksa apakah informasi yang didapat benar adanya - Data yang didapat akurat Kekurangan: - Orang yang diawasi biasanya merasa tidak nyaman - Membutuhkan skill pengamatan yang tinggi 4. Kuisioner Merupakan proses teknik pencarian fakta mengadakan survei melalui daftar pertanyaan. Kelebihan: informasi dengan 24 - Hemat biaya - Responden merasa lebih nyaman dalam menjawab / memberi informasi Kekurangan: - Data kurang akurat - Pengembalian kuisioner terkadang tidak tepat waktu, dan jumlah pengembalian kuisioner terkadang berkurang 5. Wawancara Merupakan proses teknik yang paling sering dipakai. Teknik ini dilakukan dengan cara memberikan pertanyaan-pertanyaan langsung kepada responden. Kelebihan: - Data lebih akurat - Dapat mengetahui kebenaran informasi yang didapat dari ekspresi responden pada saat memberikan informasi Kekurangan: - Memerlukan waktu yang cukup lama - Memerlukan biaya yang cukup mahal - Memerlukan skill wawancara yang tinggi 2.2.9 PHP (Hypertext Preprocessor) Menurut (Anhar(2010, p3)), PHP singkatan dari Hypertext Preprocessor yaitu bahasa pemrograman web server-side yang bersifat open source. PHP merupakan script yang terintegrasi dengan HTML dan berada pada server (server side HTML embedded scripting).PHP adalah script yang digunakan untuk membuat halaman website yang dinamis. Dinamis berarti halaman yang akan ditampilkan dibuat saat halaman itu diminta oleh client. Mekanisme ini menyebabkan informasi yang diterima client selalu yang terbaru/up to date.Semua scriptPHP dieksekusi pada server dimana script tersebut dijalankan. 25 2.2.10 MySQL Menurut (Anhar(2010,p45)), MySQL (My Structure Query Language) adalah suatu Database Management System (DBMS). MySQL berfungsi untuk mengolah database menggunakan bahasa SQL.MySQL bersifat open source sehingga kita bisa menggunakannya secara gratis. Pemrograman PHP juga sangat mendukung/support dengan database MySQL. 2.2.11 XAMPP Menurut (Wardana(2010,p8)), XAMPP adalah paket software yang didalamnya sudah terkandung webserverApache, databaseMySQL, dan PHP interpreter. Nama XAMPP diambil dari singkatan berikut: X :multiplatform, program ini dapat dijalankan di banyak sistem operasi. A :Apache, merupakan aplikasi webserver. M :MySQL, merupakan aplikasi database server. P :PHP, bahasa pemrograman web. P : Perl, bahasa pemrograman. 2.3 Hasil Penelitian atau Produk Sebelumnya 2.3.1. Sistem Informasi Pembelian, Persediaan, dan Penjualan untuk Apotek (Lusiana Citra Dewi. ComTech Vol 4 (1) 2013) Tujuan dalam penelitian ini adalah untuk mengurangi kesalahan pencatatan dan kesalahan penghitungan transanksi yang terjadi, memudahkan penghitungan persediaan barang yang ada di gudang, serta dapat menyajikanlaporan yang sesuai dengan syarat – syarat yang di tentukan.Apotek masih menggunakan sistem secara manual.Melalui sistem informasi ini, dapat mempermudahdalam memperoleh data mengenai apotek itu sendiri. Contohnya data sistem penjualan, mengetahui pendapatan yang di peroleh,dan lain-lain. 26 2.3.2. Analisa Perancangan Sistem Berbasis Web untuk Persediaan Barang pada PT. Dwijaya Selaras (Reni Sara Indrawati, Johny Hizkia. Jurnal Informatika Vol 3 (1) 2012) Sistem pendataan sangat di butuhkan oleh sebuah perusahaan terlebih la gi perusahaan yang di bidang kontraktor dan trading. Persediaan barang yang terlalu menumpuk dan data yang kurang pada waktu dalam pemenuhan barang ke proyek akan berpengaruh dalam hal biaya yang di keluarkan oleh perusahaan. Pengolahan data pada persediaan barang di gudang PT. Dwijaya Selaras yang saat ini masih berjalan masih manual dan menggunakan Microsoft Excel yang dapat di lihat satu komputer.Dengan kondisi seperti ini membuat PT. Dwijaya Selaras kesusahan karena informasi yang di berikan kurang akurat, lamanya waktu pencarian data, dan keamanan data tidak terjamin.Berdasarkan hal tersebut, maka PT. Dwijaya Sealaras dibuat sistem pendataan untuk persediaan barang, sistem ini bersifat realtime dan dapat langsung di akses jika ada barang keluar dan masuk dari gudang.Karena, berisfat realtime maka sistem dapat di awasi oleh pihak manajemen.Sehingga persediaan barang menjadi lebih terstruktur. 2.3.3. The Objectual Database Design for a Virtual Store (Popa Silviu, Avornicului Mihai-Constantin, Avornicului Conastantin. Annals of the University of Oradea Economic Science Vol.1 (2) : 1203-1213 (2010) Memahami fungsi sebuah perusahaan dan cara kerjanya bukan masalah yang mudah. Namun hal tersebut penting untuk memahami bisnis apa yang mereka lakukan, informasi apa yang ada, siapa rekan bisnis, dan lain-lain. Untuk hal tersebut bisa mempengaruhi perspektif masa depan perusahaan. Pada sistem ini administrator dapat memperkenalkan produk baru yang dapat di ubah melalui informasi produk yang ada, sehingga membuat karyawan lebih mudah untuk memasukkan produk baru.Penggunaan sistem ini bertujuan untuk mengurangi kesalahan manusia dan meningkatkan efisiensi.