BAB 4 – PERANCANGAN FILE Tujuan Perancangan File : 1. 2. 3. 4. 5.
Ketersediaan data (data avaibility) Akurat dan konsistensi (data integrity) Penggunaan stroage yang efisien Kemudahan dalam updating Kemudahan dalam reviewing data
Jenis-Jenis File : 1. File Master Berisi record suatu entitas Atribut (field)-nya boleh diupdate Jumlah recordnya relatif permanen Contoh : - File Master Mahasiswa - File Master Dosen - File Master Barang - File Master Pelanggan 2. File Table Mirip file master , umumnya hanya read only Contoh : - File Tabel Bulan - File Tabel Mata Kuliah 3. File
Transaksi Merekam data transaksi Mengupdate file master Jumlah recornya terus bertambah Contoh : - File Transaksi Penjualan - File Transaksi Retur Penjualan - File Transaksi Perkuliahan
4. File Pelantara/Sementara/Kerja Dibentuk supaya proses lebih cepat Contoh - File indeks ======= Berisi record key yang terurut - File Sort ======= File / transaksi terurut - File Laporan ======= Hitung cukup sekali, cetak berkali-kali
A. NORMALISASI Pengertian Normalisasi
Normalisasi adalah proses dekomposisi struktur data yang kompleks menjadi bentuk yang normal berdasarkan aturan mengenai data dependency Normalisasi juga merupakan suatu pendekatan formal yang menguji data elemen dan data secara bersama ke dalam suatu bentuk yang dapat menampung perubahan pada masa yang akan datang Data store berfungsi sebagai : - Penampung data masukan (formulir) - Sumber data untuk menghasilkan informasi keluaran (laporan, inquiry) Data store pada DFD berisi data yang redudansi Normalisasi biasanya dilakukan terhadap data store
Tahapan dalam Normalisasi : Normal Pertama (1NF). Hilang kan semua kelompok data yang berulang (repeating group) dan tentukan primary key. Hasilnya adalah relasi dibagi-bagi menjadi relasi yang lebih sederhana. Normal Kedua (2NF). Semua non – key attribute (Field yang bukan record key) harus full dependent kepada primary key Normal Ketiga (3NF). Hilangkan transitive dependency, yaitu sebuah non-key attribute yang tergantung pada non -key attribute yang lain dalam satu relasi. ` Contoh Soal : CV.SAHABAT JAKARTA SURAT ORDER No. SO Tanggal SO Kode Pelanggan Nama Pelanggan Alamat Tgl Rencana Kirim Jangka Pembayaran Kode Barang Xxxx Xxxx Xxxx
: : : : : : :
xxxxxx dd-mm-yyyy xxxx xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx dd-mm-yyyy 99 Hari
Nama Barang Xxxxxxxxxxxxxxx Xxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxx Total Seluruh
Jumlah Order 9,999 9,999 9,999
Harga Satuan 99,999 99,999 99,999
Total 999,999,999 999,999,999 999,999,999 9,999,999,999
Diketahui : Ms_Barang Ms_Pelanggan
= @Kode_Brg + Nama_Brg + Jumlah + Harga_satuan = @Kode_Plg + Nama_Plg + Alamat + Telepon + E-mail
Pertanyaan : Buatlah Normalisasi sampai bentuk normal ketiga menurut E.F.Codd dan James Martin?... Menurut cara E.F.Codd UN NF. Tr_Order =
No_Order + Tgl_Order + Kd_Plg + Nama_Plg + Alamat + Tgl_Rencana_Kirim + Jangka_Pemby + {Kode_Brg + Nama_Brg + Jumlah _Order+ Harga_Satuan + Total } + Total_Seluruh.
1 NF. Tr_Order = @No_Order + Tgl_Order + Kd_Plg + Nama_Plg + Alamat + Tgl_Rencana_Kirim + Jangka_Pembayaran + @Kode_Brg + Nama_Brg + Jumlah_Order + Harga_Satuan + Total + Total_Seluruh. 2 NF. Tr_Order_Header = @No_Order + Tgl_Order + Kd_Plg + Nama_Plg + Alamat + Tgl_Rencana_Kirim + Jangka_Pembayaran + Total_seluruh Tr_Order_Detail = @#No_Order + @#Kode_Brg + Jumlah_Order Ms_Barang = @Kode_Brg + Nama_Brg + Jumlah + Harga_satuan 3 NF. Tr_Order_Header = @No_Order + Tgl_Order + #Kd_Plg + +Jangka_Pembayaran+ Total_seluruh Ms_Pelanggan = @Kode_Plg + Nama_Plg + Alamat + Telepon + E-mail
Tgl_Rencana_Kirim
Tr_Order_Detail = @#No_Order +@ #Kode_Brg + Jumlah_Order Ms_Barang = @Kode_Brg + Nama_Brg + Jumlah + harga_satuan Menurut cara James Martin UN NF. Tr_Order = @No_Order + Tgl_Order + Kd_Plg + Nama_Plg + Alamat + Tgl_Rencana_Kirim + Jangka_Pembayaran + {Kode_Brg + Nama_Brg + Jumlah_Order + Harga_Satuan + Total } + Total_Seluruh. 1 NF. Tr_Order_Header = @No_Order + Tgl_Order + Kd_Plg + Nama_Plg + Alamat + Tgl_Rencana_Kirim + Jangka_Pembayaran + Total_Seluruh. Tr_Order_Detail = @No_Order + @Kode_Brg +Nama_Brg + Jumlah_Order + Harga_Satuan + Total
2 NF. Tr_Order_Header = @No_Order + Tgl_Order + Kd_Plg + Nama_Plg + Alamat + Tgl_Rencana_Kirim + Jangka_Pembayaran + Total_seluruh Tr_Order_Detail =@#No_Order + @#Kode_Brg + Jumlah_Order Ms_Barang = @Kode_Brg + Nama_Brg + Jumlah + harga_satuan 3 NF. Tr_Order_Header = @No_Order + Tgl_Order + #Kd_Plg + Jangka_Pembayaran+ Total_seluruh Ms_Pelanggan = @Kode_Plg + Nama_Plg + Alamat + Telepon + E-mail
Tgl_Rencana_Kirim+
Tr_Order_Detail = @#No_Order + @#Kode_Brg + Jumlah_Order Ms_Barang = @Kode_Brg + Nama_Brg + Jumlah + harga_satuan Kesimpulan : Dengan demikin dapat dilihat bahwa perbedaan melakukan normalisasi menurut cara E.F.Codd dan James Martin hanya pada langkah untuk melakukan Normalisasi ke satu saja, pada Normalisasi kedua sudah sama. Apalagi pada Normalisasi ketiga sudah pasti sama. CONTOH KASUS Kamus Data Aliran Masukan 1. Daf_brg = periode_cetak_brg+hal_cetak+{no_u+kd_brg+jns_brg+nm_brg+ sat_brg+Jml_stok} 2. Daf_Dept_prsh = periode_cetak_dept+hal_cetak+{no_u+kd_dept+nm_dept+ Nm_ka_dept+nip_ka_dept} 3. FPB = no_FPB+tgl_FPB+ kd_dept+nm_dept+nm_ka_dept+nip_ka_dept+ {no_u+ kd_brg+jns_brg+nm_brg+sat_brg+Jml_minta} 4. Daf_minta_dept_verifikasi = {no_u+tgl_FPB+{no_FPB+nm_dept+{kd_brg+jns_brg+nm_brg+ sat_brg+jml_minta+jml_realisasi}}} Kamus Data Aliran Keluaran 1. Daf_brg_prsh = periode_cetak_brg+hal_cetak+{no_u+kd_brg+jns_brg+nm_brg+ sat_brg+Jml_stok} 2. FPB_kembali = no_FPB+tgl_FPB+ kd_dept+nm_dept+nm_ka_dept+nip_ka_dept+ {no_u+ kd_brg+jns_brg+nm_brg+sat_brg+Jml_minta} 3. Daf_minta_dept = {no_u+tgl_FPB+{no_FPB+nm_dept+{kd_brg+jns_brg+nm_brg+ sat_brg+jml_minta}}} 4. BPB = no_FPB+tgl_FPB+ kd_dept+nm_dept+nm_ka_dept+nip_ka_dept+ {no_u+ kd_brg+jns_brg+nm_brg+sat_brg+Jml_minta+jml_realisasi} Kamus Data Laporan Lap_permintaan
= periode_awal+periode_akhir+{no_u+tgl_FPB+{no_FPB+nm_dept+ {kd_brg+jns_brg+nm_brg+sat_brg+jml_minta+jml_realisasi}+
Tot_FPB}+tot_tgl}+tot_sel
Kamus Data Datastore BRG DEPT_PRSH PERMINTAAN
= @kd_brg+jns_brg+nm_brg+sat_brg+Jml_stok+periode_cetak_brg = @kd_dept+nm_dept+nm_ka_dept+nip_ka_dept+periode_cetak_dept = @no_FPB+tgl_FPB+#kd_dept+nm_dept+nm_ka_dept+nip_ka_dept+ {#kd_brg+jns_brg+nm_brg+sat_brg+Jml_minta+jml_realisasi}
NORMALISASI (E.F.CODD)
UNF (Un Normalized Form) PERMINTAAN
INF (First Normalized Form) PERMINTAAN
2NF (Second Normalized Form)
= no_FPB+tgl_FPB+kd_dept+nm_dept+nm_ka_dept+nip_ka_dept+ {kd_brg+jns_brg+nm_brg+sat_brg+Jml_minta+jml_realisasi} = @no_FPB+tgl_FPB+kd_dept+nm_dept+nm_ka_dept+nip_ka_dept+ @kd_brg+jns_brg+nm_brg+sat_brg+Jml_minta+jml_realisasi
PERMINTAAN_HEADER
= @no_FPB+tgl_FPB+kd_dept+nm_dept+nm_ka_dept+nip_ka_dept
PERMINTAAN_DETAIL BRG
= @#no_FPB+@#kd_brg+Jml_minta+jml_realisasi = @kd_brg+jns_brg+nm_brg+sat_brg+Jml_stok+periode_cetak_brg
3NF (Third Normalized Form) PERMINTAAN_HEADER DEPT_PRSH
= @no_FPB+tgl_FPB+#kd_dept = @kd_dept+nm_dept+nm_ka_dept+nip_ka_dept+periode_cetak_dept
PERMINTAAN_DETAIL BRG
= @#no_FPB+@#kd_brg+Jml_minta+jml_realisasi = @kd_brg+jns_brg+nm_brg+sat_brg+Jml_stok+periode_cetak_brg
NORMALISASI (JAMES MARTIN)
UNF (Un Normalized Form) PERMINTAAN
INF (First Normalized Form)
= no_FPB+tgl_FPB+kd_dept+nm_dept+nm_ka_dept+nip_ka_dept+ {kd_brg+jns_brg+nm_brg+sat_brg+Jml_minta+jml_realisasi}
PERMINTAAN_HEADER
= @no_FPB+tgl_FPB+kd_dept+nm_dept+nm_ka_dept+nip_ka_dept
PERMINTAAN_DETAIL
= @no_FPB+@kd_brg+Jml_minta+jml_realisasi
2NF (Second Normalized Form) PERMINTAAN_HEADER
= @no_FPB+tgl_FPB+kd_dept+nm_dept+nm_ka_dept+nip_ka_dept
PERMINTAAN_DETAIL BRG
= @#no_FPB+@#kd_brg+Jml_minta+jml_realisasi = @kd_brg+jns_brg+nm_brg+sat_brg+Jml_stok+periode_cetak_brg
3NF (Third Normalized Form) PERMINTAAN_HEADER DEPT_PRSH
= @no_FPB+tgl_FPB+#kd_dept = @kd_dept+nm_dept+nm_ka_dept+nip_ka_dept+periode_cetak_dept
PERMINTAAN_DETAIL BRG
= @#no_FPB+@#kd_brg+Jml_minta+jml_realisasi = @kd_brg+jns_brg+nm_brg+sat_brg+Jml_stok+periode_cetak_brg
B. SPESIFIKASI FILE
Hasil normalisasi data hanya menunjukkan atribut (field) apa saja yang terdapat dalam sebuah file
Spesifikasi file memberikan rincian yang lebih lengkap
Primary Key hanya satu sedangkan Foreign Key boleh lebih dari satu jenis (disesuaikan dengan keperluan) dan boleh beberapa field
Spesifikasi file berisi : Kode File, Nama File, Organisasi, Primary Key, Foreign Key, Panjang Record dan Diskripsi Field (No, Nama Field, Type Field, Panjang, Decimal, Keterangan)
Tipe field : Numeric, Character, Date, Boolean
Contoh : Nama File Kode File Organisasi Primary Key Foreign Key Panjang Record No Nama Field 1 Kd_Plg 2 Nm_Plg 3 Alamat 4 Telepon 5 E-mail
: : : : : :
Nama File Kode File Organisasi Primary Key Foreign Key Panjang Record No Nama Field 1 Kd_Brg 2 Nm_Brg 3 Jumlah 4 Harga_satuan
: : : : : :
Master_Pelanggan Ms_Plg Indexed Sequential Kd_Plg 95 Type Panjang Character 4 Character 25 Character 30 Character 11 Character 25
Decimal -
Keterangan Kode Pelanggan Nama Pelanggan Alamat Telepon E-Mail Pelanggan
Master_Barang Ms_Brg Indexed Sequential Kd_Brg 28 Type Panjang Character 4 Character 15 Numeric 4 Numeric 5
Decimal 0 0
Keterangan Kode Barang Nama Barang Jumlah Barang Harga Satuan
Contoh Spesifikasi File Setelah di Lakukan Normalisasi Nama File : Kode File : Organisasi : Primary Key : Foreign Key : Panjang Record : No Nama Field 1 No_Order 2 Tgl_Order 3 Kd_Plg 4 Tgl_Renc_Kirim 5 Jangka_Pembaya ran
Transaksi_Order_Header Tr_Order Indexed Sequential No_Order Kd_Plg 28 Type Panjang Character 6 Date 8 Character 4 Date 8 Numeric 2
Nama File Kode File Organisasi Primary Key Foreign Key Panjang Record No Nama Field 1 No_Order 2 Kd_Brg 3 Jumlah_Order
Transaksi_Order_Detail Tr_Order Indexed Sequential No_order No_Order, Kode_Brg 15 Type Panjang Character 6 Numeric 5 Numeric 4
Decimal 0 0
Keterangan Nomor Order Kode Barang Jumlah Barang
Master_Barang Brg Indexed Sequential Kd_Brg 60 Type Panjang Character 7 Character 15 Character 30 Numeric 2
Decimal 0 0
Keterangan Kode Barang Jenis Barang Nama Barang Jumlah Barang
: : : : : :
Decimal -
Keterangan Nomor Order Tanggal Order Kode Pelanggan Tgl Rencana Kirim Jangka Pembayaran
CONTOH KASUS Nama File Kode File Organisasi Primary Key Foreign Key Panjang Record No Nama Field 1 Kd_Brg 2 Jns_Brg 3 Nm_Brg 4 Jml_stok
: : : : : :
Nama File Kode File Organisasi Primary Key Foreign Key Panjang Record No Nama Field 1 Kd_dept 2 Nm_dept 3 Nm_ka_dept 4 Nip_ka_dept
: : : : : :
Nama File Kode File Organisasi Primary Key Foreign Key Panjang Record No Nama Field 1 No_FPB 2 Tgl_FPB 3 Kd_dept
: : : : : :
Nama File Kode File Organisasi Primary Key Foreign Key Panjang Record No Nama Field 1 No_FPB 2 Kd_Brg 3 Jumlah_Minta 4 Jumlah_realisasi
: : : : : :
Master_Departemen_perusahaan Dept_prsh Indexed Sequential Kd_dept 56 Type Panjang Decimal Character 5 Character 30 Character 15 Character 6 -
Keterangan Kode Departemen Nama Departemen Nama Kepala Departemen NIP Kepala Departemen
Transaksi_Permintaan_Header Permintaan_header Indexed Sequential No_FPB Kd_Dept 22 Type Panjang Decimal Character 9 Date 8 Character 5 -
Keterangan Nomor Form Minta Barang Tanggal Form minta Brg Kode Departemen
Transaksi_Permintaan_Detail Permintaan_Detail Indexed Sequential No_FPB No_FPB, Kd_brg 20 Type Panjang Character 9 Numeric 7 Numeric 2 Numeric 2
Keterangan Nomor Form Minta Barang Kode Barang Jumlah Barang Minta Jumlah Barang Realisasi
Decimal 0 0 0
ENTITY RELATIONSHIP DIAGRAM (ERD) A. VERSI CHEN
Diagram yang digunakan untuk menggambarkan hubungan antar entity dalam suatu sistem. ERD tidak menggambarkan aliran data atau proses. Komponen 1. 2. 3.
ERD : Entity Relationship Attribute
1. Entity Segala sesuatu yang dapat dijelaskan dengan data, kelompok benda / objek, diberi nama denga kata benda. 2. Relationship Asosiasi antara satu atau beberapa entity, diberi nama dengan kata kerja 3. Attribute Propety / karakteristik suatu entity atau relationship SIMBOL YANG DIGUNAKAN Segi empat, menyimbolkan entity Belah ketupat, menyimbolkan relationship
Nama Entity
Nama relationship
JENIS RELATIONSHIP (CARDINALITY) One – to – One (1 : 1)
Mahasswa
1
Milik
1
KTM
One – to – Many atau Many-To-One ( 1 : M atau M : 1)
1
PELANGGAN
M
Lakukan
SEWA
1 M VCD
Kurangi
Many – to – Many (N : M)
Pelanggan
N
Memesan
M
Barang
A. VERSI JAMES MARTIN Simbol-simbol yang digunakan : Nama Entity
Entity / Terminal
Relationship Garis relasi / hubungan dilengkapi dengan cardinality (frekuensi hubungan) CARDINALITY / JENIS-JENIS RELATIONSHIP 1. A berasosiasi dengan satu dan hanya B
A
B
2. A berasosiasi dengan Nol atau satu B
A
B
3. A berasosiasi dengan satu atau lebih B
A
B
4. A berasosiasi denga Nol, satu atau lebih B
A
B
5. A berasosiasi dengan lebih dari satu B
A
B
Barang Pelanggan
Pesanan
Rincian Pesanan
CONTOH
Seorang pelanggan melakukan satu atau beberapa pesanan Sebuah pesanan mempunyai satu rincian pesanan (detail order) Satu rincian pesanan terdiri dari satu atau beberapa barang
Contoh 1 : ERD menurut CHEN Order
1
Mliki
N
1
Detail Order 1
Lakukan
1
Kurangi
N
Pelanggan
Barang
Contoh 2 : ERD Menurut JAMES MARTIN
Order
Detail Order
Pelanggan
Barang
CONTOH KASUS Versi Chen 1
M
DEPT_PRSH
LAKUKAN
@kd_dept
#kd_dept
PERMINTAAN
@no_FPB #kd_dept
1
Miliki
1
BRG
Kurangi M
@kd_brg
1
PERMINTAAN DETAIL
@no_FPB #kd_brg
#kd_brg
Versi James Martin
DEPT_PRSH
PERMINTAAN
BRG
PERMINTAAN DETAIL