BAB 2 TINJAUAN PUSTAKA 2.1 Teori yang berkaitan dengan Database Merupakan kumpulan dari teori-teori yang digunakan dalam perancangan Database. 2.1.1 Data Menurut Hoffer (2005, p5), data adalah penyimpanan representasi dari sebuah objek dan event yang memiliki arti penting bagi lingkungan user. 2.1.2 Pengertian Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah kumpulan data yang saling berhubungan secara logis dan deskripsi data tersebut dirancang untuk memenuhi kebutuhan informasi dalam suatu organisasi. 2.1.3 DBMS (Database Management System) Menurut Connolly dan Begg (2010, p66), Database Management System (DBMS) adalah sebuah sistem perangkat lunak yang memungkinkan pengguna untuk mendefinisikan, membuat, memelihara dan mengendalikan akses ke basis data. Fasilitas-fasilitas yang disediakan DBMS antara lain (Connolly dan Begg, 2010, p66) : 1. Data Definition Language ( DDL) Data Definition Language (DDL) memungkinkan pengguna untuk mendefinisikan basis data serta memungkinkan pengguna untuk menentukan tipe data, struktur dan kendala pada data untuk disimpan ke dalam basis data. 2. Data Manipulation Language (DML) Data Manipulation Language (DML) memungkinkan pengguna untuk melakukan insert, update, delete, dan retrieve data dari basis data. 3. Kontrol akses terhadap basis data a. Sistem keamanan (Security system) yang berfungsi untuk mencegah pengguna yang tidak berwenang mengakses basis data. b. Sistem integritas (Integrity system) yang berfungsi untuk menjaga konsistensi data yang tersimpan. c. Sistem kontrol konkurensi (Concurrency control system) yang berfungsi untuk memungkinkan shared access terhadap basis data. d. Sistem kontrol perbaikan (Recovery control system) yang berfungsi untuk memperbaiki basis data ke kondisi sebelumnya jika terjadi kerusakan pada perangkat keras atau perangkat lunak. e. Katalog yang dapat diakses pengguna (User-accessible catalog) yang berisi deskripsi data pada basis data. Komponen-komponen utama dalam lingkungan DBMS terdiri dari (Connolly dan Begg, 2010, p68) : 1. Hardware Hardware dibutuhkan untuk menjalankan DBMS dan aplikasi. Hardware dapat berupa personal computer (PC), mainframe atau jaringan komputer. 2. Software Komponen software terdiri dari software DBMS itu sendiri dan program aplikasi, bersama dengan sistem operasi, termasuk software jaringan jika DBMS digunakan melalui sebuah jaringan. 3. Data Data mungkin merupakan komponen terpenting dari lingkungan DBMS. Data berperan sebagai suatu jembatan diantara komponen mesin dan manusia. 4. Prosedur Prosedur menunjuk pada instruksi-instruksi dan aturan-aturan yang mengatur rancangan dan penggunaan basis data. Pengguna system dan pegawai yang mengatur basis data membutuhkan prosedur yang terdokumentasi mengenai bagaimana cara untuk menggunakan dan menjalankan sistem. 5. Orang (People) Komponen terakhir adalah orang yang terlibat dengan sistem, seperti Data Administrator (DA), Database Administrator (DBA), database designer, application developer dan pengguna akhir (end-user). Keuntungan-keuntungan DBMS, yaitu (Connolly dan Begg, 2010, p77) : 1. Kontrol terhadap redundansi data 2. Konsistensi data 3. Informasi tambahan dari data yang sama 4. Data dapat dibagi-bagi 5. Meningkatkan integritas data 6. Meningkatkan keamanan 7. Penetapan standarisasi 8. Skala ekonomi 9. Keseimbangan kebutuhan data yang bertentangan 10. Meningkatkan aksesibilitas dan respon terhadap data 11. Meningkatkan pemeliharaan melalui independensi data 12. Meningkatkan produktifitas 13. Meningkatkan konkurensi 14. Meningkatkan layanan backup dan recovery data Kerugian-kerugian DBMS, yaitu (Connolly dan Begg, 2010, p80) : 1. Kompleksitas 2. Ukuran yang besar 3. Biaya DBMS 4. Biaya tambahan hardware 5. Biaya konversi 6. Kinerja yang kurang maksimal 7. Dampak yang tinggi dari kegagalan 2.1.4 Structure Query Language (SQL) 2.1.4.1 Data Definition Language (DDL) Menurut Connolly dan Begg (2010, p92), Data Definition Language (DDL) adalah sebuah bahasa yang memungkinkan DBA (Database Administrator) atau pengguna untuk menggambarkan dan memberi nama entitas-entitas, atributatribut, dan hubungan-hubungan yang diperlukan untuk sebuah aplikasi, bersama dengan integritas terkait dan batasan keamanan (security constraints). 2.1.4.2 Data Manipulation Language (DML) Menurut Connolly dan Begg (2010, p92), Data Manipulation Language (DML) adalah sebuah bahasa yang menyediakan sekumpulan operasi untuk mendukung operasi dasar manipulasi data pada data dalam basis data. Operasi manipulasi data terdiri dari (Connolly dan Begg, 2010, p92) : a. Memasukkan data baru ke dalam basis data b. Modifikasi data yang tersimpan dalam basis data c. Menampilkan kembali data di dalam basis data d. Menghapus data dari basis data Terdapat dua tipe DML (Connolly dan Begg, 2010, p93), yaitu : 1. Procedural DML Procedural DML adalah sebuah bahasa yang memungkinkan pengguna untuk memberitahukan kepada sistem, data apa yang diperlukan dan bagaimana seharusnya data tersebut diambil. 2. Non-procedural DML Non-procedural DML adalah sebuah bahasa yang memungkinkan pengguna untuk menyatakan data apa yang diperlukan daripada tentang bagaimana data tersebut diambil. 2.1.5 Fourth Generation Language (4GL) Fourth Generation Language (4GL) adalah bahasa pemrograman yang tidak memiliki prosedur standard dimana pengguna mendefinisikan apa yang harus diselesaikan, bukan bagaimana cara menyelesaikannya. 4GL mencakup (Connolly dan Begg, 2010, p94) : a. Presentation languages, seperti query languages dan report generators. b. Speciality languages, seperti spreadsheets dan database languages. c. Application generators yang mendefinisikan, memasukkan, memperbarui, dan menerima data dari basis data untuk membangun aplikasi. d. Bahasa tingkat tinggi yang digunakan untuk menghasilkan kode aplikasi. 2.1.6 Siklus Hidup Aplikasi Basis Data Menurut Connolly dan Begg (2010, p314), adapun tahap-tahap siklus hidup pengembangan sistem basis data adalah sebagai berikut : Gambar 2.1 The Stages of The Database System Development Lifecycle 2.1.6.1 Database Planning Menurut Connolly dan Begg (2010, p313), Database planning merupakan kegiatan manajemen yang memungkinkan tahapan siklus hidup pengembangan sistem basis data untuk direalisasikan seefisien dan seefektif mungkin. Ada 3 permasalahan pokok yang muncul dalam merumuskan suatu strategi sistem informasi, yaitu : 1. Identifikasi rencana dan tujuan perusahaan dengan penentuan sistem informasi yang dibutuhkan. 2. Evaluasi sistem informasi yang berjalan untuk menentukan kelebihan dan kekurangan yang ada. 3. Penilaian terhadap peluang-peluang teknologi informasi yang mungkin mendatangkan keuntungan yang kompetitif. 2.1.6.2 System Definition Menurut Connolly dan Begg (2010, p316), System definition menjelaskan batasan-batasan dan ruang lingkup aplikasi basis data dan user view utama. 2.1.6.3 Requirement Collection and Analysis Menurut Connolly dan Begg (2010, p316), Requirement Collection and analysis merupakan proses pengumpulan dan analisa informasi mengenai bagian dari organisasi yang didukung oleh sistem basis data, dan menggunakan informasi ini untuk mengidentifikasi kebutuhan untuk sistem baru. Informasi yang dikumpulkan untuk setiap user view utama terdiri dari : 1. Deskripsi data yang digunakan atau dihasilkan 2. Rincian bagaimana data digunakan atau dihasilkan Beberapa kebutuhan tambahan untuk sistem basis data yang baru. 2.1.6.4 Database Design Menurut Connolly dan Begg (2010, p320), Database design merupakan proses membuat rancangan yang akan mendukung mission statement dan mission objectives untuk sistem basis data yang dibutuhkan. Terdapat tiga fase utama dalam merancang basis data, yaitu : 1. Perancangan basis data konseptual Merupakan suatu proses pembuatan model dari informasi yang digunakan dalam perusahaan, independen dari keseluruhan aspek fisik. Model data dibangun dengan menggunakan informasi dalam spesifikasi kebutuhan pengguna. 2. Perancangan basis data logikal Merupakan suatu proses pembuatan model dari informasi yang digunakan dalam perusahaan berdasarkan model data tertentu, tetapi independen terhadap DBMS tertentu dan aspek fisik lainnya. 3. Perancangan basis data fisikal Merupakan suatu proses menghasilkan deskripsi implementasi basis data pada penyimpanan sekunder. Menggambarkan struktur penyimpanan dan metode akses yang digunakan untuk mencapai akses yang efisien terhadap data. 2.1.6.5 DBMS Selection Menurut Connolly dan Begg (2010, p325), DBMS selection merupakan pemilihan DBMS yang sesuai untuk mendukung sistem basis data. Langkah-langkah utama untuk memilih sebuah DBMS, yaitu : 1. Mendefinisikan istilah-istilah yang mengarah pada pembelajaran. 2. Membuat daftar pendek dua atau tiga produk. 3. Mengevaluasi produk. 4. Merekomendasikan pilihan dan membuat laporan. 2.1.6.6 Application Design Menurut Connolly dan Begg (2010, p329), Application design merupakan rancangan user interface dan program aplikasi yang menggunakan dan mengolah basis data. 2.1.6.7 Prototyping Menurut Connolly dan Begg (2010, p333), Prototyping merupakan pembangunan sebuah model kerja sistem basis data. 2.1.6.8 Implementation Menurut Connolly dan Begg (2010, p333), Implementation merupakan realisasi fisik basis data dan perancangan aplikasi. 2.1.6.9 Data Conversion and Loading Menurut Connolly dan Begg (2010, p334), Data Conversion and Loading merupakan pemindahan semua data yang ada ke dalam basis data baru dan mengubah semua aplikasi yang ada untuk dijalankan pada basis data baru. 2.1.6.10 Testing Menurut Connolly dan Begg (2010, p334), Testing merupakan proses menjalankan sistem basis data dengan tujuan untuk menemukan kesalahan. 2.1.6.11 Operational Maintenance Menurut Connolly dan Begg (2010, p335), Operational Maintenance merupakan proses mengawasi dan memelihara sistem basis data setelah proses instalasi. 2.1.7 Entity-Relationship Modeling Untuk memastikan pemahaman yang tepat terhadap data dan bagaimana penggunaannya di dalam suatu perusahaan, diperlukan sebuah model. Salah satunya adalah Model Entity-Relationship (ER). Menurut Connolly dan Begg (2010, p371), model Entity Relationship menggunakan pendekatan perancangan basis data topdown, yang dimulai dengan mengidentifikasikan data yang penting. Data yang penting itu disebut entitas, dimana relationship diantaranya harus direpresentasikan dalam model dan kemudian ditambahkan beberapa atribut dan constraint. Kebalikan dari pendekatan Top-Down, pendekatan Bottom-Up dimulai dengan mengidentifikasikan data item (attribute dan relationship), kemudian terakhir baru memulai mengidentifikasikan entitasnya. Oleh karena itu, pendekatan Bottom-Up tidak begitu efektif digunakan untuk pembuatan model Entity Relationship. 2.1.7.1 Tipe Entitas Tipe entitas adalah kumpulan dari berbagai obyek-obyek yang mempunyai sifat atau properti yang sama dan didefinisikan oleh perusahaan, serta mempunyai sifat atu properti yang sama dan didefinisikan oleh perusahaan, serta mempunyai eksistensi yang independent. Keberadaan entity type dapat berupa fisik atau abstrak. (Connolly dan Begg, 2010, p372). Konsep dasar dari Entity relationship adalah tipe entitas, yang merepresentasikan sebuah kumpulan obyek dalam dunia nyata dengan properti yang sama. Sebuah tipe entitas mempunyai keberadaan yang independent dan dapat menjadi obyek fisikal maupun obyek konseptual. Ini berarti perancang yang berbeda mungkin dapat mengidentifikasi entitas yang berbeda pula. Entity Occurence adalah obyek dan tipe entitas yang dapat didefinisikan secara unik. Tipe entitas dapat diklasifikasikan menjadi : 1. Strong entity type, yaitu tipe entitas yang keberadaannya tidak bergantung pada tipe entitas lainnya. (Connolly dan Begg, 2010, p383). 2. Weak entity type, yaitu tipe entitas yang keberadaannya bergantung pada tipe entitas lainnya. (Connolly dan Begg, 2010, p383). 2.1.7.2 Tipe Relasi Tipe relasi adalah sekumpulan asosiasi antara tipe-tipe entitas yang ada dan mempunyai arti. (Connolly dan Begg, 2010, p374). Relationship occurence adalah suatu gabungan yang dapat diidentifikasikan secara unik, yang meliputi satu kejadian dari setiap entitas yang berpartisipasi. (Connoly dan Begg, 2010, p375). Recursive relationship adalah sebuah tipe hubungan dimana tipe entitas yang sama dapat berpartisipasi lebih dari sekali pada peran yang berbeda. (Connolly dan Begg, 2010, p378). Derajat dari tipe relasi adalah jumlah dari partisipasi tipe entitas dalam sebuah tipe relasi tertentu. Entitas yang berkaitan dalam sebuah tipe relasi terkenal sebagai participant dalam relationship. Jumlah dari participant dalam relationship adalah derajat dari relationship. Oleh karena itu, derajat dari relationship yang berderajat dua disebut binary, sedangkan relationship yang berderajat tiga disebut ternary. (Connoly dan Begg, 2010, p376). Terdapat beberapa macam derajat relasi, yaitu : a. Binary relationship, yaitu keterhubungan antara dua tipe entitas. Gambar 2.2 Binary Relationship b. Ternary relationship, yaitu keterhubungan antara tiga tipe entitas. Gambar 2.3 Ternary Relationship c. Quaternary relationship, yaitu keterhubungan antara empat tipe entitas. Gambar 2.4 Quaternary Relationship d. Relasi rekursif adalah sebuah tipe relasi dimana tipe entitas yang sama berpartisipasi lebih dari satu kali dalam peranan yang berbeda. Gambar 2.5 Relasi Rekursif 2.1.7.3 Attributes Attribute merupakan sifat-sifat atau properti dari sebuah tipe entitas atau tipe relationship. (Connolly dan Begg, 2010, p379). Domain attribute adalah kumpulan nilai yang diperbolehkan untuk satu atau lebih atribut. Setiap atribut yang dihubungkan dengan sejumlah nilai disebut domain. Domain akan mendefinisikan nilai-nilai yang dimiliki sebuah atribut dan fungsi domain di sini sama dengan konsep domain pada model relasional. Macam-macam atribut yang ada yaitu : 1. Simple / Composite Attribute Simple Attribute adalah atribut yang terdiri dari satu komponen tunggal (single) dan keberadaannya independent. Composite Attribute adalah atribut yang terdiri dari beberapa komponen yang keberadaannya independent. (Connolly dan Begg, 2010, p380). 2. Single-Valued and Multi-Valued Attributes Single-valued attributed adalah atribut yang menampung nilai tunggal untuk tiap-tiap kejadian dari suatu tipe entitas. Sebagian besar atribut adalah bernilai tunggal. Multi-valued attributed adalah atribut yang dapat menampung banyak nilai untuk setiap kejadian dari suatu tipe entitas. (Connolly dan Begg, 2010, p380). 3. Derrived Attributes Atribut yang memiliki nilai yang dihasilkan dari satu atau beberapa atribut lainnya dan tidak harus berasal dari entitas yang sama. (Connolly dan Begg, 2010, p380). 2.1.7.4 Keys Terdapat beberapa jenis key : 1. Candidate Key Merupakan sejumlah kecil atribut dari entitas yang mengidentifikasikan setiap kejadian dari entitas tersebut secara unik. (Connolly dan Begg, 2010, p381). 2. Primary Key Merupakan candidate key yang dipilih untuk mengidentifikasikan setiap kejadian dari entitas secara unik. (Connolly dan Begg, 2010, p381). 3. Alternate Key Merupakan kumpulan candidate key yang tidak terpilih menjadi primary key. (Connolly dan Begg, 2010, p151). 4. Composite Key Merupakan candidate key yang terdiri dari dua atau lebih atribut. (Connolly dan Begg, 2010, p382). 5. Foreign Key Sebuah atribut atau sekumpulan atribut pada suatu relasi yang sama dengan candidate key dari beberapa relasi lainnya. (Connolly dan Begg, 2010, p151). 2.1.7.5 Structural Constraint Multiplicity adalah jumlah occurence (kejadian) yang mungkin terjadi pada sebuah tipe entity yang berhubungan ke sebuah occurence dari tipe entity lain pada suatu relationship. (Connolly dan Begg, 2010, p385). Tiga macam hubungan binari secara umum yaitu : 1. Derajat hubungan one to one (1:1) Derajat hubungan 1:1 terjadi bila tiap anggota suatu entitas hanya boleh berpasangan dengan satu anggota dari entitas yang lain. Dan begitu juga sebaliknya. Anggota dari entitas yang lain hanya boleh mempunyai satu anggota dari entitas tersebut. Gambar 2.6 Derajat hubungan One-to-One 2. Derajat hubungan one to many (1:*) Derajat hubungan 1:* terjadi bila tiap anggota suatu entitas memilik lebih dari satu anggota dari entitas lain. Dan sebaliknya, entitas yang lain hanya boleh berpasangan dengan satu anggota dari entitas tersebut. Gambar 2.7 Derajat hubungan One-to-Many 3. Derajat hubungan many to many (*:*) Derajat hubungan *:* terjadi apabila tiap anggota suatu entitas memiliki lebih dari satu anggota dari entitas lain, juga entitas lain memiliki lebih dari satu anggota dari entitas tersebut. Gambar 2.8 Derajat hubungan Many-to-Many Multiplicity terdiri dari dua batasan yang terpisah pada sebuah relasi, yaitu : 1. Cardinality Mendeskripsikan jumlah maksimum dari kejadian relasi yang mungkin untuk suatu entitas yang berpartisipasi di dalam suatu tipe relasi tertentu. 2. Participation Menentukan apakah semua atau hanya sebagian entitas berpartisipasi di dalam suatu relasi. Gambar 2.9 Cardinality and Participation 2.1.8 Metodologi Perancangan Basis Data Metodologi desain adalah sebuah pendekatan terstruktur yang menggunakan prosedur, teknik, perangkat, dan dokumentasi yang mendukung dan memfasilitasi proses desain (Connolly dan Begg, 2010, p466). Terdapat tiga fase utama dalam metodologi perancangan basis data antara lain (Connolly dan Begg, 2010, p467) : 2.1.8.1 Perancangan Konseptual Perancangan basis data konseptual adalah proses membangun sebuah model data yang digunakan dalam sebuah perusahaan, yang tidak bergantung pada semua pertimbangan fisikal. Perancangan ini merupakan tahap pertama dimana secara objektif dilakukan untuk membangun sebuah model data konseptual dari kebutuhan data sebuah perusahaan. Langkah-langkah untuk membangun model data konseptual, yaitu : 1. Mengidentifikasi tipe entitas Tujuannya adalah untuk mengidentifikasi tipe entitas yang dibutuhkan. 2. Mengidentifikasi tipe relasi Tujuannya adalah untuk mengidentifikasi relasi penting yang ada diantara tipe entitas. 3. Mengidentifikasi dan mengasosiasi atribut dengan tipe entitas atau relasi Tujuannya adalah untuk mengasosiasi atribut dengan tipe entitas atau tipe relasi yang sesuai. 4. Menentukan domain atribut Tujuannya adalah untuk menentukan domain untuk atribut pada model data lokal konseptual. 5. Menentukan atribut candidate key, primary key, dan alternate key Tujuannya adalah untuk mengidentifikasi candidate key untuk setiap tipe entitas, dan jika ada lebih dari satu candidate key, maka dipilih satu untuk menjadi primary key dan yang lain sebagai alternate key. 6. Mempertimbangkan penggunaan konsep enhanced modeling (langkah optional) Tujuannya adalah untuk penggunaan konsep (Permodelan yang mempertimbangkan enhanced lebih specialization/generalization, rumit), modeling seperti aggregation dan composition. 7. Memeriksa model untuk redundansi Tujuannya adalah untuk memeriksa adanya redundansi/data berulang pada model. 8. Validasi pengguna model konseptual dengan transaksi Tujuannya adalah untuk memastikan bahwa model konseptual mendukung transaksi yang dibutuhkan. 9. Meninjau kembali model data konseptual dengan pengguna Tujuannya adalah untuk meninjau kembali model data konseptual dengan pengguna untuk memastikan bahwa model tersebut sudah sesuai dengan representasi yang sebenarnya dari kebutuhan data perusahaan. 2.1.8.2 Perancangan Logikal Perancangan basis data logikal adalah proses membangun sebuah model data yang digunakan dalam sebuah perusahaan berdasarkan model data spesifik, tetapi tidak bergantung pada DBMS tertentu dan pertimbangan fisikal lainnya. Perancangan ini merupakan tahap kedua dimana secara objektif dilakukan untuk menerjemahkan model data konseptual menjadi model data logikal dan kemudian memvalidasi model ini untuk memeriksa bahwa model tersebut sudah benar secara struktur dan mampu mendukung transaksi yang dibutuhkan. Langkah-langkah untuk membangun model data logikal, yaitu : 1. Penurunan relasi untuk model data logikal Tujuannya adalah untuk membuat relasi untuk model data logikal untuk merepresentasikan entitas, relasi, dan atribut yang telah diidentifikasi. 2. Validasi relasi menggunakan normalisasi Tujuannya adalah untuk memvalidasi relasi pada model data logikal menggunakan normalisasi. 3. Validasi relasi terhadap transaksi pengguna Tujuannya adalah untuk memastikan bahwa relasi pada model data logikal mendukung transaksi yang dibutuhkan. 4. Memeriksa integrity constraints Tujuannya adalah untuk memeriksa integrity constraints yang direpresentasikan pada model data logikal. 5. Meninjau kembali model data logikal dengan pengguna Tujuannya adalah untuk meninjau kembali model data logikal dengan pengguna untuk memastikan bahwa model tersebut sesuai dengan representasi yang sebenarnya dari kebutuhan data perusahaan. 6. Menggabungkan model data logikal menjadi model global (langkah optional) Tujuannya adalah untuk menggabungkan model data lokal logikal menjadi sebuah model data logikal global yang merepresentasikan semua pandangan pengguna basis data. 7. Memeriksa perkembangan di masa mendatang Tujuannya adalah untuk menentukan apakah ada perubahan signifikan yang memungkinkan di masa mendatang dan untuk menilai apakah model data logikal dapat mengakomodasi perubahan. 2.1.8.3 Perancangan Fisikal Perancangan basis data fisikal adalah proses menghasilkan sebuah deskripsi implementasi basis data pada secondary storage. Menjelaskan relasi dasar, organisasi file, dan indeks yang digunakan untuk mendapatkan akses yang efisien terhadap data, dan integrity constraints terkait serta langkah-langkah keamanan. Terdapat beberapa tahap untuk membangun model data fisikal, yaitu : a. Tahap ketiga : Menerjemahkan model data logikal untuk DBMS yang dituju. Secara objektif dilakukan untuk menghasilkan sebuah skema relasi basis data dari model data logikal yang bisa diimplementasikan pada DBMS yang dituju. Tahap ini terdiri dari 3 langkah, yaitu : 1. Merancang relasi dasar Tujuannya adalah menentukan bagaimana cara merepresentasikan relasi dasar yang telah diidentifikasi dalam model data logikal pada DBMS yang dituju. 2. Merancang representasi dari derived data Tujuannya adalah menentukan merepresentasikan berbagai bagaimana cara derived data yang terdapat dalam model data logikal pada DBMS yang dituju 3. Merancang batasan umum Tujuannya adalah merancang batasan umum pada DBMS yang dituju. b. Tahap keempat : Merancang organisasi file dan indeks. Secara objektif dilakukan untuk menentukan organisasi file yang optimal untuk menyimpan relasi dasar dan indeks yang dibutuhkan untuk mencapai kinerja yang dapat diterima, yaitu keadaan dimana relasi dan tupel akan disimpan pada secondary storage. Tahap ini terdiri dari 4 langkah, yaitu : 1. Menganalisa transaksi Tujuannya adalah untuk mengetahui fungsi dari transaksi yang akan berjalan pada basis data dan untuk menganalisa transaksi yang penting. 2. Memilih organisasi file Tujuannya adalah untuk menentukan organisasi file yang yang efisien untuk setiap relasi dasar. 3. Memilih indeks Tujuannya adalah untuk menentukan apakah menambah indeks akan meningkatkan kinerja sistem. 4. Memperkirakan besarnya tempat penyimpanan yang dibutuhkan Tujuannya adalah untuk memperkirakan besar tempat penyimpanan yang akan dibutuhkan oleh basis data. c. Tahap kelima : Merancang user views. Secara objektif dilakukan untuk merancang user views yang teridentifikasi selama tahap pengumpulan dan analisa kebutuhan dari siklus pengembangan sistem basis data. d. Tahap keenam : Merancang mekanisme keamanan. Secara objektif dilakukan untuk merancang mekanisme keamanan untuk basis data yang ditentukan oleh pengguna selama tahap pengumpulan kebutuhan dari siklus pengembangan sistem basis data. e. Tahap ketujuh : Mempertimbangkan penggunaan redundansi terkontrol. Secara objektif dilakukan untuk menentukan apakah menggunakan redundansi secara terkendali dengan aturan normalisasi akan meningkatkan kinerja sistem. Tahap ini terdiri dari 7 langkah, yaitu : 1. Menggabungkan relasi one-to-one (1:1) 2. Menduplikasi atribut non-key pada relasi one-to-many (1:*) untuk mengurangi join 3. Menduplikasi atribut foreign key pada relasi one-to-many (1:*) untuk mengurangi join 4. Menduplikasi atribut-atribut pada relasi many-to-many (*:*) untuk mengurangi join 5. Memperkenalkan repeating groups 6. Membuat extract tables 7. Mempartisi relasi-relasi f. Tahap kedelapan : Mengawasi dan menyempurnakan sistem operasional. Secara objektif dilakukan untuk mengawasi sistem operasional dan meningkatkan kinerja sistem untuk memperbaiki rancangan yang tidak sesuai atau mempertimbangkan adanya perubahan kebutuhan. 2.1.9 Normalisasi Menurut Connolly dan Begg (2010, p416), normalisasi adalah sebuah teknik untuk menghasilkan sekumpulan relasi dengan properti yang diinginkan, yang akan memberikan kebutuhan data bagi perusahaan. Relasi adalah sebuah tabel dengan kolom dan baris. Menurut Michael V. Mannino (2001, p267), normalisasi adalah sebuah proses untuk menghapus redundansi pada sebuah tabel sehingga tabel tersebut mudah dimodifikasi. Proses-proses normalisasi terdiri dari (Connolly dan Begg, 2010, p430) : 1. Unnormalized Form (UNF) Sebuah tabel yang terdiri dari satu atau lebih kelompok yang berulang. UNF merupakan bentuk awal tabel yang belum di normalisasi. Proses normalisasi UNF menjadi 1NF melibatkan penghilangan repeating groups. 2. First Normal Form (1NF) Sebuah relasi dimana titik temu dari setiap baris dan kolom mengandung satu dan hanya satu nilai saja. Proses normalisasi 1NF menjadi 2NF melibatkan penghilangan partial dependencies. 3. Second Normal Form (2NF) Sebuah relasi yang telah memenuhi 1NF dan setiap atribut yang bukan primary key sepenuhnya bergantung secara fungsional pada primary key. Proses normalisasi 2NF menjadi 3NF melibatkan penghilangan transitive dependencies. 4. Third Normal Form (3NF) Sebuah relasi yang telah memenuhi 1NF dan 2NF dan dimana tidak ada lagi atribut yang bukan primary key bergantung secara transitif pada primary key. 2.2 Teori yang Terkait Tema Penelitian (Tematik) Merupakan kumpulan dari penjelasan dan pengertian mengenai teori pendukung dalam perancangan dan software yang digunakan dalam perancangan. 2.2.1 Data Flow Diagram (DFD) Menurut Satzinger, Jackson, Burd (2009, p206) data flow diagram adalah sebuah model sistem grafis yang menampilkan semua kebutuhan utama untuk sistem informasi dalam satu diagram seperti input dan output, proses dan penyimpanan data. Simbol-simbol dari data flow diagram, yaitu: 1. Process Instruksi atau langakah yang diikuti yang mengubah input menjadi output (sebuah komputer atau orang atau keduanya yang melakukan kerja). Gambar 2.10 Simbol Process DFD 2. Data Flow Aliran data dari satu tempat ke tempat lain, seperti sebuah input atau output ke sebuah proses. Gambar 2.11 Simbol Data Flow 3. External Agent Sumber atau tujuan dari data diluar sistem. Gambar 2.12 Simbol External Agent 4. Data Store Data saat jeda, disimpan untuk penggunaan selanjunya. Biasanya berhubungan dengan data entitas pada sebuah entity relationship diagram. Gambar 2.13 Simbol Data Store 2.2.2 Flowchart Menurut Soeherman (2008, p133) Flowchart atau bagan alur merupakan metode untuk menggambarkan tahap-tahap penyelesaian masalah (prosedur) beserta aliran data dengan simbol-simbol standar yang mudah dipahami. Tujuan utama penggunaan flowchart adalah untuk menyederhanakan rangkaian proses atau prosedur untuk memudahkan pemahaman pengguna terhadap informasi tersebut. Simbol-simbol yang digunakan pada flowchart, yaitu: a. Dokumen Simbol yang menyatakan input berasal dalam bentuk kertas atau output dicetak ke kertas. Gambar 2.14 Simbol Dokumen dalam Flowchart b. Proses Simbol yang menunjukkan pengolahan yang dilakukan oleh komputer. Gambar 2.15 Simbol Proses dalam Flowchart c. Keputusan Simbol untuk menunjukkan kondisi yang menghasilkan beberapa kemungkinan jawaban/aksi yang dilakukan user. Gambar 2.16 Simbol Keputusan dalam Flowchart d. Manual Simbol yang menunjukkan pengolahan yang tidak dilakukan oleh komputer. Gambar 2.17 Simbol Manual dalam Flowchart e. Terminal Simbol untuk menunjukkan permulaan atau akhir dari suatu program. Gambar 2.18 Simbol Terminal dalam Flowchart 2.2.3 State Transition Diagram (STD) Menurut Whitten & Bentley (2007, p635), State Transition Diagram adalah sebuah alat yang digunakan untuk menggambarkan urutan dan variasi dari layar yang bias terjadi selama sesi user. Komponen-komponen dari STD, yaitu 1. Rectangle Digunakan untuk menunjukkan tampilan layar (state). Gambar 2.19 Simbol Rectangle 2. Arrow Digunakan untuk menunjukkan aliran control dan kejadian yang menyebabkan layar menjadi aktif atau mendapat fokus. Action Gambar 2.20 Simbol Arrow 2.2.4 Visual Basic Merupakan sebuah bahasa pemrograman yang menawarkan IDE visual untuk pembuatan program piranti lunak dengan basis sistem operasi Microsoft.Visual basic merupakan hasil turunan dari bahasa BASIC (Beginner’s All-purpose Symbolic Instruction Code) yang diciptakan oleh Prof. John Kemeny dan Thomas Eugene Kurtz. 2.2.5 Crystal Report Menurut Junindar (2008, p12), Crystal Report adalah program third party (pihak ketiga, artinya diluar Microsoft dan pemakai) untuk membuat laporan pada aplikasi windows dan web. Sekarang, program crystal report diintegrasikan ke dalam VB .NET sehingga menjadi bagian dari lingkungan pengembangan atau IDE (Integrated Development Environment) aplikasi VB .NET Crystal report merupakan salah satu product report design yang banyak digunakan para developer. Membuat report dengan Report Expert: 1. Mendesain report hasil Report Expert. 2. Menyimpan desain report ke file. 3. Menampilkan report dari Project Visual Basic. 4. Membatasi data dengan Selection Formula. Membuat report dengan cara mendesain langsung: 1. Melakukan desain dengan crystal report. 2. Mengatur formula pada runtime. 2.2.6 Teori Maintenance/Pemeliharaan Menurut Ariani (2008), pemeliharaan dapat didefinisikan sebagai suatu kombinasi dari berbagai tindakan untuk menjaga, memperbaiki dan memelihara fasilitas / peralatan pabrik serta mengadakan perbaikan atau penggantian yang diperlukan untuk mencapai suatu keadaan operasi sesuai dengan yang telah direncanakan. 2.2.7 Teori Stock/Persediaan Menurut Warren, Reeve dan Fess (2008) persediaan digunakan untuk mengindikasikan: 1. Barang dagang yang disimpan untuk kemudian dijual dalam operasi bisnis perusahaan. 2. Bahan yang dipergunakan dalam proses produksi atau yang disimpan untuk tujuan itu. Menurut Assauri (2004) persediaan adalah sejumlah bahan-bahan, parts-parts yang disediakan dan bahan-bahan dalam proses yang terdapat dalam perusahaan untuk proses produksi, serta barang-barang jadi atau produk yang disediakan untuk memenuhi permintaan dari konsumen atau langganan setiap waktu. 2.3 Hasil Penelitian atau Produk Sebelumnya Berdasarkan Jurnal Analisis dan Perancangan Basis Data untuk Mendukung Aplikasi ERP Education pada Bina Nusantara University (Studi Kasus : Academic Management and Content Preparation), Maret 2009 : 1. Database adalah koleksi dari data-data yang terkait secara logis dan deskripsi dari data-data tersebut, yang dirancang untuk memenuhi kebutuhan informasi dari suatu organisasi. 2. Terdapat delapan keuntungan pendekatan database, yaitu: dengan menggunakan • Redundansi dapat dikurangkan. • Ketidakkonsistenan dapat dihindari. • Data dapat dibagikan. • Standar-standar dapat diselenggarakan. • Pembatasan keamanan dapat diselenggarakan. • Integritas dapat dipertahankan. • Keperluan yang bertentangan dapat diseimbangkan. • Tersedianya dukungan untuk transaksi. 3. DBMS adalah perangkat lunak yang berinteraksi dengan program aplikasi pengguna dan database. 4. Untuk menggambarkan sebuah database digunakan Entity Relationship Model. Tabel-tabel dalam database digambarkan dalam wujud entity. Beberapa konsep dasar dalam E-R Model, yaitu : • Tipe Entiti Menggambarkan kumpulan dari objek yang ada pada “dunia nyata” dengan properti yang sama. Setiap tipe entity dilambangkan dengan sebuah persegi panjang yang diberi nama dari entity tersebut. • Tipe Relasi Sekumpulan hubungan antartipe entitas yang memiliki arti. Tipe relasi digambarkan dengan sebuah garis yang menghubungkan tipe entitas-tipe entitas yang saling berhubungan. • Attribut Properti sebuah entitas atau relationship. Atribut menampung nilai yang menjelaskan setiap entity dan menggambarkan bagian utama dari data yang disimpan di dalam basis data. Gambar 2.21 E-R Model Berdasarkan Jurnal Basis Data, ICT Research Center UNAS Vol.3 No.2 November 2008 : 1. Basis data adalah dua atau lebih simpanan data dengan elemen-elemen data penghubung, yang dapat diakses lebih dari satu cara. Basis data dinyatakan dengan tehnik-tehnik formal dan manajemen basis data. Dari definisi diatas, maka dapat dikatakan bahwa basis data merupakan kumpulan dari data yang saling berhubungan satu dengan yang lainnya. 2. Pembuatan sistem informasi penjualan dapat digambarkan dengan E-RD yang diawali dari Pelanggan sampai terjadi cetak kwitansi. Kegiatan ini menggambarkan data dalam keadaan diam, bukan bagaimana proses terhadap data itu terjadi. Gambar 2.22 E-RD 3. Perancangan proses yang diusulkan untuk penjualan tunai pada PT. Klaten Bercahaya dapat digambarkan dalam struktur Diagram DFD (Data Flow Diagram). Gambar 2.23 DFD 35