BAB 2 LANDASAN TEORI
2.1 Pendekatan Sistem Basis Data 2.1.1 Sistem Menurut Hornby (2000,p1373), sistem adalah set ide dan teori yang terencana atau cara khusus melakukan sesuatu. Menurut Connolly dan Begg (2005, p270), sistem adalah suatu cara untuk mengumpulkan, mengatur, mengendalikan, dan menyebarkan informasi ke seluruh organisasi. Menurut O‟Brien (2003, p8), sistem adalah kumpulan elemen yang saling terhubung atau berinteraksi membentuk suatu kesatuan atau sekumpulan komponen yang saling terhubung dan bekerja sama untuk mencapai sasaran dengan menerima input dan menghasilkan output dalam sebuah proses transformasi yang terorganisir. 2.1.2 Data Menurut Inmon (2002, p388), data adalah kumpulan fakta, konsep ataupun instruksi yang terekam pada sebuah media penyimpanan untuk kegunaan
komunikasi, pengambilan, dan pemrosesan dengan cara
otomatis untuk dipresentasikan sebagai informasi yang dapat dimengerti oleh manusia. 8
9
Menurut Laudon (2000, p8), data merupakan aliran fakta yang mewakili kejadian yang terjadi dalam organisasi atau dalam lingkugan fisik sebelum mereka diatur menjadi sebuah bentuk yang dapat dimengerti dan digunakan oleh pengguna. Menurut Navathe dan Elmasri (2000, p4), data adalah fakta yang dapat disimpan dan memiliki arti. Menurut O‟Brien (2003, p13), data adalah fakta-fakta atau observasi yang belum diolah, biasanya mengenai kejadian atau transaksi bisnis. 2.1.3 Basis Data Menurut Date (2001, p5), sistem basis data adalah sebuah sistem penyimpanan data yang terkomputerisasi yang memiliki tujuan untuk menyimpan informasi dan memungkinkan user untuk mengambil dan mengubah informasi yang dibutuhkan. Menurut Sumathi dan Esakkirajan (2007, p2), basis data adalah kumpulan data yang terorganisasi dengan baik dan terhubung yang dapat diakses dengan perintah logikal yang berbeda. Menurut Connolly dan Begg (2005,p15), basis data adalah koleksi data bersama yang terhubung secara logikal dengan deskripsi dari data tersebut yang dirancang untuk memenuhi kebutuhan informasi dari suatu organisasi.
10
Menurut O‟Brien (2003, p145), basis data adalah kumpulan yang terintegrasi dari elemen data yang terhubung secara logikal. Elemen data mendeskripsikan entiti-entiti dan hubungan antar entitas. 2.1.4 Database Management System (DBMS) Menurut Inmon (2002, p388), DBMS adalah sistem piranti lunak berbasis komputer yang digunakan untuk membuat dan mengatur data. Menurut Sumathi dan Esakkirajan (2007, p3), DBMS adalah sistem yang kompleks yang memungkinkan user untuk melakukan banyak hal kepada data(memasukkan data, mengubah data, manipulasi data, dsb). Sedangkan menurut Connoley-Begg (2005, p16), DBMS adalah piranti linak yang memungkinkan user untuk mendefinisikan, membuat, menjaga, dan mengontrol akses ke basis data. DBMS adalah perangkat lunak yang berinteraksi dengana aplikasi pengguna dan basis data yang dirancang untuk mengatur basis data. Pada umumnya DBMS memiliki fasilitas sebagai berikut : 1. Memungkinkan user untuk mendefinisikan basis data dengan cara menspesifikasikan tipe data, struktur, dan batasan data yang akan disimpan di basis data dengan menggunakan DDL (Data Definition Language).
11
2. Memungkinkan user untuk melakukan insert, update, delete, dan retrieve data dari basis data dengan melalui Data Manipulation
Language
(DML).
Dengan
memiliki
penyimpanan pusat untuk semua data dan deskripsi data, memungkinkan DML untuk menyediakan fasilitas inquiry umum untuk data, yang disebut dengan query language. Query language yang paling umum adalah SQL (Structured Query Language). 3. Menyediakan akses yang terkendali pada basis data. Contoh : Sistem keamanan, yang mencegah user yang tidak terdaftar untuk mengakses basis data. Sistem integritas, yang memelihara konsistensi data yang tersimpan. Sistem kontrol konkurensi, yang memungkinkan akses bersama pada sebuah basis data. Sistem control recovery, yang mengembalikan basis data ke keadaaan sebelumnya yang konsisten jika peranti keras atau peranti lunak mengalami kegagalan. Sistem katalog akses, yang berisi penjelasan data pada sebuah basis data.
12
Gambar 2.1 Hal-hal yang dapat dilakukan pada DBMS
Kemampuan DBMS Menurut Connolly-Begg (2005, p18-21), ada lima komponen utama pada lingkungan DBMS yaitu : 1. Hardware ( perangkat keras ) DBMS dan aplikasi membutuhkan perangkat keras agar dapat berjalan. Perangkat keras itu dapat berkisar dari sebuah komputer pribadi ke sebuah mainframe, sampai pada sebuah jaringan dari komputer.
Perangkat
tergantung pada
keras
kebutuhan
tertentu organisasi
mungkin dan
diperlukan,
DBMS
yang
digunakan. 2. Software ( perangkat lunak ) Komponen perangkat lunak terdiri dari perangkat lunak DBMS itu sendiri dan program aplikasi, bersama-sama dengan sistem operasi, mencakup perangkat lunak jaringan jika sebuah DBMS digunakan melalui sebuah jaringan. Secara khusus, program
13
aplikasi ditulis dalam bahasa pemrograman generasi ketiga (3GL), seperti
Visual
Basic
.NET
atau
menggunakan
bahasa
pemrograman generasi keempat (4GL), seperti SQL, yang tertanam dalam 3GL. 3. Data Data merupakan komponen DBMS yang terpenting. Data berperan sebagai penghubung/jembatan antara komponen mesin dan komponen manusia. 4. Prosedur Prosedur adalah instruksi atau aturan yang mengatur perancangan dan penggunaan dari sebuah basis data. User dari sebuah sistem dan staf yang mengatur basis data membutuhkan prosedur yang terdokumentasi
tentang
bagaimana
menggunakan
atau
menjalankan suatu sistem. Prosedur mungkin terdiri atas instruksi tentang bagaimana untuk : masuk ke sebuah DBMS, menggunakan fasilitas DBMS atau program aplikasi, memulai dan menghentikan DBMS, membuat salinan backup basis data, menangani kesalahan hardware atau software, mengubah struktur tabel, menata kembali basis data pada multiple disk, meningkatkan performance, atau menyimpan data ke secondary storage.
14
5. People ( Manusia ) Adalah komponen terakhir yang terlibat dalam sebuah sistem. Ada empat jenis peran atau tugas manusia dalam lingkungan DBMS, yaitu: data administrator dan database administrator, logical database designer dan physical database designer, application developer, dan end useR (naïve user dan sophisticated user). DBMS memberikan banyak keuntungan seperti: 1. Mengurangi / mengontrol redudansi data (Control of data redundancy), pada sistem penyimpanan berbasis file yang lebih tradisional sering terjadi pemakaian ruang yang berlebih disebabkan oleh data yang sama. Dengan DBMS hal ini dapat dikurangi dengan mengintegrasikan file yang ada. 2. Meningkatkan konsistensi data (Data consistency), dengan mengurangi atau mengontrol redudansi data kita mengurangi resiko inkonsistensi. 3. Meningkatkan integritas data (Improve data integrity). Integritas data merujuk kepada kevalidan dan konsistensi dari data yang tersimpan. Integritas ini biasanya tercermin dari batasan (constraint) yang adalah aturan konsistensi yang tidak boleh dilanggar oleh basis data. 4. Mendapatkan informasi yang lebih dari jumlah data yang sama (more information from the same amount data), hal ini
15
dimungkinkan
karena
integrasi
dari
data
operasional
memungkinkan organisasi memperoleh informasi yang lebih banyak dari jumlah data yang sama. 5. Penggunaan data bersama (Sharing of data), apabila pada sistem berbasis file setiap file dimiliki oleh perorangan atau per departemen
yang
menggunakannya.
Sedangkan
dengan
menggunakan basis data yang dimiliki oleh organisasi maka semua user yang berhak dapat mengakses data tersebut. 6. Meningkatkan keamanan (Improve security), keamanan pada basis data adalah proteksi kepada basis data agar tidak diakses oleh user yang tidak terotorisasi. 7. Meningkatkan standar (Enforcement of standards). Terdiri dari sebuah standar format data dari departemen, organisasi, nasional, maupun internasional seperti fasilitas perubahan data, penamaan, dan peng-update-an prosedur. 8. Penghematan (Economy of scale). Penghematan biaya bisa dilakukan dengan menggabungkan semua data operasional suatu organisasi ke dalam satu
basis data sehingga
aplikasi yang
bekerja dengan satu sumber data saja dan menyebabkan penghematan biaya. 9. Menyeimbangkan kebutuhan yang berbenturan (Balance of conflicting requirements). DBA (Database Administrator) akan merancang dan memutuskan penggunan basis data secara
16
operasional yang akan menyediakan penggunaan terbaik dari sumber daya yang adalah terbaik untuk keseluruhan organisasi. 10. Meningkatkan akses dan ketersediaan data dan
informasi
(improved data accesibility and responsiveness), ini adalah hasil dari integrasi karena data melewati batasan departemental sehingga dapat langsung diakses oleh pengguna akhir. 11. Meningkatkan produktivitas (Increased productivity). DBMS menyediakan standardisasi fungsi sehingga mengurangi beban dari Programmer dan DBMS terdiri dari tool yang dapat menyederhanakan pengembangan dari suatu aplikasi database sehingga dapat meningkatkan produktivitas programmer dan mengurangi waktu pengembangan. 12. Meningkatkan
pemeliharaan
melalui
independensi
data
(Improved maintenance through data independence), DBMS memisahkan deskripsi basis data dari program aplikasi, sehingga program aplikasi tidak dapat mengubah database. 13. Meningkatkan konkurensi (increased concurrency). Pada sistem yang lebih tradisional apabila satu file diakses oleh lebih dari satu maka dapat terjadi kemungkinan masing-masing proses akan saling mengganggu yang akan meyebabkan hilangnya informasi bahkan hilangnya integritas. DBMS memiliki kemampuan untuk mengatur konkurensi data dan memastikan masalah di atas tak terjadi.
17
14. Meningkatkan backup dan perbaikan (Improved backup and recovery services), File-based system menyediakan batasanbatasan terhadap user untuk menjaga data dari kesalahan dari sistem komputer atau program aplikasi. Jika terjadi kesalahan, backup akan di-restore dan pekerjaan setelah backup akan dihilangkan. DBMS juga memiliki kelemahan seperti : 1. Kompleksitas (Complexity) DBMS merupakan software yang sangat kompleks. Salah mengerti sistem akan
mengakibatkan rancangan yang buruk,
yang akan mengakibatkan konsekuensi yang serius kepada suatu organisasi. 2. Ukuran (Size) Kekompleksan DBMS membuat ukurannya menjadi sangat besar sehingga harus menyediakan disk dan memory dengan kapasitas besar agar dapat berjalan dengan lancar. 3. Biaya DBMS (Cost of DBMS) Biaya sebuah DBMS tergantung dari lingkungan dan fungsi yang disediakan. 4. Harga hardware (Additional hardware costs) Untuk mendapatkan tampilan yang bagus, membutuhkan mesin yang bagus dengan menambahkan hardware yang harganya tidak murah.
18
5. Biaya perubahan (Cost of conversion) Jika terjadi perubahan akan memakan banyak biaya seperti biaya hardware, DBMS yang baru, termasuk biaya pelatihan karyawan. 6. Tampilan (Performance) DBMS hanya bisa dijalankan pada beberapa aplikasi saja. 7. Tingkat kegagalan tinggi (Higher impact of failure) Dengan adanya sentralisasi penyimpanan akan mengakibatkan sistem cepat rusak. Penggunaan DBMS akan mengakibatkan operasi berhenti jika terjadi kesalahan. 2.1.5 Data Definition Language (DDL) Menurut Connolly-Begg (2005, p40), DDL adalah bahasa yang memungkinkan DBA atau pemakai untuk menggambarkan dan mendefinisikan entity, atribut, dan relationship yang diperlukan oleh aplikasi, beserta batasan integritas dan batasan keamanan. DDL digunakan untuk mendefinisikan suatu skema atau memodifikasi DDL yang ada. 2.1.6 Data Manipulation Language (DML) Menurut Connolly-Begg (2002, p41), DML adalah bahasa yang menyediakan sekumpulan operasi untuk mendukung manipulasi data pada suatu basis data. Operasi manipulasi data yang dijalankan berupa: Penambahan (insert) data baru pada basis data. Pengubahan (update) data yang ada pada basis data. Pencarian (retrieve) data yang ada pada basis data.
19
Penghapusan (delete) data yang ada dari basis data. Ada 2 macam tipe dasar DML yang digunakan yaitu : 1. Procedural DML Merupakan
bahasa
yang
memungkinkan
pemakai
untuk
memberitahu sistem tentang data apa saja yang dibutuhkan dan bagaimana caranya untuk menerima data. 2. Non-procedural DML Merupakan
bahasa
yang
memungkinkan
pemakai
untuk
mengetahui data apa saja yang dibutuhkan daripada mengetahui bagaimana data tersebut diperoleh. 2.1.7 Relation Database Management System (RDBMS) RDBMS
adalah
produk
yang
digunakan
untuk
mengimplementasikan basis data relasional. RDBMS memungkinkan pembuatan tabel relasional menjadi mudah dengan cara pendefinisian dan pembuatan tabel dan mengisinya dengan data.
Gambar 2.2 Gambar RDBMS
20
RDBMS pertama dicetuskan oleh Edgar F Codd. Codd mencetuskan Codd's 12 rules yang berisi 13 aturan (0 sampai dengan 12) yang mengatur apakah suatu DBMS pantas disebut RDBMS. (Sumathi, Esakkirajan, 2007, p65). Aturan 0 :
Sistem harus memiliki kualifikasi sebagai relasional, basis data, dan sistem manajemen. Agar sebuah sistem dianggap memiliki kualifikasi sebagai RDBMS,
sistem
tersebut
harus
menggunakan
fasilitas
relasionalnya saja untuk mengatur basis data. Aturan 1 :
Aturan informasi Semua informasi yang terdapat di dalam basis data relasional harus dapat diwakilkan secara eksplisit oleh satu dan hanya satu cara, dengan menggunakan nilai pada posisi kolom dan baris pada tabel.
Aturan 2 :
Aturan jaminan akses Semua data harus dapat diakses tanpa ambiguitas dengan menggunakan kombinasi nama tabel, nama kolom, dan nilai primary key.
Aturan 3 :
Pemberlakuan nilai Null Pada DBMS harus diizinkan untuk sebuah field bernilai kosong atau Null. Secara khusus harus dapat mendukung “informasi yang hilang dan informasi yang tidak dapat diaplikasikan”
Aturan 4 :
Katalog aktif online berdasar model relasional
21
Sistem harus dapat mendukung sebuah katalog online , inline , relasional yang dapat diakses oleh pengguna yang terotorisasi untuk kegunaan bahasa query regular . User harus dapat mengakses struktur basis data (katalog) dengan menggunakan bahasa query yang mereka gunakan untuk mengakses data pada basis data. Aturan 5 :
Aturan subbahasa yang komprehensif Sistem harus mampu mendukung minimal satu bahasa relasional yang : 1. Memiliki sintaks linear 2. Dapat digunakan baik secara interaktif dan di dalam aplikasi. 3. Mendukung operasi definisi data (termasuk definisi view), operasi manipulasi data, keamanan dan integritas konstrain, dan operasi manajemen transaksi (begin, commit, dan rollback).
Aturan 6 :
Aturan update view Semua view yang secara teoritis dapat diupdate
harus dapat
diupdate juga oleh sistem. Aturan 7 :
Insert, update, dan delete tingkat tinggi. Sistem harus mampu mendukung operasi insert, update, dan delete secara set pada satu waktu. Yang berarti data dapat diambil dari basis data relasional dengan set data yang dibangun dari data yang terdiri dari banyak baris dan banyak tabel. Aturan ini
22
mengatakan bahwa operasi insert, update, dan delete harus mendukung pengambilan set bukan hanya satu baris atapun satu tabel saja. Aturan 8 :
Independensi data fisikal Perubahan
yang terjadi pada level fisikal (bagaimana data
disimpan, baik dengan array maupun linked list) tidak harus menyebabkan perubahan pada aplikasi dan bagaimana user mengakses data. Aturan 9 :
Independensi data logikal Perubahan pada tingkat logikal (tabel, kolom, baris, dst) tidak harus
membutuhkan
perubahan
kepada
aplikasi
berdasar
strukturnya. Independensi data logikal lebih sulit dicapai daripada independensi data fisikal. Aturan 10 :
Independensi integritas Integritas konstrain harus dispesifikasikan secara terpisah dari program aplikasi dan disimpan di katalog. Harus dapat dimungkinkan
untuk
merubah
konstrain
tanpa
perlu
mempengaruhi aplikasi yang ada. Aturan 11 :
Independensi distribusi Sebaran dari porsi pada basis data ke lokasi yang beragam sebaiknya tak tampak dari sudut pandang pengguna basis data. Aplikasi yang ada harus dapat melanjutkan pekerjaan dengan baik.
23
1. Pada saat versi tersebar dari DBMS pertama diperkenalkan; 2. Pada saat data tersebar yang sudah ada disebar kembali ke sistem. Aturan 12 :
Aturan nonsubversi Apabila sistem menyediakan antar-muka tingkat rendah, maka antar-muka tidak dapat dipakai untuk meng-subvert sistem. Contohnya untuk bypass keamanan relasional ataupun integritas konstrain.
2.1.8 Perancangan Basis Data 2.1.8.1
Perancangan Basis Data Konseptual Perancangan basis data konseptual menurut Connoly-Begg (2005,p439) adalah proses membangun model informasi yang digunakan organisasi, bebas dari semua pertimbangan fisik. Langkah-langkah dalam metodologi conceptual database design yaitu : Langkah 1 – Membangun Local Conceptual Data Model untuk setiap pandangan pengguna o Langkah 1.1 Mengidentifikasi tipe entitas Mengidentifikasikan kata benda atau frase kata benda pada spesifikasi kebutuhan pengguna, objek besar seperti orang, tempat, benda, atau konsep dapat digunakan untuk mencari tipe entitas. Cara lain adalah dengan mencari obyek bebas.
24
o Langkah 1.2 Mengidentifikasi tipe relasi Untuk mengidentifikasi relasi yang penting antara tipetipe entitas yang telah diidentifikasi. o Langkah 1.3 Mengidentifikasi dan menghubungkan atribut dengan entitas dan relasi Tujuannya untuk menghubungkan atribut dengan entitas dan tipe relasi yang tepat. Atribut yang dimiliki oleh setiap entitas dan relasi wajib memenuhi karakteristik atribut yaitu simple/composite attribute , single/multi-valued attribute , dan derived attribute . o Langkah 1.4 Menentukan domain atribut Domain adalah kumpulan nilai dimana satu atau lebih atribut memperoleh nilai true atau benar. o Langkah 1.5 Menentukan atribut Candidate Key, Primary Key, dan Alternate Key Untuk identifikasi candidate key setiap tipe entitas, dan jika ada lebih dari satu candidate key maka terpilih satu sebagai primary key dan sisanya dijadikan alternate key. o Langkah 1.6 Pertimbangkan penggunaan enhance modeling concepts Untuk menentukan specialization, generalization, aggregation, dan composition. Specialization adalah
25
proses memaksimalkan perbedaan antara anggota sebuah entitas dengan mengidentifikasi karakteristik yang membedakan entitas tersebut. Generalization adalah proses meminimalkan perbedaan antar entitas dengan
mengidentifikasi
sifat
umum
entitas.
Aggregation menggambarkan relationship „memiliki‟ atau „bagian dari‟ antar tipe entitas dimana yang satunya mewakili „keseluruhan‟ dan yang satunya mewakili „sebagian‟. o Langkah 1.7 Memeriksa redundansi Untuk mencek conceptual model untuk menghindari adanya redundansi dalam model. Dua kegiatan yang dilakukan pada tahap ini :
Memeriksa
kembali
One-to-One
Relationship
(1:1) Kemungkinan ada dua entitas atau lebih yang menggambarkan
objek
yang
sama
dalam
organisasi.
Menghilangkan relasi yang redundan Suatu relasi adalah redundan jika informasi yang dihasilkan sama dengan relasi yang lainnya.
o Langkah 1.8 Memvalidasi conceptual model dengan transaksi
26
Untuk memastikan local conceptual data model mendukung transaksi yang dibutuhkan oleh user. Dua pendekatan yang memungkinkan untuk memastikan local conceptual data model mendukung kebutuhan transaksi :
Menggambarkan
transaksi
(describing
the
transaction) Memeriksa semua informasi yang dibutuhkan setiap transaksi yang disediakan oleh model.
Menggunakan transaction pathways Memvalidasi data model terhadap kebutuhan transaksi dengan penggambaran diagram yang mewakili pathway yang diambil oleh setiap transaksi secara langsung pada E- R diagram.
o Langkah 1.9 Melihat kembali conceptual data model dengan pengguna Untuk memastikan data model merupakan representasi yang benar bagi setiap pandangan. 2.1.8.2
Perancangan Basis Data Logikal Perancangan basis data logikal menurut Connoly-Begg (2005,p439) adalah proses membangun model informasi yang digunakan organisasi berdasarkan model data tertentu, tetapi tidak tergantung dari Database Management System (DBMS) dan
27
pertimbangan fisik lainnya. Langkah-langkah dalam metodologi logical database design yaitu : Langkah 2 Membangun dan validasi logical data model o Langkah 2.1 Membuat relasi untuk logical data model Untuk menyaring konseptual logical data model sehingga fitur yang tidak sesuai dengan model relasional dihilangkan. Langkah-langkahnya :
Menentukan tipe entitas kuat Untuk semua entitas kuat, buat sebuah entitas yang memiliki semua atribut yang dimilikinya. Untuk composite attribute, sertakan atribut pokoknya saja.
Menentukan tipe entitas lemah Untuk setiap entitas lemah, buat suatu entitas yang termasuk semua atribut yang dimilikinya. Tapi, primary key dari entitas ini belum bisa ditentukan sampai relasinya dengan entitas kuat dibuat.
Membuat One-to-Many (1:*) Relationship Pada jenis ini, entitas pada „sisi satu‟ dianggap sebagai entitas induk sedangkan entitas pada „sisi banyak‟ dianggap sebagai entitas anak.
28
Membuat One-to- One (1:1) Binary Relationship Relasi 1:1 lebih sulit ditentukan hubungannya. Karena Cardinality dan Participation Constraints juga akan menentukan dalam mengidentifikasi entitas induk dan anak di relasi ini.
Membuat
One-to-
One
(1:1)
Recursive
Relationship Untuk memecahan hubungan ini, bisa dengan cara yang sama dengan saat memecahkan hubungan 1:1 relationship.
Memecah Superclass/Subclass Relationship Untuk setiap superclass/subclass relationship kita harus
mengidentifikasikan
superclass
sebagai
entitas induk sedangkan subclass sebagai entitas anak.
Menghilangkan
Many-to-Many
(*:*)
Binary
Relationship Types Untuk mengidentifikasikan sebuah entitas tengah sehingga relationship ini digantikan dengan dua buah one-to-many (1:*) relationship , dengan entitas tengah berada di antara dua buah entitas yang lama.
29
Menghilangkan complex relationship types Untuk
mengidentifikasikan
Kemudian
complex
entitas
relationship
tengah. ini
akan
digantikan dengan beberapa one-to-many (1:*) binary relationship .
Menghilangkan multi-valued attributes Caranya dengan memecah atribut ini untuk mengidentifikasikan sebuah entitas. Setelah itu, kirim Primary Key pada entitas induk sebagai Foreign Key pada entitas anak.
o Langkah 2.2 Validasi relasi dengan menggunakan normalisasi Normalisasi
adalah
teknik
untuk
himpunan relasi dengan property berdasarkan
kebutuhan
data
menghasilkan
yang diinginkan suatu
organisasi.
Unormalized form (UNF) adalah tabel yang terdiri dari satu atau lebih kelompok yang berulang. Tingkatan normalisasi yang digunakan yaitu :
First Normal Form (1NF) Relasi dikatakan bentuk 1NF jika perulangan groupnya sudah hilang. Ada dua pendekatan untuk menghilangkan repeating group pada tabel yang tidak normal, yaitu :
30
•
Memasukkan data yang sesuai ke dalam kolom yang kosong dari baris yang ada data berulang
•
Menempatkan data yang berulang bersama salinan atribut kunci pada relasi yang terpisah
Second Normal Form (2NF) Relasi dikatakan 2NF jika relasi tersebut berada pada 1NF dan setiap atribut yang bukan primary key bergantung penuh kepada primary key.
Third Normal Form (3NF) Relasi dikatakan 3NF jika relasi tersebut berada dalam bentuk 1NF dan 2NF, dan tidak ada atribut yang bukan primary key bergantung secara transitif
o Langkah 2.3 Validasi relasi terhadap transaksi pengguna Untuk memastikan bahwa relasi pada local logical data model mendukung transaksi yang dibutuhkan oleh pengguna. o Langkah 2.4 Menentukan intregrity constraint Menentukan batasan-batasan yang harus ditentukan untuk melindungi basis data agar tetap konsisten. Ada lima jenis integrity constraint , yaitu :
Required data
Attribute domain constraint
31
Multiplicity
Entity integrity
Referential integrity
General constraint
o Langkah 2.5 Meninjau kembali
local logical data
model yang dibuat dengan pengguna Untuk memastikan bahwa local logical data model dan dokumentasi pendukung yang menggambarkan model merupakan perwakilan yang benar dari pandangan user. o Langkah 2.6 Menggabungkan model data logikal menjadi sebuah model data global Cara pandang satu atau beberapa user terhadap basis data. Sedangkan model data global menggambarkan pandangan semua pengguna terhadap basis data. o Langkah
2.7
Memeriksa
untuk
mengantisipasi
perkembangan Untuk memeriksa akan adanya perubahan signifikan dalam waktu dekat dan memeriksa apakah model data logikal yang dibuat bisa mengakomodasi perubahan itu.
32
2.1.8.3
Perancangan Basis Data Fisikal Perancangan basis data fisikal adalah proses menghasilkan penjelasan dari implementasi suatu basis data pada media penyimpanan, juga menjelaskan base relation, pengaturan file, dan indeks yang digunakan untuk mencapai akses data yang efisien, integrity constraint, serta ukuran keamanan. Langkahlangkah metodologi perancangan basis data fisikal : Langkah 3 Menterjemahkan logical data model untuk target DBMS o Langkah 3.1 Membuat base relations Untuk setiap relasi yang diidentifikasikan pada global logical data model, definisinya teridiri dari nama relasi, daftar
simple attribute yang diikuti tanda
kurung, primary key beserta alternate key dan foreign key jika ada, dan referential integrity constraint bagi foreign key yang teridentifikasi. o Langkah 3.2 Membuat representasi dari derived data Untuk menentukan cara untuk merepresentasikan derived data yang ada dalam data model logikal secara umum ke dalam target DBMS. o Langkah 3.3 Merancang general constraints . Untuk merancang batasan organisasi untuk target DBMS.
33
Langkah 4 Merancang organisasi file dan indeks o Langkah 4.1 Menganalisis transaksi Untuk
memahami
fungsi
dari
transaksi
yang
dijalankan pada basis data dan menganalisis transaksi yang
penting.
Kriteria
pekerjaan
yang
harus
diidentifikasi seperti:
Transaksi yang sering digunakan dan yang memiliki dampak yang signifikan pada pekerjaan
Transaksi yang penting bagi kegiatan operasional bisnis
Peak load
o Langkah 4.2 Memilih organisasi file Untuk menentukan organisasi file yang efisien untuk setiap base relation. o Langkah 4.3 Memilih indeks Untuk menentukan apakah penambahan indeks akan meningkatkan pekerjaan sistem. Ada tiga jenis indeks yaitu:
Primary Index
Clustering Index
Secondary Index
o Langkah
4.4
penyimpanan
Memperkirakan
kebutuhan
ruang
34
Memperkirakan
besar
ruang penyimpanan
yang
dibutuhkan untuk mendukung implementasi basis data pada tempat penyimpanan kedua. Langkah 5 Merancang pandangan user Untuk
merancang
pandangan
pengguna
yang
diidentifikasikan selama tahap pengumpulan kebutuhan dan analisis pada daur hidup aplikasi basis data relasional Langkah 6 Merancang mekanisme keamanan Untuk menentukan bagaimana kebutuhan keamanan akan direalisasikan. Dua tipe keamanan basis data, yaitu : o Keamanan sistem o Keamanan data 2.2 Perancangan Aplikasi 2.2.1
Prototype Menurut Connoly-Begg (2005,p439) ,prototipe adalah model kerja yang tidak perlu bekerja secara normal dan memiliki semua feature atau fungsi dari sistem akhir. Tujuan utamanya adalah memberi contoh hasil akhir dari sistem kepada user. Memungkinkan user memberikan pendapat terhadap pengembangan kedepannya sistem ini. Dengan cara ini, kita dapat dengan jelas memahami kebutuhan user. Prototipe memiliki kelebihan yaitu tidak terlalu mahal dan cepat dibangun. Ada dua macam dalam membuat prototipe. Yang pertama adalah prototipe kebutuhan. Prototipe ini bertujuan untuk menentukan kebutuhan
35
user. Jika sudah jelas kebutuhannya, maka prototipe ini akan dibuang. Yang kedua adalah prototipe evolusi. Prototipe ini juga memiliki tujuan yang sama tapi setelah tujuan tercapai, prototipe tidak dibuang, tapi dikembangkan lagi untuk menjadi proyek utama. 2.3 Enterprise Resource Planning (ERP) 2.3.1
Pengertian ERP Menurut Gerald Grant (2003, chapter 3 introduction), ERP adalah infrastruktur perangkat lunak yang dilekatkan dengan evaluasi terbaik, memilih jalan terbaik untuk melakukan bisnis berdasarkan evaluasi bisnis umum atau teori akademis. Tujuan dari sistem ERP adalah untuk meningkatkan kerjasama dan hubungan antar semua departemen dalam perusahaan, seperti perencaaan produksi, manufaktur, pembelian, penjualan, dan layanan kustomer. Menurut Daniel O‟Leary (2007,p27), sistem ERP adalah sistem dasar computer yang di desain untuk memproses transaksi organisasi dan integrasi fasilitas dan rencana real time, produksi dan juga respon dari kostumer. Menurut Wallace dan Kremzar (2001,p4) ,suatu set usaha secara luas dari alat manajemen yang menstabilkan permintaan dan persediaan, memiliki kemampuan untuk menghubungkan kustomer dan pemasok untuk menjadi rantai persediaan yang lengkap, memakai pembuktian proses bisnis untuk pengambilan keputusan, dan menyediakan integrasi
36
fungsional tingkat tinggi diantara penjualan, marketing, manufaktur, operasi, logistik, pembelian, keuangan, pengembangan produk baru dan sumberdaya manusia. Jadi, ERP adalah suatu sistem informasi yang dibuat sedemikian rupa sehingga dapat mengintegrasikan basis data pada semua bagian departemen dalam suatu perusahaan baik manufaktur maupun jasa. 2.3.2
Sejarah ERP Menurut Dimitris N. Chorafas (2001, p14), pada 1960 diciptakan DBMS (database management system) yang dibuat untuk menyatukan data dalam suatu pulau atau benua. Pada tahun 1970 MIS (management information system) mulai populer, termasuk beberapa operator logika, seperti analisa akuntansi, pengaturan pemesanan, dan kontrol inventori atau penyimpanan. Pada 1980-an, MIS dikembangan untuk satu pulau dan menyediakan form untuk akses ke database. Pengembangan paling signifikan adalah expert system. Ditahun 1990-an, internet mulai ramai digunakan sehingga perusahaan wajib mengembangkan hubungan dengan mitra bisnis lokal maupun luar negeri agar tidak kalah saingan dengan para pesaing. Tahun 2001, badai teknologi sudah merambah ke semua bidang, mulai dari automobile, pesawat luar angkasa, telekomunikasi, dan lain-lain. Untuk mengikuti perubahan jaman yang sangat cepat, MIS dipaksa diubah menjadi ERP sebagai jawaban dari kebutuhan teknologi yang berkembang pesat.
37
Perbedaan MIS dan ERP :
ERP bisa mengakses database secara online atau remote dan dapat mengintegrasi basis data, sedangakan MIS hanya bisa diakses melalui computer server. MIS biasanya dibuat di rumah, dan vendor hanya sebagai sarana penyedia bantuan saran. ERP merupakan sistem yang komplit dan terintegrasi dengan live-database yang dapat dengan cepat untuk di-tes dan diimplementasikan. 2.3.3
Kelebihan ERP
2
Integrasi data keuangan. Untuk mengintegrasikan data keuangan sehingga top management bisa melihat dan mengontrol kinerja keuangan perusahaan dengan lebih baik.
2
Standarisasi Proses Operasi. Melakukan standartisasi proses operasi melalui implementasi best practice sehingga terjadi peningkatan produktivitas, penurunan inefisiensi dan peningkatan kualitas produk.
2
Standarisasi Data dan Informasi. Melakukan standartisasi data dan informasi melalui keseragaman pelaporan, terutama untuk perusahaan besar yang biasanya terdiri dari banyak business unit dengan jumlah dan jenis bisnis yg berbeda-beda. Menurut David L. Olson (2005,p4) banyak alasan mengapa ERP
dipakai banyak orang, pertama karena ERP menawarkan integrasi sistem yang dapat dipakai semua user dibandingkan dengan aplikasi yang
38
terpisah-pisah dan jarang bisa memiliki data yang terintegrasi. Kedua, ERP men-eliminasi penyelesaian masalah per divisi, yang dengan ERP, bisa dilakukan penyelesaian per organisasi untuk masalah yang sama. Ketiga, ERP diharapkan dapat membuat biaya perawatan komputer dan data dalam jangka waktu panjang. 2.3.4
Kekurangan ERP Kemampuan untuk menentukan pengaruh dari sistem ERP sangatlah penting dari sisi teori maupun praktek. Namun,kendala yang di hadapi : 1. Tidaklah mungkin untuk menggambarkan secara eksplisit keuntungan dari penelitian sistem informasi sistem ERP. 2. Adanya ketidak-konsistenan dan kontradiksi pencarian dari penelitian di teknologi informasi dan perubahan dalam perusahaan. 3. Kebergantungan membutuhkan
antara
sistem
ERP
interpretif
dan
metode
dan
perusahaan
analisa
secara
menyeluruh. 4. Kepastian dari efektifitas perusahaan sulit dipastikan, dan kompleks. 5. Kurangnya teori pustaka dalam bidang IT.
39
Menurut David L. Olson (2005,p4), pada kenyataannya sistem ERP ada yang tidak berjalan sesuai perkiraan. Penyebabnya adalah sulitnya menyatukan detail tiap divisi dan co-operasi dari tiap user. Kendala lainnya adalah masalah pendanaan untuk pelatihan user menggunakan aplikasi baru yang berbeda. Menurut Fiona Fui-Hoon Nah (2002,viii) , masalah dalam implementasi ERP adalah mahalnya biaya ERP dan saat implementasi biasanya
terdapat
biaya
yang
tersembunyi
sehingga
terjadi
pembengkakan anggaran. Hal lainnya adalah kegagalan dalam mendisain ulang kebutuhan user karena salah paham dengan proses bisnis dengan user saat sebelum dan sesudah implementasi. 2.3.5
Alur Hidup ERP Alur hidup ERP menurut Gerald Grant (2003, chapter 3 ERP lifecycle)
Gambar 2.3 Alur Hidup ERP
1. Pada fase adopsi keputusan, manajer menentukan untuk menginvestasikan pada sistem ERP untuk menggantikan infrastruktur sistem informasi yang ada. Sistem ERP diharapkan dapat menjawab tantangan bisnis pada perusahaan
40
dan
dapat
meningkatkan
strategi
dan
performa
dari
perusahaan. 2. Pada fase akuisisi, membandingkan seleksi pada sistem ERP yang paling cocok sesuai dengan kebutuhan perusahaan untuk meminimalisir kebutuhan akan perubahan. Keputusan diambil berdasarkan pengumpulan informasi yang berguna dari departemen yang berbeda. 3. Pada fase Iimplementasi, berhubungan dengan perubahan, memparameterkan tiap bagian, dan mengadaptasikan ERP yang telah dipilih. Fase implementasi biasanya dibawahi oleh seorang konsultan yang memberikan informasi jalan terbaik untuk implementasi dan menawarkan pelatihan. 4. Di fase pemakaian dan perawatan, produk sudah dipakai dan sudah dapat memberikan keuntungan yang diharapkan dan meminimalisir gangguan. Karena itu, sistem yang berjalan dan efek dari proses bisnis harus dikontrol secara berkala. 5. Pada fase evolusi, penambahan kemampuan pada sistem ERP. 6. Di fase akhir alur hidup, akan ada penggantian sistem ERP dengan teknologi yang baru. 2.3.6
Pengaruh Sistem ERP Dalam Perusahaan ERP saat ini memiliki dampak yang luar biasa dalam organisasi dan bisnis di dunia. Sistem ERP digunakan untuk mengembangkan suatu
41
aspek dalam suatu perusahaan, sebagai contoh :
strategi, organisasi,
bisnis, manajemen, operasional ataupun infrastuktur di IT. Penelitian pengembangan
membuktikan proses
bisnis,
adanya
perkembangan,
peningkatan
produktivitas,
seperti dan
perkembangan integrasi antar unit bisnis. Untuk mencapai hal diatas, diperlukan perombakan dalam perusahaan. Karena itulah sistem ERP sering diasumsikan sebagai teknologi pasti, karena perusahaan wajib mengatur struktur organisasi, proses bisnis, dan alur kerja untuk penerapan logika dalam sistem ERP. Bagaimanapun juga, relasi antara sistem ERP dan perubahan dalam perusahaan telah dipertanyakan. Pengaruh dan keuntungan dari sistem ERP tidaklah jelas. Tapi satu hal yang sudah pasti adalah implementasi sangat memakan biaya. Perbedaan implementasi antara metode pengembangan sistem informasi tradisional dan proses dari pemilihan dan implementasi sistem ERP adalah tidak lagi membicarakan analisis dan desain di metode tradisional, karena yang diperlukan adalah evaluasi dari model referensi dan fungsi pembuatan sistem ERP yang diikuti oleh proses seleksi. Di sistem ERP mempertimbangkan tiga hal dasar pilihan, yaitu : menerima, menerima dengan perubahan, dan menolak semuanya. ERP
sering
disebut
sebagai
Back
Office
System
yang
mengindikasikan bahwa pelanggan dan publik secara umum tidak dilibatkan dalam sistem ini. Berbeda dengan Front Office System yang
42
langsung berurusan dengan pelanggan seperti sistem untuk e-Commerce, Costumer Relationship Management (CRM), e-Government dan lain-lain.
Gambar 2.4 Bagian-bagian yang dapat dikerjakan oleh suatu sistem ERP.
43
2.4 Refactoring 2.4.1
Pengertian Refactoring Refactoring adalah salah satu cara untuk membersihkan kode yang meminimalkan kemungkinan terkena bug atau pada intinya ketika dilakukan refactor ,kita meningkatkan rancangan kode yang sudah ditulis (Fowler,1999, preface). Berdasarkan pengertian dalam Bahasa Inggris : 1. Refactoring (noun): a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior. Refactoring (kata benda) : perubahan yang dibuat pada struktur internal dari peranti lunak untuk membuatnya lebih mudah dimengerti dan lebih murah untuk dirubah tanpa merubah prilakunya yang tampak. 2. Refactor (verb): to restructure software by applying a series of refactorings without changing its observable behavior. Refactor (kata kerja) : untuk me-restrukturisasi dengan menerapkan sekumpulan prilaku yang terlihat.
refactoring
peranti lunak tanpa merubah
44
2.4.2
Masalah Dalam Basis Data Masalah yang terdapat pada basis data (database smells) didefiniskan oleh Ambler, Sadalage (2006, bab 1): 1. Kolom yang multiguna 2. Tabel yang multi guna 3. Data yang redundan 4. Tabel dengan terlalu banyak kolom 5. Tabel dengan terlalu banyak baris 6. Kolom yang “smart” 7. Takut akan perubahan
2.4.3
Alasan Pemilihan Refactoring Basis Data 1. Agar dapat memperbaiki basis data warisan. Basis data warisan tidak dapat memperbaiki dirinya sendiri dan dari sudut pandang teknikal refactoring basis data adalah cara yang aman, simple untuk meningkatkan data dan basis data, dan kualitas seiring dengan waktu. 2. Untuk mendukung pengembangan yang evolusioner. Database refactoring adalah perubahan kecil untuk merubah skema basis data yang meningkatkan rancangannya tetapi tetap
45
mempertahankan baik
prilaku dan informasi
semantiknya.
(Ambler, Sadalage, 2006, bab 2). Kategori
Deskripsi
Contoh
Struktural
Perubahan ke struktur tabel
Memindahkan sebuah kolom
dari skema basis data.
dari satu tabel ke tabel lainnya atau memecah
sebuah kolom
yang multi-guna ke beberapa kolom berbeda untuk tujuan berbeda. (Drop Column, Drop Table, Drop View, Rename Column, Rename Table, Split Column, Split Table, dll). Kualitas Data
Perubahan yang memastikan,
Membuat
meningkatkan
konsistensi
menjadi tidak dapat di-null-kan
dan
dari
nilai
untuk memastikan kolom selalu
informasi yang terdapat pada
memiliki nilai atau menerapkan
basis data
format
kualitas
sebuah
yang
memastikan (Add
Lookup
umum
kolom
untuk
konsistensinya. Table,
Drop
Column Contraints, Move Data, Make Column Non-Nullable,
46
dll). Integritas
Perubahan untuk memastikan
Dengan menambahkan trigger
referensial
bahwa sebuah baris yang
untuk
direferensikan
penghapusan
ada
pada
memungkinkan ID
entitas,
atau memastikan di mana
diterapkan di luar basis data.
baris
(Add Foreign Key Constraint,
tidak
lagi
yang
2
sebuah tabel lainnya yang
yang
kode
antara
semula
Add Trigger for Calculated
dibutuhkan dihapus.
Column, Introduce Cascading Delete, Introduce Hard Delete, dll). Arsitektural
Perubahan meningkatkan
yang keseluruhan
Dengan
menggantikan
kode
operasi Java yang sudah ada
perilaku di mana program
pada
perpustakaan
eksternal berinteraksi dengan
bersama
dengan
basis data.
procedure
pada basis data.
Membuatnya
kode stored
menjadi
stored
procedure membuatnya dapat digunakan di aplikasi non-Java. (Add
CRUD
Methods,
Add
Mirror Table, Introduce Index, Migrate
Method
To
/From
47
Database, dll). Metode
Perubahan kepada metode
Menamakan
(stored
stored procedure
procedure,
stored
function, atau trigger) yang
mudah
akan meningkatkan kualitas.
Parameter,
Banyak
Rename
dapat
code
refactoring
diaplikasikan
ke
kembali
sebuah
agar lebih
dimengerti. Extract
(Add Method,
Method,
Remove
Parameter, dll)
metode basis data. Non-
Perubahan kepada semantik
Menambahkan kolom baru ke
Refactoring
pada
data
tabel yang sudah ada. (Insert
Transformation
dengan
menambahkan
Data, Introduce New Column,
skema
basis
elemen baru atau yang sudah ada.
merubah
Introduce New Table, Introduce View, Update Data, dll).
Tabel 2.1 Kategori dari Database Refactoring 2.4.4
Langkah-Langkah Dalam Me-Refactor Basis Data 1. Memulai dari sandbox pengembangan. a. Pastikan refactoring basis data sesuai. b. Pilih refactoring basis data yang sesuai. c. Lihat skema basis data original yang tidak sesuai. d. Lakukan test sebelum, pada, dan sesudah. e. Lakukan perubahan pada skema basis data.
48
f. Migrasikan data sumber. g. Lakukan perubahan pada akses program eksternal. h. Lakukan tes regresi. i. Lakukan kontrol versi. j. Umumkan refactoring.
Gambar 2.5 Pengembangan Sandbox
49
2. Penerapan pada sandbox integrasi. 3. Install Ke dalam produksi. a. Secara efektif melakukan deploy antara kedua sandbox. b. Menerapkan sekumpulan refactoring basis data. c. Melakukan penjadwalan deployment. d. Melakukan deploy sistem. e. Menghapuskan skema yang lama.
Gambar 2.6 Instalasi ke Dalam Produk