BAB 2 LANDASAN TEORI 1.1 Sistem Sistem adalah sekumpulan komponen yang saling terhubung, terkait, saling mendukung satu dengan yang lain untuk mencapai suatu tujuan yang efektif dan efisien. Didukung juga dari beberapa ahli mengenai pengertian sistem, yaitu Satzinger, Jackson, dan Burd (2010, p6), sistem adalah kumpulan dari komponen yang saling berhubungan dan berfungsi bersamaan untuk memperoleh hasil akhir. O'Brien dan Marakas (2010, p26), sistem adalah sekumpulan elemen yang saling berhubungan dengan batas yang jelas dan bekerja bersama mencapai suatu tujuan dengan menerima input serta menghasilkan output dalam suatu proses transformasi yang teratur. Dalam perusahaan diperlukan integrasi dari sistem informasi dalam jumlah yang besar agar dapat mendukung bisnis perusahaan (Wing, 2007, p 1). Menurut O'Brien dan Marakas (2010, p26), sistem memiliki tiga fungsi dasar, yaitu: 1. Input melibatkan elemen yang saling terhubung yang akan diproses oleh sistem. Misalnya data, keyboard, mouse, monitor, dll. 2. Processing melibatkan proses transformasi yang mengubah input menjadi output. Misalnya software, dll. 3. Output melibatkan proses transfer elemen-elemen yang telah diproses transformasi sehingga menghasilkan tujuan akhir. Misalnya printer, monitor, dll. 1.2 Basis Data (Database) Basis data adalah kumpulan data yang terstruktur yang dapat digunakan untuk mendapatkan informasi sesuai dengan kebutuhan organisasi. Basis data menurut O'Brien dan Marakas (2010, p173), yaitu adalah koleksi yang terpadu yang secara logis 6 7 terkait dengan elemen data. Dari kutipan jurnal Widhyaestoeti (2011, p3), database merupakan tempat penyimpanan data yang dapat menampung satu atau lebih tabel dan kueri. Basis data yang diperlukan oleh sistem harus dirancang terlebih dahulu, perancangan basis data yang lengkap dan efisien dalam penggunaan ruang penyimpanan, cepat dalam pengaksesan dan mudah dalam pemanipulasian data. Untuk membuat sebuah database tidak perlu terlihat kompleks, melainkan hanya perlu menyediakan sebuah metode organisasi, akses yang mudah ke data yang tersimpan dalamnya, dapat dilindungi dari pengguna yang tidak sah. Sedangkan menurut Satzinger, Jackson, dan Burd (2010, p11), database adalah sekumpulan data terpusat yang dikelolah dan dapat diakses oleh banyak pengguna dan sistem pada saa t yang sama. Basis data merupakan kumpulan data dan deskripsinya yang secara logika terkait satu sama lain, dirancang untuk menemukan informasi yang dibutuhkan organisasi tersebut (Connolly dan Begg 2010, p65). Data yang disimpan dalam suatu database biasanya menyimpan informasi dari puluhan maupun ratusan tipe entitas atau class. Sehingga untuk mengelolah dan mengendalikannya harus dibutuhkan Database Management System (DBMS). 2.2.1 DBMS (Database Management System) Menurut Connolly dan Begg (2010, p66), DBMS adalah sebuah sistem perangkat lunak yang dapat diakses oleh pengguna untuk mengidentifikasi, menciptakan, memperbaiki, dan mengontrol basis data. Untuk menghubungkan program aplikasi users dengan database maka digunakan Database Management System (DBMS). Pada dasarnya, DBMS menyediakan beberapa fasilitas, yaitu: 8 Data Definition Language (DDL) Data Definition Language (DDL) adalah memungkinkan pengguna mendefinisikan database untuk menentukan jenis data, struktur data dan kendala pada data yang akan disimpan dalam database. Pernyataan yang ada pada DDL yaitu: CREATE SCHEMA DROP SCHEMA CREATE DOMAIN ALTER DOMAIN DROP DOMAIN CREATE TABLE ALTER TABLE DROP TABLE CREATE VIEW DROP VIEW Data Definition Language (DDL) tidak dapat digunakan untuk memanipulasi data. Pernyataan tersebut digunakan untuk membuat, mengubah, dan menghancurkan struktur yang membentuk skema konseptual. 1. Data Manipulation Language (DML) Data Manipulation Language (DML) adalah memungkinkan pengguna untuk memanipulasi (insert, update, delete dan select) data dari database. DML menyediakan fasilitas umum untuk menyelidiki data yang disebut dengan bahas query. Bahasa query yang umum adalah SQL (Structured Query Language). Pernyataan yang ada pada DML yaitu: SELECT, digunakan untuk memanggil data di dalam tabel. pernyataannya berupa “SELECT * FROM [table]” INSERT, digunakan untuk memasukkan data ke dalam tabel. Pernyataannya berupa “INSERT INTO [table] VALUES(‘nilai’, ‘.....’)” Contoh dalam menggunakan statement INSERT: 9 Tabel 2.1 Contoh tabel pelanggan sebelum dilakukan insert custName custAddress custPhone custGender John Street New 69-394812 Male City no 34 C002 Berry Street Bridge 65-298472 Female Stone no5 “INSERT INTO table_Customer VALUES(‘C003’, ‘Michael’, ‘Street Mona no custID C001 134’, ’91-235431’, ‘Male’)” custID C001 C002 C003 Tabel2.2 Contoh tabel pelanggan setelah dilakukan insert custName custAddress custPhone custGender John Street New 69-394812 Male City no 34 Berry Street Bridge 65-298472 Female Stone no5 Michael Street Mona 91-235431 Male no 134 UPDATE, digunakan untuk mengubah data pada tabel. Statement UPDATE berupa “UPDATE SET ([nama kolom] = ‘nilai’, [nama kolom]=’nilai’)” Contoh dalam menggunakan statement UPDATE: Tabel 2.3 Contoh tabel pelanggan sebelum dilakukan update custName custAddress custPhone custGender John Street New 69-394812 Male City no 34 C002 Berry Street Bridge 65-298472 Female Stone no5 C003 Michael Street Mona 91-235431 Male no 134 “UPDATE SET(custID=‘C002’, custName=‘Berry’, ‘Street Stone Cold no 5’, custID C001 custPhone=’65-298472’, custGender=‘Female’) FROM table_Customer WHERE custID = C002” custID C001 C002 Tabel 2.4 Contoh tabel pelanggan setelah dilakukan update custName custAddress custPhone custGender John Street New City no 69-394812 Male 34 Berry Street Stone Cold 65-298472 Female no5 10 C003 Michael Street Mona no 134 91-235431 Male DELETE, digunakan untuk menghapus data dari tabel. Statement DELETE berupa “DELETE [nilai] FROM [nama tabel]” Contoh dalam menggunakan statement DELETE: Tabel 2.5 Contoh tabel pelanggan sebelum dilakukan delete custName custAddress custPhone custGender John Street New 69-394812 Male City no 34 C002 Berry Street Bridge 65-298472 Female Stone no5 C003 Michael Street Mona 91-235431 Male no 134 “DELETE C001 FROM table_Customer” custID C001 custID C002 C003 Tabel 2.6 Contoh tabel pelanggan setelah dilakukan delete custName custAddress custPhone custGender Berry Street Bridge 65-298472 Female Stone no5 Michael Street Mona 91-235431 Male no 134 2. Menyediakan akses terkontrol ke database, yaitu: - Security system, yang mencegah pengguna yang tidak sah untuk mengakses database. - Integrity system, yang menjaga konsistensi data yang tersimpan. - Concurrency control system, yang memungkinkan berbagi akses database. - Recovery control system, yang mengembalikan data database ke keadaan yang konsisten sebelumnya setelah kegagalan hardware dan software. - User-accessible catalog, yang berisikan deskripsi data dalam database. Ada lima komponen utama dalam lingkungan DBMS, yaitu : Gambar 2.1 Lingkungan komponen Database Management System 11 (Sumber : Connolly dan Begg (2010, p68)) 1. Hardware Sebuah DBMS dan aplikasi membutuhkan hardware untuk menjalankannya. Hardware dapat dikisarkan dari komputer tunggal ke mainframe tunggal atau jaringan komputer. Hardware khusus tergantung pada kebutuhan organisasi dan DBMS yang digunakan. 2. Software Perangkat lunak berupa DBMS, aplikasi program itu sendiri, bersama dengan operating system (OS), termasuk dengan jaringan perangkat lunak apabila DBMS digunakan melalui jaringan. Biasanya, aplikasi program ditulis dalam bahasa pemrograman generasi ketiga seperti C, C++, C#, Java, Visual Basic dan lain-lain. 3. Data Mungkin komponen yang paling penting dari DBMS dan pastinya dari pandangan pengguna akhir adalah data. Data merupakan jembatan penghubung antara komponen mesin dan komponen manusia. Sebuah database berisi data operasional dan metadata. 4. Procedures Prosedur lebih kepada instruksi atau aturan yang mengatur desain dan penggunaan dalam database. Pengguna sistem dan staff yang mengatur database memerlukan prosedur yang terdokumentasi untuk menjalankan sistem, seperti: - Cara masuk ke dalam DBMS. - Menggunakan fasilitas DBMS tertentu atau aplikasi program. - Memulai dan menghentikan DBMS. - Membuat back up dari database. - Menangani kesalahan dari hardware atau software. 12 - Merubah struktur dari tabel, mengorganisir ulang database, meningkatkan kinerja, atau mengarsipkan data ke dalam secondary storage. 5. People Komponen terakhir adalah orang-orang yang terlibat dengan sistem. Orang yang terlibat dengan sistem dapat didefinisikan dengan empat tipe dan memiliki tanggung jawab sendiri, yaitu: - Data and Database Administrators Data administrators bertanggung jawab dalam pengelolaan sumber data, termasuk perencanaan database, pengembangan dan pemeliharaan yang standar, kebijakan dan prosedur, konseptual dan logikal desain database. Database administrators bertanggung jawab dalam realisasi fisik database termasuk fisik disain database dan pengimplementasian, keamanan dan integritas kontrol, pemeliharaan operational system (OS) dan menjamin kinerja aplikasi yang memuaskan bagi pengguna. - Database Designers Logical database designers yang bertanggung jawab dalam mengidentifikasi data, hubungan antar data, dan kendala pada data yang akan disimpan dalam database Physical database designers yang bertanggung jawab dalam menentukan bagaimana logical database design direalisasikan. - Application Developers Program aplikasi yang fungsionalitas sesuai dengan yang diinginkan end-user harus dilakukan dan itu merupakan tanggung jawab Application developers. - End-Users 13 End-user adalah klien database yang telah dirancang dan diimplementasikan dan diperbaiki untuk melayani kebutuhan informasi mereka. 14 2.2.1.1 Fungsi DBMS Menurut Connolly dan Begg (2010, p99), database management system (DBMS) memiliki banyak fungsi, yaitu: - Data Storage, Retrieval, and Update Sebuah DBMS dapat menyediakan kemampuan untuk menyimpan data, mengambil data, dan meng-update data, karena ini merupakan fungsi dasar yang harus dimiliki oleh DBMS. - A user-Accessible Catalog Catalog system atau data dictionary, merupakan gudang information yang menggambarkan data dalam database. Sebuah DBMS harus dapat menyediakan catalog sistem yang menyimpan tentang deskripsi item sehingga memudahkan pengguna untuk mengaksesnya. - Transaction Support Transaksi adalah serangkaian tindakan yang dilakukan oleh pengguna individu atau program aplikasi yang mengubah isi database. Sehingga dengan ini, DBMS harus dapat menyediakan sebuah mekanisme untuk memastikan bahwa semua update transaksi sesuai dengan transaksi yang diberikan. - Concurrency Control Services Pengguna yang mengakses database dan melakukan update secara bersamaan akan mengganggu sistem atau akan muncul sebuah gagal sistem sehingga ada data yang hilang atau bahkan terjadi tidak konsistensi data. Sehingga dengan ini, DBMS harus dapat menyediakan sebuah mekanisme untuk memastikan bahwa database ter-update dengan benar saat beberapa pengguna melakukan update secara bersamaan. 15 - Recovery Services Kerusakan sistem bisa saja terjadi seperti crash, media failure, dan error pada hardware dan software sehingga transaksi yang direkam saat itu juga ikut hilang. Sehingga dengan ini, DBMS harus dapat menyediakan sebuah mekanisme untuk memulihkan database saat kerusakan sistem terjadi. Authorization Services Tidaklah sulit untuk membayangkan contoh dimana ingin mencegah data yang disimpan dalam database dari pengguna yang tidak sah. Sebagai contoh seorang manager cabang hanya dapat melihat informasi gaji yang berhubungan dengan staff yang di cabang tersebut. Untuk mencegah penyalahgunaan akses, maka DBMS harus dapat memastikan bahwa hanya pengguna sah yang dapat mengakses database. - Support for Data Communication Kebanyakan pengguna mengakses database dari workstations. Workstation berkomunikasi dengan komputer hosting DBMS melalui jaringan dan dengan cara yang sama DBMS merespon. Semua pengiriman ini ditangani oleh data communication manager (DCM). Sehingga dengan ini, DBMS harus mampu mengintegrasikan dengan perangkat lunak komunikasi. - Integrity Services Integritas database mengacu pada kebenaran dan konsistensi data yang disimpan. Hal tersebut juga dapat dianggap sebagai perlindungan database. Namun hal itu memiliki implikasi secara luas. Integritas berhubungan dengan kualitas data itu sendiri. Sehingga integritas itu pada biasanya dianggap sebuah kendala karena konsistensi database tidak boleh dilanggar. Sehingga dengan ini, sebuah DBMS harus dapat menyediakan sarana 16 untuk memastikan bahwa data pada database dan perubahan pada data dapat mengikuti aturan tertentu. - Services to Promote Data Independence DBMS harus mencakup fasilitas untuk mendukung keterbatasan program dari struktur database yang sebenarnya. Data independence biasanya dicapai melalui sebuah view atau mekanisme subskema. Physical data independence lebih mudah untuk dicapai karena terdapat beberapa jenis perubahan yang dapat dibuat untuk karakteristik fisikal dari database tanpa mempengaruhi view. Bagaimanapun data independence logikal yang lengkap lebih susah untuk dicapai. - Utility Services DBMS harus menyediakan seperangkat layanan utility. Program utility membantu DBA mengelola database secara efektif. Beberapa utility bekerja di tingkat external, sehingga dapat di produksi oleh DBA. Utility lain bekerja di tingkat internal sehingga hanya bisa diberikan oleh vendor DBMS. 2.2.1.2 Keuntungan DBMS Menurut Connolly dan Begg (2010, p77), database management system (DBMS) memiliki banyak keuntungan, yaitu: - Control of Data Redundancy Pengontrolan terhadap data yang redundansi dilakukan dengan mengintegrasikan file sehingga beberapa salinan yang sama tidak tersimpan. Data yang duplikat tidak langsung dimusnahkan, namun dikontrol sehingga jumlah duplikat data yang melekat dalam database tidak banyak. - Data Consistency 17 Menghilangkan redundansi data yaitu mengurangi resiko terjadinya tidak konsisten data. Jika item data disimpan lebih dari sekali dan ada sistem yang menyadari hal ini, maka sistem dapat memastikan bahwa semua penyimpanan item data tetap konsisten. Namun banyak DBMS yang tidak menjamin jenis konsistensi tersebut. - More information from the same amount of data Dengan melakukan integrasi data operasional, memungkinkan sebuah perusahaan atau organisasi mendapatkan informasi tambahan dari data yang sama. - Sharing of Data Pada umumnya data dimiliki oleh penggunanya sendiri atau departement tertentu yang menggunakan data tersebut. Di sisi lainnya, database seharusnya milik seluruh organisasi dan dapat digunakan oleh seluruh pengguna resmi, dengan cara ini lebih banyak pengguna berbagi lebih banyak data. - Improved Data Integrity Integritas data merupakan sebuah kendala, kendala ini berlaku bagi untuk item data dalam catatan tunggal. Misalnya kendala integritas bisa menyatakan bahwa gaji seorang staff tidak dapat lebih besar dari Rp 2,2juta. Integrasi memungkinkan database administrator (DBA) untuk mendefinisikan kendala integritas, dan DBMS yang mengatasi hal tersebut. - Improved Security Keamanan database adalah melindungi database dari pengguna yang tidak sah. Tanpa melakukan langkah-langkah keamanan yang sesuai, integrasi dapat membuat data lebih rentan daripada berbasis file sistem. Keamanan database dapat dilakukan dengan memberikan username dan password untuk mengidentifikasi orang-orang yang 18 berwewenang untuk menggunakan database. Pengguna resmi dapat mengakses data sesuai dengan jabatannya dengan dibatasi oleh jenis operasi (retrieval, insert, update, delete). - Enforcement of Standards Integrasi memungkinkan DBA untuk mendefinisikan DBMS dengan standar yang dibutuhkan. Standar ini termasuk departemental, organisasi, standar nasional, atau internasional untuk dalam hal-hal seperti format data (untuk memfasilitasi pertukaran data antar sistem), konvensi penamaan, standar dokumentasi, prosedur update, dan aturan akses. - Economy of Scale Menggabungkan semua data operasional organisasi ke dalam satu database dan membuat satu set aplikasi yang bekerja pada salah satu sumber data yang dapat menghasilkan penghematan biaya. - Balance of Conflicting Requirement Setiap pengguna atau departemen memiliki kebutuhan yang mungkin bertentangan dengan kebutuhan pengguna lain. Karena database berada dibawah kendali DBA, DBA dapat membuat keputusan tentang penggunaan design dan operasional dari database yang menyediakan penggunaan terbaik sumber daya bagi organisasi secara keseluruhan. - Improved Data Accessiblity and Responsiveness DBMS menyediakan bahasa query atau laporan yang digunakan oleh end-user untuk mengajukan pertanyaan dan memperoleh informasi yang diperlukan diterminal mereka, tanpa memerlukan programmer untuk menulis pada beberapa perangkat lunak dan mengekstrak informasi dari database. - Increased Productivity DBMS banyak menyediakan lingkungan generasi keempat, yang terdiri dari alat-alat untuk menyederhanakan pengembangan aplikasi database. Hasilnya yaitu meningkatkan 19 produktifitas programmer dan mengurangi waktu pengembangan (dengan penghematan biaya yang terkait). - Improved Maintenance Through Data Independence DBMS memisahkan deskripsi data dari aplikasi, sehingga membuat kekebalan aplikasi untuk mengubah dalam deskripsi data, dan ini dikenal sebagai independensi data. Penyediaan independensi data berguna untuk menyederhanakan pemeliharaan aplikasi database. - Increased Concurrency Dalam beberapa sistem database, jika dua atau lebih user diizinkan untuk mengakses data yang sama secara bersamaan, ada kemungkinan bahwa akses tersebut mengakibatkan error (hilangnya informasi atau bahkan hilangnya integritas database) yang mengganggu satu sama lain. Fungsi DBMS yaitu mengelola akses database secara bersamaan dan memastikan masalah yang mungkin muncul tidak akan terjadi. - Improved Backup and Recovery Services Banyak sistem database melibatkan pengguna untuk melindungi data dari masalah kegagalan sistem atau program aplikasi dengan melakukan backup. Sehingga saat terjadi kegagalan pada hari berikutnya, data backup dapat digunakan. Pekerjaan yang telah dilakukan saat sebelum terjadinya kegagalan sistem juga ikut hilang sehingga data harus dimasukan ulang. Sebaliknya dengan DBMS, menyediakan fasilitas untuk meminimalkan jumlah data yang hilang setelah terjadinya kegagalan. 2.2.1.3 Kerugian DBMS Menurut Connolly dan Begg (2010, p80), database management system (DBMS) memiliki banyak kerugian, yaitu: - Complexity 20 Ketentuan fungsi DBMS yang baik membuat DBMS menjadi bagian yang sangat komplek dari perangkat lunak. Hal ini perlu dipahami oleh database designer, pengembang data, database administrator, dan pengguna akhir untuk mengambil keuntungan penuh. Kegagalan dalam memahami sebuah sistem dapat berpengaruh buruk pada pengambilan keputusan dan menjadi konsekuensi serius bagi suatu organisasi. - Size Kompleksitas dan luasnya dari fungsionalitas membuat DBMS menjadi bagian yang sangat komplek dari perangkat lunak, sehingga DBMS menempati ruang disk yang sangat besar dan membutuhkan sejumlah besar memori untuk menjalankannya secara efisien. - Cost of Database Management Systems Biaya DBMS bisa bervariasi, karena biaya-biaya tersebut tergantung dengan lingkungan dan fungsi yang disediakan. Beberapa contoh, sebuah DBMS single-user untuk komputer pribadi hanya seharga $100. Namun, bagaimana dengan sebuah mainframe besar DBMS multi-user yang melayani ratusan pengguna? bisa saja harga sekitar $100,000 bahkan $1,000,000. Selain biaya DBMS ada juga biaya perawatan pertahun yang pada biasanya dihitung dari persentase dari harga daftar. - Additional Hardware costs Persyaratan penyimpanan untuk DBMS dan database memerlukan penambahan ruang penyimpanan terus menerus untuk mencapai kinerja yang maksimal. Sebuah perusahaan mungkin saja membeli mesin yang lebih besar, bahkan sebuah mesin yang didedikasikan untuk menjalankan DBMS. Pengadaan hardware ini merupakan tambahan pengeluaran bagi sebuah perusahaan atau organisasi. - Cost of Conversion 21 Dalam beberapa situasi, biaya DBMS dan tambahan hardware mungkin relatif kecil dibandingkan dengan biaya konversi aplikasi yang ada yang kemudian dijalankan pada DBMS dan hardware yang baru. Biaya konversi ini juga mencakup pelatihan staff untuk menggunakan sistem baru serta merupakan biaya bagi kerja staff ahli untuk membantu proses konversi. Alasan utama mengapa beberapa organisasi atau perusahaan merasa terikat pada sistem lama dan tidak berahli ke teknologi database yang modern karena faktor biaya yang besar. - Performance Pada umumnya, sistem database ditulis pada aplikasi tertentu. Sehingga kinerja aplikasinya sangat baik, namun beda dengan DBMS yang ditulis lebih umum, untuk melayani banyak aplikasi dan bukan hanya satu. Hasilnya bahwa beberapa aplikasi tidak dapat berjalan secepat dulunya. - Greater Impact of a Failure Sentralisasi sumber daya karena semua pengguna dan aplikasi bergantung pada ketersediaan DBMS mengakibatkan kerentanan sistem. Kegagalan komponen tertentu dapat berakibat pada operasi sistem menjadi berhenti. 22 2.2.1.4 Komponen DBMS (Database Management System) Gambar 2.2 Komponen Database Management System (Sumber : Connolly dan Begg (2010, p128)) Menurut Connolly dan Begg (2010, p127), komponen-komponen dari DBMS meliputi : - Query processor Query processor merupakan komponen utama dari DBMS yang mengubah query kedalam bentuk sederetan intruksi tingkat rendah yang ditujukan langsung ke database manager. - Database Manager 23 Database manager menghubungkan program aplikasi user-submitted dan query. Database manager menerima query dan memeriksa skema eksternal dan konseptual untuk menentukan record konseptual seperti apa yang diperlukan untuk memenuhi permintaan. - File manager File manager memanipulasi penyimpanan file dan mengatur penempatan tempat penyimpanan dalam disk. Komponen ini mendirikan dan memelihara daftar struktur dan index yang didefinisikan dalam skema internal. - DML preprocessor Modul ini mengubah pernyataan dari DML yang tertanam dalam program aplikasi ke dalam bentuk fungsi panggilan standar dalam host language. - DDL compiler DDL compiler mengubah pernyataan DDL ke dalam sekumpulan tabel yang berisikan metadata. Tabel ini kemudian disimpan ke dalam katalog sistem dan informasi kendali disimpan ke dalam header dari file data. - Catalog manager Catalog manager mengatur akses dan memelihara katalog sistem. Katalog sistem akan diakses sebagian besar dari komponen DBMS. 2.2.2 Database System Development Lifecycle (DSDL) Dalam pembuatan sistem database penting untuk mengenali bahwa tahap siklus hidup pengembangan sistem database tidak harus berurutan, tetapi harus dilakukan pengulangan tahap melalui umpan balik. Misalnya masalah yang dihadapi selama design database yaitu mengumpulkan persyaratan tambahan dan analisis. Apabila sistem database-nya kecil dan sedikit user-nya maka siklus hidup tidak perlu terlalu komplek, sehingga dapat menghemat waktu dan biaya selama proses pembuatan 24 siklus. Namun, berbeda dengan sistem database yang besar yang mengharuskan ribuan user, ratusan query dan program aplikasi, siklus hidup yang harus dilakukan bisa saja menjadi sangat kompleks. Berikut gambaran kegiatan utama yang terkait dengan setiap tahap siklus hidup pembangunan sistem database secara lebih rinci. 25 Gambar 2.3 Database System Development Lifecycle (Sumber : Connolly dan Begg (2010, p314)) 26 2.2.2.1 Database Planning Perencanaan basis data merupakan tahap yang merencanakan bagaimana tahapantahapan dalam lifecycle dapat direalisasikan secara seefisien dan seefektif mungkin. Terdapat tiga hal utama yang terkait dengan strategi sistem informasi, yaitu: - Identifikasi rencana dan tujuan dari perusahaan dengan menentukan kebutuhan sistem informasi perusahaan. - Evaluasi sistem informasi yang ada untuk menetapkan kekuranagan dan kelebihan yang dimiliki. - Penaksiran peluang TI yang mungkin memberikan keuntungan kompetitif. Langkah pertama terpenting dalam perencanaan database adalah mendefinisikan mission statement untuk sistem database dengan jelas. Setelah menentukan mission statement, maka yang harus dilakukan berikutnya adalah mengidentifikasi mission objective. Mission statement merupakan tujuan utama dari aplikasi basis data. Para pengontrol proyek database dalam sebuah organisasi pada biasanya menentukan mission statement terlebih dahulu. Mission statement digunakan untuk membantu dan memperjelas tujuan dari sebuah sistem database selain itu juga menyediakan jalur yang lebih jelas sehingga sistem basis data yang diperlukan lebih efisien dan efektif. Sedangkan mission objective mengidentifikasi tugas-tugas yang harus didukung oleh sistem basis data karena apabila diasumsikan sistem basis data mendukung mission objective, maka mission statement dapat terpenuhi. 2.2.2.2 System Definition Definisi sistem menjelaskan batasan-batasan dan cakupan dari aplikasi basis data dan sudut pandang pemakai yang utama. Sudut pandang pemakai mendefinisikan apa saja yang 27 diperlukan pada aplikasi basis data dari perspektif peran job tertentu atau area aplikasi perusahaan. Identifikasi sudut pandang pemakai penting untuk memastikan tidak ada pemakai utama basis data yang terlupakan ketika pembuatan basis data baru yang dibutuhkan dan membantu pengembangan aplikasi basis data yang rumit atau kompleks. 2.2.2.3 Requirement Collection and Analysis Pada tahap ini menjelaskan pengumpulan dan analisis informasi. Informasi dikumpulkan kemudian dianalisis untuk mengidentifikasi kebutuhan yang akan dimasukan ke dalam sistem basis data yang baru. Pengumpulan dan analisis data merupakan tahap awal untuk mendesain database, jumlah data yang dikumpulkan tergantung pada sifat dari masalah dan kebijakan perusahaan. Informasi yang dikumpulkan pada tahap ini kurang terstruktur dan mencakup beberapa permintaan informal, sehingga informasi tersebut harus diubah menjadi peryataan yang lebih terstruktur. Ada beberapa teknik yang dapat digunakan, antara lain teknik structured analysis and design (SAD), data flow diagrams (DFD), dan hierarchical input process output (HIPO) yang didukung oleh dokumentasi. Selain mengumpulkan dan menganalisis informasi, tahap ini juga memutuskan bagaimana menangani situasi dimana ada lebih dari satu user view dalam sistem basis data. berikut ada tiga pendekatan untuk mengelola sistem basis data dengan dari beberapa user views; 1. The Centralized Approach 2. The View Integration Approach 3. A Combination of Both Approach 28 2.2.2.4 Database Design Menurut Connolly dan Begg (2010, p320), database design adalah suatu proses dalam membuat sebuah design yang akan mendukung visi dan misi perusahaan untuk keperluan sistem database. Dalam bagian ini akan dijelaskan pendekatan design database, ada beberapa pendekatan desain database, yaitu: - Buttom-Up Pendekatan ini dumulai dari tingkat dasar atribut, dimana melalui analisa hubungan antar atribut digabungkan kedalam suatu relasi yang mempresentasikan tipe dari entitas dan hubungan antar entitas. Pendekatan ini sesuai untuk database design yang sederhana. - Top-Down Pendekatan ini digunakan untuk database design yang kompleks. Pada pendekatan ini dimulai dengan pengembangan data models yang mengandung sejumlah entitas dan hubungan tingkat tinggi dan kemudian melakukan top-down terus menerus untuk mengidentifikasi entitas, hubungan dan atribut yang terkait didalamnya dengan tingkat yang lebih rendah. - Inside-Out Pendekatan ini mirip dengan pendekatan bottom-up, tetapi ada perbedaan. Pendetakan terlebih dahulu mengidentifikasi satu kumpulan entitas utama dan kemudian menyebar keluar untuk mempertimbangkan entitas lain, hubungan, dan atribut yang berhubungan dengan yang pertama kali diidentifikasi. - Mixed Strategy Pendekatan ini menggunakan pendekatan bottom-up dan pendekatan top-down untuk berbagai bagian dalam model sebelum menggabungkan semua bagian. 29 Database design terdiri dari tiga tahap utama, yaitu conceptual database design, logical database design, dan physical database design. Ketiga tahap utama tersebut akan dijelaskan pada berikut ini: 2.2.2.4.1 Conceptual Database Design Menurut Connolly dan Begg (2010, p467), conceptual database design adalah proses perancangan sebuah model data yang digunakan perusahaan atau organisasi tanpa pertimbangan fisik. Pertimbangan Fisik antara lain bahasa pemrograman, hardware platform dan lain-lain. Langkah pertama dalam conceptual database design adalah membangun satu atau lebih konseptual data sesuai dengan kebutuhan data perusahaan. Conceptual data model terdiri dari: 1. Entity Types 2. Relationship Types 3. Attributes 4. Primary Keys and Alternate Keys 5. Integrity Constraints Data model didukung oleh dokumen-dokumen yang dapat dihasilkan dari berbagai langkah. Di sini ada beberapa langkah-langkah yang harus dilakukan untuk merancang conceptual database design, yaitu: 1. Identify Entity Types Bertujuan untuk mengidentifikasi entitas utama yang dibutuhkan. Sebuah metode untuk mengidentifikasi entitas adalah dengan memeriksa spesifikasi kebutuhan pengguna. Dari 30 spesifikasi ini, harus mengidentifikasi kata benda atau frase benda. Objek utama berupa orang, tempat, dan konsep yang menarik. - Entity Name Description Entity name : nama entitas Aliases Occurrence - Deskription : mendeskripsikan entitas yang dimaksud - Aliases : nama lain entitas yang dimaksud - Occurrence : kejadian apa yang membuat entitas yang dimaksud ada. 2. Identify Relationship Types Bertujuan untuk mengidentifikasi relationship penting yang terdapat antara entitas yang telah diidentifikasi. Dalam mengidentifikasi relationship dapat menggunakan grammer dari spesifikasi kebutuhan pengguna. Secara khusus, relationship ditandai dengan kata kerja atau eksoresi verbal. - Entity Name Multiplicity Entitas name : nama entitas Relationship Multiplicity Entity Name - Multiplicity : berapa hubungan satu ID entitas terhadap entitas lain - Relationship : hubungan satu entitas dengan entitas lain. 3. Identify and Associate Attributes with Entity or Relationship Types Bertujuan untuk menghubungkan atribut dengan entitas atau relationship yang sesuai. Di sini mdapat menggunakan kata benda atau frase benda sesuai dengan spesifikasi kebutuhan pengguna. Atribut dapat diidentifikasi dimana kata benda atau frase benda merupakan sifat , kualitas, indentifier, dan karakteristik dari entitas atau relationship. Entity name Atribute s Description Data type and length Nulls Multivalue d Derived - Entity name : nama entitas. - Attributes : Atribut yang dimiliki oleh entitas yang dimaksud. - Description : mendeskripsikan atribut yang dimaksud Composite 31 - Data type and length : menentukan tipe data dan panjang karakter atribut yang dimaksud. - Nulls : “NO”, maka atribut yang dimaksud tidak boleh bernilai NULL. “YES”, maka atribut yang dimaksud boleh bernilai NULL. - Multivalued : “NO”, maka atribut yang dimaksud tidak multivalued. “YES”, maka atribut yang dimaksud boleh multivalued. - Derived : “NO”, maka atribut yang dimaksud tidak derived. “YES”, maka atribut yang dimaksud boleh derived. - Composite : “NO”, maka atribut yang dimaksud tidak composite. “YES”, maka atribut yang dimaksud boleh composite. 4. Determine Attribute Domains Bertujuan untuk menentukan domain bagi atribut didalam model data konseptual lokal. Domain merupakan sebuah kolom nilai dari satu atau lebih atribut yang menggambarkan nilai mereka. Entity name Attributes Data type and length Domain Atribut - Entity name : nama entitas. - Attributes : Atribut dari entitas yang dimaksud - Data type and length : menentukan tipe data dan panjang karakter atribut yang dimaksud. - Domain attributes : batasan dari atribut yang dimaksud. Contoh entitas ‘staff’ memiliki domain attributes ‘Range value 0000000000-9999999999, 10 karakter’ 5. Determinte Candidate, Primary, and Alternate Key Attributes Bertujuan untuk mengidentifikasi candidate key bagi setiap entitas dan jika terdapat lebih dari satu candidate key, pilihlah satu untuk dijadikan primary key. Ketika memilih 32 sebuah primary key diantara candidate key, gunakanlah panduan berikut untuk membantu membuat pilihan: - Sebuah candidate key dengan sekelompok atribut yang minim - Sebuah candidate key yang paling sedikit mempunyai perubahan nilai. - Sebuah candidate key dengan karakter paling sedikit (bagi atribut tekstual) - Sebuah candidate key dengan nilai maksimum terkecil (bagi atribut numeric) - Sebuah candidate key yang paling mudah digunakan dari sudut pandang pengguna. Berikut gambaran dan penjelasan pada tabel Determinte Candidate, Primary, and Alternate Key Attributes - Entity Candidate Key Entity : nama entitas. Primary Key Alternate Key - Candidate Key : kumpulan candidate key dari entitas yang dimaksud. - Primary Key : primary key yang ada pada entitas yang dimaksud. Dan pada umumnya satu entitas hanya memiliki satu primary key. - Alternate Key : candidate-candidate key yang bukan primary key. 6. Consider Use of Enchanced Modeling Concepts (Optional Step) Bertujuan untuk mempertimbangkan penggunaan konsep pemodelan lebih lanjut, seperti spesialisasi/generalisasi, agregrasi dan composition. Jika memilih pendekatan spesialisasi, maka harus berusaha untuk memperhatikan perbedaan antara entitas dengan mendefinisikan satu atau lebih entitas superclass. Jika menggunakan pendekatan generalisasi, maka dapat mengidentifikasi fitur umum antara entitas untuk mendefinisikan penggeneralisasian entitas superclass. Menggunakan agregasi untuk menggambarkan relationship mempunyai atau bagian dari antara entitas dimana yang satu menggambarkan keseluruhan dan yang lainya menggambarkan per bagian. Menggunakan composition untuk 33 menggambarkan hubungan antara entitas dimana terdapat hubungan yang sangat erat antara keseluruhan dan bagian. 34 7. Check Model for Redundancy Bertujuan untuk memeriksa keberadaan berbagai pengulangan didalam model. Terdapat dua aktifitas didalam tahap ini yaitu: - Memeriksa kembali relationship one-to-one (1-1) - Menghilangkan relationship yang berulang 8. Validate Conceptual Data Model Against User Transactions Bertujuan untuk memastikan bahwa model konseptual lokal mendukung transaksi yang diperlukan oleh view. Dengan menggunakan model tersebut, maka dapat diusahakan untuk membentuk operasi manual. Jika dapat memecahkan semua transaksi dengan cara ini, kita telah memastikan bahwa model data konseptual mendukung transaksi yang diperlukan. Ada dua pendekatan untuk memastikan bahwa model data konseptual lokal mendukung transaksi yang diperlukan yaitu: - Menjelaskan transaksi - Menggunakan transaksi pathway 9. Review Conceptual Data Model with User Bertujuan untuk me-review model data konseptual lokal dengan pengguna untuk memastikan bahwa model tersebut merupakan gambaran yang sebenarnya dari view. Model data konseptual termasuk ER diagram dan dokumen pendukung lainnya yang menjelaskan model data. Jika terdapat kesalahan didalam model data, maka harus membuat perubahan yang sesuai, yang mungkin memerlukan kembali ke tahap sebelumnya. 2.2.2.4.2 Logical Database Design Menurut Connolly dan Begg (2010, p467), logical database design adalah proses perancangan sebuah model data yang digunakan perusahaan atau organisasi yang 35 berdasarkan pada model data yang spesifik, tetapi tidak tergantung pada DBMS tertentu dan pertimbangan fisik lainnya. Tujuan dari tahap logical database design adalah menerjemahkan data konseptual ke dalam bentuk data logical dan memvalidasi model yang dibuat apakah telah secara struktur benar dan dapat memenuhi serta menyokong transaksi yang ada. Untuk mencapai tujuan tersebut, berikut langkah-langkah yang harus dilakukan : 1. Derive Relations for Logical Data Model Tujuan dari tahap ini adalah untuk membuat relasi bagi model data logikal untuk menunjukkan entitas, relasi, dan atribut yang telah teridentifikasi. Relasi yang dimiliki oleh satu entitas dengan entitas lainnya dapat dilihat melalui adanya primarykey atau foreignkey di dalam entitas. Untuk menentukan peletakan foreignkey, maka terlebih dahulu harus mengidentifikasi entitas parent dan child dari entitas yang bersangkutan dalam satu relasi. Berikut adalah struktur-struktur yang ada dalam sebuah relasi dari model data konseptual : - Strong entity types - Weak entity tyoes - One-to-many (1:*) binary relationship types - One-to-one (1:1) binary relationship types - One-to-one (1:1) recursive relationship types - Superclass/subclass relationship types - Many-to-many (*:*) binary relationship types - Complex realtionship types - Multi-valued attributes 36 2. Validate Relations Using Normalization Tujuan dari tahap ini adalah untuk memvalidasi relasi yang ada pada model data logikal dengan menggunakan tahap normalisasi. Proses dari normalisasi meliputi langkah-langkah yang akan mengecek apakah suatu atribut dari relasi sudah sesuai dengan aturannya. Tahap-tahap normalisai akan dibahas lebih lanjut pada sub bab selanjutnya. 3. Validate Relations againts User Transactions Tujuan dari tahap ini adalah untuk memastikan bahwa relasi yang ada pada model data logikal dapat menyokong kebutuhan dari transaksi. 4. Check Integrity Constraints Tujuan dari tahap ini adalah mengecek apakah integrity constraints telah diwakili dalam model data logikal. Berikut adalah tipe-tipe dari integrity consraints : - Required data - Attributes DOMAIN constraints - Multiplicity - Entity integrity - Referential integrity - General constraints 5. Review Logical Data Model with User Tujuan dari tahap ini adalah memeriksa ulang model data logikal yang dibuat dengan user untuk memastikan model data yang ada telah benar sebagai untuk mewakili kebutuhan dari perusahaan. 37 6. Merge Logical Data Models into Global Mode (optional) Tujuan dari tahap opsional ini adalah untuk menggabungkan model data logikal lokal ke dalam satu model data logikal global yang mempresentasikan semua database. 7. Check for Future Growth Tujuan dari tahap ini adalah untuk menentukan apakah ada perubahan yang signifikan di waktu kedepan yang masih dapat diduga dan menaksirkan apakah model data logikal dapat menampung atau menangani perubahan tersebut. 2.2.2.4.3 Physical Database Design Menurut Connolly dan Begg (2010, p467), physical database design adalah proses menghasilkan deskripsi dalam implementasi database pada penyimpanan sekunder, proses tersebut mendeskripsikan hubungan dasar, pengorganisasian file, dan indeks yang digunakan untuk mencapai akses data yang efisien, dan integritas constraints serta pengukuran kemanan. Secara umum, tujuan dari tahap perancangan database fisikal adalah untuk mendeskripsikan bagaimana cara mengimplementasikan secara fisikal dari model data logical yang telah dirancang. Dalam model relasionalnya akan terlibat : - Membuat sekumpulan hubungan relasional antar tabel dan constraints berdasarkan informasi dari model data logikal. - Mengeidentifikasi struktur penyimpanan yang spesifik dan metode pengaksesan data untuk mencapai performance yang optimum dari database systems. - Merancang proteksi keamanan sistem. Berikut merupakan langkah-langkah yang dilakukan untuk merancang database fisikal : 38 Langkah 3: Menerjemahkan model data logical kedalam DBMS 1. Merancang relasi dasar Tujuan dari tahap ini adalah untuk menentukan bagaimana cara mempresentasikan relasi dasar yang telah diidentifikasikan dalam tahap model data logikal pada DBMS. Setiap relasi dasar yang telah diidentifikasikan dalam tahap model data logical, didefinisikan yang terdiri dari : - Nama dari relasi - Daftar dari atribut dalam kumpulan - Primary key, alternate key, dan foreign key - Batasan integritas untuk setiap foreign key yang diidentifikasi. Berdasarkan dari kamus data yang ada, dapat diketahui bahwa dari setiap atributnya : - Domain dari atribut yang terdiri dari tipe data, panjang data, dan constraints yang ada pada Domain. - Suatu opsional nilai default untuk atribut. - Apakah atribut boleh bernilai null. - Apakah atribut dapat diperoleh dan bagaimana cara seharusnya mengkomputasi. 2. Merancang representasi dari derived data Tujuan dari tahap ini adalah untuk menetukan bagaimana mempresentasikan suatu derived data pada model data logikal dalam DBMS yang digunakan. Atibut yang nilainya dapat ditemukan dengan memeriksa nilai-nilai dari atibut lainnya disebut dengan atribut turunan (derived) atau calculated attributes. Sebagai contoh, berikut ini merupakan atribut turunan (derived) : - Jumlah karyawan yang bekerja di salah satu cabang perusahaan. 39 - Jumlah total gaji per bulan dari semua karyawan perusahaan. - Jumlah total produksi agen dalam satu tahun. 3. Merancang batasan (constraints) umum Dalam tahap ini tujuannya adalah untuk merancang semua batasan umum pada perusahaan untuk DBMS yang digunakan. Dalam tahap ini akan mempertimbangkan general constraints yang tersisa. Dalam merancang general constraints tergantung pada pilihan DBMS yang digunakan, beberapa sistem telah menyediakan fasilitas yang lebih daripada system lainnya untuk mendefinisikan general constraints. 4. Merancang indeks dan pengaturan file Tujuan dari tahap ini adalah untuk mennetukan cara pengaturan file yang optimal untuk menyimpal relasi dasar dan indeks yang diperlukan untuk mencapai kinerja atau performa yang dapat diterima oleh perusahaan. Berikut merupakan langkah yang dilakukan untuk mencapai tujuan pada tahap ini : Langkah 4: 1. Menganalisa transaksi Tujuannya adalah memahami fungsi yang dimiliki oleh transaksi yang akan berjalan pada database dan juga menganalisa transaksi-transaksi yang penting. Untuk melaksanakan database fisikal yang efektif, maka ada perlunya untuk mengetahui pengetahuan tentang transaksi ataupun query yang akan dijalankan pada database. Dalam menganalisa transaksi , dapat diidentifikasi kriteria dari performa seperti : - Transaksi yang sering digunakan akan memiliki dampak yang besar terhadap performa sistem. - Transaksi yang kritikal penting dalam menjalankan transaksi bisnis. 40 - Waktu-waktu (per hari/minggu) tertentu yang menjadi puncak penggunaan sistem dimana akan ada permintaan atau tuntutan yang tinggi pada database. 41 Memilih cara mengatur file Tujuannya adalah untuk menentukan cara pengaturan file yang efisien bagi semua relasi dasar yang ada. 2. Memilih indeks Tujuannya adalah untuk menentukan apakah dengan menambahkan indeks akan meningkatkan kinerja atau performa dari sistem. Salah satu pendekatan yang digunakan dalam memilih cara pengeturan file yang sesuai adalah dengan menjaga tuple tetap unordered dan membuat atau menciptakan indeks sekunder sebanyak yang diperlukan. 3. Memperkirakan kapasitas disk yang diperlukan Tujuan dari tahap ini adalah untuk memperkirakan jumlah atau besar kapasitas disk yang dibutuhkan oleh database. Langkah 5: 1. Merancang userviews Tujuan dari tahap ini adalah untuk merancang tampilan bagi semua user yang diidentifikasi selama pengumpulan dan analisa dari tahap atau siklus pengembangan sistem database (Database System Development Lifecycle/DSDL). Langkah 6: 1. Merancang mekanisme keamanan Tujuan dari tahap ini adalah merancang mekanisme sistem keamanan atau sekuriti untuk database yang telah ditetapkan oleh users selama tahap kebutuhan sistem dan pengumpulan dari DSDL. 42 2.2.2.5 DBMS Selection (Optional) Memilih DBMS yang tepat untuk mendukung sistem database. Dapat dilakukan kapanpun sebelum menuju design logikal asalkan terdapat cukup informasi mengenai kebutuhan sistem. Tahap-tahap utama memilih DBMS: - Mendefinisikan terminologi studi referensi. - Mendaftar dua atau tiga produk - Evaluasi produk - Rekomendasi pilihan dan laporan produk 2.2.2.6 Application Design Design aplikasi adalah design interface user dan program aplikasi yang menggunakan dan memproses basis data. Design basis data dan aplikasi merupakan aktifitas paralel yang meliputi dua aktifitas penting, yaitu: - Transaction Design Transaksi adalah satu aksi atau serangkaian aksi yang dilakukan oleh user tunggal atau program aplikasi, yang mengakses atau mengubah isi dari basis data. Kegunaan dari design transaksi adalah untuk menetapkan dan keterangan karakteristik high-level dari suatu transaksi yang dibutuhkan pada basis data. Terdapat tiga tipe transaksi, yaitu: Retrieval transaction, digunakan untuk pemanggilan (retrieve) data untuk ditampilkan dilayar atau menghasilkan suatu laporan. Update transaction, digunakan untuk menambah record baru, menghapus record lama, atau memodifikasi record yang sudah ada didalam database. Mixed transaction, meliputi pemanggilan dan perubahan data. 43 - User Interface Design Beberapa aturan pokok dalam pembuatan user interface: Meaningful title, diusahakan pemberian nama suatu form cukup jelas menerangkan kegunaan dari suatu form/report. Comprehensible instructions, penggunaan terminologi yang familiar untuk menyampaikan instruksi ke user dan jika informasi tambahan dibutuhkan, maka harus disediakan help screen. Logical grouping and sequencing of fields, field yang saling berhubungan ditempatkan pada form/report yang sama. Urutan field harus logis dan konsisten. Visually appealing layout of the form/report, tampilan form/report harus menarik, dan sesuai dengan hardcopy agar konsisten. Familiar field labels, penggunaan label yang familiar. Consistent terminology and abbreviation, terminologi dan singkatan yang digunakan harus konsisten. Consistent us of color. Visible space and boundaries for data-entry fields, jumlah tempat yang disediakan untuk data entry harus diketahui oleh user. Convinient cursor movement, user dapat dengan mudah menjalankan operasi yang diinginkan dengan menggerakan cursor pada form/report. Error correction for individual characters and entire fields, user dapat dengan mudah menjalankan operasi yang diinginkan dan dapat melakukan perubahan terhadap nilai field. Error messages for unacceptable values. Optional field marked clearly. 44 Explanatory message for fields, ketika user meletakkan cursor pada suatu field, maka keterangan mengenai field tersebut harus dapat dilihat. Completion signal, indikator yang menjelaskan bahwa suatu proses telah selesai dilaksanakan . 2.2.2.7 Prototyping (Optional) Prototyping adalah membuat model kerja suatu aplikasi basis data. Tujuan utama dari pembuatan prototyping adalah: - Untuk mengidentifikasi feature dari sistem yang berjalan dengan baik atau tidak . - Untuk memberikan perbaikan-perbaikan atau penambahan feature baru. - Untuk klarifikasi kebutuhan pemakai. - Untuk evaluasi feasibilitas (kemungkinan yang akan terjadi) dari design sistem khusus. Terdapat dua macam strategi prototyping yang dapat digunakan saat ini, yaitu: - Requirement prototyping, menggunakan prototype untuk menentukan kebutuhan dari aplikasi basis data yang diinginkan dan ketika kebutuhan itu terpenuhi maka prototype akan dibuang. - Evolutionary prototyping, digunakan untuk tujuan yang sama. Perbedaannya, prototype tidak dibuang tetapi dengan pengembangan lanjutan menjadi aplikasi basis data yang digunakan. 2.2.2.8 Implamentation Implementasi merupakan realisasi fisik dari basis data dan design aplikasi. Implementasi basis data dicapai dengan menggunakan: - DDL untuk membuat skema basis data dan file basis data kosong. - DDL untuk membuat user view yang diinginkan . 45 - 3GL dan 4GL untuk membuat program aplikasi. Termasuk transaksi basis data disertakan dengan menggunakan DML, atau ditambahkan pada bahasa pemrograman. 2.2.2.9 Data Convertion and Loading Pemindahan data yang ada kedalam basis data baru dan mengkonversikan aplikasi yang ada agar dapat digunakan pada basis data yang baru. Tahapan ini dibutuhkan ketika sistem basis data baru menggantikan sistem yang lama. DBMS biasanya memiliki utilitas yang memanggil ulang file yang sudah ada kedalam basis data baru. Dapat juga mengkonversi dan menggunakan program aplikasi dari sistem yang lama untuk digunakan oleh sistem yang baru. 2.2.2.10 Testing Testing adalah suatu proses eksekusi program aplikasi dengan tujuan untuk menemukan kesalahan. Dengan menggunakan strategi tes yang direncanakan dan data yang sesungguhnya. Pengujian hanya akan terlihat jika terjadi kesalahan software. Mendemonstrasikan basis data dan program aplikasi terlihat berjalan seperti yang diharapkan. 2.2.2.11 Operational Maintenance Suatu proses pengawasan dan pemeliharaan sistem setelah instalasi, meliputi: - Pengawasan performa sistem, jika performa menurun maka memerlukan perbaikan atau pengaturan ulang basis data. - Pemeliharaan dan pembaharuan aplikasi basis data (jika dibutuhkan). - Penggabungan kebutuhan baru kedalam aplikasi basis data. 1.3 Struktur Data Relasional Menurut Connolly dan Begg (2010, p144-146), struktur data relasional terbagi menjadi beberapa bagian yaitu: 46 1. Relasi : merupakan sebuah table dengan baris dan kolom. Digunakan untuk menyimpan informasi tentang objek yang digambarkan dalam database. 2. Atribut : merupakan nama kolom dalam relasi. Atribut dapat ditampilkan dalam berbagai perintah dan dalam relasi yang sama sehingga menyampaikan arti yang sama. 3. Domain : merupakan sekelompok nilai yang diizinkan bagi satu atau lebih atribut. Setiap atribut dalam relasi didefinisikan pada sebuah domain. Domain dapat berbeda bagi setiap atribut, atau dua/lebih atribut dapat didefinisikan pada domain yang sama. Konsep domain sangat penting karena memungkinkan pengguna menjelaskan arti dan sumber nilai yang ada pada atribut. 4. Tuple : merupakan baris dari sebuah relasi. Dapat disebut intension jika struktur relasi, domain serta batasan-batasan yang lainnya pada nilai yang mungkin bersifat tetap, namun sebaliknya jika relasi berubah setiap waktu ini disebut extension. 5. Degree : merupakan jumlah atribut yang terdapat dalam relasi. Jika relasi mempunyai satu atribut akan mempunyai derajat satu yang disebut relasi unary / satu tuple. Jika relasi mempunyai dua atribut akan mempunyai derajat dua yang disebut binary. Dan begitu seterusnya memakai istilah nary. 6. Cardinality : merupakan jumlah tuple yang terdapat dalam relasi. Cardinality juga merupakan properti dari extension relasi dan ditentukan dari instance tertentu. 7. Database Relational : merupakan kumpulan dari relasi yang ternomalisasi dengan nama relasi yang berbeda. 1.4 Entity-Relationship Modeling Pada kutipan jurnal Bahl, Sharma, dan Rajpal (2011, p2), entity relationships (ER) model digunakan untuk menunjukkan hubungan antar entitas dan sebagai tool dasar dalam merancang basis data. Entity relationship (ER) data model didasarkan pada persepsi dunia 47 nyata yang terdiri dari kumpulan objek dasar, yang disebut entiti dan relationship antara objek-objek ini : - Entity Type Entity type merupakan konsep dasar dari suatu model ER. Menurut Connolly dan Begg (2010, p372), entity type adalah kumpulan dari objek dengan property yang sama, yang diidentifikasi oleh perusahaan mempunyai keberadaan yang independen. Keberadaan entity type dapat berupa fisik atau ‘nyata’ dan konseptual atau ‘abstrak’. - Relationship Type Menurut Connolly dan Begg (2010, p374), relationship adalah sekumpulan entitas yang memiliki hubungan satu sama lain. Relationship occurence adalah suatu gabungan yang dapat didefinisikan secara unik yang meliputi suatu kejadian dari setiap tipe entitas yang berpartisipasi. Gambar 2.4 Contoh relasi bernama memiliki Biasanya, nama dari suatu relasi menggunakan kata kerja (seperti: memiliki, mengatur, menyebabkan atau melakukan). Dalam gambar xx, dibaca SPA memiliki Rider, arah pembacaan dilihat dari arah tanda panahnya menuju kekelas yang dituju. - Atribut Menurut Connolly dan Begg (2010, p379), atribut dapat diartikan sebagai sebuah property dari sebuah entitas atau tipe dari relasi. Atribut dapat diklasifikasi menjadi : 48 1. Attribute Simple and Composite Attribute simple adalah sebuah atribut yang terdiri dari komponen tunggal dengan keberadaan independen (tetap). Attribute simple kadang disebut juga komponen atomik (tidak bisa dibagi). Attribute composite adalah sebuah atribut yang terdiri dari banyak komponen dengan keberadaan independen (tetap). 2. Single Value and Multi Value Attributes Single value attribute adalah sebuah atribut yang memiliki nilai tunggal untuk masingmasing kejadian dari sebuah entitas. Multi value attribute adalah sebuah atribut yang memiliki banyak nilai untuk masing-masing kejadian dari sebuah entitas. 3. Derived Attribute Derived attributes adalah sesuatu yang menggantikan sebuah nilai yang diturunkan dari nilai atribut yang berhubungan atau kumpulan dari atribut, tidak perlu pada jenis entitas yang sama. 4. Keys Candidate key adalah sekumpulan dikit atribut yang secara unik mengidentifikasi setiap jenis entitas. Primary key adalah candidate key yang dipilih untuk mengidentifikasi tuples yang unik dalam sebuah relasi, karena suatu relasi tidak memiliki duplikat tuples. - Entitas Kuat dan Lemah Menurut Connolly dan Begg (2010, p383), entitas kuat adalah entitas yang keberadaannya tidak bergantung pada beberapa entitas yang lain. Karakter dari entitas ini adalah bahwa setiap kejadian entitas teridentifikasi secara unik menggunakan atribut primary key. Sebagai contoh, kita dapat mengidentifikasi secara unik setiap anggota staff dengan menggunakan atribut staff No. 49 Sedangkan entitas lemah adalah entitas yang keberadaannya bergantung pada beberapa entitas lain. Karakteristik dari entitas ini bahwa setiap kejadian entitas tidak dapat teridentifikasi secara unik hanya dengan menggunakan atribut entitas tersebut. Kita hanya dapat mengidentifikasi secara unik entitas kesukaan melalui relationship yang dimiliki dengan entitas klien yang secara unik teridentifikasi menggunakan primary key bagi entitas klien. - Attribut dalam relasi Sebuah relasi yang menghubungkan antar entitas juga dapat memiliki atribut didalamnya yang mirip dengan atribut dalam sebuah entitas. Dan untuk membedakan antara relasi dan atribut dengan entitas, atribut dari relasi dihubungkan dengan menggunakan garis putus-putus. Untuk lebih jelasnya dapat dilihat pada gambar xx, dimana relasi mencatat memiliki atribut jawaban_pp dan jawaban_tt. Gambar 2.5 Contoh atribut dalam relasi mencatat - StructuralConstrain Menurut Connolly dan Begg (2010, p385), tipe utama dari batasan hubungan dinamakan multiplicity. Multiplicity adalah jumlah kemungkinan kejadian sebuah entitas yang mungkin berhubungan dengan sebuah kejadian tunggal dari sebuah entitas yang tergabung melalui sebuah hubungan khusus. Hubungan binary secara khusus dibedakan menjadi : 50 1. Derajat hubungan one-to-one (1:1) Dapat dilihat dari gambar xx, derajat hubungan ini terjadi bila setiap anggota entitas staff hanya boleh berpasangan dengan satu anggota dari entitas branch. Sebaliknya tiap anggota branch hanya boleh berpasangan dengan satu anggota dari entitas staff. Gambar 2.6 Contoh yang menunjukkan hubungan 1:1 (Sumber : Connolly dan Begg (2010, p386)) 2. Derajat hubungan one-to-many (1:*) Dapat dilihat dari gambar xx, derajat hubungan ini terjadi bila tiap anggota entitas staff boleh berpasangan dengan lebih dari satu anggota entitas propertyForRent. Sebaliknya tiap anggota entitas propertyForRent hanya boleh berpasangan dengan satu anggota dari entitas staff. Gambar 2.7 Contoh yang menunjukkan hubungan 1:* (Sumber : Connolly dan Begg (2010, p387)) 3. Derajat hubungan many-to-many (*:*) 51 Dapat dilihat dari gambar xx, derajat hubungan antar entitas ini terjadi bila tiap anggota entitas barang boleh berpasangan lebih dari satu entitas produksi. Gambar 2.8 Contoh yang menunjukkan hubungan *:* (Sumber : Connolly dan Begg (2010, p388)) 52 4. Multiplicity untuk relasi yang komplek. Multiplicity untuk relasi yang komplek adalah jumlah (atau jangkauan) dari kejadian yang mungkin dari suatu entity dalam nary-relationship ketika nilai entity yang lain (n-1) diketahui. Multiplicity dibentuk dari dua macam batasan pada relationship, yaitu cardinality, menjelaskan jumlah maksimal dari kejadian relationship yang mungkin untuk entity yang berpartisipasi di dalam relationship tersebut. Participation, menetapkan apakah seluruh atau sebagian entity yang berpartisipasi dalam suatu relationship. 1.5 Normalization Menurut Connolly dan Begg (2010, p415), normalisasi adalah teknik yang digunakan untuk menghasilkan sekumpulan relasi tabel dengan properties yang diinginkan, sehingga sesuai dengan kebutuhan perusahaan. Tujuan dari normalisasi adalah untuk mengidentifikasi sekumpulan relasi yang sesuai dan cocok sehingga dapat memenuhi kebutuhan perusahaan. Relasi yang sesuain yang dimaksud memiliki karakteristik seminimalnya redudansi dan minimal jumlah atribut yang dimiliki yang akan memenuhi kebutuhan perusahaan. Jadi tujuan utama dari normalisasi adalah untuk meminimalkan redudansi data dan masalah-masalah yang muncul ketika data di insert, update, dan delete. Masalah-masalah tersebut sering disebut dengan istilah anomali. Menurut Connolly dan Begg (2010, p419) Anomali adalah suatu efek samping yang menyebabkan inconsistency (tidak konsisten) data atau membuat data-data menjadi hilang dan tidak terintegrasi saat data lain dihapus atau dimodifikasi. 53 Gambar 2.9 Ilustrasi yang menggambarkan relasi antara normalforms (Sumber : Connolly dan Begg (2010, p429)) Menurut Connolly dan Begg (2010, p428), berikut merupakan langkah-langkah normalisasi, yaitu: 1. Unnormalized Form (UNF) Unnormalized form adalah kondisi dimana sebuah tabel belum masuk kedalam proses normalisasi atau disebut juga dengan bentuk awal dari tabel. Menurut Connolly dan Begg (2010, p430), unnormalized form adalah “A table that contains one or more repeating groups”, yang artinya adalah suatu table yang berisi satu atau lebih kelompok yang berulang. Contoh unnormalized form(UNF): Tabel 2.7 Contoh bentuk tabel yang belum dinormalisasi (UNF) (Sumber : Connolly dan Begg (2010, p432)) Client No CR76 cNa me John Kay property No PG4 PG16 CR56 Aline PG4 Stew art PG36 PG16 pAddress rentStart rentFinish rent 6 lawrence St, Glasgow 5 Novar Dr, Glasgow 6 lawrence ST, Glasgow 2 Manor Rd, Glasgow 5 Novar DR, Glasgow 1-Jul-07 31-Aug-08 350 owner No CO40 1-Sep-08 1-Sep-09 450 CO93 1-Sep-06 10-Jun-07 350 CO40 10-Oct-07 1-Dec-08 375 CO93 1-Nov-09 10-Aug-10 450 CO93 2. First Normal Form (1NF) oName Tina Murphy Tony Shaw Tina Murphy Tony Shaw Tony Shaw 54 Bentuk normal yang pertama ini dapat dicapai bila telah memenuhi syarat dimana setiap perpotongan baris dan kolom hanya memilik satu dan hanya satu nilai. Tahap 1NF bertujuan untuk mengidentifikasi dan menghilangkan data yang bersifat repitisi didalam tabel. Contoh 1NF: Tabel 2.8 Contoh tabel yang telah memasuki bentuk normal pertama (1NF) (Sumber : Connolly dan Begg (2010, p432)) Client No CR76 proper tyNo PG4 cName pAddress rentStart rentFinish rent oName 350 ownerN o CO40 John Kay 1-Jul-07 31-Aug-08 CR76 PG16 John Kay 1-Sep-08 CR56 PG4 Aline Stewart CR56 PG36 Aline Stewart CR56 PG16 Aline Stewart 6 lawrence St, Glasgow 5 Novar Dr, Glasgow 6 lawrence ST, Glasgow 2 Manor Rd, Glasgow 5 Novar DR, Glasgow 1-Sep-09 450 CO93 Tony Shaw 1-Sep-06 10-Jun-07 350 CO40 Tina Murphy 10-Oct-07 1-Dec-08 375 CO93 Tony Shaw 1-Nov-09 10-Aug-10 450 CO93 Tony Shaw Tina Murphy 55 3. Second Normal Form (2NF) Setelah setiap kolom hanya mengandung satu dan hanya satu nilai, maka tahap selanjutnya dalam 2NF adalah memisahkan atribut yang bersiafat partially dependent menjadi satu tabel yang berdiri sendiri. Jadi, tahap 2NF adalah tahap dimana dalam satu tabel semua atribut bersifat fully dependent terhadap primary key tabel tersebut. Contoh 2NF: Tabel 2.9 Tabel-tabel hasil dari proses 2NF (Sumber : Connolly dan Begg (2010, p435)) Client ClientNo cName CR76 John Kay CR56 Aline Stewart Rental ClientNo propertyNo rentStart rentFinish CR76 PG4 1-Jul-07 31-Aug-08 CR76 PG16 1-Sep-08 1-Sep-09 CR56 PG4 1-Sep-06 10-Jun-07 CR56 PG36 10-Oct-07 1-Dec-08 CR56 PG16 1-Nov-09 10-Aug-10 PropertyOwner propertyNo pAddress rent ownerNo oName PG4 6 lawrence ST, Glasgow 350 CO40 Tina Murphy PG16 5 Novar Dr, Glasgow 450 CO93 Tony Shaw 56 PG36 2 Manor Rd, Glasgow 375 CO93 Tony Shaw 4. Third Normal Form (3NF) Setelah tahap 2NF data tetap memiliki sedikit redundansi data sehingga dilakukan 3NF agar tidak ada atribut yang bergantungan dengan atribut primary key. Tahap 3NF adalah hubungan yang hasil dari 1NF dan 2NF dimana tidak ada atribut non primary key yang yang bersifat transitif dependent terhadap primary key. Jadi, pada tahap 3NF dilakukan untuk memisahkan atribut-atribut yang bersifat transitive dependent. Contoh 3NF: Tabel 2.10 Tabel-tabel hasil dari proses 3NF (Sumber : Connolly dan Begg (2010, p438)) Client ClientNo cName CR76 John Kay CR56 Aline Stewart Rental ClientNo propertyNo rentStart rentFinish CR76 PG4 1-Jul-07 31-Aug-08 CR76 PG16 1-Sep-08 1-Sep-09 CR56 PG4 1-Sep-06 10-Jun-07 CR56 PG36 10-Oct-07 1-Dec-08 CR56 PG16 1-Nov-09 10-Aug-10 PropertyForRent propertyNo pAddress rent ownerNo PG4 6 lawrence ST, Glasgow 350 CO40 PG16 5 Novar Dr, Glasgow 450 CO93 57 PG36 2 Manor Rd, Glasgow 375 CO93 Owner ownerNo oName CO40 Tina Murphy CO93 Tony Shaw Konsep terpenting dalam keterkaitan dengan normalisasi adalah Functional Dependencies. Menurut Connolly dan Begg (2010, p421), functional dependency mendeskripsikan hubungan antar atribut dalam suatu relasi. Sebagai contoh, jika A dan B adalah atribut dari relasi R, B dikatakan functionally dependent terhadap A jika setiap nilai yang dimiliki oleh A diasosiasikan dengan salah satu dari nilai yang dimiliki oleh B. Menurut Connolly dan Begg (2010, p422), functional dependency memiliki karakteristik, yaitu: 1. Full Functional Dependency Full functional dependency adalah menandakan bahwa jika A dan B adalah atribut dalam suatu relasi, B sepenuhnya bergantung pada A tetapi tidak setiap bagian dari A. 2. Partial Dependency Partial dependency ialah keadaan dimana ketika A→B, bila ada atribut yang bisa dihilangkan tetapi masih dalam keadaan dependency. 3. Transitive Dependency 58 Transitive dependency ialah keadaan dimana A, B, C merupakan atribut-atribut dari suatu relasi sehingga A→B dan B→C, maka C merupakan transitive dependent terhadap A melalui B dengan syarat A tidak functionally dependent terhadap B atau C. 59 2.6 Proses Bisnis 1.5.1 Penjualan Menurut Monk dan Bret (2009, p6), bahwa fungsi dari penjualan dan pemasaran adalah mengembangkan produk, menentukan harga, mempromosikan produk kepada pelanggan, dan melayani pemesanan oleh pelanggan. Kegiatan penjualan digambarkan dengan menggunakan rich picture. Menurut Mathiassen, Madsen, dan Nielsen (2000, p27), rich pictures adalah sebuah gambar informal yang menyajikan pemahaman ilustrator terhadap suatu situasi. Dengan menggunakan rich pictures dapat menjelaskan secara lengkap keadaan atau situasi yang penting dari suatu proses dan akan menghasilkan garis besar dari situasi tersebut. Kegiatan penjualan terdiri dari transaksi penjualan barang atau jasa baik secara kredit atau tunai (Mulyadi, 2001:202). Dalam transaksi penjualan secara kredit, jika order dari pelanggan telah dipenuhi dengan adanya permintaan barang atau jasa, maka dalam waktu tertentu perusahaan memiliki piutang kepada pelanggannya. Dalam penjualan ada dua cara pembayaran yang dapat dilakukan yaitu : 1. Penjualan Tunai Penjualan tunai adalah penjualan yang dilaksanakan oleh perusahaan dengan cara mewajibkan pembeli untuk melakukan pembayaran harga barang telebih dahulu sebelum barang diserahkan kepada pembeli. 2. Penjualan Kredit Penjualan kredit adalah penjualan yang dilakukan dengan cara memenuhi permintaan atau pemesanan dari pelanggan lalu mengirimkan barang atau menyerahkan jasa dan untuk jangka waktu tertentu perusahaan memiliki piutang kepada pelanggannya. 60 1.5.2 Asuransi Berdasarkan pada KUHD (Kitab Undang-Undang Hukum Dagang) Republik Indonesia pasal 246, asuransi atau pertanggungan adalah perjanjian, di mana penanggung mengikat diri terhadap tertanggung dengan memperoleh premi, untuk memberikan kepadanya ganti rugi karena suatu kehilangan, kerusakan, atau tidak mendapat keuntungan yang diharapakan, yang mungkin akan dapat diderita karena suatu peristiwa yang tidak pasti. Unsur-unsur dalam asuransi yaitu : - Pihak tertanggung (insecured), merupakan pihak yang berjanji akan membayar uang kepada pihak penanggung. - Pihak penanggung (insurer), merupakan pihak yang berjanji akan membayar jika peristiwa pada unsur ketiga terjadi. - Suatu peristiwa, dimana peristiwa yang dimaksud belum tentu akan terjadi.