BAB 2 LANDASAN TEORI Basis Data (Database) sekarang merupakan bagian dari kehidupan kita seharihari yang biasanya tidak kita sadari penggunaannya. Basis data merupakan koleksi dari data yang berhubungan dan Sistem Manajemen Basis Data (Database Management System/DBMS) merupakan perangkat lunak (software) yang mengatur dan mengontrol akses ke basis data. Aplikasi basis data merupakan program yang berinteraksi dengan basis data pada beberapa point dalam eksekusinya. Kita juga menggunakan istilah sistem basis data untuk memasukkan koleksi program aplikasi yang berinteraksi dengan basis data. 2.1 Pengertian Basis Data Menurut Connolly (2002, p14), Basis data adalah kumpulan data yang berhubungan secara logical yang dibagi, dan mendeskripsikan data, didesain untuk menemukan kebutuhan informasi pada suatu organisasi. Ramakrishnan (2003, p4) menyatakan, Basis data adalah koleksi data, secara tipikal menggambarkan aktivitas-aktivitas dari satu atau lebih organisasi yang terkait. Charles (1984, p5) mengemukakan, Basis data adalah koleksi dari bermacam-macam file yang merepresentasikan sumber informasi lengkap, biasanya untuk bisnis. 6 7 Hutchinson dan Sawyer (1996, p349) mengungkapkan, Basis data adalah kumpulan data yang terintegrasi yang diorganisasikan sebagai byte, field, record dan file. Menurut Kamus Istilah Akuntansi (1999, p125), Basis data adalah tempat penyimpanan data yang berkaitan yang dikelola secara bebas terpisah dari segala program khusus atau aplikasi sistem informasi. Dapat menyediakan berbagai macam sistem dalam organisasi. Intinya, merupakan lemari berkas kabinet elektronik yang dapat menyediakan inti dari informasi umum dalam sebuah program. 2.2 Pengertian DBMS Menurut Connolly (2002, p16), Sistem Manajemen Basis Data adalah sistem software yang memungkinkan pemakai (user) untuk mendefinisikan, membuat, memelihara, dan mengontrol akses ke basis data. Ramakrishnan (2003, p4) menyatakan, Sistem Manajemen Basis Data adalah software yang didesain untuk mendukung dalam pemeliharaan dan pemanfaatan koleksi data dalam jumlah besar. Hutchinson dan Sawyer (1996, p349) mengemukakan, Sistem Manajemen Basis Data adalah sistem komputer untuk mendefinisikan, membuat, memanipulasi, memgontrol, mengatur dan menggunakan basis data. Menurut Kamus Istilah Akuntansi (1999, p125), Sistem Manajemen Basis Data adalah perangkat lunak yang dipakai untuk mengelola data dalam basis data. Merupakan satu set program yang menyediakan penetapan, pengawasan, dan pemasukan data. 8 Silberschatz (2002, p1) mengungkapkan, Sistem Manajemen Basis Data adalah kumpulan data yang saling berhubungan dan kumpulan program untuk mengakses data-data tersebut. Kumpulan data biasanya merujuk kepada basis data, mengandung informasi yang relevan dengan enterprise. Tujuan utama DBMS adalah untuk menyediakan dan memperoleh informasi basis data yang nyaman (convenient) dan efisien. Sistem basis data didesain untuk mengatur sejumlah besar informasi, manajemen data termasuk menjelaskan struktur untuk penyimpanan informasi dan menyediakan mekanisme untuk manipulasi informasi. 2.3 Komponen Lingkungan DBMS Menurut Connolly (2002, pp18-20), ada lima komponen utama dalam lingkungan DBMS, yaitu : ¾ Perangkap Keras (hardware), terdiri dari : o Penyimpanan secondary (magnetic disk), I/O device ex : disk drives), device Controller, I/O Channels, dan lainnya. o Hardware processor dan main memory, digunakan untuk mendukung saat eksekusi system software database. ¾ Perangkat Lunak, terdiri dari : DBMS, sistem operasi, software jaringan dan program aplikasinya. ¾ Data, digunakan oleh organisasi dan data ini digambarkan dalam bentuk skema. ¾ Prosedur adalah instruksi dan aturan yang harus diterapkan untuk mendesain dan menggunakan basis data dan DBMS. 9 ¾ Orang, terdiri dari : o Application Programmers, bertanggungjawab untuk membuat aplikasi basis data dengan menggunakan bahasa pemrograman yang ada. o End Users, siapapun yang berinteraksi dengan system secara online melalui workstation/terminal. o DA (Data Administrator), seseorang yang berwenang untuk membuat keputusan stategis dan kebijakan mengenai data yang ada. o DBA (DataBase Administrator), menyediakan dukungan teknis untuk implementasi keputusan tersebut, dan bertanggungjawab atas keseluruhan kontrol system pada level teknis. Hardware Software Mesin Data Prosedur Jembatan Orang Manusia Gambar 2.01 Komponen DBMS 2.4 Entity-Relationship Modeling ER (Entity Relationship) data model didasarkan pada presepsi dunia nyata yang terdiri dari kumpuln objek dasar , yang disebut entiti dan relationship antara objek-objek ini. 10 2.4.1 Tipe Entity Tipe entity merupakan konsep dasar dari suatu model ER. Menurut Connolly (2002, p331), Tipe entity adalah kumpulan dari objek dengan property yang sama, yang diidentifikasi oleh perusahaan mempunyai keberadaan yang independen. Keberadaan tipe entity dapat berupa fisik atau ‘nyata’ dan conceptual atau ‘abstrak’. Entity occurrence adalah pengidentifikasian objek yang unik dari sebuah tipe entity. Nama Entity Staff Branch Gambar 2.02 Contoh Tipe Entity 2.4.2 Tipe Relationship Menurut Connolly (2002, p334), Tipe relationship adalah kumpulan hubungan yang mempunyai arti antara tipe entity. Relationship occurrence adalah hubungan yang diidentifikasi secara unik, yang meliputi keberadaan dari setiap tipe entity yang berpartisipasi. 11 Nama Relationship < Has Staff "Branch has staff" Branch Gambar 2.03 Contoh Tipe Relationship 2.4.3 Derajat Relationship Menurut Connolly (2002, pp335-338), Derajat relationship adalah jumlah tipe entity yang berpartisipasi dalam sebuah relationship. Derajat relationship terdiri dari : ¾ Binary Relationship adalah relationship antara dua tipe entity. ¾ Ternary Relationship adalah relationship antara tiga tipe entity. ¾ Quaternary Relationship adalah relationship antara empat tipe entity. ¾ Unary Relationship disebut juga recursive relationship, adalah relationship antara satu tipe entity dimana tipe entity tersebut berpartisipasi lebih dari satu kali dengan peran yang berbeda. 12 'Private owner owns property for rent' POwns > PrivateOwner PropertyForRent Binary Relationship Staff Branch Register 'Staff register a client at a branch' Client Ternary Relationship Solicitor Buyer 'Asolicitor arranges a bid on behalf of buyer supported by a financial institution' Financial Institution Arranges Bid Quaternary Relationship Role name 'Staff (Supervisor) supervises staff (Supervisee)' < Supervises Supervisor Role name Supervisee Staff Unary Relationship Gambar 2.04 Contoh Derajat Relationship 13 2.4.4 Attribute Menurut Connolly (2002, pp338-340), Atribut adalah sifat atau property dari sebuah tipe entity atau tipe relationship. Contohnya : sebuah entity karyawan digambarkan oleh kdKary, nmKary, almtKary dan jabatan. Atribut domain adalah himpunan nilai yang diperbolehkan untuk satu atau lebih atribut. Macam-macam atribut : ¾ Simple Attribute disebut juga Atomic Attribute, yaitu atribut yang terdiri dari satu komponen tunggal dengan keberadaan yang independen dan tidak dapat dibagi menjadi bagian yang lebih kecil lagi. ¾ Composite Attribute yaitu atribut yang terdiri dari beberapa komponen dimana masing-masing komponen memiliki keberadaan yang independen. Misalkan atribut alamat dapat terdiri dari jalan, kota dan kode pos. ¾ Single-value Attribute yaitu atribut yang mempunyai nilai tunggal untuk setiap kejadian. Misalnya entity pemesanan memiliki satu nilai untuk attribut noPesan pada setiap kejadian. ¾ Multi-value Attribute yaitu atribut yang mempunyai beberapa nilai untuk setiap kejadian. Misalnya entity Karyawan memiliki beberapa nilai untuk attribut noTelp pada setiap kejadian. ¾ Derived Attribute yaitu atribut yang memiliki nilai yang dihasilkan dari satu atau beberapa atribut lainnya, dan tidak harus berasal dari satu entity. 14 2.4.5 Key Kita harus memiliki cara untuk menspesifikasikan bagaimana entity di dalam kumpulan entity dapat dibedakan. Maka , nilai dari nilai atribut sebuah entity harus sedemikian rupa agar dapat mengidentifikasi entity secara unik. Sebuah key memberikan kemudahan untuk mengidentifikasi kumpulan atribut yang mencukupi untuk dapat membedakan entity yang satu dengan yang lain. Key juga membantu mengidentifikasi relationship secara unik dan membedakan relationship antara yang satu dengan yang lainnya. Menurut Connolly (2002, pp340-341), Key terbagi atas : ¾ Candidate Key adalah jumlah minimal atribut-atribut yang secara unik mengidentifikasikan setiap kejadian pada tipe entity. ¾ Primary Key adalah candidate key yang terpilih untuk mengidentifikasikan setiap kejadian pada tipe entity secara unik. ¾ Composite Key adalah candidate key yang terdiri dari dua atau lebih atribut. 2.4.6 Strong and Weak Entity Type Menurut Connolly (2002, pp341-342), Strong entity type adalah tipe entity yang keberadaannya tidak tergantung pada tipe entity lainnya. Sedangkan weak entity type adalah tipe entity yang keberadaannya tergantung pada tipe entity lainnya. Strong entity type disebut juga parent, owner dominant sedangkan weak entity type disebut child, dependent dan subordinate. 15 Strong Entity Client Weak Entity States > clientNo {PK} name fName lName telNo Preference prefType maxRent Gambar 2.05 Contoh Strong dan Weak Tipe Entity 2.4.7 Structural Constraint Batasan atau kendala utama pada relationship adalah multiplicity. Menurut Connolly (2002, p344), Multiplicity adalah jumlah (atau jangkauan) dari kejadian yang mungkin terjadi pada suatu entity yang terhubung ke satu kejadian dari entity lain yang berhubungan melalui suatu relationship. Menurut Connolly (2002, pp345-348), ada 3 tipe relationship binary yang menggunakan batasan enterprise yaitu : ¾ Relasi satu-satu (1:1) yaitu relasi antara dua tipe entity dimana satu tipe entity berelasi tepat satu atau nol dengan tipe entity lainnya. ¾ Relasi satu-banyak (1:*) yaitu relasi antara dua tipe entity dimana satu tipe entity berelasi nol, satu atau banyak dengan tipe entity lainnya. ¾ Relasi banyak-banyak (*:*)yaitu relasi antara dua tipe entity dimana tipe entitynya saling berelasi nol, satu atau banyak. 16 'A member of staff can manage zero or one branch' 'Each branch is managed by one member of staff' Manages > Staff staffNo 1..1 Branch branchNo 0..1 Multiplicity Relasi satu-satu (1:1) 'Each property for rent is overseen by zero or one member of staff' 'Each member of staff overssen zero or more properties for rent' Oversees > Staff staffNo 0..1 PropertyForRent propertyNo 0..* Relasi satu-banyak (1:*) 'Each property for rent is advertised in zero or more newspapers' Newspaper 'Each newspaper advertises one or more properties for rent' PropertyForRent Advertises > newspaperName 0..* 1..* propertyNo Relasi banyak-banyak (*:*) Gambar 2.06 Contoh Tipe-tipe relationship pada Binary 17 2.4.8 Multiplicity untuk relasi yang komplek Menurut Connolly (2002, p349), Multiplicity untuk relasi yang kompleks adalah jumlah (atau jangkauan) dari kejadian yang mungkin dari suatu entity dalam n-ary relationship ketika nilai entity yang lain (n-1) diketahui. Staff Register 1..1 1..1 Branch 0..* Client Gambar 2.07 Contoh Multiplicity pada Relationship Ternary Cara alternatif untuk Arti menggambarkan batasan multiplicity 0..1 Nol atau satu kejadian 1..1 (atau hanya 1) Hanya satu kejadian 0..* (atau hanya *) Nol atau banyak kejadian 1..* Satu atau banyak kejadian 5..10 Minimum 5 dan maksimal 10 kejadian 0,3,6-8 Nol atau tiga atau enam, tujuh, atau delapan kejadian Tabel 2.01 Tabel Multiplicity 18 Multiplicity dibentuk dari 2 macam batasan pada relationship, yaitu : ¾ Cardinality, menjelaskan jumlah maksimal dari kejadian relationship yang mungkin untuk entity yang berpartisipasi di dalam relationship tersebut. ¾ Participation, menetapkan apakah seluruh atau sebagian entity yang berpartisipasi dalam suatu relationship. Cardinality 'One member of staff manages one branch' 'One branch is managed by one member of staff' Manages > Staff staffNo Branch 0..1 branchNo 1..1 'not All staff manage branches' (optional participation for staff) 'All branches are managed' (mandatory participation for branch) Participation Gambar 2.08 Cardinality dan Participation 2.5 Database Application Lifecycle Basis data merupakan komponen mendasar suatu sistem informasi, dimana pengembangan atau pemakaiannya harus dilihat dari perspektif yang 19 lebih luas berdasarkan kebutuhan organisasi. Database Aplication Lifecycle berdampingan dengan lifecycle dari sistem informasi. Sistem Informasi merupakan sumberdaya yang memungkinkan pengumpulan (collection), pengaturan (management), pengawasan (control) dan penyebaran (dissemination) informasi keseluruh organisasi. Database Planning System Definition Requirem ent collection and Analysis Database Design Conceptual Database Design DBMS Selection Application Design Logical Database Design Physical Database Design Prototyping Im plem entation Data conversion and loading Testing Operational M aintenance Gambar 2.09 Tahapan dalam Database Application Lifecycle 20 2.5.1 Database Planning Perencanaan basis data merupakan perencanaan bagaimana tahapantahapan dalam lifecycle dapat direalisasikan seefektif dan seefisien mungkin. Perencanaan basis data harus terintegrasi dengan keseluruhan strategi sistem informasi dari organisasi. Terdapat 3 hal pokok yang berkaitan dengan strategi sistem informasi, yaitu : ¾ Identifikasi rencana dan sasaran (goals) dari enterprise termasuk mengenai sistem informasi yang dibutuhkan. ¾ Evaluasi sistem informasi yang ada untuk menetapkan kelebihan dan kekurangan yang dimiliki. ¾ Penaksiran kesempatan IT yang mungkin memberikan keuntungan kompetitif. Metodologi untuk mengatasi hal tersebut diatas yaitu : ¾ Database Planning – Mission Statement : Mission statement untuk database project mendefinisikan tujuan utama dari aplikasi database. Mengarahkan database project, biasanya mendefinisikan perintah tugas (mission statement). Mission statement membantu menjelaskan kegunaan dari database project dan menyediakan alur yang lebih jelas untuk mencapai efektifitas dan efisiensi penciptaan dari suatu aplikasi database yang diinginkan. ¾ Database Planning – Mission Objectives : Ketika mission statement telah didefinisikan, maka mission objectives didefinisikan. Setiap objective (tujuan) harus 21 mengidentifikasikan tugas khusus yang harus didukung oleh database. Dapat juga disertai dengan beberapa informasi tambahan yang menspesifikasikan pekerjaan yang harus diselesaikan, sumberdaya yang digunakan dan biaya untuk membayar kesemuanya itu. 2.5.2 System Definition Definisi system adalah menjelaskan batasan-batasan dan cakupan dari aplikasi basis data dan sudut pandang user atau pemakai yang utama. Sudut pandang pemakai mendefinisikan apa yang diwajibkan dari suatu aplikasi basis data dari perspektif aturan kerja khusus atau area aplikasi perusahaan. Sudut pandang pemakai diperlukan untuk memastikan bahwa tidak ada pemakai utama dari suatu basis data yang terlupakan ketika pembuatan aplikasi baru yang dibutuhkan dan membantu dalam pengembangan aplikasi basis data yang rumit atau komplek juga memungkinkan permintaan-permintaan dipecah ke dalam bagian-bagian yang lebih simple. 2.5.3 Requirement Collection and Analysis Analisis dan pengumpulan kebutuhan merupakan suatu proses pengumpulan dan analisis informasi mengenai bagian organisasi yang didukung oleh aplikasi basis data, dan menggunakan informasi tersebut untuk identifikasi kebutuhan pemakai akan sistem yang baru. Informasi dikumpulkan untuk setiap user view utama meliputi : ¾ Deskripsi data yang digunakan atau dihasilkan ¾ Detail mengenai bagaimana data digunakan/dihasilkan 22 ¾ Beberapa kebutuhan tambahan untuk aplikasi database yang baru Informasi dianalisis untuk identifikasi kebutuhan agar disertakan dalam aplikasi basis data yang baru. Aktifitas penting lainnya, adalah menentukan bagaimana mengatur aplikasi basis data dengan multiple user view, yaitu : ¾ Pendekatan Terpusat (Centralized approach) Kebutuhan untuk setiap user view digabungkan menjadi sekumpulan kebutuhan. Sebuah global data model dibuat berdasarkan atas penggabungan kebutuhan (dimana merepresentasikan seluruh user view). ¾ Pendekatan Integrasi View (View integration approach) Kebutuhan untuk setiap user view digunakan untuk membangun model data terpisah untuk merepresentasikan user view tersebut. Hasil dari model data tersebut nantinya digabungkan dalam tahapan desain database. Model model yang merepresentasikan user view tunggal disebut local data model, dan tersusun atas diagram-diagram dan dokumentasi yang secara formal menggambarkan kebutuhan dari user view khusus terhadap database. Kemudian local data model digabungkan untuk menghasilkan global data model, yang merepresentasikan seluruh user view untuk database. ¾ Kombinasi keduanya (Combination of both approaches) 23 2.5.4 Database Design Desain basis data merupakan suatu proses pembuatan sebuah desain basis data yang akan mendukung tujuan dan operasi suatu perusahaan. Tujuan utamanya adalah: ¾ merepresentasikan data dan relationship antar data yang dibutuhkan oleh seluruh area aplikasi utama dan user group. ¾ Menyediakan model data yang mendukung segala transaksi yang diperlukan pada data. ¾ Menspesifikasikan desain minimal yang yang secara tepat disusun untuk memenuhi kebutuhan performa yang ditetapkan pada sistem (misal : waktu respon). Pendekatan dalam desain basis data : ¾ Top-down Diawali dengan pembentukan model data yang berisi beberapa entitas high-level dan relationship, yang kemudian menggunakan pendekatan top-down secara berturut-turut untuk mengindentifikasikan entitas lower level, relationship dan atribut lainnya. ¾ Bottom-up Dimulai dari atribut dasar (yaitu, sifat-sifat entitas dan relationship), dengan analisis dari penggabungan antar atribut, yang dikelompokan kedalam suatu relasi yang merepresentasikan tipe dari entitas dan relationship antar entitas. 24 ¾ Inside-out Berhubungan dengan pendekatan bottom-up tetapi sedikit berbeda dengan identifikasi awal entitas utama dan kemudian menyebar ke entitas, relationship, dan atribut terkait lainnya yang lebih dulu diidentifikasi. ¾ Mixed Menggunakan pendekatan bottom-up dan top-down untuk bagian yang berbeda sebelum pada akhirnya digabungkan. Tiga fase desain basis data: ¾ Conceptual database design Suatu proses pembentukan model dari informasi yang digunakan dalam perusahaan, independen dari keseluruhan aspek fisik. Model data dibangun dengan menggunakan informasi dalam spesifikasi kebutuhan pemakai. Model data konseptual merupakan sumber informasi untuk fase desain logical. ¾ Logical database design Suatu proses pembentukan model dari informasi yang digunakan dalam perusahaan berdasarkan model data tertentu (misal : relasional), tetapi independen terhadap DBMS tertentu dan aspek fisik lainnya. Model data konseptual yang telah dibuat sebelumnya, diperbaiki dan dipetakan kedalam model data logical. 25 ¾ Physical database design Suatu proses yang menghasilkan deskripsi implementasi basis data pada penyimpanan sekunder. Menggambarkan struktur penyimpanan dan metode akses yang digunakan untuk mencapai akses yang efisien terhadap data. Dapat dikatakan juga, desain fisikal merupakan cara pembuatan menuju sistem DBMS tertentu 2.5.5 DBMS Selection Pemilihan DBMS yang tepat untuk mendukung aplikasi basis data. Dapat dilakukan kapanpun sebelum menuju desain logical asalkan terdapat cukup informasi mengenai kebutuhan sistem. Tahap-tahap utama untuk memilih DBMS: 2.5.6 ¾ Mendefinisikan terminologi studi referensi. ¾ Mendaftar dua atau tiga produk. ¾ Evaluasi produk. ¾ Rekomendasi pilihan dan laporan produk. Application Design Desain aplikasi adalah desain interface user dan program aplikasi yang menggunakan dan memproses basis data. Desain basis data dan aplikasi merupakan aktifitas paralel yang meliputi dua aktifitas penting, yaitu ¾ : Transaction design Transaksi adalah satu aksi atau serangkaian aksi yang dilakukan oleh user tunggal atau program aplikasi, yang mengakses atau mengubah 26 isi dari basis data. Kegunaan dari desain transaksi adalah untuk menetapkan dan keterangan karakteristik high-level dari suatu transaksi yang dibutuhkan pada basis data. Terdapat tiga tipe transaksi, yaitu : o retrieval transaction, digunakan untuk pemanggilan (retrieve) data untuk ditampilkan di layar atau menghasilkan suatu laporan. o update transaction, digunakan untuk menambahkan record baru, menghapus record lama, atau memodifikasi record yang sudah ada didalam database. o ¾ mixed transaction, meliputi pemanggilan dan perubahan data. User interface design. Beberapa aturan pokok dalam pembuatan user interface: o Meaningful title, diusahakan pemberian nama suatu form cukup jelas menerangkan kegunaan dari suatu form/report. o Comprehensible instrctions, penggunaan terminologi yang familiar untuk menyampaikan instruksi ke user dan jika informasi tambahan dibutuhkan, maka harus disediakan helpscreen o Logical grouping and sequencing of fields, field yang saling berhubungan ditempatkan pada form/report yang sama. Urutan field harus logis dan konsisten. o Visually appealing layout of the form/report, tampilan form/report harus menarik, dan sesuai dengan hardcopy agar konsisten. o Familiar field labels, penggunaan label yang familiar. 27 o Consistent terminology and abbreviation, terminology dan singkatan yang digunakan harus konsisten. o Consistent use of color. o Visible space and boundaries for data-entry fields, jumlah tempat yang disediakan untuk data entry harus diketahui oleh user. o Convinient cursor movement, user dapat dengan mudah menjalankan operasi yang diinginkan dengan menggerakkan cursor pada form/report. o Error correction for individual characters and entire fields, user dapat dengan mudah menjalankan operasi yang diinginkan dan melakukan perubahan terhadap nilai field. o Error messages for unacceptable values. o Optional fields marked clearly. o Explanatory messages for fields, ketika user meletakkan cursor pada suatu field, maka keterangan mengenai field tersebut harus dapat dilihat. o Completion signal, indikator yang menjelaskan bahwa suatu proses telah selesai dilaksanakan. 2.5.7 Prototyping Prototyping adalah membuat model kerja suatu aplikasi basis data. Tujuan utama dari pembuatan prototyping adalah: ¾ Untuk mengidentifikasi feature dari sistem yang berjalan dengan baik atau tidak. 28 ¾ Untuk memberikan perbaikan-perbaikan atau penambahan feature baru . ¾ Untuk klarifikasi kebutuhan pemakai. ¾ Untuk evaluasi feasibilitas (kemungkinan yang akan terjadi) dari desain sistem khusus. Terdapat dua macam strategi prototyping yang digunakan saat ini, yaitu: ¾ Requirements prototyping, menggunakan prototype untuk menentukan kebutuhan dari aplikasi basis data yang diinginkan dan ketika kebutuhan itu terpenuhi maka prototype akan dibuang. ¾ Evolutionary prototyping, digunakan untuk tujuan yang sama. Perbedaannya, prototype tidak dibuang tetapi dengan pengembangan lanjutan menjadi aplikasi basis data yang digunakan. 2.5.8 Implementation Implementasi merupakan realisasi fisik dari basis data dan desain aplikasi. Implementasi basis data dicapai dengan menggunakan : ¾ DDL untuk membuat skema basis data dan file basis data kosong. ¾ DDL untuk membuat user view yang diinginkan. ¾ 3GL dan 4GL untuk membuat program aplikasi. Termasuk transaksi basis data disertakan dengan menggunakan DML, atau ditambahkan pada bahasa pemrograman. 29 2.5.9 Data Conversion and Loading Pemindahan data yang ada kedalam basis data baru dan mengkonversikan aplikasi yang ada agar dapat digunakan pada basis data yang baru. Tahapan ini dibutuhkan ketika sistem basis data baru menggantikan sistem yang lama. DBMS biasanya memiliki utilitas yang memanggil ulang file yang sudah ada kedalam basis data baru. Dapat juga mengkoversi dan menggunakan program aplikasi dari sistem yang lama untuk digunakan oleh sistem yang baru. 2.5.10 Testing Testing adalah suatu proses eksekusi program aplikasi dengan tujuan untuk menemukan kesalahan. Dengan menggunakan strategi tes yang direncanakan dan data yang sesungguhnya. Pengujian hanya akan terlihat jika terjadi kesalahan software. Mendemostrasikan basis data dan program aplikasi terlihat berjalan seperti yang diharapkan. 2.5.11 Operational Maintenance Suatu proses pengawasan dan pemeliharaan sistem setelah instalasi, meliputi: ¾ Pengawasan performa sistem, jika performa menurun maka memerlukan perbaikan atau pengaturan ulang basis data. ¾ Pemeliharaan dan pembaharuan aplikasi basis data (jika dibutuhkan). ¾ Penggabungan kebutuhan baru kedalam aplikasi basis data. 30 2.6 Normalisasi 2.6.1 Pengertian Normalisasi Menurut Connoly (2002, p376), Normalisasi adalah suatu teknik untuk menghasilkan sekumpulan relasi dengan sifat-sifat (properties) yang diinginkan, memenuhi kebutuhan data pada perusahaan. 2.6.2 Data Redundancy Tujuan utama dilakukan normalisasi adalah untuk meminimalisasi redundansi data dan mengurangi penggunaan tempat penyimpanan yang dibutuhkan untuh sebuah relasi dasar. Redundansi data diakibatkan oleh Update Anomalies, yang terdiri dari tiga tipe yaitu : ¾ Insertion Anomalies adalah keadaan dimana kita tidak dapat menyimpan fakta atau transaksi yang terjadi di dalam perusahaan. ¾ Deletion Anomalies adalah kondisi bahwa fakta hilang dari basis data disebabkan penghapusan file yang lain. ¾ Modification Anomalies adalah kondisi bahwa fakta hilang dari basis data disebabkan perubahan pada file yang lain. Untuk mengatasi anomalies ini dapat dilakukan decomposotion pada relasi dasar. Terdapat dua sifat Decomposition yaitu ¾ : Lossless-join Memungkinkan kita menemukan suatu instance relasi dasar dari instance koresponden dalam relasi yang lebih kecil. 31 ¾ Dependency Preservation Properties Memungkinkan kita untuk mengadakan batasan pada relasi dasar dengan menyediakan beberapa batasan pada relasi yang lebih kecil. 2.6.3 Functional Dependency Merupakan konsep inti yang terkait dengan normalisasi. Functional Dependency, menjelaskan relationship antar atribut-atribut dalam relasi. Functional Dependency merupakan sifat dari arti semantik suatu atribut dalam sebuah relasi. B is functionally A B dependent on A Gambar 2.10 Diagram Function Dependency Determinant dari functional dependency mengacu kepada atribut atau himpunan atribut disebelah kiri anak panah. Karakteristik utama dari functional dependency yang digunakan dalam normalisasi : ¾ Mempunyai relationship a 1:1 antar atribut di sebelah kiri dan kanan dependency. ¾ Saling terkait (Hold for all time) Misal : staffNo Æ sName dan sName Æ staffNo ¾ Nontrivial. 32 2.6.4 Proses Normalisasi Proses Normalisasi adalah : ¾ Suatu teknik formal untuk menganalisis relasi berdasarkan primary key dan functional dependencies antar atribut. ¾ Dieksekusi dalam beberapa langkah. Setiap langkah mengacu ke bentuk normal tertentu, sesuai dengan sifat yang dimilikinya. ¾ Setelah normalisasi diproses, relasi menjadi secara bertahap lebih terbatas/kuat bentuk formatnya dan juga mengurangi tindakan update yang anomali. Gambar 2.11 Tahapan Normalisasi 2.6.4.1 UNF (Unnormalized Form) Merupakan suatu tabel yang berisikan satu atau lebih groups yang berulang. Untuk membuat tabel unnormalized yaitu dengan memindahkan data dari sumber informasi kedalam format tabel dengan baris dan kolom. Jika ada atribut yang bernilai multivalue, maka relasi tersebut dalam kondisi unnormalized. 33 2.6.4.2 1NF (First Normal Form) 1NF merupakan sebuah relasi dimana setiap irisan antara baris dan kolom berisikan satu dan hanya satu nilai (tidak ada atribut yang bernilai multivalue). Cara merubah UNF ke 1NF adalah : ¾ Tunjuk satu atau sekumpulan atribut sebagai kunci untuk tabel unnormalized. ¾ Identifikasikan groups yang berulang dalam tabel unnormalized yang berulang untuk kunci atribut. ¾ Hapus group yang berulang dengan cara o : Masukkan data yang semestinya kedalam kolom yang kosong pada baris yang berisikan data yang berulang (flattening the table), atau dengan cara o Menggantikan data yang ada dengan copy dari kunci atribut yang sesungguhnya kedalam relasi terpisah. 2.6.4.3 2NF (Second Normal Form) Berdasarkan pada konsep full functional dependency, yaitu A dan B merupakan atribut dari sebuah relasi, B dikatakan fully dependent terhadap A jika B functionally dependent pada A tetapi tidak pada proper subset dari A. 2NF adalah sebuah relasi dalam 1NF dan setiap atribut nonprimary-key bersifat fully functionally dependent pada primary key. 34 Cara merubah 1NF ke 2NF adalah : ¾ Identifikasikan primary key untuk relasi 1NF. ¾ Identifikasikan functional dependencies dalam relasi. ¾ Jika terdapat partial dependencies terhadap primary key, maka hapus dengan menempatkannya dalam relasi yang baru bersama dengan salinan determinan-nya. 2.6.4.4 3NF (Third Normal Form) Berdasarkan pada konsep transitive dependency, yaitu suatu kondisi dimana A, B dan C merupakan atribut dari sebuah relasi, maka jika A Æ B dan B Æ C, maka C transitively dependent pada A melalui B. (Jika A tidak functionally dependent pada B atau C). 3NF adalah sebuah relasi dalam 1NF dan 2NF dan dimana tidak terdapat atribut non-primary-key atribut yang bersifat transitively dependent pada primary key. Transitive dependency adalah jika suatu atribut dependent pada satu atau lebih non-primary-key. Cara merubah 2NF ke 3NF adalah : ¾ Identifikasikan primary key dalam relasi 2NF. ¾ Identifikasikan functional dependencies dalam relasi. ¾ Jika terdapat transitive dependencies terhadap primary key, hapus dengan menempatkannya dalam relasi yang baru bersama dengan salinan determinan-nya. 35 2.6.4.5 BCNF (Boyce-Codd Normal Form) Berdasarkan pada functional dependencies yang dimasukan kedalam hitungan bagaimanapun seluruh BCNF juga candidate memiliki key dalam suatu batasan-batasan relasi, tambahan disamakan dengan definisi umum dari 3NF. Suatu relasi dikatakan BCNF, jika dan hanya jika setiap determinan merupakan candidate key. Perbedaan antara 3NF dan BCNF yaitu untuk functional dependency A → B, 3NF memungkinkan dependency ini dalam suatu relasi jika B adalah atribut primary-key dan A bukan merupakan candidate key. Sedangkan BCNF menetapkan dengan jelas bahwa untuk dependency ini agar ditetapkan dalam relasi maka A harus merupakan candidate key. Setiap relasi dalam BCNF juga merupakan 3NF, tetapi relasi dalam 3NF belum tentu termasuk kedalam BCNF. Dalam BCNF kesalahan jarang sekali terjadi. Kesalahan dapat terjadi pada relasi yang : ¾ Terdiri dari 2 atau lebih composite candidate key. ¾ Candate key overlap, sedikitnya satu atribut. 2.6.4.6 4NF (Fourth Normal Form) Meskipun sebuah tabel telah mencapai normal BCNF, namun masih mungkin terjadi kesulitan berkenaan dengan adanya informasi berulang yang disebut sebagai multivalue. 36 Multi-valued Dependency adalah representasi ketergantungan antara attribut (contoh : A, B dan C) dalam relasi, misalnya untuk setiap nilai A ada sekumpulan nilai untuk B dan sekumpulan nilai untuk C. Tetapi, kumpulan nilai B dan C independen satu sama lain. 4NF adalah relasi yang termasuk BCNF dan tidak mengandung nontrivial ketergantungan nilai jamak. 2.6.4.7 5NF (Fifth Normal Form) 5NF disebut juga Project Join Normal Form (PJNF) karena berkaitan dengan konsistensi antara tabel asal dengan tabel hasil pengabungan, tabel proyeksi atau tabel dekomposisi. Suatu relasi R berada dalam 5NF jika dan hanya setiap ketergantungan gabungan (Join Dependency) pada relasi R diperoleh dari kunci-kunci kandidat relasi R. Ketergantungan gabungan (Join Dependency) merupakan bentuk umum dari ketergantungan nilai jamak. Ketergantungan nilai jamak (Multi_Valued Dependency) merupakan bentuk umum dari ketergantungan fungsional (Functional Dependency). 2.7 Perancangan Software Model Waterfall Model Waterfall menyarankan pendekatan sistematic, sequential untuk pengembangan software yang dimulai pada level sistem & perkembangan melalui analysis, design, coding & support. 37 Model Waterfall memiliki aktivitas System Engineering and Modeling, Software Requirement Analysis, Design, Code Generation, Testing dan Support. System Engineering dan Modeling Software Requirement and Analysis Design Code Generation Testing Support Gambar 2.12 Model Waterfall 2.7.1 System Engineering and Modeling Karena software selalu menjadi bagian dari sistem yang besar, pekerjaan dimulai dengan membangun persyaratan untuk semua elemen sistem dan kemudian mengalokasikan beberapa subset dari requirement ini ke dalam software. Pandangan sistem ini sangat penting ketika software harus berinteraksi dengan elemen lain seperti hardware, orang dan database. Langkah ini meliputi pengumpulan requirement pada level sistem dengan sejumlah kecil design dan analysis level atas. 2.7.2 Software Requirement Analysis Proses pengumpulan requirement diintensifkan dan difokuskan spesifik pada software. Untuk mengerti cara kerja program yang akan dibuat, analis harus 38 mengerti domain informasi untuk software. Requirement untuk kedua sistem dan software didokumentasikan dan direview dengan customer. 2.7.3 Design Desain software sebenarnya merupakan proses multistep yang fokus pada 4 atribut berbeda pada program : data struktur, arsitektur software, representasi interface dan detail procedural. Proses desain mentranslasikan pengumpulan requirement menjadi representasi software yang dapat menilai kualitas sebelum coding dimulai. 2.7.4 Code Generation Desain harus ditranslasikan ke dalam form machine-readable. Langkah Code Generation melakukan tugas ini dan dapat dikerjakan secara mekanis. 2.7.5 Testing Ketika code telah dibuat, testing program dimulai. Proses testing fokus pada internal logikal software, memastikan bahwa semua statement telah diuji coba, dan pada external fungsional, melakukan tes untuk mengatasi kesalahan dan memastikan bahwa input terdefinisi akan menghasilkan hasil sebenarnya yang sesuai dengan hasil yang dibutuhkan. 2.7.6 Support 39 Software pasti akan mengalami perubahan setelah diberikan kepada customer. Dukungan software/ pemeliharaan menerapkan kembali setiap fase sebelumnya ke dalam program yang sudah ada daripada ke program yang baru. 2.8 Penjualan 2.8.1 Pengertian Penjualan Menurut Kamus Istilah Akuntansi (1999, p404), Penjualan adalah (1) Penerimaan yang diperoleh dari pengiriman barang dagangan atau dari penyerahan pelayanan dalam bursa sebagai bahan pertimbangan. Pertimbangan ini dapat dalam bentuk tunai, peralatan kas, atau harta lainnya. Pendapatan dapat diperoleh pada saat penjualan, karena terjadi pertukaran, harga jual dapat ditetapkan, dan bebannya diketahui. (2) Dalam penjualan eceran, ada penurunan harga sementara untuk menggerakkan persediaan dan meningkatkan kas. 2.8.2 Tipe-tipe Penjualan Menurut Mulyadi (2001, p202), penjualan dapat dibagi menjadi dua tipe berdasarkan cara pembayarannya, yaitu : ¾ Penjualan Tunai Penjualan tunai adalah transaksi penjualan dimana barang atau jasa baru diserahkan oleh perusahaan kepada pembeli jika perusahaan telah menerima uang atau pembayaran dari pembeli. ¾ Penjualan Kredit Penjualan kredit adalah transaksi penjualan dimana jika pesanan dari pembeli atau pelanggan telah dipenuhi dengan mengirim barang atau 40 penyerahan jasa, maka untuk jangka waktu tertentu perusahaan memiliki piutang kepada pelanggannya. 2.9 Pembelian 2.9.1 Pengertian Pembelian Pembelian adalah transaksi yang dilakukan perusahaan dalam rangka pengadaan barang yang diperlukan oleh perusahaan baik yang digunakan sendiri maupun yang akan dijual kembali. 2.9.2 Tipe-tipe Pembelian Menurut Mulyadi (2001, p299), pembelian dapat dibagi menjadi dua tipe berdasarkan pemasoknya, yaitu : ¾ Pembelian Lokal Pembelian lokal adalah pembelian dari pemasok dalam negeri. ¾ Pembelian Impor Pembelian impor adalah pembelian dari pemasok luar negeri. 2.10 Persediaan Persediaan adalah barang yang dimiliki dengan tujuan untuk dijual kembali atau diproses dan kemudian dijual. Menurut Prinsip Akuntansi Indonesia, persediaan digunakan untuk menyatakan barang berwujud yang : ¾ Tersedia untuk dijual (barang dagang/barang jadi) ¾ Masih dalam proses produksi untuk diselesaikan, kemudian dijual (barang dalam proses/pengolahan) 41 ¾ Akan digunakan untuk produksi barang jadi yang akan dijual (bahan baku dan bahan pembantu) dalam rangka kegiatan normal perusahaan Menurut Kamus Istilah Akuntansi (1999, p251), Persediaan adalah barang dagangan atau persediaan yang ada ditangan atau dalam perjalanan pada suatu waktu tertentu. Yang termasuk dalam persediaan adalah : (1) barang dalam transit yang fakturnya telah diterima dan (2) barang selain barang titipan. Menurut Mulyadi (2001, p553), persediaan bisa berbeda tergantung jenis usahanya. Dalam perusahaan manufaktur, persediaan terdiri dari : ¾ Persediaan produk jadi ¾ Persediaan produk dalam proses ¾ Persediaan bahan baku ¾ Persediaan bahan penolong ¾ Persediaan bahan habis pakai pabrik ¾ Persediaan suku cadang Sedangkan dalam perusahaan dagang, persediaan hanya terdiri dari satu golongan, yaitu persediaan barang dagangan, yang merupakan barang yang dibeli untuk tujuan dijual kembali.