BAB 2 LANDASAN TEORI
2.1
Pengertian Dasar Sistem Basis Data
2.1.1
Data Menurut O’Brien (2003,p13), data adalah fakta-fakta atau observasi yang mentah, biasanya mengenai kejadian atau transaksi bisnis. Menurut Whitten (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, data adalah fakta-fakta mentah yang harus dikelola untuk menghasilkan
suatu
informasi
yang
memiliki
arti
bagi
suatu
perusahaan/organisasi.
2.1.2
Basis Data Definisi basis data menurut O’Brien (2003, p145) adalah sebuah kumpulan yang terintegrasi dari elemen data yang terhubung secara logikal. Elemen data mendeskripsikan entiti-entiti dan hubungan antara entiti-entiti. Pengertian basis data menurut Connoly (2002, p14) adalah sebuah koleksi data yang dipakai bersama dan terhubung secara logis dan deskripsi dari data ini dirancang untuk memenuhi kebutuhan informasi dari sebuah organisasi. Menurut Connoly (2002, p15), basis data dapat meminimumkan
7
8 pengulangan data (Data Redundancy), dan mencapai independensi data (Data Independence). Independensi data merupakan kemampuan untuk menambah atau merubah data dalam struktur data yang ada tanpa mempengaruhi aplikasi program tersebut. Tetapi apabila akan memindahkan data yang sudah ada pada file dimana program sedang digunakan, maka program yang sedang berjalan tadi akan terpengaruh sehingga harus disesuaikan kembali. Jadi, basis data adalah sebuah kumpulan data yang terhubung secara logikal
yang
dapat
meminimumkan
pengulangan
data
dan
mencapai
independensi data.
2.1.3
Sistem Basis Data Menurut Date (2000, p5), pada dasarnya sistem basis data adalah sistem penyimpanan yang telah terkomputerisasi yang secara keseluruhan bertujuan untuk me-maintain informasi dan membuat informasi tersebut tersedia pada saat yang dibutuhkan. Komponen-komponen penting dalam sistem basis data yaitu : 1. Data Data dalam basis data dapat merupakan data yang single user (hanya satu pengguna yang beroperasi pada basis data) atau multi user, dimana satu atau lebih user beroperasi secara bersama-sama ke dalam basis data. Sehingga data dalam basis data terutama untuk sistem yang besar, harus terintegrasi (integrated) dan dapat dipakai bersama (shared). 2. Perangkat Keras (Hardware)
9 Untuk manajemen basis data hanya dibutuhkan mesin standard, namun yang harus diperhatikan adalah kapasitas penyimpanan karena basis data akan membutuhkan kapasitas yang besar. 3. Perangkat Lunak (Software) Piranti Lunak untuk sistem basis data disebut DBMS (Database Management System). DBMS memungkinkan pengguna untuk membentuk file (create), penambahan data (insert), penghapusan (delete) dan lain-lain. 4. Pengguna (User) Pengguna yang terlibat dalam komponen DBMS yaitu : a. Database Administrator (DBA) Bertanggung jawab untuk mengatur manajemen sumber daya data yang meliputi perencanaan basis data, pengembangan dan pemeliharaan standardnya, aturan dan prosedur, dan rancangan basis data konseptual atau logikal. b. Programmer Programmer adalah seseorang atau sekelompok orang yang menjadi tenaga ahli komputer yang berfungsi untuk mengembangkan programprogram aplikasi yang diperlukan dalam DBMS. c. Pengguna Akhir Yang termasuk dalam kategori pengguna akhir adalah pemilik sistem, para manajer, operator dan sebagainya yang terlibat langsung dalam pengunaan basis data.
10 2.1.3.1 Database Management System (DBMS) Definisi Database Management System (DBMS) menurut Connoly (2002, p16) adalah suatu sistem perangkat lunak yang memungkinkan user untuk mendefinisikan (define), membuat (create), memelihara (maintain), dan menyediakan kendali dalam mengakses basis data. Definisi Database Management System (DBMS) menurut Whitten (2004, p524) adalah perangkat lunak komputer khusus yang disediakan dari vendorvendor komputer yang digunakan untuk membuat, mengakses, mengontrol, dan mengelola basis data. 2.1.3.1.1 Fungsi Database Management System (DBMS) Menurut Connoly (2002, p48), DBMS memiliki 10 fungsi, antara lain: 1. Data storage, retrieval and update DBMS harus dapat memungkinkan user untuk menyimpan, mengambil dan meng-update data di dalam basis data. 2. A user – accessible catalog DBMS harus memiliki sebuah catalog yang berisi deskripsi data item dan dapat diakses oleh user. 3. Transaction support DBMS harus memiliki sebuah mekanisme yang dapat menjamin baik seluruh update yang berhubungan dengan sebuah transaksi dapat dilakukan ataupun keseluruhan update tersebut tidak dilakukan. 4. Concurrency control services
11 DBMS harus memiliki sebuah mekanisme untuk menjamin basis data diupdate secara benar ketika banyak user meng-update basis data secara bersamaan. 5. Recovery services DBMS harus memiliki sebuah mekanisme untuk pemulihan basis data apabila terjadi bencana. 6. Authorization services DBMS harus memiliki sebuah mekanisme untuk menjamin bahwa hanya user yang memiliki otorisasi yang dapat mengakses basis data. 7. Support for data communication DBMS harus dapat berintegrasi dengan piranti lunak komunikasi dan dapat mengakses basis data dari lokasi yang jauh. 8. Integrity services DBMS harus memiliki sarana untuk menjamin baik data di dalam basis data maupun perubahan terhadap data mengikuti aturan-aturan tertentu. 9. Services to promote data independence DBMS
harus
menyertakan
fasilitas-fasilitas
untuk
mendukung
ketidaktergantungan piranti lunak terhadap struktur aktual dari basis data. 10. Utility Services DBMS harus menyediakan serangkaian layanan kegunaan seperti program analisis statistik, pengawasan fasilitas, fasilitas reorganisasi indeks, dan lainlain.
12 2.1.3.1.2 Fasilitas-fasilitas DBMS Menurut Connolly (2002, p16), fasilitas-fasilitas dalam DBMS adalah sebagai berikut ini : •
Mendefinisikan basis data, biasanya menggunakan suatu Data Definition Language (DDL) yang berguna untuk memberikan fasilitas kepada user untuk mendeklarasikan tipe data, struktur dan isi data yang disimpan ke dalam basis data tersebut.
•
Memperbolehkan user untuk menambah data, mengubah data, menghapus data, dan menemukan data. Biasanya dengan menggunakan suatu Data Manipulation Language (DML). Biasanya ada suatu fasilitas untuk melayani pengaksesan data yang disebut sebagai Query Language. Bahasa query yang paling diakui adalah Structured Query Language (SQL), yang secara de facto merupakan standar bagi DBMS.
•
Selain itu terdapat juga fungsi-fungsi untuk pengendalian basis data. Sebagai contoh : ¾ Sistem keamanan (Security system) Untuk mencegah user yang tidak berwenang untuk mengakses file-file yang bukan haknya. ¾ Sistem terintegrasi (Integrity system) Untuk menjaga konsistensi data. ¾ Sistem kontrol (Concurrency control system) Untuk mengijinkan data dapat dipakai bersama-sama oleh user-user lainnya.
13 ¾ Sistem kontrol pengembalian (Recovery control system) Untuk memperbaiki data jika sebelumnya terjadi kerusakan-kerusakan pada perangkat keras atau perangkat lunak. ¾ Katalog yang dapat diakses user (User accessible catalog) Suatu catatan dari deskripsi data dalam basis data. 2.1.3.1.3 Data Definition Language (DDL) Definisi dari Data Definition Language menurut Connolly (2002, p40) adalah suatu bahasa yang memperbolehkan Database Administrator (DBA) atau user untuk mendefinisikan entiti, atribut, dan relationship yang dibutuhkan oleh suatu aplikasi serta menambahkan fungsi-fungsi khusus tertentu untuk mempermudah atau meningkatkan keamanan datanya. 2.1.3.1.4 Data Manipulation Language (DML) Data Manipulation Language menurut Connolly (2002, p41) adalah suatu bahasa yang melakukan operasi-operasi standar pada data yang ada di dalam basis data. Pengoperasian data yang akan dimanipulasi biasanya meliputi : 1. Penambahan data baru ke dalam basis data 2. Mengubah data yang disimpan ke dalam basis data 3. Pemanggilan data yang terdapat di dalam basis data 4. Penghapusan data dari basis data 2.1.3.1.5 State Transition Diagram (STD) State Transition Diagram (STD) adalah perangkat permodelan yang menggambarkan sifat ketergantungan terhadap waktu pada sistem. Menurut Pressman (2001, p317), STD digunakan untuk mengidentifikasi sebagaimana sistem harus berperilaku seperti resiko dari kejadian eksternal. STD digambarkan
14 dengan sebuah state yang berupa komponen sistem yang menunjukkan bagaimana kejadian-kejadian tersebut dari satu state ke state lain. Biasanya di dalam STD digunakan notasi seperti : 1. Active •
State, simbolnya persegi panjang. State adalah kumpulan keadaan atau atribut yang memberi perincian seseorang atau benda pada waktu dan kondisi tertentu. Contohnya seperti proses user mengisi password, menentukan instruksi berikutnya. Simbol state :
•
Transition State / perubahan state, simbolnya tanda panah berarah. Simbol transition state :
•
Condition Kejadian pada lingkungan eksternal yang bisa dideteksi oleh sistem. Hal ini akan mengakibatkan perubahan terhadap state dari keadaan state menunggu X ke state menunggu Y. Contohnya seperti interrupt signal maupun data.
•
Action Action adalah hal yang dilakukan sistem apabila ada perubahan state atau merupakan reaksi terhadap kondisi. Action menghasilkan keluaran dari tampilan pesan, cetakan atau alat output lainnya.
2. Passive
15 Sistem ini tidak melakukan kontrol terhadap lingkungan, akan tetapi lebih bersifat menerima data atau memberi reaksi saja (sistem yang menerima atau mengumpulkan data dari signal yang dikirim oleh satelit). Berikut ini adalah gambar STD yang sederhana: State X Condition Action State Y
2.1.3.1.6 Diagram Aliran Dokumen (DAD) DAD menggambarkan aliran dari data dan informasi dalam area yang bertanggung jawab dalam suatu organisasi (Romney dan Steinbart, 2003, p165). DAD digunakan untuk menelusuri data dari tempat data itu dikeluarkan sampai data itu disimpan. DAD biasanya berguna untuk menganalisis pengontrolan prosedur dalam suatu sistem, seperti pengecekan internal dan pemisahan fungsifungsi dalam organisasi.
Berikut ini adalah simbol-simbol yang digunakan dalam DAD : Tabel 2.1 Tabel Simbol-simbol DAD dan Keterangannya Bentuk Simbol
Nama Terminal
Keterangan Penanda untuk memulai, mengakhiri, ataupun interupsi. Digunakan juga untuk mengindikasi partai eksternal.
16 Bentuk Simbol
Nama
Keterangan
Dokumen / laporan
Dokumen dapat ditulis secara manual atau dapat dicetak dari komputer.
Jumlah kopian dari Digambarkan dengan menumpuk simbol sebuah dokumen
dokumen dan dituliskan jumlah kopian dari dokumen di setiap lembarnya.
Operasi manual
Operasi proses yang dilakukan secara manual.
File permanen
File / dokumen yang disimpan secara permanen dan dapat dicari.
Dokumen sementara Digunakan untuk menandakan dokumen / Jurnal / Ledger
yang bersifat sementara, mengindikasikan jurnal akuntansi ataupun ledger.
Penghubung
dalam Digunakan untuk menghubungkan alur
satu halaman
proses untuk halaman yang sama.
Penghubung
beda Digunakan untuk menghubungkan alur
halaman
proses untuk halaman yang berbeda.
Anotasi
Digunakan untuk menambah komentar deskripsi atau catatan penjelasan.
Alternative
Merepresentasikan alternatif.
17 2.1.3.1.7 Komponen-komponen dalam lingkungan DBMS Menurut Connolly (2002, p18) DBMS memiliki 5 komponen, yaitu: •
Perangkat keras (Hardware) DBMS membutuhkan perangkat keras untuk menjalankannya. Contohnya : single personal computer, single mainframe.
•
Perangkat lunak (Software) Karena seluruh kendali DBMS akan dilakukan oleh program aplikasi maka DBMS harus dapat dihubungkan ke program-program aplikasinya.
•
Data Data yang digunakan oleh suatu organisasi harus didesain sedemikian rupa sehingga mudah untuk digunakan.
•
Prosedur (Procedures) Perintah-perintah yang harus dilakukan untuk menjalankan DBMS ini.
•
Faktor manusia (People) Ini adalah masalah keterkaitan perilaku orang yang menggunakan sistem (user) dengan DBMS yang sudah didesain sebelumnya. Manusia yang terlibat dengan sistem, termasuk dalamnya adalah : database administrator, perancang basis data, pengembang aplikasi dan pemakai akhir. Komponen-komponen dalam lingkungan DBMS dapat digambarkan
sebagai berikut :
Gambar 2.1 Komponen-komponen dalam Lingkungan DBMS (Connolly, 2002, p18)
18 2.1.3.1.8 Keuntungan dan kerugian dari DBMS Penggunaan DBMS memiliki keuntungan dan kerugian. Keuntungannya antara lain : 1. Kontrol terhadap redundansi data 2. Data yang konsisten 3. Semakin banyak informasi yang didapat dari data yang sama 4. Data yang dibagikan (shared data) 5. Menambah integritas data 6. Menambah keamanan data 7. Penetapan standarisasi 8. Menyeimbangkan konflik kebutuhan 9. Memperbaiki pengaksesan data dan hasilnya 10. Menambah produktivitas 11. Memperbaiki pemeliharaan data melalui data independence 12. Meningkatkan concurrency Adapun kerugian DBMS antara lain : 1. Kompleksitas 2. Size / ukuran 3. Biaya dari suatu DBMS 4. Biaya penambahan perangkat keras
2.2
Siklus Aplikasi Basis Data Menurut Connolly (2002, p271) ”As a database system is a fundamental component of the larger organization-wide information system” yang artinya
19 sistem basis data merupakan suatu komponen dasar dari organisasi dengan sistem informasi yang besar. Hal ini sangat penting untuk diperhatikan karena struktur dari siklus hidup aplikasi basis data tidaklah harus benar-benar sekuensial, tetapi meliputi suatu perulangan dari bagan-bagan yang sebelumnya melalui umpan balik. Sebagai contoh, masalah yang dihadapi selama perancangan basis data adalah masih diperlukannya analisis dan pengumpulan data tambahan. Untuk aplikasi basis data kecil dengan jumlah pengguna yang sedikit, siklus hidup tidak terlalu kompleks. Bagaimanapun juga, ketika perancangan sedang dilakukan pada suatu aplikasi basis data ukuran sedang dengan jumlah pengguna antara puluhan sampai dengan ribuan, dengan menggunakan ratusan queries dan program aplikasi, siklus hidup akan menjadi kompleks. Berikut adalah siklus hidup aplikasi basis data:
20
Gambar 2.2 Siklus Hidup Aplikasi Basis Data (Sumber : Connoly, 2002, p272 ) Berikut ini ringkasan dari aktivitas utama yang ada di setiap langkah dari siklus hidup aplikasi sistem basis data, antara lain: •
Database Planning
21 Merencanakan bagaimana tahapan dari siklus hidup bisa direalisasikan secara efektif dan efisien. •
System Definition Menspesifikasikan ruang lingkup dan batasan dari aplikasi sistem basis data, penggunanya, dan juga cakupan aplikasi tersebut.
•
Requirements Collection and Analysis Mengumpulkan dan menganalisis permintaan user dan area aplikasi.
•
Database Design Meliputi rancangan konseptual, logikal, dan fisikal dari basis data.
•
DBMS Selection (optional) Memilih suatu DBMS yang cocok untuk aplikasi sistem basis data.
•
Application Design Merancang antarmuka pemakai dan program aplikasi yang menggunakan dan memproses sistem basis data.
•
Prototyping (optional) Membangun suatu model kerja dari aplikasi basis data, yang mana mengizinkan perancang atau pengguna untuk memvisualisasikan dan mengevaluasi bagaimana gambaran sistem secara keseluruhan dan fungsinya.
•
Implementation Membuat definisi basis data eksternal, konseptual, dan internal dan program aplikasinya.
•
Data Conversion and Loading Memindahkan data dari sistem yang lama ke sistem yang baru.
22 •
Application Testing Basis data diuji untuk mengetahui apakah masih ada error dan memvalidasi sesuai keinginan user.
•
Operational Maintenance Aplikasi basis data benar-benar diimplementasikan. Sistem ini akan terus dimonitor dan dipelihara. Apabila diperlukan suatu permintaan akan dimasukkan ke dalam aplikasi basis data melalui tahapan-tahapan proses yang ada dalam siklus hidup.
2.3
Perancangan Basis Data Perancangan basis data adalah proses menciptakan desain untuk basis data yang akan mendukung operasi dan tujuan perusahaan (Connolly, 2002, p279). Langkah-langkah metodologi perancangan basis data adalah sebagai berikut (Connolly, 2002, p419) : • Perancangan basis data konseptual • Perancangan basis data logikal • Perancangan basis data fisikal
2.3.1
Perancangan Basis Data Konseptual Perancangan basis data konseptual adalah proses membangun sebuah model informasi yang digunakan sebuah perusahaan, bebas dari segala pertimbangan fisik (Connolly, 2002, p419). Tahap ini melibatkan pembuatan
23 konseptual data model dari perusahaan. Data model konseptual dibuat dengan menggunakan informasi yang didokumentasikan dari spesifikasi kebutuhan user. Perancangan basis data konseptual ini tidak terikat dengan detail-detail seperti target perangkat lunak DBMS, program aplikasi, bahasa pemrograman, platform perangkat keras atau dari perangkat fisik lainnya. Langkah 1 •
Membangun model data lokal konseptual untuk setiap view
Langkah 1.1 Mengidentifikasi tipe entity Tipe entity adalah sekumpulan objek yang diidentifikasikan oleh sebuah perusahaan yang mempunyai sifat-sifat yang sama dan mempunyai keberadaan yang independen (Connolly, 2002, p331). Entity occurence adalah sebuah objek unik yang teridentifikasi dalam tipe entity (Connolly, 2002, p333).
Gambar 2.3 Kamus Data Entity (Connolly, 2002, p424) •
Langkah 1.2 Mengidentifikasi tipe relationship Tipe relationship adalah sekumpulan hubungan antara satu atau lebih entity (Connolly, 2002, p334). Relationship occurence adalah
24 sebuah hubungan unik antara satu atau lebih entity yang teridentifikasi dalam tipe relationship.
Gambar 2.4 Kamus Data Relationship (Connolly, 2002, p426) •
Langkah 1.3 Mengidentifikasi dan mengasosiasikan attributes dengan entity atau tipe relationship Attribute adalah sifat dari sebuah entity atau sebuah tipe relationship (Connolly, 2002, p338). Attribute menyimpan nilai dari setiap entity occurrence dan mewakili bagian utama dari data yang disimpan dalam basis data. Sebagai contoh, tipe entity Staff dapat dideskripsikan oleh attribute staffNo, name, position, dan salary. Simple attribute adalah suatu attribute yang terdiri atas komponen tunggal dengan keberadaan yang tidak terikat. Attribute ini tidak dapat dipecah lagi menjadi komponen yang lebih kecil. Simple attribute terkadang juga disebut sebagai atomic attributes. Composite attribute adalah attribute yang terdiri atas banyak komponen, tiap-tiap komponen dengan keberadaan yang tidak terikat. Attribute tertentu dapat dibagi lagi menjadi komponen yang lebih kecil dengan keberadaan masing-masing yang tidak terikat.
25 Single-valued attribute adalah attribute yang menampung nilai tunggal untuk tiap-tiap kejadian dari suatu tipe entity. Multi-valued attribute adalah attribute yang menampung banyak nilai untuk setiap kejadian dari suatu tipe entity. Derived attribute adalah attribute yang menggantikan sebuah nilai yang diturunkan dari nilai sebuah attribute yang berhubungan, tidak perlu pada jenis entity yang sama.
Gambar 2.5 Kamus Data Atribut (Connolly, 2002, p430) •
Langkah 1.4 Menentukan attribute domain Attribute domain adalah satuan nilai-nilai untuk satu atau beberapa attribute (Connolly, 2002, p338). Domain mendefinisikan nilainilai yang dimiliki sebuah attribute dan sama dengan konsep domain pada relational model.
•
Langkah 1.5 Menentukan candidate dan primary key attributes Candidate key adalah kumpulan minimal dari attribute yang secara unik mengidentifikasikan setiap tipe entity (Connolly, 2002, p340).
26 Primary key adalah candidate key yang dipilih untuk secara unik mengidentifikasikan suatu tipe entity (Connolly, 2002, p341). •
Langkah 1.6 Pertimbangkan untuk menggunakan konsep enchanced modelling (optional) Mempertimbangkan
penggunaan
spesialisasi,
generalisasi,
agregasi dan komposisi untuk melanjutkan pengembangan dari ER model. Jika memilih pendekatan generalisasi, maka kita mencoba untuk menyoroti perbedaan antara entity-entity dengan menjelaskan satu atau lebih subclasses dari sebuah entity superclass (Connolly, 2002, p432). a) Generalisasi / spesialisasi Konsep dari generalisasi dan spesialisasi dihubungkan dengan tipe-tipe entity khusus, yaitu superclass dan subclass, dan proses pewarisan atribut turunan (Connolly, 2002, p360). Dimana superclass merupakan
induk
dari
beberapa
kelompok-kelompok
berbeda
keberadaannya pada suatu tipe entity sedangkan subclass merupakan kelompok bagian yang distinct dari suatu tipe entity. Spesialisasi merupakan proses memaksimalkan perbedaanperbedaan yang ada diantara anggota dari sebuah entity dengan mengidentifikasi
perbedaan-perbedaan
karakteristik
yang
ada.
Spesialisasi merupakan pendekatan top-down untuk mendefinisikan sebuah kumpulan dari superclass dan hubungannya dengan subclasssubclassnya, dimana kumpulan subclass dibasiskan pada beberapa perbedaan karakteristik. Sebagai contoh setiap pekerjaan biasanya mempunyai jabatan atau job roles tertentu seperti manajer, sekretaris,
27 maupun sales. Jadi dapat dianggap manajer, sekretaris dan sales merupakan spesialisasi dari pegawai. Generalisasi merupakan proses meminimalisasi perbedaanperbedaan antar entity yang ada dengan mengidentifikasi persamaanpersamaan karakteristiknya. Generalisasi merupakan pendekatan bottomup. Terdapat dua constraints yang mungkin digunakan dalam generalisasi / spesialisasi yaitu (Connolly,2002,p366) : a) Participation constraint, constraint ini menentukan apakah setiap anggota dari superclass harus berpartisipasi sebagai anggota dari sebuah subclass. Terdapat dua kemungkinan yaitu: •
Mandatory, dimana setiap anggota superclass harus menjadi anggota dari subclass.
•
Optional, dimana tidak setiap anggota superclass harus menjadi anggota subclass.
b) Disjoint Constraint, constraint yang menjelaskan hubungan antar anggota dari subclass dan mengindikasikan apakah memungkinkan untuk seorang anggota dari superclass menjadi anggota dari satu atau lebih dari satu subclass. Terdapat dua kemungkinan yaitu: •
Or, dimana setiap anggota superclass hanya boleh menjadi salah satu anggota subclass.
28 •
And, dimana setiap anggota superclass boleh menjadi anggota lebih dari satu subclass.
b) Agregasi Agregasi
merupakan
representasi
dari
sebuah
relasi
mempunyai sebuah (‘has-a relationship’) atau merupakan bagian dari (‘is-part-of relationship’) diantara tipe-tipe entity, dimana salah satu direpresentasikan sebagai keseluruhan (‘Whole’) dan yang lainnya menjadi bagian (‘Part’). Dalam agegrasi ‘whole’ merupakan representasi dari entity yang lebih besar yang mengandung entity yang lebih kecil ‘part’. c) Komposisi Komposisi merupakan bentuk spesifik dari agegrasi yang merepresentasikan sebuah hubungan antar entity, dimana terdapat kepemilikan yang kuat selamanya diantara ‘whole’ dan ‘part’. Pada
compotition,
‘whole’
bertanggung
jawab
atas
penempatan dari ‘part’, yang berarti bahwa compotition harus mengatur penciptaan dan penghilangan dari ‘part’nya. Dengan kata lain, sebuah objek hanya boleh menjadi bagian dari sebuah compotition pada suatu waktu. •
Langkah 1.7 Periksa model untuk redundancy Pada langkah ini, periksa model data konseptual lokal dengan objektif yang spesifik untuk mengidentifikasi apakah ada terjadi redundancy dan menghapus yang sudah ada (Connolly, 2002, p434).
29 Dua aktivitas dalam langkah ini antara lain : 1. Memeriksa kembali one-to-one (1:1) relationship Dalam
mengindetifikasikan
entity-entity
kita
mungkin
telah
mengidentifikasikan dua entity yang merepresentasikan objek yang sama di perusahaan. 2. Menghapus relationship yang redundant Sebuah relationship adalah redundant bila informasi yang sama dapat diperoleh melalui relationship lain. •
Langkah 1.8 Validasikan konseptual model lokal yang bertentangan dengan transaksi user Untuk meyakinkan bahwa model konseptual lokal mendukung transaksi yang dibutuhkan oleh view (Connolly, 2002, p435). Ada dua pendekatan yang mungkin untuk memastikan bahwa data model konseptual lokal mendukung transaksi : 1. Menyebutkan transaksi. 2. Menggunakan jalur transaksi.
•
Langkah 1.9 Mengkaji ulang model data konseptual lokal dengan user Untuk mereview model data konseptual lokal dengan user untuk meyakinkan bahwa model adalah representasi yang nyata dari view. Model data konseptual lokal meliputi diagram ER dan dokumentasi yang mendukung yang menggambarkan model data.
30 2.3.2
Perancangan Basis Data Logikal Perancangan basis data logikal adalah proses membangun suatu model informasi yang digunakan dalam suatu perusahaan berdasarkan suatu model khusus, tapi tidak tergantung kepada suatu DBMS tertentu dengan pertimbangan fisik lain (Connolly, 2002, p441). Langkah 2
Membangun dan memvalidasi model data logikal untuk
setiap view •
Langkah 2.1 Menghilangkan fitur-fitur yang tidak sesuai dengan model relasional (optional) Langkah-langkah yang dilakukan antara lain :
•
-
Hilangkan tipe relasi binary many-to-many (* : *)
-
Hilangkan tipe relasi recursive many-to-many (* : *)
-
Hilangkan tipe relasi yang kompleks
-
Hilangkan atribut multi-valued
Langkah 2.2 Membuat relasi untuk model data logikal lokal Tujuan dari langkah ini adalah untuk membuat suatu relasi untuk model data lokal logikal yang merepresentasikan suatu entity, relasi, dan juga atribut yang telah diidentifikasi. Adapun pendeskripsian bagaimana relasi dapat diturunkan dari struktur data model yang ada, antara lain:
Tipe strong entity
Tipe weak entity
Tipe relasi binary one-to-many (1:*)
Tipe relasi binary one-to-one (1:1)
31
•
Relasi rekursif one-to-one (1:1)
Tipe relasi superclass / subclass
Tipe relasi binary many-to-many
Tipe relasi kompleks
Atribut multi-valued.
Langkah 2.3 Memvalidasi relasi menggunakan normalisasi Proses normalisasi melibatkan beberapa langkah, antara lain :
o First Normal Form (1NF), menghilangkan repeating group o Second Normal Form (2NF), menghilangkan partial dependencies pada primary key
o Third Normal Form (3NF), menghilangkan transitive dependencies pada primary key
o Boyce-Codd Normal Form (BCNF), menghilangkan anomali-anomali yang masih tersisa dalam functional dependencies •
Langkah 2.4 Memvalidasi relasi pada transaksi-transaksi user Langkah ini dilakukan dengan tujuan untuk memastikan bahwa relasi dalam model data logikal lokal mendukung transaksi-transaksi yang diperlukan dalam penggambaran (view).
•
Langkah 2.5 Mendefinisikan integrity constraints Ada lima tipe integrity constraints, antara lain : -
Required data Beberapa atribut harus selalu berisi data yang sah sehingga atribut tersebut tidak diperbolehkan menerima null.
32 -
Attribute domain constraints Setiap atribut mempunyai domain yang merupakan sekumpulan nilai yang sah.
-
Entity integrity Primary key dari sebuah entity tidak dapat menerima null.
-
Referential integrity Jika foreign key berisi nilai maka nilai tersebut harus menunjuk pada tuple yang ada pada relasi induk. Untuk menyakinkan referential integrity perlu dispesifikasikan existence constraints yang mendefinisikan kondisi dimana candidate key atau foreign key ditambahkan, diubah atau dihapus. Jika sebuah tuple dari relasi induk dihapus, referential integrity hilang jika ada tuple anak menunjuk ke tuple induk yang dihapus. Ada beberapa strategi yang dapat digunakan : a) NO ACTION. Mencegah penghapusan dari relasi induk jika terdapat referensi ke tuple anak. b) CASCADE. Jika tuple induk dihapus maka secara otomatis tuple anak akan dihapus. c) SET NULL. Jika tuple induk dihapus, maka foreign key dari tuple anak akan menjadi null. d) SET DEFAULT. Jika tuple induk dihapus, maka foreign key pada semua tuple anak akan diberikan nilai default. e) NO CHECK. Jika tuple induk dihapus, maka tidak dilakukan apapun untuk menyakinkan bahwa referential integrity terjaga.
33 -
Enterprise constraints Merupakan aturan tambahan yang dibuat oleh user atau seorang database administrator dari basis data tersebut.
•
Langkah 2.6 Meninjau ulang model data logikal lokal dengan user Langkah ini dilakukan dengan tujuan untuk memastikan model data logikal lokal dan dokumentasi pendukung menggambarkan model yang merupakan representasi nyata dari view tersebut.
Langkah 3 •
Membangun dan memvalidasi model data logikal global
Langkah 3.1 Menggabungkan model-model data logikal lokal ke dalam model data global Hal-hal yang perlu dilakukan antara lain : o Meninjau ulang nama dan isi dari tiap entities / relations dari candidate key o Meninjau ulang nama dan isi dari relationships foreign keys o Menggabungkan entities / relations dari model data lokal o Memasukkan (tanpa menggabungkan) entities / relations yang unik ke dalam setiap model data o Menggabungkan relationships / foreign keys dari model data lokal o Memasukkan (tanpa menggabungkan) relationships / foreign keys yang unik ke dalam setiap model data o Mengecek apakah ada entities / relations dan relationships / foreign keys yang tertinggal o Mengecek foreign keys
34 o Mengecek integrity constraints o Menggambarkan diagram ER / relasi global o Meng-update dokumentasi •
Langkah 3.2 Memvalidasikan model data logikal global Tujuan dari langkah ini adalah untuk memvalidasi relasi yang dibuat dari model data logikal global dengan menggunakan teknik dari normalisasi dan juga memastikan bahwa relasi yang dibuat mendukung transaksi.
•
Langkah 3.3 Mengecek pertumbuhan masa depan Untuk menentukan apakah ada perubahan signifikan yang mungkin terjadi di masa depan dan untuk menafsir apakah model data logikal global dapat mengakomodasikan segala perubahan tersebut.
•
Langkah 3.4 Meninjau ulang model data logikal global dengan users Untuk memastikan bahwa model data logikal global merupakan representasi nyata perusahaan.
2.3.3
Perancangan Basis Data Fisikal Perancangan basis data fisikal adalah proses untuk menghasilkan suatu deskripsi pengimplementasian dari suatu basis data pada media penyimpanan secondary, yang juga akan mendeskripsikan dasar dari suatu relasi, organisasi file, dan juga index yang digunakan untuk mencapai suatu efisiensi pengaksesan data dan batasan-batasan integritas serta ukuran keamanan (Connolly, 2002, p282). Langkah 4
Menerjemahkan model data logikal kedalam target DBMS
35 •
Langkah 4.1 Merancang relasi dasar Tujuan dari langkah ini adalah untuk memutuskan bagaimana merepresentasikan relasi dasar yang diidentifikasi dalam model data logikal global pada DBMS yang dipakai. Untuk memulai proses perancangan
sistem
basisdata
fisikal,
pertama-tama
anda
dapat
mengumpulkan dan mengasimilasikan suatu informasi tentang relasi yang dirancang selama perancangan sistem basis data logikal. Informasi yang diperlukan bisa berasal dari kamus data dan definisi dari relasi yang didefinisikan menggunakan Database Design Language (DBDL). Untuk setiap relasi yang diidentifikasi pada model data logikal global, definisinya terdiri dari:
Nama relasi Suatu list untuk atribut yang simple Primary key, alternate key, dan foreign key Suatu daftar dari atribut turunan dan bagaimana pembuatannya Batasan integrasi untuk setiap foreign key yang diidentifikasi. Dari kamus data, dari setiap atributnya dapat diketahui:
Domain atribut tersebut yang terdiri dari tipe data, panjang, dan berbagai batasan pada domain.
Suatu optional nilai default untuk atribut. Apakah atribut boleh bernilai null. •
Langkah 4.2 Merancang representasi dari data turunan
36 Tujuan dari langkah ini adalah untuk memutuskan bagaimana merepresentasikan suatu data turunan pada model data logikal global pada DBMS yang dipakai. •
Langkah 4.3 Merancang batasan perusahaan Tujuan dari langkah ini adalah untuk merancang batasan perusahaan untuk DBMS yang dipakai.
Langkah 5 •
Merancang representasi fisikal
Langkah 5.1 Analisis transaksi Tujuan dari langkah ini adalah untuk mengerti fungsi dari suatu transaksi yang mana akan dijalankan pada basis data dan untuk menganalisa transaksi yang penting. Untuk membuat perancangan sistem basis data fisikal efektif maka perlu dimiliki pengetahuan mengenai transaksi atau query yang akan dijalankan di dalam basis data. Hal ini termasuk kuantitatif atau kualitatif informasi. Dalam menganalisa transaksi, dapat diidentifikasi kriteria performansi sebagai berikut:
Transaksi yang sering digunakan dan akan berdampak besar terhadap performansi keseluruhan.
Transaksi yang merupakan transaksi bisnis yang kritis. Durasi waktu dalam harian atau mingguan yang akan mendapatkan banyak permintaan pada basis data. •
Langkah 5.2 Memilih organisasi file
37 Tujuan dari langkah ini adalah untuk menentukan organisasi file yang efisien untuk setiap relasional data. Dalam banyak kasus yang ada, suatu relasional DBMS akan memberikan sedikit bahkan tanpa pilihan dalam memilih organisasi file, walaupun beberapa akan mempunyai indeks yang spesifik. Bagaimanapun, berikut ini beberapa organisasi file yang ada adalah sebagai berikut:
Heap. Hash. Indexed Sequential Access Method (ISAM). B+-tree. Clusters. •
Langkah 5.3 Memilih indeks Tujuan dari langkah ini adalah untuk menentukan apakah penambahan indeks akan meningkatkan performansi dari suatu sistem. Biasanya pemilihan atribut untuk indeks adalah sebagai berikut:
Suatu
atribut
yang
digunakan
paling
sering
untuk
operasi
penggabungan, yang akan membuat penggabungan tersebut lebih efisien.
Suatu atribut yang digunakan paling banyak untuk mengakses suatu record di dalam relasi yang ada.
•
Langkah 5.4 Memperkirakan kapasitas disk yang dibutuhkan untuk menyimpan basis data.
38 Tujuan dari langkah ini adalah untuk mengestimasi ukuran kapasitas disk yang diperlukan untuk sistem basis data. Langkah 6
Merancang user views
Tujuan dari langkah ini adalah untuk merancang tampilan user yang diidentifikasi selama pengumpulan informasi dan analisis dari siklus hidup aplikasi sistem basis data. Langkah 7
Merancang mekanisme keamanan
Tujuan dari langkah ini adalah untuk merancang ukuran keamanan untuk basis data yang telah dispesifikasi oleh user.
2.4
Prototyping Prototyping adalah membuat model kerja dari aplikasi basis data. Suatu prototype adalah model kerja yang biasanya tidak memiliki semua fitur yang dibutuhkan atau fungsi yang diinginkan pada sistem akhir (Connolly, 2002, p291). Tujuan utama dari mengembangkan prototype aplikasi basis data adalah memungkinkan pengguna untuk mengidentifikasi fitur-fitur dari sistem yang dirasakan sudah baik atau masih ada yang kurang. Selain itu, pengguna dapat memberikan saran perbaikan atau bahkan fitur-fitur baru pada aplikasi basis data sehingga perancang dapat mengevaluasi kembali. Keuntungan utama dari prototyping adalah relatif tidak mahal dan cepat untuk dibangun. Ada dua jenis strategi prototyping yang digunakan sekarang ini, yaitu requirement prototyping dan evolutionary prototyping. Requirement prototyping menggunakan prototype untuk menentukan kebutuhan dari aplikasi basis data yang diusulkan dan ketika kebutuhan tersebut sudah diketahui semua, maka
39 prototype dibuang. Sedangkan evolutionary prototyping digunakan untuk tujuan yang sama juga, tetapi prototype tersebut tidak dibuang melainkan digunakan untuk perkembangan lebih lanjut. Menurut Whitten (2004, p450), saat ini, beberapa analis dan desainer lebih memilih prototyping, sebuah pendekatan desain berbasis engineering modern. Pendekatan prototyping adalah proses iteratif yang melibatkan hubungan kerja yang dekat antara desainer dan pengguna. Pendekatan ini memiliki beberapa keuntungan seperti dibawah ini : •
Prototyping menyarankan dan meminta partisipasi aktif dari pengguna akhir.
•
Iterasi dan perubahan adalah sebuah konsekuensi alami dari pengembangan sistem dimana pengguna akhir cenderung berubah pikiran. Prototyping lebih sesuai untuk situasi tersebut karena asumsi bahwa prototipe berkembang melalui iterasi ke dalam sistem yang diinginkan.
•
Prototyping dapat meningkatkan kreativitas karena memungkinkan umpan balik pengguna yang lebih cepat, yang dapat mengarahkan kepada solusi yang lebih baik.
•
Prototyping mempercepat beberapa fase dari siklus hidup, bahkan mungkin melewati programmer. Pada kenyataannya, prototyping mengkonsolidasikan bagian dari fase-fase yang biasanya terjadi setelah fase lain terjadi.
40 Terdapat juga beberapa kelemahan pendekatan prototyping. Sebagian kelemahan dan perangkap tersebut dapat diungkapkan dalam sebuah pernyataan : Prototyping mendorong jalan pintas yang berisiko di seluruh siklus hidup. Untungnya, beberapa perangkap di bawah ini dapat kita hindari melalui disiplin yang tepat : •
Prototyping mendorong kembali ke siklus hidup ”code, implement, and repair” yang sebelumnya telah mendominasi sistem informasi.
•
Prototyping tidak menghilangkan kebutuhan fase analisa sistem.
•
Selama prototyping, lingkup dan kompleksitas sebuah sistem dapat dengan cepat berkembang lebih dari rencana semula.
•
Performansi prototype sering lebih lambat daripada bahasa generasi ketiga yang setara dengannya.
Prototype dapat dikembangkan dengan cepat dengan menggunakan bahasa pemrograman generasi ke-4 (4GL) dan berorientasi objek yang tersedia saat ini. Prototype dapat dibangun untuk output sederhana, computer dialogue, key function, keseluruhan subsistem, atau bahkan sistem keseluruhan. Masingmasing sistem prototype ditinjau ulang oleh pengguna akhir dan manajemen, yaitu pihak yang membuat rekomendasi tentang persyaratan, metode, dan format. Prototype tersebut kemudian dikoreksi, ditingkatkan, atau diseleksi untuk mencerminkan persyaratan baru. Teknologi prototyping membuat beberapa perbaikan dalam cara yang relatif langsung. Revisi dan peninjauan ulang berlanjut sampai prototype diterima. Pada saat itu, pengguna akhir akan menerima baik persyaratan maupun desain yang memenuhi persyaratan tersebut.
41 Mendesain dengan prototyping tidak selalu harus memenuhi seluruh persyaratan desain. Misalnya, prototype tidaklah selalu menekankan masalah performansi penting (tertentu) dan batasan tempat penyimpanan. Prototype sangat jarang memasukkan kontrol internal. Analis atau desainer seharusnya masih menentukan kontrol internal tersebut.
2.5
Teori-teori Khusus yang Berhubungan dengan Topik yang Dibahas Teori-teori khusus yang mendukung dalam penulisan skripsi ini, yaitu pembelian, persediaan dan penjualan.
2.5.1
Pembelian Berikut ini adalah teori-teori yang berhubungan dengan pembelian.
2.5.1.1 Definisi Pembelian Menurut Mulyadi (2001, p209), pembelian adalah suatu usaha yang digunakan dalam perusahaan untuk pengadaan barang yang diperlukan oleh perusahaan. Secara umum definisi pembelian adalah merupakan usaha pengadaaan barang atau jasa dengan tujuan yang akan digunakan sendiri, untuk kepentingan proses produksi maupun untuk dijual kembali, baik dengan atau tanpa proses, dalam proses pembelian yang ada, agar kegiatan pembelian dapat dilakukan dengan benar. 2.5.1.2 Jenis-Jenis Pembelian Berdasarkan jenis pemasok, pembelian dapat dibedakan menjadi dua yaitu:
42 a.
Pembelian lokal, yaitu pembelian yang dilakukan dari pemasok dalam negeri.
b.
Pembelian impor, yaitu pembelian yang dilakukan dari pemasok luar negeri.
2.5.1.3 Fungsi Terkait Pembelian Fungsi pembelian pada perusahaan adalah melakukan pembelian barang sesuai dengan kebutuhan persediaan perusahaan. Di dalam melaksanakan pembelian ada beberapa faktor yang harus diperhatikan yaitu mutu barang, jumlah yang dibutuhkan, waktu pengiriman serta harga barang. Menurut Mulyadi(2001, p300), fungsi yang terkait dalam sistem pembelian adalah : a.
Fungsi gudang, bertanggung jawab untuk mengajukan permintaan 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 bahan yang
diterima dari pemasok guna menentukan dapat atau tidaknya barang tersebut diterima oleh perusahaan. d.
Fungsi akuntansi yang berkaitan dengan transaksi pembelian adalah fungsi pencatatan hutang yang bertanggung jawab untuk
43 mencatat transaksi pembelian ke register bukti kas keluar untuk menyelenggarakan arsip dokumen sumber bukti kas keluar yang berfungsi sebagai catatan hutang atau menyelenggarakan kartu hutang sebagai buku pembantu hutang. 2.5.1.4 Informasi yang Diperlukan Dari Kegiatan Pembelian Menurut Mulyadi (2001, p303-310) informasi yang diperlukan oleh manajemen dari kegiatan pembelian adalah :
2.5.2
a.
Jenis persediaan yang telah mencapai titik pemesanan kembali.
b.
Order pembelian yang telah dikirim kepada pemasok
c.
Order pembelian yang telah dipenuhi oleh pemasok
d.
Total saldo utang dagang pada tanggal tertentu
e.
Saldo utang dagang kepada pemasok tertentu
f.
Tambahan kuantitas dan harga pokok persediaan dari pembelian
Penjualan Berikut adalah teori-teori yang terkait dengan penjualan.
2.5.2.1 Definisi Penjualan Menurut Mulyadi (2001,p202), kegiatan penjualan terdiri dari transaksi penjualan barang atau jasa baik secara kredit maupun tunai. Penjualan menurut cara bayarnya dapat dibedakan sebagai berikut: 1.
Penjualan tunai, yaitu penjualan yang dilaksanakan oleh perusahaan dengan cara mewajibkan pembeli dengan melakukan pembayaran harga barang terlebih dahulu sebelum barang diserahkan kepada pembeli.
44 2.
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.
2.5.2.2 Fungsi yang Terkait Dengan Penjualan Menurut Mulyadi (2001, p204),fungsi yang terkait dengan sistem penjualan adalah : 1.
Fungsi kredit, bertanggung jawab dalam meneliti status kredit pelanggan dan memberikan otorisasi pembelian kredit kepada pelanggan.
2.
Fungsi penjualan, bertanggung jawab menerima order, mengedit order, meminta otorisasi kredit, menentukan segala pengiriman dan bertanggung jawab atas transaksi penjualan.
3.
Fungsi gudang, bertanggung jawab untuk menyimpan dan menyiapkan barang yang dipesan dan mengirimkan ke bagian pengiriman.
4.
Fungsi pengiriman, bertanggung jawab untuk menyerahkan barang ke pelanggan berdasarkan surat order pengiriman yang diterima dari bagian penjualan.
5.
Fungsi akuntansi, bertanggung jawab untuk mencatat transaksi penjualan dan mengirimkan pernyataan piutang kepada debitur, serta membuat laporan penjualan.
45 6.
Fungsi penagihan, bertanggung jawab untuk membuat surat tagihan secara periode kepada pemegang kartu kredit.
2.5.2.3 Informasi yang Diperlukan Dari Transaksi Penjualan Informasi yang diperlukan oleh pihak manajemen dari transaksi penjualan adalah sebagai berikut : a.
Jumlah pendapatan penjualan menurut jenis produk atau kelompok produk persatuan waktu
b.
Jumlah piutang kepada setiap debitur dari tansaksi penjualan
c.
Jumlah harga pokok produk yang dijual selama jangka waktu tertentu
2.5.3
d.
Nama dan alamat pembeli
e.
Kuantitas barang yang dijual
f.
Nama wiraniaga yang melakukan
g.
Otorisasi pejabat yang berwenang
Persediaan Berikut adalah teori yang berhubungan dengan persediaan.
2.5.3.1 Definisi Persediaan Menurut Rangkuti (1995, p7), persediaan adalah merupakan salah satu unsur yang paling aktif dalam operasi perusahaan yang secara kontinu diperoleh, diubah kemudian dijual kembali. Dengan demikian dapat disimpulkan bahwa persediaan adalah barangbarang yang dibeli untuk diproduksi, serta dijual kembali dan habis dipakai oleh perusahaan.
46 Karena pentingnya peranan persediaan barang bagi perusahaan, kekayaan tersebut haruslah berada dalam pengendalian dan pengawasan ketat. Tujuan pengawasan menurut Rangkuti (1995, p9) : a.
Menjaga jangan sampai kehabisan persediaan
b.
Supaya pembentukan persediaan stabil
c.
Menghindari pembelian yang kecil-kecilan / tidak efisien
d.
Pemesanan yang ekonomis
2.5.3.2 Jenis-Jenis Persediaan Menurut Rangkuti (1995, p7-8), jenis-jenis persediaan menurut fungsinya dapat dibedakan : a.
Batch Stock / Lot Size Inventory, yaitu persediaan yang diadakan karena pembelian atau pembuatan bahan-bahan atau barangbarang dalam jumlah yang lebih besar dari
jumlah yang
dibutuhkan saat ini. b.
Fluctuation Stock, yaitu persediaan yang diadakan untuk menghadapi fluktuasi permintaan konsumen yang tidak dapat diramalkan.
c.
Anticipation Stock, yaitu persediaan yang diadakan untuk menghadapi
fluktuasi
permintaan
yang
dapat
diramalkan,
berdasarkan pola maksimum yang terdapat dalam satu tahun dan untuk menghadapi penggunaan atau penjualan atau permintaan meningkat.
47 Menurut jenis dan posisi barang, menurut Rangkuti (1995, p14) dapat dibedakan: a.
Persediaan bahan mentah (raw material) yaitu persediaan barangbarang berwujud, seperti besi, kayu serta komponen-komponen lainnya yang digunakan dalam proses produksi.
b.
Persediaan
bagian
produksi
(purchase
component),
yaitu
persediaan barang-barang yang terdiri dari komponen-komponen yang diperoleh dari perusahaan lain, dimana secara langsung dapat dirakit menjadi suatu produk. c.
Persediaan bahan pembantu atau penolong (supplies), yaitu persediaan barang-barang yang diperlukan dalam proses produksi, tetapi tidak merupakan bagian atau komponen barang jadi.
d.
Persediaan barang-barang setengah jadi (work in process), yaitu persediaan barang-barang yang merupakan keluaran dari tiap-tiap bagian dalam proses produksi atau yang telah diolah menjadi suatu bentuk, tetapi masih perlu diproses lebih lanjut menjadi barang jadi.
e.
Persediaan barang-barang jadi (finished goods), yaitu persediaan barang-barang yang telah selesai diproses atau diolah dalam pabrik dan siap untuk dijual atau dikirim kepada langganan.