BAB 2 TINJAUAN PUSTAKA Teori Umum 2.1 Pengertian Database 2.1.1 Basis Data Menurut Connolly & Begg (2010 : 65), Database adalah suatu kumpulan logika data yang saling berelasi dan deskripsi data yang didesain untuk kebutuhan informasi untuk sebuah organisasi. Dengan definisi di atas bisa dikatakan Database adalah suatu kumpulan data yang saling berelasi satu sama lain untuk memenuhi kebutuhan informasi perusahaan. 2.1.2 Sistem Basis Data Menurut Connolly & Begg (2010 : 81) sistem Database adalah sistem yang terdiri dari kumpulan dari program aplikasi yang berinteraksi dengan database bersama dengan database Management System (DBMS) dan database itu sendiri. 2.1.3 Database Management system (DBMS) Menurut Connolly & Begg (2010 : 66), Database management system adalah software (perangkat lunak) yang berinteraksi dengan aplikasi program dan database dari user. Pada umumnya, DBMS menyediakan fasilitas sebagai berikut: 7 8 a. Data Definition Language (DDL) Menurut Connolly & Begg (2010 : 66), DDL adalah Bahasa dalam DBMS yang digunakan oleh user / Database Administrator untuk mendeskripsikan dan menamai entitas, atribut, dan relasi yang diperlukan aplikasi. b. Data Manipulation Language (DML) Menurut Connolly & Begg (2010 : 66), DML adalah bahasa di dalam DBMS yang menyediakan kumpulan operasi untuk memanipulasi database. Operasi dalam data manipulation adalah terdiri dari: penambahan (insert), pembaruan (update), penghapusan (delete), dan pemilihan data (select). c. Pengendalian akses ke Database Menurut Connolly & Begg (2010 : 66), fasilitas pengendalian akses ke dalam database adalah sebagai berikut: - Sistem keamanan, mencegah pengguna yang tidak berhak mengakses database. - Sistem integritas, mempertahankan konsistensi dari data yang disimpan. - Sistem kendali pemulihan (recovery), untuk mengembalikan database ke keadaan sebelumnya yang lebih konsisten. - Catalog yang dapat diakses pengguna, berisi penjelasan dari data yang ada di dalam database. d. Mekanisme View Mekanisme view berfungsi sebagai memperbolehkan setiap user untuk melihat database mereka. – Connolly & Begg (2010 : 67) 9 2.1.4 Komponen Utama Database Management System (DBMS) Menurut Connolly & Begg (2010 : 68), komponen utama DBMS terbagi menjadi lima, yaitu: a. Perangkat Keras (hardware) DBMS dan aplikasi membutuhkan perangkat keras untuk dijalankan. Perangkat keras meliputi personal computer (PC), mainframe, jaringan komputer. b. Perangkat lunak (software) Komponen utama dari perangkat lunak adalah software DBMS itu sendiri seperti mysql dan program aplikasi bersamaan dengan sistem operasinya (windows, linux). c. Data Data merupakan komponen paling penting didalam DBMS. Data pada sebuah basis data harus terintegrasi dan dapat digunakan secara bersamaan. d. Prosedur (Procedure) Pada prosedur ini lebih mengacu kepada instruksi dan aturan dalam penggunaan basis data. Para pengguna sistem dan para staf memerlukan suatu dokumen yang sudah diprosedur tentang bagaimana menggunakan dan menjalankan sistem. Instruksi dapat berupa: - Log on DBMS - Menggunakan beberapa fasilitas DBMS atau program aplikasi - Memulai dan menghentikan DBMS - Membuat backup dari Database. e. Manusia (People) Manusia memegang peranan penting dalam menggunakan DBMS, antara lain: 10 - DA (Data Administrator) Adalah orang yang bertanggung jawab untuk mengatur sumber data termasuk Database planning, pengembangan (developement), dan pemeliharaan dari standarisasi, kebijakan dan desain logical atau physical dari database. - DBA (Database Administrator) Adalah orang yang bertanggung jawab kepada bentuk fisik dari Database, termasuk desain physical database dan implementasi, keamanan dan kontrol integritas, pemeliharaan dari sistem operasional dan memastikan kepuasan terhadap kinerja dari pengguna aplikasi. - Database Designer Terdapat dua Database Designer yaitu Logical Database Designer dan Physical Database Designer. - Application Developer Bertanggung jawab pada saat database diimplementasikan, ikut memastikan program aplikasi memenuhi kebutuhan fungsionalitas untuk pengguna aplikasi dan database. - End-User End-User adalah klien untuk database yang telah di desain, diimplementasi, dan dipelihara untuk melayani kebutuhan informasi. 2.1.5 Fungsi dari DBMS Menurut Connolly & Begg (2010 : 99), fungsi dari DBMS antara lain: a. Menyimpan, mendapatkan, dan memperbaharui data 11 Sebuah DBMS harus menyediakan kemampuan untuk menyimpan, mendapatkan, dan memperbarui data di dalam database. b. Katalog Akses Dari User Sebuah DBMS harus menyediakan katalog untuk mendeskripsikan data barang yang disimpan dan bisa di akses untuk user. c. Pendukung Transaksi Sebuah DBMS harus menyediakan mekanisme yang memastikan antara memperbarui data yang saling berhubungan untuk membuat transaksi atau tidak sama sekali. d. Layanan Kontrol Konkurensi Sebuah DBMS harus menyediakan mekanisme untuk memastikan database sudah di update dengan benar ketika beberapa user memperbarui data secara bersamaan. e. Layanan Pemulihan (recovery) Sebuah DBMS harus menyediakan mekanisme untuk memulihkan database dari segala kerusakan. f. Layanan Authorization Sebuah DBMS harus menyediakan mekanisme untuk memastikan kalau hanya user tertentu yang bisa akses ke dalam database. g. Mendukung Komunikasi Data Sebuah DBMS harus bisa mengintegrasikan dengan perangkat lunak komunikasi. h. Layanan Integritas 12 Sebuah DBMS harus memastikan data yang ada di dalam database dan perubahan yang terjadi pada data tersebut mengikuti aturan tertentu. i. Layanan untuk Mendukung Independensi Data Sebuah DBMS harus mempunyai fasilitas untuk mendukung program yang independen dari struktur database yang sebenarnya. j. Layanan Utilitas Sebuah DBMS harus menyediakan kumpulan layanan utilitas, karena ini membantu DBA secara efektif. 2.1.6 Kelebihan dan Kekurangan dari DBMS Menurut Connolly & Begg (2010 : 77-81) Kelebihan dan kekurangan dari DBMS yaitu : 1. Kelebihan dari DBMS : Pengendalian data redudansi Pendekatan database bisa menghilangkan redudansi dengan mengatur file sehingga data yang sama tidak disimpan. Pendekatan database tidak menghilangkan redudansi secara keseluruhan melainkan hanya mengatur banyaknya data redudansi dalam database. Konsistensi data Data yang disimpan hanya sekali dalam database, ketika diupdate maka nilai dari update tersebut harus terupdate untuk semua pengguna. Mendapatkan lebih banyak informasi dari jumlah data yang sama Dengan terintegrasinya data operasional, memungkinkan organisasi untuk memperoleh informasi tambahan melalui data tersebut. 13 Berbagi data Basis data suatu organisasi digunakan oleh pengguna yang memiliki otorisasi. Sejauh ini, penggunaan data dalam membangun sebuah aplikasi adalah data yang sudah disediakan, sedangkan untuk data yang akan ditambahkan belum tentu masuk kedalam DBMS melainkan hanya digunakan untuk mendefinisikan persyaratan yang ada. Aplikasi yang baru juga dapat digunakan untuk definisi dan manipulasi data. Meningkatkan integritas data Database integrity berhubungan dengan validitas dan konsistensi dari data yang sudah disimpan. Meningkatkan keamanan Keamanan database adalah perlindungan database dari pengguna yang tidak dikenal. Peningkatan standar mutu Database Administrator bisa mendefinisikan dan memperkuat standar yang sudah ada menjadi sebuah paten perusahaan. Perhitungan ekonomi Menghemat biaya dari penggunaan maintenance dan pembuatan dari filebased system. Menyeimbangkan kebutuhan yang bertentangan Database administrator dapat membuat keputusan untuk membuat desain dan operational database yang menyediakan sumber yang beguna bagi organisasi secara keseluruhan. 14 Meningkatkan akses data dan waktu respon Data-data yang ada menjadi terhubung sehingga ketika ingin melakukan pemeriksaan data oleh divisi satu dengan lainnya dapat dengan cepat diakses dan dilihat. Meningkatkan produktifitas DBMS sangat membantu programmer untuk fokus mengerjakan fungsifungsi yang spesifik yang dibutuhkan oleh pengguna karena DBMS menangani low-level implementation details. Peningkatan pemeliharaan melalui data independent DBMS memisahkan data yang dideskripsikan dengan aplikasinya, sehingga pembuatan aplikasi tidak terpengaruh terhadap pergantian pada data yang dideskripsikan. Meningkatkan concurrency Apabila ada dua atau banyak pengguna yang mengakses file yang sama secara bersamaan, maka akan ada kemungkinan file tersebut bisa diubah atau dihapus. Sehingga untuk mencegahnya DBMS mengatur akses database yang concurrent dan mencegah masalah itu tidak terjadi lagi. Peningkatan layanan backup dan recovery Apabila ada terjadi error, maka backup bisa dilakukan untuk merestore database ke settingan terakhir yg disimpan dalam backup tersebut. 2. Kekurangan dari DBMS : Kompleksitas Semakin bagus DBMS yang digunakan maka sistemnya akan semakin kompleks sehingga Database designers dan developers, data dan Database 15 administrator, dan pengguna harus mengetahui fungsi-fungsinya. Jika tidak maka bisa terjadi pengambilan keputusan yang salah dan merugikan perusahaan. Ukuran Kompleksitas dan fungsi-fungsi dari DBMS mempengaruhi seberapa besar data bisa ditampung dalam hard disk dan memorynya. Biaya dari DBMS Biaya dari DBMS tergantung dari kondisi dan fungsi-fungsi yang diinginkan oleh client. Penambahan biaya hardware Biaya ini terjadi ketika ingin menambahkan hardisk karena data yang semakin banyak dan untuk mengganti komputer dengan spesifikasi yang lebih baik. Biaya konversi data Biaya ini akan ada ketika mengganti ke DBMS yang baru, karena harus melatih lagi karyawan agar bisa menggunakan DBMS yang baru. Performa Apabila ada banyak yang mengakses ke dalam DBMS maka performa dari sistem akan menjadi lambat. Resiko kegagalan yang besar Karena sangat tergantung dengan DBMS apabila ada komponen yang rusak maka akan menghentikan semua sistem nya. 16 2.1.7 Database System Development Lifecycle Menurut Connoly & Begg (2010 : 313), Database System Development Lifecycle berhubungan secara langsung dengan siklus hidup sistem informasi. Berikut ini adalah gambaran tahap-tahap database system development lifecycle : Gambar 2.1 –Diagram proses Database System Development Lifecycle. Sumber : Connoly & Begg, Database Systems 5th, (2010, 314) 17 Perencanaan Database (Database Planning) Menurut Connolly dan Begg (2010 : 313) Perencanaan Database adalah aktivitas manajemen yang mengijinkan tahap-tahap dari Database system development lifecycle di realisasikan se-efisien dan se-efektif mungkin. Perencanaan Database harus diintegrasikan dengan keseluruhan sistem informasi dari organisasi. Terdapat tiga masalah utama yang terlibat dalam formulasi sebuah strategi sistem informasi, yaitu : Identifikasi dari rencana dan tujuan perusahaan dengan diikuti penentuan kebutuhan sistem informasi. Evaluasi dari sistem informasi yang sudah ada untuk menentukan kekuatan dan kelemahan yang sudah ada. Perkiraan dari peluang IT yang mungkin menghasilkan keuntungan kompetitif. Definisi Sistem (System definition) Menurut Connolly dan Begg (2010 : 316), definisi sistem adalah menggambarkan lingkup dan batasan dari aplikasi database dan pandangan pengguna (user view) yang utama. Userview menegaskan aplikasi database apa yang dibutuhkan untuk tugas tertentu seperti, untuk manajer atau supervisor atau bidang aplikasi perusahaan seperti, pemasaran, personalia atau pengendalian persediaan. Secara garis besar, di dalam definisi sistem harus terlebih dahulu ditentukan batasan dan kemungkinan pemakai/pengguna database. Sehingga informasi untuk satu pemakai dapat berbeda dengan pemakai lain tergantung kebutuhan. Analisis dan Pengumpulan Kebutuhan (Requirements Collection and Analysis) Menurut Connolly dan Begg (2010 : 316), analisis dan pengumpulan kebutuhan adalah proses dari analisis dan pengumpulan informasi tentang bagian organisasi yang akan dibuat aplikasi database dan menggunakan informasi ini untuk mengenali kebutuhan pemakai dari sistem baru. Informasi didapat dengan metode pecarian fakta (fact finding). 18 Fact Finding menurut Connolly dan Begg (2010 : 344) merupakan proses formal menggunakan teknik seperti wawancara dan kuisioner untuk mengumpulkan fakta tentang sistem, kebutuhan, dan keinginan. Lima metode fact finding yang dapat digunakan yaitu: Mempelajari dokumentasi (Documentation Examination), digunakan untuk mendeskripsikan masalah dan kebutuhan database, bagian perusahaan yang terpengaruh oleh masalah, dan sistem yang sedang berjalan dalam perusahaan. Wawancara (Interview), untuk mengetahui secara jelas masalah dalam perusahaan dengan bertanya langsung kepada pengguna sistem. Observasi (Observing), melakukan pengamatan secara langsung ke perusahaan yang bertujuan untuk memahami sistem yang berjalan dalam perusahaan. Penelitian (Research), mengumpulkan hasil penelitian dari internet, jurnal, buku yang berguna untuk memecahkan permasalahan. Kuisioner (Questionnaires), mengumpulkan informasi dari orang-orang dalam perusahaan dalam jumlah besar dan mempunyai respon yang berbeda-beda terhadap permasalahan. Perancangan Database (Database Design) Menurut Connolly dan Begg (2010 : 320) perancangan Database adalah proses membuat rancangan yang akan mendukung tujuan perusahaan dan tujuan dibuatnya sistem database yang dibutuhkan. Proses desain Database dibagi menjadi 3 tahap utama a. Conceptual Database Design Menurut Connolly dan Begg (2010 : 322) Perancangan Database Conceptual adalah proses membangun model dari data yang akan digunakan di dalam perusahaan, terlepas dari semua pertimbangan physical. Tahapan conceptual database design dimulai dengan pembuatan model data konseptual dari perusahaan, yang keseluruhannya terlepas dari detil-detil implementasi seperti 19 target DBMS, program aplikasi, bahasa pemrograman, platform perangkat keras, masalah kinerja, dan pertimbangan physical lainnya. b. Logical Database Design Menurut Connolly dan Begg (2010 : 323) perancangan Database Logical adalah proses membangun model data yang akan digunakan di dalam perusahaan berdasarkan model data spesifik, tetapi terlepas dari DBMS tertentu dan pertimbangan physical lainnya. Tahapan logical database design memetakan model konseptual ke dalam model logical, yang dipengaruhi oleh model data dan target database (contohnya relational database). Model data logikal adalah sumber dari informasi untuk tahapan perancangan fisik, menyediakan perancang database fisik hal-hal yang penting dari desain sebuah database yang efisien. c. Physical Database Design Menurut Connolly dan Begg (2010 : 324) perancangan Database fisikal adalah proses menghasilkan deskripsi dari implementasi database pada penyimpanan sekunder. Menjelaskan relasi dasar, organisasi file, dan index yang digunakan untuk mendapatkan akses data yang efisien, setiap integrity constraint yang terkait dan perhitungan keamanan. Tahapan physical database design mengijinkan perancang untuk membuat keputusan bagaimana database diimplementasi. Physical design akan terikan ke dalam sebuah DBMS yang spesifik. Akan ada feedback antara rancangan fisikal dan logikal, karena keputusan yang diambil selama perancangan fisikal untuk meningkatkan kinerja database dapat mempengaruhi model data logikal. Pemilihan DBMS (DBMS Selection) Menurut Connolly dan Begg (2010 : 325), DBMS selection adalah memilih DBMS yang sesuai untuk mendukung aplikasi Database. Pemilihan DBMS dilakukan antara tahapan Logical Database Design dan Conceptual Database Design. Tujuan dari pemilihan DBMS adalah untuk kecukupan sekarang dan kebutuhan masa mendatang 20 pada perusahaan, membuat keseimbangan biaya termasuk pembelian produk DBMS, piranti lunak/perangkat keras lainnya untuk mendukung aplikasi database, biaya yang berhubungan dengan perubahan dan pelatihan pegawai. Tahap-tahap utama untuk memilih DBMS : - Mendefinisikan terminologi studi referensi - Mendaftar dua atau tiga produk - Evaluasi produk - Rekomendasi pilihan dan laporan produk. Desain Aplikasi (Application Design) Menurut Connolly dan Begg (2010 : 329), perancangan aplikasi (application design) adalah merancang antarmuka pemakai (user interface) dan program aplikasi, yang akan memproses database. Perancangan database dan perancangan aplikasi adalah aktivitas yang dilakukan secara bersamaan pada database application lifecycle. Dalam kasus sebenarnya, tidak mungkin dapat menyelesaikan perancangan aplikasi sebelum perancangan database selesai. Dalam perancangan aplikasi harus memastikan semua pernyataan fungsional dari spesifikasi kebutuhan pemakai (user requirement spesification) yang menyangkut perancangan aplikasi program yang mengakses database dan merancang transaksi yaitu cara akses ke database dan perubahan terhadap isi database (retrieve, update dan kegiatan keduanya). Artinya bagaimana fungsi yang dibutuhkan bisa terpenuhi dan merancang antarmuka pemakai yang tepat. Antarmuka yang dirancang harus memberikan informasi yang dibutuhkan dengan cara menciptakan user-friendly. Prototyping Menurut Connolly dan Begg (2010 : 333), prototyping adalah membuat model kerja dari aplikasi basis data, yang memungkinkan perancang atau pemakai untuk 21 mengevaluasi hasil akhir sistem, baik dari segi tampilan maupun fungsi yang dimiliki sistem. Implementasi (Implementation) Menurut Connolly dan Begg (2010 : 333), implementasi (implementation) adalah mendefinisikan basis data secara eksternal, konseptual, dan internal. Implementasi merupakan realisasi dari database dan perancangan aplikasi. Implementasi database dicapai menggunakan Data Definition Language (DDL) dari DBMS yang dipilih atau Graphical User Interface (GUI). Pernyataan DDL digunakan untuk membuat struktur database dan file database kosong. Pandangan pengguna (user view) lainnya juga diimplementasikan dalam tahapan ini. Bagian dari aplikasi program adalah transaksi database yang diimplementasikan dengan menggunakan Data Manipulation Language (DML) dari sasaran DBMS. Data Conversion and Loading Menurut Connolly dan Begg (2010 : 334), data conversion and loading adalah mengambil data dari sistem yang lama untuk dipindahkan kedalam sistem yang baru. Tahapan ini dibutuhkan ketika sistem database baru menggantikan sistem yang lama. DBMS biasanya memiliki utilitas yang memanggil ulang file yang sudah ada kedalam database baru. Kegunaan ini memungkinkan pengembang untuk mengkonversi dan menggunakan aplikasi program lama untuk digunakan oleh sistem baru. Ketika conversion and loading dibutuhkan, prosesnya harus direncanakan untuk memastikan kelancaran transaksi dari keseluruhan operasi. Uji Coba (Testing) Menurut Connolly dan Begg (2010 : 334), testing adalah proses menjalankan program aplikasi untuk menemukan kesalahan-kesalahan. Sebelum digunakan, aplikasi database yang baru dikembangkan harus diuji secara menyeluruh. Untuk mencapainya harus hati-hati dalam menggunakan perencanaan strategi uji dan menggunakan data asli 22 untuk semua proses pengujian. Di dalam definisi testing ini tidak menggunakan pandangan yang biasa, testing adalah proses demonstrasi tanpa kesalahan. Dalam kenyataannya testing tidak luput dari kesalahan. Jika testing menunjukkan keberhasilan, maka pengujian akan menemukan kesalahan pada program aplikasi dan mungkin struktur database-nya. Pemeliharaan Operasional (Operational Maintenance) Menurut Connolly dan Begg (2010 : 335) operational maintenance adalah proses memantau dan memelihara sistem setelah di-install. Pada tahapan sebelumnya, database benar-benar diuji dan diimplementasikan. Sekarang sistem beralih pada tahapan pemeliharaan. Yang termasuk aktivitas dari tahapan pemeliharaan adalah sebagai berikut : Memantau kinerja dari sistem. Jika kinerjanya menurun di bawah level yang dapat diterima, mungkin basis data perlu diperbaiki. Memelihara dan upgrade aplikasi database-nya (jika diperlukan). 2.1.8 Keamanan dan Integritas Database Keamanan database menurut Connolly (2010 : 568) adalah suatu mekanisme yang melindungi database terhadap serangan/ancaman yang disengaja atau tidak disengaja. Data merupakan sumber daya bernilai yang harus di atur dan diawasi secara ketat bersama dengan sumber daya perusahaan. Sebagian atau keseluruhan data perusahaan mempunyai kepentingan strategis dan karena itu harus dijaga agar tetap aman dan rahasia.Pertimbangan keamanan tidak hanya diaplikasikan pada data yang ada dalam database. Pelanggaran terhadap keamanan dapat mempengaruhi bagian lain dari sistem, yang akan memberi timbal balik terhadap database. Keamanan database terkait dengan keadaan berikut : - Pencurian dan penipuan (theft and fraud) - Kehilangan kerahasiaan (loss of confidentiality) 23 - Kehilangan keleluasaan pribadi (loss of privacy) - Kehilangan integritas (loss of integrity) - Kehilangan ketersediaan (loss of availability) 2.1.9 Normalisasi Menurut Connolly dan Begg (2010 : 416) Normalisasi adalah teknik untuk menghasilkan kumpulan relasi dengan properti yang diinginkan, sesuai keinginan data dari suatu perusahaan.Tujuan normalisasi adalah untuk mengidentifikasi himpunan relasi yang cocok dan dapat mendukung kebutuhan data perusahaan. Karateristik data yang cocok untuk perusahaan adalah sebagai berikut : Jumlah minimal dari atribut yang dibutuhkan untuk mendukung kebutuhan data dari perusahaan. Atribut dengan logical relationship yang dekat ditemukan dalam relasi yang sama. Redudansi yang minimal dengan setiap atribut direpresentasikan hanya sekali. Keuntungan menggunakan database yang memiliki himpunan relasi yang cocok akan membuat pengguna lebih mudah mengakses database, memelihara data, dan hanya membutuhkan sedikit ruang didalam penyimpanan komputer. Secara umum Normalisasi dibagi menjadi tiga tingkatan, yaitu bentuk normal pertama (1NF) berdasarkan penghapusan repeating group, bentuk normal kedua (2NF) berdasarkan pada ketergantungan parsial (partial depedencies), dan bentuk normal ketiga (3NF) yang berdasarkan pada penghapusan ketergantungan transistif (transitive depedencies). Bentuk Normal pertama (The First Normal Form/ 1NF) Menurut Connolly dan Begg (2010 : 430), Unomalized form (UNF) adalah sebuah tabel yang mengandung lebih dari satu bagian yang berulang (repeating group). 24 Bentuk normal pertama adalah suatu hubungan di mana irisan (intersection) dari setiap baris dan kolom hanya mengandung satu nilai. Relasi antar atribut kunci dan non kunci seharusnya adalah 1 to 1 atau 1 to many. Untuk mengubah tabel UNF ke dalam bentuk normal pertama (1NF) harus mengidentifikasi dan menghilangkan bagian yang berulang (repeating group) pada tabel. Sebuah repeating group adalah sebuah atribut atau kumpulan atribut pada suatu tabel yang terdapat lebih dari satu nilai (multiple) untuk sebuah occurrence tunggal dari kunci (key) atributnya yang ditunjuk dalam tabel. Ada dua pendekatan umum untuk menghilangkan repeating group pada tabel UNF, antara lain : - Pendekatan pertama, dengan menghilangkan repeating group dengan memasukkan data yang berlebihan ke dalam kolom dan baris kosong. Sehingga hasil dari tabel nantinya hanya mengandung nilai atomic (tunggal). - Pendekatan kedua, menghilangkan repeating group dengan menempatkan data yang berlebihan, selanjutnya dengan meng-copy atribut kuncinya yang asli dalam sebuah relasi yang dipisahkan. Kedua pendekatan ini benar. Tetapi, pada pendekatan kedua, awalnya akan menghasilkan relasi yang paling sedikit pada 1NF dengan mengurangi redundansi. Jika menggunakan pedekatan pertama, relasi dari 1NF adalah buruk selanjutnya, selama langkah normalisasi berikutnya akan menghasilkan relasi yang sama yang dihasilkan oleh pendekatan kedua. Akan tetapi hasil dari normalisasi bentuk pertama masih bisa menyebabkan update anomalies, sehingga diperlukan normalisasi ketahapan selanjutnya yang dinamakan bentuk normal kedua (2NF). Bentuk Normal kedua (The Second Normal Form/ 2NF) Menurut Connolly dan Begg (2010 : 434), bentuk normal kedua adalah berdasarkan konsep ketergantungan fungsional penuh (full functional dependency). Full functional dependency dinyatakan dengan jika A dan B adalah atribut dari suatu relasi, B adalah fungsional ketergantungan penuh (fully functional dependency) pada A, tetapi bukan merupakan himpunan bagian dari A. Jelasnya bentuk normal kedua adalah suatu 25 relasi di dalam bentuk normal pertama dan setiap atribut yang bukan primary key (nonprimary key) adalah secara fungsional bergantung pada primary key. Proses normalisasi dari relasi 1NF ke 2NF melibatkan penghilangan dari bagian yang memiliki ketergantungan. Bentuk Normal ketiga (The Third Normal Form/ 3NF) Menurut Connolly dan Begg (2010 : 435), bentuk normal ketiga adalah berdasarkan pada konsep peralihan ketergantungan (transistive dependency). Transitive dependency adalah sebuah kondisi dimana A, B dan C adalah atribut dari sebuah relasi bahwa jika A B dan B C, maka C adalah secara transitif bergantung pada A melewati B (menyatakan bahwa A tidak secara fungsional tergantung pada B atau C). Pada bentuk normal ketiga, sebuah relasi pada bentuk normal pertama dan kedua dan di mana tidak ada atribut non-primary key secara transitif bergantung (transitively dependent) pada primary key. Proses normalisasi dari relasi 2NF ke 3NF melibatkan penghilangan dari ketergantungan transitif. Jika sebuah ketergantungan transitif muncul, maka dihilangkan ketergantungan transitif antara atributnya dengan menempatkan atribut tersebut ke dalam relasi baru, selanjutnya dengan sebuah salinan dari determinannya. 2.1.10 Entity-Relationship Modelling Menurut Connolly dan Begg (2010 : 371), Entity-Relationship Modelling merupakan pendekatan top-down untuk desain basis data yang dimulai dengan mengidentifikasi data penting yang disebut entitas dan relasi antara data yang harus direpresentasikan dalam model. Kemudian menambahkan data yang lebih rinci seperti informasi yang ingin digunakan mengenai entitas, relasi, dan atribut. 26 Gambar 2.2 – Diagram Entity Relationship Modelling Entity types Menurut Connolly dan Begg (2010 : 372), entitas adalah sekumpulan objek dengan property (sifat) yang sama, yang diidentifikasikan oleh organisasi yang keberadaannya bebas (independent existence) dan keberadaannya dapat berupa fisik maupun abstrak. Sedangkan entity concurrence adalah sebuah objek dari satu tipe entitas yang dapat diidentifikasi secara unik. Nama Entitas Staff Cabang Gambar 2.3 – Representasi Diagram Entity Types 27 Strong dan Weak Entity Menurut Connolly dan Begg (2010 : 383), tipe entitas dapat diklasifikasikan menjadi : 1. Tipe entitas kuat, yaitu tipe entitas yang keberadaannya tidak bergantung pada tipe entitas lain. 2. Tipe entitas lemah, yaitu tipe entitas yang keberadaannya bergantung pada tipe entitas lain. Entitas lemah Entitas kuat Klien - NoKlien - Nama - Alamat Kesukaan Menyatakan - JenisKesukaan - Sewa maksimum Gambar 2.4 – Representasi Diagram Tipe Entitas Kuat dan Tipe Entitas Lemah Relationship types Menurut Connolly dan Begg (2010 : 374), Relationship types adalah sekumpulan entitas yang berhubungan dan mempunyai arti (meaningful associations) antara tipe entitas yang ada. Relationship occurrence merupakan sebuah keterhubungan yang diidentifikasikan secara unik yang meliputi suatu kejadian dari setiap entitas yang ada. 28 Relationship Name Staff Cabang Mempunyai Cabang mempunyai staff Gambar 2.5 – Representasi Diagram relationsip types Degree of relationship yaitu jumlah tipe entitas yang ada dalam suatu relasi. Degree of relationship terdiri dari: 1. Binary Relationship Keterhubungan antara dua tipe entitas Gambar 2.6 – Binary Relationship 2. Ternary Relationship Keterhubungan antara tiga tipe entitas 29 Gambar 2.7 – Ternary Relationship 3. Quarternary Relationship Keterhubungan antara empat tipe entitas Gambar 2.8 – Quartenary Relationship Recursive Relationship adalah keterhubungan antara satu tipe entitas, dimana tipe entitas yang sama ikut serta lebih dari satu kali dengan peran yang berbeda. 30 Gambar 2.9 – Recursive Relantionship Attributes Menurut Connolly dan Begg (2010 : 379), atribut adalah sebuah sifat dari entitas atau relasi. Gambar 2.10 – Entitas dengan Atribut Attribut domain adalah himpunan nilai yang diperbolehkan untuk satu atau lebih atribut. Atribut dapat diklasifikasikan menjadi lima jenis, yaitu: 1. Simple attributes adalah sebuah atribut yang terdiri dari komponen tunggal yang mempunyai keberadaan bebas dan tidak dapat dibagi menjadi bagian yang lebih kecil lagi. Dikenal juga dengan nama atomic attributes. 31 2. Composite attributes adalah sebuah atribut yang terdiri dari beberapa komponen, dimana masing-masing komponen mempunyai keberadaan yang bebas. 3. Single-valued attributes adalah atribut yang memiliki nilai tunggal untuk setiap kejadian dari tipe entitas. 4. Multi-valued attributes adalah atribut yang memiliki beberapa nilai untuk setiap kejadian dari tiap tipe entitas. 5. Derive attributes adalah atribut yang memiliki nilai yang dihasilkan dari satu atau sekelompok atribut yang berhubungan dan tidak harus berasal dari satu entitas. Keys Menurut Connolly dan Begg (2010 : 381), key adalah sebuah field yang digunakan untuk mengidentifikasi satu atribut atau lebih yang secara unik mengidentifikasi setiap record. Candidate key adalah kunci yang secara unik mengenali setiap kejadian didalam tipe entitas. Sebuah candidate key tidak boleh null. Sebuah entitas boleh memiliki lebih dari satu candidate key. Primary key adalah candidate key yang terpilih untuk mengidentifikasikan secara unik sebuah kejadian dari setiap entitas. Biasanya terdapat lebih dari satu candidate key yang harus dipilih untuk menjadi primary key. Pemilihan primary key didasarkan pada panjang atribut, jumlah minimal atribut yang dibutuhkan, dan memenuhi syarat yang unik. Alternate key adalah candidate key yang tidak dipilih sebagai primary key. Composite key yaitu candidate key yang terdiri dari dua atau lebih atribut. Pada kondisi tertentu, suatu atribut tidak dapat digunakan untuk mengidentifikasi baris secara unik dan membutuhkan kolom lain untuk digunakan sebagai primary key. Foreign key adalah sebuah primary key pada sebuah entitas yang digunakan pada entitas lain untuk mengidentifikasi sebuah relationship. 32 Structural Constraint Menurut Connolly dan Begg (2010 : 385), batasan-batasan yang menggambarkan pembatasan pada relationship seperti yang ada pada dunia nyata harus diterapkan pada tipe entitas yang ikut serta dalam sebuah relationship. Tipe utama dari batasan hubungan didalam suatu relationship disebut multiplicity. Multiplicity adalah jumlah kejadian yang mungkin terjadi pada entitas yang terhubung ke satu kejadian dari entitas lain dari suatu relationship. Derajat yang biasa digunakan dalam suatu relationship adalah binary relationship yang terdiri atas: 1. Hubungan one to one (1 : 1) Setiap relationship menggambarkan hubungan antara sebuah entity occurrence pada entitas yang satu dengan entity occurrence pada entitas lainnya yang ikut serta dalam relationship tersebut. Hubungan one to one (1 : 1) dapat terjadi bila setiap entitas pada himpunan entitas A berhubungan paling banyak satu entitas pada himpunan entitas B, dan sebaliknya setiap entitas pada himpunan entitas B berhubungan paling banyak satu entitas dengan satu entitas pada himpunan entitas A. 2. Hubungan one to many (1 : *) Setiap relationship menggambarkan hubungan antara sebuah entity occurrence pada entitas yang satu dengan satu atau lebih entity occurrence pada entitas lainnya yang ikut serta dalam relationship tersebut. Berarti setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B. Namun, setiap entitas pada himpunan entitas B hanya dapat berhubungan dengan paling banyak satu entitas pada himpunan entitas A. 3. Hubungan many to many (* : *) Setiap relationship menggambarkan hubungan antara satu atau lebih entity occurrence pada entitas lainnya yang ikut serta dalam relationship tersebut. 33 Berarti setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B. Dan sebaliknya, setiap entitas pada himpunan entitas B hanya dapat berhubungan dengan banyak entitas pada himpunan entitas A. Integrity Constraint Menurut Connolly dan Begg (2010 : 153-155), Integrity Constraint adalah constraint yang memaksa untuk melindungi database supaya tidak menjadi tidak lengkap, tidak akurat, dan tidak konsisten. Ada beberapa pertimbangan dalam merepresentasikan integrity constraint, yaitu: 1. Required data: Memastikan atribut-atribut tertentu yang tidak diperbolehkan bernilai null.. 2. Entity Integrity: Memastikan primary key suatu entitas tidak bernilai null.. 3. Attribute domain constraint: menentukan domain (nilai yang diperbolehkan) untuk tiap-tiap atribut. 4. General Constraint: Batasan yang berasal dari persyaratan-persyaratan bisnis perusahaan. 5. Referential Integrity: Memastikan nilai yang tersimpan dalam atribut foreign key, menunjuk row tertentu pada parent entity-nya. 2.2 Teori Khusus 2.2.1 Teori Penjualan Dalam jurnal “Analisis dan Perancangan Sistem Informasi Persediaan, Pembelian, dan Penjualan Pada Toko Sinar Jaya” oleh Wawan Saputra, penjualan adalah suatu aktivitas perusahaan yang utama dalam memperoleh pendapatan baik untuk perusahaan besar maupun perusahaan kecil. 34 2.2.2 Teori Persediaan Dalam jurnal “Pengembangan Aplikasi Sistem Basis Data Penjualan, Pembelian, dan Persediaan: Studi Kasus Pada PT. Speed Game” oleh Honni; Ryan Ferdy Marcelino; dan Yohanes Radjali, sistem persediaan bertujuan untuk mencatat mutasi tiap jenis persediaan yang ada di dalam gudang. Dalam jurnal “Inventory: The Necessary Evil?”, persediaan adalah bagian penting dari manajemen, dan sangat dibutuhkan juga. Melalui sistem supply chain, dan akhirnya diletakkan di gudang dan rak-rak di toko. Menurut Brigham dan Houston (2006 : 158-159), persediaan, dapat diklasifikasikan pasokan, bahan baku, barang dalam proses, dan barang jadi, adalah bagian yang penting dari hampir seluruh operasi bisnis. Seperti halnya dengan piutang, tingkat persediaan akan sangat tergantung pada penjualan. Akan tetapi, berbeda dengan piutang yang bertambah setelah penjualan terjadi, persediaan harus dibeli sebelum penjualan terjadi. Ini adalah perbedaan yang sangat penting, dan perlunya peramalan penjualan sebelum menentukan tingkat persediaan sasaran menjadikan manajemen persediaan sebagai aktivitas yang sulit untk dilakukan. Selain itu, karena kesalahan-kesalahan dalam menentukan tingkat persediaan dapat dengan cepat menyebabkan kehilangan penjualan maupun biaya penyimpanan yang berlebihan, manajemen persediaan memiliki arti penting yang sama dengan tingkat kesulitan. 2.2.3 Sistem Pengendalian Persediaan Menurut Brigham dan Houston (2006 : 164-165), manajemen persediaan membutuhkan dibentuknya suatu sistem pengendalian persediaan (inventory control system). Sistem pengendalian persediaan dapat berbentuk sangat sederhana sampai luar biasa kompleks, tergantung ukuran perusahaan dan sifat persediaannya. 35 2.2.4 Data Flow Diagram (DFD) Menurut Whitten & Jeffrey (2007 : 317), DFD adalah alat yang menggambarkan aliran data yang berjalan di dalam sistem dan pemrosesan data dari sistem tersebut. Simbol DFD Empat simbol dasar pada DFD adalah persegi, lingkaran, tanda panah, dan persegi yang salah satu ujungnya terbuka (terbuka di sebelah kanan). Gambar 2.11 – Simbol External Agent pada DFD Simbol persegi digunakan untuk menggambarkan External Agent. Gambar 2.12 – Simbol Proses pada DFD Simbol lingkaran menggambarkan proses dari bentuk yang digunakan oleh DeMarco/Yourdon. . 36 Gambar 2.13 – Simbol Data Flow pada DFD Simbol tanda panah menggambarkan aliran data atau input/output, menuju dan dari proses. Gambar 2.14 – Simbol Data Store pada DFD Simbol persegi panjang yang salah satu ujungnya terbuka menggambarkan Data Store. Data Store menggambarkan satu entitas pada data model. 2.2.5 State Transition Diagram (STD) Menurut Whitten & Jeffrey (2007 : 635) STD digunakan untuk menggambarkan urutan dan variasi dari layar yang dapat terjadi ketika pengguna berperan sebagai pengendali sistem. 2.2.6 Delapan Aturan Emas Perancangan Antarmuka Menurut Shneiderman & Plaisant (2010 : 88-89) ada delapan prinsip yang disebut aturan emas yang dapat diterapkan dalam sistem interaktif, 8 aturan emas ini adalah : 1. Berusaha untuk Konsisten Aturan ini adalah yang paling sering dilanggar, tapi nantinya bisa rumit karena ada banyak bentuk konsistensi. Konsisten urutan tindakan harus diperlukan dalam situasi yang sama, istilah yang sama harus digunakan dalam 37 petunjuk, menu, dan help screen, dankonsisten warna, tata letak, kapitalisasi, font, tampilan, dan lain-lain. 2. Memenuhi Penggunaan yang Universal Mengetahui kebutuhan dari pengguna yang berbeda, dari pemula sampai pengguna ahli. Misalnya menambahkan penjelasan bagi yang masih pemula dalam mencoba antar mukanya, dan untuk yang pengguna ahli, diberi tombol shortcut untuk mempercepat tugasnya. 3. Memberikan Umpan Balik yang Informatif Untuk setiap aksi yang dilakukan oleh pengguna, beberapa di antaranya harus mempunyai sistem feedback. Untuk aksi yang sering dan sederhana, maka respon yang diberikan juga sederhana, tetapi jika aksi yang jarang dan besar maka respon juga harus lebih banyak dan rinci. 4. Merancang Dialog yang Menghasilkan Keadaaan Akhir Urutan aksi harus dibagi menjadi awal, tengah, dan akhir. Dengan adanya umpan balik, pengguna dapat merasa lebih merasa aman dalam melakukan sebuah tindakan dengan memberikan gambaran hasil akhir dari suatu pilihan, serta pemberian banyak pilihan kepada pengguna sehingga bisa ikut serta dalam mempengaruhi hasil akhir. Contoh, sebuah situs web e-commerce memindahkan pengguna dari pemilihan produk ke kasir, berakhir dengan sebuah halaman konfirmasi yang jelas untuk melengkapi transaksi. 5. Mencegah Kesalahan Suatu sistem harus dirancang agar kesalahan yang dibuat pengguna dapat ditekan seminimal mungkin, dan pesan kesalahan yang dimunculkan harus dapat dimengerti oleh pengguna awam. Jika pengguna membuat kesalahan, antarmuka harus mendeteksi kesalahan dan menawarkan instruksi yang sederhana, membangun, dan spesifik untuk mengatasi kesalahan tersebut. Contoh, pengguna seharusnya tidak perlu mengetik ulang bentuk, seperti nama, alamat, 38 tanggal lahir, jenis kelamin jika mereka memasukkan kode pos yang tidak valid, melainkan harus dibimbing untuk memperbaiki hanya bagian yang rusak, yaitu kode pos. 6. Mengizinkan Pengguna untuk Pengulangan Aksi (undo) dengan Mudah Aksi harus dapat dibalikkan menjadi keadaan sebelumnya sehingga membuat pengguna merasa aman karena ia tahu bahwa kesalahan yang dibuat dapat diperbaiki. 7. Mendukung Pengguna untuk Menjadi Pengendali Sistem Pengguna yang sudah berpengalaman pasti menginginkan perasaan kalau mereka yang memegang kendali dari antarmuka dan mengharapkan feedback yang ditampilkan harus sesuai dengan aksinya. Mereka tidak ingin dikejutkan dengan perubahan yang signifikan. 8. Mengurangi Ingatan Jangka Pendek Manusia hanya dapat mengingat tujuh info ditambah atau dikurang dua info pada suatu waktu. Batasan ini berarti suatu sistem harus dibuat sesederhana mungkin sehingga tidak membuat seorang pengguna bingung karena terlalu banyak info. Dan apabila diperlukan, akses online ke bentuk perintah sintaks, singkatan, kode, dan informasi lainnya harus disediakan fasilitasnya. 2.2.7 Lima Faktor Manusia Terukur Menurut Shneiderman & Plaisant (2010 : 32) terdapat Lima faktor manusia terukur yaitu : 1. Waktu untuk Belajar Berapa lama pengguna dapat belajar dan memahami bagaimana menjalankan aksi untuk setiap tugas yang ada. 39 2. Kecepatan Performa Berapa lama suatu tugas dapat diselesaikan. 3. Banyaknya Error Berapa banyak error yang terjadi dalam menjalankan suatu tugas. 4. Ingatan Pengguna Bagaimana pengguna masih dapat mengingat tugas-tugas aplikasi setelah sehari atau seminggu. 5. Kepuasan Pribadi Bagaimana tingkat kepuasan pengguna setelah mencoba aplikasinya. 2.2.8 Flowchart Menurut Lesley Anne Robertson (2006, p264), flowchart adalah metode alternatif dalam merepresentasikan algoritma. Flowchart sering dipakai karena merepresentasikan logika program secara grafik melalui simbol geometris yang umum dan garis yang terhubung. Simbol Flowchart Ada empat simbol dasar pada flowchart yang akan digunakan untuk merepresentasikan algoritma, yaitu; oval, persegi panjang, belah ketupat, dan tanda panah. Simbol oval yang menunjukkan simbol terminal, yang menandakan mulai dan berhentimya pada sebuah logika. Gambar 2.15 Simbol Terminal pada Flowchart 40 Simbol kotak yang menunjukkan simbol proses yang merepresentasikan setiap proses pada algoritma. Gambar 2.16 Simbol Proses pada Flowchart Simbol belah ketupat menunjukkan keputusan di dalam logika yang melibatkan perbandingan antara dua nilai. Gambar 2.17 Simbol Keputusan pada Flowchart Simbol tanda panah digunakan untuk menghubungkan antar simbol di dalam flowchart . Gambar 2.18 Simbol Flowlines pada Flowchart