BAB 3 ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM BASIS DATA
3.1
Sejarah Umum Perusahaan Bando Chemical Industries Ltd adalah perusahaan yang bergerak dalam bidang
industri pengolahan karet, baik karet alam maupun karet sintetis, menjadi sabuk transmisi dan sabuk conveyor. Nama Bando Chemical Industries Ltd ini sendiri diambil dari nama orang yang pertama kali menemukan dan mengembangkannya yaitu Naosaburo Bando. Pada tahun 1890 Mr. Bando mulai memimpin sebuah penelitian yang bertujuan untuk mengembangkan sebuah jenis sabuk asli yang akan digunakan dalam industri. Akhirnya setelah 10 tahun, pada tahun 1900, Mr. Bando berhasil menguasai, memperluas penelitian, dan sukses dalam mengembangkan jenis sabuk baru ini, yang diberi nama sabuk Bando, dan telah dilindungi oleh hak paten (Japanese PAT.NO.3384) sebagai jenis sabuk industri pertama di Jepang. Perusahaannya sendiri didirikan pada tahun 1906 di Kobe dan segera mulai memproduksi sabuk dengan merk dagang Bando. Sejak saat itu, sejalan dengan meningkatnya produksi, juga dikembangkan diversifikasi berupa berbagai macam jenis dan ukuran sabuk. Bando tidak hanya menjadi pelopor tetapi telah menjadi pemimpin dalam pengolahan karet menjadi sabuk transmisi dan sabuk conveyor. Kini Bando telah berhasil membentuk jaringan pasar yang kuat dan diproduksi di seluruh dunia. Bando Chemical Industries Ltd. Jepang dan PT Kembar Madya Utama dari Indonesia mendirikan perusahaan patungan pada tahun 1987 dan diberi nama PT Bando 36
37 Indonesia. PT Bando Indonesia sendiri berstatus Penanaman Modal Asing (PMA), yang berarti bahwa perusahaan ini masih terikat kerja dengan perusahaan asing di Jepang, didukung dengan Keputusan Presiden B-44/Pres/6/1987, 26 Juni 1987 dan BKPH No.33/I/PMA/1987. Pada mulanya PT Bando Indonesia hanya memproduksi V-belt dan Fan-belt untuk memenuhi permintaan akan barang-barang tersebut di pasaran otomotif dan industri, baru pada tahun 1995 mulai memproduksi sabuk conveyor. Dengan kemajuan yang telah dicapai oleh PT Bando Indonesia dalam hal-hal kemampuan dan mutu produksinya, Bando berhasil memperoleh kepercayaan dari pasaran lokal dan luar negeri sehingga memperluas penjualannya dengan baik hingga ke negara-negara di Eropa dan Amerika. Di Indonesia sendiri Bando telah menjadi pemimpin dalam industri pembuatan sabuk transmisi dan sabuk conveyor. Berbagai prestasi telah dicapai oleh PT Bando Indonesia dalam perjalanan usahanya, beberapa pencapaian yang telah diraih PT Bando Indonesia adalah sebagai berikut: 1987
Diterima sebagai OEM (Original Equipment Manufacturing) sabuk otomotif dan digunakan sebagai suku cadang asli oleh Industri Otomotif Jepang.
1988
Mulai mengekspor ke Amerika dan Eropa
1992
Menerima JIS K 6322 (Standar Industri Jepang), 25 Desember 1992.
1995
Merelokasi pabrik baru dan mengembangkan produksinya pada sabuk conveyor.
1996
Menerima sertifikat ISO 9002 dari SGS pada tanggal 26 September 1996 untuk sabuk transmisi.
38 1999
Sabuk otomotif diterima dan digunakan oleh American Car ManufacturerGeneral Motor Indonesia.
2000
Menerima sertifikat ISO 9000 dari SGS pada tanggal 27 Maret 2000 untuk sabuk otomotif. Menerima sertifikat ISO 9002 dari SGS pada tanggal 26 September 2000 untuk sabuk conveyor.
2002
Menerima sertifikat ISO 14001 dari SGS pada tanggal 28 Maret 2002. PT Bando Indonesia bergerak dalam bidang usaha pengolahan karet, baik karet
alam maupun karet sintetis untuk memproduksi sabuk transmisi dan sabuk conveyor yang akan dipasarkan untuk memenuhi kebutuhan otomotif dan industri lokal maupun mancanegara. Pabrik PT Bando Indonesia terletak di Jl. Gajah Tunggal, Desa Pasir Jaya, Kecamatan Jati Uwung, Kabupaten Tangerang, Propinsi Banten. Sedangkan kantor penjualan PT Bando Indonesia terletak di Wisma Hayam Wuruk Lantai 11 Kamar 1140, Jl. Hayam Wuruk no 8, Jakarta.
39 3.2
Struktur Organisasi
PT BANDO INDONESIA STRUKTUR ORGANISASI
PRESIDEN DIREKTUR
DIREKTUR VP DIREKTUR
MANAJER GA & PERSONALIA
MANAJER PABRIK
MANAJER KEUANGAN & ADM
MANAJER PEMBELIAN
DEPT. PEMBELIAN
LAYANAN TEKNIS
DIVISI CONVEYOR
DIVISI V-BELT
DEPT. MIS
DEPT. ACC. & KEUANGAN
DEPT. PEMELIHARAAN
DEPT. PROD. CONV. BELT
DEPT. PROD. V-BELT
DEPT. P P C
DEPT. QA / QC
DEPT. GA & PERSONALIA
Gambar 3.1
MANAJER PEMASARAN
Struktur Organisasi
3.3
Wewenang dan Tanggung Jawab
3.3.1
Chairman Tugas, wewenang, dan tanggung jawabnya adalah: •
Melaksanakan kebijakan yang telah ditetapkan oleh dewan komisaris.
•
Mengurus dan mengawasi seluruh kekayaan perusahaan.
•
Menandatangani surat-surat keluar dan surat-surat intern yang bersifat prinsipil.
•
Memberikan laporan tahunan kepada dewan komisaris.
40 3.3.2
Presiden Direktur Tugas, wewenang, dan tanggung jawabnya adalah: •
Mengawasi jalannya perusahaan secara keseluruhan.
•
Memberi saran dan pertimbangan kepada general manager atas keputusan yang diambil baik diminta ataupun tidak.
•
Meminta laporan pertanggungjawaban dari general manager mengenai ketentuan-ketentuan pokok perusahaan secara periodik atau sewaktuwaktu diperlukan.
•
Melaksanakan pekerjaan sesuai prosedur agar sistem dan program kerja dapat berjalan lancar.
3.3.3
Wakil Presiden Direktur Tugas, wewenang, dan tanggung jawabnya adalah: •
Mengelola perusahaan secara umum.
•
Melakukan pengawasan atas seluruh pengawasan.
•
Menumbuhkembangkan rasa memiliki dan loyalitas.
•
Memberikan saran-saran kepada presiden direktur untuk keputusankeputusan yang berkaitan dengan kemajuan perusahaan.
3.3.4
General Manager Tugas, wewenang, dan tanggung jawabnya adalah: •
Memimpin dan mengkoordinasikan seluruh kegiatan perusahaan agar tetap mengarah kepada tujuan perusahaan yang telah ditetapkan.
41 •
Menyusun, merumuskan, dan mengembangkan kebijakan dan program kerja dalam usaha mencapai tujuan perusahaan yang telah ditetapkan.
•
Membuat
laporan
pertanggungjawaban
kepada
presiden
direktur
mengenai pelaksanaan tugasnya. •
Mengambil keputusan atau tindakan atas hal-hal yang tidak dapat diatasi oleh jabatan-jabatan di bawahnya.
3.3.5
Senior Sales Manager Tugas, wewenang, dan tanggung jawabnya adalah: •
Menyusun, merumuskan, dan mengembangkan kebijakan pemasaran yang diperlukan untuk meningkatkan penjualan.
•
Melakukan koordinasi kerja dengan semua bagian terutama bagian produksi dalam hal penyediaan produk yang sesuai dengan pesanan.
•
Bertanggung jawab atas klaim atau keluhan yang berasal dari pihak konsumen.
•
Menganalisis situasi pasar dan hal-hal lain yang berhubungan seperti mengenai adanya produk-produk baru, harga umum yang berlaku, kualitas produk pesaing, selera konsumen, dan langkah atau strategi para pesaing dalam memasarkan produk.
•
Melakukan penawaran harga conveyor kepada para konsumen.
•
Melakukan negosiasi dengan pemesan dalam memperoleh harga jual yang layak.
42 •
Menerima pesanan dengan pihak konsumen dan memberitahukannya kepada bagian produksi.
•
3.3.6
Bertanggung jawab kepada general manager.
Manajer Human Resource Department and General Affairs Tugas, wewenang, dan tanggung jawabnya adalah: •
Melaksanakan dan mengusahakan penyempurnaan kegiatan umum dan personalia agar dapat berjalan dengan lancar.
•
Mengusahakan tersedianya pegawai yang cakap dan penuh tanggung jawab,
memilih
dan
menempatkan
pegawai
sesuai
dengan
kemampuannya. •
Bertanggung jawab atas kelancaran rumah tangga perusahaan.
•
Merencanakan dan menetapkan kebijakan perusahaan di bidang umum dan personalia.
•
Mengatur jadwal kerja.
•
Memberikan sanksi bagi pegawai yang melanggar peraturan.
•
Menjaga dan mengawasi masalah ketertiban dan kedisiplinan.
•
Memberikan motivasi kepada karyawan untuk menciptakan iklim kepegawaian yang sehat dan baik.
•
Mengatasi konflik yang terjadi di perusahaan.
•
Mengawasi dan mengevaluasi kinerja karyawan yang berada di bawah pengawasannya serta memberi sarana kepada direktur mengenai promosi,
43 mutasi, dan kompensasi lainnya sesuai dengan hasil evaluasi yang dilaksanakan.
3.3.7
Manajer Pembelian Tugas, wewenang, dan tanggung jawabnya adalah: •
Memimpin, mengatur, mengkoordinasi, dan mengawasi kegiatan pembelian.
•
Membina hubungan dengan pemasok agar dapat melakukan pembelian yang ekonomis.
•
Bertanggung jawab atas ketepatan waktu penyediaan bahan baku dan bahan pembantu yang dibeli terhadap kelancaran proses produksi berikut kebutuhan mesin-mesin berupa suku cadangnya.
•
Berhubungan aktif dengan semua bagian terutama dengan bagian keuangan dalam hal perencanaan dan penyediaan dana, sehingga pembayaran untuk setiap pembelian dapat dilaksanakan dengan tepat waktu.
•
3.3.8
Bertanggung jawab kepada general manager.
Manajer Keuangan dan Akuntansi Tugas, wewenang, dan tanggung jawabnya adalah: •
Mengatur dan menjaga kondisi keuangan perusahaan agar senantiasa sehat.
44 •
Membuat rencana penggunaan dan penyediaan dana/keuangan secara efisien dan efektif untuk mendukung rencana perusahaan.
•
Bertanggung jawab atas penyusunan dan pelaksanaan rencana-rencana keuangan baik jangka pendek maupun jangka panjang.
•
Menyusun laporan keuangan.
•
Memiliki wewenang dalam hal penagihan kepada konsumen dan pembayaran kepada pemasok bahan baku.
•
Mencatat semua transaksi perusahaan baik yang ekstern maupun yang intern.
3.3.9
•
Memperhitungkan laba rugi perusahaan.
•
Bertanggung jawab kepada general manager.
Divisi Impor/Ekspor Tugas, wewenang, dan tanggung jawabnya adalah: •
Melakukan promosi ke perusahaan-perusahaan.
•
Melakukan sistem ABC (After Before Service) gratis, berupa presentasi di perusahaan maupun kunjungan ke konsumen serta layanan ataupun konsultasi yang berkelanjutan.
•
Menjaga hubungan baik dengan pihak konsumen.
•
Menjadwalkan penyerahan barang jadi conveyor kepada konsumen.
•
Bertanggung jawab pada senior sales manager.
45 3.3.10
Manajer Pabrik Tugas, wewenang, dan tanggung jawabnya adalah: •
Menyusun, merumuskan, dan mengembangkan program kerja yang mendukung kelancaran jalannya kegiatan produksi perusahaan.
•
Memimpin dan mengkoordinasi seluruh kegiatan yang berhubungan dengan kelancaran produksi perusahaan agar tetap mengarah kepada tujuan perusahaan yang telah ditetapkan.
•
Mengambil keputusan atau tindakan atas hal-hal yang tidak dapat diatasi oleh jabatan-jabatan di bawahnya.
•
Membuat
laporan
pertanggungjawaban
kepada
general
manager
mengenai pelaksanaan tugasnya.
3.3.11
Manajer PPC Tugas, wewenang, dan tanggung jawabnya adalah: •
Menerima pesanan produksi dari bagian penjualan.
•
Membuat program rencana produksi yang diberikan ke bagian produksi.
•
Menentukan dan menghitung bahan-bahan yang dibutuhkan berdasarkan pesanan penjualan.
•
Menentukan operasi dan urutan-urutan operasi produksi.
•
Menindaklanjuti proses produksi.
•
Merencanakan waktu terakhir dari penyelesaian dan penyerahan pesanan.
•
Bertanggung jawab kepada manajer pabrik.
46 3.3.12
Manajer Pemeliharaan Tugas, wewenang, dan tanggung jawabnya adalah: •
Bertanggung jawab atas kelancaran proses produksi pada mesin.
•
Melaksanakan pengawasan atas pemeliharaan harian, mingguan, maupun bulanan.
•
Membuat laporan atas pemeliharaan yang dilakukan.
•
Pengelolaan kebersihan, keamanan, kesehatan, dan keselamatan kerja di sekitar lingkungan pabrik.
•
3.3.13
Bertanggung jawab kepada manajer pabrik.
Factory Administration Manager Tugas, wewenang, dan tanggung jawabnya adalah: •
Bertanggung jawab atas keamanan seluruh produk yang ada.
•
Bertanggung jawab atas pemasukan dan pengeluaran bahan baku dan bahan pembantu, barang jadi.
•
Mencatat data produk jadi yang telah masuk gudang dan keluar gudang.
•
Melakukan permintaan pembelian bahan baku dan bahan pembantu kepada bagian pembelian.
•
Menyerahkan bahan baku dan bahan pembantu yang diminta dan menyerahkan barang jadi kepada ekspedisi untuk dikirim kepada konsumen.
•
Membuat laporan atas penerimaan dan pengeluaran baik bahan baku dan pembantu serta barang jadi.
47 3.3.14
Manajer Produksi Tugas, wewenang, dan tanggung jawabnya adalah: •
Menyusun, mengkoordinasikan, dan mengawasi pelaksanaan tugas dalam bidang produksi dan teknik.
•
Melaksanakan dan mengusahakan penyempurnaan kegiatan produksi agar berjalan lancar, mencapai target, dan menghasilkan produk yang bermutu sesuai dengan keadaan mesin dan sarana penunjang yang ada.
•
Membuat program rencana harian dan mendistribusikannya ke bagian terkait.
3.3.15
•
Mengendalikan seluruh proses produksi.
•
Bertanggung jawab kepada manajer pabrik.
Manajer Quality Control Tugas, wewenang, dan tanggung jawabnya adalah: •
Menentukan kualitas bahan baku yang digunakan berdasarkan pesanan penjualan yang akan dicantumkan di dalam surat produksi harian.
•
Memeriksa kualitas bahan pembantu yang digunakan.
•
Mengawasi kerja dari kabag-kabag yang di bawahnya.
•
Bertanggung jawab atas kualitas barang jadi.
•
Mengeluarkan sertifikat jaminan kualitas atas produk yang akan dikirimkan kepada konsumen.
•
Menolak produk yang cacat.
48 3.4
Penentuan Fakta Kebutuhan dan Tujuan Sistem Basis Data
3.4.1
Ruang Lingkup Analisis Sistem yang Berjalan
Gambar 3.2
3.4.2
Ruang Lingkup Analisis
Mempelajari Dokumen Dokumen yang ada dibedakan menjadi dua bagian, yaitu dokumen masukan
(input) dan dokumen keluaran (output) dari setiap pihak yang berkaitan. Dokumen yang ada digunakan untuk mempermudah proses yang ada dalam proses bisnis yang berjalan. Dokumen input akan diproses sehingga menghasilkan sistem keluaran atau output yang digunakan untuk memenuhi kebutuhan. Dokumen input yang digunakan dalam penelitian skripsi ini adalah:
49 •
Nama Dokumen
: Bukti Order Barang
Fungsi
: Untuk mendatakan barang-barang yang akan dipesan
•
•
Sumber
: Bagian Pembelian
Tujuan
: Pemesanan
Media
: Kertas
Jumlah
:
1
Frekuensi
:
Setiap ada barang yang akan dipesan
Nama Dokumen
:
Formulir Pendaftaran Pemasok
Fungsi
:
Untuk data pemasok-pemasok baru
Sumber
:
Bagian Pembelian
Tujuan
:
Pendataan pemasok
Media
:
Kertas
Jumlah
:
1
Frekuensi
:
Bila ada pemasok baru
Nama Dokumen
:
Formulir Data Karyawan
Fungsi
:
Untuk mendatakan karyawan yang bekerja
Sumber
:
Bagian Personalia
Tujuan
:
Pendataan karyawan
Media
:
Kertas
Jumlah
:
1
50 Frekuensi
:
Setiap ada karyawan baru dan atau kenaikan jabatan karyawan.
Dokumen output yang digunakan dalam penelitian skripsi ini adalah: •
•
Nama Dokumen
:
Laporan Penilaian Performa
Fungsi
:
Untuk laporan penilaian kinerja pemasok
Sumber
:
Bagian Pembelian
Tujuan
:
Menilai kinerja pemasok
Media
:
Kertas
Jumlah
:
1
Frekuensi
:
Setiap bulan
Nama Dokumen
:
Laporan Penerimaan
Fungsi
:
Laporan barang-barang yang sudah diterima
Sumber
:
Bagian Pembelian
Tujuan
:
Melaporkan barang yang sudah diterima
Media
:
Kertas
Jumlah
:
1
Frekuensi
:
Setiap bulan atau sewaktu-waktu
51 3.4.3
Analisis Sistem Berjalan
3.4.3.1
Observasi Sistem Berjalan Saat ini pencatatan pembelian PT Bando Indonesia sudah terkomputerisasi
dengan sistem yang disebut Synergy System menggunakan basis data Foxpro dan server Novell Netware 3.12. Sistem ini telah digunakan selama sepuluh tahun. Saat ini perusahaan sedang mengembangkan server berbasis Windows dan ingin mengganti sistemnya dengan sistem baru berbasis Windows. Tahap-tahap sistem yang berjalan adalah sebagai berikut: 3.4.3.1.1 Tahap Pendaftaran Pemasok Pemasok dapat mengajukan penawaran kepada perusahaan untuk memasok barang-barang yang diproduksinya. Bila perusahaan tertarik dengan penawaran pemasok, maka perusahaan dan calon pemasok akan mengadakan pertemuan untuk membahas
kesepakatan-kesepakatan
dalam
kerja
sama
yang
akan
diadakan.
Kesepakatan ini meliputi cara pembayaran, batas waktu pembayaran, batas waktu pengiriman, produk-produk yang dipasok, dan cara pengiriman barang. Setelah kesepakatan dicapai maka pemasok akan melengkapi formulir pendaftaran pemasok. 3.4.3.1.2 Tahap Pembuatan Order Sheet Barang-barang digolongkan menjadi tiga jenis, yaitu office supply atau alat tulis kantor, peralatan atau suku cadang, dan bahan mentah. Barang-barang yang terdapat dalam satu Bukti Order Barang (BOB) harus sejenis. Semua karyawan dapat mengeluarkan BOB. Setelah BOB diisi, BOB tersebut harus disetujui oleh manajer masing-masing. BOB kemudian diserahkan ke bagian gudang. Untuk BOB yang berisi barang jenis office supply atau alat tulis kantor dibawa ke gudang General Affairs, BOB yang berisi barang jenis peralatan atau suku cadang
52 dibawa ke gudang suku cadang, dan BOB yang berisi barang jenis bahan mentah dibawa ke gudang logistik. BOB yang telah disetujui tersebut kemudian di-input oleh manajer gudang yang bersangkutan ke dalam Synergy System untuk menerbitkan order sheet yang akan diproses di bagian pembelian. Khusus untuk gudang suku cadang, order sheet dibuat oleh manajer pabrik karena gudang suku cadang berada di bawah pengawasan manajer pabrik. Mulai
Membuat BOB
BOB
Membuat Order Sheet
Synergy System
Order Sheet
Gambar 3.3
Flowchart Pembuatan Order Sheet
53 3.4.3.1.3 Tahap Pembuatan Purchase Order (PO) Order sheet yang telah dikirim ke bagian pembelian dibedakan menjadi dua, yaitu barang yang dibeli dari pemasok dalam negeri dan barang yang dibeli dari pemasok luar negeri. Akan tetapi proses pembuatannya tidak berbeda. Order sheet yang masuk akan diproses oleh staff pembelian menjadi purchase order untuk dikirim ke pemasok.
54
Gambar 3.4
Flowchart Pembuatan PO
55 3.4.3.1.4 Tahap Penerimaan Barang Barang yang diterima masuk ke gudang material untuk bahan mentah, gudang suku cadang untuk suku cadang dan peralatan, atau gudang General Affairs untuk office supply atau alat tulis kantor. Kemudian bagian gudang membuat Acceptance Received Good(ARG) sesuai nomor PO yang bersangkutan dan menandatangani surat jalan untuk dilampirkan di tagihan. Tagihan kemudian dikirim ke kantor pembelian dan diperiksa kembali. Setelah itu, invoice dikirim ke bagian keuangan untuk pembayaran. Invoice tersebut dikirim ke bagian accounting untuk diperiksa sekali lagi. Untuk barang yang dibeli dari pemasok luar negeri, setelah barang siap dikirim, bagian pembelian harus membuat Letter of Credit (L/C) yang akan dikirim ke Bank Devisa untuk diproses, diberikan nomor, dan diteruskan kepada bank penerima di luar negeri dan pemasok. Bukti permohonan L/C yang telah mendapat persetujuan dari Bank Devisa, dengan nomor serta kode bank, dikembalikan kepada manajer pembelian. Kemudian staff pembelian impor mengirim L/C melalui faksimile kepada pemasok atau agen yang menjadi perwakilan di dalam negeri. L/C ini berfungsi sebagai bukti ketersediaan dana untuk pembayaran barang yang dipesan. Pembayaran ada dua macam yaitu langsung dibayar/tunai atau utang. Jika utang, pembayaran dilakukan sesuai kesepakatan dengan pemasok, mungkin dua minggu, tiga minggu, satu bulan, bahkan dua bulan setelah barang diterima. Pembayaran dilakukan dengan transfer. Bagian pembelian akan melakukan penilaian performa pada pemasok. Nilai maksimal performa pemasok adalah sepuluh. Nilai ini diberikan sebagai nilai awal pada setiap pemesanan barang. Setiap pemasok memiliki batas waktu pengiriman yang berbeda satu dengan yang lainnya (batas waktu ini ditentukan berdasarkan kesepakatan
56 awal). Diberikan tenggang waktu tiga hari keterlambatan, sehingga apabila pemasok melebihi waktu tenggang tersebut, nilai pemasok yang awalnya adalah sepuluh akan dikurangi satu setiap harinya. Penilaian performa ini dilakukan setiap barang diterima. Bila dalam satu bulan terdapat lebih dari satu pemesanan kepada pemasok yang sama, maka pada laporan penilaian performa, akan dicari nilai rata-rata performa pada bulan tersebut.
57
Gambar 3.5
Flowchart Penerimaan Barang
58 3.4.3.2
Permasalahan yang Dihadapi Permasalahan yang dihadapi oleh perusahaan yaitu adanya kebutuhan aplikasi
baru berbasis Windows dengan menggunakan DBMS Microsoft SQL Server. Selain itu terdapat banyak kelemahan pada sistem yang berjalan antara lain: bila suatu data sedang digunakan oleh suatu bagian, maka bagian yang lain harus menunggu untuk dapat mengakses data; tidak dapat digunakan untuk melihat data barang yang belum diterima; tidak terdapat hak yang membatasi akses setiap karyawan sehingga dapat terjadi penyalahgunaan hak akses oleh karyawan; penilaian performa untuk setiap pemasok masih harus dilakukan secara manual; dan terdapat kesulitan untuk melihat dari pemasok mana suatu barang dibeli. Kemungkinan pengembangan aplikasi menggunakan basis data Foxpro tidak dilakukan karena perusahaan ingin mengganti sistem yang lama dengan sistem yang baru, yaitu sistem berbasis Windows.
3.4.3.3
Usulan Pemecahan Masalah yang Diajukan Melihat permasalahan yang dihadapi, maka usulan pemecahan masalah yang
diajukan adalah dengan mengembangkan aplikasi sistem basis data khususnya untuk bagian pembelian berbasis Windows. Basis data akan disusun ulang berdasarkan kebutuhan user yang telah dianalisis. Aplikasi ini digunakan untuk mempermudah user untuk melakukan penilaian performa secara otomatis sehingga tidak perlu melakukan penilaian performa secara manual, memberikan otentifikasi dan otorisasi kepada user untuk menentukan hak akses terhadap basis data yang ada, dan menyediakan laporan periodik yang dibutuhkan oleh user operasional maupun manajerial. Rancangan dari aplikasi sistem basis data ini akan dijelaskan secara lengkap pada subbab berikut.
59 3.4.3.4
Perancangan Basis Data Konseptual Pada
perancangan
mengidentifikasi
entitas,
basis
data
konseptual
mengidentifikasi
ini
akan
relationship,
dilakukan
tahap
mengidentifikasi
dan
menghubungkan atribut dengan entitas atau jenis relationship, menentukan attribute domain, menentukan atribut candidate key dan primary key, memeriksa redundansi model, dan memvalidasi model konseptual lokal terhadap transaksi user. 3.4.3.4.1 Mengidentifikasi jenis entitas Nama Entitas Barang
OrderSheet
Deskripsi
Alias
Kejadian
Informasi umum
Setiap barang
mengenai barang yang
yang terdaftar di
terdaftar pada PT Bando
PT Bando
Indonesia
Indonesia
Informasi mengenai bukti
Setiap barang
barang yang akan dipesan
yang akan dipesan
Karyawan
Bagian
Informasi umum
Pegawai
Setiap karyawan
mengenai karyawan yang
yang terdaftar di
terdaftar di PT Bando
PT Bando
Indonesia
Indonesia
Informasi umum
Setiap bagian
mengenai bagian-bagian
yang terdaftar
yang terdaftar pada PT
pada PT Bando
Bando Indonesia
Indonesia
60 Nama Entitas Jabatan
Deskripsi
Alias
Kejadian
Informasi mengenai
Setiap jabatan
jabatan-jabatan yang ada
yang ada di PT
di PT Bando Indonesia
Bando Indonesia
Pemasok
PurchaseOrder
Informasi umum
Setiap pemasok
mengenai pemasok yang
yang terdaftar
terdaftar pada PT Bando
pada PT Bando
Indonesia
Indonesia
Informasi mengenai surat
Setiap
pemesanan barang pada
pemesanan
pemasok dalam negeri
barang ke pemasok dalam negeri
ARG
Informasi mengenai
Setiap barang
barang yang sudah
yang diterima
diterima
oleh PT Bando Indonesia
PembayaranBarang Informasi tentang
Setiap
pembayaran yang harus
pembayaran
dibayar PT Bando
yang dilakukan
Indonesia pada setiap
untuk barang
pemesanan
yang dipesan
61 Nama Entitas
Deskripsi
Alias
Kejadian setelah barang diterima
PenilaianPerforma
Penerimaan
Informasi tentang
Setiap barang
penilaian performa
diterima oleh
pemasok setiap barang
PT Bando
diterima
Indonesia
Informasi tentang
Setiap barang
penerimaan setiap barang
diterima oleh
diterima
PT Bando Indonesia
Tabel 3.1
Tabel Jenis Entitas
3.4.3.4.2 Mengidentifikasi jenis relationship Nama
Multipli
Entitas
city
Karyawan
Jabatan
Relationship
Nama Entitas
Multiplicity
1..1
Memproses
Pembayaran Barang 0..*
1..1
Membuat
ARG
0..*
1..1
Menyetujui
OrderSheet
0..*
1..1
Menyetujui
PurchaseOrder
0..*
1..1
Melakukan
PenilaianPerforma
0..*
1..1
Dimiliki
Karyawan
1..*
62 Nama
Multipli
Entitas
city
OrderSheet
Relationship
Nama Entitas
Multiplicity
1..*
Terdiri Dari
Barang
1..*
1..*
Diproses
PurchaseOrder
1..*
Menjadi PurchaseOr
0..*
Dikirim Ke
Pemasok
1..1
der
1..*
Terdiri Dari
Barang
1..*
1..1
Mempunyai
ARG
1..*
1..1
Menyediakan
Barang
0..*
1..1
Menerima
PembayaranBarang
0..*
1..1
Memperoleh
PenilaianPerforma
0..*
1..1
Memproses
Penerimaan
1..*
1..*
Terdiri dari
Barang
1..*
1..*
Berdasarkan
PurchaseOrder
1..1
1..*
Menghasilkan
PenilaianPerforma
1..1
1..1
Mengidentifikas PembayaranBarang
Pemasok
Penerimaan
ARG
1..1
i 1..1
Mengidentifikas Penerimaan
1..1
i Bagian
1..1 Tabel 3.2
Terdiri dari
Karyawan
Tabel Jenis Relationship
1..*
63
Gambar 3.6
Entity Relationship Diagram
64 3.4.3.4.3 Mengidentifikasi dan menghubungkan atribut dengan entitas atau jenis relationship Barang Atribut
Deskripsi
KodeBarang
Tipe Data
Kode barang secara
CHAR(7)
Nulls
Multivalued
No
No
No
No
No
No
unik mengidentifikasi sebuah barang NamaBarang
Harga
Nama
dari
sebuah VARCHAR
barang
(30)
Harga barang per unit
Money
Tabel 3.3
Tabel Atribut Entitas Barang
OrderSheet Atribut NomorOS
Deskripsi Nomor OS secara unik
Tipe Data
Nulls
Multivalued
CHAR (8)
No
No
DATE
No
No
INT
No
No
untuk mengidentifikasi Order Sheet TanggalPemb
Tanggal pembuatan
uatanOS
Order Sheet
Jumlah
Jumlah barang yang dipesan
65 Atribut Keterangan
Deskripsi
Tipe Data
Keterangan tambahan
VARCHAR(
mengenai barang yang
50)
Nulls Yes
Multivalued No
dipesan Tabel 3.4
Tabel Atribut Entitas OrderSheet
Karyawan Atribut KodeKaryawan
Deskripsi Kode karyawan
Tipe Data
Nulls
Multivalued
CHAR (6)
No
No
Nama lengkap
VARCHAR
No
No
karyawan
(30)
Tanggal masuk
Date
No
No
Tempat lahir
VARCHAR
No
No
karyawan
(25)
Tanggal lahir
Date
No
No
CHAR(1)
No
No
secara unik untuk mengidentifikas i karyawan NamaKaryawan
TanggalMasukKerja
kerja karyawan TempatLahir
TanggalLahir
karyawan JenisKelamin
Jenis kelamin
66 Atribut Kewarganegaraan
Deskripsi Kewarganegara
Tipe Data
Nulls
Multivalued
CHAR(3)
No
No
CHAR(1)
No
No
Alamat nama
VARCHAR
No
No
jalan tempat
(70)
No
No
CHAR(5)
Yes
No
Nomor telepon
VARCHAR
Yes
Yes
karyawan
(15)
Nomor telepon
VARCHAR
Yes
Yes
genggam
(15)
No
No
an karyawan Agama
Agama karyawan
AlamatRumah Alamat
tinggal karyawan Kota
Kota tempat
VARCHAR
tinggal
(20)
karyawan KodePos
Kode pos alamat karyawan
Telepon
Handphone
karyawan StatusNikah
Status nikah karyawan
CHAR(1)
67 Atribut TanggalMenikah
Deskripsi Tanggal
Tipe Data
Nulls
Multivalued
DATE
Yes
No
Nama
VARCHAR
Yes
No
istri/suami
(30)
Yes
No
INT
Yes
No
Pendidikan
VARCHAR
No
No
terakhir
(20)
No
No
menikah karyawan DataKeluarga NamaIstri/Suami
karyawan Pekerjaan
Pekerjaan
VARCHAR
suami/istri
(20)
karyawan
JumlahTanggungan
Jumlah tanggungan karyawan
PendidikanTerakhir
karyawan NomorKTP
Tabel 3.5
Nomor KTP
VARCHAR
karyawan
(12)
Tabel Atribut Entitas Karyawan
68 Bagian Atribut
Deskripsi
KodeBagian
Kode bagian secara
Tipe Data
Nulls
Multivalued
INT
No
No
VARCHAR
No
No
unik untuk mengidentifikasi bagian NamaBagian
Nama bagian
(30) Tabel 3.6
Tabel Atribut Entitas Bagian
Jabatan Atribut
Deskripsi
KodeJabatan
Kode jabatan secara
Tipe Data
Nulls
Multivalued
INT
No
No
VARCHAR
No
No
unik untuk mengidentifikasi jabatan NamaJabatan
Nama jabatan
(30) Tabel 3.7
Tabel Atribut Entitas Jabatan
69 Pemasok Atribut KodePemasok
Deskripsi Kode pemasok
Tipe Data
Nulls
Multivalued
CHAR (5)
No
No
VARCHAR
No
No
CHAR(1)
No
No
CHAR(3)
No
No
Nama contact
VARCHAR
No
No
person pemasok
(30)
Jabatan contact
VARCHAR
No
No
person pemasok
(35)
Telepon contact
VARCHAR
Yes
Yes
person pemasok
(15)
Alamat tempat
VARCHAR
No
No
tinggal pemasok
(70)
secara unik untuk mengidentifikasi pemasok NamaPemasok
Nama pemasok
(30) Klasifikasi
Klasifikasi pemasok
MataUang
Mata uang yang digunakan untuk pembayaran
NamaCP
JabatanCP
TeleponCP
Alamat Alamat
70 Atribut Kota
Negara
KodePos Fax
FOB
Deskripsi
Tipe Data
Kota tempat tinggal
VARCHAR
pemasok
(20)
Negara tempat
VARCHAR
tinggal pemasok
(15)
Kode pos pemasok
Nulls
Multivalued
No
No
No
No
CHAR(5)
Yes
No
Nomor fax
VARCHAR
Yes
No
pemasok
(15)
Jaminan yang
CHAR(1)
No
No
CHAR(1)
No
No
Nomor rekening
VARCHAR
No
No
yang dimiliki
(15)
No
No
diberikan pemasok terhadap barang yang dikirm (free on board atau tidak) Taxable
Ada pajak yang dikenakan atau tidak
AccountNumber
pemasok BatasWaktuPengi
Batas waktu yang
riman
diberikan untuk mengirim barang
INT
71 Atribut
Deskripsi
BatasWaktuPemb
Batas waktu yang
ayaran
diberikan pada
Tipe Data INT
Nulls No
Multivalued No
perusahaan untuk membayar barang yang dipesan sesuai waktu yang disepakati setelah barang diterima Tabel 3.8
Tabel Atribut Entitas Pemasok
PurchaseOrder Atribut NomorPO
Deskripsi Nomor PO secara unik
Tipe Data
Nulls
Multivalued
CHAR (8)
No
No
DATE
No
No
INT
No
No
INT
No
No
untuk mengidentifikasi purchase order TanggalPO
Tanggal pembuatan purchase order
JumlahBarang Jumlah barang yang dipesan StatusCetak
Status apakah purchase order sudah dicetak atau belum
Tabel 3.9
Tabel Atribut Entitas PurchaseOrder
72 ARG Atribut
Deskripsi
NomorARG
Nomor ARG secara
Tipe Data
Nulls
Multivalued
CHAR(8)
Yes
No
DATE
No
No
unik untuk mengidentifikasi ARG TanggalPeneri Tanggal penerimaan maan
barang Tabel 3.10
Tabel Atribut Entitas ARG
PembayaranBarang Atribut
Deskripsi
KodePembaya Kode pembayaran ran
Tipe Data
Nulls
Multivalued
CHAR (5)
No
No
DATE
No
No
Money
No
No
secara unik untuk mengidentifikasi pembayaran
TanggalBayar
Tanggal pembayaran barang yang dipesan
Nominal
Jumlah nominal yang harus dibayar oleh perusahaan
Tabel 3.11
Tabel Atribut Entitas PembayaranBarang
73 PenilaianPerforma Atribut KodePenilaian
Deskripsi
Tipe Data
Kode penilaian secara INT
Nulls
Multivalued
No
No
No
No
unik untuk mengidentifikasi penilaian performa NilaiPerforma
Nilai performa yang
INT
diberikan untuk pemasok Tabel 3.12
Tabel Atribut Entitas PenilaianPerforma
Penerimaan Atribut KodePenerimaan
Deskripsi Kode penerimaan
Tipe Data
Nulls
Multivalued
INT
No
No
DATE
No
No
INT
No
No
secara unik untuk mengidentifikasi penerimaan barang TanggalPenerimaan
Tanggal penerimaan barang
JumlahTerima
Jumlah barang yang diterima
74 HargaBeli
Harga barang
money
No
No
ketika dibeli Tabel 3.13
Tabel Atribut Entitas Penerimaan
3.4.3.4.4 Menentukan attribute domains Nama Domain KodeBarang
Nama Entitas Barang
Nama Field KodeBarang
Attribute Domains CHAR(7) XXYZZZZ XX = Kode Barang (SP=Suku Cadang, OS=Office Supply, IM=Bahan Mentah) Y = Huruf (A-Z) ZZZZ = Nomor Urut (00019999)
75 Nama
Barang
NamaBarang
Karyawan
NamaKaryawan
VARCHAR (30)
NamaIstri/Suami Bagian
NamaBagian
Jabatan
NamaJabatan
Pemasok
NamaPemasok NamaCP
Harga
Barang
Harga
Money
Nomor
OrderSheet
NomorOS
CHAR(8) XXYYZZZZ
Purchase
NomorPO
XX = tahun (00 99)
Order ARG
NomorARG
Pembayaran
KodePembayaran
YY = bulan (0112) ZZZZ = nomor (00009999)
Tanggal
OrderSheet
TanggalPembuatan OS
Purchase
TanggalPO
Order Karyawan
TanggalMasuk Kerja
DATE
76 TanggalLahir TanggalMenikah Penerimaan
TanggalPenerimaan
Pembayaran
TanggalBayar
Barang
Jumlah
ARG
TanggalPenerimaan
OrderSheet
Jumlah
Penerimaan
JumlahTerima
Purchase
JumlahBarang
INT
Order Keterangan
OrderSheet
Keterangan
VARCHAR(50)
StatusCetak
Purchase
StatusCetak
INT
KodeKaryawan
CHAR(6)
Order KodeKaryawan
Karyawan
XXYYYY XX = tahun masuk (00-99) YYYY = nomor (00019999) TempatLahir
Karyawan
TempatLahir
VARCHAR (25)
77 JenisKelamin
Karyawan
JenisKelamin
CHAR(1) (L) – Laki-laki (P) – Perempuan
Kewarganegaraan
Karyawan
Kewarganegaraan
CHAR(3) (WNI/WNA)
Agama
Karyawan
Agama
CHAR(1) (I) – Islam (K) – Katolik (X) – Kristen (B) – Buddha (H) – Hindu
Alamat
Kota
KodePos
NomorTelepon
Karyawan
Alamat
Pemasok
Alamat
Karyawan
Kota
Pemasok
Kota
Karyawan
KodePos
CHAR (5)
Pemasok
KodePos
00000 – 99999
Karyawan
Telepon
VARCHAR (15)
Handphone
Masing-masing
TeleponCP
digit [0..9]
Pemasok
Fax
VARCHAR (70)
VARCHAR (20)
78 StatusNikah
Karyawan
StatusNikah
CHAR (1) (B)
–
Belum
Menikah (C) – Cerai (D) – Duda/janda (M) – Menikah Pekerjaan
Karyawan
Pekerjaan
VARCHAR (20)
JumlahTanggung
Karyawan
JumlahTanggungan
INT
PendidikanTerakh Karyawan
PendidikanTerakhir
VARCHAR (20)
NomorKTP
VARCHAR (12)
an
ir NomorKTP
Karyawan
Masing-masing digit [0..9] Kode
Bagian
KodeBagian
Jabatan
KodeJabatan
PenilaianPerf
KodePenilaian
orma Penerimaan
KodePenerimaan
INT
79 KodePemasok
Pemasok
KodePemasok
CHAR(5) XYYYY X = huruf depan dari nama pemasok (A-Z) YYYY = Nomor (0001-9999)
Klasifikasi
Pemasok
Klasifikasi
CHAR (1) (L) – Lokal (I) – Impor
MataUang
Pemasok
MataUang
CHAR(3) (IDR/US$)
JabatanCP
Pemasok
JabatanCP
VARCHAR (35)
Negara
Pemasok
Negara
VARCHAR (15)
FOB
Pemasok
FOB
CHAR (1) (Y/N)
Taxable
Pemasok
Taxable
CHAR (1) (Y/N)
AccountNumber
Pemasok
AccountNumber
VARCHAR (15) Masing-masing digit [0..9]
BatasWaktuPengi riman
Pemasok
BatasWaktuPengiri man
INT
80 BatasWaktuPemb
Pemasok
BatasWaktuPemba
ayaran
INT
yaran
Nominal
Pembayaran
JumlahBayar
Money
Nilai
INT
Barang NilaiPerforma
Penilaian Performa
Tabel 3.14
Tabel Attribute Domains
3.4.3.4.5 Menentukan atribut candidate key dan primary key Entitas
Candidate Key
Primary Key
Barang
KodeBarang
KodeBarang
OrderSheet
NomorOS
NomorOS
Karyawan
KodeKaryawan
KodeKaryawan
NamaKaryawan Telepon Handphone NomorKTP Bagian
KodeBagian
KodeBagian
NamaBagian Jabatan
KodeJabatan
KodeJabatan
NamaJabatan Pemasok
KodePemasok NamaPemasok
KodePemasok
81 Entitas
Candidate Key
Primary Key
PurchaseOrder
NomorPO
NomorPO
ARG
NomorARG
NomorARG
PembayaranBarang
KodePembayaran
KodePembayaran
PenilaianPerforma
KodePenilaian
KodePenilaian
Penerimaan
KodePenerimaan
KodePenerimaan
Tabel 3.15
Tabel Candidate Key dan Primary Key
82
Gambar 3.7
Entity Relationship dengan Primary Key
83 3.4.3.4.6 Memeriksa redundansi model
Gambar 3.8
Entity Relationship Setelah Pengecekan Redundancy
84 3.4.3.4.7 Memvalidasi model konseptual lokal terhadap transaksi user
Gambar 3.9
Validasi Model Konseptual terhadap Transaksi User
85 Update/delete data: •
Update/delete detil barang
•
Update/delete detil order sheet
•
Update/delete detil karyawan
•
Update/delete detil bagian
•
Update/delete detil jabatan
•
Update/delete detil pemasok
•
Update/delete detil purchase order
•
Update/delete ARG
•
Update/delete pembayaran barang
•
Update/delete penilaian performa
Data query: (a)
Melihat data karyawan
(b)
Melihat detil bagian yang ada
(c)
Melihat data barang
(d)
Melihat detil pemasok
(e)
Melihat detil pembayaran barang
(f)
Melihat detil penilaian performa
(g)
Melihat detil order sheet
(h)
Melihat detil penerimaan
(i)
Melihat detil purchase order
(j)
Melihat karyawan yang menangani order sheet
(k)
Melihat karyawan yang menangani purchase order
86 (l)
Melihat karyawan yang menangani ARG
(m) Melihat karyawan yang menangani pembayaran barang (n)
Melihat karyawan yang melakukan penilaian performa
(o)
Melihat karyawan yang terdaftar dalam tiap bagian
(p)
Melihat jabatan yang dimiliki tiap karyawan
(q)
Melihat purchase order yang dikirimkan ke pemasok
(r)
Melihat barang yang terdaftar dalam order sheet
(s)
Melihat barang yang terdaftar dalam purchase order
(t)
Melihat order sheet yang telah diproses menjadi purchase order
(u)
Melihat ARG setiap pembayaran barang
(v)
Melihat ARG setiap purchase order
(w) Melihat detil penerimaan barang (x)
Melihat purchase order yang sudah diterima
(y)
Melihat penilaian performa setiap barang diterima
(z)
Melihat barang yang dipasok oleh tiap pemasok
(aa) Melihat ARG setiap penerimaan barang
87 3.4.3.5
Model Logikal
3.4.3.5.1 Menghilangkan fitur-fitur yang tidak sesuai dengan model relasional (fakultatif) •
Menghilangkan many-to-many (*:*) binary relationship
Gambar 3.10 Hubungan Pemasok menyediakan Barang
88 -
Menghilangkan complex relationship
Gambar 3.11 Gambar proses menghilangkan complex relationship -
Menghilangkan multi-valued attributes Karyawan KodeKaryawan ... Telepon[0..*] Handphone[0..*]
Karyawan
1..1
mempunyai
1..*
KodeKaryawan
TeleponKaryawan Telepon
1..1 mempunyai
1..*
HandphoneKaryawan Handphone
Gambar 3.12 Menghilangkan Multivalued pada Entitas Karyawan
89
Gambar 3.13 Menghilangkan Multivalued pada Entitas Pemasok
90
Gambar 3.14 Hasil Akhir Entity Relationship Diagram
91 3.4.3.5.2 Membuat relationship untuk model data logikal lokal •
Entitas Kuat -
-
Barang (KodeBarang, NamaBarang, Harga) Primary Key
KodeBarang
OrderSheet
(NomorOS,
TanggalPembuatanOS,
Jumlah,
Keterangan) Primary Key -
NomorOS
Karyawan (KodeKaryawan, NamaKaryawan, TanggalMasukKerja, TempatLahir,
TanggalLahir,
JenisKelamin,
Kewarganegaraan,
Agama, Alamat, Kota, KodePos, StatusNikah, TanggalMenikah, NamaIstri/Suami,
Pekerjaan,
JumlahTanggungan,
PendidikanTerakhir, NomorKTP) Primary Key -
Bagian (KodeBagian, NamaBagian) Primary Key
-
KodeBagian
Jabatan (KodeJabatan, NamaJabatan) Primary Key
-
KodeKaryawan
KodeJabatan
Pemasok (KodePemasok, NamaPemasok, Klasifikasi, MataUang, NamaCP, JabatanCP, Alamat, Kota, Negara, KodePos, Fax, FOB, Taxable,
AccountNumber,
BatasWaktuPembayaran) Primary Key
KodePemasok
BatasWaktuPengiriman,
92 •
Entitas Lemah -
PurchaseOrder
(NomorPO,
TanggalPO,
StatusCetak,
JumlahBarang) Primary Key -
ARG (NomorARG) Primary Key
-
tidak ada sampai saat ini
HandphoneKaryawan (Handphone) Primary Key
-
tidak ada sampai saat ini
TeleponKaryawan (Telepon) Primary Key
-
tidak ada sampai saat ini
DetailBarangPemasok Primary Key
-
KodeBarang, NomorOS, NomorPO
DetailPenerimaan (JumlahTerima) Primary Key
-
KodePenerimaan
ProsesOS (KodeBarang, NomorOS, NomorPO) Primary Key
-
KodePenilaian
Penerimaan (KodePenerimaan, TanggalPenerimaan) Primary Key
-
KodePembayaran
PenilaianPerforma (KodePenilaian, NilaiPerforma) Primary Key
-
NomorARG
PembayaranBarang (KodePembayaran, TanggalBayar, Nominal) Primary Key
-
NomorPO
tidak ada sampai saat ini
TeleponCPPemasok (TeleponCP) Primary Key
tidak ada sampai saat ini
93 •
Hubungan binary entitas one-to-many (1:*) Hubungan Jabatan dimiliki Karyawan
94 Hubungan Karyawan melakukan PenilaianPerforma
95 Hubungan Karyawan menyetujui OrderSheet
96 Hubungan Karyawan menyetujui PurchaseOrder
97
Hubungan Karyawan mempunyai HandphoneKaryawan
Hubungan PurchaseOrder dikirim ke Pemasok
98
Hubungan Penerimaan menghasilkan PenilaianPerforma
Hubungan Penerimaan berdasarkan PurchaseOrder
99
Hubungan Pemasok mempunyai DetailBarangPemasok Hubungan Barang terdaftar DetailBarangPemasok
100
-
Hubungan binary entitas one-to-one (1:1) Mandatory participation pada kedua sisi menjadi satu relasi Hubungan ARG mengidentifikasi PembayaranBarang PembayaranBarang:
KodePembayaran,
TanggalBayar,
Nominal,
KodeKaryawan, NomorARG, TanggalPenerimaan, KodeKaryawanARG) Primary Key: KodePembayaran Foreign Key: KodeKaryawan references Karyawan (KodeKaryawan) Foreign Key: KodeKaryawanARG references Karyawan (KodeKaryawan)
Hubungan PurchaseOrder mempunyai ARG PurchaseOrder: (KodePemasok, NomorPO, TanggalPO, JumlahBarang, KodeKaryawan, NomorARG, TanggalPenerimaan, KodeKaryawanARG) Primary Key: NomorPO Foreign Key: KodeKaryawan references Karyawan (KodeKaryawan) Foreign Key: KodePemasok references Pemasok (KodePemasok) Foreign Key: KodeKaryawanARG references Karyawan (KodeKaryawan)
Hubungan ARG mengidentifikasi Penerimaan Penerimaan: (NomorPO, KodePenerimaan, TanggalPenerimaan, NomorARG, TanggalPenerimaan, KodeKaryawanARG) Primary Key: KodePenerimaan
101 Foreign Key: NomorPO references PurchaseOrder (NomorPO) Foreign Key: KodeKaryawanARG references Karyawan (KodeKaryawan) Barang
Barang: (KodeBarang, NamaBarang, Harga) Primary Key: KodeBarang
OrderSheet
OrderSheet: (NomorOS, TanggalPembuatanOS, Jumlah, Keterangan, KodeKaryawan) Primary Key: NomorOS Foreign Key: KodeKaryawan references Karyawan (KodeKaryawan)
Karyawan
Karyawan:(KodeKaryawan, NamaKaryawan, TanggalMasukKerja, TempatLahir, TanggalLahir, JenisKelamin, Kewarganegaraan, Agama, Alamat, Kota, KodePos,StatusNikah, TanggalMenikah, NamaIstri/Suami, Pekerjaan, JumlahTanggungan, PendidikanTerakhir, NomorKTP, KodeJabatan, KodeBagian) Primary Key: KodeKaryawan ForeignKey: KodeJabatan references Jabatan (KodeJabatan) Foreign Key: KodeBagian references Bagian (KodeBagian)
Bagian
Bagian: (KodeBagian, NamaBagian)
102 Primary Key: KodeBagian Jabatan
Jabatan: (KodeJabatan, NamaJabatan) Primary Key: KodeJabatan
Pemasok
Pemasok: (KodePemasok, NamaPemasok, Klasifikasi, MataUang, NamaCP, JabatanCP, Alamat, Kota, Negara, KodePos, Fax, FOB, Taxable, AccountNumber, BatasWaktuPengiriman, BatasWaktuPembayaran) Primary Key: KodePemasok
PurchaseOrder
PurchaseOrder: StatusCetak,
(NomorPO, JumlahBarang,
NomorARG,
TanggalPO, KodeKaryawan,
TanggalPenerimaan,
KodeKaryawanARG, KodePemasok) Primary Key: NomorPO Foreign Key: KodeKaryawan references Karyawan (KodeKaryawan) ForeignKey: KodePemasok references Pemasok (KodePemasok) ForeignKey:
KodeKaryawanARG
references
Karyawan (KodeKaryawan) PembayaranBarang
PembayaranBarang: TanggalBayar,
Nominal,
KodePembayaran, KodeKaryawan,
103 NomorARG,
TanggalPenerimaan,
KodeKaryawanARG) Primary Key: KodePembayaran ForeignKey: KodeKaryawan references Karyawan (KodeKaryawan) ForeignKey:
KodeKaryawanARG
references
Karyawan (KodeKaryawan) PenilaianPerforma
PenilaianPerforma: (KodePenerimaan, KodePenilaian, NilaiPerforma, KodeKaryawan) Primary Key: KodePenerimaan Foreign Key: KodeKaryawan references Karyawan (KodeKaryawan) Foreign Key: KodePenerimaan references Penerimaan (KodePenerimaan)
Penerimaan
Penerimaan: (NomorPO, KodePenerimaan, TanggalPenerimaan, NomorARG, TanggalPenerimaan, KodeKaryawanARG) Primary Key: KodePenerimaan Foreign Key: NomorPO references PurchaseOrder (NomorPO) Foreign Key: KodeKaryawanARG references Karyawan (KodeKaryawan)
ProsesOS
ProsesOS: (NomorOS, NomorPO, KodeBarang)
104 Primary Key: NomorPO, NomorOS, KodeBarang ForeignKey: NomorOS references OrderSheet (NomorOS) ForeignKey: NomorPO references PurchaseOrder (NomorPO) ForeignKey: KodeBarang references Barang (KodeBarang) DetailPenerimaan
DetailPenerimaan: (KodePenerimaan, KodeBarang, JumlahTerima, HargaBeli) Primary Key: KodePenerimaan, KodeBarang Foreign Key: KodePenerimaan references Penerimaan (KodePenerimaan) Foreign Key: KodeBarang references Barang (KodeBarang)
DetailBarangPemasok
DetailBarangPemasok: (KodePemasok, KodeBarang) Primary Key: KodePemasok, KodeBarang Foreign Key: KodePemasok references Pemasok (KodePemasok) Foreign Key: KodeBarang references Barang (KodeBarang)
TeleponKaryawan
TeleponKaryawan: (KodeKaryawan, Telepon) Primary Key: KodeKaryawan, Telepon
105 ForeignKey: KodeKaryawan references Karyawan (KodeKaryawan) HandphoneKaryawan
HandphoneKaryawan: (KodeKaryawan, Handphone) Primary Key: KodeKaryawan, Handphone ForeignKey: KodeKaryawan references Karyawan (KodeKaryawan)
TeleponCPPemasok
TeleponCPPemasok: (KodePemasok, TeleponCP) Primary Key: KodePemasok, TeleponCP Foreign Key: KodePemasok references Pemasok (KodePemasok)
Tabel 3.16
Tabel Hasil Relasi
3.4.3.5.3 Memvalidasi relationship menggunakan normalisasi -
First Normal Form (1NF) Semua relasi telah memenuhi 1NF karena tidak ditemukan repeating groups.
-
Second Normal Form (2NF) Semua relasi telah memenuhi 2NF karena tidak ditemukan partial dependency.
-
Third Normal Form (3NF)
106 Semua
relasi
telah
memenuhi
3NF
karena
tidak
ditemukan
ketergantungan transitif. -
Fourth Normal Form (4NF) Ditemukan multi-valued dependency pada tabel ProsesOS sehingga dilakukan normalisasi 4NF menjadi: DetailOS: (NomorOS, KodeBarang, Jumlah) Primary Key: NomorOS, KodeBarang Foreign Key: NomorOS references OrderSheet(NomorPO) Foreign Key: KodeBarang references Barang(KodeBarang)
DetailPO: (NomorPO, KodeBarang, JumlahBarang) Primary Key: NomorPO, KodeBarang Foreign Key: NomorPO references PurchaseOrder (NomorPO) Foreign Key: KodeBarang references Barang(KodeBarang)
ProsesOS: (NomorOS, NomorPO) Primary Key: NomorPO, NomorOS, KodeBarang Foreign Key: NomorOS references DetailOS (NomorOS) Foreign Key: NomorPO references DetailPO (NomorPO) Namun karena kebutuhan user untuk mengetahui dari OrderSheet mana suatu barang yang ada dalam DetailPO berasal, maka khusus untuk tabel ProsesOS ini, MVD tetap dibiarkan ada, sehingga tabelnya tetap seperti di bawah ini:
107
ProsesOS: (NomorOS, NomorPO, KodeBarang) Primary Key: NomorPO, NomorOS, KodeBarang Foreign Key: NomorOS references DetailOS (NomorOS, KodeBarang) Foreign Key: NomorPO references DetailPO (NomorPO, KodeBarang) Sedangkan tabel DetailOS dan tabel DetailPO sudah terbentuk pada tahap normalisasi 2NF. Dalam tabel penerimaan, ditemukan adanya redundansi yang tidak cocok dengan normalisasi mana pun. Untuk pertimbangan efisiensi maka diputuskan untuk menghilangkan redundansi NomorPO
KodePenerimaan
TglPenerimaan
...
TglPenerimaan
06100001
2
12/11/2006
12/11/2006
06100002
3
12/15/2006
12/15/2006
06120001
4
01/11/2007
01/11/2007
Tabel Penerimaan sebelum dilakukan normalisasi: Penerimaan: (KodePenerimaan, NomorPO, TanggalPenerimaan, NomorARG, TanggalPenerimaan, KodeKaryawanARG) Primary Key: KodePenerimaan Foreign Key: NomorPO references PurchaseOrder (NomorPO)
...
108 Foreign Key: KodeKaryawanARG references Karyawan (KodeKaryawan)
Tabel Penerimaan setelah dilakukan normalisasi: Penerimaan: (KodePenerimaan, NomorPO, TanggalPenerimaan, NomorARG, KodeKaryawanARG) Primary Key: KodePenerimaan Foreign Key: NomorPO references PurchaseOrder (NomorPO) Foreign Key: KodeKaryawanARG references Karyawan (KodeKaryawan) Setelah
dilakukan
PurchaseOrder
normalisasi
dan
pada
PembayaranBarang
tabel
penerimaan,
dilakukan
maka
normalisasi
tabel untuk
menghilangkan redundansi. Tabel PurchaseOrder sebelum dilakukan normalisasi: PurchaseOrder: (NomorPO, TanggalPO, KodeKaryawan, NomorARG, TanggalPenerimaan, KodeKaryawanARG, KodePemasok)
Tabel PurchaseOrder setelah dilakukan normalisasi: PurchaseOrder:
(NomorPO,
TanggalPO,
KodeKaryawan,
KodePemasok)
Tabel PembayaranBarang sebelum dilakukan normalisasi: PembayaranBarang:
KodePembayaran,
TanggalBayar,
Nominal,
KodeKaryawan, NomorARG, TanggalPenerimaan, KodeKaryawanARG)
109
Tabel PembayaranBarang setelah dilakukan normalisasi PembayaranBarang:
KodePembayaran,
TanggalBayar,
Nominal,
KodeKaryawan, KodePenerimaan)
3.4.3.5.4 Memvalidasikan hubungan terhadap transaksi user Semua transaksi user seperti yang telah didefinisikan pada tahap konseptual diperiksa kembali terhadap relasi yang ada untuk memastikan relasi sudah benar dan dapat memenuhi transaksi-transaksi yang dibutuhkan user.
3.4.3.5.5 Mendefinisikan integrity constraint -
Data yang diperlukan Beberapa atribut tertentu dari entitas haruslah memiliki nilai yang valid atau dengan kata lain atribut-atribut ini tidak boleh null. Batasan seperti ini telah diidentifikasi pada saat atribut didokumentasikan di Tabel 3.14.
-
Batasan attribute domain Setiap atribut mempunyai domain, yaitu kumpulan nilai yang sah. Batasan ini telah diidentifiikasikan pada saat memilih attribute domain untuk model data.
-
Entity Integrity
110 Primary key sebuah entitas tidak boleh null. Batasan ini telah dipertimbangkan pada saat mengidentifikasi primary key untuk setiap jenis entitas.
-
Referential integrity OrderSheet:
(NomorOS,
TanggalPembuatanOS,
Keterangan,
KodeKaryawan) Primary Key: NomorOS Foreign
Key:
KodeKaryawan
references
Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION Karyawan: (KodeKaryawan, NamaKaryawan, TanggalMasukKerja, TempatLahir, TanggalLahir, JenisKelamin, Kewarganegaraan, Agama, Alamat, Kota, KodePos, StatusNikah, TanggalMenikah, NamaIstri/Suami,
Pekerjaan,
JumlahTanggungan,
PendidikanTerakhir, NomorKTP, KodeJabatan, KodeBagian) Primary Key: KodeKaryawan Foreign Key: KodeJabatan references Jabatan (KodeJabatan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key: KodeBagian references Bagian (KodeBagian) ON UPDATE CASCADE ON DELETE NO ACTION PurchaseOrder: (NomorPO, TanggalPO, StatusCetak, KodeKaryawan, KodePemasok)
111 Primary Key: NomorPO Foreign
Key:
KodeKaryawan
references
Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key: KodePemasok references Pemasok (KodePemasok) ON UPDATE CASCADE ON DELETE NO ACTION PembayaranBarang:
(KodePembayaran,
TanggalBayar,
Nominal,
references
Karyawan
KodeKaryawan, KodePenerimaan) Primary Key: KodePembayaran Foreign
Key:
KodeKaryawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign
Key:
KodePenerimaan
references
Penerimaan
(KodePenerimaan) ON UPDATE CASCADE ON DELETE NO ACTION PenilaianPerforma: (KodePenilaian, KodePenerimaan, NilaiPerforma, KodeKaryawan) Primary Key: KodePenerimaan Foreign
Key:
KodeKaryawan
references
Karyawan
(KodeKaryawan) Foreign
Key:
KodePenerimaan
references
Penerimaan
(KodePenerimaan) ON UPDATE CASCADE ON DELETE NO ACTION
112 Penerimaan:
(KodePenerimaan,
NomorPO,
TanggalPenerimaan,
NomorARG, KodeKaryawanARG) Primary Key: KodePenerimaan Foreign Key: NomorPO references PurchaseOrder (NomorPO) ON UPDATE CASCADE ON DELETE NO ACTION Foreign
Key:
KodeKaryawanARG
references
Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION DetailOS: (NomorOS, KodeBarang, Jumlah) Primary Key: NomorOS, KodeBarang Foreign Key: NomorOS references OrderSheet (NomorOS) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key: KodeBarang references Barang (KodeBarang) ON UPDATE CASCADE ON DELETE CASCADE ProsesOS: (NomorOS, NomorPO, KodeBarang) Primary Key: NomorPO, NomorOS, KodeBarnag Foreign Key: NomorOS references DetailOS(NomorOS) Foreign Key: NomorPO references DetailPO (NomorPO) Foreign Key: KodeBarang references DetailPO (KodeBarang) Foreign Key: KodeBarang references DetailOS (KodeBarang) DetailPO: (NomorPO, KodeBarang, JumlahBarang) Primary Key: NomorPO, KodeBarang Foreign Key: NomorPO references PurchaseOrder (NomorPO) ON UPDATE CASCADE ON DELETE CASCADE
113 Foreign Key: KodeBarang references Barang (KodeBarang) ON UPDATE CASCADE ON DELETE CASCADE DetailPenerimaan: (KodePenerimaan, KodeBarang, JumlahTerima, HargaBeli) Primary Key: KodePenerimaan, KodeBarang Foreign
Key:
KodePenerimaan
references
Penerimaan
(KodePenerimaan) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key: KodeBarang references Barang (KodeBarang) ON UPDATE CASCADE ON DELETE CASCADE DetailBarangPemasok: (KodePemasok, KodeBarang) Primary Key: KodePemasok, KodeBarang Foreign Key: KodePemasok references Pemasok (KodePemasok) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key: KodeBarang references Barang (KodeBarang) ON UPDATE CASCADE ON DELETE CASCADE TeleponKaryawan: (KodeKaryawan, Telepon) Primary Key: KodeKaryawan, Telepon Foreign
Key:
KodeKaryawan
references
Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE CASCADE HandphoneKaryawan: (KodeKaryawan, Handphone) Primary Key: KodeKaryawan, Handphone
114 Foreign
Key:
KodeKaryawan
references
Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE CASCADE TeleponCPPemasok: (KodePemasok, TeleponCP) Primary Key: KodePemasok, TeleponCP Foreign Key: KodePemasok references Pemasok (KodePemasok) ON UPDATE CASCADE ON DELETE CASCADE -
Batasan perusahaan Dalam sistem terdapat beberapa aturan-aturan bisnis yang harus dipenuhi. Berikut ini didefinisikan batasan perusahaan yang akan dibuat untuk menjaga integritas dari data yang disimpan: 1.
Validitas NilaiPerforma maksimal sepuluh dan nilai minimalnya tidak terbatas. ALTER TABLE PenilaianPerforma Add CONSTRAINT BatasNilai CHECK (NilaiPerforma <= 10)
2.
Validitas OrderSheet. Jenis barang dalam satu order sheet harus sejenis.
3.
Validitas TanggalPembuatanOS dan TanggalPO. Nilai dari TanggalPembuatanOS harus lebih kecil atau sama dengan TanggalPO. CREATE TRIGGER ValidTanggalBuat ON OrderSheet FOR INSERT, UPDATE AS
115 Select distinct a.nomorOS,tglPembuatanOS,c.nomorPO,tglPO from OrderSheet a JOIN DetailOS b ON a.nomorOS = b.nomorOS JOIN ProsesOS c ON b.nomorOS = c.nomorOS JOIN DetailPO d ON c.nomorPO = d.nomorPO JOIN PurchaseOrder e ON d.nomorPO = e.nomorPO WHERE tglPembuatanOS <= tglPO 4.
Validitas
TanggalPO
dan
harus
lebih
TanggalPO
TanggalPenerimaan. kecil
atau
Nilai
sama
dari
dengan
TanggalPenerimaan. CREATE TRIGGER ValidTanggalTerima ON Penerimaan FOR INSERT, UPDATE AS SELECT DISTINCT a.nomorPO,tglPO,kodepenerimaan,tglpenerimaan FROM PurchaseOrder a JOIN Penerimaan b ON a.nomorPO =b.nomorPO WHERE tglPO <= tglPenerimaan
3.4.3.5.6 Menggabungkan semua model logikal data ke dalam model global Barang
Barang: (KodeBarang, NamaBarang, Harga) Primary Key: KodeBarang
OrderSheet
OrderSheet: (NomorOS, TanggalPembuatanOS,
116 Keterangan, KodeKaryawan) Primary Key: NomorOS Foreign Key: KodeKaryawan references Karyawan (KodeKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION Karyawan
Karyawan: (KodeKaryawan, NamaKaryawan, TanggalMasukKerja, TempatLahir, TanggalLahir, JenisKelamin, Kewarganegaraan, Agama, Alamat, Kota, KodePos,StatusNikah, TanggalMenikah, NamaIstri/Suami, Pekerjaan, JumlahTanggungan, PendidikanTerakhir, NomorKTP, KodeJabatan, KodeBagian) Primary Key: KodeKaryawan ForeignKey: KodeJabatan references Jabatan (KodeJabatan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key: KodeBagian references Bagian (KodeBagian) ON UPDATE CASCADE ON DELETE NO ACTION
Bagian
Bagian: (KodeBagian,NamaBagian) Primary Key: KodeBagian
Jabatan
Jabatan: (KodeJabatan,NamaJabatan) Primary Key: KodeJabatan
117 Pemasok
Pemasok: (KodePemasok, NamaPemasok, Klasifikasi, MataUang, NamaCP, JabatanCP, Alamat, Kota, Negara, KodePos, Fax, FOB, Taxable, AccountNumber, BatasWaktuPengiriman, BatasWaktuPembayaran) Primary Key: KodePemasok
PurchaseOrder
PurchaseOrder: (NomorPO, TanggalPO, StatusCetak, KodeKaryawan, KodePemasok) Primary Key: NomorPO Foreign Key: KodeKaryawan references Karyawan (KodeKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION ForeignKey: KodePemasok references Pemasok (KodePemasok) ON UPDATE CASCADE ON DELETE NO ACTION
PembayaranBarang
PembayaranBarang: (KodePembayaran, TanggalBayar, Nominal, KodeKaryawan, KodePenerimaan) Primary Key: KodePembayaran ForeignKey: KodeKaryawan references Karyawan (KodeKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION ForeignKey: KodePenerimaan references
118 Penerimaan (KodePenerimaan) ON UPDATE CASCADE ON DELETE NO ACTION PenilaianPerforma
PenilaianPerforma: (KodePenilaian, KodePenerimaan, NilaiPerforma, KodeKaryawan) Primary Key: KodePenerimaan Foreign Key: KodeKaryawan references Karyawan (KodeKaryawan) Foreign Key: KodePenerimaan references Penerimaan (KodePenerimaan) ON UPDATE CASCADE ON DELETE NO ACTION
Penerimaan
Penerimaan: (KodePenerimaan, NomorPO, TanggalPenerimaan, NomorARG, KodeKaryawanARG) Primary Key: KodePenerimaan Foreign Key: NomorPO references PurchaseOrder (NomorPO) ON UPDATE CASCADE ON DELETE NO ACTION ForeignKey: KodeKaryawanARG references Karyawan (KodeKaryawan)
DetailOS
DetailOS: (NomorOS, KodeBarang, Jumlah) Primary Key: NomorOS, KodeBarang ForeignKey: NomorOS references OrderSheet (NomorOS) ON UPDATE CASCADE ON
119 DELETE CASCADE ForeignKey: KodeBarang references Barang (KodeBarang) ON UPDATE CASCADE ON DELETE CASCADE
ProsesOS
ProsesOS: (NomorOS, NomorPO, KodeBarang) Primary Key: NomorPO, NomorOS, KodeBarang ForeignKey: NomorOS references DetailOS (NomorOS) ForeignKey: NomorPO references DetailPO (NomorPO)
DetailPO
DetailPO: (NomorPO, KodeBarang, JumlahBarang) Primary Key: NomorPO, KodeBarang Foreign Key: NomorPO references PurchaseOrder (NomorPO) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key: KodeBarang references Barang (KodeBarang) ON UPDATE CASCADE ON DELETE CASCADE
DetailPenerimaan
DetailPenerimaan: (KodePenerimaan, KodeBarang, JumlahTerima, HargaBeli) Primary Key: KodePenerimaan, KodeBarang Foreign Key: KodePenerimaan references
120 Penerimaan (KodePenerimaan) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key: KodeBarang references Barang (KodeBarang) ON UPDATE CASCADE ON DELETE CASCADE DetailBarangPemasok
DetailBarangPemasok: (KodePemasok, KodeBarang) Primary Key: KodePemasok, KodeBarang ForeignKey: KodePemasok references Pemasok (KodePemasok) ON UPDATE CASCADE ON DELETE CASCADE ForeignKey: KodeBarang references Barang (KodeBarang) ON UPDATE CASCADE ON DELETE CASCADE
TeleponKaryawan
TeleponKaryawan: (KodeKaryawan, Telepon) Primary Key: KodeKaryawan, Telepon ForeignKey: KodeKaryawan references Karyawan (KodeKaryawan) ON UPDATE CASCADE ON DELETE CASCADE
HandphoneKaryawan
HandphoneKaryawan: (KodeKaryawan, Handphone) Primary Key: KodeKaryawan, Handphone ForeignKey: KodeKaryawan references Karyawan
121 (KodeKaryawan) ON UPDATE CASCADE ON DELETE CASCADE TeleponCPPemasok
TeleponCPPemasok: (KodePemasok, TeleponCP) Primary Key: KodePemasok, TeleponCP Foreign Key: KodePemasok references Pemasok (KodePemasok) ON UPDATE CASCADE ON DELETE CASCADE
Tabel 3.17
Tabel Rancangan Global Logical Data Model
122
123 Gambar 3.15 Global Logical Data Model
124 3.4.3.6
Pemilihan DBMS Dalam tahap pemilihan DBMS ini ada dua tugas DBMS yang menjadi
pertimbangan yaitu Microsoft SQL Server 2000 dan MySQL.
Platform Microsoft
SQL Windows-based(termasuk
Windows
Server 2000
2000, Windows NT dan Windows CE)
MySQL
Windows-based, Linux-base
Tabel 3.18
9x,
Windows
Perbandingan berbagai macam Platform
Perbandingan Fitur Fitur Tables
Microsoft SQL Server 2000 Relational tables,
MySQL Relational tables
Temporary tables Triggers
AFTER triggers, INSTEAD
Tidak ada
OF triggers Procedures
T-SQL statements
Tidak ada
Arrays
Tidak mendukung
Tidak mendukung
Referential
Mendukung
Format MyISAM tidak mendukung referential
Integrity
integrity Backup and Recovery Tabel 3.19
Mendukung
Mendukung tetapi kurang efisien
Perbandingan Fitur pada Masing-Masing DBMS
125 Setelah melewati berbagai pertimbangan, yang dipilih adalah Microsoft SQL Server 2000, selain dari perusahaan sudah menyanggupi masalah pendanaannya dan sudah mendukung Trigger dan Referential Integrity, karena dalam perancangan basis data akan membutuhkan trigger untuk mengimplementasikan batasan-batasan perusahaan dan fitur-fitur yang dibutuhkan sudah mendukung.
3.4.3.7
Rancangan Basis Data Fisikal
3.4.3.7.1 Mengidentifikasi Jenis Barang Domain KodeBarang: Tipe data karakter, panjang 7, Format: XXYZZZZ {XX = Kode Barang (SP=Sparepart, OS=Office Supply, IM=Material), Y=Huruf (A-Z), ZZ=Nomor Urut (0001-9999)} Domain NamaBarang: Tipe data karakter, panjang 30 Domain Harga: Tipe data money Barang( kodeBarang KodeBarang NOT NULL, namaBarang NamaBarang NOT NULL, harga Harga NOT NULL, Primary Key (kodeBarang))
OrderSheet Domain NomorOS: Tipe data karakter, panjang 8, Format: XXYYZZZZ {XX=tahun (00 -99), YY=bulan (01-12), ZZZZ= omor (0000-9999)} Domain TanggalPembuatanOS: Tipe data tanggal
126 Domain Keterangan: Tipe data karakter, panjang 50 Domain KodeKaryawan: Tipe data karakter, panjang 6, Format: XXYYYY {XX=tahun masuk (00-99), YYYY=nomor (0000-9999} OrderSheet( nomorOS NomorOS NOT NULL, tglPembuatanOS TanggalPembuatanOS NOT NULL, keterangan Keterangan, kodeKaryawan KodeKaryawan NOT NULL, Primary Key (nomorOS), Foreign Key kodeKaryawan references Karyawan (kodeKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION)
Karyawan Domain KodeKaryawan: Tipe data karakter, panjang 6, Format: XXYYYY {XX=tahun masuk (00-99), YYYY=nomor (0000-9999} Domain NamaKaryawan: Tipe data karakter, panjang 30 Domain TanggalMasukKerja: Tipe data tanggal Domain TempatLahir: Tipe data karakter, panjang 25 Domain TanggalLahir: Tipe data tanggal Domain JenisKelamin: Tipe data karakter, panjang 1, Range: ‘P’(Pria), ‘W’(Wanita) Domain Kewarganegaraan: Tipe data karakter, panjang 3, Range: [‘WNI’, ’WNA’]
127 Domain Agama: Tipe data karakter, panjang 1, Range: ‘I’(Islam), ‘K’(Katolik), ‘X’(Kristen), ‘B’(Buddha), ‘H’(Hindu) Domain Alamat: Tipe data karakter, panjang 70 Domain Kota: Tipe data karakter, panjang 20 Domain KodePos: Tipe data karakter, panjang 5, Range: 00000-99999 Domain StatusNikah: Tipe data karakter, panjang 1, Range: ‘B’ (Belum Memikah, ‘C’(Cerai), ‘D’(Duda/janda), ‘M’(Menikah) Domain TanggalMenikah: Tipe data tanggal Domain NamaIstri/Suami: Tipe data karakter, panjang 30 Domain Pekerjaan: Tipe data karakter, panjang 20 Domain JumlahTanggungan: Tipe data int Domain PendidikanTerakhir: Tipe data karakter, panjang 20 Domain NomorKTP: Tipe data karakter, panjang 12, masing-masing digit 0..9 Domain KodeJabatan: Tipe data int Domain KodeBagian: Tipe data int Karyawan( kodeKaryawan KodeKaryawan NOT NULL, namaKaryawan NamaKaryawan NOT NULL, tglMasukKerja TanggalMasukKerja NOT NULL, tempatLahir TempatLahir, tglLahir TanggalLahir, jenisKelamin JenisKelamin NOT NULL DEFAULT ‘P’, kewarganegaraan Kewarganegaraan NOT NULL DEFAULT ‘WNI’, agama Agama NOT NULL DEFAULT ‘B’,
128 alamat Alamat NOT NULL, kota Kota NOT NULL, kodePos KodePos, statusNikah StatusNikah NOT NULL DEFAULT ‘B’, tglMenikah TanggalMenikah, namaIstriSuami NamaIstri/Suami, pekerjaan Pekerjaan, jumlahTanggungan JumlahTanggungan, pendidikanTerakhir PendidikanTerakhir NOT NULL, nomorKTP NomorKTP NOT NULL, kodeJabatan KodeJabatan NOT NULL, kodeBagian KodeBagian NOT NULL, Primary Key (kodeKaryawan), Foreign Key kodeJabatan references Jabatan (kodeJabatan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key kodeBagian references Bagian (kodeBagian) ON UPDATE CASCADE ON DELETE NO ACTION)
Bagian Domain KodeBagian: Tipe data int Domain NamaBagian: Tipe data karakter, panjang 30 Bagian( kodeBagian KodeBagian NOT NULL, namaBagian NamaBagian NOT NULL,
129 Primary Key (kodeBagian))
Jabatan Domain KodeJabatan: Tipe data int Domain NamaJabatan: Tipe data karakter, panjang 30 Jabatan( kodeJabatan KodeJabatan NOT NULL, namaJabatan NamaJabatan NOT NULL, Primary Key (kodeJabatan))
Pemasok Domain KodePemasok: Tipe data karakter, panjang 5, Format: XYYYY {X=huruf depan dari nama pemasok (A-Z), YYYY=Nomor (0000-9999)} Domain NamaPemasok: Tipe data karakter, panjang 30 Domain Klasifikasi: Tipe data karakter, panjang 1, Range: ‘L’(Lokal), ‘I’(Impor) Domain MataUang: Tipe data karakter, panjang 3 Domain NamaCP: Tipe data karakter, panjang 30 Domain JabatanCP: Tipe data karakter, panjang 35 Domain Alamat: Tipe data karakter, panjang 70 Domain Kota: Tipe data karakter, panjang 20 Domain Negara: Tipe data karakter, panjang 15 Domain KodePos: Tipe data karakter, panjang 5, Range: 00000-99999 Domain Fax: Tipe data karakter, panjang 15
130 Domain FOB: Tipe data karakter, panjang 1 Domain Taxable: Tipe data karakter, panjang 1 Domain AccountNumber: Tipe data karakter, panjang 15. masing-masing digit 0..9 Domain BatasWaktuPengiriman: Tipe data int Domain BatasWaktuPembayaran: Tipe data int Pemasok( kodePemasok KodePemasok NOT NULL, namaPemasok NamaPemasok NOT NULL, klasifikasi Klasifikasi NOT NULL DEFAULT ‘L’, mataUang MataUang NOT NULL DEFAULT ‘RP’, namaCP NamaCP NOT NULL, jabatanCP JabatanCP NOT NULL, alamat Alamat NOT NULL,. kota Kota NOT NULL, negara Negara NOT NULL, kodePos KodePos, fax Fax, fob FOB NOT NULL DEFAULT ‘Y’, taxable Taxable NOT NULL DEFAULT ‘Y’, accNumber AccountNumber NOT NULL, batasWaktuKirim BatasWaktuPengiriman NOT NULL, batasWaktuBayar BatasWaktuPembayaran NOT NULL Primary Key (kodePemasok))
131 PurchaseOrder Domain NomorPO: Tipe data karakter, panjang 8, Format: XXYYZZZZ {XX=tahun (00 -99), YY=bulan (01-12), ZZZZ= nomor (0000-9999)} Domain TanggalPO: Tipe data tanggal Domain StatusCetak: Tipe data int Domain KodeKaryawan: Tipe data karakter, panjang 6, Format: XXYYYY {XX=tahun masuk (00-99), YYYY=nomor (0000-9999} Domain KodePemasok: Tipe data karakter, panjang 5, Format: XYYYY {X=huruf depan dari nama pemasok (A-Z), YYYY=Nomor (0000-9999)} PurchaseOrder( nomorPO NomorPO NOT NULL, tglPO TanggalPO NOT NULL, statusCetak StatusCetak NOT NULL DEFAULT ‘0’, kodeKaryawan KodeKaryawan NOT NULL, kodePemasok KodePemasok NOT NULL, Primary Key (nomorPO), Foreign Key kodeKaryawan references Karyawan (kodeKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION, Foreign Key kodePemasok references Pemasok (kodePemasok) ON UPDATE CASCADE ON DELETE NO ACTION
132 PembayaranBarang Domain KodePembayaran: Tipe data karakter, panjang 5, Format: XYYYY {X=huruf depan dari nama pemasok (A-Z), YYYY=Nomor (0000-9999)} Domain TanggalBayar: Tipe data tanggal Domain Nominal: Tipe data money Domain KodeKaryawan: Tipe data karakter, panjang 6, Format: XXYYYY {XX=tahun masuk (00-99), YYYY=nomor (0000-9999} Domain KodePenerimaan: Tipe data int PembayaranBarang( kodePembayaran KodePembayaran NOT NULL, tglBayar TanggalBayar NOT NULL, nominal Nominal NOT NULL, kodeKaryawan KodeKaryawan NOT NULL, kodePenerimaan KodePenerimaan NOT NULL, Primary Key (kodePembayaran), Foreign Key kodeKaryawan references Karyawan (kodeKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION) Foreign Key kodePenerimaan references Penerimaan (kodePenerimaan) ON UPDATE CASCADE ON DELETE NO ACTION)
133 PenilaianPerforma Domain KodePenilaian: Tipe data int Domain NilaiPerforma: Tipe data int Domain KodePenerimaan: Tipe data int Domain KodeKaryawan: Tipe data karakter, panjang 6, Format: XXYYYY {XX=tahun masuk (00-99), YYYY=nomor (0000-9999} PenilaianPerforma( kodePenilaian KodePenilaian NOT NULL, nilaiPerforma NilaiPerforma NOT NULL, kodePenerimaan KodePenerimaan NOT NULL, kodeKaryawan KodeKaryawan NOT NULL, Primary Key (kodePenilaian) Foreign Key kodeKaryawan references Karyawan (kodeKaryawan) Foreign Key kodePenerimaan references Penerimaan (kodePenerimaan) ON UPDATE CASCADE ON DELETE NO ACTION)
Penerimaan Domain KodePenerimaan: Tipe data int Domain TanggalPenerimaan: Tipe data tanggal Domain NomorPO: Tipe data karakter, panjang 8 Domain NomorARG: Tipe data karakter, panjang 8 Domain KodeKaryawanARG: Tipe data karakter, panjang 6, Format: XXYYYY {XX=tahun masuk (00-99), YYYY=nomor (0000-9999}
134 Penerimaan( kodePenerimaan KodePenerimaan NOT NULL, tglPenerimaan TanggalPenerimaan NOT NULL, nomorPO NomorPO NOT NULL, nomorARG NomorARG NOT NULL, kodeKaryawanARG KodeKaryawanARG NOT NULL, Primary Key (kodePenerimaan), Foreign Key nomorPO references PurchaseOrder (nomorPO) ON UPDATE CASCADE ON DELETE NO ACTION) ForeignKey kodeKaryawanARG references Karyawan (kodeKaryawan)
DetailOS Domain NomorOS: Tipe data karakter, panjang 8 Domain KodeBarang: Tipe data karakter, panjang 7, Format: XXYZZZZ {XX=Kode
Barang
(SP=Sparepart,
OS=Office
Y=Huruf (A-Z), ZZ=Nomor Urut (0001-9999)} Domain Jumlah: Tipe data int Domain Status: Tipe data int DetailOS( nomorOS NomorOS NOT NULL, kodeBarang KodeBarang NOT NULL, jumlah Jumlah NOT NULL, status Status NOT NULL DEFAULT ‘0’, Primary Key (nomorOS, kodeBarang),
Supply,
IM=Material),
135 ForeignKey nomorOS references OrderSheet (nomorOS) ON UPDATE CASCADE ON DELETE CASCADE, ForeignKey kodeBarang references Barang (kodeBarang) ON UPDATE CASCADE ON DELETE CASCADE)
ProsesOS Domain NomorOS: Tipe data karakter, panjang 8 Domain NomorPO: Tipe data karakter, panjang 8 Domain KodeBarang: Tipe data karakter, panjang 7, Format: XXYZZZZ {XX=Kode
Barang
(SP=Sparepart,
OS=Office
Supply,
IM=Material),
Y=Huruf (A-Z), ZZ=Nomor Urut (0001-9999)} ProsesOS( nomorOS NomorOS NOT NULL, nomorPO NomorPO NOT NULL, kodeBarang KodeBarang NOT NULL, Primary Key (nomorPO, nomorOS, kodeBarang), Foreign Key (nomorOS,kodeBarang) references DetailOS (nomorOS, kodeBarang), Foreign Key (nomorPO, kodeBarang) references DetailPO (nomorPO, kodeBarang)
136 DetailPO Domain NomorPO: Tipe data karakter, panjang 8 Domain KodeBarang: Tipe data karakter, panjang 7, Format: XXYZZZZ {XX = Kode Barang (SP=Sparepart, OS=Office Supply, IM=Material), Y=Huruf (A-Z), ZZ=Nomor Urut (0001-9999)} Domain JumlahBarang: Tipe data int DetailPO( nomorPO NomorPO NOT NULL, kodeBarang KodeBarang NOT NULL, jumlahBarang JumlahBarang NOT NULL, Primary Key (nomorPO, kodeBarang), Foreign Key nomorPO references PurchaseOrder (nomorPO) ON UPDATE CASCADE ON DELETE CASCADE, Foreign Key kodeBarang references Barang (kodeBarang) ON UPDATE CASCADE ON DELETE CASCADE)
DetailPenerimaan Domain KodeBarang: Tipe data karakter, panjang 7, Format: XXYZZZZ {XX = Kode Barang (SP=Sparepart, OS=Office Supply, IM=Material), Y=Huruf (A-Z), ZZ=Nomor Urut (0001-9999)} Domain KodePenerimaan: Tipe data int Domain JumlahTerima: Tipe data int Domain HargaBeli: Tipe data money
137 DetailPenerimaan( kodeBarang KodeBarang NOT NULL, kodePenerimaan KodePenerimaan NOT NULL, jumlahTerima JumlahTerima NOT NULL, hargaBeli HargaBeli NOT NULL, Primary Key (kodePenerimaan, kodeBarang), Foreign Key kodePenerimaan references Penerimaan (kodePenerimaan) ON UPDATE CASCADE ON DELETE CASCADE, Foreign Key kodeBarang references Barang (kodeBarang) ON UPDATE CASCADE ON DELETE CASCADE)
DetailBarangPemasok Domain KodePemasok: Tipe data karakter, panjang 5, Format: XYYYY {X=huruf depan dari nama pemasok (A-Z), YYYY=Nomor (0000-9999)} Domain KodeBarang: Tipe data karakter, panjang 7, Format: XXYZZZZ {XX=Kode
Barang
(SP=Sparepart,
OS=Office
Supply,
IM=Material),
Y=Huruf (A-Z), ZZ=Nomor Urut (0001-9999)} DetailBarangPemasok( kodePemasok KodePemasok NOT NULL, kodeBarang KodeBarang NOT NULL, Primary Key (kodePemasok, kodeBarang), Foreign Key kodePemasok references Pemasok (kodePemasok) ON UPDATE CASCADE ON DELETE CASCADE,
138 Foreign Key kodeBarang references Barang (kodeBarang) ON UPDATE CASCADE ON DELETE CASCADE)
TeleponKaryawan Domain KodeKaryawan: Tipe data karakter, panjang 6, Format: XXYYYY {XX=tahun masuk (00-99), YYYY=nomor (0000-9999} Domain Telepon: Tipe data karakter, panjang 15, masing-masing digit 0..9 TeleponKaryawan( kodeKaryawan KodeKaryawan NOT NULL, telepon Telepon NOT NULL, Primary Key (kodeKaryawan, telepon), Foreign Key kodeKaryawan references Karyawan (kodeKaryawan) ON UPDATE CASCADE ON DELETE CASCADE)
HandphoneKaryawan Domain KodeKaryawan: Tipe data karakter, panjang 6, Format: XXYYYY {XX=tahun masuk (00-99), YYYY=nomor (0000-9999} Domain Handphone: Tipe data karakter, panjang 15 HandphoneKaryawan( kodeKaryawan KodeKaryawan NOT NULL, handphone Handphone NOT NULL, Primary Key (kodeKaryawan, handphone), Foreign Key kodeKaryawan references Karyawan (kodeKaryawan) ON UPDATE CASCADE ON DELETE CASCADE)
139 TeleponCPPemasok Domain KodePemasok: Tipe data karakter, panjang 5, Format: XYYYY {X=huruf depan dari nama pemasok (A-Z), YYYY=Nomor (0000-9999)} Domain TeleponCP: Tipe data karakter, panjang 15, masing-masing digit 0..9 TeleponCPPemasok( kodePemasok KodePemasok NOT NULL, teleponCP TeleponCP NOT NULL, Primary Key (kodePemasok, teleponCP), Foreign Key kodePemasok references Pemasok (kodePemasok) ON UPDATE CASCADE ON DELETE CASCADE)
3.4.3.7.2 Merancang Representasi Data Turunan Dalam penelitian ini tidak memerlukan adanya denormalisasi dari model relasi dikarenakan nilai-nilai dalam setiap record-nya tidak banyak terjadi perhitungan.
3.4.3.7.3 Merancang Batasan Perusahaan Batasan dibuat sesuai dengan batasan-batasan yang telah didefinisikan pada proses perancangan logikal. Untuk code-nya dapat dilihat pada Lampiran 2.
3.4.3.7.4 Menganalisis Transaksi Entri Data 1.
Menginput data bagian
2.
Menginput data jabatan
3.
Menginput data pembayaran barang
140 4.
Menginput data penilaian performa
5.
Menginput data penerimaan
6.
Menambah, mengubah, dan menghapus data barang
7.
Menambah, mengubah, dan menghapus data karyawan
8.
Menambah, mengubah, dan menghapus data pemasok
9.
Menambah, mengubah data order sheet
10.
Menambah, mengubah data purchase order
transaksi
1
relasi I Barang OrderSheet Karyawan Bagian Jabatan Pemasok PurchaseOrder PembayaranBarang PenilaianPerforma Penerimaan DetailOS ProsesOS DetailPO DetailPenerimaan DetailBarangPemasok TeleponKaryawan HandphoneKaryawan TeleponCPPemasok
R
2 U
D
I
R
3 U
D
I
R X
4 U
D
I
X X
X X X
X
R
U
D
141 transaksi
5
relasi I Barang OrderSheet Karyawan Bagian Jabatan Pemasok PurchaseOrder PembayaranBarang PenilaianPerforma Penerimaan DetailOS ProsesOS DetailPO DetailPenerimaan DetailBarangPemasok TeleponKaryawan HandphoneKaryawan TeleponCPPemasok
R
6 U
D
I X
R X
7 U X
D X
8
I
R
U
D
X
X
X
X
I
R
U
D
X
X
X
X
X
X
X
X
X
X
X
X
X
X X
X
X
X X X
transaksi
9
relasi I Barang OrderSheet Karyawan Bagian Jabatan Pemasok PurchaseOrder PembayaranBarang PenilaianPerforma Penerimaan DetailOS ProsesOS DetailPO DetailPenerimaan DetailBarangPemasok TeleponKaryawan HandphoneKaryawan TeleponCPPemasok
X
R X X
X
Tabel 3.20
X X
X X
10 U
D
11
I
R X X
U
X
X
X
X X
X X
X X
X
X X
D
I
R
12 U
X
Tabel Analisis Transaksi Entri Data
Data query 1.
Melihat data barang
2.
Melihat data pemasok
3.
Melihat data karyawan
D
I
R
U
D
142 4.
Melihat data jabatan tiap karyawan
5.
Melihat karyawan pada tiap bagian
6.
Melihat karyawan yang menangani pembuatan order sheet
7.
Melihat karyawan yang menangani pembuatan purchase order
8.
Melihat karyawan yang menangani penerimaan barang
9.
Melihat karyawan yang menangani pembayaran barang
10.
Melihat detil order sheet
11.
Melihat detil purchase order
12.
Melihat detil penilaian performa setiap pemasok
13.
Melihat detil penerimaan barang
14.
Melihat detil pembayaran barang
15.
Melihat barang yang dipasok setiap pemasok
transaksi
1
relasi I Barang OrderSheet Karyawan Bagian Jabatan Pemasok PurchaseOrder PembayaranBarang PenilaianPerforma Penerimaan DetailOS ProsesOS DetailPO DetailPenerimaan DetailBarangPemasok TeleponKaryawan HandphoneKaryawan TeleponCPPemasok
R X
2 U
D
I
R
3 U
D
I
R
X
4 U
D
I
R
X X
X
X X X
U
D
143 transaksi
5
relasi I Barang OrderSheet Karyawan Bagian Jabatan Pemasok PurchaseOrder PembayaranBarang PenilaianPerforma Penerimaan DetailOS ProsesOS DetailPO DetailPenerimaan DetailBarangPemasok TeleponKaryawan HandphoneKaryawan TeleponCPPemasok
R
U
D
I
R
7 U
D
I
X X
X X
R
8 U
D
I
X
R
U
D
X
X
X
transaksi
9
relasi I Barang OrderSheet Karyawan Bagian Jabatan Pemasok PurchaseOrder PembayaranBarang PenilaianPerforma Penerimaan DetailOS ProsesOS DetailPO DetailPenerimaan DetailBarangPemasok TeleponKaryawan HandphoneKaryawan TeleponCPPemasok
6
R
X
10 U
D
I
R X X X
11 U
D
I
R X
12 U
D
I
R
X
X
X X
X
X X X X X
U
D
144 transaksi
13
relasi I Barang OrderSheet Karyawan Bagian Jabatan Pemasok PurchaseOrder PembayaranBarang PenilaianPerforma Penerimaan DetailOS ProsesOS DetailPO DetailPenerimaan DetailBarangPemasok TeleponKaryawan HandphoneKaryawan TeleponCPPemasok
R X
14 U
D
I
R X
15 U
D
I
R X
16 U
D
I
R
U
D
X X
X X
X
X
Tabel 3.21
X
Tabel Analisis Transaksi Data Query
3.4.3.7.5 Memilih Organisasi File Menurut Connolly dan Begg (P.491) “...In my cases, a relational DBMS may gives little or no choice for choosing file organizations, although some may be established as indexes are specified”. Saat ini Microsoft SQL Server 2000 sudah memiliki fasilitas organisasi file secara otomatis menggunakan organisasi file dengan (Balanced Tree) B-tree.
3.4.3.7.6 Memilih Indeks Untuk meningkatkan kinerja sistem sewaktu mencari data, kita buat indeks pada tabel-tabel yang sudah dibuat. Indeks dibuat berdasarkan field yang sering digunakan dalam proses pencarian. Berikut ini adalah daftar indeks untuk masingmasing tabel yang ada.
145 Relasi
Field
Nama Indeks
Clustered(C)/Non Clustered(NC)
Barang
kodeBarang
Idxbarang_kodeBarang
C
OrderSheet
nomorOS
Idxordersheet_nomorOS
C
tglPembuatanOS
Idxordersheet_tglPembuatanOS
NC
kodeKaryawan
Idxkaryawan_kodeKaryawan
C
namaKaryawan
Idxkaryawan_namaKaryawan
NC
kodeBagian
Idxbagian_kodeBagian
C
namaBagian
Idxbagian_namaBagian
NC
kodeJabatan
Idxjabatan_kodeJabatan
C
namaJabatan
Idxjabatan_namaJabatan
NC
kodePemasok
Idxpemasok_kodePemasok
C
namaPemasok
Idxpemasok_namaPemasok
NC
Klasifikasi
Idxpemasok_klasifikasi
NC
PurchaseOr
nomorPO
Idxpurchaseorder_nomorPO
C
der
tglPO
Idxpurchaseorder_tglPO
NC
Pembayara
kodePembayaran
Idxpembayaranbarang_kodePem
C
nBarang
Barang
bayaranBarang
tglBayar
Idxpembayaranbarang_tglBayar
NC
PenilaianPe kodePenilaian
Idxpenilaianperforma_kodePenil
C
rforma
aian
Penerimaan kodePenerimaan
Idxpenerimaan_kodePenerimaan
C
Idxpenerimaan_nomorARG
NC
Karyawan
Bagian
Jabatan
Pemasok
nomorARG
146 Relasi
Field
Nama Indeks
Clustered(C)/Non Clustered(NC)
tglPenerimaan Tabel 3.22
Idxpenerimaan_tglPenerimaan
NC
Dokumen Indeks dari Masing-Masing Relasi
Untuk code-nya dapat dilihat pada Lampiran 5.
3.4.3.7.7 Memperkirakan Persyaratan Tempat Penyimpanan Tahap ini dilakukan perhitungan besarnya kapasitas hardisk yang dibutuhkan untuk lima tahun ke depan. Perhitungan dari disk space yang dilakukan sesuai dengan standar perhitungan dari Microsoft SQL Server 2000 yang menggunakan blok data berukuran 8 KB. kriteria entitas Barang OrderSheet Karyawan Bagian Jabatan Pemasok PurchaseOrder PembayaranBarang PenilaianPerforma Penerimaan DetailOS ProsesOS DetailPO DetailPenerimaan DetailBarangPemasok TeleponKaryawan HandphoneKaryawan TeleponCPPemasok
Tabel 3.23
Num Rows Rows Size Rows Per Pages Num Pages 3600 60000 950 25 10 800 60000 60000 60000 60000 60000 60000 60000 60000 4000 950 950 800
56 79 140 45 45 119 36 36 27 35 28 32 28 32 25 32 32 31
139 99 57 1727 172 66 213 213 279 218 269 238 269 238 299 238 238 245
18 606 17 1 1 13 282 282 216 276 224 253 224 252 14 4 4 4
Total Bytes 147456 4964352 139264 8192 8192 106496 2310144 2310144 1769472 2260992 1835008 2072576 1835008 2064384 114688 32768 32768 32768 22044672
Tabel Estimasi Penggunaan Kapasitas Disk untuk Lima Tahun ke Depan
Untuk bentuk rumus perhitungan lebih rinci dapat dilihat pada Lampiran 3.
147 3.4.3.7.8 Merancang User View Nama View
Tabel
Field
ViewBarang
Barang
kodeBarang, namaBarang, harga
ViewProfilKaryawan
Karyawan
kodeKaryawan, namaKaryawan, tglMasukKerja, tempatLahir, tglLahir, jenisKelamin, kewarganegaraan, agama, alamat, kota, kodepos, statusNikah, tglMenikah, namaIstriSuami, pekerjaan, jumlahTanggungan, pendidikanTerakhir, noKTP, kodeJabatan, kodeBagian
TeleponKaryawan Telepon HandphoneKarya
Handphone
wan
ViewProfilPemasok
Jabatan
namaJabatan
Bagian
namaBagian
Pemasok
kodePemasok, namaPemasok, klasifikasi, mataUang, namaCP, jabatanCP, alamat, kota, negara, kodePos, fax, fob, taxable, accNumber, batasWaktuKirim, batasWaktuBayar
TeleponCPPemas ok
teleponCP
148 Nama View
Tabel DetailBarangPem
Field kodeBarang, kodePemasok, jumlah
asok
ViewOrderSheet
Barang
namaBarang, harga
OrderSheet
nomorOS, tglPembuatanOS, keterangan, kodeKaryawan
ViewPurchaseOrder
DetailOS
kodeBarang, jumlah
Barang
namaBarang, harga
Karyawan
namaKaryawan
PurchaseOrder
nomorPO, tglPO, kodeKaryawan, nomorARG, kodeKaryawanARG, kodePemasok
DetailPO
kodeBarang, jumlahBarang
Barang
namaBarang, harga
Karyawan
namaKaryawan
Pemasok
namaPemasok, alamat, kota, negara, kodePos
ViewPenilaianPerforma
PenilaianPerforma kodePenilaian, nilaiPerforma, kodePenerimaan, kodeKaryawan Penerimaan
tglPenerimaan, nomorPO
PurchaseOrder
kodePemasok
Pemasok
namaPemasok
Karyawan
namaKaryawan
149 Nama View ViewPenerimaan
Tabel Penerimaan
Field kodePenerimaan, tglPenerimaan, nomorPO
ViewPembayaran
ViewUnpaidARG
PurchaseOrder
kodePemasok
Pemasok
namaPemasok
PembayaranBaran
kodePembayaran, tglBayar, nominal,
g
kodeKaryawan, nomorPO
PurchaseOrder
nomorARG, kodePemasok
Pemasok
namaPemasok
Karyawan
namaKaryawan
Penerimaan
nomorARG, nomorpo,
PurchaseOrder
kodePemasok
DetailPenerimaan
kodebarang, jumlahterima, hargabeli
Barang
namaBarang
Pemasok
namaPemasok, alamat, kota, negara, kodepos
ViewUnreceivedPO
PurchaseOrder
nomorPO, tglPO, kodeKaryawan, nomorARG, kodeKaryawanARG, kodePemasok
DetailPO
kodeBarang, jumlahBarang
Barang
namaBarang, harga
Karyawan
namaKaryawan
150 Nama View
Tabel Pemasok
Field namaPemasok, alamat, kota, negara, kodePos
Tabel 3.24
Tabel Rancangan User View
Untuk code-nya dapat dilihat pada Lampiran 6.
3.4.3.7.9 Merancang Mekanisme Keamanan Dalam suatu sistem basis data sangat penting untuk memperhatikan masalah sekuritas atau keamanan data. Hal ini menyangkut sekuritas pada Sistem Operasi dan DBMS-nya. Dalam hal ini terdapat dua tahap yaitu otentifikasi dan otorisasi. Pada tahap otentifikasi, user yang bisa masuk ke dalam Sistem Operasi diatur dengan menggunakan Windows User Account sedangkan untuk user yang bisa masuk ke dalam DBMS adalah user-user yang diidentifikasi pada tabel 3.25. Pada tahap otorisasi diatur hak akses dari masing-masing user terhadap relasirelasi yang ada. Hak akses terdiri dari menambah (Insert), mengubah (Update), membaca (Read), dan menghapus (Delete). Pengaturan ini sudah terdokumentasi dengan lengkap pada tabel berikut.
151
User Tabel Barang OrderSheet Karyawan Bagian Jabatan Pemasok PuchaseOrder PembayaranBarang PenilaianPerforma Penerimaan DetailOS ProsesOS DetailPO DetailPenerimaan DetailBarangPemasok TeleponKaryawan HandphoneKaryawan TeleponCPPemasok
Manajer Staff Manajer Manajer Manajer GA Staff Pembelian Pembelian Logistik Pabrik D U R I D U R I D U R I D U R I D U R I D U R x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x
x x x
x x
x
x
x
x
x x x x x x x x x
x x x x x
x
x
x x
x
x x x
x
x x x x x x x x x
Manajer HRD I D U R
I
x x x
x x x
x x x
x x x
x x
x x
x x
x x
x x x x
x
x
x
x x x x
x x
x x
152
User Tabel
Manajer Keuangan D U R I D U R
Barang OrderSheet Karyawan Bagian Jabatan Pemasok PuchaseOrder PembayaranBarang x PenilaianPerforma Penerimaan DetailOS ProsesOS DetailPO DetailPenerimaan DetailBarangPemasok TeleponKaryawan HandphoneKaryawan TeleponCPPemasok
I D U R
I D U R
I D U R
x x x x x x
x
x
x x
x x x Tabel 3.25
Tabel Hak Akses User
I D U R
I D U R
I