BAB 2 LANDASAN TEORI 2.1 Pengertian Basis Data Basis data adalah kumpulan data yang secara logika saling berhubungan dan merupakan deskripsi dari data yang dirancang untuk memenuhi kebutuhan informasi suatu organisasi (Conolly, 2005, p15). Menurut Date (2000, p10), basis data adalah sebuah kumpulan data yang cenderung digunakan secara terus-menerus oleh sistem aplikasi dari beberapa perusahaan. 2.2 Database Management System (DBMS) Database Management System (DBMS) adalah sebuah sistem software yang memungkinkan para user untuk mendefinisikan, membuat, mengelola dan menyediakan suatu kontrol akses ke database (Conolly, 2005, p16). Secara khusus DBMS menyediakan fasilitas sebagai berikut : 1. Data Definition Language (DDL) Memungkinkan user untuk mendefinisikan database, membuat spesifikasi tipe data, struktur data dan constraint data untuk disimpan dalam database. Beberapa statement yang digunakan dalam Data Definition Language antara lain (Conolly, 2005, p169) : a. Create Table Membuat tabel dengan terlebih dahulu menentukan tipe data setiap kolom. 6 7 b. Alter Table Merubah struktur tabel yang telah dibuat sebelumnya dengan membuang atau menambah kolom dan constraint. c. Drop Table Menghapus tabel yang mengalami pengulangan (redundant) beserta data di dalamnya yang saling berkaitan. d. Create Index Membuat index pada sebuah tabel. e. Drop Index Menghapus index yang telah dibuat sebelumnya. 2. Data Manipulation Language (DML) Memungkinkan user untuk menambah (insert), mengubah (update), menghapus (delete) dan memperoleh kembali (retrieve) data dari database. DML merupakan bahasa yang bertujuan memudahkan pemakai untuk mengakses data (untuk kemudian menampilkannya atau memanipulasinya) sebagaimana direpresentasikan oleh model data. DML juga sering disebut sebagai Query Language. DML terdiri dari dua jenis, yaitu : a. Prosedural Mensyaratkan agar pemakai menentukan data apa yang diinginkan serta menyebutkan bagaimana cara mendapatkannya. b. Nonprosedural Memungkinkan pemakai dapat menentukan data apa yang diinginkan tanpa menyebutkan bagaimana cara mendapatkannya. 8 3. Pengontrol akses basis data, sebagai contoh : a. Suatu sistem keamanan yang mencegah user yang tidak berkepentingan mengakses database. b. Suatu sistem terintegrasi yang memelihara konsistensi data yang disimpan. c. Suatu sistem kontrol yang memungkinkan user untuk mengakses data secara bersama-sama. d. Suatu sistem kontrol yang dapat mengembalikan data dalam keadaan seperti sebelumnya apabila terjadi error pada perangkat keras atau perangkat lunak. e. Suatu katalog yang dapat mendeskripsikan data dalam basis data sehingga dapat diakses oleh pengguna. DBMS memiliki beberapa keuntungan dan kerugian, yaitu (Conolly, 2005, p26) : 1. Keuntungan DBMS antara lain : a. Menyediakan kontrol terhadap pengulangan data. b. Data yang konsisten Dengan kontrol terhadap pengulangan data maka akan mengurangi resiko data menjadi tidak konsisten. c. Lebih banyak informasi yang diperoleh dari data yang sama Data operasional yang terintegrasi memungkinkan organisasi menerima informasi tambahan dari data yang sama. d. Data dapat digunakan secara bersama-sama oleh semua pengguna yang sah. e. Meningkatkan integritas data. 9 f. Meningkatkan keamanan terhadap perlindungan database dari pengguna yang tidak sah. g. Mengizinkan Database Administrator (DBA) menetapkan dan menjalankan standar kebutuhan. h. Menghemat biaya dengan menggabungkan semua data operasional organisasi menjadi satu database. i. Menyeimbangkan kebutuhan antara satu user dengan user lainnya yang saling bertentangan. j. Meningkatkan pengaksesan data dan hasilnya. k. Meningkatkan produktivitas. l. Meningkatkan pemeliharaan melalui data independence. m. Meningkatkan concurrency Apabila terdapat dua atau lebih pengguna mengakses file yang sama, maka proses pengaksesan tidak akan saling menganggu. n. Meningkatkan backup dan recovery untuk kondisi apabila terjadi kegagalan sistem. 2. Kerugian DBMS antara lain : a. Memiliki sistem software yang lebih kompleks. b. Membutuhkan ukuran yang lebih besar. c. Biaya yang dikeluarkan bergantung pada keadaan dan fungsi yang disediakan. d. Membutuhkan biaya tambahan untuk hardware. e. Biaya konversi untuk menjalankan DBMS yang baru. 10 f. Performance yang kurang cepat karena aplikasi dibuat tidak secara spesifik melainkan general. g. Dampak yang luas jika terjadi kegagalan. 2.3 Entity Relationship (ER) Modelling Entity Relationship (ER) merupakan sebuah abstraksi dan representasi konseptual dari data. Entity Relationship Modelling adalah pendekatan top-down untuk merancang database dimana proses perancangan diawali dengan mengidentifikasi data utama yaitu entity dan relationship yang keduanya harus direpresentasikan dalam sebuah model (Connoly, 2005, p342). Berdasarkan Connolly (Connolly 2005, p343-p356) Model Entity Relationship (ER) memiliki beberapa konsep dasar, yaitu : 1. Entity Types (Tipe Entity) Tipe Entity merupakan bentuk representasi dari kumpulan objek di “real world” dengan properti yang sama, dimana tipe entity tersebut memiliki keberadaan yang independen yaitu dapat menjadi objek yang nyata (fisik) maupun tidak nyata (abstrak). Entity occurrence adalah objek dari tipe entity yang dapat diidentifikasi secara unik. 2. Relationship Types (Tipe Relasi) Tipe relasi merupakan sebuah kumpulan hubungan yang memiliki arti antara tipe-tipe entity. 11 Relationship occurrence adalah hubungan yang dapat diidentifikasi secara unik, dimana hubungan tersebut meliputi satu kejadian dari setiap tipe entity yang berpartisipasi. Degree of Relationship Type (Derajat Tipe Relasi) Merupakan jumlah tipe entity yang berpartisipasi dalam relasi. Entity yang berkaitan dalam tipe relasi dikenal sebagai participant dalam relasi. Jumlah participant dalam tipe relasi dikenal sebagai degree dari relasi. Relasi dengan degree dua disebut binary, sedangkan relasi dengan degree tiga disebut ternary, dan relasi dengan degree empat disebut quaternary. Recrusive Relationship (Relasi Rekrusif) Merupakan sebuah tipe relasi dimana tipe entity yang sama berpartisipasi lebih dari satu kali dalam peran yang berbeda. 3. Attribute Attribute merupakan properti dari sebuah entity atau tipe relasi. Attribute domain adalah kumpulan nilai-nilai yang diperbolehkan untuk satu atau lebih atribut. Simple dan Composite Attribute Simple attribute adalah atribut yang tersusun dari satu komponen secara independen sehingga tidak dapat dipecah menjadi atribut yang lebih kecil. 12 Composite attribute adalah atribut yang tersusun dari banyak komponen secara independen sehingga dapat dipecah menjadi komponen independen yang lebih kecil. Single-Valued dan Multi-Valued Attribute Single-Valued Attribute adalah atribut yang hanya memiliki satu nilai untuk setiap tipe entity. Sebagian besar atribut adalah single-value. Multi-Valued Attribute adalah atribut yang memiliki banyak nilai untuk setiap tipe entity. Derived Attribute Merupakan sebuah atribut yang merepresentasikan nilai yang berasal dari nilai sebuah atribut yang berhubungan atau kumpulan atribut sehingga tidak perlu berada dalam tipe entity yang sama. Keys o Candidate key adalah minimal set dari atribut yang secara unik mengidentifikasi suatu tipe entity. o Primary key adalah candidate key yang dipilih untuk mengidentifikasi secara unik suatu tipe entity. Candidate key yang tidak dipilih sebagai primary key disebut alternate key. o Composite key adalah candidate key yang terdiri dari dua atau lebih atribut. 13 4. Strong dan Weak Entity Type Strong entity type adalah sebuah tipe entity yang keberadaannya tidak bergantung pada tipe entity lain. Karakteristiknya adalah setiap entity dapat diidentifikasi dengan primary key dari tipe entity tersebut. Weak entity types adalah sebuah tipe entity yang keberadaannya bergantung pada tipe entity lain. Karakteristiknya adalah atribut yang terdapat pada entity tersebut tidak dapat mengidentifikasi tipe entity secara unik. 5. Attributes on Relationship Attributes on Relationship merupakan atribut pada relasi yang mengidentifikasi hubungan antar entity. 6. Structural Constraints Tipe utama batasan hubungan didalam relationship disebut multiplicity. Berikut jenis-jenis multiplicity menurut Connolly (2005, p357): 14 One-to-one (1:1) Relationship Setiap entity maksimal hanya dapat memiliki satu relasi dengan entity lain. Entity 1 Relasi Entity 2 r1 A C B D r2 Gambar 2.1 One-to-one (1:1) Relationship One-to-many (1:*) Relationship Setiap entity dapat memiliki satu atau lebih relasi dengan entity lain. Entity 1 Relasi Entity 2 r1 D A r2 B E r3 C F Gambar 2.2 One-to-many (1:*) Relationship 15 Many-to-many (*:*) Relationship Setiap entity dapat memiliki lebih dari satu relasi dengan entity lain. Entity 1 Relasi r1 A B C r2 Entity 2 D E r3 F r4 G Gambar 2.3 Many-to-many (*:*) Relationship 2.4 Siklus Hidup Aplikasi Basis Data Menurut Connolly & Begg (2005, p283), basis data merupakan komponen dasar dari sebuah sistem informasi yang pengembangan dan penggunaan-nya dilihat dari perspektif kebutuhan yang lebih luas dari sebuah organisasi. Oleh karena itu, siklus hidup sistem informasi organisasi tidak dapat dipisahkan sehingga terhubung pada siklus hidup sistem basis data yang mendukungnya. Siklus hidup pengembangan sistem basis data (The Database System Development Lifecycle – DSDLC) mempunyai tahap-tahap yang tidak sepenuhnya berurutan namun melibatkan beberapa perulangan pada tahap-tahap sebelumnya melalui feedback loops. Tahapan siklus hidup aplikasi basis data yang dimaksud adalah sebagai berikut: 16 Database planning System definition Requirements collection and analysis Database design Conceptual database design DBMS selection (optional) Application design Logical database design Physical database design Prototyping (optional) Implementation Data conversion and loading Testing Operational maintenance Gambar 2.4 Siklus Hidup Pengembangan Sistem Basis Data Connolly & Begg (2005, p284) 17 Penjelasan dari setiap tahap pada gambar siklus hidup di atas adalah sebagai berikut: 1. Database Planning (Perencanaan Basis Data) Perencanaan basis data merupakan beberapa kegiatan manajemen yang memperbolehkan tahap-tahap siklus hidup pengembangan sistem basis data untuk dapat dilaksanakan se-efisien dan se-efektif mungkin. Tahap pertama yang paling penting dalam perencanaan basis data didefinisikan oleh dua hal yaitu: a. Mission statement Mission statement adalah misi yang membantu menerangkan tujuan utama sistem basis data dan menyediakan jalur yang lebih jelas kearah pembuatan sistem basis data yang efektif dan efisien. Dalam organisasi, definisinya akan ditentukan oleh orang-orang yang menjalankan proyek basis data. Setelah Mission statement didefinisikan maka aktivitas selanjutnya akan melibatkan identifikasi mission objectives-nya. b. Mission objectives Setiap mission objectives harus dapat mengidentifikasi tugas tertentu yang dapat didukung oleh sistem basis data. Sebagai asumsinya, apabila sistem basis data dapat mendukung mission objectives maka mission statement juga harus dapat dipenuhi. Perencanaan basis data juga harus mencakup standar-standar pengembangan yang mengatur bagaimana data akan dikumpulkan, bagaimana format harus dilengkapi, dokumentasi yang akan diperlukan, dan bagaimana desain dan pelaksanaan harus diproses. 18 2. System Definition (Definisi Sistem) Mendeskripsikan ruang lingkup dan batasan-batasan dari aplikasi basis data dan beberapa user view yang utama. Tampilan user bergantung kepada apa yang diminta dari aplikasi database berdasarkan sudut pandang pekerjaan tertentu. 3. Requirements Collection and Analysis (Analisa dan Pengumpulan Kebutuhan) Proses pengumpulan dan analisa informasi kebutuhan dari organisasi yang harus didukung oleh sistem basis data. Dengan menggunakan informasi ini, persyaratan sistem yang baru dapat diidentifikasi. Pada proses pengumpulan terdapat banyak teknik yang dapat digunakan. Teknik yang digunakan disebut fact finding. Informasi yang dikumpulkan berdasarkan tiap user view meliputi: Deskripsi data yang digunakan atau dihasilkan; Rincian bagaimana data akan digunakan atau dihasilkan; Persyaratan tambahan untuk basis data yang baru. Informasi ini kemudian dianalisa untuk mengidentifikasi persyaratan (atau fitur-fitur) yang akan dimasukkan ke dalam sistem basis data yang baru. 4. Database Design (Perancangan Basis Data) Database design merupakan proses pembuatan sebuah desain yang akan mendukung mission statement dan mission objectives perusahaan untuk sistem basis data yang diperlukan. Terdapat dua pendekatan pada desain basis data yang disebut bottom-up dan top-down. Pendekatan bottom-up lebih kepada perancangan basis data 19 yang sederhana dengan sejumlah atribut yang relatif kecil. Pendekatan ini dimulai dari tingkat yang paling dasar atribut (yaitu, properti-properti entitas dan hubunganya), yang melalui analisis hubungan antar atribut akan dikelompokkan ke dalam relasi yang mewakili tipe dari entitas dan hubungan diantara entitas tersebut. Pendekatan top-down lebih kepada desain basis data yang lebih kompleks. Pendekatan ini dimulai dengan pengembangan model data yang mengandung beberapa entitas tingkat atas dan hubungannya. Kemudian akan dilakukan secara berturut-turut perbaikan top-down untuk mengidentifikasi tingkat bawah entitas, hubungannya dan atribut yang terkait. Pendekatan desain basis data selain yang telah disebutkan, yaitu insideout–pendekatan yang lebih mirip ke bottom-up, dan mixed strategy– pendekatan yang menggabungkan pendekatan bottom-up dan top-down. Selain pendekatan di atas, tahap perancangan basis data ini fokus kepada tiga fase yaitu perancangan basis data konseptual, logikal dan fisikal, yang ketiganya akan dibahas lebih rinci di sub bab berikutnya. 5. DBMS Selection (Pemilihan DBMS) Pemilihan DBMS yang tepat untuk mendukung basis data merupakan pilihan yang optional, artinya dapat dilakukan apabila sekiranya perlu dilakukan atau dapat juga tidak dilakukan. Tahapan utama dalam memilih sebuah DBMS yaitu: a. Mendefinisikan kerangka acuan studi; b. Difokuskan ke dua atau tiga produk dan membuat perbandingannya; 20 c. Evaluasi produk-produk; d. Merekomendasikan sebuah produk DBMS tertentu dan menghasilkan laporan. 6. Application Design (Perancangan Aplikasi) Perancangan user interface dan program aplikasi yang menggunakan serta memproses basis data. Dalam perancangannya spesifikasi persyaratan user harus sudah termasuk dalam perancangan aplikasi untuk sistem basis data, bagaimana program aplikasi mengakses basis data dan perancangan transaksinya. Selain itu, perancangan antarmuka pengguna juga harus “userfriendly” dimana pengguna dapat dengan mudah menggunakan program aplikasi yang telah dibuat. 7. Prototyping Pada poin tertentu selama proses perancangan, tahap ini merupakan optional (dapat dibuat atau tidak). Apabila ingin membuatnya kita dapat memilih untuk sepenuhnya menyelesaikan tahapan sistem basis data. Prototyping adalah membangun sebuah model kerja dari suatu sistem basis data. Ada dua jenis strategi prototyping yang sering digunakan, yaitu: a. requirements prototyping–prototipe yang digunakan untuk menentukan persyaratan dari sebuah proposal sistem basis data. Apabila proposal telah dipenuhi maka prototipe-nya dapat dibuang. b. evolutionary prototyping–digunakan untuk tujuan yang sama dengan requirements prototyping. Namun terdapat perbedaan yaitu prototipe-nya 21 tidak dibuang melainkan dikembangkan menjadi sistem basis data yang bekerja. 8. Implementation (Implementasi) Pemrosesan dari penulisan definisi database secara konseptual, eksternal dan internal, pembuatan file-file database yang kosong serta implementasi aplikasi software. Menurut Connolly (2005, p304), implementation adalah wujud fisik dari pengembangan database dan program aplikasi. Implementasi menggunakan Data pembuatan Definition file-file Language database (DDL) dilakukan dari dengan DBMS atau menggunakan Graphical User Interface (GUI). User view juga diimplementasikan pada tahap ini. Sedangkan implementasi aplikasi software adalah bentuk dari transaksi database yang di-implementasikan dengan menggunakan Data Manipulation Language (DML). Biasanya sudah terdapat dalam bahasa pemrograman. 9. Data Conversion and Loading (Konversi Data dan Loading) Database ditempatkan dengan baik, sehingga jika ingin memanggil data secara langsung ataupun merubah file–file yang sudah ada dapat ditempatkan kembali sesuai dengan format sistem database-nya. Tahap ini diperlukan ketika sistem database yang baru akan menggantikan sistem database yang lama. Umumnya DBMS saat ini sudah memiliki fungsi untuk memasukan file database yang lama kedalam database yang baru. Fungsi ini memudahkan pihak pengembang untuk mengkonversi 22 dan menggunakan program aplikasi pada sistem yang lama ke dalam sistem yang baru. 10. Testing (Pengujian) Sebuah sistem yang baru harus di-test dan divalidasi (diperiksa keabsahannya). Menurut Connolly (2005, p305), testing adalah proses menguji program aplikasi untuk mengetahui adanya kesalahan. Beberapa keuntungan melakukan testing : Mendeteksi adanya error (kesalahan), baik dari aplikasi software maupun struktur database. Mengetahui kebutuhan performance dan spesifikasi yang dibutuhkan oleh database dan program aplikasi. Testing harus dilakukan dengan strategi pengujian yang terencana dan hati-hati. Salah satu cara untuk menguji sistem adalah dengan menguji database pada hardware (perangkat keras) yang berbeda. Hal ini jarang dilakukan karena takut merusak data asli. Namun jika hendak dilakukan maka diperlukan back up untuk mengantisipasi kesalahan. 11. Operational Maintenance (Pemeliharaan operasional) Selama operasi, sistem di-monitor dan dipelihara. Baik data maupun program aplikasi masih dapat terus tumbuh dan berkembang. Tahap ini meliputi : Me-monitor performance system, bila performance berada ditingkat yang rendah maka dilakukan tunning. Memelihara dan meng-upgrade aplikasi database (jika dibutuhkan). 23 Sebuah DBMS biasanya menyediakan berbagai fasilitas untuk memudahkan administrasi database dalam melakukan pengawasan sehingga memungkinkan sistem pemantauan memberikan informasi tentang pemakaian database. 2.5 Perancangan Basis Data Perancangan basis data ini fokus kepada perancangan metodologi yang terdiri dari beberapa tahapan yang tiap tahap-nya mempunyai sejumlah tahap lagi. Perancangan metodologi ini bertujuan untuk membimbing perancang dalam memilih teknik yang cocok seperti bagaimana mereka merencanakan, mengatur, mengontrol dan mengevaluasi basis data pada tiap tahapan pengembangan proyeknya. Menurut Connolly & Begg (2005, p439), proses perancangan terbagi menjadi tiga fase utama yaitu: 1. Perancangan basis data konseptual Perancangan basis data konseptual adalah proses membangun sebuah model data yang digunakan dalam perusahaan, terlepas dari semua pertimbangan fisik yang ada. Fase perancangan basis data konseptual dimulai dengan pembuatan data model konseptual dari perusahaan, di mana semua rincian pelaksanaannya berdiri sendiri seperti target DBMS (Database Management System), program aplikasi, bahasa pemrograman, hardware platform, masalah performa, atau pertimbangan fisik lainnya. Tahap-tahap perancangan basis data konseptual meliputi: 24 Langkah 1 Membangun model data konseptual 1.1 Mengidentifikasi beberapa tipe entity Langkah awal dalam membangun model data konseptual adalah mengidentifikasi tipe entitas. Entity adalah sesuatu yang mudah diidentifikasi dari suatu sistem database. Entity bisa berupa objek, orang, tempat, kejadian atau konsep yang informasinya disimpan. Tujuan dari langkah ini adalah untuk menentukan kebutuhan pengguna. Terkadang sulit untuk mengidentifikasi sebuah entity karena pengguna diperhatikan juga berbicara dalam kata-kata yang analogi. Maka mengandung perlu synonym (kesamaan arti) atau homonym (kesamaan penulisan, tapi beda arti). Dokumentasi tahap ini berupa daftar entitas, keterangan entitas dan nama lain entitas. 1.2 Mengidentifikasi beberapa tipe relationship Setelah mendapatkan tipe-tipe entity, langkah selanjutnya adalah mengidentifikasi relationship (hubungan) antar entity. Umumnya hubungan yang terjadi antar entity bersifat biner, yaitu hubungan yang melibatkan dua entitas. Namun harus diteliti kembali untuk hubungan kompleks yang melibatkan lebih dari dua entitas dan juga hubungan rekursif yang melibatkan satu entitas saja. Untuk menggambarkan hubungan-hubungan tersebut digunakan Entity Relationship Diagram. Dokumentasi tahap ini 25 berupa daftar hubungan antar entitas, beserta entitas yang terlibat didalamnya. 1.3 Mengidentifikasi dan mengasosiasikan atribut dengan beberapa tipe entitas dan relationship Tahap ini mengidentifikasikan atribut-atribut pada setiap entitas. Ada beberapa hal yang perlu diperhatikan yaitu : Apakah atribut tersebut sederhana atau komposit. Atribut komposit adalah atribut yang tersusun dari beberapa atribut kecil, seperti atribut alamat dapat dipecah-pecah menjadi nama jalan, kota, propinsi, kode pos. Apakah atribut tersebut memiliki satu nilai atau banyak nilai. Atribut yang memiliki banyak nilai misalnya atribut nomor telepon. Atribut ini bisa dipisahkan kedalam entitas baru. Apakah atribut tersebut merupakan atribut turunan. Atribut turunan adalah atribut yang didapat dari kalkulasi atributatribut lain. Atribut semacam ini harus ditandai untuk mencegah terjadinya kehilangan informasi. Apakah entitas, relasi dan atribut untuk view tidak biasa untuk menjadi jelas saat satu atau lebih entitas, relasi dan atribut dihilangkan dari seleksi sebelumnya. Saat atribut diidentifikasi, berikan nama yang dapat dengan mudah dimengerti oleh user. Dokumentasikan informasi berikut untuk setiap atribut : 26 Nama atribut dan keterangannya; Tipe data dan ukurannya; Nama lain dari atribut jika ada; Jika atribut tersebut atribut kombinasi, sertakan informasi mengenai atribut pembentuknya; Apakah atribut tersebut multi-value; Apakah atribut tersebut merupakan atribut turunan, jika ya bagaimana mengkalkulasi nilainya; Nilai default atribut tersebut. 1.4 Menentukan beberapa domain atribut Setelah itu tahap berikutnya adalah menentukan domain untuk tiap atribut. Tahap ini meliputi : Menentukan himpunan nilai yang boleh diisikan pada atribut Menentukan ukuran dan format atribut Selain dua hal diatas, dapat juga disertakan informasi tentang operasi-operasi yang boleh dilakukan pada atribut tersebut. Dokumentasikan nama dan karakteristiknya saat mengidentifikasi atribut domain. 1.5 Menentukan kandidat utama dan kunci atribut alternatif Mengidentifikasi candidate key untuk setiap entity dan jika terdapat lebih dari satu candidate key, pilih salah satu untuk menjadi primary key. Dalam pemilihan primary key, ada beberapa panduan yaitu : Candidate key dengan jumlah atribut paling sedikit; 27 Candidate key yang paling kecil kemungkinan berubah nilainya; Candidate key dengan jumlah karakter paling sedikit jika tipenya teks; Candidate key dengan nilai maksimum terkecil jika tipenya numeric; Candidate key yang paling mudah digunakan dari sudut pandang pengguna. Dalam tahap ini ditentukan pula entitas kuat dan entitas lemah. Entitas yang tidak memiliki candidate key sebagai primary key disebut entitas lemah sedangkan entitas yang memiliki candidate key dan menjadi primary key disebut entitas kuat. Dokumentasi tahap ini adalah penetapan primary key untuk setiap entitas. 1.6 Mempertimbangkan penggunaan konsep-konsep pemodelan yang disempurnakan (optional step) Mempertimbangkan penggunaan konsep enhanced modeling, seperti specialization/generalization, aggregration, dan composition. 1.7 Memeriksa model untuk redundansi Cek untuk setiap entity dan attribute terhadap redundancy dalam model. Pada tahap ini dilakukan pengecekan untuk memastikan bahwa tidak ada dua entitas yang sama. Kemudian 28 diperiksa juga apakah ada hubungan antar entitas yang bersifat rangkap. Hal yang biasa dilakukan pada tahap ini yaitu : Melakukan pengecekan terhadap relasi one-to-one (1:1) Menghapus redundant relationship. 1.8 Memvalidasi model konseptual terhadap transaksi pengguna Menjamin model konseptual dapat mendukung kebutuhan transaksi yang diperlukan oleh view. Pengujian dilakukan dengan melakukan operasi-operasi pada entitas secara manual. Ada dua cara pengujian yaitu : Mendeskripsikan transaksi beserta sumber data atributnya; Menggambarkan jalur transaksi pada ERD. 1.9 Meninjau kembali model data konseptual dengan pengguna Melakukan review terhadap model data konseptual lokal dengan user untuk menjamin model telah merepresentasikan user’s view berdasarkan NEED perusahaan. Jika ditemukan anomali pada model, maka perlu diadakan penyesuaian dengan mengulangi beberapa langkah diatas. Proses ini dapat diulang, hingga mendapatkan model konseptual yang dibutuhkan user. 29 2. Perancangan basis data logikal Perancangan basis data logikal adalah proses membangun sebuah model data yang digunakan di perusahaan yang didasarkan pada model data tertentu, tetapi independen dari DBMS tertentu dan pertimbangan fisik lainnya. Fase ini memetakan model konseptual ke model logikal yang dipengaruhi oleh model data untuk target basis data. Model data logikal adalah sumber informasi untuk fase desain fisik, menyediakan perancang basis data fisikal dengan kendaraan untuk membuat timbal balik yang sangat penting ke perancangan basis data yang efisien. Tahap-tahap perancangan basis data logikal meliputi: Langkah 2 2.1 Membangun dan memvalidasi model data logikal Derived relation untuk model data logikal Tahap ini tujuannya adalah untuk membuat hubungan bagi model data logikal untuk mewakili beberapa entitas, hubungan, dan atribut yang telah diidentifikasi. Berikut beberapa hubungan yang mungkin terjadi pada model data konseptual: Tipe strong entity Tipe weak entity Tipe hubungan biner one-to-many (1:*) Tipe hubungan biner one-to-one (1:1) Tipe hubungan rekursif one-to-one (1:1) Tipe hubungan superclass/subclass Tipe hubungan biner many-to-many (*:*) complex relationship types multi-valued attributes 30 2.2 Memvalidasi relation menggunakan normalisasi Tujuannya adalah untuk memvalidasi hubungan-hubungan di dalam model data logikal menggunakan normalisasi. Tujuan dari normalisasi adalah untuk memastikan bahwa himpunan relasi setidaknya memiliki jumlah atribut yang cukup untuk mendukung kebutuhan data perusahaan. Normalisasi adalah sebuah teknik untuk menghasilkan sebuah set hubungan dengan sifat-sifat yang diinginkan sesuai dengan kebutuhan data dari perusahaan (Connolly & Begg, 2005, p388). Proses normalisasi pertama-tama dimulai dengan mengirim data dari sumbernya (contohnya, bentuk standar entry data) kedalam format tabel dengan beberapa baris dan kolom. Format yang dimaksud adalah tabel dengan bentuk yang belum ternormalisasi (Unnormalized form) dan disebut sebagai Unnormalized table. Unnormalized form (UNF) adalah sebuah tabel yang mengandung satu atau lebih repeating groups (kelompok data yang berulang). Repeating groups adalah sebuah atau sekelompok atribut yang berada didalam sebuah tabel dimana atribut tersebut mempunyai beberapa nilai untuk satu atribut nominated key pada tabel tersebut. Key yang dimaksudkan adalah atribut yang secara unik diidentifikasi pada tiap baris didalam tabel yang belum ternormalisasi. 31 Tingkatan normalisasi yang umum dipakai dan yang akan digunakan dalam penulisan skripsi adalah sebagai berikut: a) First Normal Form (1NF) Sebuah relasi dimana persimpangan setiap baris dan kolom berisi satu dan hanya satu nilai (Connolly & Begg, 2005, p403). Tahap penting untuk mengubah UNF ke 1NF adalah: Menunjuk satu atau sekumpulan atribut sebagai primary key pada tabel UNF Identifikasi repeating groups dalam tabel UNF yang atribut kuncinya mempunyai nilai lebih dari satu. Repeating groups dapat dihilangkan dengan dua pendekatan yang umum yaitu: o Masukkan data yang sesuai ke dalam kolom kosong pada baris yang mengandung data yang berulang. o Menempatkan data yang berulang bersama dengan salinan dari atribut kunci yang asli ke dalam relasi yang terpisah. b) Second Normal Form (2NF) Sebuah relasi yang terdapat dalam First Normal Form dan semua atribut non-primary-key yang secara fungsional tergantung sepenuhnya pada primary key (Connolly & Begg, 2005, p407). Normalisasi dari 1NF ke 32 2NF melibatkan penghilangan ketergantungan parsial (partial dependencies). Jika ketergantungan parsial terjadi, maka yang dihilangkan adalah atribut dependen parsial dari relasi, dengan menempatkannya ke relasi yang baru bersama dengan salinan determinannya. c) Third Normal Form (3NF) Sebuah relasi yang terdapat dalam 1NF dan 2NF di mana tidak ada atribut non-primary-key yang secara transitif tergantung pada primary key (Connolly & Begg, 2005, p408). Walaupun 2NF sudah lebih sedikit redundansi daripada 1NF, tetapi update anomalies masih dapat terjadi. Jika update hanya terjadi pada satu tuple dan tidak yang lain, basis data akan dalam kondisi yang tidak konsisten, dan anomali tersebut terjadi dikarenakan ketergantungan transitif, oleh karena itu normalisasi dari 2NF ke 3NF melibatkan penghilangan ketergantungan transitif. 2.3 Memvalidasi relation terhadap transaksi pengguna Tujuannya adalah untuk memastikan bahwa relasi dalam model data logikal mendukung kebutuhan transaksi. Dengan menggunakan relasi, link primary key/foreign key yang diperlihatkan pada relasi, diagram ER dan kamus data akan dilakukan secara manual. 33 2.4 Memeriksa beberapa integrity constraint Tujuannya adalah untuk memeriksa batasan integritas yang ditunjukkan dalam model data logikal. Integrity constraint adalah batasan yang dipaksakan untuk melindungi basis data dari ketidaklengkapan, ketidakakuratan dan ketidakkonsistenan. Beberapa tipe integrity constraint yaitu: 2.5 Required data; Attribute domain constraints; Multiplicity; Entity integrity; Referential integrity; General constraints. Meninjau kembali model data logikal dengan pengguna Tujuannya adalah untuk meninjau kembali model data logikal dengan pengguna untuk memastikan bahwa mereka mempertimbangkan model tersebut untuk menjadi representasi sesungguhnya dari kebutuhan data oleh perusahaan. Jika pengguna puas dengan model tersebut maka langkah selanjutnya yang diambil tergantung pada jumlah user view yang terkait dengan basis data dan bagaiman pengelolaannya. 2.6 Menggabungkan model data logikal ke model global (optional step) Tujuannya adalah untuk menggabungkan model data logikal lokal ke dalam model data logikal global yang mewakili 34 semua pandangan pengguna database. Tahapan ini meliputi proses penggabungan model data logikal lokal ke dalam global, validasi model data logikal dan meninjau ulang model data logikal global dengan pengguna. 2.7 Memeriksa untuk pertumbuhan di masa depan Tujuannya adalah untuk menentukan apakah ada perubahan signifikan yang mungkin terjadi di masa yang akan datang dan untuk menilai apakah model data logikal dapat mengakomodasi perubahan tersebut. 3. Perancangan basis data fisikal Perancangan basis data fisikal adalah proses memproduksi sebuah deskripsi implementasi dari basis data pada penyimpanan sekunder. Perancangan ini juga mendeskripsikan base relations, file organizations dan indeks yang digunakan untuk mencapai akses yang efisien pada data dan semua integrity constraints yang terkait serta langkah-langkah keamanan. Fase ini memperkenankan perancang untuk membuat keputusan tentang bagaimana basis data harus dilaksanakan. Oleh karena itu, perancangan fisikal disesuaikan dengan DBMS tertentu. Terdapat umpan balik antara desain fisikal dan logikal karena keputusan yang diambil selama desain fisikal yang digunakan untuk meningkatkan performa dapat mempengaruhi model data logikal. Tahap-tahap perancangan basis data fisikal meliputi: 35 Langkah 3 Menerjemahkan model data logikal untuk target DBMS 3.1 Merancang base relations Tujuannya adalah untuk memutuskan bagaimana relasi dasar yang diidentifikasi dalam model data logikal dalam target DBMS dapat diwakilkan. Dalam mewakili perancangan relasi dasar gunakan bentuk extended dari DBDL (Database Design Language) untuk menentukan domain, default values, dan indikator null. 3.2 Merancang representasi dari derived data Tujuannya adalah untuk memutuskan bagaimana derived data apapun yang muncul di dalam model data logikal dalam target DBMS dapat diwakilkan. Derived atau calculated attributes adalah nilai atribut yang dapat ditemukan dengan memeriksa nilai dari atribut lain. 3.3 Merancang general constraints Tujuannya adalah untuk merancang beberapa general constraint pada target DBMS. Pembaruan ke relasi mungkin dibatasi oleh integrity constraint yang mengatur transaksi ‘real world’. 36 Langkah 4 4.1 Merancang file organizations dan indeks Menganalisa transaksi-transaksi Tujuannya adalah untuk memahami fungsionalitas dari transaksi yang akan berjalan di database dan menganalisa beberapa transaksi penting. Dalam menganalisa transaksi yang harus diidentifikasi pada kriteria performa yaitu: Transaksi yang berjalan cukup sering dan akan mempunyai dampak yang signifikan pada performa; Transaksi yang dinilai cukup kritis ke operasi bisnis; Waktu dimana pada hari atau minggu tertentu terjadi permintaan yang tinggi pada database (disebut peak load). 4.2 Memilih file organizations Tujuannya adalah untuk menentukan organisasi file yang efisien pada setiap base relation. Beberapa organisasi file yang ada yaitu: 4.3 Heap Hash Indexed Sequential Office Access Method (ISAM) B + -tree Clusters Memilih indeks Tujuannya adalah untuk menentukan apakah dengan menambahkan indeks akan memperbaiki kinerja sistem. 37 4.4 Memperkirakan kebutuhan disk space Tujuannya adalah memperkirakan jumlah ruang disk yang akan diperlukan oleh database. Langkah 5 Merancang user views Tujuannya adalah untuk merancang user view yang diidentifikasi saat melakukan tahap pengumpulan dan analisa kebutuhan dari siklus hidup pengembangan sistem basis data. Langkah 6 Merancang beberapa mekanisme keamanan Tujuannya adalah untuk merancang mekanisme keamanan untuk database yang ditentukan oleh pengguna saat melakukan tahap pengumpulan dan analisa kebutuhan dari siklus hidup pengembangan sistem basis data. 2.6 Tools Analisis dan Perancangan Sistem 1. Data Flow Diagram (DFD) Data Flow Diagram (DFD) adalah alat yang menggambarkan aliran data melalui sistem dan kerja atau pengolahan yang dilakukan oleh sistem tersebut (Whitten, 2004, p326). Terdapat tiga simbol dan satu koneksi untuk DFD, yaitu : 1. Persegi empat menyatakan agen eksternal yaitu batasan sistem tersebut. 2. Persegi panjang bersudut tumpul atau lingkaran menyatakan proses atau bagaimana tugas dikerjakan. 38 3. Kotak dengan ujung terbuka menyatakan data store, terkadang disebut file atau database. 4. Panah menyatakan aliran data, atau input dan output, ke dan dari proses tersebut. Adapun komponen DFD yang ditentukan menurut : a. Yourdan dan DeMarco Gambar 2.5 Komponen DFD Menurut Yourdan dan DeMarco b. Gene dan Serson Gambar 2.6 Komponen DFD Menurut Gene dan Serson 2. State Transition Diagram (STD) State Transition Diagram (STD) menunjukkan kerja internal dan siklus hidup dari objek (Chonoles, 2003, p388). Diagram ini mengilustrasikan siklus hidup objek dalam berbabagi keadaan yang dapat diasumsikan oleh objek dan event-event yang menyebabkan objek beralih dari suatu state ke state lain. 39 Berikut merupakan langkah-langkah dalam membangun STD : 1. Memilih sebuah class dan fokus pada life cycle untuk semua objek pada class tersebut. 2. Mengawali STD dengan initial state pada pojok kiri atas diagram. 3. Mengidentifikasi event. 4. Memikirkan objek seperti apa yang dibutuhkan untuk menggambarkan event yang telah diidentifikasi. 5. Mengurutkan daftar state. 6. Menempatkan state pada diagram dan mengurutkan dari atas (initial state) hingga ke bawah (final state). 7. Menambahkan event yang telah diidentifikasi sebelumnya pada langkah nomor 3 untuk menghubungkan antar state. 8. Menetapkan saat objek dihapus dari sistem. 9. Menempatkan final state pada diagram dan memperlihatkan perpindahan yang membawa objek dari state lain ke final state. 2.7 Interaksi Manusia dan Komputer Interaksi Manusia dan Komputer (IMK) atau Human-Computer Interaction (HCI) adalah disiplin ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk digunakan oleh manusia, serta studi fenomena-fenomena besar yang berhubungan dengannya (Definisi oleh ACM SIGCHI). Di dalam IMK terdapat delapan aturan emas yang mendukung perancangan user-interface. Berikut delapan aturan emas yang digunakan : 40 1. Berusaha untuk konsisten. Dalam perancangan user-interface bentuk tampilan seperti header, footer, bahasa yang digunakan, singkatan, grafik, serta menu harus dibuat sekonsisten mungkin. 2. Memungkinkan pengguna sesering mungkin menggunakan shortcuts. Semakin sering pengguna menggunakan shortcuts maka kecepatan berinteraksi akan semakin meningkat. 3. Memberikan umpan balik yang informatif Setiap interaksi yang dijalankan, diperlukan umpan balik dari sistem. 4. Merancang dialog yang memberikan penutup (selesai) Setiap interaksi memiliki bagian akhir. Untuk mengakhiri setiap interaksi, sistem harus memberikan penyampaian akhir berupa dialog sebagai tanda bahwa interaksi berakhir. 5. Memberikan pencegahan dan penanganan kesalahan yang sederhana Merancang sistem yang dapat mencegah dan menangani sebuah kesalahan sehingga permasalahan tidak menjadi lebih serius. Bentuk pencegahan misalnya memberikan perintah apabila terdapat salah satu field yang tidak terisi. 6. Memungkinkan pembalikan aksi (undo) dengan mudah Hal ini diperlukan untuk mengurangi kekhawatiran pengguna saat melakukan kesalahan sehingga aksi yang dilakukan dapat dibalik. 41 7. Mendukung pengendalian secara internal (internal locus of control) Pengendalian secara internal diperlukan untuk mengurangi kesan tidak puas para pengguna berpengalaman yang menginginkan kesan bahwa dia dapat mengendalikan sistem dan sistem dapat merespon setiap aksi yang dilakukan. 8. Mengurangi beban ingatan jangka pendek Tampilan yang sederhana dan frekuensi pengurangan pergerakan window akan memudahkan pengguna untuk mengingat. 2.8 Microsoft SQL Server 2005 SQL Server 2005 adalah edisi baru dari Microsoft SQL Server clientserver relational database. SQL Server 2005 sangat sederhana namun memiliki banyak fitur baru yang membantu dalam me-manage relational database dan menambahkan fungsi penting business intelligence yang baru pada banyak edisi. SQL Server 2005 menawarkan fungsi untuk membantu menangani data penting dalam bisnis agar lebih efektif dan efisien. SQL Server 2005 tersedia dalam beberapa edisi berbeda : 1. Enterprise, memiliki fungsi penuh untuk mendukung skalabilitas dan ketersediaan yang dibutuhkan oleh perusahaan besar. Mendukung jumlah CPU yang tidak terbatas. Selain itu juga memiliki fungsi Business Inteligence yang lengkap. 2. Standard, mendukung hingga 4 CPU. Hanya memiliki beberapa fungsi Business Inteligence. Sebagai contoh edisi ini hanya memasukan dasar perubahan Integration Services. 42 3. Workgroup, edisi ini mendukung Bussiness Inteligence yang terbatas. Tidak mendukung adanya Analysis Services atau Integration Services serta Web Services. 4. Developer, edisi ini memiliki semua fungsi termasuk didalamnya edisi Enterprise. Namun edisi ini tidak diijinkan untuk penggunaan produksi. 5. Mobile : Microsoft’s mobile database solution. Sebagai pengganti untuk SQL Server CE. 6. Express, low-end tree database dengan maksimum size database 4GB. Sebagai pengganti untuk MSDE. Tidak menyediakan full text search. 2.9 Visual Basic .NET 2.9.1 Sejarah dan Perkembangan Visual Basic Visual Basic berawal dari bahas BASIC yang dikembangkan melalui dari tahun 1963. BASIC adalah singkatan dari Beginner’s All Purpose Symbolic Insctruction Code. BASIC dibuat untuk memudahkan pengguna agar dapat dengan mudah mempelajari, membuat dan mengembangkan program komputer. Visual Basic 1.0 merupakan versi pertama Visual Basic dan dirilis pada tahun 1991. Versi 1.0 ditujukan untuk sistem operasi Microsoft DOS. Visual Basic 6.0 merupakan versi yang sangat populer dan masih banyak dipakai hingga saat ini, namun dukungan terhadap Visual Basic 6 telah dihentikan oleh Microsoft mulai bulan maret 2008. 43 Visual Basic .NET yang diluncurkan pada bulan Februari 2002 merupakan penerus dari Visual Basic 6.0 dan menggunakan platform .NET yang berbeda dengan Visual Basic sebelumnya. 2.9.2 .NET Framework .NET Framework merupakan software kerangka kerja yang menghubungkan antara aplikasi .NET dengan sistem operasi, yang secara garis besar terdiri atas : • Library, berisi kode-kode siap pakai dan banyak dibutuhkan oleh programmer. • Virtual machine, berupa aplikasi yang digunakan untuk menjalankan program hasil kompilasi. 2.9.3 Visual Basic .NET 2005 Visual Basic .NET merupakan bahasa pemrograman berorientasi objek. Sebagai evolusi dari Visual Basic Microsoft, Visual Basic .NET dapat diimplementasikan pada Microsoft .NET Framework. Visual Basic 2005 merupakan update dari Visual Basic setelah Visual Basic .NET 2003. Pada visual basic 2005 microsoft menambahkan banyak fitur seperti : a. Edit dan Continue b. Design-time expression evaluation c. My pseudo-namespace 44 d. Perbaikan pada VB ke VB.NET converter e. Menggunakan keyword, menyederhanakan penggunaan objek-objek yang membutuhkan pola dispose untuk resource yang kosong f. Just My Code, menyembunyikan kode boilerplate yang ditulis oleh Visual Studio .NET IDE g. Data Source binding, memudahkan adalah suatu pengembangan database client/server 2.10 Teori Pendukung 2.10.1 Pembelian Pembelian transaksi dimana perusahaan membutuhkan barang atau jasa, baik dipakai maupun untuk persediaan yang akan dijual (Himayati, 2008, p79). 2.10.2 Penjualan Penjualan adalah proses saat seseorang membantu orang lain mengambil keputusan pembelian (Ashton, 2005, p8). Penjualan melalui proses ketika produk atau jasa didefinisikan sehingga memiliki nilai merek dan citra pribadi. Berikut merupakan ciri – ciri dari sebuah penjualan yang baik : 1. Membutuhkan kontak langsung dengan calon pelanggan. 2. Sebuah proses untuk memperoleh komitmen. 3. Menyediakan umpan balik yang berharga dari pasar. 45 2.10.3 Persediaan Persediaan adalah barang-barang yang dimiliki untuk dijual kembali atau diproses lebih lanjut menjadi barang jadi yang (pada akhirnya) akan dijual untuk memperoleh penghasilan (Soemarso, 2007, p245).