BAB 2 LANDASAN TEORI
2.1 Teori Basis Data 2.1.1 Pengertian Data Data terdiri dari fakta-fakta dan simbol-simbol angka yang secara relatif mempunyai arti bagi user (McLeod dan Schell, 2001, p12). Menurut Hoffer, Prescott, dan McFadden (2002, p4), data adalah fakta yang telah diketahui, yang dapat dikumpulkan dan disimpan dalam media komputer. Pengertian data, informasi dan sistem informasi menurut Turban E. et al (2003, p15), data adalah fakta-fakta yang belum diolah atau gambaran-gambaran lebih lanjut dari benda-benda, kejadian-kejadian, kegiatan-kegiatan, dan transaksitransaksi yang ditangkap, direkam, disimpan dan diklasifikasikan, tetapi tidak disusun untuk menyampaikan arti khusus lainnya. Informasi adalah sebuah kumpulan dari fakta-fakta yang disusun di dalam beberapa cara, jadi kumpulan fakta tersebut bisa berarti bagi penerimanya. Sistem informasi adalah sebuah sistem
yang
mengumpulkan,
mengolah,
menyimpan,
menganalisa,
dan
menyebarkan informasi untuk sebuah tujuan tertentu.
2.1.2 Pengertian Basis Data Pengertian basis data menurut Connolly dan Begg (2002, p14), adalah kumpulan dari data-data yang berhubungan secara logikal yang dapat digunakan
6
bersama, dan deskripsi dari data-data ini didesain untuk memenuhi informasi yang dibutuhkan oleh suatu organisasi. Menurut Date (2000, p10), basis data dalah suatu kumpulan dari data-data yang sering digunakan oleh sistem aplikasi pada suatu perusahaan. Menurut Connolly dan Begg (2002, p331), dalam basis data dikenal istilah entiti, yaitu kumpulan objek yang memiliki properti yang sama, yang dapat diidentifikasi karena keberadaannya yang independent. Menurut Connolly dan Begg (2002, p72), relasi adalah sebuah tabel yang dilengkapi dalam kolom dan baris.
2.1.3 Karakteristik Basis Data Menurut Mannino (2001, p4) basis data memiliki beberapa karakteristik, yaitu : •
Persistent, artinya data berada pada tempat penyimpanan yang stabil seperti pada magnetic disk. Variabel pada komputer tidak bersifat persistent karena berada pada memori utama dan akan menghilang seiring ditutupnya program. Persistent juga bukan berarti data akan selamanya ada. Ketika data sudah tidak lagi relevan maka data tersebut akan dibuang atau diarsipkan.
•
Shared, artinya basis data mempunyai banyak kegunaan dan banyak user basis data menyediakan memori yang umum untuk beragam fungsi dalam suatu organisasi. Selain itu, pada saat yang bersamaan, basis data dapat digunakan oleh lebih dari satu user.
6
•
Interrelated, artinya data tersimpan dalam unit yang terpisah-pisah, tetapi dapat dihubungkan untuk menyediakan data yang dibutuhkan.
2.1.4 Sistem Manajemen Basis Data Menurut Connolly dan Begg (2002, p16), Database Management System (DBMS) adalah sistem perangkat lunak yang memungkinkan user untuk mendefinisikan, membuat, merawat, dan mengontrol akses menuju basis data. Sedangkan menurut Mannino (2001, p7), DBMS adalah kumpulan dari perangkat lunak yang mendukung pembuatan, penggunaan, dan perawatan dari basis data. Menurut Connolly dan Begg (2002, p18), komponen-komponen dari DBMS: 1. Data Data pada sebuah sistem basis data baik itu sistem single-user maupun sistem multi-user harus terintegrasi (terhubung) dan dapat digunakan bersama. 2. Hardware Terdiri dari: a. Penyimpanan permanen (magnetic disk atau hard disk), perangkat I/O (contohnya : disk drives), Device Controller, I/O Channels, dan lainnya. b. Hardware processor dan main memory, digunakan untuk mendukung saat eksekusi sistem software basis data. 3. Software DBMS, sistem operasi (seperti Microsoft Windows atau Linux), network software (jika diperlukan) dan program aplikasi pendukung lainnya. 6
4. Users a. Application Programmers, bertanggung jawab untuk membuat aplikasi basis data dengan menggunakan bahasa pemrograman yang ada, seperti: C++, Java, dan lainnya. b. End Users, siapapun yang berinteraksi dengan sistem secara online melalui workstation atau terminal. c. DA (Data Administrator), seseorang yang berwenang untuk
membuat
keputusan stategis dan kebijakan mengenai data yang ada, DBA (Database Administrator), menyediakan dukungan teknis untuk implementasi keputusan tersebut, dan bertanggungjawab atas keseluruhan kontrol sistem pada tingkatan teknis. Menurut Conolly (2002, p16), secara khusus DBMS menyediakan fasilitasfasilitas seperti : a. Memungkinkan user untuk menentukan basis data, biasanya melalui DDL. b. Memungkinkan user untuk insert, update, delete dan retrieve data dari basis data, biasanya melalui DML. c. DBMS menyediakan akses kontrol ke basis data, contohnya: -
security system, mencegah user yang tidak terotorisasi untuk mengakses data
-
integrity system, menangani konsistensi penyimpanan data
-
concurency control system, menggunakan basis data untuk diakses bersama
-
recovery control system, basis data dapat di-restore pada saat terjadi kesalahan pada hardware atau software
-
user-accessible catalog, berisi deskripsi dari data di dalam basis data 6
Berikut ini adalah keuntungan-keuntungan dari penggunaan DBMS berdasarkan pendapat Connolly dan Begg (2002, p26-28): •
Mengontrol redudansi data
•
Konsistensi data
•
Banyak informasi diperoleh dari sumber yang sama
•
Dapat menampung jumlah data yang banyak
•
Mampu men-share data
•
Meningkatkan integritas data
•
Meningkatkan keamanan
•
Meningkatkan standar
•
Bila DBMS sudah berjalan dengan baik dapat menghemat pengeluaran organisasi
•
Dapat menyeimbangkan perbedaan kebutuhan antar departemen
•
Meningkatkan backup dan pelayanan pemulihan
•
Meningkatkan pengakasesan dan pertanggungjawaban terhadap data
•
Meningkatkan produktivitas
•
Meningkatkan concurency data
Sedangkan kekurangan-kekurangan dari penggunaan DBMS menurut Connolly dan Begg (2002, p29) adalah sebagai berikut: •
Kompleks
•
Memerlukan ukuran perangkat lunak yang sangat besar
•
Biaya untuk menghasilkan DBMS yang baik sangat mahal
6
•
Pengeluaran untuk perangkat keras tambahan
•
Biaya untuk konversi sistem dari yang sistem lama ke sistem yang baru
•
Menimbulkan pengaruh yang besar pada perusahaan bila terjadi kegagalan pada sistem
•
Performa sistem dapat tidak sesuai dengan keinginan
2.1.5
Structured Query Language (SQL) Structured Query Language atau SQL merupakan salah satu contoh dari
bahasa transform-oriented, atau bahasa yang diciptakan dengan menggunakan relasi untuk mengubah masukan menjadi keluaran yang dibutuhkan (Connolly and Begg, 2002, p111). Sebagai suatu bahasa, standar ISO SQL memiliki dua komponen utama: •
DDL (Data Definition Language), untuk mencari struktur basis data dan mengontrol akses data
•
DML (Data Manipulation Language), untuk menerima dan mengubah data Seperti kebanyakan bahasa modern, SQL pada dasarnya merupakan format
bebas (free-format), yang berarti bahwa bagian-bagian dari statemen tidaklah harus diketik pada lokasi tertentu pada layar. Tetapi walaupun SQL free-format, tetapi statemen SQL atau kumpulan statemen SQL lebih menarik dan mudah untuk dibaca jika menggunakan indentation dan lineation. Struktur perintah SQL terdiri dari kata-kata dalam bahasa inggris pada umumnya: •
INSERT INTO Staff VALUES (‘SG16’, ‘Brown’, 8300);
6
•
SELECT staffNo, fName, salary FROM Staff WHERE salary > 10000 SQL dapat digunakan oleh segala bidang pemakai mencakup DBA,
pengembang aplikasi, management personnel, dan beberapa tipe end-user lainnya.
2.1.6
Data Definition Languange (DDL) Menurut Connolly dan Begg (2002, p40), Data Definition Language
(DDL) adalah suatu bahasa yang memungkinkan administrator basis data atau user untuk mendeskripsikan dan memberi nama entiti, atribut, dan relasi yang diperlukan untuk aplikasi, bersama dengan segala integritas dan batasan keamanan. Menurut Brown (2001, p64), DDL adalah sekumpulan perintah yang digunakan untuk mendefinisikan atau memodifikasi struktur dari fitur skema yang ada, seperti tabel, view, fungsi, prosedur, tipe data, dan sebagainya. Prinsip dasar dari pernyataan DDL adalah CREATE, ALTER dan DROP.
2.1.7
Data Manipulation Language (DML) Menurut Connolly dan Begg (2002, p41), DML adalah bahasa yang
menyediakan sekumpulan operasi untuk mendukung operasi manipulasi data dasar dari data yang tersimpan di basis data. Operasi manipulasi data adalah sebagai berikut: a. Memasukkan data yang baru ke dalam basis data (insert) b. Memodifikasi data yang disimpan di basis data (update) c. Mengambil data yang dimuat di basis data (select) 6
d. Menghapus data dari basis data (delete)
2.1.8
Database Application Life Cycle Database life cycle merupakan komponen yang penting dalam sistem basis
data karena aplikasi dari database life cycle berkaitan dengan sistem informasi yang ada. Langkah-langkah dalam database life cycle (Connolly, 2002, p272) dapat dilihat pada gambar berikut:
6
Database planning
System definition
Requirements collection and analysis Database design
Conceptual database design DBMS selection (optional)
Application design Logical database design Physical database design
Prototyping (optional)
Implementation
Data conversion and loading Testing
Operational maintenance
Gambar 2.1 Tahapan Aplikasi Daur Hidup Basis Data
Berikut ini adalah tahapan-tahapan dari aplikasi daur hidup basis data beserta aktivitas-aktivitas utama yang dilakukan oleh setiap tahapnya :
6
1. Database Planning Pada tahap ini akan direncanakan bagaimana tahapan dalam database life cycle dapat direalisasikan secara efektif dan efisien. Dalam tahap ini harus sudah dapat ditentukan misi utama dari proyek yang akan dibuat. 2. System Definition Pada tahap ini akan dijelaskan lingkup dan batasan dari aplikasi basis data dari user aplikasi tersebut. Pada tahap ini sudah harus bisa dibedakan bagaimana cara basis data dapat diakses oleh bermacam-macam user dari sudut pandang dan kepentingan yang berbeda sesuai kebutuhan terhadap aplikasi yang digunakan. 3. Requirements Collection and Analysis Pada tahap ini akan dibahas tentang proses pengumpulan dan analisis informasi yang dibutuhkan bagi user dan area aplikasi. Pada tahapan ini, dapat digunakan teknik fact finding: a. Evaluasi dokumentasi b. Wawancara c. Pengamatan perusahaan d. Penelitian e. Kuisioner 4. Database Design Pada tahap ini akan dibuat desain basis data yang akan mendukung operasi dan tujuan perusahaan. Perancangan basis data ini meliputi tiga tahapan :
6
-
Conceptual Database Design Proses membangun model informasi yang digunakan oleh perusahaan berdasarkan kebutuhannya, terlepas dari semua pertimbangan fisiknya. Tahap ini digunakan untuk membangun model data konseptual.
-
Logical Database Design Proses membangun informasi dari perusahaan yang digunakan berdasarkan data model tertentu, tapi masih tidak
memikirkan DBMS tertentu atau
pertimbangan yang berhubungan dengan fisik lainnya. Pada tahap ini sudah dipikirkan jenis model data apa yang ingin digunakan, seperti model data relasional, model data hirarkikal, dll. Bila diperlukan, dalam tahap ini juga dilakukan normalisasi. -
Physical Database Design Proses menghasilkan deskripsi dari implementasi basis data yang melibatkan secondary storage, termasuk di dalamnya relasi basis, organisasi file, indeks dan tingkat pengamanannya. Dalam tahap ini sudah digunakan DBMS tertentu dalam menentukan bagaimana relasi-relasi dibuat dan disimpan dalam disk.
5.
DBMS Selection Pada tahap ini akan dipilih DBMS yang paling cocok untuk aplikasi basis data. Langkah-langkah utama memilih suatu DBMS : -
menggambarkan cakupan tugas berdasarkan kebutuhan perusahaan
-
membuat perbandingan mengenai dua atau tiga produk DBMS
-
mengevaluasi produk-produk DBMS tersebut
6
-
merekomendasikan pemilihan DBMS dan membuat laporan hasil dari evaluasi produk DBMS tersebut
6.
Application Design Pada tahap ini akan didesain user interface dan program aplikasi yang menggunakan data dan memproses basis data. Interface yang akan dibuat ini harus bisa menampilkan informasi yang dibutuhkan dan harus user friendly.
7.
Prototyping Pada tahap ini akan dibuat model kerja bagi aplikasi basis data. Prototype tidak harus memiliki semua fitur dan fungsi pada suatu sistem akhir. Prototype ini hanya model karya yang mengijinkan user untuk melihat perkembangan sistem.
8.
Implementation Pada tahap ini akan dibuat basis data eksternal, konseptual, internal serta program aplikasi. Implementasi basis data ini dicapai menggunakan DDL (Data Definition Language) dari DBMS yang sudah dipilih sebelumnya. Transaksi basis data dibuat menggunakan DML (Data Manipulation Language), yang disisipkan pada host programming language seperti C, C++, Java dan COBOL
9.
Data Conversion dan Loading Pada tahap ini, data akan dipindahkan dari sistem lama ke sistem baru. Tahap ini dijalankan bila sistem baru menggantikan sistem lama.
10.
Testing Aplikasi basis data diuji terhadap kesalahan dan divalidasi terhadap spesifikasi kebutuhan pengguna. 6
11.
Operational Maintanance Pada tahap ini sistem akan diawasi dan dirawat selama sistem tersebut berjalan. Sistem juga harus di-upgrade agar bisa menyesuaikan diri dengan perkembangan yang terjadi.
2.1.9
Entity Relationship Modelling (ER Modelling) Berdasarkan pendapat Silberschatz, et.al (2002, p8) Entity Relationship
Data Model didasarkan pada persepsi terhadap dunia nyata yang terdiri dari kumpulan objek-objek dasar, yang disebut entities, dan hubungan (relationship) antara objek-objek ini. Sebuah entiti adalah sebuah ‘benda’ atau ‘objek’ di dunia nyata yang dapat dibedakan dari objek-objek lainnya. Contohnya setiap orang adalah sebuah entiti. ER Modelling adalah pendekatan top-down dalam perancangan basis data yang dimulai dengan mengidentifikasi data-data penting yang disebut entities dan hubungan (relationship) antara data-data tersebut harus direpresentasikan dalam model. (Connolly and Begg, 2002, p330). Berikut ini dijelaskan konsep dasar dari ER Modelling, yaitu entiti, relationship, atribut, dll sebagai berikut: a. Tipe Entiti Tipe entiti merepresentasikan kumpulan dari objek yang ada pada ‘dunia nyata’ dengan properti yang sama. Sebuah tipe entiti ada secara independen dan bisa berbentuk objek dengan keberadaan fisik atau nyata ataupun objek yang tidak nyata atau abstrak.
6
b. Tipe Relasi Tipe relasi adalah kumpulan hubungan yang mempunyai arti antara tipe-tipe entiti. Setiap tipe relasi akan diberikan nama yang menggambarkan fungsinya, misalnya tipe relasi yang dinamakan Has, yaitu relasi yang menghubungkan entiti Branch dan Staff. ¾
Degree of relationship type Menyatakan jumlah entiti yang berpartisipasi dalam relasi. Entiti dengan degree dua dinamakan binary, sedangkan entiti dengan degree tiga disebut ternary, entiti dengan degree empat dinamakan quaternary. Suatu relasi dapat disebut relasi yang kompleks bila relasi tersebut mempunyai degree yang lebih tinggi dari binary
¾
Relasi Rekursif Merupakan tipe relasi dimana tipe entiti yang sama berpartisipasi lebih dari satu kali dalam peran yang berbeda
c. Atribut Merupakan property dari sebuah entiti atau tipe relasi, misalnya entiti staff bisa digambarkan dengan atribut staffNo, nama, jabatan dan gaji. Attribut ini mempunyai nilai yang menggambarkan setiap entiti dan merepresentasikan bagian utama dari data yang akan disimpan dalam basis data. ¾
Domain attribute Merupakan kumpulan dari nilai-nilai yang diperbolehkan untuk satu atau lebih atribut, misalnya untuk atribut noKamar harus diisi dengan nilai antara 1 sampai 15.
6
¾
Simple dan composite attributes •
Simple attribute adalah atribut yang tersusun dari sebuah komponen yang ada secara independen. Simple attribute tidak dapat dipecah lagi menjadi attribut yang lebih kecil, biasanya disebut dengan atomic atribut, contohnya adalah jabatan, gaji pada entiti staff.
•
Composite attribute adalah atribut yang tersusun dari banyak komponen, setiap komponen itu ada secara independen. Composite attribute
dapat
dipecah
lagi
menjadi
komponen-komponen
independen yang lebih kecil, misalnya entiti cabang dengan nilai (163 Main St, Glasgow, G119QX) dapat dipecah menjadi atribut jalan (163 Main St), kota (Glasgow), kodePos (G11 9QX). ¾
Single-Value dan Multi-Value Attributes •
Single-valued attribute adalah atribut yang hanya mempunyai sebuah nilai untuk setiap tipe entiti. Hampir sebagian besar atribut adalah single-value, misalnya pada entiti cabang mempunyai noCabang (B003), noCabang ini adalah single-value atribut.
•
Multi-valued attribute merupakan atribut yang mempunyai banyak nilai untuk setiap tipe entiti, misalnya pada noCabang B003 mempunyai noTelp 0141-339-2178 dan 0141-339-4439. Pada kasus ini, noTelp merupakan multi-value atribut.
6
¾
Derived Attributes Derived attributes merupakan sebuah atribut yang merepresentasikan sebuah nilai yang berasal dari nilai sebuah atribut yang berhubungan atau set atribut, dan tidak harus berada dalam tipe entiti yang sama.
¾
Keys •
Candidate key merupakan kumpulan minimal dari atribut yang secara unik mengidentifikasikan tipe entiti tertentu.
•
Primary key adalah candidate key yang dipilih untuk secara unik mengidentifikasikan suatu tipe entiti. Candidate key lainnya yang tidak dipilih menjadi primary key disebut dengan alternate key.
•
Composite key adalah candidate key yang terdiri dari dua atau lebih atribut.
d. Strong and weak entity types ¾
Strong entity adalah entiti yang keberadaannya tidak tergantung dengan entiti lain, misalnya entiti staff, cabang. Karakteristik dari strong entity adalah setiap entiti dapat diidentifikasikan dengan primary key dari tipe entiti itu.
¾
Weak entity adalah entiti yang keberadaannya tergantung dari entiti lain. Karakteristik dari weak entity adalah atribut yang terdapat pada entiti tersebut tidak dapat mengidentifikasikan tipe entiti itu secara unik.
e. Structural Constraints Multiplicity merupakan jumlah kemunculan (occurence) yang mungkin dari sebuah tipe entiti yang berhubungan dengan kemunculan tunggal dari
6
sebuah tipe entiti yang berhubungan melalui relasi tertentu (Connolly and Begg, 2002, p344). Contohnya beberapa batasan-batasan (constraints) termasuk syarat bahwa sebuah properti sewa harus mempunyai seorang pemilik dan setiap cabang harus mempunyai staff. Tipe utama dari batasan-batasan dalam relasi ini disebut multiplicity. Multiplicity membatasi cara entiti-entiti saling terhubung. Batasan ini dapat dibuat oleh organisasi ataupun user. Tingkat relasi yang umum antar entiti adalah binary. Berikut ini adalah relasi binary yang sering terjadi : 1. Relasi One-to-One (1:1) Relasi dimana setiap entiti yang ada hanya dapat mempunyai maksimal 1 relasi dengan entiti yang lain Group 1
Relate to
Group 2
A•
r1 • • r2
•C
B•
•D
Gambar 2.2 One-to-One Relationships Pada gambar 2.2, kita bisa melihat bahwa A hanya terhubung One-to-One (1 : 1) dengan C, dan B hanya terhubung One-to-One (1 : 1) dengan D. Jadi dari gambar tersebut kita dapat menulis notasi multiplicity-nya dengan gambar di bawah ini. 6
Relate to
Group 1 1..1
Group 2 1..1
Multiplicity
Gambar 2.3 Notasi One-to-One Relationships
2. Relasi One-to-Many (1:*) Relasi dimana setiap entiti yang ada dapat mempunyai satu relasi atau lebih dari satu relasi dengan entiti yang lain
Group 1
Relate to
Group 2
A•
r1 • r2 • r3 •
•D
B• C•
•E •F
Gambar 2.4 One-to-Many Relationships Pada gambar 2.4, kita bisa melihat bahwa B terhubung One-to-Many (1 : *) dengan D dan E. Jadi dari gambar tersebut kita dapat menulis notasi multiplicity-nya dengan gambar di bawah ini.
6
Relate to
Group 1 1..1
Group 2 0..*
Multiplicity
Gambar 2.5 Notasi One-to-Many Relationships
3. Relasi Many-to-Many (*:*) Relasi dimana setiap entiti dapat mempunyai lebih dari satu relasi dengan entiti lainnya.
Group 1
Relate to
Group 2
r1 • r2 • r3 • r4 •
•D
A• B• C•
•E •F •G
Gambar 2.6 Many-to-Many Relationships Pada gambar 2.6, kita bisa melihat bahwa A terhubung One-to-Many (1 : *) dengan D dan E. Sedangkan E terhubung One-to-Many (1 : *) dengan A dan B. Jadi dari entiti Group 1 (value-nya A dari gambar di atas) dan Group 2 (value-nya E dari gambar di atas) terhubung Many-to-Many (* : *).
6
Dari gambar tersebut kita dapat menulis notasi multiplicity-nya dengan gambar di bawah ini. Relate to
Group 1 0..*
Group 2 1..*
Multiplicity
Gambar 2.7 Notasi Many-to-Many Relationships
f. Permasalahan dengan model ER Dalam membangun ER model, terdapat beberapa masalah yang mungkin muncul yang biasanya disebut connection traps karena kesalahan interpretasi dari makna relasi tertentu. Dua tipe connection traps adalah : •
Fan Traps Fan Traps terjadi ketika sebuah model merepresentasikan relasi diantara entiti tapi alur/jalan antara entiti tersebut tidak jelas (ambigu)
•
Chasm traps Chasm traps terjadi ketika sebuah model menyatakan keberadaan relasi antar entiti, tetapi alur/jalan antara entiti tersebut tidak ada.
2.1.10 Validasi Relasi Menggunakan Normalisasi Normalisasi adalah suatu teknik untuk menghasilkan sekumpulan relasi dengan properti yang diinginkan, berdasarkan kebutuhan data dari suatu perusahaan (Connolly dan Begg, 2002, p376). 6
Adapun tahapan proses normalisasi menurut Conolly and Begg (2002, p386), adalah sebagai berikut: a. Unnormalized Form (UNF) adalah tabel yang masih mengandung satu atau lebih grup yang berulang. b. First Normal Form (1NF) Adalah relasi yang pada setiap pertemuan antara baris dan kolomnya (atau sering disebut dengan sel) hanya mengandung satu dan hanya satu nilai saja. c. Second Normal Form (2NF) Adalah relasi yang memenuhi syarat dari 1NF dan setiap atribut yang bukan primary key memiliki ketergantungan fungsi penuh (fully functionally dependent) pada primary key. Ketergantungan fungsi penuh mengindikasikan bahwa bila A dan B adalah atribut-atribut dari suatu relasi, B disebut memiliki ketergantungan fungsi kepada A dan bukan kepada subset manapun dari A. d. Third Normal Form (3NF) Adalah relasi yang memenuhi syarat 1NF dan 2NF dimana tidak ada atribut yang bukan primary key bergantung secara transitif pada primary key. Ketergantungan transitif adalah suatu kondisi bila A, B dan C adalah atributatribut dari suatu relasi. Bila AÆB dan BÆC, maka C memiliki ketergantungan transitif kepada A melalui B. e. Boyce-Codd Normal Form (BCNF) Adalah relasi dimana setiap determinannya adalah sebuah candidate key. f. Fourth Normal Form (4NF) Adalah relasi yang merupakan BCNF dan tidak mengandung non-trivial multivalued depedency. Multi-valued depedency merepresentasikan ketergantungan 6
atribut-atribut (misal A, B dan C) pada suatu relasi, dimana setiap nilai dari A memiliki set nilai dari B dan set nilai dari C. Namun demikian, set nilai dari B dan C tidak bergantung satu sama lain. g. Fifth Normal Form (5NF) Adalah relasi yang tidak mengandung join dependency. Join depedency menggambarkan sebuah tipe ketergantungan. Sebagai contoh, untuk sebuah relasi R dengan subset-subset atribut dari R yang dimisalkan dengan A,B....,Z, sebuah relasi R menunjukkan join dependency, jika dan hanya jika, setiap nilai dari R sama dengan gabungan dari proyeksiproyeksinya pada A,B....,Z.
2.1.11 Database Design Database design (perancangan basis data) adalah proses pembuatan sebuah perancangan untuk suatu basis data yang akan mendukung operasi dan tujuan suatu perusahaan (Connolly dan Begg, 2002, p279). Proses perancangan basis data menurut Connolly dan Begg (2002, p419), terdiri dari tiga tahap utama, yang pertama yaitu, perancangan konseptual basis data adalah proses untuk membuat sebuah model informasi yang digunakan dalam suatu perusahaan, serta bebas dari semua pertimbangan fisik. Yang kedua yaitu, perancangan logikal basis data adalah proses untuk membuat sebuah model informasi yang digunakan dalam suatu perusahaan, berdasarkan suatu data model spesifik, namun bebas dari DBMS tertentu dan pertimbangan fisik lainnya. Dan yang ketiga yaitu, perancangan fisikal basis
data
adalah
proses
untuk
menghasilkan
sebuah
gambaran
dari
pengimplementasian basis data pada secondary storage, menggambarkan 6
hubungan dasarnya, pengaturan file, pengindeksan yang digunakan untuk memenuhi akses data yang efisien, batasan integritas terkait lainnya, dan pengukuran keamanan. Berikut ini merupakan langkah-langkah metodologi dari perancangan basis data, menurut Connolly dan Begg (2002, p420-421): 1. Perancangan konseptual basis data Langkah 1 : Membuat data model lokal yang konseptual untuk setiap tampilan 1.1 : Mengidentifikasikan tipe-tipe dari entitas 1.2 : Mengidentifikasikan tipe-tipe dari relationship 1.3 : Mengidentifikasikan dan mengasosiasikan atribut dengan tipe-tipe entitas atau relationship 1.4 : Menentukan atribut domain 1.5 : Menentukan candidate key dan primary key 1.6 : Pertimbangkan penggunaan konsep enhanced modelling (optional step) 1.7 : Periksa model yang redundancy 1.8 : Memvalidasikan model konseptual lokal terhadap transaksi pengguna 1.9 :
Melihat kembali data model konseptual lokal dengan pengguna
2
Perancangan logikal basis data untuk model relasional Langkah 2 : Membuat dan memvalidasikan data model lokal yang logikal untuk setiap tampilan 6
2.1 : Hilangkan fitur-fitur yang tidak kompatibel dengan model relasional (optional step) 2.2 : Turunkan relasi-relasi untuk data model logikal lokal 2.3 : Memvalidasikan relasi-relasi menggunakan normalisasi 2.4 : Memvalidasikan relasi-relasi terhadap transaksi pengguna 2.5 : Menentukan integrity constraints (batasan-batasan yang diberlakukan dalam rangka menjaga suatu basis data agar tidak berubah menjadi tidak konsisten) 2.6 : Melihat kembali data model logikal lokal dengan pengguna Langkah 3 :
Membuat dan memvalidasikan data model global yang logikal 3.1 : Menggabungkan data model logikal lokal menjadi model global 3.2 : Memvalidasikan data model logikal global 3.3 : Periksa untuk perkembangan mendatang 3.4 : Melihat kembali data model logikal global dengan pengguna
3
Perancangan fisikal basis data untuk basis data relasional Langkah 4 :
Mengubah data model global yang logikal untuk target DBMS 4.1 : Merancang relasi-relasi dasar 4.2 : Merancang representasi data turunan 4.3 : Merancang enterprise constraints
Langkah 5 :
Merancang representasi fisik 5.1 : Analisa transaksi-transaksi 6
5.2 : Memilih pengorganisasian file 5.3 : Memilih pengindeksan-pengindeksan 5.4 : Memperkirakan kebutuhan disk space Langkah 6 : Merancang tampilan pengguna Langkah 7 : Merancang mekanisme keamanan Langkah 8 : Mempertimbangkan pengenalan dari kontrol pengulangan Langkah 9 : Mengawasi dan mengatur sistem operasional.
2.1.12 Data Flow Diagram (DFD) Menurut Yourdon (1989,p139), Data Flow Diagram adalah model yang digunakan untuk menggambarkan sistem sebagai jaringan dari sekumpulan proses fungsional, yang dihubungkan satu dengan yang lainnya oleh suatu aliran data dan meneruskannya menjadi data. Menurut McLeod (2001,p316), Data Flow Diagram adalah suatu gambaran grafis dari suatu sistem yang menggunakan sejumlah bentuk-bentuk simbol untuk menggambarkan bagaimana aliran data menghubungkan proses-proses. Ada tiga tingkatan dalam Data Flow Diagram : 1. Diagram Konteks Merupakan tingkatan yang paling pertama, yang menggambarkan ruang lingkup sistem dari sistem yang digunakan. Diagram ini hanya memiliki satu proses yang menggambarkan sistem secara keseluruhan dan hubungan antar sistem dengan unit-unit diluar sistem tersebut. 2. Diagram Nol
6
Diagram yang menggambarkan proses-proses dan aliran data yang terjadi di dalam suatu sistem. Proses-proses ini dapat dipecahkan menjadi proses-proses dalam aliran data yang lebih terperinci. 3. Diagram Rinci Diagram yang menggambarkan rincian proses-proses yang ada pada diagram nol dan rincian proses-proses ini dapat dipecah lagi menjadi proses-proses yang lebih terperinci. Data Flow Diagram terdiri dari simbol-simbol sebagai berikut : 1. Proses (Bubble atau Function atau Transformation) Proses menggambarkan bagian dari sistem yang mengolah masukan menjadi keluaran. Proses digambarkan dengan sebuah lingkaran
Gambar 2.8 Simbol Proses dalam DFD 2. Aliran (Flow) Aliran menggambarkan perpindahan informasi dari satu bagian ke bagian lain dari sistem. Awal panah menggambarkan asal data sedangkan arah panah menggambarkan tujuan.
Gambar 2.9 Simbol Aliran Data dalam DFD
3. Store (Penyimpanan data) Digunakan untuk menyimpan data dan informasi hasil proses akhir dari sistem, biasanya berbentuk file atau database. Aliran data dari penyimpanan data dapat 6
diinterpretasikan sebagai read atau retrive data, baik sebagian atau seluruh data. Sedangkan aliran data ke penyimpanan data dapat diinterpretasikan sebagai write, update, atau delete data.
Gambar 2.10 Simbol Data Store dalam DFD 4. Terminator Merupakan simbol yang menggambarkan entitas yang dapat berupa orang, kelompok, atau organisasi yang berhubungan dengan sistem.
Gambar 2.11 Simbol Terminator dalam DFD
2.1.13 State Transitition Diagram State
Transition
Diagram
(STD)
adalah
suatu
diagram
yang
menggambarkan perubahan dari suatu keadaan selama pemrosesan suatu finitestate. Menurut Hoffer. J. A. et al (1996, p364), State Transition Diagram adalah suatu diagram yang menggambarkan bagaimana suatu proses dihubungkan satu sama lain dalam waktu bersamaan. State Transition Diagram digambarkan dengan sebuah state yang berupa komponen sistem yang menunjukkan bagaimana kejadian-kejadian tersebut dari satu state ke state lain. Ada dua macam simbol yang menggambarkan proses dalam State Transition Diagram, yaitu: 1) State
6
State adalah kumpulan keadaan atau atribut yang mencirikan seseorang atau suatu benda pada waktu tertentu, bentuk keberadaan tertentu atau kondisi tertentu. State disimbolkan dengan segiempat.
Gambar 2.12 Simbol State dalam STD
2) Perubahan state (State Transition)
Gambar 2.13 Simbol Aliran dalam STD Gambar panah menunjukkan transisi antar state. Tiap panah diberi label dengan ekspresi aturan. Label yang di atas menunjukkan kejadian atau kondisi yang menyebabkan transisi yang terjadi. Label yang dibawah menujukkan aksi yang terjadi akibat dari kejadian tadi. Perubahan State
Keadaan 1
Keadaan 2
Gambar 2.14 Perubahan State dalam STD
2.1
Teori Pendukung 2.2.1
Penjualan
6
Penjualan adalah pertukaran barang dengam persetujuan sejumlah uang. (www.thefreedictionary.com). Fungsi yang terkait dengan sistem penjualan (Mulyadi, 2001, p211) adalah: 1. Fungsi penjualan, bertanggung jawab untuk menerima order, mengedit order, meminta otorisasi kredit, menentukan tanggal pengiriman dan bertanggung jawab atas transaksi penjualan. 2. Fungsi gudang, bertanggung jawab untuk menyimpan dan menyiapkan barang yang dipesan dan mengirimkan ke bagian pengiriman. 3. Fungsi pengiriman, bertanggung jawab untuk menyerahkan barang ke pelanggan berdasarkan surat order pengiriman yang diterima dari bagian penjualan. 4. Fungsi penagihan, bertanggung jawab membuat dan mengirimkan faktur penjualan kepada pelanggan, serta menyediakan copy faktur bagi kepentingan pencatatan transaksi penjualan oleh fungsi akuntansi. 5. Fungsi akuntansi, bertanggung jawab mencatat piutang yang timbul dari transaksi penjualan dan membuat laporan penjualan.
2.2.2 Pembelian Pembelian
adalah
keinginan
membeli
yang
memerlukan
banyak
pemahaman. (www.thefreedictionary.com). Menurut Render (2001, p414), pembelian adalah perolehan barang dan jasa. Transaksi dalam pembelian dibedakan menjadi dua jenis, yaitu:
6
a. Pembelian tunai, yaitu jenis transaksi dimana pembayaran langsung dilakukan pada saat penerimaan barang. b. Pembelian kredit, yaitu jenis transaksi dimana pembayaran tidak dilakukan pada saat penyerahan barang, tetapi dilakukan selang beberapa waktu sesuai perjanjian dengan pihak pemasok. Sedangkan berdasarkan jenis pemasok, pembelian dibedakan menjadi 2 jenis, yaitu: a. Pembelian lokal, yaitu pembelian dari pemasok dalam negeri. b. Pembelian impor, yaitu pembelian yang dilakukan dari pemasok luar negeri. Menurut Mulyadi (2001, p299), fungsi yang terkait dalam sistem pembelian adalah: a. Fungsi gudang, bertanggung jawab untuk mengajukan permintaan pembelian sesuai dengan posisi persediaan yang ada di gudang dan untuk menyimpan barang yang telah diterima oleh fungsi penerimaan. b. Fungsi pembelian, bertanggung jawab untuk memperoleh informasi mengenai harga barang, menentukan pemasok yang dipilih dalam pengadaan barang dan mengeluarkan order pembelian kepada pemasok yang dipilih. c. Fungsi penerimaan, bertanggung jawab untuk melakukan pemeriksaan terhadap jenis, mutu, dan kuantitas barang yang diterima dari pemasok untuk menentukan dapat atau tidaknya barang tersebut diterima oleh perusahaan. d. Fungsi akuntansi, yang berkaitan dengan fungsi pencatatan utang dan pencatatan persediaan.
2.2.3
Persediaan 6
Persediaan adalah suatu aktiva yang meliputi barang-barang milik perusahaan dengan maksud untuk dijual dalam suatu periode usaha yang normal. (http://library.gunadarma.ac.id/) Sedangkan menurut Mulyadi (2001, p579), fungsi yang terkait dalam sistem perhitungan fisik persediaan adalah : 1. Panitia perhitungan fisik persediaan Panitia ini berfungsi untuk melaksanakan perhitungan fisik persediaan dan menyerahkan hasil perhitungan tertentu kepada bagian kartu persediaan untuk digunakan sebagai dasar adjustment terhadap catatan persediaan dalam kartu persediaan. 2. Fungsi Akuntansi Dalam sistem perusahaan fisik persediaan, fungsi ini bertanggung jawab untuk: a. Mencantumkan harga pokok satuan persediaan yang dihitung ke dalam daftar hasil perhitungan fisik b. Mengalihkan kuantitas dan harga pokok per satuan yang tercantum dalam daftar hasil perhitungan fisik c. Mencantumkan harga pokok total dalam daftar hasil perhitungan fisik persediaan. d. Melakukan adjustment terhadap kartu persediaan berdasarkan hasil perhitungan fisik persediaan e. Membuat bukti memorial untuk mencatat adjustment data persediaan dalam jurnal umum berdasarkan hasil perhitungan fisik persediaan.
3. Fungsi Gudang 6
Dalam sistem perhitungan fisik persediaan, fungsi gudang bertanggung jawab untuk melakukan adjustment data kuantitas persediaan yang dicatat dalam kartu gudang berdasarkan hasil perhitungan fisik.
6