BAB 2 LANDASAN TEORI 2.1 Teori - teori Umum 2.1.1 Pengertian Data Menurut Thomas Conolly dan Carolyn Begg (2010, p70), data adalah komponen yang terpenting dari DBMS environment dari sudut end-user. Data bertindak sebagai jembatan penghubung antara komponen mesin dan manusia. 2.1.2 Pengertian Basis Data (Database) Menurut Thomas Conolly dan Carolyn Begg (2010, p65), database merupakan sekumpulan dari data logika yang saling berhubungan dan gambaran dari data tersebut, dirancang untuk memenuhi kebutuhan informasi sebuah organisasi. Database adalah sebuah tempat penyimpanan data yang memiliki kapasitas penyimpanan yang besar dimana dapat digunakan secara bersamaan oleh banyak departemen dan pengguna lainnya (user). Tujuan utama dari konsep database adalah meminimalkan pengulangan data dan tercapainya independensi data. Model database relasional adalah sistem yang banyak digunakan karena struktur logikalnya yang sederhana. Pada model relasional 6 7 seluruh data disusun secara logikal dalam relasi-relasi atau tabel. Setiap relasi terdiri dari baris dan kolom. Dimana baris dari relasi disebut tuple atau setiap tuple (baris) memiliki satu nilai untuk setiap atribut dan kolom dari relasi diberi nama tertentu yang disebut atribut. Database yang tabel-tabelnya saling terhubung dikatakan memiliki relasi. Karena tidak ada relasi yang memiliki dua tuple yang sama, maka setiap baris dapat didefinisikan dengan menggunakan primary key. Munculnya sebuah atribut dalam beberapa relasi dapat mempresentasikan hubungan antara tuple dari relasi tersebut. Pengguna database dapat berupa orang atau program aplikasi. Orang biasanya mengambil data dan informasi dengan menggunakan query language. Query adalah permintaan informasi dari database dan query language adalah bahasa khusus yang user-friendly yang memungkinkan komputer menjawab query. Pendekatan database adalah memisahkan struktur data dari program aplikasi dan menyimpannya dalam database. Database merupakan sistem penyimpanan record terkomputerisasi yang bertujuan untuk pemeliharaan informasi dan tersedia pada saat dibutuhkan. Teknologi database memperbolehkan sekumpulan data dengan berbagai tipe (teks, angka, gambar, suara, dan lain-lain) disimpan dalam komputer dan digunakan secara efisien tanpa adanya duplikasi oleh aplikasi yang berhubungan. Menurut Jeffrey L. Whitten, Lonnie D. Bentley, dan Kevin C. Dittman (2004, p518), Database adalah kumpulan file yang saling 8 terkait. Database tidak hanya merupakan kumpulan file, tetapi record pada setiap file harus memperbolehkan hubungan-hubungan untuk menyimpan file-file lain. Contohnya, database SALES mungkin terdiri dari record order yang “terhubung” ke record CUSTOMER dan record PRODUCT yang terkait. 2.1.3 Arsitektur Database Menurut Thomas Connolly dan Carolyn Begg (2010, p86), terdapat tiga level arsitektur database yaitu: 1. External Level External level merupakan pandangan pengguna terhadap database. Level ini menjelaskan tentang bagian dari database yang relevan untuk setiap pengguna. External view ini terdiri dari entitas, atribut, dan hubungan-hubungan yang ada pada dunia nyata yang diminati oleh pengguna. 2. Conceptual Level Conceptual level merupakan level yang menjelaskan tentang data yang disimpan dalam database dan hubungan-hubungan antar data tersebut. Level ini meliputi: • Seluruh entitas, atribut, dan hubungannya. • Informasi semantik tentang data. • Keamanan dan informasi yang terintegritas. 9 3. Internal Level Internal level merupakan gambaran fisik dari database pada komputer. Level ini menjelaskan tentang bagaimana data disimpan di dalam database. Level ini menyangkut beberapa hal yaitu: - Alokasi ruang penyimpanan untuk data dan indeks. - Deskripsi record untuk penyimpanan (dengan ukuran yang disimpan untuk data item). 2.1.4 - Penempatan record. - Kompresi data dan teknik enkripsi data. DBMS (Database Management System) 2.1.4.1 Definisi DBMS (Database Management System) Menurut Thomas Connolly dan Carolyn Begg (2010, p66), pengertian DBMS (Database Management System) adalah sistem perangkat lunak yang memungkinkan pengguna untuk mendefinisikan, membuat, memelihara, dan mengontrol akses database. Fasilitasfasilitas dari DBMS yaitu: • DDL (Data Definition Language). DDL memperbolehkan pengguna untuk menentukan tipe data data, struktur, dan kendala dari data yang akan disimpan di database. 10 • DML (Data Manipulation Language). DML memperbolehkan pengguna untuk melakukan insert, update, delete, dan mengambil data dari database. • Menyediakan kontrol akses ke database. Sebagai contoh, sebuah sistem keamanan yang mencegah pengguna yang tidak bertanggung jawab mengakses database. Dengan semua fasilitas ini, DBMS menjadi sistem yang powerful dan berguna. DBMS juga menyediakan fasilitas lainnya yaitu view mechanism, yang memperbolehkan setiap pengguna untuk memiliki masing-masing view ke database. Selain mengurangi kompleksitas dengan memberikan data yang ingin dilihat oleh pengguna, view juga mempunyai keuntungan lain yaitu: • View menyediakan level keamanan. View bisa diatur supaya beberapa pengguna tidak dapat melihat data tertentu. • View menyediakan sebuah mekanisme untuk menyesuaikan tampilan database. • View bisa mempresentasikan sebuah konsisten, gambaran yang tidak dapat diubah dari struktur database. 11 2.1.4.2 Komponen DBMS (Database Management System) Menurut Thomas Connolly dan Carolyn Begg (2010, p68), terdapat lima komponen penting di dalam lingkungan DBMS yaitu: 1. Hardware (Perangkat keras) Untuk menjalankan DBMS dan aplikasi-aplikasi, maka membutuhkan perangkat keras. Perangkat keras meliputi dari PC, single mainframe, dan jaringan komputer. 2. Software (Perangkat lunak) Komponen perangkat lunak meliputi perangkat lunak DBMS sendiri, program-program aplikasi, sistem operasi, dan sistem jaringan jika DBMS dioperasikan menggunakan jaringan. 3. Data Data merupakan komponen yang paling penting dari lingkungan DBMS dari sudut end-user. Data juga berperan sebagai penghubung antara komponen mesin (perangkat keras dan perangkat lunak) dan komponen manusia. 4. Procedure Procedure merupakan instruksi-instruksi dan aturan yang mengatur perancangan dan penggunaan database. Pengguna sistem dan staff yang mengelola database membutuhkan prosedur-prosedur yang didokumentasikan mengenai bagaimana cara menggunakan atau menjalankan 12 sistem tersebut. Ada beberapa instruksi dalam penggunaannya yaitu: • Log on ke DBMS. • Menggunakan sebagian fasilitas DBMS atau program aplikasi. • Start dan stop DBMS. • Membuat salinan backup database. • Menangani kegagalan perangkat keras atau perangkat lunak. Contohnya: Bagaimana mengidentifikasi komponen yang failed, bagaimana memperbaiki komponen yang failed, memperbaiki kesalahan, dan bagaimana cara merecover database. • Mengubah struktur tabel, mengatur ulang database di beberapa disk, meningkatkan performa, atau mengarsipkan data ke penyimpanan sekunder. 5. People Terdapat empat tipe orang yang berpartisipasi di dalam lingkungan DBMS yaitu : - Data dan Database Administrators Data Administrator adalah orang yang bertanggung jawab untuk pengelolaan sumber data, termasuk perencanaan database; pengembangan dan pemeliharaan 13 standar, kebijaksanaan, dan prosedur-prosedur; dan perancangan konseptual/logikal database. Database Administrator adalah orang yang bertanggung jawab untuk hubungan secara fisikal dari database, termasuk perancangan fisikal database dan implementasi, keamanan dan kontrol integritas, pemeliharaan sistem operasi, serta memastikan kepuasan pengguna terhadap performa aplikasi tersebut. - Database designers Terdapat 2 tipe designer yaitu logical database designer dan physical database designer. a. Logical database designer Logical database designer adalah orang yang berkaitan dengan identifikasi data (entitas dan atribut), hubungan antar data, dan kendala-kendala pada data yang disimpan dalam database. b. Physical database designer Physical database designer adalah orang yang menentukan bagaimana perancangan logikal database direalisasikan ke dalam bentuk fisikal. Contohnya: - Pemetaan perancangan logikal database menjadi suatu kumpulan integritas. tabel dan batasan-batasan 14 - Memilih struktur penyimpanan yang spesifik dan metode akses untuk data untuk mencapai performa yang baik. - Merancang segala langkah-langkah keamanan yang dibutuhkan oleh data. c. Application developers Application developers adalah orang-orang yang bertanggung jawab atas implementasi program aplikasi agar menyediakan fungsi-fungsi yang diperlukan bagi end-users. d. End-users End-users adalah ‘klien’ untuk database yang dibentuk, dipertahankan diimplementasikan, untuk melayani dan kebutuhan informasi. 2.1.4.3 Fungsi DBMS (Database Management System) Menurut Thomas Connolly dan Carolyn Begg (2010, p99), DBMS memiliki sepuluh fungsi yaitu: 1. Data storage, retrieval, dan update DBMS harus memungkinkan pengguna agar mampu untuk menyimpan, mengambil, dan memperbaharui data di dalam database. 15 2. A user-accessible catalog DBMS harus memiliki katalog yang berisikan deskripsi item data yang disimpan dan dapat diakses oleh pengguna. 3. Transaction support DBMS harus memiliki sebuah mekanisme yang dapat menjamin dengan baik seluruh perubahan yang berhubungan dengan sebuah transaksi dapat dilakukan atau tidak dapat dilakukan. 4. Concurrency control services DBMS harus memiliki sebuah mekanisme untuk menjamin bahwa database diupdate dengan benar ketika banyak pengguna mengupdate database secara bersamaan. 5. Recovery services DBMS harus memiliki sebuah mekanisme untuk pemulihan database pada saat terjadi kerusakan dengan cara apapun. 6. Authorization services DBMS harus memiliki sebuah mekanisme untuk menjamin bahwa hanya pengguna yang memiliki otorisasi yang dapat mengakses database. 7. Support for data communication DBMS harus dapat terintegritas dengan perangkat lunak komunikasi dan mendapat akses database dari lokasi yang jauh. 16 8. Integrity services DBMS harus memiliki sarana yang menjamin data didalam database maupun perubahan terhadap data tersebut dan mengikuti aturan-aturan tertentu 9. Services to promote data independence. DBMS harus berisikan fasilitas-fasilitas untuk mendukung ketidaktergantungan program dari struktur aktual database. 10. Utility services DBMS harus menyediakan perlengkapan layanan seperti program analisis statistik, pengawasan fasilitas, fasilitas reorganisasi indeks, dan lain-lain. 2.1.4.4 Keuntungan dan kerugian DBMS Menurut Thomas Connolly dan Carolyn Begg (2010, p77), ada beberapa keuntungan dan kerugian dalam penggunaan DBMS. Keuntungannya adalah sebagai berikut: 1. Adanya kontrol terhadap redundansi data 2. Konsistensi data 3. Mendapatkan informasi lebih untuk sejumlah data yang sama 4. Adanya pembagian data 5. Meningkatkan integritas data 17 6. Meningkatkan keamanan 7. Meningkatkan standar 8. Skala ekonomi 9. Menyeimbangkan kebutuhan-kebutuhan yang saling bertabrakan 10. Meningkatkan pengaksesan dan respon data 11. Meningkatkan produktivitas 12. Meningkatkan pemeliharaan melalui data independence 13. Meningkatkan konkurensi 14. Meningkatkan layanan backup dan recovery Kerugiannya adalah sebagai berikut: 2.1.5 1. Kompleksitas 2. Ukuran 3. Biaya DBMS 4. Biaya tambahan perangkat keras 5. Biaya proses konversi 6. Performa 7. Pengaruh kegagalan yang besar The Database System Development Lifecycle Menurut Thomas Connolly dan Carolyn Begg (2010, p313), sebuah sistem database merupakan komponen dasar sistem informasi organisasi yang lebih besar sehingga siklus hidup pengembangan sistem database berhubungan dengan siklus hidup sistem informasi. 18 Berikut adalah tahapan-tahapan siklus hidup pengembangan sistem database: Gambar 2.1 Siklus Hidup Pengembangan Sistem Database 19 2.1.5.1 Database Planning Database planning (perencanaan basis data) adalah merencanakan bagaimana tahapan dari siklus hidup direalisasikan secara efektif dan efisien. Ada tiga tahapan perencanaan database yaitu: a. Mengidentifikasi rencana dan tujuan pembuatan aplikasi database untuk menetapkan kebutuhan sistem informasi. b. Mengevaluasi sistem yang sudah ada untuk menentukan kelebihan dan kekurangannya. c. Menilai kesempatan teknologi informasi untuk menghasilkan keuntungan. 2.1.5.2 System Definition System definition (definisi sistem) adalah menggambarkan lingkup dan batasan-batasan dari aplikasi database dan user view yang utama. Sebelum mencoba merancang suatu aplikasi database, diperlukan untuk mengenali batasan sistem dan bagaimana antarmuka dengan bagian sistem informasi lainnya dalam organisasi. Hal penting yang harus diperhatikan adalah batasan pemakai dan aplikasi mendatang. Mengidentifikasikan user view sangat penting dalam mengembangkan aplikasi database agar dapat memastikan tidak ada pengguna utama yang terlupakan ketika mengembangkan keperluan untuk aplikasi baru. 20 2.1.5.3 Requirements Collection and Analysis Requirements collection and analysis (pengumpulan kebutuhan dan analisis) adalah proses dari analisis dan pengumpulan informasi tentang bagian organisasi yang didukung oleh sistem aplikasi database dan menggunakan informasi ini untuk mengenali kebutuhan-kebutuhan untuk sistem baru. 2.1.5.4 Database Design Database design (perancangan basis data) adalah sebuah proses dalam menciptakan perancangan untuk database yang akan mendukung operasi dan tujuan perusahaan. Ada 4 pendekatan dalam perancangan database yaitu: 1. Top-down Diawali dengan pembentukan model data yang berisi beberapa entitas high-level dan relasi yang kemudian menggunakan pendekatan top-down secara berturut-turut untuk mengidentifikasi entitas lower level, relasi, dan atribut lainnya. 2. Bottom-up Dimulai dari atribut dasar yaitu sifat-sifat entitas dan relasi dengan analisis dari penggabungan antar atribut, yang dikelompokkan ke dalam suatu relasi yang merepresentasikan tipe dari entitas dan relasi antar entitas. 21 3. Inside-out Berhubungan dengan pendekatan bottom-up tetapi sedikit berbeda dengan identifikasi awal entitas utama yang kemudian menyebar ke entitas, relasi, dan atribut terkait lainnya yang lebih dulu diidentifikasi. 4. Mixed Menggunakan pendekatan bottom-up dan top-down untuk bagian yang berbeda sebelum pada akhirnya digabungkan. Proses perancangan database terdiri dari tiga tahapan yaitu: 1. Conceptual database design Proses pembuatan model informasi yang digunakan agar tidak tergantung pada semua masalah fisik. Secara garis besar perancangan ini terdiri dari tiga langkah sebagai berikut: a. Penentuan entitas pada database. b. Pendefinisian hubungan/relasi antar entitas. c. Penerjemahan hubungan ke dalam entitas. 2. Logical database design Proses tahapan model informasi yang digunakan berdasarkan model khusus, tetapi bebas dari DBMS tertentu dan masalah fisik lainnya. 22 3. Physical database design Proses pembuatan deskripsi dari suatu implementasi database pada penyimpanan sekunder. 2.1.5.5 DBMS Selection (optional) DBMS selection (pemilihan DBMS) adalah memilih DBMS yang sesuai untuk mendukung aplikasi database. Pemilihan DBMS tepatnya dari bagian lifecycle adalah pemilihan DBMS yang dilakukan antara tahapan logical database design dan conceptual database design. Tujuan dari pemilihan DBMS adalah untuk mencukupi kebutuhan sekarang dan masa mendatang pada perusahaan, menyeimbangkan biaya seperti pembelian produk DBMS; perangkat lunak/perangkat keras lainnya untuk mendukung aplikasi database; serta biaya yang berhubungan dengan perubahan dan pelatihan pegawai. Pendekatan sederhana dalam pemilihan DBMS adalah memeriksa keistimewaan DBMS dalam memenuhi kebutuhan. Dalam memilih sebuah produk DBMS baru, ada kesempatan untuk memastikan bahwa proses pemilihan sudah direncanakan dan hasil yang diberikan sistem benar-benar bermanfaat bagi perusahaan. 23 2.1.5.6 Application Design Pada tahap ini dilakukan perancangan antarmuka bagi pengguna dan program aplikasi yang menggunakan dan memproses database. Perancangan database dan perancangan aplikasi adalah aktivitas bersamaan pada siklus hidup pengembangan sistem database. Dalam kasus sebenarnya, adalah tidak mungkin untuk menyelesaikan perancangan aplikasi sebelum perancangan database selesai. Dalam perancangan aplikasi harus memastikan semua pernyataan fungsional dari spesifikasi kebutuhan pengguna yang menyangkut perancangan aplikasi program yang mengakses database dan merancang transaksi yaitu cara akses ke database dan perubahan terhadap isi database (retrieve, update, dan mixed). - Retrieval: Mendapatkan data untuk ditampilan di layar. - Update: insert, delete, dan update record pada database. - Mixed: Gabungan dari retrieval dan update. Artinya bagaimana fungsi yang dibutuhkan bisa terpenuhi dan merancang antarmuka pengguna (user interface). Antarmuka yang dirancang harus memberikan informasi yang dibutuhkan dengan cara untuk menciptakan user-friendly. Rancangan antarmuka pengguna yang dalam pembuatannya tidak memperhatikan tingkat kedetilannya dapat menimbulkan masalah. Oleh karena itu, antarmuka harus diakui sebagai komponen dari sistem yang penting. Hal ini bertujuan agar aplikasi mudah dipelajari, mudah digunakan, 24 sehingga penggunapun akan cenderung untuk memberdayagunakan informasi yang disajikan. 2.1.5.7 Prototyping (optional) Pada tahap ini dilakukan pembangungan prototype dari sistem database. Hasil dari prototype ini memungkinkan perancang atau pengguna untuk memvisualisasikan dan mengevaluasi bagaimana bentuk fungsionalitas sistem akhir. 2.1.5.8 Implementation Pada tahap ini dilakukan pembuatan definisi database secara eksternal, konseptual, internal, dan program aplikasi. Implementasi merupakan realisasi dari database dan perancangan aplikasi. Implementasi pada database dilakukan dengan menggunakan DDL (Data Definition Language) dari DBMS yang dipilih atau dengan menggunakan GUI (Graphical User Interface). DDL digunakan untuk membuat struktur database dan file database yang kosong. Selain itu, pada tahapan ini semua spesifikasi pandangan dari pengguna juga diimplementasikan. 2.1.5.9 Data Convertion and Loading Pada tahap ini dilakukan transfer data yang telah ada ke dalam database yang baru dan mengkonversi semua aplikasi yang ada untuk dijalankan pada database yang baru, tahap ini hanya dibutuhkan ketika 25 sistem database yang baru menggantikan sistem database yang lama. Pada masa sekarang, umumnya DBMS memiliki kegunaan untuk memasukkan file ke dalam database yang baru dengan tujuan untuk memungkinkan pengembang untuk mengkonversi dan menggunakan aplikasi program lama untuk digunakan oleh sistem baru. 2.1.5.10 Testing Pada tahap ini dilakukan proses menjalankan program aplikasi yang bertujuan untuk mencari kesalahan-kesalahan. Sebelum digunakan, aplikasi database yang baru dikembangkan harus diuji secara menyeluruh. Pengguna suatu sistem yang baru seharusnya dilibatkan dalam proses pengujian. Situasi yang ideal untuk pengujian suatu sistem adalah dengan menguji database pada sistem perangkat keras yang berbeda. Walaupun pada kenyataannya, pengujian database pada sistem perangkat keras yang berbeda jarang dilakukan. Dalam melakukan pengujian, sebaiknya dilakukan backup data terlebih dahulu pada data yang akan diuji. Hal ini sebagai langkah antisipasi kerusakan atau kehilangan data, apabila terjadi kerusakan pada data saat diuji. Jika pengujian pada sistem aplikasi telah selesai dilakukan dan tidak lagi ditemukan kesalahan, maka sistem aplikasi telah siap untuk digunakan dan diserahkan ke pengguna. 26 2.1.5.11 Operational Maintenance Operational Maintenance (pemeliharaan operasional) adalah proses memonitor dan memelihara sistem yang telah di-install. Pada tahap ini, implementasi database dilakukan sepenuhnya. Sistem diawali dan dipelihara secara berkelanjutan. Jika diperlukan, kebutuhan-kebutuhan baru dimasukkan dalam aplikasi database melalui tahapan database terlebih dahulu. 2.1.6 Data Flow Diagram (Diagram Alir Data) Menurut Edward Yourdon (1989, p139), diagram aliran data adalah model atau alat yang dibutuhkan untuk menggambarkan sistem sebagai jaringan dari sekumpulan proses fungsional, yang dihubungkan satu dengan yang lainnya oleh suatu aliran data dan meneruskannya menjadi data. Ada tiga tingkatan dalam diagram aliran data, 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 di luar 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 terperinci. 27 3. Diagram Rinci Diagram yang menggambarkan rincian proses-proses yang ada pada diagram nol dan rincian proses-proses ini dapat dipecah lagi menjadi prosesproses yang lebih terperinci. Menurut Edward Yourdon (1989, p141-152), diagram aliran data terdiri dari simbol-simbol sebagai berikut: • Proses (Bubble atau function atau transformation) Proses yang menggambarkan bagian dari sistem yang mengelola masukan menjadi keluaran. Proses digambarkan dengan sebuah lingkaran. Gambar 2.2 Simbol Proses dalam DFD • Aliran (flow) Aliran yang menggambarkan perpindahan informasi dari satu bagian ke bagian lain dari sistem. Awal panah menggambarkan asal data sedangkan arah panah menggambarkan tujuan. Gambar 2.3 Simbol Aliran Data dalam DFD 28 • Data Store Simbol ini digunakan untuk menggambarkan penyimpanan data. Gambar 2.4 Simbol Data Store dalam DFD • Terminator Merupakan simbol yang menggambarkan entitas yang dapat berupa orang kelompok, atau organisasi yang berhubungan dengan sistem. Gambar 2.5 Simbol Terminator dalam DFD 2.1.7 Entity Relationship Modeling Menurut Thomas Connolly dan Carolyn Begg (2010, p371), salah satu aspek yang sulit dalam perancangan database adalah menentukan sebuah entitas. 2.1.7.1 Entity Type (Tipe Entitas) Menurut Thomas Connolly dan Carolyn Begg (2010, p372), entity type adalah sekumpulan obyek dengan properti yang sama, yang 29 diidentifikasi oleh perusahaan yang memiliki keberadaan yang tidak bergantung dengan yang lainnya. 2.1.7.2 Relationship Type (Tipe Hubungan) Menurut Thomas Connolly dan Carolyn Begg (2010, p374), relationship type adalah sekumpulan asosiasi antara satu atau lebih entity type yang berpartisipasi. Setiap relationship type diberi nama yang menjelaskan fungsinya. Gambar 2.6 Relationship Type Degree of relationship adalah banyaknya entity type yang berpartisipasi di dalam relationship. Recursive relationship adalah relationship type dimana entity type yang sama berpartisipasi lebih dari satu different role. 30 2.1.7.3 Attribute (Atribut) Menurut Thomas Connolly dan Carolyn Begg (2010, p379-382), ada beberapa macam atribut-atribut yaitu: • Attribute adalah properti dari sebuah entitas atau relationship type. • Attribute Domain adalah sekumpulan nilai yang diperbolehkan untuk satu atau lebih atribut. • Simple Attribute adalah atribut yang terdiri dari satu komponen tunggal dengan keberadaan yang bebas. • Composite Attribute adalah atribut yang terdiri dari beberapa komponen dengan keberadaan yang bebas. Dalam hal ini beberapa atribut dapat dipisahkan menjadi beberapa komponen yang lebih kecil lagi dengan keberadaan yang bebas. • Single Value Attribute adalah atribut yang memiliki nilai tunggal untuk masing-masing kejadian dari entitas. • Multi Value Attribute adalah atribut yang memiliki banyak nilai untuk masing-masing kejadian dari entitas. • Derived Atrribute adalah atribut menggantikan sebuah nilai yang diturunkan dari nilai sebuah atribut yang berhubungan, tidak perlu pada jenis entitas yang sama. 31 2.1.7.4 Key (Kunci) • Candidate Key adalah satu kumpulan minimal atribut yang diidentifikasi secara unik setiap kejadian dari tipe entitas. • Primary Key adalah candidate key yang diidentifikasi secara unik setiap kejadian dalam tipe entitas. • Foreign Key adalah candidate key yang diidentifikasi secara unik pada setiap kejadian dalam tipe entitas selain primary key. • Composite Key adalah candidate key yang terdiri dari satu atau lebih atribut. • Alternate Key adalah candidate key yang tidak terpakai sebagai primary key. 2.1.7.5 Strong and Weak Entity Type Menurut Thomas Connolly dan Carolyn Begg (2010, p383), tipe entitas yang kuat adalah tipe yang keberadaannya tidak bergantung pada tipe entitas lain. Karakteristik dari entitas yang kuat adalah setiap kejadian yang unik mampu didentifikasikan menggunakan atribut primary key pada entitas. Tipe entitas yang lemah adalah tipe entitas yang keberadaannya bergantung pada tipe entitas lainnya. Karakteristik dari entitas yang lemah adalah setiap kejadian entitas tidak bisa diidentifikasikan secara unik hanya dengan menggunakan atribut yang bergantung pada entitasnya. 32 Gambar 2.7 Contoh Strong dan Weak Entity 2.1.7.6 Structural Constraints Menurut Thomas Connolly dan Carolyn Begg (2010, p385), tipe utama dari constraint di dalam relationship disebut multiplicity. Multiplicity adalah jumlah occurrence yang mungkin dari sebuah tipe entitas yang berhubungan dengan sebuah occurrence dari tipe entitas lain yang terasosiasi melalui hubungan tertentu. One-to-One (1:1) Relationship terjadi apabila setiap himpunan entitas A hanya boleh berhubungan dengan satu himpunan entitas A. One-to-Many (1:*) Relationship terjadi apabila setiap himpunan entitas A boleh berhubungan lebih dari satu himpunan entitas B. Sebaliknya setiap himpunan dari entitas B hanya boleh berhubungan dengan satu himpunan entitas A. Many-to-Many (*:*) Relationship terjadi apabila setiap himpunan entitas A berhubungan lebih dari satu himpunan entitas B. sebaliknya setiap himpunan dari entitas B juga boleh berhubungan lebih dari satu himpunan entitas A. 33 2.1.8 Normalisasi Menurut indrajani (2011) Normalisasi adalah suatu teknik formal yang dapat digunakan dalam perancangan basis data.Tujuan utamanya adalah mengidentifikasi kesesuaian hubungan yang mendukung data untuk memenuhi kebutuhan perusahaan. Normalisasi menurut Thomas Connolly dan Carolyn Begg (2010, p415), adalah sebuah teknik untuk memproduksi sejumlah relasi dengan kebutuhan yang diinginkan, untuk memberi kebutuhan data dari suatu organisasi. Proses Normalisasi menurut Thomas Connolly dan Carolyn Begg (2010, p430), terdapat beberapa bentuk yaitu: 1. Unnormalized Form (UNF) Sebuah tabel yang berisi satu atau lebih kelompok pengulangan (repeating groups). Pada tabel UNF ini dibuat dengan mentransformasi data dari sumber informasi ke dalam tabel berbentuk baris dan kolom. 2. Bentuk Normal Pertama (1NF) Sebuah relasi di mana persimpangan setiap baris dan kolom berisi satu dan hanya satu nilai. Pada tabel 1NF ini dibuat dengan menghilangkan repetisi dan data yang merupakan hasil kalkulasi serta menentukan atribut yang menjadi primary key. 3. Bentuk Normal Kedua (2NF) Bentuk 2NF didefinisikan berdasarkan ketergantungan fungsional yang penuh (Full Functional Dependency). 2NF merupakan sebuah relasi antara bentuk normal pertama dan setiap atribut yang bukan primary key atau 34 secara fungsional tergantung primary key. Dengan kata lain, tabel 2NF ini dibuat dengan menghilangkan ketergantungan partial. 4. Bentuk Normal Ketiga (3NF) Bentuk 3NF didefinisikan berdasarkan ketergantungan transitif (Transitive Dependency). 3NF merupakan sebuah relasi antara bentuk normal pertama dan bentuk normal kedua, dimana tidak ada atribut yang bukan primary key atau secara transitif bergantung pada primary key. Gambar 2.8 Ilustrasi dari Hubungan antara Bentuk Normal 2.1.9 Metodologi Perancangan Basisdata Menurut Thomas Connolly dan Carolyn Begg (2010, p466), metodologi perancangan basisdata merpakan pendekatan terstruktur yang menggunakan prosedur, teknik, tools dan dokumentasi untuk mendukung dan memfasilitasi proses design. Perancangan basisdata terbagi 3 tahap yaitu: 1. Perancangan Konseptual/ Conseptual Database Design. 2. Perancangan Logikal/ Logical Database Design. 35 3. Perancangan Fisikal/ Physical Database Design. 2.1.9.1 Perancangan Konseptual/ Conseptual Database Design Menurut Connolly ( 2010, p 467), Perancangan konseptual adalah proses untuk membangun sebuah data model yang digunakan dalam perusahaan, independent dari semua pertimbangan phisikal. Perancangan konseptual model dibutuhkan untuk mengetahui kebutuhan yang dibutuhkan oleh perusahaan. Konseptual model terdiri atas : - Type Entity. - Type Relasi. - Attribut dan Atribut domain. - Primary keys dan alternate keys. - Batasan Integrity. Untuk membuat konseptual design, maka langkah – langkah yang diperlukan adalah : Langkah 1. Identifikasi Type Entity. Bertujuan untuk menentukan type entity utama yang dibutuhkan dengan cara memeriksa user requirement specification. Setelah terdefinisi, entitas diberikan nama yang tepat dan jelas seperti mahasiswa, dosen, mata_kuliah. 36 Langkah 2. Identifikasi Type Hubungan ( Relasi ). Bertujuan untuk mengindentifikasi suatu relasi yang penting yang ada antar entitas yang telah terindentifikasi. Nama dari suatu relasi menggunakan kata kerja seperti mempelajari, memiliki, mempunyai, dan lain – lain. Langkah 3. Identifikasi dan associate atribut dengan entity atau type relasi. Bertujuan untuk menghubungkan atribut dengan entitas atau relasi yang tepat. Dalam langkah ini juga dilakukan indentifikasi simple / composite attribute, single / multi – valued attribute, dan derived attribute. Langkah 4. Menentuikan atribut domain. Bertujuan untuk menentukan domain attribute dalam model data konseptual. Domain adalah sekumpulan nilai dari satu atau lebih atribut yang menggambarkan nilainya. Contohnya yaitu menentukan nilai atribut jenis_kelamin pada entitas mahasiswa dengan ‘M’ atau ‘F’ atau nilai atribut sks pada entity mata_kuliah dengan ‘1’,’2’,’3’, dan ‘4’. Langkah 5. Menentukan atribut candidate, primary, dan alternate key. Bertujuan untuk mengindentifikasi candidate key pada setiap entity dan memilih primary key jika ada lebih dari satu candidate key. Pemilihan primary key didasari pada panjang dari atribut dan keunikan key masa datang. 37 Langkah 6. Mempertimbangkan untuk menggunakan concept modeling. Pada langkah ini bertujuan untuk menentukan specialization, generalization, aggregation, composition. Dimana masing – masing pendekatan dapat dilakukan sesuai dengan kebutuhan yang ada. Specialization dan generalization adalah proses dalam mengelompokkan berapa entitas dan menghasilkan entitas baru. Beda dari keduanya adalah cara pendekatannya, dimana spesialisasi menggunakan topdown dan generalisasi menggunakan pendekatan bottom-up. Specialization adalah proses memaksimalkan perbedaan antar anggota entitas dengan mengindentifikasi sifat – sifat yang membedakan satu sama lain. Generalization adalah proses meminimalkan perbedaan antara anggota entitas dengan mengindentifikasi sifat – sifat yang sama satu dengan yang lain. Aggregation menggambarkan relasi ‘ memiliki’ atau ‘bagian-dari’ antar tipe entitas dimana suatu relasi hanya akan ada jika ada relasi lainnya. Composistion adalah suatu bentuk aggregation yang spesifik yang mewakili asosiasi antar entitas dimana ada kepemilikan yang kuat da nada hubungan – hubungan antara ‘keseluruhan’ dan ‘bagian’nya. 38 Langkah 7. Check model untuk redundancy. Bertujuan untuk memeriksa conceptual model untuk menghindari dari adanya informasi yang redundan. Yang dilakukan dalam langkah ini adalah : o Memerika ulang relasi one to one ( 1:1) Setelah entitas diidentifikasikan maka kemungkinan ada dua entitas yang mewakili satu objeck. Untuk itudua entitas tersebut harus di merger bersama. Dan jika primary keynya berbeda maka harus dipilih salah satu dan lainnya dijadikan alternate key. o Menghilangkan hubungan yang redundant Digunakan untuk menekan jumlah model data. o Menentukan dimensi waktu Hubungan dimensi waktu adalah sangat penting ketika mengakses redundant untuk menentukan situasi dari hubungan model data entity. Langkah 8. Validasi data model conseptual terhadap user transaksi. Bertujuan untuk menjamin bahwa konseptual data model mendukung kebutuhan transaksi pengguna. Dengan menggunakan model yang telah di validasi tersebut, dapat digunakan untuk melaksanakan operasi secara manual. Ada dua pendekatan yang mungkin untuk menjamin bahwa local conceptual data model mendukung kebutuhan transaksi yaitu : 39 o Menggambarkan Transaksi. Memeriksa seluruh informasi ( entitas, relasi, dan atribut ) yang diperlukan pada setiap transaksi yang disediakan oleh model dengan mendokumentasikan penggambaran dari tiap kebutuhan transaksi. o Menggunakan Transaksi pathways. Pendekatan ini untuk validasi model data terhadap transaksi yang dibutuhkan termasuk representasi diagram jalur yang digunakan oleh setiap transaksi langsung pada diagram ER. Langkah 9. Review data model conceptual dengan user. Bertujuan untuk melihat kembali model data konseptual dan memastikan bahwa data model tersebut sudah benar. 2.1.9.2 Perancangan Logikal/ Logical Database Design Logical databasedesign adalah proses pembuatan suatu model informasi yang digunakan pada perusahaan berdasarkan pada model data yang spesifik, tetapi tidak tergantung dari database management system ( DBMS ) dan pertimbangan fisik lainnya.( Connolly, 2010, p467). Tujuannya yaitu untuk mengubah data model conseptual menjadi data model logical dan kemudian untuk memvalidasi model ini untuk mengecheck apakah struktur nya sudah benar dan bisa untuk mensupport kebutuhan transaksi. 40 Menurut Connolly ( 2010, p490) 7 langkah pembuatan logikal data model adalah sebagai berikut : - Langkah 1. Penurunan relasi untuk logical data model. Bertujuan membuat relasi untuk data model logical untuk mempresentasikan entity, relasi, dan atribut – atribute yang telah terindentifikasi. Adapun struktur adalah sebagai berikut : • Strong entity types. Untuk setiap strong entity pada data model, membuat sebuah relasi yang mana telah terdapat semua attribut yang simple. • Weak entity types. Untuk setiap weak entity pada data model, membuat sebuah relasi yang mana telah terdapat semua attribut yang simple. • One-to-many binary relationship types. Untuk setiap 1:* binary relationship, semua entity yang ada pada salah satu sisi relationship di design sebagai parent entity dan entity yang ada pada banyak sisi di didesign sebagai child entity. 41 • One-to-one binary relationship types. Membuat relasi yang mempresentasikan 1:1 sangat lebih complex, as the cardinality tidak dapat digunakan untuk membantu mengindentifikasi entity parent and child dalam relationship. Cara membuat relasi yang mempresentasikan partisipasi membangdingkan dengan : a. Mandatory participation pada setiap sisi relasi 1:1. Pada kasus ini entities yang terlibat harus di kombinasi menjadi relasi dan memilih satu dari primary keys dari entity yang asli untuk menjadi primary key pada relasi yang baru. b. Mandatory participation pada salah satu sisi relasi 1:1 Pada kasus ini entity parent dan child dapat di identifikasi untuk relasi 1:1 menggunakan participation constraint. c. Pilihan participation pada setiap sisi relasi 1:1 Pada kasus ini mendesign entity parent dan child akan mendapatkan sedikit keputusan tentang relasi yang dapat membantu untuk memutuskan pilihan apakah menggunakan suatu jalan atau jalan lainnya. 42 • One-to- one recursive relationship type. Untuk recursive relationship type hanya mengikuti aturan – aturan untuk partisipasi sebagai gambaran relasi 1:1 sebelumnya. • Superclass / subclass relationship types. Untuk setiap relasi superclass / subclass pada konseptual data model, mengindentifikasi entity superclass sebagai entity parent dan entity subclass sebagai entity anak. • Many-to-many binary relationship types. Untuk setiap relasi binary, membuat relasi untuk mempresentasikan yang menghubungkan dan termasuk semua attribut yang menjadi bagian dari relasi. • Complex relationship types. Membuat relasi untuk mempresentasikan relasi dan termasuk setiap attribut yang menjadi bagian dari relasi. • Multi valued attributes. Membuat relasi baru untuk mempresentasikan multi valued attribute dan termasuk primary key dari entity pada relasi baru yang berperan sebagai foreign key. 43 - Langkah 2. Validasi relasi menggunakan normalisasi. Validasi relasi pada model data logikal menggunakan teknik normalisasi. Dengan menggunakan normalisasi, maka model yang di hasilkan mendekati model dari kebutuhan perusahaan, konsisten dan memiliki sedikit redudansi dan stabilitas yang maksimum. - Langkah 3. Validasi user berdasarkan user transaksi. Memastikan relasi dalam model data logikal telah mendukung transaksi yang dibutuhkan. Bertujuan untuk menjamin bahwa relasi dalam mode logikal tersebut mendukung user requirement specification secara detail. Selain itu juga untuk meyakinkan bahwa tidak ada kesalahan yang muncul sewaktu membuat suatu relasi. - Langkah 4. Check Integrity Constraint. Menentukan integrity constarints, dimana mencakup pemeriksaan kelengkapan required data, attribute domain constraint, multiplicity, entity integrity, referential integrity, general constraint. - Langkah 5. Review data model logical dengan User. Pastikan user menyetujui model data logikal merupakan representasi nyata terhadap persyaratan data perusahaan. 44 Langkah 6. Menggabungkan data model logical ke data model - global ( optional step ). Untuk mengabungkan local logical data model kedalam single global logical data model yang mempresentasikan semua user views dalam database. Langkah 7. Chek untuk pengembangan ke depan. - Menentukan apakah ada kemungkinan terjadi perubahan yang besar di masa depan, dan menilai apakah model data logikal dapat menyesuaikan dengan perubahan tersebut. 2.1.9.3 Perancangan Fisikal/ Physical Database Design Physical database design adalah suatu proses untuk menghasilkan gambaran dari implementasi basis data pada tempat penyimpanan, menjelaskan dasar dari relasi, organisasi file dan indeks yang digunakan untuk efisiens data dan menghubungkan beberapa integrit contraint dan tindakan keamanan ( Connolly , 2010, p467). Physical database design terdiri dari 6 langkah dan apabila dijabarkan akan menjadi langkah 3 – 8 yaitu ( Connoly,2010,p523) : 45 A. Menerjemahkan logical data model untuk DBMS target. • Desain dasar relasi. • Desain represntasi data. • Desain general constraint. B. Desain organisasi file dan index. • Analisa Transaksi. • Memilih organisasion file. • Memilih index. • Memprediksi kebutuhan space disk. C. Desain user view. D. Desain mekanisme keamanan. E. Mempertimbangkan pengenalan pengontrolan redudancy. F. Monitor dan tune the operational system Langkah 3. Menerjemahkan logical data model untuk DBMS target. Bertujuan untuk menghasilkan skema baris data relasional dalam global logical data model yang dapat di implementasikan ke DBMS. Penerjemahan global logical data model untuk target DBMS terdiri dari 3 langkah. Langkah tersebut adalah : 46 Langkah 3.1 Desain dasar relasi. Untuk memutuskan bagaimana cara merepresentasikan dasar relasi yang telah terindentifkasi pada logical data model dalam DBMS targert. Langkah 3.2 Desain representasi data yang ada. Untuk memutuskan bagaimana cara mempresentasikan data yang ada pada logical data model dalam target DBMS. Langkah 3.3 Desain general Constraint. Untuk mendesain general constraint untuk target DBMS. Langkah 4 Desain organisasi file dan index. Membedakan file organisasi optimal untuk menyimpan relasi dasar dan index yang mana membutuhkan persetujuan pertunjukan pencapaian yang merupakan jalan dimana relasi dan tuples akan di pegang dalam penyimpanan secondary. Aktivitas – aktivitas yang terjadi pada langkah 4 adalah sebagai berikut : Langkah 4.1 Analisa Transaksi. Mengerti akan fungsi dari transaksi yang mana akan berjalan pada database dan untuk menganalisa transaksi yang penting. Langkah 4.1 Memilih organisation file . Untuk membedakan sebuah file organisasi untuk setiap relasi dasar. 47 Langkah 4.2 Memilih index. Untuk membedakan apakah index tambahan akan meningkatkan system perfomance. Langkah 4.3 Memprediksi kebuthan space disk. Untuk memprediksi banyaknya disk space yang akan dibutuhkan oleh database. Langkah 5 Desain user view. Untuk mendesain user views yang telah di indentifikasi selama permintaan collection dan menganalisis stage dari pengembangan database lifecycle. Langkah 6 Desain mekanisme keamanan. Mendesain mekanisme security untuk database sebagai petunjuk oleh user selama permintaan dan pengumpulan stage pada saat pengembangan database lifecycle. Langkah 7 Mempertimbangkan pengenalan pengontrolan redudancy. Pada langkah physical database design ini mempertimbangkan denormalisasi skema relational untuk meningkatkan performa. Hasil dari normalisasi adalah perancangan basis data logikal secara structural, konsisten, dan menekan jumlah redudansi. 48 Faktor yang perlu di pertimbangkan adalah : • Denormalisasi membuat implementasi lebh kompleks. • Denormalisasi selalu mengorbankan flexibilitas. • Denormalisasi akan membuat cepat dalam retrieve data tetapi lambat dalam update. Ukuran performa dari suatu perancangan basis data dapat dilihat dari sudut pandang tertentu yaitu melalui pendekatan efisiensi data (Normalisasi) atau pendekatan efisiensi proses ( Denormalisasi ). Efisiensi data dimaksudkan untuk meminimalkan kapasistas disk, dan efisiensi proses dimaksudkan untuk mempercepat proses saat retrieve data dari basis data. Langkah 8 Monitor dan tune the operational system. Bertujuan untuk memonitor sistem operasi, meningkatkan performa dan menentukan perancangan sistem yang tepat atau menggambarkan perubahan kebutuhan. 2.2 Teori - Teori Khusus 2.2.1 Microsoft SQL Server SQL merupakan kependekan dari Structured Query Language (Bahasa Query Terstruktur). SQL lebih dekat dengan DML dari pada DDL. Namun tidak berarti SQL tidak menyediakan perintah DDL. SQL lebih menekankan pada aspek pencarian dari dalam tabel. Aspek pencarian ini sedemikian penting karena di sinilah sebenarnya inti dari segala upaya kita melakukan pengelolaan data. Data dalam basis data 49 diorganisasi sedemikian rupa dengan tujuan untuk memudahkan pencarian di kemudian hari. Sebagai sebuah bahasa, SQL telah distandarisasi dan mengalami beberapa perubahan atau penyempurnaan. SQL muncul pertama kali pada tahun 1970 dengan nama SEQUEL( Connolly , 2010, p185). Standarisasi yang pertama dibuat pada tahun 1986 oleh ANSI (American National Standards Institute) dan ISO (International Standard Organization), yang disebut SQL-86. Pada tahun 1989 SQL-86 diperbaharui menjadi SQL-89. Standar terakhir yang dibuat adalah pada tahun 2008 yaitu SQL:2008 ( Connolly , 2010, p186) Microsoft SQL Server ialah salah satu produk Relational Database Management System (RDBMS) populer saat ini. Fungsi utamanya ialah sebagai server dari sebuah database yang mengatur semua proses penyimpanan data dan transaksi suatu aplikasi. Dalam DBMS seperti MS SQL Server biasanya tersedia paket bahasa yang digunakan untuk mengorganisasi basis data yang ada, yaitu Data Definition Language (DDL) dan Data Manipulation Language (DML). Data Definition Language (DDL). Data Definition Language (DDL) adalah satu paket bahasa DBMS yang berguna untuk melakukan spesifikasi terhadap skema basis data. Hasil kompilasi dari DDL adalah satu set tabel yang disimpan dalam file khusus yang disebut Data Directory/Dictionary. Secara umum perintah perintah dalam DDL berhubungan dengan 50 operasi-operasi dasar seperti membuat basis data baru, menghapus basis data, membuat tabel baru, menghapus tabel, membuat indeks, mengubah struktur tabel. Contoh perintah DDL misalnya, Create Table, Create Index, Alter, dan Drop Database. Data Manipulation Language Data Manipulation Language (DML) adalah satu paket DBMS yang memperbolehkan pemakai untuk mengakses atau memanipulasi data sebagaimana yang telah diorganisasikan sebelumnya dalam model data yang tepat. 2.2.2 Visual Basic 6.0 Menurut Ir.Pamungkas ( 2001, v ) Visual Basic merupakan bahasa pemograman tercepat dan termudah untuk membuat suatu aplikasi dalam microsoft windows. Dengan menggunakan metode Graphical User Interface ( GUI ), Visual Basic memudahkan pemogram untuk berinteraksi langsung dengan elemen – elemen untuk setiap bentuk pemograman. Visual Basic dibuat dengan pengembangan sebagai langkah pengembangan untuk menyesuaikan BASIC ( Beginner All-Purpose Symbolic Instruction Code ) yang berbasis DOS yang tidak mempunyai kemampuan menggunakan metode GUI dalam basis Windows. Sebagai program yang berbasis windows, Visual Basic mempunyai kemampuan untuk berinteraksi dengan seluruh aplikasi windows, seperti Mirosoft Word , Microsoft Excel, Microsoft Accsess, dan sebagainya. 51 Dengan kemampuannya yang hampir tidak terbatas, Visual Basic dapat digunakan untuk semua aplikasi pemograman dan dapat membuat aplikasi yang mirip seperti aplikasi windows yaitu : Word atau Excel, ataupun game, Multimedia, Program penghitungan, dan sebagainya. Seiring dengan perkembangan komputer, Visual Basic secara bertahap terus disempurnakan untuk mengikuti kebutuhan modernisasi yang semakin meninggi. 2.3 Teori – Teori Pendukung 2.3.1 Pengertian Administrasi Administrasi adalah usaha dan kegiatan yang berkaitan dengan penyelengaraan kebijakan untuk mencapai tujuan. (Kamus Besar Bahasa Indonesia, 2002, p9). Administrasi didefinisikan sebagai keseluruhan proses kerjasama antara dua orang manusia atau lebih yang didasarkan atas rasionalitas tertentu untuk mencapai tujuan yang telah ditentukan sebelumnya. Unsur-unsur yang mendukung administrasi ialah: 1. Dilakukan oleh dua orang atau lebih. 2. Memiliki tujuan. 3. Memiliki tugas yang hendak dilaksanakan. 4. Memiliki Peralatan dan perlengkapan. (Siagian, 1998, p3).