BAB 2
LANDASAN TEORI
2.1 Teori-Teori Dasar/Umum Merupakan teori-teori pokok yang merupakan teori landasan bagi teori-teori lainnya yang terdapat dalam skripsi ini, yaitu: 2.1.1 Database 2.1.1.1 Pengertian Database Menurut Ramakrishnan dan Gehrke (2003, p3), database merupakan koleksi data-data yang terdiri atas entity dan relationship yang saling berhubungan satu dengan yang lain. Menurut Gerald V. Post (2005, p2), database merupakan kumpulan dari data yang disimpan dalam format yang telah distandarisasikan, didesain untuk dibagikan oleh banyak user. Menurut Connolly (2005, p15), database adalah sebuah koleksi data yang dipakai bersama dan terhubung secara logis dan deskripsi dari data ini dirancang untuk memenuhi kebutuhan informasi dari sebuah organisasi. Menurut Subekti (2004, p10), database adalah kumpulan terintegrasi dari occurences file / table yang merupakan representasi data dari suatu model enterprise. Menurut C.J Date, database adalah sistem terkomputerisasi yang tujuan utama adalah memelihara informasi dan membuat 7
8
informasi tersedia saat dibutuhkan. Sebuah sistem database dapat memiliki beberapa database. Setiap database dapat berisi/memiliki sejumlah objek database, yang antara lain yaitu : a. Field Field adalah sekumpulan kecil dari kata atau sebuah deretan angka - angka b. Record Record adalah kumpulan dari field yang berelasi secara logis. Contoh: nama, alamat, nomor telepon, dan sebagainya. c. File File atau berkas adalah kumpulan record yang berelasi secara logis. Contoh: berkas transaksi perusahaan A yang mempunyai record tanggal, kode barang, dan harga. d. Entity Entity adalah orang, tempat, benda, atau kejadian yang berkaitan dengan informasi yang disimpan. Contoh : pelanggan, pekerja dan sebagainya. e. Attribute Attribute adalah setiap karakteristik yang menjelaskan suatu entity. Contoh: nama pelanggan, umur pekerja, dan sebagainya. f. Primary key Primary Key adalah sebuah field yang nilainya unik yang tidak sama antara satu record dan record yang lain. Primary key digunakan sebagai tanda pengenal dari suatu field.
9
g. Foreign key Foreign key adalah suatu field yang nilainya berguna untuk menghubungkan primary key yang berada pada tabel yang berbeda. Jadi dapat disimpulkan bahwa database merupakan kumpulan data-data yang terdiri dari atribut-atribut, entity-entity, dan relationship dari informasi sebuah perusahaan yang dirancang untuk memenuhi kebutuhan informasi dari sebuah organisasi.
2.1.1.2 Relational Database Relational database adalah representasi logikal dari data. Data tersebut dapat diakses tanpa ada ketergantungan dengan struktur fisik dari database tersebut. Relational database merupakan sistem database yang paling banyak dipakai saat ini. Salah satu bahasa yang sering dipakai untuk memanipulasi data adalah SQL. Data dalam relational database disimpan di dalam sebuah tabel dimana terdapat kolom dan baris.
2.1.1.3 Teknik Normalisasi Dalam membangun suatu database teknik normalisasi selalu digunakan dalam proses analisis dan perancangan, sehingga informasi yang diperoleh dapat tersaji secara akurat dan benar serta sesuai dengan yang dimaksud. Teknik normalisasi adalah suatu teknik mendekomposisi atau memecah suatu tabel besar menjadi
10
beberapa tabel yang lebih sederhana dan spesifik. Tujuan dari teknik normalisasi adalah mengurangi terjadinya kerangkapan data, menghindari masalah di saat menambah data, mengedit data, dan menghapus data. Di dalam teknik normalisai terdapat beberapa tahapan yang harus dilalui agar suatu database menghasilkan informasi yang tepat, dan sesuai dengan yang dimaksud. Tahapan yang harus dilakukan adalah: 1. Bentuk normal pertama Bentuk normal pertama mempunyai ciri, yaitu setiap field mempunyai nilai yang bersifat atomic, tetapi masih terdapat beberapa nilai yang muncul berulang - ulang. Atomic yaitu atribut yang tidak dapat dipisah lagi. 2. Bentuk normal kedua Bentuk normal kedua mempunyai syarat yaitu bentuk tabel telah berada dalam bentuk normal pertama dan field bukan kunci baru harus tergantung pada field kunci primer sehingga dalam bentuk normal kedua harus sudah menentukan kunci field primer. 3. Bentuk normal ketiga Untuk menjadi bentuk normal ketiga suatu tabel harus dalam bentuk kedua dan semua atribut bukan kunci primer tidak mempunyai hubungan transitif. Dengan arti lain, setiap
11
atribut bukan kunci harus bergantung hanya pada kunci primer secara penuh.
2.1.2 Database Management System (DBMS) 2.1.2.1 Pengertian DBMS Menurut Jeffery, Lonnie, dan Kevin (2004, p524), Database Management System (DBMS) adalah perangkat lunak khusus yang digunakan untuk membuat, mengontrol, dan mengelola sebuah database. Menurut Gerald V. Post (2005, p2), Database Management System (DBMS) merupakan software yang mendefinisikan database, menyimpan data, mendukung query language, menghasilkan report, dan membuat data entry screen. Menurut Hoffer, Prescott, dan McFadden (2007, p49), DBMS adalah sebuah sistem perangkat lunak yang digunakan untuk membuat, merawat, dan menyediakan pengontrolan akses pada pengguna basis data. Menurut Connolly (2005, p16), Database Management System (DBMS) adalah sistem perangkat lunak yang memungkinkan user untuk mendefinisikan, membuat, memelihara, dan mengendalikan akses ke dalam basis data. Jadi, dapat disimpulkan bahwa Database Management System (DBMS) adalah suatu sistem perangkat lunak (software) yang digunakan untuk mendefinisikan, membuat, memelihara/mengontrol,
12
serta mengelola/mengendalikan akses ke dalam basis data yang saling bersangkutan. Sebuah DBMS biasanya memberikan fasilitas-fasilitas sebagai berikut: 1. Terdapat
fasilitas
yang
memungkinkan
user
untuk
mendefinisikan basis data, biasanya melalui sebuah Data Definition Language (DDL), DDL memungkinkan user untuk menspesifikasikan tipe data dan struktur data dan batasan dari data yang akan disimpan ke dalam basis data. 2. Terdapat
fasilitas
yang
memungkinkan
user
untuk
melakukan insert, update, delete, dan mengambil data dari basis data, biasanya melalui sebuah Data Manipulation Language (DML). Biasanya terdapat fasilitas untuk melayani
pengaksesan
data
yang
dinamakan
query
language. Bahasa query yang paling diakui adalah Structured Query Language (SQL), yang merupakan standar bahasa formal dan de fakto bagi DBMS relasional.
2.1.2.2 Komponen DBMS Environment DBMS Environment mempunyai komponen diantaranya adalah : (Connolly, 2005, p18-23) 1. Hardware a. Meliputi PC sampai dengan jaringan komputer.
13
b. Tempat penyimpanan secondary (magnetic disk), I/O device ex : disk drives, device controller, I/O Channels dan lainnya. c. Hardware processor dan main memory, digunakan untuk mendukung saat eksekusi sistem software database. 2. Software a. DBMS, sistem operasi, network software (jika diperlukan) dan program aplikasi pendukung lainnya. 3. Data a. Data pada sebuah sistem database baik itu single-user system maupun multi-user system harus terintegrasi dan dapat digunakan bersama (Integrated and Shared). b. Digunakan oleh organisasi dan deskripsi dari data disebut schema. 4. Procedures a. Instruksi dan aturan yang harus disertakan dalam mendesain dan menggunakan database dan DBMS. 5. People People ada 5 orang yaitu : a. DA (Data Administrator), seseorang yang berwenang untuk membuat keputusan strategis dan kebijakan data yang ada. b. DBA (Database Administrator), menyediakan dukungan teknis
untuk
implementasi
keputusan
tersebut,
dan
bertanggung jawab atas keseluruhan kontrol sistem pada level teknis.
14
c. Database Designer (Logical and Physical) d. Application
Programmers,
bertanggung
jawab
untuk
membuat aplikasi database dengan menggunakan bahasa pemrograman yang ada, seperti : C++, Java, dan lain-lain. e. End Users, siapapun yang berinteraksi dengan sistem secara online melalui workstation/ terminal.
2.1.2.3 Komponen DBMS DBMS mempunyai komponen di antaranya adalah : (Connolly, 2005, p53-55) 1. Query Processor, merupakan komponen utama dalam DBMS yang mengubah query ke dalam bahasa instruksi tingkat rendah yang ditujukan untuk database manager. 2. Database Manager (DM), DM berhadapan dengan program aplikasi dan query yang diajukan oleh user, DM menerima query dan
memeriksa
skema
eksternal
dan
konseptual
untuk
menentukan record konseptual apa yang dapat memenuhi permintaan user. Komponen software utama dalam DM : a. Authorization Control, modul ini memeriksa bahwa user memiliki otorisasi yang dibutuhkan untuk melakukan transaksi.
15
b. Command Processor, ketika sistem telah memeriksa otorisasi user, maka hak pengawasan dialihkan kepada command processor. c. Integrity
Checker,
untuk
operasi
yang
menyebabkan
perubahan database, integrity checker memeriksa bahwa operasi yang diminta memenuhi batasan-batasan integritas yang ada. d. Query Optimizer, modul ini menentukan strategi yang paling optimal untuk eksekusi query. e. Transaction Manager, modul ini menampilkan proses yang diinginkan dari suatu operasi. f. Scheduler, modul ini bertanggung jawab untuk memastikan bahwa operasi terhadap database yang berurutan tidak mengalami konflik satu dengan yang lainnya. g. Recovery Manager, modul ini memastikan database selalu berada pada kondisi yang konsisten jika terjadi kesalahan. h. Buffer Manager, modul ini bertanggung jawab untuk mentransfer data antara main memory dan secondary storage. 3. File Manager, memanipulasi file-file dasar yang tersimpan dan mengatur alokasi tempat penyimpanan. 4. DML Processor, modul ini mengkonversikan pernyataan DML dalam program aplikasi ke bentuk standar dari bahasa host. 5. DDL Compiler, mengkonversikan pernyataan DDL ke dalam sekumpulan tabel-tabel yang berisikan meta-data. Tabel-tabel ini
16
tersimpan di sistem katalog dan informasi pengawasannya disimpan pada file header data.
2.1.2.4 Keuntungan DBMS Adapun keuntungan DBMS menurut Connolly (2005, p26-29) adalah : 1. Penggunaan data bersama (The Data Can Be Shared). 2. Mengurangi kerangkapan data (Redundancy Can Be Reduced). 3. Menghindari ketidakkonsistenan data (Inconsistency Can Be Avoided). 4. Integritas data terpelihara (Integrity Can Be Maintained). 5. Keamanan terjamin (Security Can Be Enforced). 6. Kebutuhan user yang kompleks dapat teratasi (Balanced conflicting requirements). 7. Pelaksanaan standarisasi (Standards Can Be Enforced). 8. Meningkatkan produktivitas (Increased productivity). 9. Layanan backup dan recovery semakin baik (Improved backup and recovery services). 10. Peningkatan konkurensi (Increased concurrency). 11. Peningkatan aksesibilitas data dan tingkat responsi data (Improved data accessibility and responsiveness).
17
2.1.2.5 Kerugian DBMS Adapun kerugian DBMS menurut Connolly (2005, p29-30) adalah : 1. Kompleksitas 2. Memerlukan size/ukuran software yang besar. 3. Biaya dari suatu DBMS sangat mahal. 4. Biaya penambahan perangkat keras. 5. Biaya konversi tinggi. 6. Performa sistem dapat tidak sesuai dengan keinginan. 7. Menimbulkan pengaruh yang besar pada perusahaan jika terjadi kegagalan pada sistem.
2.1.2.6 Fungsi-Fungsi DBMS Adapun fungsi-fungsi DBMS menurut Connolly (2005, p48-52) adalah : 1. Penyimpanan, pengambilan, dan perubahan data. 2. Katalog yang dapat diakses oleh pengguna. 3. Dukungan transaksi. 4. Layanan kontrol konkurensi. 5. Layanan recovery. 6. Layanan kepemilikan (Authorization Services). 7. Dukungan komunikasi data. 8. Layanan integrasi. 9. Layanan untuk peningkatan independensi data.
18
10. Layanan utilitas.
2.1.2.7 Data Definition Language (DDL) Menurut Jeffery, Lonnie, dan Kevin (2004, p525), Data Definition Language (DDL) adalah sebuah bahasa yang digunakan oleh DBMS untuk menentukan sebuah database atau melihat/view database. View tersebut membatasi bagian dari sebuah database yang dapat digunakan atau diakses oleh para pengguna dan program yang berbeda. DDL digunakan oleh DBMS untuk menetapkan secara fisik tipe, record, field, dan hubungan struktural. Menurut Connolly (2005, p40), Data Definition Language (DDL) adalah sebuah bahasa yang memungkinkan DBA atau user untuk menggambarkan dan menentukan nama dari entitas, atribut, dan hubungan yang diperlukan untuk sebuah aplikasi, bersamaan dengan integritas yang terasosiasi dan batasan keamanan yang ada. Jadi, dapat disimpulkan bahwa Data Definition Language (DDL) adalah sebuah bahasa yang memungkinkan user untuk melihat database, maupun menggambarkan serta menentukan nama dari entitas, atribut, dan hubungan yang diperlukan untuk sebuah aplikasi.
2.1.2.8 Data Manipulation Language (DML) Menurut Jeffery, Lonnie, dan Kevin (2004, p525), Data Manipulation Language (DML) adalah bahasa DBMS yang digunakan untuk membuat, membaca, memperbarui, dan menghapus
19
record-record pada sebuah database dan untuk menjelajahi di antara record-record dan tipe-tipe record yang berbeda – misal, dari record CUSTOMER ke record ORDER untuk seorang pelanggan. Menurut Connolly (2005, p40), Data Manipulation Language (DML)
adalah
sebuah
bahasa
yang
memberikan
fasilitas
pengoperasian terhadap data yang ada di dalam basis data. Jadi, dapat disimpulkan bahwa Data Manipulation Language (DML) adalah bahasa DBMS yang dapat digunakan untuk mengubah atau mengoperasikan data. DML biasanya meliputi : 1. Memasukkan data yang baru ke dalam basis data. 2. Memodifikasi data yang tersimpan di dalam basis data. 3. Mengambil data yang terdapat di dalam basis data. 4. Menghapus data dari basis data.
2.1.2.9 Siklus Aplikasi Basis Data Menurut Connolly (2005, p283-285) ”As a database system is a fundamental component of the larger organization-wide information system” yang artinya sistem basis data merupakan suatu komponen dasar dari organisasi dengan sistem informasi yang besar. Hal ini sangat penting untuk diperhatikan karena struktur dari siklus hidup aplikasi basis data tidaklah harus benar-benar sekuensial, tetapi meliputi suatu perulangan dari bagan-bagan yang sebelumnya melalui umpan balik. Sebagai contoh, masalah yang dihadapi selama
20
perancangan basis data adalah masih diperlukannya analisis dan pengumpulan data tambahan. Untuk aplikasi basis data kecil dengan jumlah pengguna yang sedikit, siklus hidup tidak terlalu kompleks. Bagaimanapun juga, ketika perancangan sedang dilakukan pada suatu aplikasi basis data ukuran sedang dengan jumlah pengguna antara puluhan sampai dengan ribuan, dengan menggunakan ratusan queries dan program aplikasi, siklus hidup akan menjadi kompleks.
21
Berikut adalah siklus hidup aplikasi basis data:
Gambar 2.1 Siklus Hidup Aplikasi Basis Data (Sumber : Connoly, 2005, p284 )
22
Berikut ini ringkasan dari aktivitas utama yang ada disetiap langkah dari siklus hidup aplikasi sistem basis data, antara lain : a. Database Planning Merencanakan bagaimana tahapan dari siklus hidup bisa direalisasikan secara efektif dan efisien. b. System Definition Menspesifikasikan ruang lingkup dan batasan dari aplikasi sistem basis data, penggunanya, dan juga cakupan aplikasi tersebut. c. Requirements Collection and Analysis Mengumpulkan dan menganalisis permintaan user dan area aplikasi. d. Database Design Meliputi rancangan konseptual, logikal, dan fisikal dari basis data. e. DBMS Selection (optional) Memilih suatu DBMS yang cocok untuk aplikasi sistem basis data. f. Application Design Merancang antarmuka pemakai dan program aplikasi yang menggunakan dan memproses sistem basis data. g. Prototyping (optional) Membangun suatu model kerja dari aplikasi basis data, yang mana mengizinkan perancang atau pengguna untuk memvisualisasikan dan mengevaluasi bagaimana gambaran sistem secara keseluruhan dan fungsinya.
23
h. Implementation Membuat definisi basis data eksternal, konseptual, dan internal dan program aplikasinya. i. Data Conversion and Loading Memindahkan data dari sistem yang lama ke sistem yang baru. j. Application Testing Basis data diuji untuk mengetahui apakah masih ada error dan memvalidasi sesuai keinginan user. k. Operational Maintenance Aplikasi basis data benar-benar diimplementasikan. Sistem ini akan terus dimonitor dan dipelihara. Apabila diperlukan suatu permintaan akan dimasukkan ke dalam aplikasi basis data melalui tahapan-tahapan proses yang ada dalam siklus hidup.
2.1.3 Entity Relationship Menurut Connolly dan Begg (2005, p342), salah satu bagian yang sulit dalam perancangan basis data adalah suatu fakta bahwa para perancang, pembuat-pembuat program, dan end-user cenderung untuk melihat data dan menggunakannya dengan cara-cara yang berbeda, kecuali diperoleh sebuah pemahaman sama yang mencerminkan bagaimana suatu perusahaan beroperasi, suatu perancangan yang dihasilkan akan gagal untuk memenuhi kebutuhan-kebutuhan user. Untuk menyakinkan bahwa didapatkan sebuah pemahaman yang tepat dari suatu data dan bagaimana data tersebut digunakan oleh suatu perusahaan, sudah seharusnya mempunyai sebuah
24
model untuk membuat komunikasi yang non teknikal dan tidak bersifat ambigu, Entity relationship (ER) adalah salah satu contohnya. Pemodelan entity relationship adalah sebuah pendekatan topdown untuk perancangan basis data yang dimulai dengan mengidentifikasi suatu data penting yang disebut entitas-entitas dan hubungan diantara suatu data yang harus dipresentasikan dalam suatu model. Lalu tambahkan perincianperincian lagi seperti suatu informasi yang ingin diambil tentang suatu entitas-entitas dan hubungannya yang disebut atribut-atribut dan batasanbatasan yang lain pada suatu entitas-entitas relationship, atribut-atribut.
2.1.3.1 Entity Type Menurut Connolly (2005, p343), entity type adalah kumpulan dari objek yang mempunyai properties sama, yang diidentifikasi oleh perusahaan karena memiliki keberadaan yang bebas. Entity Occurrence, menurut Connolly (2005, p345) merupakan objek unik yang dapat diidentifikasi pada tipe entity. Menurut Silberschatz, Korth & Sudarshan (2004, p27), entity adalah sesuatu atau objek di dalam dunia nyata yang dapat dibedakan dari objek yang lain. Berdasarkan definisi di atas dapat disimpulkan bahwa entity adalah objek di dalam dunia nyata yang dapat dibedakan dari objek lain yang mempunyai properties sama dan diidentifikasi oleh perusahaan karena memiliki keberadaan yang bebas.
25
Gambar 2.2 Representasi Diagram dari entity type Staff dan Branch (Sumber : Connolly, 2005, p345)
2.1.3.2 Relationship Type Menurut Connolly (2005, p346), relationship type adalah kumpulan dari asosiasi yang memiliki arti di antara tipe entity, sedangkan relationship occurence adalah suatu asosiasi unik yang dapat diidentifikasikan, di mana mengandung satu occurence dari masing-masing tipe entity yang berpartisipasi.
Gambar 2.3 Representasi Diagram dari relationship type Cabang (Sumber : Connolly, 2005, p347)
2.1.3.3 Attributes Menurut Connoly (2005, p350), attributes adalah property atau sifat dari suatu entity atau tipe relationship. Attributes Domain
26
adalah kumpulan dari nilai yang diperbolehkan untuk satu atau lebih atribut. a) Simple and Composite Attributes 1)
Simple Attributes Menurut
Connolly
(2005,
p351),
simple attributes
merupakan atribut yang terdiri dari komponen tunggal dengan keberadaan yang bebas. 2)
Composite Attributes Menurut Connolly (2005, p351), composite attributes merupakan atribut yang terdiri dari banyak komponen, masing-masing dengan keberadaan yang bebas.
b) Single-Valued and Multi-Valued Attributes 1)
Single-Valued Attributes Menurut Connolly (2005, p351), single-valued attribute adalah atribut yang mempunyai nilai tunggal untuk setiap kejadian pada tipe entity.
2)
Multi-Valued Attributes Menurut Connolly (2005, p352), multi-valued attribute adalah atribut yang mempunyai banyak nilai untuk setiap kejadian pada tipe entity.
c) Derived Attributes Menurut Connolly (2005, p352), derived attributes adalah atribut yang mempresentasikan nilai yang dapat diturunkan dari
27
suatu atribut yang berelasi atau kumpulan dari atribut, yang tidak perlu pada entity yang sama.
2.1.3.4 Key Menurut Connolly (2005, p352-354), key terdiri dari : 1) Candidate Key Sekumpulan kecil attribute yang secara unik mengidentifikasikan setiap occurence dari suatu entity type. 2) Primary Key Candidate key yang terpilih secara unik untuk mengidentifikasi setiap occurence dari suatu entity type. 3) Composite Key Candidate key yang terdiri dari dua atau lebih attributes.
2.1.3.5 Strong and Weak Entity Menurut Connolly (2005, p354-355), strong entity type adalah tipe entity yang keberadaannya tidak tergantung pada beberapa
tipe entity yang
lain.
Misalnya, kita dapat
mengidentifikasi setiap anggota staff secara unik menggunakan atribut noStaff, yang merupakan primary key untuk tipe entity Staff. Sedangkan weak entity types adalah tipe entity yang keberadaannya bergantung dengan tipe entity lainnya.
28
2.1.3.6 Structural Constraints Constraint harus mencerminkan pembatasan (restriction) pada relationship sebagai perhatian (preceived) di dalam dunia nyata. Tipe utama dari constraint di dalam relationship disebut multiplicity. Menurut
Connolly
(2005,
p356), multiplicity adalah jumlah
(jangkauan) dari kemungkinan occurence tunggal dari sebuah entity yang bisa menghubungkan sebuah occurence tunggal dari tipe entity yang berasosiasi melalui relationship tertentu. Multiplicity menentukan cara dimana entity dihubungkan. Ini adalah sebuah representasi dari aturan bisnis yang ditetapkan oleh user atau perusahaan. Seperti yang disebutkan sebelumnya bahwa relationship berderajat dua yang disebut dengan binary, umumnya binary relationship bisa ditunjukkan sebagai hubungan one:to:one (1:1), onet:to:many (1:*), atau many:to:many (*:*). Multiplicity biasanya terdiri dari dua batasan terpisah, yaitu : 1) Cardinality Hal ini mendeskripsikan jumlah maksimum dari kemungkinan kejadian-kejadian yang saling berhubungan untuk sebuah partisipasi entitas dalam proses penentuan tipe relationship. 2) Participations Dalam hal ini menentukan apakah semua kejadian entity akan ikut berpartisipasi dalam sebuah relationship atau hanya beberapa saja yang ikut berpartisipasi.
29
2.1.4 Perancangan Basis Data Perancangan basis data adalah proses menciptakan desain untuk basis data yang akan mendukung operasi dan tujuan perusahaan (Connolly, 2005, p299). Langkah-langkah metodologi perancangan basis data adalah sebagai berikut (Connolly, 2005, p439) : 1) Perancangan basis data konseptual 2) Perancangan basis data logikal 3) Perancangan basis data fisikal
2.1.4.1 Perancangan Basis Data Konseptual Perancangan basis data konseptual adalah proses membangun sebuah model informasi yang digunakan sebuah perusahaan, bebas dari segala pertimbangan fisik (Connolly, 2005, p439). Tahap ini melibatkan pembuatan konseptual data model dari perusahaan. Data model konseptual dibuat dengan menggunakan informasi yang didokumentasikan dari spesifikasi kebutuhan user. Perancangan basis data konseptual ini tidak terikat dengan detail-detail seperti target
perangkat
lunak
DBMS,
program
aplikasi,
bahasa
pemrograman, platform perangkat keras atau dari perangkat fisik lainnya.
30
Langkah 1 Membangun model data lokal konseptual untuk setiap view 1) Langkah 1.1 Mengidentifikasi tipe entity Tipe entity adalah sekumpulan objek yang diidentifikasikan oleh sebuah perusahaan yang mempunyai sifat-sifat yang sama dan mempunyai keberadaan yang independen (Connolly, 2005, p343). Entity occurance adalah sebuah objek unik yang teridentifikasi dalam tipe entity (Connolly, 2005, p345). 2) Langkah 1.2 Mengidentifikasi tipe relationship Tipe relationship adalah sekumpulan hubungan antara satu atau lebih entity (Connolly, 2005, p346). Relationship occurance adalah sebuah hubungan unik antara satu atau lebih entity yang teridentifikasi dalam tipe relationship. 3) Langkah 1.3 Mengidentifikasi dan mengasosiasikan attributes dengan entity atau tipe relationship Attribute adalah sifat dari sebuah entity atau sebuah tipe relationship (Connolly, 2005, p350). Attribute menyimpan nilai dari setiap entity occurrence dan mewakili bagian utama dari data yang disimpan dalam basis data. Sebagai contoh, tipe entity Staff dapat dideskripsikan oleh attribute staffNo, name, position, dan salary. Simple attribute adalah suatu attribute yang terdiri atas komponen tunggal dengan keberadaan yang tidak terikat. Attribute ini tidak
31
dapat dipecah lagi menjadi komponen yang lebih kecil. Simple attribute terkadang juga disebut sebagai atomic attributes. Composite attribute adalah attribute yang terdiri atas banyak komponen, tiap-tiap komponen dengan keberadaan yang tidak terikat. Attribute tertentu dapat dibagi lagi menjadi komponen yang lebih kecil dengan keberadaan masing-masing yang tidak terikat. Single-valued attribute adalah attribute yang menampung nilai tunggal untuk tiap-tiap kejadian dari suatu tipe entity. Multi-valued attribute adalah attribute yang menampung banyak nilai untuk setiap kejadian dari suatu tipe entity. Derived attribute adalah attribute yang menggantikan sebuah nilai yang diturunkan dari nilai sebuah attribute yang berhubungan, tidak perlu pada jenis entity yang sama. 4) Langkah 1.4 Menentukan attribute domain Attribute domain adalah satuan nilai-nilai untuk satu atau beberapa
attribute
(Connolly,
2005,
p350).
Domain
mendefinisikan nilai-nilai yang dimiliki sebuah attribute dan sama dengan konsep domain pada relational model. 5) Langkah 1.5 Menentukan candidate dan primary key attributes Candidate key adalah kumpulan minimal dari attribute yang secara unik mengidentifikasikan setiap tipe entity (Connolly, 2005, p352).
32
Primary key adalah candidate key yang dipilih untuk secara unik mengidentifikasikan suatu tipe entity (Connolly, 2005, p353). 6) Langkah 1.6 Pertimbangkan untuk menggunakan konsep enchanced modelling (optional) Mempertimbangkan
penggunaan
spesialisasi,
generalisasi,
agregasi dan komposisi untuk melanjutkan pengembangan dari ER model. Jika memilih pendekatan generalisasi, maka kita mencoba untuk menyoroti perbedaan antara entity-entity dengan menjelaskan satu atau lebih subclasses dari sebuah entity superclass (Connolly, 2002, p432). a) Generalisasi / spesialisasi Konsep dari generalisasi dan spesialisasi dihubungkan dengan tipe-tipe entity khusus, yaitu superclass dan subclass, dan proses pewarisan atribut turunan (Connolly, 2005, p372). Dimana superclass merupakan induk dari beberapa kelompokkelompok berbeda keberadaannya pada suatu tipe entity sedangkan subclass merupakan kelompok bagian yang distinct dari suatu tipe entity. Spesialisasi merupakan proses memaksimalkan perbedaanperbedaan yang ada diantara anggota dari sebuah entity dengan mengidentifikasi perbedaan-perbedaan karakteristik yang ada. Spesialisasi
merupakan
mendefinisikan
sebuah
pendekatan kumpulan
dari
top-down superclass
untuk dan
hubungannya dengan subclass-subclassnya, dimana kumpulan
33
subclass dibasiskan pada beberapa perbedaan karakteristik. Sebagai contoh setiap pekerjaan biasanya mempunyai jabatan atau job roles tertentu seperti manajer, sekretaris, maupun sales. Jadi dapat dianggap manajer, sekretaris dan sales merupakan spesialisasi dari pegawai. Generalisasi merupakan proses meminimalisasi perbedaanperbedaan antar entity yang ada dengan mengidentifikasi persamaan-persamaan
karakteristiknya.
Generalisasi
merupakan pendekatan bottom-up. Terdapat dua constraints yang mungkin digunakan dalam generalisasi / spesialisasi yaitu (Connolly,2005,p378) : a. Participation constraint, constraint ini menentukan apakah setiap anggota dari superclass harus berpartisipasi sebagai anggota dari sebuah subclass. Terdapat dua kemungkinan yaitu: 1. Mandatory, dimana setiap anggota superclass harus menjadi anggota dari subclass. 2. Optional, dimana tidak setiap anggota superclass harus menjadi anggota subclass. b. Disjoint Constraint, constraint yang menjelaskan hubungan antar anggota dari subclass dan mengindikasikan apakah memungkinkan untuk seorang anggota dari superclass menjadi anggota dari satu atau lebih dari satu subclass. Terdapat dua kemungkinan yaitu :
34
1. Or, dimana setiap anggota superclass hanya boleh menjadi salah satu anggota subclass. 2. And, dimana setiap anggota superclass boleh menjadi anggota lebih dari satu subclass.
b) Agregasi Agregasi
merupakan
representasi
dari
sebuah
relasi
mempunyai sebuah (‘has-a relationship’) atau merupakan bagian dari (‘is-part-of relationship’) diantara tipe-tipe entity, dimana salah satu direpresentasikan sebagai keseluruhan (‘Whole’) dan yang lainnya menjadi bagian (‘Part’). Dalam agegrasi ‘whole’ merupakan representasi dari entity yang lebih besar yang mengandung entity yang lebih kecil ‘part’.
c) Komposisi Komposisi merupakan bentuk spesifik dari agegrasi yang merepresentasikan sebuah hubungan antar entity, dimana terdapat kepemilikan yang kuat selamanya diantara ‘whole’ dan ‘part’. Pada composition, ‘whole’ bertanggung jawab atas penempatan dari ‘part’, yang berarti bahwa composition harus mengatur penciptaan dan penghilangan dari ‘part’nya. Dengan kata lain, sebuah objek hanya boleh menjadi bagian dari sebuah composition pada suatu waktu.
35
7) Langkah 1.7 Periksa model untuk redundancy Pada langkah ini, periksa model data konseptual lokal dengan objektif yang spesifik untuk mengidentifikasi apakah ada terjadi redundancy dan menghapus yang sudah ada (Connolly, 2005, p453). Dua aktivitas dalam langkah ini antara lain : a) Memeriksa kembali one-to-one (1:1) relationship Dalam mengindetifikasikan entity-entity kita mungkin telah mengidentifikasikan dua entity yang merepresentasikan objek yang sama di perusahaan. b) Menghapus relationship yang redundant Sebuah relationship adalah redundant bila informasi yang sama dapat diperoleh melalui relationship lain.
8) Langkah 1.8 Validasikan model konseptual lokal yang bertentangan dengan transaksi user Untuk meyakinkan bahwa model konseptual lokal mendukung transaksi yang dibutuhkan oleh view (Connolly, 2005, p456). Ada dua pendekatan yang mungkin untuk memastikan bahwa data model konseptual lokal mendukung transaksi : a) Menyebutkan transaksi. b) Menggunakan jalur transaksi.
36
9) Langkah 1.9 Mengkaji ulang model data konseptual lokal dengan user Untuk mereview model data konseptual lokal dengan user untuk meyakinkan bahwa model adalah representasi yang nyata dari view. Model data konseptual lokal meliputi diagram ER dan dokumentasi yang mendukung yang menggambarkan model data.
2.1.4.2 Perancangan Basis Data Logikal Perancangan basis data logikal adalah proses membangun suatu model
informasi
yang
digunakan
dalam
suatu
perusahaan
berdasarkan suatu model khusus, tapi tidak tergantung kepada suatu DBMS tertentu dengan pertimbangan fisik lain (Connolly, 2005, p439). Langkah 2 Membangun dan memvalidasi model data logikal untuk setiap view 1) Langkah 2.1 Menghapus fitur yang tidak sesuai dengan relational model Menghilangkan relasi biner many-to-many, relasi rekursif manyto-many, relasi kompleks, dan atribut multi-valued. 2) Langkah 2.2 Menurunkan Relasi untuk Model Data Logikal Lokal Membuat
relasi
model
data
logikal
lokal
untuk
merepresentasikan entity, relationship, dan atribut yang telah diidentifikasi.
37
3) Langkah 2.3 Validasi relasi – relasi menggunakan normalisasi Proses normalisasi melibatkan beberapa langkah, antara lain : a) First Normal Form (1NF), menghilangkan repeating group b) Second
Normal
Form
(2NF),
menghilangkan
partial
dependencies pada primary key c) Third
Normal
Form
(3NF),
menghilangkan
transitive
dependencies pada primary key d) Boyce-Codd Normal Form (BCNF), menghilangkan anomalianomali yang masih tersisa dalam functional dependencies 4) Langkah 2.4 Validasi relasi – relasi dengan transaksi user Memeriksa relasi yang telah dibuat pada tahap sebelumnya apakah mendukung transaksi ini, untuk memastikan tidak ada kesalahan yang dibuat selama membuat relasi - relasi. 5) Langkah 2.5 Mendefinisikan integrity constraint Adalah constraint yang kita harapkan untuk menjaga agar database tetap konsisten. 6) Langkah 2.6 Review logical model data lokal dengan user Memeriksa kembali model
logikal
dan
menyediakan
dokumentasi untuk user
38
Langkah 3 Membangun dan memvalidasi model data logikal global 1) Langkah 3.1 Menggabungkan logical data model lokal ke dalam model global Menggunakan
ERD,
skema
relasional,
dokumentasi
yang
mendukung
kamus
untuk
data,
dan
mengidentifikasi
persamaan dan perbedaan antara model-model, dan membantu untuk menggabungkan model – model tersebut. 2) Langkah 3.2 Memvalidasi logical data model global Memvalidasi relasi yang telah dibuat dari model data logikal global menggunakan teknik normalisasi dan meyakinkan relasi tersebut mendukung kebutuhan transaksi yang ada. 3) Langkah 3.3 Cek untuk perkembangan selanjutnya 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. 4) Langkah 3.4 Review logical data model global dengan user Melakukan pemeriksaan kembali dengan user untuk menentukan apakah model ini sudah sesuai dengan representasi perusahaan.
2.1.4.3 Perancangan Basis Data Fisikal Perancangan basis data fisikal adalah proses untuk menghasilkan suatu deskripsi pengimplementasian dari suatu basis data pada media penyimpanan secondary, yang juga akan mendeskripsikan dasar dari
39
suatu relasi, organisasi file, dan juga index yang digunakan untuk mencapai suatu efisiensi pengaksesan data dan batasan-batasan integritas serta ukuran keamanan (Connolly, 2005, p439).
Langkah 4 Menerjemahkan model data logikal ke dalam target DBMS 1) Langkah 4.1 Merancang relasi – relasi dasar Menentukan bagaimana merepresentasikan relasi dasar yang telah diidentifikasikan di dalam model data logikal global ke dalam DBMS. 2) Langkah 4.2 Merancang representasi dari data yang diturunkan Menentukan bagaimana merepresentasikan beberapa data yang diturunkan dalam model data logikal global ke dalam DBMS. 3) Langkah 4.3 Merancang entreprise constraints Tujuan dari langkah ini adalah untuk merancang batasan perusahaan untuk DBMS yang dipakai.
Langkah 5 Merancang representasi fisikal 1) Langkah 5.1 Menganalisa transaksi Memahami fungsionalitas dari transaksi yang akan berjalan pada database dan untuk menganalisa transaksi – transaksi yang penting.
40
2) Langkah 5.2 Memilih organisasi file Menentukan organisasi file secara efisien untuk setiap relasi dasar. 3) Langkah 5.3 Memilih indeks – indeks Menentukan
apakah
penambahan
indeks
–
indeks
akan
meningkatkan performa dari sistem. 4) Langkah 5.4 Memperkirakan kebutuhan disk space Menentukan jumlah disk space yang dibutuhkan oleh database.
Langkah 6 Merancang user views Tujuan dari langkah ini adalah untuk merancang tampilan user yang diidentifikasi selama pengumpulan informasi dan analisis dari siklus hidup aplikasi sistem basis data. Langkah 7 Merancang mekanisme keamanan Tujuan dari langkah ini adalah untuk merancang ukuran keamanan untuk basis data yang telah dispesifikasi oleh user. Langkah 8 Mempertimbangkan pengenalan dari kontrol redundansi 1) Menggabungkan relasi one-to-one (1:1) 2) Menduplikasikan atribut non-key dalam relasi one-to-many (1:*) untuk mengurangi join. 3) Menduplikasikan atribut foreign key dalam relasi one-to-many (1:*) untuk mengurangi join. 4) Menduplikasikan atribut – atribut dalam relasi many-to-many (*:*) untuk mengurangi join.
41
5) Memperkenalkan repeating groups 6) Menggabungkan lookup tables dengan base relations. 7) Membuat extract tables Langkah 9 Memonitor dan menjalankan sistem operasional Memonitor sistem operasional dan meningkatkan performa sistem untuk memperbaiki keputusan rancangan yang tidak sesuai.
2.1.5 Data Flow Diagram (DFD) Menurut Whitten (2001, p308), Data Flow Diagram adalah alat yang menggambarkan aliran data yang melewati sistem beserta hasil yang diperoleh dari sistem tersebut. Menurut McLeod (2001, p401), Data Flow Diagram adalah suatu gambaran grafis dari suatu yang menggunakan sejumlah bentuk. Bentuk simbol untuk menggambarkan bagaimana data mengalir melalui suatu proses yang saling berkaitan. Walau nama diagram ini menekankan pada data, situasi justru sebaliknya, penekanannya ada pada proses. Simbol
Keterangan Proses adalah sesuatu untuk mengubah input dan output. Tiap simbol proses diidentifikasikan dengan tabel. Teknik pemuatan tabel yang paling umum adalah dengan
menggunakan
kata
kerja
atau
obyek, tetapi dapat juga menggunakan sistem atau program komputer.
42
Arus data terdiri dari sekelompok elemen data yang dapat digambarkan sebagai garis lurus atau lengkung. Penyimpanan data (data store) adalah suatu tempat penampungan data. Proses dapat memasukkan atau mengambil data dari data store.
Terminator (external entities) digunakan untuk menggambarkan elemen - elemen lingkungan yang berada di luar sistem, yang menandai titik-titik berakhirnya sistem. Dapat berupa sistem lain, orang atau organisasi.
2.1.6 State Transition Diagram (STD) State Transition Diagram (STD) adalah sebuah modeling tool yang menggambarkan ketergantungan waktu pada sistem real time dan human interface pada sistem online. Notasi yang paling penting dari STD adalah : 1. State Merupakan kumpulan keadaan atau atribut-atribut yang mencirikan benda atau orang pada waktu, keadaan, dan kondisi tertentu.
Notasi State
43
2. Transition (Perubahan) State Perubahan state ditandakan dengan tanda panah Kondisi Aksi
Ada 2 hal yang perlu ditambahkan untuk melengkapi STD, yaitu : 1.
Kondisi adalah keadaan lingkungan luar yang dapat dideteksi oleh sistem dan menyebabkan perubahan state. Kondisi dapat berupa sinyal, interrupt, dan lainnya.
2. Aksi adalah apa yang dilakukan sistem jika ada perubahan state. Aksi dapat menghasilkan keluaran, tampilan pesan pada layar pengguna, membuat kalkulasi, dan lainnya.
2.1.7 Aplikasi Web Aplikasi Web adalah suatu aplikasi yang dapat membentuk halaman – halaman Web berdasarkan permintaan pemakai. Aplikasi Web juga bisa mencakup permintaan interaktif ataupun kelompok diskusi. Aplikasi Web merupakan salah satu contoh aplikasi client/server. Client mewakili komputer
yang
digunakan
oleh
seseorang
pemakai
yang
hendak
menggunakan aplikasi, sedangkan server mewakili komputer yang menyediakan layanan aplikasi. Dalam konteks ini, client dan server berhubungan melalui Internet maupun Intranet. Yang menarik, model client/server yang menggunakana aplikasi Web dapat melibatkan bermacammacam platform.
44
Ciri khas lain pada penggunaan aplikasi Web, pemakai menggunakan perangkat lunak yang dinamakan Web browser atau sering disebut browser saja (misalnya Netscape Communicator, Internet Explorer, dan Mozilla) untuk mengakses aplikasi web. Komputer yang bertindak sebagai server umumnya menyediakan database server, selain Web Server yang ditujukan untuk melayani permintaan pemakai yang hendak mengakses aplikasi Web.Database server adalah server yang melayani akses terhadap database. Oracle dan MySQL merupakan contoh dari sekian database server. Adapun contoh Web server yaitu Apache (sangat terkenal di lingkungan Linux) dan IIS (Internet Information Server), yang merupakan andalan Microsoft. 2.1.7.1 Personal Home Page (PHP) Hypertext Pre-processor Personal Home Page (PHP) merupakan bahasa pemrograman yang hanya dapat berjalan pada server yang hasilnya dapat ditampilkan pada klien. PHP merupakan bahasa standar yang digunakan dalam dunia website. PHP adalah bahasa program yang berbentuk script yang diletakkan didalam server web. Hampir seluruh aplikasi berbasis web dapat dibuat dengan PHP ini, namun fungsi PHP yang paling utama adalah untuk menghubungkan basisdata dengan web. Dengan PHP, membuat aplikasi web yang terkoneksi ke database menjadi sangat mudah. Beberapa kelebihan PHP dibandingkan bahasa pemrograman sejenis seperti Perl, Microsoft Active Server Pages (ASP), Java Server Page (JSP) dan Allaire Cold Fusion adalah : (Welling dan Thomson, 2001, p4)
45
1. Kemampuan yang lebih tinggi 2. Kemampuan terhubung dengan banyak sistem basis data seperti MySQL, PostgreSQL, mSQL, Oracle, dbm, filepro, Hyperwave Informix, dan Interbase. 3. Biaya yang rendah karena untuk mendapatkan PHP tidak perlu mengeluarkan biaya. 4. Mudah dipelajari dan digunakan, karena PHP dibuat berdasarkan bahasa pemrograman dasar yaitu C dan Perl. 5. PHP dapat dijalankan pada beberapa sistem operasi seperti Linux, Solaris, IRIX, dan beberapa versi Microsoft Windows.
2.1.7.2 MySQL MySQL adalah salah satu database server yang sangat terkenal, disebabkan MySQL menggunakan SQL sebagai bahasa dasar untuk mengakses database. Software server MySQL pertama dibuat oleh Michael “Monthy” Widenius dan timnya pada tahun 1994. Pemakaian database MySQL yang dimaksud penulis adalah pengembang aplikasi database yang ingin menggunakan MySQL sebagai database-nya atau “backend“ dari aplikasi yang dibangun. Sedangkan MySQL mempunyai kelebihan dapat diakses oleh banyak bahasa pemrograman. MySQL merupakan database server yang ideal untuk data segala ukuran dengan kemampuan mempunyai kecepatan yang sangat tinggi dalam pemrosesan data, multi-
46
threaded, multi-user, dan query. Ukuran database MySQL lebih kecil file database yang lain. Beberapa pertimbangan programmer memilih MySQL sebagai “backend” dalam mengolah database adalah : 1. Kecepatan 2. Mudah digunakan 3. Open Source 4. Kapabilitas 5. Biaya murah 6. Keamanan 7. Lintas platform
2.1.8 Delapan Aturan Emas Desain User Interface Menurut Shneiderman (1998, p74) dalam merancang suatu user interface agar lebih efektif bagi pengguna, terdapat delapan aturan atau yang lebih dikenal dengan delapan aturan emas perancangan interface, yaitu: a) Konsistensi Konsistensi dilakukan pada urutan tindakan, perintah, dan istilah yang digunakan pada prompt, menu, serta layar bantuan. b) Memungkinkan pengguna untuk menggunakan shortcut Ada kebutuhan dari pengguna yang sudah ahli untuk meningkatkan kecepatan interaksi, sehingga diperlukan singkatan, tombol fungsi, perintah tersembunyi, dan fasilitas makro.
47
c) Memberikan umpan balik yang informatif Untuk setiap tindakan operator, sebaiknya disertakan suatu sistem umpan balik. Untuk tindakan yang sering dilakukan dan tidak terlalu penting, dapat diberikan umpan balik yang sederhana. Tetapi ketika tindakan merupakan hal yang penting, maka umpan balik sebaiknya lebih substansial. Misalnya muncul suatu suara ketika salah menekan tombol pada waktu input data atau muncul pesan kesalahannya. d) Merancang dialog untuk menghasilkan suatu penutupan Urutan tindakan sebaiknya diorganisir dalam suatu kelompok dengan bagian awal, tengah, dan akhir. Umpan balik yang informatif akan memberikan indikasi bahwa cara yang dilakukan sudah benar dan dapat mempersiapkan kelompok tindakan berikutnya. e) Memberikan penanganan kesalahan yang sederhana Sedapat mungkin sistem dirancang sehingga pengguna tidak dapat melakukan kesalahan fatal. Jika kesalahan terjadi, sistem dapat mendeteksi kesalahan dengan cepat dan memberikan mekanisme yang sedehana dan mudah dipahami untuk penanganan kesalahan. f) Mudah kembali ke tindakan sebelumnya Hal ini dapat mengurangi kekuatiran pengguna karena pengguna mengetahui kesalahan yang dilakukan dapat dibatalkan; sehingga pengguna tidak takut untuk mengekplorasi pilihan-pilihan lain yang belum biasa digunakan.
48
g) Mendukung tempat pengendali internal (internal locus of control) Pengguna ingin menjadi pengontrol sistem dan sistem akan merespon tindakan yang dilakukan pengguna daripada pengguna merasa bahwa sistem mengontrol pengguna. Sebaiknya sistem dirancang sedemikan rupa sehingga pengguna menjadi inisiator daripada responden. h) Mengurangi beban ingatan jangka pendek Keterbatasan ingatan manusia membutuhkan tampilan yang sederhana atau banyak tampilan halaman yang sebaiknya disatukan, serta diberikan cukup waktu pelatihan untuk kode, mnemonic, dan urutan tindakan.
2.2 Teori-Teori Khusus Merupakan teori-teori khusus yang merupakan teori tambahan bagi teoriteori umum yang sudah terdapat dalam skripsi ini, yaitu: 2.2.1 Teori Pemesanan Menurut Kamus Besar Bahasa Indonesia, pesan adalah kata baku dari pemesanan yang memiliki arti “hendak membeli supaya dikirim”. Pesanan adalah barang yang dipesan. Jadi pemesanan adalah proses, perbuatan, atau cara memesan. Dan pengertian pemesanan secara umum yaitu kondisi di mana pembeli melakukan pemesanan terhadap satu atau lebih barang yang ditawarkan oleh penjual.
49
2.2.2 Teori Penyewaan Menurut Anonymous (http://id.wikipedia.org/wiki/Penyewaan, p1), Penyewaan adalah sebuah persetujuan di mana sebuah pembayaran dilakukan atas penggunaan suatu barang atau properti secara sementara dalam waktu tertentu oleh orang lain.
2.2.3 Teori Administrasi Menurut Ulbert (1999) yang dikutip oleh Husein Umar (2004, p2) yaitu administrasi secara luas didefinisikan sebagai penyusunan dan pencatatan data dan informasi secara sistematis baik internal maupun eksternal dengan maksud menyediakan keterangan serta memudahkan untuk memperolehnya kembali baik sebagian maupun menyeluruh. Sementara secara sempit lebih tepat disebut tata usaha (clerical work, office work). Kegiatan tata usaha terdiri dari rangkaian beberapa kegiatan, yaitu penerimaan, pencatatan, pengklasifikasian, pengolahan, penyimpanan, pengetikan, penggandaan, pengiriman data, dan informasi secara tertulis yang diperlukan oleh organisasi.