BAB 2 TINJAUAN PUSTAKA 2.1 Sistem Menurut Conolly dan Begg (2010:312), sistem adalah suatu cara untuk mengumpulkan, mengatur, mengendalikan dan menyebarkan informasi ke seluruh organisasi. Agus Mulyanto (2009:1) mendefinisikan sistem sebagai kumpulan dari elemen-elemen yang berinteraksi untuk mencapai suatu tujuan tertentu sebagai satu kesatuan. 2.2 Data Menurut Connolly dan Begg (2010:62), data merupakan komponen yang paling penting dalam suatu basis data karena data berfungsi sebagai penghubung antara komponen manusia dengan komponen mesin. Menurut Hasan (2009:16), data merupakan keterangan-keterangan tentang suatu hal, dapat berupa sesuatu yang diketahui atau dianggap. 2.3 Basis Data Menurut Connolly dan Begg (2010:65), basis data adalah kumpulan data yang terhubung secara logikal, berisi deskripsi dari data tersebut dan dirancang untuk memenuhi kebutuhan informasi dari suatu organisasi. Menurut Anhar (2010:45), basis data adalah sekumpulan tabel-tabel yang berisi data dan merupakan kumpulan dari field atau kolom. 2.4 Sistem Basis Data Menurut Connolly dan Begg (2010:54), sistem basis data adalah sistem penyimpanan record yang terkomputerisasi dimana tujuannya adalah menyimpan informasi dan membuat informasi tersebut selalu tersedia pada saat dibutuhkan. Menurut Yakub (2008:13), sistem basis data adalah sistem yang terdiri dari kumpulan file atau tabel yang saling berhubungan dan memungkinkan beberapa pengguna mengakses dan memanipulasinya. 5 6 2.5 Database Management System (DBMS) Menurut Connolly dan Begg (2010:66), database management system adalah suatu sistem perangkat lunak yang memungkinkan pengguna untuk mendefinisikan, membuat, memelihara dan menyediakan kontrol dalam mengakses database. Dalam DBMS ada beberapa fasilitas seperti: 1. DDL (Data Definition Language) DDL mengizinkan pengguna untuk melakukan spesifikasi terhadap tipe, struktur serta batasan dari data yang akan disimpan dalam basis data. 2. DML (Data Manipulation Language) DML memungkinkan pengguna untuk membuat, mengubah, menghapus dan mengambil data dari basis data. 3. DBMS juga menyediakan akses kontrol ke dalam basis data, contohnya: a. A security system, berarti mencegah pengguna yang tidak memiliki hak akses untuk mengakses basis data. b. An integrity system, berarti menjaga konsistensi data yang disimpan. c. A concurrency control system, berarti mengizinkan pembagian akses penggunaan ke basis data. d. A recovery control system, berarti mengembalikan basis data ke kondisi semula apabila terjadi kerusakan pada perangkat keras atau perangkat lunak. e. A user-accessible catalog, yang berisikan deskripsi data dalam sebuah basis data. 2.5.1 Komponen DBMS Menurut Connolly dan Begg (2010:68), komponen yang dimiliki oleh Database Management System (DBMS) adalah sebagai berikut: 1. Hardware Perangkat keras (hardware) yang dibutuhkan untuk menjalankan DBMS dan aplikasi. Perangkat keras dapat berupa PC (Personal Computer), mainframe dan jaringan komputer. Beberapa DBMS hanya dapat bekerja pada hardware atau sistem operasi tertentu. 7 2. Hardware 3. Software Komponen perangkat lunak meliputi perangkat lunak DBMS itu sendiri dan program aplikasi, bersama dengan sistem operasi, termasuk perangkat lunak jaringan apabila DBMS sedang digunakan dalam jaringan. 4. Data Data merupakan bagian paling penting dalam DBMS karena berperan sebagai penghubung antara komponen mesin (hardware dan software) dan komponen manusia (procedures dan people). 5. Procedures Prosedur merupakan instruksi dan aturan-aturan yang mengatur perancangan dan penggunaan dari basis data, seperti bagaimana masuk ke dalam DBMS memulai dan menghentikan DBMS, bagaimana membuat data backup dari basis data. 6. People Manusia merupakan komponen terakhir dalam DBMS yang bertugas mengoperasikan sistem. Ada empat tipe manusia yang berpartisipasi dalam lingkungan DBMS, yaitu: a. Data dan Database Administrator Data administrator adalah orang yang bertanggung jawab untuk mengatur sumber data yang mencakup perencanaan basis data, pengembangan dan pemeliharaan, kebijakan dan prosedur, serta perancangan konseptual dan logikal dari basis data. Database administrator adalah orang yang bertanggung jawab terhadap realisasi fisikal dari basis data, yang mencakup perancangan fisikal dan implementasi, pengaturan keamanan dan kontrol integritas, pemeliharaan sistem operasional dan memastikan kepuasan pengguna terhadap performa aplikasi. b. Database Designer Database designer dibagi menjadi dua tipe yaitu: 1. Logical database designer adalah orang yang mengidentifikasi data (entitas dan atribut), hubungan antar data dan batasan data yang disimpan dalam basis data. 8 2. Physical database designer adalah orang yang memutuskan bagaimana desain basis data logikal direalisasikan dalam bentuk fisikal. c. Application Developer Ketika basis data diimplementasikan, application developer adalah orang yang bertanggung jawab untuk menyediakan fasilitas atau fitur yang dibutuhkan oleh pengguna akhir (end user). d. End-Users End user merupakan pengguna dari basis data yang telah dirancang dan diimplementasikan untuk menyediakan kebutuhan informasi. 2.5.2 Keuntungan DBMS Menurut Connolly dan Begg (2010:77), keuntungan dari DBMS adalah: • Kontrol terhadap pengulangan data • Data yang konsisten • Banyak informasi yang diperoleh dari sumber yang sama • Penggunaan data bersama • Meningkatkan Integritas data • Meningkatkan keamanan • Mempermudah pengoperasian data • Meningkatkan kemampuan akses dan respon data • Meningkatkan produktivitas • Meningkatkan pemeliharaan data dengan data independence • Meningkatkan concurrency data • Meningkatkan layanan back up dan pemulihan 2.5.3 Kerugian DBMS Menurut Connolly dan Begg (2010:80), kerugian dari DBMS adalah: • Kompleksitas • Membutuhkan ukuran penyimpanan yang lebih besar • Biaya penggunaan DBMS relatif besar • Membutuhkan biaya tambahan untuk perangkat keras • Performa sistem yang tidak sesuai keinginan • Dampak kegagalan yang tinggi 9 2.6 Database System Development Lifecycle Menurut Connolly dan Begg (2010:313), suatu basis data dianalisis dan dirancang berdasarkan siklus hidup seperti digambarkan dibawah ini : Gambar 2. 1 Database System Development Lifecycle 2.6.1 Database Planning Perencanaan basis data adalah kegiatan pengaturan yang memungkinkan tahapan dalam siklus pengembangan aplikasi basis data dapat diwujudkan seefektif dan seefisien mungkin (Connolly dan Begg, 2010:313). Tahapan perencanaan basis data juga harus menjelaskan: a. Mission statement merupakan sasaran utama sistem basis data. Mission statement ini menjelaskan tujuan sistem basis data dan menyediakan alur yang lebih jelas untuk mencapai efektifitas dan efisiensi pembuatan suatu aplikasi basis data yang diinginkan. 10 b. Mission objectives harus dapat mengidentifikasi tugas tertentu yang didukung oleh sistem basis data data serta apa saja langkah-langkah yang harus dilakukan agar mission statement terpenuhi. 2.6.2 System Definition Definisi sistem menjelaskan batasan dan ruang lingkup aplikasi basis data termasuk sudut pandang pengguna (user view) (Connolly dan Begg, 2010:316). User view mendefinisikan apa yang dibutuhkan oleh sistem basis data dari sudut pandang peran pekerjaan tertentu (seperti manajer atau supervisor) atau aplikasi perusahaan pada bidang tertentu (seperti pemasaran atau personalia) sehingga nantinya sistem basis data yang dibuat bisa memberikan informasi yang berguna bagi user. 2.6.3 Requirement Collection and Analysis Proses pengumpulan dan analisis informasi mengenai bagian dari organisasi yang didukung sistem basis data, dan menggunakan informasi ini untuk mengidentifikasi kebutuhan untuk sistem baru yang akan dirancang (Connolly dan Begg, 2010:316). Informasi yang dikumpulkan meliputi: o Deskripsi data yang digunakan atau dihasilkan. o Keterangan lengkap mengenai bagaimana data tersebut digunakan atau dihasilkan. o Kebutuhan tambahan lainnya untuk aplikasi basis data yang baru. Ada tiga pendekatan utama untuk memenuhi kebutuhan informasi dari aplikasi sistem basis data, yaitu : a) Pendekatan terpusat (centralized approach) Kebutuhan dari setiap pemakai digabung menjadi satu set kebutuhan untuk aplikasi dari basis data. b) Tinjauan terintegrasi (view integration approach) Kebutuhan dari setiap pemakai akan digunakan untuk membuat model data yang terpisah untuk merepresentasikan pandangan dari pemakai. Hasil dari model data lokal akan digabungkan menjadi model data global pada tahap perancangan basis data. c) Kombinasi dari dua pendekatan (combination of approaches) 11 Dalam hal ini ada beberapa teknik untuk mendapatkan analisis informasi yang dinamakan fact finding techniques. Terdapat lima teknik fact finding yang umum digunakan, yaitu : a. Pemeriksaan dokumentasi Memeriksa dokumentasi sangat berguna ketika sedang berusaha mendalami kebutuhan basis data yang akan dibuat. Dokumentasi juga dapat membantu menyediakan informasi mengenai bagian perusahaan yang terkait masalah. Dengan memeriksa dokumentasi, formulir, laporan, dan informasi yang terkait, sistem sebuah perusahaan bisa dipahami dalam waktu yang singkat. b. Wawancara Wawancara merupakan teknik yang paling sering digunakan dan paling efisien dibandingkan teknik pencarian data lainnya. Wawancara dilakukan langsung bertatapan muka. Tujuan melakukan wawancara yaitu untuk menemukan, memastikan fakta, melibatkan pengguna, dan mengumpulkan pendapat dari masalah. c. Observasi Observasi merupakan salah satu cara paling efektif untuk memahami sebuah sistem. Teknik ini dilakukan dengan mengamati dan mempelajari seseorang atau sistem yang sedang berjalan. d. Penelitian Penelitian aplikasi dan masalah, jurnal komputer, buku petunjuk, dan internet seperti bulletin board sebagai sumber informasi mengenai bagaimana orang lain telah memecahkan masalah. e. Kuesioner Kuesioner adalah teknik pencarian data dengan melakukan survei melalui daftar pertanyaan yang berhubungan dengan proses bisnis. Kuesioner merupakan teknik yang paling efisien untuk melibatkan responden dalam jumlah yang besar. 2.6.4 Database Design Perancangan basis data merupakan proses membuat rancangan yang akan mendukung tujuan dan objektif perusahaan untuk kebutuhan sistem basis data (Connolly dan Begg, 2010:320). 12 2.6.4.1 Conceptual Database Design Menurut Connolly dan Begg (2010:467), perancangan konseptual merupakan proses membangun model data yang digunakan dalam suatu perusahaan, terlepas dari semua pertimbangan fisikal. Pertimbangan fisik yang dimaksud meliputi DBMS yang akan digunakan, program aplikasi, bahasa pemrograman dan pertimbangan fisik lainnya. Perancangan konseptual bertujuan untuk merepresentasikan kebutuhan informal, deksripsi lengkap, namun tidak bergantung pada kriteria DBMS. Model data konseptual merupakan sumber informasi untuk fase desain logikal. Langkah-langkah dalam perancangan konseptual meliputi: 1. Mengidentifikasi tipe entitas Langkah ini bertujuan untuk mengidentifikasi tipe entitas dan objek utama yang dibutuhkan pengguna. Objek-objek ini adalah tipe entitas untuk model yang ada. Salah satu metode untuk mengidentifikasi entitas adalah dengan menguji spesifikasi kebutuhan dari pengguna. 2. Mengidentifikasi tipe relasi Langkah ini bertujuan untuk mengidentifikasi relasi penting yang ada antara entitas yang telah diidentifikasikan. Relasi didefinisikan menggunakan kata kerja atau frase kata kerja seperti manages, owns, dan associated with. 3. Mengidentifikasi dan menghubungkan atribut dengan entitas atau relasi Langkah ini bertujuan untuk menghubungkan atribut yang berkaitan dengan entitas atau tipe relasi yang sesuai. Terdapat beberapa macam atribut yaitu: a. simple atau composite attributes simple attributes adalah atribut yang terdiri dari satu komponen tunggal. composite attributes adalah atribut yang terdiri dari beberapa komponen. b. single atau multi-valued attributes single value attribute adalah atribut yang bernilai tunggal untuk setiap kejadian dari tipe entitas. muli-valued attributes adalah atribut memiliki beberapa nilai untuk setiap kejadian dari tipe entitas. c. derived attributes. Sebuah atribut yang merepresentasikan sebuah nilai yang diturunkan dari nilai atribut yang berhubungan, tidak harus dari entitas yang sama. 13 4. Menentukan domain atribut Langkah ini bertujuan menetapkan domain untuk setiap atribut dalam model data konseptual dan mendokumentasikan setiap rinciannya. Domain merupakan sekumpulan nilai dari satu atau lebih atribut yang menggambarkan nilainya. 5. Menentukan Primary key, Candidate key dan Alternate key Langkah ini bertujuan menentukan candidate key dari setiap entitas, kemudian memilih salah satunya untuk dijadikan primary key. Candidate key yang tidak terpilih sebagai primary key disebut alternate key. 6. Mempertimbangkan kegunaan dari konsep Enhanced Modeling (optional) Langkah ini bertujuan mengembangkan ERmodel dengan menggunakan konsep enhanced modeling, seperti spesialisasi, generalisasi, aggregation, composition. 7. Memeriksa redundansi Langkah ini bertujuan memeriksa apakah masih ada relasi berulang dalam model data. Pemeriksaan dilakukan melalui tiga langkah yaitu: a) Memeriksa hubungan one-to-one (1:1) relationships b) Menghilangkan relasi redundansi c) Mempertimbangkan dimensi waktu 8. Validasi data model konseptual lokal terhadap transaksi pengguna Langkah ini bertujuan untuk memastikan apakah model data konseptual lokal sudah mendukung transaksi yang dibutuhkan oleh pengguna, dengan cara: i. Mendeskripsikan transaksi Memeriksa semua informasi termasuk entitas, relasi dan atribut yang dibutuhkan oleh setiap transaksi telah disediakan oleh model, dengan mendokumentasikan kebutuhan transaksi. ii. Menggunakan jalur transaksi Memvalidasi model data terhadap permintaan transaksi meliputi diagram yang merepresentasikan alur yang di ambil oleh setiap transaksi secara langsung pada ER diagram. 14 9. Memeriksa kembali model data konseptual dengan pengguna Tujuannya untuk melakukan review kembali model data konseptual lokal dengan pengguna untuk memastikan model tersebut sebagai representasi yang sesuai dengan kebutuhan perusahaan. 2.6.4.2 Logical Database Design Logical Database Design merupakan proses membangun sebuah model dari data yang digunakan perusahaan berdasarkan spesifikasi model data tertentu, tetapi terbebas dari DBMS tertentu dan pertimbangan fisikal yang lain (Connolly dan Begg, 2010:467). Dalam logical database design, model data yang telah diperoleh dalam conceptual database design diubah dalam bentuk model logikal dimana data yang ada dipengaruhi oleh model data yang menjadi tujuan basis data. Model data logikal merupakan sumber informasi dalam merancang physical database design. Langkah-langkah untuk membuat logical database design dapat digambarkan sebagai berikut: 1. Menurunkan relasi untuk model data logikal Langkah ini bertujuan membuat model data logikal yang mewakili entitas, relasi, dan atribut yang telah diidentifikasi. Relasi yang diturunkan dari model data konseptual yaitu : a. Strong Entity Membuat suatu relasi yang menyertakan keseluruhan atribut sederhana dari setiap entitas. b. Weak Entity Untuk setiap entitas lemah pada model data, buatlah sebuah relasi yang meliputi semua atribut sederhana dari setiap entitas. Primary key dari entitas lemah ini adalah sebagian atau sepenuhnya diturunkan dari setiap pemilik entitas sehingga primary key dari sebuah entitas lemah tidak dapat dibentuk sampai semua relasi dari pemilik entitas telah dipetakan. c. Relasi biner one to many(1:*) Dalam relasi untuk one to many, entitas yang bersifat one dirancang sebagai entitas parent dan entitas yang bersifat many dirancang sebagai entitas child. 15 d. Relasi biner one to one(1:1) Dalam membuat relasi yang merepresentasikan relasi one to one akan lebih kompleks karena kardinalitas tidak dapat digunakan untuk mengidentifikasi entitas parent dan entitas child di dalam sebuah relasi. e. Relasi 1:1 Recursive Relasi one to one recursive sama seperti dengan relasi one to one yaitu tidak dapat digunakan untuk mengidentifikasi entitas parent dan entitas child, tetapi dalam kasus ini, entitas pada kedua sisi relasi adalah sama. f. Relasi superclass atau subclass Untuk setiap relasi superclass atau subclass di dalam model data konseptual, superclass diindentifikasikan sebagai entitas parent dan entitas subclass diindentifikasikan sebagai entitas child. g. Relasi biner many to many (*:*) Untuk setiap relasi many to many dibuatlah sebuah relasi untuk merepresentasikan relasi dan juga meliputi atribut apa saja yang merupakan bagian dari relasi tersebut. Atribut yang berupa primary key dari entitas yang berpartisipasi dalam hubungan ke dalam relasi yang baru dianggap sebagai foreign key. h. Relasi kompleks Untuk relasi yang kompleks, dibuatlah sebuah relasi untuk merepresentasikan relasi termasuk semua atribut yang merupakan bagian dari relasi tersebut. Atribut yang berupa primary key dari entitas yang berpartisipasi dalam hubungan ke relasi baru dianggap sebagai foreign key. i. Atribut multi-valued Untuk setiap atribut multi-valued di dalam sebuah entitas, buatlah sebuah relasi baru untuk merepresentasikan atribut multi valued termasuk primary key-nya ke dalam sebuah relasi baru, untuk bertindak sebagai foreign key. 2. Validasi relasi dengan menggunakan normalisasi Bertujuan untuk melakukan validasi hubungan yang ada pada model data logikal menggunakan normalisasi. Tujuan dari normalisasi ini adalah untuk 16 memastikan bahwa relasi mendukung kebutuhan dari perusahaan dan tidak ada data yang berulang. 3. Validasi relasi dengan user transaction Tujuannya untuk memastikan bahwa relasi yang berada dalam model data logikal sudah mendukung kebutuhan transaksi sesuai dengan spesifikasi kebutuhan pengguna. 4. Memeriksa Integrity Constraints Tujuannya untuk memeriksa batasan yang ditentukan untuk menghindari data menjadi tidak konsisten dalam model data logikal. Enam tipe pertimbangannya, yaitu: a. Required Data Terdapat beberapa atribut yang harus memiliki nilai, dengan kata lain tidak boleh null. b. Attribute Domain Constraint Setiap atribut memiliki sebuah domain, batasan nilai yang memenuhi persyaratan. Sebagai contoh, pada jenis kelamin harus diisi ‘Pria’ atau ‘Wanita’ c. Multiplicity Merepresentasikan batasan jumlah yang terdapat pada hubungan antara data di dalam basis data. d. Entity integrity Primary key yang terdapat pada suatu entitas tidak boleh bernilai null. e. Referential integrity Sebuah foreign key harus menunjuk ke sebuah baris yang ada pada relasi parent yang berisi primary key yang sesuai. f. General constraints Batasan-batasan umum dimana updates di dalam suatu entitas ditentukan berdasarkan representasi yang berasal dari real worlds. 5. Review model data logikal dengan pengguna Tujuannya untuk meninjau model data logikal dengan pengguna untuk memastikan bahwa model data logikal sesuai dengan representasi dari kebutuhan data perusahaan. Jika pengguna tidak puas dengan model yang diberikan, maka tahap-tahap sebelumnya mungkin perlu diulang kembali. 17 6. Menggabungkan model data logikal ke dalam model global Langkah ini hanya diperlukan untuk merancang basis data dengan multiple user views yang diatur dengan menggunakan pendekatan view integration. Data model logikal lokal merepresentasikan satu atau banyak tapi tidak semua pandangan user pada database sedangkan data model logikal global merepresentasikan semua pandangan user pada database. 7. Memeriksa untuk pertumbuhan di masa depan Langkah ini bertujuan untuk memeriksa perubahan yang signifikan pada masa mendatang dan menaksirkan kemungkinan model data logikal untuk menyesuaikan terhadap perubahan yang terjadi. 2.6.4.3 Physical Database Design Proses menghasilkan penjelasan dari implementasi basis data pada media penyimpanan, mendeskripsikan hubungan dasar, organisasi file, dan indeks yang digunakan untuk mencapai akses yang efisien terhadap data dan kendala integritas terkait serta keamanan (Connolly dan Begg, 2010:524). Adapun tahapan pembuatan perancangan fisikal adalah sebagai berikut: 1. Menerjemahkan model data logikal untuk DBMS yang digunakan Tujuannya untuk menghasilkan skema basis data relasional dari model data logikal yang dapat diimplementasikan dalam DBMS. Terdapat beberapa langkah dalam tahapan ini, yaitu: a. Merancang relasi dasar Bertujuan untuk merepresentasi relasi dasar yang diidentifikasi di dalam model data logikal terhadap target DBMS. b. Merancang representasi derived data Bertujuan untuk mereprentasi derived data yang ditampilkan dalam model data logikal terhadap target DBMS. c. Merancang general constraint Bertujuan untuk merancang batasan umum(general constraint) untuk target DBMS. 2. Merancang Organisasi file dan index Bertujuan untuk menentukan organisasi file yang optimal untuk menyimpan relasi dasar dan indeks yang diperlukan untuk mencapai kinerja yang diinginkan. Beberapa langkah untuk melakukan tahapan ini, yaitu: 18 a. Menganalisa transaksi Tujuannya untuk memahami fungsionalitas dari transaksi yang akan dijalankan pada basis data dan untuk menganalisis transaksi penting. b. Memilih organisasi file Tujuannya untuk menentukan organisasi file yang efisien untuk setiap relasi dasar. c. Memilih index Tujuannya untuk menentukan apakah penambahan indeks dapat meningkatkan kinerja sistem. Indeks adalah sebuah struktur data yang memungkinkan DBMS untuk menemukan data tertentu lebih cepat. d. Memperkirakan kebutuhan disk space Tujuannya untuk memperkirakan besar ruang disk yang dibutuhkan oleh basis data. 3. Merancang tampilan pengguna Tujuannya untuk merancang pandangan pengguna yang diidentifikasi selama tahap pengumpulan dan analisis kebutuhan. 4. Merancang mekanisme keamanan Tujuannya untuk merancang mekanisme keamanan untuk basis data yang ditentukan oleh pengguna selama tahap pengumpulan dan analisis kebutuhan dalam database system development lifecycle. Relasi DBMS menyediakan dua tipe keamanan basis data yaitu : 1. System security System security menutupi akses dan penggunaan dari basis data pada level system, seperti username dan password. 2. Data security Menutupi akses dan penggunaan objek basis data seperti relations dan views serta tindakan yang dapat dilakukan oleh pengguna terhadap objek. 5. Mempertimbangkan pengenalan redundansi terkontrol Tujuannya untuk menetapkan apakah memperkenalkan redundasi yang terkontrol dengan aturan normalisasi akan meningkatkan performa sistem. 6. Mengawasi dan mengendalikan sistem operasional Tujuannya untuk mengawasi sistem operasional dan meningkatkan performa dari sistem untuk membenarkan keputusan desain yang tidak tepat atau mencerminkan perubahan kebutuhan. 19 2.6.5 DBMS Selection Pemilihan suatu DBMS yang sesuai untuk mendukung sistem basis data. 2.6.6 Application Design Menurut Connolly dan Begg (2010:329), perancangan aplikasi (application design) adalah merancang antarmuka pengguna (user interface) dan program aplikasi, yang menggunakan dan memproses basis data. Terdapat 2 aspek penting dalam desain aplikasi yaitu: 1. Transaction Design Desain transaksi diartikan sebagai suatu atau serangkaian tindakan yang dilakukan oleh seorang pengguna atau program aplikasi yang mengkases atau melakukan perubahan isi dari database. Tujuan dari desain transaksi adalah untuk menetapkan dan mendokumentasikan karakteristik tingkat tinggi dari transaksi yang dibutuhkan pada basis data. Ada tiga tipe transaksi, yaitu: a. Retrieval transactions Digunakan untuk mengambil data untuk ditampilkan pada layar atau laporan. b. Update transactions Digunakan untuk menyisipkan data baru, menghapus data lama dan memodifikasi data yang sudah ada dalam basis data. c. Mixed transactions Melibatkan kedua tipe transaksi sebelumnya. Contohnya operasi untuk mencari detail data, menampilkan, kemudian memperbaharuinya. 2. User Interface Design Selain merancang bagaimana fungsi yang diperlukan, kita harus merancang sebuah antarmuka yang tepat untuk sistem basis data. User interface design merupakan suatu tampilan program aplikasi yang akan dibuat secara detail dan benar. Antarmuka yang dirancang harus memberikan informasi yang dibutuhkan, sehingga pengguna aplikasi mudah mempelajari dan menggunakannya. 20 2.6.7 Prototyping Prototyping adalah membangun sebuah model kerja dari aplikasi basis data. Tujuan utama dari pengembangan prototipe sistem basis data adalah untuk mengidentifikasi fitur sistem yang bekerja dengan baik atau tidak memadai, dan jika mungkin untuk menyarankan perbaikan atau bahkan fitur baru untuk sistem basis data (Connolly dan Begg, 2010:333). 2.6.8 Implementation Implementasi adalah realisasi secara fisik dari basis data dan rancangan aplikasinya (Connolly dan Begg, 2010:333). Implementasi dapat dicapai dengan menggunakan Data Definition Language (DDL) dari DBMS yang dipilih. Pandangan pengguna (user view) lainnya juga diimplementasikan dalam tahapan ini. 2.6.9 Data Conversion and Loading Konversi data dan loading adalah perubahan data yang ada ke dalam basis data yang baru dan konversi aplikasi yang ada untuk berjalan pada basis data yang baru (Connolly dan Begg, 2010:334). Tahap ini diperlukan ketika suatu sistem basis data baru sedang menggantikan suatu sistem basis data yang lama. 2.6.10 Testing Testing adalah proses menjalankan aplikasi dengan tujuan untuk menemukan kesalahan. Sebelum digunakan, aplikasi basis data yang baru dikembangkan harus diuji secara menyeluruh. Pengujian sebaiknya juga meliputi usability dari sistem basis data. Idealnya, sebuah evaluasi sebaiknya di lakukan terhadap sebuah spesifikasi usability. 2.6.11 Operational Maintenance Pemeliharaan operasional adalah proses mengawasi dan memelihara sistem basis data diikuti dengan instalasi. Setelah sistem basis data beroperasi secara penuh, proses monitoring berlanjut yang mungkin akan menuju kepada pengorganisasian ulang dari sistem basis data untuk mendukung perubahan yang diperlukan. Yang termasuk dalam pemeliharaan operasional, yaitu: 21 a. Mengawasi kinerja sistem Jika kinerja menurun dibawah tingkat yang dapat diterima, maka dibutuhkan reorganisasi. b. Mempertahankan dan meningkatkan sistem database (bila diperlukan) Kebutuhan baru yang digabungkan ke dalam sistem basis data. 2.7 Relational Model Menurut Connolly dan Begg (2010:141), dalam relational model semua data secara logika terstruktur dalam hubungan berupa tabel. Setiap tabel memiliki atribut berupa column dari data. Setiap tuple atau baris berisi satu nilai per atribut. 2.7.1 Relational Data Structure Hal-hal yang terkait Relational Data Structure adalah: 1. Relation adalah sebuah tabel dengan baris-baris dan kolom-kolom. 2. Attribute adalah nama kolom dari sebuah relation. 3. Domain adalah kumpulan nilai-nilai yang diperbolehkan untuk satu atau lebih attributes. 4. Tuple adalah baris dari sebuah relation. 5. Degree adalah jumlah attributes yang berada dalam sebuah relation. 6. Cardinality adalah jumlah tuples yang berada dalam sebuah relation. 7. Relational database adalah sekumpulan hubungan normalisasi dengan nama relasi yang berbeda. 2.7.2 Relational Keys Relational Keys berfungsi untuk secara unik mengidentifikasi setiap tuple dalam relasi terdiri dari: 1. Alternate key adalah candidate key yang tidak terpilih menjadi primary key. 2. Candidate key adalah sebuah key unik untuk mengidentifikasi kejadian dalam suatu entitas. 3. Primary key adalah candidate key yang dipilih untuk mengidentifikasikan entitas secara unik dalam relasi. 4. Foreign key adalah key yang menghubungkan dua tabel 5. Composite key adalah candidate key yang terdiri dari dua atau lebih atribut. 22 2.7.3 Integrity Constraint Integrity Constraint terdiri dari: 1. Null, menyatakan sebuah nilai untuk sebuah atribut yang tidak diketahui atau tidak berlaku pada baris. 2. Entity integrity, atribut primary key tidak boleh null di dalam relasi dasar. 3. Referential integrity, jika terdapat foreign key dalam suatu relasi, maka nilai foreign key akan dibandingkan dengan nilai candidate key dari beberapa tuple pada relasi tersebut atau nilai foreign key harus null seluruhnya. 4. General constraint, aturan tambahan yang ditentukan oleh pengguna basis data yang mendefinisikan atau membatasi beberapa hal tertentu dari perusahaan. 2.8 Entity Relationship Modelling Menurut Connolly dan Begg (2010:371), entity relationship modeling adalah sebuah pendekatan top-down untuk merancang basis data yang dimulai dengan mengidentifikasi entitas dan relasi yang harus direpresentasikan di dalam model. 2.8.1 Entity Type Menurut Connolly dan Begg (2010:372), entity type adalah sekumpulan objek dengan sifat yang sama, diidentifikasi oleh perusahaan dan mempunyai keberadaan yang independen. Entity occurrence adalah objek dari entity type yang dapat diidentifikasikan secara unik. 2.8.2 Relationship Types Menurut Connolly dan Begg (2010:374), relationship types merupakan penggabungan antara beberapa tipe entitas yang memiliki arti. Relationships occurrence hubungan yang dapat didefinisikan secara unik, yang meliputi satu kejadian dari setiap tipe entitas yang berpartisipasi. Recursive relationships adalah sebuah tipe relasi dimana tipe entitas yang sama mempunyai lebih dari satu peran. 23 2.8.3 Structural Constraints Menurut Connolly dan Begg (2010:385), batasan utama dari relationship disebut multiplicity, yang artinya sejumlah kemungkinan kejadian dari sebuah tipe entitas yang berhubungan dengan kejadian tunggal dari entitas melalui relasi tertentu. Terdapat tiga jenis relationship, yaitu: 1. One to one (1:1) relationships Hubungan ini terjadi ketika ada satu record dari tabel pertama yang terhubung dengan satu record dari tabel lain. Contoh setiap cabang hanya dimanajemen oleh satu karyawan. Gambar 2. 2 One to one (1:1) relationships 2. One to many (1:*) relationships Hubungan one-to-many terjadi ketika setiap record dalam tabel A bisa memiliki beberapa link dari tabel B namun masing-masing record dari tabel B hanya bisa terhubung dengan satu record dari tabel A. Contohnya Staff (tabel A) bisa melihat satu sampai banyak PropertyForRent (tabel B). tetapi PropertyForRent (tabel B) hanya bisa dilihat oleh satu staff (tabel A). Jadi, satu record dari tabel A, yaitu staff, memiliki relasi dengan banyak PropertyForRent dari tabel B 24 Gambar 2. 3 One to many (1:*) relationships 3. Many to many (*:*) relationships Hubungan many-to-many terjadi ketika setiap record dari tabel A memiliki hubungan dengan record-record yang ada di tabel B dan sebaliknya. Contoh Newspaper (tabel A) dapat mengiklankan 1 atau lebih PropertyForRent (tabel B) dan sebaliknya PropertyForRent (tabel B) dapat diiklankan pada 1 atau lebih Newspaper (tabel A). Gambar 2. 4 many to many (*:*) relationships 25 Multiplicity terdiri dari dua batasan yang terpisah yaitu : 1. Cardinality Mendeskripsikan jumlah maksimum yang memungkinkan kejadian untuk entitas berpartisipasi pada tipe relasi yang diberikan. 2. Participation Menentukan apakah semua atau hanya beberapa kejadian entitas berpartisipasi di dalam sebuah relasi. 2.9 Normalisasi Menurut Connnoly dan Begg (2010:415), normalisasi adalah teknik untuk menghasilkan sekumpulan relasi dengan properti yang diinginkan sesuai kebutuhan data dari suatu perusahaan. Tujuan dari normalisasi adalah untuk untuk meningkatkan integritas data yang disimpan, mengurangi redundansi data dan menghilangkan data yang tidak konsisten (Wang dan Dennis, 2011:1). 1. Tahapan normalisasi Menurut Connolly dan Begg (2010:428), tahapan dalam normalisasi meliputi: 1. Unnormalized Form (UNF) Unnormalized Form adalah kondisi awal dimana sebuah tabel memiliki satu atau lebih kelompok yang berulang. 2. First Normal Form (1NF) First Normal Form adalah sebuah relasi dimana pertemuan antara baris dan kolomnya mempunyai satu dan hanya satu nilai. Dalam normalisasi ini repeating groups dihilangkan. Repeating groups adalah sebuah atribut atau kelompok atribut dalam satu tabel yang memiliki nilai lebih dari satu untuk kejadian dalam tabel tersebut. Pada tahap ini juga menentukan primary key. 3. Second Normal Form (2NF) Second Normal Form adalah relasi yang ada di 1NF dan setiap atribut non primary key bergantung sebagian atau sepenuhnya pada fungsi dari primary key. 26 4. Third Normal Form (3NF) Third Normal Form adalah relasi yang memenuhi 1NF dan 2NF dimana tidak terdapat atribut yang non primary key bergantung secara transitif pada primary key. 2.10 Flowchart Merupakan penggambaran secara grafik dari langkah-langkah dan urutan prosedur suatu program. Flowchart dapat mempermudah dalam penyelesaian masalah, khususnya yang perlu dipelajari dan dievaluasi lebih lanjut (Indrajani, 2011:22). Simbol yang digunakan dalam flowchart adalah sebagai berikut: Tabel 2. 1 Simbol Flowchart 27 2.11 Data Flow Diagram Menurut Whitten dan Bentley (2007:317), DFD adalah model proses yang digunakan untuk menggambarkan aliran data melalui sebuah sistem dan tugas atau pengolahan yang dilakukan oleh sistem. Di dalam diagram aliran data terdapat tingkatan yang bertujuan untuk menghindari aliran data yang rumit dan kompleks. Tingkatan ini dimulai dengan tingkatan tertinggi kemudian diuraikan ke dalam bentuk yang lebih rinci. Tingkatan tersebut terdiri dari: a. Diagram konteks (Context Diagram) Memperlihatkan karakteristik suatu sistem. b. Diagram nol Menggambarkan proses – proses utama yang ada pada suatu sistem. c. Diagram rinci Merupakan proses rinci dari suatu sistem yang terdapat pada tingkatan sebelumnya. Tabel 2. 2 Simbol DFD No 1 Simbol Keterangan Entitas eksternal, dapat berupa orang atau unit terkait yang berinteraksi dengan system tetapi di luar system 2 Proses dari sistem atau tugas yang akan dikerjakan 3 Aliran data yang terjadi 4 Penyimpanan data atau database 28 2.12 Pengantar Pengembangan Aplikasi 2.12.1 PHP (Personal Home Page) Menurut Nugroho (2009:370) PHP singkatan dari Hypertext Preprocessor yang digunakan sebagai bahasa script server side dalam pengembangan web yang disisipkan pada dokumen HTML. Menurut Madcoms (2011:11), PHP adalah bahasa pemrograman yang berjalan dalam sebuah web server dan berfungsi sebagai pengolah data pada sebuah server. Dengan mengunakan program PHP, sebuah website akan lebih interaktif dan dinamis. Keuntungan menggunakan PHP: 1. PHP dapat dijalankan pada dalam web server, sistem operasi dan platform yang berbeda 2. PHP menawarkan koneksitas yang baik dengan beberapa basis data, salah satunya MySQL. 3. PHP dapat diletakan dalam tag HTML karena php merupakan embedded language. 4. PHP sendiri merupakan bahasa pemrograman yang bebas dipergunakan (open source). 2.12.2 MySQL Menurut Nugroho (2009:1), MySQL adalah sebuah program database server yang mampu menerima dan mengirimkan datanya dengan sangat cepat, multi user, serta menggunakan perintah standar SQL. Menurut Abdul Kadir (2010:10), MySQL tergolong sebagai DBMS (DataBase Management System). Perangkat lunak ini bermanfaat untuk mengelola data dengan cara yang fleksibel dan cepat. Berikut adalah sejumlah aktivitas yang terkait dengan data yang didukung oleh MySQL: 1. Menyimpan data ke dalam tabel 2. Menghapus data dalam tabel 3. Mengubah data dalam tabel 4. Memungkinkan untuk memilih data tertentu yang diambil 5. Memungkinkan untuk melakukan pengaturan hak akses terhadap data 29 2.12.3 Bootstrap Menurut Niska (2014:5), Bootstrap adalah framework yang menyediakan banyak elemen user interface, layout, dan plugin jQuery. Bootstrap bersifat open source dan menyediakan HTML, CSS dan Javascript siap pakai dan mudah untuk dikembangkan. Bootstrap merupakan framework untuk membangun desain web secara responsif. Artinya, tampilan web yang dibuat oleh bootstrap akan menyesuaikan ukuran layar dari browser yang kita gunakan baik di desktop, tablet ataupun mobile device. Fitur ini bisa diaktifkan ataupun dinon-aktifkan sesuai dengan keinginan kita sendiri. Sehingga, kita bisa membuat web untuk tampilan desktop saja dan apabila dirender oleh mobile browser maka tampilan dari web yang kita buat tidak bisa beradaptasi sesuai layar. Dengan bootstrap kita juga bisa membangun web dinamis ataupun statis. 2.13 Eight Golden Rules Untuk meningkatkan penggunaan aplikasi, sangat penting untuk memiliki rancangan interface yang baik. Shneidermen mengemukakan 8 (delapan) aturan yang dapat digunakan sebagai petunjuk dasar yang baik untuk merancang suatu user interface. Delapan aturan ini disebut dengan Eight Golden Rules of Interface Design, yaitu: 1. Konsistensi Konsistensi dilakukan pada urutan tindakan, perintah dan istilah yang digunakan pada prompt, menu, serta layar bantuan. Selain itu konsistensi dalam penggunaan font, warna serta menempatkan header dan footer pada posisi yang sama juga diperlukan. 2. Melayani kegunaan universal Melayani kebutuhan pengguna yang beragam seperti menambahkan penjelasan untuk pemula, dan fitur shortcut untuk meningkatkan kecepatan interaksi para ahli. 3. Memberikan umpan balik yang informatif Memberikan informasi terhadap aksi yang dilakukan oleh user. Untuk tindakan yang sering dilakukan dan tidak terlalu penting, dapat diberikan umpan balik yang sederhana. Tetapi ketika tindakan merupakan hal yang penting, maka umpan balik sebaiknya lebih substansial. 30 4. Merancang dialog untuk menghasilkan suatu penutupan Mendesain urutan tindakan yang harus dilakukan agar user dapat menyelesaikan suatu aksi. Umpan balik yang informatif akan memberikan indikasi bahwa cara yang dilakukan sudah benar dan dapat mempersiapkan kelompok tindakan berikutnya. 5. Adanya penanganan kesalahan Memberikan penanganan kesalahan yang sederhana. Sistem harus dapat mendeteksi kesalahan itu sebelum terjadi. Dan jikalau kesalahan itu masih terjadi, sistem harus dapat memberikan mekanisme yang sedehana dan mudah dipahami untuk penanganan kesalahan tersebut. 6. Mudah kembali ke tindakan sebelumnya Adanya aksi yang disediakan agar pengguna dapat kembali ke tindakan sebelumnya. Hal ini dapat mengurangi kekuatiran pengguna karena pengguna mengetahui kesalahan yang dilakukan dapat dibatalkan. 7. Mendukung pusat pengendali internal Pengguna menjadi pengontrol sistem bukan sistem yang mengontrol. Pengguna dapat dengan bebas bernavigasi dan mengubah informasi akun yang dimilikinya sesuai dengan yang dikehendaki. 8. Mengurangi beban ingatan jangka pendek Dengan tampilan yang sederhana dan menarik dapat membantu si pengguna sehingga tidak perlu mengingat terlalu banyak perintah, dan juga dapat menghindari terjadinya kebingungan pada pengguna. 2.14 Teori Terkait Tema Penelitian 2.14.1 Teori Penjualan 1. Pengertian Penjualan Menurut Mulyadi (2008:202), penjualan merupakan kegiatan yang dilakukan oleh penjual dalam menjual barang atau jasa dengan harapan akan memperoleh laba dari adanya transaksi-transaksi tersebut. Penjualan merupakan sebuah proses di mana kebutuhan pembeli dan kebutuhan penjual dipenuhi, melalui antar penukaran informasi dan kepentingan (Surja dan Wongso, 2013:697). 31 2. Tujuan Penjualan Kemampuan perusahaan dalam menjual produknya menentukan keberhasilan dalam mencari keuntungan, apabila perusahaan tidak mampu menjual maka perusahaan akan mengalami kerugian. Menurut Basu Swastha DH (2004:404) tujuan umum penjualan dalam perusahaan yaitu : a. Mencapai volume penjualan b. Mendapatkan laba tertentu c. Menunjang pertumbuhan perusahaan 2.14.2 Teori Produksi 1. Pengertian Produksi Menurut Groover (2005:1), produksi merupakan suatu kumpulan orang peralatan dan aturan-aturan yang dikelola sedemikian rupa untuk melaksanakan operasi-operasi manufaktur dalam sebuah pabrik. Produksi adalah aktivitas yang merupakan bagian dari fungsi organisasi perusahaan bertanggung jawab terhadap pengolahan bahan baku menjadi produksi jadi yang dapat dijual (Muskawati dan Maipan: 2012:69). 2. Fungsi Produksi Menurut Nasution (2003:13), fungsi produksi dibagi menjadi tiga fungsi utama, yaitu: a) Proses Produksi, yaitu metode dan teknik yang digunakan dalam mengolah bahan baku menjadi produk. b) Perencanaan produksi, yaitu tindakan antisipasi dimasa mendatang sesuai dengan periode waktu yang direncanakan. c) Pengendalian Produksi, yaitu merupakan tindakan yang menjamin bahwa semua kegiatan yang di laksanakan dalam perencanaan telah dilakukan sesuai dengan target yang telah ditetapkan. 2.14.3 Teori Pembelian Menurut Sofjan Assauri (2008:223), pembelian merupakan salah satu fungsi yang penting dari berhasil atau tidaknya operasi suatu perusahaan. Fungsi ini dibebani tanggung jawab untuk mendapatkan kuantitas dan kualitas bahan-bahan yang tersedia pada waktu dibutuhkan dengan harga yang sesuai dengan harga yang berlaku. 32 Menurut Mulyadi (2008:316), pembelian adalah serangkaian tindakan untuk mendapatkan barang dan jasa melalui pertukaran dengan maksud untuk dipakai sendiri atau dijual kembali. Dari definisi diatas dapat disimpulkan bahwa pembelian merupakan kegiatan yang dilakukan untuk pengadaan barang yang dibutuhkan perusahaan dalam menjalankan usahannya, mulai dari pemilihan sumber sampai memperoleh barang. 2.15 State of Art Menurut Feliciana, Raymond dan Yuliana dalam jurnal yang berjudul Analisis Dan Perancangan Sistem Basis Data Penjualan, Pembelian Dan Persediaan Barang Berbasis Web Pada PT. Meta Meta Medika (2013), menjelaskan bahwa pada penelitian ini akan dilakukan analisis mengenai proses bisnis yang dilakukan oleh perusahaan dan merancang program aplikasi sesuai dengan kebutuhan perusahaaan. Perancangan dilakukan dengan menggunakan metode analisis, perancangan basis data dan perancangan aplikasi. Pengambilan dan pengujian data dalam metode analisis menggunakan observasi, wawancara dan studi pustaka. Perancangan basis data dengan langkah konseptual, logical, dan fisikal. Perancangan aplikasi dilakukan dengan metode scrum. Hasil yang didapat berupa aplikasi yang membantu penyimpanan data dan mengintegrasikan data dalam bidang penjualan, pembelian, serta persediaan barang. Di mana hak akses untuk program tersebut terbagi untuk beberapa karyawan sesuai dengan pekerjaannya dalam rangka meningkatkan keamanan data. Menurut Atika, Hutrianto dan Pratama (2012) dalam jurnal yang berjudul Analisis Perancangan Sistem Basis Data Manajemen Produksi Pada PT Tirta Osmosis Sampurna Palembang menjelaskan dalam implemetasi kali ini mengambil studi kasus di sebuah perusahaan yaitu PT Tirta Osmosis Sampurna Palembang dan terfokus dalam masalah manajemen produksi. Manajemen Produksi meliputi data permintaan konsumen, proses produksi dan hasil produksi. Untuk melakukan analisa metode yang digunakan menggunakan metode analisa berbasis objek (OOA). Metode ini dapat mempresentasikan sebuah permasalahan dalam dunia nyata kedalam object-object, khususnya dalam pengembangan perangkat lunak. Untuk perancangan menggunakkan metode Object Oriented Design (OOD. Untuk pengembangan sistem menggunakan metode prototyping. Metode prototyping 33 digunakkan untuk mengidentifikasi sistem yang berjalan dan memberikan penambahan-penambahan fitur baru jika ada kekurangan serta mengevaluasi kelayakan dan kemungkinan yang terjadi dari desain sistem yang dikembangkan. Hasil yang didaptkan merupakan aplikasi desktop dengan visual basic 6 yang mampu menghasilkan dan mengelola data yang dibutuhkan dalam manajemen produksi pada Tirta Osmosis Sampurna Palembang. Menurut Yuhendra, Eng dan Poewarta (2013) dalam jurnal yang berjudul Perancangan Sistem Inventory Spare Part Mobil Pada CV. Auto Parts Toyota Berbasis Aplikasi Java, menjelaskan bahwa tujuan dari penelitian ini adalah menganalisis dan merancang aplikasi yang mampu menyediakan informasi mengenai data dalam sistem persediaan CV. Auto Parts Toyota . Metode yang digunakan dalam penelitian ini adalah Object Oriented Programming dikarenakan bahasa Java yang digunakan dalam perancangan program merupakan program berbasis OOP. Hasil dari penelitian ini adalah suatu aplikasi Sistem Inventori yang berfungsi agar pencatatan keluar-masuk barang oleh staf CV. Autopart Toyota dapat dilakukan dengan terstruktur sehingga stok barang tercatat dengan tepat dan sebagai alternative dalam penanganan pengolahan data seperti pengadaan suku cadang, dan penyediaan laporan laporan Menurut Permana, Triwibisono dan Sukmawati dalam jurnal yang berjudul Aplikasi Koperasi Persediaan Barang Pegawai Republik Berbasis Web (2012), mengambil studi kasus di Indonesia “TELADAN” RANTAU PRAPAT menjelaskan bahwa pada penelitian bertujuan untuk membuat aplikasi pencatatan persediaan barang yang dapat mengurangi kesalahan dalam pencatatan persediaan , mempermudah dan mempercepat dalam pembuatan laporan persediaan, melihat persediaan barang perunit dan harga pokok penjualan. Metode yang digunakan adalah dengan metode SDLC (Software Development Life Cycle) dengan model waterfall yang melewati beberapa tahapan yaitu tahap analisis, tahap perancangan, tahap implementasi, tahap pengujian, dan tahap pengoperasian dan pemeliharaan dilakukan analisis mengenai proses bisnis yang dilakukan oleh perusahaan dan merancang program aplikasi sesuai dengan kebutuhan perusahaaan. Perancangan dilakukan dengan menggunakan metode analisis, perancangan basis data dan perancangan aplikasi. Pengambilan dan pengujian data dilakukan dengan 34 wawancara dan observasi. Perancangan basis data dengan langkah konseptual, logical, dan fisikal. Hasil yang didapat berupa aplikasi yang membantu dalam pencatatan persediaan barang , dapat mengurangi kesalahan perhitungan dalam pencatatan persediaan . Lalu aplikasi ini dapat mempermudah dan mempercepat dalam pembuatan laporan persediaan. dan melihat persediaan barang per unit dan harga pokok penjualan.