BAB 2 LANDASAN TEORI
2.1 Pengertian Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah kumpulan data dan deskripsi data yang terhubung secara logika serta dirancang untuk memenuhi kebutuhan informasi organisasi.
2.2 Pengertian Sistem Basis Data Menurut Connolly dan Begg (2010, p54), sistem basis data sebagai kumpulan program aplikasi yang berinteraksi dengan basis data bersama dengan Database Management System (DBMS) dan basis data itu sendiri.
2.3 Teori DBMS (Database Management System) 2.3.1 Pengertian DBMS Menurut Connolly dan Begg (2010, p66), Database Management System (DBMS) merupakan
sistem
perangkat
lunak
yang
memungkinkan
pengguna
untuk
mendefinisikan, membuat, memelihara, dan kontrol akses ke database.
2.3.2 Fasilitas DBMS Biasanya, DBMS menyediakan fasilitas sebagai berikut : a. Data Definition Language (DDL) Memungkinkan pengguna untuk membuat spesifikasi tipe data, struktur data, dan constraint pada data untuk dapat disimpan di dalam database. 7
8
b. Data Manipulation Language (DML) Memungkinkan pengguna untuk memasukkan, meng-update, menghapus, dan mengambil data dari database. c. Akses Kontrol DBMS menyediakan akses kontrol ke dalam database, seperti : i. Sistem keamanan, mencegah pengguna yang tidak sah untuk mengakses database tersebut. ii. Sistem integritas, menjaga konsistensi data yang tersimpan. iii. Sistem kontrol konkurensi, mengijinkan akses data untuk diakses oleh database. iv. Sistem kontrol pemulihan, mengembalikan database ke keadaan yang konsisten dari sebelumnya setelah mengalami kegagalan perangkat keras atau perangkat lunak. v. Sebuah katalog yang dapat diakses pengguna, berisi deskripsi dari data di dalam database.
2.3.3 Komponen DBMS Menurut Connolly dan Begg (2010, p68), ada lima komponen penting dalam DBMS yaitu hardware (perangkat keras), software (perangkat lunak), data, procedures (prosedur), dan people (pemakai). 1. Hardware (Perangkat Keras) Hardware digunakan untuk mejalankan DBMS untuk aplikasi. Hardware yang digunakan adalah hardware yang sesuai dengan kebutuhan perusahaan dan DBMS yang digunakan. Beberapa DBMS hanya dapat dioperasikan pada
9
hardware/operation system tertentu dimana yang lainnya dapat digunakan pada hardware/operation system yang lainnya. 2. Software (Perangkat Lunak) Komponen-komponen software terdiri dari software DBMS itu sendiri dan program aplikasi, dimana jika digabungkan dengan sistem operasi, termasuk software jaringan, DBMS ini bisa digunakan melalui sebuah jaringan. 3. Data Data merupakan komponen terpenting dalam DBMS, hal ini mencakup sudut pandang end-user mengenai data. Data pada sebuah sistem basis data baik single-user system maupun multi-user system harus terintegrasi dan dapat digunakan bersama. 4. Procedures (Prosedur) Prosedur merupakan instruksi dan aturan-aturan yang membuat rancangan dan menggunakan database. Penggunaan sistem dan pengaturan staf yang mengatur kebutuhan basis data didokumentasikan dalam prosedur yang berupa petunjuk penggunaan. Instruksi tersebut misalnya digunakan untuk : a. Log on ke DBMS b. Menggunakan sebagian fasilitas DBMS atau program aplikasi c. Start dan stop DBMS d. Membuat salinan cadangan database e. Menangani kesalahan pada hardware dan software f. Mengubah struktur tabel dan meningkatkan tampilan
10
5. People (Pemakai) Komponen terakhir adalah manusia yang terlibat langsung dengan sistem tersebut. Manusia ini dibedakan menjadi empat : a. Data and Database Administrators, ada dua jenis yaitu Data Administrator (DA) yang bertanggung jawab untuk pengelolaan sumber daya termasuk perencanaan database, pengembangan dan pemeliharaan standar, kebijakan dan
prosedur,
dan
desain
database
konseptual/logikal.
Database
Administrator (DBA) yang bertanggung jawab untuk realisasi fisik dari database, termasuk desain database fisik dan implementasi, keamanan dan kontrol integritas, pemeliharaan sistem operasional, dan memastikan kinerja yang memuaskan dari aplikasi bagi pengguna. b. Database Designers ada dua tipe perancang yaitu logical database designers dan physical database designers. Logical database designers bersangkutan dengan mengidentifikasi data (entitas dan atribut), hubungan antara data dan kendala pada data yang akan disimpan dalam database. Physical database designers memutuskan bagaimana desain database logikal akan diwujudkan secara fisik. c. Application Developers bertanggung jawab untuk melaksanaan program aplikasi yang harus dilaksanakan untuk end-users. d. End-Users adalah clients untuk database, yang telah dirancang dan diimplementasi, serta dipelihara untuk menyajikan informasi yang diperlukan. End-Users dapat diklasifikasikan sesuai dengan sistem yang dijalankan :
11
i. Naive users adalah tipikal orang yang tidak berinteraksi langsung dengan DBMS. Mereka mengakses database melalui sebuah program aplikasi yang ditujukan secara khusus untuk mencoba operasi sesederhana mungkin. ii. Sophisticated users adalah orang yang lebih mengerti struktur database dan fasilitasnya, dan memungkinkan dirinya untuk menggunakan bahasa pemrograman yang lebih tinggi.
2.3.4 Keuntungan DBMS Menurut Connolly dan Begg (2010, p77), keuntungan DBMS yaitu : a. Control of data redundancy, mengontrol database untuk mengeliminasi redundan dengan data terintegrasi cukup disimpan sekali. b. Data consistency, mengeliminasi atau mengontrol redundan, dapat mengurangi resiko inkonsistensi yang terjadi. c. Sharing of data, sistem basis data terdapat pada organisasi yang dapat digunakan oleh seluruh pengguna yang memiliki hak akses. d. Improved data integrity, meningkatkan validitas dan konsistensi data tersebut. Integritas biasanya dijabarkan ke dalam constraints, yang mana aturan konsistensi database tidak mengijinkan untuk dilanggar. e. Improved security, meningkatkan database securitiy, memproteksi basis data dari pengguna yang tidak dikenal. f. Increased productivity, dalam file-based-systems deskripsi data dan logika pengaksessan data telah dibuat ke dalam beberapa program aplikasi, membuat program tergantung pada data.
12
g. Improved backup dan recovery services, meningkatkan backup data. Jika, kesalahan terjadi backup data dapat di-restored.
2.3.5 Kerugian DBMS Menurut Connolly dan Begg (2010, p80), kekurangan DBMS, yaitu : a. Complexity, dimana Database designers dan developers, data dan database administrators, serta end-users harus mengerti fungsinya untuk mengambil keuntungan penuh dari fungsi tersebut. Kesalahan dalam mengerti sistem dapat memberikan keputusan rancangan yang buruk, yang dapat mengakibatkan konsekuensi serius dari sebuah organisasi. b. Size, kompleksitas dan luasnya fungsionalitas membuat DBMS menjadi software yang sangat besar dan membutuhkan ruang disk serta memori substansial untuk menjalankannya secara efisien. c. Additional hardware costs, untuk mencapai performa yang dibutuhkan, sangat diperlukan membeli mesin besar, mesin yang didedikasikan untuk menjalankan DBMS. d. Higher impact of failure, sentralisasi sumber daya menambah kerentanan sistem. Setelah semua pengguna dan aplikasi bergantung pada ketersediaan dari DBMS, kesalahan komponen tertentu dapat menyebabkan operasi berhenti.
2.4 Teori Database System Development Lifecycle Menurut Connolly dan Begg (2010, p313), siklus hidup aplikasi database secara inheren terkait dengan siklus hidup sistem informasi. Penting untuk mengenali bahwa tahapan siklus hidup aplikasi database tidak selalu berurutan, tetapi melibatkan beberapa jumlah
13
pengulangan tahap sebelumnya melalui loop feedback. Berikut ditunjukkan tahapan daur hidup aplikasi database pada Gambar 2.1 di bawah ini.
Gambar 2.1 Database System Development Lifecycle
14
2.4.1 Database Planning (Perancangan Basis Data) Menurut Connolly dan Begg (2010, p313), aktivitas manajemen yang memungkinkan tahapan dari siklus hidup sistem database yang akan direalisasikan secara efisiensi dan seefektif mungkin.
2.4.2 System Definition (Definisi Sistem) Menurut Connolly dan Begg (2010, p316), menentukan ruang lingkup dan batas-batas dari sistem database, termasuk pandangan pengguna utama, penggunanya, dan area aplikasi. Pandangan pengguna mendefinisikan apa yang dibutuhkan dari sistem database dari perspektif peran pekerjaan tertentu (seperti sebagai Manajer atau Supervisor) atau area aplikasi enterprise (seperti pemasaran, personalia, atau pengontrol stok).
2.4.3 Requirement Collection and Analysis (Pengumpulan dan Analisis Kebutuhan) Menurut Connolly dan Begg (2010, p316), proses mengumpulkan dan menganalisis informasi tentang bagian dari organisasi yang harus didukung oleh sistem database, dan menggunakan informasi ini untuk mengidentifikasi persyaratan untuk sistem baru. Ada tiga pendekatan utama untuk mengelola persyaratan sistem database dengan pandangan beberapa pengguna, yaitu : i. The centralized approach (Pendekatan terpusat) ii. The view integration approach (Pendekatan integrasi tampilan) iii. A combination of both approach (Kombinasi dari pendekatan keduanya) Ada banyak teknik untuk mengumpulkan informasi ini, yang disebut fact finding techniques. Terdapat lima teknik fact finding yang umum digunakan : a. Mempelajari dokumen
15
b. Mewawancarai c. Mengamati kegiatan perusahaan d. Penelitian e. Kuisioner
2.4.4 Database Design (Desain Basis Data) Menurut Connolly dan Begg (2010, p320), proses menciptakan desain yang akan mendukung pernyataan misi perusahaan dan tujuan misi untuk sistem database yang diperlukan. Terdapat dua pendekatan perancangan database, yaitu : i.
Bottom-up Pendekatan ini dimulai pada tingkat dasar atribut (yaitu, sifat-sifat entitas dan relasi), yang melalui analisis hubungan antara atribut, dikelompokkan ke dalam relasi yang mewakili jenis entitas dan relasi antar entitas.
ii. Top-down Pendekatan ini dimulai dengan pengembangan model data yang berisi tingkat tinggi beberapa entitas dan relasi kemudian berturut-turut menerapkan perbaikan top-down untuk mengidentifikasi tingkat rendah entitas, hubungan dan atribut yang terkait. Perancangan database terdiri dari tiga fase yaitu : 1. Conceptual database design Menurut Connolly dan Begg (2010, p322), proses membangun suatu model data yang digunakan dalam suatu perusahaan, independen dari semua pertimbangan fisik.
16
Menurut Connolly dan Begg (2010, p470), langkah-langkah desain basis data konseptual : Langkah 1
: Membangun model data konseptual.
1.1
: Mengidentifikasi jenis entitas.
1.2
: Mengidentifikasi jenis relasi.
1.3
: Mengidentifikasi jenis dan menggabungkan atribut pada tiap entitas.
1.4
: Menentukan domain atribut.
1.5
: Menentukan candidate key, primary key, dan alternate key.
1.6
: Mempertimbangkan konsep pemodelan enhanched (optional).
1.7
: Memeriksa model untuk redundansi.
1.8
: Validasi model konseptual terhadap transaksi pengguna.
1.9
: Memeriksa
model
data
konseptual
terhadap
transaksi
pengguna. 2. Logical database design Menurut Connolly dan Begg (2010, p323), proses membangun model data yang digunakan dalam suatu perusahaan berdasarkan model data tertentu, tetapi independen dari DBMS tertentu dan pertimbangan fisik lainnya. Menurut Connolly dan Begg (2010, p490), langkah-langkah desain basis data logikal : Langkah 2
: Membangun dan memvalidasi model data logikal.
2.1
: Menurunkan hubungan model data logikal.
2.2
: Memvalidasi relasi menggunakan normalisasi.
2.3
: Memvalidasi relasi terhadap transaksi pengguna.
17
2.4
: Memeriksa integrity constraints.
2.5
: Tinjauan model data logikal dengan pengguna.
2.6
: Menggabungkan model data logikal menjadi model global (optional).
2.7
: Memeriksa model terhadap future growth.
3. Physical database design Menurut Connolly dan Begg (2010, p523), proses pendeskripsian implementasi basis data pada penyimpanan sekunder; proses itu menggambarkan basis relasi, organisasi file, dan indeks yang digunakan untuk mencapai akses yang efisien ke data, dan setiap kendala integritas terkait dan tahapan keamanan. Menurut Connolly dan Begg (2010, p523) langkah-langkah desain basis data fisikal : Langkah 3
: Menerjemahkan model data logis untuk target DBMS.
3.1
: Desain relasi dasar.
3.2
: Merancangan representasi derived data.
3.3
: Merancang general constraints.
Langkah 4
: Desain organisasi file dan indeks.
4.1
: Menganalisis transaksi.
4.2
: Memilih organisasi file.
4.3
: Memilih indeks.
4.4
: Mengestimasi ruang disk yang diperlukan.
Langkah 5
: Desain pandangan pengguna.
Langkah 6
: Desain mekanisme keamanan.
18
2.4.5 DBMS Selection (Pemilihan DBMS) Menurut Connolly dan Begg (2010, p325), pemilihan DBMS yang tepat untuk mendukung sistem basis data. Jika tidak ada DBMS yang sesuai maka bagian dari siklus hidup akan membuat seleksinya yaitu antara konseptual dengan desain logikal. Langkah-langkah dalam pemilihan DBMS : i. Menetapkan kerangka referensi belajar. ii. Daftar sederhana dari dua atau tiga produk. iii. Evaluasi produk. iv. Merekomendasikan seleksi dan menghasilkan laporan.
2.4.6 Application Design (Desain Aplikasi) Menurut Connolly dan Begg (2010, p329), desain user interface dan program aplikasi yang digunakan untuk memproses database. Rancangan aplikasi dibagi menjadi dua aspek, yaitu : 1. Transaction Design (Rancangan Transaksi) Menurut Connolly dan Begg (2010, p330), suatu tindakan, atau serangkaian tindakan yang dilakukan oleh single user atau program aplikasi, yang mengakses atau merubah isi database. Ada tiga tipe transaksi ini : i. Retrieval transactions. ii. Update transactions. iii. Mixed transactions 2. User Interface Design Guidelines i. Meaningful tittle. ii. Comprehensive instruction
19
iii. Familiar field tables. iv. Consistent use coler. v. Error message for fields vi. Completion signal.
2.4.7 Prototyping Menurut Connolly dan Begg (2010, p333), prototyping adalah membangun sebuah model kerja dari sistem basis data. Sebuah prototipe adalah model kerja tidak secara normal yang mempunyai semua fitur-fitur yang dibutuhkan atau yang menyediakan semua fungsi dari sistem akhir. Prototipe harus mempunyai keuntungan utama menjadi murah secara relatif dan cepat untuk dibangun. Ada dua strategi prototipe yang akhir-akhir sering digunakan : i. Requirements prototyping, menggunakan sebuah prototipe untuk mendiktekan persyaratan dari sebuah usulan sistem basis data dan setelah semua persyaratan selesai maka prototipe dibuang. ii. Evolutionary prototyping, menggunakan usulan yang sama, perbedaan yang penting adalah prototipe tidak dibuang tetapi dikembangkan lebih jauh menjadi pekerjaan sistem basis data.
2.4.8 Implementation (Implementasi) Menurut Connolly dan Begg (2010, p333), implementasi adalah realisasi fisikal dari basis data dan desain aplikasi. Implementasi basis data dicapai dengan menggunakan : i. Data Definition Language (DDL) yaitu sebuah bahasa yang mengijinkan DBA atau user untuk mendeskripsikan dan menamai entitas, atribut, dan relasi yang
20
dihubungkan untuk aplikasi, bersama dengan integritas terkait dan kendala keamanan. ii. Program aplikasi yang diimplementasi menggunakan bahasa generasi ketiga atau keempat (3GL atau 4GL) yaitu bahasa pemrograman tingkat tinggi seperti yang digunakan pada SQL dan QBE. iii. Bagian dari program aplikasi ini adalah transaksi basis data, yang diimplementasikan menggunakan Data Manipulation Language (DML) yaitu bahasa yang menyediakan seperangkat operasi untuk mendukung operasi dasar manipulasi data pada data yang ada dalam database. Pada DBMS, terpancang dengan sebuah bahasa pemrograman seperti Visual Basic (VB), VB.net, Phyton, Delphi, C, C++, C#, Java, COBOL, Fortran, Ada, atau Pascal. Keamanan dan integrity control dari sistem juga diimplementasikan. Beberapa kontrol ini diimplementasikan menggunakan DDL, tetapi yang lain mungkin butuh batasan luar dalam menggunakan DDL.
2.4.9 Data Conversion and Loading (Pengubahan dan Pemuatan Data) Menurut Connolly dan Begg (2010, p334), Data Conversion and Loading adalah mentransferkan
beberapa
data
yang
ada
ke
dalam
database
baru
dan
mengkonversikannya ke beberapa aplikasi yang ada untuk menjalankanya pada database baru tersebut.
2.4.10 Testing (Uji Coba) Menurut Connolly dan Begg (2010, p334), Testing adalah proses menjalankan sistem basis data dengan maksud menemukan kesalahan. Pengujian juga harus mencakup
21
kegunaan dari sistem basis data. Idealnya, sebuah evaluasi harus dilakukan terhadap spesifikasi kegunaannya. Contoh kriteria yang dapat digunakan untuk melakukan evaluasi meliputi : 1. Learnability, berapa lama waktu yang dibutuhkan pengguna baru untuk menjadi produktif dengan sistem. 2. Performance, seberapa baik respon sistem sesuai praktek kerja pengguna. 3. Robustness, seberapa toleransinya sistem dari kesalahan pengguna. 4. Recoverability, seberapa baik sistem pulih dari kesalahan pengguna. 5. Adaptability, seberapa dekat sistem terkait dengan satu model pekerjaan Setelah pengujian selesai, sistem basis data siap untuk ‘ditandatangani’ dan diserahkan pada pengguna.
2.4.11 Operational Maintenance (Perawatan Operasional) Menurut Connolly dan Begg (2010, p335), Operational Maintenance adalah proses pemantauan dan pemeliharaan instalasi sistem basis data berikut. Tahap pemeliharaan ini melibatkan dua kegiatan yaitu : i. Pemantauan kinerja sistem. Jika kinerja turun ke bawah tingkat yang dapat diterima, tuning atau reorganisasi basis data mungkin diperlukan. ii. Memelihara dan meningkatkan sistem basis data melalui tahap-tahap sebelumnya dari siklus hidup.
22
2.5 Teori Entity-Relational Modelling (ER Model) Menurut Connolly dan Begg (2010, p371), ER Model adalah pendekatan top-down untuk merancang basis data yang diawali dengan mengidentifikasi data penting yang disebut entitas dan relasi antar data yang harus diwakili dalam model tersebut. 1. Entity Types (Jenis Entitas) Menurut Connolly dan Begg (2010, p372), sekelompok objek dengan sifat yang sama, yang diidentifikasi oleh perusahaan memiliki eksistensi yang independen. Konsep dasar dari ER model adalah tipe entitas, yang mewakili sekelompok ‘benda’ di ‘dunia nyata’ dengan sifat yang sama. Entity occurance adalah sebuah objek diidentifikasi secara unik suatu entitas. Tiap objek yang diidentifikasi secara unik dari sebuah tipe entitas merujuk pada kesederhanaan sebuah entity occurrence. 2. Relationship Types (Tipe Relasi) Menurut Connolly dan Begg (2010, p374), sebuah set asosiasi yang bermakna antar jenis entitas. Sebuah tipe relasi adalah set asosiasi antara satu atau lebih partisipasi tipe-tipe entitas. Seperti tipe-tipe entitas dan entitas-entitas, perlu untuk membedakan antara istilah ‘relationship type’ dan ‘relationship occurrence’. Sebuah relationship occurrence menunjukkan hubungan entitas tertentu yang terkait. Pertimbangkan jenis relasi yang disebut Has, yang merupakan hubungan antara entitas Branch dan Staff, yang memiliki Branch Has Staff. Kita dapat memeriksa contoh kejadian individual dari relasi Has menggunakan sebuah semantic net. Semantic net adalah sebuah model tingkat-objek, yang
23
menggunakan simbol • untuk merepresentasikan entitas-entitas dan simbol untuk merepresentasikan relasi.
Gambar 2.2 Semantic Net
a. Degree of Relationship Type Menurut Connolly dan Begg (2010, p376), jumlah partisipasi tipe entitas dalam sebuah relasi. Entitas yang ikut dalam suatu tipe relasi tertentu disebut dengan peserta relasi. Relasi dua derajat diebut binary, relasi tiga derajat disebut ternary. Relasi empat derajat disebut quaternary.
Gambar 2.3 Relasi Dua Derajat
24
Gambar 2.4 Relasi Tiga Derajat
Gambar 2.5 Relasi Empat Derajat
b. Recursive Relationship Menurut Connolly dan Begg (2010, p378), sebuah tipe relasi dimana tipe entitas yang sama berpartisipasi lebih dari sekali dan berbeda peran.
25
Relasi dapat diberikan nama peran untuk menunjukkan tujuan bahwa setiap jenis entitas yang berpartisipasi bermain dalam sebuah relasi. 3. Atribut Menurut Connoly dan Begg (2010,p379), sebuah properti dari entitas atau tipe relasi. Atribut dapat diklasifikasi menjadi : i. Simple and Composite Attributes Menurut Connolly dan Begg (2010, p379), sebuah atribut yang terdiri dari komponen tunggal dengan keberadaan independen. Composite Attributes adalah sebuah atribut yang terdiri dari beberapa komponen, masing-masing dengan keberadaan independen. ii. Single-Valued and Multi-Valued Attributes Menurut Connolly dan Begg (2010, p380), sebuah atribut yang memegang nilai tunggal untuk setiap kemunculan suatu entitas. Multi-Valued Attributes adalah sebuah atribut yang memegang beberapa nilai untuk setiap kemunculan suatu entitas. iii. Derived Attributes Menurut Connolly dan Begg (2010, p380), sebuah atribut mewakili nilai yang diturunkan dari nilai atribut terkait atau sekumpulan atribut, belum tentu dalam tipe entitas yang sama. iv. Keys Menurut Connolly dan Begg (2010, p381), keys dibagi menjadi lima jenis : a. Candidate Keys Set atribut minimal yang secara unik mengidentifikasi setiap kemunculan dari tipe entitas.
26
b. Primary Keys Sebuah candidate key yang dipilih untuk mengidentifikasi secara unik, tiap kejadian pada sebuah tipe entitas. c. Composite Keys Sebuah candidate key yang terdiri dari dua atau lebih atribut. d. Alternate Keys Candidate key yang tidak terpilih menjadi primary key, atau biasa disebut secondary key. e. Foreign Keys Himpunan atribut dalam suatu relasi yang cocok dengan candidate key dari beberapa relasi lainnya. 4. Strong and Weak Entity Types Menurut Connolly dan Begg (2010, p383), dapat dibedakan jenis entitas sebagai tipe yang kuat atau yang lemah. a. Strong Entity Type, adalah sebuah tipe entitas yang tidak tergantung pada keberadaan-beberapa jenis entitas lainnya. b. Weak Entity Type, adalah sebuah tipe entitas yang bergantung pada keberadaan-beberapa jenis entitas lain. 5. Structural Constraints Menurut Connolly dan Begg (2010, p385), hambatan yang harus mencerminkan pembatasan pada hubungan seperti yang dirasakan di ‘dunia nyata’. Tipe utama dari constraint pada relasi disebut multiplicity. Multiplicity adalah jumlah (atau batas) dari kejadian yang mungkin dari suatu entitas yang berelasi dengan suatu kejadian tunggal sebuah entitas dan terkait suatu relasi tertentu. Derajat binary
27
adalah yang paling sering digunakan dalam menentukan relasi. Relasi biner secara umum merujuk pada one-to-one (1:1), one-to-many (1:*), atau many-tomany (*:*).
Gambar 2.6 One-to-One (1:1) Relationships
Gambar 2.7 One-to-Many (1:*) Relationships
Gambar 2.8 Many-to-Many (*:*) Relationships
28
6. Multiplicity for Complex Relationships Jumlah (atau range) dari kejadian yang mungkin dari suatu entitas dalam suatu hubungan n ketika yang lain (n-1) nilainya tetap. a. Cardinality Menurut Connolly dan Begg (2010, p389), menjelaskan jumlah maksimum hubungan kejadian yang mungkin untuk suatu entitas yang berpartisipasi dalam jenis hubungan tertentu. b. Participation Menurut Connolly dan Begg (2010, p391), menentukan apakah semua atau hanya beberapa kejadian entitas berpartisipasi dalam suatu hubungan. Kendala partisipasi mewakili apakah semua kejadian entitas yang terlibat dalam suatu hubungan tertentu (merujuk sebagai partisipasi mandatory) atau hanya beberapa (merujuk sebagai partisipasi optional). Mandatory dibagi menjadi tiga jenis, yaitu : 1. Partisipasi Mandatory on both sides dari relasi 1:1. 2. Partisipasi Mandatory on one side dari relasi 1:1. 3. Partisipasi opsional on both sides dari relasi 1:1.
2.6 Teori Normalisasi Menurut Connolly dan Begg (2005, p416), sebuah teknik untuk memproduksi satu set hubungan dengan sifat yang diinginkan, mengingat kebutuhan data dari suatu perusahaan. Karakteristik dari sebuah set yang cocok hubungannya termasuk : 1. Jumlah minimal atribut yang diperlukan untuk mendukung kebutuhan data perusahaan.
29
2. Atribut dengan relasi logikal tertutup (dijelaskan sebagai ketergantungan fungsional) ditemukan didalam relasi yang sama. 3. Redundansi minimal dengan atribut masing-masing diwakili hanya sekali dengan pengecualian penting dari atribut yang membentuk semua atau sebagian dari foreign keys, yang penting untuk bergabung dengan relasi terkait.
2.6.1 Proses Normalisasi Menurut Connolly dan Begg (2010, p428), tiga bentuk normalisasi pada awalnya yang diusulkan disebut First Normal Form (1NF), Second Normal Form (2NF), Third Normal Form (3NF). Proses normalisasi : 1. Unnormalized form (UNF) Menurut Connolly dan Begg (2010, p430), suatu tabel yang terdiri dari satu atau lebih kelompok yang berulang (repeating group). Repeating group adalah sebuah atribut atau himpunan atribut di dalam tabel yang memiliki lebih dari satu nilai (multiple value) untuk sebuah primary key pada tabel tersebut. 2. First Normal Form (1NF) Menurut Connolly dan Begg (2010, p430), sebuah relasi dimana titik temu antara baris dan kolomnya mengandung hanya satu nilai. Ada dua pendekatan umum untuk menghilangkan repeating group dari tabel yang tidak normal, yaitu : a. Menempatkan data berulang bersama salinan atribut kunci pada relasi yang berulang. b. Menempatkan data berulang bersama salinan atribut kunci pada relasi yang terpisah. Sebuah primary key diidentifikasi ke dalam relasi.
30
3. Second Normal Form (2NF) Menurut Connolly dan Begg (2010, p434), sebuah relasi yang berada pada 1NF dan setiap atribut yang bukan primary key berfungsi secara penuh bergantung pada primary key-nya. 4. Third Normal Form (3NF) Menurut Connolly dan Begg (2010, p436), sebuah relasi yang berada pada 1NF dan 2NF, dan tidak ada atribut yang bukan primary key yang secara langsung bergantung kepada primary key-nya. 5. Boyce-Codd Normal Form (BCNF) Menurut Connolly dan Begg (2010, p447), BCNF berdasarkan pada functional dependencies yang mempertimbangkan semua candidate key dalam sebuah relasi. Sebuah relasi dalam BCNF jika dan hanya juka setiap determinant adalah sebuah candidate key. 6. Fourth Normal Form (4NF) Menurut Connolly dan Begg (2010, p457), sebuah relasi yang jika dan hanya jika setiap nontrivial multivalued dependency A ->> B, dimana A adalah candidate key dari relasi. 7. Fifth Normal Form (5NF) Menurut Connolly dan Begg (2010, p458), sebuah relasi jika dan hanya jika setiap join dependency (R1, R2, … Rn) di dalam relasi R, setiap proyeksi mencakup candidate key dari relasi asli.
31
2.7 Teori Data Flow Diagram (DFD) Menurut Whitten, Bentley, dan Dittman (2004, p344), Data Flow Diagram adalah alat yang menggambarkan aliran data melalui sistem dan pekerjaan atau proses yang dilakukan oleh sistem. Menurut Whitten, Bentley dan Dittman (2004, p345), ada tiga simbol dan satu koneksi : i. Persegi panjang bersudut tumpul mewakili proses-proses atau pekerjaan yang harus dilakukan. Simbol ini digambarkan sebagai PROSES dari kerangka sistem informasi. ii. Kotak mewakili agen eksternal--batas sistem. Simbol ini digambarkan sebagai ANTARMUKA dari kerangka sistem informasi. iii. Kotak open-ended mewakili data stores, atau kadang-kadang disebut file atau database. Simbol ini digambarkan sebagai DATA dari kerangka sistem informasi. iv. Panah merepresentasikan aliran data, atau input dan output ke dan dari proses tersebut.
Gambar 2.9 Simbol dan Koneksi DFD Bentuk Gane dan Sarson
32
2.8 Teori State Transition Diagram (STD) Menurut Whitten, Bentley, dan Dittman (2004, p673), State Transition Diagram adalah alat yang digunakan untuk menggambarkan urutan dan variasi layar yang dapat muncul ketika pengguna sistem mengunjungi terminal. Ada beberapa hal yang perlu diketahui dalam pembuatan STD, yaitu : a. State Adalah sebuah kondisi dari keadaan, atau form, yang dapat digunakan oleh komponen suatu sistem. Ada dua macam state, yaitu : i. Current State ii. Final State b. Transition Merupakan simbol yang menyatakan suatu perubahan dari suatu keadaan ke keadaan yang lain. c. Event Adalah suatu kejadian pada lingkungan eksternal yang dapat dideteksi oleh sistem. Kejadian tersebut dapat menyebabkan perubahan dari satu state ke state lainnya. d. Action Saat event muncul, terjadi transaksi sehingga komponen sistem menerima perubahan, state. Untuk itu dibutuhkan sebuah aksi untuk berpindah state. Aksi disini akan menghasilkan sebuah output atau tampilan. e. Output Merupakan hasil keluaran dari kalkulasi dan lain sebagainya.
33
2.9 Teori Software Development Lifecycle (SDLC) Untuk mengelola tingkat kompleksitas, sejumlah model SDLC atau metodologi telah diciptakan, salah satunya adalah Waterfall Model. Menurut Sommerville (2011, p31) Waterfall Model terbagi menjadi lima tahap:
Gambar 2.10 Waterfall Model 1. Requirements analysis and definition Layanan sistem, kendala, dan tujuan ditetapkan melalui konsultasi dengan pengguna sistem. Kemudian ditetapkan secara rinci dan berfungsi sebagai spesifikasi sistem. 2. System and software design Proses desain sistem mengalokasikan persyaratan untuk baik perangkat keras atau sistem perangkat lunak dengan membentuk arsitektur sistem secara keseluruhan. Desain perangkat lunak melibatkan identifikasi dan deskripsi fundamental abstraksi sistem perangkat lunak dan hubungannya.
34
3. Implementation and unit testing Selama tahap ini, desain perangkat lunak direalisasikan sebagai serangkaian program atau unit program. Unit pengujian melibatkan verifikasi bahwa setiap unit memenuhi spesifikasinya. 4. Integration and system testing Unit-unit program individu atau program diintegrasikan dan diuji sebagai sistem yang lengkap untuk memastikan bahwa persyaratan perangkat lunak telah dipenuhi. Setelah pengujian, sistem perangkat lunak dikirimkan ke pelanggan. 5. Operation and maintenance Biasanya (meskipun tidak harus), ini adalah fase siklus hidup terpanjang. Sistem ini di-instal dan mulai digunakan. Pemeliharaan melibatkan mengoreksi kesalahan yang tidak ditemukan pada tahap awal dari siklus hidup, meningkatkan pelaksanaan unit sistem dan peningkatan jasa sistem sebagai kebutuhan yang baru ditemukan.
2.10 Integrity Constraints Menurut Connolly dan Begg (2010, p577), integrity constraints juga berkontribusi mempertahankan sistem basis data yang aman dengan mencegah data dari yang tidak valid, dan hasil yang tidak benar. Menurut Connolly dan Begg (2010, p153), Integrity Constraints dibagi menjadi empat jenis yaitu : 1. Nulls, merepresentasi yang sebuah nilai untuk sebuah atribut yang tidak diketahui dengan jelas atau tidak berlaku untuk tuple ini.
35
2. Entity Integrity, hubungan dasar, tidak ada atribut dari primary key yang bisa null. 3. Referential Integrity, jika foreign key ada dalam relasi, baik nilai foreign key harus sesuai dengan nilai candidate key dari beberapa tuple dalam home relation atau foreign key harus sepenuhnya null. 4. General Constraints, tambahan aturan yang ditetapkan oleh pengguna atau administrator basis data dari basis data yang mendefinisikan atau membatasi beberapa aspek dari perusahaan.
2.11 Database Security Menurut Connolly dan Begg (2010, p568), Database Security adalah mekanisme yang melindungi basis data terhadap ancaman disengaja atau tidak disengaja. Keamanan basis data bertujuan untuk meminimalkan kerugian yang disebabkan oleh peristiwa diantisipasi dengan cara yang hemat biaya tanpa terlalu membatasi pengguna. Menurut Connolly dan Begg (2010,p569), salah satu jenis keamanan untuk basis data yaitu menghindari threats. Threats yaitu setiap situasi atau kejadian, baik disengaja atau tidak disengaja, yang dapat merugikan sistem dan berakibat pada organisasi.
2.12 Backup and Recovery Menurut Connolly dan Begg (2010, p576), backup adalah proses periodik yang menyalin dari file basis data dan log (program) ke media penyimpanan offline. Dalam hal kegagalan yang membuat database tidak dapat digunakan, salinan cadangan dan rincian ditangkap dalam file log yang digunakan untuk mengembalikan database ke
36
tahapan terbaru yang kemungkinan konsisten. Keuntungan dari journal adalah bahwa dalam hal kegagalan, database dapat dikembalikan ke keadaan terakhir yang konsisten dikenal dengan menggunakan salinan cadangan dari database dan informasi yang terdapat dalam file log. Jika journal tidak diaktifkan pada sistem gagal, satu-satunya alat pemulihan adalah untuk mengembalikan database menggunakan versi terbaru dari database. Namun, tanpa file log, setiap perubahan yang dilakukan setelah last backup ke database akan hilang.
2.13 Pengertian Internet Mengacu pada pendapat Barry dan Mick (2001, p20-24), internet adalalah sebuah jaringan yang menghubungkan jaringan-jaringan komputer yang ada di seluruh dunia. Internet mencapai integrasi dari jaringan-jaringan komputer dengan menerapkan protokol komunikasi kepada jaringan komputer yang dapat berkomunikasi. Protokol tersebut yang menentukan cara pesan disandikan, jenis pesan yang dapat dikirim dan yang harus dikirim. Penggunaan internet saat ini penting karena melalui internet pengguna dapat mengakses informasi dengan lebih mudah, biaya yang rendah, serta berkomunikasi dengan lingkup yang lebih luas baik di dalam maupun di luar organisasi.
2.14 Pengertian Web Barry dan Mick (2001, p24) berpendapat bahwa web adalah sebuah aplikasi internet yang menyediakan cara sederhana untuk mengakses informasi dan menjalankan program yang tersimpan di komputer yang terhubungan dengan internet. Menurut Barry dan Mick (2001, p190) web menggunakan internet untuk menyediakan fasilitas : i. menyimpan informasi,
37
ii. mencari dan mengambil informasi, iii. menyimpan dan mengeksekusi program komputer, iv. memasukkan dan memanipulasi informasi.
2.15 Sistem Web Basis Data Mengacu pada pendapat Barry dan Mick (2001, p38), sistem web basis data adalah sistem dimana kedua teknologi web dan database digunakan. Sistem ini menyediakan akses yang lebih luas terhadap database , sistem lebih terdistribusi, memberikan layanan lebih melalui sistem yang lebih terintegrasi.
Barry dan Mick (2001, p36) mengatakan bahwa penggunakan database dan teknologi web dalam suatu sistem tunggal menguntungkan dalam situasi : i. Akses ke database lebih luas Dengan menghubungkan suatu sistem database ke web memungkinkan database diakses di seluruh dunia. ii. Sistem terdistribusi Web memberikan kesempatan database dan aplikasi untuk terdistribusi sehingga data dapat disimpan di manapun ia digunakan dan/atau aplikasi dapat diletakkan di tempat yang mendukung kegiatan tersebut berlangsung. iii. Querying, manipulasi dan administrasi data web lebih baik DBMS menyediakan fasilitas canggih untuk querying data, manipulasi dan administrasi.
38
Menurut Barry dan Mick (2001, p262-263), desain sistem web basis data, bukan sistem basis data konvensional, menambahkan dua komplikasi : 1. Desain halaman web, menyangkut : i. Representasi web data : penyajian data sebagai halaman web, diambil dari database atau masukan oleh pengguna. ii. Asosiasi web data : desain link untuk navigasi dalam dan di antara halaman web. iii. Desain antarmuka web desain fitur halaman web. 2. Desain konektivitas antara halaman web dan database, menyangkut : i. Pemetaan web basis data logikal : definisi pemetaan antara data yang ditampilkan dalam halaman web dan data yang disimpan dalam basis data. ii. Pemetaan web basis data fisikal : pelaksanaan mekanisme data yang akan dilewatkan antara halaman web dan database.
2.16 Arsitektur Aplikasi Web Basis Data Menurut Castagnetto et al. (2000, p249), bagian dasar dari lapisan web basis data adalah i. The client : web browser pengguna. ii. The application logic : dikodekan dalam algoritma yang digunakan dalam CGI scripts, modul khusus dari web server. iii. The database connectivity : API basis data, atau konektivitas protokol umum. iv. The database server : RDBMS.
39
Implementasi aplikasi tersebut dapat dilakukan dengan menggunakan model multitiered, karena satu atau lebih lapis dapat bersatu bersama-sama. Implementasi yang biasa digunakan adalah sistem three-tiered : 1. First tier : web client ( browser pengguna) 2. Second tier : web server, CGI script dan connection API untuk basis data (seperti Apache) 3. Third tier : the database server ( MySQLserver)
2.17 Modul AMP (Apache, MySQL, and PHP) Menurut Elizabeth et al. (2005, p5-7), karakteristik tiga kompomen pada modul AMP : i. Apache Bertindak sebagai Web server. Tugas utamanya adalah menguraikan semua data yang diminta dan menampilkan hasil yang tepat sesuai dengan kode dalam file. ii. PHP (PHP Hypertext Prepocessor) Adalah sebuah bahasa pemograman pada server-side yang memungkinkan situs web menjadi lebih dinamis. iii. MySQL Adalah sebuah konstruksi database yang memungkinkan PHP dan Apache bekerja sama untuk mengakses dan menampilkan data pada browser yang sesuai. Merupakan sebuah Structured Query Language server yang didesain untuk memuat banyak dan memproses sejumlah query yang kompleks. Sebagai sistem database relasional, MySQL memungkinkan banyak tabel yang berbeda disatukan dengan efisiensi dan kecepatan maksimum. MySQL adalah pilihan
40
tepat untuk menyediakan data melalui internet karena kemampuannya dalam menangani muatan banyak dan meningkatkan keamanan data.
2.18 Teori Laporan Keuangan Menurut Warren (2006, p 24-25), laporan keuangan merupakan suatu akuntasi yang menghasilkan informasi dari transaksi yang dicatat dan diikhtisarkan yang disiapkan bagi pemakai. Laporan keuangan yang utama bagi perusahaan adalah laporan laba rugi, laporan ekuitas pemilik, neraca, dan laporan arus kas. Urut-urutan penyusunan dan sifat data yang terdapat dalam laporan-laporan tersebut adalah sebagai berikut : a. Laporan Laba Rugi, suatu ikhtisar pendapatan dan beban selama periode waktu tertentu. b. Laporan Ekuitas Pemilik, suatu ikhtisar perubahan ekuitas pemilik yang terjadi selama periode tertentu. c. Neraca, suatu daftar aktiva, kewajiban, dan ekuitas pemilik pada tanggal tertentu. d. Laporan Arus Kas, suatu ikhtisar penerimaan kas dan pembayaran kas selama periode waktu tertentu.
2.18.1 Laporan Laba Rugi Warren (2006, p25) menjelaskan bahwa laporan laba rugi melaporkan pendapat dan beban selama periode waktu tertentu berdasarkan konsep penandingan atau pengaitan (matching concept). Konsep ini diterapkan dengan membandingkan atau mengaitkan beban dengan pendapatan yang dihasilkan selama periode terjadinya beban tersebut. Laba bersih atau keuntungan bersih (net income atau net profit) adalah kelebihan pendapatan terhadap beban-beban yang terjadi. Jika beban melebihi pendapatan, maka
41
disebut rugi bersih (net loss). Laba bersih meningkatkan ekuitas pemilik (modal), sedangkan apabila terjadi rugi bersih akan menurunkan ekuitas pemilik (modal).
Laporan keuangan pada bidang batubara terdiri dari unsur-unsur : i. SR yang merupakan hasil pembagian overburden terhadap produksi, ii. Penjualan Tonase yang merupakan jumlah dari penjualan domestik dan penjualan ekspor, iii. Bagian pemerintah yang merupakan 13,5% dari penjualan tonase, iv. Laba kotor yang merupakan jumlah dari penjualan, dhpb, harga pokok penjualan, v. Jumlah beban operasi yang merupakan jumlah dari beban operasi dan beban penjualan, vi. Laba usaha yang merupakan jumlah dari laba kotor dan jumlah beban operasi, vii. Jumlah pendapatan/(beban) lain-lain yang merupakan jumlah dari amortisasi, pendapatan pelabuhan, pendapatan bunga, keuntungan (beban) nilai tukar, keuntungan lain-lain, viii. Laba sebelum pajak yang merupakan jumlah dari laba usaha dan laba sebelum pajak, dan ix. Laba bersih yang di dapat dari jumlah laba sebelum pajak dan biaya pajak penghasilan.
2.18.2 Neraca Menurut Warren (2006, p27) neraca melaporkan jumlah aktiva, kewajiban, dan ekuitas pemilik. Warren (2006, p18) menjelaskan bahwa aktiva (assets) adalah sumber daya
42
yang dimiliki oleh perusahaan. Contohnya kas, tanah, pabrik dan peralatan. Hak atau klaim atas properti biasanya dibagi menjadi dua jenis utama : a. hak kreditor, memperlihatkan utang perusahaan yang disebut kewajiban (liabilities), dan b. hak pemilik yang disebut dengan ekuitas pemilik (owner's equity) Hubungan antara keduanya : aktiva = kewajiban + ekuitas pemilik.
Warren (2006, p25,27) menjelaskan bahwa laporan ekuitas pemilik melaporkan perubahan ekuitas pemilik selama jangka waktu tertentu yang disiapkan setelah laporan laba rugi, karena laba bersih atau rugi bersih periode berjalan harus dilaporkan dalam laporan ini. Laporan ekuitas pemilik dibuat sebelum mempersiapkan neraca, karena jumlah ekuitas pemilik pada akhir periode harus dilaporkan di neraca. Neraca memiliki unsur-unsur : i. Total aktiva lancar yang merupakan jumlah dari kas dan setara kas, piutang usaha, piutang lain-lain, persediaan, pajak pertambahan nilai, pajak dibayar dimuka, dan aktiva lancar lainnya, ii. Total aktiva lain lain yang merupakan jumlah dari aktiva tetap, biaya eksplorasi dan pengembangan ditangguhkan, piutang pajak, aktiva tidak lancar lainnya, iii. Jumlah aktiva yang merupakan jumlah dari total aktiva lancar dan total aktiva lain-lain, iv. Total kewajiban jangka pendek yang merupakan jumlah dari hutang usaha, hutang pajak, hutang lain-lain, dan biaya yang masih harus dibayar,
43
v. Total kewajiban jangka panjang yang merupakan jumlah dari hutang jangka panjang, kewajiban pajak tangguhan, kewajiban jaminan reklamasi, dan kewajiban jangka panjang lainnya, vi. Total ekuitas yang merupakan jumlah modal saham dan saldo laba (rugi), dan vii. Jumlah kewajiban dan ekuitas yang merupakan jumlah dari total kewajiban jangka pendek, total kewajiban jangka panjang, dan total ekuitas.
2.18.3 Laporan Penerimaan Negara Terdiri dari unsur-unsur : i. Pajak yang merupakan jumlah dari sejumlah pph pasal 21, pph pasal 22, pph pasal 23/26, pph pasal 25, pph pasal 29, ppn masukan, ppn keluaran, pajak penjualan, dan lumpsum payment, dan ii. Non Pajak yang merupakan jumlah dari dead rent, DHPB, konstribusi daerah, PNBP pinjam pakai kawasan hutan, dan BBN,SPW3D.
2.19 Perjanjian Karya Pengusahaan Pertambangan Batubara (PKP2B) PKP2B merupakan suatu perjanjian mengenai eksplorasi dan eksploitasi batubara yang ada di Indonesia. Perjanjian ini terjadi antara perusahaan pertambangan dengan pemerintah dan diawasi oleh Ditjen Pengusahaan Batubara. PKP2B juga menangani laporan keuangan perusahaan pertambangan yang tergabung dalam PKP2B.