BAB 3 ANALISIS KEBUTUHAN DAN PERANCANGAN BASIS DATA
3.1
Sejarah Perusahaan PT. Flash Mobile adalah perusahaan yang bergerak di bidang jasa telekomunikasi selular nasional berbasis CDMA dengan menggunakan Jaringan Cellular CDMA dari PT. Mobile-8 Telecom. Perusahaan ini didirikan pada tanggal 24 Agustus 2004 oleh Bapak DR.Ir Agus Mulyanto, berlokasi di Jl. Yos Sudarso 55, Jakarta. PT. Flashmobile menawarkan total solusi komunikasi untuk memenuhi kebutuhan Pelanggan Korporat dengan keuntungan memberikan keleluasaan untuk dapat terhubung dengan jaringan data perusahaan dan penghematan dan pengendalian biaya komunikasi corporate. Produk yang ditawarkan oleh PT. Flash Mobile antara lain Corporate Phone, Mobile Access Hunting, dan Data Communication (Mobile VPN). PT. Flash Mobile mempunyai visi untuk meningkatkan penjualan di tahun berikutnya, dengan memperbaiki sistem penjualan dan persediaan barang sehingga diharapkan dapat membantu dalam meningkatkan penjualan untuk tahun-tahun kedepan.
41
3.2
Struktur Organisasi Struktur organisasi di PT. Flash Mobile adalah sebagai berikut:
Dewan Komisaris
Presiden Direktur PR & Legal
Direktur Keuangan
Divisi Keuangan
Divisi Pembelian
Dewan Penasehat
Direktur Operasional
Direktur Bus & Dev
Deputi Direktur Operasional
Divisi Akuntansi
Teknik
Divisi
Divisi Budget
Divisi Marketing
Divisi Cust Service
Divisi HRD & GS
Gambar 3.1 Struktur Organisasi Perusahaan
42
Direktur Penjualan
Deputi Direktur Bus & Dev
3.3
Wewenang dan Tanggung Jawab Berikut ini adalah uraian tugas dan tanggung jawab dari masing-masing jabatan pada PT. Flash Mobile:
I.
Dewan Komisaris Tugas dari Dewan Komisaris meliputi : a. Bertugas mengawasi perusahaan perseroan oleh direksi. b. Berhak menerima laporan dari Presiden Direktur c. Setiap waktu rapat dewan komisaris berasarkan persetujuan lebih dari separuh jumlah anggota dewan ,dapat memutuskan untuk memberhentikan (sementara waktu atau lebih) anggota direksi dari jabatannya ,apabila melakukan tindakan yang bertentangan dengan anggaran dasar atau merugikan perseroan atau melalaikan kewajibannya . d. Bertanggung jawab kepada pemegang saham atau pemilik perusahaan. e. Dapat menempatkan orang lain yang merupakan orang keperjayaannya untuk menggantikan perannya
II.
Presiden Direktur Tugas Presiden direktur adalah: a. Memimpin Perusahaan secara langsung b. Menerima laporan dari Direktur Departemen c. Mengambil keputusan-keputusan dalam perusahaan d. Membawahi semua departemen
43
Dibantu oleh •
Dewan Penasehat Bertugas untuk mengamati jalannya perusahaan dan memberikan pendapat
•
Divisi pembelian Bertugas mengatur pembelian barang yang akan disalurkan ke distributor dan memeriksa kualitas serta masa berlaku dari barang yang dibeli
•
PR &Legal a. Membuat kontrak kerja dengan pihak-pihak diluar perusahaan. b. Membuat perjanjian dengan pihak luar c. Menghubungi pihak luar yang akan bekerja sama
III. Direktur Keuangan Tugas Direktur Keuangan adalah: a. Membawahi 3 Divisi (Divisi Keuangan, Akuntansi, Budget Control &Tax) b. Menerima dan memeriksa Laporan dari ketiga Divisi dibawahnya c. Melaporkan kegiatan kepada Presiden Direktur
Divisi yang dibawahi Direktur Keuangan adalah: •
Divisi Keuangan Tugasnya adalah menyusun rencana kerja dan anggaran perusahaan, memperbendaharaan sesuai dengan kebijakan yang telah ditetapkan oleh perusahaan dan mengeluarkan biaya atas transaksi yang terjadi ,menghitung gaji dan bonus karyawan.
44
•
Divisi Akuntansi Bertugas menyusun laporan keuangan setiap bulan ,mencatat transaksi akuntansi perusahaan ,dan menjaga keamanan harta milik perusahaan melalui system akuntansi
•
Divisi Budget Control &Tax Membuat anggaran dengan mengacu pada hasil dari laporan keuangan, dengan cara menganalisi ,sehingga bisa mengaalokasikan anggaran ke depan,juga memperkirakan anggaran pajak
IV. Direktur Operasional Tugas Direktur Operasional adalah: a. Membawahi 4 Divisi (Divisi Teknik ,Marketing, Customer service, HRD & GS) b. Menerima dan memeriksa Laporan dari keempat Divisi dibawahnya c. Melaporkan jalannya kegiatan kepada Presiden Direktur Dalam menjalankan tugasnya, Direktur Operasional dibantu oleh Deputy of Operasional Direktur
Divisi yang dibawahi Direktur Operasional adalah: •
Divisi Teknik Tugasnya adalah : a. Maintenance jaringan di perusahaan b. Mengatur Server untuk VPN
45
c. Mengatur PDSN d. Bertanggug jawab atas jalannya semua program e. Membuat system sesuai dengan kebutuhan yang diperlukan •
Divisi Marketing Tugasnya adalah : a. Mengadakan perencanaan pemasaran b. Mengadakan promosi hasil produksi c. Mengawasi pelaksanaan pemasaran hasil produksi d. Mencari informasi mengenai pesaing dan kebutuhan pasar
•
Divisi Customer Service Tugasnya adalah : a. Melayani keluhan dan saran dari pelanggan b. Melayani pertayaan-pertanyaan pelanggan c. Melayani pertanyaan ada kebutuhan pelanggan
•
Divisi HRD&GS Tugasnya adalah : a. Mencari Tenaga kerja menurut kebutuhan bagian yang membutuhkannya b. Melakukan seleksi terhadap Calon tenaga kerja dan menyimpan arsip data-data karyawan c. Memimpin urusan umum dan personalia perusahaan
46
V.
Direktur Business dan Development Tugas Direktur Business dan Development adalah : a. Dalam pelaksanaannya dibantu oleh Deputy of Bus.Dev.Direktor b. Pengamatan dilapangan untuk setiap proses yang berjalan c. Lebih mengarah ke corporate sales d. Memikirkan cara mengembangkan perusahaan e. Memikirkan ke bisnis korporasi f. Memikirkan program baru
VI. Direktur Penjualan Tugasnya adalah : a. Mengadakan penjualan barang. b. Bertanggung jawab dalam segala kegiatan yang berhubungan dengan penjualan c. Mengawasi pelaksanaan penjualan hasil produksi di seluruh jawa d. Menerima laporan hasil penjualan e. Lebih mengarah ke penjualan retail
47
3.4
Sistem yang Sedang Berjalan Prosedur yang sedang berjalan pada PT. Flash Mobile adalah sebagai berikut:
¾ Prosedur Pembelian Barang a. Bagian gudang mengajukan permintaan pembelian barang dan membuat surat permintaan pembelian sebanyak dua rangkap. Rangkap pertama untuk bagian pembelian, rangkap kedua untuk bagian gudang. b. Bagian pembelian menerima informasi mengenai daftar barang dari pemasok melalui telepon atau fax. c. Bagian pembelian menerima surat permintaan pembelian rangkap pertama dari bagian gudang. d. Bagian pembelian akan memesan barang dari pemasok berdasarkan surat permintaan pembelian. e. Bagian pembelian akan membuat surat order pembelian sebanyak empat rangkap. Rangkap pertama untuk pemasok, rangkap kedua untuk bagian gudang, rangkap ketiga untuk bagian akuntansi dan keuangan dan rangkap keempat untuk bagian pembelian.
¾ Prosedur Penerimaan Barang a. Bagian gudang menerima surat order pembelian rangkap kedua. b. Pada saat penerimaan barang dari pemasok, bagian gudang menerima faktur dan surat jalan dari pemasok. c. Setelah bagian gudang memeriksa barang, bagian gudang akan menandatangani surat.jalan pemasok sebagai bukti penerimaan barang. 48
d. Surat order pembelian rangkap kedua akan diarsipkan di bagian gudang. e. Faktur dan surat jalan pemasok akan diberikan ke bagian pembelian. f. Berdasarkan faktur dan surat jalan pemasok yang diterima, bagian pembelian akan mencatat transaksi pembelian yang terjadi. g. Bagian pembelian akan membuat nota pembelian sebanyak dua rangkap. Rangkap pertama beserta faktur dan surat jalan pemasok untuk bagian akuntansi dan keuangan, rangkap kedua akan diarsipkan bagian pembelian. h. Bagian akuntansi dan keuangan akan menerima nota pembelian rangkap pertama, faktur dan surat jalan pemasok i. Bila pembelian dilakukan secara kredit, bagian akuntansi dan keuangan akan mencatatnya dalam buku hutang dagang. j. Bila pembelian dilakukan secara tunai, bagian akuntansi dan keuangan akan mencatatnya dalam pengeluaran kas k. Nota pembelian rangkap pertama, faktur dan surat jalan pemasok akan diarsipkan pada bagian akuntansi dan keuangan
¾ Prosedur Penjualan Barang a. Bagian penjualan menerima pemesanan barang dari pelanggan yang mengidentifikasikan jenis dan kuantitas barang yang diminta b. Bagian penjualan mengeluarkan surat order penjualan kemudian disampaikan ke bagian akuntansi dan keuangan untuk meminta persetujuan.
49
c. Berdasarkan surat order penjualan, bagian akuntansi dan keuangan akan memeriksa batas kredit pelanggan pada buku piutang dagang.dan memutuskan menerima atau menolak pesanan pelanggan. d. Jika permintaan pesanan ditolak maka bagian penjualan akan mengkonfirmasikannya pada pelanggan dan pesanan batal. e. Jika permintaan pesanan diterima maka bagian penjualan akan mengirimkan surat order penjualan ke bagian gudang. f. Bagian gudang akan menandatangani surat order penjualan dan menyiapkan barang yang dipesan. Setelah itu, bagian gudang akan menyerahkan barang beserta surat order penjualan yang sudah ditandatangani ke bagian penjualan. g. Bagian penjualan akan menerima kembali surat order penjualan beserta barang yang diminta. h. Bagian penjualan akan memeriksa apakah barang sesuai dengan pesanan. i. Setelah itu bagian penjualan membuat surat jalan sebanyak dua rangkap dan faktur penjualan sebanyak tiga rangkap. j. Bagian penjualan mencatat transaksi penjualan yang terjadi. k. Bila penjualan dilakukan secara kredit, faktur penjualan rangkap pertama dan surat jalan rangkap pertama akan diarsipkan sementara pada bagian akuntansi dan keuangan. Berdasarkan faktur penjualan, bagian akuntansi dan keuangan akan mencatatnya dalam buku piutang dagang. l. Bila penjualan dilakukan secara tunai, faktur penjualan rangkap pertama dan surat jalan rangkap pertama beserta barang akan diserahkan pada pelanggan sementara bagian akuntansi dan keuangan akan menerima 50
surat jalan rangkap kedua dan faktu penjualan rangkap kedua beserta pembayaran dari pelanggan dan mencatatnya dalam buku penerimaan kas. m. Bagian akuntansi dan keuangan akan memperbarui daftar stok barang.
¾ Prosedur Retur Pembelian a. Saat terjadi retur pembelian, bagian pembelian akan membuat surat retur pembelian sebanyak tiga rangkap. Rangkap pertama dan ketiga untuk bagian gudang. Rangkap kedua untuk bagian akuntansi dan keuangan. b. Bagian gudang menerima surat retur pembelian rangkap pertama dan ketiga. c. Berdasarkan surat retur pembelian, bagian gudang akan menyiapkan barang yang akan diretur dan mengirimnya ke pemasok. Surat retur pembelian rangkap pertama dan ketiga ditandatangani oleh pemasok. d. Surat retur pembelian rangkap pertama beserta barang diserahkan ke pemasok. e. Surat retur pembelian rangkap ketiga diarsipkan bagian pembelian. f. Bagian akuntansi dan keuangan menerima surat retur pembelian rangkap kedua dan mengarsipkannya. g. Berdasarkan surat retur pembelian, bagian akuntansi dan keuangan akan memperbarui daftar stok barang.
51
¾ Prosedur Retur Penjualan a. Saat terjadi retur penjualan, bagian penjualan akan membuat bukti retur penjualan sebanyak dua rangkap. Rangkap pertama untuk bagian akuntansi dan keuangan,. rangkap kedua untuk bagian gudang b. Bagian gudang menerima bukti retur penjualan rangkap kedua. c. Bagian gudang akan memeriksa barang yang akan diretur oleh pelanggan dan menandatangani bukti retur penjualan rangkap kedua. d. Bukti retur penjualan rangkap kedua diarsipkan di bagian penjualan e. Bagian akuntansi dan keuangan menerima bukti retur penjualan rangkap pertama dan mengarsipkannya. f. Berdasarkan bukti retur penjualan, bagian akuntansi dan keuangan akan memperbarui daftar stok barang.
¾ Prosedur Pembayaran Hutang Dagang a. Pemasok akan menagih hutang saat faktur pembelian jatuh tempo. Bagian akuntansi dan keuangan akan mencocokkan faktur pemasok dan melakukan pembayaran pada pemasok. b. Bagian akuntansi dan keuangan akan memperbarui buku hutang dagang. c. Faktur dari pemasok akan diarsipkan oleh bagian akuntansi dan keuangan.
52
¾ Prosedur Penerimaan Piutang Dagang a. Bagian akuntansi dan keuangan akan menagih piutang pada pelanggan saat faktur penjualan jatuh tempo. b. Bagian akuntansi dan keuangan akan mengirimkan faktur penjualan kepada pelanggan. c. Setelah pelanggan melakukan pembayaran, bagian akuntansi dan keuangan akan menandai faktur penjualan tersebut telah dibayar. d. Bagian akuntansi dan keuangan akan mencatat penerimaan kas yang terjadi. e. Bagian akuntansi dan keuangan memperbarui buku piutang dagang. f. Faktur penjualan yang telah lunas tersebut akan diarsipkan bagian akuntansi dan keuangan
53
3.5
Bagan Alir Dokumen Untuk lebih jelas, prosedur yang berjalan dapat dilihat dari diagram alir sebagai berikut:
1. Prosedur Pembelian Barang
Gambar 3.2 Diagram Alir Pembelian Barang
54
2. Prosedur Penerimaan Barang
Gambar 3.3 Diagram Alir Penerimaan Barang
55
3. Prosedur Penjualan Barang
Gambar 3.4 Diagram Alir Penjualan Barang
56
Gambar 3.5 Diagram Alir Penjualan Barang (Lanjutan)
57
Gambar 3.6 Diagram Alir Penjualan Barang (Lanjutan)
58
4. Prosedur Retur Pembelian
Gambar 3.7 Diagram Alir Retur Pembelian
59
5. Prosedur Retur Penjualan
Gambar 3.8 Diagram Alir Retur Penjualan
60
6. Prosedur Pembayaran Hutang Dagang
Gambar 3.9 Diagram Alir Pembayaran Hutang
61
7. Prosedur Penerimaan Piutang Dagang
Gambar 3.10 Diagram Alir Penerimaan Piutang
62
3.6
Permasalahan yang Dihadapi 1. Kesulitan dalam membuat laporan penjualan dan mengetahui jumlah persediaan barang yang akurat setiap akhir bulan. 2. Pencarian data lama, karena harus mencari dari banyak berkas yang disimpan terpisah. 3. Keamanan data kurang terjamin karena data mengenai persediaan barang dan penjualan dapat dilihat semua pegawai.
3.7
Analisis Kebutuhan Informasi Sebagai perusahaan yang bergerak di bidang jasa telekomunikasi selular nasional berbasis CDMA, pihak manajemen PT. Flash Mobile menyadari perlu adanya data dan informasi yang penting bagi pihak manajemen dalam pengambilan keputusan yang tepat, cepat dan akurat untuk kemajuan perusahaannya. Hasil analisis kebutuhan informasi yang ada adalah:
Stok Barang
: Berisi informasi tentang persediaan barang di gudang
Pelanggan
: Berisi informasi tentang pelanggan
Pemasok
: Berisi informasi tentang data pemasok
Pegawai
: Berisi informasi tentang data pegawai
Retur Penjualan : Berisi informasi tentang daftar barang yang dikembalikan oleh pelanggan
Retur Pembelian : Berisi informasi tentang daftar barang yang dikembalikan oleh perusahaan
Penjualan
:
Berisi informasi tentang penjualan barang yang dilakukan perusahaan 63
Pembelian
: Berisi informasi tentang pembelian barang dari pemasok
Hutang
: Berisi informasi tentang pembayaran terhadap pembelian yang dilakukan perusahaan
Piutang
: Berisi informasi tentang pembayaran terhadap penjualan yang dilakukan perusahaan
3.8
Usulan Pemecahan Masalah 1. Merancang basis data untuk penyediaan data penjualan dan data persediaan. Transaksi-transaksi yang telah terjadi dapat diketahui oleh perusahaan untuk mendapatkan laporan secara cepat dan akurat serta lebih mudah dalam mencari data yang diperlukan. 2. Merancang basis data yang dilengkapi dengan batasan hak akses.
3.9
Perancangan Basis Data Merupakan suatu proses pembuatan sebuah basis data yang akan mendukung tujuan dan operasi suatu enterprise. Sistem basis data dirancang melalui tahap perancangan konseptual, perancangan logikal, dan perancangan fisikal.
3.9.1
Perancangan Konseptual Proses pembentukan model dari informasi yang digunakan dalam enterprise, independen dari keseluruhan aspek fisik. Model data dibangun dengan menggunakan informasi dari spesifikasi kebutuhan user. Langkah penting yang dilakukan dalam perancangan basis data konseptual adalah:
64
3.9.1.1
Identifikasi Entiti Tahap ini bertujuan untuk mengidentifikasi tipe entity yang akan digunakan.
No
Nama Entity
Alias
1
Stok Barang
Barang
Deskripsi Istilah
Kejadian
umum
yang Satu jenis barang dapat
menunjukkan cadangan disuplai
dari
satu
benda
dan
dapat
berdasarkan pemasok
hitungan fisik
dipesan oleh beberapa pelanggan
2
Pelanggan
Customer Istilah
umum
yang Pelanggan dapat mem-
menunjukkan seseorang beli lebih dari satu jenis atau perusahaan yang barang membeli barang 3
Pemasok
Supplier
Istilah
umum
yang Pemasok
dapat
me-
menunjukkan seseorang nyuplai lebih dari satu atau perusahaan yang jenis barang menyuplai barang 4
Pegawai
Staf
Istilah
umum
menunjukkan
yang Setiap pegawai dapat orang menangani satu atau
yang bekerja pada suatu lebih perusahaan 5
Penjualan
Sale
Istilah
umum
menunjukkan
transaksi
pe-
rusahaan yang Setiap penjualan dapat penge- dilakukan
dengan
luaran suatu barang dan dengan menjual satu memperoleh
imbalan atau lebih jenis barang
untuk pengeluaran itu
65
No
Nama Entity
6
Retur
Alias
Deskripsi Istilah
Penjualan
Kejadian
umum
yang Setiap
menunjukkan pengem- barang balian
suatu
pengembalian yang
terjadi
barang dari penjualan barang
yang telah dijual
dapat lebih dari satu barang
7
Pembelian
Purchase
Istilah
umum
menunjukkan olehan
suatu
dengan
yang Setiap pembelian dapat per- dilakukan
dengan
barang membelisatu atau lebih
pengorbanan jenis barang
tertentu 8
Retur
Istilah
Pembelian
umum
yang Setiap
menunjukkan pengem- barang balian
suatu
pengembalian yang
terjadi
barang dari pembelian barang
yang telah dibeli
dapat lebih dari satu barang
9
Hutang
Debet
Istilah
umum
yang Setiap transaksi hutang
menunjukkan transaksi mencatat hutang dari yang
terjadi
atas pembelian
secara
pembelian secara kredit kredit 10
Piutang
Kredit
Istilah
umum
yang Setiap
menunjukkan transaksi piutang yang
terjadi
mencatat
atas piutang dari penjualan
penjualan secara kredit
Tabel 3.1 Identifikasi Entiti
66
transaksi
secara kredit
3.9.1.2 Identifikasi Tipe Relasi Tahap ini bertujuan untuk mengidentifikasi relasi penting yang terdapat diantara tipe entity yang telah diidentifikasikan. Tipe relasi dapat diidentifikasi dengan beberapa tahap : •
Membuat ER diagram
Gambar 3.11 ER-Modelling
67
• No
Menentukan multiplicity dari tipe relasional Nama
Multiplicity
Relationship
Entity 1
2
3
4
Pembelian
Penjualan
Pegawai
Retur
Nama
Multiplicity
Entity 1..1
Mempunyai
Hutang
0..1
1..1
Mempunyai
ReturPembelian
0..*
1..*
Mempunyai
Pemasok
1..1
1..*
Mempunyai
Stok Barang
1..*
1..1
Mempunyai
Piutang
0..1
1..1
Mempunyai
ReturPenjualan
0..*
1..*
Mempunyai
Pelanggan
1..1
1..*
Mempunyai
Stok Barang
1..*
1..1
Menangani
Pembelian
1..*
1..1
Menangani
Penjualan
1..*
0..*
Menangani
Pegawai
0..*
1..*
Mempunyai
Stok Barang
1..*
1..*
Mempunyai
Stok Barang
1..*
Pembelian 5
Retur Penjualan
Tabel 3.2 Identifikasi Tipe Entiti
3.9.1.3 Identifikasi Atribut
68
Tahap ini bertujuan untuk mengidentifikasi tipe fakta tentang entity-entity dan relationship yang telah kita pilih
No
Nama Entity
1
Stok
KodeBrg
Kode Barang
Panjang dan Tipe Data 7 char
NamaBrg
Nama Barang
30 char
No
No
JenisBrg
Satuan
15 varchar
No
No
JmlStok
Jumlah Stok
int
No
No
HargaBeli
Harga Beli
money
No
No
HargaJual
Harga Jual
money
No
No
StokMin
Stok Minimum
int
No
No
Pelanggan KodePlg
Kode Pelanggan
7 char
No
No
NamaPlg
Nama Pelanggan
30 char
No
No
NamaKontak
Nama Kontak
30 char
No
No
AlmtPlg
Alamat Pelanggan 50 char
No
No
KodePos
Kode Pos
5 char
No
No
TelpPlg
Nomor Telepon
15 char
No
Yes
FaxPLg
Nomor Fax
15 char
No
No
Kota
Nama Kota
30 char
No
No
Barang
2
Atribut
Deskripsi
69
NULL
Multi Value
No
No
No
Nama Entity
3
Pemasok
4
5
Pegawai
Atribut
KodePms
Kode Pemasok
Panjang dan Tipe Data 7 char
NamaPms
Nama Pemasok
30 char
No
No
NamaKontak
Nama Kontak
30 char
No
No
AlmtPms
Alamat Pemasok
50 char
No
No
KodePos
Kode Pos
5 char
No
No
TelpPms
Nomor Telepon
15 char
No
Yes
FaxPms
Nomor Fax
15 char
No
No
Kota
Nama Kota
30 char
No
No
KodePgw
Kode Pegawai
7 char
No
No
NamaPgw
Nama Pegawai
30 varchar
No
No
JenisKel
Jenis Kelamin
1char
No
No
TglLahir
Tanggal Lahir
Datetime
No
No
AlmtPgw
Alamat Pegawai
50 char
No
No
Jabatan
Jabatan
20 char
No
No
Divisi
Divisi
20 char
No
No
No Nota Beli
7 char
No
No
NoOrdBeli
No Order Beli
7 char
No
No
TglNotaBeli
Tgl Nota Beli
Datetime
No
No
TglOrdBeli
Tgl Order Beli
Datetime
No
No
JnsPembelian
Jenis Pembelian
1char
No
No
KodePgw
Kode Pegawai
7 varchar
No
No
Pembelian NoNotaBeli
Deskripsi
70
NULL
Multi Value
No
No
No
6
7.
Nama Entity
Penjualan
Retur Pembelian
Atribut
Deskripsi
KodePms
Kode Pemasok
Panjang dan Tipe Data 7 char
KodeBrg
Kode Barang
7 char
No
Yes
Kuantitas
Kuantitas
6 varchar
No
No
HargaBeli
Harga Satuan
Money
No
Yes
TotalBeli
Total Beli
Money
No
No
NoFakJual
No Faktur Jual
7 char
No
No
NoOrdJual
No Order Jual
7 char
No
No
TglFakJual
Tgl Faktur Jual
Datetime
No
No
TglOrdJual
Tgl Order Jual
Datetime
No
No
JnsPenjualan
Jenis Penjualan
1 char
No
No
KodePgw
Kode Pegawai
7 varchar
No
No
KodePlg
Kode Pelanggan
7 char
No
No
KodeBrg
Kode Barang
7 char
No
Yes
Kuantitas
Kuantitas
6 varchar
No
No
HargaJual
Harga Satuan
Money
No
Yes
TotalJual
Total Jual
Money
No
No
NoReturBeli
No Retur Beli
7 char
No
No
NoNotaBeli
No Nota Beli
7 char
No
No
TglReturBeli
Tgl Retur Beli
Datetime
No
No
KodeBrg
Kode Barang
7 char
No
No
Kuantitas
Kuantitas
6 varchar
No
No
71
NULL
Multi Value
No
No
8
Retur Penjualan
9
10
Hutang
Piutang
Keterangan
Keterangan
50 varchar
No
No
NoReturJual
No Retur Jual
7 char
No
No
NoFakJual
No Faktur Jual
7 char
No
No
TglReturJual
Tgl Retur Jual
Datetime
No
No
KodeBrg
Kode Barang
7 char
No
No
Kuantitas
Kuantitas
6 varchar
No
No
Keterangan
Keterangan
50 varchar
No
No
KodeHut
Kode Hutang
7 char
No
No
NoNotaBeli
No Nota Beli
7 char
No
No
TglJthTemp
Jatuh Tempo
Datetime
No
No
TotalHut
Total Hutang
Money
No
No
Keterangan
Keterangan
50 varchar
No
No
KodePiut
Kode Piutang
7 char
No
No
NoFakJual
No Faktur Jual
7 char
No
No
TglJthTemp
Jatuh Tempo
Datetime
No
No
TotalPiut
Total Piutang
Money
No
No
StatusPiut
Status Piutang
I char
No
No
Keterangan
Keterangan
50 varchar
No
No
Tabel 3.3 Identifikasi Atribut
72
3.9.1.4 Menentukan Primary Key Tahap ini bertujuan untuk menetukan candidat key untuk setiap tipe entitas, jika ada lebih dari satu candidat key, untuk memilih satu sebagai primary key. Berikut ini adalah table candidat dan primary key: Nama Entitas
Candidate Key
Primary key
Stok Barang
KodeBrg
KodeBrg
NamaBrg Pelanggan
KodePlg
KodePlg
NamaPlg Pemasok
KodePms
KodePms
NamaPms Pegawai
KodePgw
KodePgw
NamaPgw Penjualan
NoFakJual
NoFakJual
TglFkJal Pembelian
NoNotaBeli
NoNotaBeli
TglNotaBeli Retur Penjualan
NoReturJual
NoReturJual
TglReturJual Retur Pembelian
NoReturBeli
NoReturBeli
TglReturBeli Piutang
KodePiut NoFakJual
73
KodePiut
Nama Entitas
Candidate Key
Primary key
Hutang
KodeHut
KodeHut
NoNotaBeli Penjualan
NoFakJual
NoFakJual
TglFkJal Pembelian
NoNotaBeli TglNotaBeli
Tabel 3.4 Identifikasi Primary Key
74
NoNotaBeli
Gambar 3.12 ER-Modelling dengan Primary key
75
3.9.1.5 Validasi Transaksi Tahap ini bertujuan untuk
menvalidasi transaksi untuk meyakinkan bahwa
model konseptual lokal mendukung transaksi yang dibutuhkan oleh tampilan. Transaksi yang terjadi adalah: Data Entry •
Masukkan detail dari stok barang
•
Masukkan detail dari pelanggan
•
Masukkan detail dari pegawai
•
Masukkan detail dari pemasok
•
Masukkan detail dari penjualan
•
Masukkan detail dari pembelian
•
Masukkan detail dari hutang
•
Masukkan detail dari piutang
Data Update/Delete •
Update/delete detail dari stok barang
•
Update/delete detail dari pelanggan
•
Update/delete detail dari pegawai
•
Update/delete detail dari pemasok
•
Update/delete detail dari penjualan
•
Update/delete detail dari pembelian
•
Update/delete detail dari hutang
•
Update/delete detail dari piutang
76
Data Queries: a. Menampilkan daftar pemesanan pembelian barang ke pemasok b. Menampilkan data hutang yang ada pada pemasok c. Menampilkan data pembelian barang pada pemasok d. Menampilkan data retur penjualan barang e. Menampilkan data piutang yang ada pada pelanggan f. Menampilkan data penjualan barang pada pelanggan g. Menampilkan daftar pemesanan barang penjualan dari pelanggan h. Menampilkan data retur pembelian barang i. Membuat surat order penjualan j. Membuat surat order pembelian k. Mencatat transaksi penjualan l. Mencatat transaksi pembelian m. Membuat surat retur penjualan n. Membuat surat retur pembelian o. Mencatat transaksi piutang p. Mencatat transaksi hutang
77
Gambar 3.13 Validasi Transaksi
78
3.9.2 Perancangan Logikal Perancangan basis data logical merupakan suatu prosers pembuatan model dengan menggunakan informasi yang diperoleh dari mperusahaan serta berdasarkan pada model data spesifik. Langkah penting yang dilakukan dalam merancang basis data logikal adalah:
3.9.2.1 Menghilangkan Fitur yang Tidak Kompatibel Tahap ini bertujuan untuk membersihkan model data konseptual local untuk menghapus fitur yang tidak kompatibel dengan model relasi.
•
Menghilangkan many-to-many Binary Relationship ~ Many-to-many antara Pembelian dengan StokBrg
Gambar 3.14 Relationship *:* antara Pembelian dan Stokbarang
Gambar 3.15 Dekomposisi relasi antara Pembelian dan Stokbarang
79
~ Many-to-many antara Penjualan dengan StokBrg
Gambar 3.16 Relationship *:* antara Stokbarang dan Penjualan
Gambar 3.17 Dekomposisi relasi antara Penjualan dan Stokbarang
~ Many-to-many antara Pembelian dengan StokBrg
Gambar 3.18 Relationship *:* antara Stokbarang dan Retur Pembelian
Gambar 3.19 Dekomposisi relasi antara Retur Pembelian dan Stokbarang
80
~ Many-to-many antara Retur Penjualan dengan StokBrg
Gambar 3.20 Relationship *:* antara Stokbarang dan Retur Penjualan
Gambar 3.21 Dekomposisi relasi antara Retur Penjualan dan Stokbarang
•
Menghilangkan many-to-many Rekursif Relationship
Gambar 3.22 Rekusif relationship pada Pegawai
Gambar 3.23 Hilangnya Rekusif relationship pada Pegawai
81
Gambar 3.24 Rekusif relationship pada Pegawai
Gambar 3.25 Hilangnya Rekusif relationship pada Pegawai
•
Menghilangkan Atribut Multivalue
Gambar 3.26 Atribut Multi Value pada Pelanggan
Gambar 3.27 Hilangnya Atribut Value pada Pelanggan
82
Gambar 3.28 Atribut Value pada Pemasok
Gambar 3.29 Hilangnya Atribut Value pada Pemasok
3.9.2.2 Menentukan Model Logikal Data Lokal Tahap ini bertujuan untuk membuat relasi untuk model data logikal lokal untuk menggambarkan entity-entity, relationship-relationship, dan atribut-atribut yang diidentifikasi.
StokBarang (KodeBrg, NamaBrg, Satuan, HargaBeli, HargaJual, JmlStok, StokMin) Primary Key KodeBrg Pelanggan ( KodePlg, NamaPlg, NamaKontak, AlmtPlg, KodePos, Telepon, Fax, Kota ) Primary Key KodePlg
83
TeleponPlg ( KodePlg, TelpPlg) Primary Key TelpPlg Foreign key KodePlg references Pelanggan (KodePlg) FaksPlg ( KodePlg, FaksPlg) Primary Key FaksPlg Foreign key KodePlg references Pelanggan (KodePlg) Pemasok ( KodePms, NamaPms, NamaKontak, AlmtPms, KodePos, Telepon, Fax, Kota ) Primary Key KodePms TeleponPms ( KodePms, TelpPms) Primary Key TelpPms Foreign key KodePms references Pemasok (KodePms) FaksPms ( KodePms, FaksPms) Primary Key FaksPms Foreign key KodePms references Pemasok (KodePms) Pegawai ( KodePgw, NamaPgw, JenisKel, TglLahir, AlmtPgw, Jabatan, Divisi ) Primary Key KodePgw Pembelian (NoNotaBeli, NoOrdBeli, TglNotaBeli, TglOrdBeli, JnsPembelian, KodePgw, KodePms, TotalBeli ) Primary Key NoNotaBeli Foreign Key KodePms references Pemasok ( KodePms)
84
PembelianDetil ( NoNotaBeli, KodeBrg, Kuantitas ) Primary Key NoNotaBeli, KodeBrg Foreign Key NoNotaBeli references Pembelian ( NoNotaBeli ) Foreign Key KodeBrg references StokBrg ( KodeBrg ) Penjualan ( NoFakJual, NoOrdJual, TglFakJual, TglOrdJual, JnsPenjualan, KodePgw, KodePlg, TotalJual ) Primary Key NoFakJual Foreign Key KodePlg references Pelanggan ( KodePlg ) PenjualanDetil ( NoFakJual, KodeBrg, Kuantitas ) Primary Key NoFakJual, KodeBrg Foreign Key NoFakJual references Penjualan( NoFakJual ) Foreign Key KodeBrg references StokBrg ( KodeBrg ) ReturPembelian ( NoReturBeli, NoNotaBeli, TglReturBeli) Primary Key NoReturBeli Foreign Key NoNotaBeli references Pembelian (NoNotaBeli ) ReturPembelianDetil ( NoReturBeli, KodeBrg, Kuantitas, Keterangan ) Primary Key NoReturBeli, KodeBrg Foreign Key NoReturBeli references ReturPembelian (NoReturBeli) Foreign Key KodeBrg references StokBrg ( KodeBrg ) ReturPenjualan ( NoReturJual, NoFakJual, TglReturJual ) Primary Key NoReturJual Foreign Key KodeBrg references StokBrg ( KodeBrg ) Foreign Key NoFakJual references Penjualan (NoFakJual )
85
ReturPenjualanDetil ( NoReturJual, KodeBrg, Kuantitas, Keterangan ) Primary Key NoReturJual, KodeBrg Foreign Key NoReturJual references ReturPenjualan (NoReturJual) Foreign Key KodeBrg references StokBrg ( KodeBrg ) Hutang ( KodeHut, NoNotaBeli, TglJthTemp, TotalHut, Keterangan ) Primary Key KodeHut Foreign Key NoNotaBeli references Pembelian ( NoNotaBeli ) Piutang ( KodePiut, NoFakJual, TglJthTemp, TotalPiut, Keterangan ) Primary Key KodeHut Foreign Key NoFakJual references Penjualan ( NoFakJual )
Tabel 3.5 Model Logikal Data Lokal
3.9.2.3 Memvalidasikan Relasi dengan Menggunakan Normalisasi Tahap ini bertujuan untuk memvalidasikan relasi-relasi dalam model data logikal lokal menggunakan teknik normalisasi.
Pembelian 1NF Sudah terjadi saat melakukan tahap menghilangkan fitur yang tidak kompatibel
2NF Pembelian ( NoNotaBeli, NoOrdBeli, TglNotaBeli, JnsPembelian) Pembelian Detil ( NoNotaBeli, KodeBrg, HargaBeli, Kuantitas, TotalBeli) 86
Order Pembelian ( NoOrdBeli, TglOrdBeli, KodePgw, KodePms) Order Pembelian Detil ( NoOrdBeli, KodeBrg, Kuantitas )
3NF Pembelian ( NoNotaBeli, NoOrdBeli, TglNotaBeli, JnsPembelian) Pembelian Detil ( NoNotaBeli, KodeBrg, HargaBeli, Kuantitas, TotalBeli) Order Pembelian ( NoOrdBeli, TglOrdBeli, KodePgw, KodePms ) Order Pembelian Detil ( NoOrdBeli, KodeBrg, Kuantitas )
Penjualan 1NF Sudah terjadi saat melakukan tahap menghilangkan fitur yang tidak kompatibel 2NF Penjualan : ( NoFakJual, NoOrdJual, TglFakJual, JnsPenjualan) Penjualan Detil : ( NoFakJual, KodeBrg, HargaJual, Kuantitas , TotalJual) Order Penjualan ( NoOrdJual, TglOrdJual, KodePgw, KodePlg) Order Penjualan Detil ( NoOrdJual, KodeBrg, Kuantitas ) 3NF Penjualan : ( NoFakJual, NoOrdJual, TglFakJual, JnsPenjualan) Penjualan Detil : ( NoFakJual, KodeBrg, HargaJual, Kuantitas, TotalJual) Order Penjualan ( NoOrdJual, TglOrdJual, KodePgw, KodePlg ) Order Penjualan Detil ( NoOrdJual, KodeBrg, Kuantitas )
87
Stok Barang 1NF StokBarang ( KodeBrg, NamaBrg, JenisBrg,HargaBeli, HargaJual, JmlStok, StokMin) 2NF StokBarang ( KodeBrg, NamaBrg, JenisBrg,HargaBeli, HargaJual, JmlStok, StokMin) 3NF StokBarang (KodeBrg, NamaBrg, JenisBrg,HargaBeli, HargaJual, JmlStok, StokMin)
Pelanggan 1NF Pelanggan ( KodePlg, NamaPlg, NamaKontak, AlmtPlg, TlpPlg, FaksPlg, KodePos, Kota) 2NF Pelanggan: ( KodePlg, NamaPlg, NamaKontak, AlmtPlg, KodePos, Kota) TeleponPlg (TlpPlg, KodePlg ) FaksPlg (FaksPlg, KodePlg ) 3NF Pelanggan: ( KodePlg, NamaPlg, NamaKontak, AlmtPlg, KodePos, Kota) TeleponPlg (TlpPlg, KodePlg ) FaksPlg (FaksPlg, KodePlg )
88
Pemasok 1NF Pemasok: ( KodePms, NamaPms, NamaKontak, AlmtPms, TelpPms, FaksPms, KodePos, Kota} 2NF Pemasok: ( KodePms, NamaPms, NamaKontak, AlmtPms, KodePos, Kota} TeleponPms (TlpPms, KodePms ) FaksPms (FaksPms, KodePms ) 3NF Pemasok: ( KodePms, NamaPms, NamaKontak, AlmtPms, KodePos, Kota} TeleponPms (TlpPms, KodePms ) FaksPms (FaksPms, KodePms )
Pegawai 1NF Pegawai: ( KodePgw, NamaPgw, JenisKel, TglLahir, AlmtPgw, Jabatan, Divisi) 2NF Pegawai: ( KodePgw, NamaPgw, JenisKel, TglLahir, AlmtPgw, Jabatan, Divisi) 3NF Pegawai: ( KodePgw, NamaPgw, JenisKel, TglLahir, AlmtPgw, Jabatan, Divisi)
Retur Pembelian 1NF Sudah terjadi saat melakukan tahap menghilangkan fitur yang tidak kompatibel 89
2Nf ReturPembelian ( NoReturBeli, NonotaBeli, TglReturBeli ) ReturPembelianDetil ( NoReturBeli, KodeBrg, Kuantitas, Keterangan ) 3NF ReturPembelian ( NoReturBeli, NonotaBeli, TglReturBeli ) ReturPembelianDetil ( NoReturBeli, KodeBrg, Kuantitas, Keterangan )
Retur Penjualan 1NF Sudah terjadi saat melakukan tahap menghilangkan fitur yang tidak kompatibel 2NF ReturPenjualan ( NoReturJual, NoFakJual, TglReturJual ) ReturPenjualanDetil ( NoReturJual, KodeBrg, Kuantitas, Keterangan ) 3NF ReturPenjualan ( NoReturJual, NoFakJual, TglReturJual ) ReturPenjualanDetil ( NoReturJual, KodeBrg, Kuantitas, Keterangan )
Hutang 1NF Hutang: ( KodeHut, NoNotaBeli, TglJthTemp, TotalHut, StatusHut, Keterangan) 2NF Hutang: ( KodeHut, NoNotaBeli, TglJthTemp, TotalHut, StatusHut, Keterangan) 3NF Hutang: ( KodeHut, NoNotaBeli, TglJthTemp, TotalHut, StatusHut, Keterangan) 90
Piutang 1NF Piutang: ( KodePiut, NoFakJual, TglJthTemp, TotalPiut, StatusPiut, Keterangan) 2NF Piutang: ( KodePiut, NoFakJual, TglJthTemp, TotalPiut, Keterangan) 3NF Piutang: ( KodePiut, NoFakJual, TglJthTemp, TotalPiut, Keterangan)
3.9.2.4 Memvalidasikan Relasi dengan Transaksi Tahap ini bertujuan untuk memvalidasikan relasi-relasi dalam model data logikal lokal mampu mendukung transaksi yang diperlukan user Transaksi yang terjadi adalah: a. Menampilkan daftar pemesanan pembelian barang ke pemasok Membaca atribut NamaPms dari entity Pemasok kemudian memasukkan data tersebut ke dalam entity OrdPembelian lalu di JOIN dengan entity OrdPembelianDetil. Data yang ditampilkan adalah NoOrdBeli, TglOrdBeli, KodePms, NamaPms, KodeBrg, Kuantitas
b. Menampilkan data hutang yang ada pada pemasok Membaca atribut NamaPlg dari entity Pelanggan kemudian memasukkan data tersebut ke dalam entity Hutang yang di JOIN dengan entity Pembelian lalu di JOIN dengan OrdPembelian dan di JOIN dengan Pemasok. Data yang ditampilkan adalah KodeHut, NoNotaBeli, KodePms, NamaPms, TglJthTemp, TotalHut dan Keterangan 91
c. Menampilkan data pembelian barang pada pemasok Membaca atribut NamaPms dari entity Pemasok kemudian memasukkan data tersebut ke dalam entity Pembelian yang di JOIN dengan entity PembelianDetil, di JOIN dengan OrdPembelian dan di JOIN dengan Pemasok. Data yang ditampilkan
adalah
NoNotaBeli,
TglNotaBeli,
KodePms,
NamaPms,
JnsPembelian, KodeBrg, Kuantitas, HargaBeli dan TotalBeli
d. Menampilkan data retur penjualan barang Membaca atribut NamaBrg dari entity StokBrg kemudian memasukkan data tersebut ke dalam entity ReturPenj yang dijoin dengan ReturPenjDetil. Data yang ditampilkan adalah NoReturJual, NoFakJual, TglReturJual, KodeBrg, NamaBrg, Kuantitas dan Keterangan
e. Menampilkan data Piutang yang ada pada pelanggan Membaca atribut NamaPlg dari entity Pelanggan kemudian memasukkan data tersebut ke dalam entity Piutang yang di JOIN dengan entity Penjualan lalu di JOIN dengan OrdPenjualan dan di JOIN dengan Pelanggan. Data yang ditampilkan adalah KodePiut, NoFakJual, KodePlg, NamaPlg, TglJthTemp, TotalPiut dan Keterangan
f. Menampilkan data penjualan barang pada pelanggan Membaca atribut NamaPlg dari entity Pelanggan kemudian memasukkan data tersebut ke dalam entity Penjualan yang di JOIN dengan entity PenjualanDetil lalu di JOIN dengan OrdPenjualan dan di JOIN dengan Pelanggan. Data yang 92
ditampilkan adalah NoFakJual, TglFakJual, KodePlg, NamaPlg, JnsPenjualan, KodeBrg, Kuantitas, HargaJual dan TotalJual g. Menampilkan daftar pemesanan barang penjualan dari pelanggan Membaca atribut NamaPlg dari entity Pelanggan kemudian memasukkan data tersebut ke dalam entity OrdPenjualan lalu di JOIN dengan entity OrdPenjualanDetil. Data yang ditampilkan adalah NoOrdJual, TglOrdJual, KodePlg, NamaPlg, KodeBrg, Kuantitas h. Menampilkan data retur pembelian barang Membaca atribut NamaBrg dari entity StokBrg kemudian memasukkan data tersebut ke dalam entity ReturPemb yang dijoin dengan ReturPembDetil. Data yang ditampilkan adalah NoReturBeli, NoNotaBeli, TglReturBeli, KodeBrg, NamaBrg, Kuantitas dan Keterangan. i. Membuat surat order penjualan Data yang dimasukkan dalam entity order penjualan dan order penjualan detil adalah NoOrdJual, TglOrdJual, KodePgw, KodePlg, KodeBrg dan Kuantitas j. Membuat surat order pembelian Data yang dimasukkan dalam entity order pembelian dan order pembelian detil adalah NoOrdBeli, TglOrdBeli, KodePgw, KodePms, KodeBrg dan Kuantitas k. Mencatat transaksi penjualan Data yang dimasukkan dalam entity penjualan dan penjualan detil
adalah
NoFakJual, NoOrdJual, TglFakJual, JnsPenjualan, KodeBrg, HargaJual, Kuantitas dan TotalJual
93
l. Mencatat transaksi pembelian Data yang dimasukkan dalam entity pembelian dan pembelian detil
adalah
NoNotaBeli, NoOrdBeli, TglNotaBeli, JnsPembelian, KodeBrg, HargaBeli, Kuantitas danTotalBeli
m. Membuat surat retur penjualan Data yang dimasukkan dalam entity retur penjualan dan retur penjualan detil adalah NoReturJual, NoFakJual, TglReturJual,
KodeBrg, Kuantitas dan
Keterangan
n. Membuat surat retur pembelian Data yang dimasukkan dalam entity retur pembelian dan retur pembelian detil adalah NoReturBeli, NonotaBeli, TglReturBeli, KodeBrg, Kuantitas dan Keterangan
o. Mencatat transaksi piutang Data yang dimasukkan dalam entity piutang adalah KodePiut, NoFakJual, TglJthTemp, TotalPiut, StatusPiut dan Keterangan
p. Mencatat transaksi hutang Data yang dimasukkan dalam entity hutang adalah KodeHut, NoNotaBeli, TglJthTemp, TotalHut, StatusHut dan Keterangan
94
3.9.2.5 Diagram ER untuk Menggambarkan Relasi Global Tahap ini bertujuan untuk menggambarkan model logical global yang diperoleh pada tahap sebelumnya.. ER relasi global dapat dilihat pada gambar dibawah ini:
Gambar 3.30 ER-Modelling Logikal Global
95
3.9.3
Perancangan Fisikal Dalam tahap ini perancangan sudah memperhatikan software apa yang digunakan, security dan integrity sistem yang akan dibuat, memory yang dipergunakan dan juga memperhatikan index untuk mempercepat pencarian. Langkah-langkah penting yang dilakukan adalah:
3.9.3.1 Pemilihan DBMS Pemilihan DBMS yang tepat untuk mendukung aplikasi database dapat dilakukan kapanpun sebelum menuju desain logical asalkan terdapat cukup informasi mengenai kebutuhan sistem. Langkah-langkah utama dalam memilih DBMS: •
Mendefinisikan syarat-syarat yang akan menjadi acuan Langkah ini bertujuan untuk mendeskripsikan kriteria kebutuhan user yang dibutuhkan dalam menentukan DBMS yang digunakan Berikut ini adalah fitur yang diperlukan berdasarkan kebutuhan user adalah o Keamanan o Kemudahan organisasi file o Kebutuhan memori o Kapasitas penyimpanan o Kemudahan Backup dan Recovery o Strategi pemecahan deadlock o Harga o Kebutuhan Hardware o Training dan User Support
96
•
Evaluasi produk
Microsoft
Microsoft
SQL Server
Access
Keamanan
8
6
9
Kemudahan organisasi file
8
7
10
Kebutuhan memori
8
8
6
Kapasitas penyimpanan
8
6
8
8
7
9
Strategi pemecahan deadlock
7
5
9
Harga
9
9
5
Kebutuhan Hardware
8
8
6
Training dan User Support
7
8
5
Total
71
64
67
DBMS Fitur
Kemudahan
Backup
dan
Oracle
Recovery
Tabel 3.6 Evaluasi Produk
•
Merekomendasikan pilihan dan memproduksi laporan Berdasarkan hasil evaluasi, kami memutuskan untuk menggunakan Microsoft SQL Server sebagai DBMS
97
3.9.3.2 Perancangan relational basis data Tahap ini bertujuan untuk memutuskan bagaimana caranya menggambarkan identitas relasi dasar dalam model data logikal global dalam target DBMS. Hasil dari tahap ini adalah:
Stok Barang Domain KodeBrg
variabel length character string, length 7
Domain NamaBrg
variabel length character string, length 30
Domain Satuan
variabel length character string, length 6
Domain JmlStok
int
Domain HargaBeli
variabel money, length 8
Domain HargaJual
variabel money, length 8
DomainStokMin
int
StokBarang ( KodeBrg
NOT NULL,
NamaBrg
NOT NULL,
JenisBrg
NOT NULL,
JmlStok
NOT NULL,
HargaBeli
NOT NULL,
Harga Jual
NOT NULL,
StokMin
NOT NULL,
Primary key (KodeBrg), )
98
Pelanggan Domain KodePlg
variabel length character string, length 7
Domain NamaPlg
variabel length character string, length 30
Domain NamaKontak
variabel length character string, length 30
Domain AlmtPlg
variabel length character string, length 50
Domain KodePos
variabel length character string, length 5
Domain Kota
variabel length character string, length 30
Pelanggan ( KodePlg
NOT NULL,
NamaPlg
NOT NULL,
NamaKontak
NOT NULL,
AlmtPlg
NOT NULL,
KodePos
NOT NULL,
Kota
NOT NULL,
Primary key (KodePlg) )
TeleponPlg Domain TelpPlg
variabel length character string, length 15
Domain KodePlg
variabel length character string, length 7
TeleponPlg( TelpPlg
NOT NULL
KodePlg
NOT NULL,
Primary key (TelpPlg), 99
Foreign Key KodePlg references Pelanggan (KodePlg) ON UPDATE CASCADE ON DELETE NO ACTION ) FaksPlg Domain FaksPlg
variabel length character string, length 15
Domain KodePlg
variabel length character string, length 7
FaksPlg( FaksPlg
NOT NULL
KodePlg
NOT NULL,
Primary key (FaksPlg), Foreign Key KodePlg references Pelanggan (KodePlg) ON UPDATE CASCADE ON DELETE NO ACTION )
Pemasok Domain KodePms
variabel length character string, length 7
Domain NamaPms
variabel length character string, length 30
Domain NamaKontak
variabel length character string, length 30
Domain AlmtPms
variabel length character string, length 50
Domain KodePos
variabel length character string, length 5
Domain Kota
variabel length character string, length 30
Pemasok ( KodePms
NOT NULL,
NamaPms
NOT NULL, 100
NamaKontak
NOT NULL,
AlmtPms
NOT NULL,
KodePos
NOT NULL,
Kota
NOT NULL,
Primary key (KodePms) )
TeleponPms Domain TelpPms
variabel length character string, length 15
Domain KodePms
variabel length character string, length 7
TeleponPlg( TelpPms
NOT NULL
KodePms
NOT NULL,
Primary key (TelpPms), Foreign Key KodePms references Pemasok (KodePms) ON UPDATE CASCADE ON DELETE NO ACTION )
FaksPms Domain FaksPms
variabel length character string, length 15
Domain KodePms
variabel length character string, length 7
FakPms ( FaksPms
NOT NULL
KodePms
NOT NULL, 101
Primary key (FaksPms), Foreign Key KodePms references Pemasok (KodePms) ON UPDATE CASCADE ON DELETE NO ACTION)
Pegawai Domain KodePgw
variabel length character string, length 7
Domain NamaPgw
variabel length character string, length 30
Domain JenisKel
variabel length character string, length 1
Domain TglLahir
variabel date, format short date
Domain AlmtPgw
variabel length character string, length 50
Domain Jabatan
variabel length character string, length 20
Domain Divisi
variabel length character string, length 20
Pegawai ( KodePgw
NOT NULL,
NamaPgw
NOT NULL,
JenisKel
NOT NULL,
TglLahir
NOT NULL,
AlmtPgw
NOT NULL,
Jabatan
NOT NULL,
Divisi
NOT NULL,
Primary key (KodePgw), )
102
Pembelian Domain NoNotaBeli
variabel length character string, length 7
Domain NoOrdBeli
variabel length character string, length 7
Domain TglNotaBeli
variabel date, format short date
Domain JnsPembelian
variabel length character string, length 1
Pembelian ( NoNotaBeli
NOT NULL,
NoOrdBeli
NOT NULL,
TglNotaBeli
NOT NULL,
JnsPembelian
NOT NULL,
Primary key (NoNotaBeli), Foreign Key NoOrdBeli references OrdPembelian (NoOrdBeli ) ON UPDATE CASCADE ON DELETE NOACTION)
Penjualan Domain NoFakJual
variabel length character string, length 7
Domain NoOrdJual
variabel length character string, length 7
Domain TglFakJual
variabel date, format short date
Domain JnsPenjualan
variabel length character string, length 1
Penjualan( NoFakJual
NOT NULL,
NoOrd Jual
NOT NULL,
TglFak Jual
NOT NULL,
JnsPenjualan
NOT NULL, 103
Primary key (NoFakJual), Foreign Key NoOrdJual references OrdPenjualan (NoOrdJual ) ON UPDATE CASCADE ON DELETE NO ACTION )
Pembelian Detil Domain NoNotaBeli
variabel length character string, length 7
Domain KodeBrg
variabel length character string, length 7
Domain HargaBeli
variabel money, length 8
Domain Kuantitas
variabel length character string, length 6
Domain TotalBeli
variabel money, length 8
Pembelian Detil ( NoNotaBeli
NOT NULL,
KodeBrg
NOT NULL,
HargaBeli
NOT NULL,
Kuantitas
NOT NULL,
TotalBeli
NOT NULL,
Primary key (NoNotaBeli, KodeBrg), Foreign Key NoNotaBeli references Pembelian ( NoNotaBeli ) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KodeBrg references StokBrg ( KodeBrg ) ON UPDATE CASCADE ON DELETE NO ACTION )
104
Penjualan Detil Domain NoFakJual
variabel length character string, length 7
Domain KodeBrg
variabel length character string, length 7
Domain HargaJual
variabel money, length 8
Domain Kuantitas
variabel length character string, length 6
Domain TotalJual
variabel money, length 8
Penjualan Detil ( NoFakJual
NOT NULL,
KodeBrg
NOT NULL,
HargaJual
NOT NULL,
Kuantitas
NOT NULL,
TotalJual
NOT NULL,
Primary key (NoFakJual, KodeBrg), Foreign Key NoFakJual references Penjualan (NoFakJual) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KodeBrg references StokBarang (KodeBrg) ON UPDATE CASCADE ON DELETE NO ACTION )
Retur Pembelian Domain NoReturBeli
variabel length character string, length 7
Domain NoNotaBeli
variabel length character string, length 7
Domain TglReturBeli
variabel date, format short date
Retur Pembelian ( 105
NoReturBeli
NOT NULL,
NoNotaBeli
NOT NULL,
TglReturBeli
NOT NULL,
Primary key (NoReturBeli), Foreign Key NoNotaBeli references Pembelian (NoNotaBeli ) ON UPDATE CASCADE ON DELETE NO ACTION )
Retur Pembelian Detil Domain NoReturBeli
variabel length character string, length 7
Domain KodeBrg
variabel length character string, length 7
Domain Kuantitas
variabel length character string, length 6
Domain Keterangan
variabel length character string, length 30
Retur Pembelian Detil ( NoReturBeli
NOT NULL,
KodeBrg
NOT NULL,
Kuantitas
NOT NULL,
Keterangan
NOT NULL,
Primary key (NoReturBeli), Foreign Key KodeBrg references StokBrg ( KodeBrg ) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key NoReturBeli references Retur Pembelian (NoReturBeli ) ON UPDATE CASCADE ON DELETE NO ACTION
106
Retur Penjualan Domain NoReturJual
variabel length character string, length 7
Domain NoFakturJual
variabel length character string, length 7
Domain TglReturJual
variabel date, format short date
Retur Penjualan ( NoReturJual
NOT NULL,
NoFakturJual
NOT NULL,
TglReturJual
NOT NULL,
Primary key (NoReturJuali), Foreign Key NoFakJual references Penjualan (NoFakJual ) ON UPDATE CASCADE ON DELETE NO ACTION )
Retur Penjualan Detil Domain NoReturJual
variabel length character string, length 7
Domain KodeBrg
variabel length character string, length 7
Domain Kuantitas
variabel length character string, length 6
Domain Keterangan
variabel length character string, length 30
Retur Penjualan Detil( NoReturJual
NOT NULL,
KodeBrg
NOT NULL,
Kuantitas
NOT NULL,
Keterangan
NOT NULL,
Primary key (NoReturJual), 107
Foreign Key KodeBrg references StokBrg ( KodeBrg ) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key NoReturJual references Retur Penjualan (NoReturJual ) ON UPDATE CASCADE ON DELETE NO ACTION)
Hutang Domain KodeHut
variabel length character string, length 7
Domain NoNotaBeli
variabel length character string, length 7
Domain TglJthTempo
variabel date, format short date
Domain TotalHut
variabel money, length 6
Domain Keterangan
variabel length character string, length 50
Hutang ( KodeHut
NOT NULL,
NoNotaBeli
NOT NULL,
TglJthTempo
NOT NULL,
TotalHut
NOT NULL,
Keterangan
NOT NULL,
Primary key (KodeHut), Foreign Key NoNotaBeli references Pembelian ( NoNotaBeli ) ON UPDATE CASCADE ON DELETE NO ACTION )
108
Piutang Domain KodePiut
variabel length character string, length 7
Domain NoFakJual
variabel length character string, length 7
Domain TglJthTempo
variabel date, format short date
Domain TotalPiut
variabel money, length 6
Domain Keterangan
variabel length character string, length 50
Piutang ( KodePiut
NOT NULL,
NoFakJual
NOT NULL,
TglJthTempo
NOT NULL,
TotalPiut
NOT NULL,
Keterangan
NOT NULL,
Primary key (KodePiut), Foreign Key NoFakJual references Penjualan ( NoFakJual ) ON UPDATE CASCADE ON DELETE NO ACTION )
OrdPembelian Domain NoOrdBeli
variabel length character string, length 7
Domain TglOrdBeli
variabel date, format short date
Domain KodePgw
variabel length character string, length 7
Domain KodePms
variabel length character string, length 7
OrdPembelian ( NoOrdBeli
NOT NULL, 109
TglOrdBeli
NOT NULL,
KodePgw
NOT NULL
KodePms
NOT NULL,
Primary key (NoOrdBeli), Foreign Key KodePms references Pemasok (KodePms) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KodePgw references Pegawai (KodePgw) ON UPDATE CASCADE ON DELETE NO ACTION )
OrdPenjualan Domain NoOrdJual
variabel length character string, length 7
Domain TglOrdJual
variabel date, format short date
Domain Kode Pgw
variabel length character string, length 7
Domain KodePlg
variabel length character string, length 7
OrdPenjualan ( NoOrdJual
NOT NULL,
TglOrdJual
NOT NULL,
KodePgw
NOT NULL
KodePlg
NOT NULL,
Primary key (NoOrdJual), Foreign Key KodePlg references Pelanggan( KodePlg ) ON UPDATE CASCADE ON DELETE NO ACTION) Foreign Key KodePgw references Pegawai (KodePgw) 110
ON UPDATE CASCADE ON DELETE NO ACTION )
OrdPembelianDetil Domain NoOrdBeli
variabel length character string, length 7
Domain KodeBrg Domain Kuantitas
variabel length character string, length 7
OrdPembelian ( NoOrdBeli
NOT NULL,
KodeBrg
NOT NULL,
Kuantitas
NOT NULL,
Primary key (NoOrdBeli, KodeBrg), Foreign Key NoOrdBeli references OrderPembelian ( NoOrdBeli ) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KodeBrg references StokBrg ( KodeBrg ) ON UPDATE CASCADE ON DELETE NO ACTION )
OrdPenjualanDetil Domain NoOrdJual
variabel length character string, length 7
Domain KodeBrg
variabel date, format short date
Domain Kuantitas
variabel length character string, length 7
OrdPenjualan ( NoOrdJual
NOT NULL, 111
KodeBrg
NOT NULL,
Kuantitas
NOT NULL,
Primary key (NoOrdJual, KodeBrg), Foreign Key NoOrdJual references OrderPenjualan ( NoOrdJual ) ON UPDATE CASCADE ON DELETE NO ACTION) Foreign Key KodeBrg references StokBrg ( KodeBrg ) ON UPDATE CASCADE ON DELETE NO ACTION) )
3.9.3.3 Analisa Transaksi Analisa transaksi bertujuan untuk memeahami fungsionalitas dari transaksi yang akan berjalan pada basis data dan untuk menganalisa transaksi yang penting. Dalam menganalisa transaksi dicoba untuk mengidentifikasikan kriteria kinerja sebagai berikut: Adapun analisis transaksi-transaksi yang ada adalah sebagai berikut: Transaksi
(a) Menampilkan daftar pemesanan pembelian barang ke pemasok
CREATE VIEW VwOrdPemb as select a. NoOrdBeli, TglOrdBeli, a.KodePms, c.NamaPms, KodeBrg, Kuantitas from OrdPemb a join OrdPembDetil b on a. NoOrdBeli = b. NoOrdBeli join pemasok c on a.KodePms = c.KodePms
112
Transaksi
(b) Menampilkan data Hutang yang ada pada pemasok
CREATE VIEW VwHutang as SELECT KodeHut, a.NoNotaBeli, c.KodePms, d.NamaPms, TglJthTemp, TotalHut, Keterangan from Hutang a join Pembelian b on a. NoNotaBeli = b. NoNotaBeli join OrdPemb c on b.NoOrdBeli = c.NoOrdBeli join Pemasok d on c.KodePms = d.KodePms
Transaksi
(c) Menampilkan data pembelian barang pada pemasok
CREATE VIEW VwPembelian as SELECT a.NoNotaBeli, TglNotaBeli, c.KodePms, d.NamaPms, JnsPembelian, KodeBrg, Kuantitas, HargaBeli, TotalBeli from Pembelian a join PembelianDetil b on a. NoNotaBeli = b. NoNotaBeli join OrdPemb c on a.NoOrdBeli = c.NoOrdBeli join Pemasok d on c.KodePms = d.KodePms
Transaksi
(d) Menampilkan data retur penjualan barang
CREATE VIEW VwRetPenj as
113
SELECT a.NoReturJual, NoFakJual, TglReturJual, b.KodeBrg, NamaBrg, Kuantitas, Keterangan from ReturPenj a join ReturPenjDetil b on a. NoReturJual = b. NoReturJual join StokBrg c on b.KodeBrg = c.KodeBrg
Transaksi
(e) Menampilkan data Piutang yang ada pada pelanggan
CREATE VIEW VwPiutang as SELECT KodePiut, a.NoFakJual, c.KodePlg, d.NamaPlg, TglJthTemp, TotalPiut, Keterangan from Piutang a join Penjualan b on a. NoFakJual = b. NoFakJual join OrdPenj c on b.NoOrdJual = c.NoOrdJual join Pelanggan d on c.KodePlg = d.KodePlg
Transaksi
(f) Menampilkan data penjualan barang pada pelanggan
CREATE VIEW VwPenjualan as SELECT a.NoFakJual, TglFakJual, c.KodePlg, d.NamaPlg, JnsPenjualan, KodeBrg, Kuantitas, HargaJual, TotalJual from Penjualan a join PenjualanDetil b on a. NoFakJual = b. NoFakJual join OrdPenj c
114
on a.NoOrdJual = c.NoOrdJual join Pelanggan d on c.KodePlg = d.KodePlg
Transaksi
(g) Menampilkan daftar pemesanan barang penjualan dari pelanggan
CREATE VIEW VwOrdPenj as select a. NoOrdJual, TglOrdJual, a.KodePlg, c.NamaPlg, KodeBrg, Kuantitas from OrdPenj a join OrdPenjDetil b on a. NoOrdJual = b. NoOrdJual join pelanggan c on a.KodePlg = c.KodePlg
Transaksi
(h) Menampilkan data retur pembelian barang
CREATE VIEW VwRetPemb as SELECT a.NoReturBeli,NoNotaBeli, TglReturBeli, b.KodeBrg, NamaBrg, Kuantitas, Keterangan from ReturPemb ajoin ReturPembDetil b on a. NoReturBeli = b. NoReturBeli join StokBrg c on b.KodeBrg = c.KodeBrg
Transaksi
(i) Membuat surat order penjualan
create proc inputOrdPemb @NoOrdBeli char(7), @TglOrdBeli datetime, @KodePms varchar(7)
115
as insert into OrdPemb values(@NoOrdBeli, @TglOrdBeli ,@KodePms )
create proc inputOrdPembDetil @NoOrdBeli char(7), @KodeBrg char (7), @Kuantitas int as insert into OrdPembDetil values(@NoOrdBeli,@KodeBrg ,@Kuantitas )
Transaksi
(j) Membuat surat order pembelian
create proc inputOrdPenj @NoOrdJual char(7), @TglOrdJual datetime, @KodePlg varchar(7) as insert into OrdPenj values(@NoOrdJual, @TglOrdJual ,@KodePlg )
create proc inputOrdPenjDetil @NoOrdJual char(7), @KodeBrg char (7), @Kuantitas int as insert into OrdPenjDetil values(@NoOrdJual ,@KodeBrg ,@Kuantitas )
Transaksi
(k) Mencatat transaksi penjualan
create proc inputPenj @NoFakJual char(7), @NoOrdJual char(7), @TglFakJual Datetime, @JnsPembelian char(8) as insert into Penjualan values(@NoFakJual ,@NoOrdJual ,@TglFakJual ,
116
@JnsPenjualan ) create proc inputPenjDetil @NoFakJual char(7), @KodeBrg char(7), @HargaJual money, @Kuantitas char(6), @TotalJual money as insert into PenjualanDetil values(@NoFakJual ,@KodeBrg ,@HargaJual , @Kuantitas ,@TotalJual )
Transaksi
(l) Mencatat transaksi pembelian
create proc inputPemb @NoNotaBeli char(7), @NoOrdBeli char(7), @TglNotaBeli Datetime, @JnsPembelian char(8) as insert into Pembelian values(@NoNotaBeli ,@NoOrdBeli ,@TglNotaBeli , @JnsPembelian )
create proc inputPembDetil @NoNotaBeli char(7), @KodeBrg char(7), @HargaBeli char(10), @Kuantitas char(6), as insert into PembelianDetil values(@NoNotaBeli ,@KodeBrg ,@HargaBeli , @Kuantitas)
Transaksi
(m) Membuat surat retur penjualan
create proc inputReturPenj
117
@NoReturJual char(7), @NoFakJual char(7), @TglReturJual Datetime as insert into ReturPenj values(@NoReturJual ,@NoFakJual ,@TglReturJual )
create proc inputReturPenjDetil @NoReturJual char(7), @KodeBrg char(7), @Kuantitas char(6), @Keterangan char (30) as insert into ReturPenjDetil values(@NoReturJual ,@KodeBrg ,@Kuantitas, @Keterangan )
Transaksi
(n) Membuat surat retur pembelian
create proc inputReturPemb @NoReturBeli char(7), @NoNotaBeli char(7), @TglReturBeli Datetime as insert into ReturPemb values(@NoReturBeli ,@NoNotaBeli ,@TglReturBeli )
create proc inputReturPembDetil @NoReturBeli char(7), @KodeBrg char(7), @Kuantitas char(6), @Keterangan char (30) insert into ReturPembDetil values(@NoReturBeli ,@KodeBrg ,@Kuantitas,
118
@Keterangan )
Transaksi
(o) Mencatat transaksi piutang
create proc inputPiutang @KodePiut char(7), @NoFakJual char(7), @TglJthTemp Datetime, @TotalPiut money, @Keterangan char(30) as insert into Piutang values(@KodePiut ,@NoFakJual ,@TglJthTemp , @TotalPiut , @Keterangan )
Transaksi
(p) Mencatat transaksi hutang
create proc inputHutang @KodeHut char(7), @NoNotaBeli char(7), @TglJthTemp Datetime, @TotalHut money, @Keterangan char(30) as insert into Hutang values(@KodeHut ,@NoNotaBeli ,@TglJthTemp , @TotalHut , @Keterangan )
119
Secara jelasnya analisa transaksi untuk mengetahui tabel apa saja yang berhubungan jika suatu transaksi terjadi dapat dilihat pada tabel berikut: Transaksi
A I
StokBarang
B R U D I
C R U D I
X
D R U D I
R U D
X
X
Pelanggan TelpPlg FaksPlg Pemasok
X
X
X
X
X
TelpPms FaksPms Pegawai Penjualan PenjualanDetil Pembelian PembelianDetil
X
X
ReturPenjualan ReturPenjualanDetil ReturPembelian
X
ReturPembelianDetil
X
Hutang
X
Piutang OrdPenjualan OrdPembelian
X
X
OrdPenjualanDetil OrdPembelianDetil
X
120
Transaksi
E
F
I
R U D I
H
R U D I
R U D I
R U D
X
X
X
X
X
X
X
X
StokBarang Pelanggan
G
TelpPlg FaksPlg Pemasok TelpPms FaksPms Pegawai Penjualan PenjualanDetil
X
X
Pembelian PembelianDetil ReturPenjualan
X
ReturPenjualanDetil
X
ReturPembelian ReturPembelianDetil Hutang Piutang OrdPenjualan
X X
X
OrdPembelian OrdPenjualanDetil
X
OrdPembelianDetil
121
Transaksi
I
J
K
L
I
R U D I
R U D I
R U D I
R U D
StokBarang
X
X
X
X
Pelanggan
X
TelpPlg FaksPlg Pemasok
X
TelpPms FaksPms Pegawai
X
X
Penjualan
X
PenjualanDetil
X
Pembelian
X
PembelianDetil
X
ReturPenjualan ReturPenjualanDetil ReturPembelian ReturPembelianDetil Hutang Piutang OrdPenjualan
X
OrdPembelian OrdPenjualanDetil OrdPembelianDetil
X X
X
X X
X
122
X
Transaksi
M I
StokBarang
N
O
R U D I
R U D I
X
X
P R U D I
R U D
Pelanggan TelpPlg FaksPlg Pemasok TelpPms FaksPms Pegawai Penjualan
X
X
PenjualanDetil Pembelian
X
X
PembelianDetil ReturPenjualan
X
ReturPenjualanDetil
X
ReturPembelian
X
ReturPembelianDetil
X
Hutang
X
Piutang
X
OrdPenjualan OrdPembelian OrdPenjualanDetil OrdPembelianDetil
Tabel 3.7 Analisa Transaksi
123
3.9.3.4 Pemilihan Organisasi File Tujuan dari pemilihan organisasi file adalah untuk menentukan subuah organisasi file yang efisien untuk setiap relasi dasar. Dalam basis data persediaan dan penjualan ini digunakan organisasi file indeks clustered, karena record data dilakukan secara berurutan sesuai dengan urutan key-nya. Hal lain yang dipertimbangkan adalah organisasi file dengan indeks clustered akan sempurna apabila tidak banyak
3.9.3.5 Pemilihan Indeks Langkah ini bertujuan untuk menentukan apakah penambahan indeks akan meningkatkan kinerja suatu sistem. Ada dua bentuk files indexes, yaitu clustered dan non-clustered. o
Clustered : Mengatur baris-baris pada tabel kedalam urutan tertentu.
o
Non-clustered : Memiliki struktur yang terpisah dari tabel. Urutan fisik dari baris tabel tidak mengikuti ukuran dari file indeks. Dalam hal ini pemilihan atribut untuk clustering suatu tuple harus diperhatikan
beberapa syarat: o
Atribut yang sering digunakan untuk operasi join, dalam hal ini operasi join akan lebif efisien.
o
Atribut yang sering digunakan untuk mengakses tuple dalam sebuah relasi dalam sebuah permintaan dari atribut tersebut.
124
Berikut ini adalah tabel dari pemilihan indeks: Entity
Nama Indeks
Primary Key
StokBarang
KodeBrgdex
KodeBrg
Pelanggan
KodePlgdex
KodePlg
Pemasok
KodePmsdex
KodePms
Pegawai
KodePgwdex
KodePgw
Penjualan
NoFakJualdex
NoFakJual
PenjualanDetil
NoFakJualdex2
NofakJual, KodeBrg
Pembelian
NoNotaBelidex
NoNotaBeli
PembelianDetil
NoNotaBelidex2
NoNotaBeli, KodeBrg
ReturPenjualan
NoReturjualdex
NoReturJual
ReturPembelian
NoReturBelidex
NoReturBeli
Hutang
KodeHutdex
KodeHut
Piutang
KodePiutdex
KodePiut
OrdPenjualan
NoOrdJualdex
NoOrdJual
OrdPembelian
NoOrdBelidex2
NoOrdBeli
OrdPenjualanDetil
NoOrdJualdex
NoOrdJual, KodeBrg
OrdPembelianDetil
NoOrdBelidex2
NoOrdBeli, KodeBrg
Tabel 3.8 Pemilihan Indeks
125
Basis data persediaan dan penjualan dibuat indeksnya dengan menggunakan SQL Server 2000, yang dapat dilihat sebagai berikut: CREATE UNIQUE INDEX KodeBrgdex ON StokBarang (KodeBrg) CREATE UNIQUE INDEX KodePlgdex ON Pelanggan (KodePlg) CREATE UNIQUE INDEX KodePmsdex ON Pemasok (KodePms) CREATE UNIQUE INDEX KodePgwdex ON Pegawai (KodePgw) CREATE UNIQUE INDEX NoFakJualdex ON Penjualan (NoFakJual) CREATE UNIQUE INDEX NoNotaBelidex ON Pembelian (NoNotaBeli) CREATE UNIQUE INDEX NoFakJualdex ON Penjualan (NoFakJual) CREATE UNIQUE INDEX NoreturJualdex ON ReturPenjualan (NoReturJual) CREATE UNIQUE INDEX NoreturBelidex ON returPembelian (NoReturBeli) CREATE UNIQUE INDEX KodePiutdex ON Piutang (KodePiut) CREATE UNIQUE INDEX KodeHutdex ON Hutang (KodeHut) CREATE UNIQUE INDEX NoNotaBelidex2 ON PembelianDetil (NoNotaBeli, KodeBrg) CREATE UNIQUE INDEX NoFakJualdex ON PenjualanDetil (NofakJual, KodeBrg) CREATE UNIQUE INDEX NoOrdBelidex ON OrdPembelian (NoOrdBeli) CREATE UNIQUE INDEX NoOrdJualdex ON OrdPenjualan (NoOrdJual) CREATE UNIQUE INDEX NoOrdBelidex2 ON OrdPembDetil (NoOrdBeli, KodeBrg) CREATE UNIQUE INDEX NoOrdJualdex2 ON OrdPenjDetil (NoOrdJual, KodeBrg)
126
3.9.3.6 Estimasi Disk Space Perhitungan kapasitas penyimpanan yang dibutuhkan perusahaan dengan perkiraan yaitu: Nama Field KodeBrg NamaBrg Satuan JmlStok Harga Beli Harga Jual
Tipe Char Char Varchar Integer Money Money
Ukuran 7 30 6 4 8 8
Tabel 3.9 Tabel StokBarang Kapasitas dari tabel StokBarang adalah 59bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*59 = 184.080 bytes atau 179,77 Kbytes
Nama Field KodePlg NamaPlg NamaKontak AlmtPlg KodePos Kota
Tipe Char Char Char Char Char Char
Ukuran 7 30 30 50 5 30 Tabel 3.10 Pelanggan
Kapasitas dari tabel Pelanggan adalah 152 bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*152 = 474240 bytes atau 459,42 Kbytes 127
Nama Field FaxPlg KodePlg
Tipe Char Char
Ukuran 15 7
Tabel 3.11 Telepon Pelanggan Kapasitas dari tabel Telepon Pelanggan adalah 22 bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*22 = 68640 bytes atau 66,49 Kbytes
Nama Field FaxPlg KodePlg
Tipe Char Char
Ukuran 15 7
Tabel 3.12 Faks Pelanggan Kapasitas dari tabel Faks Pelanggan adalah 22 bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*22 = 68640 bytes atau 66,49 Kbytes
Nama Field KodePms NamaPms NamaKontak AlmtPms KodePos Kota
Tipe Char Char Char Char Char Char
Ukuran 7 30 30 50 5 30
Tabel 3.13 Pemasok 128
Kapasitas dari tabel Pemasok adalah 152 bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*152 = 474240 bytes atau 459,42 Kbytes
Nama Field TelpPms KodePms
Tipe Char Char
Ukuran 15 7
Tabel 3.14 Telepon Pemasok Kapasitas dari tabel Telepon Pemasok adalah 22 bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*22 = 68640 bytes atau 66,49 Kbytes
Nama Field FaksPms KodePms
Tipe Char Char
Ukuran 15 7
Tabel 3.15 Faks Pemasok Kapasitas dari tabel Telepon Pemasok adalah 22 bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*22 = 68640 bytes atau 66,49 Kbytes
129
Nama Field KodePgw NamaPgw JenisKel TglLahir AlmtPgw Jabatan Divisi
Tipe Char Varchar Char Date Char Char Char
Ukuran 7 30 1 8 50 20 20
Tabel 3.16 Pegawai Kapasitas dari tabel Pegawai adalah 136 bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*136 = 424320 bytes atau 411,06 Kbytes
Nama Field NoNotaBeli NoOrdBeli TglNotaBeli JnsPembelian
Tipe Char Char Date Char
Ukuran 7 7 8 1
Tabel 3.17 Pembelian Kapasitas dari tabel Pembelian adalah 23 bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*23 = 71760 bytes atau 69,52 Kbytes
130
Nama Field NoFakJual NoOrdJual TglFakJual JnsPenjualan
Tipe Char Char Date Char
Ukuran 7 7 8 1 Tabel 3.18 Penjualan
Kapasitas dari tabel Penjualan adalah 23 bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*23 = 71760 bytes atau 69,52 Kbytes
Nama Field NoNotaBeli KodeBrg Harga Beli Kuantitas TotalBeli
Tipe Char Char Money Char Money
Ukuran 7 7 8 6 8
Tabel 3.19 Pembelian Detil
Kapasitas dari tabel Pembelian Detil adalah 36 bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*36 = 112320 bytes atau 108,81 Kbytes
131
Nama Field NoFakJual KodeBrg Harga Jual Kuantitas TotalJual
Tipe Char Char Money Char Money
Ukuran 7 7 8 6 8
Tabel 3.20 Penjualan Detil
Kapasitas dari tabel Penjualan Detil adalah 36 bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*36 = 112320 bytes atau 108,81 Kbytes
Nama Field NoReturBeli NoNotaBeli TglReturBeli
Tipe Char Char Time
Ukuran 7 7 8
Tabel 3.21 Retur Pembelian
Kapasitas dari tabel Retur Pembelian adalah 22 bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*22 = 68640 bytes atau 66,49 Kbytes
132
Nama Field NoReturBeli KodeBrg Kuantitas Keterangan
Tipe Char Char VarChar Varchar
Ukuran 7 7 6 30
Tabel 3.22 Retur Pembelian Detil
Kapasitas dari tabel Retur Pembelian Detil adalah 50 bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*50 = 156000 bytes atau 151,13 Kbytes
Nama Field NoReturJual NoFakturJual TglReturJual
Tipe Char Char Time
Ukuran 7 7 8
Tabel 3.23 Retur Penjualan
Kapasitas dari tabel Retur Penjualan adalah 22 bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*22 = 68640 bytes atau 66,49 Kbytes
133
Nama Field NoReturJual KodeBrg Kuantitas Keterangan
Tipe Char Char VarChar Varchar
Ukuran 7 7 6 30
Tabel 3.24 Retur Penjualan Detil
Kapasitas dari tabel Retur Penjualan Detil adalah 50 bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*50 = 156000 bytes atau 151,13 Kbytes
Nama Field KodeHut NoNotaBeli TglJthTemp TotalHut Keterangan
Tipe Char Char Date Money VarChar
Ukuran 7 7 8 6 50
Tabel 3.25 Hutang
Kapasitas dari tabel Hutang adalah 78bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*78 = 243360 bytes atau 235,76 Kbytes
134
Nama Field KodePiut NoFakJual TglJthTemp TotalPiut Keterangan
Tipe Char Char Date Money VarChar
Ukuran 7 7 8 6 50 Tabel 3.26 Piutang
Kapasitas dari tabel Piutang adalah 78bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*78 = 243360 bytes atau 235,76 Kbytes
Nama Field NoOrdBeli TglOrdBeli KodePgw KodePms
Tipe Char Date Char Char
Ukuran 7 8 7 7 Tabel 3.27 OrdPembelian
Kapasitas dari tabel OrdPembelian adalah 29bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*29 = 90480 bytes atau 87,65 Kbytes
135
Nama Field NoOrdJual TglOrdJual KodePgw KodePlg
Tipe Char Date Char Char
Ukuran 7 8 7 7 Tabel 3.28 OrdPenjualan
Kapasitas dari tabel OrdPenjualan adalah 29bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*29 = 90480 bytes atau 87,65 Kbytes
Nama Field NoOrdBeli KodeBrg Kuantitas
Tipe Char Char Char
Ukuran 7 7 7
Tabel 3.29 OrdPembelianDetil Kapasitas dari tabel OrdPembelianDetil adalah 21bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*21 = 65520 bytes atau 63,47 Kbytes
Nama Field NoOrdJual KodeBrg Kuantitas
Tipe Char Char Char
Ukuran 7 7 7
Tabel 3.30 OrdPenjualanDetil
136
Kapasitas dari tabel OrdPenjualanDetil adalah 21bytes Diperkirakan dalam 1 hari terjadi 10 transaksi Dalam 1 tahun, pertumbuhan tabel ini adalah 10*26*12*21 = 65520 bytes atau 63,47 Kbytes
Nama Tabel
Kapasitas dibutuhkan 1 tahun (KBytes)
StokBarang
179,77
Pelanggan
459,42
TelpPlg
66,49
FaksPlg
66,49
Pemasok
459,42
TelpPms
66,49
FaksPms
66,49
Pegawai
411,06
Penjualan
69,52
PenjualanDetil
69,52
Pembelian
108,81
PembelianDetil
108,81
ReturPenjualan
66,49
ReturPenjualanDetil
151,13
ReturPembelian
66,49
ReturPembelianDetil
151,13
Hutang
235,76
Piutang
235,76
OrdPenjualan
87,65
OrdPembelian
87,65
OrdPenjualanDetil
63,47
OrdPembelianDetil
63,47 137
Total space yang dibutuhkan dalam 1 tahun = 3341,29 Kbytes. Total space yang dibutuhkan dalam 3 tahun : 3341,29 Kbytes x 3 = 10023,87 Kbytes
Tabel 3.31 Estimasi Kebutuhan Storage
3.9.3.7 Merancang Mekanisme Keamanan Digunakan untuk membatasi hak akses kepada pemakai yang bertujuan untuk menjaga keamanan informasi perusahaan. Dibuat sebuah tabel yang menjelaskan hak akses pemakai yang bertujuan untuk menjaga keamanan informasi perusahaan.
Entity StokBrg
Pelanggan
Pemasok
Hak Akses
Admin
Pembelian
Penjualan
Insert
X
X
X
Read
X
X
X
Update
X
X
X
Delete
X
X
X
Insert
X
X
Read
X
X
Update
X
X
Delete
X
X
Insert
X
X
Read
X
X
Update
X
X
Delete
X
X
138
Entity Pegawai
Hak Akses
Admin
Pembelian
Penjualan
X
X
Insert
X
Read
X
Update
X
Delete
X
Insert
X
X
Read
X
X
Update
X
X
Delete
X
X
Insert
X
X
Read
X
X
Update
X
X
Delete
X
X
Insert
X
X
Read
X
X
Update
X
X
Delete
X
X
Insert
X
X
Read
X
X
Update
X
X
Delete
X
X
Insert
X
X
Read
X
X
Update
X
X
Delete
X
X
ReturPenjualanDetil Insert
X
X
Read
X
X
Update
X
X
Delete
X
X
Penjualan
PenjualanDetil
Pembelian
PembelianDetil
ReturPenjualan
139
Entity ReturPembelian
ReturPembelianDetil
Hutang
Piutang
OrdPenjualan
OrdPembelian
OrdPenjualanDetil
Hak Akses
Admin
Pembelian
Insert
X
X
Read
X
X
Update
X
X
Delete
X
X
Insert
X
X
Read
X
X
Update
X
X
Delete
X
X
Insert
X
X
Read
X
X
Update
X
X
Delete
X
X
Insert
X
X
Read
X
X
Update
X
X
Delete
X
X
Insert
X
X
Read
X
X
Update
X
X
Delete
X
X
Insert
X
X
Read
X
X
Update
X
X
Delete
X
X
Insert
X
X
Read Update Delete
X X X
X X X
140
Penjualan
OrdPembelianDetil Insert Read Update Delete
X X X X
X X X X
Tabel 3.32 Keamanan
Perancangan mekanisme keamanan adalah sebagai berikut : GRANT ALL ON Stokbrg TO Admin GRANT ALL ON Pelanggan TO Admin GRANT ALL ON Pemasok TO Admin GRANT ALL ON Pegawai TO Admin GRANT ALL ON Penjualan TO Admin GRANT ALL ON PenjualanDetil TO Admin GRANT ALL ON Pembelian TO Admin GRANT ALL ON PembelianDetil TO Admin GRANT ALL ON ReturPembelian TO Admin GRANT ALL ON ReturPembelianDetil TO Admin GRANT ALL ON ReturPenjualan TO Admin GRANT ALL ON ReturPenjualanDetil TO Admin GRANT ALL ON OrdPembelian TO Admin GRANT ALL ON OrdPenjualan TO Admin GRANT ALL ON Piutang TO Admin GRANT ALL ON Hutang TO Admin (Admin)
141
GRANT ALL ON Stokbrg TO Pembelian GRANT ALL ON Pemasok TO Pembelian GRANT ALL ON PegawaiTO Pembelian GRANT ALL ON Pembelian TO Pembelian GRANT ALL ON PembelianDetil TO Pembelian GRANT ALL ON ReturPembelian TO Pembelian GRANT ALL ON ReturPembelianDetil TO Pembelian GRANT ALL ON OrdPembelian TO Pembelian GRANT ALL ON OrdPembelianDetil TO Pembelian GRANT ALL ON Hutang TO Pembelian (Pembelian)
GRANT ALL ON Stokbrg TO Penjualan GRANT ALL ON Pelanggan TO Penjualan GRANT ALL ON PegawaiTO Penjualan GRANT ALL ON PenjualanTO Penjualan GRANT ALL ON PenjualanDetil TO Penjualan GRANT ALL ON ReturPenjualan TO Penjualan GRANT ALL ON ReturPenjualanDetil TO Penjualan GRANT ALL ON OrdPenjualan TO Penjualan GRANT ALL ON Piutang TO Penjualan (Penjualan)
142