BAB 4 PERANCANGAN DAN IMPLEMENTASI. Langkah selanjutnya yang perlu dilakukan adalah perancangan basis data yang dibagi

Ukuran: px
Mulai penontonan dengan halaman:

Download "BAB 4 PERANCANGAN DAN IMPLEMENTASI. Langkah selanjutnya yang perlu dilakukan adalah perancangan basis data yang dibagi"

Transkripsi

1 BAB 4 PERANCANGAN DAN IMPLEMENTASI 4.1 Perancangan Basis Data Langkah selanjutnya yang perlu dilakukan adalah perancangan basis data yang dibagi kedalam 3 tahapan, yaitu : 1. Perancangan Basis Data Konseptual 2. Perancangan Basis Data Logikal 3. Perancangan Basis Data Fisikal Perancangan Basis Data Konseptual Perancangan basis data konseptual merupakan suatu proses pembuatan model dengan menggunakan informasi yang diperoleh dari perusahaan. Beberapa langkah penting dalam merancang basis data secara konseptual adalah : 1. Identifikasi tipe entity 2. Identifikasi tipe relasional 3. Identifikasi dan asosiasi atribut suatu entity 4. Menentukan domain atribut 5. Identifikasi candidate dan primary key setiap entitas 6. Memeriksa model dari redudancy 7. Memvalidasi model data konseptual lokal terhadap transaksi pengguna 59

2 Identifikasi Tipe Entity Tahap ini ditentukan entitas-entitas utama yang dibutuhkan pada perancangan basis data. Tabel 4.1 Identifikasi Tipe-Tipe Entity NO Nama Entity Deskripsi 1. Barang Keterangan yang berhubungan dengan penyediaan barang 2. Merk Merk pada barang 3. Jenis Jenis barang 4. Customer Daftar pelanggan 5. Pegawai Daftar pegawai 6. Order Daftar pemesanan 7. Supplier Daftar pemasok barang 8. Divisi Bagian dari pegawai 9. Faktur_Penerimaan_Barang Menunjukan bukti daftar barang yang sudah diterima 10. Faktur_Penjualan Menunjukan bukti daftar barang yang dijual ke pelanggan 11. Nota_Tagihan Menunjukkan daftar piutang kepada pelanggan 12. Surat_Jalan_Order Menunjukkan informasi surat jalan yang menyertai order 13. Surat_Jalan_Customer Menunjukkan informasi surat jalan yang menyertai nota tagihan

3 Daftar_Pemesanan Daftar Pemesanan barang oleh cutomer Mengidentifikasikan Tipe-Tipe Relasi Gambar 4.1 Entity-Relationship Diagram Konseptual

4 Mengidentifikasi dan Menghubungkan Atribut dengan Tipe- Tipe Entitas, Domain Atribut, Primary Key dan Candidate key Tabel 4.2 Pembatas Multiplicity Tipe Relational Entity Name Multiplicity Relationship Entity Name Multiplicity Barang 1..* Terhadap Order 1..* 1..* Terhadap Faktur_Penerimaan_ 1..* Barang 1..* Terhadap Faktur_Penjualan 1..* 1..* Terhadap Daftar_Pemesanan 1..* 1..* Memiliki Merk Memiliki Jenis 1..* Customer 1..1 Memiliki Daftar_Pemesanan 1..* 1..1 Memiliki Faktur_Penjualan 1..* 1..1 Memiliki Nota_Tagihan 1..* Pegawai 1..1 Melakukan Order 1..* 1..1 Melakukan Faktur_Penjualan 1..* 1..1 Menerima Faktur_Penerimaan_ 1..* Barang 1..1 Menerima Daftar_Pemesanan 1..* Divisi 1..1 Memiliki Pegawai 1..* Faktur_Penjualan 1..* Terhadap Nota_tagihan 1..1 Surat_Jalan_Order 1..1 Memiliki Order 1..1

5 63 Supplier 1..1 Menerima Order 1..* 1..1 Melakukan Faktur_Penerimaan_ 1..* Barang 1..1 Membuat Surat_Jalan 1..* Surat_Jalan_Customer 1..1 Memiliki Faktur_Penjualan 1..* 1..1 Terhadap Customer Mengidentifikasikan Asosiasi Atribut Suatu Entity Entitas Customer Tabel 4.3 Entitas Customer Attribute Description Date Type & Length Nulls Multi Valued Kd_Customer Mengidentifikasi setiap customer Char(5) No No Nama_Customer Nama dari customer Varchar(20) No No Alamat_Customer Alamat dari customer Varchar(100) No No Telp_Customer Nomor telpon dari customer Varchar(30) No Yes

6 64 Entitas Barang Tabel 4.4 Entitas Barang Attribute Description Data Type & Length Nulls Multi Valued Kd_Barang Mengidentifikasikan Barang yang tersedia Char(5) No No Nama_Barang Nama barang yang tersedia Varchar(20) No No Kd_Merk_Barang Mengidentifikasikan merk Char(5) No No barang Nama_Merk Nama merk pada barang Varchar(20) No No Kd_Jenis_Barang Mengidentifikasikan Jenis barang yang tersedia Char(5) No No Jenis_Barang Jenisa dari suatu barang Varchar(10) No No Harga Ukuran Harga dari masing-masing barang yang tersedia Ukuran dari barang yang tersedia Money No No Varchar(5) No No Qty Jumlah dari setiap barang Integer No No

7 65 Entitas Jenis Tabel 4.5 Entitas Jenis Attribute Description Data Type & Lenght Nulls Multi Valued Kd_Jenis_Barang Mengidentifikasikan jenis Char(5) No No barang yang tersedia Jenis_Barang Jenis dari suatu barang Varchar(15) No No Entitas Merk Tabel 4.6 Entitas Merk Attribute Description Data Type & Lenght Nulls Multi Valued Kd_Merk_Barang Mengidentifikasikan merk dari barang yang tersedia Char(5) No No Nama_Merk_Barang Nama merk dari suatu barang Varchar(15) No No

8 66 Entitas Pegawai Tabel 4.7 Entitas Pegawai Attribute Description Data Type & Lenght Nulls Multi Valued Kd_Pegawai Kd_Divisi Mengidentifikasi pegawai yang bekerja Mengidentifikasi divisi yang ada pada perusahaan secara unik Char(5) No No Char(5) No No Nama_Pegawai Nama dari pegawai Varchar(30) No No Alamat_Pegawai Alamat dari pegwai Varchar(100) No No Telp_Pegawai Nomor telepon dari pegawai Varchar(30) No No Entitas Divisi Tabel 4.8 Entitas Divisi Attribute Description Data Type & Lenght Nulls Multi Valued Kd_Divisi Mengidentifikasikan divisi yang ada pada perusahaan Char(5) No No Nama_Divisi Nama dari Divisi Varchar(30) No No

9 67 Entitas Suplier Tabel 4.9 Entitas Supplier Attribute Description Data Type & Lenght Nulls Multi Valued Kd_Supplier Mengidentifikasikan setiap supplier Char(5) No No Nama_Supplier Nama dari supplier Varchar(30) No No Alamat_Supplier Alamat dari supplier Varchar(100) No No Telp_Supplier Nomor dari supplier Varchar(30) No No Entitas Order Tabel 4.10 Entitas Order Attribute Description Data Type & Lenght Nulls Multi Valued No_Order Mengidentifikasikan nomor order Char(5) No No Kd_Supplier Mengidentifikasikan setiap supplier Char(5) No No Nama_Supplier Nama dari supplier Varchar(30) No No Tanggal Tanggal Order Datetime No No Kd_Pegawai Mengidentifikasikan setiap pegawai Char(5) No No Nama_Pegawai Nama dari pegawai Varchar(30) No No

10 68 Kd_Barang Mengidentifikasikan setiap barang Char(5) No No Nama_barang Nama dari barang yang dipesan Varchar(20) No No Ukuran Ukuran dari barang yang dipesan Varchar(5) No No Harga_Beli Harga beli barang Decimal No No Qty Jumlah Pembelian setiap barang Interger No No Sub_Total Total Harga Sub total pemesanan barng dari supplier Total harga pemesanan barang dari supplier Decimal No No Decimal No No Entitas Daftar_Pemesanan Tabel 4.11 Entitas Daftar Pemesanan Attribute Description Data Type & Lenght Nulls Multi Valued No_Daftar_Pemesan an Mengidentifikasikan daftar pemesanan yang ada pada perusahaan Char(5) No No Status_Pemesanan Status Pemesanan Char(10) No No Kd_Customer Mengidentifikasikan setiap pembeli Char(5) No No Nama_Customer Nama dari customer Varchar(30 No No Alamat_Customer Alamat dari customer Varchar(100) No No

11 69 Telp_Customer Nomor telepon customer Varchar(15) No No Kd_Pegawai Mengidentifikasikan pegawai yang bekerja Char(5) No No Tanggal Tanggal pemesanan barang Datetime No No Kd_Barang Mengidentifikasikan setiap barang yang tersedia Char(5) No No Nama_Barang Nama dari barang Varchar(20) No No Harga_Jual Harga jual barang Decimal No No Qty Sub_total Jumlah pemesanan u tuk tiap barang Harga sub total pemesanan barang Integer No No Decimal No No Total Total Harga pemesanan harga Decimal No No Entitas Faktur_Penerimaan_Barang Tabel 4.12 Entitas Faktur Penerimaan Barang Attribute Description Data Type & Lenght Nulls Multi Valued No_Faktur Kd_Supplier Mengidentifikasikan faktur penerimaan barang yang ada pada perusahaan Mengidentifikasikan setiap supplier Char(5) No No Char(5) No No

12 70 Nama_Supplier Nama dari supplier Varchar(30) No No Tanggal Kd_barang Tanggal faktur penerimaan barang Mengidentifikasikan setiap barang yang tersedia secara unik Datetime No No Char(5) No No Nama_Barang Nama dari setiap barang Varchar(20) No No Harga_Beli Harga beli barang Decimal No No Qty Sub_Total Jumlah pemesanan untuk setiap barang Harga sub total pemesanan barang ke supplier Integer No No Decimal No No Total Total harga pemesanan barang Decimal No No Entitas Faktur_Penjualan Tabel 4.13 Faktur Penjualan Attribute Description Data Type & Lenght Nulls Multi Valued No_Faktur_Penjualan Mengidentifikasikan faktur Char(5) No No Kd_Customer penjualan yang ada pada perusahaan Mengidentifikasikan setiap pembeli Char(5) No No

13 71 Nama_Customer Nama dari customer Varchar(30) No No Tanggal Tanggal faktur penjualan Datetime No No Kd_Barang Mengidentifikasikan setiap barang yang tersedia Char(5) No No Nama_Barang Nama dari setiap barang Varchar(20) No No Harga_Jual Harga jual barang Decimal No No Qty Jumlah penjualan tiap barang Integer No No Sub_Total Harga sub total penjualan barang Decimal No No Total Total Harga Penjualan Decimal No No Entitas Nota_Tagihan Tabel 4.14 Entitas Nota Tagihan Attribute Description Data Type & Lenght Nulls Multi Valued No_Nota_Tagihan Kd_Customer Mengidentifikasikan nota tagihan yang ada pada perusahaan Mengidentifikasikan setiap customer Char(5) No No Char(5) No No Nama_Customer Nama dari customer Varchar(30) No No Tanggal Tanggal nota tagihan Datetime No No No_Faktur_Penjualan Mengidentifikasikan faktur Char(5) No No

14 72 Tanggal_Pembelian penjualoan yang ada pada perusahaan Tanggal pembelian pada nota tagihan Datetime No No Harga_Jual Harga jual barang Decimal No No Sub_Total Harga sub total penjualan barang Decimal No No Total Total Harga Penjualan Decimal No No Entitas Surat_Jalan_Order Tabel 4.15 Entitas Surat Jalan_Order Attribute Description Data Type & Lenght Nulls Multi Valued No_Surat_Jalan_Order Mengidentifikasikan surat Char(5) No No No_Order jalan order yang tersedia Mengidentifikasikan order yang tersedia Char(5) No No Tanggal Tanggal Surat Jalan Datetime No No Kd_Supplier Mengidentifikasikan setiap supplier Char(5) No No Nama_Supplier Nama dari supplier Varchar(30) No No Alamat_Supplier Alamat dari supplier Varchar(100) No No Telp_Supplier Nomor telpon dari supplier Varchar(15) No No

15 73 Kd_Barang Mengidentifikasikan setiap barang yang tersedia Char(5) No No Nama_Barang Nama dari setiap barang Varchar(20) No No Entitas Surat_Jalan_Customer Tabel 4.16 Entitas Surat Jalan_Customer Attribute Description Data Type & Lenght Nulls Multi Valued No_Surat_Jalan_Customer Mengidentifikasikan Char(5) No No No_Faktur Penjualan surat jalan customer yang tersedia Mengidentifikasikan faktur penjualoan yang ada pada perusahaan Char(5) No No Tanggal Tanggal surat jalan Datetime No No Kd_Customer Mengidentifikasikan setiap customer Char(5) No No Nama_Customer Nama dari supplier Varchar(30) No No Alamat_Customer Alamat dari customer Varchar(100) No No Telp_Customer Kd_Barang Nomor telpon dari customer Mengidentifikasikan setiap barang yang Varchar(15) No No Char(5) No No

16 74 tersedia Nama_Barang Nama dari setiap barang Varchar(20) No No Menentukan domain Atribut Tabel 4.17 Domain Atribut Kd_Customer Attributes Domain 5 karakter, 1 karakter di depan berupa huruf C dan karakter sisanya berupa angka Kd_Barang 5 karakter, 1 karakter di depan berupa huruf B dan karakter sisanya berupa angka Kd_Merk 5 karakter, 1 karakter di depan berupa huruf M dan karakter sisanya berupa angka Kd_Jenis 5 karakter, 1 karakter di depan berupa huruf J dan karakter sisanya berupa angka Kd_Pegawai 5 karakter, 1 karakter di depan berupa huruf P dan karakter sisanya berupa angka Kd_Devisi 5 karakter, 1 karakter di depan berupa huruf D dan karakter sisanya berupa angka Kd_Supplier 5 karakter, 1 karakter di depan berupa huruf S dan karakter sisanya berupa angka No _Order 5 karakter, 2 karakter di depan berupa huruf O dan

17 75 karakter sisanya berupa angka No_Daftar_Pemesanan 5 karakter, 2 karakter di depan berupa huruf DP dan karakter sisanya berupa angka No_Faktur_Penerimaan_Barang 5 karakter, 2 karakter di depan berupa huruf FP dan karakter sisanya berupa angka No_Faktur_Penjualan 5 karakter, 1 karakter di depan berupa huruf F dan karakter sisanya berupa angka No_Nota_Tagihan 5 karakter, 2 karakter di depan berupa huruf NT dan karakter sisanya berupa angka No_Surat_Jalan_Order 5 karakter, 2 karakter di depan berupa huruf SO dan karakter sisanya berupa angka No_Surat_Jalan_Customer 5 karakter, 2 karakter di depan berupa huruf SC dan karakter sisanya berupa angka Menentuan Candidate Key dan Primary Key Tabel 4.18 Candidate dan Primary Key Entity Name Candidate Key Primary Key Customer Kd_Customer Kd_Customer Barang Kd_Barang Kd_Barang Merk Kd_Merk Kd_Merk Jenis Kd_Jenis Kd_Jenis Pegawai Kd_Pegawai Kd_Pegawai

18 76 Supplier Kd_Supplier Kd_Supplier Divisi Kd_Divisi Kd_Divisi Order No_Order No_Order Daftar_Pemesanan No_Daftar_Pemesanan No_Daftar_Pemesanan Faktur_Penerimaan_Barang No_Faktur_Penerimaan_Barang No_Faktur_Penerimaan_ Barang Faktur_Penjualan No_Faktur_Penjualan No_Faktur_Penjualan Nota_Tagihan No_Nota_Tagihan No_Nota_Tagihan Surat_Jalan_Order No_Surat_Jalan_Order No_Surat_Jalan_Order Surat_Jalan_Customer No_Surat_Jalan_Customer No_Surat_Jalan_Customer Memeriksa Model dari Redudancy Model data konseptual tidak memiliki redundansi karena tidak ada dua entity yang menunjuk pada objek yang sama dalam perusahaan Memvalidasi Model Konseptual Lokal dengan Transaksi Pengguna Tujuan dari langkah ini adalah untuk meyakinkan bahwa model konseptual lokal mendukung transaksi user. Keterangan transaksi : a. Membuat daftar_pemesanan b. Membuat order

19 77 c. Membuat penjualan d. Membuat penerimaan barang e. Membuat nota tagihan f. Membuat surat jalan order g. Membuat surat jalan customer h. Cetak laporan daftar_pemesanan i. Cetak laporan order j. Cetak laporan penjualan k. Cetak laporan penerimaan_barang l. Cetak laporan nota_tagihan m. Cetak laporan surat_jalan_order n. Cetak laporan surat_jalan_customer

20 Gambar 4.2 Memvalidasi model konseptual dengan transaksi pengguna 78

21 Meninjau Model Konseptual Lokal dengan Pengguna Gambar 4.3 ERD dengan Primary Key

22 Perancangan Basis Data logikal Perancangan basis data logikal merupakan suatu proses pembuatan model dengan menggunakan informasi yang diperoleh dari perusahaan serta berdasarkan pada model data spesifik, tetapi bebas dari DBMS tertentu dan pertimbangan fisik lainnya. Berikut ini adalah langkah-langkah penting dalam merancang basis data logikal : 1. Menghilangkan fitur yang tidak sesuai dengan model relasional Untuk menghilangkan fitur yang tidak sesuai dengan model relasional, maka yang perlu dihilangkan : a. Many to many (*.*) binary relationship b. Complex relationship types c. Multi valued attributes 2. Menurunkan relasi untuk model data logikal lokal 3. Memvalidasi relasi dengan menggunakan normalisasi 4. Memvalidasi relasi terhadap transaksi user 5. Memeriksa integrity constraints

23 Menghilangkan fitur-fitur yang tidak sesuai dengan Model Relational Menghilangkan Many to Many (* : *) Binary Relationship Header_Order Terhadap 1,* 1.* Barang Detail_Order Header_Order No_Order Barang Kd_Barang * 1..1 Detail_Order 1..1 Memiliki No_Order Kd_Barang Terhadap Gambar 4.4 Relasi Biner many-to-many (*:*) Order

24 82 Header_Penerimaan_Barang Terhadap 1..* 1..* Barang Detail_Penerimaan_Barang Header_Penerimaan_Barang No_Penerimaan_Barang Barang Kd_Barang * Memiliki 1..1 Detail_Penerimaan_Barang 1..1 No_Penerimaan_Barang Kd_Barang Terhadap Gambar 4.5 Relasi Biner many-to-many (*:*) Penerimaan Barang

25 83 Header_Penjualan Terhadap 1..* 1..* Barang Detail_Penjualan Header_Penjualan Kd_Penjualan Barang Kd_Barang * Memiliki 1..1 Detail_Penjualan 1..1 No_Penjualan Kd_Barang Terhadap Gambar 4.6 Relasi Biner many-to-many (*:*) Penjualan

26 84 Header_Daftar_Pemesanan Terhadap 1..* 1..* Barang Detail_Daftar_Pemesanan Header_Daftar_Pemesanan No_Daftar_Pemesanan Barang Kd_Barang * Memiliki 1..1 Detail_Daftar_Pemesanan 1..1 No_Daftar_Pemesanan Kd_Barang Terhadap Gambar 4.7 Relasi Biner many to many (*.*) Daftar Pemesanan

27 85 Header_Surat_Jalan_Order Terhadap Barang 1..* 1..* Detail_Surat_Jalan_Order Header_Surat_Jalan_Order No_Surat_Jalan_Order Barang Kd_Barang 1..1 Memiliki 1..1 Detail_Surat_Jalan_Order No_Surat_Jalan_Order Kd_Barang * Terhadap Gambar 4.8 Relasi Biner many to many (*.*) Surat Jalan Order

28 86 Header_Surat_Jalan_Customer Terhadap Barang 1..* 1..* Detail_Surat_Jalan_Customer Header_Surat_Jalan_Customer No_Surat_Jalan_Customer Barang Kd_Barang 1..1 Memiliki 1..1 Detail_Surat_Jalan_Customer No_Surat_Jalan_Customer Kd_Barang * Terhadap Gambar 4.9 Relasi Biner many to many (*.*) Surat Jalan Customer

29 Menurunkan Relasi untuk Model Data Logikal Langkah ini bertujuan membuat relasi untuk model data logikal lokal untuk merepresentasikan entity, relationship, dan atribut yang telah kita identifikasikan. Entity yang terdapat dalam menurunkan relasi untuk Model Data Logikal : Strong Entity Types Tabel 4.19 Tabel yang Diturunkan dari Tipe Entity Kuat No Nama Entity Tabel 1 Nama_Barang, Kd_Merk, Kd_Supplier, Kd_Jenis, Harga. 2 Ukuran, Qty 3 Nama_Pegawai, Alamat_Pegawai, Telepon_Pegawai 4 Nama_Customer, Alamat_Customer, Telepon_Supplier 5 Nama_Supplier, Alamat_Supplier, Telpon_Supplier 6 Kd_Pegawai, Kd_Customer, Tanggal, Status_Pemesanan 7 Kd_Barang, Ukuran, Harga_Jual, Qty, Sub_Total

30 88 8 Header Kd_Pegawai, Kd_Supplier, Tanggal 9 Kd_Barang, Ukuran, Harga_Beli Qty, Sub_Total 10 Kd_Supplier, Kd_Pegawai, Tanggal 11 No_Order, Harga_Beli 12 Kd_Pegawai, Kd_Customer, Tanggal 13 Kd_Barang, Ukuran, Harga Jual, Qty, Sub_Total 14 Kd_Customer, Kd_Pegawai, Tanggal 15 No_Daftar_Pemesanan, Harga_Jual 16 Tanggal 17 No_Order 18 Kd_Pegawai, Tanggal 19 No_Nota_Tagihan

31 Weak Entity Types Tabel 4.20 Tabel yang Diturunkan dari Tipe Entity Lemah No Nama Entity Tabel 1 Nama_Merk 2 Jenis 3 Nama_Divisi Tipe relasi Biner one-to-many (1:*) Divisi(Kd_Divisi, Nama_Divisi) Primary Key Kd_Divisi Pegawai (Kd_Pegawai, Nama_Pegawai, Alamat_Pegawai, Kd_Divisi) Primary Key Kd_Pegawai Foreign Key Kd_Divisi references Divisi (Kd_Divisi) Gambar 4.10 Relasi Biner one-to-many (1:*) Divisi terhadap Pegawai

32 90 Jenis _Barang (Kd_Jenis_Barang, Jenis_Barang) Header_Barang (Kd_Barang, Nama_Barang, Kd_Merk_Barang, Kd_Supplier, Kd_Jenis_Barang, Harga) Primary Key Kd_Barang Foreign Key Kd_Merk references Merk (Kd_Merk) Foreign Key Kd_Jenis references Jenis (Kd_Jenis) Foreign Key Kd_Supplier references Supplier (Kd_Supplier) Gambar 4.11 Relasi Biner one-to-many (1:*) Jenis_Barang terhadap Header_Barang Merk _Barang (Kd_ Merk _Barang, Merk _Barang) Header_Barang (Kd_Barang, Nama_Barang, Kd_Merk_Barang, Kd_Supplier, Kd_Jenis_Barang, Harga) Primary Key Kd_Barang Foreign Key Kd_Merk references Merk (Kd_Merk) Foreign Key Kd_Jenis references Jenis (Kd_Jenis) Foreign Key Kd_Supplier references Supplier (Kd_Supplier) Gambar 4.12 Relasi Biner one-to-many (1:*) Merk_Barang terhadap Header_Barang

33 Tipe relasi biner one-to-one(1:1) Detail_Surat_Jalan_Order (No_Surat_Jalan_Order, No_Order) Primary Key No_Surat_Jalan_Order Primary Key No _Order Header_Order (No_Order, Kd_Pegawai, Kd_Supplier, Tanggal) Primary Key No_Order Foreign_Key Kd_Pegawai references Pegawai(Kd_Pegawai) Foreign_Key Kd_Supplier references Supplier(Kd_Supplier) Gambar 4.13 Relasi Biner one-to-one (1:1) Detail_Surat_Jalan terhadap Header_Order Detail_Surat_Jalan_Customer(No_Surat_Jalan _Customer, No_Nota_Tagihan) Primary Key No_Surat_Jalan_ Customer Primary Key No_ Nota_Tagihan Header_ Nota_Tagihan (No_ Nota_Tagihan, Kd_Pegawai, Kd_Customer, Tanggal) Primary Key No_ Nota_Tagihan Foreign_Key Kd_Pegawai references Pegawai(Kd_Pegawai) Foreign_Key Kd_ Customer references Supplier(Kd_ Customer) Gambar 4.14 Relasi Biner one-to-one (1:1) Detail_Surat_Customer terhadap Header_Nota_Tagihan

34 Tipe relasi biner many-to-many(*:*) Header_Barang (Kd_Barang,Nama_Barang,Kd_Merk_Barang, Kd_Supplier, Kd_Jenis_Barang, Harga) Primary Key (Kd_Barang) Foreign Key Kd_Merk references Merk(Kd_Merk_Barang) Foreign Key Kd_Jenis references Jenis(Kd_Jenis_Barang) Foreign Key Kd_Supplier references Supplier(Kd_Supplier) Header_Order (No_Order, Kd_Supplier,Tanggal, Total) Primary Key (No_Order) Foreign Key Kd_Supplier references Supplier (Kd_Supplier) Detail_Order (No_Order,Kd_Barang,Qty, Sub_Total) Gambar 4.15 Many to many (*.*) relationship antara entity Header_Order dengan Header_Barang

35 93 Header_Barang (Kd_Barang, Nama_Barang,Kd_Merk, Kd_Supplier, Kd_Jenis, Harga, Tanggal_Update) Primary Key (Kd_Barang) Foreign Key Kd_M erk references Merk(Kd_Merk) Foreign Key Kd_Jenis references Jenis(Kd_Jenis) Foreign Key Kd_Supplier references Supplier(Kd_Supplier) Header_Penerimaan_Barang (No_Faktur_Penerimaan_Barang, Kd_Supplier, Tanggal, Kd_Barang, Total) Primary Key (No_Faktur_Penerimaan_Barang) Detail_Penerimaan_Barang (No_Faktur_Penerimaan_Barang,Kd_Barang,Qty, Sub_Total) Gambar 4.16 Many to many (*.*) relationship antara entity Header_Penerimaan_Barang dengan Header_Barang

36 94 Header_Barang (Kd_Barang, Nama_Barang, Kd_Merk, Harga) Primary Key (Kd_Barang) Foreign Key Kd_Merk_Barang refrerences Merk_Barang ( Kd_Merk_Barang) Foreign Key Kd_Jenis_Barang references Jenis_Barang (Kd_Jenis_Barang) Foreign Key Kd_Supplier references Supplier (Kd_Supplier) Header_Penjualan (No_Faktur_Penjualan, Kd_Customer, Tanggal, Kd_Barang, Total) Primary Key (No_Faktur_Penjualan) Detail_Penjualan ( No_Faktur_Penjualan, Kd_Barang, Qty, Sub_Total) Gambar 4.17 Many to many (*.*) relationship antara entity Header_Penjualan dengan Header_Barang

37 95 Header_Barang ( Kd_Barang, Nama_Barang, Kd_Merk_Barang, Kd_Supplier, Kd_Jenis_Barang, Harga) Primary Key ( Kd_Barang) Foreign Key Kd_Merk_Barang references Merk_Barang (Kd_Merk_Barang) Foreign Key Kd_Jenis_Barang references Jenis_Barang (Kd_Jenis_Barang) Foreign Key Kd_Supplier references Supplier (Kd_Supplier) Header_Daftar_Pemesanan (No_Daftar_Pemesanan, Kd_Pegawai, Kd_Customer, Kd_Barang, Total) Primary Key (No_Daftar_Pemesanan) Detail_Daftar_Pemesanan ( No_Daftar_Pemesanan, Kd_Barang, Qty, Sub_Total) Gambar 4.18 Many to many (*.*) relationship antara entity Header_Daftar_Pemesanan dengan Header_Barang

38 Validasi Relasi dengan Normalisasi Tujuan dari normalisasi adalah untuk menghilangkan redundansi semaksimal mungkin dan menghindarkan adanya data yang tidak konsisten terutama bila dilakukan penghapusan atau penambahan data sebagai akibat dari adanya data rangkap. Proses normalisasi terdiri dari langkah-langkah berikut: First normal form (1NF) adalah langkah menghilangkan repeating group. Second normal form (2NF) adalah langkah menghilangkan ketergantungan parsial pada primary key. Third normal form (3NF) adalah langkah menghilangkan ketergantungan transitif pada primary key. Langkah-langkah normalisasi yang dilakukan : 1. Header_Barang Telah memenuhi syarat normalisasi, yaitu UNF, 1NF,2NF. UNF Header_Barang = Kd_Barang, Kd_Merk_Barang, Kd_Jenis_Barang, Kd_Supplier, Nama_Barang, Harga_Barang. 1NF Header_Barang @Kd_Jenis_Barang, Harga 2NF

39 97 @Kd_Jenis_Barang, Harga 3NF terdapat ketergantungan transitif, yaitu Merk_Barang, Jenis_Barang, Supplier. Merk_Barang Nama_Merk_Barang Supplier Nama_Supplier, Alamat_Supplier, Telp_Supplier Jenis_Barang Jenis_Barang 2. Detail_Barang Telah memenuhi syarat normalisasi UNF, 1NF, 2NF, 3NF UNF Detail_Barang Ukuran, Qty 1NF tidak terjadi repeating group Detail_Barang Ukuran, Qty 2NF tidak terjadi ketergantungan parsial Detail_Barang Ukuran, Qty 3NF tidak terjadi ketergantungan transitif Detail_Barang Ukuran, Qty 3. Merk_Barang Tabel Merk_Barang sudah memenuhi syarat normalisasi UNF, 1NF, 2NF, 3NF UNF Merk_Barang =Kd_Merk_Barang, Nama_Merk_Barang 1NF tidak terjadi repeating group

40 98 Merk_Barang Nama_Merk_Barang 2NF tidak terjadi ketergantungan parsial Merk_Barang Nama_Merk_Barang 3NF tidak terjadi ketergantungan transitif Merk_Barang Nama_Merk_Barang 4. Customer Tabel Customer sudah memenuhi syarat normalisasi UNF, 1NF, 2NF, 3NF UNF Customer = Kd_Customer, Nama_Customer, Alamat_Customer, Telp_Customer 1NF tidak terjadi repeating group Customer Nama_Customer, Alamat_Customer, Telp_Customer 2NF tidak terjadi ketergantungan parsial Customer Nama_Customer, Alamat_Customer, Telp_Customer 3NF tidak terjadi ketergantungan transitif Customer Nama_Customer, Alamat_Customer, Telp_Customer 5. Jenis_Barang Tabel Jenis_Barang sudah memenuhi syarat normalisasi UNF, 1NF, 2NF, 3NF UNF

41 99 Jenis_Barang = Kd_Jenis_Barang, Jenis_Barang 1NF tidak terjadi repeating group Jenis_Barang Jenis_Barang 2NF tidak terjadi ketergantungan parsial Jenis_Barang Jenis_Barang 3NF tidak terjadi ketergantungan transitif Jenis_Barang Jenis_Barang 6. Supplier Tabel supplier sudah memenuhi syarat normalisasi UNF, 1NF, 2NF, 3NF UNF Supplier = Kd_Supplier, Nama_Supplier, Alamat_Supplier, Telp_Supplier 1NF tidak terjadi repeating group Supplier Nama_Supplier, Alamat_Supplier, Telp_Supplier 2NF tidak terjadi ketergantungan parsial Supplier Nama_Supplier, Alamat_Supplier, Telp_Supplier 3NF tidak terjadi ketergantungan transitif Supplier Nama_Supplier, Alamat_Supplier, Telp_Supplier 7. Pegawai

42 100 Tabel Pegawai sudah memenuhi syarat normalisasi UNF, 1NF, 2NF, 3NF UNF Pegawai = Kd_Pegawai, Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai, Kd_Divisi 1NF tidak terjadi repeating group Pegawai Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai, Kd_Divisi 2NF tidak terjadi ketergantungan parsial Pegawai Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai, Kd_Divisi 3NF terjadi ketergantungan transitif, yaitu Divisi Kd_Pegawai, Kd_Divisi. Pegawai Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai, Kd_Divisi Divisi Nama_Divisi 8. Divisi Tabel Divisi sudah memenuhi syarat normalisasi UNF, 1NF, 2NF, 3NF UNF Divisi = Kd_Divisi, Nama_Divisi 1NF tidak terjadi repeating group Divisi Nama_Divisi 2NF tidak terjadi ketergantungan parsial

43 101 Divisi Nama_Divisi 3NF tidak terjadi ketergantungan transitif Divisi Nama_Divisi 9. Header_Penerimaan_Barang UNF Header_Penerimaan_Barang = No_Faktur_penerimaan_Barang, Kd_Supplier, Kd_Pegawai,Tanggal 1NF @Kd_Pegawai,Tanggal 2NF Kd_Pegawai,Tanggal 3NF terjadi ketergantungan transitif, yaitu Supplier dan Pegawai. Header_Penerimaan_Barang Kd_Supplier, Kd_Pegawai,Tanggal Supplier Nama_Supplier, Alamat_Supplier, Telp_Supplier Pegawai Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai 10. Detail_Penerimaan_Barang UNF

44 102 Detail_Penerimaan_Barang = No_Faktur_penerimaan_Barang, No_Order, Harga_Beli 1NF Harga_Beli 2NF Harga_Beli Header_Penerimaan_Barang Kd_Supplier, Kd_Pegawai,Tanggal Header_Order No_Order, Kd_Supplier, Kd_Pegawai, Tanggal 3NF terjadi ketergantungan transitif Harga_Beli Header_Order No_Order, Kd_Supplier, Kd_Pegawai, Tanggal Supplier Nama_Supplier, Alamat_Supplier, Telp_Supplier Pegawai Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai 11. Header_penjualan UNF Header_penjualan = No_Faktur_Penjualan, Kd_Pegawai, Kd_Customer, Tanggal

45 103 1NF Kd_Customer, Tanggal 2NF @Kd_Customer, Tanggal 3NF Header_penjualan Kd_Pegawai, Kd_Customer, Tanggal Pegawai Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai Customer Nama_Customer, Alamat_Customer, Telp_Customer 12. Detail_Penjualan UNF Detail_Penjualan = No_Faktur_Penjualan, Kd_Barang, Ukuran, Qty, Harga_Jual 1NF Qty, Harga_Jual, Ukuran 2NF Detail_Penjualan Kd_Barang, Qty, Harga_Jual, Ukuran

46 104 Header_penjualan Kd_Pegawai, Kd_Customer, Tanggal Header_Barang Nama_Barang, Kd_Jenis_Barang, Kd_Merk_Barang, Nama_Barang, Harga_Barang 3NF Qty, Harga_Jual, Ukuran Header_Barang Nama_Barang, Kd_Jenis_Barang, Kd_Merk_Barang, Nama_Barang, Harga_Barang Jenis_Barang Kd_Jenis_Barang + Nama_Jenis_Barang Merk_Barang Kd_Merk_Barang + Nama_Merk_Barang Header_penjualan Kd_Pegawai, Kd_Customer, Tanggal Pegawai Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai Customer Nama_Customer, Alamat_Customer, Telp_Customer 13. Header_Order UNF Header_Order = No_Order, Kd_Pegawai, Kd_Supplier, Tanggal 1NF Header_Order Kd_Pegawai,@ Kd_Supplier, Tanggal 2NF

47 105 Header_Order Kd_Pegawai, Kd_Supplier, Tanggal 3NF Header_Order Kd_Pegawai, Kd_Supplier, Tanggal Pegawai Nama_Pegawai Supplier Nama_Supplier 14. Detail_Order UNF Detail_Order = No_Order, Kd_Barang, Ukuran, Qty, Harga_Beli 1NF Ukuran, Qty, Harga_Beli 2NF Detail_Order Kd_Barang, Ukuran, Qty, Harga_Beli Header_Barang Nama_Barang, Ukuran, Qty, Kd_Jenis_Barang, Kd_Merk_Barang 3NF Detail_Order Kd_Barang, Ukuran, Qty, Harga_Beli Header_Barang Nama_Barang, Ukuran, Qty Kd_Jenis_Barang, Kd_Merk_Barang Jenis_Barang Kd_Jenis_Barang + Nama_Jenis_Barang Merk_Barang Kd_Merk_Barang + Nama_Merk_Barang Header_Order Kd_Pegawai, Kd_Supplier, Tanggal Pegawai Nama_Pegawai Supplier Nama_Supplier

48 Header_Pemesanan_Barang UNF Header_Pemesanan_Barang = No_Daftar_Pemesanan_barang, Kd_Pegawai, Kd_Customer, Tanggal, Status_Pemesanan 1NF @Kd_Customer, Tanggal, Status_Pemesanan 2NF @Kd_Customer, Tanggal, Status_Pemesanan 3NF Header_Pemesanan_Barang Kd_Pegawai, Kd_Customer, Tanggal, Status_Pemesanan Customer Nama_Customer, Alamat_Customer, Telp_Customer Pegawai Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai 16. Detail_Pemesanan_Barang UNF Detail_Pemesanan_Barang = No_Daftar_Pemesanan_barang, Kd_Barang, Ukuran, Qty, Harga_Jual 1NF Ukuran, Qty, Harga_Jual

49 107 2NF Detail_Pemesanan_Barang Kd_Barang, Ukuran, Qty, Harga_Jual Header_Barang Nama_Barang, Ukuran, Qty Kd_Jenis_Barang, Kd_Merk_Barang 3NF Ukuran, Qty, Harga_Jual Header_Barang Nama_Barang, Ukuran, Qty Kd_Jenis_Barang, Kd_Merk_Barang Jenis_Barang Kd_Jenis_Barang + Nama_Jenis_Barang Merk_Barang Kd_Merk_Barang + Nama_Merk_Barang Header_Pemesanan_Barang Kd_Pegawai, Kd_Customer, Tanggal, Status_Pemesanan Customer Nama_Customer, Alamat_Customer, Telp_Customer Pegawai Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai 17. Header_Nota_Tagihan UNF Header_Nota_Tagihan = No_Nota_Tagihan, Kd_Pegawai, Kd_Customer, Tanggal 1NF

50 108 Kd_Customer, Tanggal 2NF Kd_Customer, Tanggal 3NF terjadi ketergantungan transitif, yaitu Customer dan Pegawai Header_Nota_Tagihan Kd_Pegawai, Kd_Customer, Tanggal Customer Nama_Customer, Alamat_Customer, Telp_Customer Pegawai Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai 18. Detail_Nota_Tagihan UNF Detail_Nota_Tagihan = No_Nota Tagihan, No_Daftar_Pemesanan, Harga_Jual 1NF tidak terjadi repeating group Detail_Nota_Tagihan Harga_Jual 2NF tidak terjadi ketergantungan parsial Detail_Nota_Tagihan Tagihan, No_Daftar_Pemesanan, Harga_Jual 3NF

51 109 Detail_Nota_Tagihan Harga_Jual Header_Daftar_Pemesanan Kd_Pegawai, Kd_Customer, Tanggal, Status_Pemesanan Customer Nama_Customer, Alamat_Customer, Telp_Customer Pegawai Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai 19. Header_Surat_Jalan_Order UNF Header_Surat_Jalan_Order = No_Surat_Jalan_Order, Kd_Supplier, Kd_Pegawai, Tanggal 1NF @Kd_Pegawai, Tanggal 2NF @Kd_Pegawai, Tanggal 3NF terjadi ketergantungan transitif, yaitu Supplier, dan pegawai No_Surat_Jalan_Order, Kd_Pegawai, Kd_Supplier Header_Surat_Jalan_Order Kd_Supplier, Kd_Pegawai, Tanggal Supplier Nama_Supplier

52 110 Pegawai Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai 20. Detail_Surat_Jalan_Order UNF Detail_Surat_jalan_Order = No_Surat_Jalan_Order, No_Order 1NF 2NF 3NF Detail_Surat_jalan_Order No_Order Header_Order Kd_Pegawai, Kd_Supplier, Tanggal Pegawai Nama_Pegawai Supplier Nama_Supplier 21. Header_Surat_Jalan_Customer UNF Header_Surat_Jalan_Customer = No_Surat_Jalan_Customer, Kd_Customer, Kd_Pegawai, Tanggal 1NF Kd_Pegawai, Tanggal 2NF

53 111 @Kd_Pegawai, Tanggal 3NFNo_Surat_Jalan_Customer, Kd_Pegawai, Kd_Customer Header_Surat_Jalan_Customer Kd_Customer, Kd_Pegawai, Tanggal Customer Nama_Customer, Alamat_Customer, Telp_Customer Pegawai Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai 22. Detail_Surat_Jalan_Customer Tabel Detail_Surat_Jalan_Customer sudah memenuhi syarat normalisasi UNF, 1NF, 2NF, 3NF UNF Detail_Surat_Jalan_Customer= No_Surat_Jalan_Customer, No_Nota_Tagihan, Harga_Jual 1NF 2NF 3NF Detail_Surat_Jalan_Customer No_Nota_Tagihan, Harga_Jual

54 112 Header_Nota_Tagihan Kd_Pegawai, Kd_Customer, Tanggal Customer Nama_Customer, Alamat_Customer, Telp_Customer Pegawai Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai Memeriksa Integrity Constraint Tujuan dari langkah ini untuk menentukan batasan integritas yang dapat melindungi basis data dari ketidakkonsistenan. Ada 5 batasan integristas yang didefinisikan yaitu : 1. Required data Beberapa atribut harus mengandung sebuah nilai valid, dengan kata lain atribut-atribut ini tidak diperkenankan mengandung nilai null. Batasan ini sudah diidentifikasikan pada saat atribut didokumentasikan dalam kamus data. 2. Attribute domain constraints Setiap atribut memiliki sebuah domain, yaitu kumpulan dari nilai yang legal. Aturan-aturan seperti ini telah diidentifikasikan pada saat memilih atribut-atribut domain untuk data model. 3. Multiplicity Multiplicity menampilkan constraints yang ditempatkan pada relasi antar entity dalam database. 4. Entity integrity

55 113 Primary key dari suatu entity tidak boleh memiliki nilai null. Aturan-aturan seperti ini harus telah dipertimbangkan pada saat mengidentifikasikan primary key untuk setiap entitiy. 5. Referential integritiy Referential integrity berarti apabila suatu foreign key mengandung suatu nilai, maka nilai tersebut harus menunjuk pada tuple yang terdapat pada relasi parent.

56 Validasi Relasi melalui Transaksi Pengguna Gambar 4.19 Memvalidasi model logikal dengan pengguna

57 115 Penjelasan : a. Membuat Header_Daftar_Pemesanan Mengambil No_Daftar_Pemesanan _Barang, Kd_Barang, Ukuran, Qty, Harga_Jual dari Detail_Daftar_Pemesanan. Mengambil Kd_Barang, Ukuran, Qty dari Header_Barang. Mengambil Kd_Customer dari Customer Mengambil Kd_Pegawai dari Pegawai. b. Membuat Header_Order Mengambil No_ Order, Kd_Barang, Ukuran, Qty, Harga_Beli dari Detail_ Order. Mengambil Kd_Barang, Ukuran, Qty dari Header_Barang. Mengambil Kd_Pegawai dari Pegawai. Mengambil Kd_Supplier dari Supplier. c. Membuat Header_Penjualan Mengambil No_Faktur_Penjualan, Kd_Barang, Ukuran, Qty, Harga_Jual dari Detail_Penjualan. Mengambil Kd_Barang, Ukuran, Qty dari Header_Barang. Mengambil Kd_Pegawai dari Pegawai. Mengambil Kd_Customer dari Customer. d. Membuat Header_Penerimaan_Barang Mengambil No_Faktur_Penerimaan_Barang, No_Order dari Detail_Penerimaan_Barang. Mengambil No_Order, Kd_Pegawai, Kd_Supplier, Harga_Beli dari Header_Order. Mengambil Kd_Supplier dari Supplier. Mengambil Kd_Pegawai dari Pegawai. e. Membuat Header_Nota_Tagihan Mengambil No_Nota_Tagihan, No_Daftar_Pemesanan dari Detail_Nota_Tagihan. Mengambil No_Daftar_Pemesanan, Kd_Pegawai, Kd_Customer, Harga_Jual dari

58 116 Header_Daftar_Pemesanan. Mengambil Kd_Pegawai dari Pegawai. Mengambil Kd_Customer dari Customer. f. Membuat Surat_Jalan_Order Mengambil No_Surat_Jalan_Order, No_Order dari Detail Surat_Jalan_Order. Mengambil No_Order, Kd_Pegawai, Kd_Supplier dari Header_Order. Mengambil Kd_Supplier dari Supplier. Mengambil Kd_Pegawai dari Pegawai. g. Membuat Surat_Jalan_Customer Mengambil No_Surat_Jalan_Customer, No_Nota_Tagihan dari Detail Surat_Jalan_Customer. Mengambil No_Nota_Tagihan, Kd_Customer, Kd_Pegawai dari Header_Nota_Tagihan. Mengambil Kd_Customer dari Customer. Mengambil Kd_Pegawai dari Pegawai. h. Cetak laporan Header_Daftar_Pemesanan Ambil No_Daftar_Pemesanan dari Header_Daftar_Pemesanan. Berdasarkan No_Daftar_Pemesanan_Barang, Kd_Barang, Ukuran, Qty, Harga_Jual ambil dari Detail_Daftar_Pemesanan. Berdasarkan Kd_Barang, Nama_Barang, Ukuran, Qty ambil dari Header_Barang. Ambil Kd_Customer, Nama Customer dari Customer. i. Cetak laporan Header_Order Ambil No_Order dari Header_Order. Berdasarkan No_Order, Kd_Barang, Ukuran, Qty, Harga_Beli ambil dari Detail_Order. Berdasarkan Kd_Barang, Nama_Barang, Ukuran, Qty ambil dari Header_Barang. Ambil dari Kd_Supplier dari Supplier. j. Cetak laporan Header_Penjualan Ambil No_Faktur_Penjualan dari Header_Penjualan. Berdasarkan No_Faktur_Penjualan, Kd_Barang, Qty, Harga_Jual ambil dari Detail_Penjualan.

59 117 Berdasarkan Kd_Barang, Nama_Barang, Ukuran, Qty ambil dari Header_Barang. Ambil Kd_Customer, Nama_Customer dari Customer. Ambil Kd_Pegawai, Nama_Pegawai dari Pegawai. k. Cetak laporan Header_Penerimaan_Barang Ambil No_Faktur_Penerimaan_Barang dari Header_Penerimaan_Barang. Berdasarkan No_Faktur_Penerimaan_Barang, No_Order, Harga_Beli ambil dari Detail_Penerimaan_Barang. Berdasarkan Kd_Barang, Nama_Barang, Ukuran, Qty dari Header_Barang. Ambil Kd_Supplier, Nama_Supplier dari Supplier. l. Cetak laporan Header_Nota_Tagihan Ambil No_Nota_Tagihan dari Header_Nota_Tagihan. Berdasarkan No_Nota_Tagihan, No_Daftar_Pemesanan, Harga_Jual ambil dari Detail_Nota_Tagihan. Berdasarkan Kd_Barang, Ukuran, Qty ambil dari Header_Barang. Ambil Kd_Customer, Nama_Customer dari Customer. m. Cetak laporan Header_Surat_Jalan_Order Ambil No_Surat_Jalan_Order dari Header_Surat_Jalan_Order. Berdasarkan No_Surat_Jalan_Order, No_Order ambil dari Detail_Surat_Jalan_Order. Ambil Kd_Supplier, Nama_Supplier dari Supplier. n. Cetak laporan Header_Surat_Jalan_Customer Ambil No_Surat_Jalan_Customer dari Header_Surat_Jalan_Customer. Berdasarkan No_Surat_Jalan_Customer, No_Nota_Tagihan ambil dari Detail_Surat_Jalan_Customer. Ambil Kd_Customer, Nama_Customer dari Customer.

60 Meninjau Model Data Logikal dengan Pengguna Gambar 4.20 Model Diagram Relasional Global

61 Membangun dan Memvalidasi Model Data Logikal Global Tujuan dari langkah ini adalah untuk menggabungkan model data logikal lokal individual ke dalam sebuah model data logikal global. Berikut ini adalah tabel model data logikal global : Tabel 4.21 Membangun dan Memvalidasi Model Data Logikal Global Header_Barang (Kd_Barang, Nama_Barang, Kd_Supplier, Kd_Merk_Barang, Kd_Jenis_Barang, Harga_Barang) Primary Key Kd_Barang Foreign Key Kd_Supplier references Supplier (Kd_Supplier) Foreign Key Kd_Merk_Barang references Merk_Barang (Kd_Merk_Barang) Foreign Key Kd_Jenis_Barang references Jenis_Barang (Kd_Jenis_Barang) Detail_Barang (Kd_Barang, Ukuran, Qty) Foreign Key Kd_Barang references Header_Barang (Kd_Barang) Merk_Barang (Kd_Merk_Barang, Merk_Barang) Primary Key Kd_Merk_Barang Jenis_Barang (Kd_Jenis_Barang, Jenis_Barang) Primary Key Kd_Jenis_Barang Customer (Kd_Customer, Nama_Customer, Alamat_Customer, Telp_Customer) Primary Key Kd_Customer Supplier (Kd_Supplier, Nama_Supplier, Alamat_Supplier, Telp_Supplier) Primary Key Kd_Supplier Pegawai (Kd_Pegawai, Kd_Divisi, Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai) Primary Key Kd_Pegawai Foreign Key Kd_Divisi references Divisi (Kd_Divisi)

62 120 Divisi (Kd_Divisi, Nama_Divisi) Primary Key Kd_Divisi Header_Order (No_Order, Kd_Supplier, Kd_Pegawai, Tanggal) Primary Key No_Order Foreign Key Kd_Supplier references Supplier (Kd_Supplier) Foreign Key Kd_Pegawai references Pegawai (Kd_Pegawai) Detail_Order (No_Order, Kd_Barang, Qty, Harga_Beli) Foreign Key No_Order references Header_Order ( No_Order ) Foreign Key Kd_Barang references Header_Barang (Kd_Barang) Header_Penjualan (No_Faktur_Penjualan, Kd_Customer, Tanggal, Kd_Pegawai) Primary Key No_Faktur_Penjualan Foreign Key Kd_Customer references Customer (Kd_Customer) Foreign Key Kd_Pegawai references Pegawai (Kd_Pegawai) Detail_Penjualan (No_Faktur_Penjualan, Kd_Barang, Qty, Harga_Jual) Foreign Key No_Faktur_Penjualan references Header_Penjualan (No_Faktur_Penjualan) Foreign Key Kd_Barang references Header_Barang (Kd_Barang) Header_Penerimaan_Barang ( No_Faktur_Pengiriman_Barang, Kd_Supplier, Tanggal, Kd_Pegawai) Primary Key No_Faktur_Penerimaan_Barang Foreign Key Kd_Supplier references Supplier (Kd_Supplier) Foreign Key Kd_Pegawai references Pegawai (Kd_Pegawai) Detail_Penerimaan_Barang ( No_Faktur_Penerimaan_Barang, No_Order,

63 121 Harga_Beli) Foreign Key No_Faktur_Penerimaan_Barang references Header_Penerimaan_Barang (No_Faktur_Penerimaan_Barang) Foreign Key No_Order references Header_Order (No_Order) Header_Daftar_Pemesanan (No_Daftar_Pemesanan_Barang, Kd_Pegawai, Kd_Customer, Tanggal, Status_Pemesanan) Primary Key No_Daftar_Pemesanan_Barang Foreign Key Kd_Customer references Customer (Kd_Customer) Foreign Key Kd_Pegawai references Pegawai (Kd_Pegawai) Detail_Daftar_Pemesanan (No_Daftar_Pemesanan_Barang, Kd_Barang, Qty, Harga_Jual) Foreign Key (No_Daftar_Pemesanan_Barang references Header_Daftar_Pemesanan_Barang (No_Daftar_Pemesanan_Barang) Foreign Key Kd_Barang references Header_ Barang (Kd_Barang) Header_Nota_Tagihan (No_Nota_Tagihan, Kd_Customer, Tanggal, Kd_Pegawai) Primary Key No_Nota_Tagihan Foreign Key Kd_Customer references Customer (Kd_Customer) Foreign Key Kd_Pegawai references Pegawai (Kd_Pegawai) Detail Nota_Tagihan (No_Nota_Tagihan, No_Daftar_Pemesanan, Harga_Jual) Foreign Key No_Nota_Tagihan references Header_Nota_Tagihan (No_Nota_Tagihan) Foreign Key No_Daftar_Pemesanan_Barang references Header_Daftar_Pemesanan_Barang (No_Daftar_Pemesanan_Barang) Header_Surat_Jalan_Order (No_Surat_Jalan_Order, Kd_Supplier, Kd_Pegawai,

64 122 Tanggal) Primary Key No_Surat_Jalan_Order Foreign Key Kd_Supplier references Supplier (Kd_Supplier) Foreign Key Kd_Pegawai references Pegawai (Kd_Pegawai) Detail_Surat_Jalan_Order (No_Surat_Jalan_Order, No_Order) Foreign Key No_Surat_Jalan_Order references Header_Surat_Jalan_Order (No_Surat_Jalan_Order) Foreign Key No_Order references Header_Order (No_Order) Header_Surat_Jalan_Customer (No_Surat_Jalan_Customer, Kd_Customer, Kd_Pegawai, Tanggal) Primary Key No_Surat_Jalan_Customer Foreign Key Kd_Pegawai references Pegawai (Kd_Pegawai) Foreign Key Kd_Customer references Customer (Kd_Customer) Detail_Surat_Jalan_Customer (No_Surat_Jalan_Customer, No_Nota_Tagihan) Foreign Key No_Surat_Jalan_Customer references Header_Surat_Jalan_Customer (No_Surat_Jalan_Customer) Foreign Key No_Nota_Tagihan references Header_Nota_Tagihan (No_Nota_Tagihan)

65 Pemilihan DBMS Pemilihan DBMS digunakan untuk memilih DBMS yang tepat untuk mendukung aplikasi basis data. 1. Kemudahan Penggunaan DBMS sebaiknya dapat digunakan dengan mudah oleh pengguna 2. Kemudahan dalam administrasi Pengadministrasian harus mudah dilakukan 3. Kehandalan DBMS harus mampu mengamankan data apabila terjadi kegagalan dan kerusakan piranti lunak atau keras 4. Biaya Biaya yang dikeluarkan untuk DBMS sebaiknya tidak melebihi anggaran yang diperkirakan oleh perusahaan. 5. Keamanan DBMS sebaiknya dapat bekerja dengan komponan perangkat keras dan piranti lunak lainnya dengan baik didalam sistem manajemen informasi. 6. Kompatibilitas DBMS harus dapat bekerja dengan komponen perangkat keras dan piranti lunak lainnya dengan baik didalam system manajemen informasi. 7. Persyaratan minimum DBMS harus mampu bekerja pada platform komputer untuk menjalankan sistem manajemen informasi.

66 Kedeketan dengan basis data Apabila strukutur dan operasi dari DBMS telah dketahui, maka waktu yang seharusnya dihabiskan untuk mempelajari DBMS dapat difokuskan kepada perancangan. 9. Skalabilitas Mempertimbangkan faktor besar atau kecilnya suatu perusahaan, dan seberapa banyak data yang ditampung pada DBMS yang digunakan. Berikut ini adalah perbandingan antara Microsoft SQL Server 2000 dengan MySQL 4.0 Tabel 4.22 Perbandingan Microsoft SQL server 2000 dengan MySQL 4.0 Perbedaan SQL Server 2000 MySQL 4.0 Tipe DBMS Transactional relational database server Relational database server dengan driver InnoDB Biaya $ $5000(Profesional Edition) $0 - $395 (Lisensi Komersial) Kebutuhan Perangkat Keras Intel Pentium II atau AMD Kebutuhan berdasarkan K6-II processor, 64MB system operasinya. RAM, 380 MB Harddisk Space Kebutuhan Perangkat Windows 2000 atau versi Linux berbasis Unix, Lunak setelahnya hingga Windows MyODBC ( untuk ODBC

67 125 XP, Internet Explore 5.0 driver support), Connector/J (untuk JDBC driver support) Kelebihan Mendukung kehandalan dan keamanan tingkat Gratis, Dokumentasi secara online entreprise, dapat menjalankan berbagai basis data dalam satu server Kekurangan Biaya cukup tinggi, Tidak sepenuhnya memerlukan windows 2000 compatibel dengan SQL92 server (yang menyebabkan masalah dengan aplikasi server yang membuat query SQL-nya sendiri) Keterbatasan basis data Terbatas mendekati 2 milliar objek basis data Terbatas hingga 32 index tiap table, ukuran basis data terbatas hingga ukuran terbesar file dari system operasinya Pemenuhan ACID Ya Ya Kemampuan Mendukung failover Peranti lunak open source clusters, pemulihan point in time, dapat melakukan

68 126 Keamanan restart jika terhenti Menggunakan authentifikasi penggunaan Menggunakan Authentifikasi penggunaan dengan pilihan untuk dengan menyatukan menyatukan keamanan keamanan root dan kernel basis data dengan Windows 2000 server versi system operasi open source Standard SQL99,ODBC,JDBT- SQL-92 intermediete, SQL,XM L ODBC (memerlukan MyIDBC), JDBC Data data diatas menunjukkan MySQL 4.0 memiliki biaya lebih rendah, bebas lisensi. Dikarenakan PT.MUTIARA FIBRINDO menginginkan platform berbasis windows. Maka kami memilih SQL server 2000 untuk pengerjaan basis datanya Perancangan Basis Data Fisikal Perancangan basis data fisikal merupakan proses pembuatan deskripsi dari suatu implementasi basis data pada secondary storage. Beberapa langkah dalam merancang basis data secara fisik adalah sebagai berikut : 1. Merancang relasi dasar 2. Mendesain representasi dari derived data 3. Mendesain enterprise constraint 4. Menganalisa transaksi

69 Memilih index 6. Memperkirakan kebutuhan kapasitas penyimpanan 7. Merancang user view 8. Merancang mekanisme keamanan Perancangan Relasi Dasar Tujuan dari tahap ini adalah untuk menentukan bagaimana menggambarkan relasi dasar yang diidentifikasikan oleh model data logikal global dalam DBMS. DBDL ( Database Design Languange) yang digunakan adalah sebagai berikut : Barang Domain KodeBarang : variable lenght character string, lenght 5 Domain KodeMerk : variable lenght character string, lenght 5 Domain NamaBarang : variable lenght character string, lenght 20 Domain NamaMerk : variable lenght character string, lenght 15 Domain KodeJenis : variable lenght character string, lenght 5 Domain NamaJenis : variable lenght character string, lenght 15 Domain Ukuran : variable lenght character string, lenght 5 Domain Harga : money Header_Barang ( KdBarang KodeBarang NOTNULL KdMerkBarang KodeMerk NOTNULL NamaBarang NamaBarang NOTNULL MerkBrg NamaMerk NOTNULL

70 128 KdJnsBarang KodeJenis NOTNULL JnsBrg NamaJenis NOTNULL Harga Harga NOTNULL Ukuran Ukuran NOTNULL PRIMARY KEY (KdBarang), FOREIGN KEY (KdMerk) REFERENCES Merk_Barang (KdMerk) ON UPDATE CASCADE ON DELETE NOACTION; Jenis_Barang Domain KodeJenisBarang : variable lenght character string, lenght 5 Domain NamaJenisBarang : variable lenght character string, lenght 30 Jenis_Barang ( KdJnsBrg KodeJenisBarang NOTNULL JnsBrg NamaJenisBarang NOTNULL PRIMARY KEY (KdJnsBrg); Customer Domain KodeCustomer : variable lenght character string, lenght 5 Domain NamaCustomer : variable lenght character string, lenght 30

71 129 Domain AlamatCustomer : variable lenght character string, lenght 100 Domain TelpCustomer : variable lenght character string, lenght 30 Customer ( KdCustomer KodeCustomer NamaCustomer NamaCustomer AlamatCustomer AlamatCustomer NOTNULL NOTNULL NOTNULL PRIMARY KEY (KdCustomer) Supplier Domain Kd_Supplier : Variabel lenght character string, lenght 5 Domain Nama_Supplier : Variabel lenght character string, lenght 30 Domain Alamat_Supplier : Variabel lenght character string, lenght 100 Domain Telp_Supplier : Variabel lenght character string, lenght 30 Supplier ( KdSupplier KodeSupplier NOTNULL NamaSupplier NamaSupplier AlamatSupplier Alamat_Supplier TelpSupplier TelpSupplier NOTNULL NOTNULL NOTNULL PRIMARY KEY (KdSupplier) Pegawai

72 130 Domain KodePegawai : variabel lenght character string, lenght 5 Domain NamaPegawai : variabel lenght character string, lenght 15 Domain AlamatPegawai : variabel lenght character string, lenght 100 Domain KdDivisi : variabel lenght character string, lenght 20 Pegawai ( KdPegawai KodePegawai NOTNULL NamaPegawai NamaPegawai NamaPegawai AlamatPegawai KdDivisi KodeDivisi NOTNULL NOTNULL NOTNULL PRIMARY KEY (KdPegawai) Header_Penjualan Domain NomorFakturPenjualan : variabel lenght character string, lenght 5 Domain KodeCustomer : variabel lenght character string, lenght 5 Domain TglFakJual : variabel datetime Domain KdPegawai : variabel lenght character string, lenght 5 Header_Penjualan ( NoFakPenjualan NomorFakturJual NOTNULL KdCustomer KodeCustomer NOTNULL Tanggal TglFakJual NOTNULL KdPegawai KodePegawai NOTNULL PRIMARY KEY (NoFakPenjualan),

73 131 FOREIGN KEY (KdCustomer) REFERENCES Customer (KdCustomer) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdPegawai) REFERENCES Pegawai (KdPegawai) ON UPDATE CASCADE ON DELETE NO ACTION Detail_Penjualan Domain NomorFakturPenjualan : variable lenght character string, lenght 5 Domain KodeBarang : variable lenght character string, lenght 5 Domain Ukuran : variable lenght charachter string, lenght 5 Domain HargaJual : variable money Domain Quantity : integer Detail_Penjualan ( NoFakPenjualan NomorFakturPenjualan NOTNULL KdBarang KodeBarang NOTNULL Ukuran Ukuran NOTNULL HargaJual HargaJual NOTNULL Qty Qty NOTNULL PRIMARY KEY (NoFakPenjualan, KdBarang), FOREIGN KEY (NoFakturPenjualan) REFERENCES Header_Penjualan (NoFakturPenjualan) ON UPDATE CASCADE ON DELETE NO ACTION,

74 132 FOREIGN KEY (KdBarang) REFERENCES Header_Barang (KdBarang) ON UPDATE CASCADE ON DELETE NO ACTION Header_Penerimaan_Barang Domain NoFakturPenerimaan : variable lenght character string, lenght 5 Domain KodeSupplier : variable lenght character string, lenght 5 Domain KodePegawai : variabel lenght character string, lenght 5 Domain Tanggal : variabel datetime Header_Penerimaan_Barang ( NoFakPenerimaan NoFakturPenerimaan NOTNULL KdSupplier KodeSupplier NOTNULL KdPegawai KodePegawai NOTNULL Tanggal Tanggal NOTNULL PRIMARY KEY (NoFakPenerimaan), FOREIGN KEY (KdSupplier) REFERENCES Supplier (KdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdPegawai) REFERENCES Pegawai (KdPegawai) ON UPDATE CASCADE ON DELETE NO ACTION Detail_Penerimaan_Barang

75 133 Domain NoFakturPenerimaan : variable lenght character string, lenght 5 Domain NoOrder : variable lenght character string, lenght 5 Domain HargaBeli : money Detail_Penerimaan_Barang ( NoFakPenerimaan NoFakturPenerimaan NOTNULL NoOrder KodeBarang NOTNULL HargaBeli HargaBeli NOTNULL PRIMARY KEY (NoFakPenerimaan, KdBarang) FOREIGN KEY (NoOrder) REFERENCES Header_Order (NoOrder), ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (NoFakPenerimaan) REFERENCES Header_Penerimaan_Barang (NoFakPenerimaan), ON UPDATE CASCADE ON DELETE NO ACTION Header_Order Domain NoOrder : variable lenght character string, lenght 5 Domain KodeSupplier : variable lenght character string, lenght 5 Domain KodePegawai : variable lenght character string, lenght 5 Domain Tanggal : datetime Header_Order ( NoOrder NoOrder NOTNULL KdSupplier KodeSupplier NOTNULL

76 134 KdPegawai KodePegawai NOTNULL Tanggal Tanggal NOTNULL PRIMARY KEY (NoOrder) FOREIGN KEY (KdSupplier) REFERENCES Supplier (KdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdPegawai) REFERENCES Pegawai(KdPegawai) ON UPDATE CASCADE ON DELETE NO ACTION Detail_Order Domain NoOrder : variable lenght character string, lenght 5 Domain KodeBarang : variable lenght character string, lenght 5 Domain Quantity : integer Detail_Order ( NoOrder NoOrder NOTNULL KdBarang KodeBarang NOTNULL Qty Qty NOTNULL PRIMARY KEY (NoOrder, KdBarang) FOREIGN KEY (KdBarang) REFERENCES Barang (KdBarang) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (NoOrder) REFERENCES Header_Order (NoOrder)

77 135 ON UPDATE CASCADE ON DELETE NO ACTION Header_Daftar_Pemesanan Domain NoDaftarPemesanan : variable lenght character string, lenght 5 Domain KodePegawai : variable lenght character string, lenght 5 Domain KodeCustomer : variabel lenght character string, lenght 5 Domain StatusPemesanan : variabel lenght character string, lenght 10 Domain Tanggal : variable datetime Header_Daftar_Pemesanan ( NoDaftPemesanan NoDaftarPemesanan NOTNULL KdPegawai KodePegawai NOTNULL KdCustomer KodeCustomer StatusPemesanan StatusPemesanan NOTNULL NOTNULL Tanggal Tanggal NOTNULL PRIMARY KEY (NoDaftPemesanan) FOREIGN KEY (KdPegawai) REFERENCES Pegawai (KdPegawai) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdCustomer) REFERENCES Customer (KdCustomer) ON UPDATE CASCADE ON DELETE NO ACTION

78 136 Detail_Daftar_Pemesanan Domain NoDaftarPemesanan : variable lenght character string, lenght 5 Domain KodeBarang : variable lenght character string, lenght 5 Domain Qty : integer Domain Ukuran : variable lenght character string, lenght 5 Domain HargaJual : money Detail_Daftar_Pemesanan ( NoDafPemesanan NoDaftarPemesanan NOTNULL KdBarang KodeBarang NOTNULL Qty Qty NOTNULL Ukuran Ukuran NOTNULL HargaJual HargaJual NOTNULL PRIMARY KEY (NoDaftPemesanan, KdBarang), FOREIGN KEY (NoDaftPemesanan) REFERENCES Header_Daftar_Pemesanan (NoDaftPemesanan) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdBarang) REFERENCES Barang (KdBarang) ON UPDATE CASCADE ON DELETE NO ACTION Header_Nota_Tagihan Domain NoNotaTagihan : variable lenght character string, lenght 5 Domain KodeCustomer : variable lenght character string, lenght 5

79 137 Domain KodePegawai : variable lenght character string, lenght 5 Domain Tanggal : datetime Header_Nota_Tagihan ( NoNotaTagihan NoNotaTagihan KdCustomer KodeCustomer NOTNULL NOTNULL KdPegawai KodePegawai NOTNULL Tanggal Tanggal NOTNULL PRIMARY KEY (NoNotaTagihan) FOREIGN KEY (KdCustomer) REFERENCES Customer (KdCustomer) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdPegawai) REFERENCES Pegawai (KdPegawai) ON UPDATE CASCADE ON DELETE NO ACTION Detail_Nota_Tagihan Domain NoNotaTagihan : variable length character string, lenght 5 Domain NoDaftPemesanan : variable length character string, lenght 5 Domain HargaJual : money Detail_Nota_Tagihan ( NoNotaTagihan NoNotaTagihan NOTNULL NoDaftPemesanan NoFakturPenjualan NOTNULL

80 138 HargaJual HargaJual NOTNULL PRIMARY KEY (NoNotaTagihan, NoDaftPemesanan) FOREIGN KEY (NoNotaTagihan) REFERENCES Header_Nota_Tagihan (NoNotaTagihan) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (NoDaftPemesanan) REFERENCES Header_Daftar_Pemesanan (NoDaftPemesanan) ON UPDATE CASCADE ON DELETE NO ACTION Header_Surat_Jalan_Order Domain NoSuratJalanOrder : variable lenght character string, lenght 5 Domain KodePegawai : variable lenght character string, lenght 5 Domain KodeSupplier : variabel lenght character string, lenght 5 Domain Tanggal : datetime Header_Surat_Jalan_Order ( NoSrtJlnOrder NoSuratJalanOrder NOTNULL KdPegawai KodePegawai NOTNULL KdSupplier KodeSupplier NOTNULL Tanggal Tanggal NOTNULL PRIMARY KEY (NoSrtJlnOrder) FOREIGN KEY (KdPegawai) REFERENCES Pegawai (KdPegawai) ON UPDATE CASCADE ON DELETE NO ACTION,

81 139 FOREIGN KEY (KdSupplier) REFERENCES Supplier (KdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION Detail_Surat_Jalan_Order Domain NoSuratJalanOrder : variable length character string, lenght 5 Domain NoOrder : variable length character string, lenght 5 Detail_Surat_Jalan _Order( NoSrtJlnOrder NoSuratJalanOrder NOTNULL NoOrder NoOrder NOTNULL PRIMARY KEY (NoSrtJlnOrder, NoOrder) FOREIGN KEY (NoSrtJlnOrder) REFERENCES Header_Surat_Jalan_Order (NoSrtJlnOrder) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (NoOrder) REFERENCES Header_Order (NoOrder) ON UPDATE CASCADE ON DELETE NO ACTION Header_Surat_Jalan_Customer Domain NoSuratJalanCustomer : variable lenght character string, lenght 5 Domain KodeCustomer variabel lenght character string, lenght 5

82 140 Domain KodePegawai : variabel lenght character string, lenght 5 Domain Tanggal : datetime Header_Surat_Jalan_Customer ( NoSrtJlnCust NoSuratJalanCustomer NOTNULL KdCustomer KodeCustomer NOTNULL KdPegawai KodePegawai NOTNULL Tanggal Tanggal NOTNULL PRIMARY KEY (NoSrtJlnCust) FOREIGN KEY (KdPegawai) REFERENCES Pegawai (KdPegawai) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdCustomer) REFERENCES Customer (KdCustomer) ON UPDATE CASCADE ON DELETE NO ACTION Detail_Surat_Jalan_Customer Domain NoSuratJalanCustomer : variable length character string, lenght 5 Domain NoNotaTagihan : variable length character string, lenght 5 Detail_Surat_Jalan _Customer( NoSrtJlnCust NoSuratJalanCustomer NOTNULL NoNotaTagihan NoNotaTagihan NOTNULL

83 141 PRIMARY KEY (NoSrtJlnCust, NoNotaTagihan) FOREIGN KEY (NoSrtJlnCust) REFERENCES Header_Surat_Jalan_Customer (NoSrtJlnCust) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (NoNotaTagihan) REFERENCES Header_Nota_Tagihan (NoNotaTagihan) ON UPDATE CASCADE ON DELETE NO ACTION Mendesain representasi dari derived data Di dalam model data ini, derived data sudah dibuat menjadi atribut dalam kamus data sebelumnya Perancangan EnterPrise Constraint Header_Barang CREATE UNIQUE INDEX KdBarang ON Header_Barang (KdBarang) CREATE INDEX KdMerkMerk_Barang ON Merk_Barang (KdMerkBarang) CREATE INDEX KdJenisJenis_BarangON Jenis_Barang (KdJenisBarang) Merk_Barang CREATE UNIQUE INDEX KdMerkBarang ON Merk_Barang (KdMerkBarang) Jenis_Barang

84 142 CREATE UNIQUE INDEX KdJenisBarang ON Jenis_Barang (KdJenisBarang) Pegawai CREATE UNIQUE INDEX KdPegawai ON Pegawai (KdPegawai) CREATE INDEX KdDivisiDivisi ON Divisi (KdDivisi) Divisi CREATE UNIQUE INDEX KdDivisi ONsDivisi (KdDivisi) Supplier CREATE UNIQUE INDEX KdSupplier ON Supplier (KdSupplier) Customer CREATE UNIQUE INDEX KdCustomer ON Customer (KdCustomer) Header_Order CREATE UNIQUE INDEX NoOrder ON HeaderOrder (No Order) CREATE INDEX KdSupplierSupplier ON Supplier (KdSupplier) CREATE INDEX KdPegawaiPegawai ON Pegawai (KdPegawai) Detail_Order

85 143 CREATE UNIQUE INDEX NoOrder ON Detail_Order (NoOrder) CREATE UNIQUE INDEX KdBarang ON Detail_Order (KdBarang) Header_Daftar_Pemesanan CREATE UNIQUE INDEX NoDaftarPemesanan ON Header_Daftar_Pemesanan (NoDaftarPemesanan) CREATE INDEX KdPegawaiPegawai ON Pegawai (KdPegawai) CREATE INDEX KdCustomerCustomer ON Customer (KdCustomer) Detail_Daftar_Pemesanan CREATE UNIQUE INDEX NoDaftarPemesanan ON Detail_Daftar_Pemesanan (NoDaftarPemesanan) CREATE UNIQUE INDEX KdBarang ON Detail_Order (KdBarang) Header_Nota_Tagihan CREATE UNIQUE INDEX NoNotaTagihan ON Header_Nota_Tagihan (NoNotaTagihan) CREATE INDEX KdCustomerCustomer ON Customer (KdCustomer) CREATE INDEX KdPegawaiPegawai ON Pegawai (KdPegawai)

86 144 Detail_Nota_Tagihan CREATE UNIQUE INDEX NoNotaTagihan ON Detail_Nota_Tagihan (NoNotaTagihan) CREATE UNIQUE INDEX NoDaftarPemesanan ON Detail_Daftar_Pemesanan (NoDaftarPemesanan) Header_Surat_Jalan_Order CREATE UNIQUE INDEX NoSuratJalanOrder ON Header_Surat_Jalan_Order (NoSuratJalanOrder) CREATE INDEX KdSupplierSupplier ON Supplier (KdSupplier) CREATE INDEX KdPegawaiPegawai ON Pegawai (KdPegawai) Detail_Surat_Jalan_Order CREATE UNIQUE INDEX NoSuratJalanOrder ON MsDetailSuratJalanOrder(No_Surat_Jalan_Order) CREATE UNIQUE INDEX NoOrder ON Detail_Surat_Jalan_Order (NoOrder) Header_Surat_Jalan_Customer CREATE UNIQUE INDEX NoSuratJalan Customer ON Header_Surat_Jalan_Customer (NoSuratJalanCustomer) CREATE INDEX KdCustomerCustomer ON Customer (KdCustomer)

87 145 CREATE INDEX KdPegawaiPegawai ON Pegawai (KdPegawai) Detail_Surat_Jalan_Customer CREATE UNIQUE INDEX NoSuratJalanCustomer ON Detail_Surat_Jalan_Customer(NoSuratJalanCustomer) CREATE UNIQUE INDEX NoNotaTagihan ON Detail_Surat_Jalan_Customer (NoNotaTagihan) Menganalisa Transaksi Tujuan dari langkah ini adalah untuk memahami fungsionalitas dari transaksi yang akan berjalan pada basis data dan untuk menganalisa transaksi yang penting. Transaksi-transaksi yang terjadi adalah sebagai berikut: A. Memasukkan dan mengubah data barang B. Memasukkan dan mengubah merk. C. Memasukkan dan mengubah data jenis barang D. Memasukkan dan mengubah data customer. E. Memasukkan dan mengubah data supplier. F. Memasukkan dan mengubah data pegawai. G. Memasukkan dan mengubah data divisi. H. Membuat dan melihat penerimaan barang. I. Mendapatkan data customer untuk membuat faktur penjualan.

88 146 J. Membuat dan mengubah faktur penjualan. K. Mendapatkan data customer untuk membuat daftar pemesanan barang. L. Membuat dan mengubah daftar pemesanan barang M. Mendapatkan data supplier untuk membuat order N. Membuat dan mengubah order O. Mendapatkan data customer untuk membuat nota tagihan. P. Membuat dan mengubah nota tagihan Q. Mencatat no order untuk membuat surat jalan order R. Membuat dan melihat surat jalan order S. Mencatat no nota tagihan untuk membuat surat jalan customer T. Membuat dan melihat surat jalan customer

89 147 Tabel 4.23 Tabel Analisa Transaksi / Relasi Transaksi/Relasi (A) (B) (C) (D) (E) (F) (G) I R U D I R U D I R U D I R U D I R U D I R U D I R U D Barang X X Merk X X Jenis X X Customer X X Supplier X X Pegawai X X Divisi X X Penerimaan_Barang Penjualan Daftar_Pemesanan_Barang Order Nota_Tagihan Surat_Jalan_Order Surat_Jalan_Customer Keterangan I=Insert, R=Read, U=Update, D=Delete

90 148 Transaksi/Relasi (H) (I) (J) (K) (L) (M) (N) I R U D I R U D I R U D I R U D I R U D I R U D I R U D Barang Merk Jenis Customer X X Supplier X Pegawai Divisi Penerimaan_Barang X X Penjualan X X Daftar_Pemesanan_Barang X X Order X X Nota_Tagihan Surat_Jalan_Order Surat_Jalan_Customer Keterangan I=Insert, R=Read, U=Update, D=Delete

91 149 Transaksi/Relasi (O) (P) (Q) (R) (S) (T) I R U D I R U D I R U D I R U D I R U D I R U D Barang Merk Jenis Customer X Supplier Pegawai Divisi Penerimaan_Barang Penjualan Daftar_Pemesanan_Barang Order X Nota_Tagihan X X X Surat_Jalan_Order X X X X Surat_Jalan_Customer Keterangan I=Insert, R=Read, U=Update, D=Delete

92 Penerapan View dalam database View Faktur Penerimaan Barang CREATE VIEW View_Faktur_Penerimaan_Barang AS (SELECT a.nofakpenerimaanbrg, a.kdsupplier, NamaSupplier,hargabeli, a.tanggal, d.noorder, e.kdbarang, Ukuran, Qty, (Qty*HargaBeli) AS SubTotal FROM Header_Penerimaan_Barang a JOIN Detail_Penerimaan_Barang b ON b.nofakpenerimaanbrg = a.nofakpenerimaanbrg JOIN Supplier c ON c.kdsupplier = a.kdsupplier JOIN Header_Order d ON d.kdsupplier = c.kdsupplier JOIN Header_Barang e ON e.kdsupplier = c.kdsupplier JOIN Detail_Barang f ON f.kdbarang = e.kdbarang ) View Faktur Penjualan CREATE VIEW View_Faktur_Penjualan AS (SELECT a.nofakpenjualan, a.kdcustomer, NamaCustomer, a.tanggal, a.kdpegawai, NamaPegawai, b.kdbarang, Ukuran, Qty, HargaJual,(qty*hargajual) AS SubTotal FROM Header_Penjualan a JOIN Detail_Penjualan b ON b.nofakpenjualan = a.nofakpenjualan JOIN Customer c ON c.kdcustomer = a.kdcustomer JOIN Pegawai d ON d.kdpegawai = a.kdpegawai JOIN Header_Barang e On e.kdbarang =b.kdbarang )

93 151 View Order CREATE VIEW View_Order AS (SELECT a.noorder, a.kdsupplier, NamaSupplier, a.tanggal, d.kdbarang, Ukuran,hargabeli, Qty, (qty*hargabeli) AS SubTotal FROM Header_Order a JOIN Detail_Order b on b.noorder =a.noorder JOIN Supplier c ON c.kdsupplier = a.kdsupplier JOIN Header_barang d ON d.kdsupplier = c.kdsupplier ) View Daftar Pemesanan CREATE VIEW View_Daftar_Pemesanan AS (SELECT a.nodaftpemesanan, a.kdcustomer, NamaCustomer, StatusPemesanan, a.tanggal, d.kdpegawai, NamaPegawai, f.kdbarang, NamaBarang, b.ukuran, b.qty, b.hargajual, (b.qty*b.hargajual) AS SubTotal FROM Header_Daftar_Pemesanan a JOIN Detail_Daftar_Pemesanan b ON b.nodaftpemesanan = a.nodaftpemesanan JOIN customer c ON c.kdcustomer=a.kdcustomer JOIN Header_Penjualan d ON d.kdcustomer=c.kdcustomer JOIN pegawai e ON e.kdpegawai = d.kdpegawai JOIN Detail_Penjualan f ON f.nofakpenjualan=d.nofakpenjualan JOIN Header_Barang g ON g.kdbarang=f.kdbarang ) View Nota Tagihan

94 152 CREATE VIEW View_Nota_Tagihan AS(SELECT a.nonotatagihan, a.kdcustomer, NamaCustomer, a.tanggal, d.nodaftpemesanan, f.kdbarang, NamaBarang, Ukuran, Qty, b.hargajual, (Qty*b.hargajual) AS SubTotal From Header_Nota_Tagihan a JOIN Detail_Nota_Tagihan b ON b.nonotatagihan=a.nonotatagihan JOIN customer c ON c.kdcustomer=a.kdcustomer JOIN Header_Daftar_Pemesanan d ON d.kdcustomer =c.kdcustomer JOIN Header_Penjualan e ON e.kdcustomer=c.kdcustomer JOIN Detail_Penjualan f ON f.nofakpenjualan=e.nofakpenjualan JOIN Header_Barang g ON g.kdbarang=f.kdbarang ) View Surat Jalan Order CREATE VIEW View_Header_Surat_Jalan_Order AS (SELECT a.nosrtjlnorder, a.kdsupplier, NamaSupplier,a.KdPegawai, NamaPegawai,b.NoOrder, a.tanggal, e.kdbarang, Ukuran, Qty From Header_Surat_Jalan_Order a JOIN Detail_Surat_Jalan_Order b ON b.nosrtjlnorder=a.nosrtjlnorder JOIN Supplier c ON c.kdsupplier=a.kdsupplier JOIN Header_Order d ON d.kdsupplier=c.kdsupplier JOIN Detail_Order e ON e.noorder=b.noorder JOIN Pegawai f ON f.kdpegawai = a.kdpegawai ) View Surat Jalan Customer CREATE VIEW View_Header_Surat_Jalan_Customer AS (SELECT a.nosrtjlncust, a.kdcustomer,

95 153 NamaCustomer,a.KdPegawai, NamaPegawai,b.NoNotaTagihan, a.tanggal, KdBarang, Ukuran, Qty From Header_Surat_Jalan_Customer a JOIN Detail_Surat_Jalan_Customer b ON b.nosrtjlncust=a.nosrtjlncust JOIN Customer c ON c.kdcustomer=a.kdcustomer JOIN Header_Nota_Tagihan d ON d.kdcustomer=c.kdcustomer JOIN Detail_Nota_Tagihan e ON e.nonotatagihan=b.nonotatagihan JOIN Pegawai f ON f.kdpegawai = a.kdpegawai JOIN Detail_Daftar_Pemesanan g ON g.nodaftpemesanan =e.nodaftpemesanan) Memilih Index SQL server menyediakan index untuk dua alasan utama yaitu sebagai metode untuk menjalankan keunikan data di dalam tabel basis data dan untuk menyediakan akses yang lebih cepat ke data yang berada di dalam tabel. Membuat index untuk basis data merupakan aspek yang sangat penting untuk merancang basis data fisikal. Index yang digunakan adalah sebagai berikut: Tabel 4.24 Tabel Index yang digunakan Entitas Nama Field Nama Index Jenis (C/NC) Customer KdCustomer IdxCustomer NC Supplier KdSupplier IdxSupplier NC Pegawai KdPegawai IdxPegawai NC

96 154 Divisi KdDivisi IdxDivisi NC Barang KdBarang IdxBarang NC Merk_Barang KdMerk IdxMerk NC Jenis_Barang KdJenis IdxJenis NC Daftar_Pemesanan NoDaftPemesanan IdxDaftarPemesananBarang NC Order NoOrder IdxOrder NC Penerimaan_Barang NoFakPenerimaan IdxFakturPenerimaan NC Barang Penjualan NoFakPenjualan IdxFakturPenjualan NC Nota_Tagihan NoNotaTagihan IdxNotaTagihan NC Surat_Jalan_Order NoSrtJlnOrder IdxSuratJalanOrder NC Surat_Jalan_Customer NoSrtJlnCust IdxSuratJalanCustomer NC 1. Customer CREATE UNIQUE NONCLUSTERED INDEX IdxCustomer ON Customer (KdCustomer) 2. Supplier CREATE UNIQUE NONCLUSTERED INDEX IdxSupplier ON Supplier (KdSupplier) 3. Pegawai CREATE UNIQUE NONCLUSTERED INDEX IdxPegawai ON Pegawai (KdPegawai) 4. Divisi

97 155 CREATE UNIQUE NONCLUSTERED INDEX IdxDivisi ON Divisi (KdDivisi) 5. Barang CREATE UNIQUE NONCLUSTERED INDEX IdxBarang ON Barang (Kdbarang) 6. Merk CREATE UNIQUE NONCLUSTERED INDEX IdxMerk ON Merk_Barang (KdMerk) 7. Jenis CREATE UNIQUE NONCLUSTERED INDEX IdxJenis ON Jenis_Barang (KdJenis) 8. Daftar_Pemesanan CREATE UNIQUE NONCLUSTERED INDEX IdxDaftarPemesananBarang ON Daftar_Pemesanan (NoDaftPemesanan) 9. Order CREATE UNIQUE NONCLUSTERED INDEX IdxOrder ON Order (NoOrder) 10. Penerimaan_Barang CREATE UNIQUE NONCLUSTERED INDEX IdxFakturPenerimaanBarang ON Penerimaan_Barang (NoFakPenerimaanBarang) 11. Penjualan

98 156 CREATE UNIQUE NONCLUSTERED INDEX IdxFakturPenjualan ON Penjualan (NoFakPenjualan) 12.Nota_Tagihan CREATE UNIQUE NONCLUSTERED INDEX IdxNotaTagihan ON NotaTagihan (NoNotaTagihan) 13.Surat_Jalan_Order CREATE UNIQUE NONCLUSTERED INDEX IdxSuratJalanOrder ON Surat_Jalan_Order (NoSrtJlnOrder) 14.Surat_Jalan_Customer CREATE UNIQUE NONCLUSTERED INDEX IdxSuratJalanCustomer ON Surat_Jalan_Customer (NoSrtJlnCust) Memperkirakan Kebutuhan Media Penyimpanan Tujuan dari langkah ini adalah untuk menghitung jumlah kapasitas penyimpanan yang dibutuhkan oleh basis data. Perkiraan kapasitas dari tabel-tabel yang ada adalah sebagai berikut: Tabel 4.25 Tabel Barang Field Type Ukuran KdBarang Char (5) 5 NamaBarang Varchar (30) 30

99 157 KdMerk Char (5) 5 KdJenis Char (5) 5 Harga Money 20 Ukuran Varchar (5) 5 Qty Integer 5 Kapasitas dari Barang adalah 75 byte Diperkirakan dalam satu bulan terdapat 1 barang baru Dalam satu tahun pertumbuhan tabel adalah 1*12*75 = 900 byte Tabel 4.26 Tabel Merk Barang Field Type Ukuran KdMerk Char (5) 5 MerkBrg Varchar (15) 15 Kapasitas dari Merk adalah 20 byte Diperkirakan dalam satu bulan terdapat 1 Merk baru Dalam satu tahun pertumbuhan tabel adalah 1*12*20 = 240 byte Tabel 4.27 Tabel Jenis Barang Field Type Ukuran KdJenis Char (5) 5

100 158 JnsBrg Varchar (15) 15 Kapasitas dari Barang adalah 20 byte Diperkirakan dalam satu bulan terdapat 1 Jenis baru Dalam satu tahun pertumbuhan tabel adalah 1*12*20 = 240 byte Tabel 4.28 Tabel Customer Field Type Ukuran KdCustomer Char (5) 5 NamaCustomer Varchar (30) 30 AlamatCustomer TelpCustomer Varchar (100) Varchar (30) Kapasitas dari Customer adalah 165 byte Diperkirakan dalan satu hari ada penambahan 2 customer baru Dalam satu tahun pertumbuhan tabel adalah 2*30*12*165 = byte atau 118,8 kb Tabel 4.29 Tabel Supplier Field Type Ukuran KdSupplier Char (5) 5 NamaSupplier Varchar (30) 30 AlamatSupplier Varchar (100) 100 TelpSupplier Varchar (30) 30 Kapasitas dari Barang adalah 165 byte

101 159 Diperkirakan dalam satu bulan terdapat 1 supplier baru Dalam satu tahun pertumbuhan tabel adalah 1*12*165 = 1980 byte Tabel 4.30 Tabel Pegawai Field Type Ukuran KdPegawai Char (5) 5 NamaPegawai Varchar (30) 30 AlamatPegawai Varchar (100) 100 TelpPegawai VarChar (30) 30 KdDivisi Char (5) 5 Kapasitas dari Barang adalah 170 byte Diperkirakan dalam satu bulan terdapat 2 pegawai baru Dalam satu tahun pertumbuhan tabel adalah 2*12*170 = 4080 byte Tabel 4.31 Tabel Daftar Pemesanan Field Type Ukuran NoDaftPemesanan Char (5) 5 KdCustomer Char (5) 5

102 160 KdPegawai Char (5) 5 StatusPemesanan Char (5) 5 KdBarang Char (5) 5 Tanggal Datetime 15 Ukuran Varchar (5) 5 HargaJual Money 20 Qty Integer 5 Kapasitas dari Barang adalah 70 byte Diperkirakan dalam satu hari terdapat 3 daftar pemesanan baru Dalam satu tahun pertumbuhan tabel adalah 3*30*12*70 = byte Tabel 4.32 Tabel Order Field Type Ukuran NoOrder Char (5) 5 KdSupplier Char (5) 5 KdPegawai Char (5) 5 KdBarang Char (5) 5 Tanggal Datetime 10 Qty Integer 5 Ukuran Char (5) 5 HargaBeli Money 20 Kapasitas dari Barang adalah 60 byte Diperkirakan dalam satu hari terdapat 3 daftar pemesanan baru

103 161 Dalam satu tahun pertumbuhan tabel adalah 3*30*12*60 = byte Tabel 4.33 Tabel Faktur Penerimaan Barang Field Type Ukuran NoFakturPenerimaan Char (5) 5 KdSupplier Char (5) 5 KdPegawai Char (5) 5 KdBarang Char (5) 5 NoOrder Char (5) 5 Tanggal Datetime 10 HargaBeli Money 20 Kapasitas dari Barang adalah 55 byte Diperkirakan dalam satu hari terdapat 3 Faktur Penerimaan baru Dalam satu tahun pertumbuhan tabel adalah 3*30*12*55 = byte Tabel 4.34 Tabel Faktur Penjualan Field Type Ukuran NoFakturPenjualan Char (5) 5 KdCustomer Char (5) 5 KdPegawai Char (5) 5 KdBarang Char (5) 5 Tanggal Datetime 10

104 162 Qty Integer 5 Ukuran Char (5) 5 HargaJual Money 20 Kapasitas dari Barang adalah 60 byte Diperkirakan dalam satu hari terdapat 3 Faktur Penjualan baru Dalam satu tahun pertumbuhan tabel adalah 3*30*12*60 = byte Tabel 4.35 Tabel NotaTagihan Field Type Ukuran NoNotaTagihan Char(5) 5 KdCustomer Char (5) 5 KdPegawai Char (5) 5 NoDaftPemesanan Char (5) 5 Tanggal Datetime 10 HargaJual Money 20 Kapasitas dari Barang adalah 50 byte Diperkirakan dalam satu hari terdapat 1 NotaTagihan baru Dalam satu tahun pertumbuhan tabel adalah 1*30*12*50 = byte Tabel 4.36 Tabel Surat Jalan Order Field Type Ukuran NoSrtJalanOrder Char (5) 5

105 163 NoOrder Char (5) 5 KdSupplier Char (5) 5 KdPegawai Char (5) 5 Tanggal DateTime 10 Kapasitas dari Barang adalah 30 byte Diperkirakan dalam satu hari terdapat 3 SuratJalan baru Dalam satu tahun pertumbuhan tabel adalah 3*30*12*30 = byte Tabel 4.37 Tabel Surat Jalan Customer Field Type Ukuran NoSrtJalanCust Char (5) 5 NoNotaTagihan Char (5) 5 KdCustomer Char (5) 5 KdPegawai Char (5) 5 Tanggal DateTime 10 Kapasitas dari Barang adalah 30 byte Diperkirakan dalam satu hari terdapat 3 SuratJalan baru Dalam satu tahun pertumbuhan tabel adalah 3*30*12*30 = byte Tabel 4.38 Tabel Divisi Field Type Ukuran KdDivisi Char (5) 5

106 164 NamaDivisi Char (30) 30 Kapasitas dari Barang adalah 35 byte Diperkirakan dalam tiga bulan terdapat 1 Divisi Dalam satu tahun pertumbuhan tabel adalah 3*4*35 = 420 byte Tabel 4.39 Perkiraan Kapasitas Penyimpanan Nama Tabel Kapasitas yang dibutuhkan Barang 900 Merk 240 Jenis 240 Customer Supplier 1980 Pegawai 4080 Penerimaan_Barang Penjualan Pemesanan_Barang Order Nota_Tagihan Surat_Jalan_Order Surat_Jalan_Customer Divisi 420 Total space yang dibutuhkan dalam satu tahun adalah byte = 474,1 KB Total space yang dibutuhkan dalam 5 tahun adalah 5*474,1 KB = 2370,5 kb = 2,37MB

107 Merancang Mekanisme Keamanan Tujuan dari langkah ini yaitu untuk merancang mekanisme keamanan pada sistem basis data seperti yang telah dispesifikasi oleh user. Tabel 4.40 Tabel Mekanisme Keamanan Objek Pengguna Admin Gudang Keuangan Marketing Umum Entitas Header_Barang Detail_Barang Merk_Barang Jenis_Barang Pegawai Divisi Supplier Customer Header_Daftar_Pemesanan Detail_Daftar_Pemesanan Header_Order Detail_Order Header_Penerimaan_Barang Detail_Penerimaan_Barang Header_Penjualan

108 166 Detail_Penjualan Header_Nota_Tagihan Detail_Nota_Tagihan Header_Surat_Jalan_Order Detail_Surat_Jalan_Order Header_Surat_Jalan_Customer Detail_Surat_Jalan_Customer View Penerimaan_Barang Order Daftar_Pemesanan Penjualan Bagian Admin GRANT ALL ON Header_Barang TO Admin GRANT ALL ON Detail_Barang TO Admin GRANT ALL ON Jenis_Barang TO Admin GRANT ALL ON Merk_Barang TO Admin GRANT ALL ON Supplier TO Admin GRANT ALL ON Divisi TO Admin GRANT ALL ON Pegawai TO Admin GRANT ALL ON Customer TO Admin GRANT ALL ON Header_Daftar_Pemesanan TO Admin GRANT ALL ON Detail_Pemesanan TO Admin

109 167 GRANT ALL ON Header_Order TO Admin GRANT ALL ON Detail_Order TO Admin GRANT ALL ON Header_Penerimaan_Barang TO Admin GRANT ALL ON Detail_ Penerimaan_Barang TO Admin GRANT ALL ON Header_Penjualan TO Admin GRANT ALL ON Detail_Penjualan TO Admin GRANT ALL ON Header_Nota_Tagihan TO Admin GRANT ALL ON Detail_Nota_Tagihan TO Admin GRANT ALL ON Header_Surat_Jalan_Order TO Admin GRANT ALL ON Detail_Surat_Jalan_Order TO Admin GRANT ALL ON Header_Surat_Jalan_Customer TO Admin GRANT ALL ON Detail_Surat_Jalan_Customer TO Admin GRANT ALL ON View_Penerimaan_Barang TO Admin GRANT ALL ON View_Order TO Admin GRANT ALL ON View_Daftar_Pemesanan TO Admin GRANT ALL ON View_Penjualan TO Admin Bagian Gudang GRANT ALL ON Header_Barang TO Gudang GRANT ALL ON Detail_Barang TO Gudang GRANT ALL ON Jenis_Barang TO Gudang GRANT ALL ON Merk_Barang TO Gudang GRANT ALL ON Header_Daftar_Pemesanan TO Gudang GRANT ALL ON Detail_Pemesanan TO Gudang GRANT ALL ON Header_Order TO Gudang

110 168 GRANT ALL ON Detail_Order TO Gudang GRANT ALL ON Header_Penerimaan_Barang TO Gudang GRANT ALL ON Detail_ Penerimaan_Barang TO Gudang GRANT ALL ON Header_Penjualan TO Gudang GRANT ALL ON Detail_Penjualan TO Gudang GRANT ALL ON Header_Surat_Jalan_Order TO Gudang GRANT ALL ON Detail_Surat_Jalan_Order TO Gudang GRANT ALL ON View_Penerimaan_Barang TO Gudang GRANT ALL ON View_Order TO Gudang GRANT ALL ON View_Daftar_Pemesanan TO Gudang GRANT ALL ON View_Penjualan TO Gudang Bagian Keuangan GRANT ALL ON Header_Barang TO Keuangan GRANT ALL ON Detail_Barang TO Keuangan GRANT ALL ON Jenis_Barang TO Keuangan GRANT ALL ON Merk_Barang TO Keuangan GRANT ALL ON Supplier TO Keuangan GRANT ALL ON Divisi TO Keuangan GRANT ALL ON Pegawai TO Keuangan GRANT ALL ON Customer TO Keuangan GRANT ALL ON Header_Daftar_Pemesanan TO Keuangan GRANT ALL ON Detail_Pemesanan TO Keuangan GRANT ALL ON Header_Order TO Keuangan GRANT ALL ON Detail_Order TO Keuangan

111 169 GRANT ALL ON Header_Penerimaan_Barang TO Keuangan GRANT ALL ON Detail_ Penerimaan_Barang TO Keuangan GRANT ALL ON Header_Penjualan TO Keuangan GRANT ALL ON Detail_Penjualan TO Keuangan GRANT ALL ON Header_Nota_Tagihan TO Keuangan GRANT ALL ON Detail_Nota_Tagihan TO Keuangan GRANT ALL ON Header_Surat_Jalan_Order TO Keuangan GRANT ALL ON Detail_Surat_Jalan_Order TO Keuangan GRANT ALL ON Header_Surat_Jalan_Customer TO Keuangan GRANT ALL ON Detail_Surat_Jalan_Customer TO Keuangan GRANT ALL ON View_Penerimaan_Barang TO Keuangan GRANT ALL ON View_Order TO Keuangan GRANT ALL ON View_Daftar_Pemesanan TO Keuangan GRANT ALL ON View_Penjualan TO Keuangan Bagian Marketing GRANT ALL ON Header_Barang TO Marketing GRANT ALL ON Detail_Barang TO Marketing GRANT ALL ON Jenis_Barang TO Marketing GRANT ALL ON Merk_Barang TO Marketing GRANT ALL ON Customer TO Marketing GRANT ALL ON Header_Penerimaan_Barang TO Marketing GRANT ALL ON Detail_ Penerimaan_Barang TO Marketing GRANT ALL ON Header_Penjualan TO Marketing GRANT ALL ON Detail_Penjualan TO Marketing

112 170 GRANT ALL ON Header_Surat_Jalan_Customer TO Marketing GRANT ALL ON Detail_Surat_Jalan_Customer TO Marketing GRANT ALL ON View_Penerimaan_Barang TO Marketing GRANT ALL ON View_Penjualan TO Marketing Bagian Umum GRANT ALL ON Header_Barang TO Marketing GRANT ALL ON Detail_Barang TO Marketing GRANT ALL ON Jenis_Barang TO Marketing GRANT ALL ON Merk_Barang TO Marketing

113 Perancangan Aplikasi Struktur Menu Layar Login Menu Barang Merk pegawai Divisi Customer Supplier Add Add Add Add Add Add View View View View View View Update/ delete Update /delete Update /delete Update /delete Update /delete Update /delete Daftar Pemesanan Order Penerimaan Penjualan Nota Barang Tagihan Surat Jalan Add Add Add Add Add Add View View View View View View Update/ delete Update/ delete Update/ delete Update/ delete Update/ delete Update/ delete Gambar 4.21 Struktur Menu

114 172 Layar Login Menu Barang Merk pegawai Divisi Customer Supplier Daftar Pemesanan Daftar Pemesanan Daftar Pemesanan Daftar Pemesanan Daftar Pemesanan Daftar Pemesanan Gambar 4.22 STD Menu Utama STD Menu Barang Pilih/klik Pilih/klik Add Barang Pilih/klik Form Add Barang Gambar 4.23 STD Barang

115 173 Menu Pilih/klik Merk Pilih/klik Add Merk Pilih/klik Form Add Merk Gambar 4.24 STD Merk Menu Pilih/klik pegawai Add Pegawai Pilih/klik Form Add Pegawai Pilih/klik Gambar 4.25 STD Pegawai

116 174 Menu Pilih/klik Divisi Pilih/klik Add Divisi Pilih/klik Form Add Divisi Gambar 4.26 STD Divisi Menu Pilih/klik Customer Pilih/klik Add Customer Pilih/klik Form Add Customer Gambar 4.27 STD Customer

117 175 Menu Pilih/klik Supplier Pilih/klik Add Supplier Pilih/klik Form Add Supplier Gambar 4.28 STD Supplier Menu Pilih/klik Daftar Pemesanan Pilih/klik Add Daftar Pemesanan Pilih/klik Form Add Daftar pemesanan Gambar 4.29 STD Daftar Pemesanan

118 176 Menu Pilih/klik Daftar Order Pilih/klik Add Order Pilih/klik Form Add Order Gambar 4.30 STD Order Menu Pilih/klik Penjualan Pilih/klik Add Penjualan Pilih/klik Form Add Penjualan Gambar 4.31 STD Penjualan

119 Perancangan Layar Login :: Mutiara Fibrindo Username : Password : OK Gambar 4.32 Rancangan Layar Login

120 178 Menu :: Mutiara Fibrindo File Insert Transaction View Windows Penjualan f1 Order f2 Search Set Period Closing Gambar 4.33 Rancangan Layar Menu Add Customer :: Mutiara Fibrindo Kode Customer Nama Customer Alamat Telp Add Cancel Gambar 4.34 Rancangan Add Customer

121 179 Add Divisi :: Mutiara Fibrindo Kode Divisi : Nama Divisi : Add Cancel Gambar 4.35 Rancangan Add Divisi Add Jenis Barang :: Mutiara Fibrindo Kode Jenis : Jenis : Add Cancel Gambar 4.36 Rancangan Add Jenis Barang

122 180 Add Merk :: Mutiara Fibrindo Kode Merk : Merk : Add Cancel Gambar 4.37 Rancangan Add Merk Add Pegawai :: Mutiara Fibrindo Kode Pegawai : Kode Divisi : Nama Pegawai : Add New Divisi Alamat Pegawai : Telpon Pegawai : Add Cancel Gambar 4.38 Rancangan Add Pegawai

123 181 Add Supplier :: Mutiara Fibrindo Kode Supplier : Nama Supplier : Alamat : Telp : Add Cancel Gambar 4.39 Rancangan Add Supplier

124 182 Closing This year last stock KdBarang KdSupplier KdJenisBarang KdMerk NamaBarang HargaBarang Ukuran Qty This year Profit KdBarang Qty HargaJualBarang HargaBeliBarang Profit Stock Report Total Profit : Profit Report Cancel Gambar 4.40 Rancangan Closing

125 183 Penjualan Tanggal : No Faktur : Pegawai Kode Pegawai Nama Pegawai Barang Kode Barang NamaBarang Harga Customer Kode Customer Nama Customer Quantity Sub Total Profit Add item This year Profit No KdBarang Nama Barang Harga Jual Qty Sub total Delete Total: Submit Report Cancel Gambar 4.41 Rancangan Penjualan

126 184 Persediaan Tanggal : No Faktur : Pegawai Kode Pegawai Nama Pegawai Supplier Kode Supplier Nama Supplier Order Kode Barang NamaBarang Harga Quantity Sub Total Profit Add Item This year Profit No KdBarang Nama Barang Harga Jual Qty Sub total Delete Total: Submit Report Cancel Gambar 4.42 Rancangan Persediaan

127 Rancangan Output Laporan Order MUTIARA Tanggal: FIBRINDO To : NoFaktur: Pegawai : Report Penjualan Qty Description HargaJual Sub Total Total : Gambar 4.43 Laporan Penjualan MUTIARA Tanggal: FIBRINDO To : NoFaktur: Pegawai : Purchasing Order Qty Description HargaJual Sub Total Gambar 4.44 Laporan Order

128 186 MUTIARA FIBRINDO Stock Report KdBarang KdSupplier KdJnsBarang KdMerkBarang NamaBarang Ukuran Qty Xxx xxxxx xx xxxxx xxxxxxx xx xx Xxx xxxxx xx xxxxx xxxxxxx xx xx Xxx xxxxx xx xxxxx xxxxxxx xx xx Xxx xxxxx xx xxxxx xxxxxxx xx xx Xxx xxxxx xx xxxxx xxxxxxx xx xx Gambar 4.45 Laporan Stock Barang Spesifikasi Proses Form SetWarning Private Sub Combo1_Click() opencon openrs "select * from Header_Barang where KdBarang = '" & Left(Combo1.Text, 5) & "'" Text1.Text = rs(6) Private Sub Command1_Click() opencon

129 187 openrs "update header_barang set Warning = '" & Val(Text1.Text) & "' where KdBarang = '" & Left(Combo1.Text, 5) & "'" openrs "select * from Header_Barang where KdBarang = '" & Left(Combo1.Text, 5) & "'" MsgBox "Warning Qty for item " & rs(0) & " - " & rs(4) & "," & Chr(13) & "Has been updated to " & rs(6), vbinformation Private Sub Form_Load() opencon openrs "select * from Header_Barang" For i = 1 To rs.recordcount Combo1.AddItem rs(0) & " - " & rs(4) rs.movenext Next Private Sub Text1_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case Is < 32 Case Asc("0") To Asc("9") Case Else KeyAscii = 0

130 188 Beep End Select Module1 Option Explicit Public cn As New ADODB.Connection Public cm As New ADODB.Command Public rs As New ADODB.Recordset Public Sub opencon() If cn.state Then cn.close cn.open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=skripsi6jun08;Data Source=FATAL1TY" Public Sub openrs(query As String) If rs.state Then rs.close rs.open Query, cn, 1, 3 Private Sub HighlightGridRow(grd As MSFlexGrid, irow As Long) With grd

131 189 If.Rows > 1 Then.Row = irow.col = 1.ColSel =.Cols - 1.RowSel = irow End If End With Public Sub LoadRecordsetIntoGrid(rs As Recordset, grd As MSFlexGrid, Optional AutosizeColumns As Boolean = True, Optional HighlightFirstRow As Boolean = True) Dim x As Long Dim Count As Long grd.redraw = False grd.clear grd.rows = 2 grd.fixedrows = 1 grd.row = 0 grd.cols = rs.fields.count + 1 For x = 0 To rs.fields.count - 1 grd.col = x + 1

132 190 Next grd.text = rs.fields(x).name grd.coldata(x + 1) = rs.fields(x).type If rs.cursorlocation = aduseclient Then grd.rows = rs.recordcount + 1 For Count = 1 To rs.recordcount grd.textmatrix(count, 0) = Count For x = 0 To rs.fields.count - 1 grd.textmatrix(count, x + 1) = "" & CVar(rs.Fields(x).Value) Next rs.movenext Next ElseIf rs.cursorlocation = aduseserver Then Do While Not rs.eof Count = Count + 1 If Count >= grd.rows Then grd.rows = grd.rows End If grd.textmatrix(count, 0) = Count For x = 0 To rs.fields.count - 1

133 191 Next grd.textmatrix(count, x + 1) = "" & CVar(rs.Fields(x).Value) rs.movenext Loop grd.rows = Count + 1 End If If AutosizeColumns Then SetGridColumnWidth grd If HighlightFirstRow Then If grd.rows > 1 Then HighlightGridRow grd, 1 End If grd.redraw = True Public Sub LoadRecordsetIntoGridNoCr(rs As Recordset, grd As MSFlexGrid, Optional AutosizeColumns As Boolean = True, Optional HighlightFirstRow As Boolean = True) Dim x As Long Dim Count As Long grd.redraw = False

134 192 grd.clear grd.rows = 2 grd.fixedrows = 1 grd.row = 0 grd.cols = rs.fields.count + 1 For x = 0 To rs.fields.count - 1 grd.col = x + 1 grd.text = rs.fields(x).name grd.coldata(x + 1) = rs.fields(x).type Next If rs.cursorlocation = aduseclient Then If rs.recordcount > 0 Then grd.rows = rs.recordcount + 1 grd.row = 1 grd.col = 1 grd.colsel = rs.fields.count grd.rowsel = rs.recordcount grd.clip = rs.getstring(,, Chr$(9), Chr$(13)) grd.rowsel = 0

135 193 grd.colsel = 0 grd.row = 1 grd.col = 1 For x = 1 To grd.rows - 1 Next grd.textmatrix(x, 0) = x End If ElseIf rs.cursorlocation = aduseserver Then Do While Not rs.eof Count = Count + 1 If Count >= grd.rows Then grd.rows = grd.rows End If grd.textmatrix(count, 0) = Count For x = 0 To rs.fields.count - 1 grd.textmatrix(count, x + 1) = "" & CVar(rs.Fields(x).Value) Next rs.movenext Loop

136 194 grd.rows = Count + 1 End If If AutosizeColumns Then SetGridColumnWidth grd If HighlightFirstRow Then If grd.rows > 1 Then HighlightGridRow grd, 1 End If grd.redraw = True Private Sub SetGridColumnWidth(grd As MSFlexGrid) Dim InnerLoopCount As Long Dim OuterLoopCount As Long Dim lnglongestlen As Long Dim slongeststring As String Dim lngcolwidth As Long Dim szcelltext As String For OuterLoopCount = 0 To grd.cols - 1 slongeststring = "" lnglongestlen = 0

137 195 For InnerLoopCount = 0 To grd.rows - 1 szcelltext = grd.textmatrix(innerloopcount, OuterLoopCount) If Len(szCellText) > lnglongestlen Then lnglongestlen = Len(szCellText) slongeststring = szcelltext End If Next lngcolwidth = grd.parent.textwidth(slongeststring) grd.colwidth(outerloopcount) = lngcolwidth Next 'untuk window menu Sub ResetWindowList(f As Form, Operation As String) Dim Counter As Integer Counter = FormMenu.mnuWindowList.lBound + 1 Do Until Counter > FormMenu.mnuWindowList.UBound If FormMenu.mnuWindowList(Counter).Caption = f.caption Then Select Case Operation

138 196 Case "add" FormMenu.mnuWindowList(Counter).Checked = True Case "remove" FormMenu.mnuWindowList(Counter).Checked = False End Select Exit Do End If Counter = Counter + 1 Loop Sub WindowListAddItem(f As Form) Dim NextWindowSlot As Integer NextWindowSlot = FormMenu.mnuWindowList.UBound + 1 With FormMenu Load.mnuWindowList(NextWindowSlot).mnuWindowList(NextWindowSlot).Visible = True.mnuWindowList(NextWindowSlot).Caption = f.caption.mnuwindowseparator.visible = True End With If FormMenu.mnuWindowList.Count >= 3 Then

139 197 FormMenu.mnuWindowArrange.Enabled = True FormMenu.mnuWindowCascade.Enabled = True FormMenu.mnuWindowTile.Enabled = True End If Sub WindowListRemoveItem(f As Form) Dim Counter As Integer Dim LastWindowSlot As Integer Counter = FormMenu.mnuWindowList.lBound + 1 LastWindowSlot = FormMenu.mnuWindowList.UBound Do Until Counter > LastWindowSlot With FormMenu If.mnuWindowList(Counter).Caption = f.caption Then Unload.mnuWindowList(Counter) Exit Do End If End With Counter = Counter + 1 Loop If FormMenu.mnuWindowList.Count < 3 Then

140 198 FormMenu.mnuWindowArrange.Enabled = False FormMenu.mnuWindowCascade.Enabled = False FormMenu.mnuWindowTile.Enabled = False End If Form Splash Option Explicit Private Const GWL_EXSTYLE = (-20) Private Const WS_EX_LAYERED = &H80000 Private Const LWA_ALPHA = &H2 Private Declare Function GetWindowLong Lib "user32" _ Alias "GetWindowLongA" (ByVal hwnd As Long, _ ByVal nindex As Long) As Long Private Declare Function SetWindowLong Lib "user32" _ Alias "SetWindowLongA" (ByVal hwnd As Long, _ ByVal nindex As Long, ByVal dwnewlong As Long) _ As Long Private Declare Function SetLayeredWindowAttributes Lib _ "user32" (ByVal hwnd As Long, ByVal crkey As Long, _ ByVal balpha As Byte, ByVal dwflags As Long) As Long

141 199 Public Function TranslucentForm(frm As Form, TranslucenceLevel As Byte) As Boolean SetWindowLong frm.hwnd, GWL_EXSTYLE, WS_EX_LAYERED SetLayeredWindowAttributes frm.hwnd, 0, TranslucenceLevel, LWA_ALPHA TranslucentForm = Err.LastDllError = 0 End Function Private Sub Form_Load() Timer2.Enabled = True TranslucentForm Me, 0 Private Sub ImageBg_Click()

142 200 Private Sub Timer1_Timer() Label2.Caption = Val(Label2.Caption) + 1 If Label2.Caption = 100 Then Timer1.Enabled = False FormLogin.Show Unload FormSplash End If Private Sub Timer2_Timer() Dim a a = 0 Do Until a = 255 TranslucentForm Me, Val(a) a = a Loop Timer2.Enabled = False Timer1.Enabled = True FormLogin Option Explicit Private Const GWL_EXSTYLE = (-20)

143 201 Private Const WS_EX_LAYERED = &H80000 Private Const LWA_ALPHA = &H2 Private Declare Function GetWindowLong Lib "user32" _ Alias "GetWindowLongA" (ByVal hwnd As Long, _ ByVal nindex As Long) As Long Private Declare Function SetWindowLong Lib "user32" _ Alias "SetWindowLongA" (ByVal hwnd As Long, _ ByVal nindex As Long, ByVal dwnewlong As Long) _ As Long Private Declare Function SetLayeredWindowAttributes Lib _ "user32" (ByVal hwnd As Long, ByVal crkey As Long, _ ByVal balpha As Byte, ByVal dwflags As Long) As Long Public Function TranslucentForm(frm As Form, TranslucenceLevel As Byte) As Boolean SetWindowLong frm.hwnd, GWL_EXSTYLE, WS_EX_LAYERED

144 202 SetLayeredWindowAttributes frm.hwnd, 0, TranslucenceLevel, LWA_ALPHA TranslucentForm = Err.LastDllError = 0 End Function Private Sub Command1_Click() If Text1.Text = "admin" And Text2.Text = "12345" Then FormMenu.Show Unload FormLogin ElseIf Text1.Text = "" Then MsgBox "Please enter your Username", vbcritical, "Info" Text1.SetFocus ElseIf Text2.Text = "" Then MsgBox "Please enter your Password", vbcritical, "Info" Text2.SetFocus Else MsgBox "Your ID Is not exist or Your Password is wrong", vbcritical, "Info" Text1.Text = "" Text2.Text = "" Text1.SetFocus End If

145 203 Private Sub Form_Load() Timer1.Enabled = True TranslucentForm Me, 0 Private Sub Timer1_Timer() Dim a a = 0 Do Until a = 255 TranslucentForm Me, Val(a) a = a Loop Timer1.Enabled = False FormMenu Sub SetMenuDefaults() Dim Counter As Integer Counter = 0

146 204 mnuwindowcascade.enabled = False mnuwindowtile.enabled = False mnuwindowarrange.enabled = False mnuwindowseparator.visible = False Do Until Counter = mnuwindowlist.count mnuwindowlist(counter).visible = False Counter = Counter + 1 Loop Private Sub MDIForm_Load() Call SetMenuDefaults Private Sub mnuaddbarang_click() FormAddBarang.Show Private Sub mnubarang_click() FormViewBarang.Show Private Sub mnuclosing_click()

147 205 Dim per As String per = GetSetting(App.EXEName, "Period", "Month") If per <> "December" Then MsgBox "Closing can only be done at the end of the year.", vbexclamation Else FormClosing.Show End If Private Sub mnucustomer_click() FormAddCustomer.Show Private Sub mnudaftar_click() FormViewDaftarPemesanan.Show Private Sub mnudivisi_click() FormAddDivisi.Show Private Sub mnuexit_click() End

148 206 Private Sub mnujenisbarang_click() FormAddJenisBarang.Show Private Sub mnumerkbarang_click() FormAddMerk.Show Private Sub mnunota_click() FormViewNotaTagihan.Show Private Sub mnuorder_click() FormViewOrder.Show Private Sub mnupegawai_click() FormAddPegawai.Show Private Sub mnupenjualan_click() FormPenjualan.Show

149 207 Private Sub mnuperiod_click() FormPeriod.Show Private Sub mnupersediaan_click() FormPersediaan.Show Private Sub mnusearchtrx_click() FormSearchTRX.Show Private Sub mnusjc_click() FormViewSJC.Show Private Sub mnusjo_click() FormViewSJO.Show Private Sub mnusupplier_click() FormAddSupplier.Show

150 208 Private Sub mnuwindowarrange_click() FormMenu.Arrange vbarrangeicons Private Sub mnuwindowcascade_click() FormMenu.Arrange vbcascade Private Sub mnuwindowlist_click(index As Integer) Dim f As Form For Each f In Forms If mnuwindowlist(index).caption = f.caption Then f.setfocus End If Next f Private Sub mnuwindowtile_click() FormMenu.Arrange vbtilehorizontal FormAddCustomer

151 209 Private Sub Command1_Click() Dim msg If Text1.Text = "" Then MsgBox "Please input Kode Customer", vbexclamation, "Information" Text1.SetFocus ElseIf Text2.Text = "" Then MsgBox "Please input Nama Customer", vbexclamation, "Information" Text2.SetFocus ElseIf Text3.Text = "" Then MsgBox "Please input Alamat Customer", vbexclamation, "Information" Text3.SetFocus ElseIf Text4.Text = "" Then MsgBox "Please input Telp Customer", vbexclamation, "Information" Text4.SetFocus ElseIf Text5.Text = "" Then MsgBox "Please input No Surat Jalan Customer", vbexclamation, "Information" Text5.SetFocus Else opencon openrs "select * from Surat_Jalan_Customer where No_Surat_Jalan_Customer = '" & Text5.Text & "'" If Not rs.eof Then

152 210 openrs "INSERT INTO Customer VALUES ('" & Text1.Text & "','" & Text2.Text & "','" & Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "')" MsgBox "New customer has been added.", vbinformation openrs "SELECT * FROM BARANG" rs.movelast lent = "1" & Right(rs(0), 4) Text1.Text = "C" & Right((Val(lent) + 1), 4) FormMenu.StatusBar1.SimpleText = "Add Customer" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" Text2.SetFocus Else MsgBox "No Surat Jalan Customer can not be found, would you like to add new?", vbexclamation + vbyesno If msg = vbyes Then FormAddSuratJalanCustomer.Show ElseIf msg = vbno Then Text5.SetFocus

153 211 End If End If End If Private Sub Command2_Click() Unload Me Private Sub Command3_Click() FormAddSuratJalanCustomer.Show Private Sub Form_GotFocus() FormMenu.StatusBar1.SimpleText = "Add Customer" Private Sub Form_Load() Dim lent opencon openrs "SELECT * FROM Customer" rs.movelast lent = "1" & Right(rs(0), 4)

154 212 Text1.Text = "J" & Right((Val(lent) + 1), 4) FormMenu.StatusBar1.SimpleText = "Add Customer" Private Sub Form_LostFocus() FormMenu.StatusBar1.SimpleText = "" Private Sub Text3_GotFocus() Command1.Default = False Private Sub Text3_LostFocus() Command1.Default = True Private Sub Text4_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case Is < 32 Case Asc("0") To Asc("9") Case Else KeyAscii = 0

155 213 Beep End Select Private Sub Text5_Change() If Text1.Text = "" Then Select Case KeyAscii Case Is < 32 Case Asc("s") Case Asc("S") Case Else KeyAscii = 0 Beep End Select ElseIf Text1.Text = "s" Or Text1.Text = "S" Then Select Case KeyAscii Case Is < 32 Case Asc("c") Case Asc("C") Case Else KeyAscii = 0 Beep End Select

156 214 Else Select Case KeyAscii Case Is < 32 Case Asc("0") To Asc("9") Case Else KeyAscii = 0 Beep End Select End If FormAddDivisi Private Sub Command1_Click() If Text1.Text = "" Then MsgBox "Please input Kode Divisi", vbexclamation, "Information" Text1.SetFocus ElseIf Text2.Text = "" Then MsgBox "Please input Nama Divisi", vbexclamation, "Information" Text2.SetFocus Else opencon openrs "INSERT INTO DIVISI VALUES ('" & Text1.Text & "','" & Text2.Text & "')" MsgBox "Divisi Added", vbinformation, "Divisi"

157 215 If Flag = 1 Then openrs "select * from Divisi" FormAddPegawai.Combo1.Clear For i = 1 To rs.recordcount FormAddPegawai.Combo1.AddItem rs(0) & " - " & rs(1) rs.movenext Next FormAddPegawai.Combo1.ListIndex = 0 End If openrs "SELECT * FROM Divisi" rs.movelast lent = "1" & Right(rs(0), 4) Text1.Text = "D" & Right((Val(lent) + 1), 4) Text2.Text = "" Text2.SetFocus End If Private Sub Command2_Click() Unload Me

158 216 Private Sub Form_Load() Dim lent opencon openrs "SELECT * FROM Divisi" rs.movelast lent = "1" & Right(rs(0), 4) Text1.Text = "D" & Right((Val(lent) + 1), 4) FormAddJenisBarang Private Sub Command1_Click() If Text1.Text = "" Then MsgBox "Please input Kode Jenis Barang", vbexclamation, "Information" Text1.SetFocus ElseIf Text2.Text = "" Then MsgBox "Please input Jenis Barang ", vbexclamation, "Information" Text2.SetFocus Else opencon

159 217 openrs "INSERT INTO JENIS_BARANG VALUES ('" & Text1.Text & "','" & Text2.Text & "')" MsgBox "Jenis Barang Added", vbinformation, "Jenis Barang" openrs "SELECT * FROM Jenis_Barang" rs.movelast lent = "1" & Right(rs(0), 4) Text1.Text = "J" & Right((Val(lent) + 1), 4) Text2.Text = "" Text2.SetFocus End If Private Sub Command2_Click() Unload Me Private Sub Form_Load() Dim lent opencon openrs "SELECT * FROM Jenis_Barang" rs.movelast

160 218 lent = "1" & Right(rs(0), 4) Text1.Text = "J" & Right((Val(lent) + 1), 4) FormAddMerk Private Sub Command1_Click() If Text1.Text = "" Then MsgBox "Please input Kode Merk", vbexclamation, "Information" Text1.SetFocus ElseIf Text2.Text = "" Then MsgBox "Please input Merk", vbexclamation, "Information" Text2.SetFocus Else opencon openrs "INSERT INTO MERK_BARANG VALUES ('" & Text1.Text & "','" & Text2.Text & "')" MsgBox "Merk Added", vbinformation, "Merk" openrs "SELECT * FROM MERK_BARANG" rs.movelast lent = "1" & Right(rs(0), 4) Text1.Text = "M" & Right((Val(lent) + 1), 4)

161 219 Text2.Text = "" Text2.SetFocus End If Private Sub Command2_Click() Unload Me Private Sub Form_Load() Dim lent opencon openrs "SELECT * FROM MERK_BARANG" rs.movelast lent = "1" & Right(rs(0), 4) Text1.Text = "M" & Right((Val(lent) + 1), 4) FormAddPegawai Private Sub Command1_Click() If Text1.Text = "" Then MsgBox "Please input Kode Pegawai", vbexclamation, "Information" Text1.SetFocus

162 220 ElseIf Combo1.Text = "" Then MsgBox "Please input Kode Divisi", vbexclamation, "Information" Text2.SetFocus ElseIf Text3.Text = "" Then MsgBox "Please input Nama Pegawai", vbexclamation, "Information" Text3.SetFocus ElseIf Text4.Text = "" Then MsgBox "Please input Alamat Pegawai", vbexclamation, "Information" Text4.SetFocus ElseIf Text5.Text = "" Then MsgBox "Please input Telp Pegawai", vbexclamation, "Information" Text5.SetFocus Else opencon openrs "INSERT INTO PEGAWAI VALUES ('" & Text1.Text & "','" & Left(Combo1.Text, 5) & "','" & Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "')" MsgBox "Pegawai Added", vbinformation, "Pegawai" openrs "SELECT * FROM Pegawai" rs.movelast lent = "1" & Right(rs(0), 4) Text1.Text = "P" & Right((Val(lent) + 1), 4)

163 221 Text3.Text = "" Text4.Text = "" Text5.Text = "" Combo1.SetFocus End If Private Sub Command2_Click() Unload Me Private Sub Command3_Click() FormAddDivisi.Show FormAddDivisi.Flag = 1 Private Sub Form_Load() Dim lent opencon openrs "select * from Divisi" For i = 1 To rs.recordcount

164 222 Combo1.AddItem rs(0) & " - " & rs(1) rs.movenext Next Combo1.ListIndex = 0 openrs "SELECT * FROM Pegawai" rs.movelast lent = "1" & Right(rs(0), 4) Text1.Text = "P" & Right((Val(lent) + 1), 4) Private Sub Form_Unload(Cancel As Integer) FormAddDivisi.Flag = 0 Private Sub Text5_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case Is < 32 Case Asc("0") To Asc("9") Case Else KeyAscii = 0 Beep

165 223 End Select FormAddS upplier Private Sub Command1_Click() If Text1.Text = "" Then MsgBox "Please input Kode Supplier", vbexclamation, "Information" Text1.SetFocus ElseIf Text2.Text = "" Then MsgBox "Please input Nama Supplier", vbexclamation, "Information" Text2.SetFocus ElseIf Text3.Text = "" Then MsgBox "Please input Alamat Supplier", vbexclamation, "Information" Text3.SetFocus ElseIf Text4.Text = "" Then MsgBox "Please input Telp Supplier", vbexclamation, "Information" Text4.SetFocus Else opencon openrs "INSERT INTO SUPPLIER VALUES ('" & Text1.Text & "','" & Text2.Text & "','" & Text3.Text & "','" & Text4.Text & "',)" MsgBox "Supplier Added", vbinformation, "Supplier" openrs "SELECT * FROM Supplier"

166 224 rs.movelast lent = "1" & Right(rs(0), 4) Text1.Text = "S" & Right((Val(lent) + 1), 4) Text2.Text = "" Text3.Text = "" Text4.Text = "" Text2.SetFocus End If Private Sub Command2_Click() Unload Me Private Sub Form_Load() Dim lent opencon openrs "SELECT * FROM Supplier" rs.movelast lent = "1" & Right(rs(0), 4) Text1.Text = "S" & Right((Val(lent) + 1), 4)

167 225 Private Sub Text4_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case Is < 32 Case Asc("0") To Asc("9") Case Else KeyAscii = 0 Beep End Select FormCek Private Sub Command1_Click() FormPersediaan.Show Unload Me Private Sub Command2_Click() Unload Me FormClosing Private Sub Command1_Click() Unload Me Private Sub Command2_Click()

168 226 CrystalReport1.ReportFileName = App.Path & "\ReportStok.rpt" CrystalReport1.Action = 1 Private Sub Command3_Click() CrystalReport1.ReportFileName = App.Path & "\ReportProfit.rpt" CrystalReport1.Action = 1 Private Sub Form_Load() Dim j As Integer Dim arr(1000) Dim i As Integer Dim k As Integer Dim hargabeli, hargajual, profit, totalprofit As Double Dim kode As String opencon openrs "SELECT * FROM Header_Barang INNER JOIN Detail_Barang ON Header_Barang.KdBarang = Detail_Barang.KdBarang" LoadRecordsetIntoGrid rs, MSSubData, 1, 1 openrs "SELECT * FROM Detail_Penjualan" For i = 0 To rs.recordcount - 1

169 227 Next arr(i) = rs(1) rs.movenext MSSubData2.Cols = 5 MSSubData2.Rows = 1 MSSubData2.TextMatrix(0, 0) = "Kode Barang" MSSubData2.TextMatrix(0, 1) = "Qty" MSSubData2.TextMatrix(0, 2) = "Harga Jual Barang" MSSubData2.TextMatrix(0, 3) = "Harga Beli Barang" MSSubData2.TextMatrix(0, 4) = "Profit" opencon openrs "SELECT * FROM Detail_Penjualan" For j = 1 To rs.recordcount - 1 opencon openrs "SELECT * FROM Detail_Penjualan" rs.movefirst rs.move j MSSubData2.Rows = MSSubData2.Rows + 1 MSSubData2.TextMatrix(MSSubData2.Rows - 1, 0) = rs(1) kode = rs(1) MSSubData2.TextMatrix(MSSubData2.Rows - 1, 1) = rs(3)

170 228 MSSubData2.TextMatrix(MSSubData2.Rows - 1, 2) = rs(4) hargajual = rs(4) opencon openrs "SELECT * FROM Header_Barang WHERE KdBarang = '" & kode & "'" hargabeli = rs(5) profit = Val(hargajual) - Val(hargabeli) MSSubData2.TextMatrix(MSSubData2.Rows - 1, 3) = hargabeli MSSubData2.TextMatrix(MSSubData2.Rows - 1, 4) = profit totalprofit = totalprofit + profit cn.close Next j SetGridColumnWidth MSSubData2 textotal.text = Format$(totalprofit, "Rp ###,###") Private Sub SetGridColumnWidth(grd As MSFlexGrid) Dim InnerLoopCount As Long Dim OuterLoopCount As Long

171 229 Dim lnglongestlen As Long Dim slongeststring As String Dim lngcolwidth As Long Dim szcelltext As String For OuterLoopCount = 0 To grd.cols - 1 slongeststring = "" lnglongestlen = 0 For InnerLoopCount = 0 To grd.rows - 1 szcelltext = grd.textmatrix(innerloopcount, OuterLoopCount) If Len(szCellText) > lnglongestlen Then lnglongestlen = Len(szCellText) slongeststring = szcelltext End If Next lngcolwidth = grd.parent.textwidth(slongeststring) grd.colwidth(outerloopcount) = lngcolwidth Next FormAddBarang Private Sub Command1_Click() Dim harga As Currency

172 230 If TextKodeBarang.Text = "" Then MsgBox "Please input Kode Barang", vbexclamation TextKodeBarang.SetFocus ElseIf ComboKodeSupplier.Text = "" Then MsgBox "Please input Supplier", vbexclamation ComboKodeSupplier.SetFocus ElseIf ComboKodeJenis.Text = "" Then MsgBox "Please input Supplier", vbexclamation ComboKodeJenis.SetFocus ElseIf ComboKodeMerk.Text = "" Then MsgBox "Please input Merk", vbexclamation ComboKodeMerk.SetFocus ElseIf TextNamaBarang.Text = "" Then MsgBox "Please input Nama Barang", vbexclamation TextNamaBarang.SetFocus ElseIf TextHarga.Text = "" Then MsgBox "Please input Harga", vbexclamation TextHarga.SetFocus ElseIf ComboUkuran.Text = "" Then MsgBox "Please input Ukuran", vbexclamation ComboUkuran.SetFocus ElseIf TextQty.Text = "" Then MsgBox "Please input Qty", vbexclamation TextQty.SetFocus

173 231 Else opencon harga = CCur(TextHarga.Text) openrs "INSERT INTO Header_Barang VALUES ('" & TextKodeBarang.Text & "','" & Left(ComboKodeSupplier, 5) & "','" & Left(ComboKodeJenis.Text, 5) & "','" & Left(ComboKodeMerk.Text, 5) & "','" & TextNamaBarang.Text & "'," & harga & ")" openrs "INSERT INTO Detail_Barang VALUES ('" & TextKodeBarang.Text & "','" & ComboUkuran.Text & "', '" & TextQty.Text & "')" MsgBox "Barang Added", vbinformation openrs "SELECT * FROM Header_Barang" rs.movelast lent = "1" & Right(rs(0), 4) TextKodeBarang.Text = "B" & Right((Val(lent) + 1), 4) TextNamaBarang.Text = "" TextHarga.Text = "" TextQty.Text = "" TextNamaBarang.SetFocus ComboKodeSupplier.ListIndex = 0 ComboKodeJenis.ListIndex = 0 ComboKodeMerk.ListIndex = 0

174 232 ComboUkuran.ListIndex = 0 End If Private Sub Command2_Click() Unload Me Private Sub Command3_Click() FormAddMerk.Show Private Sub Command4_Click() FormAddJenisBarang.Show Private Sub Command5_Click() FormAddSupplier.Show Private Sub Form_Load() Dim lent opencon

175 233 openrs "SELECT * FROM Header_Barang" rs.movelast lent = "1" & Right(rs(0), 4) TextKodeBarang.Text = "B" & Right((Val(lent) + 1), 4) openrs "select * from MERK_BARANG" For i = 1 To rs.recordcount ComboKodeMerk.AddItem rs(0) & " - " & rs(1) rs.movenext Next ComboKodeMerk.ListIndex = 0 openrs "select * from JENIS_BARANG" For i = 1 To rs.recordcount ComboKodeJenis.AddItem rs(0) & " - " & rs(1) rs.movenext Next ComboKodeJenis.ListIndex = 0 openrs "select * from Supplier" For i = 1 To rs.recordcount ComboKodeSupplier.AddItem rs(0) & " - " & rs(1) rs.movenext Next

176 234 ComboKodeSupplier.ListIndex = 0 ComboUkuran.ListIndex = 0 Private Sub TextHarga_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case Is < 32 Case Asc("0") To Asc("9") Case Else KeyAscii = 0 Beep End Select Private Sub TextQty_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case Is < 32 Case Asc("0") To Asc("9") Case Else KeyAscii = 0 Beep End Select

177 235 FormPenjualan Option Explicit Dim total As Variant Dim harga Dim subtotal Private Sub ComboKodeBarang_Click() opencon openrs "SELECT * FROM Header_Barang WHERE KdBarang = '" & Left(ComboKodeBarang.Text, 5) & "'" If ComboKodeBarang.Text = "" Then TextNamaBarang.Text = "" TextHarga.Text = 0 ElseIf rs.eof Then TextNamaBarang.Text = "Tidak Ditemukan" TextHarga.Text = 0 Else TextNamaBarang.Text = rs(4) harga = rs(5) TextHarga.Text = Format$(rs(5), "Rp ###,###") End If

178 236 Private Sub ComboKodeBarang_KeyPress(KeyAscii As Integer) If ComboKodeBarang.Text = "" Then Select Case KeyAscii Case Is < 32 Case Asc("b") Case Asc("B") Case Else KeyAscii = 0 Beep End Select Else Select Case KeyAscii Case Is < 32 Case Asc("0") To Asc("9") Case Else KeyAscii = 0 Beep End Select End If If KeyAscii = 13 Then opencon

179 237 openrs "SELECT * FROM Header_Barang WHERE KdBarang = '" & Left(ComboKodeBarang.Text, 5) & "'" If Not rs.eof Then TextNamaBarang.Text = rs(4) harga = rs(5) TextHarga.Text = Format$(harga, "Rp ###,###") Else TextNamaBarang.Text = "Tidak Ditemukan" End If End If Private Sub ComboKodeCustomer_Click() opencon openrs "SELECT * FROM Customer WHERE KdCustomer = '" & Left(ComboKodeCustomer.Text, 5) & "'" If ComboKodeCustomer.Text = "" Then TextNamaCustomer.Text = "" ElseIf rs.eof Then TextNamaCustomer.Text = "Tidak Ditemukan" Else TextNamaCustomer.Text = rs(1) End If

180 238 Private Sub ComboKodeCustomer_KeyPress(KeyAscii As Integer) If ComboKodeCustomer.Text = "" Then Select Case KeyAscii Case Is < 32 Case Asc("c") Case Asc("C") Case Else KeyAscii = 0 Beep End Select Else Select Case KeyAscii Case Is < 32 Case Asc("0") To Asc("9") Case Else KeyAscii = 0 Beep End Select End If If KeyAscii = 13 Then opencon

181 239 openrs "SELECT * FROM Customer WHERE KdCustomer = '" & Left(ComboKodeCustomer.Text, 5) & "'" If Not rs.eof Then TextNamaCustomer.Text = rs(1) Else TextNamaCustomer.Text = "Tidak Ditemukan" End If End If Private Sub ComboKodePegawai_Click() opencon openrs "SELECT * FROM PEGAWAI WHERE KdPegawai = '" & Left(ComboKodePegawai.Text, 5) & "'" If ComboKodePegawai.Text = "" Then TextNamaPegawai.Text = "" ElseIf rs.eof Then TextNamaPegawai.Text = "Tidak Ditemukan" Else TextNamaPegawai.Text = rs(2) End If Private Sub Command1_Click()

182 240 Dim msg, jumlahawal, jumlahakhir, i, ukuran Dim harga As Double Dim qty As Integer Dim sub_total As Double Dim kd_barang As String Dim nama_barang As String Dim per As String per = GetSetting(App.EXEName, "Period", "Month") If MonthName(Month(Format(TextTanggal.Text, "mm/dd/yyyy"))) <> per Then MsgBox "You can't do any Transaction at this date." & Chr(13) & _ "Because the period is not started or over" & Chr(13) & _ "Current period is : " & per, vbexclamation ElseIf ComboKodePegawai.Text = "" Then MsgBox "Please insert Kode Pegawai", vbexclamation ElseIf ComboKodeCustomer.Text = "" Then MsgBox "Please insert Kode Customer", vbexclamation Else msg = MsgBox("Are you sure want to sell this item(s)?", vbquestion + vbyesno) If msg = vbyes Then If MSSubData.Rows = 1 Then

183 241 MsgBox "Please insert item", vbexclamation ElseIf MSSubData.Rows = 2 And MSSubData.TextMatrix(1, 1) = "" Then MsgBox "Please insert item", vbexclamation Else opencon openrs "INSERT INTO Header_Penjualan VALUES ('" & TextNoFaktur.Text & "', '" & Left(ComboKodePegawai.Text, 5) & "', '" & Left(ComboKodeCustomer.Text, 5) & "', '" & Format$(TextTanggal.Text, "dd-mmm-yyyy") & "')" For i = 1 To (MSSubData.Rows - 1) kd_barang = MSSubData.TextMatrix(i, 1) harga = CCur(MSSubData.TextMatrix(i, 3)) qty = Val(MSSubData.TextMatrix(i, 4)) sub_total = MSSubData.TextMatrix(i, 5) openrs "SELECT * FROM Detail_Barang WHERE KdBarang = '" & kd_barang & "'" ukuran = rs(1) jumlahawal = rs(2) If Val(MSSubData.TextMatrix(i, 4)) > rs(2) Then MsgBox "There is not enough stock for item " & MSSubData.TextMatrix(i, 1) & Chr(13) & " in item list #" & MSSubData.TextMatrix(i, 0), vbcritical

184 242 Exit Sub ElseIf Val(rs(2)) = 0 Then MsgBox "There is no stock at all for item " & MSSubData.TextMatrix(i, 1) & Chr(13) & " in item list #" & MSSubData.TextMatrix(i, 0), vbcritical Exit Sub Else openrs "INSERT INTO Detail_Penjualan values ('" & TextNoFaktur.Text & "','" & kd_barang & "','" & ukuran & "', " & qty & "," & harga & ")" openrs "SELECT * FROM Detail_Barang WHERE KdBarang = '" & kd_barang & "'" jumlahawal = rs(2) jumlahakhir = Val(rs(2)) - qty LabelAkhir.Caption = jumlahakhir openrs "Update Detail_Barang Set Qty = '" & LabelAkhir.Caption & "' WHERE KdBarang = '" & kd_barang & "'" Command2.Enabled = True End If Next i MsgBox "Storage has been reduced", vbinformation FormCek.Show FormCek.Hide

185 243 FormCek.MSSubData.Clear opencon openrs "SELECT * FROM Detail_Barang" FormCek.MSSubData.Cols = 4 For i = 1 To rs.recordcount If rs(2) < 10 Then FormCek.MSSubData.TextMatrix(0, 0) = "KdBarang" FormCek.MSSubData.TextMatrix(0, 1) = "Ukuran" FormCek.MSSubData.TextMatrix(0, 2) = "Qty" FormCek.MSSubData.TextMatrix(0, 3) = "Status" FormCek.MSSubData.Rows + 1 FormCek.MSSubData.Rows = FormCek.MSSubData.TextMatrix(FormCek.MSSubData.Rows - 1, 0) = rs(0) FormCek.MSSubData.TextMatrix(FormCek.MSSubData.Rows - 1, 1) = rs(1) FormCek.MSSubData.TextMatrix(FormCek.MSSubData.Rows - 1, 2) = rs(2)

186 244 If rs(2) = 0 Then FormCek.MSSubData.TextMatrix(FormCek.MSSubData.Rows - 1, 3) = "EMPTY" Else FormCek.MSSubData.TextMatrix(FormCek.MSSubData.Rows - 1, 3) = "Please Order" End If SetGridColumnWidth FormCek.MSSubData Label5.Visible = True End If rs.movenext Next End If End If End If Private Sub Command2_Click() CrystalReport1.ReportFileName = App.Path & "\ReportPenjualan.rpt"

187 245 CrystalReport1.SelectionFormula = "{Detail_Penjualan.NoFakPenjualan} = '" & Left(TextNoFaktur.Text, 5) & "'" CrystalReport1.Action = 1 Private Sub Command3_Click() Dim i As Integer harga = harga * ((100 + Val(TextProf.Text)) / 100) If ComboKodeBarang.Text = "" Then MsgBox "Please insert Kode Barang", vbexclamation ElseIf TextQty.Text = "" Or (Val(TextQty.Text) * 1 = 0) Then MsgBox "Please insert quantity", vbexclamation Else Dim totalformatted For i = 1 To (MSSubData.Rows - 1) If Left(ComboKodeBarang.Text, 5) = MSSubData.TextMatrix(i, 1) Then MsgBox "You had ordered this item(s) a moment ago." & Chr(13) & Chr(13) & _ "Please order another item.", vbexclamation TextQty.Text = 0 TextSubTotal.Text = 0

188 246 TextHarga.Text = 0 ComboKodeBarang.Text = "" TextNamaBarang.Text = "" ComboKodeBarang.SetFocus Exit Sub End If Next i MSSubData.Cols = 6 MSSubData.Rows = MSSubData.Rows + 1 MSSubData.TextMatrix(MSSubData.Rows - 1, 0) = MSSubData.Rows - 1 MSSubData.TextMatrix(MSSubData.Rows - 1, 1) = Left(ComboKodeBarang.Text, 5) MSSubData.TextMatrix(MSSubData.Rows - 1, 2) = TextNamaBarang.Text MSSubData.TextMatrix(MSSubData.Rows - 1, 3) = harga MSSubData.TextMatrix(MSSubData.Rows - 1, 4) = TextQty.Text MSSubData.TextMatrix(MSSubData.Rows - 1, 5) = subtotal total = total + subtotal totalformatted = Format$(total, "Rp ###,###") TextTotal.Text = totalformatted

189 247 SetGridColumnWidth MSSubData TextQty.Text = 0 TextSubTotal.Text = 0 TextHarga.Text = 0 ComboKodeBarang.Text = "" TextNamaBarang.Text = "" ComboKodeBarang.SetFocus End If 'warna flexgrid WarnaFS MSSubData, RGB(244, 244, 244), RGB(255, 255, 255) Private Sub SetGridColumnWidth(grd As MSFlexGrid) Dim InnerLoopCount As Long Dim OuterLoopCount As Long Dim lnglongestlen As Long Dim slongeststring As String Dim lngcolwidth As Long Dim szcelltext As String

190 248 For OuterLoopCount = 0 To grd.cols - 1 slongeststring = "" lnglongestlen = 0 For InnerLoopCount = 0 To grd.rows - 1 szcelltext = grd.textmatrix(innerloopcount, OuterLoopCount) If Len(szCellText) > lnglongestlen Then lnglongestlen = Len(szCellText) slongeststring = szcelltext End If Next lngcolwidth = grd.parent.textwidth(slongeststring) grd.colwidth(outerloopcount) = lngcolwidth Next Private Sub Command4_Click() If MSSubData.Rows > 2 Then MSSubData.RemoveItem (MSSubData.Row) Else MSSubData.Clear MSSubData.Rows = 1

191 249 MSSubData.TextMatrix(0, 0) = "No" MSSubData.TextMatrix(0, 1) = "Kode Barang" MSSubData.TextMatrix(0, 2) = "Nama Barang" MSSubData.TextMatrix(0, 3) = "Harga Jual" MSSubData.TextMatrix(0, 4) = "Quantity" MSSubData.TextMatrix(0, 5) = "Sub Total" End If Private Sub Command5_Click() Unload Me Private Sub Form_Load() Dim lent As String Dim i As Integer total = 0 TextTanggal.Text = Format(Date, "dd-mmm-yyyy") TextQty.Text = 0 TextSubTotal.Text = 0 TextHarga.Text = 0 TextNamaPegawai.Text = "" TextNamaCustomer.Text = ""

192 250 TextNamaBarang.Text = "" TextProf.Text = 0 'isi no faktur opencon openrs "SELECT * FROM Header_Penjualan" If Not rs.eof Then rs.movelast lent = "1" & Right(rs(0), 4) TextNoFaktur.Text = "F" & Right((Val(lent) + 1), 4) ElseIf rs.eof Then TextNoFaktur.Text = "F0001" End If 'isi flexgrid MSSubData.Cols = 6 MSSubData.Rows = 1 MSSubData.TextMatrix(0, 0) = "No" MSSubData.TextMatrix(0, 1) = "Kode Barang" MSSubData.TextMatrix(0, 2) = "Nama Barang" MSSubData.TextMatrix(0, 3) = "Harga Jual" MSSubData.TextMatrix(0, 4) = "Quantity" MSSubData.TextMatrix(0, 5) = "Sub Total"

193 251 SetGridColumnWidth MSSubData 'combokodepegawai openrs "SELECT * FROM pegawai WHERE KdDivisi = 'D0003'" For i = 1 To rs.recordcount ComboKodePegawai.AddItem rs(0) & " - " & rs(2) rs.movenext Next i 'combokodecustomer openrs "SELECT * FROM Customer" For i = 1 To rs.recordcount ComboKodeCustomer.AddItem rs(0) & " - " & rs(1) rs.movenext Next i 'combokodebarang openrs "SELECT * FROM Header_Barang" For i = 1 To rs.recordcount ComboKodeBarang.AddItem rs(0) & " - " & rs(4) rs.movenext Next i 'cek persediaan

194 252 FormCek.Show FormCek.Hide FormCek.MSSubData.Clear opencon openrs "SELECT * FROM Detail_Barang" FormCek.MSSubData.Cols = 4 For i = 1 To rs.recordcount If rs(2) < 10 Then FormCek.MSSubData.TextMatrix(0, 0) = "KdBarang" FormCek.MSSubData.TextMatrix(0, 1) = "Ukuran" FormCek.MSSubData.TextMatrix(0, 2) = "Qty" FormCek.MSSubData.TextMatrix(0, 3) = "Status" FormCek.MSSubData.Rows = FormCek.MSSubData.Rows + 1 FormCek.MSSubData.TextMatrix(FormCek.MSSubData.Rows - 1, 0) = rs(0) FormCek.MSSubData.TextMatrix(FormCek.MSSubData.Rows - 1, 1) = rs(1) FormCek.MSSubData.TextMatrix(FormCek.MSSubData.Rows - 1, 2) = rs(2) If rs(2) = 0 Then

195 253 FormCek.MSSubData.TextMatrix(FormCek.MSSubData.Rows - 1, 3) = "EMPTY" Else FormCek.MSSubData.TextMatrix(FormCek.MSSubData.Rows - 1, 3) = "Please Order" End If SetGridColumnWidth FormCek.MSSubData Label5.Visible = True End If rs.movenext Next Public Sub WarnaFS(FS As MSFlexGrid, lcolor1 As Long, lcolor2 As Long) Dim lrow As Long, lcol As Long Dim lorgrow As Long, lorgcol As Long Dim lcolor As Long With FS.Redraw = False

196 254 lorgrow =.Row lorgcol =.Col For lrow =.FixedRows To.Rows - 1.Row = lrow If lrow / 2 = lrow \ 2 Then lcolor = lcolor1 Else lcolor = lcolor2 End If For lcol =.FixedCols To.Cols - 1.Col = lcol.cellbackcolor = lcolor Next lcol Next lrow.row = lorgrow.col = lorgcol.redraw = True End With

197 255 Private Sub Label5_Click() FormCek.Show FormCek.Left = (Screen.Width / 2) - (FormCek.Width / 2) FormCek.Top = (Screen.Height / 2) - (FormCek.Height / 2) Private Sub MSSubData_KeyUp(KeyCode As Integer, Shift As Integer) If KeyCode = vbkeydelete And MSSubData.Rows > 2 Then MSSubData.RemoveItem (MSSubData.Row) Else MSSubData.Clear MSSubData.Rows = 1 MSSubData.TextMatrix(0, 0) = "No" MSSubData.TextMatrix(0, 1) = "Kode Barang" MSSubData.TextMatrix(0, 2) = "Nama Barang" MSSubData.TextMatrix(0, 3) = "Harga" MSSubData.TextMatrix(0, 4) = "Quantity" MSSubData.TextMatrix(0, 5) = "Sub Total" End If Private Sub TextAdv_Change()

198 256 Private Sub TextAdv_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case Is < 32 Case Asc("0") To Asc("9") Case Else KeyAscii = 0 Beep End Select Private Sub textharga_change() If TextHarga.Text = "Barang tidak ditemukan" Then TextQty.Enabled = False TextSubTotal.Text = 0 Else TextQty.Enabled = True End If Private Sub ComboKodePegawai_KeyPress(KeyAscii As Integer) If ComboKodePegawai.Text = "" Then Select Case KeyAscii

199 257 Case Is < 32 Case Asc("p") Case Asc("P") Case Else KeyAscii = 0 Beep End Select Else Select Case KeyAscii Case Is < 32 Case Asc("0") To Asc("9") Case Else KeyAscii = 0 Beep End Select End If If KeyAscii = 13 Then opencon openrs "SELECT * FROM Pegawai WHERE KdDivisi = 'D0003' AND KdPegawai = '" & Left(ComboKodePegawai.Text, 5) & "'" If Not rs.eof Then TextNamaPegawai.Text = rs(2) Else

200 258 TextNamaPegawai.Text = "Tidak Ditemukan" End If End If Private Sub TextQty_Change() subtotal = Val(TextQty.Text) * harga TextSubTotal.Text = Format$(subtotal, "Rp ###,###") Private Sub TextQty_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case Is < 32 Case Asc("0") To Asc("9") Case Else KeyAscii = 0 Beep End Select Private Sub MSSubData_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)

201 259 Call SelectGridCell(MSSubData.Row) Private Sub SelectGridCell(GridRow As Integer) Dim i As Integer Dim j As Integer Dim NumRows As Integer Dim NumCols As Integer NumRows = MSSubData.Rows - 1 NumCols = MSSubData.Cols - 1 MSSubData.HighLight = flexhighlightnever For i = 1 To NumRows If i <> GridRow Then MSSubData.Row = i For j = 0 To NumCols MSSubData.Col = j If MSSubData.CellBackColor = vbhighlight Then MSSubData.CellBackColor = vbwindowbackground MSSubData.CellForeColor = vbwindowtext Else Exit For End If

202 260 Next j End If Next i MSSubData.Row = GridRow For i = 0 To NumCols MSSubData.Col = i MSSubData.CellBackColor = vbhighlight MSSubData.CellForeColor = vbhighlighttext Next i FormPeriod Private Sub Command1_Click() Dim msg, per msg = MsgBox("Are you sure want to save this setting?", vbyesno + vbquestion) If msg = vbyes Then Call SaveSetting(App.EXEName, "Period", "Month", FormPeriod.Combo1.Text) MsgBox "Setting saved", vbinformation per = GetSetting(App.EXEName, "Period", "Month") Label1.Caption = "Current Period : " & per End If

203 261 Private Sub Command2_Click() Unload Me Private Sub Form_Load() Dim per As String per = GetSetting(App.EXEName, "Period", "Month") Label1.Caption = "Current Period : " & per For i = 1 To 12 Combo1.AddItem MonthName(i) Next Combo1.ListIndex = 0 Combo1.Text = per FormPersediaan Option Explicit Dim total As Variant Dim harga

204 262 Dim subtotal Private Sub Combo1_Click() opencon openrs "SELECT * FROM Supplier WHERE KdSupplier = '" & Left(ComboKodeSupplier.Text, 5) & "'" If ComboKodeSupplier.Text = "" Then TextNamaSupplier.Text = "" ElseIf rs.eof Then TextNamaSupplier.Text = "Tidak Ditemukan" Else TextNamaSupplier.Text = rs(1) End If Private Sub Combo1_KeyPress(KeyAscii As Integer) If ComboKodeSupplier.Text = "" Then Select Case KeyAscii Case Is < 32 Case Asc("p") Case Asc("P") Case Else KeyAscii = 0

205 263 Beep End Select Else Select Case KeyAscii Case Is < 32 Case Asc("0") To Asc("9") Case Else KeyAscii = 0 Beep End Select End If If KeyAscii = 13 Then opencon openrs "SELECT * FROM Pegawai WHERE KdDivisi = 'D0003' AND KdPegawai = '" & Left(ComboKodePegawai.Text, 5) & "'" If Not rs.eof Then TextNamaPegawai.Text = rs(2) Else TextNamaPegawai.Text = "Tidak Ditemukan" End If End If

206 264 Private Sub ComboKodeBarang_Click() opencon openrs "SELECT * FROM Header_Barang WHERE KdBarang = '" & Left(ComboKodeBarang.Text, 5) & "'" If ComboKodeBarang.Text = "" Then TextNamaBarang.Text = "" TextHarga.Text = 0 ElseIf rs.eof Then TextNamaBarang.Text = "Tidak Ditemukan" TextHarga.Text = 0 Else TextNamaBarang.Text = rs(4) harga = rs(5) TextHarga.Text = Format$(harga, "Rp ###,###") End If Private Sub ComboKodeBarang_KeyPress(KeyAscii As Integer) If ComboKodeBarang.Text = "" Then Select Case KeyAscii Case Is < 32 Case Asc("b") Case Asc("B")

207 265 Case Else KeyAscii = 0 Beep End Select Else Select Case KeyAscii Case Is < 32 Case Asc("0") To Asc("9") Case Else KeyAscii = 0 Beep End Select End If If KeyAscii = 13 Then opencon openrs "SELECT * FROM Header_Barang WHERE KdBarang = '" & Left(ComboKodeBarang.Text, 5) & "'" If Not rs.eof Then TextNamaBarang.Text = rs(4) harga = rs(5) TextHarga.Text = Format$(harga, "Rp ###,###") Else TextNamaBarang.Text = "Tidak Ditemukan"

208 266 End If End If Private Sub ComboKodePegawai_Click() opencon openrs "SELECT * FROM PEGAWAI WHERE KdPegawai = '" & Left(ComboKodePegawai.Text, 5) & "'" If ComboKodePegawai.Text = "" Then TextNamaPegawai.Text = "" ElseIf rs.eof Then TextNamaPegawai.Text = "Tidak Ditemukan" Else TextNamaPegawai.Text = rs(2) End If Private Sub ComboKodePegawai_KeyPress(KeyAscii As Integer) If ComboKodePegawai.Text = "" Then Select Case KeyAscii Case Is < 32 Case Asc("p") Case Asc("P") Case Else

209 267 KeyAscii = 0 Beep End Select Else Select Case KeyAscii Case Is < 32 Case Asc("0") To Asc("9") Case Else KeyAscii = 0 Beep End Select End If If KeyAscii = 13 Then opencon openrs "SELECT * FROM Pegawai WHERE KdDivisi = 'D0003' AND KdPegawai = '" & Left(ComboKodePegawai.Text, 5) & "'" If Not rs.eof Then TextNamaPegawai.Text = rs(2) ComboKodePegawai.Text = rs(0) Else TextNamaPegawai.Text = "Tidak Ditemukan" End If End If

210 268 Private Sub ComboKodeSupplier_Click() Dim i As Integer opencon openrs "SELECT * FROM Supplier WHERE KdSupplier = '" & Left(ComboKodeSupplier.Text, 5) & "'" If ComboKodeSupplier.Text = "" Then TextNamaSupplier.Text = "" ElseIf rs.eof Then TextNamaSupplier.Text = "Tidak Ditemukan" Else TextNamaSupplier.Text = rs(1) ComboKodeBarang.Enabled = True 'combokodebarang openrs "SELECT * FROM Header_Barang WHERE KdSupplier = '" & Left(ComboKodeSupplier.Text, 5) & "'" For i = 1 To rs.recordcount ComboKodeBarang.AddItem rs(0) & " - " & rs(4) rs.movenext Next i End If

211 269 Private Sub ComboKodeSupplier_KeyPress(KeyAscii As Integer) If ComboKodeSupplier.Text = "" Then Select Case KeyAscii Case Is < 32 Case Asc("p") Case Asc("P") Case Else KeyAscii = 0 Beep End Select Else Select Case KeyAscii Case Is < 32 Case Asc("0") To Asc("9") Case Else KeyAscii = 0 Beep End Select End If If KeyAscii = 13 Then opencon

212 270 openrs "SELECT * FROM Supplier WHERE KdSupplier = '" & Left(ComboKodeSupplier.Text, 5) & "'" If Not rs.eof Then TextNamaSupplier.Text = rs(1) Else TextNamaSupplier.Text = "Tidak Ditemukan" End If End If Private Sub Command1_Click() CrystalReport1.ReportFileName = App.Path & "\reportpersediaan.rpt" CrystalReport1.SelectionFormula = "{Detail_Penerimaan_Barang.NoFakPenerimaanBrg} = '" & TextNoFaktur.Text & "'" CrystalReport1.Action = 1 Private Sub Command2_Click() Dim msg, jumlahawal, jumlahakhir, i, ukuran, lent Dim harga As Double Dim qty As Integer Dim sub_total As Double Dim kd_barang As String

213 271 Dim nama_barang As String Dim kodeorder As String Dim per As String opencon openrs "SELECT * FROM Header_Order" If Not rs.eof Then rs.movelast lent = "1" & Right(rs(0), 4) kodeorder = "O" & Right((Val(lent) + 1), 4) ElseIf rs.eof Then kodeorder = "O0001" End If per = GetSetting(App.EXEName, "Period", "Month") If MonthName(Month(Format(TextTanggal.Text, "mm/dd/yyyy"))) <> per Then MsgBox "You can't do any Transaction at this date." & Chr(13) & _ "Because the period is not started or over" & Chr(13) & _ "Current period is : " & per, vbexclamation

214 272 ElseIf ComboKodePegawai.Text = "" Then MsgBox "Please insert Kode Pegawai", vbexclamation ElseIf ComboKodeSupplier.Text = "" Then MsgBox "Please insert Kode Supplier", vbexclamation Else msg = MsgBox("Are you sure want to store this item(s)?", vbquestion + vbyesno) If msg = vbyes Then If MSSubData.Rows = 1 Then MsgBox "Please insert item", vbexclamation ElseIf MSSubData.Rows = 2 And MSSubData.TextMatrix(1, 1) = "" Then MsgBox "Please insert item", vbexclamation Else openrs "INSERT INTO Header_Order VALUES ('" & kodeorder & "', '" & Left(ComboKodeSupplier.Text, 5) & "', '" & Left(ComboKodePegawai.Text, 5) & "', '" & Format$(TextTanggal.Text, "dd-mmm-yyyy") & "')" openrs "INSERT INTO Header_Penerimaan_Barang VALUES ('" & TextNoFaktur.Text & "', '" & Left(ComboKodeSupplier.Text, 5) & "', '" & Left(ComboKodePegawai.Text, 5) & "', '" & Format$(TextTanggal.Text, "dd-mmm-yyyy") & "')" openrs "INSERT INTO Detail_Penerimaan_Barang VALUES ('" & TextNoFaktur.Text & "','" & kodeorder & "'," & total & ")"

215 273 For i = 1 To (MSSubData.Rows - 1) kd_barang = MSSubData.TextMatrix(i, 1) harga = CCur(MSSubData.TextMatrix(i, 3)) qty = Val(MSSubData.TextMatrix(i, 4)) sub_total = MSSubData.TextMatrix(i, 5) openrs "INSERT INTO Detail_Order values ('" & kodeorder & "','" & kd_barang & "','" & ukuran & "', " & qty & "," & harga & ")" openrs "SELECT * FROM Detail_Barang WHERE KdBarang = '" & kd_barang & "'" jumlahawal = rs(2) jumlahakhir = Val(rs(2)) + qty LabelAkhir.Caption = jumlahakhir openrs "Update Detail_Barang Set Qty = '" & LabelAkhir.Caption & "' WHERE KdBarang = '" & kd_barang & "'" Command1.Enabled = True Next i MsgBox "Storage has been added", vbinformation End If End If End If

216 274 Private Sub Command3_Click() Dim i As Integer If ComboKodeBarang.Text = "" Then MsgBox "Please insert Kode Barang", vbexclamation ElseIf TextQty.Text = "" Or (Val(TextQty.Text) * 1 = 0) Then MsgBox "Please insert quantity", vbexclamation Else Dim totalformatted For i = 1 To (MSSubData.Rows - 1) If Left(ComboKodeBarang.Text, 5) = MSSubData.TextMatrix(i, 1) Then MsgBox "You had ordered this item(s) a moment ago." & Chr(13) & Chr(13) & _ "Please order another item.", vbexclamation TextQty.Text = 0 TextSubTotal.Text = 0 TextHarga.Text = 0 ComboKodeBarang.Text = "" TextNamaBarang.Text = "" ComboKodeBarang.SetFocus Exit Sub End If Next i

217 275 MSSubData.Cols = 6 MSSubData.Rows = MSSubData.Rows + 1 MSSubData.TextMatrix(MSSubData.Rows - 1, 0) = MSSubData.Rows - 1 MSSubData.TextMatrix(MSSubData.Rows - 1, 1) = Left(ComboKodeBarang.Text, 5) MSSubData.TextMatrix(MSSubData.Rows - 1, 2) = TextNamaBarang.Text MSSubData.TextMatrix(MSSubData.Rows - 1, 3) = harga MSSubData.TextMatrix(MSSubData.Rows - 1, 4) = TextQty.Text MSSubData.TextMatrix(MSSubData.Rows - 1, 5) = subtotal total = total + subtotal totalformatted = Format$(total, "Rp ###,###") TextTotal.Text = totalformatted SetGridColumnWidth MSSubData TextQty.Text = 0 TextSubTotal.Text = 0 TextHarga.Text = 0 ComboKodeBarang.Text = ""

218 276 TextNamaBarang.Text = "" ComboKodeBarang.SetFocus End If 'warna flexgrid WarnaFS MSSubData, RGB(244, 244, 244), RGB(255, 255, 255) Private Sub Command4_Click() Unload Me Private Sub Command5_Click() If MSSubData.Rows > 2 Then MSSubData.RemoveItem (MSSubData.Row) Else MSSubData.Clear MSSubData.Rows = 1 MSSubData.TextMatrix(0, 0) = "No" MSSubData.TextMatrix(0, 1) = "Kode Barang" MSSubData.TextMatrix(0, 2) = "Nama Barang" MSSubData.TextMatrix(0, 3) = "Harga" MSSubData.TextMatrix(0, 4) = "Quantity"

219 277 MSSubData.TextMatrix(0, 5) = "Sub Total" End If Private Sub Form_Load() Dim lent Dim i As Integer total = 0 TextQty.Text = 0 TextSubTotal.Text = 0 TextNamaPegawai.Text = "" TextNamaSupplier.Text = "" TextNamaBarang.Text = "" TextHarga.Text = 0 TextTanggal.Text = Format(Date, "dd-mmm-yyyy") opencon openrs "SELECT * FROM Header_Penerimaan_Barang" If Not rs.eof Then rs.movelast lent = "1" & Right(rs(0), 3) TextNoFaktur.Text = "FP" & Right((Val(lent) + 1), 3)

220 278 ElseIf rs.eof Then TextNoFaktur.Text = "FP001" End If 'isi flexgrid MSSubData.Cols = 6 MSSubData.Rows = 1 MSSubData.TextMatrix(0, 0) = "No" MSSubData.TextMatrix(0, 1) = "Kode Barang" MSSubData.TextMatrix(0, 2) = "Nama Barang" MSSubData.TextMatrix(0, 3) = "Harga" MSSubData.TextMatrix(0, 4) = "Quantity" MSSubData.TextMatrix(0, 5) = "Sub Total" SetGridColumnWidth MSSubData 'combokodepegawai openrs "SELECT * FROM pegawai WHERE KdDivisi = 'D0003'" For i = 1 To rs.recordcount ComboKodePegawai.AddItem rs(0) & " - " & rs(2) rs.movenext Next i 'combokodesupplier

221 279 openrs "SELECT * FROM Supplier" For i = 1 To rs.recordcount ComboKodeSupplier.AddItem rs(0) & " - " & rs(1) rs.movenext Next i 'cek persediaan FormCek.Show FormCek.Hide FormCek.MSSubData.Clear opencon openrs "SELECT * FROM Detail_Barang" FormCek.MSSubData.Cols = 4 For i = 1 To rs.recordcount If rs(2) < 10 Then FormCek.MSSubData.TextMatrix(0, 0) = "KdBarang" FormCek.MSSubData.TextMatrix(0, 1) = "Ukuran" FormCek.MSSubData.TextMatrix(0, 2) = "Qty" FormCek.MSSubData.TextMatrix(0, 3) = "Status" FormCek.MSSubData.Rows = FormCek.MSSubData.Rows + 1

222 280 FormCek.MSSubData.TextMatrix(FormCek.MSSubData.Rows - 1, 0) = rs(0) FormCek.MSSubData.TextMatrix(FormCek.MSSubData.Rows - 1, 1) = rs(1) FormCek.MSSubData.TextMatrix(FormCek.MSSubData.Rows - 1, 2) = rs(2) If rs(2) = 0 Then FormCek.MSSubData.TextMatrix(FormCek.MSSubData.Rows - 1, 3) = "EMPTY" Else FormCek.MSSubData.TextMatrix(FormCek.MSSubData.Rows - 1, 3) = "Please Order" End If SetGridColumnWidth FormCek.MSSubData Label5.Visible = True End If rs.movenext Next Private Sub Label5_Click()

223 281 FormCek.Show FormCek.Left = (Screen.Width / 2) - (FormCek.Width / 2) FormCek.Top = (Screen.Height / 2) - (FormCek.Height / 2) Private Sub MSSubData_KeyUp(KeyCode As Integer, Shift As Integer) If KeyCode = vbkeydelete And MSSubData.Rows > 2 Then MSSubData.RemoveItem (MSSubData.Row) Else MSSubData.Clear MSSubData.Rows = 1 MSSubData.TextMatrix(0, 0) = "No" MSSubData.TextMatrix(0, 1) = "Kode Barang" MSSubData.TextMatrix(0, 2) = "Nama Barang" MSSubData.TextMatrix(0, 3) = "Harga" MSSubData.TextMatrix(0, 4) = "Quantity" MSSubData.TextMatrix(0, 5) = "Sub Total" End If Private Sub MSSubData_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Call SelectGridCell(MSSubData.Row)

224 282 Private Sub TextQty_Change() subtotal = Val(TextQty.Text) * harga TextSubTotal.Text = Format$(subtotal, "Rp ###,###") Private Sub TextQty_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case Is < 32 Case Asc("0") To Asc("9") Case Else KeyAscii = 0 Beep End Select Public Sub WarnaFS(FS As MSFlexGrid, lcolor1 As Long, lcolor2 As Long) Dim lrow As Long, lcol As Long Dim lorgrow As Long, lorgcol As Long Dim lcolor As Long With FS.Redraw = False

225 283 lorgrow =.Row lorgcol =.Col For lrow =.FixedRows To.Rows - 1.Row = lrow If lrow / 2 = lrow \ 2 Then lcolor = lcolor1 Else lcolor = lcolor2 End If For lcol =.FixedCols To.Cols - 1.Col = lcol.cellbackcolor = lcolor Next lcol Next lrow.row = lorgrow.col = lorgcol.redraw = True End With

226 284 Private Sub SetGridColumnWidth(grd As MSFlexGrid) Dim InnerLoopCount As Long Dim OuterLoopCount As Long Dim lnglongestlen As Long Dim slongeststring As String Dim lngcolwidth As Long Dim szcelltext As String For OuterLoopCount = 0 To grd.cols - 1 slongeststring = "" lnglongestlen = 0 For InnerLoopCount = 0 To grd.rows - 1 szcelltext = grd.textmatrix(innerloopcount, OuterLoopCount) If Len(szCellText) > lnglongestlen Then lnglongestlen = Len(szCellText) slongeststring = szcelltext End If Next lngcolwidth = grd.parent.textwidth(slongeststring) grd.colwidth(outerloopcount) = lngcolwidth + 300

227 285 Next Private Sub SelectGridCell(GridRow As Integer) Dim i As Integer Dim j As Integer Dim NumRows As Integer Dim NumCols As Integer NumRows = MSSubData.Rows - 1 NumCols = MSSubData.Cols - 1 MSSubData.HighLight = flexhighlightnever For i = 1 To NumRows If i <> GridRow Then MSSubData.Row = i For j = 0 To NumCols MSSubData.Col = j If MSSubData.CellBackColor = vbhighlight Then MSSubData.CellBackColor = vbwindowbackground MSSubData.CellForeColor = vbwindowtext Else Exit For

228 286 End If Next j End If Next i MSSubData.Row = GridRow For i = 0 To NumCols MSSubData.Col = i MSSubData.CellBackColor = vbhighlight MSSubData.CellForeColor = vbhighlighttext Next i FormSearchTRX Private Sub Combo1_Click() If Combo1.Text = "Penjualan" Then opencon openrs "select * from Header_Penjualan" Combo8.Clear For m = 1 To rs.recordcount

229 287 Combo8.AddItem rs(0) rs.movenext Next m Combo8.ListIndex = 0 Else opencon openrs "select * from Header_Penerimaan_Barang" Combo8.Clear For m = 1 To rs.recordcount Combo8.AddItem rs(0) rs.movenext Next m Combo8.ListIndex = 0 End If Private Sub Command1_Click() Dim tgl, formattedtgl As Date Dim i, j As Integer Dim harga, total Dim arr(1000) j = 0 harga = 0

230 288 opencon If Combo1.Text = "Penjualan" Then If Option3.Value = True Then openrs "SELECT * FROM Detail_Penjualan WHERE NoFakPenjualan = '" & Combo8.Text & "'" LoadRecordsetIntoGrid rs, MSSubData, 1, 1 openrs "SELECT SUM(HargaJual) as TotalHarga FROM Detail_Penjualan WHERE NoFakPenjualan = '" & Combo8.Text & "'" TextTotal.Text = Format$(rs(0), "Rp ###,###") SetGridColumnWidth MSSubData ElseIf Option2.Value = True Then total = 0 tgl = Combo11.Text & "-" & Left(Combo6.Text, 3) & "-" & Combo7.Text formattedtgl = Format(tgl, "m/d/yyyy") openrs "SELECT * FROM Header_Penjualan WHERE Tanggal = '" & formattedtgl & "'" For i = 0 To rs.recordcount - 1 arr(i) = rs(0)

231 289 rs.movenext Next i MSSubData.Rows = 1 MSSubData.TextMatrix(0, 0) = "No Faktur Penjualan" MSSubData.TextMatrix(0, 1) = "Kode Barang" MSSubData.TextMatrix(0, 2) = "Ukuran" MSSubData.TextMatrix(0, 3) = "Qty" MSSubData.TextMatrix(0, 4) = "Harga" openrs "SELECT * FROM Header_Penjualan WHERE Tanggal = '" & formattedtgl & "'" For j = 0 To rs.recordcount openrs "SELECT * FROM Detail_Penjualan WHERE NoFakPenjualan = '" & arr(j) & "'" For k = 1 To rs.recordcount MSSubData.Cols = 5 MSSubData.Rows = MSSubData.Rows + 1 MSSubData.TextMatrix(MSSubData.Rows - 1, 0) = rs(0) MSSubData.TextMatrix(MSSubData.Rows - 1, 1) = rs(1) MSSubData.TextMatrix(MSSubData.Rows - 1, 2) = rs(2) MSSubData.TextMatrix(MSSubData.Rows - 1, 3) = rs(3) MSSubData.TextMatrix(MSSubData.Rows - 1, 4) = rs(4) total = total + Val(rs(4)) rs.movenext

232 290 Next k Next j SetGridColumnWidth MSSubData TextTotal.Text = Format$(total, "Rp ###,###") End If Else If Option3.Value = True Then openrs "SELECT * FROM Detail_Penerimaan_Barang WHERE NoFakPenerimaanBrg = '" & Combo8.Text & "'" LoadRecordsetIntoGrid rs, MSSubData, 1, 1 openrs "SELECT SUM(HargaBeli) as TotalHarga FROM Detail_Penerimaan_Barang WHERE NoFakPenerimaanBrg = '" & Combo8.Text & "'" TextTotal.Text = Format$(rs(0), "Rp ###,###") SetGridColumnWidth MSSubData ElseIf Option2.Value = True Then tgl = Combo11.Text & "-" & Left(Combo6.Text, 3) & "-" & Combo7.Text formattedtgl = Format(tgl, "m/d/yyyy") total = 0

233 291 openrs "SELECT * FROM Header_Penerimaan_Barang WHERE Tanggal = '" & formattedtgl & "'" For i = 0 To rs.recordcount - 1 arr(i) = rs(0) rs.movenext Next i MSSubData.Cols = 3 MSSubData.Rows = 1 MSSubData.TextMatrix(0, 0) = "No Faktur Penerimaan Brg" MSSubData.TextMatrix(0, 1) = "No Order" MSSubData.TextMatrix(0, 2) = "Harga Beli Barang" openrs "SELECT * FROM Header_Penerimaan_Barang WHERE Tanggal = '" & formattedtgl & "'" For j = 0 To rs.recordcount openrs "SELECT * FROM Detail_Penerimaan_Barang WHERE NoFakPenerimaanBrg = '" & arr(j) & "'" For k = 1 To rs.recordcount MSSubData.Cols = 3 MSSubData.Rows = MSSubData.Rows + 1 MSSubData.TextMatrix(MSSubData.Rows - 1, 0) = rs(0) MSSubData.TextMatrix(MSSubData.Rows - 1, 1) = rs(1)

234 292 MSSubData.TextMatrix(MSSubData.Rows - 1, 2) = rs(2) total = total + Val(rs(2)) rs.movenext Next k Next j SetGridColumnWidth MSSubData TextTotal.Text = Format$(total, "Rp ###,###") End If End If Private Sub Form_Load() Dim i, j, jk, jkl As Integer Combo1.ListIndex = 0 For i = 1 To 12 Combo6.AddItem MonthName(i) Next Combo6.Text = MonthName(Month(Date)) For i = 0 To 59 Combo7.AddItem Val(i)

235 293 Next Combo7.Text = Year(Date) If Combo6.Text = "January" Or Combo6.Text = "March" Or Combo6.Text = "May" Or Combo6.Text = "July" Or Combo6.Text = "August" Or Combo6.Text = "October" Or Combo6.Text = "December" Then jkl = 31 ElseIf Combo6.Text = "April" Or Combo6.Text = "June" Or Combo6.Text = "September" Or Combo6.Text = "November" Then jkl = 30 ElseIf Combo6.Text = "February" And (Val(Combo7.Text) Mod 4 = 0) Then jkl = 29 ElseIf Combo6.Text = "February" And (Val(Combo7.Text) Mod 4 <> 0) Then jkl = 28 End If Combo11.Clear For i = 1 To jkl Combo11.AddItem i Next i Combo11.ListIndex = Day(Date) - 1

236 294 opencon openrs "select * from Header_Penjualan" Combo8.Clear For m = 1 To rs.recordcount Combo8.AddItem rs(0) rs.movenext Next m Combo8.ListIndex = 0 Combo11.Enabled = False Combo6.Enabled = False Combo7.Enabled = False Combo8.Enabled = False Private Sub Option2_Click() Combo11.Enabled = True Combo6.Enabled = True Combo7.Enabled = True Combo8.Enabled = False

237 295 Private Sub Option3_Click() Combo11.Enabled = False Combo6.Enabled = False Combo7.Enabled = False Combo8.Enabled = True Private Sub combo9_change() Dim longm, shortm, vshortm, kabvshortm, kabisat As Integer longm = 0 shortm = 0 vshortm = 0 kabvshortm = 0 If Val(Combo3.Text) Mod 4 = 0 Then kabvshortm = 1 Else kabvshotm = 0 End If

238 296 If Combo9.Text = "" Then Combo9.SetFocus ElseIf Combo9.Text > 31 Then If Combo2.Text = "January" Or Combo2.Text = "March" Or Combo2.Text = "May" Or Combo2.Text = "July" Or Combo2.Text = "August" Or Combo2.Text = "October" Or Combo2.Text = "December" Then Combo9.Text = 31 ElseIf Combo2.Text = "April" Or Combo2.Text = "June" Or Combo2.Text = "September" Or Combo2.Text = "November" Then Combo9.Text = 30 ElseIf Combo2.Text = "February" And kabvshortm = 1 Then Combo9.Text = 29 ElseIf Combo2.Text = "February" And kabvshortm = 0 Then Combo9.Text = 28 End If End If Private Sub SetGridColumnWidth(grd As MSFlexGrid) Dim InnerLoopCount As Long

239 297 Dim OuterLoopCount As Long Dim lnglongestlen As Long Dim slongeststring As String Dim lngcolwidth As Long Dim szcelltext As String For OuterLoopCount = 0 To grd.cols - 1 slongeststring = "" lnglongestlen = 0 For InnerLoopCount = 0 To grd.rows - 1 szcelltext = grd.textmatrix(innerloopcount, OuterLoopCount) If Len(szCellText) > lnglongestlen Then lnglongestlen = Len(szCellText) slongeststring = szcelltext End If Next lngcolwidth = grd.parent.textwidth(slongeststring) grd.colwidth(outerloopcount) = lngcolwidth Next

240 298 Private Sub SelectGridCell(GridRow As Integer) Dim i As Integer Dim j As Integer Dim NumRows As Integer Dim NumCols As Integer NumRows = MSSubData.Rows - 1 NumCols = MSSubData.Cols - 1 MSSubData.HighLight = flexhighlightnever For i = 1 To NumRows If i <> GridRow Then MSSubData.Row = i For j = 0 To NumCols MSSubData.Col = j If MSSubData.CellBackColor = vbhighlight Then MSSubData.CellBackColor = vbwindowbackground MSSubData.CellForeColor = vbwindowtext Else Exit For End If Next j End If Next i

241 299 MSSubData.Row = GridRow For i = 0 To NumCols MSSubData.Col = i MSSubData.CellBackColor = vbhighlight MSSubData.CellForeColor = vbhighlighttext Next i FormViewBarang Private Sub Command1_Click() Unload Me Private Sub Command2_Click() Dim msg, temp, nilai If KeyCode = vbkeydelete And MSSubData.Rows > 2 Then msg = MsgBox("Are you sure want to delete this row?", vbexcalamation + vbyesno) If msg = vbyes Then temp = MSSubData.Row rs.movefirst

242 300 rs.move temp - 1 nilai = rs(0) MSSubData.RemoveItem (MSSubData.Row) openrs "delete from Detail_Barang where Kd_Detail_Barang = '" & nilai & "'" End If End If Private Sub Form_Load() opencon openrs "select * from Detail_Barang" LoadRecordsetIntoGrid rs, MSSubData, 1, 1 WarnaFS MSSubData, RGB(244, 244, 244), RGB(255, 255, 255) Private Sub MSSubData_KeyUp(KeyCode As Integer, Shift As Integer) Dim msg, temp, nilai If KeyCode = vbkeydelete And MSSubData.Rows > 2 Then msg = MsgBox("Are you sure want to delete this row?", vbexcalamation + vbyesno) If msg = vbyes Then temp = MSSubData.Row

243 301 rs.movefirst rs.move temp - 1 nilai = rs(0) MSSubData.RemoveItem (MSSubData.Row) openrs "delete from Detail_Barang where Kd_Detail_Barang = '" & nilai & "'" End If End If Private Sub MSSubData_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Call SelectGridCell(MSSubData.Row) Private Sub SelectGridCell(GridRow As Integer) Dim i As Integer Dim j As Integer Dim NumRows As Integer Dim NumCols As Integer NumRows = MSSubData.Rows - 1 NumCols = MSSubData.Cols - 1 MSSubData.HighLight = flexhighlightnever

244 302 For i = 1 To NumRows If i <> GridRow Then MSSubData.Row = i For j = 0 To NumCols MSSubData.Col = j If MSSubData.CellBackColor = vbhighlight Then MSSubData.CellBackColor = vbwindowbackground MSSubData.CellForeColor = vbwindowtext Else Exit For End If Next j End If Next i MSSubData.Row = GridRow For i = 0 To NumCols MSSubData.Col = i MSSubData.CellBackColor = vbhighlight MSSubData.CellForeColor = vbhighlighttext Next i

245 303 Public Sub WarnaFS(FS As MSFlexGrid, lcolor1 As Long, lcolor2 As Long) Dim lrow As Long, lcol As Long Dim lorgrow As Long, lorgcol As Long Dim lcolor As Long With FS.Redraw = False lorgrow =.Row lorgcol =.Col For lrow =.FixedRows To.Rows - 1.Row = lrow If lrow / 2 = lrow \ 2 Then lcolor = lcolor1 Else lcolor = lcolor2 End If For lcol =.FixedCols To.Cols - 1.Col = lcol.cellbackcolor = lcolor

246 304 Next lcol Next lrow.row = lorgrow.col = lorgcol.redraw = True End With FormViewDaftarPemesanan Private Sub Command1_Click() Unload Me Private Sub Form_Load() opencon openrs "select * from header_daftar_pemesanan JOIN Detail_Daftar_Pemesanan ON header_daftar_pemesanan.nodaftpemesanan = Detail_Daftar_Pemesanan.NoDaftPemesanan" LoadRecordsetIntoGrid rs, MSSubData, 1, 1 FormViewNotaTagihan

247 305 Private Sub Command1_Click() Unload Me Private Sub Form_Load() opencon openrs "select * from Header_nota_tagihan JOIN Detail_Nota_Tagihan On Header_nota_tagihan.NoNotaTagihan = Detail_Nota_Tagihan.NoNotaTagihan" LoadRecordsetIntoGrid rs, MSSubData, 1, 1 FormViewOrder Private Sub Command1_Click() Unload Me Private Sub Form_Load() opencon openrs "select * from Header_Order JOIN Detail_Order ON Header_Order.NoOrder = Detail_Order.NoOrder" LoadRecordsetIntoGrid rs, MSSubData, 1, 1

248 306 FormViewS JC Private Sub Command1_Click() Unload Me Private Sub Form_Load() opencon openrs "select * from Header_Surat_Jalan_Customer JOIN Detail_Surat_Jalan_Customer ON Header_Surat_Jalan_Customer.NoSrtJlnCust = Detail_Surat_Jalan_Customer.NoSrtJlnCust" LoadRecordsetIntoGrid rs, MSSubData, 1, 1 FormViewSJO Private Sub Command1_Click() Unload Me Private Sub Form_Load() opencon

249 307 openrs "select * from Header_Surat_Jalan_Order JOIN Detail_Surat_Jalan_Order ON Header_Surat_Jalan_Order.NoSrtJlnOrder = Detail_Surat_Jalan_Order.NoSrtJlnOrder" LoadRecordsetIntoGrid rs, MSSubData, 1, 1 Query SQL create table Jenis_Barang ( KdJnsBrg char (5)primary key not null, JnsBrg varchar(15)not null, constraint a1 check (len(kdjnsbrg) = 5), constraint a2 check (kdjnsbrg like 'J[0-9][0-9][0-9][0-9]') ) create table Merk_Barang ( KdMerkBrg char (5) primary key not null, MerkBrg varchar (15)not null, constraint b1 check (len(kdmerkbrg) = 5), constraint b2 check (kdmerkbrg like 'M[0-9][0-9][0-9][0-9]') ) create table Divisi(

250 308 KdDivisi char (5) primary key not null, NamaDivisi varchar (30)not null, constraint c1 check (len(kddivisi) = 5), constraint c2 check (KdDivisi like 'D[0-9][0-9][0-9][0-9]') ) create table Supplier( KdSupplier char (5) primary key not null, NamaSupplier varchar (30)not null, AlamatSupplier varchar (100)not null, TelpSupplier varchar (30)not null, constraint d1 check (len(kdsupplier) = 5), constraint d2 check (KdSupplier like 'S[0-9][0-9][0-9][0-9]') ) create table Customer ( KdCustomer char (5) primary key not null, NamaCustomer varchar (30) not null, AlamatCustomer varchar (100)not null, TelpCustomer varchar (30)not null, constraint e1 check (len(kdcustomer) = 5), constraint e2 check (KdCustomer like 'C[0-9][0-9][0-9][0-9]') ) create table Pegawai( KdPegawai char (5) primary key not null,

251 309 KdDivisi char(5)not null, NamaPegawai varchar (30)not null, AlamatPegawai varchar (100)not null, TelpPegawai varchar (30)not null, constraint f1 check (len(kdpegawai) = 5), constraint f2 check (KdPegawai like 'P[0-9][0-9][0-9][0-9]'), foreign key (KdDivisi)references Divisi on update cascade on delete no action ) create table Header_Barang ( KdBarang char (5)primary key not null, KdSupplier char (5), KdJnsBrg char (5)not null, KdMerkBrg char (5)not null, NamaBarang varchar (20)not null, HargaBarang money not null, foreign key (KdSupplier)references Supplier on update cascade on delete no action, foreign key (KdJnsBrg)references Jenis_Barang on update cascade on delete no action, foreign key (KdMerkBrg)references Merk_Barang on update cascade on delete no action,

252 310 constraint g1 check (len(kdbarang) = 5), constraint g2 check (KdBarang like 'B[0-9][0-9][0-9][0-9]') ) Create table Detail_Barang ( KdBarang char (5)not null, Ukuran varchar(5)not null, Qty integer not null, primary key (kdbarang), foreign key (KdBarang)references Header_Barang on update cascade on delete no action ) create table Header_Order( NoOrder char (5)Primary key not null, KdSupplier char (5), KdPegawai char (5), Tanggal datetime, constraint h1 check (len(noorder) = 5), constraint h2 check (NoOrder like 'O[0-9][0-9][0-9][0-9]'), foreign key (KdSupplier)references Supplier on update cascade on delete no action, foreign key (KdPegawai)references Pegawai on update cascade on delete no action

253 311 ) create table Detail_Order ( NoOrder char (5), KdBarang char (5), Ukuran varchar (5), Qty integer, HargaBeli money, primary key (KdBarang,NoOrder), foreign key (KdBarang)references Header_Barang on update cascade on delete no action, foreign key (NoOrder)references Header_Order on update no action on delete no action, ) create table Header_Penerimaan_Barang( NoFakPenerimaanBrg char (5)primary key not null, KdSupplier char(5), KdPegawai char (5), Tanggal datetime, constraint i1 check (len(nofakpenerimaanbrg) = 5), constraint i2 check (NoFakPenerimaanBrg like 'FP[0-9][0-9][0-9]'), foreign key (KdSupplier)references Supplier on update cascade on delete no action, foreign key (KdPegawai)references Pegawai

254 312 on update cascade on delete no action ) create table Detail_Penerimaan_Barang( NoFakPenerimaanBrg char(5), NoOrder char (5), HargaBeli money, primary key(nofakpenerimaanbrg,noorder), foreign key (NoFakPenerimaanBrg)references Header_Penerimaan_Barang on update cascade on delete no action, foreign key (NoOrder)references Header_Order on update no action on delete no action ) create table Header_Penjualan( NoFakPenjualan char (5) primary key not null, KdPegawai char (5), KdCustomer char (5), Tanggal datetime, constraint j1 check (len(nofakpenjualan) = 5), constraint j2 check (NoFakPenjualan like 'F[0-9][0-9][0-9][0-9]'), foreign key (KdCustomer)references Customer on update cascade on delete no action, foreign key (KdPegawai)references Pegawai on update cascade on delete no action

255 313 ) create table Detail_Penjualan ( NoFakPenjualan char (5), KdBarang char (5), Ukuran varchar (5), Qty integer, HargaJual money, primary key (NoFakPenjualan,KdBarang), foreign key (KdBarang)references Header_Barang on update cascade on delete no action, foreign key (NoFakPenjualan)references Header_Penjualan on update cascade on delete no action ) create table Header_Daftar_Pemesanan( NoDaftPemesanan char(5) primary key not null, KdCustomer char (5), KdPegawai char(5), StatusPemesanan char (10), tanggal datetime, constraint k1 check (len(nodaftpemesanan) = 5), constraint k2 check (NoDaftPemesanan like 'DP[0-9][0-9][0-9]'), foreign key (KdCustomer)references Customer on update cascade on delete no action, foreign key (KdPegawai)references Pegawai

256 314 on update cascade on delete no action ) create table Detail_Daftar_Pemesanan ( NoDaftPemesanan char(5), KdBarang char(5), Ukuran varchar(5), Qty integer, HargaJual money, primary key(nodaftpemesanan, KdBarang), foreign key (NoDaftPemesanan)references Header_Daftar_Pemesanan on update cascade on delete no action, foreign key (KdBarang)references Header_Barang on update cascade on delete no action ) create table Header_Nota_Tagihan ( NoNotaTagihan char (5)primary key not null, KdCustomer char (5), KdPegawai char (5), Tanggal datetime, constraint l1 check (len(nonotatagihan) = 5), constraint l2 check (NoNotaTagihan like 'NT[0-9][0-9][0-9]'), foreign key (KdCustomer)references Customer on update cascade on delete no action, foreign key (KdPegawai)references Pegawai

257 315 on update cascade on delete no action ) create table Detail_Nota_Tagihan ( NoNotaTagihan char (5), NoDaftPemesanan char (5), HargaJual money, primary key (NoNotaTagihan,NoDaftPemesanan), foreign key (NoNotaTagihan)references Header_Nota_Tagihan on update no action on delete no action, foreign key (NoDaftPemesanan)references Header_Daftar_Pemesanan on update cascade on delete no action ) create table Header_Surat_Jalan_Order ( NoSrtJlnOrder char(5)primary key not null, KdSupplier char(5), KdPegawai char(5), Tanggal datetime, constraint m1 check (len(nosrtjlnorder) = 5), constraint m2 check (NoSrtJlnOrder like 'SO[0-9][0-9][0-9]'), foreign key (KdSupplier)references Supplier on update cascade on delete no action, foreign key (KdPegawai)references Pegawai on update cascade on delete no action )

258 316 create table Detail_Surat_Jalan_Order ( NoSrtJlnOrder char(5), NoOrder char (5), primary key (NoSrtJlnOrdeR,NoOrder), foreign key (NoSrtJlnOrdeR)references Header_Surat_Jalan_Order on update cascade on delete no action, foreign key (NoOrder)references Header_Order on update no action on delete no action ) create table Header_Surat_Jalan_Customer ( NoSrtJlnCust char(5)primary key not null, KdCustomer char(5), KdPegawai char(5), Tanggal datetime, constraint n1 check (len(nosrtjlncust) = 5), constraint n2 check (NoSrtJlnCust like 'SC[0-9][0-9][0-9]'), foreign key (KdCustomer)references Customer on update cascade on delete no action, foreign key (KdPegawai)references Pegawai on update cascade on delete no action ) create table Detail_Surat_Jalan_Customer (

259 317 NoSrtJlnCust char(5), NoNotaTagihan char (5), primary key (NoSrtJlnCust,NoNotaTagihan), foreign key (NoSrtJlnCust)references Header_Surat_Jalan_Customer on update cascade on delete no action, foreign key (NoNotaTagihan)references Header_Nota_Tagihan on update no action on delete no action ) Rencana Implementasi Pada tahap ini dilakukan rencana implementasi yang terkait pada aplikasi basis data yang diusulkan, serta dilakukan evaluasi terhadap beberapa aspek terkait integrity dan security pada basis data. Untuk membantu pengguna dalam pemakaian basis data diberikan panduan pengoperasiannya. Jadwal dari rencana implementasi adalah sebagai berikut: Tabel 4.41 Jadwal Rencana Implementasi Aktivitas Minggu Instalasi Perangkat Keras X Instalasi Sistem Operasi dan DBMS Instalasi Aplikasi Basis Data X X

260 318 Konversi Data X X X X Panduan Pengoperasian Basis Data X Pelatihan X Pengujian Sistem dan Revisi X X Spesifikasi Sistem Spesifikasi Komputer Spesifikasi Perangkat Keras Untuk mendukung DBMS dan aplikasi Basis Data yang dibuat agar berjalan dengan baik, maka dibutuhkan spesifikasi perangkat keras sebagai berikut : Tabel 4.42 Spesifikasi Perangkat Keras Perangkat Keras Server Client Processor Pentium IV 2.7 GHz Pentium IV 2.0 GHz Main Memory 1 GB 512 MB Hard Disk 120 GB 60 GB Grafik Adapter On Board On Board

261 319 Monitor SVGA 17 SVGA 17 CD-RW 16x 16x Keyboard QWERTY QWERTY Printer Laser Jet Ink Jet Spesifikasi Peranti Lunak Kebutuhan peranti lunak untuk menjalankan aplikasi Data Base meliputi kebutuhan piranti lunak pada server dan client. Kebutuhan tersebut antara lain : Tabel 4.43 Spesifikasi Peranti Lunak Peranti Lunak Server Client Sistem Operasi Windows Server 2003 Windows XP Aplikasi Visual Basic 6.0 Visual Basic 6.0 DBMS SQL Server 2000 SQL Server 2000 Anti Virus AVG AVG Spesifikasi Jaringan Spesifikasi kebutuhan jaringan yang diusulkan adalah sebagai berikut : Network Interface Card(NIC), digunakan untuk menghubungkan komputer kedalam jaringan.

262 320 Switch, Digunakan untuk menghubungkan komputer yang satu dengan komputer yang lain. Topologi yang digunakan Spesifikasi Personil Untuk mempermudah pengoperasian sistem dibutuhkan beberapa personil yang bekerja sama. Personil tersebut adalah sebagai berikut : Data Base Administrator(DBA) Bertugas dan bertanggung jawab dalam hal perkembangan data base dan aplikasi data base serta pemeliharaan data base. Personil Data Entry Bertugas dan bertanggung jawab dalam hal memanipulasi data, seperti insert, update dan delete. Tim Pendukung Bertugas dan bertanggung jawab dalam hal membangun, merawat, dan mengembangkan jaringan, serta bisa mengatasi masalah-masalah yang berhubungan dengan jaringan dan perangkat keras. Electronic Data Processing (EDP) Bertugas dan bertanggung jawab dalam hal yang berhubungan dengan software maupun dengan hardware dan terhadap kelangsungan pemrosesan data.

263 Spesifikasi Keamanan Sistem Selain pembatasan hak akses terhadap data sebagaimana telah dirancang sebelumnya, untuk dapat lebih meningkatkan keamanan terhadap pengguna basis data juga diperlukan pambatasan hak akses pada level aplikasi. Untuk pembatasan hak akses melalui halaman login. Halaman login digunakan oleh masing-masing bagian yang ada dalam struktur organisasi, yaitu manajer, direktur, staff gudang, staff administrasi, dan keuangan, staff marketing, dan staff umum Instalisasi Instalisasi Sistem Operasi dan DBMS Pada tahap ini dilakukan instalasi perangkat-perangkat lunak penunjang, sistem operasi, serta DBMS yang diperlukan yang telah didapat pada tahap spesifikasi kebutuhan perangkat lunak. Bertujuan untuk memudahkan pengguna Instalasi Program Aplikasi Basis Data Pada tahap ini dilakukan instalasi program aplikasi basis data yang diusulkan untuk memenuhi kebutuhan pengguna. Bertujuan memudahkan pengguna dengan adanya aplikasi Basis Data Evaluasi Evaluasi dilakukan melalui 4 kriteria, yaitu Domain Integrity, Entity Integrity, References Integrity dan Security. Domain Integrity

264 322 Hasil dari evaluasi Domain Integrity menunjukan bahwa semua tabel yang telah diuji coba, kesemuannya telah dapat dilakukan dengan tepat karena setiap atributnya harus diisi dengan batasan yang telah ditentukan sebelumnya. Entity Integrity Hasil dari evaluasi Entity Integrity menunjukan bahwa semua primary key pada setiap tabel tidak diperbolehkan untuk diisi dengan NULL. References Integrity Hasil dari evaluasi Refernces Integrity menunjukkan bahwa jika foreign key mempunyai nilai, maka nilai dari foreign key tersebut harus mengacu kepada table parentnya. Security Hasil dari evaluasi Security menunjukkan bahwa semua tabel yang telah dilakukan uji coba, kesemuanya telah dapat berjalan sesuai dengan mekanisme yang ditentukan. Yaitu membagi hak akses program sesuai tingkatan user Backup dan Recovery Basis Data Agar tidak terjadi hilangnya data dikarenakan kerusakan sistem maka diperlukan backup dan recovery. Sehingga Integritas data bisa terus dijaga. Sehingga Basis data dapat terus digunakan Backup Basis Data

265 323 Backup adalah suatu proses yang secara periodic mengambil sistem salinan basis data atau berupa log untuk disimpan pada media penyimpanan. Backup dapat dilakukan kapan saja. Backup dapat dilakukan melalui media removeable media atau media lainnya Recovery Basis Data Recovery basis data adalah suatu proses untuk mengembalikan basis data yang terjadi kesalahan, recovery ini dapat dilakukan melalui bantuan peranti lunak pendukung, tergantung dari dimana letak kesalahannya Konversi Data Pada tahap ini dilakukan konversi data dari sistem manual ke sistem yang terkomputerisasi. Data pada perusahaan dikonversi menjadi basis data yang dapat digunakan dalam aktivitas perusahaan sehari-hari Pelatihan Pada tahap ini para pengguna yang akan menjalankan basis data tersebut dipresentasikan cara menggunakan rancangan basis data, serta alur dari rancangan yang telah dibuat. Hal ini dilakukan agar memudahkan pengguna dalam menggunakan sistem basis data yang baru Pengujian Sistem

266 324 Pada tahap ini dilakukan terhadap kinerja piranti keras, sistem operasi, DBMS, dan rancangan basis data yang telah diimplementasikan secara keseluruhan dan melakukan perbaikan apabila perlu. 4.3 Implementasi Panduan Pengoperasian Program Aplikasi Basis Data Layar Login

267 325 Gambar 4.46 Layar Login Pada layar ini, user diminta untuk memasukkan user dan password. Fungsi dari layar login adalah untuk menentukan hak akses user ke database. Pada saat button ok di klik program akan memvalidasi apakah username dan password sesuai dengan data hak akses yang terdapat di dalam database, jika belom program akan meminta user untuk mengisi kembali username dan password tersebut hingga benar. Jika benar program akan masuk kedalam layar menu.

268 326 Layar Menu Gambar 4.47 Layar Menu Pada layar menu ini terdapat pilihan menu berupa file, insert, transaction, view, window. Pilihan insert berfungsi untuk memasukkan data baru sekaligus berfungsi untuk mengupdate data yang berada di database. Pilihan Transaction berfungsi menampilkan transaksi transaksi yang dilakuka oleh user. View berfungsi untuk melihat kumpulan data yang ada didalam database sesuai dengan pengelompokannya.

269 327 Layar Penjualan Gambar 4.48 Layar Penjualan Pada layar ini user dapat mengetahui data data yang diisi ketika transaksi penjualan yang dilakukan customer dengan perusahaan. Setelah data data diisi tombol add item berfungsi untuk menyimpan data pesanan kedalam tampilan sementara yang terletak dibagian bawahnya. Tombol delete berfungsi untuk menghapus barang yang

270 328 telah dipesan apabila terjadi pembatalan pemesanan suatu barang. Tombol submit berfungsi untuk menyimpan hasil pesanan kedalam databse dan menciptakan laporan penjualan. Layar Purchasing Order Gambar 4.49 Layar Purchasing Order

271 329 Pada layar ini berfungsi sebagai hasil transaksi supplier dengan pihak perusahaan untuk dijadikan pemesanan barang perusahaan. Tombol add item berfungsi sebagai penambahan data barang yang dipesan sementara yang diletakan dalam tampilan dibawahnya. Tombol delete berfungsi membatalkan suatu barang yang tidak jadi dipesan. Tombol submit berfungsi menyimpan kedalam database data hasil imputan untuk dijadikan laporan order. Layar Add Customer Gambar 4.50 Layar Customer Layar yang berfungsi untuk menambah jumlah customer yang kemudian diseimpan kedalam database dan dapat dilihat melalui layar view customer.

272 330 Layar Add Divisi Gambar 4.51 Layar Add Divisi Layar yang berfungsi untuk menambah jumlah Divisi yang kemudian diseimpan kedalam database dan dapat dilihat melalui layar view pegawai.

273 331 Layar add Jenis Barang Gambar 4.52 Layar Add jenisbarang Layar ini berfungsi menambahkan jenis barang pada database yang dapat dilihat melalui view Barang. Layar Add Merk Gambar 4.53 Layar Add Merk Layar ini berfungsi menambahkan Merk barang pada database yang dapat dilihat melalui view Barang.

274 332 Layar Add Pegawai Gambar 4.54 Layar Pegawai Layar ini berfungsi untuk menambahkan jumlah pegawai kedalam database yang dapat dilihat melalui view pegawai. Layar Search

275 333 Gambar 4.55 Layar Search Layar search berfungsi sebagai pencarian data transaksi yang terjadi sesuai dengan keinginan pengguna.

276 334 Layer Warning Gambar 4.56 Layar Warning Layer warning berfungsi sebagai penunjuk apabila persediaan barang yang berada di gudang telah habis sehingga user dapat melakukan tindakan penambahan jumlah barang.

277 335 Layar Add Barang Gambar 4.57 Layar Add Barang Layar ini berfungsi untuk menambahkan barang kedalam persediaan.

278 336 Layar View Barang persediaan. Gambar 4.58 layar View Barang Layar ini berfungsi untuk melihat sisa stock barang yang terdapat pada

BAB 4 RANCANGAN SISTEM YANG DIUSULKAN

BAB 4 RANCANGAN SISTEM YANG DIUSULKAN BAB 4 RANCANGAN SISTEM YANG DIUSULKAN 4.1 Tata Laksana yang dirancang Rancangan tata laksana pada PT. Solusi Corporindo Teknologi adalah sebagai berikut: 4.1.1 Tata Laksana Penjualan Pelanggan yang tertarik

Lebih terperinci

BAB 3 ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM BASIS DATA

BAB 3 ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM BASIS DATA BAB 3 ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM BASIS DATA 3.1 Analisis Berikut ini adalah proses analisis untuk mendapatkan informasi-infomasi yang dibutuhkan terkait perancangan basis data PT. Mulia

Lebih terperinci

BAB 4 PERANCANGAN DAN IMPLEMENTASI

BAB 4 PERANCANGAN DAN IMPLEMENTASI BAB 4 PERANCANGAN DAN IMPLEMENTASI 4.1 Perancangan Basisdata Dalam merancangan basisdata pada PT. Ippachi Karya Sukses, digunakanlah tiga tahap utama, yaitu : 1.Perancangan basisdata konseptual 2.Perancangan

Lebih terperinci

BAB IV PERANCANGAN DAN IMPLEMENTASI

BAB IV PERANCANGAN DAN IMPLEMENTASI 78 BAB IV PERANCANGAN DAN IMPLEMENTASI 4.1 Perancangan Sistem Basis Data Perancangan sistem basis data dibagi menjadi 3 tahap yaitu perancangan basis data konseptual, perancangan basis data logikal, dan

Lebih terperinci

BAB 4 PERANCANGAN DATABASE DAN APLIKASI. 1. Perancangan konseptual. 2. Perancangan logikal. 3. Perancangan fisikal Pengidentifikasi Entitas

BAB 4 PERANCANGAN DATABASE DAN APLIKASI. 1. Perancangan konseptual. 2. Perancangan logikal. 3. Perancangan fisikal Pengidentifikasi Entitas 71 BAB 4 PERANCANGAN DATABASE DAN APLIKASI 4.1 Tahapan Perancangan Database Perancangan database yang dilakukan sesuai dengan kebutuhan informasi yang telah diidentifikasi pada Hotel Pandu Lakeside. Perancangan

Lebih terperinci

BAB 4 PERANCANGAN BASIS DATA DAN IMPLEMENTASI. Untuk membuat perencanaan basis data yang baik harus melalui beberapa tahapan

BAB 4 PERANCANGAN BASIS DATA DAN IMPLEMENTASI. Untuk membuat perencanaan basis data yang baik harus melalui beberapa tahapan BAB 4 PERANCANGAN BASIS DATA DAN IMPLEMENTASI 4.1 Database Planing Untuk membuat perencanaan basis data yang baik harus melalui beberapa tahapan yang ada, tahapan-tahapan tersebut adalah : 4.1.1 Mission

Lebih terperinci

BAB 3 ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM BASIS DATA Sejarah Organisasi

BAB 3 ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM BASIS DATA Sejarah Organisasi 68 BAB 3 ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM BASIS DATA 3.1 Analisis Kebutuhan 3.1.1 Riwayat Perusahaan 3.1.1.1 Sejarah Organisasi PT Cavenzi Indonesia cabang Plaza Meubel Cawang didirikan pada tanggal

Lebih terperinci

BAB 4 PERANCANGAN SISTEM YANG DIUSULKAN. enterprise, terbebas dari semua pertimbangan fisik Identifikasi Tipe-tipe Entiti

BAB 4 PERANCANGAN SISTEM YANG DIUSULKAN. enterprise, terbebas dari semua pertimbangan fisik Identifikasi Tipe-tipe Entiti BAB 4 PERANCANGAN SISTEM YANG DIUSULKAN 4.1 Rancangan Basis Data 4.1.1 Perancangan Basis Data Konseptual Proses membangun model informasi yang digunakan dalam sebuah enterprise, terbebas dari semua pertimbangan

Lebih terperinci

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Program Studi Strata-1 Skripsi Sarjana Komputer Semester Ganjil tahun 2005/2006

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Program Studi Strata-1 Skripsi Sarjana Komputer Semester Ganjil tahun 2005/2006 UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Program Studi Strata-1 Skripsi Sarjana Komputer Semester Ganjil tahun 2005/2006 ANALISIS DAN PERANCANGAN BASISDATA PENJUALAN, PEMBELIAN DAN PERSEDIAAN

Lebih terperinci

Basisdata, sistem basisdata, perancangan sistem basisdata.

Basisdata, sistem basisdata, perancangan sistem basisdata. UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Program Studi Ilmu Komputer Skripsi Sarjana Komputer Semester Ganjil tahun 2006/2007 ANALISIS DAN PERANCANGAN SISTEM BASISDATA PENJUALAN PADA PD. CAHAYA

Lebih terperinci

BAB IV DESKRIPSI KERJA PRAKTEK

BAB IV DESKRIPSI KERJA PRAKTEK BAB IV DESKRIPSI KERJA PRAKTEK 4.1 Observasi Melakukan survey dan wawancara secara langsung di Koperasi Karyawan Perguruan Tinggi Swasta ABC Surabaya. Dari wawancara tersebut diperoleh data secara langsung

Lebih terperinci

BAB 1 PENDAHULUAN. pengaturan data secara cepat dan akurat, telah mengubah perpustakaan yang

BAB 1 PENDAHULUAN. pengaturan data secara cepat dan akurat, telah mengubah perpustakaan yang BAB 1 PENDAHULUAN 1.1 Latar Belakang Dewasa ini perkembangan informasi dalam suatu perpustakaan dapat berkembang dengan sangat cepat. Data data yang diolah khususnya data perpustakaan semakin banyak dan

Lebih terperinci

BAB 4 PERANCANGAN, IMPLEMENTASI, DAN EVALUASI. Teori umum yang dibahas dalam penulisan skripsi ini mencakup teori sistem

BAB 4 PERANCANGAN, IMPLEMENTASI, DAN EVALUASI. Teori umum yang dibahas dalam penulisan skripsi ini mencakup teori sistem BAB 4 PERANCANGAN, IMPLEMENTASI, DAN EVALUASI 4.1 Perancangan Basis Data Teori umum yang dibahas dalam penulisan skripsi ini mencakup teori sistem basis data, Database Management System (DBMS), Database

Lebih terperinci

BAB 4 PERANCANGAN DAN IMPLEMENTASI. 1. Perancangan database konseptual (conceptual database design).

BAB 4 PERANCANGAN DAN IMPLEMENTASI. 1. Perancangan database konseptual (conceptual database design). BAB 4 PERANCANGAN DAN IMPLEMENTASI 4.1 Perancangan Database Perancangan yang dilakukan pada Binus University dibagi menjadi tiga tahapan, yaitu : 1. Perancangan database konseptual (conceptual database

Lebih terperinci

BAB IV DESKRIPSI KERJA PRAKTEK. identifikasi masalah. Adapun penjelasannya sebagai berikut: beberapa cara yang telah dilakukan, antara lain:

BAB IV DESKRIPSI KERJA PRAKTEK. identifikasi masalah. Adapun penjelasannya sebagai berikut: beberapa cara yang telah dilakukan, antara lain: BAB IV DESKRIPSI KERJA PRAKTEK 4.1 Analisa Sistem Pada tahap ini penulis melakukan 2 langkah, yaitu prosedur penelitian dan identifikasi masalah. Adapun penjelasannya sebagai berikut: 4.2 Prosedur Penelitian

Lebih terperinci

BAB 4 PERANCANGAN, IMPLEMENTASI, DAN EVALUASI SISTEM. Proses perancangan sistem basis data yang dibuat meliputi perancangan konseptual,

BAB 4 PERANCANGAN, IMPLEMENTASI, DAN EVALUASI SISTEM. Proses perancangan sistem basis data yang dibuat meliputi perancangan konseptual, BAB 4 PERANCANGAN, IMPLEMENTASI, DAN EVALUASI SISTEM 4.1 Perancangan Sistem Basis Data Proses perancangan sistem basis data yang dibuat meliputi perancangan konseptual, perancangan logikal, dan perancangan

Lebih terperinci

BAB II ANALISIS DAN PERANCANGAN Analisis Kebutuhan dari Objek yang Dibangun. dengan adanya suatu kebijakan dan perencanaan untuk mengembangkan

BAB II ANALISIS DAN PERANCANGAN Analisis Kebutuhan dari Objek yang Dibangun. dengan adanya suatu kebijakan dan perencanaan untuk mengembangkan BAB II ANALISIS DAN PERANCANGAN 2.1. Analisis Kebutuhan dari Objek yang Dibangun Sebelum suatu sistem informasi dibangun, terlebih dahulu dimulai dengan adanya suatu kebijakan dan perencanaan untuk mengembangkan

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN SISTEM. Pada bab ini dibahas tentang identifikasi permasalahan, analisis

BAB III ANALISIS DAN PERANCANGAN SISTEM. Pada bab ini dibahas tentang identifikasi permasalahan, analisis BAB III ANALISIS DAN PERANCANGAN SISTEM Pada bab ini dibahas tentang identifikasi permasalahan, analisis permasalahan, solusi permasalahan, dan perancangan sistem dalam Sistem Informasi Penjulan pada Toko

Lebih terperinci

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

BAB 3 ANALISIS DAN PERANCANGAN SISTEM BAB 3 ANALISIS DAN PERANCANGAN SISTEM 3.1 Riwayat Perusahaan PT. Bahagia Idkho Mandiri adalah perusahaan yang bergerak dibidang industri kosmetik dengan merk dagang MBK. Logo MBK berupa kembang sepatu

Lebih terperinci

BAB IV ANALISIS DAN PERANCANGAN SISTEM. Analisis sistem merupakan penguraian dari suatu sistem informasi yang

BAB IV ANALISIS DAN PERANCANGAN SISTEM. Analisis sistem merupakan penguraian dari suatu sistem informasi yang BAB IV ANALISIS DAN PERANCANGAN SISTEM 4.1 Analisis Sistem yang Berjalan Analisis sistem merupakan penguraian dari suatu sistem informasi yang utuh ke dalam bagian bagian komponennya dengan maksud untuk

Lebih terperinci

BAB 4 PERANCANGAN SISTEM BASIS DATA

BAB 4 PERANCANGAN SISTEM BASIS DATA BAB 4 PERANCANGAN SISTEM BASIS DATA 4.1 Perancangan Basisdata Perancangan basis data merupakan proses pembuatan suatu rancangan untuk suatu basis data yang akan mendukung operasi dan tujuan perusahaan.

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI 8 BAB 2 LANDASAN TEORI 2.1 Pengertian Database Menurut Connolly (2010, p65), database adalah kumpulan data dan deskripsi data yang terhubung secara logika serta dirancang untuk memenuhi kebutuhan informasi

Lebih terperinci

BAB IV PERANCANGAN SISTEM

BAB IV PERANCANGAN SISTEM BAB IV PERANCANGAN SISTEM 4.1 Prosedur Usulan Perhitungan Harga Pokok Produk Di bawah ini adalah usulan prosedur perhitungan harga pokok produk dan pemberian label dengan menggunakan metode Specific Identification

Lebih terperinci

pelanggan, diantaranya adalah:

pelanggan, diantaranya adalah: BAB 3 ANALISIS DAN PERANCANGAN SISTEM 3.1 Sejarah PT Prakora Daya Mandiri PT. Prakora Daya Mandiri (PDM) didirikan pada tahun 1993 di Jakarta. Perusahaan ini bergerak dibidang pembelian, perakitan suku

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB III ANALISIS DAN PERANCANGAN SISTEM BAB III ANALISIS DAN PERANCANGAN SISTEM 3.1 Analisis Permasalahan Pada sistem pembelian perusahaan melakukan secara tunai. Untuk pembelian tunai pertama kali dimulai dari bagian gudang memberikan informasi

Lebih terperinci

BAB 4 Perancangan Sistem Basis Data

BAB 4 Perancangan Sistem Basis Data BAB 4 Perancangan Sistem Basis Data 4.1 Usulan Prosedur Baru 4.1.1 Prosedur Penilaian Sekolah SMK IT Prima Unggul memiliki standar penilaian yang digunakan untuk mengukur setiap guru pada sekolah. Terlebih

Lebih terperinci

BAB 4 PEMBAHASAN, IMPLEMENTASI, DAN EVALUASI. Pada metode ini, terdapat tiga fase utama yaitu: data dari informasi yang digunaan oleh perusahaan.

BAB 4 PEMBAHASAN, IMPLEMENTASI, DAN EVALUASI. Pada metode ini, terdapat tiga fase utama yaitu: data dari informasi yang digunaan oleh perusahaan. BAB 4 PEMBAHASAN, IMPLEMENTASI, DAN EVALUASI 4.1 Metode Perancangan Basis Data Pada metode ini, terdapat tiga fase utama yaitu: a. Perancangan basis data konseptual: merupakan proses pembuatan basis data

Lebih terperinci

UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Fakultas Ilmu komputer Skripsi Sarjana komputer Semester Genap Tahun 2006

UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Fakultas Ilmu komputer Skripsi Sarjana komputer Semester Genap Tahun 2006 UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Fakultas Ilmu komputer Skripsi Sarjana komputer Semester Genap Tahun 2006 ANALISIS DAN PERANCANGAN DATABASE SISTEM PEMESANAN, PEMBELIAN, PRODUKSI DAN

Lebih terperinci

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

BAB 3 ANALISIS DAN PERANCANGAN SISTEM BAB 3 ANALISIS DAN PERANCANGAN SISTEM 3.1. Analisis sistem yang berjalan 3.1.1 Sejarah Perusahaan AHASS 0596 Dunia Baru merupakan bengkel resmi untuk sepeda motor honda yang bergerak di bidang jasa perawatan/pemeliharaan

Lebih terperinci

BAB III ANALISA DAN DESAIN SISTEM. Dalam pembahasan analisis system yang berjalan diperusahaan PT.

BAB III ANALISA DAN DESAIN SISTEM. Dalam pembahasan analisis system yang berjalan diperusahaan PT. BAB III ANALISA DAN DESAIN SISTEM III.1. Analisa Sistem Yang Sedang Berjalan Dalam pembahasan analisis system yang berjalan diperusahaan PT. Iconlife Medan sudah terkomputerisasi tetapi belum maksimal

Lebih terperinci

BAB 4 PERANCANGAN BASIS DATA

BAB 4 PERANCANGAN BASIS DATA BAB 4 PERANCANGAN BASIS DATA 4.1 Database Planning Pernyataan Misi : Perancangan basis data berbasis web PT. Tatalogam Lestari bertujuan untuk mempermudah karyawan melihat absensi dan menampilkan daftar

Lebih terperinci

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Genap tahun 2007/2008

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Genap tahun 2007/2008 UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Genap tahun 2007/2008 ANALISIS DAN PERANCANGAN SISTEM BASIS DATA PEMBELIAN DAN PERSEDIAAN BAHAN BAKU PADA PO. DELIRA

Lebih terperinci

BAB 4 PERANCANGAN DAN IMPLEMENTASI. terdiri dari 3 (tiga) tahap perancangan yaitu : 1. Perancangan basisdata konseptual

BAB 4 PERANCANGAN DAN IMPLEMENTASI. terdiri dari 3 (tiga) tahap perancangan yaitu : 1. Perancangan basisdata konseptual BAB 4 PERANCANGAN DAN IMPLEMENTASI 4.1 Perancangan Basisdata Perancangan basisdata ini bertujuan supaya dapat membantu memecahkan permasalahan yang dihadapi oleh PT Asuransi Jiwasraya. Perancangan basisdata

Lebih terperinci

ANALISIS DAN PERANCANGAN SISTEM BASISDATA PEMBELIAN DAN PERSEDIAAN PADA PT. INDO PRIMA FOODS

ANALISIS DAN PERANCANGAN SISTEM BASISDATA PEMBELIAN DAN PERSEDIAAN PADA PT. INDO PRIMA FOODS UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Genap tahun 2005/2006 ANALISIS DAN PERANCANGAN SISTEM BASISDATA PEMBELIAN DAN PERSEDIAAN PADA PT. INDO PRIMA FOODS

Lebih terperinci

BAB 4 PERANCANGAN SISTEM BASIS DATA

BAB 4 PERANCANGAN SISTEM BASIS DATA BAB 4 PERANCANGAN SISTEM BASIS DATA 4.1 Gambaran Posisi UMAS Gambar 4.1 Gambaran Posisi UMAS (1) Keterangan: : Jika aplikasi tidak memerlukan approval : Jika aplikasi memerlukan approval Jika transaksi

Lebih terperinci

UNIVERSITAS BINA NUSANTARA ANALISIS DAN PERANCANGAN SISTEM BASISDATA PEMBELIAN, PERSEDIAAN, DAN PENJUALAN PADA CV. HARTAMA PARTINDO PERKASA

UNIVERSITAS BINA NUSANTARA ANALISIS DAN PERANCANGAN SISTEM BASISDATA PEMBELIAN, PERSEDIAAN, DAN PENJUALAN PADA CV. HARTAMA PARTINDO PERKASA UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2006/2007 ANALISIS DAN PERANCANGAN SISTEM BASISDATA PEMBELIAN, PERSEDIAAN, DAN PENJUALAN PADA CV. HARTAMA

Lebih terperinci

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Program Studi Strata-1 Skripsi Sarjana Komputer Semester Genap tahun 2003/2004 ANALISIS DAN PERANCANGAN SISTEM BASIS DATA PENJUALAN PT. SUMBER DATA

Lebih terperinci

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika. Program Studi Strata-1. Skripsi Sarjana Komputer. Semester Ganjil 2005 / 2006

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika. Program Studi Strata-1. Skripsi Sarjana Komputer. Semester Ganjil 2005 / 2006 UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Program Studi Strata-1 Skripsi Sarjana Komputer Semester Ganjil 2005 / 2006 ANALISIS DAN PERANCANGAN SISTEM BASIS DATA PENJUALAN PADA PT.TRIJAYA MULTI

Lebih terperinci

BAB 3 METODOLOGI. 3.1 Metodologi Berikut ini merupakan flowchart kerangka keseluruhan untuk melakukan penelitian.

BAB 3 METODOLOGI. 3.1 Metodologi Berikut ini merupakan flowchart kerangka keseluruhan untuk melakukan penelitian. BAB 3 METODOLOGI 3.1 Metodologi Berikut ini merupakan flowchart kerangka keseluruhan untuk melakukan penelitian. M u lai Studi Pustaka Pengum pulan Data Identifikasi M asalah Analisa Sistem Pengem bangan

Lebih terperinci

PERANCANGAN MODEL BASIS DATA RELASIONAL DENGAN METODE DATABASE LIFE CYCLE

PERANCANGAN MODEL BASIS DATA RELASIONAL DENGAN METODE DATABASE LIFE CYCLE PERANCANGAN MODEL BASIS DATA RELASIONAL DENGAN METODE DATABASE LIFE CYCLE Wahyu Sindu Prasetya STMIK Pontianak Sistem Informasi STMIK Pontianak e-mail : wahyusinduprasetya@gmail.com Abstrak Pemanfaatan

Lebih terperinci

Database desain juga termasuk diagram ER (Entity-hubungan model). Diagram ER adalah diagram yang membantu merancang database secara efektif dan

Database desain juga termasuk diagram ER (Entity-hubungan model). Diagram ER adalah diagram yang membantu merancang database secara efektif dan Database desain juga termasuk diagram ER (Entity-hubungan model). Diagram ER adalah diagram yang membantu merancang database secara efektif dan efisien. Proses penerapan peraturan untuk desain database

Lebih terperinci

BAB 4 PERANCANGAN SISTEM

BAB 4 PERANCANGAN SISTEM BAB 4 PERANCANGAN SISTEM 4.1 DFD 4.1.1 DFD Context Gambar 4.1 DFD Context 59 60 4.1.2 DFD Level 0 Gambar 4.2 DFD Level 0 4.1.3 DFD Level 1 61 62 Gambar 4.3 DFD Level 1 4.2 Perancangan Basis Data Konseptual

Lebih terperinci

BAB IV ANALISIS DAN PERANCANGAN SISTEM. Analisa terhadap sistem yang sedang berjalan adalah suatu kegiatan untuk

BAB IV ANALISIS DAN PERANCANGAN SISTEM. Analisa terhadap sistem yang sedang berjalan adalah suatu kegiatan untuk BAB IV ANALISIS DAN PERANCANGAN SISTEM 4.1. Analisis Sistem Yang Berjalan Analisa terhadap sistem yang sedang berjalan adalah suatu kegiatan untuk mempelajari interaksi sistem yang terdiri atas pelaku

Lebih terperinci

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil Tahun 2005/2006

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil Tahun 2005/2006 UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil Tahun 2005/2006 ANALISA & PERANCANGAN BASIS DATA SISTEM OPERASIONAL BERBASIS WEB PADA PT. PELAYARAN MITRABAHARI

Lebih terperinci

BAB IV PERANCANGAN SISTEM

BAB IV PERANCANGAN SISTEM BAB IV PERANCANGAN SISTEM Perancangan sistem dilakukan untuk memberikan informasi yang lebih baik mengenai sistem informasi penjualan dan pembelian alat bangunan TOKO VENUS JAYA khususnya untuk bagian

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA 2.1 Tinjauan Pustaka (Indrajani, 2015), dalam penelitian yang berjudul Perancangan Sistem Basis Data pada Klinik, merupakan penelitian yang bertujuan untuk menganalisis dan merancang

Lebih terperinci

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISA DAN DESAIN SISTEM BAB III ANALISA DAN DESAIN SISTEM III.1. Analisa Sistem yang Berjalan Analisa sistem bertujuan untuk mengetahui bagaimana sistem yang sedang berjalan, apa saja kendala, hambatan, serta kelebihan dan kekurangan

Lebih terperinci

BAB 4 PERANCANGAN DAN IMPLEMENTASI

BAB 4 PERANCANGAN DAN IMPLEMENTASI BAB 4 PERANCANGAN DAN IMPLEMENTASI 4.1 Perancangan Basisdata Perancangan basisdata pembelian, persediaan dan penjualan pada CV. Maplesonic Indonesia terdiri dari 3 tahap, yaitu: a. Perancangan basisdata

Lebih terperinci

BAB III ANALISA DAN DESAIN

BAB III ANALISA DAN DESAIN BAB III ANALISA DAN DESAIN III.1. Analisa Sistem Yang Sedang Berjalan Dalam perencanaan operasional kerja penjualan produk, penggunaan komputer memegang peranan yang sangat penting yang jauh lebih cepat

Lebih terperinci

BAB 3 ANALISIS DAN PERANCANGAN

BAB 3 ANALISIS DAN PERANCANGAN BAB 3 ANALISIS DAN PERANCANGAN 3.1 Analisis 3.1.1 Sejarah Perusahaan PT. Langgeng Pranamas Sentosa adalah perusahaan yang bergerak di bidang jasa pengangkutan pengiriman motor, mobil, sparepart motor dan

Lebih terperinci

BAB IV DESKRIPSI KERJA PRAKTIK

BAB IV DESKRIPSI KERJA PRAKTIK BAB IV DESKRIPSI KERJA PRAKTIK 4.1. Analisa Sistem Pelaksanaan kerja praktik dilakukan pada CV ALFA tepatnya pada Toko Alfa Komputer yang berlokasi di Jalan Dr. Soetomo No.01 (Ruko Mutiara Blambangan)

Lebih terperinci

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM BAB III ANALISIS DAN DESAIN SISTEM III.1 Analisis Masalah Proses sistem informasi keluar masuk barang yang berjalan pada pada PT. Union bersifat semi komputer yang mana dalam pembuatan laporan bulanan

Lebih terperinci

BINUS UNIVERSITY. Jurusan Sistem Informasi Skripsi Sarjana Komputer Semester Ganjil Tahun 2007/2008

BINUS UNIVERSITY. Jurusan Sistem Informasi Skripsi Sarjana Komputer Semester Ganjil Tahun 2007/2008 BINUS UNIVERSITY Jurusan Sistem Informasi Skripsi Sarjana Komputer Semester Ganjil Tahun 2007/2008 ANALISA DAN PERANCANGAN SISTEM DATABASE PEMBELIAN, PENJUALAN DAN PERSEDIAAN PADA PT. AUSTRALINDO GRAHA

Lebih terperinci

BAB 2 ANALISIS DAN PERANCANGAN. Komponen komponen yang di perlukan untuk. menganalisis kebutuhan dari objek yang akan di bangun antara

BAB 2 ANALISIS DAN PERANCANGAN. Komponen komponen yang di perlukan untuk. menganalisis kebutuhan dari objek yang akan di bangun antara BAB 2 ANALISIS DAN PERANCANGAN 2.1 Analisis Kebutuhan Komponen komponen yang di perlukan untuk menganalisis kebutuhan dari objek yang akan di bangun antara lain sistem pendukung, diagram alir sistem, perancangan

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI 7 BAB 2 LANDASAN TEORI 2.1 Teori Umum 2.1.1 Terminologi Definisi Sistem Sistem adalah sekelompok elemen yang terintegrasi dengan maksud yang sama untuk mencapai suatu tujuan, McLeod (1996,p13). Dan kebanyakkan

Lebih terperinci

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Program Studi Strata-1 Skripsi Sarjana Komputer Semester Ganjil tahun 2007/2008 ANALISIS DAN PERANCANGAN SISTEM BASIS DATA PERSEDIAAN, PRODUKSI, DAN

Lebih terperinci

BAB Perancangan Basis Data Konseptual (Conceptual Database Design) 2. Perancangan Basis Data Logikal (Logical Database Design)

BAB Perancangan Basis Data Konseptual (Conceptual Database Design) 2. Perancangan Basis Data Logikal (Logical Database Design) BAB 4 PERANCANGAN DAN IMPLEMENTASI 4.1 Perancangan Sistem Setelah melakukan survey dan analisis pada sistem yang berjalan pada perpustakaan SMPN 1 Pondok Aren serta melakukan wawancara dengan Kepala Sekolah

Lebih terperinci

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM BAB III ANALISIS DAN DESAIN SISTEM BAB III ANALISA DAN DESAIN SISTEM III.1. Analisis Masalah Masalah-masalah yang sering dihadapi oleh PT. Prestige Packages Indonesia adalah kesulitan dalam proses pengolahan

Lebih terperinci

BAB III ANALISA DAN PERANCANGAN SISTEM. sistem yang ada, diperlukan suatu penggambaran aliran-aliran informasi dari

BAB III ANALISA DAN PERANCANGAN SISTEM. sistem yang ada, diperlukan suatu penggambaran aliran-aliran informasi dari BAB III ANALISA DAN PERANCANGAN SISTEM III.1. Analisis Sistem ng Sedang Berjalan Untuk mengetahui sistem yang sedang berjalan dan untuk mempelajari sistem yang ada, diperlukan suatu penggambaran aliran-aliran

Lebih terperinci

BAB 3 ANALISIS DAN PERANCANGAN. laminating seperti U.V.varnish (memberikan hasil yang mengkilat), blister pack varnish

BAB 3 ANALISIS DAN PERANCANGAN. laminating seperti U.V.varnish (memberikan hasil yang mengkilat), blister pack varnish BAB 3 ANALISIS DAN PERANCANGAN 3.1 Riwayat Perusahaan PT. Kharisma Indah Warna adalah perusahaan yang bergerak di bidang jasa percetakan laminating. Perusahaan ini memproduksi berbagai macam jenis percetakan

Lebih terperinci

PERANCANGAN DAN IMPLEMENTASI. dana BPM pada Kelurahan Mangga Besar.

PERANCANGAN DAN IMPLEMENTASI. dana BPM pada Kelurahan Mangga Besar. 1 BAB IV PERANCANGAN DAN IMPLEMENTASI 1.1 Sistem Yang Diusulkan Setelah melakukan survey pada sistem yang sedang berjalan, wawancara dengan karyawan maupun kepala Dewan Kelurahan (Dekel) dan melakukan

Lebih terperinci

BAB II ANALISIS DAN PERANCANGAN

BAB II ANALISIS DAN PERANCANGAN BAB II ANALISIS DAN PERANCANGAN 2.1 Analisa Kebutuhan Komponen-komponen yang diperlukan untuk menganalisis kebutuhan dari objek yang akan dibangun antara lain sistem pendukung, diagram alir sistem, perancangan

Lebih terperinci

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI 2.1 Tinjauan Pustaka Tinjauan pustaka dilakukan berdasarkan pada penelitian terdahulu, berikut pemaparan beberapa kajian penelitian : (C Wibowo, A. Angelia, A.Natalia

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA Pengertian Sistem Manajemen Basis Data Data Definition Language (DDL)

BAB 2 TINJAUAN PUSTAKA Pengertian Sistem Manajemen Basis Data Data Definition Language (DDL) BAB 2 TINJAUAN PUSTAKA 2.1. Teori yang Berkaitan dengan Basis Data 2.1.1. Pengertian Basis Data Menurut Connolly dan Begg (2010,p65), basis data adalah kumpulan data yang saling berhubungan secara logis

Lebih terperinci

Universitas Bina Nusantara. Jurusan Teknik Informatika Program Studi Ilmu Komputer Skripsi Sarjana Komputer Semester Ganjil 2005/2006

Universitas Bina Nusantara. Jurusan Teknik Informatika Program Studi Ilmu Komputer Skripsi Sarjana Komputer Semester Ganjil 2005/2006 Universitas Bina Nusantara Jurusan Teknik Informatika Program Studi Ilmu Komputer Skripsi Sarjana Komputer Semester Ganjil 2005/2006 ANALISIS DAN PERANCANGAN SISTEM BASIS DATA UNTUK PEMBUATAN SINETRON

Lebih terperinci

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2005/2006

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2005/2006 UNIVERSITAS BINA NUSANTARA Abstrak Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2005/2006 ANALISIS DAN PERANCANGAN SISTEM BASISDATA PENJUALAN, PEMBELIAN DAN PERSEDIAAN PADA

Lebih terperinci

BAB 4 HASIL DAN BAHASAN. antara lain purchase report, sales report, purchase retur, sales retur. 1. Pengelolahan data (Insert, Update) Customer.

BAB 4 HASIL DAN BAHASAN. antara lain purchase report, sales report, purchase retur, sales retur. 1. Pengelolahan data (Insert, Update) Customer. 70 BAB 4 HASIL DAN BAHASAN 4.1 Definisi Sistem 4.1.1 Mission Statement Tujuan dari pembuatan aplikasi database yang berbasis web ini yaitu untuk integrasi data mempermudah pencatatan transaksi dan laporan

Lebih terperinci

Analisis dan Perancangan Sistem Basis Data Penjualan, Pembelian, dan Persediaan Pada PT Kontrol Ragam Indonesia

Analisis dan Perancangan Sistem Basis Data Penjualan, Pembelian, dan Persediaan Pada PT Kontrol Ragam Indonesia UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2005/2006 Analisis dan Perancangan Sistem Basis Data Penjualan, Pembelian, dan Persediaan Pada PT Kontrol

Lebih terperinci

(kdbarang) (kdsupplier) Tabel 4.6 Dokumentasi relasi dan atribut foreign key pada tahap penurunan relasi model data logikal

(kdbarang) (kdsupplier) Tabel 4.6 Dokumentasi relasi dan atribut foreign key pada tahap penurunan relasi model data logikal 150 Foreign Key kdbarang references HargaBeli (kdbarang) Foreign Key kdsupplier references HargaBeli (kdsupplier) Tabel 4.6 Dokumentasi relasi dan atribut foreign key pada tahap penurunan relasi model

Lebih terperinci

BAB III ANALISA DAN DESAIN

BAB III ANALISA DAN DESAIN BAB III ANALISA DAN DESAIN III.1. Analisa Sistem Yang Sedang Berjalan Dalam perencanaan operasional kerja untuk penentuan bonus, penggunaan komputer memegang peranan yang sangat penting yang jauh lebih

Lebih terperinci

BAB IV DESKRIPSI PEKERJAAN

BAB IV DESKRIPSI PEKERJAAN BAB IV DESKRIPSI PEKERJAAN Data dan informasi yang telah didapat untuk membuat sebuah aplikasi yang dibutuhkan oleh CV. Hikmah Utama yaitu Rancang Bangun Aplikasi Pergudangan, dideskripsikan sebagai berikut:

Lebih terperinci

BAB 4 PERANCANGAN BASIS DATA

BAB 4 PERANCANGAN BASIS DATA BAB 4 PERANCANGAN BASIS DATA 4.1. Usulan Prosedur yang Baru 4.1.1 Proses Service Kendaraan Ada 2 jenis pelanggan yang ada melakukan service kendaraan yaitu perorangan dan perusahaan. Pelanggan perorangan

Lebih terperinci

Tabel dan Key dalam Database Tipe data dan Karakter pada Database. Author : Minarni, S.Kom.,MM

Tabel dan Key dalam Database Tipe data dan Karakter pada Database. Author : Minarni, S.Kom.,MM Tabel dan Key dalam Database Tipe data dan Karakter pada Database Author : Minarni, S.Kom.,MM Buatlah 3 buah file/ tabel 2 diantara 3 file tersebut berhubungan, misal tabel A berhubungan dengan tabel B,

Lebih terperinci

Universitas Bina Nusantara ANALISIS DAN PERANCANGAN SISTEM BASIS DATA PENDIDIKAN PADA LEMBAGA MUSIK CANTATA

Universitas Bina Nusantara ANALISIS DAN PERANCANGAN SISTEM BASIS DATA PENDIDIKAN PADA LEMBAGA MUSIK CANTATA Universitas Bina Nusantara Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2005/2006 ANALISIS DAN PERANCANGAN SISTEM BASIS DATA PENDIDIKAN PADA LEMBAGA MUSIK CANTATA Viriya Adithana

Lebih terperinci

BAB IV HASIL DAN PEMBAHASAN

BAB IV HASIL DAN PEMBAHASAN BAB IV HASIL DAN PEMBAHASAN 4.1 Identifikasi Masalah Tahapan pertama yang dilakukan dalam membangun sebuah aplikasi adalah mengidentifikasi permasalahan yang ada pada CV. Bina Rukun. Proses mengidentifikasi

Lebih terperinci

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISA DAN DESAIN SISTEM BAB III ANALISA DAN DESAIN SISTEM III.1. Analisa Sistem Yang Berjalan PT. Bancar Makmur Indah Medan, belum terdapat sebuah sistem informasi yang terprogram. Dengan dibuatnya suatu sistem yang terprogram

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Teori-Teori Dasar / Umum 2.1.1 Pendekatan basis data a. Data Pengertian data menurut Turban, Rainer, Potter (2003, p15) adalah fakta-fakta yang belum diolah atau gambaran lebih

Lebih terperinci

BAB IV DESKRIPSI PEKERJAAN. data, selanjutnya melakukan tahapan sebagai berikut: menyajikan suatu rancangan langkah kerja dari sistem yang baru.

BAB IV DESKRIPSI PEKERJAAN. data, selanjutnya melakukan tahapan sebagai berikut: menyajikan suatu rancangan langkah kerja dari sistem yang baru. BAB IV DESKRIPSI PEKERJAAN Pada proses penyusunan laporan kerja praktik peneliti melakukan proses penghimpunan data yang akan digunakan sebagai dasar kebutuhan sistem penjualan bahan kimia. Penghimpunan

Lebih terperinci

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2005/2006

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2005/2006 UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2005/2006 ANALISIS DAN PERANCANGAN BASIS DATA PERSEDIAAN, PEMBELIAN, DAN PENJUALAN PADA PT. SINAR REJEKI

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN SISTEM. Bangun Aplikasi Penjualan dan Pengiriman Spare part komputer pada Bismar

BAB III ANALISIS DAN PERANCANGAN SISTEM. Bangun Aplikasi Penjualan dan Pengiriman Spare part komputer pada Bismar BAB III ANALISIS DAN PERANCANGAN SISTEM Pada bab ini akan dibahas tentang identifikasi permasalahan, analisis permasalahan, solusi permasalahan dan perancangan sistem dalam Rancang Bangun Aplikasi Penjualan

Lebih terperinci

BAB 3 ANALISIS SISTEM YANG SEDANG BERJALAN

BAB 3 ANALISIS SISTEM YANG SEDANG BERJALAN 57 BAB 3 ANALISIS SISTEM YANG SEDANG BERJALAN 3.1 Riwayat Perusahaan 3.1.1 Sejarah PT Abdibangun Buana PT. Abdibangun Buana yang pada mulanya bernama PT. Scanteknik Elektro Indonesia ini telah berdiri

Lebih terperinci

BAB 4 PERANCANGAN DAN IMPLEMENTASI

BAB 4 PERANCANGAN DAN IMPLEMENTASI BAB 4 PERANCANGAN DAN IMPLEMENTASI 4.1 Perancangan Sistem Setelah melakukan interview dan analisis pada sistem yang sudah berjalan, maka akan dilakukan perubahan sistem yang terdahulu digunakan. Sistem

Lebih terperinci

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2006/2007

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2006/2007 UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2006/2007 ANALISIS DAN PERANCANGAN SISTEM APLIKASI BASIS DATA MARKETING PADA PT. JASA ANGKASA SEMESTA

Lebih terperinci

BAB III ANALISIS_DAN_PERANCANGAN_SISTEM. berjalan pada PT. As Motor saat ini, meliputi proses penjualan suku cadang, jasa

BAB III ANALISIS_DAN_PERANCANGAN_SISTEM. berjalan pada PT. As Motor saat ini, meliputi proses penjualan suku cadang, jasa BAB III ANALISIS_DAN_PERANCANGAN_SISTEM 3.1 Analisis Sistem Analisis sistem bertujuan untuk menganalisis sistem yang ada atau yang berjalan pada PT. As Motor saat ini, meliputi proses penjualan suku cadang,

Lebih terperinci

UNIVERSITAS BINA NUSANTARA ANALISIS DAN PERANCANGAN SISTEM BASIS DATA PENJUALAN, PEMBELIAN DAN PERSEDIAAN BARANG PADA PT. VICTORY INDO PERKASA

UNIVERSITAS BINA NUSANTARA ANALISIS DAN PERANCANGAN SISTEM BASIS DATA PENJUALAN, PEMBELIAN DAN PERSEDIAAN BARANG PADA PT. VICTORY INDO PERKASA UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2005/2006 ANALISIS DAN PERANCANGAN SISTEM BASIS DATA PENJUALAN, PEMBELIAN DAN PERSEDIAAN BARANG PADA

Lebih terperinci

BAB 3 ANALISIS DAN PERANCANGAN. sebagai Celio Bistro memiliki domisili di Rukan Kencana Niaga Blok D1 No. 3C,

BAB 3 ANALISIS DAN PERANCANGAN. sebagai Celio Bistro memiliki domisili di Rukan Kencana Niaga Blok D1 No. 3C, BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Perusahaan Berdiri pada tanggal 6 Desember 2008, PT. Inspirasindo yang dikenal sebagai Celio Bistro memiliki domisili di Rukan Kencana Niaga Blok D1 No. 3C, 3D

Lebih terperinci

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Jenjang Pendidikan Strata-1 Skripsi Sarjana Komputer Semester Ganjil tahun 2006/2007

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Jenjang Pendidikan Strata-1 Skripsi Sarjana Komputer Semester Ganjil tahun 2006/2007 UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Jenjang Pendidikan Strata-1 Skripsi Sarjana Komputer Semester Ganjil tahun 2006/2007 ANALISA DAN PERANCANGAN SISTEM BASIS DATA PEMBELIAN, PENJUALAN,

Lebih terperinci

BAB IV DESKRIPSI PEKERJAAN. mempelajari serta memberikan solusi bagi masalah yang timbul. Permasalahan yang ada pada PT Istana Keramik Indah

BAB IV DESKRIPSI PEKERJAAN. mempelajari serta memberikan solusi bagi masalah yang timbul. Permasalahan yang ada pada PT Istana Keramik Indah BAB IV DESKRIPSI PEKERJAAN PT Istana Keramik Indah memiliki proses transaksi yang hamper sama dengan perusahaan took keramik yang laen namun yang membedakan adalah perusahaan ini telah terkomputerisasi

Lebih terperinci

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2004/2005 ANALISIS DAN PERANCANGAN BASIS DATA PEMBELIAN DAN PENJUALAN BARANG PADA PT DAVINCI KERAMINDO

Lebih terperinci

BAB 3. Analisa Kebutuhan dan Perancangan Sistem

BAB 3. Analisa Kebutuhan dan Perancangan Sistem BAB 3 Analisa Kebutuhan dan Perancangan Sistem 3.1 Riwayat Perusahaan 3.1.1 Sejarah dan Bidang Usaha PT. Nexgindo Infotek Solusitama berdiri pada tahun 2003 sebagai sebuah perusahaan yang hanya menyewakan

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA. 2.1 Teori Kaitan Basis Data Bagian ini menjelaskan teori-teori yang menjelaskan basis data.

BAB 2 TINJAUAN PUSTAKA. 2.1 Teori Kaitan Basis Data Bagian ini menjelaskan teori-teori yang menjelaskan basis data. BAB 2 TINJAUAN PUSTAKA 2.1 Teori Kaitan Basis Data Bagian ini menjelaskan teori-teori yang menjelaskan basis data. 2.1.1 Definisi Data, Basis Data dan Sistem Basis Data Data adalah fakta, baik objek, variabel,

Lebih terperinci

BAB 3 ANALISIS DAN PERANCANGAN. perusahaan-perusahaan yang menjual hardware dan software lalu menjualnya

BAB 3 ANALISIS DAN PERANCANGAN. perusahaan-perusahaan yang menjual hardware dan software lalu menjualnya 51 BAB 3 ANALISIS DAN PERANCANGAN 3.1 Riwayat Perusahaan Perusahaan Trijaya Multi Pratama didirikan di Jakarta pada tahun 1996 beralamat di Gunung Sahari XII Blok B no 1 Komplek Gunung Sahari Megah, Jakarta

Lebih terperinci

Metodologi Perancangan basis data secara konseptual

Metodologi Perancangan basis data secara konseptual Metodologi Perancangan basis data secara konseptual Metodologi Perancangan merupakan suatu pendekatan terstruktur yang menggunakan bantuan prosedur, tehnik, tools dan dokumentasi untuk mendukung dan memfasilitasi

Lebih terperinci

BAB IV PERANCANGAN SISTEM. Sistem Informasi Persediaan Barang merupakan suatu sistem yang mengelola

BAB IV PERANCANGAN SISTEM. Sistem Informasi Persediaan Barang merupakan suatu sistem yang mengelola BAB IV PERANCANGAN SISTEM 4.1 Deskripsi Perancangan Sistem Informasi Persediaan Barang merupakan suatu sistem yang mengelola data stok barang. Sistem yang dirancang akan dikembangkan dengan memakai basis

Lebih terperinci

BAB IV DESKRIPSI KERJA PRAKTIK. satu usaha yang didirikan adalah Surya Mart. Saat ini Surya Mart masih

BAB IV DESKRIPSI KERJA PRAKTIK. satu usaha yang didirikan adalah Surya Mart. Saat ini Surya Mart masih BAB IV DESKRIPSI KERJA PRAKTIK PT. Layindo Surya Gemilang adalah perusahaan swasta yang bergerak di bidang perdagangan umum dan jasa. Perusahaan ini memiliki beberapa lingkup usaha meliputi kafe, franchise

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Teori-Teori Umum Pada subbab ini akan dijelaskan mengenai berbagai teori umum tentang pengertian Database, Database Lifecycle, Entity Relationship Modeling, Normalisasi, Metodologi

Lebih terperinci

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM BAB III ANALISIS DAN DESAIN SISTEM III.1. Analisa Masalah Proses pembuatan laporan keuangan yang berkaitan dengan Pendapatan dan Biaya operasional yang sedang berjalan pada CV. A3 Perfection masih menggunakan

Lebih terperinci

BAB II ANALISIS DAN PERANCANGAN

BAB II ANALISIS DAN PERANCANGAN BAB II ANALISIS DAN PERANCANGAN Analisis digunakan untuk mengetahui kebutuhan, setelah proses analisis akan dilakukan perancangan yang digunakan untuk mempermudah dalam mengolah data dan kemudian merancang

Lebih terperinci

ANALISIS DAN PERANCANGAN SISTEM BASIS DATA PEMBELIAN, PENJUALAN DAN PERSEDIAAN PADA UD. SRI REJEKI SKRIPSI. Oleh

ANALISIS DAN PERANCANGAN SISTEM BASIS DATA PEMBELIAN, PENJUALAN DAN PERSEDIAAN PADA UD. SRI REJEKI SKRIPSI. Oleh ANALISIS DAN PERANCANGAN SISTEM BASIS DATA PEMBELIAN, PENJUALAN DAN PERSEDIAAN PADA UD. SRI REJEKI SKRIPSI Oleh SHERLY 1000875111 HARIYONO 1000890195 MARTHIAS 1000890440 KELAS / KELOMPOK : 07 PJT / 04

Lebih terperinci

BAB 3 ANALISA DAN PERANCANGAN SISTEM BERJALAN

BAB 3 ANALISA DAN PERANCANGAN SISTEM BERJALAN BAB 3 ANALISA DAN PERANCANGAN SISTEM BERJALAN 3.1 Tentang Perusahaan Jakarta Communication Club ( JCC ) 1 Pusat Bahasa adalah lembaga institusi pendidikan yang berdiri sejak 3 Maret 1997. JCC mengalami

Lebih terperinci