BAB 2 TINJAUAN PUSTAKA Dalam bab tinjauan pustaka ini akan diuraikan secara ringkas mengenai hal-hal yang berkaitan dengan basis data dan topik pendukung analisis dan perancangan aplikasi basis data sistem penjualan dan pembelian pada PT. Karunia Lestari Xpresif. Berikut ringkasannya: 2.1 Teori yang berkaitan dengan Basis Data Dalam tinjauan pustaka yang berhubungan dengan basis data akan diuraikan secara ringkas antara lain: data, basis data, sistem manajemen basis data (DBMS), bahasa basis data (Database Language), siklus basis data (Database System Development Lifeycle), model relasional, diagram hubungan entitas (Entity Relationship Diagram), normalisasi, kemanan basis data. 2.1.1 Pengertian Data Menurut Hoffer, Prescott & Topi (2009, p46), data adalah sebuah fakta tentang objek dan kejadian yang dapat disimpan dalam sebuah media komputer. Data dibagi menjadi 2 tipe data, yaitu yang terstruktur dan tidak terstruktur. 2.1.2 Pengertian Basis Data Menurut Indrajani (2009, p2), Basis data merupakan suatu kumpulan data yang berhubungan secara logis dan deskripsi data tersebut, yang dirancang untuk memenuhi informasi yang dibutuhkan oleh suatu organisasi. Menurut pendapat Connolly & Begg (2005, p15), basis data adalah kumpulan data yang saling berhubungan secara logika dan dibuat agar memenuhi kebutuhan informasi dari suatu organisasi. Basis data berdiri secara tunggal yang menyimpan data dalam jumlah yang besar dan dapat digunakan secara terus menerus oleh banyak pengguna. Bukan sebagai file yang tidak berhubungan dan redundan melainkan seluruh data terintegrasi dengan jumlah duplikasi yang sangat minimum. 9 10 Sedangkan menurut Hoffer, Prescott & Topi (2009, p46), basis data didefinisikan sebagai kumpulan data yang telah memiliki relasi secara terorganisir, dan dapat memiliki berbagai ukuran dan juga kompleksitas. 2.1.3 Database Management System (DBMS) 2.1.3.1 Pengertian DBMS Menurut Connolly & Begg (2005, p16), Database Management System (DBMS) memungkinkan adalah sebuah pengguna sistem dapat perangkat mendifinisikan, lunak yang menciptakan, memelihara dan mengkontrol akses ke basis data. Sedangkan menurut Hoffer, Prescott & Topi (2009, p49), Database Management System (DBMS) adalah sebuah sistem perangkat lunak yang digunakan untuk membuat, menjaga, dan menyediakan akses kontrol ke basis data pengguna. 2.1.3.2 Keuntungan DBMS Menurut Connolly & Begg (2005, p26) kelebihan yang terdapat pada DBMS, yaitu: 1. Mengontrol data yang berulang (Control of data redundancy) 2. Data yang konsisten (Data consistency) 3. Semakin banyak informasi yang didapatkan data yang sama (More information from the same amount of data) 4. Data yang dibagikan (Sharing of data) 5. Meningkatkan integritas data (Improved data integrity) 6. Meningkatkan keamanan data (Improved security) 7. Penetapan standarisasi (Enforcement of standards) 8. Pengurangan biaya (Economoy of scale) 9. Mempermudah pengoperasian data (Balance of conflicting requirements) 10. Meningkatkan pengaksesan data (Improved data accessibility and responsiveness) 11. Menambah produktivitas (Increased productivity) 12. Meningkatkan pemeliharaan data yang maintenance through data independence) independen (Improved 11 13. Menambah konkurensi (Increased concurrency) 2.1.3.3 Kerugian DBMS Menurut Connolly & Begg (2005, p29) ada 7 kekurangan yang terdapat pada DBMS, yaitu: 1. Memiliki sistem yang kompleks (Complexity) 2. Memiliki ukuran yang besar (Size) 3. Harga DBMS memiliki harga yang bervariasi tergantung fungsi dan kebutuhannya (Cost of DBMSs) 4. Penambahan biaya karena membutuhkan perangkat keras lainnya (Additional hardware costs) 5. Penambahan biaya konversi (Costs of conversion) 6. DBMS dirancang untuk dapat diakses lebih dari satu aplikasi sehingga performanya menurun (Performance) 7. Kegagalan dalam DBMS mengakibatkan operasi yang tidak berjalan (Higher impact of a failure) 2.1.3.4 Fungsi DBMS Menurut Connolly & Begg (2005, p48) DBMS memiliki 10 fungsi yang sangat berguna, yaitu: 1. Menyimpan data, pengambilan data, dan memperbaharui data (Data storage, retrieval, and update) 2. Catalog data yang dapat di akses secara mudah (A user-accesible catalog) 3. Laporan transaksi (Transaction support) 4. Layanan control konkurensi (Concurrency control services) 5. Layanan untuk pemulihan basis data jika terjadi kerusakan (Recovery services) 6. Layanan untuk memberikan hak akses (Authorization services) 7. Dukungan data terhadap perangkat lunak (Support for data communication) 8. Layanan data yang terintegritas (Integrity services) 9. Layanan untuk mendukung data yang independent (Services to promote data independece) 12 10. Layanan utilitas (Utility services) 2.1.3.5 Komponen – Komponen DBMS Menurut Connolly & Begg (2005, p19) DBMS memiliki 5 komponen penting yaitu: 1. Perangkat Keras (Hardware) 2. Perangkat Lunak (Software) 3. Data 4. Prosedur 5. Manusia 2.1.4 Database Languages 2.1.4.1 Data Definition Language (DDL) Menurut Connolly & Begg (2005, p40), DDL adalah sebuah bahasa yang memungkinkan seorang DBA (Database Administrator) atau pengguna untuk mendeskripsikan dan menamai sebuah entitas, atribut, dan hubungan yang dibutuhkan untuk sebuah aplikasi dengan menggunakan asosiasi yang terintegrasi dan batasan keamanan. Beberapa pernyataan pada DDL adalah: - CREATE TABLE untuk membuat tabel dengan mengidentifikasikan tipe data pada tiap kolom yang ada. - DROP TABLE untuk menghapus tabel beserta semua data yang berada didalam tabel. - ALTER TABLE untuk menambah atau menghapus kolom pada suatu tabel dan constraint. 2.1.4.2 Data Manipulation Language (DML) Menurut Connolly & Begg (2005, p41), DML adalah sebuah bahasa yang menyediakan seperangkat operasi untuk mendukung memanipulasi data didalam basis data. Operasi DML pada umumnya adalah: - Memasukkan data baru kedalam basis data. (INSERT) - Memodifikasi data yang disimpan didalam basis data. (UPDATE) 13 - Mengambil data yang terdapat didalam basis data. (SELECT) - Menghapus data yang terdapat didalam basis data. (DELETE) Menurut Connolly & Begg (2005, p41), DML dibedakan menjadi dua tipe, yaitu: - Prosedural Sebuah bahasa yang memungkinkan pengguna untuk memberitahukan system data apa yang dibutuhkan dan bagaimana untuk mengambil data. - Non-Prosedural Sebuah bahasa yang memungkinkan pengguna untuk menyatakan apa yang dibutuhkan data daripada bagaimana data itu harus diambil. 2.1.5 Database System Development Lifecycle Menurut Connolly dan Begg (2005, p282), Sistem basis data adalah komponen fundamental dari organisasi yang besar dan memiliki sistem informasi yang luas. Pengembangan siklus hidup sistem basis data secara inheren terkait dengan siklus hidup sistem informasi . Tahapan siklus pembangunan sistem basis data ditunjukkan pada gambar 2.1. Untuk sistem database dalam skala kecil dengan sejumlah kecil pengguna , siklus pengembangan basis data tidak perlu menjadi sangat kompleks . Namun, ketika merancang media untuk sistem basis data besar dengan puluhan hingga ribuan pengguna yang menggunakan ratusan query dan program aplikasi , siklus pengembangan basis data dapat menjadi sangat kompleks. Sub bab ini akan terkonsentrasi pada kegiatan yang diasosiasikan dengan perkembangan media untuk sistem basis data yang besar . Pada bagian berikut kita menggambarkan kegiatan utama yang terkait dengan setiap tahap dari sistem database pembangunan siklus hidup secara lebih rinci. 14 Gambar 2.1 Database System Development Lifecycle 15 Tabel 2.1 Database System Development Lifecycle TAHAPAN SIKLUS FUNGSI UTAMA Database Planning Merencanakan bagaimana dari siklus direalisasikan langkah database secara dapat efisien dan efektif. System Definition Menspesifikasikan ruang sistem termasuk database, lingkup sudut pandang utama pengguna, pengguna itu sendiri, dan area aplikasi. Requirements Collection Analysis and Mengumpulkan dan menganalisis kebutuhan sistem basis data yang baru. Database Design Perancangan basis data konseptual, logikal, dan fisikal. DBMS Selection (optional) Memilih DBMS yang paling sesuai dengan sistem basis data. Application Design Merancang antarmuka pengguna dan program aplikasi yang menggunakan dan memproses basis data. Prototyping (Optional) Membangun model kerja dari sistem database, yang memungkinkan para desainer atau pengguna untuk memvisualisasikan dan mengevaluasi bagaimana sistem final akan terlihat dan berfungsi. Implementation Membuat definisi basis data fisikal dan program aplikasi. Data Conversion and Loading Mengambil data dari sistem lama ke sistem baru dan jika memungkinkan mengubah aplikasi yang ada untuk 16 dijalankan pada basis data baru. Testing Sistem Basis Data diuji dan divalidasi terhadap persyaratan yang ditentukan oleh pengguna. Operational Maintenance Sistem basis dilaksanakan. data sepenuhnya Sistem ini terus dipantau dan dipelihara. Bila perlu, jika ada persyaratan baru juga dimasukkan ke dalam sistem basis data melalui tahap sebelumnya. Berikut ini adalah penjelasan mengenai tahapan database lifecycle : 1. Perencanaan Basis Data (Database Planning) Menurut Connolly dan Begg (2005, p286) Perencanaan basis data adalah kegiatan pengelolaan yang memungkinkan tahapan database system lifecycle untuk direalisasikan secara efisien dan efektif. Database planning harus terintegrasi dengan keseluruhan strategi sistem informasi organisasi. Ada tiga isu utama yang terlibat dalam merumuskan strategi sistem informasi, yaitu: • Identifikasi rencana dan tujuan perusahaan dengan menentukan kebutuhan sistem informasi. • Evaluasi sistem informasi saat ini untuk menentukan kekuatan dan kelemahan yang ada. • Penilaian terhadap peluang teknologi informasi yang dapat menghasilkan keuntungan yang kompetitif. Langkah pertama dalam perencanaan basis data adalah untuk mendefinisikan mission statement dalam sistem basis data . Mission statement mendefinisikan tujuan utama dari sistem basis data. Setelah itu langkah selanjutnya adalah mengidentifikasi mission objectives. Mission objectives harus mengidentifikasi tugas tugas tertentu yang didukung oleh sistem basis data. Perencanaan database juga harus mencakup pengembangan standar yang mengatur bagaimana data akan dikumpulkan , bagaimana 17 format harus ditentukan , dokumentasi apa yang dibutuhkan , serta bagaimana desain dan implementasi harus dilanjutkan. 2. Definisi Sistem (System Definition) Menurut Connolly dan Begg (2005, p285), Menjelaskan ruang lingkup dan batas-batas dari aplikasi database dan pandangan pengguna utama (user view). User View mendefinisikan apa yang dibutuhkan sistem basis data dari perspektif peran pekerjaan tertentu (seperti Manager atau Supervisor) atau bidang aplikasi enterprise (seperti pemasaran, personalia, atau kontrol stok). Sebuah sistem basis data dapat memiliki satu atau lebih user view . Mengidentifikasi user view merupakan aspek yang amat penting untuk mengembangkan sistem basis data karena membantu untuk memastikan bahwa tidak ada pengguna utama sistem basis data yang dilupakan ketika mengembangkan persyaratan untuk sistem basis data baru . Sebuah tampilan pengguna mendefinisikan apa yang dibutuhkan dari sistem basis data dalam hal data yang akan diadakan dan transaksi yang akan dilakukan pada data ( dengan kata lain , apa yang pengguna akan lakukan dengan data). 3. Pengumpulan dan Analisis Data (Requirement Collection and Analysis) Proses mengumpulkan dan menganalisis informasi dari sebuah organisasi, dan menggunakan informasi ini untuk mengidentifikasi persyaratan untuk sistem basis data baru. Ada beberapa cara yang digunakan dalam tahap ini menurut Connolly dan Begg (2005, p287), yaitu: 1. Pendekatan Terpusat ( Centralized Approach) Kebutuhan untuk tiap pandangan pengguna disatukan menjadi satu set kebutuhan untuk aplikasi basis data. Umumnya pendekatan ini dipakai jika basis datanya tidak terlalu kompleks. 2. Pendekatan integrasi view (View Integration Approach) 18 Kebutuhan untuk setiap pandangan pengguna dipisahkan. Model data menggambarkan setiap pandangan pengguna yang telah dibuat dan kemudian disatukan selama desain basis data. 4. Perancangan Basis Data (Database Design) Perancangan basis data adalah proses menciptakan rancangan yang akan mendukung pernyataan misi perusahaan dan misi objektif untuk sistem basis data yang diperlukan. Ada dua pendekatan utama dalam perancangan basis data : a. Pendekatan bottom up Pendekatan bottom-up dimulai pada tingkat dasar atribut (properti dari entitas dan relasi), lalu menganalisis hubungan antara atribut, kemudian dikelompokkan ke dalam satu relasi yang merepresentasikan tipe dari entity-entity dan hubungannya. Pendekatan bottom-up cocok untuk merancang basis data sederhana dengan jumlah atribut yang relatif kecil dan biasanya diilustrasikan melalui konsep normalisasi. b. Pendekatan top down Sebuah strategi yang lebih tepat untuk merancang database yang kompleks adalah dengan menggunakan pendekatan top-down. Pendekatan ini dimulai dengan pengembangan model data yang berisi sedikit entitas dan relasi tingkat tinggi dan kemudian menerapkan perbaikan top-down secara berturut-turut untuk mengidentifikasi entitas tingkat rendah, relasi, dan atribut yang terkait. Pendekatan topdown diilustrasikan menggunakan konsep Entity-Relationship (ER) model, dimulai dengan identifikasi entitas dan relasi antara entitas. Menurut Connolly dan Begg (2005, p293), Perancangan basis data dibagi ke dalam tiga tahapan utama, yaitu : a. Perancangan Basis Data Konseptual (Conceptual Database Design) Perancangan basis data konseptual adalah proses pembangunan sebuah model dari data yang digunakan dalam suatu perusahaan, yang tidak bergantung pada semua pertimbangan fisikal. Model data dibangun dengan menggunakan informasi yang didokumentasikan 19 dalam persyaratan spesifikasi pengguna. Perancangan basis data konseptual tidak bergantung pada DBMS, program aplikasi, bahasa pemrograman, platform perangkat keras, atau pertimbangan fisikal lainnya. Tahapan yang dilakukan dalam perancangan basis data konseptual dapat diuraikan sebagai berikut (Connoly dan Begg, 2005, p442-458) : a. Menentukan tipe entitas yang dibutuhkan Menentukan objek utama yang menarik perhatian user. b. Menentukan tipe relationship Mengidentifikasi hubungan-hubungan yang penting antar tipe entitas yang telah diidentifikasi. c. Menentukan dan menghubungkan atribut dengan entitas (relationship) Menentukan atribut-atribut apa saja yang terdapat dalam suatu entitas. d. Menentukan atribut domain Menentukan domain pada setiap atribut yang ada di dalam model data konseptual lokal. e. Menentukan atribut candidate key dan primary key Menentukan candidate key dari suatu entitas yang kemudian akan dipilih sebuah primary key dari candidate key yang ada. f. Mempertimbangkan penggunaan enhanced modeling concepts Mempertimbangkan perlu tidaknya menggunakan konsep model spesialisasi atau generalisasi, agregasi, dan composition. g. Memeriksa model untuk redundansi Memeriksa model untuk menemukan adanya redundansi dalam model. h. Validasi model lokal dengan transaksi user Memeriksa apakah model konseptual lokal sudah dapat memenuhi segala transaksi yang dilakukan user, jika masih ada transaksi yang tidak dapat dilakukan secara manual maka perlu dilakukan perbaikan terlebih dahulu. 20 i. Review model data konseptual lokal dengan user Melakukan pemeriksaan ulang dengan user untuk memastikan apakah model konseptual ini sudah selesai. b. Perancangan Basis Data Logikal (Logical Database Design) Menurut Connolly dan Begg, (2005, p294), Perancangan basis data logikal adalah proses pembangunan sebuah model dari informasi yang digunakan dalam suatu perusahaan berdasarkan pada model data yang spesifik, tetapi tidak bergantung pada DBMS tertentu dan pertimbangan fisikal lainnya. Tahapan yang dilakukan dalam perancangan basis data logikal adalah (Connolly dan Begg, 2005, p462-491): Membangun dan memvalidasi data model logikal. Menerjemahkan data model konseptual menjadi data model logikal dan memvalidasi model untuk memeriksa bahwa secara struktural benar dan mampu mendukung transaksi yang dibutuhkan (Connolly dan Begg, 2005, p462). Langkah-langkah yang akan dilakukan adalah sebagai berikut : a. Menghilangkan fitur-fitur yang tidak sesuai dengan model Relasional Membuat model data logikal dan relasinya untuk memunculkan lagi entitas, relasi, dan atribut – atribut yang telah diindentifikasi pada tahap sebelumnya untuk diturunkan. b. Menurunkan relasi untuk data model logikal Membuat relasi data model logikal lokal untuk merepresentasikan entitas, relationship, dan atribut yang telah diidentifikasi. c. Memvalidasi relasi-relasi menggunakan normalisasi Memvalidasi model data logikal global dengan menggunakan teknik normalisasi dan meyakinkan relasi tersebut mendukung kebutuhan transaksi yang ada. d. Memvalidasi relasi melalui transaksi user Memeriksa relasi yang telah dibuat pada tahap sebelumnya apakah transaksi ini mendukung transaksi user, dan untuk 21 memastikan tidak ada kesalahan yang dibuat selama membuat relasi-relasi. e. Mendefinisikan batasan integritas (constraint) Dilakukan untuk menjaga agar basis data tetap konsisten. Data yang disimpan ke dalam sebuah basis data harus valid dan konsisten. f. Melakukan pemeriksaan model data kembali dengan user Menentukan apakah model ini sudah sesuai dengan representasi perusahaan. g. Menggabungkan model data logikal lokal ke dalam model logikal global yang menggambarkan perusahaan Menggabungkan entitas pada model data lokal yang sama, memasukkan hubungan yang unik dari setiap model data lokal, melakukan pemeriksaan untuk entitas yang hilang, foreign key, dan batasan integritas, kemudian menggambarkan global ER, dan memperbaharui dokumentasi. h. Menentukan perubahan di masa mendatang Menentukan apakah akan sering terjadi perubahan yang drastis di masa yang akan datang dan menilai apakah model data logikal global ini dapat mengakomodasi perubahan yang terjadi. c. Perancangan Basis Data Fisikal (Physical database design) Menurut Connolly dan Begg, (2005, p496). Perancangan basis data fisikal adalah proses menghasilkan deskripsi dari implementasi basis data dalam penyimpanan sekunder yang menjelaskan relasi dasar, organisasi file, dan penggunaan indeks untuk mencapai pengaksesan data yang efisien dan hal lain yang berhubungan dengan batasan integritas dan masalah keamanan Secara umum, tujuan utama dari perancangan database fisikal adalah untuk menggambarkan bagaimana kita berniat untuk fisik menerapkan desain database logikal. Model relasional melibatkan: • menciptakan satu set tabel relasional dan constraints pada tabel dari informasi yang disajikan dalam model data logikal; 22 • mengidentifikasi struktur penyimpanan yang spesifik dan metode akses data untuk mencapai kinerja yang optimal untuk sistem basis data. • merancang perlindungan keamanan untuk sistem. Perancangan basis data fisikal adalah proses menghasilkan deskripsi dari implementasi basis data dalam secondary storage. Perancangan ini menjelaskan basis relasi, organisasi file, dan penggunaan indeks untuk mencapai pengaksesan data yang efisien dan hal lain yang berhubungan dengan batasan integritas dan masalah keamanan (Connolly dan Begg, 2005, p496). Tahapan yang dilakukan pada perancangan basis data fisikal adalah (Connolly dan Begg, 2005, p496-497): Menerjemahkan model data logikal untuk target DBMS. Dilakukan untuk menghasilkan skema basis data relasional dari model data logikal bahwa dapat diimplementasikan di dalam DBMS yang diinginkan. (Connolly dan Begg, 2005, p497). Adapun langkahlangkah yang dilakukan adalah sebagai berikut: a. Merancang relasi-relasi dasar Menentukan bagaimana merepresentasikan relasi dasar yang telah didentifikasikan di dalam model data logikal global ke dalam DBMS. b. Merancang representasi dari data yang diturunkan Menentukan bagaimana merepresentasikan beberapa data yang diturunkan dalam model data logikal data logikal global ke dalam DBMS. c. Merancang batasan perusahaan Merancang representasi fisikal Dilakukan untuk menentukan organisasi file yang optimal untuk menyimpan hubungan dasar dan indeks yang diperlukan untuk mencapai kinerja yang dapat diterimam yaitu cara dimana relasi dan tuple akan diselenggarakan pada penyimpanan sekunder (Connolly dan Begg, 2005, p501). Adapun langkah-langkah yang akan diuraikan adalah sebagai berikut : 23 a. Menganalisa transaksi Bertujuan untuk memahami fungsi dari transaksi-transaksi yang akan berjalan pada basis data dan menganalisa transaksi yang penting. b. Memilih organisasi file Bertujuan untuk menentukan organisasi file yang efisien pada masingmasing base relation. c. Memilih indeks-indeks Memilih dan menentukan dimana saja indeks harus dibuat untuk meningkatkan performa dari sistem. d. Memperkirakan kebutuhan disk space yang dibutuhkan oleh basis data. Merancang user view Merancang user view dan menentukan bagaimana cara mengimplementasikan masing-masing user view. Merancang mekanisme keamanan Merancang mekanisme keamanan untuk melindungi data agar tidak dapat diakses oleh pihak yang tidak berwenang termasuk merancang kontrol akses yang dibutuhkan pada relasi dasar. Mempertimbangkan pengenalan redundansi terkontrol Melakukan proses denormalisasi yang ditujukan untuk membiarkan dan mengontrol redundansi pada model data logikal untuk meningkatkan performa sistem secara keseluruhan. Mengawasi dan menyempurnakan sistem operasional Memonitor sistem operasional untuk mengidentifikasi dan memecahkan semua permasalahan yang terjadi setelah perancangan dan mengimplementasi kebutuhan yang baru atau perubahan kebutuhan. 24 5. Pemilihan DBMS (DBMS Selection) (optional) Menurut Connolly dan Begg (2005,p295), DBMS selection merupakan suatu pemilihan suatu DBMS yang tepat untuk mendukung sistem basis data. DBMS selection digunakan untuk memilih sistem yang memenuhi persyaratan saat ini dan masa depan perusahaan, seimbang terhadap biaya-biaya yang meliputi pembelian produk DBMS, perangkat lunak tambahan / perangkat keras yang dibutuhkan untuk mendukung sistem database, dan biaya yang terkait dengan changeover dan pelatihan staf. Pendekatan sederhana untuk seleksi adalah memeriksa fitur DBMS terhadap kebutuhan. Dalam memilih produk DBMS baru, ada kesempatan untuk memastikan bahwa proses seleksi direncanakan dengan baik, dan sistem memberikan manfaat nyata bagi perusahaan. Dalam memilih DBMS ada beberapa hal yang perlu diperhatikan : - Menentukan kerangka acuan Menetapkan kerangka acuan untuk pemilihan DBMS, menyatakan tujuan dan ruang lingkup penelitian, dan tugas-tugas yang perlu dilakukan. Dokumen ini juga dapat mencakup deskripsi dari kriteria (berdasarkan persyaratan spesifikasi pengguna ) yang akan digunakan untuk mengevaluasi produk DBMS, daftar awal produk(mungkin), dan semua kendala yang diperlukan dan rentang waktu untuk penelitian. - Shortlist two or three products Pertimbangan kriteria menjadi penentu kesuksesan implementasi yang digunakan untuk mengahasilkan daftar awal produk DBMS untuk evaluasi. Sebagai contoh, keputusan untuk memilih DBMS tergantung pada anggaran yang tersedia, tingkat dukungan vendor, kompatibilitas dengan perangkat lunak, dan ketentuan menjalankan produk di perangkat keras tertentu. Membuat tolak ukur untuk membandingkan kinerja dua atau tiga produk DBMS. Setelah studi awal fungsi dan fitur dari produk DBMS, langkah selanjutnya adalah identifikasi produk tersebut. - Evaluasi produk Ada berbagai fitur yang dapat digunakan untuk mengevaluasi produk DBMS . Evaluasi produk DBMS dapat dikelompokkan berdasarkan definisi data , 25 definisi fisik, aksesibilitas , penanganan transaksi , utilitas , pengembangan , dan fitur lainnya. 6. Perancangan Aplikasi (Application Design) Perancangan aplikasi merupakan suatu tahap perancangan antar muka pemakai (user interface), program aplikasi yang digunakan, dan proses basis data (Connolly dan Begg, 2005, p299). Ada 2 (dua) aspek dalam perancangan aplikasi yaitu : 1. Perancangan transaksi (transaction design) Merupakan tindakan ataupun serangkaian tindakan yang dilakukan oleh satu pengguna ataupun program aplikasi, yang mengakses atau mengubah isi dari basis data (Connolly, 2005, p300). Tujuan dari perancangan dan transaksi adalah untuk mendefinisikan mendokumentasikan karakteristik tingkat tinggi dari transaksi yang dibutuhkan pada basis data, meliputi: a. Data yang akan digunakan oleh transaksi. b. Karakteristik fungsional dari transaksi. c. Hasil dari transaksi. d. Kepentingan untuk pengguna. e. Nilai yang diharapkan dari pemakaian. Perancangan ini harus dilakukan lebih awal dalam proses perancangan untuk memastikan bahwa basis data yang diimplementasikan mampu mendukung semua transaksi yang dibutuhkan. Ada tiga jenis transaksi, yaitu: a. Retrieval transactions Digunakan untuk mengambil data untuk ditampilkan pada layar atau pada laporan. b. Update transactions Digunakan untuk memasukkan record baru, menghapus record lama, atau mengubah record yang terdapat di dalam basis data. c. Mixed transactions Meliputi retrieval (pengambilan) dan update (pengubahan) data. 26 2. Perancangan antarmuka (user interface design) Perancangan antarmuka yang sesuai dilakukan agar fungsionalitas yang dibutuhkan tercapai dalam sebuah aplikasi basis data. Tampilan antar muka ini harus menyajikan informasi yang dibutuhkan secara user friendly. 7. Membuat Prototype (Prototyping) Prototyping merupakan tahap pembuatan model kerja dalam sebuah sistem database (Connolly dan Begg, 2005, p304). Prototype adalah sebuah model kerja yang memiliki seluruh fitur sesuai kebutuhan atau menyediakan semua fungsi dalam sistem akhir. Tujuan utama dalam pengembangan prototype sistem database adalah memungkinkan pengguna untuk menggunakan prototype untuk mengidentifikasi fitur sistem yang bekerja dengan baik. 8. Implementasi (Implementation) Implementasi merupakan realisasi fisik dari basis data dan perancangan aplikasi (Connolly dan Begg, 2005, p304). Implementasi dari basis data dicapai dengan menggunakan DDL (Data Definition Language) dari DBMS terpilih atau GUI (Graphical User Interface), yang mendukung fungsi yang sama ketika menyembunyikan statement DDL tingkat rendah. Statement DDL juga digunakan untuk membuat struktur dan file basis data yang kosong. Beberapa sudut pandang pengguna yang spesifik juga diimplementasikan pada tahap ini. 9. Konversi dan Pemuatan Data (Data Conversion and Loading) Konversi dan pemuatan data adalah suatu proses pemindahan data yang ada ke dalam basis data yang baru dan mengubah aplikasi yang ada agar dapat digunakan pada basis data yang baru (Connolly dan Begg, 2005, p305). Tahapan ini dibutuhkan ketika sistem basis data yang baru menggantikan sistem yang lama. 27 10. Pengujian (Testing) Pengujian merupakan suatu proses eksekusi program aplikasi dengan tujuan untuk menemukan kesalahan-kesalahan (Connolly dan Begg, 2005, p305). Sebelum digunakan dalam suatu sistem, aplikasi basis data yang baru harus diuji terlebih dahulu dengan menggunakan strategi testing yang direncanakan dan menggunakan data yang sebenarnya. 11. Pemeliharaan Operasional (Operational Maintenance) Pemeliharaan (monitoring) dan operasional pemeliharaan merupakan sistem suatu basis proses pengawasan data setelah dilakukan instalasi (Connolly dan Begg, 2005, p306). Adapun tahapan-tahapan yang terlibat dalam pemeliharaan operasional meliputi : a. Pengawasan (monitoring) kinerja sistem, jika kinerja menurun maka diperlukan perbaikan atau pengaturan ulang basis data. b. Pemeliharaan dan pembaharuan aplikasi basis data (jika diperlukan). 2.1.6 Model Relasional A. Terminologi Struktur data relasional Ada beberapa istilah dalam struktur data relasional seperti (Connolly dan Begg, 2005, p72-p74) : 1. Relasi Relasi adalah sebuah tabel yang memiliki beberapa kolom dan baris, digunakan untuk memegang informasi mengenai objek yang akan direpresentasikan dalam basis data. Sebuah relasi digambarkan dengan tabel dua dimensi yang memiliki baris yang merepresentasikan sebuah record dan nama kolom yang direpresentasikan atribut. Relasi memiliki sifat-sifat sebagai berikut (Connolly, 2005, p77): a. Nama relasi berbeda satu sama lain dalam skema relasional. b. Setiap sel dari relasi berisi satu nilai atomik. c. Setiap atribut memiliki nama yang berbeda. 28 d. Nilai satu atribut berasal dari domain yang sama. e. Setiap tuple berbeda, dan tidak ada duplikasi tuple. 2. Atribut Seperti yang telah dijelaskan sebelumnya, atribut adalah nama kolom dari sebuah relasi. Atribut dapat muncul dalam urutan apapun dan relasinya akan tetap relasi yang sama, dan oleh sebab itu memilik arti yang sama (Connolly dan Begg, 2005, p72). 2. Domain Domain adalah kumpulan dari nilai yang diijinkan untuk satu atau lebih atribut. Konsep domain penting karena domain memperbolehkan user untuk mendifinisikan arti dan sumber nilai yang dapat atribut gunakan (Connolly dan Begg, 2005, p72). 4. Tuple Tuple adalah elemen dari relasi atau dapat dikatakan sebagai baris dari suatu relasi. Tuple dapat muncul dalam urutan apapun dan relasinya akan tetap relasi yang sama, dan oleh sebab itu memiliki arti yang sama (Connolly dan Begg, 2005, p73). 5. Degree Degree pada suatu relasi adalah jumlah atribut yang terdapat pada relasi tersebut. Sebuah relasi yang terdiri dari satu atribut disebut unary relation atau one tuple. Relasi dengan dua atribut disebut binary, tiga atribut disebut ternary dan lebih dari tiga disebut n-ary (Connolly dan Begg, 2005, p74). 6. Cardinality Cardinality adalah jumlah dari tuple yang terdapat pada relasi. Cardinality berubah-ubah bergantung pada tuples yang ditambah atau dihapus (Connolly dan Begg, 2005, p74). 7. Basis data relasional Basis data relasional adalah sekumpulan relasi yang telah dinormalisasi dengan nama relasi yang berbeda (Connolly dan Begg, 2005, p74). 29 a. Basis data relasi Dari beberapa pengertian diatas, maka skema relasi dapat didefinisikan yaitu sebuah nama relasi yang mendefinisikan sekumpulan pasangan atribut dan domain. Skema basis data relasi adalah kumpulan dari skema relasi yang berbeda nama (Connolly dan Begg, 2005, p76). b. Relational Keys Seperti yang telah disebutkan diatas bahwa tidak ada tuples yang sama dalam sebuah relasi. Oleh sebab itu, diperlukannya relational keys untuk mengidentifikasikan satu atau lebih atribut agar dapat membedakan tuple dalam sebuah relasi. Berikut ini merupakan beberapa relational keys tersebut (Connolly dan Begg, 2005, p78): 1. Superkey Superkey adalah sebuah atribut atau kumpulan dari atribut yang secara unik mengidentifikasikan sebuah tuple dalam sebuah relasi (Connolly dan Begg, 2005, p78). 2. Candidate key Candidate key adalah sebuah atribut unik yang mengidentifikasikan sebuah table. Jumlah minimal atribut yang dapat mengidentifikasikan record secara unik. Jika sebuah key terdiri lebih dari satu atribut disebut composite key (Connolly dan Begg, 2005, p78). 3. Primary key Candidate key yang terpilih untuk mengidentifikasi tuple dengan uniknya di dalam suatu relasi disebut primary key. Primary key adalah sebuah atribut atau kumpulan atribut dalam satu relasi yang cocok pada beberapa candidate key dari beberapa relasi (Connolly dan Begg, 2005, p79). Candidate key yang tidak dipilih menjadi primary key dinamakan alternate key. 30 4. Foreign key Foreign key adalah sebuah atribut atau kumpulan atribut dalam satu relasi yang cocok pada beberapa candidate key dari beberapa relasi (Connolly dan Begg, 2005, p79). B. Integritas Constraints Data yang disimpan ke dalam sebuah basis data harus valid dan konsisten. Integrity biasanya diekspresikan sebagai constraint, dimana constraint merupakan aturan yang tidak boleh dilanggar oleh basis data. Berikut ini adalah definisi dari istilah yang digunakan (Connolly dan Begg, 2005, p81-83): a. Nulls Null merepresentasikan nilai untuk sebuah atribut yang tidak diketahui atau tidak memiliki nilai pada tuple. b. Integritas entitas Dalam sebuah base relation, tidak ada atribut pada primary key bernilai null. Primary key digunakan untuk mengidentifikasikan tuple secara unik. Hal ini menyebabkan tidak ada subset dari primary key yang cukup untuk menyediakan pengidentifikasian tuple yang unik. c. Integritas referensial Jika terdapat foreign key dalam relasi, maka nilai foreign key tersebut akan dibandingkan dengan nilai candidate key dari beberapa tuple pada relasi tersebut atau nilai foreign key harus null semuanya. d. General Constraints Aturan tambahan yang dispesifikasikan user atau database administrator pada basis data dari suatu aspek dari enterprise. 2.1.7 Entity Relationship Diagram Menurut Connolly dan Begg (2005, p342), Salah satu aspek yang paling sulit dari desain database adalah kenyataan bahwa perancang, programmer, dan end-user cenderung melihat data dan penggunaannya dengan cara berbeda. 31 Menurut Connolly dan Begg (2005, p342), ERD adalah penggambaran dari sebuah kebutuhan penyimpanan data dengan cara kerja dari suatu perusahaan atau organisasi tersebut yang bebas dari ambiguitas. ERD digunakan untuk mengidentifikasikan data yang akan disimpan, diolah dan diubah untuk mendukung aktivitas bisnis suatu organisasi. ERModelling adalah pendekatan top-down dari desain database yang dimulai dengan mengidentifikasi data-data penting yang disebut entitas dan hubungan antara data yang harus direpresentasikan dalam model yang disebut relasi, serta informasi yang lebih detail mengenai entitas yang disebut atribut. Ada beberapa hal yang perlu diperhatikan dalam pembuatan ERD yaitu : 1. Tipe Entitas Tipe entitas adalah sekumpulan objek yang memiliki sifat yang sama, yang diidentifikasi oleh perusahaan dan memiliki keberadaan yang independen (Connolly dan Begg, 2005, p343). Keberadaan dari entitas yang independen ini dapat berupa bentuk fisik (nyata) maupun konseptual (abstrak). Entity occurrence merupakan objek yang dapat diidentifikasi secara unik dari tipe entitas (Connolly dan Begg, 2005, p342). 2. Tipe relationship Tipe relationship merupakan sebuah hubungan yang memiliki arti diantara beberapa tipe entitas (Connolly dan Begg, 2005, p346). Setiap tipe relasi diberi nama yang menjelaskan fungsinya. Relationship occurrence merupakan sebuah hubungan yang dapat diidentifkasikan secara unik, yang meliputi satu kejadian dari masingmasing tipe entitas yang berpartisipasi. Terdapat tiga dari jenis relationship : a. One-to-One (1:1) Relationship Hubungan one-to-one terjadi ketika ada satu record dari tabel pertama yang berkorepondensi dengan satu record dari tabel lain. Contohnya karyawan. setiap nama karyawan hanya memiliki satu ID 32 b. One-to-many (1:*) Relationship Hubungan one-to-many terjadi ketika setiap record dalam tabel A bisa memiliki beberapa link dari tabel B namum masing-masing record dari tabel B hanya bisa berkorespondensi dengan satu record dari tabel A. Contohnya sebuah perusahaan dengan semua karyawannya bekerja di gedung Z (Merupakan tabel A). Nama gedung memiliki hubungan dengan banyak karyawan (merupakan tabel B). Jadi, satu record dari tabel A, yaitu tabel nama gedung, memiliki relasi dengan banyak nama karyawan dari tabel B. c. Many-to-many (*:*) Relationship Hubungan many-to-many terjadi ketika setiap record dari tabel A memiliki hubungan dengan record-record yang ada di tabel B dan sebaliknya. 3. Atribut Atribut merupakan properti atau sifat dari sebuah entitas atau tipe relationship (Connolly dan Begg, 2005, p350). Domain atribut merupakan suatu kumpulan nilai yang diperbolehkan untuk satu atau lebih atribut (Connolly dan Begg, 2005, p350). Atribut dapat diklasifikasikan sebagai berikut : a. Simple and composite attributes Simple atribute merupakan sebuah atribut yang terdiri dari satu komponen dengan keberadaan yang independen (Connolly dan Begg, 2005, p351). Composite attribute merupakan sebuah atribut yang tediri dari beberapa komponen, masing-masing dengan keberadaan yang independen (Connolly dan Begg, 2005, p351). b. Single-valued dan multi-valued attributes Single-valued attribute adalah sebuah atribut yang memiliki nilai tunggal untuk setiap konkurensi dalam sebuah tipe entitas (Connolly dan Begg, 2005, p352). Multi-valued attribute adalah sebuah atribut yang memiliki beberapa nilai untuk setiap konkurensi dalam sebuah tipe entitas (Connolly dan Begg, 2005, p352). 33 c. Atribut turunan (derived attribute) Derived attribute merupakan sebuah atribut yang mewakili sebuah nilai yang dapat diturunkan dari nilai dari atribut yang berelasi atau sekumpulan atribut, dan tidak harus dalam tipe entitas yang sama (Connolly dan Begg, 2005, p352). d. Keys Candidate key merupakan sekumpulan atribut yang minimal yang secara unik mengidentifikasikan setiap kejadian dari entitas (Connolly dan Begg, 2005, p352). Primary key merupakan candidate key yang memiliki dua atau lebih atribut (Connolly dan Begg, 2005, p353). Composite key merupakan candidate key yang terdiri atas dua atau beberapa atribut. (Connolly dan Begg, 2005, p353). 4. Tipe entitas kuat dan lemah Tipe entitas kuat merupakan tipe entitas yang keberadaannya tidak bergantung pada entitas lain (Connolly dan Begg, 2005, p354). Karakteristik dari entitas kuat ini adalah setiap kejadian entitas diidentifikasikan secara unik menggunakan atribut primary key dari tipe entitas berikut. Tipe entitas lemah merupakan tipe entitas yang keberadaannya bergantung pada entitas lain (Connolly dan Begg, 2005, p355). Karakteristik dari entitas lemah ini adalah setiap kejadian entitas tidak bisa diidentifikasikan secara unik dengan hanya menggunakan atribut yang berhubungan dengan tipe entitas tersebut. 5. Structural Constraint Batasan utama dari relationship disebut multiplicity, yang artinya jumlah dari kejadian-kejadian yang mungkin terjadi pada entitas yang berhubungan dengan kejadian tunggal dari entitas melalui relationship khusus (Connolly dan Begg, 2005, p356-359). 2.1.8 Normalisasi Menurut Hoffer, Prescott & Topi (2009, p266), normalisasi adalah proses formal untuk memutuskan atribut mana yang harus dikelompokkan menjadi satu dalam suatu relasi sehingga semua anomali dihapus. Normalisasi 34 adalah proses mengurangi relasi dengan anomali yang dilakukan berturut-turut untuk menghasilkan relasi yang lebih baik dan terstruktur dengan baik. Berikut ini adalah beberapa tujuan utama dari normalisasi: 1. Minimalkan redundansi data, sehingga menghindari anomali dan melestarikan ruang penyimpanan 2. Menyederhanakan referential integrity constraints 3. Memudahkan untuk menjaga data (insert, update, dan delete) 4. Menyediakan desain yang lebih baik yang merupakan representasi yang telah ditingkatkan dari dunia nyata dan dasar yang lebih kuat untuk perkembangan di masa depan Normalisasi dapat diselesaikan dan dipahami secara bertahap, masingmasing yang sesuai dengan bentuk normal. Sebuah normal form adalah keadaan relasi yang dihasilkan dari penerapan aturan-aturan sederhana mengenai dependensi fungsional (atau relasi antara atribut) pada relasi tersebut. 1. Bentuk normal pertama - atribut multivalued (juga disebut kelompok berulang) telah dihapus, sehingga ada nilai tunggal (mungkin null) di persimpangan setiap baris dan kolom tabel. 2. Bentuk normal kedua - dependensi fungsional parsial telah dihapus (yaitu, nonkeys diidentifikasi oleh seluruh primary key) 3. Bentuk normal ketiga - dependensi transitif telah dihapus (yaitu, nonkeys yang diidentifikasi hanya dengan primary key) 4. Boyce-Codd bentuk normal – sisa anomali yang dihasilkan dari dependensi fungsional telah dihapus (karena ada lebih dari satu primary key untuk nonkeys yang sama) 5. Bentuk normal keempat – semua dependensi multivalued telah dihapus 6. Bentuk normal kelima - semua anomali yang tersisa telah dihapus Normalisasi adalah suatu teknik untuk menghasilkan sekumpulan relasi dengan sifat-sifat yang diinginkan, memenuhi perusahaan (Connolly dan Begg, 2005, p388). kebutuhan data pada 35 BENTUK NORMALISASI Ada beberapa bentuk normalisasi, yaitu: 1. Unnormalized Form (UNF) Sebuah relasi dimana masih terdapat redundansi data dan belum melalui proses normalisasi. Bentuk ini merupakan kumpulan data yang akan disimpan, dan tidak ada keharusan untuk mengikuti suatu format tertentu. Data dikumpulkan apa adanya, dan terdapat suatu tabel yang berisikan satu atau lebih grup yang berulang (Connolly dan Begg, 2005, p403). Membuat tabel unnormalized yaitu dengan memindahkan data dari sumber informasi kedalam format tabel dengan baris dan kolom. 2. First Normal Form (1NF) Bentuk normal pertama mempunyai ciri yaitu data dibentuk dalam satu record dan mulai menghilangkan adanya perulangan data. Merupakan sebuah relasi di mana setiap irisan antara baris dan kolom berisikan satu dan hanya satu nilai (Connolly dan Begg, 2005, p403). 3. Second Normal Form (2NF) Menurut Connolly dan Begg (2005, p407), Bentuk normal kedua mempunyai syarat yaitu bentuk data telah memenuhi kriteria bentuk normal pertama. Atribut bukan kunci haruslah bergantung secara fungsi pada kunci utama, sehingga untuk membentuk normal kedua sudah ditentukan kunci-kunci field. Kunci field haruslah unik dan dapat mewakili atribut lain yang menjadi anggotanya. Berdasarkan pada konsep full functional dependency, yaitu A dan B. Second normal form merupakan atribut dari sebuah relasi, B dikatakan fully dependent (bergantung penuh) terhadap A, jika B functionally dependent pada A tetapi tidak sebenarnya merupakan bagian (proper subset) dari A. Second Normal Form merupakan sebuah relasi dalan 1NF dan setiap atribut non-primary-key bersifat fully functionally dependent pada primary key. 36 4. Third Normal Form (3NF) Menurut Connolly dan Begg (2005, p409), Untuk menjadi bentuk normal ketiga, maka suatu relasi haruslah memenuhi bentuk normal kedua dan setiap atribut yang bukan kunci harus bergantung hanya pada kunci primer secara menyeluruh. Berdasarkan pada konsep ketergantungan transitif (transitively dependent), yaitu suatu kondisi di mana A, B dan C merupakan atribut dari sebuah relasi, maka jika A→B dan B→C, maka C bergantung secara transitif pada A melalui B ( Jika A tidak functionally dependent pada B atau C). Third normal form adalah sebuah relasi dalam 1NF dan 2NF dan di mana tidak terdapat atribut non-primary-key yang bersifat bergantung secara transitif pada primary key. 5. Boyce – Codd Normal Form (BCNF) Menurut Connolly dan Begg (2005, p419), Relasi yang jika dan hanya jika setiap determinan adalah candidate key. 6. Fourth Normal Form (4NF) Menurut Connolly dan Begg (2005, p430), Relasi yang terdapat pada Boyce-Codd normal form dan tidak mengandung ketergantungan bernilai banyak (multi-valued dependency). Multi-valued dependency merupakan ketergantungan antar atribut dalam suatu relasi, misalnya untuk setiap nilai dari A merupakan satu set nilai untuk B dan C, dimana nilainilai B dan C tidak bergantung satu sama lain. 7. Fifth Normal Form (5NF) Menurut Connolly dan Begg (2005, p431), 5NF didefinisikan sebagai relasi yang dependency). tidak mempunyai Lossless join join dependency (lossless join dependency merupakan property of decomposition, yang meyakinkan tidak ada spurious tuples yang dihasilkan ketika relasi-relasi disatukan melalui operasi natural join. PROSES NORMALISASI Proses normalisasi merupakan suatu teknik formal untuk menganalisis relasi berdasarkan primary key dan ketergantungan fungsional 37 antar atribut. Proses ini dieksekusi dalam beberapa langkah. Setiap langkah mengacu ke bentuk normal tertentu,sesuai dengan sifat yang dimilikinya. Setelah normalisasi diproses, relasi menjadi secara bertahap lebih terbatas atau kuat bentuk formatnya dan juga mengurangi tindakan update yang anomali. Proses-proses yang terjadi yaitu: a. UNF ke 1NF Tunjuk satu atau sekumpulan atribut sebagai kunci untuk tabel unnormalized. Identifikasikan grup yang berulang dalam tabel unnormalized yang berulang untuk kunci atribut. Hapus grup yang berulang dengan cara : 1. Masukkan data yang semestinya ke dalam kolom yang kosong pada baris yang berisikan data yang berulang (flattening the table). 2. Menggantikan data yang ada dengan salinan dari kunci atribut yang sesungguhnya ke dalam relasi terpisah. b. 1NF ke 2NF 1. Identifikasikan primary key untuk relasi 1NF. 2. Identifikasikan ketergantungan fungsional dalam relasi. 3. Jika terdapat ketergantungan parsial terhadap primary key, maka hapus dengan menempatkannya dalam relasi yang baru bersama dengan salinan determinannya. c. 2NF ke 3NF 1. Identifikasikan primary key untuk relasi 1NF. 2. Identifikasikan ketergantungan fungsional dalam relasi. 3. Jika terdapat ketergantungan transitif terhadap primary key, maka hapus dengan menempatkannya dalam relasi yang baru bersama dengan salinan determinannya. d. 3NF ke BCNF 1. Merupakan relasi yang sama dengan relasi yang ada di dalam 3NF. 2. Untuk ketergantungan fungsional A→B, ditetapkan dalam relasi maka A harus merupakan candidate key. 38 e. BCNF ke 4NF 1. Menghilangkan multi-valued dependency dari relasi dengan menempatkan atribut-atribut ke dalam suatu relasi baru bersama dengan copy of determinant. 2.1.9 Database Security Menurut Connolly dan Begg (2005, p542), Database security adalah mekanisme yang digunakan untuk memproteksi database dalam melawan ancaman dari luar maupun dari dalam. Database security mencakup hardware, software, user, dan data. Untuk menjalankan sistem keamanan secara efektif, diperlukan beberapa kontrol yang sesuai, yang didefinisikan pada mission objectives secara khusus dari sistem. Database security termasuk dalam hubungan situasi seperti berikut : 1. Pencurian dan memanipulasi data 2. Kehilangan kerahasiaan data 3. Kehilangan privacy 4. Kehilangan integrity 5. Kehilangan availability Dalam sebuah database security terdapat mekanisme keamanan yang disebut dengan authorization dan authentification. Authorization adalah pemberian hak akses apa saja yang dapat dilakukan oleh user kepada suatu sistem, sedangkan authentification adalah suatu mekanisme yang menentukan user manakah yang boleh masuk ke dalam sistem. 2.2 Teori yang terkait dengan Penelitian Dalam tinjauan pustaka yang berhubungan dengan hal-hal khusus tentang topik skripsi dan alat bantu analisis dan perancangan basis data akan diruaikan secara ringkas, antara lain: travel, structured query language (SQL), diagram aliran (Flowchart), data flow diagram (DFD), state transiton diagram (STD), C#, SQL Server 2008, ASP.NET, Internet, HTML dan CSS. 39 2.2.1 Teori Travel Pengertian secara umum perusahaan travel merupakan perusahaan jasa tour dan travel yang bergerak dalam bidang jasa pemesanan tempat, pemesanan dan pengantaran tiket termasuk menyediakan transportasi dan akomodasi hotel. Perusahaan tour dan travel juga menyediakan informasi-informasi dan menyarankan tentang kondisi tempat tujuan seperti iklim, situasi politik, dan lain-lain. Selain itu perusahaan tour dan travel secara teknis juga memberikan saran dan masukan tentang nilai pertukaran matauang, adanya asuransi untuk penyewaan mobil dan asuransi jiwa pada perjalanan melalui pesawat udara, asuransi kelebihan barang, biaya keberangkatan, visa dan passport.(Poynters,1990). Perusahaan tour dan travel juga mempunyai fungsi : 1. Fungsi sebagai perantara Perusahaan tour dan travel mempunyai peranan yang cukup penting dalam pembangunan daerah karena perusahaan ini dapat berperan sebagai katalisator untuk pembangunan daerah-daerah baru sebagai daerah tujuan wisata, sehingga peranannya sangat penting dalam peningkatan perekonomian, khususnya bagi daerah kunjungan wisata yang seringkali dikunjungi oleh para wisata secara tidak langsung dapat meningkatkan pendapatan daerah. 2. Fungsi sebagai organisator Perusahaan tour dan travel berfungsi sebagai pengatur tidak hanya mempertemukan pelanggan dan pengusaha masing-masing industri pariwisata seperti perusahaan angkutan, perhotelan, bar, restoran, dll. Tapi yang lebih penting mempersiapkan macam-macam tour yang mungkin dapat ditawarkan bagi calon wisatawan. (Drs. A. Yoeti, 1996). Adapun jasa-jasa yang ditawarkan antara lain : 1. Tiket Pesawat Domestik Reservasi atau pemesanan adalah penyediaan tempat atau pembukuan pada dinas-dinas penerbangan bagi calon penumpang beserta dengan permintaan akan fasilitas khusus lain apabila 40 diperlukan. Jadi pengertian reservasi tiket adalah suatu pemesanan tempat duduk di pesawat terbang dan sekaligus permintaan khusus yang dilakukan oleh calon penumpang baik melalui agen tiket. Reservasi harus dilakukan oleh calon penumpang karena pihak maskapai memiliki ketentuan penerbangan untuk memastikan jadi atau tidaknya calon penumpang naik pesawat pilihan untuk pergi ke tempat yang dituju. 2. Voucher Hotel Voucher hotel adalah kupon prabayar yang dapat ditukarkan ketika akan menginap di hotel tertentu. Sama seperti membeli tiket pesawat, biaya menginap di hotel juga dapat dihemat dengan cara melakukan reservasi dari jauh hari. Alasannya karena membayar lebih murah dan kepastian mendapat kamar. 3. Paket Tur Paket wisata diartikan sebagai suatu perjalanan wisata dengan satu atau lebih tujuan kunjungan yang disusun dari berbagai fasilitas perjlanan tertentu dalam suatu acara perjalanan yang tetap, serta dijual dengan harga tunggal yang menyangkut seluruh komponen dari perjalanan wisata. 2.2.2 Structured Query Language (SQL) Menurut Connolly dan Begg (2005, p112), Structured Query Language (SQL) merupakan bahasa yang digunakan untuk database relational dan didukung oleh semua produk di pasaran. SQL awalnya dikembangkan oleh IBM Research pada awal tahun 1970 dan pertama kali diterapkan pada prototype komputer IBM yang bernama System R. Structured Query Language (SQL) adalah suatu bahasa standard untuk implementasi operasi-operasi pada sistem basis data model relational Standard ANSI-SQL92 atau International Standard Database Query Language. 2.2.3 Diagram Aliran (Flowchart) 41 Menurut Mulyadi (2001, p60-63), Sistem akuntansi dapat dijelaskan dengan menggunakan bagan alir dokumen. Berikut ini merupakan simbol-simbol standar yang digunakan oleh analis sistem untuk membuat bagan alir dokumen yang menggambarkan sistem tertentu : Tabel 2.2 Simbol Diagram Aliran SIMBOL KETERANGAN Dokumen Simbol ini digunakan menggambarkan dokumen, semua yang untuk jenis merupakan formulir yang digunakan untuk merekam data terjadinya suatu transaksi. Kegiatan Manual Simbol ini digunakan menggambarkan untuk kegiatan manual seperti : a. Menerima order dari pembeli b. Mengisi formulir c. Membandingkan memeriksa berbagai dan jenis kegaitan klerikal yang lain. Keterangan / Komentar Simbol ini memungkinkan ahli sistem menambahkan keternagan untuk memperjelas pesan yang disampaikan dalam bagan alir. Keputusan Simbol ini menggambarkan keputusan yang harus dibuat dalam proses pengolahan data. 42 Keputusan yang dibuat ditulis di dalam simbol. Garis alir / flowline Simbol ini menggambarkan arah proses pengolahan data. Anak panah tidak digambarkan jika arus dokumen mengarah ke bawah dan ke kanan. Jika arus dokumen mengalir ke atas atau ke kiri, anak panah perlu dicantumkan. Mulai / berakhir (terminal) Simbol ini untuk menggambarkan awal dan akhir suatu sistem akuntansi. Dokumen dan Tembusannya Simbol ini digunakan untuk menggambarkan dokumen asli dan tembusannya. Penghubung halaman yang sama (onge page connector) Dalam menggambarkan bagan alir, arus dokumen dibuat mengalir dari atas ke bawah dan dari kiri ke kanan. Namun, dengan keterbatasan ruang halaman kertas untuk menggambar makan penghubung digunakan symbol untuk memungkinkan aliran dokumen berhenti di suatu lokasi pada halaman tertentu dan kembali berjalan di likasi lain pada 43 halaman yang sama. Penghubung halaman yang berbeda (Off = page connector) Apabila menggambar bagan alir suatu sistem akuntansi melebihi satu halaman, maka symbol ini harus digunakan menunjukkan kemana untuk dan bagaimana bagan alir terkait satu dengan lainnya. Nomor yang tercantum pada halaman tertentu terkait dengan bagan alir yang tercantum pada halaman yang lain. 2.2.4 Data Flow Diagram (DFD) Menurut Whitten (2007, p317), Data Flow Diagram adalah alat yang menggambarkan aliran data yang melewati sistem beserta hasil yang diperoleh dari sistem tersebut. Selain itu, pengertian lain mengenai Data Flow Diagram menurut Whitten (2007, p317) adalah model proses yang digunakan untuk menggambarkan aliran data melalui sebuah sistem dan tugas atau pengolahan yang dilakukan oleh sistem. Menurut McLeod (2010, p214), Data Flow Diagram (DFD) adalah suatu penyajian grafis dari suatu sistem yang mengilustrasikan bagaimana data mengalir melalui proses-proses yang saling tersambung. Ada beberapa simbol yang digunakan dalam DFD dimana simbol-simbol tersebut mencerminkan : 1. Unsur-unsur lingkungan dengan sistem yang berinteraksi. 2. Proses. 3. Arus data. 4. Penyimpanan data. Berdasarkan pengertian di atas, Data Flow Diagram (DFD) adalah penggambaran grafis yang menampilkan aliran data dari sumber ke 44 dalam objek, dengan melewati proses yang mentransformasikannya ke tujuan yang ada pada objek lain. Data Flow Diagram (DFD) memperlihatkan hubungan fungsional dari nilai yang dihitung oleh sistem, termasuk nilai masukan, nilai keluaran, serta tempat penyimpanan internal. DFD membuat proses yang mentransformasi data, aliran data yang menggerakan data, objek yang mengkonsumsi serta memproduksi data, serta data store yang menjadi tempat penyimpanan data. Menurut McLeod (2010, p215-217), Diagram nomor 0 (figure 0 diagram) mengidentifikasi proses-proses utama sistem. Sebuah diagram yang mendokumentasikan sistem pada tingkat yang lebih ringkas disebut diagram konteks (context diagram), sedangkan sebuah diagram yang memberikan lebih banyak detail disebut diagram nomor n (figure n diagram). Ada 3 (tiga) tingkatan dalam DFD yaitu : a. Diagram Konteks Diagram yang menggambarkan sistem secara garis besar atau merupakan tingkatan yang paling awal, yang menggambarkan hubungan antara sistem dengan bagian luar dari sistem. Diagram ini terdiri atas satu simbol proses tunggal yang melambangkan keseluruhan sistem. Berikut ini merupakan beberapa aturan yang dapat digunakan dalam menggambarkan sebuah diagram konteks : 1. Hanya menggunakan satu simbol. 2. Memberikan label pada simbol proses untuk mencerminkan keseluruhan sistem. 3. Jangan memberikan nomor pada simbol proses tunggal. 4. Memasukkan seluruh terminator untuk sistem. 5. Menunjukkan seluruh arus yang terjadi antara terminator dan sistem. b. Diagram Nol Merupakan level tertinggi dari fungsi yang ada di dalam sistem. Selain itu, pada diagram ini digambarkan proses-proses penting yang ada di dalam sistem. Proses ini diperoleh dari pemecahan diagram konteks. 45 c. Diagram Rinci / Diagram Level 1 Pada diagram ini digambarkan rincian dari setiap proses yang ada pada diagram 0 (nol) sampai ketingkat proses yang paling rinci. d. Diagram Level 2 Merupakan penjabaran rinci dari setiap proses yang baru muncul pada diagram level 1 secara khusus. Dalam hal ini juga memungkinkan munculnya proses-proses detilnya. DFD terdiri dari simbol-simbol sebagai berikut : Tabel 2.3 Simbol Data Flow Diagram SIMBOL KETERANGAN Proses adalah sesuatu untuk mengubah input dan output. Proses dapat digambarkan dengan sebuah lingkaran, sebuah persegi panjang horizontal, atau sebuah persegi panjang tegak bersudut melingkat. Setiap symbol proses diidentifikasikan dengan label. Teknik pembuatan label yang paling umum adalah dengan menggunakan kata kerja atau objek, tetapi juga dapat menggunakan sistem atau program komputer. Aliran data terdiri dari sekelompok unsure-unsur data yang berhubungan secara logis yang bergerak dari satu titik atau proses ke titik atau proses yang lain. Simbol panah dapat digambarkan sebagai garis lurus atau lengkung. Aliran data menggambarkan perpindahan informasi dari satu bagian ke bagian lain dari sistem. Awal panah menggambarkan asal data sedangkan arah panah menggambarkan tujuan. Penyimpanan data (data store) adalah suatu tempat penyimpanan data. Proses dapat memasukkan atau mengambil data dari data store. 46 Terminator (external entities) digunakan untuk menyatakan unsur-unsur lingkungan yang menunjukkan titik-titik dimana sistem berakhir dan dapat berupa orang, organisasi, dan sistem lain yang memiliki antramuka dengan sistem. 2.2.5 State Transition Diagram (STD) Menurut Pressman (2001, p317-318), Behavioral modelling adalah sebuah prinsip operasional yang membutuhkan semua kebutuhan metode analisis. State Transition Diagram (STD) merepresentasikan kelakuan dari sistem dengan menggambarkan state dan event yang menyebabkan sistem merubah state. Sebagai tambahan, STD mengindikasikan aksi apa yang diambil sebagai akibat dari event tertentu. Menurut Marakas (2006, p135), State transition diagram menggambarkan bermacam-macam keadaan sebuah komponen sistem yang terdapat dalam relasi pada kejadian-kejadian atau kondisi-kondisi yang menyebabkan sebuah perubahan dari sebuah keadaan ke keadaan lainnya. State Transition Diagram (STD) merupakan suatu tools permodelan yang menggambarkan sifat ketergantungan pada waktu dari suatu sistem. Adapun simbol yang digunakan adalah sebagai berikut : Gambar 2.2 State / Keadaan (Marakas, 2006, p136) 47 Ada dua jenis state yaitu State Awal (Initial State) dan State Akhir (Final State). Initial State hanya diperbolehkan satu saja, sedangkan Final State dapat lebih dari satu. Dikatakan Final State jika tidak ada perubahan keadaan dari keadaan tersebut ke keadaan lainnya. Akan tetapi, jika masih ada dan Final State-nya hanya satu, maka akan terjadi looping terus menerus tanpa pernah berhenti. Notasi lainnya ialah transisi state / perubahan state. Setiap panah diberikan label yang menunjukkan kejadian (event) yang akan menyebabkan perubahan dari satu state ke state lainnya. Label tersebut adalah kondisi dan aksi. Kondisi adalah sebuah sinyal yang menyebabkan perubahan terhadap state dari state satu ke state berikutnya. Aksi adalah sesuatu yang dilakukan sistem bila terjadi perubahan state atau merupakan reaksi terhadap kondisi. Gambar 2.3 Perubahan state / Keadaan (Marakas, 2006, p136) Ada 2 (dua) cara pendekatan dalam membuat State Transition Diagram yaitu : a. Identifikasi setiap kemungkinan state dari sistem dan gambarkan masing-masing pada sebuah kotak, lalu buatlah hubungan antar state tersebut. b. Mulai dengan state pertama dan dilanjutkan dengan state berikutnya sesuai dengan aliran yang diinginkan. Berdasarkan pengertian-pengertian di atas, State Transition Diagram merupakan suatu diagram yang menggambarkan kelakuan dari 48 sebuah sistem melalui state dan event, yang menunjukkan adanya perubahan sebagai indikasi terhadap aksi yang dilakukan akibat event tertentu. 2.2.6 Pengenalan C# Menurut Eric dan Tommy (2002, p2), C# adalah sebuah bahasa pemrograman yang diciptakan oleh Microsoft dan diperkenalkan dengan merilis visual studio .NET. C# adalah gabungan dari C++ dan Java, dengan menggabungkan fitur yang ada pada C++ kemudian ditambah dengan object oriented pada Java. Beberapa contoh perbedaan yang dimiliki C# dibandingkan dengan C++: - C# memiliki metode alternatif untuk mengakses daftar inisialisasi ketika membangun sebuah kelas dasar - Sebuah kelas dapat mewarisi implementasi hanya dari satu kelas dasar - C# memiliki sintaks yang berbeda dengan C++ ketika membuat sebuah arrays - C# dapat memanggil anggota kelas dasar dari kelas turunan nya Menurut Dietel (2008,p9), C# adalah sebuah bahasa pemrograman yang berorientasi objek dan didesain secara spesifik untuk platform NET sebagai bahasa yang memungkinkan programmer untuk mudah bermigrasi ke .NET. C# memiliki akar dari C, C++, dan Java, mengadaptasikan fitur-fitur terbaik dan menambahkan fitur-fitur tersendiri. C# memiliki akses ke class library yang kuat dari komponenkomponen yang sudah dibangun sebelumnya, memungkinkan programmer untuk mengembangkan aplikasi dengan cepat, c# dan Visual Basic menggunakan .NET Framework Class Library yang sama. Bahasa pemrograman C# yang asli distandarisasi oleh Ecma International pada Desember 2002. Sejak saat itu, Microsoft telah 49 menawarkan beberapa ekstensi bahasa yang telah diadopsi sebagai bagian dari standar Ecma C# yang telah direvisi. 2.2.7 Pengenalan SQL Server 2008 SQL Server merupakan hal yang menarik bagi pengguna yang masih menggunakan SQL 2000 karena SQL Server 2008 mencakup semua fungsi yang ditemukan di SQL Server 2005. SQL Server 2008 mencakup koleksi fitur baru. Beberapa fitur yang ada di SQL 2008 adalah kompresi database, kompresi backup database, enkripsi data, penanggalan baru, dan filestream yang merupakan tipe data baru. ( Otey Michael, 2008:7) Menurut Ray, Paul, Chris, dan Alex (2011, p9-10), SQL Server 2008 adalah sebuah sistem manajemen basis data (DBMS) yang berkelas enterprise yang mampu menjalankan basis data pribadi yang hanya beberapa megabyte hingga sistem database multiserver yang mengelola informasi berukuran terabyte. SQL Server 2008 lebih dari sekedar sebuah mesin database. Ada 5 tugas utama dari DBMS yang dapat dilakukan oleh SQL Server 2008 : - Menyediakan penyimpanan data yang handal - Menyediakan sarana yang cepat untuk mengambil data - Menyediakan akses yang konsisten dengan data - Mengkontrol akses data melalui keamanan nya - Memastikan data terintegritas dengan baik sehingga data nya konsisten 2.2.8 ASP.NET Menurut Liberty (2006,p1), Microsoft pertama kali mengumumkan ASP.NET 1.0 dan .NET Framework pada July,2000. Pada umumnya, .NET adalah sebuah kerangka kerja (framework) pengembangan aplikasi yang menyediakan antar muka program aplikasi yang baru dan Application Programming Interface dari sistem operasi 50 Windows klasik, terutama Windows 2000, juga menambahkan beberapa teknologi yang berbeda yang dimunculkan Microsoft pada akhir dekade 1990an. Pada saat ini .NET terdiri dari: a. Kompiler untuk 5 bahasa yang berbeda (C#, Visual Basic, Managed C++, J#, dan Jscript) b. Sebuah pustaka kelas (class libraries) yang saling berhubungan, dikenal sebagai Framework Class Library (FCL), yang menyertakan dukungan untuk aplikasi windows dan web, akses data, dan lain-lain. c. Common Language Runtime (CLR), sebuah mesin berorientasi objek dari Framework ini yang menerjemahkan intermediate code yang dihasilkan compiler bahasa ke dalam native code yang diperlukan untuk mengeksekusi aplikasi. Menurut Matthew, Adam, Mario (2010, p3-11), ASP.NET itu sendiri memiliki 7 pilar : 1. ASP.NET terintegrasi dengan .NET Framework ( ASP.NET is integrated with the .NET Framework) 2. ASP.NET dikompilasi, bukan diinterpretasikan (ASP.NET is compiled not interpreted) 3. ASP.NET adalah multi bahasa (ASP.NET is Multilanguage) 4. ASP.NET dihost dengan Common Language Runtime (ASP.NET is hosted by Common Language Runtime) 5. ASP.NET berorientasi objek (ASP.NET is object oriented) 6. ASP.NET mendukung semua browser (ASP.NET supports all browsers) 7. ASP.NET mudah disebarkan dan dikonfigurasikan (ASP. NET is easy to deploy and configure) ASP.NET masih merupakan yang terbaik untuk Visual Studio.Net. Sejak ASP.NET di rilis ASP digantikan dan ASP.NET memiliki kelebihan untuk terhubung ke banyak script. (Nick Langley, 2005:34). 51 2.2.9 Internet Menurut Shelly, Woods, Dorin (2008,p2) Internet adalah koleksi jaringan komputer di seluruh dunia yang menghubungkan jutaan komputer yang digunakan untuk bisnis, pemerintahan, institusi, pendidikan, organisasi, dan individual menggunakan modem, kabel telepon, kabel televise, satelit, dan peralatan komunikasi lainnya. Menurut Shelly, Woods, Dorin (2008,p2) Internet backbone adalah kumpulan jalur data berkecepatan tinggi yang menghubungkan sistem komputer utama yang berlokasi di seluruh dunia. Sampai saat ini sudah lebih dari 950 juta orang di 240 negara terkoneksi melalui internet menggunakan komputer-komputer mereka di rumah-rumah, kantor-kantor, sekolah-sekolah, dan lokasi-lokasi publik seperti perpustakaan. Pengguna dengan koomputer yang terkoneksi ke internet akan dapat mengakses berbagai macam layanan seperti email, social networking, online shopping, dan world wide web. 2.2.10 HTML dan CSS Menurut Shelly, Woods, Dorin (2008,p8) halaman-halaman web dibuat menggunakan HTML yaitu sebuah bahasa penulisan yang digunakan untuk membuat dokumen dalam world wide web. HTML menggunakan seperangkat instruksi khusus dinamakan tags atau markup untuk mendefinisikan struktur dan susunan dari sebuah dokumen dan menentukan bagaimana halaman tersebut ditampilkan dalam browser. Sebuah halaman web adalah sebuah file yang berisi teks dan HTML tag. HTML tag digunakan untuk menandakan teks, menentukan bagaimana suatu teks ditampilkan dalam suatu halaman pada web. HTML memiliki ratusan tag yang dapat digunakan untuk mengatur tampilan pada halaman web, juga untuk membuat hyperlink ke dokumen lain atau halaman web lain. HTML dapat digunakan berbarengan dengan teknologi web lain untuk menyediakan fungsi-fungsi tambahan pada halaman web. Sebagai contoh, DHTML ( Dynamic HTML ) mendeskripsikan sebuah kombinasi dari tag-tag HTML, CSS, atau bahasa scripting lainnya. 52 Cascading Style Sheet (CSS) adalah sekumpulan kode yang memungkinkan untuk mengatur elemen dalam sebuah halaman web ataupun dalam keseluruhan situs web. 2.2.11 Eight Golden Rules of Interface Design Menurut Shneiderman Ben dan Catherine Plaisant (2010), merumuskan 8 (delapan) aturan yang dapat digunakan sebagai petunjuk dasar untuk merancang suatu user interface. Delapan aturan ini disebut dengan Eight Golden Rules of Interface Design, yaitu: 1. Konsistensi Merupakan konsistensi terhadap urutan tindakan, perintah, dan pada istilah-istilah yang digunakan. 2. Universal Usability Gunanya untuk mengenali kebutuhan pengguna yang beragam dan desain serta memberikan kemudahan dalam penggunaan, dengan memfasilitasi transformasi konten agar pengguna yang belum pernah maupun yang pernah menggunakan aplikasi dapat memakai penggunaan Desain Interface yang ada. 3. Memberikan umpan balik yang informatif Umpan balik yang berupa informasi jika ada informasi baru dan jika ada kesalahan perintah. 4. Merancang dialog untuk menghasilkan suatu penutupan Urutan tindakan sebaiknya terorganisir, jelas awal, pertengahan dan akhirnya. 5. Memberikan penanganan kesalahan yang sederhana Jika terjadi kesalahan, akan ada mekanisme sederhana untuk menangani kesalahan tersebut. 6. Mudah kembali ke tindakan sebelumnya Dirancang agar pengguna tidak takut menggunakan menu-menu baru. Di setiap browser seperti Mozilla, Internet Exploler dan Google Chrome terdapat menu undo atau back. 53 7. Mendukung tempat pengendali internal Pengguna menjadi pengontrol sistem bukan sistem yang mengontrol. 8. Mengurangi beban ingatan jangka pendek Dirancang agar pengguna tidak terlalu mengingat banyak perintah. 54