BAB 2 LANDASAN TEORI 2.1 Teori-Teori Basis Data Menurut sejarah, sistem pemrosesan basis data terbentuk setelah masa sistem pemrosesan manual dan sistem pemrosesan berkas. Sistem pemrosesan manual (berbasis kertas) merupakan bentuk pemrosesan yang menggunakan dasar berupa setumpuk rekaman yang disimpan pada rak-rak berkas. Jika suatu berkas diperlukan berkas tersebut harus dicari pada rak-rak tersebut. Bentuk seperti ini masih banyak dijumpai pada kehidupan sehari-hari. Pada sistem pemrosesan berkas, sekelompok rekaman disimpan pada sejumlah berkas secara terpisah. Sistem ini tentu saja memiliki kelebihan jika dibandingkan dengan sistem pemrosesan manual, yaitu antara lain dalam hal kecepatan dan keakuratannya. Sedangkan kelemahan dari sistem ini ada dalam hal kemubaziran data, keterbatasan berbagi data, ketidakkonsistenan dan kurangnya integritas, serta ketidakluwesan. Tetapi dengan adanya perkembangan teknologi, maka kedua sistem diatas tersebut sudah tidak banyak digunakan lagi. Karena adanya kelemahankelemahan seperti itulah, sistem pemrosesan basis data tumbuh. sistem seperti ini dikenal dengan sebutan Database Management. 8 9 Perkembangan teknologi basis data tidak lepas dari perkembangan perangkat keras dan perangkat lunak. Perkembangan pada dunia perangkat lunak, seperti kecerdasan buatan, sistem pakar, dan pemrograman berorientasi objek, juga mempengaruhi perkembangan basis data, sehingga muncul istilah seperti basis data berorientasi objek dan basis data cerdas. Perkembangan teknologi jaringan komputer dan komunikasi data merupakan salah satu penyumbang kemajuan penerapan basis data, yang kemudian melahirkan sistem basis data terdistribusi. 2.1.1 Pengertian Basis Data Menurut Connoly (2002, p14), basis data adalah suatu kumpulan yang berhubungan dari data secara logikal, dan suatu deskripsi tentang data tersebut yang dirancang untuk mencari informasi yang diperlukan oleh suatu organisasi. C.J Date (2000, p5) mengemukakan bahwa suatu sistem basis data adalah suatu sistem yang pada dasarnya menyimpan record-record didalam suatu sistem yang dilakukan secara komputerisasi yang tujuannya secara keseluruhan adalah untuk memelihara informasi dan untuk membuat informasi tersebut tersedia berdasarkan pada saat dibutuhkan. Kroenke (2002, p13) berpendapat bahwa basis data adalah sekumpulan rekord-rekord yang terintegrasi. Sedangkan Chou seperti yang dituliskan oleh Kadir (1999, p9), mendefinisikan basis data sebagai kumpulan informasi bermanfaat yang diorganisasikan ke dalam tatacara yang khusus. 10 Menurut Fabbri dan Schwab seperti yaang ditulis oleh Kadir (1999, p9), basis data adalah sistem berkas terpadu yang dirancang terutama untuk meminimalkan pengulangan data. Sedangkan menurut Kristanto (1993, p1), basis data adalah kumpulan file-file yang saling berelasi, relasi tersebut biasa ditunjuk dengan kunci dari tiap file yang ada. Satu basis data menunjukkan satu kumpulan data yang dipakai dalam satu lingkup perusahaan. Menurut Subekti (2004, p8), basis data adalah kumpulan terintegrasi dari occurences file atau tabel yang merupakan representasi data dari suatu model enterprise. 2.1.2 Database Management System (DBMS) 2.1.2.1 Pengertian Database Management System (DBMS) Connoly (2002, p16) mendefinisikan DBMS sebagai sebuah sistem software yang memungkinkan pemakai untuk mendefinisikan, membuat, memelihara, dan mengontrol akses ke basis data. Menurut Kadir (1999, p17) DBMS diartikan sebagai suatu program komputer yang digunakan untuk memasukkan, mengubah, menghapus, memanipulasi, dan memperoleh data informasi dengan praktis dan efisien. 11 2.1.2.2 Fungsi Database Management System (DBMS) Connoly (2002, p48-52) menjelaskan adanya fungsi-fungsi dari DBMS, yaitu : 1. Data penyimpanan, retrival, dan update Suatu DBMS harus menyediakan pemakai dengan kemampuannya untuk menyimpan, mendapatkan kembali, dan mengupdate data dalam suatu basis data. 2. Pemakai katalog aksesibel Suatu DBMS harus menyediakan sebuah katalog yang mana deskripsi dari data itemnya disimpan dan dapat diakses oleh pemakai. 3. Dukungan transaksi DBMS harus menyediakan sebuah mekanisme yang akan menjamin setiap dari semua kegiatan update yang berhubungan dengan transaksi maupun tidak. 4. Kontrol konkurensi Suatu DBMS harus menyediakan sebuah mekanisme yang memastikan bahwa basis data di update secara benar ketika banyak pemakai mengupdate basis data secara konkuren. 5. Layanan recovery Suatu DBMS harus menyediakan sebuah mekanisme untuk memperbaiki basis data dalam suatu kejadian yang mana basis data tersebut dapat rusak diberbagai tempat. 12 6. Layanan otorisasi Suatu DBMS harus menyediakan sebuah mekanisme untuk memastikan bahwa hanya pemakai yang berhak yang dapat mengakses basis data. 7. Mendukung data komunikasi Suatu DBMS harus dapat berintegrasi dengan software komunikasi. 8. Layanan kontrol integritas Suatu DBMS harus menyediakan sebuah fasilitas untuk memastikan fungsi penambahan data dalam basis data dan perubahan data mengikuti aturan tertentu. 9. Layanan untuk independensi data program Suatu DBMS harus meliputi fasilitas-fasilitas untuk mendukung independensi program dari struktur basis data yang aktual. 10. Layanan kebutuhan Suatu DBMS harus menyediakan serangkaian layanan kebutuhan. 2.1.2.3 Fasilitas Database Management System (DBMS) Suatu DBMS merupakan software yang berinteraksi dengan program aplikasi pemakai dan basis data. Pada umumnya, suatu DBMS menyediakan beberapa fasilitas sebagai berikut : • DBMS mengijinkan pemakai untuk menggambarkan basis data, biasanya melalui suatu Data Definition Language (DDL). DDL tersebut mengijinkan pemakai untuk menspesifikasikan tipe data dan strukturnya, serta batasanbatasan pada data untuk disimpan di dalam basis data. 13 • DBMS mengijinkan pemakai untuk menginsert, mengupdate, menghapus, dan mendapatkan kembali data dari basis data, biasanya melalui suatu Data Manipulation Language (DML). Mempunyai sebuah tempat penyimpanan utama untuk semua data dan deskripsi data, mengijinkan DML untuk menyediakan fasilitas pencarian data, yang disebut dengan bahasa queri. Pada umumnya bahasa queri yang digunakan adalah Structured Query Language (SQL). • DBMS menyediakan akses yang disediakan kepada basis data. Sebagai contoh : - Sistem keamanan, yang mana mencegah pemakai yang tidak berhak dapat mengakses basis data. - Sistem integritas, yang mana memelihara kekonsistensian dari data yang disimpan. - Sistem kontrol konkurensi, yang mana mengijinkan basis data diakses secara bersama. - Sistem kontrol perbaikan, yang mana mengembalikan basis data pada sebuah status yang konsisten sebelumnya, bila terjadi kegagalan hardware atau software yang gagal. - Pemakai katalog yang dapat diakses, berisi deskripsi dari data dalam basis data. 14 2.1.2.4 Keuntungan dan Kerugian Database Management System (DBMS) Keuntungan dari DBMS adalah sebagai berikut : • Kontrol untuk tidak mengulang data • Data konsisten • Semakin banyak informasi yang didapat dari data yang sama • Data terdistribusi • Menambah integritas data • Menambah keamanan data • Penetapan standarisasi • Mempermudah pengoperasian data • Memperbaiki pengaksesan data dan hasilnya • Menambah produktivitas • Memperbaiki pemeliharaan data melalui independensi data • Memperbaiki pengaksesan data secara bersama-sama Adapun kerugiannya adalah sebagai berikut : • Komplek (rumit) • Ukurannya besar • Biaya besar dari suatu DBMS • Adanya biaya penambahan hardware 15 2.1.2.5 Komponen Utama Database Management System (DBMS) Menurut Kadir (1999, p18-21), komponen utama DBMS dapat dibagi menjadi beberapa komponen, yaitu sebagai berikut : 1. Perangkat Keras (Hardware) Perangkat keras yang dimaksudkan adalah berupa komputer dan bagianbagian di dalamnya, seperti prosesor, memori, dan harddisk. Komponen inilah yang melakukan pemrosesan dan juga untuk menyimpan basis data. 2. Perangkat Lunak (Software) Perangkat lunak, dalam hal ini DBMS, berkedudukan antara basis data (data yang disimpan dalam harddisk) dan pemakai. Perangkat lunak inilah yang berperan melayani permintaan-permintaan pemakai. 3. Data Data di dalam basis data mempunyai sifat terpadu (intgrated) dan berbagi (shared). a. Data terpadu (integrated) Terpadu berarti bahwa berkas-berkas data yang ada pada basis data saling terkait, tetapi kemubaziran data tidak akan terjadi atau hanya terjadi sedikit sekali. b. Data digunakan bersama (shared) Berbagi berarti bahwa data dapat dipakai oleh sejumlah pemakai. Intinya, sesuatu data dapat diakses oleh sejumlah pemakai dalam waktu bersamaan. Sifat ini biasa terdapat pada sistem multiuser, yaitu sistem yang memungkinkan banyak orang bisa mengakses suatu data pada suatu waktu. 16 4. Pemakai Pemakai dapat dibedakan menjadi tiga ketegori, yaitu : a. Pemakai akhir Pemakai akhir dibagi menjadi dua macam, yaitu : • Pemakai aplikasi Merupakan orang yang dapat mengoperasikan program aplikasi yang dibuat oleh pemrogram aplikasi. • Pemakai interaktif Merupakan orang yang dapat memberikan perintah-perinta berasas tinggi pada antarmuka basis data yang tersedia (misalnya denga menggunakan perintah SELECT, INSERT, dan sebagainya) atau melakukan perintah-peritah melalui antarmuka berbasis semu. b. Pemrogram aplikasi Merupakan orang yang membuat program aplikasi yang menggunakan basis data. Program aplikasi yang dibuat tentu saja sesuai dengan kebutuhan pengguna. c. Administrator basis data (DBA / Database Administrator) Merupakan orang yang bertanggung jawab terhadap pengelolaan basis data. Adapun tugas DBA adalah sebagai berikut : • Mendefinisikan basis data • Menentukan isi basis data • Menentukan sekuritas basis data 17 Setiap pemakai diberi hak akses terhadap basis data secara tersendiri. Tidak semua pemakai bisa menggunakan data yang bersifat sensitif. Penentuan hak akses disesuaikan dengan wewenang pemakai dalam organisasi. 2.1.3 Data Definition Language (DDL) Menurut Connoly (2002, p40), DDL adalah sebuah bahasa yang mengijinkan administrator basis data (DBA) atau pemakai untuk menguraikan dan memberi nama entiti, atribut, relationship yang dibutuhkan bagi aplikasi, bersama dengan banyak integritas yang diasosiasikan dan batasan keamanan. Sedangkan Kadir (1999, p29) berpendapat bahwa DDL adalah perintahperintah yang biasa digunakan oleh administrator basis data (DBA) untuk mendefinisikan skema ke DBMS. Pada level teoritikal, perbedaan DDL dapat diidentifikasikan pada masing-masing skema dalam tiga tingkatan arsitektur, yaitu DDL untuk skema eksternal, DDL untuk skema konseptual, dan DDL untuk skema internal. Akan tetapi dalam kenyataannya terdapat satu DDL menyeluruh yang mengijinkan spesifikasi sedikitnya pada skema eksternal dan skema konseptual. DDL dapat juga dipakai untuk mendefinisikan subskema. Dengan kata lain, subskema bisa mencakup sebagian atau seluruh bagian skema. Bila suatu item tidak tercantum pada suatu subskema seorang pemakai, maka item tersebut tidak tersedia bagi pemakai yang bersangkutan. Subskema dapat menjadi mekanisme pengamanan sistem basis data, yakni dengan mengatur hak pengaksesan item-item dalam basis data. 18 DDL juga digunakan untuk menciptakan, mengubah, dan menghapus basis data. 2.1.4 Data Manipulation Language (DML) Menurut Connoly (2002, p41), DML adalah suatu bahasa yang menyediakan serangkaian operasi untuk mendukung operasi manipulasi basis data pada data yang disimpan di database. Dan operasi manipulasi data tersebut meliputi : • Penyisipan data baru ke dalam database • Memodifikasi dari data yang disimpan di dalam database • Mengembalikan data yang diisikan dalam database • Menghapus data dari database Sedangkan menurut Kadir (1999, p31), DML adalah perintah-perintah yang digunakan untuk mengubah, memanipulasi, dan mengambil data pada basis data. DML pada dasarnya dibagi menjadi dua, yaitu : • Prosedural, yang menuntut pemakai menentukan data apa saja yang diperlukan dan bagaimana cara mendapatkannya. • Nonprosedural, yang menuntut pemakai menentukan data apa saja yang diperlukan, tetapi tidak perlu menyebutkan cara mendapatkannya. Keuntungannya adalah lebih mudah dipelajari dan digunakan oleh pemakai. Sedangkan kerugiannya adalah kurang efisien karena pemakai tidak tahu cara mendapatkan datanya. 19 2.1.5 Normalisasi 2.1.5.1 Pengertian Normalisasi Connoly (2002, p376) menyatakan bahwa normalisasi adalah suatu teknik yang menghasilkan serangkaian hubungan dengan properti yang diinginkan, yang diberi kebutuhan data dari suatu perusahaan. Menurut Kroenke yang dituliskan oleh Kadir (1999, p65), normalisasi didefinisikan sebagai proses untuk mengubah suatu relasi yang memiliki masalah tertentu ke dalam dua buah relasi atau lebih yang tidak memiliki masalah tersebut. Masalah yang dimaksud ini sering disebut dengan istilah anomali. Sedangkan menurut Subekti (2004, p113), normalisasi merupakan suatu teknik untuk mendapatkan satu himpunan (set) tabel yang ternormalisasi dan memenuhi aturan-aturan yang berlaku dalam basis data model relasional. 2.1.5.2 Anomali Kadir (1999, p65) mengemukakan bahwa anomali adalah efek samping yang tidak diharapkan (misal menyebabkan ketidakkonsistenan data atau membuat suatu data menghilang saat data lain dihapus) yang muncul dalam suatu proses perancangan basis data. Anomali yang dimaksud tersebut terdiri dari tiga macam anomali, yaitu sebagai berikut : a. Anomali Pemutakiran (Update Anomali) Anomali ini terjadi bila terdapat pengubahan pada sejumlah data yang mubazir, tetapi tidak seluruhnya diubah. 20 Sebagai contoh, terdapat relasi JADWAL_TRAINING yang mengandung kata SISWA dan ALAMAT yang menyatakan lokasi siswa, TRAINING, dan HARI yang menyatakan jenis training dan hari training yang diambil. SISWA ALAMAT TRAINING HARI Kartika Jl. Sudirman ORACLE Senin Citra Jl. Sandang Crystal Report Selasa Candra Jl. Senayan Microsoft Desktop Kamis Citra Jl. Thamrin Microsoft CTEC Jumat Tabel 2.1 Relasi JADWAL_TRAINING Seandainya siswa Citra berpindah ke alamat lain, misalnya ke Jl. A.Yani dan pengubahan hanya dilakukan pada data pertama (data siswa Citra pada relasi JADWAL_TRAINING ada dua buah), maka hasilnya adalah seperti yang terlihat pada tabel 2.2 berikut. SISWA ALAMAT TRAINING HARI Kartika Jl. Sudirman ORACLE Senin Citra Jl. A.Yani Crystal Report Selasa Candra Jl. Senayan Microsoft Desktop Kamis Citra Jl. Thamrin Microsoft CTEC Jumat Tabel 2.2 Relasi JADWAL_TRAINING Setelah Ada Pengubahan Terlihat adanya ketidakkonsistenan. Fakta pertama menyatakan bahwa pemasok Citra berlokasi di Jl. A.YANI, tetapi fakta kedua menyatakan 21 bahwa pemasok Citra berlokasi di Jl. Thamrin. Keadaan inilah yang menyatakan adanya ketidakkonsistenan. b. Anomali Penghapusan (Delete Anomali) Anomali penghapusan terjadi sekiranya sesuatu baris (tupel) yang tidak terpakai dihapus dan sebagai akibatnya terdapat data lain yang hilang. Sebagai contoh, terdapat kasus pada relasi berikut : NO_SISWA NAMA_KURSUS BIAYA 10 ORACLE Rp. 1.500.000,- 15 Microsoft Desktop Rp. 3.000.000,- 20 Microsoft CTEC Rp. 5.000.000,- Tabel 2.3 Relasi KURSUS Jika data yang menyatakan bahwa siswa dengan identitas 20 yang mengambil kursus Microsoft CTEC dihapus, maka data yang menyatakan bahwa biaya kursus Microsoft CTEC sebesar Rp. 5.000.000,- juga akan terhapus. c. Anomali Penyisipan (Insert Anomali) Anomali ini terjadi jika pada saat penambahan hendak dilakukan ternyata ada element data yang masih kosong dan elemen data tersebut justru menjadi kunci. Sebagai contoh, terdapat relasi yang berisi tiga buah atribut, yaitu KURSUS, RUANG, dan LANTAI. 22 KURSUS RUANG LANTAI ORACLE Merapi Lt. 1 Microsoft Desktop Merbabu Lt. 1 Microsoft CTEC Rama Lt. 2 Crystal Report Merapi Lt. 1 Tabel 2.4 Contoh Relasi yang Menimbulkan Anomali Penyisipan Relasi diatas menyatakan bahwa : • KURSUS menggunakan RUANG tertentu (misalnya ORACLE menggunakan ruang Merapi). • Suatu RUANG berada pada LANTAI tertentu (misalnya ruang Merapi terdapat pada Lt. 1. Masalahnya, jika akan menyimpan fakta bahwa ruang baru bernama Arjuna terdapat pada Lt. 2, maka penyisipan tidak dapat dilakukan mengingat tidak adanya informasi KURSUS yang menggunakan ruang tersebut. 2.1.5.3 Dependency Dependensi menurut Kadir (1999, p68-72) merupakan suatu konsep yang mendasari normalisasi. Dependensi menjelaskan hubungan antar atribut atau secara lebih khusus menjelaskan nilai suatu atribut yang menentukan nilai atribut lainnya. Dependensi ini kelak menjadi acuan bagi proses dekomposisi data ke dalam bentuk yang paling efisien. Bentuk-bentuk dependensi dapat dibagi sebagai berikut : 23 a. Dependensi Fungsional Dependensi fungsional adalah jenis dependensi yang banyak diulas pada literatur basis data. Dependensi ini didefinisikan sebagai berikut : “Suatu atribut Y mempunyai dependensi fungsional terhadap atribut X jika dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y.” Definisi tersebut biasa dituangkan dalam bentuk notasi seperti berikut : XÆY (dibaca “X secara fungsional menentukan Y” atau terkadang cukup dibaca “X panah Y”). Contoh : Gambar 2.1 Dependensi Fungsional b. Dependensi Fungsional Sepenuhnya Definisi dependensi fungsional sepenuhnya adalah sebagai berikut : “Suatu atribut Y mempunyai dependensi fungsional penuh terhadap atribut X jika : • Y mempunyai dependensi fungsional terhadap X • Y tidak memiliki dependensi terhadap bagian dari X” 24 c. Dependensi Total Definisi dependensi total adalah sebagai berikut : “Suatu atribut Y mempunyai dependensi total terhadap atribut X jika : • Y memiliki dependensi fungsional terhadap X • X mempunyai dependensi fungsional terhadap Y” Dependensi seperti inidinyatakan dengan notasi : X↔Y d. Dependensi Transitif Dependensi ini didefinisikan sebagai berikut : “Atribut Z mempunyai dependensi transitif terhadap X bila : • Y memiliki dependensi fungsional terhadap X • Z memiliki dependensi fungsional terhadap Y” 25 2.1.5.4 Bentuk Normalisasi Gambar 2.2 Bentuk-Bentuk Normalisasi 1. Bentuk Normal Pertama (1NF) Bentuk Normal Pertama biasa dikenakan pada tabel yang belum ternormalisasi. Tabel yang belum ternormalisasi adalah tabel yang memiliki atribut yang berulang. Bentuk seperti ini sering disebut dengan unnormalized form (UNF). Pada bentuk normal pertama (1NF) berarti mengidentifikasi dan membuang atribut yang berulang (Repeating Group) dan memiliki nilai yang lebih dari satu (Multivalue). Suatu hubungan dikatakan normal pertama jika : a. Setiap dari baris dan kolom berisi atribut yang bernilai tunggal . b. Kunci primer telah ditentukan. c. Atribut nilai banyak (Multivalue) telah dihilangkan. 26 2. Bentuk Normal Kedua (2NF) Suatu relasi berada dalam bentuk normal kedua (2NF) jika dan hanya jika : - Berada pada bentuk normal pertama (1NF) - Semua atribut bukan kunci (atribut bukan kunci adalah atribut yang tidak merupakan bagian kunci primer) memiliki dependensi sepenuhnya (full functional dependence) kunci primer (primary key). Dalam ungkapan yang lebih praktis, bentuk normal kedua (2NF) mensyaratkan setiap atribut bergantung pada kunci primer (primary key). Untuk mengubah suatu relasi yang tergolong sebagai bentuk normal pertama (1NF) ke bentuk normal kedua (2NF) perlu dilakukan dekomposisi terhadap relasi tersebut. Proses dekomposisi dapat dilakukan dengan menggambarkan diagram dependensi fungsional terlebih dahulu. Berdasarkan diagram ini, relasi dalam bentuk normal pertama (1NF). 3. Bentuk Normal Ketiga (3NF) Suatu relasi dikatakan dalam bentuk normal ketiga (3NF) jika : - Berada dalam bentuk normal kedua atau yang telah memenuhi bentuk normal kedua (2NF) - Setiap atribut bukan kuncinya tidak memiliki unsur dependensi transitif (transitive dependency) terhadap kunci primer (primary key) 27 4. Bentuk Normal Boyce-Codd (BCNF) Suatu relasi disebut memenuhi bentuk Normal Boyce-Codd (BCNF) jika dan hanya jika semua penentu (determinan) adalah kunci kandidat (atribut yang bersifat unik). BCNF merupakan bentuk normal sebagai perbaikan dari 3NF, karena bentuk normal ketiga (3NF) mungkin masih mengandung anomaly, sehingga masih perlu dinormalisasi lebih lanjut. Suatu relasi yang memenuhi BCNF selalu memenuhi 3NF, tetapi tidak untuk sebaliknya. Suatu relasi yang memenuhi 3NF belum tentu memenuhi BCNF. Suatu tabel berada pada kasus BCNF jika table tersebut : - Memiliki dua atau lebih kunci kandidat. - Kunci-kunci kandidat tersebut berupa komposisi. - Kunci-kunci kandidat tersebut beririsan (overlapped) setidaknya pada sebuah atribut. 5. Bentuk Normal Keempat (4NF) Meski sebuah tabel telah mencapai normal BCNF, namun masih mungkin terjadi kesulitan berkenaan dengan adanya informasi berulang yang disebut sebagai multivalued. Sehubungan dengan hal tersebut maka perlu diperkenalkan suatu konsep yang dinamakan dengan dependensi nilai banyak (Multivalued Dependency / MVD), yaitu merupakan bentuk umum (generalization) dari dependensi fungsional (fungsional dependency). 28 MVD ini pertama kali diperkenalkan oleh R. Forgin pada tahun 1977, dipakai pada bentuk normal keempat (4NF). Dependensi ini dipakai untuk menyatakan hubungan satu ke banyak. Secara umum, dependensi nilai banyak muncul pada relasi yang paling tidak memiliki tiga atribut secara umum, dependensi nilai banyak muncul pada relasi yang paling tidak memiliki tiga atribut dan dua diantaranya bernilai banyak, dan nilai-nilainya tergantung hanya pada atribut ketiga. Pada suatu relasi R dengan atribut A, B, C, atribut B dikatakan bersifat MVD terhadap A jika : - Sekumpulan nilai B yang diberikan pada pasangan (A, C) hanya tergantung pada nilai A. - Tidak tergantung pada nilai C. Hubungan diatas dinyatakan dengan A B (dibaca : “A menentukan banyak nilai B“ atau “B multidependen terhadap A”) Secara praktis, suatu relasi memenuhi bentuk normal keempat (4NF) jika : - Telah berada pada BCNF. - Tidak mengandung dua atribut atau lebih yang bernilai banyak. 29 6. Bentuk Normal Kelima (5NF) Suatu relasi dikatakan berada dalam bentuk normal kelima (5NF) jika data yang ada padanya tidak dapat lagi didekomposisi menjadi relasi-relasi yang lebih kecil dengan candidate key. Tujuan dari normalisasi ini adalah : a. Menghilangkan kumpulan relasi dari inserting, updating, dan deleting dependensi yang tidak diharapkan. b. Mengurangi kebutuhan restrukturisasi dari kumpulan relasi dan meningkatkan life spam program aplikasi. c. Membuat model relasional lebih formatif. 2.1.6 4th GL (Generation Language) Sekarang ini terdapat suatu bahasa yang disebut 4-GL, yaitu merupakan bahasa pemrograman yang diminimalisasi. Suatu operasi yang biasanya membutuhkan ratusan baris di bahasa pemrograman 3-GL seperti COBOL, maka pada 4-GL hanya membutuhkan baris pemrograman yang lebih sedikit. Klaim 4-GL adalah dapat menambah produktivitas berkali-kali lipat dan penanganan masalahnya yang lebih banyak.menurut Connoly (2002, p42), 4-GL mempunyai kemampuan sebagai berikut : • bahasa presentasi, seperti Query Language dan Report Generator. • bahasa spesialis, seperti Spreadsheets dan Database Language. 30 • aplikasi generator, seperti mendefinisikan, menambah, mengedit, dan mengembalikan data dari database untuk membangun aplikasi. • 2.1.7 bahasa pemrograman yang dapat menghasilkan kode aplikasi. Siklus Hidup Aplikasi Basis Data Siklus hidup aplikasi database penting untuk diperhatikan bahwa stage dari database Aplication Lifecycle tidak sepenuhnya sekuensial, tetapi terlibat dalam suatu perulangan dari bagan-bagan yang sebelumnya melalui umpan balik. Sebagai contoh, masalah yang dihadapi selama perancangan database adalah masih diperlukannya analisis dan pengumpulan data tambahan. Untuk aplikasi database kecil dengan jumlah pemakai yang sedikit, siklus hidup tidaklah kompleks. Bagaimanapun juga, ketika perancangan sedang dilakukan pada suatu apliksi database ukuran sedang dengan jumlah pemakai antara 10 sampai dengan ribuan pemakai, dengan menggunakan ratusan query dan program aplikasi, siklus hidup akan menjadi kompleks. Menurut Connoly (2002, p272), suatu basis data dianalisis dan dirancang berdasarkan siklus terhadap seperti tergambar pada gambar berikut : 31 Gambar 2.3 Siklus Hidup Aplikasi Basis Data Berikut ini ringkasan dari aktivitas utama yang ada di setiap langkah dari siklus hidup aplikasi database, antara lain : a. Database Planning Merencanakan bagaimana tahapan-tahapan dari siklus hidup tersebut dapat direalisasikan dengan efektif dan efisien. 32 b. System Definition Menspesifikasikan ruang lingkup dan batasan dari aplikasi database, pemakai database, dan area-area aplikasi. c. Requirements Collection and Analysis Mengumpulkan dan menganalisis kebutuhan pemakai serta area-area aplikasi. d. Database Design Mencakup rancangan konseptual, rancangan logical, dan rancangan fisikal database. e. DBMS Selection (optional) Menyeleksi DBMS yang cocok untuk aplikasi database. f. Application Design Merancang antarmuka pemakai (user interface) dan program-program aplikasi yang akan menggunakan serta memproses database. g. Prototyping (optional) Membangun sebuah model kerja dari aplikasi database yang memungkinkan designer atau pemakai untuk memvisualisasi dan mengevaluasi wujud serta fungsi sistem akhir. h. Implementation Menciptakan definisi-definisi dari database eksternal, konseptual, internal, serta program -program aplikasi. i. Data Conversion and Loading Memindahkan data dari sistem yang lama ke sistem yang baru. 33 j. Testing Melihat apakah masih ada kesalahan (error) dan menvalidasinya sesuai dengan kebutuhan pemakai. k. Operational Maintenance Pada tahap ini aplikasi basis data diimplementasikan sepenuhnya. Sistem diawasi dan dipelihara secara berkelanjutan. Jika diperlukan, kebutuhankebutuhan baru dimasukan dalam aplikasi basis data melalui tahapan data terdahulu. 2.1.8 Tahapan Perancangan Basis Data Connoly (2002, p417-476 ) mendefinisikan metodologi perancangan basis data atas tiga tahapan , yaitu : 2.1.8.1 Perancangan Basis Data Konseptual Tahapan ini merupakan proses pembentukan model informasi yang digunakan di dalam sebuah perusahaan dan tidak tergantung pada semua pertimbangan fisikal. Tujuannya adalah untuk membangun representasi konseptual dari database, yang mana terdiri dari entiti-entiti, relationships, dan atribut-atribut yang penting. Perancangan ini terdiri dari sembilan langkah : Langkah 1 Membangun Model Data Konseptual Lokal Untuk MasingMasing Pandangan Langkah 1.1 Mengidentifikasi tipe entiti Langkah 1.2 Mengidentifikasi tipe relasi 34 Langkah 1.3 Mengidentifikasi dan mengasosiasikan atribut dengan entiti atau tipe relasi Langkah 1.4 Mengidentifikasi domain atribut Langkah 1.5 Menggunakan candidate key dan primary key Langkah 1.6 Menggunakan enchanced modeling concepts (langkah optional) Langkah 1.7 Mengecek redundansi Langkah 1.8 Validasi model konseptual lokal dengan transaksi pemakai Langkah 1.9 Mereview model data konseptual lokal dengan pemakai Berikut ini menjelaskan langkah-langkah yang telah disebutkan diatas secara lebih detail adalah sebagai berikut : Langkah 1.1 : Mengidentifikasi Tipe Entiti Tujuan dari langkah ini adalah mengidentifikasikan entiti utama yang diminta oleh pemakai. Salah satu metode untuk mengidentifikasi tipe entiti yang utama adalah dengan mengidentifikasi kata benda atau frase kata benda yang telah disebutkan oleh pemakai. Langkah 1.2 : Mengidentifikasi Tipe Relasi Tujuan dari langkah ini adalah untuk mengidentifikasi relasi yang penting antara berbagai tipe entiti yang telah diidentifikasikan. Biasanya, diidentifikasikan dengan menggunakan kata kerja atau frase kata kerja. relasi 35 Adapun langkah-langkah dalam mengidentifikasi tipe relasi adalah sebagai berikut : - Gunakan Entiti RelationshipDiagram (ERD). - Menentukan pembatas multiplicity dari tipe relasi. - Mengecek Fan traps dan Chasm traps. - Mengecek setiap entiti yang mempunyai relasi minimal satu. Langkah 1.3 : Mengidentifikasi dan Mengasosiasikan Atribut Dengan Entiti atau Tipe Relasi Tujuannya adalah untuk mengasosiasikan atribut dengan entity atau tipe relasi. Simple / Composite Attributes Composite attribute adalah atribut yang dibangun dari simpel atribut. Sebagai contoh, atribut alamat bisa saja dibuat simpel dan menyimpan beberapa detail dari alamat sebagai suatu nilai. Misalnya : Dumbarton Road, Glasgow, G116YG. Atribut alamat dapat juga mempresentasikan sebuah composite atribut, yang terdiri dari beberapa detail yang mempunyai nilai terpisah dalam atribut street (“115 Dumbarton Road”), City (“Glasgow”), dan postcode (“G116YG”). Atribut alamat dapat dijadikan simple atribut atau composite atribut tergantung dengan kebutuhan pemakai. Jika pemakai tidak membutuhkan detail dari atribut alamat seperti nama jalan, kota, kode pos, dan sebagainya, maka sebaiknya alamat tersebut dibuat sebagai composite atibut. 36 Single / Multi – Valued Attributes Suatu atribut juga dapat mempunyai satu atau lebih nilai. Contoh : Atribut no telepon. Seseorang dapat saja mempunyai no telepon lebih dari satu, apabila memang adanya demikian maka dapat disebut Multivalued Atribut. Tetapi apabila atribut tersebut hanya mempunyai suatu nilai maka disebut sebagai Single Atribut. Derived Attributes Atribut yang nilainya tergantung dengan nilai atribut yang lain, maka atribut ini disebut sebagai Derived Atribut. Sebagai contoh : - Umur dari seorang staff. - Banyaknya properti yang diatur oleh anggota staff. Langkah 1.4 : Mengidentifikasikan Domain Atribut. Tujuan dari langkah ini adalah untuk menentukan domain dari atribut yang ada di dalam lokal konseptual data model. Langkah 1.5 Menggunakan Candidate Key dan Primary Key Tujuan dari langkah ini adalah untuk mengidentifikasi candidat key dari setiap tipe entiti, dan jika memang terdapat lebih dari satu candidat key, pilihlah salah satunya untuk menjadi primary key. 37 Jika memilih sebuah primary key dari candidat key, gunakan petunjuk berikut untuk membantu membuat pilihan : • Candidat key dengan serangkai atribut yang minimal. • Candidat key tersebut adalah yang paling penting yang mungkin mempunyai nilai-nilai perubahan. • Candidat key dengan karakter yang paling sedikit. • Candidat key dengan nilai maksimal yang paling kecil . • Candidat key tersebut paling mudah digunakan dari segi pandang pemakai. Langkah 1.6 Menggunakan Enchanced Modeling Concepts (Langkah Optional) Tujuan dari langkah ini adalah untuk mempertimbangkan penggunaan enchanced modeling concepts, seperti specialization, generalization, aggregation, dan composition. Langkah 1.7 : Mengecek Redundansi Tujuan dari langkah ini adalah untuk mengecek apakah ada redundansi dalam model database. Pada langkah ini, dilakukan pengujian lokal konseptual data model dengan penglihatan secara spesifik. Apabila ada redundansi, maka dapat dihilangkan redundansi tersebut dengan dua langkah berikut : 1. Menguji kembali hubungan one-to-one. 2. Menghilangkan relasi redundansi. 38 Langkah 1.8 : Validasi Model Konseptual Lokal Dengan Transaksi Pemakai Tujuan dari langkah ini adalah untuk memastikan bahwa model konseptual lokal mendukung permintaan transaksi oleh pemakai. Pengujian dilakukan dengan dua kemungkinan pendekatan dengan memastikan bahwa model data konseptual lokal mendukung permintaan transaksi : 1. Deskripsikan transaksi Dengan pendekatan ini, dicek bahwa semua informasi (entiti, relationship, dan atributnya) dibutuhkan oleh masing-masing transaksi yang disediakan oleh model, dokumentasi sebuah deskripsi dari masing-masing kebutuhan transaksi. 2. Gunakan alur transaksi Pada pendekatan yang kedua ini, digunakan untuk menvalidasi model data melawan transaksi yang dibutuhkan yang melibatkan representasi alur secara diagramatik yang diambil oleh masing-masing transaksi secara langsung pada ERD. Langkah 1.9 : Mereview Lokal Konseptual Data Model Dengan Pemakai Tujuan dari langkah ini adalah untuk mereview lokal konseptual data model bersama pemakai untuk memastikan bahwa model yang ada sudah sesuai dengan yang diminta. 39 2.1.8.2 Perancangan Basis Data Logikal Pada tahapan ini diartikan sebagai proses pembentukan model informasi yang digunakan pada perusahaan yang berdasarkan pada model data spesifik, tetapi tidak tergantung pada DBMS partikular ataupun pertimbanganpertimbangan fisikal lainnya. Perancangan ini mempunyai tujuan untuk menterjemahkan representasi konseptual ke struktural. Pada perancangan ini terdiri dari beberapa langkah : Langkah 2 Membuat dan Menvalidasi Model Data Logikal Lokal Untuk Setiap Bagian Langkah 2.1 Menghilangkan bagian yang tidak sesuai dengan model relasi (langkah optional) Langkah 2.2 Menganalisis relasi untuk lokasi logikal data model Langkah 2.3 Menvalidasi relasi dengan normalisasi Langkah 2.4 Menvalidasi relasi dengan transaksi pemakai Langkah 2.5 Mengecek integritas basis data Langkah 2.6 Mereview lokal logikal data model dengan pemakai Langkah 3 Membangun dan Menvalidasi Model Data Logikal Global Langkah 3.1 Menggabungkan Local Logical Data Model menjadi Global Model Langkah 3.2 Menvalidasi Model Data Logikal Global Langkah 3.3 Mengecek untuk kemungkinan pengembangan di masa depan Langkah 3.4 Mereview model data logikal global dengan pemakai 40 Berikut ini detail mengenai langkah-langkah yang telah disebutkan, antara lain : Langkah 2.1 : Menghilangkan Bagian yang Tidak Sesuai Dengan Model Relasi (Langkah Optional) Bagian yang akan dibahas pada langkah ini antara lain : a. Menghilangkan many-to-many (* : *) tipe relasi binary. b. Mehilangkan many-to-many (* : *) tipe relasi rekursif. c. Menghilangkan tipe relasi kompleks. d. Menghilangkan multivalue atribut. Langkah 2.2 : Menganalisis Relasi Untuk Lokasi Model Data Logikal Adapun pendeskripsian bagaimana relasi dapat diturunkan dari struktur data model yang ada sekarang, yaitu : a. Tipe entiti kuat b. Tipe entiti lemah c. One-to-many (1 : *) tipe relasi binary d. One-to-one (1 : 1) tipe relasi binary e. One-to-one (1 : 1) tipe relasi rekursif f. Superclass atau subclass tipe relasi g. Many-to-many tipe relasi binary h. Tipe relasi kompleks i. Atribut multivalue 41 Langkah 2.3 : Menvalidasi Relasi Dengan Normalisasi Tujuan dari langkah ini adalah untuk menvalidasi relasi dalam lokal logikal data model denga menggunakan teknik normalisasi. Langkah utama dari proses normalisasi yaitu sebagai berikut : 1. bentuk normal pertama (1NF), menghilangkan kelompok perulangan (repeating). 2. bentuk normal kedua (2NF), menghilangkan ketergantungan sebagian (partial dependencies) pada primary key. 3. bentuk normal ketiga (3NF), menghilangkan ketergantungan transitif (transitive dependencies) pada primary key. 4. bentuk normal Boyce-Codd (BCNF), menghilangkan anomali sisa dari ketergantungan fungsional (functional dependencies). Langkah 2.4 : Menvalidasi Relasi Dengan Transaksi Pemakai Tujuannya adalah untuk memastikan bahwa relasi di dalam lokal logikal data model mendukung transaksi yang diminta pemakai. Pada langkah ini, pengecekan bahwa relasi yang dibuat di langkah sebelumnya juga mendukung transaksi ini, dan juga pastikan bahwa tidak ada ekor dalam relasi yang telah dibuat. Langkah 2.5 : Mengecek Integritas Basis Data Dalam langkah ini ada lima tipe dari ruang lingkup integritas, antara lain : 1. data yang diminta 2. domain pembatas atribut 42 3. integritas entiti 4. integritas referensi 5. pembatas enterprise Langkah 2.6 : Mereview Model Data Logikal Lokal Dengan Pemakai Tujuannya adalah untuk mamastikan bahwa lokal logikal data model dan pendukung dokumentasi mendeskripsikan model tersebut sebagai representasi yang sesuai dengan keadaan sebenarnya. Langkah 3.1 : Menggabungkan Model Data Logikal Lokal Menjadi Model Global Tujuan dari langkah ini adalah untuk menggabungkan suatu model data logikal lokal ke dalam suatu model data logikal global dari suatu enterprise. Beberapa tugas dari pendekatan ini adalah sebagai berikut : • mereview nama dan isi entiti atau relasi serta candidate key-nya. • mereview nama dan isi dari relationship atau foreign key. • menggabungkan entiti atau relasi dari lokal data model. • meliputi (kecuali penggabungan) entiti atau relasi yang unik ke masingmasing lokal data model. • menggabungkan relationship atau foreign key dari lokal data model. • meliputi (kecuali penggabungan) relationship atau foreign key yang unik ke masing-masing lokal data model. 43 • mengecek apakah ada kehilangan entiti atau relasi dan relationship atau foreign key. • mengecek foreign key. • mengecek batasan integriti. • menggambar ER atau relasi diagram. • Membaharui dokumentasi. Langkah 3.2 : Menvalidasi Model Data Logikal Global Tujuannya adalah untuk menvalidasi relasi dibuat dari global logikal data model dengan menggunakan teknik normalisasi and memastikannya untuk mendukung kebutuhan transaksi, jika diperlukan. Langkah 3.3 : Mengecek Untuk Kemungkinan Pengembangan di Masa Depan Tujuan dari langkah berikut adalah untuk menentukan apakah ada banyak perubahan signifikan yang penting di masa depan yang dapat diduga dan untuk mengakses apakah global logikal data model dapat mengakomodasi perubahan ini. Hal ini penting bahwa global logikal data model dapat diperluas dengan mudah. Jka model dapat menopang kebutuhan yang sekarang saja, maka kehidupan model tersebut mungkin relatif pendek dan pengerjaan yang signifikan mungkin dibutuhkan untuk mengakomodasi kebutuhan yang baru. Hal ini penting untuk mengembangkan model yang dapat diperluas dan mempunyai kemampuan yang 44 dapat meningkatkan untuk mendukung kebutuhan yang baru dengan efek yang minimal pada pamakai yang ada. Langkah 3.4 : Mereview Model Data Logikal Lokal Dengan Pemakai Model data logikal lokal untuk sebuah perusahaan seharusnya sekarang dilengkapi dan akurat. Model dan dokumentasi yang menjelaskan model seharusnya direview dengan pemakainya untuk memastikan bahwa ini adalah representasi perusahaan yang benar. 2.1.8.3 Perancangan Basis Data Fisikal Yang dimaksud dengan perancangan ini adalah proses untuk menghasilkan sebuah pendeskripsian mengenai pengimlementasian database pada media penyimpanan tambahan. Tujuannya adalah untuk menentukan bagaimana struktur logika diimplementasikan secara fisik (sebagai relasi) dalam target DBMS. Langkah 4 Menterjemahkan Model Data Logikal Global Untuk DBMS yang Digunakan Langkah 4.1 Desain Dasar Relasi Langkah 4.2 Desain Representasi dari Data Turunan (Derived Data) Langkah 4.3 Design Enterprise Constraint Langkah 5 Desain Representasi Fisik Langkah 5.1 Menganalisis Transaksi Langkah 5.2 Memilih File Organisasi Langkah 5.3 Memilih Index 45 Langkah 5.4 Memperkirakan kebutuhan ruang disk Langkah 6 Desain Tampilan Pemakai Langkah 7 Desain Mekanisme Keamanan Berikut ini adalah detail dari perancangan basis data secara fisik, antara lain : Langkah 4.1 : Desain Dasar Relasi Tujuan dari langkah ini adalah untuk memutuskan bagaimana merepresentasikan relasional dasar yang diidentifikasi dalam global logikal data model pada DBMS yang dipakai. Untuk memulai proses perancangan basis data fisik, pertama-tama harus mengumpulkan dan mengasimilisasikan suatu informasi tentang relasional yang dirancang selama perancangan basis data logikal. Informasi yang diperlukan bisa berasal dari kamus data dan definisi dari relasional yang didefinisikan menggunakan Database Design Language (DBDL). Untuk setiap relasional yang diidentifikasi pada global logikal data model, dapat didefinisikan salah satu sebagai berikut : • Nama dari relasional yang ada • Suatu list untuk atribut yang simpel • Primary key, alternative key, dan foreign key • Suatu daftar dari atribut turunan dan bagaimana pembuatannya • Batasan integrasi untuk setiap foreign key yang diidentifikasi 46 Dari kamus data, dari setiap atributnya dapat diketahui : • Domain atribut tersebut yang terdiri dari tipe data, panjang, dan berbagai keterangan atribut tersebut • Suatu optional nilai default untuk atribut • Apakah atribut dapat diisi nilai null Langkah 4.2 : Representasi Desain Dari Data Turunan (Derived Data) Tujuan dari langkah ini adalah untuk memutuskan bagaimana merepresentasikan suatu data turunan pada model data logikal global pada DBMS yang dipakai. Atribut yang nilainya didapatkan dengan mengevaluasi atribut lain dikenal sebagai atribut turunan atau kalkulasi. Sebagai contoh : • Jumlah banyaknya staff yang bekerja pada suatu kantor • Total gaji yang dibayarkan ke seluruh staff • Total dari properti yang ditangani oleh seorang staff Langkah 4.3 : Design Enterprise Constraint Mengupdate suatu relasi yang mungkin dibatasi oleh aturan perusahaan sesuai dengan transaksi yang sebenarnya bisa diupdate. Perancangan batasan tersebut sekali lagi tergantung pada DBMS yang digunakan, fasilitas yang dipunyai oleh sistem dibandingkan dengan DBMS yang lain. Pada awalnya, jika sistem tersebut mempunyai aturan sesuai dengan aturan standart SQL, beberapa batasan dapat diterapkan. 47 Langkah 5.1 : Menganalisis Transaksi Tujuan langkah ini adalah untuk mengerti fungsi dari suatu transaksi yang mana akan dijalankan pada basis data dan untuk menganalisis transaksi yang penting. Untuk membuat perancangan basis data fisikal yang efisien, maka perlu untuk mempunyai pengetahuan mengenai transaksi atau query yang akan dijalankan di dalam basis data. Ini termasuk kuantitatif atau kualitatif informasi. Dalam menganalisis transaksi, dapat diidentifikasi kriteria performansi sebagai berikut : • Transaksi yang sering digunakan dan akan berdampak besar terhadap performansi keseluruhan • Transaksi yang merupakan transaksi bisnis yang kritis • Durasi waktu dalam harian atau mingguan yang akan mendapatkan banyak permintaan pada database Langkah 5.2 : Memilih Organisasi File Dalam banyak kasus yang ada, suatu relasional DBMS akan memberikan sedikit bahkan tanpa pilihan dalam memilih organisasi file, walaupun beberapa akan mempunyai indeks yang spesifik. Bagaimanapun, berikut ini beberapa organisasi file yang ada adalah sebagai berikut : • Heap • Hash • Indexed Sequential Access Method (ISAM) • B*-tree • Cluster 48 Langkah 5.3 : Memilih Index Tujuannya adalah untuk menentukan penambahan indeks yang akan meningkatkan performansi dari suatu sistem. Biasanya atribut untuk indeks adalah sebagai berikut : • Suatu atribut yang digunakan paling sering untuk operasi penggabungan, yang akan membuat penggabungan tersebut lebih efektif • Suatu atribut yang digunakan paling banyak untuk mengakses suatu record di dalam relasi yang ada Langkah 5.4 : Memperkirakan Kebutuhan Kapasitas Disk Tujuannya adalah untuk mengestimasi ukuran kapasitas disk yang diperlukan untuk basis data. Sasaran dari langkah ini adalah untuk menaksirkan jumlah ruang disk yang diperlukan untuk mendukung implementasi basis data pada tempat penyimpanan sekunder. Langkah 6 : Desain Tampilan Pemakai Tujuan dari langkah ini adalah untuk merancang tampilan pemakai yang diidentifikasi selama pengumpulan informasi dan analisis dari siklus hidup aplikasi basis data. Langkah 7 : Desain Mekanisme Keamanan Tujuan dari langkah ini adalah untuk merancang ukuran keamanan untuk basis data yang telah dispesifikasikan pemakai. Definisi keamanan basis data adalah 49 suatu mekanisme yang memproteksi basis data dari suatu kejadian yang disengaja maupun yang tidak di sengaja. Suatu basis data merupakan sumber dari perusahaan yang essensial yang perlu dilindungi dengan menggunakan suatu kontrol yang memadai. Beberapa issue keamanan basis data yang perlu diperhatikan adalah sebagai berikut : 1. pencurian data (theft and Fraud) 2. kehilangan kerahasiaan suatu data (loss of confidentially) 3. kehilangan hak pribadi (loss of privacy) 4. kehilangan integritas (loss of integrity) 5. kehilangan ketersediaan data (loss of availability) Hasil akhir dari perancangan fisik basis data adalah suatu proses yang mendeskripsikan suatu implementasi dari suatu basis data pada media penyimpanan. Ini mendeskripsikan suatu relasional dan struktur penyimpanan dan metodologi pengaksesan data oleh pemakai yang efisien, selama batasan integritas dan pengukuran keamanan. 2.2 Teori-Teori Khusus Berikut ini adalah teori-teori yang mendukung topik yang sedang dibahas oleh penulis, yaitu antara lain : 2.2.1 Pengertian Training Menurut McLaughlin (1982, p3), kebanyakan sistem pembelajaran di sekolah masih pasif, dengan keterlibatan yang terbatas. Sekarang ini orang-orang menginginkan tugas yang lebih aktif dalam sistem pembelajarannya. Maksudnya kita harus melibatkan mereka sebanyak mungkin. Itulah mengapa cara berdiskusi 50 lebih baik dari pengajaran, dan tugas dengan sistem bermain juga lebih baik daripada harus menghafal diluar kepala. Dalam suatu pekerjaan, pelatihan adalah suatu cara yang paling baik. Kalau terdapat keinginan pada sebagian siswa untuk belajar dan menguasai apa yang telah dipelajarinya, maka ada sedikit harapan hasil yang menguntungkan dari program training (pelatihan). Setiap individu cenderung untuk mengulangi dan mempelajari dengan cepat. Reaksi ini disertai atau diikuti oleh dampak yang memuaskan dan jika sebaliknya maka responnya akan disertai dengan hasil yang negatif atau diulangulang. Oleh karena itu, perlu suatu pelatihan atau training untuk memantapkan sistem pembelajarannya. Dengan seringnya latihan, maka secara perlahan-lahan akan terbiasa, terlatih, dan menjadi lebih paham. Dengan adanya training juga, maka kita akan mendapatkan pengetahuan yang lain selain dari sekolah atau pusat pembelajaran yang lain. Adapun sembilan aturan dasar bagi training atau pelatihan, yaitu sebagai berikut : 1. kemampuan seorang siswa yang harus tahu dalam menentukan apa yang dapat dipelajari dan seberapa lama akan terjadi. 2. tingkatan pembelajaran, yang berdasarkan umur siswa, pengalaman, dan latar belakang adalah penting dalam menentukan bahwa siswa tersebut dapat belajar pada tingkatan yang sesuai. 3. sesuatu yang dipelajari dan dimengerti biasanya lebih menguasai daripada sesuatu yang dihafalkan tanpa berpikir. 51 4. praktek yang terdistribusi menawarkan beberapa periode yang lebih ekonomi dalam sistem pembelajarannya daripada praktek yang terkonsentrasi dalam suatu periode tunggal. 5. jika mengajar seseorang yang sudah mempunyai kemampuan yang lebih tinggi, yang paling baik adalah memperlihatkan performansi dalam cara yang sama sebagai seorang pengajar. 6. menunjukkan dan menjelaskan kesalahan-kesalahan dalam sesuatu pekerjaan, sehingga dapat meningkatkan proses pembelajaran. 7. lebih mudah untuk mengakui sesuatu daripada untuk memanggilnya kembali. 8. pembelajaran dibantu oleh praktek yang aktif daripada yang pasif. 9. pengetahuan merupakan hasil yang menunjuk pada peningkatan dalam proses pembelajaran. Adapun metode-metode yang berbeda bagi orang yang training, yaitu dengan cara : • penelitian • pengajaran • demonstrasi • audiovisual • bisnis permainan • tugas 52 2.2.2 Computer Based Training Menurut Chute, Thompson, dan Han Cook (2000, p37-38), computer based training adalah metode penyampaian training dimana komputer digunakan sebagai alat untuk menyampaikan materi pelajarannya. Murid membaca informasi yang disampaikan melalui layar komputer dan berinteraksi dengan isi yang ada di dalamnya dengan menggunakan mouse atau keyboard. Secara otomatis komputer mengatur data tracking dan proses informasi dalam melakukan registrasi, test, dan instruksi pengajaran. Pada mulanya komputer hanya memiliki kemampuan untuk menampilkan dalam bentuk text dan grafik monochrome sederhana. Dengan semakin berkembangnya komputer saat ini, maka tampilan grafik dan text ditingkatkan, penambahan suara dan warna, serta kapasitas yang besar dari RAM (Random Access Memory), maka menjadikan desktop komputer menjadi alat yang cocok untuk penyampaian materi pelajaran. Dengan penyampaian materi melalui internet, maka dapat mengurangi biaya pemeliharaan peralatan dan fasilitas yang disediakan apabila dilakukan melalui kelas tatap muka. Internet adalah pilihan yang sangat baik dalam penyampaian secara update dengan cepat. Kemudahan dalam menggunakan browser akan memudahkan siapa saja untuk menggunakan internet. Murid juga dapat menggunakan fasilitas ini dan memberikan pertanyaan kepada instruktur melalui diskusi online atau melalui email. Update juga dapat dilakukan secara elektronik melalui web. Jadi siapapun yang mengakses informasi setelah diupdate, maka dapat menerima informasi yang terbaru. 53 2.2.3 Entity Relational Diagram (ERD) Menurut Date (1990, p587), ERD merupakan suatu teknik untuk menggambarkan struktur logik dari sebuah basis data dalam suatu acara bergambar. Tentu saja, popularitas dari model E/R seperti sebuah pendekatan pada perancangan basis data dapat dilengkapi lebih untuk keberadaan teknik ERD daripada untuk beberapa kasus lainnya. Menurut McFadden dan Hoffer (1994, p124), ER model adalah sangat detail, merupakan representasi logikal dari data untuk sebuah organisasi atau untuk area bisnis. ER model ditekankan pada istilah entiti dalam lingkungan bisnis, relasi (atau asosiasi) antara entiti in, dan atribut (properti) dari kedua entiti dan relasinya. Suatu ER model dinyatakan secara normal sebagai diagram relasi entiti (Entity Relationship Diagram / ERD), yang mana merupakan representasi dari ER model. ER model biasanya dibangun sepanjang tahap analisis dari proses perkembangan database. Sebuah ER model boleh juga digunakan untuk merepresentasikan suatu data model perusahaan. Output dari tahap analisis merupakan data model konseptual yang dinyatakan dalam bentuk suatu ERD yang detail. 54 Contohnya adalah sebagai berikut : Gambar 2.4 Entity Relational Diagram Hubungan Pegawai Dengan Department 2.2.4 Data Flow Diagram (DFD) Menurut Yourdon (1989, p139), diagram aliran data adalah model atau alat yang digunakan untuk menggambarkan sistem sebagai jaringan dari sekumpulan proses fungsional, yang dihubungkan satu dengan yang lainnya oleh suatu aliran data dan meneruskannya menjadi data. DFD merupakan salah satu sistem model yang paling umum digunakan, khususnya untuk sistem operasi yang mana fungsi dari sistem tersebut adalah sangat penting dan lebih kompleks dari data yang memanipulasi sistem. 55 Ada tiga tingkatan dalam DFD, yaitu : 1. Diagram Konteks Merupakan tingkatan yang paling pertama yang menggambarkan ruang lingkup sistem dari sistem yang digunakan. Diagram ini hanya memiliki satu proses yang menggambarkan sistem secara keseluruhan dan hubungan antara sistem dengan unit-unit yang diluar sistem tersebut. 2. Diagram Nol Diagram yang menggambarkan proses-proses dan aliran data yang terjadi di dalam suatu sistem. Proses-proses ini dapat dipecah menjadi proses-proses dan aliran data yang lebih rinci. 3. Diagram Rinci Diagram yang menggambarkan rincian proses-proses yang ada pada diagram nol dan rincian proses-proses ini dapat dipecah lagi menjadi proses-proses yang lebih terperinci. Menurut Yourdon (1989, p141-152), diagram aliran data terdiri dari simbol-simbol sebagai berikut: a. Proses (bubble atau function atau transformation) Proses yang menggambarkan bagian dari sistem yang mengolah masukan menjadi keluaran. Proses digambarkan dengan sebuah lingkaran. Gambar 2.5 Simbol Proses Dalam DFD 56 b. Aliran Data(data flow) Aliran menggambarkan perpindahan informasi dari satu bagian ke bagian yang lain dari sistem. Awal panah menggambarkan asal data, sedangkan arah panah menggambarkan tujuan. Gambar 2.6 Simbol Aliran Data Dalam DFD c. Data Store Simbol ini digunakan untuk menggambarkan penyimpanan data. Gambar 2.7 Simbol Data Store Dalam DFD d. Entiti Eksternal Merupakan simbol yang menggambarkan entitas yang dapat berupa orang, kelompok, atau organisasi yang berhubungan dengan sistem. Gambar 2.8 Simbol Entiti Eksternal Dalam DFD 57 2.2.5 Structured Query Language (SQL) 2.2.5.1 Pengertian SQL SQL singkatan dari Structured Query Language. Dalam bahasa Inggris sering dibaca sebagai SEQUEL. Menurut Kadir (1999, p101), SQL merupakan bahasa query standar yang digunakan untuk mengakses basis data relasional. Standarisasi internasional terhadap SQL pertama kali dilakukan oleh ANSI (American National Standards Intitution), melalui publikasi Database Language SQL. Saat ini, ANSI dan ISO (International Standards Organization) merupakan dua organisasi yang membuat standarisasi terhadap SQL. SQL pertama kali diterapkan pada sistem R (sebuah proyek riset pada laboratorium riset San Jose, IBM). Namun kini SQL juga dijumpai pada berbagai platform, dari mikrokomputer hingga mainframe. SQL dapat digunakan baik secara berdiri sendiri maupun dilekatkan pada bahasa-bahasa lain seperti COBOL, dan C. SQL juga telah menjadi bagian dari sejumlah DBMS, seperti Oracle, Sybase, dan Informix. 2.2.5.2 SQL Sebagai SubBahasa Penyebutan SQL sebagai bahasa query sebenarnya tidak tepat sebab kemampuan SQL tidak terbatas hanya untuk query (memperoleh data), tetapi juga mencakup kemampuan lain seperti : • Pendefinisian struktur data • Pengubahan data • Pengaturan sekuritas, dan lain-lain 58 Terkadang SQL dikatakan sebagai subbahasa data, bukan sebagai bahasa. Adapun alasan SQL dikatakan sebagai subbahasa data adalah karena SQL tidak mendukung persyaratan bahasa yang lengkap, sekalipun SQL dapat dipakai untuk mengakses basis data. SQL tidak menyediakan hal-hal berikut : • Pernyataan penguji kondisi (semacam IF pada COBOL) • Pernyataan pengulangan atau iterasi (semacam REPEAT pada Pascal) 2.2.5.3 Antarmuka SQL Terhadap DBMS Penggunaan SQL pada DBMS cukup luas. SQL dapat dipakai oleh berbagai kalangan (DBA, pemrogram, ataupun pemakai). • SQL sebagai bahasa administrasi basis data Dalam hal ini SQL dipakai oleh DBA untuk menciptakan serta mengendalikan pengaksesan basis data. • SQL sebagai bahasa query interaktif Pemakai dapat memberikan perintah-perintah untuk mengakses basis data yang sesuai dengan kebutuhannya. Hal seperti ini sangat berguna untuk memenuhi kebutuhan-kebutuhan yang bersifat seketika (hanya digunakan saat itu saja). • SQL sebagai bahasa pemrograman basis data Pemrogram dapat menggunakan perintah-perintah SQL dalam program aplikasi yang dibuat, guna mengakses basis data. 59 • SQL sebagai bahasa client/server SQL juga dipakai sebagai untuk mengimplementasikan sistem klien/server. Sebuah klien dapat menjalankan suatu aplikasi yang mengakses basis data yang ada pada suatu server. Dalam hal ini sistem operasi antara server dan klien dapat berbeda. Sebagai contoh, server barang kali menggunakan UNIX dan klien menggunakan Windows NT. Aplikasi pada klien bisa juga dibuat dengan menggunakan perangkat lunak DBMS yang berbeda. Contoh yang lain, klien menggunakan Visual FoxPro dan server menggunakan Informix atau Oracle. Gambar 2.9 Model Klien/Sever Dengan Berbagai DBMS Di lingkungan PC, pengaksesan data antar DBMS yang berbeda dapat dilakukan dengan mudah berkat adanya ODBC (Open Database Connectivity). ODBC merupakan antarmuka pemrograman standar industri yang memungkinkan aplikasi-aplikasi mengakses berbagai sistem manajemen basis 60 data yang berada dalam berbagai platform. ODBC memungkinkan ketidaktergantungan basis data melalui kaidah SQL yang standar. Perangkat lunak ODBC tersusun oleh sejumlah komponen, yaitu lapisan aplikasi, manajer pengendali (driver manager), pengendali yang spesifik terhadap basis data dan sumber data. 2.2.5.4 Elemen SQL Elemen dasar SQL mencakup pernyataan, nama, tipe data, konstanta, ekspresi, dan fungsi bawaan. a. Pernyataan Pernyataan adalah perintah SQL yang meminta sesuatu tindakan kepada DBMS. SQL kira-kira mempunyai 30 pernyataan. b. Nama Nama digunakan sebagai identitas bagi objek-objek pada DBMS. Contoh objek pada DBMS adalah tabel, kolom, dan pengguna. c. Tipe Data Setiap data memiliki tipe data. Tipe data sendiri dapat dibedakan menjadi dua, yaitu tipe data standar dan tipe data perluasan. Dari tipe data standar terdapat tiga jenis, yaitu karakter (CHAR), integer (INTEGER), dan numerik (NUMERIC). Sedangkan untuk tipe data perluasan ada beberapa jenis, yaitu contohnya VARCHAR, MONEY, BOOLEAN, BLOB, dan SERIAL atau AUTOINCREMENT. 61 d. Konstanta Konstanta menyatakan nilai yang tetap (kebalikan dari konstanta adalah variabel). Beberapa contoh konstanta : • Konstanta numerik : 123, -245, 5.45 • Konstanta : ‘Jl. Sukapura 23’ • Konstanta simbolik (konstanta yang tersedia pada SQL dan mempunyai makna tersendiri) : SYSDATE (tanggal sistem), USER (nama pemakai yang menjalankan SQL). Konstanta simbolik seringkali disebut variabel sistem. e. Ekspresi Ekspresi adalah segala sesuatu yang menghasilkan nilai. Ekspresi digunakan untuk menghitung nilai. Sebagai contoh : (BIAYA KURSUS / GAJI INSTRUKTUR) * 100 merupakan ekspresi untuk membagi isi variabel BIAYA KURSUS dengan GAJI INSTRUKTUR, dan kemudian dikalikan dengan 100. f. Fungsi Bawaan Fungsi adalah sebuah subprogram yang menghasilkan suatu nilai jika dipanggil. SQL memiliki sejumlah fungsi bawaan (fungsi yang disedikan oleh SQL). Sebagai contoh, terdapat fungsi bernama MIN yang berguna untuk memperoleh nilai terkecil atau AVG untuk memperoleh nilai rata-rata. 62 2.2.5.5 Kelompok Pernyataan SQL Menurut Kadir (1999, p106), pernyataan SQL dapat dikelompokkan menjadi lima kelompok, yaitu DDL, DML, DCL, pengendali transaksi, dan pengendali programatik. a. DDL (Data Definition Language) DDL merupakan kelompok perintah yang berfungsi untuk mendefinisikan atribut-atribut basis data, tabel, atribut (kolom), batasanbatasan, terhadap suatu atribut, serta hubungan antar tabel. Yang termasuk dalam kelompok DDL ini adalah CREATE, ALTER, dan DROP. Perintah Keterangan CREATE Menciptakan tabel, indeks, atau view ALTER Mengubah struktur tabel DROP Menghapus tabel, indeks, atau view Tabel 2.5 Perintah Dalam Kategori DDL b. DML (Data Manipulation Language) DML adalah kelompok perintah yang berfungsi untuk memanipulasi data dalam basis data. Misalnya untuk pengambilan, penyisipan, pengubahan, dan penghapusan data. Perintah yang masuk kategori DML adalah : 63 Perintah Keterangan SELECT Memilih data INSERT Menambah data DELETE Menghapus data UPDATE Mengubah data Tabel 2.6 Perintah Dalam Kategori DML c. DCL (Data Control Language) DCL berisi perintah-perintah untuk mengendalikan pengaksesan data. Pengendalian dapat dilakukan berdasarkan per pemakai, per tabel, per kolom, maupun per operasi yang boleh dilakukan. Perintah-perintah yang termasuk dalam DCL adalah sebagai berikut : Perintah Keterangan GRANT Memberikan kendali pengaksesan data REVOKE Mencabut kemampuan pengaksesan data LOCK TABLE Mengunci tabel Tabel 2.7 Perintah Dalam Kategori DCL d. Pengendali Transaksi Pengendali transaksi adalah perintah-perintah yang berfungsi untuk mengendalikan pengeksekusian transaksi. Printah-perintah yang termasuk dalam kategori ini adalah : 64 Perintah COMMIT Keterangan Menyetujui rangkaian perintah yang berhubungan erat (disebut transaksi) yang telah berhasil dilakukan. ROLLBACK Membatalkan transaksi yang dilakukan karena adanya kesalahan atau kegagalan pada salah satu rangkaian perintah. Tabel 2.8 Perintah Dalam Kategori Pengendali Transaksi e. Pengendali Programatik Pengendali programatik mencakup pernyataan-pernyataan yang berhubungan dengan pemanfaatan SQL dalam bahasa lain (SQL yang dilekatkan). Pernyataan-pernyataan ini biasa dipakai dalam bahasa konvensional (3-GL), seperti COBOL. Yang termasuk dalam pengendali programatik adalah : DECLARE, OPEN, FETCH, dan CLOSE. Perintah Keterangan CLOSE Menutup kursor (pointer yang menunjuk ke tabel) DECLARE Mendeklarasikan kursor FETCH Mengambil nilai baris berikutnya OPEN Untuk membuka kursor Tabel 2.9 Perintah Dalam Kategori Pengendali Programatik 65 2.2.6 Model Relasional Menurut Kadir (1999, p25), model relasional merupakan model yang paling sederhana sehingga mudah digunakan dan dipahami oleh pemakai, serta merupakan yang paling populer saat ini. Model ini menggunakan sekumpulan tabel berdimensi dua (yang disebut relasi atau tabel), dengan masing-masing relasi tersusun atas tupel atau baris dan atribut. Relasi dirancang sedemikian rupa sehingga dapat menghilangkan kemubaziran data dan menggunakan kunci tamu (foreign key) untuk berhubungan dengan relasi lain. Sedangkan menurut Subekti (2004, p31), dalam model basis data relasional maka data diorganisir dalam bentuk tabel-tabel dua dimensi (seperti halnya bentuk konvensional dari file sequential). Organisasi data dalam bentuk tabel atau disebut juga dengan relation, terdiri atas baris (row / tuple) yang merepresentasikan record dan kolom (column) yang merepresentasikan atribut (field). Berbagai keuntungan yang dimiliki oleh basis data relasional yaitu antara lain : • Bentuknya sederhana sehingga mudah dimengerti (representasi tabel). • Bentuknya alami (natural) sehingga mudah bagi pemakai melakukan berbagai operasi data (insert, update, delete). 66 2.2.7 Kunci Relasional Menurut Connoly (2002, p78), dalam suatu relasi atau hubungan tidak ada salinan tupel, oleh karena itu diperlukan kemampuan untuk mengidentifikasikan satu atau lebih atribut (disebut dengan kunci relasi) yang mengidentifikasikan masing-masing tupel secara unik dalam suatu relasi. Macam-macam kunci relasi tersebut adalah : • Superkey Merupakan suatu atribut atau sekumpulan atribut yang mengidentifikasikan tupel secara unik dalam suatu relasi. • Kunci Komposit (Composite Key) Kunci komposit adalah kunci yang disusun berdasarkan lebih dari satu atribut. • Kunci Kandidat (Candidate Key) Kunci kandidat adalah satu atribut atau satu set minimal atribut yang mengidentifikasikan secara unik suatu kejadian spesifik dari entiti. • Kunci Primer (Primary Key) Merupakan kunci kandidat yang dipilih untuk mengidentifikasikan tupel secara unik dalam suatu relasi. • Kunci Alternatif (Alternate Key) Merupakan kunci kandidat yang tidak dipakai sebagai kunci primer. • Kunci Tamu (Foreign Key) Merupakan suatu atribut atau sekumpulan atribut dalam satu relasi yang melengkapi kunci kandidat beberapa relasi. 67 2.2.8 Struktur Data Relasional Menurut Connoly (2002, p72), suatu struktur data relasional terdiri dari beberapa macam, yaitu : • Relation (Relasi) Suatu relasi adalah sebuah tabel dengan kolom-kolom dan baris-baris. • Attribute (Atribut) Suatu atribut merupakan nama kolom dari suatu relasi. • Domain Suatu domain merupakan sekumpulan nilai-nilai yang diperbolehkan bagi satu atau lebih atribut. • Tuple (Tupel) Tupel adalah sebuah baris dalam suatu relasi. • Degree (Derajat) Derajat dalam suatu relasi merupakan sejumlah atribut yang terkandung di dalamnya. • Cardinality (kardinalitas) Kardinalitas dari suatu relasi merupakan sejumlah tupel yang terkandung di dalamnya. • Relational Database (Relasi Basis Data) Suatu koleksi dari relasi normalisasi dengan nama-nama relasi yang jelas. 68 2.2.9 Disk Space Requirement Menurut Elmasri dan Navathe (2000, p131), perhitungan untuk kebutuhan disk space dapat menggunakan rumus-rumus sebagai berikut : B bfr = ── R r b = ── bfr Keterangan : B = Block (1024 Byte) R = Record Length r = Record Number bfr = Banyaknya record per Block b = Banyaknya Block per tabel