7 BAB 2 LANDASAN TEORI 2.1. Pendekatan Basis Data Pada bab ini, akan diuraikan beberapa teori yang menjadi landasan untuk membahas dan menganalisa masalah yang berkaitan dengan pendekatan basis data dan pendekatan persediaan dan penjualan. 2.1.1. Pengertian Data Data menurut (Connolly dan Begg, 2005, p20) adalah komponen yang paling penting dalam DBMS. Data juga dapat didefisinikan sebagai jembatan antara komponen mesin dan komponen manusia. Menurut (Yuhefizard, 2008, p2), data adalah fakta baik berupa sebuah objek, orang dan lain-lain yang dapat dinyatakan dalam suatu nilai tertentu. Menurut (Whitten et al, 2004, p27, p522), data merupakan fakta mentah tentang orang, tempat, kejadian dan apapun yang penting bagi perusahaan dimana data itu sendiri tidak memiliki arti. Data adalah sebuah sumber yang harus dikontrol dan dikelola. Jadi dapat disimpulkan data adalah fakta-fakta mentah baik berupa objek, orang dan lain-lain yang harus dikelola untuk menghasilkan suatu informasi yang memiliki arti penting bagi perusahaan sebagai jembatan antara komponen mesin dan komponen manusia. 8 2.1.2. Pengertian Basis Data Basis data menurut (Connolly dan Begg, 2005, p15), yaitu sekumpulan data yang berhubungan secara logikal dan deskripsi mengenai data itu sendiri yang dirancang untuk memenuhi kebutuhan informasi organisasi Basis data tidak lagi dimiliki oleh satu departemen tetapi telah menjadi sumber daya perusahaan bersama. Basis data tidak memegang peranan sebagai data operasional organisasi tetapi juga deskripsi dari data. Oleh karena itu, basis data juga disebut sebagai a self-describing collection of integrated records. Deskripsi data tersebut dikenal sebagai system catalog (atau kamus data atau metadata–‘data mengenai data’). Hal tersebut merupakan sifat dasar basis data yang menyediakan program-data independence. Penggunaan basis data ditujukan untuk menyimpan, mencari, mengelompokkan, dan bagi pakai (share) informasi. Penggunaan basis data juga diharapkan dapat mempermudah dan menjadikan efektif hal-hal tersebut. 2.1.3. Database Management System (DBMS) Menurut (Connolly dan Begg, 2005, p16), Database Management System (DBMS) adalah sistem perangkat lunak yang memungkinkan user untuk mendefinisikan (define), membuat (create), memelihara (maintain) dan mengontrol (control) dalam mengakses basis data. Pada umunya DBMS menyediakan fasilitas– fasilitas berikut ini : 9 a. Data Definition Language (DDL) Data Definition Language adalah suatu bahasa yang mengijinkan pemakai untuk menspesifikasikan tipe data, struktur dan batasan-batasan terhadap data untuk disimpan dalam basis data. b. Data Manipulation Language (DML) Data Manipulation Language adalah bahasa yang mengijinkan user untuk : 1) Menambah data baru ke dalam basis data. 2) Mengubah data yang disimpan ke dalam basis data. 3) Menghapus data dari basis data. 4) Mengambil data yang terdapat di dalam basis data. Data Manipulation Language (DML) sebagai pusat penyimpanan untuk semua data dan deskripsi data, DML menyediakan fasilitas kamus umum untuk data, yang disebut query language. Query language yang paling umum adalah Structured Query Language (SQL). c. Controlled access Menyediakan akses kontrol untuk basis data. Sebagai contoh, DBMS menyediakan : 1) Sistem keamanan, mencegah pengguna yang tidak berwenang mengakses basis data. 2) Sistem integritas, menjaga konsistensi dari data yang tersimpan. 3) Sistem kontrol concurrency, mengijinkan akses bersama dari basis data. 4) Pemulihan sistem kontrol, mengembalikan basis data ke tahap sebelumnya karena kegagalan software atau hardware. 10 5) Katalog yang dapat diakses oleh pengguna, mengandung deskripsi dari data dalam basis data. 2.1.3.1. Komponen-Komponen DBMS Menurut (Connolly dan Begg, 2005, p18), ada lima komponen penting dalam lingkungan DBMS : a. Perangkat keras (hardware) Dalam menjalankan aplikasi DBMS diperlukan perangkat keras. Perangkat keras dapat berupa a single particular computer, a single mainframe, a network of computers. b. Perangkat lunak (software) Komponen perangkat lunak meliputi DBMS software dan program aplikasi beserta Sistem Operasi (OS), termasuk perangkat lunak tentang jaringan jika DBMS digunakan dalam jaringan LAN. c. Data Data merupakan komponen terpenting dari DBMS khususnya dari sudut pandang end user mengenai data. d. Prosedur (procedures) Prosedur berupa panduan dan instruksi dalam membuat desain dan menggunakan basis data. Pengguna dari sistem dan staf dalam mengelola basis data membutuhkan prosedur dalam menjalankan sistem dan mengelola basis data itu sendiri. Demikian prosedur di dalam basis data dapat berupa : 11 1) Login di dalam basis data 2) Penggunaan sebagian fasilitas DBMS 3) Cara menjalankan dan memberhentikan DBMS 4) Membuat salinan back up database 5) Memeriksa hardware dan software yang sedang berjalan 6) Mengubah struktur basis data, meningkatkan kinerja, atau membuat arsip data pada secondary storage. e. Manusia (people) Ada empat tipe jabatan yang berpartisipasi dalam lingkungan pengelolaan sistem basis data yaitu : 1) Data dan Database Administrator Bertanggung jawab untuk mengatur manajemen sumber daya data yang meliputi perancangan basis data, pengembangan dan pemeliharaan, aturan dan prosedur, dan rancangan basis data konseptual atau logikal. 2) Database Designer Seseorang atau sekelompok orang yang menjadi tenaga ahli komputer yang berfungsi untuk mengembangkan program–program aplikasi yang diperlukan dalam DBMS. 3) Application Developer Orang yang merancang, menentukan dan meneliti penampilan dan fungsi program aplikasi. 12 4) End-User Yang termasuk dalam kategori pengguana akhir adalah pemilik sistem, para manajer, operator dan sebagainya yang terlibat langsung dalam pengguanaan basis data. 2.1.3.2. Keuntungan DBMS Beberapa keuntungan dari DBMS : a. Mengurangi redundansi data Data yang sama pada beberapa aplikasi cukup disimpan sekali saja. b. Menghindarkan inkonsistensi Karena redundansi berkurang, sehingga umumnya update data hanya sekali saja. c. Terpeliharanya integritas data Data tersimpan secara akurat. d. Data dapat dipakai bersama-sama Data yang sama dapat diakses oleh beberapa user pada saat bersamaan. e. Memudahkan penerapan standarisasi Menyangkut keseragaman penyajian data. f. Jaminan security Data hanya dapat diakses oleh yang berhak. g. Menyeimbangkan kebutuhan Dapat ditentukan prioritas suatu operasi, misalnya antara update (mengubah data) dengan retrieval (menampilkan data) didahulukan update. 13 2.1.3.3. Kekurangan DBMS Beberapa kerugian dari DBMS (Connolly dan Begg, 2005, p29-30) : a. Rumit; b. Membutuhkan tempat penyimpanan yang besar di memori; c. Biaya DBMS yang bervariasi; d. Biaya tambahan perangkat keras; e. Biaya konversi; f. Kinerja aplikasi tidak berjalan cepat seperti seharusnya karena adanya DMBS; g. Kerusakan pada bagian sistem menyebabkan operasi terhenti. 2.1.3.4. Fungsi DBMS Menurut (Connolly dan Begg, 2005, p48), fungsi-fungsi DBMS sebagai berikut : a. Data storage, terrieval dan update Menyediakan fasilitas kepada pengguna untuk menyimpan, mengambil dan meng-update data di sebuah basis data. b. Catalog User-accessible Menyediakan katalog yang berisi penjelasan dari data items yang tersimpan pada basis data. c. Transaction support Menyediakan mekanisme yang memastikan bahwa update pada suatu transaksi terjadi seluruhnya atau tidak terjadi sama sekali. 14 d. Concurrency control service Menyediakan mekanisme yang memastikan basis data di update secara benar ketika multiple user meng-update basis data secara bersamaan. e. Recovery service Mengembalikan suatu kasus data keadaan dimana basis data belum terjadi kerusakan. f. Authorization service Mekanisme dimana hanya pengguna tertentu yang memiliki otorisasi yang dapat mengakses basis data. Metode yang bisa digunakan untuk melakukan user authorization adalah sebagai berikut : 1) Metode one-time authorization, yang memberikan seluruh hak dari user hanya dengan satu kali proses authorization. 2) Metode per service authorization, yang membuat user harus diotorisasi berkali-kali ketika ingin menggunakan servis tertentu. Authorization juga bisa dibuat per user berdasarkan list yang ada di server security atau bila protokolnya mendukung otorisasi bisa diberlakukan per group user. g. Support for data communication Kemampuan BDMS berintegrasi dengan perangkat lunak komunikasi dan dapat mengakses basis data dari lokasi yang jauh. h. Intergrity service Menyediakan aturan bahwa data dalam basis data dan perubahannya harus mengikuti aturan tertentu. 15 i. Service to promote data independence DBMS harus mengikutsertakan fasilitas untuk mendukung program independen dari struktur basis data. j. Utility service DBMS harus menyediakan layanan utilitis lainnya, contohnya adalah fasilitas impor, monitoring, analisis statistik, indexing, serta gerbage collection dan reallocation. 2.1.4. Structured Query Language (SQL) Menurut (Abdul Kadir, 2001, p101), SQL merupakan bahasa query standar yang digunakan untuk mengakses basis data relasional. SQL tidak hanya disebut sebagai bahasa query, karena kemampuan SQL tidak terbatas hanya untuk query (memperoleh data), tetapi juga mencakup kemampuan lain seperti : a. Pendefinisian struktur data b. Pengubahan data c. Pengaturan sekuritas Beberapa perintah dasar SQL : Pernyataan Keterangan ALTER Mengubah struktur tabel COMMIT Mengakhiri sebuah eksekusi transaksi CREATE Menciptakan tabel, indeks dan pandangan 16 DELETE Menghapus baris pada tabel DROP Menghapus tabel, indeks atau pandangan GRANT Menugaskan hak terhadap basis data kepada pengguna atau grup pengguna 2.1.4.1. Data Definition Language (DDL) DDL merupakan kelompok perintah yang berfungsi untuk mendefinisikan atribut-atribut basis data, tabel, atribut (kolom), batasan-batasan terhadap suatu atribut, serta hubungan antar tabel. Yang termasuk dalam kelompok DDL ini adalah : a. CREATE b. ALTER c. DROP 2.1.4.2. Data Manipulation Language (DML) DML adalah kelompok perintah yang berfungsi untuk memanipulasi data dalam basis data, misalnya untuk pengambilan, penyisipan, pengubahan dan penghapusan data. Perintah yang termasuk kategori DML adalah : a. SELECT b. INSERT c. DELETE d. UPDATE 17 2.1.5. Siklus Hidup Aplikasi Sistem Basis Data Menurut (Connolly dan Begg, 2005, p282), sistem basis data adalah komponen pokok dari sebuah sistem informasi, dan perkembangan serta penggunaannya harus dilihat dari sudut pandang kebutuhan perusahaan yang lebih besar. Pengertian sisitem informasi adalah sumber-sumber mengenai koleksi, manajemen, kontrol dan diseminasi informasi perusahaan. 18 Tahapan siklus daur hidup aplikasi database dapat dilihat pada Gambar 2.1.. Gambar 2.1. Siklus Daur Hidup Aplikasi Basis Data (Sumber : Connolly dan Begg, 2005, p284) 19 Berikut ini adalah keterangan dari tahapan-tahapan di atas (Connolly dan Begg, 2005, p285-306) : a. Perencanaan Basis Data (Database Planning) Dalam tahap ini dilakukan perencanaan bagaimana tahapan-tahapan perencanaan berikutnya dapat direalisasikan. b. Pendefinisian Sistem (System Definition) Tahap ini mendefinisikan ruang lingkup dari sistem basis data, pengguna dan aplikasinya. c. Pengumpulan dan Analisa Kebutuhan (Requirement Collection and Analysis) Pada tahap ini dilakukan pengumpulan dan analisis kebutuhan pengguna dan lingkungan aplikasi. d. Perancangan Basis Data (Database Design) Pada tahap ini dilakukan perancangan basis data yang terdiri dari tiga fase utama : 1) Perancangan basis data konseptual, yaitu proses pembuatan sebuah model dari suatu informasi yang digunakan dalam sebuah perusahaan yang bebas dari pertimbangan fisik. 2) Perancangan basis data logikal, yaitu proses pembuatan sebuah model dari suatu informasi yang digunakan dalam sebuah perusahaan yang berdasarkan pada model data spesifik, tetapi bebas dari DBMS tertentu dan pertimbangan fisik lainnya. 3) Perancangan basis data fisikal, yaitu proses yang menghasilkan deskripsi implementasi basis data tempat penyimpanan kedua, menjelaskan relasi 20 dasar (base relation), file organisasi, dan indeks yang digunakan untuk mendapatkan akses ke data yang efisien, dan intergrity constraint yang berhubungan serta pengukuran keamanan. e. Pemilihan DBMS (Opsional) Pada tahap ini dilakukan pemilihan DBMS yang tepat untuk mendukung aplikasi basis data. f. Perancangan Aplikasi (Application Design) Tahap ini dilakukan untuk merancang interface bagi pengguna dan program aplikasi yang menggunakan dan memproses basis data. g. Prototyping (Opsional) Tahap ini dilakukan untuk membangun model aplikasi basis data yang sudah dapat bekerja, yang membolehkan perancang atau user untuk mengevaluasi hasil akhir sistem, baik dari segi tampilan maupun fungsi yang dimilikinya. h. Implementasi (Implementation) Tahap ini merupakan realisasi fisik dari perancangan basis data dan aplikasi. Implementasi basis data dicapai dengan menggunakan Data Definition Language (DDL) dari DBMS yang dipilih atau Graphical User Interface (GUI). i. Loading dan Konversi data (Data conversion and Loading) Tahap ini merupakan proses untuk transfer data yang telah ada ke dalam basis data yang baru dan mengkonversi aplikasi yang telah ada untuk dapat berjalan pada basis data yang baru. 21 j. Pengujian (Testing) Pengujian merupakan proses mengeksekusi program aplikasi denagn tujuan untuk mencari error. k. Operasi pemeliharaan (Operational Maintenance) Operasi pemeliharaan berfungsi untuk memonitor aplikasi sistem yang sudah di implementasikan. 2.1.6. Entity-Relationship Modeling Menurut (Connolly dan Begg, 2005, p342), Entity–Relationship Modeling adalah model konseptual yang menjabarkan hubungan antara penyimpanan dan hubungan data. ER modeling merupakan sebuah pendekatan top-down pada desain basis data yang dimulai dengan mengidentifikasi entitas dan relationship antara data yang harus direpresentasikan dalam model. 2.1.6.1. Tipe Entiti (Entity Type) Menurut (Silberscahatz, 2002, p8), entiti pada basis data di gambarkan sebagai kumpulan dari atribut. Contoh : loan-number dan amount terdapat pada sebuah account pada bank dan termasuk dalam entiti loan. Dan customer, id customer, alamat customer dan kota customer termasuk dalam entiti customer. Entiti sendiri terbagi menjadi dua : 22 a. Strong entity Adalah entiti yang bisa berdiri sendiri tanpa bergantung pada entiti lainnya dan bisa muncul dengan sendirinya. Contoh : entiti produk, karyawan dan lain sebagainya. b. Weak entity Adalah entiti yang keberadaannya bergantung pada entiti lain. Contoh : entiti-entiti yang berhubungan dengan detail. 2.1.6.2. Tipe Relasi (Relationship Type) Tipe relasi merupakan sekumpulan relasi antar tipe entiti yang memiliki arti. Relationship Occurrence adalah sebuah relasi yang dapat diidentifikasikan secara unik, yang meliputi sebuah kejadian dari setiap tipe entiti didalam realtionship. Seperti terlihat pada Gambar 2.2.. Gambar 2.2. Contoh Representasi Diagram dari Tipe Relasi (Sumber : Connolly dan Begg, 2005, p347) 23 Derajat dari relasi adalah jumlah entitas yang berpartisipasi dalam suatu relasi. terdiri dari : a. Binary relationship Adalah relasi yang berderajat dua. Seperti contoh pada Gambar 2.3.. Gambar 2.3. Contoh Binary Relationship (Sumber : Connolly dan Begg, 2005, p348) b. Ternary relationship Adalah relasi yang berderajat tiga. Seperti contoh pada Gambar 2.4.. Gambar 2.4. Contoh Ternary Relationship (Sumber : Connolly dan Begg, 2005, p348) 24 c. Quarternary relationship Adalah relasi yang berderajat empat. Seperti contoh pada Gambar 2.5.. Gambar 2.5. Contoh Quarternary Relationship (Sumber : Connolly dan Begg, 2005, p349) d. Unary relatinship atau Recursive relationship Adalah sebuah tipe relasi dimana entiti yang sama berpartisipasi lebih dari satu peran yang berbeda. Seperti contoh pada Gambar 2.6.. 25 Gambar 2.6. Contoh Unary Relationship (Sumber : Connolly dan Begg, 2005, p349) 2.1.6.3. Atribut (Attribute) dan Key Atribut adalah properti dari sebuah entitas atau tipe relasi (Connolly dan Begg, 2005, p350). Macam-macam atribut yaitu (Connolly dan Begg, 2005, p351-352) : a. Simple and composite attribute Komponen tunggal dengan keberadaan yang independen dan tidak dapat dibagi menjadi bagian yang lebih kecil lagi. Sedangkan composite attribute yaitu atribut yang terdiri dari beberapa komponen, dimana masing-masing komponen memiliki keberadaan yang independen. b. Single-valued and multi-valued attribute Single-valued attribute yaitu atribut yang mempunyai nilai tunggal untuk setiap kejadian. Sedangkan multi-valued attribute yaitu atribut yang mempunyai beberapa nilai untuk setiap kejadian. 26 c. Derived attribute Derived attribute yaitu atribut yang memiliki nilai yang dihasilkan dari satu atau beberapa atribut lainnya, dan tidak harus berasal dari satu entitas. Key Menurut (Connolly dan Begg, 2005, p352-353), ada tiga jenis key yaitu : a. Candidate key Candidate key yaitu jumlah minimal atribut-atribut yang secara unik mengidentifikasikan setiap kejadian dari tipe entitas. b. Primary key Primary key yaitu candidate key yang dipilih untuk mengidentifikasikan setiap kejadian dari suatu tipe entitas secara unik. c. Composite key Composite key yaitu candidate key yang terdiri dari dua atau lebih atribut. 2.1.6.4. Structural Constraints Menurut (Connolly dan Begg, 2005, p356), batasan utama pada relasi disebut multiplicity, yaitu jumlah (atau range) dari kejadian yang mungkin terjadi pada suatu entitas yang terhubung kesatu kejadian dari entitas lain yang berhubungan melalui suatu relasi. 27 Relasi yang paling umum adalah binary relationship. Macam-macam binary relationship yaitu : a. Relasi One-to-One (1:1) Relasi yang terjadi jika suatu entiti tunggal berelasi dengan entiti tunggal lainnya. b. Relasi One-to-Many (1:*) Relasi yang terjadi jika suatu entiti tunggal berelasi dengan lebih dari satu entiti tunggal. c. Relasi Many-to-Many (*:*) Relasi yang terjadi jika banyak entiti berelasi dengan banyak entiti lainnya. d. Cardinality Cardinality menjelaskan jumlah maksimal dari kejadian relasi yang diperbolehkan untuk satu entitas yang berpartisipasi dalam satu tipe relasi. e. Participation Menentukan apakah seluruh atau sebagian entitas yang berpartisipasi dalam suatu relasi. 2.1.7. Metodologi Perancangan Basis Data Perancangan basis data dibagi menjadi tiga tahapan utama yaitu Perancangan Basis Data Konseptual (Conceptual Database Design), Perancangan Basis Data Logikal (Logical Database Design) dan Perancangan Basis Data Fisikal (Physical Database Design). 28 2.1.7.1. Perancangan Basis Data Konseptual Perancangan basis data konseptual, yaitu proses pembuatan sebuah model dari suatu informasi yang digunakan dalam sebuah perusahaan yang bebas dari pertimbangan fisik. Langkah-langkah perancangan basis data konseptual adalah sebagai berikut : Membangun model data lokal konseptual untuk setiap view a. Identifikasi tipe entiti Tujuannya untuk mengidentifikasi entiti-entiti untuk model yang akan dibangun. b. Identifikasi tipe relasi Tujuannya untuk mengidentifikasi relasi yang terjadi antar entiti. c. Identifikasi dan asosiasi atribut dengan tipe entiti dan relasi Tujuannya untuk mengidentifikasi atribut-atribut yang dimiliki oleh entiti maupun relasi. d. Menentukan domain atribut Tujuannya untuk menentukan batasan nilai yang valid bagi atribut-atribut. e. Menentukan candidate key dan primary key Tujuannya untuk mengidentifikasi candidate key untuk setiap entiti, dan kemudian menentukan primary key. f. Mempertimbangkan penggunaan konsep enhanced modelling (Opsional) Tujuannya untuk mempertimbangkan penggunaan konsep-konsep seperti specialization / generalization, aggregation, ataupun composition. 29 g. Memeriksa model terhadap redudansi Tujuannya adalah untuk mengecek adanya redudansi pada model dengan cara : 1) Memeriksa ulang relasi one-to-one (1:1) 2) Menghilangkan relasi yang berulang 3) Mempertimbangkan dimensi waktu h. Validasi model konseptual terhadap transaksi user Tujuannya adalah memastikan model konseptual mendukung transaksi– transaksi yang dibutuhkan. i. Review model data konseptual dengan user Meninjau model yang telah dibangun guna memastikan bahwa model tersebut merupakan representasi yang sesuai. 2.1.7.2. Perancangan Basis Data Logikal Perancangan Basis Data Logikal, yaitu proses membangun model informasi yang digunakan perusahaan berdasarkan pada model data spesifik, terlepas dari DBMS tertentu dan perimbangan fisik lainnya. Langkah-langkah perancangan basis data konseptual adalah sebagai berikut : Membangun dan memvalidasi model data logikal untuk setiap view a. Menghilangkan fitur yang tidak kompatibel dengan model relational Tujuan utama langkah ini adalah : 30 1) Menghilangkan relasi many-to-many (*:*) 2) Menghilangkan relasi many-to-many (*:*) recursive 3) Menghilangkan tipe relasi yang kompleks 4) Menghilangkan atribut multi-valued b. Menurunkan relasi untuk data model logikal Tujuannya adalah membuat relasi untuk model data logikal untuk merepresentasikan entitas, relasi dan atribut yang telah diidentifikasi. Tahapan-tahapan yang dilakukan : 1) Tentukan strong entity (entiti yang keberadaanya tidak tergantung pada entiti lain). 2) Tentukan weak entity (entiti yang keberadaannya bergantung kepada entiti lain). 3) One-to-Many (1:*) binary relationship types 4) One-to-One (1:1) binary relationship types 5) One-to-One (1:1) recursive relationship types 6) Superclass/subclass relationship types adalah relasi dimana superclass entiti merupakan parent dari subclass entiti sebagai child. 7) Many-to-Many (*:*) binary relationship types relasi dimana setiap entiti dapat mempunyai lebih dari satu relasi dengan entiti lainnya. 8) Complex relationship types 9) Atribut multi-valued 31 c. Memvalidasi relasi dengan normalisasi Tujuannya adalah untuk memvalidasi relasi pada model data logikal dengan menggunakan teknik normalisasi. d. Memvalidasi relasi terhadap transaksi yang dilakukan user Tujuannya adalah untuk memastikan bahwa relasi dalam model data logikal mendukung transaksi-transaksi yang diperlukan oleh view. e. Memeriksa integrity constraint Tujuannya adalah untuk memeriksa integrity constraint yang dipresentasikan pada model data logikal. integrity constraint adalah batasan-batasan yang digunakan agar kelengkapan, keakuratan dan kekonsistensian sistem basis data terjaga dengan baik. f. Review model data logikal dengan user Tujuannya adalah meninjau kembali model data logikal yang telah dibangun untuk memastikan bahwa model tersebut sesuai dengan representasi yang sebenarnya dari persyaratan data yang dibutuhkan oleh perusahaan. g. Menggabungkan model-model data logikal yang ada kedalam model global (langkah pilihan) Tujuannya adalah untuk menggabungkan model-model data logikal kedalam model data logikal global yang merepresentasikan view sistem basis data kepada semua user. 32 h. Memeriksa perkembangan dimasa yang akan datang Tujuannya adalah memperkirakan apakah akan terjadi perubahan yang signifikan pada masa mendatang dan untuk menilai apakah model data logikal yang ada sekarang dapat mengikuti perubahan tersebut. 2.1.7.3. Perancangan Basis Data Fisikal Perancangan basis data fisikal, yaitu proses yang menghasilkan deskripsi implementasi basis data tempat penyimpanan kedua, menjelaskan relasi dasar (base relation), file organisasi, dan indeks yang digunakan untuk mendapatkan akses kedata yang efisien, dan intergrity constraint yang berhubungan serta pengukuran keamanan. Langkah-langkah perancangan basis data fisikal sebagai berikut : a. Menerjemahkan model data logikal global terhadap DBMS yang telah ditentukan Tujuannya adalah untuk menghasilkan skema relasional sistem basis data dari model data logikal sehingga dapat diimplementasikan pada DBMS yang dituju. 1) Desain relasi dasar Tujuannya adalah untuk menentukan bagaimana relasi dasar akan direpresentasikan pada DBMS target. 2) Merancangkan representasi derived data Tujuannya adalah untuk memutuskan bagaimana merepresentasikan data turunan dalam model data logikal untuk DBMS. 33 3) Desain kendala perusahaan Tujuannya adalah untuk merancang general constraints pada DBMS yang dituju. b. Merancang organisasi file dan indeks Tujuannya adalah untuk menentukan organisasi file yang optimal untuk menyimpan relasi dasar dan indeks yang dibutuhkan untuk mencapai performa yang dapat diterima, yaitu cara dimana relasi dan tuple disimpan dalam secondary storage. 1) Analisa transaksi Tujuannya adalah untuk mengetahui fungsi-fungsi transaksi yang akan dijalankan pada basis data dan untuk menganalisa transaksi yang penting. 2) Memilih organisasi file Tujuannya adalah untuk memastikan organisasi file yang efisien untuk relasi dasar. 3) Memilih indeks Tujuannya adalah untuk memastikan apakah penambahan indeks akan meningkatkan performa sistem. 4) Memperkirakan besarnya tempat penyimpanan yang dibutuhkan Tujuannya adalah untuk memperkirakan besarnya tempat penyimpanan yang akan dibutuhkan oleh sistem basis data. 34 c. Merancang user view Tujuannya adalah untuk merancang user view yang teridentifikasi selama tahap pengumpulan kebutuhan dan analisis pada daur hidup aplikasi basis data. d. Merancang mekanisme keamanan Tujuannya adalah untuk merancang mekanisme keamanan sistem basis data. Dalam DBMS relational umumnya memiliki dua tipe database security : 1) Sistem keamanan (System security), mencakup akses dan menggunakan basis data level sistem, seperti username dan password. 2) Keamanan data (Data security), mencakup akses dan menggunakan objek basis data (seperti relation dan view) . e. Mempertimbangkan penggunaan dari redudansi yang terkontrol Tujuannya adalah menentukan apakah penggunaan redudansi terkontrol yang telah ternormalisasi yang akan dapat meningkatkan performa sistem. f. Melakukan pengawasan dan pemeliharaan terhadap sistem operasi Tujuannya adalah untuk mengawasi sistem operasi dan meningkatkan performa dari sistem untuk memperbaiki rancangan-rancangan yang kurang sesuai atau sebagai refleksi adanya perubahan kebutuhan. 35 2.1.8. Rancangan User Interface Perancangan user interface ini menggunakan delapan aturan ini disebut dengan Eight Golden Rules of Interface Design, 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. 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 meberikan indikasi bahwa cara yang dilakukan sudah benar dan dapat mempersiapkan kelompok tindakan berikutnya. 36 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 sederhana 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. 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 sedemikian 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 dan urutan tindakan. 37 2.1.9. Normalisasi Menurut (Ema dan Sukrisno, 2005, p73), normalisasi adalah proses untuk membuat data yang tidak normal menjadi data yang normal. Menurut (Kusrini, 2007, p40), normalisasi merupakan cara pendekatan dalam membangun desain logika basis data relasional yang tidak secara langsung berkaitan dengan model data, tetapi dengan menerapkan sejumlah aturan dan kriteria standar untuk menghasilkan struktur tabel yang normal. Dalam perspektif normalisasi sebuah basis data dikatakan baik jika setiap tabel yang membentuk basis data sudah berada dalam keadaan normal. Tujuan dari pembuatan normalisasi adalah : a. Mengurangi redudansi data; b. Menghindarkan adanya data yang tidak konsisten terutama bila terjadi penambahan dan penghapusan data sebagai akibat adanya redudansi data; c. Menjamin bahwa identitas tabel secara tunggal sebagai determinan semua atribut; d. Membuat model relasional yang lebih informatif. Berikut adalah proses nornalisasi : a. Unnormalized Form (UNF) Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikuti format tertentu, dapat saja tidak lengkap dan terduplikasi. Data dikumpulkan apa adanya sesuai keadaannya. 38 b. Firt Normal Form (1NF) Suatu tabel dikatakan dalam keadaan First Normal Form (1NF) jika : 1) Tidak ada perulangan record data dalam tabel. 2) Setiap sel memiliki satu nilai saja. Artinya tidak ada perulangan group dan array. 3) Data yang diinputkan memiliki tipe data yang sama dengan tipe data kolom dalam tabel. c. Second Normal Form (2NF) Suatu tabel dikatakan dalam keadaan Second Normal Form (2NF) jika tabel tersebut sudah dalam keadaan First Normal Form (1NF) dan jika semua atribut yang bukan kunci tabel, baik primary key maupun foreign key tergantung pada semua kunci dalam tabel. d. Third Normal Form (3NF) Suatu tabel dikatakan Third Normal Form (3NF) jika tabel tersebut sudah dalam keadaan Second Normal Form (2NF) dan jika tidak terdapat ketergantungan yang transitif. Artinya data-data yang mungkin diisi berulangulang dapat dibuat sebuah tabel baru. e. Boyce Codd Normal Form (BCNF) Menurut (Connolly dan Begg, 2005,p419), aturan boyce codd adalah sebuah relasi jika dan hanya jika determinan adalah candidate key. Pengujian terhadap BCNF dilakukan dengan cara mendefinisikan semua determinan dan memastikan bahwa semuanya adalah candidate key. 39 Determinan adalah sebuah kelompok atribut dimana beberapa atribut lain bergantung terhadapnya. 2.2. Beberapa Pengertian dalam Bidang Persediaan dan Penjualan Pendekatan yang berhubungan dengan topik yang akan dibahas dalam skripsi ini. 2.2.1. Definisi Persediaan Menurut (Warren, Reeve, Fess, 2005, p355), persediaan adalah untuk mengindikasikan bahan yang terdapat dalam proses produksi atau yang disimpan untuk tujuan tersebut dan barang dagang yang disimpan untuk kemudian dijual dalam operasi normal perusahaan. Dalam hal ini permintaan sumber daya dapat berasal dari internal dan eksternal. Menurut (Mulyadi, 2001, p553), sistem persediaan bertujuan untuk mencatat mutasi tiap jenis persediaan yang disimpan di gudang. Sistem ini berkaitan erat dengan sistem pembelian, sistem retur pembelian, dan sistem akuntansi biaya produksi. Dalam perusahaan manufaktur, persediaan terdiri dari : persediaan produk dalam proses, persediaan barang, persediaan penolong, persediaan bahan habis pakai pabrik, dan persediaan suku cadang. Ada dua macam metode pencatatan persediaan yaitu : a. Metode mutasi persediaan (perpetual inventory method) Setiap mutasi persediaan dicatat dalam kartu persediaan. 40 b. Metode persediaan fisik (physical inventory method). Dalam metode mutasi hanya tambahan persediaan dari pembelian saja yang dicatat sedangkan mutasi berkurangnya persedian karena pemakaian tidak dicatat dalam kartu persediaan. Menurut (Mulyadi, 2001, p560), sistem dan prosedur yang bersangkutan dengan sistem persediaan adalah : a. Prosedur pencatatan produk jadi. Prosedur ini merupakan salah satu prosedur dalam sistem akuntansi biaya produksi. Dalam prosedur ini dicatat harga pokok produksi jadi yang di debitkan ke dalam rekening persediaan produk jadi dan dikreditkan ke dalam rekening barang dalam proses. Datatan akuntansi yang digunakan adalah kartu gudang, kartu persediaan, dan jurnal umum. b. Prosedur pencatatan harga pokok produk jadi yang dijual. Prosedur ini merupakan salah satu prosedur dalam sistem penjualan disamping prosedur lainnya seperti prosedur order penjualan, prosedur persetujuan kredit, prosedur pengiriman barang, prosedur penagihan, prosedur pencatatan piutang. Catatan akuntansi yang digunakan adalah kartu gudang, kartu persediaan, jurnal umum. c. Prosedur pencatatan harga pokok produk jadi yang diterima kembali dari pembeli. Prosedur ini merupakan salah satu prosedur yang membentuk sistem retur penjualan. Jika produk jadi yang telah dijual dikembalikan oleh pembeli, maka 41 transaksi retur penjualan ini akan mempengaruhi persediaan produk jadi. Catatan akuntansi yang digunakan adalah : kartu gudang, kartu persediaan, dan jurnal umum atau jurnal retur persediaan, jika perusahaan menggunakan jurnal khusus. d. Prosedur pencatatan tambahan dan penyesuaian kembali harga pokok persediaan produk dalam proses. Pencatatan persediaan produk dalam proses umumnya dilakukan oleh perusahaan pada akhir periode, pada saat dibuat laporan keuangan bulanan dan laporan keuangan tahunan. e. Prosedur pencatatan harga pokok persediaan yang dibeli. Prosedur ini merupakan salah satu prosedur yang membentuk sisem pembelian. Dalam prosedur ini dicatat harga pokok persediaan yang dibeli. f. Prosedur pencatatan harga pokok persediaan yang dikembalikan kepada pemasok. Prosedur ini merupakan salah satu prosedur yang membentuk sistem retur pembelian. Jika persediaan yang telah dibeli dikembalikan kepada pemasok. g. Prosedur permintaan dan pengeluaran barang gudang Proses ini merupakan salah satu prosedur yang membentuk system akuntansi biaya produksi. Dalam prosedur ini dicatat harga pokok bahan baku, bahan penolong, bahan habis pakai pabrik, dan suku cadang yang dipakai dalam kegiatan produksi dan nonproduksi. h. Prosedur pengembalian barang gudang Prosedur ini melakukan transaksi pengembalian barang gudang mengurangi biaya dan menambah persediaan barang di gudang. 42 i. Sistem perhitungan fisik persediaan Sistem perhitungan fisik persedian umumnya digunakan oleh perusahaan untuk menghitung secara fisik persediaan yang disimpan di gudang yang hasilnya digunakan untuk meminta pertanggungjawaban bagian gudang mengenai pelaksanaan fungsi penyimpanan, dan bertanggungjawab bagian kartu persediaan mengenai keandalan catatan persediaan yang diselenggarakan, serta untuk melakukan penyesuaian terhadap catatan persediaan di bagian kartu persediaan. 2.2.2. Definisi Penjualan Menurut (Mulyadi, 2001, p204), kegiatan penjualan terdiri dari transaksi penjualan barang atau jasa baik secara kredit aupun tunai. Penjualan menutur cara bayarnya dapat dibedakan sebagai berikut : a. Penjualan tunai, yaitu penjualan yang dilaksanakn oleh perusahaan dengan cara mewajibkan pembeli dengan melakukan pembayaran harga barang terlebih dahulu sebelum barang diserahkan kepada pembeli. b. Penjualan kredit, yaitu penjualan yang dilakukan dengan cara memenuhi order dari pelanggan dengan mengirimkan barang atau menyerahkan jasa dan untuk jangka waktu tertentu perusahaan memiliki piutang kepada pelanggannya. 43 2.2.2.1. Fungsi yang Terkait Dengan Penjualan Tunai Menurut (Mulyadi,2001,p462) fungsi-fungsi yang terkait dalam sistem penerimaan kas dari penjualan tunai adalah : a. Fungi penjualan Bertanggung jawab untuk menerima order dari pembeli, mengisi faktur penjualan tunai, dan menyerahkan faktur tersebut kepada pembeli untuk kepentingan pembayaran harga barang ke fungsi kas. b. Fungsi kas Bertanggung jawab sebagai penerima kas dari pembeli. c. Fungsi gudang Bertanggung jawab untuk menyiapkan barang yang dipesan oleh pembeli, serta menyertakan barang tersebut ke fungsi pengiriman. d. Fungsi pengiriman Bertanggung jawab untuk membungkus barangdan menyerahkan barang yang telah di bayar harganya kepada pembeli. e. Fungsi akuntansi Bertanggung jawab sebagai pencatat transaksi penjualan dan penerimaan kas dan pembuat laporan penjualan. 44 2.2.2.2. Dokumen yang Digunakan Dalam Penjualan Dokumen yang digunakan menurut (Mulyadi, 2001, p214), adalah sebagai berikut : a. Surat order pengiriman dan tembusannya b. Faktur dan tembusan c. Rekapitulasi harga pokok penjualan d. Bukti memorial 2.2.2.3. Retur Penjualan Transaksi retur penjualan terjadi jika perusahaan menerima pengembalian barang dari pelanggan, karena barang tidak sesuai dengan permintaan. Ketidaksesuaian tersebut terjadi kemungkinan karena barang yang diterima tidak cocok dengan spesifikasi yang tercantum dalam surat barang order. Barang mengalami kerusakan dalam pengiriman atau barang diterima melewati tanggal pengiriman. 2.2.2.4. Pencatatan Penjualan Barang Menurut Weygandt, pencatatan penjualan dilakukan pada setiap taransaksi penjualan yang terjadi untuk memberikan fakta-fakta telah terjadi penjualan. Secara umum penjualan terjadi saat barang-barang berpindah dari penjual ke pembeli. Saat penjualan terjadi, pihak penjual mengeluarkan dokumen penjualan dalam bentuk invoice penjualan. 45 2.2.2.5. Pengembalian Penjualan Menurut Weygandt, jika terjadi pengembalian barang karena kerusakan barang maka harus dilakukan penyesuaian inventori atas barang tersebut dan biayanya. Hal ini akan menyebabkan contra revenue account atas penjualan. Pengembalian barang menyebabkan kekurangannya kas. 2.3. Tools Berikut adalah berbagai macam tools yang digunakan : 2.3.1. Data Flow Diagram Menurut (whitten, Bentley, dan Dittman, 2004, p362), Data Flow Diagram (DFD) merupakan model proses yang digunakan untuk menggambarkan aliran data melalui sebuah sistem dan tugas atau pengolahan yang dilakukan oleh sistem. Simbolsimbol yang digunakan pada DFD, yaitu : a. Entitas eksternal (terminal) Entitas yang memberikan data kepada sistem (source) atau yang menerima informasi dari sistem (sink), berada di luar sistem. Simbol yang digunakan : b. Data flow Menunjukan aliran data dari satu entitas ke antitas lainnya. Panah menggambarkan aliran data yang bisa terjadi antara dua proses yang berurutan, dari data store ke proses atau sebaliknya dari proses ke sink. 46 Simbol yang digunakan : c. Data store Data store berfungsi sebagai tempat penyimpanan data. Suatu proses dapat mengambil data atau memberikan data ke data store. Simbol yang digunakan : d. Proses Menggambarkan yang dilakukan oleh sistem. Proses berfungsi untuk mengubah satu atau beberapa input/ data masukan menjadi output/ data keluaran sesuai dengan yang diinginkan. Setiap proses memiliki satu atau beberapa data masukan serta menghasilkan satu atau beberapa data keluaran. Simbol yang digunakan : 2.3.2. Flowchart Flowchart adalah serangkaian bagan-bagan yang menggambarkan alir program. Flowchart atau diagram alir memiliki bagan-bagan yang melambangkan fungsi tertentu. Berikut adalah bagan, nama dan fungsinya yang disajikan pada table berikut : 47 Tabel 2.1. Bagan Flowcart NO. NAMA FUNGSI 1. TERMINATOR Awal atau akhir program 2. FLOW Arah aliran program 3. PREPARATION 4. PROCES 5. BAGAN INPUT/OUTPUT DATA nilai awal Proses/pengolahan data Input/ output data 6. SUB PROGRAM Sub program 7. DECISION Seleksi atau kondisi 8. 9. 10. ON PAGE CONNECTOR OFF PAGE CONNECTOR COMMENT Inisialisasi/pemberian Penghubung bagianbagian flowchart pada halaman yang sama Penghubung bagianbagian flowchart pada halaman yang berbeda Tempat komentar tentang suatu proses 48 2.3.1. State Transition Diagram State Transition Diagram adalah suatu diagaram yang menunjukan/ menggambarkan kejadian pembentukan atau pemberian sebuah class, menggambarkan suatu kejadian transisi dan perubahan keadaaan (dari satu state ke state lainnya) suatu objek pada sistem sebagai akibat stimulasi yang diterimanya. State Transition Diagram diciptakan untuk objek-objek yang secara signifikan mempunyai sifat/ behavior dinamis. Satu class dapat memiliki lebih dari satu state diagram.