• Tidak ada hasil yang ditemukan

BAB 4 PERANCANGAN DAN IMPLEMENTASI SISTEM PADA PT. SARI AROMA JANATA

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 4 PERANCANGAN DAN IMPLEMENTASI SISTEM PADA PT. SARI AROMA JANATA"

Copied!
152
0
0

Teks penuh

(1)

BAB 4

PERANCANGAN DAN IMPLEMENTAS I S IS TEM PADA PT. S ARI AROMA JANATA

4.1 Usulan Prosedur Baru

Pemasalahan-permasalahan yang terjadi pada sistem yang sedang berjalan pada PT Sari Aroma Janata perlu segera diatasi. Salah satu cara untuk mengatasi hal tersebut adalah dengan membangun sistem berbasis data baru untuk penjualan, pembelian dan persediaan yang sesuai dengan kebutuhan PT Sari Aroma Janata. Hal ini ditujukan untuk menciptakan efisiensi pada proses operasional PT Sari Aroma Janata.

Sistem baru yang diusulkan memiliki beberapa prosedur baru berupa: 1. Proses retur penjualan

Pada sistem yang lama, proses retur penjualan menyatu dengan proses penjualan. Hal ini dikarenakan pada proses retur yang lama, Kasir akan memasukan data jumlah barang berjumlah negatif pada input penjualan. Proses retur penjualan yang baru akan dipisahkan dari proses penjualan. Pelanggan harus menyertakan bukti pembelian sebagai syarat utama retur penjualan.

2. Proses retur pembelian

Pada sistem yang lama, proses retur pembelian menyatu dengan proses pembelian. Hal ini dikarenakan pada proses retur yang lama, Administrasi akan memasukan data jumlah barang berjumlah negatif pada proses input pembelian. Proses retur pembelian yang baru akan

(2)

dipisahkan dari proses pembelian. Administrasi harus melengkapi data-data pembelian terlebih dahulu sebelum dapat melakukan retur pembelian 3. Proses koreksi persediaan

Pada proses koreksi persediaan, pihak PT Sari Aroma Janata dapat mengetahui langsung jumlah keuntungan dan kerugian yang muncul dari koreksi persediaan tersebut.

4. Pencetakan opname persediaan

Proses pencetakan opname persediaan berbeda dengan pencetakan laporan persediaan. Pencetakan opname persediaan hanya akan mencetak laporan persediaan berdasarkan kode barang, nama barang dan jumlah persediaan barang sehingga tidak memboroskan pencetakan laporan opname.

Selain prosedur baru, sistem basis data yang diusulkan akan menggunakan pemrograman visual pada desain tatap muka pengguna. Sistem yang diusulkan akan disesuaikan dengan sistem operasi yang digunakan pada PT Sari Aroma Janata. Selain itu penghapusan data pada sistem yang baru akan diminimalisasikan.

(3)

4.2 Diagram Aliran Data

Data Flow Diagram (Diagram Arus Data) atau DFD adalah suatu gambaran grafis dari suatu sistem yang menggunakan sejumlah bentuk-bentuk simbol untuk menggambarkan bagaimana data mengalir melalui suatu proses yang saling berkaitan. Di bawah ini adalah rancangan Data Flow Diagram : 4.2.1 Data Flow Diagram

Sistem Penjuala n, Pembe lian da n Persediaan

PT . Saro ja

Pelanggan Manajer

Supplier Gudang

Faktur penjualan

Ba rang beli d itan ya

Bar ang b eli ditanya

F aktur pembelian Lapor an p ersediaan

Lapor an pe nju ala n, lapor an pem belian, la pora n per sed iaa n

D ata bar ang h asil koreksi Pembayar an bar ang d ibe li

Infor masi b arang dijual

In form asi ba rang beli ditanya Jum lah uang yang h arus dibayar sistem

Pem bayaran bar ang dibeli Bar ang dibeli Bar ang d ir etur , kod e pemb elian

Ba rang dir etur

(4)

4.2.2 Diagram Nol

(5)

4.2.3 Diagram Rinci

(6)
(7)

3.1 Melakukan stok

opname Gudang Data laporan persediaan

Persediaan Laporan persediaan

untuk stok opname

Data persediaan hasil koreksi Dat a barang hasil koreksi Manajer Laporan persediaan 4.0 Pembuatan laporan penjualan, pembelian, persediaan Koreksi persediaan Dat a koreksi barang

Gambar 4.5 Diagram Rinci Persediaan 4.3 Tahapan Perancangan Database

Perancangan database akan dilakukan sesuai dengan kebutuhan informasi yang telah diidentifikasikan pada PT. Sari Aroma Janata. Perancangan database

tersebut akan dibagi menjadi 3 langkah, yaitu : perancangan database

konseptual, perancangan database logikal, dan perancangan database fisikal. 4.3.1 Perancangan Database Konseptual

Berikut ini adalah tahap-tahap perancangan database konseptual : 4.3.1.1 Mengidentifikasi Tipe Entity

Tahap pertama dalam perancangan database konseptual adalah dengan mengidentifikasi objek utama yang menjadi perhatian utama pengguna. Hal ini akan menjadi tipe entitas. Tabel identifikasi dari tipe-tipe entitas dapat dilihat pada tabel 4.1.

(8)

Tabel 4.1 Tabel Tipe Entity

Nama Entity Deskripsi Alias Kejadian

Cabang M enjelaskan keterangan umum mengenai cabang

pada perusahaan

Kantor Perusahaan memiliki cabang

Staff M enjelaskan informasi mengenai staf

Karyawan Setiap staf berkerja pada satu cabang JenisStaff M enjelaskan jenis staf,

fungsi kerja staf yang ada

Jenis Karyawan

Setiap staf memiliki satu jenis staf Barang M enjelaskan informasi

penting mengenai barang

Barang Barang dapat dibeli dan dijual oleh perusahaan JenisBarang Pengelompokan barang

menjadi kelompok yang sejenis

Departemen Barang

Setiap barang digolongkan dalam satu jenis barang HargaJualBarang Harga jual tiap barang pada

periode tertentu

Harga Setiap barang memiliki harga jual yang berbeda beda Supplier M enjelaskan informasi

mengenai supplier dari suatu barang

Leveransir Barang dibeli dari

supplier

Penjualan Informasi penjualan barang yang terjadi

Jual Penjualan dapat terdiri dari berbagai

(9)

barang dan barang dapat dijual berkali-kali

Pembelian Informasi pembelian barang yang terjadi

Beli Pembelian dapat terdiri dari berbagai

barang dan barang dapat dibeli berkali-kali

KoreksiStok Informasi mengenai kehilangan barang yang terjadi

Koreksi Barang

Kehilangan barang terjadi tiap bulan dan banyak barang yang dapat hilang

ReturPenjualan Informasi mengenai retur penjualan barang yang terjadi

Retur Jual Pengembalian barang oleh pelanggan karena alasan tertentu ReturPembelian Informasi mengenai retur

pembelian barang yang terjadi

Retur Beli Pengembalian barang kepada supplier

karena alasan tertentu Pembayaran Informasi mengenai

pembayaran kredit pada pembelian

Kredit Pembayaran kredit kepada supplier

karena pembelian barang

(10)

4.3.1.2 Mengidentifikasi Tipe Relationship

Setelah mengidentifikasi tipe entitas, maka langkah berikutnya adalah mengidentifikasi semua relasi yang terjadi antara entitas- entitas tersebut. Hal ini bertujuan untuk mengetahui relasi antar entitas dan bagaimana entitas tersebut berhubungan. Tabel relasi antar entitas dapat dilihat pada tabel 4.2.

Tabel 4.2 Tabel Relationship

Nama Entity Multiplicity Relationship Multiplicity Nama Entity

Cabang 1 M emiliki 1..* Staff

Staff 1..* M emiliki 1 JenisStaff

Staff 1 M elakukan 0..* Penjualan

Staff 1 M elakukan 0..* Pembelian

Staff 1 M endata 0..* KoreksiStok

Staff 1 M endata 0..* ReturPenjualan

Staff 1 M endata 0..* ReturPembelian

Barang 1..* M emiliki 1 JenisBarang

Barang 1 M emiliki 1..* HargaJualBarang

Penjualan 0..* M emiliki 1..* Barang

Penjualan 0..* M enggunakan 1..* HargaJualBarang

Pembelian 0..* M emiliki 1..* Barang

Pembelian 1..* M emiliki 1 Supplier

KoreksiStok 0..* M emiliki 1..* Barang

(11)

ReturPenjualan 0..1 M emiliki 1 Penjualan

ReturPembelian 0..* M emiliki 1..* Barang

ReturPembelian 0..* M emiliki 1 Pembelian

Pembayaran 0..* M emiliki 1 Pembelian

(12)

4.3.1.3 Mengidentifikasi dan Menghubungkan Atribut dengan Entity dan Relationship

Setelah mengidentifikasi entitas dan relasi, maka langkah selanjutnya adalah mengidentifikasi tipe entitas dan relasi yang dipilih untuk direpresentasikan di dalam database (dalam hal ini menjadi atribut). Tabel data atribut dapat dilihat pada tabel 4.3.

Tabel 4.3 Tabel Atribut pada Entitas

Nama Entity Atribut Deskripsi Tipe Data Null Multivalued

KdCabang Kode cabang Char (5) No No NamaCabang Nama cabang Char (30) No No Alamat Alamat cabang Text No No Telp Telepon cabang Char (13) No No

Fax Fax cabang Char (13) Yes No NPWP NPWP Char (25) No No Cabang

TglCbg Tanggal berdiri

Date No No

KdStaff Kode staf Char (3) No No Nama Nama staf Char (30) No No Sex Jenis kelamin Char (1) No No TglLhr Tanggal lahir Date No No Staff

(13)

Telp Telepon staf Char (13) Yes No Jabatan Jabatan staf Char(2) No No

UserID User name Char(15) No No

Pass Password Char(8) No No

KdJnsStaff Kode jenis staf

Char(2) No No JenisStaff

JenisStaff Posisi staf Char(20) No No KdBarang Kode barang Char (5) No No NamaBarang Nama Barang Char (25) No No Barang

Desk Deskripsi Text Yes No

Qty Jumlah Integer No No

Qtymin Jumlah minimum

Integer No No

Dept Depatemen Char(2) No No

KdJnsBarang Kode jenis barang

Char(2) No No

JnsBarang Jenis barang Char(30) No No JenisBarang

Desk Deskripsi Text Yes No

KdHarga Kode harga Char (8) No No

Harga Harga Decimal No No

Barang Barang Char (5) No No HargaJualBarang

TglIn Tanggal mulai

(14)

TglOut Tanggal selesai

Date Yes No

Status Status harga Char (1) No No KdSupplier Kode supplier Char (3) No No Nama Nama supplier Char (30) No No Alamat Alamat supplier Char (50) No No Telepon Telepon supplier Char (13) No Yes Supplier

Deskripsi Deskripsi Text Yes No KdPenjualan Kode penjualan Char (12) No No TglPenjualan Tanggal penjualan Date No No

Kasir Kasir yang

melayani

Char (2) No No

Barang Barang yang

dijual Char (5) No Yes Qty Jumlah barang Integer No Yes Penjualan

Harga Harga Barang Decimal No Yes Pembelian KdPembelian Kode Char (12) No No

(15)

pembelian TglPembelian Tanggal

pembelian

Date No No

Staff Staf yang

bertugas Char (3) No No Supplier Nama supplier Char (30) No No JnsPembayaran Jenis pembayaran Char (6) No No

TglJatuhTempo Tanggal jatuh temp

Date Yes No

Barang Barang yang

dibeli

Char (5) No Yes

Qty Jumlah barang

Integer No Yes

Harga Harga beli

barang

Decimal No Yes

KdRtrJual Kode retur penjualan Char (12) No No TglRtrJual Tanggal penjualan Date No No ReturPenjualan FktrJual Bukti penjualan Char (12) No No

(16)

Staff Staf yang bertugas

Char (3) No No

Barang Barang yang

dijual

Char (5) No Yes

Qty Jumlah barang

Integer No Yes

KdRtrBeli Kode retur pembelian

Char (12) No No

TglRetur Tanggal retur Date No No FktrBeli Nomor faktur

Beli

Char (12) No No

Staff Staf yang

bertugas

Char (3) No No

Barang Barang yang

diretur Char (5) No Yes ReturPembelian Qty Jumlah barang Integer No Yes

KdKoreksi Kode koreksi stok Char (12) No No Tgl Tanggal kehilangan Date No No KoreksiStok

Staff Staf yang bertugas

(17)

Barang Barang hilang Char (5) No Yes Qty Jumlah hilang Integer No Yes KdBayar Kode pembayaran kredit Char (12) No No TglBayar Tanggal terjadinya pembayaran Date No No Pembayaran

Pembayaran Jumlah yang telah dibayar

Decimal No No

4.3.1.4 Mengidentifikasi Atribut Domain

Langkah berikutnya adalah mengidentifikasi atribut domain. Tujuan dari langkah ini adalah untuk menetapkan domain dari atribut-atribut yang ada pada model konseptual. Tabel untuk atribut-atribut domain dapat dilihat pada tabel 4.4.

Tabel 4.4 Tabel Atribut Domain

Nama Entity Atribut Domain

KdCabang 5 karakter, 3 karakter pertama diawali string

untuk menentukan lokasi cabang, dan karakter berikutnya merupakan angka.

NamaCabang String bebas Cabang

(18)

Telp M aksimum 13 karakter angka antara 0 – 9 Fax M aksimum 13 karakter angka antara 0 – 9 NPWP String bebas

TglCbg Format tanggal

KdStaff 3 karakter yang merupakan angka dari 001 – 999 Nama String bebas

Sex 1 karakter, yaitu “L“ untuk laki-laki dan “P“ untuk perempuan

TglLhr Format tanggal Alamat String bebas

Telp M aksimum 13 karakter angka antara 0 – 9 Jabatan String bebas

UserID String bebas Staff

Pass String bebas

KdJnsStaff 3 karakter yang merupakan angka mulai dari 001-999

JenisStaff

JenisStaff String bebas

KdBarang 5 karakter, 2 karakter awal merupakan kode jenis barang, dan karakter berikutnya merupakan angka mulai dari 001-999

NamaBarang String bebas Desk String bebas Barang

(19)

Qtymin Angka, lebih besar dari 0 Dept String bebas

KdJnsBarang 2 karakter yang merupakan angka mulai dari 01-99

JnsBarang String bebas JenisBarang

Desk String bebas

KdHarga 8 karakter yang merupakan angka mulai dari 00000001-99999999.

Harga Format harga

Barang String bebas

TglIn Format tanggal

TglOut Format tanggal HargaJualBarang

Status 1 karakter yang merupakan angka

KdSupplier 3 karakter yang merupakan angka mulai dari 001-999

Nama String bebas Alamat String bebas

Telepon M aksimum 13 karakter angka antara 0 – 9 Supplier

Deskripsi String bebas

KdPenjualan 12 karakter, 1 karakter pertama diawali string

“J“, dan karakter berikutnya merupakan angka. TglPenjualan Format tanggal

Penjualan

(20)

Barang String bebas

Qty Angka, lebih besar dari 0

Harga Format harga

KdPembelian 12 karakter, 1 karakter pertama diawali string

“B“, dan karakter berikutnya merupakan angka. TglPembelian Format tanggal

Staff 3 karakter yang merupakan angka dari 001 – 999 Supplier String bebas

JnsPembayaran 6 karakter, “cash” untuk pembayaran tunai, dan “credit” untuk pembayaran kredit

TglJatuhTempo Format tanggal Barang String bebas

Qty Angka, lebih besar dari 0 Pembelian

Harga Format harga

KdRtrJual 12 karakter, 2 karakter pertama diawali string

“RJ“, dan karakter berikutnya merupakan angka. TglRtrJual Format tanggal

FktrJual String bebas

Staff 3 karakter yang merupakan angka dari 001 – 999 Barang String bebas

ReturPenjualan

Qty Angka, lebih besar dari 0

ReturPembelian KdRtrBeli 12 karakter, 2 karakter pertama diawali string

(21)

TglRetur Format tanggal FktrBeli String bebas

Staff 3 karakter yang merupakan angka dari 001 – 999 Barang String bebas

Qty Angka, lebih besar dari 0

KdKoreksi 12 karakter, 1 karakter pertama diawali string

“K“, dan karakter berikutnya merupakan angka.

Tgl Format tanggal

Staff 3 karakter yang merupakan angka dari 001 – 999 Barang String bebas

KoreksiStok

Qty Angka, lebih besar dari 0

KdBayar 12 karakter yang merupakan angka TglBayar Format tanggal

Pembayaran

(22)

Cabang KdCabang NamaCabang Alamat Telp Fax NPWP TglCbg Staff KdStaf f Nama Sex TglLhr Alamat Telp Cabang Jabatan USERID Pass JenisStaff KdJns Staff Jenis Staff Barang K dBarang NamaBarang Des k Qty Qty mi n Dept HargaJualBarang K dHarga B arang Harga TglIn TglOut S tat us S upplier KdSupplier Nama Al amat Telp Des kripsi Penjualan KdPenjualan Tgl Penjualan Kasir It em Qty Harga Pembelian KdPembelian Staff TglPembelian JnsPembayaran TglJatuhTempo Item Qt y Harga Penyalur ReturPenjualan K dRt rJ ual S taf f TglRetur Fk trJ ual I tem Qty ReturPembelian KdRtrBeli Staff TglRet ur Fkt rBeli It em Qty Korek siStok KdKoreksi St aff Tgl I tem Qty 0..* 0..* 1 ..* 1..1 1..1 1..* 1..* 1 ..1 0..* 1..1 1..1 1..1 1..1 1 ..1 1..1 0..* 0..1 0..* 1..* 1..* 1..* 0..* 1..* 1..* 0..* 1..1 1..* 1..* 0..* 1..1 1..* 1 ..* 0..* 0..* Memili ki Memili ki Melakukan Me lakukan Me ndata Mendata Mendata Memi liki JenisBarang KdJns Barang JnsBarang Desk 1..* 1..1

Me mil iki Men ggunakan

Memili ki Memili ki Memil iki Memi liki Memi liki Memili ki Memiliki Memi liki Pembayaran KdBayar TglBay ar Pembayaran 0..* 1..1

Gambar 4.7 ERD Konseptual tanpa PK

4.3.1.5 Menentukan Atribut Primary Keys dan Candidate Key

Langkah ini bertujuan untuk mengidentifikasi candidate key pada entitas, lalu kemudian memilih salah satu untuk menjadi sebuah primary key. Candidate key yang tidak terpilih disebut sebagai alternate key. Tabel primarykey dan candidatekey dapat dilihat pada tabel 4.5.

Tabel 4.5 Tabel Primary key dan Candidate key

Entity Candidate Key Primary Key

Cabang KdCabang NamaCabang KdCabang Staff KdStaff Telp KdStaff

(23)

Barang KdBarang KdBarang

JenisBarang KdJnsBarang KdJnsBarang

HargaJualBarang KdHarga KdHarga

Supplier KdSupplier Telepon

KdSupplier

Penjualan KdPenjualan KdPenjualan

Pembelian KdPembelian KdPembelian

ReturPenjualan KdRtrJual KdRtrJual

ReturPembelian KdRtrBeli KdRtrBeli

KoreksiStok KdKoreksi KdKoreksi

(24)

Gambar 4.8 ERD Konseptual 4.3.1.6 Memeriksa Redudancy Model

Langkah ini bertujuan memeriksa redundancy pada model, umumnya berupa:

1. One to one relationship

Retur dan penjualan tidak dapat digabungkan sebab merupakan dua entity yang berebeda.

Tidak ditemukan redundancy data sehingga tidak perlu perubahanan pada rancangan konseptual.

(25)

4.3.1.7 Memvalidasikan Model Konseptual Lokal dengan Transaksi

User

Langkah ini bertujuan untuk memastikan bahwa konseptual model yang telah dibuat dapat mendukung transaksi yang dibutuhkan. Gambar alur transaksi dapat dilihat pada gambar 4.9.

4.9 Gambar Alur Transaksi Konseptual Keterangan:

(a) input data staff

(b) memilih jenis staff pada staff (c) memilih jenis barang untuk barang (d) menambah jenis barang

(26)

(f) menambah supplier

(g) staff memasukkan data penjualan

(h) data barang dimasukkan dalam penjualan (i) harga dimasukkan dalam penjualan (j) staff memasukkan data pembelian

(k) data barang dimasukkan dalam pembelian (l) staff memasukkan data retur penjualan

(m) data barang dimasukkan dalam retur penjualan (n) staff memasukkan data retur pembelian

(o) data barang dimasukkan dalam retur pembelian (p) staff memasukkan data koreksi persediaan

(q) data barang dimasukkan dalam koreksi persediaan (r) mengubah data staf

(s) mengubah data barang (t) mengubah data supplier

(u) melakukan pembayaran dari pembelian (v) cabang mendaftarkan staff

4.3.2 Perancangan Database Logikal

Berikut ini adalah langkah-langkah perancangan database logikal : 4.3.2.1 Membuat Relasi untuk Logical Data Model

Langkah ini bertujuan untuk menciptakan relasi bagi data model

logical agar dapat merepresentasikan entitas, relationship, dan atribut yang telah diidentifikasi.

(27)

1. Tipe entity kuat

Cabang (KdCabang, NamaCabang, Alamat, Telp, Fax, NPWP, TglCbg)

Primary key : KdCabang

S taff (KdStaff, Nama, Sex, T glLhr, Alamat, Telp, UserID, Pass, KdJnsStaff, KdCabang)

Primary key : KdStaff

JenisS taff (KdJnsStaff, JenisStaff)

Primary key : KdJnsStaff

Supplier (KdSupplier, Nama, Alamat, Deskripsi)

Primary key : KdSupplier

Barang (KdBarang, NamaBarang, Deskripsi, Qty, QtyM in, KdJnsBarang)

Primary key : KdBarang

JenisBarang (KdJnsBarang, JenisBarang, Deskripsi)

Primary key : KdJnsBarang

Pembelian (KdBeli, TglPembelian, JenisPembayaran, TglJatuhTempo, Qty, Harga, KdStaff, KdSupplier, KdBarang)

Primary key : KdBeli

HargaJual (KdHarga, Harga, TglIn, T glOut, Status, KdBarang)

(28)

Penjualan (KdJual, TglPenjualan, Qty, KdStaff, KdBarang, KdHarga)

Primary key : KdJual

ReturPembelian (KdRtrBeli, TglRetur, Qty, KdBeli, KdStaff, KdBarang)

Primary key : KdRtrBeli

ReturPenjualan (KdRtrJual, TglRetur, Qty, KdJual, KdStaff, KdBarang)

Primary key : KdRtrJual

KoreksiStok (KdKoreksi, Tgl, Qty, KdStaff, KdBarang)

Primary key : KdKoreksi

Pembayaran ( KdBayar, TglBayar, Pembayaran, KdBeli)

Primary key : KdBayar 2. Tipe entity lemah

TelpS upplier ( NoTelp, ContactPerson, KdSupplier )

Primary key NoTelp

3. One to many binary relationship

Setiap relasi yang berelasi one to many dilakukan pembuatan foreign key pada entitas “Many side” dari

(29)

JenisStaff (KdJnsStaff, JenisStaff)

Primary key KdJnsStaff

Staff (KdStaff, Nama, Sex, TglLhr, Alamat,

Tlp, KdCabang, KdJnsStaff)

Primary key KdStaff

Foreign Key KdCabang references

Cabang(KdCab ang)

Foreign Key KdJnsStaff references

JenisStaff(KdJnsStaff) Mengirimkan KdJnsStaff ke Staff dalam 1:* relasi Memiliki

Cabang (KdCabang, NamaCabang, Alamat,

Telp, Fax, NPWP, TglCbg)

Primary key KdCabang Staff (KdStaff, Nama, Sex, TglLhr, Alamat, Tlp, KdCabang, Jabatan)

Primary key KdStaff

Foreign Key KdCabang references

Cabang(KdCab ang) Mengirimkan KdCabang ke Staff dalam 1:* relasi Memiliki

Pembelian(KdBeli, KdStaff,

TglPembelian,JnsPembayaran, TglJatuhTempo, Barang,

Qty, Harga, KdSupplier)

Primary key KdBeli

Foreign Key KdStaff references Staff(KdStaff)

Foreign Key KdSupplier references

Supplier(KdSupplier)

Mengirimkan KdStaff ke Pembelian dalam 1:* relasi Melakukan

Staff (KdStaff, Nama, Sex, TglLhr,

Alamat, Tlp, KdCabang, KdJnsStaff)

Primary key KdStaff

Staff (KdStaff, Nama, Sex, TglLhr, Alamat, Tlp,

KdCabang, KdJnsStaff)

Primary key KdStaff

Mengirimkan KdStaff ke Hilang dalam 1:* relasi Mendata

KoreksiStok(KdKoreksi, KdStaff, Tgl,

Barang, Qty)

Primary key KdKoreksi

Foreign Key KdStaff references

(30)

Staff

(KdStaff,Nama,Sex,TglLhr,Alamat,Tlp,Kd Cabang,KdJnsStaff)

Primary key KdStaff

Mengirimkan KdStaff ke Returpenjualan dalam 1:* relasi Mendata

ReturPenjualan(KdRtrJual, KdJual,

KdStaff, TglRetur, FktrJual,Barang, Qty)

Primary key KdRtrJual

Foreign Key KdJual references

Penjualan(KdJual)

Foreign Key KdStaff references

Staff(KdStaff)

Mengirimkan KdStaff ke Returpembelian dalam 1:* relasi Mendata

Staff

(KdStaff,Nama,Sex,TglLhr,Alamat,Tlp,Kd Cabang,KdJnsStaff)

Primary key KdStaff

ReturPembelian(KdRtrBeli, KdBeli,

KdStaff, TglRetur, FktrBeli,Barang, Qty)

Primary key KdRtrBeli

Foreign Key KdBeli references

Pembelian(KdBeli)

Foreign Key KdStaff references

Staff(KdStaff)

Penjualan(KdJual, KdStaff,

TglPenjualan, Barang, Qty, KdHarga)

Primary key KdJual

Foreign Key KdStaff references

Staff(KdStaff)

Staff

(KdStaff,Nama,Sex,TglLhr,Alamat,Tlp,K dCabang,KdJnsStaff)

Primary key KdStaff

(31)

Mengirimkan KdJnsBarang ke Barang dalam 1:* relasi Memiliki

JenisBarang(KdJnsBarang, JnsBarang,

Desk)

Primary key KdJnsBarang Barang (KdBarang, NamaBarang, Desk, Qty, Qtymin, KdJnsBarang)

Primary key KdBarang

Foreign Key KdJnsBarang

references

JenisBarang(KdJnsBarang)

Mengirimkan KdBarang ke HargaJual dalam 1:* relasi Memiliki

Barang (KdBarang, NamaBarang, Desk,

Qty, Qtymin, KdJnsBarang)

Primary key KdBarang HargaJual (KdHarga, KdBarang, Harga, TglIn, TglOut, Status)

Primary key KdHarga

Foreign Key KdBarang references

Barang(KdB arang )

Mengirimkan KdSupplier ke Pembelian dalam 1:* relasi Memiliki

Supplier (KdSupplier, Nama, Alamat,

Deskripsi)

Primary key KdSupplier Pembelian(KdBeli, KdStaff, TglPembelian,JnsPembayaran,TglJa tuhTempo, Barang,

Qty, Harga, KdSupplier)

Primary key KdBeli

Foreign Key KdStaff references

Staff(KdStaff)

Foreign Key KdSupplier

referencesSupplier(KdSupplier)

Mengirimkan KdBeli ke Pembayaran dalam 1:* relasi Memiliki

Pembelian(KdBeli, KdStaff,

TglPembelian,JnsPembayaran, Barang,

Qty, Harga, KdSupplier)

Pembayaran(KdBay ar, KdBeli,

TglBayar,Pembayaran)

Primary key KdBayar

Foreign Key KdBeli references

(32)

4. One to one binary relationship

Mengirimkan KdJual ke ReturPenjualan dalam 1:* relasi Memiliki

Penjualan(KdJual, KdStaff,

TglPenjualan, Barang, Qty, Harga)

Primary key KdJual ReturPenjualan(KdRtrJual, KdJual, KdStaff, TglRetur, FktrJual,Barang, Qty)

Primary key KdRtrJual

Foreign Key KdJual references

Penjualan(KdJual)

Foreign Key KdStaff references Staff(KdStaff)

Mengirimkan KdBeli ke ReturPembelian dalam 1:* relasi Memiliki

Pembelian(KdBeli, KdStaff,

TglPembelian,JnsPembayaran, TglJatuhTempo,Barang, Qty, Harga, KdSupplier)

Primary key KdBeli

ReturPembelian(KdRtrBeli, KdBeli, KdStaff,

TglRetur, FktrBeli,Barang, Qty)

Primary key KdRtrBeli

Foreign Key KdBeli references

Pembelian(KdBeli)

Foreign Key KdStaff references

Staff(KdStaff)

Mengirimkan KdSupplier ke TeleponSupplier dalam 1:* relasi Memiliki

Supplier (KdSupplier, Nama,

Alamat, Deskripsi)

Primary key KdSupplier TeleponSupplier(NoTelp, KdSupplier, CP)

Primary key NoTelp

Foreign Key KdSupplier references

Supplier(KdSupplier)

Foreign Key KdStaff references

(33)

5. Many to many relationship

Barang (KdBarang,

NamaBarang, Desk, Qty, Qtymin, KdJnsBarang)

Primary key KdBarang

Foreign Key KdStaff

references Staff(KdStaff)

PenjualanDetail ( KdJual,KdBarang,

KdHarg a, Qty)

Primary key KdJual,KdBarang

Foreign Key KdJual references Penjualan

(KdJual)

Foreign Key KdBarang references Barang

(KdBarang )

Foreign Key KdHarga references HargaJu al

(KdHarga)

Penjualan(KdJual,

KdStaff, TglPenjualan, Barang, Qty, KdHarga)

Primary key KdJual

Foreign Key KdStaff

references Staff(KdStaff)

HargaJual (KdHarga,

KdBarang, Harg a, TglIn, TglOut, Status)

Primary key KdHarga

Foreign Key KdBarang

references

Barang(KdB arang )

Barang (KdBarang, NamaBarang, Desk,

Qty, Qtymin, KdJnsBarang)

Primary key KdBarang

Foreign Key KdStaff references

Staff(KdStaff)

PembelianDetail(KdBeli,KdBarang,Qty,Harg a)

Primary key KdBeli,KdBarang

Foreign Key KdBeli references Pembelian

(KdBeli)

Foreign Key KdBarang references Barang

(KdBarang )

Pembelian(KdBeli, KdStaff,

TglPembelian,JnsPembayaran,TglJatuhT empo, Barang,

Qty, Harga, KdSupplier)

Primary key KdBeli

Foreign Key KdStaff references

Staff(KdStaff)

Foreign Key KdSupplier references

(34)

KoreksiStok(KdKoreksi, KdStaff, Tgl, Barang, Qty)

Primary key KdKoreksi

Barang (KdBarang, NamaBarang, Desk,

Qty, Qtymin, KdJnsBarang)

Primary key KdBarang

Foreign Key KdStaff references

Staff(KdStaff)

KoreksiStokDetail(Kd Koreksi, Kdbarang,

Qty)

Primary key KdKoreksi,KdBarang

Foreign Key KdKoreksi references

Kehilangan(KdKoreksi)

Foreign Key KdBarang references

Barang(KdB arang )

ReturPenjualan(KdRtrJual, KdJual,

KdStaff, TglRetur, FktrJual,Barang, Qty)

Primary key KdRtrJual

Barang (KdBarang, NamaBarang, Desk,

Qty, Qtymin, KdJnsBarang)

Primary key KdBarang

Foreign Key KdStaff references

Staff(KdStaff)

ReturJualDetail(KdRtrJu al, Kdbarang, Qty)

Primary key KdRtrJual,KdBarang

Foreign Key KdRtrJual references

ReturPenjualan(KdRtrJual)

Foreign Key KdBarang references

Barang(KdB arang )

ReturPembelian(KdRtrBeli, KdBeli,

KdStaff, TglRetur, FktrBeli,Barang, Qty)

Primary key KdRtrBeli

Barang (KdBarang, NamaBarang, Desk,

Qty, Qtymin, KdJnsBarang)

Primary key KdBarang

Foreign Key KdStaff references

Staff(KdStaff)

ReturBeliDetail(KdRtrBeli, Kdbarang, Qty)

Primary key KdRtrBeli,KdBarang

Foreign Key KdRtrBeli references

ReturPembelian(KdRtrBeli)

Foreign Key KdBarang references

(35)

6. Atribut multivalue

4.3.2.2 Validasi Menggunakan Normalisasi

Langkah berikutnya adalah dengan memvalidasikan relasi pada data model logical dengan menggunakan normalisasi. Tujuannya adalah untuk menghilangkan anomali data, antara lain redundancy, perhitungan, ketergantungan parsial, dan ketergantungan pada atribut nonprimarykey. UNF:

Penjualan : NamaCabang + TelpCabang + TglPenjualan + KdJual + NamaStaff + {KdBarang + NamaBarang + Qty + Price + Subtotal} + GrandTotal

Pembelian : NamaCabang + TelpCabang + TglPembelian + KdBeli + NamaStaff + Jenis Staff + KdSupplier + NamaSupplier + TelpSupplier + JenisPembayaran + KdBayar + { KdBarang + NamaBarang + JenisBarang + Qty + Harga + Subtotal } + Grandtotal

Persediaan : NamaCabang + TelpCabang + Tanggal + { KdBarang + Nama barang + JenisBarang + QtyJual + QtyBeli + QtySisa + Harga + Subtotal} + Grandtotal

Mengirimkan KdSupplier ke TeleponSupplier

Supplier (KdSupplier, Nama, Alamat,

Deskripsi)

Primary key KdSupplier TeleponSupplier(NoTelp, KdSupplier, CP)

Primary key NoTelp

Foreign Key KdSupplier references

(36)

KoreksiStok: KdKoreksi + NamaCabang + TelpCabang + Tanggal + NamaStaff + JenisStaff + { KdBarang + NamaBarang + JenisBarang + Qty + Harga + Subtotal } + Grandtotal

ReturPenjualan : NamaCabang + TelpCabang + TglReturJual + KdReturJual + NamaStaff + JenisStaff + { KdBarang + NamaBarang + JenisBarang + Qty + Harga + Subtotal } + Grandtotal

ReturPembelian : NamaCabang + TelpCabang + TglReturBeli + KdReturBeli + NamaStaff + JenisStaff + KdSupplier + NamaSupplier + TelpSupplier + { KdBarang + NamaBarang + JenisBarang + Qty + Harga + Subtotal } + Grandtotal

NF1 : Tujuan dari tahap normalisasi ini adalah untuk menghilangkan

redundancy dan perhitungan.

Penjualan : @KdJual + TglPenjualan + KdCabang + NamaCabang + AlamatCabang + TelpCabang + Fax + NPWP + TglCabang + KdStaff + NamaStaff + JenisKelaminStaff + TglLhrStaff + AlamatStaff + TelpStaff + UserID + Pass + @ KdBarang + NamaBarang + Deskripsi + Qty + QtyM in + @ KdHarga + Harga + TglIn + TglOut + Status

Pembelian : @KdBeli + TglPembelian + JenisPembayaran + TglJatuhTempo + KdBayar + TglBayar + Pembayaran + KdCabang + NamaCabang + AlamatCabang + TelpCabang + Fax + NPWP + TglCabang + KdStaff + NamaStaff + JenisKelaminStaff + TglLhrStaff + AlamatStaff + TelpStaff +

(37)

UserID + Pass + KdJenis Staff + JenisStaff + KdSupplier + NamaSupplier + AlamatSupplier + DeskripsiSupplier + NoTelpSupplier + ContactPerson + @ KdBarang + NamaBarang + Deskripsi + Qty + QtyM in + @ KdHarga + Harga + TglIn + TglOut + Status

KoreksiStok: @KdKoreksi + TanggalHilang + KdCabang + NamaCabang + AlamatCabang + TelpCabang + Fax + NPWP + TglCabang + KdStaff + NamaStaff + JenisKelaminStaff + TglLhrStaff + AlamatStaff + TelpStaff + UserID + Pass + KdJenis Staff + JenisStaff + @ KdBarang + NamaBarang + Deskripsi + Qty + QtyM in + @ KdHarga + Harga + TglIn + TglOut + Status

ReturPenjualan : @KdReturJual + TglReturJual + KdCabang + NamaCabang + AlamatCabang + TelpCabang + Fax + NPWP + TglCabang + KdStaff + NamaStaff + JenisKelaminStaff + TglLhrStaff + AlamatStaff + TelpStaff + UserID + Pass + KdJenis Staff + JenisStaff + @ KdBarang + NamaBarang + Deskripsi + Qty + QtyM in + @ KdHarga + Harga + TglIn + TglOut + Status

ReturPembelian : @KdReturBeli + TglReturBeli + KdCabang + NamaCabang + AlamatCabang + TelpCabang + Fax + NPWP + TglCabang + KdStaff + NamaStaff + JenisKelaminStaff + TglLhrStaff + AlamatStaff + TelpStaff + UserID + Pass + KdJenis Staff + JenisStaff + KdSupplier + NamaSupplier +

(38)

AlamatSupplier + DeskripsiSupplier + NoTelpSupplier + ContactPerson + @ KdBarang + NamaBarang + Deskripsi + Qty + QtyM in + @ KdHarga + Harga + TglIn + TglOut + Status NF2 : Tujuan dari tahap normalisasi ini adalah untuk menghilangkan

ketergantungan parsial.

PenjualanHeader : @KdJual + TglPenjualan + KdCabang + NamaCabang + AlamatCabang + TelpCabang + Fax + NPWP + TglCabang + KdStaff + NamaStaff + JenisKelaminStaff + TglLhrStaff + AlamatStaff + TelpStaff + UserID + Pass

PenjualanDetail : @KdJual + @ KdBarang + @ KdHarga + Qty Barang : @ KdBarang + NamaBarang + Deskripsi + Qty + QtyM in Harga : @ KdHarga + Harga + TglIn + TglOut + Status

PembelianHeader : @KdBeli + TglPembelian + JenisPembayaran + TglJatuhTempo + KdBayar + TglBayar + Pembayaran + KdCabang + NamaCabang + AlamatCabang + TelpCabang + Fax + NPWP + TglCabang + KdStaff + NamaStaff + JenisKelaminStaff + TglLhrStaff + AlamatStaff + TelpStaff + UserID + Pass + KdJenis Staff + JenisStaff + KdSupplier + NamaSupplier + AlamatSupplier + DeskripsiSupplier + NoTelpSupplier + ContactPerson

PembelianDetail : @KodeBeli + @ KdBarang + Qty

KoreksiStokHeader: @KdKoreksi + TanggalHilang + KdCabang + NamaCabang + AlamatCabang + TelpCabang + Fax + NPWP + TglCabang + KdStaff + NamaStaff + JenisKelaminStaff +

(39)

TglLhrStaff + AlamatStaff + TelpStaff + UserID + Pass + KdJenis Staff + JenisStaff

KoreksiStokDetail : @KdKoreksi + @KdBarang + Qty

ReturPenjualanHeader : @KdReturJual + TglReturJual + KdCabang + NamaCabang + AlamatCabang + TelpCabang + Fax + NPWP + TglCabang + KdStaff + NamaStaff + JenisKelaminStaff + TglLhrStaff + AlamatStaff + TelpStaff + UserID + Pass + KdJenis Staff + JenisStaff

ReturPenjualanDetail : @KdReturJual + @KdBarang + Qty

ReturPembelian : @KdReturBeli + TglReturBeli + KdCabang + NamaCabang + AlamatCabang + TelpCabang + Fax + NPWP + TglCabang + KdStaff + NamaStaff + JenisKelaminStaff + TglLhrStaff + AlamatStaff + TelpStaff + UserID + Pass + KdJenis Staff + JenisStaff + KdSupplier + NamaSupplier + AlamatSupplier + DeskripsiSupplier + NoTelpSupplier + ContactPerson

ReturPembelianDetail : @KdReturBeli + @KdBarang + Qty

NF3 : Tujuan dari tahap normalisasi ini adalah untuk menghilangkan ketergantungan kepada atribut non primarykey.

PenjualanHeader : @KdJual + TglPenjualan + #KdStaff

PenjualanDetail : @KdJual + @ KdBarang + @ KdHarga + Qty

PembelianHeader : @KdBeli + TglPembelian + JenisPembayaran + TglJatuhTempo + #KdStaff + #KdSupplier

(40)

Pembayaran : @KdBayar + TglBayar + Pembayaran + #KdBeli KoreksiStokHeader: @KdKoreksi + TanggalHilang + #KdStaff KoreksiStokDetail : @KdKoreksi + @KdBarang + Qty

ReturPenjualanHeader : @KdReturJual + TglReturJual + #KdJual + #KdStaff

ReturPenjualanDetail : @KdReturJual + @KdBarang + Qty

ReturPembelian : @KdReturBeli + TglReturBeli + #KdBeli + #KdStaff ReturPembelianDetail : @KdReturBeli + @KdBarang + Qty

Cabang : @KdCabang + NamaCabang + AlamatCabang + TelpCabang + Fax + NPWP + TglCabang

S taff : @KdStaff + NamaStaff + JenisKelaminStaff + TglLhrStaff + AlamatStaff + TelpStaff + UserID + Pass + #KdJenisStaff + #KdCabang

Barang : @ KdBarang + NamaBarang + Deskripsi + Qty + QtyM in + #KdJenisBarang

Harga : @ KdHarga + Harga + TglIn + TglOut + Status + #KdBarang JenisS taff : @KdJenis Staff + JenisStaff

Supplier : @KdSupplier + NamaSupplier + AlamatSupplier + DeskripsiSupplier

(41)

4.3.2.3Memvalidasikan Relasi Terhadap Transaksi User

Langkah ini bertujuan untuk memasrikan bahwa relasi pada data model logikal mendukung transaksi yang dibutuhkan. Gambar relasi terhadap transaksi user logikal dapat dilihat pada gambar 4.10.

(42)

(a) input data staff

(b) memilih jenis staff pada staff (c) memilih jenis barang untuk barang (d) menambah jenis barang

(e) memilih barang untuk ditentukan harga jualnya (f) menambah supplier

(g) memasukkan telp supplier (h) staff memasukkan data penjualan

(i) data barang dimasukkan dalam penjualan (j) harga dimasukkan dalam penjualan (k) staff memasukkan data pembelian

(l) data barang dimasukkan dalam pembelian (m) staff memasukkan data retur penjualan

(n) data barang dimasukkan dalam retur penjualan (o) staff memasukkan data retur pembelian

(p) data barang dimasukkan dalam retur pembelian (q) staff memasukkan data koreksi persediaan

(r) data barang dimasukkan dalam koreksi persediaan (s) mengubah data staf

(t) mengubah data barang (u) mengubah data supplier

(v) melakukan pembayaran dari pembelian (w) cabang mendaftarkan staff

(43)

4.3.2.4 Mendefinisikan Batasan Integritas

Langkah ini bertujuan untuk memeriksa batasan integritas yang direpresentasikan pada data model logical. Ada lima buah batasan integritas yang didefinisikan, yaitu :

1. Constraint required data telah diidentifikasi pada bagian 4.3.1.3 2. Atributdomain constraint telah diidentifikasi pada tahap 4.3.1.4 3. Multiplicity telah diidentifikasi pada step 4.3.1.2

4. Entityintegrity telah diidentifikasi pada step 4.3.1.5

5. Referential integrity adalah seperti yang terlihat pada tabel berikut ini :

Tabel 4.6 Tabel Referential Integrity

Cabang (KdCabang, NamaCabang, Alamat, Telp, Fax, NPWP, TglCbg)

Primary key KdCabang

S taff (KdStaff, Nama, Sex, T glLhr, Alamat, Telp, UserID, Pass, KdJnsStaff, KdCabang)

Primary key KdStaff

Foreign Key KdJnsStaff references JenisStaff (KdJnsStaff) ON UPDATE CASCADE ON DELETE CASCADE

Foreign Key KdCabang references Cabang (KdCabang) ON UPDATE CASCADE ON DELETE CASCADE

JenisS taff (KdJnsStaff, JenisStaff)

Primary key KdJnsStaff

Barang (KdBarang, NamaBarang, Deskripsi, Qty, QtyM in, KdJnsBarang)

(44)

Foreign Key KdJnsBarang references JenisBarang (KdJnsBarang) ON UPDATE CASCADE ON DELETE CASCADE

JenisBarang (KdJnsBarang, JenisBarang, Deskripsi)

Primary key KdJnsBarang

HargaJual (KdHarga, Harga, TglIn, TglOut, Status, KdBarang)

Primary key KdHarga

Foreign Key KdBarang references Barang (KdBarang) ON UPDATE CASCADE ON DELETE CASCADE

Supplier (KdSupplier, Nama, Alamat, Deskripsi)

Primary key KdSupplier

TelpS upplier (NoTelp, ContactPerson, KdSupplier)

Primary key NoTelp

Foreign Key KdSupplier references Supplier (KdSupplier) ON UPDATE CASCADE ON DELETE CASCADE

JualHeader (KdJual, TglPenjualan, KdStaff)

Primary key KdJual

Foreign Key KdStaff references Staff (KdStaff) ON UPDATE CASCADE ON DELETE CASCADE

JualDetail (KdJual, Qty, KdBarang, KdHarga)

Primary key KdJual, KdBarang

Foreign Key KdJual references JualHeader (KdJual) ON UPDATE CASCADE ON DELETE CASCADE

(45)

DELETE CASCADE

Foreign Key KdHarga references HargaJual (KdHarga) ON UPDATE CASCADE ON DELETE CASCADE

BeliHeader (KdBeli, TglPembelian, JenisPembayaran, T glJatuhTempo, KdStaff, KdSupplier)

Primary key KdBeli

Foreign Key KdStaff references Staff (KdStaff) ON UPDATE CASCADE ON DELETE CASCADE

Foreign Key KdSupplier references Supplier (KdSupplier) ON UPDATE CASCADE ON DELETE CASCADE

BeliDetail (KdBeli, Qty, Harga, KdBarang)

Primary key KdBeli, KdBarang

Foreign Key KdBeli references BeliHeader (KdBeli) ON UPDATE CASCADE ON DELETE CASCADE

Foreign Key KdBarang references Barang (KdBarang) ON UPDATE CASCADE ON DELETE CASCADE

ReturJualHeader (KdRtrJual, TglRetur, KdJual, KdStaff)

Primary key KdRtrJual

Foreign Key KdJual references Penjualan (KdJual) ON UPDATE CASCADE ON DELETE CASCADE

Foreign Key KdStaff references Staff (KdStaff) ON UPDATE CASCADE ON DELETE CASCADE

(46)

Primary key KdRtrJual, KdBarang

Foreign Key KdRtrJual references ReturJualHeader (KdRtrJual) ON UPDATE CASCADE ON DELETE CASCADE

Foreign Key KdBarang references Barang (KdBarang) ON UPDATE CASCADE ON DELETE CASCADE

ReturBeliHeader (KdRtrBeli, TglRetur, KdBeli, KdStaff)

Primary key KdRtrBeli

Foreign Key KdBeli references Pembelian (KdBeli) ON UPDATE CASCADE ON DELETE CASCADE

Foreign Key KdStaff references Staff (KdStaff) ON UPDATE CASCADE ON DELETE CASCADE

ReturBeliDetail (KdRtrBeli, Qty, KdBarang)

Primary key KdRtrBeli, KdBarang

Foreign Key KdRtrBeli references ReturBeliHeader (KdRtrBeli) ON UPDATE CASCADE ON DELETE CASCADE

Foreign Key KdBarang references Barang (KdBarang) ON UPDATE CASCADE ON DELETE CASCADE

KoreksiStokHeader (KdKoreksi, Tgl, KdStaff)

Primary key KdKoreksi

Foreign Key KdStaff references Staff (KdStaff) ON UPDATE CASCADE ON DELETE CASCADE

KoreksiStokDetail (KdKoreksi, Qty, KdBarang)

(47)

Foreign Key KdKoreksi references HilangHeader (KdKoreksi) ON UPDATE CASCADE ON DELETE CASCADE

Foreign Key KdBarang references Barang (KdBarang) ON UPDATE CASCADE ON DELETE CASCADE

Pembayaran (KdBayar, TglBayar, Pembayaran, KdBeli)

Primary key KdBayar, KdBeli

Foreign Key KdBeli references Pembelian (KdBeli) ON UPDATE CASCADE ON DELETE CASCADE

6. General constraint : Retur Penjualan hanya dapat dilakukan maksimal 1 kali.

4.3.2.5 Model Data Logikal Global

Langkah ini bertujuan untuk merepresentasikan semua penglihatan user pada database. Gambar model data logical dapat dilihat pada gambar 4.11.

(48)

Ms Cab an g PK KdC ab an g Nam aCa ba ng Ala m at Te lp Fa x NPWP Tg lCbg MsSt aff PK Kd Sta ff Na ma Sex T glL hr Alam at T elp F K1 KdJ nsSta ff F K2 KdC aba ng Use rI d Pas s MsJ en isStaf f PK Kd J ns Sta ff Je nis St aff M sBar an g PK Kd Bar a ng Na ma Bara ng De sk Qt y Qt ymin F K1 KdJn sBr g T rH rg Jua l1 PK Kd Ha rg a F K1 KdBa ra ng Ha rg a T glIn T glO ut Sta tus Ms Supp lier 1 PK Kd Sup p lie r Na ma Alam at De skrip si T rJu alHe ad er PK Kd Ju al

T glPe njua lan F K1 KdSt aff T rBe liHea de r1

PK Kd Be li F K2 Kd Staff

T glPe mb elia n Jn sPem b aya ran T glJ atu hT em po F K1 Kd Supp lier T rR trJu alHe ad er PK Kd Rtr Ju al FK2 KdJu al FK1 KdSta ff Tg lRet ur Tr Rtr BeliHe ad er PK Kd Rt rB eli F K2 Kd St aff T glRe tu r F K1 Kd Be li T rKor eks iHea de r1

PK Kd Ko re ks i F K1 KdSta ff

T gl

T rJu alDe tail PK, FK3 K dBa r an g PK, FK2 K dJ ua l Q ty F K1 Kd Har ga T r Be liDet ail PK, FK 1 KdB eli PK, FK 2 KdB ar an g Qty Har ga T r RtrJ ua lDeta il PK,F K1 Kd Rtr J ua l PK,F K2 Kd Bar a ng Qt y Tr Rtr Be liDet ail PK ,FK 1 KdR tr Bel i PK ,FK 2 KdB ar an g Qty T rKo re ksiDe tail

PK ,FK 1 KdK or ek si PK ,FK 2 KdB ar an g Qty M sJns Ba ra ng PK K dJ ns Br g J nsBa ra ng D esk M sT lpSup plie r PK,F K1 k ds u pp lie r PK n o Tl p CP 1. .1 1.. * 1. .* 1.. 1 0. .* 1.. 1 0. .* 1. .1 1.. 1 0. .* 0. .1 1. .1 0. .1 1.. 1 1. .1 1.. * 0. .* 1. .1 1.. * 1. .1 1.. 1 1. .1 0..* 0. .* 0.. * 1. .1 0.. * 1. .1 1. .1 1.. * 1. .* 1.. 1 1. .* 1.. 1 1. .1 1.. 1 0.. * 1.. 1 0. .* 1.. 1 1. .* 1.. 1 1. .* 0. .*

mem ilik i m emilik i

mem ilik i mem ilik i mem ilik i memi lik i memi lik i mem ilik i m e m ilik i m e m ilik i 1.. 1 1. .* m e m ilik i m e m ili ki m em ilik i m emas uk k an melak ukan m elakuk an mem as uk kan me la k u ka n me mi li ki me mi li ki m e m ilik i m enggunak an me mi li ki 1..* 1. .1 m e m ilik i Pe mb ay ara n PK Kd Ba yar T glBa yar Pem b aya ra n F K1 KdBe li 1. .1 0. .* mem ilik i

Gambar 4.11 ERD Logikal Global 4.3.3 Perancangan Database Fisikal

Berikut ini adalah langkah – langkah perancangan database fisikal : 4.3.3.1 Merancang Relasi Dasar

Langkah pertama pada perancangan fisikal adalah dengan merancang relasi dasar. Tujuannya adalah untuk memutuskan bagaimana

(49)

merepresentasikan relasi dasar yang telah diidentifikasi pada data model logikal ke database yang akan dibuat.

1. Cabang

Domain KdCabang : variablelength characterstring, length 5 Domain NamaCabang : variable length characterstring, length 30 Domain AlamatCabang : variabletext

Domain Telp : variablelengthcharacterstring, length 13 Domain Fax : variablelengthcharacterstring, length 13 Domain NPWP : variablelength characterstring, length 25 Domain TglCbg : variabledate

Cabang (

KdCabang KdCabang NOT NULL, NamaCabang NamaCabang NOT NULL,

Alamat Alamat NOT NULL,

Telp Telp NOT NULL,

Fax Fax,

NPWP NPWP NOT NULL,

TglCabang TglCabang NOT NULL,

PRIMARY KEY (KdCabang) );

2. S taf

Domain KdStaff: variablelengthcharacterstring, length 3 Domain Nama : variablelengthcharacterstring, length 30 Domain Sex : variablelengthcharacterstring, length 1

(50)

Domain TglLhr : variabledate

Domain Alamat : variabletext

Domain Telp : variablelengthcharacterstring, length 13 Domain UserID : variablelengthcharacterstring, length 15 Domain Pass : variablelength characterstring, length 8 Domain KdCabang : variable length characterstring, length 5 Domain KdJnsStaff : variablelength characterstring, length 2 S taff (

KdStaff KdStaff NOT NULL,

Nama Nama NOT NULL,

Sex JnsKelamin NOT NULL,

TglLhr TglLhr NOT NULL,

Alamat Alamat NOT NULL,

Telp Telp,

UserID UserID NOT NULL,

Pass Pass NOT NULL,

KdCabang KdCabang NOT NULL, KdJnsStaff KdJnsStaff NOT NULL,

PRIMARY KEY (KdStaff),

FOREIGN KEY (KdCabang) REFERENCES Cabang (KdCabang) ON UPDATE CASCADE ON DELETE CASCADE,

FOREIGN KEY (KdJnsStaff) REFERENCES Jenis Staff (KdJnsStaff)

ON UPDATE CASCADE ON DELETE CASCADE

(51)

3. Jenis S taf

Domain KdJnsStaff: variablelength characterstring, length 2 Domain JenisStaff : variable length characterstring, length 20 JenisS taff (

KdJnsStaff KdJnsStaff NOT NULL, JenisStaff JenisStaff NOT NULL,

PRIMARY KEY (KdJnsStaff) );

4. Barang

Domain KdBarang: variable lengthcharacterstring, length 5 Domain NamaBarang : variable length characterstring, length 25 Domain Deskripsi : variabletext

Domain Qty : integer

Domain QtyM in : integer

Domain KdJnsBarang : variablelengthcharacterstring, length 2 Barang (

KdBarang KdBarang NOT NULL,

NamaBarang NamaBarang NOT NULL, Desk Deskripsi,

Qty Qty NOT NULL,

QtyM in QtyM in NOT NULL,

KdJnsBarang KdJnsBarang NOT NULL,

(52)

FOREIGN KEY (KdJnsBarang) REFERENCES JenisBarang (KdJnsBarang) ON UPDATE CASCADE ON DELETE CASCADE

);

5. Jenis Barang

Domain KdJnsBarang: variablelengthcharacterstring, length 2 Domain JenisBarang : variablelengthcharacterstring, length 30 Domain Deskripsi : variabletext

JenisBarang (

KdJnsBarang KdJnsBarang NOT NULL, JenisBarang JenisBarang NOT NULL, Desk Deksripsi,

PRIMARY KEY ( KdJnsBarang) );

6. Harga Jual

Domain KdHarga: variablelengthcharacterstring, length 8 Domain Harga : decimal

Domain TglIn : variabledate

Domain TglOut : variabledate

Domain Status : variablelength characterstring, length 1 Domain KdBarang : variable length characterstring, length 5 HargaJual (

KdHarga KdHarga NOT NULL,

Harga Harga NOT NULL,

(53)

TglOut TglOut ,

Status Status NOT NULL,

KdBarang KdBarang NOT NULL,

PRIMARY KEY (KdHarga),

FOREIGN KEY (KdBarang) REFERENCES Barang (KdBarang) ON UPDATE CASCADE ON DELETE CASCADE

);

7. Supplier

Domain KdSupplier: variablelengthcharacterstring, length 3 Domain Nama : variablelengthcharacterstring, length 30 Domain Alamat : variabletext

Domain Deskripsi : variabletext

Supplier (

KdSupplier KdSupplier NOT NULL,

Nama Nama NOT NULL,

Alamat Alamat NOT NULL,

Desk Deksripsi,

PRIMARY KEY (KdSupplier) );

8. Telepon S upplier

Domain NoTelp: variablelengthcharacterstring, length 13 Domain ContactPerson : variablelengthcharacterstring,

length 30

(54)

TelpS upplier (

NoTelp NoTelp NOT NULL,

CP ContactPerson NOT NULL,

KdSupplier KdSupplier NOT NULL,

PRIMARY KEY (NoTelp),

FOREIGN KEY (KdSupplier) REFERENCES Supplier (KdSupplier)

ON UPDATE CASCADE ON DELETE CASCADE

);

9. Jual Header

Domain KdJual: variablelengthcharacterstring, length 12 Domain TglPenjualan : variabledate

Domain KdStaff : variablelengthcharacterstring, length 3 TrJualHeader (

KdJual KdJual NOT NULL,

TglPenjualan TglPenjualan NOT NULL,

KdStaff KdStaff NOT NULL,

PRIMARY KEY (KdJual),

FOREIGN KEY (KdStaff) REFERENCES Staff (KdStaff) ON UPDATE CASCADE ON DELETE CASCADE

);

10. Jual Detail

Domain KdJual: variablelengthcharacter string, length 12 Domain KdBarang : variablelength characterstring, length 5 Domain KdHarga : variablelengthcharacterstring, length 8

(55)

Domain Qty: integer

TrJualDetail (

KdJual KdJual NOT NULL,

KdBarang KdBarang NOT NULL, KdHarga KdHarga NOT NULL,

Qty Qty NOT NULL,

PRIMARY KEY (KdJual, KdBarang),

FOREIGN KEY (KdJual) REFERENCES JualHeader (KdJual) ON UPDATE CASCADE ON DELETE CASCADE,

FOREIGN KEY (KdBarang) REFERENCES Barang (KdBarang) ON UPDATE CASCADE ON DELETE CASCADE,

FOREIGN KEY (KdHarga) REFERENCES Harga (KdHarga) ON UPDATE CASCADE ON DELETE CASCADE

);

11. Beli Header

Domain KdBeli: variablelengthcharacterstring, length 12 Domain TglPembelian : variabledate

Domain JenisPembayaran: variable lengthcharacterstring, length 6 Domain TglJatuhTempo : variabledate

Domain KdStaff : variablelengthcharacterstring, length 3 Domain KdSupplier : variablelength characterstring, length 3 TrBeliHeader (

KdBeli KdBeli NOT NULL,

(56)

JenisPembayaran JenisPembayaran NOT NULL, TglJatuhTempo TglJatuhTempo,

KdStaff KdStaff NOT NULL,

KdSupplier KdSupplier NOT NULL,

PRIMARY KEY (KdBeli),

FOREIGN KEY (KdStaff) REFERENCES Staff (KdStaff) ON UPDATE CASCADE ON DELETE CASCADE,

FOREIGN KEY (KdSupplier) REFERENCES Supplier (KdSupplier)

ON UPDATE CASCADE ON DELETE CASCADE

);

12. Beli Detail

Domain KdBeli: variablelengthcharacterstring, length 12 Domain KdBarang : variablelength characterstring, length 5 Domain KdHarga : decimal

Domain Qty: integer

TrBeliDetail (

KdBeli KdBeli NOT NULL,

KdBarang KdBarang NOT NULL,

Harga Harga NOT NULL,

Qty Qty NOT NULL,

PRIMARY KEY ( KdBeli, KdBarang),

FOREIGN KEY ( KdBeli) REFERENCES BeliHeader ( KdBeli ) ON UPDATE CASCADE ON DELETE CASCADE,

(57)

FOREIGN KEY ( KdBarang ) REFERENCES Barang ( KdBarang )

ON UPDATE CASCADE ON DELETE CASCADE, );

13. Retur Jual Header

Domain KdReturJual: variablelengthcharacterstring, length 12 Domain TglReturJual : variabledate

Domain KdJual : variablelengthcharacterstring, length 12 Domain KdStaff : variablelengthcharacterstring, length 3 TrReturJualHeader (

KdReturJual KdReturJual NOT NULL, TglReturJual TglReturJual NOT NULL,

KdJual KdJual NOT NULL,

KdStaff KdStaff NOT NULL,

PRIMARY KEY ( KdReturJual),

FOREIGN KEY ( KdJual) REFERENCES JualHeader ( KdJual ) ON UPDATE CASCADE ON DELETE CASCADE,

FOREIGN KEY ( KdStaff ) REFERENCES Staff ( KdStaff) ON UPDATE CASCADE ON DELETE CASCADE

);

14. Retur Jual Detail

Domain KdReturJual: variablelengthcharacterstring, length 12 Domain KdBarang : variable lengthcharacterstring, length 5 Domain Qty: integer

(58)

KdReturJual KdReturJual NOT NULL,

KdBarang KdBarang NOT NULL,

Qty Qty NOT NULL,

PRIMARY KEY (KdReturJual, KdBarang),

FOREIGN KEY (KdReturJual) REFERENCES ReturJualHeader (KdReturJual) ON UPDATE CASCADE ON DELETE CASCADE,

FOREIGN KEY (KdBarang) REFERENCES Barang (KdBarang) ON UPDATE CASCADE ON DELETE CASCADE

);

15. Retur Beli Header

Domain KdReturBeli: variable lengthcharacterstring, length 12 Domain TglReturBeli : variabledate

Domain KdBeli: variablelengthcharacterstring, length 12 Domain KdStaff : variablelengthcharacterstring, length 3 TrReturBeliHeader (

KdReturBeli KdReturBeli NOT NULL, TglReturBeli TglReturBeli NOT NULL,

KdBeli KdBeli NOT NULL,

KdStaff KdStaff NOT NULL,

PRIMARY KEY (KdReturBeli),

FOREIGN KEY (KdBeli) REFERENCES BeliHeader (KdBeli) ON UPDATE CASCADE ON DELETE CASCADE,

FOREIGN KEY (KdStaff) REFERENCES Staff (KdStaff) ON UPDATE CASCADE ON DELETE CASCADE

(59)

);

16. Retur Beli Detail

Domain KdReturBeli: variable lengthcharacterstring, length 12 Domain KdBarang : variable length characterstring, length 5 Domain Qty: integer

TrReturBeliDetail (

KdReturBeli KdReturBeli NOT NULL,

KdBarang KdBarang NOT NULL,

Qty Qty NOT NULL,

PRIMARY KEY (KdReturBeli, KdBarang),

FOREIGN KEY (KdReturBeli) REFERENCES ReturBeliHeader (KdReturBeli) ON UPDATE CASCADE ON DELETE CASCADE,

FOREIGN KEY (KdBarang) REFERENCES Barang (KdBarang) ON UPDATE CASCADE ON DELETE CASCADE

);

17. Koreksi Stok Header

Domain KdKoreksi: variablelengthcharacterstring, length 12 Domain TglHilang : variabledate

Domain KdStaff : variablelengthcharacterstring, length 3 TrKoreksiHeader(

KdKoreksi KdKoreksi NOT NULL, TglHilang TglHilang NOT NULL, KdStaff KdStaff NOT NULL,

(60)

FOREIGN KEY (KdStaff) REFERENCES Staff (KdStaff) ON UPDATE CASCADE ON DELETE CASCADE

);

18. Koreksi Stok Detail

Domain KdKoreksi: variablelengthcharacterstring, length 12 Domain KdBarang : variable length characterstring, length 5 Domain Qty: integer

TrkoreksiDetail (

KdKoreksi KdKoreksi NOT NULL, KdBarang KdBarang NOT NULL,

Qty Qty NOT NULL,

PRIMARY KEY (KdKoreksi, KdBarang),

FOREIGN KEY (KdKoreksi) REFERENCES HilangHeader

(KdKoreksi) ON UPDATE CASCADE ON DELETE CASCADE,

FOREIGN KEY (KdBarang) REFERENCES Barang (KdBarang) ON UPDATE CASCADE ON DELETE CASCADE

);

19. Pembayaran

Domain KdBayar: variablelengthcharacterstring, length 12 DomainTglBayar : variabledate

Domain Pembayaran : decimal

Domain KdBeli : variablelengthcharacterstring, length 12 Pembayaran (

(61)

TglBayar TglBayar NOT NULL, Pembayaran Pembayaran NOT NULL,

KdBeli KdBeli NOT NULL,

PRIMARY KEY (KdBayar),

FOREIGN KEY (KdBeli) REFERENCES BeliHeader (KdBeli ON UPDATE CASCADE ON DELETE CASCADE

);

4.3.3.2 Merancang Representasi Derived Data

M odel data yang ada tidak terdapat derived data. 4.3.3.3 Merancang Enterprise Constraints

Dalam tahap ini dibuat code untuk mengimplementasikan

constraint-constraint yang telah didefinisikan pada tahap logikal. Pada retur penjualan, perusahaan membatasi hanya satu transaksi retur penjualan per satu transaksi penjualan.

CONSTRAINT cekretur

CHECK ( NOT EXISTS (SELECT KdJual From TrReturJualHeader

GROUp BY KdJual HAVING COUNT>1))

4.3.3.4 Merancang Analisis Transaksi

Langkah berikutnya adalah dengan merancang analisis transaksi. Tujuan dari langkah ini adalah untuk mengerti fungsionalitas dari transaksi yang akan berjalan pada database dan

(62)

untuk menganalisa transaksi-transaksi yang penting. Tabel analisis transaksi dapat dilihat pada tabel 4.7.

a. M eng-input data staf b. M eng-input data barang c. M eng-input data jenis barang d. M eng-input data harga jual e. M eng-input data supplier

(63)

Tabel 4.7 Tabel Analisis Transaksi

Transaksi (A) (B) (C) (D) (E)

Relation R U D I R U D I R U D I R U D I R U D I Cabang X Staff X Supplier X Barang X X BeliHeader BeliDetail JualHeader JualDetail ReturBeliHeader ReturBeliDetail ReturJualHeader ReturJualDetail KoreksiHeader KoreksiDetail Pembayaran JenisStaff X JenisBarang X X HargaJual X TelpSupplier X

(64)

f. M emasukkan data penjualan g. M emasukkan data pembelian h. M emasukkan data retur penjualan i. M emasukkan data retur pembelian j. M emasukkan data koreksi persediaan

Transaksi (F) (G) (H) (I) (J) Relation R U D I R U D I R U D I R U D I R U D I Cabang Staff X X X X X Supplier X X Barang X X X X X BeliHeader X X BeliDetail X X JualHeader X X JualDetail X X ReturBeliHeader X ReturBeliDetail X ReturJualHeader X ReturJualDetail X KoreksiHeader X KoreksiDetail X Pembayaran JenisStaff JenisBarang HargaJual X X TelpSupplier

(65)

k. M engubah data staf l. M engubah data barang m. M engubah data harga jual n. M engubah data supplier

o. M emasukkan data pembayaran

Transaksi (K) (L) (M) (N) (O) Relation R U D I R U D I R U D I R U D I R U D I Cabang Staff X X X Supplier X X Barang X X X BeliHeader X BeliDetail JualHeader JualDetail ReturBeliHeader ReturBeliDetail ReturJualHeader ReturJualDetail KoreksiHeader KoreksiDetail Pembayaran X JenisStaff JenisBarang X HargaJual X X TelpSupplier X X

(66)

p. M elihat data barang

q. M elihat atau mencetak stok opname r. M elihat atau mencetak laporan penjualan s. M elihat atau mencetak laporan pembelian t. M elihat atau mencetak laporan pembayaran

Transaksi (P) (Q) (R) (S ) (T) Relation R U D I R U D I R U D I R U D I R U D I Cabang X X X Staff Supplier X X Barang X X X X BeliHeader X X BeliDetail X JualHeader X JualDetail X ReturBeliHeader ReturBeliDetail ReturJualHeader ReturJualDetail KoreksiHeader KoreksiDetail Pembayaran X JenisStaff JenisBarang X X X X HargaJual X TelpSupplier

(67)

4.3.3.5 Pembuatan Index Setiap Entity

Tidak dipergunakan pembuatan index untuk setiap entitas. 4.3.3.6 Memperkirakan Kebutuhan Kapasitas Penyimpanan

Langkah ini bertujuan untuk memperkirakan jumlah dari disk space yang dibutuhkan oleh database.

Tabel Penyimpanan Cabang

Tabel 4.8 Tabel Estimasi Cabang

Field Tipe Data Ukuran

KdCabang Char 5 NamaCabang Char 30 Alamat Text 16 Telp Char 13 Fax Char 13 NPWP Char 25 TglCbg Datetime 8

Kapasitas dari Tabel Cabang adalah 110 bytes

Diperkirakan dalam satu bulan tidak terjadi pertambahan Dalam satu tahun pertumbuhan tabel ini adalah : 0 Kbytes

(68)

Tabel Penyimpanan S taff

Tabel 4.9 Tabel Estimasi Staf

Field Tipe Data Ukuran

KdStaff Char 3 Nama Char 30 Sex Char 1 TglLhr Datetime 8 Alamat Text 16 Telp Char 13 UserID Char 15 Pass Char 8 KdCabang Char 5 KdJnsStaff Char 2

Kapasitas dari Tabel Staf adalah 101 bytes

Diperkirakan dalam satu bulan bertambah 1 staf baru

Dalam satu tahun pertumbuhan tabel ini adalah : 1*12*101 = 1.212

bytes atau 1,18 Kbytes.

Tabel Penyimpanan JenisS taff

Tabel 4.10 Tabel Estimasi Jenis Staf

Field Tipe Data Ukuran

KdJnsStaff Char 2

JenisStaff Char 20

Kapasitas dari Tabel JenisStaff adalah 22 bytes

Diperkirakan dalam satu bulan tidak terjadi pertambahan Dalam satu tahun pertumbuhan tabel ini adalah : 0 Kbytes

(69)

Tabel Penyimpanan Barang

Tabel 4.11 Tabel Estimasi Barang

Field Tipe Data Ukuran

KdBarang Char 5 NamaBarang Char 25 Desk Text 16 Qty Integer 4 QtyM in Integer 4 KdJnsBarang Char 2

Kapasitas dari Tabel Barang adalah 56 bytes

Diperkirakan dalam satu bulan bertambah 50 barang baru

Dalam satu tahun pertumbuhan tabel ini adalah : 50*12*56 = 33.600

bytes atau 32,8 Kbytes.

Tabel Penyimpanan JenisBarang

Tabel 4.12 Tabel Estimasi Jenis Barang

Field Tipe Data Ukuran

KdJnsBarang Char 2

JnsBarang Char 30

Desk Text 16

Kapasitas dari Tabel JenisBarang adalah 48 bytes

Diperkirakan dalam satu bulan bertambah 2 jenis barang baru Dalam satu tahun pertumbuhan tabel ini adalah : 2*12*48 = 1.152

(70)

Tabel Penyimpanan HargaJual

Tabel 4.13 Tabel Estimasi Harga Jual

Field Tipe Data Ukuran

KdHarga Char 8

Harga Decimal (precision

18) 9 TglIn Datetime 8 TglOut Datetime 8 Status Char 1 KdBarang Char 5

Kapasitas dari Tabel HargaJual adalah 39 bytes

Diperkirakan dalam satu bulan bertambah 100 harga jual baru

Dalam satu tahun pertumbuhan tabel ini adalah : 100*12*39 = 46.800

bytes atau 45,7 Kbytes.

Tabel Penyimpanan Supplier

Tabel 4.14 Tabel Estimasi Supplier

Field Tipe Data Ukuran

KdSupplier Char 3

Nama Char 30

Alamat Text 16

Deskripsi Text 16

Kapasitas dari Tabel Supplier adalah 65 bytes

Diperkirakan dalam satu bulan bertambah 1 supplier baru Dalam satu tahun pertumbuhan tabel ini adalah : 1*12*65 = 780

Gambar

Tabel relasi antar entitas dapat dilihat pada tabel 4.2.
Tabel 4.3 Tabel Atribut pada Entitas
Tabel 4.4 Tabel Atribut Domain
Tabel primary key dan candidate key dapat dilihat pada tabel 4.5.
+7

Referensi

Dokumen terkait

Pada Halaman menu Transaksi user dapat memilih halaman Pendaftaran yang berfungsi untuk menambah dan mengubah data serta menghapus data pendaftaran, halaman pembayaran untuk

Apabila user ingin mengubah data barang yang dibeli, user dapat memasukkan Kode Barang yang diinginkan pada bagian Edit Item Sales Order, kemudian menekan tombol Edit atau

berdasarkan kdsupplier dan nama supplier pada transaksi pembayaran pembelian. t) M encatat dan memasukkan data pelanggan ke dalam database. berdasarkan kdpelanggan dan nama

Menggambarkan hubungan antar entitas dalam rancangan sistem pada PT. Jaya Karya Steelindo. Supplier Pesan Pembelian Buat Tanda Terima Barang Untuk Retur Pembelian ada

persediaan, supplier sebagai identitas data dan juga mendata identitas supplier itu sendiri, pelanggan yang melakukan pembelian barang dan juga transaksi pembelian barang, admin

user Mengelola data Supplier Mengelola data Barang Menu Transaksi Mengelola Pemesanan Mengelola Barang Masuk Mengelola Retur Barang Mengelola Barang Keluar Menu Laporan

Staff Penjualan atau Staff Pembelian dapat melakukan pencetakan laporan, laporan yang terseida pada sistem seperti informasi data barang, informasi data pelanggan,

Halaman edit event error ini adalah tampilan layar ketika user belum memasukkan data pada field yang diwajibkan untuk diisi, salah memasukkan data, dan data yang dimasukkan