BAB 2 TINJAUAN PUSTAKA 2.1. Teori-Teori Sistem Basis Data 2.1.1. Sistem Menurut Stair dan Reynolds, sistem adalah sebuah kumpulan prosedur bisnis yang digunakan oleh satu unit bisnis dan bekerja sama untuk menghasilkan suatu tujuan tertentu. Sebuah sistem akan mengambil suatu input yang dibutuhkan dari lingkungan disekitar sistem, memproses input tersebut untuk menghasilkan output yang diinginkan dan akan mengeluarkan output tersebut kembali ke lingkungan (Stair & Reynolds, 2016). 2.1.1.1. Bagian-Bagian Sistem Sebuah sistem membutuhkan suatu komponen yang dibutuhkan untuk menghasilkan output yang diinginkan. Komponen tersebut bisa berupa suatu hal yang kecil atau suatu bagian dari sistem, atau yang biasa disebut dengan subsistem. Komponen tersebut harus berhubungan untuk bisa menjalankan suatu fungsi yang ada dalam sistem. Sistem juga harus memiliki ruang batas yang berfungsi untuk menyimpan komponen-komponen yang dibutuhkan dalam sistem. Ruang batas suatu sistem juga berfungsi untuk memisahkan satu sistem dengan sistem yang lain. Sebuah sistem ada dalam suatu lingkungan. Lingkungan merupakan semua hal yang berada diluar ruang batas sistem dan memiliki pengaruh kepada sistem. Sebuah sistem biasanya berinteraksi dengan lingkungannya dengan menerima data dan informasi dari lingkungan. Sistem hanya bisa berinteraksi dengan lingkungannya melalui antarmuka. Sistem memiliki batasan untuk bisa berfungsi dengan baik dan berinteraksi dengan lingkungan disekitar sistem. Batasan merupakan sebuah variabel pembatas sebuah sistem tentang bagaimana suatu tujuan bisa dicapai, bagaimana mencapai tujuan bisa tercapai dalam 7 8 suatu lingkungan. Batasan tidak hanya berada dalam sistem, tapi ada yang ada dalam lingkungan. 2.1.2. Sistem Basis Data Informasi adalah sebuah unsur yang fundamental dalam suatu perusahaan untuk melakukan proses bisnis mereka. untuk mengimbangi banyaknya informasi yang terjadi dalam suatu proses bisnis mereka maka dibutuhkan sebuah sistem yang bisa mengelola informasi-informasi tersebut dengan akurat dan efisien. Konsep sistem yang umumnya dipakai adalah konsep sistem basis data. Menurut Silberschatz, Korth dan Sudarshan, Database Management System (DBMS) adalah kumpulan data yang saling berhubungan dan memiliki sebuah program untuk mengakses data-data tersebut. Koleksi dari data tersebut biasa disebut dengan database, mengandung informasi yang berhubungan dari suatu perusahaan (Silberschatz, 2001, p. 15) Sistem basis data tanpa kita sadari sudah menjadi bagian kehidupan kita sehari-hari. Sistem basis data merupakan program yang bisa berinteraksi dengan sebuah basis data pada titik eksekusi yang diinginkan oleh pengguna. Dari penjelasan diatas, sistem basis data atau biasa disebut dengan database adalah sebuah sistem yang dibuat untuk mengelola informasi yang sangat besar. Pengelolaan yang dimaksud mencakup mendefinisikan struktur dari tempat penyimpanan untuk informasi dan memberikan mekanisme untuk memanipulasi informasi yang sebelumnya sudah disimpan. Disamping itu, sistem basis data harus memberikan keamanan bagi informasi yang sudah disimpan, baik dari kesalahan teknis ataupun dari kemungkinan terjadinya akses oleh pihak yang tidak berwenang. Penggunaan konsep sistem basis data saat ini sudah cukup banyak, dari pengelolaan informasi proses banking and finance, pendidikan, penerbangan, hingga telekomunikasi sudah menerapkan konsep sistem ini. Salah satu konsep penyimpanan data yang awalnya digunakan adalah file-processing system. Sistem ini menyimpan data-data permanen dalam bentuk file-file yang berbeda, serta membutuhkan program yang berbeda untuk melakukan extract dan menambahkan data ke dalam file tersebut. Konsep ini memiliki banyak kerugian, antara lain: 9 • Data menjadi redundan dan tidak konsisten Karena banyak programmer yang terlibat dalam menciptakan sistem ini secara bersamaan dalam satu perusahaan, maka ada kemungkinan terjadi perbedaan struktur dalam file-file didalam memory dan ada kemungkinan beberapa program yang ditulis dengan bahasa pemrograman yang berbeda. Ditambah lagi, informasi-informasi yang ada bisa terduplikasi dan mengakibatkan kebutuhan kapasitas memory yang lebih besar dan biaya yang lebih mahal. • Kesulitan mengakses data Karena data-data didalam memory bisa memiliki perbedaan format, maka dibutuhkan aplikasi yang berbeda untuk membuka setiap file yang ada dalam memory. Kerugian yang dimiliki oleh file-processing system membuktikan bahwa data yang dimiliki sistem tersebut tidak bisa diakses atau digunakan untuk keperluan umum karena tidak efisien (Silberschatz, 2001, p. 17). Agar penyimpanan data menjadi lebih efektif dan efisien, maka dibutuhkan pendekatan baru dalam penyimpanan data selain file-processing system. Salah satunya adalah pendekatan sistem basis data. Seperti dijelaskan diatas, sistem basis data adalah kumpulan data yang saling berhubungan. Sistem ini memungkinkan data-data yang ada digunakan secara bersamaan oleh banyak pengguna dan memiliki tingkat redundancy yang rendah. Lalu, sistem basis data juga memiliki sebuah data yang mendiskripsikan dirinya sendiri, atau biasa disebut dengan metadata yang bisa digunakan sebagai katalog data Menurut Connolly, kelebihan dari sistem basis data yang lainnya adalah adanya proses abstraksi data. Abstraksi data adalah proses yang memungkinkan perubahan definisi data secara internal tanpa mempengaruhi pengguna dari data tersebut, dengan catatan definisi data secara eksternal masih sama. Salah satu karakteristik yang dimiliki oleh sistem basis data adalah data-data yang ada harus berhubungan secara logical. Maka dari itu, ketika membuat sistem baru, harus mengidentifikasi entity, attribute dan 10 relationship atau hubungan dalam informasi-informasi yang ada. Entity adalah objek yang akan dibutuhkan untuk mewakili data dalam sistem basis data. Attribute adalah deskripsi mengenai beberapa aspek dari objek yang akan disimpan dalam sistem. Sedangkan relationship atau hubungan adalah penjelasan mengenai hubungan antar entity dalam sistem (Connolly, 2015, p. 63). 2.1.2.1. Abstraksi Data 2.1.2.1.1 ANSI-SPARC Architecture Agar sistem bisa digunakan, maka dibutuhkan sebuah konsep untuk mengambil data secara efisien. Proses tersebut disebut dengan abstraksi data. Abstraksi data memiliki tiga tingkat arsitektur dimana data dikelompokkan berdasarkan sejauh mana sebuah data bisa dideskripsikan. Tingkatan tersebut dengan dikelompokkan ANSI-SPARC menjadi tiga, Architecture. yaitu tingkat Data eksternal, konseptual dan internal (Coronel, Morris, & Rob, 2011). Tingkat eksternal adalah tingkat yang menjelaskan persepsi pengguna dalam melihat data. Tingkat internal adalah tingkat yang menjelaskan persepsi DBMS dan sistem operasi dalam melihat data, serta bagaimana data disimpan menggunakan cerminan struktur data dan organisasi file. Sedangkan tingkat konseptual adalah memberikan mapping dan independence bagi tingkat internal dan eksternal. 2.1.2.1.2. Abstraksi Data Konvensional Efisiensi data sudah menjadi standar bagi designer sistem basis data untuk menggunakan data-data yang kompleks didalam sistem basis data. Untuk menyembunyikan kompleksitas data dari pengguna, maka designer tersebut menggunakan tingkat-tingkat abstraksi untuk menyimpulkan bagaimana pengguna berinteraksi dengan sistem. Tingkatan tersebut dibagi menjadi tingkat Physical, Logical dan View. 11 Tingkatan Physical mendeskripsikan bagaimana data tersebut disimpan dalam sistem. Tingkatan Logical mendeskripsikan data apa yang disimpan dalam sistem, serta menjelaskan hubungan yang terjadi antar data dalam sistem. Tingkatan ini menjelaskan seluruh sistem basis data dalam gambaran yang kecil dan relatif simpel. Database Administrator (DBA) harus menentukan informasi apa saja yang harus disimpan dalam sistem basis data menggunakan tingkatan Logical dari proses abstraksi data. Tingkatan View adalah tingkatan tertinggi dalam abstraksi data yang menggambarkan seluruh isi sistem basis data. Meskipun kompleksitas banyak terlihat karena banyaknya informasi yang disimpan dalam sistem, tapi tingkatan ini mengharuskan sistem digambarkan dalam struktur yang lebih simpel. Sistem bisa memberikan banyak view tergantung permintaan akses data dari pengguna (Silberschatz, 2001). 2.1.2.2. Data Model Data model adalah sebuah koleksi dari alat konseptual yang berguna untuk mendeskripsikan data, hubungan antar data, data semantics dan konsistensi syarat. Data model memberikan deskripsi dari design sistem basis data pada tingkatan physical, logical dan view dalam abstraksi data (Connolly, 2015, p. 93). Kategori-kategori data model yang digunakan adalah sebagai berikut : • Relational Model Relational Model menggunakan koleksi dari tabel-tabel untuk mewakili data dan hubungan dari data tersebut dengan data yang lain. Setiap tabel akan memiliki kolom yang bersifat unique. Tabel-tabel tersebut akan dinamai relations. Relational Model merupakan salah satu contoh record-based model yang memiliki record berkarakteristik fixed-format (Connolly, 2015, p. 95). 12 • Entity-Relationship Model E-R Model menggunakan koleksi dari entity dan relationship untuk membuat data model. Model ini banyak digunakan untuk mendesign sistem basis data (Connolly, 2015, p. 94). 2.1.2.3. Bahasa Pemrograman Sistem Basis Data Menurut Mark Gillenson, sistem basis data memiliki bahasa sendiri agar programmer atau DBA bisa mengelola sistem tersebut. Bahasa tersebut dibagi menjadi dua yaitu : Data-Definition Language (DDL) dan Data-Manipulation Language. Pada dasarnya, semua bahasa tersebut bukanlah bahasa yang berbeda, tapi perintah yang digunakan setiap bahasa berbeda dari lainnya, dan biasanya menggunakan bahasa SQL (Gillenson, 2011). 2.1.2.3.1. Data-Definition Language (DDL) Bahasa ini digunakan untuk menambahkan properti data tambahan. DDL memiliki fungsi yang bisa digunakan untuk menspesifikasi struktur memori dan metode akses, fungsi ini disebut data storage and definition language. Nilai data yang disimpan dalam sistem basis data harus memenuhi syarat konsistensi yang telah dispesifikasi oleh DDL sebelumnya. Syarat-syarat tersebut adalah; • Syarat Domain Domain dari nilai yang mungkin diassign ke objek harus diasosiasi setiap atribut. Mendeklarasikan atribut tersebut akan menjadi syarat dari nilai yang sudah di assign. • Keutuhan Referensi Akan ada sebuah scenario dimana nilai yang muncul dalam sebuah hubungan akan muncul dalam hubungan lain. Ketika hal ini terjadi, maka syarat yang sudah diassign akan menghentikan pelanggaran referensi tersebut. 13 • Asersi atau tuntutan Tuntutan adalah seluruh kondisi dimana sistem basis data harus memenuhi tuntutan tersebut untuk bisa melanjutkan proses. Ketika tuntutan dibuat, maka sistem akan selalu menguji validasi tuntutan tersebut. • Otorisasi Merupakan syarat yang membedakan pengguna berdasarkan otoritas untuk melakukan suatu proses dalam sistem basis data. 2.1.2.3.2. Data Manipulation Language (DML) DML adalah sebuah bahasa yang memungkinkan pengguna untuk mengakses atau memanipulasi data yang sudah diorganisir oleh data model. Contoh tipe akses adalah : • Pengambilan data dalam sistem basis data • Penambahan data dalam sistem basis data • Penghapusan data dalam sistem basis data • Modifikasi data dalam sistem basis data Sementara, tipe-tipe DML adalah : • Procedural DML DML yang membutuhkan pengguna untuk menspesifikasi data apa saja yang dibutuhkan dan bagaimana cara mendapatkannya • Declarative DML DML yang membutuhkan pengguna untuk menspesifikasi data apa yang dibutuhkan tanpa memberikan petunjuk bagaimana menggunakannya. 14 2.1.2.3.3. Structured Query Language (SQL) Menurut Connolly, sebuah bahasa sistem basis data harus bisa melakukan proses-proses seperti membuat struktur dan relasi dari sistem basis data, menjalankan proses manajemen data seperti penghapusan, modifikasi dan pemasukan data, serta menjalankan query baik yang kompleks maupun sederhana. Structured Query Language atau biasa disebut dengan SQL dibuat untuk memenuhi persyaratan-persyaratan tersebut, terlebih lagi SQL mampu memberikan struktur bahasa perintah dan syntax yang relatif mudah dipelajari, membutuhkan usaha pengguna yang minimal, bersifat portable, dan memiliki standar keragaman bahasa yang memungkinkan untuk berpindah DBMS tanpa mengubah bahasa perintah ataupun query yang ada dalam sistem. SQL adalah bahasa yang dibuat untuk menggunakan relasi untuk mengubah input menjadi output yang diharapkan. Standar ISO dari bahasa SQL sebagai bahasa standar sistem basis data, SQL memiliki 2 komponen yang memenuhi persyaratan tersebut. Syarat-syarat tersebut adalah: • Memiliki DDL yang berfungsi untuk mendefinisikan struktur sistem basis data dan mengatur akses ke datadata yang disimpan dalam sistem. • Memiliki DML yang berfungsi untuk mengambil dan memperbaharui data. 2.2. Database System Data Lifecycle Seiring dengan berkembangnya peran sistem basis data sebagai komponen fundamental dalam sistem informasi dari organisasi yang besar, lifecycle dari sistem basis data dikembangkan menjadi suatu siklus yang tidak jauh berbeda dengan sistem pada umumnya. Proses-proses pada lifecycle tersebut tidak harus dilakukan secara berurutan, tapi banyak mengandung proses-proses repetitif yang disebut dengan feedback loops. 15 Menurut Connolly dan Berg (2015), langkah-langkah yang harus dilakukan dalam lifecycle pengembangan sistem basis data adalah sebagai berikut : • Perencanaan Sistem Perencanaan tahap-tahap pengembangan sistem basis data untuk mencapai efisiensi dan efektivitas yang maksimal. Tahap-tahap yang harus dimasukkan dalam pertimbangan perancangan antara lain: • Identifikasi rencana dan tujuan dalam perancangan sistem dengan kebutuhan sistem menjadi pertimbangan pendukung. • Evaluasi sistem yang sudah ada dan menentukan kekuatan dan kelemahan dari sistem yang sudah ada. • Definisi Sistem Menentukan ruang lingkup sistem basis data. • Analisa Persyaratan Sistem Melakukan pengumpulan dan analisa persyaratan untuk sistem basis data yang akan dibuat. Langkah yang pertama harus dilakukan dalam tahapan ini adalah mencari fakta deskripsi dan detil mengenai bagaimana data digunakan atau dimunculkan. Lalu menentukan spesifikasi yang dibutuhkan oleh sistem basis data yang baru. • Perancangan Design Sistem Basis Data Melakukan design konseptual, logis dan fisik dari sistem basis data. Pendekatan dalam perancangan sistem basis data ada 2, yaitu bottom-up dan top-down. Pendekatan bottom-up dimulai dengan mencari tingkatan paling rendah dalam sistem yaitu entitas lalu dilanjutkan dengan tipe entitas dan diteruskan sampai relasi antar entitas. Sedangkan pendekatan top-down dimulai dengan perancangan model data yang mengandung beberapa entitas tingkat tinggi dan dilanjutkan hingga mendapatkan entitas tingkat rendah, relasi antar entitas dan atribut entitas. • Seleksi DBMS Memilih DBMS yang paling sesuai untuk sistem yang akan dibuat. Langkahlangkah yang harus dilakukan dalam menentukan DBMS yang akan digunakan adalah: 16 • Menentukan Kerangka Acuan Penelitian Seleksi DBMS harus dilakukan berdasarkan tujuan, ruang lingkup dan fungsi dari sistem yang akan dibuat. Kerangka acuan penelitian juga bisa menjadi sebuah tolak ukur dalam kriteria DBMS yang akan dipilih. • Memilih Beberapa Produk DBMS Produk DBMS yang dipilih harus berdasarkan kriteria dari kerangka acuan penelitian yang sudah dibuat. Beberapa produk DBMS dipilih untuk dijadikan perbandingan sebelum memilih DBMS yang akan digunakan untuk sistem yang akan dibuat. • Evaluasi DBMS Melakukan evaluasi produk-produk DBMS yang sudah dipilih sebelumnya. Evaluasi bisa dilakukan dengan menguji definisi data, definisi physical, kemudahan akses, pengaturan transaksi, fungsi-fungsi yang tersedia, perancangan, dan lainlain. • Memilih DBMS Melakukan pemilihan DBMS yang akan digunakan oleh sistem basis data. • Perancangan Design Aplikasi Membuat design untuk antarmuka dari aplikasi dan program yang menggunakan sistem basis data tersebut. • Prototyping Membuat sebuah model kerangka awal dari sistem yang akan dibuat agar pengguna dan pembuat bisa mengevaluasi dan menvisualisasikan fungsifungsi dari sistem tersebut. • Implementasi Membuat definisi data fisik dan program aplikasi. • Konversi Data dan Pemuatan Pemuatan data dari sistem yang lama ke sistem yang baru, serta melakukan konversi format data ke bentuk format data yang dibutuhkan oleh sistem untuk mengolah data tersebut. 17 • Melakukan Tes Sistem basis data tersebut dites untuk mencari malfungsi dalam sistem dan mencocokkan persyaratan sistem dengan sistem yang sudah jadi. • Pemeliharaan Operasional Syarat dari proses ini adalah seluruh komponen dalam sistem basis data telah diimplementasikan. Sistem tersebut akan terus dipantau dan dipelihara. Jika perlu, persyaratan akan ditambahkan ke dalam sistem untuk memenuhi kebutuhan pengguna dalam menjalankan proses bisnis mereka. 2.3. Entity-Relationship Modeling E-R Model menggunakan koleksi dari entity dan relationship untuk membuat data model. Model ini banyak digunakan untuk mendesign sistem basis data (Connolly, 2015, p. 94). 2.3.1. Entity Type Merupakan kumpulan dari representasi dari objek yang ada dalam dunia nyata yang memiliki properti yang sama. Sebuah tipe entitas memiliki sebuah atribut independen yang membedakan sebuah tipe entitas dari yang lain. Bisa berupa fisik atau abstrak. Tipe entitas bisa dibagi menjadi dua, yaitu entitas kuat dan entitas lemah. Entitas kuat adalah sebuah entitas yang tidak bergantung kepada entitas lain. Sedangkan entitas lemah adalah sebuah entitas yang bergantung kepada entitas lain 2.3.2. Relationship Type Ketika sebuah entitas berhubungan dengan satu entitas lain atau lebih, maka hubungan tersebut akan memiliki sifat yang berbeda-beda. Sifat-sifat tersebut adalah: • Relationship Types Kumpulan hubungan antar tipe entitas yang memiliki nama untuk mendeskripsikan fungsi dari hubungan tersebut. • Relationship Occurence Hubungan yang mengindikasikan sebuah jenis hubungan antar entitas yang saling berhubungan. 18 • Derajat Relationship Dalam sebuah hubungan antar entitas, ada yang disebut dengan derajat. Derajat tersebut dibagi berdasarkan jumlah entitas yang terhubung satu sama lain. Derajat-derajat antar entitas adalah; Hubungan Binary Hubungan antara dua tipe entitas. Hubungan Ternary Hubungan antara tiga tipe entitas. Hubungan Quarternary Hubungan antara empat tipe entitas. Hubungan Unary Hubungan antara satu tipe entitas dimana tipe entitas tersebut berpartisipasi lebih dari satu hubungan dengan peran yang berbeda-beda. • Recursive Relationship Hubungan yang terjadi ketika satu entitas dalam sistem memiliki peran lebih dari satu. 2.3.3. Atribut Sebuah sifat atau properti dalam sebuah entitas disebut dengan atribut. Atribut memiliki nilai-nilai yang mewakilkan setiap jenis entitas dan bisa menjadi sebuah bagian kunci dalam entitas. • Attribute Domain Setiap atribut yang dihubungkan dengan beberapa nilai-nilai disebut dengan domain. Domain menunjukkan berapa nilai yang diperbolehkan untuk satu atribut atau lebih. Macammacam domain atribut adalah; Atribut Sederhana Atribut yang terdiri dari satu komponen. Atribut Komposit Atribut yang terdiri dari banyak komponen. 19 Atribut Tunggal Atribut yang memiliki sebuah sifat dari sebuah tipe entitas. Atribut Bernilai Banyak Atribut yang memiliki banyak sifat dari sebuah tipe entitas. Atribut Turunan Atribut yang mewakilkan sebuah nilai yang bisa diturunkan dari atribut yang terhubung. • Keys Keys adalah sebuah atribut yang harus dimiliki oleh sebuah entitas dan melambangkan sifat dari tipe entitas. Macammacam keys adalah: Candidate Key Nilai-nilai dalam atribut yang bisa mewakilkan sebuah tipe entitas. Primary Key Sebuah nilai atribut yang mewakilkan sebuah tipe entitas. Composite Key Sebuah candidate key yang terdiri dari dua atribut atau lebih. 2.3.4. Structural Constraints Didalam sebuah hubungan antar entitas, ada yang disebut dengan multiplicity. Multiplicity adalah sebuah nilai yang memberikan informasi mengenai jumlah kejadian yang mungkin terjadi dengan sebuah entitas yang terhubung. Hubungan yang paling umum untuk terjadi adalah hubungan biner. Macam-macam hubungan biner adalah; One to one (1:1 , 1...1, 1) One to many (1:*, 1..*) Many to many (*:*, *...*) 20 2.4. Normalisasi Menurut Connolly (2015:452), normalisasi adalah sebuah cara untuk menghasilkan sebuah hubungan antar entitas dengan sifat yang sudah tertera di persyaratan aplikasi yang diminta oleh pengguna. Karakteristik dari relasi antar entitas tersebut harus memenuhi syarat-syarat tertentu, syarat-syarat tersebut adalah : • Harus memenuhi jumlah atribut minimal yang diperlukan untuk mendukung persyaratan data dari pengguna • Atribut dengan relasi logical yang dekat harus dalam satu relasi. • Redundancy seminimal mungkin, dengan setiap atribut hanya direpresentasikan sekali saja dalam sistem. Pengecualian terjadi jika ada atribut yang membentuk seluruh atau sebagian dari sebuah foreign key. Bentuk-bentuk normalisasi menurut Connolly dan Begg (2015:466-472), antara lain: 1. Unnormalized Form (UNF) Bentuk ini merupakan bentuk awal dari kumpulan tabel-tabel yang masih memiliki satu kumpulan data yang berulang atau lebih. Cara membuat bentuk UNF adalah dengan memindahkan data dari sumber informasi yang ke dalam tabel dengan format baris dan kolom. 2. First Normal Form (1NF) Merupakan sebuah bentuk normalisasi tahap pertama dimana tidak ada lagi data yang berjumlah lebih dari satu dalam kumpulan data tersebut. 3. Second Normal Form (2NF) Merupakan bentuk dimana tabel-tabel dalam bentuk 1NF sudah memiliki sebuah primary key dan data-data yang bukan merupakan primary key bergantung pada primary key tersebut. 4. Third Normal Form (3NF) Merupakan bentuk dimana tabel-tabel pada bentuk 2NF sudah tidak memiliki relasi yang bersifat transitive serta tidak ada atribut yang bukan bersifat primary key bergantung pada primary key. 21 2.5. Metodologi Perancangan Sistem Basis Data Metodologi perancangan adalah sebuah pendekatan yang menggunakan bantuan prosedur, teknik, alat dan dokumentasi secara terstruktur untuk mendukung dan memudahkan proses design. Metodologi design juga membantu perancang untuk merencanakan, mengatur dan mengevaluasi laporan pengembangan sistem basis data. Proses metodologi perancangan dibagi menjadi 3; conceptual, logical dan physical design. Conceptual design adalah sebuah proses konstruksi data model dari seluruh data yang digunakan oleh seluruh proses bisnis dari suatu sistem. Tahap logical design adalah proses konstruksi data model dari data yang digunakan oleh seluruh proses bisnis dan akan dirancang dalam sebuah model data tertentu. Sedangkan physical design adalah proses menghasilkan deskripsi dari implementasi sistem basis data pada penyimpanan sekunder. Proses physical design menggunakan relasi data, penyusunan file, index, pengamanan serta batasan integritas untuk menghasilkan efisiensi akses ke data yang maksimal. 2.5.1. Conceptual Design Tujuan dari conceptual design adalah untuk membuat model data konseptual yang dibutuhkan oleh pengguna. Langkah-langkah dalam conceptual design adalah mengidentifikasi entitas, mengidentifikasi tipe relasi, mengidentifikasi dan menghubungkan atribut dengan entitas atau tipe relasi, menentukan domain atribut, menentukan atribut candidate, primary dan alternate key, memeriksa redundansi serta validasi model data dengan persyaratan dari pengguna. 2.5.2. Logical Design Tujuan dari logical design adalah untuk menterjemahkan model data conceptual ke dalam model data logical yang sudah ditentukan di persyaratan dari pengguna. Langkah-langkah dalam menghasilkan model data logical adalah mendapatkan relasi dari entitas yang sudah ada di model data conceptual, relasi bisa terbagi menjadi banyak kategori, kategori tersebut 22 mencakup relasi one-to-many (1:*), relasi one-to-one (1:1), many-to-many (*:*), relasi superclass/subclass dan atribut multi-valued. Langkah selanjutnya untuk menciptakan model data logical adalah validasi relasi menggunakan normalisasi, validasi relasi dengan proses transaksi pengguna di scenario nyata, pengecekan batasan integritas dan melakukan tinjauan kembali dengan sang pengguna. 2.5.3. Physical Design Seperti yang sudah dijelaskan diatas, tujuan dari physical design adalah untuk menghasilkan deskripsi dari implementasi sistem basis data pada penyimpanan sekunder serta mencapai efisiensi dan efektivitas dari akses data dengan menggunakan relasi data, penyusunan file, index, pengamanan serta batasan integritas. Langkah-langkah yang harus dilakukan untuk menciptakan sebuah model data physical adalah menerjemahkan model data logical ke dalam DBMS yang sudah ditentukan, hal ini bisa dicapai dengan merancang relasi dasar, merancang representasi dari data yang dimaksud serta merancang batasan umum dari DBMS tersebut. Lalu, perancang harus merancang indeks dan penyusunan data dengan menganalisa transaksi yang dilakukan oleh pengguna, memilih cara penyusunan data dan indeks serta memperkirakan keperluan ukuran tempat penyimpanan. Langkah selanjutnya adalah merancang user view, merancang mekanisme pengamanan, melakukan pengaturan redundancy dalam sistem serta memantau dan mengatur sistem operasi yang dibutuhkan untuk menjalankan sistem. 2.6. Data Flow Diagram Data Flow Diagram adalah sebuah diagram yang menggambarkan bagaimana data-data yang ada dalam sebuah sistem bergerak dan disimpan dalam sistem. Seluruh atribut harus ada dalam tipe entitas. Diagram ini digunakan sebagai standar konsistensi dan keutuhan suatu sistem. 23 Seluruh atribut dalam sistem harus muncul dalam tipe entitas masing-masing dan digambarkan dalam lingkungan yang disebut sistem. Atribut tersebut akan terlihat seperti aliran data didalam sistem perusahaan (Connolly, 2015). Menurut Dennis, Wixom dan Roth (2012), elemen-elemen pada DFD adalah sebagai berikut: • Proses Sebuah proses adalah sebuah aktivitas atau fungsi yang dilakukan untuk sebuah atau beberapa alas an bisnis. • Aliran Data Sebuah keeping data atau kumpulan logical dari beberapa informasi. Setiap aliran data harus dideskripsikan menggunakan kata benda. • Data Store Sebuah tempat dimana kumpulan data tersebut disimpan. • Entitas Eksternal Entitas eksternal adalah seseorang, sebuah organisasi atau unit organisasi yang bersifat eksternal terhadap sistem, akan tetapi berinteraksi dengan sistem. 2.7. Teori yang Terkait Sistem Basis Data Berbasis Web dan Klinik 2.7.1. Sistem Web Sistem web adalah sebuah sistem berbasis web yang menggunakan teknologi web internet sebagai fondasi untuk mengirim informasi dan jasa, baik ke pengguna maupun ke aplikasi atau sistem informasi yang lain. Sistem web biasanya memiliki tujuan untuk mengolah dan mengatur data menggunakan prinsip berbasis Hyptertext. Dalam beberapa tahun terakhir, jasa web sudah banyak digunakan sebagai fondasi untuk membuat aplikasi. Web dianggap sebagai sebuah platform memungkinkan sebuah aplikasi bisa digunakan kembali, memudahkan data yang berada di dalam sistem web berkomunikasi dengan data lain di internet atau intranet selama terhubung dalam host yang sama. 24 Standar pendekatan yang digunakan dalam pengembangan sistem web adalah XML, SOAP, WSDL dan UDDI. Keuntungan dalam menggunakan web sebagai fondasi dalam pengembangan sebuah sistem informasi adalah sistem web memiliki karakteristik platform independence, simplicity, cross-platform support, memiliki GUI, standardisasi serta akses jaringan yang transparan. Sementara itu, kerugian dalam menggunakan web sebagai fondasi dalam pengembangan sebuah sistem informasi adalah biaya yang besar, kurangnya keamanan, batas fungsi dari HTML, bandwidth, dan tergolong sebagai sebuah teknik yang masih baru. Seperti yang dijelaskan diatas, fungsi HTML sangatlah terbatas, maka diciptakan sebuah teknik penulisan bahasa yang disebut scripting. Bahasabahasa yang digunakan dalam scripting memungkinkan terciptanya sebuah fungsi baru dalam HTML. Teknik ini memungkinkan beberapa proses bisa ditulis berdasarkan logika bahasa-bahasa pemrograman yang lain seperti loop, pernyataan bersyarat dan operasi matematika. Salah satu bahasa yang digunakan dalam teknik scripting adalah Hypertext Preprocessor atau biasa disebut dengan PHP. Hypertext Proprocessor (PHP) adalah sebuah bahasa scripting yang bertujuan untuk memungkinkan perancang web untuk menulis beberapa halaman dinamis sesingkat mungkin. Salah satu keuntungan memakai PHP adalah PHP memiliki sifat extensibility serta adanya modul extension yang sudah diberikan dalam PHP. Bahasa ini banyak digunakan karena banyaknya server yang mendukung format PHP, seperti Apache HTTP Server. 2.7.2. Framework Menurut Dirk Riehle, dalam pemrograman komputer, framework perangkat lunak adalah sebuah abstraksi dimana sebuah perangkat lunak melakukan pengadaan fungsi umum yang bisa dimodifikasi dengan memilih beberapa tambahan kode. Biasanya, sebuah framework merupakan sebuah bagian perangkat lunak yang universal, mudah dipakai lagi untuk membantu pengembangan sebuah aplikasi perangkat lunak. (Riehle, 2000). 25 2.7.2.1. CodeIgniter CodeIgniter adalah sebuah framework aplikasi berbasis web yang bersifat open source dan bertujuan untuk membuat aplikasi berbasis web menggunakan bahasa pemrograman PHP. 2.7.3. Metodologi Agile Menurut Valacich, George dan Hoffer (2015), metodologi Agile adalah sebuah kumpulan metodologi yang memiliki karakteristik siklus pendek yang berulang dan pengujian program yang banyak. Selain itu, metodologi ini memerlukan keterlibatan pengguna yang banyak untuk menentukan, memprioritaskan dan verifikasi syarat sistem. Prinsip yang dimiliki oleh metodologi ini adalah lebih fokus terhadap adaptasi dibandingkan rencana awal. Lalu lebih mementingkan sumber daya manusia yang tersedia dibandingkan peran yang sudah ditentukan sebelumnya. Serta proses perancangan yang dilakukan lebih mudah beradaptasi dibandingkan metode yang lain. 2.7.3.1. eXtreme Programming eXtreme Programming adalah salah satu metode yang tergabung dalam metodologi agile. eXtreme Programming biasa dikenal dengan karakteristiknya sebagai metode yang memiliki siklus perancangan yang pendek, pendekatan perencanaan incremental, fokus terhadap pengujian yang dilakukan oleh pengguna, dan pendekatan perancangan yang sangat adaptif. Kelebihan dalam menggunakan metode eXtreme Programming adalah memiliki komunikasi yang lebih baik dalam sesama perancang sistem, memiliki tingkat produktivitas yang tinggi, kualitas kode yang lebih tinggi dan kedisiplinan yang tinggi antara proses coding dan pengujian program. (Valacich, George, & Hoffer, 2015). 26 2.8. Analisa Produk Sejenis 2.8.1. Pembuatan Sistem Informasi Klinik Rawat Inap Prima Husada Widoro Pacitan Berbasis Website Penelitian yang pertama dilakukan diambil dari jurnal yang berjudul “Pembuatan Sistem Informasi Klinik Rawat Inap Prima Husada Widoro Pacitan Berbasis Website” yang disusun pada tahun 2011 oleh mahasiswa Universitas Surakarta. Sinta Susilowati dan Berliana Kusuma Riasti (2011). Dalam jurnal ini, penulis jurnal membatasi ruang lingkup dalam pembahasannya sebagai; 1. Tempat penelitian ini dilakukan pada Klinik Rawat Inap Prima Husada Widoro Pacitan. 2. Sistem ini dirancang dan dibuat dengan menggunakan bahasa pemrograman PHP dan MySQL. Dari hasil penelitian bisa diambil kesimpulan bahwa ada beberapa penambahan fitur yang bisa diterapkan untuk pihak Klinik Rawat Inap Prima Husada. Salah satunya adalah adanya sebuah fungsi yang bisa mendata transaksi antara pihak klinik dengan pasien. Fungsi tersebut kami anggap perlu agar menghindari terjadinya salah tulis atau kehilangan yang bisa terjadi kepada data transaksi. Selain itu, adanya fitur pendataan stok obat juga diperlukan untuk menghindari terjadinya human error yang mungkin terjadi dalam proses pendataan stok obat. Lalu, penulis juga memberikan saran untuk menyimpan data transaksi antara pihak klinik dengan supplier obat yang ada dalam apotek klinik. Fungsi ini bertujuan untuk menyimpan informasi supplier-supplier yang selama ini bekerja sama dengan klinik agar pihak klinik bisa mengevaluasi transaksi yang terjadi selama ini. 2.8.2. Analisis dan Perancangan Sistem Informasi Manajemen Berbasis Web Pada Rumah Sakit Bhayangkara Brimob Kelapa Dua Penelitian yang pertama dilakukan diambil dari jurnal yang berjudul “Pembuatan Sistem Informasi Klinik Rawat Inap Prima Husada Widoro Pacitan Berbasis Website” yang disusun pada tahun 2013 oleh mahasiswa BINUS University. Faizal Adli, Fabio Pagalan 27 dan Syaiful Huda (2013). Dalam jurnal ini, penulis jurnal membatasi ruang lingkup dalam pembahasannya sebagai; 1. Membuat sebuah aplikasi sistem informasi manajemen berbasis web pada Rumah Sakit Bhayangkara Brimob kelapa dua yang dapat digunakan untuk pendaftaran pasien, memeriksa medical record, perhitungan kasir dan terdapat fitur admin. 2. Mencetak laporan dari hasil penyimpanan dan pendistribusian informasi kegiatan pemeriksaan kesehatan dari pasien Rumah Sakit Bhayangkara Brimob. 3. Aplikasi ini digunakan untuk pihak rumah sakit dan pasien. Dari penelitian jurnal yang penulis sudah lakukan, kami mendapatkan ide fitur tambahan untuk sistem yang telah dibuat oleh penulis jurnal. Fitur tersebut adalah fitur untuk menyimpan informasi mengenai stok obat dan transaksi antara pihak klinik dengan supplier obat. Alasan untuk penambahan fitur tersebut adalah untuk mencegah terjadinya human error yang mungkin terjadi serta sebagai evaluasi pihak klinik mengenai stok obat maupun supplier obat yang selama ini sudah bekerja sama dengan pihak klinik. 28