BAB 2 LANDASAN TEORI 2.1 TEORI UTAMA BASIS DATA 2.1.1 Basis Data Pengertian data, informasi, dan sistem informasi menurut Turban E. et al (2003, p15), data adalah fakta-fakta yang belum diolah atau gambaran-gambaran lebih lanjut dari benda-benda, kejadian-kejadian, kegiatan-kegiatan, dan transaksi-transaksi yang ditangkap, direkam, disimpan dan diklasifikasikan, tetapi tidak disusun untuk menyampaikan arti khusus lainnya. Informasi adalah sebuah kumpulan dari fakta-fakta (data) yang disusun di dalam beberapa cara, jadi kumpulan fakta tersebut bisa berarti bagi penerimanya. Sistem Informasi adalah sebuah sistem yang mengumpulkan, mengolah, menyimpan, menganalisa, dan menyebarkan informasi untuk sebuah tujuan tertentu. Sedangkan menurut Raymond Mc Leod, Jr. dan George P Schell (2004, p9) sistem informasi adalah sistem konseptual yang memungkinkan management mengontrol operasional dari sistem fisikal yang tetap. Pengertian data menurut Jeffrey A Hoffer (2005, p5), data adalah representasi objek yang ditempatkan dan kemudian yang mempunyai arti dan kepentingan di lingkungan pengguna. Sedangkan menurut Abdul Kadir (2001, p7), data adalah fakta mengenai objek, orang, dan lain-lain. Data dinyatakan dengan nilai (angka, deretan karakter, atau simbol). Data digunakan untuk menyatakan 10 11 nilai-nilai yang secara aktual terkandung dalam basis data sedangkan informasi digunakan untuk menyatakan makna nilai ketika dipahami oleh pengguna. Informasi adalah hasil analisis dan sintesis terhadap data. Dengan kata lain, informasi dapat dikatakan sebagai data yang telah diorganisasikan kedalam bentuk yang sesuai dengan kebutuhan seseorang di dalam suatu organisasi atau perusahaan. Menurut Connolly dan Begg (2005, p15), basisdata adalah sekumpulan data yang secara logika saling terhubung dan dapat digunakan bersama-sama, serta sebuah deskripsi mengenai data tersebut, yang dirancang untuk memperoleh informasi yang dibutuhkan oleh organisasi. Secara logika, hubungan antar data terdiri dari entitas-entitas, atribut, dan relationship (hubungan antar entity) dari informasi organisasi. Pengertian basis data menurut Date (2000, p10), adalah suatu koleksi atau kumpulan data yang persisten digunakan oleh sistem aplikasi dari suatu perusahaan. Yang dimaksud dengan persisten adalah data yang berbeda satu dengan yang lainnya dan biasanya merupakan data yang bersifat sementara. Sedangkan menurut sumber lain yang di dapat dari internet, basisdata adalah kumpulan informasi yang diorganisasikan sehingga program komputer dapat secara cepat mengakses data-data yang diinginkan. Basisdata juga terdiri dari field, record, dan files. (http://www.webopedia.com/).Selain itu, basisdata juga merupakan kumpulan informasi yang secara sistematis terorganisasi, sehingga 12 menjadi mudah untuk diakses dan dianalisis. (http://www.ojp.usdoj.gov). Secara logika, hubungan antar data terdiri dari entity, atribut, dan relationship (hubungan antar entity). 2.1.2 Database Management System (DBMS) Menurut Connoly dan Begg (2005, p16), DBMS adalah sistem piranti lunak yang memungkinkan user untuk mendefinisikan, menciptakan, memelihara, dan mengontrol akses ke suatu basisdata. Sedangkan menurut Ramakrishnan dan Gehrke (2003, p8), DBMS adalah sebuah piranti lunak yang dibuat untuk mempermudah tugas. Dengan cara menyimpan data, dan memanage data agar menjadi lebih efisien. Selain itu, menurut Abdul Kadir (2001, p17), DBMS diartikan sebagai suatu program komputer yang digunakan untuk memasukkan, mengubah, menghapus, memanipulasi, dan memperoleh data atau informasi dengan praktis dan efisien. Oleh sebab itu, suatu DBMS adalah sebuah sistem generalpurpose software (software bertujuan umum) yang memudahkan prosesproses penentuan, pembangunan, dan pelaksanaan manipulasi data pada banyak basis data untuk berbagai macam aplikasi. Menurut Connoly dan Begg (2005, p18), komponen utama DBMS terdiri dari 5 komponen, yaitu : 1. Hardware Terdiri dari : 13 a. Penyimpanan permanen (magnetic disk atau hard disk), perangkat I/O (contohnya : disk drives), Device Controller, I/O Channels, dan lainnya. b. Hardware procesor dan main memory, digunakan untuk mendukung saat eksekusi sistem software basis data 2. Software Komponen software terdiri dari DBMS, sistem operasi (seperti Microsoft Windows atau Linux), network software (jika diperlukan) dan program aplikasi pendukung lainnya. 3. Data Data pada sebuah sistem basisdata baik itu sistem singleuser maupun sistem multi-user harus terintegrasi (terhubung) dan dapat digunakan bersama. Data bertindak sebagai jembatan antara komponen mesin dan komponen manusia. 4. Prosedures Prosedur adalah instruksi atau perintah dan aturan yang mengatur penrancangan penggunaan dari basisdata. Pengguna sistem dan karyawan yang mengatur basisdata membutuhkan dokumen prosedur tentang bagaimana untuk menggunakan atau menjalankan sistem tersebut. Ini semua terdiri dari instruksi tentang bagaimana untuk : • log on ke DBMS 14 • menggunakan fasilitas utama DBMS atau program aplikasi 5. • memulai dan mengakhiri DBMS • membuat backup copy dari database • memakai hardware dan software • mengubah struktur table, menyusun ulang database, dll. People (User) Ada 4 tipe user yang berhubungan dengan DBMS yaitu : a. DA (Data Administrator), seseorang yang berwenang untuk membuat keputusan stategis dan kebijakan mengenai data yang ada, DBA (Database Administrator), menyediakan keputusan dukungan tersebut, teknis dan untuk implementasi bertanggungjawab atas keseluruhan kontrol sistem pada tingkatan teknis. b. Database Designers Database designer terdiri dari : • Logical Database Designer : Mengidentifikasi data (entity dan atribut), relationshipantar data, dan constraints dalam data yang disimpan dalam basisdata. • Physical Database Designer : menentukan bagaimana desain basis data logikal dinyatakan secara fisikal, yaitu memetakan desain basisdata logikal ke dalam 15 kumpulan tabel dan integrity constraints, memilih struktur penyimpanan yang spesifik dan metode akses data untuk mencapai tujuan yang baik, serta mendesain ukuran security yang dibutuhkan oleh data. c. Application Developers Bertanggung jawab untuk membuat aplikasi basis data dengan menggunakan bahasa pemrograman yang ada, seperti: C++, Java, dan lainnya sehingga dapat digunakan oleh end users. d. End-Users Sebagai pengguna dari basisdata yang telah dibuat dan diimplementasikan dalam sebuah aplikasi, dimana berisi informasi-informasi yang dibutuhkan olehnya. Keuntungan DBMS menurut Connolly dan Begg (2005, p26) : 1. Penggunaan data bersama (sharing of data) 2. Mengurangi kerangkapan data 3. Menghindari ketidakkonsistenan data 4. Integritas data terpelihara 5. Keamanan terjamin 6. Penyimpanan data dalam jumlah yang besar 7. Penetapan standarisasi 16 8. Meningkatkan produktivitas 9. Layanan Back up dan Recovery semakin baik Keuntungan DBMS menurut Ramakrishnan dan Gehrke (2003, p9), adalah sebagai berikut : 1. Data Independence 2. Efficient Data Access 3. Integritas dan Keamanan Data 4. Data Administration 5. Concurrent Access and Crash Recovery 6. Reduced Application Development Time Keuntungan DBMS menurut Abdul Kadir (2001, p17) adalah : 1. Kepraktisan Menggunakan media penyimpanan sekunder yang berukuran kecil tetapi padat informasi 2. Kecepatan Mesin dapat mengambil atau mengubah data jauh lebih cepat dari pada manusia 3. Mengurangi kejemuan Dengan menggunakan tangan dalam mengganti informasi cenderung bisa membuat kejemuan, namun dengan DBMS ini bisa mengurangi kejemuan 4. Kekinian 17 Informasi yang tersedia pada DBMS akan bersifat mutakhir dan akurat setiap saat Kerugian DBMS menurut Connolly dan Begg (2005, p29): 1. Rumit Karena penetapan fungsi dari DBMS yang baik, menyebabkan DBMS menjadi software yang cukup rumit. Seluruh user harus mengetahui fungsi-fungsi yang ada dengan baik, sehingga dapat memperoleh manfaatnya. 2. Ukuran Kerumitan dan banyaknya fungsi yang ada menyebabkan DBMS memerlukan banyak software pendukung yang mengakibatkan penambahan tempat penyimpanan dan memori. 3. Biaya DBMS Biaya dari DBMS bergantung pada lingkungan dan fungsinya 4. Biaya tambahan hardware Keperluan tempat penyimpanan untuk DBMS dan basis data mengharuskan membeli tempat penyimpanan tambahan. 5. Biaya konversi Biaya DBMS dan tambahan hardware mungkin tidak berarti dibandingkan dengan harga untuk mengubah aplikasi yang ada untuk menjalankan DBMS dan hardware yang baru. 18 6. Penampilan (performance) Pada dasarnya DBMS dibuat untuk menyediakan banyak aplikasi, akibatnya mungkin beberapa aplikasi akan berjalan tidak seperti biasanya. 7. Dampak yang tinggi dari kegagalan Karena sistem yang terpusat, jika seluruh pengguna dan aplikasi terakses dari DBMS maka kerusakan pada bagian manapun dari sistem, akan menyebabkan operasi terhenti. 2.1.3 Perkembangan Database Pada awalnya, perusahaan-perusahaan yang ada masih menggunakan sistem operasional secara manual, yaitu semua proses penyimpanan barang, transaksi-transaksi pembelian, penjualan, dan lainlain masih dicatat secara langsung dan untuk data penyimpanan barang masih ditempatkan pada sistem pembukuan saja. Namun pada saat sekarang ini, semua proses-proses tersebut sudah dilakukan menggunakan sistem komputerisasi, seperti sistem basis data untuk menyimpan data-data, aplikasi-aplikasi yang dibuat dan terhubung dengan basis data untuk melakukan transaksi-transkasi yang dilakukan suatu perusahaan, dan lain sebagainya. Basis data pada saat sekarang ini sudah merupakan suatu bagian penting bagi perusahaan untuk memenuhi kebutuhan penyimpanan data. Basis data juga sudah mengalami beberapa perkembangan yang sangat penting dengan menggunakan aplikasi-aplikasi yang dibuat dari masing- 19 masing perusahaan. Aplikasi basis data adalah program sederhana yang berinteraksi dengan basis data pada nilai tertentu dalam eksekusinya. Kita juga menggunakan istilah sistem basis data untuk memasukkan koleksi dari program-program aplikasi yang berinteraksi dengan basis data. 2.1.4 Daur Hidup Database (Database Lifecycle) Menurut Connolly dan Begg (2005, p283), sistem basis data adalah komponen penting dari suatu sistem informasi sebuah perusahaan atau organisasi yang besar. Aplikasi daur hidup basis data adalah pengumpulan pewarisan dengan daur hidup dari sistem informasi. Sebagai contoh, masalah yang dihadapi selama perancangan basis data mengharuskan penambahan koleksi dan analisis kebutuhan. Untuk aplikasi basis data yang kecil, dengan jumlah pengguna yang sedikit, tidak dibutuhkan daur hidup yang kompleks. Bagaimanapun, saat merancang aplikasi basis data menengah sampai yang besar dengan sepuluh sampai seribu pengguna, menggunakan ratusan dari query dan aplikasi program, daur hidup dapat menjadi kompleks sekali. Berikut ini adalah tahapan-tahapan dari aplikasi daur hidup basis data beserta aktivitas-aktivitas utama yang dilakukan oleh setiap tahapnya: 20 Gambar 2.1 Tahap-tahap Siklus Hidup Aplikasi Basisdata ( Sumber : Connolly dan Begg, 2005, p284) 21 1. Database Planning (Perencanaan Basisdata) Merencanakan bagaimana tahapan-tahapan daur hidup basis data dapat direalisasikan dengan efisien dan efektif. 2. System Definition (Definisi Sistem) Menspesifikasikan jangkauan (ruang lingkup) dan batasan-batasan dari aplikasi basis data, pengguna basis data, dan area-area aplikasi. Sedangkan menurut sumber yang didapat dari internet, sistem merupakan bagian dari entity atau objek, real atau abstrak, yang setiap elemennya mempunyai hubungan satu dengan yang lain (http://en.wikipedia.org) . Menurut sumber lain dikatakan pula bahwa sistem adalah sekelompok elemen atau bagian yang saling berinteraksi, terhubung, atau saling bergantung, yang secara bersamaan mempunyai fungsi untuk mencapai tujuan tertentu (www.doe.mass.edu). 3. Requirements Collection and Analysis (Pengumpulan Kebutuhan dan Analisis) Suatu proses pengumpulan dan analisa informasi tentang bagian dari perusahaan yang akan didukung oleh aplikasi sistem basisdata, dan menggunakan informasi ini untuk mengidentifikasi kebutuhan sistem yang baru. 4. Database Design (Desain Database) Suatu proses membuat suatu rancangan untuk basisdata yang akan mendukung operasi dan objektifitas perusahaan. Perancangan basisdata ini terdiri dari tiga tahapan (fase) yaitu : 22 5. ¾ Perancangan Konseptual ¾ Perancangan Logikal ¾ Perancangan Fisikal DBMS Selection (Pemilihan DBMS) Merupakan pemilihan DBMS yang tepat untuk mendukung suatu aplikasi basisdata. 6. Application Design (Desain Aplikasi) Perancangan user interface dan program aplikasi yang menggunakan dan memproses basisdata. 7. Prototyping (Bentuk Dasar) Pembuatan suatu model kerja dari aplikasi basisdata dengan tujuan memungkinkan pengguna menggunakan prototype tersebut untuk menentukan fitur-fitur dari sistem yang bekerja dengan baik. 8. Implementation (Implementasi) Realisasi fisik dari perancangan basisdata dan aplikasi. Membuat definisi basis data eksternal, konseptual, dan internal serta program-program aplikasi. Sedangkan menurut sumber lain menyebutkan implementasi adalah aplikasi dari suatu metodologi yang berisi suatu tujuan tertentu (http://en.wikipedia.org). 9. Data Conversion and Loading (Perubahan dan Pengambilan Data) Pemindahan data yang ada ke dalam basisdata baru dan merubah aplikasi yang ada untuk beroperasi pada basisdata yang baru. 23 10. Testing (Pengujian) Pemindahan data yang ada ke dalam basisdata baru dan merubah aplikasi yang ada untuk beroperasi pada basisdata yang baru 11. Operational Maintenance (Perawatan Operasional) Sistem memasuki langkah perawatan, yang melibatkan aktivitasaktivitas berikut: • Mengawasi kinerja sistem. • Mempertahankan dan meng-upgrade aplikasi basisdata (ketika dibutuhkan) 2.1.5 Entity Relationship Entity dapat berupa ide atau konsep baik secara nyata maupun secara logika (http://www.dai-sho.com). Menurut Connolly dan Begg (2005, p342), salah satu bagian yang sulit dalam perancangan basis data adalah suatu fakta bahwa para perancang, pembuat-pembuat program, dan end-user cenderung untuk melihat data dan menggunakannya dengan cara-cara yang berbeda. Kecuali kalau kita memperleh sebuah pemahaman sama yang mencerminkan bagaimana suatu perusahaan beroperasi, suatu perancangan yang kita hasilkan akan gagal untuk memenuhi kebutuhankebutuhan user. Untuk meyakinkan bahwa kita mendapat sebuah pemahaman yang tepat dari suatu data dan bagaimana data tersebut digunakan oleh suatu perusahaan, kita harus mempunyai sebuah model 24 untuk membuat komunikasi yang non teknikal dan tidak bersifat ambigu. Entity-Relationship (ER) adalah salah satu contohnya. Pemodelan ER adalah sebuah pendekatan top-down untuk perancangan basis data yang dimulai dengan mengidentifikasi suatu data penting yang disebut entitas-entitas dan relationships diantara suatu data yang harus direpresentasikan dalam suatu model. Lalu kita menambah perincian-perincian lagi seperti suatu informasi yang ingin kita ambil tentang suatu entitas-entitas dan relationships yang disebut atribut-atribut dan batasan-batasan yang lain pada suatu entitas-entitas, relationships, dan atribut-atribut. Berikut ini adalah notasi Entity-Relationship Modelling menurut Connolly dan Begg (2005, p346): Gambar 2.2 Notasi Entity-Relationship Modelling 25 Pengertian Multiplicity menurut Connolly dan Begg (2005, p356) adalah sejumlah kemungkinan kejadian-kejadian dari sebuah tipe entitas di dalam sebuah hubungan n-nary ketika nilai-nilai yang lain (n-1) ditentukan. Multiplicity biasanya terdiri dari dua batasan terpisah, yaitu: a. Cardinality: Mendeskripsikan jumlah maksimum dari kemungkinan kejadian-kejadian yang saling berhubungan untuk sebuah partisipasi entitas dalam proses penentuan tipe relationship. b. Participation: Menentukan apakah semua kejadian-kejadian entitas akan ikut berpartisipasi dalam sebuah relationship atau hanya beberapa saja yang ikut berpartisipasi. Jenis-jenis multiplicity menurut Connolly dan Begg (2002, p357) adalah: 1. One-to-One (1:1) Relationships Gambar 2.3 One-to-One Relationships Pada gambar 2.3, kita bisa melihat bahwa A hanya terhubung One-to-One (1 : 1) dengan C, dan B hanya terhubung One-to-One (1 : 1) dengan D. Jadi dari gambar tersebut kita dapat menulis notasi multiplicity-nya dengan gambar di bawah ini. 26 Gambar 2.4 Notasi One-to-One Relationships 2. One-to-Many (1:*) Relationships Gambar 2.5 One-to-Many Relationships Pada gambar 2.5, kita bisa melihat bahwa B terhubung One-toMany (1 : *) dengan D dan E. Jadi dari gambar tersebut kita dapat menulis notasi multiplicity-nya dengan gambar di bawah ini. 27 Gambar 2.6 Notasi One-to-Many Relationships 3. Many-to-Many (*:*) Relationships Gambar 2.7 Many-to-Many Relationships Pada gambar 2.7, kita bisa melihat bahwa A terhubung One-toMany (1 : *) dengan D dan E. Sedangkan E terhubung One-to-Many (1 : *) dengan A dan B. Jadi dari entitas Group 1 (value-nya A dari gambar di atas) dan Group 2 (value-nya E dari gambar di atas) terhubung Many-toMany (* : *). Dari gambar tersebut kita dapat menulis notasi multiplicitynya dengan gambar di bawah ini. 28 Gambar 2.8 Notasi Many-to-Many Relationships 2.1.6 Keys Menurut Connolly dan Begg (2005, p352), Keys memiliki peran yang sangat penting untuk menghubungkan satu objek dengan objek yang lainnya. Keys diletakkan pada suatu atribut yang telah ditentukan kedudukannya, agar dapat dihubungkan dengan atribut pada entitas yang lain. Sedangkan menurut Date (2000, p258), model relasi selalu dibuat stress dengan konsep dari keys, karena itu merupakan sesuatu yang khusus – sangat penting- dari semua fenomena secara umum. Beberapa jenis keys yang biasa digunakan, menurut Connolly dan Begg (2005, p352), antara lain: 1. Candidate key Candidate key yaitu himpunan atribut minimal yang secara unik mengidentifikasikan tiap-tiap keberadaan suatu tipe entitas. Sedangkan menurut Date (2000, p258), ciri khusus yang dimiliki oleh candidate key adalah uniqueness dan irreducibility. 2. Primary key 29 Primary key yaitu candidate key yang dipilih secara unik untuk mengidentifikasikan tiap-tiap keberadaan suatu tipe entitas. Menurut Date (2000, p261), hanya terdapat satu candidate key untuk setiap entitas yang ada. 3. Foreign key Foreign key yaitu himpunan atribut dalam suatu relasi yang cocok dengan candidate key dari beberapa relasi. Menurut Date (2000, p261), foreign key adalah sebuah atribut yang nilainya sama dengan candidate key. 4. Alternate key Alternate key yaitu candidate key yang tidak terpilih menjadi primary key. 2.1.7 Normalisasi Menurut Connolly dan Begg (2005, p 388), normalisasi adalah sebuah teknik untuk menghasilkan sebuah kumpulan dari relasi-relasi dengan atribut-atribut yang diinginkan, yang berdasarkan kebutuhankebutuhan data sebuah perusahaan. Tujuan normalisasi menurut Petroutsos (2000, p65) adalah: 1. Membuat sekecil mungkin kerangkapan data 2. Menghindari adanya data yang tidak konsisten terutama bila dilakukan penghapusan, atau penambahan data sebagai akibat adanya kerangkapan data 3. Menjamin bahwa identitas determinan semua atribut. tabel secara tunggal sebagai 30 Tahapan normalisasi menurut Connolly dan Begg (2005, p.401), adalah sebagai berikut: 1. Unnormalized (UNF), sebuah tabel yang berisi satu atau lebih grup yang berulang. Yang dimaksud grup yang berulang itu adalah atribut-atribut yang multivalued. 2. Normalisasi pertama (1NF), menghilangkan perulangan. Sebuah relasi dimana setiap baris dan kolom hanya berisi satu nilai saja. Bentuk Normal pertama ini, dicapai apabila setiap nilai atribut adalah tunggal. Kondisi ini dapat diperoleh dengan melakukan eliminasi terhadap terjadinya data ganda (repeating groups). Pada kondisi normal pertama ini kemungkinan masih terjadi adanya data rangkap. 3. Normalisasi kedua (2NF), bentuk ini mempunyai syarat yaitu data harus memenuhi kriteria 1NF dan setiap data barang yang bukan key harus bergantung secara fungsional pada primary key-nya. Bentuk normal kedua adalah berdasarkan konsep ketergantungan fungsional penuh (full functional dependency). Full functional dependency dinyatakan jika A dan B adalah atribut dari suatu relasi, B adalah fungsional ketergantungan penuh (fully functional dependency) pada A jika B adalah secara fungsional bergantung pada A, tetapi bukan merupakan himpunan bagian dari A. Bentuk normal kedua menciptakan sebuah relasi pada bentuk normal pertama dan semua atribut yang bukan primary key adalah fungsional tergantung penuh pada primary key. 31 4. Normalisasi ketiga (3NF), sebuah relasi dalam bentuk normal pertama dan kedua serta setiap atribut bukan key yang bergantung secara transitif kepada bukan key juga. Bentuk normal ketiga adalah berdasarkan pada konsep peralihan ketergantungan (transitive dependency). Transitive dependency adalah sebuah kondisi dimana A, B, dan C adalah atribut dari sebuah relasi bahwa jika A p B dan B p C, maka C adalah transitive dependent pada A melewati B (menyatakan bahwa A bukan functional dependent pada B atau C). Pada bentuk normal ketiga, sebuah relasi pada bentuk normal pertama dan kedua serta dimana tidak ada atribut non-primary key secara transitif bergantung (transitively dependent) pada primary key. 5. Normalisasi Boyce-Codd (Boyce-Codd Normal Form / BCNF), suatu relasi dinyatakan BCNF, jika dan hanya jika setiap determinannya adalah sebuah candidate key. Untuk menguji apakah suatu relasi sudah dalam BCNF, dilakukan identifikasi semua determinan dan memastikan bahwa determinan tersebut adalah candidate key. Determinan adalah sebuah atribut, atau kumpulan atribut, dimana beberapa atribut yang lain masih bergantung secara fungsional penuh (fully functionally dependent). Perbedaan antara 3NF dan BCNF dalam hal functional dependency. A p B, 3NF mengijinkan ketergantungan ini dalam sebuah relasi jika B adalah atribut primary key dan A bukan 32 candidate key. Sedangkan dalam BCNF ketergantungan ini tetap ada di dalam sebuah relasi, dimana A harus sebuah candidate key. 6. Normalisasi keempat (4NF), sebuah relasi dalam BCNF dan tidak mengandung ketergantungan multi-valued nontrivial (nontrivial multi-valued dependencies). Bentuk normal keempat merupakan bentuk yang lebih kuat dari BCNF dimana 4NF mencegah relasi dari nontrivial multi-valued dependency dan data redundancy. Normalisasi dari BCNF ke 4NF meliputi pemindahan multi-valued dependency dari relasi dengan menempatkan atribut dalam sebuah relasi baru bersama dengan determinan. Multi-valued dependency menggambarkan ketergantungan antara atribut-atribut dalam suatu relasi. 7. Normalisasi kelima (5NF), sebuah relasi yang tidak mempunyai ketergantungan gabungan (join dependency). Join dependency menggambarkan sebuah tipe ketergantungan. Sebagai contoh, untuk sebuah relasi R dengan subset-subset atribut dari R yang dimisalkan dengan A, B, ..., Z , sebuah relasi R menunjukkan join dependency, jika dan hanya jika, setiap nilai dari R sama dengan gabungan dari proyeksi-proyeksinya pada A, B, ..., Z. Adapun anomali atau penyimpangan di dalam melakukan perubahan terhadap data yang ada pada suatu tabel. Ada 3 anomali atau penyimpangan menurut Connolly dan Begg (2005, p.391), yaitu: 33 1. Insertion Anomalies a. Penyimpangan yang terjadi ketika ingin memasukkan suatu data baru yang bersifat foreign key maka harus memasukkan detil dari data tersebut secara berulang apabila ada data yang sama. Tujuannya untuk mencegah terjadinya ketidakkonsistenan data. b. Penyimpangan yang terjadi ketika ingin memasukkan suatu data baru yang bersifat foreign key, tetapi primary key dari data tersebut belum bisa dimasukkan karena alasan tertentu. Ini melanggar aturan dari integrity constraints, yaitu entity integrity (dalam sebuah relasi, atribut primary key tidak boleh bersifat null) 2. Deletion Anomalies Penyimpangan yang terjadi apabila ingin menghapus suatu data di mana data tersebut merupakan foreign key dari tabel gabungan dan tidak ada duplikasi dari foreign key tersebut, maka detil dari foreign key tersebut akan bebar-benar hilang dari basis data. 3. Modification Anomalies Penyimpangan yang terjadi apabila ingin mengubah suatu detil data foreign key pada tabel gabungan maka harus mengubah detil data foreign key pada setiap baris lainnya sesuai dengan data foreign key yang diubah. 34 2.1.8 4th GL (Generation Languages) Menurut Connolly dan Begg (2005, p.42), 4GL merupakan bahasa-bahasa pemrograman generasi keempat yang memberikan kelebihan baru dibandingkan dengan bahasa generasi ketiga seperti COBOL. Salah satu kelebihannya adalah 4GL memungkinkan programmer untuk menulis program dengan jumlah baris yang lebih sedikit dibandingkan pada bahasa generasi ketiga. 4GL meliputi : • Presentation languages, seperti bahasa query dan generator laporan • Speciality languages, seperti spreadsheets dan bahasa basisdata • Application generators, yang mendefinisikan, menambahkan, mengubah, dan mengambil kembali data dari basisdata untuk membangun aplikasi • Very high-level languages, yang digunakan untuk mengeksekusi kode-kode aplikasi Beberapa tipe lain dari 4GL adalah : • Forms generators Fasilitas interaktif untuk memasukkan dan menampilkan tampilan form pada layar secara cepat. • Report generators 35 Fasilitas untuk menciptakan laporan dari data-data yang tersimpan dalam basisdata. • Graphics generators Fasilitas untuk mengambil kembali data dari basisdata dan menampilkan data tersebut sebagai grafik yang menampilkan tren dan hubungan antar data. • Application generators Fasilitas untuk menghasilkan sebuah program yang ditampilkan bersama-sama dengan basisdata. 2.1.9 Database Design Menurut Connolly dan Begg (2005, p291), Database design (perancangan basis data) adalah proses pembuatan sebuah perancangan untuk suatu basis data yang akan mendukung operasi dan tujuan suatu perusahaan. Proses perancangan basis data menurut Connolly dan Begg (2005, p437), terdiri dari tiga tahap utama, yang pertama yaitu, perancangan konseptual basis data adalah proses untuk membuat sebuah model informasi yang digunakan dalam suatu perusahaan, serta bebas dari semua pertimbangan fisik. Yang kedua yaitu, perancangan logikal basis data adalah proses untuk membuat sebuah model informasi yang digunakan dalam suatu perusahaan, berdasarkan suatu data model spesifik, namun bebas dari DBMS tertentu dan pertimbangan fisik lainnya. Dan yang ketiga yaitu, perancangan fisikal basis data adalah proses untuk menghasilkan sebuah gambaran dari pengimplementasian 36 basis data pada secondary storage, menggambarkan hubungan dasarnya, pengaturan file, pengindeksan yang digunakan untuk memenuhi akses data yang efisien, batasan integritas terkait lainnya, dan pengukuran keamanan. Berikut ini merupakan langkah-langkah metodologi dari perancangan basis data, menurut Connolly dan Begg (2005, p439): 2.1.9.1 Perancangan Konseptual Proses membangun sebuah rancangan informasi yang digunakan dalam suatu perusahaan yang bebas dari pertimbangan fisikal. Berikut adalah langkah-langkah dalam metodologi perancangan basisdata konseptual: Langkah 1 : Membuat data model lokal yang konseptual untuk setiap tampilan 1. Mengidentifikasikan tipe entiti. 2. Mengidentifikasikan tipe relasi atau hubungan 3. Mengidentifikasikan dan menghubungkan atribut dengan tipe entiti atau hubungan. 4. Menentukan atribut domain. 5. Menentukan atribut candidate dan primary key. 6. Mempertimbangkan penggunaan dari perbaikan konsep model. (langkah pilihan) 7. Mengecek model untuk redundansi. 37 8. Menvalidasi model data konseptual lokal terhadap transaksi pengguna. 9. Meninjau ulang model data konseptual lokal dengan pengguna 2.1.9.2 Perancangan Logikal Proses membangun sebuah rancangan informasi yang digunakan dalam suatu perusahaan berdasarkan pada rancangan data yang spesifik, tetapi masih bebas dari penentuan DBMS dan pertimbangan fisikal lainnya. Berikut adalah langkah-langkah dalam metodologi perancangan basisdata logikal: Langkah 2 : Membuat dan memvalidasi model data logikal lokal untuk setiap tampilan 1. Menghilangkan fitur-fitur yang tidak kompatibel dengan model relasional (langkah pilihan). 2. Membuat hubungan untuk model data logikal lokal. 3. Validasi hubungan dengan menggunakan normalisasi. 4. Validasi hubungan terhadap transaksi pengguna. 5. Menentukan batasan-batasan integritas. 6. Meninjau ulang model data logikal lokal dengan pengguna. Langkah 3 : Membuat dan memvalidasi model data logical global 1. Menggabungkan model data logikal lokal ke dalam model global. 38 2. Validasi model data logikal global. 3. Mengecek perkembangan yang akan datang. 4. Meninjau ulang model data logikal global dengan pengguna. Pada perancangan basisdata logikal, hal yang paling penting dan yang harus dilakukan adalah Normalisasi. 2.1.9.3 Perancangan Fisikal Proses menghasilkan sebuah gambaran implementasi basisdata pada media penyimpanan yang menggambarkan hubungan dasar, organisasi data, dan indeks-indeks yang memungkinkan pengaksesan data yang efisien. Berikut adalah langkah-langkah dalam metodologi perancangan basisdata fisikal: Langkah 4 : Menterjemahkan model data logikal global untuk DBMS. 1. Mendesain relasi dasar. 2. Mendesain gambaran dari data yang yang didapat. 3. Mendesain batasan perusahaan. Langkah 5 : Mendesain gambaran fisikal. 1. Menganalisis transaksi. 2. Memilih file organisasi. 3. Memilih indeks. 4. Memperkirakan kebutuhan kapasitas disk. Langkah 6 : Merancang tampilan pengguna. 39 Langkah 7 : Mendesain mekanisme keamanan. Langkah 8 : Mempertimbangkan pengenalan kontrol perulangan Langkah 9 : Memonitor dan mengatur sistem operational. 2.1.10 Data Definition Language (DDL) Menurut Connolly dan Begg (2005, p 40), DDL adalah sebuah bahasa yang memungkinkan DBA atau user untuk menjelaskan dan memberi nama entities, atribut-atribut, dan relationshups yang dibutuhkan oleh aplikasi, bersama-sama dengan beberapa integrity and security constraints yang saling berhubungan. Sedangkan Menurut Silberschatz (2002,p 11), DDL adalah skema basisdata yang dispesifikasi dengan sejumlah definisi yang diekspresikan dengan menggunakan bahasa yang khusus. Sebagai contoh dalam SQL adalah proses create table. Menurut Paul Brown (2001, p64), DDL digunakan untuk memodifikasi struktur dari skema seperti tabel, views, penunjuk, fungsi, prosedur, tipe data, kelas operator, dan lain-lain. Prinsip bahasa kalimat DDL adalah antara lain CREATE, ALTER, dan DROP. DDL digunakan untuk mendesain suatu skema atau memodifikasi skema yang telah ada, bukan digunakan untuk memanipulasi data. Hasil dari DDL adalah sekumpulan tabel yang tersimpan dalam file khusus yang disebut system catalog, yang berisi metadata (data mengenai data), kamus data, serta direktori data. Menurut Martina (2003, p58), DDL merupakan bagian dari sistem manajemen basis data, dipakai untuk mendefinisikan dan mengatur 40 semua atribut dan properti dari sebuah basis data. DDL digunakan untuk mendefinisikan basis data, tabel, dan view. Berikut ini adalah beberapa pernyataan yang termasuk dalam DDL, yaitu: 1. Create Table Digunakan untuk membuat tabel dengan mengidentifikasikan tipe data untuk tiap kolom. 2. Alter Table Digunakan untuk menambah dan menghapus kolom dan konstrain. 3. Drop Table Menghapus tabel beserta semua data yang terkait di dalamnya. 4. Create Index Digunakan untuk membuat indeks pada suatu tabel. 5. Drop Index Digunakan untuk menghapus indeks yang sudah dibuat sebelumnya. Selain itu, menurut Abdul Kadir (2001, p29), DDL adalah perintah-perintah yang biasa digunakan oleh administrator basis data (DBA) untuk mendefinisikan skema ke DBMS, DDL juga digunakan untuk menciptakan, mengubah dan menghapus basis data. Skema adalah deskripsi lengkap tentang struktur medan , rekaman, dan hubungan data dalam basis data. Tugas utama skema adalah menjabarkan struktur basis data kepada DBMS. 41 2.1.11 Data Manipulation Language (DML) Menurut Connolly dan Begg (2005, p40), DML adalah sebuah bahasa yang menyediakan sekumpulan operasi untuk mendukung operasi manipulasi data basis dalam data yang tersimpan pada basisdata. Operasi manipulasi data yang biasa dipakai adalah : • Menambahkan data baru ke dalam basisdata • Memodifikasi data yang telah tersimpan dalam basisdata • Mengambil kembali data yang terdapat dalam basisdata • Menghapus data dari basisdata Menurut Abdul Kadir (2001, p31), DML adalah perintah-perintah yang digunakan untuk mengubah, memanipulasi dan mengambil data pada basis data. Menurut Martina (2003, p60), DML digunakan untuk menampilkan, menambah, mengubah, dan menghapus data dalam objekobjek yang didefinisikan oleh DDL. Berikut ini adalah beberapa pernyataan yang termasuk dalam DML, yaitu: 1. Select Digunakan untuk menampilkan sebagian atau seluruh isi dari suatu tabel dan menampilkan kombinasi isi dari beberapa tabel. 2. Update 42 Digunakan untuk mengubah isi satu atau beberapa atribut dari suatu tabel. 3. Insert Digunakan untuk menambah satu atau beberapa baris nilai baru ke dalam suatu tabel. 4. Delete Digunakan untuk menghapus sebagian atau seluruh isi dari tabel. Sedangkan menurut Silberschatz (2002, p.12), DML adalah sebuah bahasa yang memperbolehkan users untuk mengakses atau memanipulasi data yang telah terorganisasi dengan menyesuaikan model data yang ada. Pada dasarnya terdapat dua tipe, yaitu : • Procedural DMLs Memperbolehkan user untuk menspesifikasi data apa yang dibutuhkan dan bagaimana untuk mendapatkan data tersebut. • Declarative DMLs Memperbolehkan user untuk menspesifikasi data apa yang dibutuhkan tanpa menspesifikasi bagaimana untuk mendapatkan data tersebut. Biasanya Declarative DMLs lebih mudah untuk dipelajari daripada Procedural DMLs 43 Penggunaan DML menurut Paul Brown (2001, p64) adalah untuk membaca dan memodifikasi nilai data yang diakses kedalam basis data. Empat operasi utama DML adalah SELECT, INSERT, UPDATE dan DELETE. Selain itu ada juga dua perintah serupa untuk memanggil procedural logic embedded dengan : EXECUTE FUNCTION dan EXECUTE PROCEDURE. 2.2 TEORI UTAMA SISTEM PAKAR 2.2.1 Pengertian Sistem Pakar Menurut Sri Kusumadewi (2003, p 109), secara umum system pakar adalah system yang berusaha mengadopsi pengetahuan manusia ke computer, agar computer dapat menyelesaikan masalah seperti yang biasa dilakukan oleh para ahli. Sistem pakar yang baik dirancang agar dapat menyelesaikan suatu permasalahan tertentu dengan meniru kerja dari para ahli. Sedangkan menurut Giarratano (2005, p 5), pengertian system pakar adalah kemampuan program computer yang menggunakan pengetahuan untuk mengatasi masalah yang cukup sulit seperti manusia mendapatkan solusinya. 2.2.2 Keuntungan dan Kelemahan Sistem Pakar Secara garis besar, banyak manfaat yang dapat diambil dengan adanya system pakar, menurut Sri Kusumadewi (2003, p 110) manfaat system pakar antara lain : o Memungkinkan orang awam bias mengerjakan pekerjaan para ahli 44 o Bisa melakukan proses secara berulang secara otomatis o Menyimpan pengetahuan dan keahlian para pakar o Meningkatkan output dan produktifitas o Meningkatkan kualitas o Mampu mengambil dan melestarikan keahlian para pakar o Mampu beroperasi dalam lingkungan yang berbahaya o Memiliki kemampuan untuk mengakses pengetahuan o Memiliki reliabilitas o Meningkatkan kapabilitas system computer Di samping memiliki beberapa keuntungan, system pakar juga memiliki beberapa kelemahan seperti yang dinyatakan oleh Sri Kusumadewi (2003, p 111) antara lain : o Biaya yang diperlukan untuk membuat dan memeliharanya sangat mahal o Sulit dikembangkan. Hal ini tentu saja erat kaitannya dengan ketersediaan pakar di bidangnya o 2.2.3 System pakar tidak 100% bernilai benar Komponen-Komponen Sistem Pakar Komponen-komponen yang ada pada system pakar menurut Sri Kusumadewi (2003, p 114) antara lain: 1. Subsistem penambahan pengetahuan. Bagian ini digunakan untuk memasukkan pengetahuan, mengkonstruksi atau memperluas pengetahuan dalam basis pengetahuan 45 2. Basis Pengetahuan. dibutuhkan Berisi untuk pengetahuan-pengetahuan memahami,memformulasikan, yang dan menyelesaikan masalah. 3. Motor inferensi. Program yang berisi metodologi yang digunakan untuk melakukan penalaran terhadap informasi-informasi dalam basis pengetahuan dan blackboard derts digunakan untuk memformulasikan konklusi. 4. Blackboard. Merupakan area dalam memori yang digunakan untuk merekam kejadian yang sedang berlangsung termasuk keputusan sementara. 5. Antarmuka. Digunakan untuk media komunikasi antara user dan program. 6. Subsistem penjelasan. Digunakan untuk melacak respon dan memberikan penjelasan tentang kelakuan system pakar secara interaktif. 7. Sistem penyaring pengetahuan. System ini digunakan untuk mengevaluasi kinerja system pakar itu sendiri untuk melihat apakah pengetahuan-pengetahuan yang ada masih cocok untuk digunakan di masa mendatang. 2.3 TEORI PENDUKUNG 2.3.1 Pengertian Penyewaan Pengertian Penyewaan “The right to use or occupy personal property or real property given by a lessor to another person (usually called the lessee or tenant) for a fixed or indefinite period of time, 46 whereby the lessee obtains exclusive possession of the property in return for paying the lessor a fixed or determinable consideration (payment).” menurut (http://en.wikipedia.org/) yang artinya adalah hak untuk menggunakan atau menempati properti milik seseorang oleh pemilik kepada penyewa untuk jangka waktu yang ditentukan, dimana penyewa mendapat hak atas properti secara ekslusif sebagai kompensasi atas pembayaran yang dilakukan. Kesepakatan antara kedua belah pihak dalam hal penyewaan akan dicantumkan dalam perjanjian penyewaan yang merupakan perjanjian yang diatur dalam KUH dalam Bab VII Pasal 1584 sampai dengan pasal 1580 serta disebut Perjanjian Bernama. Berdasarkan BAB VII KUH Perdata, sewa-menyewa ialah suatu perjanjian, dengan mana pihak yang satu mengikat dirinya untuk memberikan kepada pihak yang lain kenikmatan dari sesuatu barang, selama suatu waktu tertentu dan dengan pembayaran sesuatu harga, yang oleh pihak tersebut belakangan itu disanggupi pembayarannya. 2.3.2 Perjanjian Penyewaan Pasal 1548 KUH Perdata mendefinisikan tentang Perjanjian Penyewaan sebagai berikut : Perjanjian penyewaan ialah suatu persetujuan, dengan nama pihak yang satu mengikatkan dirinya untuk memberikan kepada pihak yang lainnya kenikmatan dari sesuatu barang selama jangka waktu tertentu dengan pembayaran sesuatu harga,yang oleh pihak tersebut belakangan itu disanggupi pembayarannya. 47 Aturan-aturan yang berlaku bagi pihak yang menyewakan : 1. Menyerahkan barang yang disewakan kepada si penyewa 2. Memelihara barang yang disewakan sedemikian, hingga barang itu dapat dipakai untuk keperluan yang dimaksudkan 3. Memberikan sipenyewa kenikmatan yang tenteram daripada barang yang disewakan selama berlangsungnya sewa. 4. Pihak yang menyewakan diwajibkan menyerahkan barang yang disewakan dalam keadaan terpelihara segala-galanya Perjanjian penyewaan seperti halnya dengan perjanjian-perjanjian lainnya adalah suatu perjanjian komersial, artinya perjanjian itu sudah sah dan mengikat pada detik tercapainya kata sepakat mengenai unsur-unsur pokok yaitu barang dan harga. Dalam perjanjian penyewaan kewajinan pihak yang menyewakan adalah menyerahkan barang untuk dinikmati oleh pihak penyewa, oleh sebab itu barang yang diserahkan itu tidak untuk dimiliki seperti halnya dalam perjanjian leasing, tetapi hanya menikmati kegunaannya. Maka sifatnya hanya untuk menyerahkan kekuasaan belaka atas barang yang disewa. Karena yang diserahkan bukan hak milik dari barang itu, tetapi hanya pemakaiannya saja, maka pihak yang menyerahkan tidak perlu seorang pemilik dari barang tersebut. Unsur terpenting dalam perjanjian penyewaan kenikmatan dari sesuatu barang yang disewakan dan harga sewa. 2.3.3 Keuntungan dan Kerugian Penyewaan Keuntungan Penyewaan (http://en.wikipedia.org/): adalah 48 • Penyewaan menggunakan biaya yang lebih kecil dari membeli, sehingga bisnis dapat berkembang lebih cepat dengan menyewa dibandingkan jika harus membeli. • Harga aset dapat berfluktuasi. Penyewaan dapat mengalihkan resiko pada pemilik, tetapi jika harga aset meningkat seiring waktu, bisnis yang bergantung pada penyewaan akan kehilangan pendapatan. Kerugian Penyewaan (http://en.wikipedia.org/): • Jika keadaan memaksa untuk perusahaan mengubah operasinya secara signifikan, mungkin akan mahal atau sulit untuk memutuskan penyewaan sebelum masa kontrak berakhir. • Jika bisni berjalan dengan sukses, maka pemilik properti mungkin akan menawarkan harga sewa yang lebih tinggi ketika saat pembaharuan kontrak.