BAB III ANALISIS DAN PERANCANGAN

dokumen-dokumen yang mirip
BAB 3 ANALISIS DAN PERANCANGAN

TAMPILAN LAYAR PROTOTIPE APLIKASI

BAB 4 RANCANGAN SISTEM YANG DIUSULKAN

BAB 3 ANALISIS SISTEM YANG BERJALAN

BAB 3 ANALISIS SISTEM YANG BERJALAN

BAB III OBJEK PENELITIAN PT. GROOVY MUSTIKA SEJAHTERA

BAB 3 ANALISIS SISTEM BERJALAN. dengan akta bernomor 26 oleh notaris Silvia, SH yang bertempat di Jalan Suryopranoto

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

BAB 3 ANALISIS SISTEM YANG SEDANG BERJALAN

BAB 3 GAMBARAN SISTEM YANG BERJALAN. bermotor. Produk-produk yang dihasilkan dipasarkan

BAB 3 ANALISIS SISTEM INFORMASI AKUNTANSI PENJUALAN, PIUTANG, DAN PENERIMAAN KAS PT. AROMATECH INTERNATIONAL

BAB 3 ANALISIS SISTEM YANG SEDANG BERJALAN. PT. JDI bermula dari perusahaan lain yang bernama PT. Maluku Timber. PT. Maluku

BAB 3 ANALISIS SISTEM YANG BERJALAN. Jakarta oleh Bapak Eddy. CV. Mutiara Electronic terletak di Ruko Taman Permata Buana

BAB 3. perusahaan manufaktur sekaligus eksportir yang bergerak di bidang furniture. rotan, enceng gondok, pelepah pisang dan sebagainya.

ANALISIS DAN PERANCANGAN SISTEM INFORMASI AKUNTANSI PENJUALAN TUNAI PADA CAHAYA MOTOR

guna memenuhi kebutuhan furniture di Indonesia.

BAB 3 TATA LAKSANA SISTEM YANG BERJALAN

BAB 3 ANALISIS SISTEM YANG BERJALAN

BAB III GAMBARAN UMUM PERUSAHAAN

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

BAB III TINJAUAN UMUM

BAB 3 ANALISIS SISTEM BERJALAN

DEWAN KOMISARIS DIREKTUR UTAMA MANAJER UMUM MANAJER PERSONALIA MANAJER KEUANGAN MANAJER MANAJER MANAJER PENJUALAN MANAJER PEMASARAN PEMBELIAN

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

BAB 3 SISTEM YANG SEDANG BERJALAN

BAB 3 ANALISIS PERUSAHAAN. sebuah perusahaan yang begerak pada bidang penjualan peralatan olahraga, yang

BAB 4 RENCANA IMPLEMENTASI

BAB I PENDAHULUAN. I.1 Latar Belakang

BAB III OBJEK DAN METODE PENELITIAN. Indonesia yang didirikan pada tanggal 10 Mei Perusahaan didirikan oleh Endang

BAB 3. Analisa Kebutuhan Basisdata

BAB IV HASIL PENELITIAN DAN PEMBAHASAN. I. Implementasi Sistem Informasi atas Pembelian dan Penjualan pada CV.

BAB IV ANALISA DAN PERANCANGAN SISTEM

BAB 3 ANALIS IS S IS TEM YANG BERJALAN

BAB III PROSES PENGUMPULAN DATA. III.1. Sejarah Singkat PT Kurnia Mulia Citra Lestari

Lampiran 1. Hasil Wawancara

BAB IV ANALISIS DAN DESAIN SISTEM. perangkat keras, perangkat lunak, dan pengguna. Analisis ini diperlukan sebagai

BAB 3 ANALISIS SISTEM INFORMASI BERJALAN

BAB 3 ANALISIS SISTEM YANG SEDANG BERJALAN

BAB 3 ANALISA SISTEM YANG BERJALAN. Perusahaan ini berdiri sejak tahun 1998 di Jakarta dengan nama PT. Tricilla

BAB 3 ANALISIS SISTEM BERJALAN

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

BAB V SIMPULAN DAN SARAN

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah. CV. Langgeng Jaya merupakan suatu usaha dagang yang bergerak dalam

BAB IV METODE PENELITIAN. ditemukan solusi yang tepat sesuai dengan harapan pihak perusahaan.

LAMPIRAN. Lampiran 1 Notasi untuk Flowchart Diagram

. BAB IV ANALISIS HASIL DAN PEMBAHASAN. A. Prosedur dalam Sistem Penjualan Kredit. 1. Prosedur Penjualan Kredit dan Piutang Dagang

BAB 3 ANALISIS SISTEM YANG BERJALAN. yang berlokasi di Jakarta, Indonesia. PT. SURYAPRABHA JATISATYA

LAMPIRAN. Lampiran 1. - Internal Control Questionaire (ICQ) Pertanyaan dalam kuesioner dapat dijawab dengan :

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

BAB 3 ANALISIS SISTEM. perusahaan serta akibat yang ditimbulkan masalah tersebut. dimana masih berstatus sewaan dari orang lain.

BAB 3 ANALISIS SISTEM YANG SEDANG BERJALAN

BAB 3 ANALISIS SISTEM YANG BERJALAN

BAB 3 ANALISIS SISTEM YANG SEDANG BERJALAN. pengadaan barang-barang yang dibutuhkan baik oleh klien maupun oleh

BAB III OBJEK PENELITIAN

BAB IV ANALISIS DAN PERANCANGAN SISTEM. organisasi, maka harus dilakukan analisis sistem yang sedang berjalan terlebih dahulu

BAB III ANALISIS SISTEM YANG BERJALAN

BAB 3 ANALISIS SISTEM INFORMASI AKUNTANSI SIKLUS PENDAPATAN PT. TIRTAKENCAN A TATAWARN A YANG BERJALAN

BAB 3 ANALISIS SISTEM BERJALAN. dalam bidang industri air minum dalam kemasan. PT. PUSAKA KALI

BAB IV ANALISIS DAN PERANCANGAN SISTEM. untuk mengetahui lebih jelas bagaimana cara kerja sistem tersebut dan masalah

BAB IV PERANCANGAN SISTEM

BAB 3 ANALIS IS S IS TEM YANG BERJALAN. Timbangan baik mekanik maupun elektronik.

Lampiran 1. Hasil Kuesioner

BAB 3 ANALISIS SISTEM INFORMASI AKUNTANSI PENJUALAN KREDIT, PIUTANG DAN PENERIMAAN KAS YANG SEDANG BERJALAN PADA PT PANCA KEMAS KRIDA MANUNGGAL

BAB 3 ANALIS IS S IS TEM YANG BERJALAN

BAB IV PEMBAHASAN. Evaluasi Struktur Organisasi Perusahaan. merupakan salah satu dari unsur pengendalian internal. Struktur organisasi

BAB 3 OBJEK DAN METODE PENELITIAN

BAB III ANALISIS DAN PERANCANGAN SISTEM. System Development Life Cycle (SDLC) yang berfungsi untuk memberi gambaran

BAB 3 ANALISIS SISTEM BERJALAN

BAB IV ANALISIS DAN DESAIN SISTEM

BAB III GAMBARAN UMUM PERUSAHAAN. PT PMJ (dahulu PD DH) berdiri pada bulan Oktober 2001 dibuat dihadapan

BAB IV ANALISIS DAN PERANCANGAN SISTEM. Berikut ini adalah analisis dokumen yang digunakan di bagian penjualan pada

BAB III OBJEK PENELITIAN. Gambaran Umum mengenai PT. Bumi Maestroayu

BAB III ANALISIS DATA DAN PEMBAHASAN. Gentan, Baki, Sukoharjo. No. Telepon / Fax : /

BAB IV PEMBAHASAN AUDIT OPERASIONAL ATAS FUNGSI PENJUALAN KREDIT DAN PIUTANG USAHA PADA PT. GROOVY MUSTIKA SEJAHTERA

BAB 3 ANALISIS KEBUTUHAN SISTEM BASISDATA

BAB III OBJEK PENELITIAN. Pada tanggal 6 Januari 2002 PT Prima Auto Mandiri didirikan di Tebet dengan

3. RUANG LINGKUP SOP penjualan tunai ini meliputi flowchart prosedur penjualan tunai, penjelasan prosedur, dan dokumen terkait.

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

BAB 3 ANALISIS SISTEM BERJALAN. PT. Auto Sukses Perkasa berdiri pada tahun 2006 merupakan perusahaan yang

BAB 3 ANALISIS SISTEM BERJALAN

cek, wesel (kiriman uang atau money orders), dan uang yang tersimpan di bank yang penarikannya tidak dibatasi (Warren et al. 2006).

BAB III METODOLOGI ANALISIS

BAB 3 ANALISIS SISTEM INFORMASI AKUNTANSI PENJUALAN, PIUTANG USAHA DAN PENERIMAAN KAS YANG SEDANG BERJALAN

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISA DAN DESAIN

BAB 3 ANALISIS PERUSAHAAN. PT. Sarana Prima Kencana merupakan perusahaan yang berdiri di

BAB 3 ANALISIS SISTEM INFORMASI AKUNTANSI SIKLUS PENDAPATAN PADA PT. PANCASONA DAYASAKTI YANG BERJALAN

BAB III ANALISIS DAN PERANCANGAN

BAB 4 EVALUASI DAN PEMBAHASAN

BAB III ANALISA DAN PERANCANGAN SISTEM

BAB IV ANALISA HASIL DAN PEMBAHASAN. A. Siklus Pendapatan Pada PT.Generasi Dua Selular. Bagi perusahaan yang bergerak di bidang perdagangan, sumber

BAB 3 OBJEK PENELITIAN. menempati lahan seluas 200 meter persegi. Diantaranya jasa yang dilayani sendiri adalah

Evaluasi sistem dan prosedur pembelian bahan baku. pada perusahaan j rot galery. di Klaten. Oleh : Riasti F BAB I PENDAHULUAN

Transkripsi:

BAB III ANALISIS DAN PERANCANGAN 3.1 Analisis 3.1.1 Riwayat Perusahaan PT. Musi Langgeng Mandiri, merupakan salah satu produsen air mineral di Indonesia yang dikenal dengan merek Drinka. Drinka telah lulus uji quality control oleh pemerintah Singapura. Drinka diambil dari mata air alami yang terletak di Babakan Pari kemudian melewati proses filtrasi dan pemurniaan yang modern Drinka merupakan air minum berstandar internasional; dan tak lupa juga memenuhi kebutuhan mineral tubuh. Adapun rangkaian produk produk yang dihasilkan oleh Drinka terdiri dari 4 produk seperti yang tertera dibawah ini : Gelas 240 ml Botol sedang 600 ml Botol besar - 1500 ml Galon 19 liter Perusahaan ini didirikan pada tanggal 15 Desember 1988 atas dasar akte notaris Tegoeh Hartanto SH dan disahkan oleh yang berwenang berdasarkan nomor 37/CN/PDT.P/1988?PN.JKT.PST dengan gudang dan kantor yang berkedudukan di Jl. Jembatan 3 no 36GE, Jakarta Utara 14440.

49 Perusahaan memilih lokasi di kawasan Jembatan 3 dengan alasan-alasan sebagai berikut karena lokasi Jembatan 3 merupakan salah satu komplek perkantoran dan jarak lokasi kantor dengan rumah tinggal tidak terlalu jauh. Sampai saat ini PT Musi Langgeng Mandiri belum membuka cabang di tempat lain. Jumlah pelanggan tetap yang ada saat ini sekitar 100 pelanggan. Mengingat bahwa perusahaan ini bukan merupakan perusahaan pertama dalam bidang air mineral, maka agar dapat bertahan dalam persaingan, perusahaan mengadakan market research untuk mengetahui jenis kemasan minuman yang diinginkan oleh konsumen. Dari hasil riset ini maka perusahaan memproduksi kemasan berbentuk gelas, botol, dan galon. Saat ini produk and pelayanan Drinka telah digunakan oleh perusahaan perusahaan seperti Brasali Group (Apartemen Bukit Golf Pondok Indah), Grup IKM (Honda), dan juga berbagai kompleks perumahan di Jakarta. Hal ini dikarenakan produk berkualitas tinggi dengan pelayanan yang disesuaikan untuk kebutuhan masing masing individu yang kami sediakan dengan harga competitif. Selain bekerja dibidang air minum, PT. Musi Langgeng Mandiri juga bekerja pada bidang management logistic. Divisi management logistic PT. Musi Langgeng Mandiri melayani process distribusi melalui darat dan laut, dimana area utama lingkupnya adalah daerah Sumatra seperti Palembang, Bangka Belitung, Jambi, dan juga area area lainnya.beberepa perusahaan yang saat ini bekerja sama dengan PT. Musi Langgeng Mandiri adalah Multi Bintang

50 Indonesia (Heineken, Bir Bintang, Green Sands), Amerta Indah Otsuka (Pocari Sweat, Soy Joy), Dima Indonesia (Guiness) dan Tirta Investama (Aqua). Bidang lain yang juga ditekuni oleh PT. Musi Langgeng Mandiri adalah bidang perdagangan dan fabrikasi. Divisi ini bekerja sama dengan perusahaan seperti Grup Sinar Mas dan Heinz ABC dalam penyediaan, perbaikan, dan pembuatan parts untuk pabrik pabrik mereka. Beberapa produk spesifik yang disediakan oleh PT. Musi Langgeng Mandiri adalah battery (forklift, ect), panel assy, pembuatan sealer, joints (universal joint, cross joint) dan juga penanganan kebakaran (nozzle, hose, dan integrasi keselamatan fasilitas). 3.1.2 Struktur Organisasi Perusahaan Secara terperinci organisasi merupakan sistem dan bentuk hubungan antara wewenang (authority) dan tanggungjawab (responsibility) antara atasan dan bawahan demi tercapainya tujuan yang telah ditetapkan dengan cara yang paling baik. Hubungan tersebut akan tercapai dengan baik apabila antara atasan dan bawahan serta antara satu bagian dengan bagian lainnya dalan organisasi terjalin suatu kerjasama dan saling pengertian yang sebaik-baiknya. Dengan demikian apabila membicarakan organisasi, maka salah satu bagian yang terpenting adalah struktur organisasi yang mengatur hubungan antara bagian-bagian yang ada dalam organisasi serta menetapkan wewenang yang tegas sehingga dapat dilakukan suatu koordinasi yang baik. Dalam perusahaan ini fungsi-fungsi manajemen sudah dijalankan sesuai dengan kemampuan dan kebutuhan perusahaan. Rencana jangka panjang dan

51 jangka pendek disusun oleh direktur utama. Demikian pula dalam pemberian tugas dan wewenang pimpinan perusahaan selalu mengadakan konsultasi dan memperhatikan saran dari para staf, sehingga dengan demikian hubungan antara atasan dengan bawahan selalu berjalan dengan baik sesuai dengan rencana dan tujuan perusahaan. Direktur Utama Sekretaris Personalia Keuangan Distribusi/ Pemasaran Produksi Kasir Penjualan Gudang Pembelian Gambar 3.1 Struktur Organisasi PT Musi Langgeng Mandiri 3.1.3 Pembagian Tugas dan Tanggung Jawab Adapun struktur organisasi perusahaan dan pembagian tugas masingmasing adalah sebagai berikut :

52 1. Direktur utama Tugas direktur utama adalah : - Memegang pimpinan tertinggi dalam perusahaan. - Mewakili para pemegang saham melalui perencanaan hingga pengendalian kegiatan manajerial perusahaan. - Mengkoordinir segala kegiatan. Tanggung jawab : - Memimpin, mengkoordinasi, mengarahkan, dan mengawasi seluruh kegiatan perusahaan. - Menerima dan mengevaluasi laporan pelaksanaan kegiatan di perusahaan. - Mengangkat dan memberhentikan karyawan tetap. 2. Sekretaris Tugas sekretaris adalah : - Membantu direktur dalam hal pengaturan jadwal. 3. Personalia Tugas Personalia : - Menerima dan mendistribusikan surat-surat masuk ke perusahaan. - Menyimpan dan memelihara dokumen karyawan. - Menjalankan administrasi karyawan. Tanggung jawab:

53 - Merencanakan penerimaan karyawan. - Merencanakan pelatihan internal karyawan. - Mengembangkan dan menetapkan peraturan karyawan yang disesuaikan dengan peraturan pemerintah. - Merencanakan program kerja sama dengan masyarakat. 4. Keuangan Tugas keuangan: - Mengeluarkan dan membayar uang pembelian bahan baku serta gaji karyawan dan pembayaran-pembayaran lainnya sesuai aturan perusahaan. - Melaporkan kegiatan keuangan perbulan kepada direktur. - Membicarakan kegiatan arus keuangan setiap hari atau setiap saat dengan direktur. Tanggung jawab: - Menyusun kebijakan keuangan yang berhubungan dengan kegiatan akuntansi, administrasi keuangan, pengaturan sumber dana, dan penggunaan dana perusahaan. - Mengkoordinir dan mengawasi transaksi keuangan. - Menugaskan kasir membayar gaji karyawan. - Mengawasi kelancaran keuangan perusahaan.

54 5. Kasir Tugas kasir: - Menerima semua uang masuk, baik berupa tunai, giro, maupun cek. - Membantu bagian keuangan menyetor cek atau giro ke rekening bank. - Mengelola kas kecil untuk pengeluaran dana harian yang berjumlah kecil. - Membayar gaji dan uang lembur karyawan. 6. Pembelian Tugas : - Menentukan persyaratan supplier. - Mendata kemampuan supplier untuk memasok barang, harga barang, mutu, jumlah, dan jadwal pengiriman barang. - Menyiapkan order pembelian untuk disetujui bagian keuangan. - Mengawasi penerimaan barang sesuai dengan order. - Memelihara dan menyimpan seluruh catatan pembelian bahan mentah. Tanggung jawab: - Bertanggung jawab atas kesesuaian persyaratan mutu barang-barang yang dibeli. 7. Distribusi / Pemasaran Tugas - Mengkoordinasikan dan mengidentifikasi informasi pasar.

55 - Melaksanakan program promosi untuk meningkatkan daya saing. - Menerima pendaftaran calon pelanggan - Menerbitkan Bukti Pengeluaran Produk Jadi (BPBJ) dan Surat Jalan (SJ) - Mengarsipkan dokumen dokumen yang berhubungan dengan bagian distribusi. 8. Penjualan Tugas penjualan: - Menerima pesanan dari pelanggan - Membuat jadwal pengiriman barang - Mengurus faktur-faktur yang berhubungan dengan penjualan - Memelihara dan menyimpan dokumen penjualan. - Melaporkan kepada bagian pembelian kendala kendala yang terjadi di pasar dan memperluas pasar. 9. Produksi Tugas Produksi: - Mengatur kelancaran proses produksi dari tahap bahan baku air sampai produk jadi - Memeriksa dan menguji bahan baku, produksi jadi sesuai dengan Standar Nasional Indonesia (SNI). - Menyiapkan standar mutu sebagai acuan.

56 - Membuat order pemesanan barang ke pabrik. Tanggung jawab: - Bertanggung jawab atas mutu bahan baku air. - Bertanggung jawab atas kesesuaian mutu produk akhir. - Bertanggung jawab atas arus persediaan bahan baku mentah 10. Gudang Tugas Gudang: - Mengeluarkan barang sesuai dengan pesanan pelanggan. - Mencatat jumlah bahan baku yang keluar masuk gudang. - Mencatat jumlah produksi akhir yang masuk gudang. - Menjaga tingkat kerapian, kebersihan, dan keamanan gudang. - Memberi identifikasi barang setiap barang masuk gudang dan melaksanakan penggunaan barang dengan sistem FIFO(First In First Out). Tanggung jawab: - Bertanggung jawab atas keselamatan bahan baku dan barang jadi yang tersimpan dalam gudang. - Bertanggung jawab atas pemberian identifikasi atas bahan baku dan barang jadi yang ada dalam gudang.

57 3.1.4 Sistem yang Sedang Berjalan 3.1.4.1 Proses Bisnis dan Diagram Aliran Dokumen Berikut ini adalah prosedur sistem transaksi yang dilakukan pada PT Musi Langgeng Mandiri : Prosedur pendaftaran pelanggan Sebelum melakukan transaksi pemesanan barang, calon pelanggan harus melakukan pendaftaran terlebih dahulu kepada staf bagian distribusi / pemasaran. Pendaftaran dilakukan agar staf bagian distribusi dapat mengecek kelayakan calon pelanggan, jika calon pelanggan dianggap layak maka staf bagian distribusi akan mencatat data pelanggan dan disimpan ke dalam arsip perusahaan.

Gambar 3.2 Diagram Alir Dokumen pada Tahap Pendaftaran 58

59 Prosedur pemesanan barang Pelanggan melakukan pemesanan barang ke bagian penjualan, jika pelanggan tidak melakukan perubahan pesanan, maka barang akan dikirim secara rutin sesuai dengan perjanjian yang ada di BP(Bukti Pemesanan). Jika pelanggan ingin melakukan perubahan pesanan, maka pelanggan harus melakukannya minimal sehari sebelum jadwal pengiriman barang dan paling lambat sampai dengan jam 12.00 siang. Staf bagian penjualan akan melihat jadwal pengiriman barang pada hari tersebut, kemudian menerbitkan Purchased Order (PO) 1 rangkap yang ditujukan ke bagian distribusi. Kemudian staf bagian distribusi juga akan menerbitkan Bukti Pengeluaran Barang Jadi (BPBJ) 3 rangkap yang digunakan agar staf bagian gudang dapat mengeluarkan barang yang diminta dan nantinya digunakan untuk mencocokkan antara barang yang diminta, barang yang diberikan, dan barang yang dijual. Lembar 1 (putih) ditujukan kepada bagian distribusi. Lembar 2 (merah) ditujukan kepada bagian gudang. Lembar 3 (biru) ditujukan kepada pengambil / driver. Staf bagian distribusi juga akan menerbitkan Surat Jalan (SJ) 3 rangkap yang berisi nama dan alamat pelanggan, nama barang dan jumlah barang yang dijual akan diisi oleh driver. Lembar 1 (putih) diberikan kebagian penjualan (lembar 1 akan diberikan kepada pelanggan apabila pembayaran telah dilakukan).

60 Lembar 2 (biru) ditujukan ke bagian distribusi dan diarsipkan. Lembar 3 (merah) ditujukan ke pelanggan.

Gambar 3.3 Diagram Alir Dokumen pada Tahap Pemesanan 61

62 Prosedur pengeluaran barang Bagian gudang menerima BPBJ dan SJ kemudian bagian gudang menyiapkan barang sesuai dengan pemesanan dan mengisi kartu stok. Setelah bagian gudang menyiapkan barang, BPBJ diarsipkan dan SJ diserahkan kepada driver.

Gambar 3.4 Diagram Alir Dokumen pada Tahap Pengeluaran Barang 63

64 Prosedur pengiriman barang Bagian gudang akan memberikan SJ dan barang sesuai dengan yang dipesan kepada driver. Driver akan mengirim barang dan mengisi SJ pelanggan sesuai dengan jumlah barang yang dipesan atau sesuai dengan jumlah gallon kosong yang tersedia di pihak pelanggan. Setelah pengiriman barang selesai dilakukan, maka driver akan menyerahkan SJ ke bagian gudang dan bagian gudang akan mendata BPBJ rangkap 3. Lembar 1 (putih) ditujukan kepada bagian distribusi. Lembar 2 (merah) akan diarsipkan. Lembar 3 (biru) ditujukan kepada pengambil / driver. SJ rangkap 2 ditujukan untuk : Lembar 1 (putih) ditujukan ke bagian penjualan. Lembar 2 (biru) ditujukan ke bagian distribusi

65 Pe la ngg an Driver Guda ng Distribusi 2 Mendata BPBJ 2 3 3 SJ 1 SJ BPBJ 1 2 1 2 N SJ 2 BPBJ 1 N M eng iri m Barang 4 Bersama dengan Barang SJ 3 Menyerahk an 3 SJ 1 2 N Keterangan untuk dokumen: BPBJ = Bukti Pengeluaran Produk Jadi SJ = Surat Jalan Keterangan untuk data s tore: N = U rut m enu rut m or N BPBJ 3 Gambar 3.5 Diagram Alir Dokumen pada Tahap Pengiriman

66 Prosedur penagihan Setiap akhir bulan staf bagian penjualan membuat Surat Penagihan (SP) rangkap 2 berdasarkan pada SJ pelanggan pada bulan tersebut. Lembar 1 (putih) diberikan kepada pelanggan (lembar 1 SP diberikan apabila pembayaran telah dilakukan beserta dengan lembar 1 SJ). Lembar 2 (merah) digunakan sebagai arsip. Jika tidak langsung melakukan pembayaran, maka pihak pelanggan harus memberikan tanda terima bahwa telah menerima SP dari PT Musi Langgeng Mandiri dan akan diberikan batas waktu sesuai dengan perjanjian. Kolektor akan melakukan penagihan kembali sesuai dengan batas waktu yang telah dijanjikan.

Gambar 3.6 Diagram Alir Dokumen pada Tahap Penagihan 67

68 Untuk pelanggan dengan jenis pembayaran lunas, maka pada saat dilakukan pengiriman barang selain diterbitkan SJ, diterbitkan pula SP yang berisi nama pelanggan, alamat pelanggan, dan harga barang. Jumlah barang akan diisi sendiri oleh driver karena harus sesuai dengan SJ. Jika pembayaran telah dilakukan maka driver akan menyerahkan SJ lembar 1 kepada pelanggan, serta SP lembar 2. Prosedur Pemesanan sampai serah terima produk jadi Bagian gudang melakukan pemesanan barang jadi melalui telepon dan mencatat pesanan ke dalam jurnal pesanan. Setelah menerima pemesanan. bagian produksi melakukan produksi, staf bagian produksi akan memindahkan barang ke gudang beserta Bukti Serah Terima Produk Jadi (BSTPJ) 2 rangkap. Lembar 1 (putih) ditujukan ke bagian produksi. Lembar 2 (merah) ditujukan ke bagian gudang.

69 Gambar 3.7 Diagram Alir Dokumen pada Tahap Pemesanan Sampai Penerimaan Barang

70 3.1.4.2 Kebutuhan Pengguna 3.1.4.2.1 Kebutuhan Informasi Untuk menentukan kebutuhan sistem pada PT. Musi Langgeng Mandiri, kami melakukan wawancara kepada nara sumber dari bagian persediaan dan penjualan. Dari hasil wawancara tersebut kami telah menyimpulkan beberapa hal yang diperlukan dan keinginan dari divisi-divisi tersebut. Pegawai Pegawai yang terlibat antara lain bagian penjualan dan bagian gudang. Kebutuhan informasi pegawai, antara lain : data pegawai, data pelanggan, data transaksi pemesanan barang, data transaksi pengeluaran barang, data penerimaan barang, data transaksi pengiriman barang, dan penagihan Pelanggan Kebutuhan informasi pelanggan, antara lain : data pelanggan, data barang, data transaksi pemesanan barang, data penerimaan barang, data pengeluaran barang, data transaksi pengiriman barang, dan penagihan Transaksi Pemesanan Barang Kebutuhan informasi Transaksi Pemesanan Barang, antara lain : data pegawai, data pelanggan, data barang, dan jadwal pengiriman.

71 Transaksi Penerimaan Barang Kebutuhan informasi Transaksi Penerimaan Barang, antara lain : data pegawai, data barang. Transaksi Pengeluaran Barang Kebutuhan informasi Transaksi Pengeluaran Barang, antara lain : data pegawai, data barang. Transaksi Pengiriman Barang Kebutuhan informasi Transaksi Pengiriman Barang, antara lain : data pegawai, data pelanggan, data barang, jadwal pengiriman, data transaksi pengeluaran barang, data kendaraan. Penagihan Kebutuhan informasi Penagihan, antara lain : data pegawai, data pelanggan, data transaksi pengiriman barang. 3.1.4.2.2 Kebutuhan Keamanan Data Agar data yang ada dapat tersimpan dengan aman dan tidak dapat diakses oleh orang yang tidak berkepentingan maka harus ada pembatasan hak akses, yaitu: 1. Direktur utama dapat mengakses semua data. 2. Bagian Personalia hanya dapat mengakses data tentang pegawai 3. Bagian Keuangan hanya dapat mengakses data tentang transaksi yang berurusan dengan penjualan

72 4. Bagian Distribusi hanya dapat mengakses data tentang pelanggan, pemesanan barang, pengiriman barang, dan data barang 5. Bagian Gudang hanya dapat mengakses data tentang barang, pengeluaran barang, penerimaan barang. 3.1.4.2.3 Kebutuhan Integrasi Data Agar data yang tersimpan tidak terdapat kesalahan atau ketidakcocokan data antara data yang satu dengan yang lain maka data antara bagian penjualan dan bagian persediaan harus terintegrasi. 3.1.4.2.4 Kebutuhan Transaksi Data Entry a) Masukkan detail dari pelanggan b) Masukkan detail dari jabatan c) Masukkan detail dari pegawai d) Masukkan detail dari Penagihan e) Masukan detail dari Kendaraan f) Masukkan detail dari Barang g) Masukkan detail dari BP h) Masukkan detail dari RKD i) Masukkan detail dari BPBJ j) Masukkan detail dari BSTPJ

73 k) Masukkan detail dari PO l) Masukkan detail dari Cabang m) Masukkan detail dari SJ n) Masukkan detail dari Perusahaan o) Masukkan detail dari Jadwal Kirim Data Update/Deletion a) Mengubah / menghapus detail dari pelanggan b) Mengubah / menghapus detail dari jabatan c) Mengubah / menghapus detail dari pegawai d) Mengubah detail dari Penagihan e) Menghapus detail dari Kendaraan f) Mengubah / menghapus detail dari Barang g) Mengubah detail dari BP h) Mengubah detail dari RKD i) Mengubah detail dari BPBJ j) Mengubah detail dari BSTPJ k) Mengubah detail dari PO l) Mengubah / menghapus detail dari Cabang m) Mengubah detail dari SJ n) Mengubah / menghapus detail dari Perusahaan o) Mengubah / menghapus detail dari Jadwal Kirim Data Query a) Tampilkan detail pegawai berdasarkan kode jabatan b) Tampilkan detail pelanggan berdasarkan hari pengiriman

74 c) Tampilkan detail barang beserta harga untuk pelanggan tertentu d) Tampilkan nama pelanggan dan detail dari penagihan yang belum dibayar pada bulan dan tahun tertentu e) Tampilkan detail persediaan barang f) Tampilkan detail PO beserta detail Barang yang dipesan berdasarkan kode RKD tertentu g) Tampilkan detail SJ berdasarkan bulan dan kodepelanggan tertentu dari PO h) Tampilkan detail SJ berdasarkan kode penagihan tertentu i) Tampilkan detail barang berdasarkan kode BPBJ tertentu j) Tampilkan detail barang berdasarkan kode BSTPJ tertentu k) Tampilkan detail barang berdasarkan kode PO tertentu l) Tampilkan detail kendaraan yang diurut berdasarkan kapasitas standart terbesar 3.1.5 Permasalahan yang Dihadapi Saat ini PT Musi Langgeng Mandiri sudah mempunyai sekitar 100 pelanggan tetap dengan jumlah rata rata transaksi sebesar 25 transaksi setiap harinya. Berdasarkan gambaran sistem yang sedang berjalan dapat diketahui permasalahan permasalahan yang dihadapi oleh perusahaan ini, antara lain:

75 Prosedur pemesanan barang Bagian penjualan mengalami kesulitan dalam membuat PO untuk pelanggan, sebab bagian penjualan harus selalu mengecek jadwal pengiriman beserta jumlah barang yang akan dikirimkan kepada setiap pelanggan berdasarkan BP yang telah disepakati antara pihak pelanggan dengan pihak perusahaan. Prosedur pengeluaran dan penerimaan barang Karena data belum terintegrasi antara bagian gudang, distribusi dan penjualan, maka bagian distribusi dan penjualan harus selalu menghubungi bagian gudang terlebih dahulu untuk mendapatkan informasi mengenai sisa barang yang ada di gudang barang jadi. Prosedur penagihan Perhitungan tagihan pelanggan masih dilakukan secara manual sehingga memungkinkan terjadinya kesalahan. Selain itu harga barang yang dijual untuk setiap pelanggan tidak sama, karena semua harga tergantung pada BP yang telah disepakati antara pihak pelanggan dengan pihak perusahaan. Permasalahan yang lainnya adalah bagian penjualan tidak dapat langsung mengetahui pelanggan mana yang tagihannya sudah melewati tanggal jatuh tempo karena harus melakukan pengecekan terlebih dahulu terhadap setiap tagihan yang ada. 3.1.6 Usulan Pemecahan Masalah Berdasarkan masalah-masalah di atas, maka solusi yang baik dan bermanfaat bagi pihak perusahaan adalah dengan membuat sebuah sistem basis data yang terintegrasi antara satu bagian yang lain, mampu mengelompokan

76 pelanggan, serta mampu menghitung dan mencetak laporan penagihan. Selain itu, basis data tersebut juga dapat mengolah data-data penting seperti PO, surat pengeluaran barang, surat jalan. Basis data itu juga mampu menyimpan data dengan aman dan dapat memperoleh data data tersebut dengan cepat. 3.2 Perancangan 3.2.1 Perancangan Basis Data Konseptual 3.2.1.1 Mengidentifikasi Tipe Tipe Entitas Berikut ini merupakan tabel yang menjelaskan entiti entiti yang digunakan dalam perancangan basis data. Entiti Deskripsi Alias Kemunculan Pegawai Berhubungan dengan semua pegawai yang bekerja pada PT Musi Langgeng Mandiri Staff Setiap pegawai dapat melayani banyak PO, BPBJ, SJ, penagihan dan pembayaran Pelanggan Berhubungan dengan semua pelanggan yang membeli barang pada PT Musi Langgeng Mandiri Konsumen Setiap pelanggan dapat memesan barang Jabatan Berhubungan dengan semua jabatan yang berlaku dalam proses bisnis PT Musi Langgeng Mandiri Position Setiap pegawai memiliki satu jabatan sesuai dengan tugas dan tanggung jawabnya

77 Entiti Deskripsi Alias Kemunculan BP Berhubungan dengan semua jenis barang yang dipesan oleh pelanggan, jumlah pengiriman barang, harga dari setiap barang dan jadwal pengiriman barang Pendaftaran Setiap BP dibuat pada awal pemesanan barang milik pelanggan serta bila terjadi perubahan jadwal kirim, harga barang, jumlah pengiriman barang dan penambahan atau pengurangan jenis barang PO Berhubungan dengan semua pemesanan barang yang dilakukan oleh pelanggan Invoice Setiap PO dibuat berdasarkan BP, tetapi masih dimungkinkan untuk mengalami perubahan jika ada perubahan pesanan oleh pelanggan SJ Berhubungan dengan semua pengiriman barang terhadap pelanggan serta jumlah barang yang diterima oleh pelanggan Surat Jalan Informasi pengiriman barang berupa jumlah barang yang diterima oleh pelanggan ditulis kedalam SJ setiap kali melakukan pengiriman barang Penagihan Berhubungan dengan semua penagihan penjualan terhadap pelanggan Penagihan dilakukan setiap hari atau setiap bulan berdasarkan pada jenis pembayaran pelanggan yang ada di BP Barang Barang yang dijual oleh PT Musi Langgeng Mandiri Produk Barang dibutuhkan dalam transaksi penjualan BPBJ Berhubungan dengan jumlah barang yang keluar dari gudang Pengeluaran Barang Barang dikeluarkan dari gudang barang jadi pada saat ada pengiriman barang

78 Entiti Deskripsi Alias Kemunculan BSTPJ Berhubungan dengan jumlah barang yang masuk ke gudang Penerimaan Barang Pemasukan barang jadi dari produksi ke gudang barang jadi Kendaraan Berhubungan dengan informasi semua kendaraan pengirim barang Armada Kendaraan digunakan pada saat pengiriman barang kepada pelanggan RKD Berhubungan dengan semua urutan jadwal pengiriman barang untuk pelanggan Rencana Kerja Distribusi Setiap kali melakukan pengiriman barang, bagian distribusi membuat RKD untuk tiap kendaraan tertentu Perusahaan Berhubungan dengan data perusahaan Ketika perusahaan didirikan Cabang Berhubungan dengan cabang-cabang yang ada di perusahaan Setiap kali dibuka cabang baru Tabel 3.1 Identifikasi Tipe Entiti 3.2.1.2 Mengidentifikasi Tipe - Tipe Relasi Entiti Multiplicity Relasi Entiti Multipicity Pegawai 1..1 Menangani PO 0..* Pegawai 1..1 Menangani Penagihan 0..* Pegawai 1..1 Menangani BP 0..* Pegawai 1..1 Menangani Penagihan 0..* Pegawai 1..1 Menangani BPBJ 0..* Pegawai 1..1 Menangani RKD 0..* Pegawai 1..1 Menangani RKD 0..* Pegawai 1..1 Menangani BSTPJ 0..* Pegawai 1..1 Menangani SJ 0..*

79 Entiti Multiplicity Relasi Entiti Multipicity Jabatan 1..1 Mempunyai Pegawai 1..* Pelanggan 1..1 Memiliki BP 1..* BP 1..* Memiliki Barang 1..* PO 1..* Memiliki Barang 1..* PO 1..1 Memiliki SJ 1..1 BP 1..1 Menghasilkan PO 1..* BSTPJ 1..* Menambah Barang 1..* Penagihan 1..1 BerdasarkanPada SJ 1..* BPBJ 1..* Mengurangi Barang 1..* SJ 1..* Memiliki Barang 1..* RKD 1..1 Memiliki PO 1..* RKD 1..1 Menghasilkan BPBJ 1..1 Kendaraan 1..1 Digunakan RKD 1..* Perusahaan 1..1 Memiliki Pegawai 1..* Perusahaan 1..1 Memiliki Cabang 1..* Cabang 1..1 Memiliki Pegawai 1..* Cabang 1..1 Memiliki Barang 1..* Perusahaan 1..1 Memilki Barang 1..* Tabel 3.2 Identifikasi Tipe Relasi

Gambar 3.8 Diagram ER yang Menunjukan Entiti dan Relasi 80

81 3.2.1.3 Identifikasi Atribut dan Tipe Entitas, Domain Atribut, Primary Key dan Candidate Key 1. Nama Entiti : Pegawai Atribut Panjang Jenis Null MultiValue Derived KodePegawai NamaPegawai AlamatPegawai Kota Kecamatan Kelurahan TglLahir JenisKelamin TglMasukKerja Telepon Hp StatusPegawai 10 50 100 30 30 30 8 1 8 12 12 1 Char VarChar VarChar VarChar VarChar VarChar DateTime Char DateTime VarChar VarChar Boolean Yes Yes 2. Nama Entiti : Pelanggan Atribut Panjang Jenis Null MultiValue Derived KodePelanggan NamaPelanggan AlamatPengiriman KotaKirim KecamatanKirim KelurahanKirim AlamatTagih KotaTagih KecamatanTagih KelurahanTagih Telepon 10 50 100 30 30 30 100 30 30 30 12 Char VarChar VarChar VarChar VarChar VarChar VarChar VarChar VarChar VarChar VarChar

82 Fax 12 VarChar Yes StatusPelanggan 1 Boolean 3. Nama Entiti : Jabatan Atribut Panjang Jenis Null MultiValue Derived KodeJabatan NamaJabatan 6 30 Char VarChar 4. Nama Entiti : BP Atribut Panjang Jenis Null MultiValue Derived KodeBP Tanggal JenisPembayaran JmlPinjamGalon HargaPinjamGalon HariKirim StatusBP 10 8 1 - - 6 1 Char DateTime Char Integer Money VarChar Boolean Yes 5. Nama Entiti : PO Atribut Panjang Jenis Null MultiValue Derived KodePO Tanggal NamaBarang Qty 10 8 30 - Char DateTime VarChar Integer 6. Nama Entiti : BSTPJ Atribut Panjang Jenis Null MultiValue Derived KodeBSTPJ Tanggal NamaBarang 10 8 30 Char DateTime VarChar

83 Qty - Integer 7. Nama Entiti : BPBJ Atribut Panjang Jenis Null MultiValue Derived KodeBPBJ Tanggal NamaBarang Qty 10 8 30 - Char DateTime VarChar Integer 8. Nama Entiti : Barang Atribut Panjang Jenis Null MultiValue Derived KodeBarang NamaBarang Satuan Stok 6 30 30 - Char VarChar VarChar Integer 9. Nama Entiti : RKD Atribut Panjang Jenis Null MultiValue Derived KodeRKD Tanggal Keterangan 10 8 100 Char DateTime VarChar Yes 10. Nama Entiti : Kendaraan Atribut Panjang Jenis Null MultiValue Derived Polisi MerekMobil Tipe Tahun KapasitasStd StatusKendaraan 8 30 30 4-1 VarChar VarChar VarChar Integer Integer Boolean

84 11. Nama Entiti : SJ Atribut Panjang Jenis Null MultiValue Derived KodeSJ Tanggal NamaBarang Qty HargaSatuan Total 10 8 30 - - - Char DateTime VarChar Integer Integer Double 12. Nama Entiti : Penagihan Atribut Panjang Jenis Null MultiValue Derived KodePenagihan TglPenagihan TglJatuhTempo TglPembayaran Jumlah Disc Ppn TotalPenagihan StatusTagih 10 8 8 8 - - - - 1 Char DateTime DateTime DateTime Money Float Float Money Boolean Yes Yes 13. Nama Entiti : Cabang Atribut Panjang Jenis Null MultiValue Derived KodeCabang Alamat Telepon Fax 6 100 12 12 Char VarChar VarChar VarChar

85 14. Nama Entiti : Perusahaan Atribut Panjang Jenis Null MultiValue Derived NamaPerusahaan Alamat Telepon Fax 50 100 10 10 VarChar VarChar VarChar VarChar Tabel 3.3 Menentukan Atribut dan Tipe Entitas Menentukan Domain Atribut NamaAtribut KodePegawai JenisKelamin KodePelanggan Domain Atribut Terdiri dari 10 karakter dengan tipe Char, dengan cara penulisan : 3 karakter pertama diisi dengan kode PGW 2 karakter selanjutnya menunjukkan tahun masuk pegawai dengan range (00..99) 2 karakter selanjutnya menunjukkan bulan masuk pegawai dengan range (01..12) 3 karakter terakhir menunjukan urutan masuk pegawai pada tahun dan bulan yang sama dengan range (001..999) Contoh KodePegawai : PGW0801001, artinya pegawai masuk pada tahun 2008 bulan Januari dan merupakan orang pertama yang masuk pada tahun dan bulan tersebut. Terdiri dari 1 karakter dengan tipe Char, yang berisi nilai L untuk laki-laki atau P untuk perempuan. Terdiri dari 10 karakter dengan tipe Char, dengan cara penulisan : 3 karakter pertama diisi dengan kode PLG 2 karakter selanjutnya menunjukkan tahun masuk

86 KodeBP pegawai dengan range (00..99) 2 karakter selanjutnya menunjukkan bulan masuk pegawai dengan range (01..12) 3 karakter terakhir menunjukan urutan masuk pegawai pada tahun dan bulan yang sama dengan range (001..999) Contoh KodePegawai : PLG0801001, artinya pelanggan tersebut menjadi pelanggan tetap pada tahun 2008 bulan Januari dan merupakan orang pertama yang masuk pada tahun dan bulan tersebut. Terdiri dari 10 karakter dengan tipe Char, dengan cara penulisan : 2 karakter pertama menunjukkan jenis transaksi yaitu Pendaftaran dengan kode BP 2 karakter selanjutnya menunjukkan tahun dibuatnya KodeBP dengan range (00.99) 2 karakter selanjutnya menunjukkan bulan dibuatnya KodeBP dengan range (01..12) karakter terakhir menunjukkan urutan nomor KodeBP yang dibuat pada tahun dan bulan yang sama dengan range (0001..9999) Contoh KodeBP : JenisPembayaran KodePO BP08010001, artinya BP ini dibuat pada tahun 2008 bulan Januari dengan urutan pembuatan pertama pada tahun dan bulan tersebut. Terdiri dari 1 karakter dengan tipe Char, yang berisi nilai K untuk kredit atau L untuk lunas. Terdiri dari 10 karakter dengan tipe Char, dengan cara penulisan:

87 KodeBarang KodeRKD KodeRKD 2 karakter pertama menunjukan jenis transaksi, yaitu penjualan dengan KodePO 2 karakter selanjutnya menunjukkan tahun dibuatnya KodePO dengan range (00.99) 2 karakter selanjutnya menunjukkan bulan dibuatnya KodePO dengan range (01..12) karakter terakhir menunjukkan urutan nomor KodePO yang dibuat pada tahun dan bulan yang sama dengan range (0001..9999) Contoh KodePO : PO08010001, artinya PO ini dibuat pada tahun 2008 bulan Januari dengan urutan pembuatan ke 1 pada tahun dan bulan tersebut. Terdiri dari 6 karakter dengan tipe Char, dengan cara penulisan : 3 karakter pertama diisi dengan kode BRG 3 karakter terakhir menunjukkan urutan nomor KodeBarang dengan range (001..999) Contoh KodeBarang : BRG001 Terdiri dari 10 karakter dengan tipe Char, dengan cara penulisan : 2 karakter pertama menunjukkan jenis transaksi, yaitu RKD dengan kode RD 2 karakter selanjutnya menunjukkan tahun dibuatnya KodeRKD dengan range (00..99) 2 karakter selanjutnya menunjukkan bulan dibuatnya KodeRKD dengan range (01..12) karakter terakhir menunjukkan urutan nomor KodeRKD yang dibuat pada tahun dan bulan yang

88 KodeSJ KodePenagihan KodePenagihan sama dengan range (0001..9999) Contoh KodeRKD : RD08010001, artinya RKD ini dibuat pada tahun 2008 bulan Januari dengan urutan pembuatan ke 1 pada tahun dan bulan tersebut. Terdiri dari 10 karakter dengan tipe Char, dengan cara penulisan : 2 karakter pertama menunjukkan jenis transaksi yaitu SuratJalan, dengan kode SJ 2 karakter selanjutnya menunjukkan tahun dibuatnya KodeSJ dengan range (00..99) 2 karakter selanjutnya menunjukkan bulan dibuatnya KodeSJ dengan range (01..12) karakter terakhir menunjukkan urutan kodesj yang dibuat pada tahun dan bulan yang sama dengan range (0001..9999) Contoh KodeSJ : SJ08010001, artinya SJ ini dibuat pada tahun 2008 bulan Januari dengan urutan pembuatan ke 1 pada tahun dan bulan tersebut. Terdiri dari 10 karakter dengan tipe Char, dengan cara penulisan: 2 karakter pertama menunjukkan jenis transaksi yaitu penagihan, dengan kode PH 2 karakter selanjutnya menunjukkan tahun dibuatnya KodePenagihan dengan range (00..99) 2 karakter selanjutnya menunjukkan tahun dibuatnya KodePenagihan dengan range (01..12) karakter terakhir menunjukkan urutan KodePenagihan yang dibuat pada tahun dan bulan

89 KodeBSTPJ KodeBPBJ KodeBPBJ yang sama dengan range (0001..9999) Contoh KodePenagihan : PH08010001, artinya penagihan ini dibuat pada tahun 2008 bulan Januari dengan urutan pembuatan ke 1 pada tahun dan bulan tersebut Terdiri dari 10 karakter dengan tipe Char, dengan cara penulisan : 2 karakter pertama menunjukkan jenis transaksi yaitu Penerimaan barang, dengan kode TB 2 karakter selanjutnya menunjukkan tahun dibuatnya KodeBSTPJ dengan range (00..99) 2 karakter selanjutnya menunjukkan bulan dibuatnya KodeBSTPJ dengan range (01..12) karakter terakhir menunjukkan urutan KodeBSTPJ yang dibuat pada tahun dan bulan yang sama dengan range (0001..9999) Contoh KodeBSTPJ TB08010001, artinya BSTPJ ini dibuat pada tahun 2008 bulan Januari dengan urutan pembuatan ke 1 pada tahun dan bulan tersebut Terdiri dari 10 karakter dengan tipe Char, dengan cara penulisan : 2 karakter pertama menunjukkan jenis transaksi yaitu Pengeluaran Barang, dengan kode PB 2 karakter selanjutnya menunjukkan tahun dibuatnya KodeBPBJ dengan range (00..99) 2 karakter selanjutnya menunjukkan bulan dibuatnya KodeBPBJ dengan range (01..12) karakter terakhir menunjukkan urutan KodeBPBJ yang dibuat pada tahun dan bulan yang sama dengan

90 StatusTagih StatusPegawai StatusPelanggan StatusKendaraan KodeJabatan range (0001..9999) Contoh KodeBPBJ : PB08010001, artinya BPBJ ini dibuat pada tahun 2008 bulan Januari dengan urutan pembuatan ke 1 pada tahun dan bulan tersebut Terdiri dari 1 karakter dengan tipe Boolean, yang berisi nilai true (1) untuk lunas atau false (0) untuk belumlunas. Terdiri dari 1 karakter dengan tipe Boolean, yang berisi nilai true (1) untuk Aktif atau false (0) untuk tidakaktif. Terdiri dari 1 karakter dengan tipe Boolean, yang berisi nilai true (1) untuk Aktif atau false (0) untuk tidakaktif. Terdiri dari 1 karakter dengan tipe Boolean, yang berisi nilai true (1) untuk Tersedia atau false (0) untuk tidaktersedia. Terdiri dari 6 karakter dengan tipe Char, dengan cara penulisan : 3 karakter pertama diisi dengan kode JBT 3 karakter terakhir menunjukkan urutan nomor KodeJabatan dengan range(001..999) Contoh KodeJabatan : KodeCabang JBT001 Terdiri dari 6 karakter dengan tipe Char, dengan cara penulisan: 3 karakter pertama diisi dengan kode CBG 3 karakter selanjutnya menunjukkan urutan nomor KodeCabang dengan range (001..999) Contoh KodeCabang: CBG001 Tabel 3.4 Menentukan Domain Atribut

91 Menentukan Atribut Candidate dan Primary Key Entiti Candidate Key Primary Key Pegawai KodePegawai KodePegawai HP Pelanggan KodePelanggan KodePelanggan Telepon HP Jabatan KodeJabatan KodeJabatan NamaJabatan Barang KodeBarang KodeBarang NamaBarang BSTPJ KodeBSTPJ KodeBSTPJ BPBJ KodeBPBJ KodeBPBJ BP KodeBP KodeBP PO KodePO KodePO RKD KodeRKD KodeRKD Kendaraan Polisi Polisi SJ KodeSJ KodeSJ Penagihan KodePenagihan KodePenagihan Perusahaan NamaPerusahaan NamaPerusahaan Cabang KodeCabang KodeCabang Tabel 3.5 Menentukan Atribut Candidate dan PrimaryKey

Gambar 3.9 Diagram ER dengan Penambahan Primary Key 92

93 3.2.1.4 Mempertimbangkan untuk Penggunaan Konsep Pemodelan Enhanced Berdasarkan model ERD yang telah dihasilkan, maka penulis mempertimbangkan bahwa tidak perlu menggunakan EERD. 3.2.1.5 Mengecek Redundansi pada Model Berdasarkan model yang telah dihasilkan, tidak terdapat model yang redundansi. 3.2.1.6 Memvalidasi Model Konseptual Lokal dengan Transaksi Pengguna Data Query a) Tampilkan detail pegawai berdasarkan kode jabatan b) Tampilkan detail pelanggan berdasarkan hari pengiriman c) Tampilkan detail barang beserta harga untuk pelanggan tertentu d) Tampilkan nama pelanggan dan detail dari penagihan yang belum dibayar pada bulan dan tahun tertentu e) Tampilkan detail persediaan barang f) Tampilkan detail PO beserta detail Barang yang dipesan berdasarkan kode RKD tertentu g) Tampilkan detail SJ berdasarkan bulan dan kodepelanggan tertentu dari PO h) Tampilkan detail SJ berdasarkan kode penagihan tertentu i) Tampilkan detail barang berdasarkan kode BPBJ tertentu j) Tampilkan detail barang berdasarkan kode BSTPJ tertentu k) Tampilkan detail barang berdasarkan kode PO tertentu l) Tampilkan detail kendaraan yang diurut berdasarkan kapasitas standart terbesar

Gambar 3.10 Menggunakan Pathway untuk Memeriksa Bahwa Model Konseptual Mendukung Transaksi Query Data 94

95 3.2.2 Perancangan Basis Data Logikal Perancangan basis data logikal merupakan suatu proses pembuatan model dengan menggunakan informasi yang diperoleh dari perusahaan serta berdasarkan pada model data spesifik. 3.2.2.1 Menghilangkan Fitur Fitur yang Tidak Sesuai dengan Model Relasional 3.2.2.1.1 Menghilangkan many to many relationship Relasi Memiliki (BP - Barang) Gambar 3.11 Relasi many to many BP-Barang Gambar 3.12 Dekomposisi Relasi many to many BP-Barang Dilakukan identifikasi entiti baru BPDetail sehingga relasi memili diganti dengan dua relasi one-to-many (1:*). Relasi many-to-many (*:*) memiliki direpresentasikan sebagai BP memiliki BPDetail dan Barang Mempunyai BPDetail.

96 Relasi Menambah (BSTPJ-Barang) Gambar 3.13 Relasi many-to-many BSTPJ-Barang Gambar 3.14 Dekomposisi Relasi many-to-many BSTPJ-Barang Dilakukan identifikasi entity baru BSTPJDetail sehingga relasi Menambah diganti dengan dua relasi one-to-many (1:*). Relasi many-to-many (*:*) Menambah direpresentasikan sebagai BSTPJ Memiliki BSTPJDetail dan Barang Mempunyai BSTPJDetail. Relasi Memiliki (PO-Barang) Gambar 3.15 Relasi many-to-many PO-Barang

97 Gambar 3.16 Dekomposisi Relasi many-to-many PO-Barang Dilakukan identifikasi entiti baru PODetail sehingga relasi Memiliki diganti dengan dua relasi one-to-many (1:*). Relasi many-to-many (*:*) Memiliki direpresentasikan sebagai PO Memiliki PODetail dan Barang Mempunyai PODetail. Relasi Mengurangi (BPBJ-Barang) Gambar 3.17 Relasi many-to-many BPBJ-Barang Gambar 3.18 Dekomposisi Relasi many-to-many BPBJ-Barang Dilakukan identifikasi entity baru BPBJDetail sehingga relasi Mengurangi diganti dengan dua relasi one-to-many (1:*). Relasi many-to-many (*:*) Mengurangi direpresentasikan sebagai BPBJ Memiliki BPBJDetail dan Barang Mempunyai BPBJDetail.

98 Relasi Memiliki (SJ-Barang) Gambar 3.19 Relasi many-to-many SJ-Barang Gambar 3.20 Dekomposisi Relasi many-to-many SJ-Barang Dilakukan identifikasi entity baru SJDetail sehingga relasi Memiliki diganti dengan dua relasi one-to-many (1:*). Relasi many-to-many (*:*) Memiliki direpresentasikan sebagai SJ Memiliki SJDetail dan Barang Mempunyai SJDetail. 3.2.2.1.2 Menghilangkan atribut Multi-Valued Pada entiti BP Terdapat atribut multi-valued HariKirim

99 Gambar 3.21 Entiti BP dengan multi-valued Gambar 3.22 Dekomposisi Atribut HariKirim Menjadi Entiti JadwalKirim 3.2.2.2 Menurunkan Relasi untuk Model Data Logikal 1. Strong entity types Jabatan (KodeJabatan, NamaJabatan) Primary Key KodeJabatan Barang (KodeBarang, NamaBarang, Satuan, Stok) Primary Key KodeBarang Pegawai (KodePegawai, NamaPegawai, AlamatPegawai, Kota, Kecamatan, Kelurahan, TglLahir, JenisKelamin, TglMasukKerja, Telepon, HP, StatusPegawai) Primary Key KodePegawai Pelanggan (KodePelanggan, NamaPelanggan, Alamat Pengiriman, KotaKirim, KecamatanKirim, KelurahanKirim, AlamatPenagihan, KotaTagih, KecamatanTagih, KelurahanTagih,Telepon, StatusPelanggan) Primary Key KodePelanggan Kendaraan (Polisi, MerekMobil, Tipe, Tahun, KapasitasStd, StatusKendaraan) Primary Key Polisi BP (KodeBP, tgl, JenisPembayaran, JmlPinjamanGalon, HargaPinjamanGalon, StatusBP)

100 Primary Key KodeBP RKD (KodeRKD, tgl, keterangan) Primary Key KodeRKD PO (KodePO,tgl) Primary Key KodePO Penagihan (KodePenagihan, TglPenagihan, TglPembayaran, disc, ppn, StatusTagih) Primary Key KodePenagihan Derived Jumlah (Σ(SJ.totalDijual)), Derived tgljatuhtempo(dateadd(day,10,tglpenagihan)), Derived totalpenagihan ((jumlah (jumlah * disc)) + (jumlah (jumlah * disc)) * ppn) SJ (KodeSJ, tgl) Primary Key KodeSJ BPBJ (KodeBPBJ, tgl) Primary Key KodeBPBJ BSTPJ (KodeBSTPJ, tgl) Primary Key KodeBSTPJ Cabang (KodeCabang, AlamatCabang, Telepon) Primary Key KodeCabang Perusahaan (NamaPerusahaan, Alamat, Telepon, Fax) Primary Key NamaPerusahaan Tabel 3.6 Strong Entity Types 2. Weak Entity Types BPDetail Primary Key (HargaBarang, JmlDefaultKirim) belum ada (saat ini) BSTPJDetail (QtyMasuk) Primary Key belum ada (saat ini)

101 BPBJDetail Primary Key SJDetail Primary Key Derived PODetail Primary Key (QtyDiberikan, QtySisaBarang, Keterangan) belum ada (saat ini) (QtyDijual, Keterangan) belum ada (saat ini) JumlahDijual (QtyDijual*PODetail.HargaBarang) (qtydiminta) belum ada (saat ini) Tabel 3.7 Weak Entity Types 3. One-to-many (1:*) binary relationship types Perusahaan Memiliki Cabang Perusahaan (NamaPerusahaan, Alamat, Telepon, Fax) Primary Key NamaPerusahaan Perusahaan Memiliki Pegawai Cabang Memiliki Pegawai Jabatan Memiliki Pegawai Perusahaan (NamaPerusahaan, Alamat, Telepon, Fax) Primary Key NamaPerusahaan Cabang ( KodeCabang, AlamatCabang, Telepon, NamaPerusahaan) Primary Key KodeCabang Cabang ( KodeCabang, AlamatCabang, Telepon, NamaPerusahaan) Primary Key KodeCabang Foreign Key NamaPerusahaan references Perusahaan(NamaPerusahaan) Pegawai (KodePegawai, NamaPegawai, AlamatPegawai, Kota,, Kecamatan, Kelurahan, TglLahir, JenisKelamin, TglMasukKerja, Telepon,

102 Foreign Key NamaPerusahaan references Perusahaan(NamaPerusahaan) Jabatan (KodeJabatan, NamaJabatan) Primary Key KodeJabatan Kendaraan Digunakan RKD Pegawai Menangangi RKD Pegawai Menangangi RKD Kendaraan (Polisi, MerekMobil, Tipe, Tahun, KapasitasStd, StatusKendaraan) Primary Key Polisi Pegawai (KodePegawai, NamaPegawai, AlamatPegawai, Kota, Kecamatan, Kelurahan, TglLahir, JenisKelamin, TglMasukKerja, Telepon, HP, StatusPegawai, NamaPerusahaan, KodeCabang, KodeJabatan) Primary Key KodePegawai Foreign Key NamaPerusahaan references Perusahaan(NamaPerusahaan) Foreign Key KodeCabang references Cabang(KodeCabang) HP, StatusPegawai, NamaPerusahaan, KodeCabang, KodeJabatan) Primary Key KodePegawai Foreign Key NamaPerusahaan references Perusahaan(NamaPerusahaan ) Foreign Key KodeCabang references Cabang(KodeCabang) Foreign Key KodeJabatan references Jabatan(KodeJabatan) RKD (KodeRKD, tgl, keterangan, Polisi, KodePegawai, KodeDriver) Primary Key KodeRKD Foreign Key Polisi references Kendaraan(Polisi) Foreign Key KodePegawai references Pegawai(KodePegawai) Foreign Key KodeDriver references Pegawai(KodePegawai)

103 Foreign Key KodeJabatan references Jabatan(KodeJabatan) Pegawai Menangani Penagihan Pegawai (KodePegawai, NamaPegawai, AlamatPegawai, Kota, Kecamatan, Kelurahan, TglLahir, JenisKelamin, TglMasukKerja, Telepon, HP, StatusPegawai, NamaPerusahaan, KodeCabang, KodeJabatan) Primary Key KodePegawai Foreign Key NamaPerusahaan references Perusahaan(NamaPerusahaan) Foreign Key KodeCabang references Cabang(KodeCabang) Foreign Key KodeJabatan references Jabatan(KodeJabatan) Pegawai Menangani BPBJ Pegawai (KodePegawai, NamaPegawai, AlamatPegawai, Kota, Kecamatan, Kelurahan, TglLahir, JenisKelamin, TglMasukKerja, Telepon, HP, StatusPegawai, NamaPerusahaan, KodeCabang, KodeJabatan) Primary Key KodePegawai Foreign Key NamaPerusahaan references Perusahaan(NamaPerusahaan) Penagihan (KodePenagihan, TglPenagihan, TglPembayaran, disc, ppn, StatusTagih, KodePegawai, KodeDriver) Primary Key KodePenagihan Derived Jumlah (Σ(SJ.totalDijual)), Derived tgljatuhtempo (dateadd (day,10,tglpenagihan)), Derived totalpenagihan ((jumlah (jumlah * disc)) + (jumlah (jumlah * disc)) * ppn) Foreign Key KodePegawai references Pegawai(KodePegawai) Foreign Key KodeDriver references Pegawai(KodePegawai) BPBJ (KodeBPBJ, tgl, KodePegawai) Primary Key KodeBPBJ Foreign Key KodePegawai references Pegawai(KodePegawai)

104 Foreign Key KodeCabang references Cabang(KodeCabang) Foreign Key KodeJabatan references Jabatan(KodeJabatan) Pegawai Menangani BP Pelanggan Memiliki BP Pegawai (KodePegawai, NamaPegawai, AlamatPegawai, Kota, Kecamatan, Kelurahan, TglLahir, JenisKelamin, TglMasukKerja, Telepon, HP, StatusPegawai, NamaPerusahaan, KodeCabang, KodeJabatan) Primary Key KodePegawai Foreign Key NamaPerusahaan references Perusahaan(NamaPerusahaan) Foreign Key KodeCabang references Cabang(KodeCabang) Foreign Key KodeJabatan references Jabatan(KodeJabatan) Pelanggan (KodePelanggan, NamaPelanggan, Alamat Pengiriman, KotaKirim, KecamatanKirim, KelurahanKirim, AlamatPenagihan, KotaTagih, KecamatanTagih, KelurahanTagih, Telepon, StatusPelanggan) Primary Key KodePelanggan BP Memiliki JadwalKirim BP Primary Key KodeBP Foreign Key Foreign Key (KodeBP, tgl, JenisPembayaran, JmlPinjamanGalon, HargaPinjamanGalon, StatusBP, KodePegawai, KodePelanggan) KodePegawai references Pegawai(KodePegawai) KodePelanggan references Pelanggan(KodePelanggan)

105 BP (KodeBP, tgl, JenisPembayaran, JmlPinjamanGalon, HargaPinjamanGalon, StatusBP, KodePegawai, KodePelanggan) Primary Key KodeBP Foreign Key KodePegawai references Pegawai (KodePegawai) Foreign Key KodePelanggan references Pelanggan (KodePelanggan) Pegawai Menangani PO RKD Memiliki PO BP Memiliki PO Pegawai (KodePegawai, NamaPegawai, AlamatPegawai, Kota, Kecamatan, Kelurahan, TglLahir, JenisKelamin, TglMasukKerja, Telepon, HP, StatusPegawai, NamaPerusahaan, KodeCabang, KodeJabatan) Primary Key KodePegawai Foreign Key NamaPerusahaan references Perusahaan(NamaPerusahaan) Foreign Key KodeCabang references Cabang(KodeCabang) Foreign Key KodeJabatan references Jabatan(KodeJabatan) RKD (KodeRKD, tgl, keterangan, Polisi, KodePegawai, KodeDriver) JadwalKirim (HariKirim, KodeBP) Primary Key HariKirim,KodeBP ForeignKey KodeBP references BP(KodeBP) PO (KodePO,tgl, KodePegawai, KodeRKD, KodeBP) Primary Key KodePO Foreign Key KodePegawai references Pegawai(KodePegawai) Foreign Key KodeRKD references RKD(KodeRKD) Foreign Key KodeBP references BP(KodeBP)

106 Primary Key KodeRKD Foreign Key Polisi references Kendaraan(Polisi) Foreign Key KodePegawai references Pegawai (KodePegawai) Foreign Key KodeDriver references Pegawai(KodePegawai) BP (KodeBP, tgl, JenisPembayaran, JmlPinjamanGalon, HargaPinjamanGalon, StatusBP, KodePegawai, KodePelanggan) Primary Key KodeBP Foreign Key KodePegawai references Pegawai (KodePegawai) Foreign Key KodePelanggan references Pelanggan (KodePelanggan) Pegawai Menangani BSTPJ Pegawai (KodePegawai, NamaPegawai, AlamatPegawai, Kota, Kecamatan, Kelurahan, TglLahir, JenisKelamin, TglMasukKerja, Telepon, HP, StatusPegawai, NamaPerusahaan, KodeCabang, KodeJabatan) Primary Key KodePegawai Foreign Key NamaPerusahaan references Perusahaan(NamaPerusahaan) Foreign Key KodeCabang references Cabang(KodeCabang) BSTPJ (KodeBSTPJ, tgl, KodePegawai) Primary Key KodeBSTPJ Foreign Key KodePegawai references Pegawai(KodePegawai)

107 Foreign Key KodeJabatan references Jabatan(KodeJabatan) Pegawai Menangani SJ Penagihan Berdasarkan SJ Pegawai (KodePegawai, NamaPegawai, AlamatPegawai, Kota, Kecamatan, Kelurahan, TglLahir, JenisKelamin, TglMasukKerja, Telepon, HP, StatusPegawai, NamaPerusahaan, KodeCabang, KodeJabatan) Primary Key KodePegawai Foreign Key NamaPerusahaan references Perusahaan(NamaPerusahaan) Foreign Key KodeCabang references Cabang(KodeCabang) Foreign Key KodeJabatan references Jabatan(KodeJabatan) Penagihan (KodePenagihan, TglPenagihan, TglPembayaran, disc, ppn, StatusTagih, KodePegawai) Primary Key KodePenagihan Derived Jumlah (Σ(SJ.totalDijual)), Derived tgljatuhtempo (dateadd (day,10,tglpenagihan)), Derived totalpenagihan ((jumlah (jumlah * disc)) + (jumlah (jumlah * disc)) * ppn) Foreign Key KodePegawai references SJ Primary Key KodeSJ Foreign Key Foreign Key (KodeSJ, tgl, KodePegawai, KodePenagihan) KodePegawai references Pegawai(KodePegawai) KodePenagihan references Penagihan(KodePenagihan)

108 Pegawai (KodePegawai) Cabang Memiliki Barang Perusahaan Memiliki Barang Perusahaan (NamaPerusahaan, Alamat, Telepon, Fax) Primary Key NamaPerusahaan Cabang ( KodeCabang, AlamatCabang, Telepon, NamaPerusahaan) Primary Key KodeCabang Foreign Key NamaPerusahaan references Perusahaan(NamaPerusahaan) BP Memiliki BPDetail Barang Mempunyai BPDetail BP (KodeBP, tgl, JenisPembayaran, JmlPinjamanGalon, HargaPinjamanGalon, StatusBP, KodePegawai, KodePelanggan) Primary Key KodeBP Foreign Key KodePegawai references Pegawai (KodePegawai) Foreign Key KodePelanggan references Pelanggan (KodePelanggan) Barang (KodeBarang, NamaBarang, Satuan, Stok, KodeCabang, NamaPerusahaan ) Primary Key KodeBarang Foreign Key KodeCabang references Cabang(KodeCabang) Foreign Key NamaPerusahaan references Barang Primary Key Foreign Key Foreign Key BPDetail Primary Key Foreign Key Foreign Key (KodeBarang, NamaBarang, Satuan, Stok, KodeCabang, NamaPerusahaan ) KodeBarang KodeCabang references Cabang(KodeCabang) NamaPerusahaan references Perusahaan(NamaPerusahaa n) (KodeBP, KodeBarang, HargaBarang, JmlDefaultKirim) KodeBP, KodeBarang KodeBP references BP(KodeBP) KodeBarang references Barang(KodeBarang)

109 Perusahaan (NamaPerusahaan) BSTPJ Memiliki BSTPJDetail Barang Mempunyai BSTPJDetail BSTPJ (KodeBSTPJ, tgl, KodePegawai) Primary Key KodeBSTPJ Foreign Key KodePegawai references Pegawai (KodePegawai) Barang (KodeBarang, NamaBarang, Satuan, Stok, KodeCabang, NamaPerusahaan ) Primary Key KodeBarang Foreign Key KodeCabang references Cabang (KodeCabang) Foreign Key NamaPerusahaan references Perusahaan (NamaPerusahaan) PO Memiliki PODetail Barang Mempunyai PODetail PO (KodePO,tgl, KodePegawai, KodeRKD, KodeBP) Primary Key KodePO Foreign Key KodePegawai references Pegawai (KodePegawai) Foreign Key KodeRKD references RKD(KodeRKD) Foreign Key KodeBP references BP(KodeBP) Barang (KodeBarang, NamaBarang, Satuan, Stok, KodeCabang, NamaPerusahaan ) BSTPJDetail Primary Key Foreign Key Foreign Key PODetail Primary Key Foreign Key Foreign Key (KodeBSTPJ, KodeBarang, QtyMasuk) KodeBSTPJ, KodeBarang KodeBSTPJ references BSTPJ(KodeBSTPJ) KodeBarang references Barang(KodeBarang) (KodePO, KodeBarang, qtydiminta) KodePO, KodeBarang KodePO references PO(KodePO) KodeBarang references Barang(KodeBarang)

110 Primary Key Foreign Key Foreign Key KodeBarang KodeCabang references Cabang(KodeCabang) NamaPerusahaan references Perusahaan (NamaPerusahaan) BPBJ Memiliki BPBJDetail Barang Mempunyai BPBJDetail BPBJ (KodeBPBJ, tgl, KodePegawai) Primary Key KodeBPBJ Foreign Key KodePegawai references Pegawai (KodePegawai) Barang (KodeBarang, NamaBarang, Satuan, Stok, KodeCabang, NamaPerusahaan ) Primary Key KodeBarang Foreign Key KodeCabang references Cabang (KodeCabang) Foreign Key NamaPerusahaan references Perusahaan (NamaPerusahaan) SJ Memiliki SJDetail BPBJDetail (KodeBPBJ, KodeBarang, QtyDiberikan, QtySisaBarang, Keterangan) Primary Key KodeBPBJ, KodeBarang Foreign Key KodeBPBJ references BPBJ(KodeBPBJ) Foreign Key KodeBarang references Barang(KodeBarang) Barang Mempunyai SJDetail SJ (KodeSJ, tgl, KodePegawai, KodePenagihan) Primary Key KodeSJ Foreign Key KodePegawai references Pegawai (KodePegawai) Foreign Key KodePenagihan references Penagihan (KodePenagihan) Barang (KodeBarang, NamaBarang, Satuan, Stok, KodeCabang, SJDetail (KodeSJ, KodeBarang, QtyDijual, Keterangan) Primary Key KodeSJ, KodeBarang Foreign Key KodeSJ references SJ(KodeSJ) Foreign Key KodeBarang references Barang(KodeBarang) Derived JumlahDijual

111 Primary Key Foreign Key Foreign Key NamaPerusahaan ) KodeBarang KodeCabang references Cabang (KodeCabang) NamaPerusahaan references Perusahaan (NamaPerusahaan) (QtyDijual*PODetail.Harga Barang) Tabel 3.8 One-to-many (1:*) binary relationship types 4. One-to-one (1:1) binary relationship types RKD Menghasilkan BPBJ RKD (KodeRKD, tgl, keterangan, Polisi, KodePegawai, KodeDriver) Primary Key KodeRKD Foreign Key Polisi references Kendaraan(Polisi) Foreign Key KodePegawai references Pegawai (KodePegawai) Foreign Key KodeDriver references Pegawai(KodePegawai) PO Memiliki SJ PO (KodePO,tgl, KodePegawai, KodeRKD, KodeBP) Primary Key KodePO Foreign Key KodePegawai references Pegawai (KodePegawai) Foreign Key KodeRKD references RKD(KodeRKD) Foreign Key KodeBP references BP(KodeBP) BPBJ (KodeBPBJ, tgl, KodePegawai, KodeRKD) Primary Key KodeBPBJ Foreign Key KodePegawai references Pegawai (KodePegawai) Foreign Key KodeRKD references RKD (KodeRKD) SJ (KodeSJ, tgl, KodePegawai, KodePenagihan, KodePO) Primary Key KodeSJ Foreign Key KodePegawai references Pegawai (KodePegawai) Foreign Key KodePenagihan references Penagihan (KodePenagihan) Foreign Key KodePO references PO

112 (KodePO) Tabel 3.9 One-to-one (1:1) binary relationship types 5. Dokumentasi relasi dan atribut Foreign Key Perusahaan (NamaPerusahaan, Alamat, Telepon, Fax) Primary Key NamaPerusahaan Pegawai (KodePegawai, NamaPegawai, AlamatPegawai, Kota, Kecamatan, Kelurahan, TglLahir, JenisKelamin, TglMasukKerja, Telepon, HP, StatusPegawai, NamaPerusahaan, KodeCabang, KodeJabatan) Primary Key KodePegawai Foreign Key NamaPerusahaan references Perusahaan (NamaPerusahaan) Foreign Key KodeCabang references Cabang(KodeCabang) Foreign Key KodeJabatan references Cabang ( KodeCabang, AlamatCabang, Telepon, NamaPerusahaan) Primary Key KodeCabang Foreign Key NamaPerusahaan references Perusahaan (NamaPerusahaan) Pelanggan (KodePelanggan, NamaPelanggan, Alamat Pengiriman, KotaKirim, KecamatanKirim, KelurahanKirim, AlamatPenagihan, KotaTagih, KecamatanTagih, KelurahanTagih, Telepon, StatusPelanggan) Primary Key KodePelanggan

113 Jabatan(KodeJabatan) Jabatan (KodeJabatan, NamaJabatan) Primary Key KodeJabatan Penagihan (KodePenagihan, TglPenagihan, TglPembayaran, disc, ppn, StatusTagih, KodePegawai, KodeDriver) Primary Key KodePenagihan Derived Jumlah (Σ(SJ.totalDijual)), Derived tgljatuhtempo (dateadd (day,10,tglpenagihan)), Derived totalpenagihan ((jumlah (jumlah * disc)) + (jumlah (jumlah * disc)) * ppn) Foreign Key KodePegawai references Pegawai(KodePegawai) Foreign Key KodeDriver references Pegawai(KodePegawai) BP (KodeBP, tgl, JenisPembayaran, JmlPinjamanGalon, HargaPinjamanGalon, StatusBP, KodePegawai, KodePelanggan) Primary Key KodeBP Foreign Key KodePegawai references Pegawai (KodePegawai) Kendaraan (Polisi, MerekMobil, Tipe, Tahun, KapasitasStd, StatusKendaraan) Primary Key Polisi RKD (KodeRKD, tgl, keterangan, Polisi, KodePegawai, KodeDriver) Primary Key KodeRKD Foreign Key Polisi references Kendaraan(Polisi) Foreign Key KodePegawai references Pegawai (KodePegawai) Foreign Key KodeDriver references Pegawai(KodePegawai) BPDetail (KodeBP, KodeBarang, HargaBarang, JmlDefaultKirim) Primary Key KodeBP, KodeBarang Foreign Key KodeBP references BP(KodeBP) Foreign Key KodeBarang references Barang(KodeBarang)

114 Foreign Key KodePelanggan references Pelanggan (KodePelanggan) JadwalKirim (HariKirim, KodeBP) Primary Key HariKirim,KodeBP ForeignKey KodeBP references BP(KodeBP) BSTPJ (KodeBSTPJ, tgl, KodePegawai) Primary Key KodeBSTPJ Foreign Key KodePegawai references Pegawai (KodePegawai) PO (KodePO,tgl, KodePegawai, KodeRKD, KodeBP) Primary Key KodePO Foreign Key KodePegawai references Pegawai (KodePegawai) Foreign Key KodeRKD references RKD(KodeRKD) Barang Primary Key Foreign Key Foreign Key BSTPJDetail Primary Key Foreign Key Foreign Key PODetail Primary Key Foreign Key Foreign Key (KodeBarang, NamaBarang, Satuan, Stok, KodeCabang, NamaPerusahaan ) KodeBarang KodeCabang references Cabang(KodeCabang) NamaPerusahaan references Perusahaan(NamaPerusaha an) (KodeBSTPJ, KodeBarang, QtyMasuk) KodeBSTPJ, KodeBarang KodeBSTPJ references BSTPJ(KodeBSTPJ) KodeBarang references Barang(KodeBarang) (KodePO, KodeBarang, qtydiminta) KodePO, KodeBarang KodePO references PO(KodePO) KodeBarang references Barang(KodeBarang)

115 Foreign Key KodeBP references BP(KodeBP) BPBJ (KodeBPBJ, tgl, KodePegawai, KodeRKD) Primary Key KodeBPBJ Foreign Key KodePegawai references Pegawai (KodePegawai) Foreign Key KodeRKD references RKD (KodeRKD) SJ (KodeSJ, tgl, KodePegawai, KodePenagihan, KodePO) Primary Key KodeSJ Foreign Key KodePegawai references Pegawai (KodePegawai) Foreign Key KodePenagihan references Penagihan (KodePenagihan) Foreign Key KodePO references PO (KodePO) BPBJDetail (KodeBPBJ, KodeBarang, QtyDiberikan, QtySisaBarang, Keterangan) Primary Key KodeBPBJ, KodeBarang Foreign Key KodeBPBJ references BPBJ(KodeBPBJ) Foreign Key KodeBarang references Barang(KodeBarang) SJDetail (KodeSJ, KodeBarang, QtyDijual, Keterangan) Primary Key KodeSJ, KodeBarang Foreign Key Foreign Key Derived KodeSJ references SJ(KodeSJ) KodeBarang references Barang(KodeBarang) JumlahDijual (QtyDijual*PODetail.Harg abarang) Tabel 3.10 Dokumentasi Relasi dan Atribut Foreign Key 3.2.2.3 Validasi Relasi Dengan rmalisasi Berikut ini adalah daftar relasi relasi yang ada:

116 1. Perusahaan Relasi Perusahaan telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif 2. Cabang Relasi Cabang telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif 3. Jabatan Relasi Jabatan telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif 4. Barang Relasi Barang telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif 5. Kota Relasi Kota telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif

117 6. Kecamatan Relasi Kecamatan telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif 7. Kelurahan Relasi Kelurahan telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif 8. Pegawai Relasi Pegawai masih perlu dilakukan normalisasi karena masih terdapat kebergantungan transitif antara atribut kelurahan dengan atribut kota dan kecamatan. UNF : Pegawai (KodePegawai, NamaPegawai, AlamatPegawai, Kota, Kecamatan, Kelurahan, TglLahir, JenisKelamin, TglMasukKerja, KodeJabatan, Telepon, HP, StatusPegawai) 1NF : Pegawai (KodePegawai, NamaPegawai, AlamatPegawai, Kota, Kecamatan, Kelurahan, TglLahir, JenisKelamin, TglMasukKerja, KodeJabatan, Telepon, HP, StatusPegawai)

118 Primary Key kodepegawai 2NF : Pegawai (kodepegawai, namapegawai, alamatpegawai, kota, kecamatan, kelurahan, tgllahir, jeniskelamin, tglmasukkerja, kodejabatan, KodeCabang, notelepon, nohp, statuspegawai) Primary Key kodepegawai 3NF : KodePegawai... Kota Kecamatan Kelurahan... PGW0801001 Jakarta Kebon Jeruk Duri Kepa PGW0801002 Jakarta Cempaka Putih Cempaka Putih Barat PGW0801003 Jakarta Cengkareng Kapuk PGW0801004 Jakarta Cakung Jatinegara PGW0801005 Jakarta Kebon Jeruk Kelapa Dua PGW0801006 Jakarta Kebon Jeruk Kedoya Utara Tabel 3.11 Representasi Data Tabel Pegawai Sebelum dilakukan rmalisasi Pegawai (kodepegawai, namapegawai, alamatpegawai, kodekel, tgllahir, jeniskelamin, tglmasukkerja, kodejabatan, KodeCabang, notelepon, nohp, statuspegawai ) Primary Key kodepegawai Foreign Key kodekel references Kelurahan(kodeKel) Kelurahan (kodekel, namakel, kodekec, kodekota)

119 Primary Key kodekel Foreign Key kodekec references Kecamatan(kodeKec) Foreign Key kodekota references Kota(kodeKota) Kecamatan (kodekec, namakec) Primary Key kodekec Kota (kodekota, namakota) Primary Key kodekota 9. Pelanggan Relasi Pegawai masih perlu dilakukan normalisasi karena masih terdapat kebergantungan transitif antara atribut kelurahan dengan atribut kota dan kecamatan. UNF Pelanggan (kodepelanggan, namapelanggan, alamatpengiriman, kotakirim, KecamatanKirim, Kelurahan Kirim, alamatpenagihan, kotatagih, KecamatanTagih, KelurahanTagih, Telepon, statuspelanggan) 1NF Pelanggan (kodepelanggan, namapelanggan, alamatpengiriman, kotakirim, KecamatanKirim, KelurahanKirim, alamatpenagihan, kotatagih, KecamatanTagih, KelurahanTagih, Telepon, statuspelanggan)

120 Primary Key kodepelanggan 2NF Pelanggan (kodepelanggan, namapelanggan, alamatpengiriman, kotakirim, KecamatanKirim, KelurahanKirim, alamatpenagihan, kotatagih, KecamatanTagih, Kelurahan Tagih, Telepon, statuspelanggan) Primary Key kodepelanggan

121 3NF KodePelanggan... Kota... Kota Kelurahan Kecamatan KecamatanKirim KelurahanKirim Kirim Tagih Tagih Tagih PLG0801001 Jakarta Kebon Jeruk Duri Kepa Jakarta Kebon Jeruk Duri Kepa PLG0801002 Jakarta Cempaka Putih Cempaka Putih Barat Jakarta Cempaka Cempaka Putih Barat Putih PLG0801003 Jakarta Cengkareng Kapuk Jakarta Cengkareng Kapuk PLG0801004 Jakarta Cakung Jatinegara Jakarta Cakung Jatinegara PLG0801005 Jakarta Cengkareng Duri Kosambi Jakarta Cengkareng Duri Kosambi PLG0801006 Jakarta Cengkareng Cengkareng Barat Jakarta Cengkareng Cengkareng Barat Tabel 3.12 Representasi Data Tabel Pelanggan Sebelum dilakukan rmalisasi

122 Pelanggan (kodepelanggan, namapelanggan, alamatpengiriman, kodekelurahankirim, alamatpenagihan, kodekelurahantagih, Telepon, statuspelanggan) Primary Key kodepelanggan Foreign Key kodekelurahankirim references Kelurahan(kodeKel) Foreign Key kodekelurahantagih references Kelurahan(kodeKel) Kelurahan (kodekel, namakel, kodekec, kodekota) Primary Key kodekel Foreign Key kodekec references Kecamatan(kodeKec) Foreign Key kodekota references Kota(kodeKota) Kecamatan (kodekec, namakec) Primary Key kodekec Kota (kodekota, namakota Primary Key kodekota 10. Kendaraan Relasi Kendaraan telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif

123 11. BP Relasi BP telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif 12. BPDetail Relasi BPDetail telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif 13. JadwalKirim Relasi JadwalKirim telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif 14. RKD Relasi RKD telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif 15. PO Relasi PO telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif

124 16. PODetail Relasi PODetail telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif 17. Penagihan Relasi Penagihan telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif 18. SJ Relasi SJ telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif 19. SJDetail Relasi SJDetail telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif 20. BPBJ Relasi BPBJ telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif

125 21. BPBJDetail Relasi BPBJDetail telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif 22. BSTPJ Relasi BSTPJ telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif 23. BSTPJDetail Relasi BSTPJDetail telah memenuhi syarat syarat normalisasi karena tidak ada atribut bernilai jamak, tidak ada kebergantungan parsial, dan tidak ada kebergantungan transitif 3.2.2.4 Definisi Integrity Constraint 3.2.2.4.1 Entity Integrity Sebuah Primary Key dari sebuah entiti tidak boleh mengandung nilai null. Pada sub-bab 3.2.1.3 telah disinggung beberapa entiti yang Primary Key-nya tidak boleh bernilai null. Berikut adalah tabel dari entiti yang ditambahkan setelah melalui beberapa proses beserta dengan primary key yang tidak boleh bernilai null.

126 Entiti Kota Kecamatan Kelurahan JadwalKirim BPDetail SJDetail PODetail BPBJDetail BSTPJDetail Primary Key KodeKota KodeKec KodeKel HariKirim, KodeBP KodeBP, KodeBarang KodeSJ, KodeBarang KodePO, KodeBarang KodeBPBJ, KodeBarang KodeBSTPJ, KodeBarang Tabel 3.13 Entiti beserta Primary Key 3.2.2.4.2 Referential Integrity Jabatan (KodeJabatan, NamaJabatan) Primary Key KodeJabatan Kendaraan (Polisi, MerekMobil, Tipe, Tahun, KapasitasStd, StatusKendaraan) Primary Key Polisi Kota (KodeKota, NamaKota) Primary Key KodeKota Kecamatan (KodeKec, NamaKec) Primary Key KodeKec Kelurahan (KodeKel, NamaKel, KodeKec, KodeKota) Primary Key KodeKel Foreign Key KodeKec references Kecamatan(KodeKec) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KodeKota references Kota(KodeKota) ON UPDATE CASCADE ON DELETE CASCADE Perusahaan (NamaPerusahaan, Alamat, Telepon, Fax) Primary Key NamaPerusahaan Cabang ( KodeCabang, AlamatCabang, Telepon, NamaPerusahaan)

127 Primary Key KodeCabang Foreign Key NamaPerusahaan references Perusahaan (NamaPerusahaan) ON UPDATE CASCADE ON DELETE CASCADE Pegawai (KodePegawai, NamaPegawai, AlamatPegawai, KodeKel, TglLahir, JenisKelamin, TglMasukKerja, Telepon, HP, StatusPegawai, NamaPerusahaan, KodeCabang, KodeJabatan) Primary Key KodePegawai Foreign Key NamaPerusahaan references Perusahaan (NamaPerusahaan) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KodeCabang references Cabang(KodeCabang) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KodeJabatan references Jabatan(KodeJabatan) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KodeKel references Kelurahan(KodeKel) ON UPDATE CASCADE ON DELETE CASCADE Pelanggan (KodePelanggan, NamaPelanggan, Alamat Pengiriman, KodeKelKirim, AlamatPenagihan, KodeKelTagih, Telepon, StatusPelanggan) Primary Key KodePelanggan Foreign Key KodeKel references Kelurahan(KodeKel) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KodeKel references Kelurahan(KodeKel) ON UPDATE CASCADE ON DELETE CASCADE Penagihan (KodePenagihan, TglPenagihan, TglPembayaran, disc, ppn, StatusTagih, KodePegawai, KodeDriver) Primary Key KodePenagihan Derived Jumlah (Σ(SJ.totalDijual)), Derived tgljatuhtempo (dateadd (day,10,tglpenagihan)), Derived totalpenagihan ((jumlah (jumlah * disc)) + (jumlah (jumlah * disc)) * ppn) Foreign Key KodePegawai references Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION

128 Foreign Key KodeDriver references Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION RKD (KodeRKD, tgl, keterangan, Polisi, KodePegawai) Primary Key KodeRKD Foreign Key Polisi references Kendaraan(Polisi) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KodePegawai references Pegawai (KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KodeDriver references Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION BP (KodeBP, tgl, JenisPembayaran, JmlPinjamanGalon, HargaPinjamanGalon, StatusBP, KodePegawai, KodePelanggan) Primary Key KodeBP Foreign Key KodePegawai references Pegawai (KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KodePelanggan references Pelanggan (KodePelanggan) ON UPDATE CASCADE ON DELETE NO ACTION BPDetail (KodeBP, KodeBarang, HargaBarang, JmlDefaultKirim) Primary Key KodeBP, KodeBarang Foreign Key KodeBP references BP(KodeBP) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KodeBarang references Barang(KodeBarang) ON UPDATE CASCADE ON DELETE NO ACTION JadwalKirim (HariKirim, KodeBP) Primary Key HariKirim,KodeBP ForeignKey KodeBP references BP(KodeBP) ON UPDATE CASCADE ON DELETE CASCADE Barang (KodeBarang, NamaBarang, Satuan, Stok, KodeCabang, NamaPerusahaan ) Primary Key KodeBarang Foreign Key KodeCabang references Cabang(KodeCabang) ON UPDATE

129 CASCADE ON DELETE NO ACTION Foreign Key NamaPerusahaan references Perusahaan(NamaPerusahaan) ON UPDATE CASCADE ON DELETE NO ACTION BSTPJ (KodeBSTPJ, tgl, KodePegawai) Primary Key KodeBSTPJ Foreign Key KodePegawai references Pegawai (KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION BSTPJDetail (KodeBSTPJ, KodeBarang, QtyMasuk) Primary Key KodeBSTPJ, KodeBarang Foreign Key KodeBSTPJ references BSTPJ(KodeBSTPJ) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KodeBarang references Barang(KodeBarang) ON UPDATE CASCADE ON DELETE NO ACTION PO (KodePO,tgl, KodePegawai, KodeRKD, KodeBP) Primary Key KodePO Foreign Key KodePegawai references Pegawai (KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KodeRKD references RKD(KodeRKD) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key PODetail Primary Key KodeBP references BP(KodeBP) ON UPDATE CASCADE ON DELETE NO ACTION (KodePO, KodeBarang, qtydiminta) KodePO, KodeBarang Foreign Key KodePO references PO(KodePO) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KodeBarang references Barang(KodeBarang) ON UPDATE CASCADE ON DELETE NO ACTION BPBJ (KodeBPBJ, tgl, KodePegawai, KodeRKD) Primary Key KodeBPBJ

130 Foreign Key Foreign Key BPBJDetail KodePegawai references Pegawai (KodePegawai) KodeRKD references RKD (KodeRKD) ON UPDATE CASCADE ON DELETE NO ACTION (KodeBPBJ, KodeBarang, QtyDiberikan, QtySisaBarang, Keterangan) Primary Key KodeBPBJ, KodeBarang Foreign Key KodeBPBJ references BPBJ(KodeBPBJ) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KodeBarang references Barang(KodeBarang) ON UPDATE CASCADE ON DELETE NO ACTION SJ (KodeSJ, tgl, KodePegawai, KodePenagihan, KodePO) Primary Key KodeSJ Foreign Key KodePegawai references Pegawai (KodePegawai) Foreign Key KodePenagihan references Penagihan (KodePenagihan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key SJDetail KodePO references PO (KodePO) ON UPDATE CASCADE ON DELETE NO ACTION (KodeSJ, KodeBarang, QtyDijual, Keterangan) Primary Key KodeSJ, KodeBarang Foreign Key Foreign Key Derived KodeSJ references SJ(KodeSJ) ON UPDATE CASCADE ON DELETE CASCADE KodeBarang references Barang(KodeBarang) ON UPDATE CASCADE ON DELETE NO ACTION JumlahDijual (QtyDijual*PODetail.HargaBarang) Tabel 3.14 Mendefinisikan Integrity Constraints

Gambar 3.23 Diagram ER dengan Penambahan Primary Key dan Foreign Key 131

132 3.2.2.5 Meninjau Model Data Logikal Lokal dengan Pengguna Data Query a) Tampilkan detail pegawai berdasarkan kode jabatan b) Tampilkan detail pelanggan berdasarkan hari pengiriman c) Tampilkan detail barang beserta harga untuk pelanggan tertentu d) Tampilkan nama pelanggan dan detail dari penagihan yang belum dibayar pada bulan dan tahun tertentu e) Tampilkan detail persediaan barang f) Tampilkan detail PO beserta detail Barang yang dipesan berdasarkan kode RKD tertentu g) Tampilkan detail SJ berdasarkan bulan dan kodepelanggan tertentu dari PO h) Tampilkan detail SJ berdasarkan kode penagihan tertentu i) Tampilkan detail barang berdasarkan kode BPBJ tertentu j) Tampilkan detail barang berdasarkan kode BSTPJ tertentu k) Tampilkan detail barang berdasarkan kode PO tertentu l) Tampilkan detail kendaraan yang diurut berdasarkan kapasitas standart terbesar

Gambar 3.24 Menggunakan Pathway untuk Memeriksa Bahwa Model Logikal Mendukung Transaksi Query Data 133

134 3.2.3 Pemilihan DBMS Tahapan-tahapan dalam pemilihan DBMS adalah : 3.2.3.1 Mendefinisikan Kandidat Produk yang Digunakan Kandidat produk yang akan digunakan sebagai DBMS adalah: 1. MySQL, adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia 2. Microsoft SQL Server 2000, adalah sebuah sistem manajemen basis data relasional (RDBMS) produk Microsoft. Umumnya SQL Server 2000 digunakan di dunia bisnis yang memiliki basis data berskala kecil sampai dengan menengah. 3. Microsoft SQL Server 2005, adalah sebuah sistem manajemen basis data relasional (RDBMS) produk Microsoft. SQL Server 2005 dapat digunakan untuk basis data berskala besar. SQL Server 2005 terdapat beberapa edisi yaitu edisi Enterprise, edisi Developer, edisi Standard, edisi Workgroup, edisi Express, edisi Mobile, edisi Compact 3.2.3.2 Mengevaluasi Produk Ada beberapa fitur yang dapat digunakan untuk mengevaluasi sebuah produk DBMS. Untuk keperluan dari evaluasi, fitur-fitur ini dapat dikelompokkan dalam sebuah grup ataupun secara individual.

135 DBMS: Vendor: MySQL MySQL AB Physical Definition Group Fitur Rating Weighting Nilai File structures available 8 0.15 1.2 File structure maintenace 8 0.2 1.6 Ease of reorganization 9 0.25 2.25 Indexing 6 0.15 0.9 Variable length fields/records 8 0.15 1.2 Data compression 7 0.05 0.35 Encryption routines 8 0.05 0.4 Memory requirements 0 0 0 Storage requirements 0 0 0 Total 54 1.0 7.9 Tabel 3.15 Analisa fitur-fitur untuk evaluasi produk MySQL DBMS: SQL SERVER 2000 Vendor: Microsoft Physical Definition Group Fitur Rating Weighting Nilai File structures available 8 0.15 1.2 File structure maintenace 8 0.2 1.6

136 Fitur Rating Weighting Nilai Ease of reorganization 8 0.25 2 Indexing 7 0.15 1.05 Variable length fields/records 8 0.15 1.2 Data compression 6 0.05 0.3 Encryption routines 4 0.05 0.2 Memory requirements 0 0 0 Storage requirements 0 0 0 Total 49 1.0 7.55 Tabel 3.16 Analisa fitur-fitur untuk evaluasi produk SQL SERVER 2000 DBMS: SQL SERVER 2000 Vendor: Microsoft Physical Definition Group Fitur Rating Weighting Nilai File structures available 8 0.15 1.2 File structure maintenace 9 0.2 1.8 Ease of reorganization 6 0.25 1.5 Indexing 7 0.15 1.05 Variable length fields/records 8 0.15 1.2 Data compression 6 0.05 0.3 Encryption routines 7 0.05 0.35

137 Fitur Rating Weighting Nilai Memory requirements 0 0 0 Storage requirements 0 0 0 Total 51 1.0 7.4 Tabel 3.17 Analisa fitur-fitur untuk evaluasi produk SQL SERVER 2005 3.2.3.3 Merekomendasikan Pilihan DBMS Setelah melihat hasil evaluasi DBMS tersebut, maka penulis memilih MySQL sebagai DBMS yang akan digunakan. Selain itu MySQL juga memiliki beberapa keistimewaan, antara lain : 1. Portabilitas MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi. 2. Open Source MySQL didistribusikan secara open source (gratis), dibawah lisensi GPL sehingga dapat digunakan secara cuma-cuma. 3. Multiuser MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.

138 4. Performance tuning MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu. 5. Column types MySQL memiliki tipe kolom yang sangat kompleks, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain. 6. Command dan functions MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam query. 7. Security MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta password terenkripsi. 8. Scalability dan limits MySQL mampu menangani database dalam skala besar, dengan jumlah records lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.

139 9. Connectivity MySQL dapat melakukan koneksi dengan client menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT). 10. Localisation MySQL dapat mendeteksi pesan kesalahan pada client dengan menggunakan lebih dari dua puluh bahasa. Meskipun demikian, bahasa Indonesia belum termasuk didalamnya. 11. Interface MySQL memiliki interface (antar muka) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface). 12. Clients dan tools MySQL dilengkapi dengan berbagai tool yang dapat digunakan untuk administrasi database, dan pada setiap tool yang ada disertakan petunjuk online. 13. Struktur tabel MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan database lainnya semacam PostgreSQL ataupun Oracle.

140 3.2.4 Perancangan Basis Data Fisikal Perancangan basis data fisikal merupakan proses pembuatan deskripsi dari suatu implementasi basis data pada secondary storage. 3.2.4.1 Penerjemahan Model Data Logikal Global untuk DBMS Target 3.2.4.1.1 Perancangan Relasi Dasar Tujuan dari tahap ini adalah untuk mengidentifikasi relasional basis data dalam model data logikal global yang digunakan dalam DBMS dengan menggunakan DBDL (Database Design Language). DBDL yang digunakan adalah sebagai berikut: Relasi Perusahaan : Domain NamaPerusahaan : variable length character string, length 30 Domain Alamat : variable length character string, length 100 Domain Telepon : variable length character string, length 12 Domain Fax : variable length character string, length 12 Perusahaan ( NamaPerusahaan NamaPerusahaan NOT NULL, Alamat AlamatPerusahaan NOT NULL, Telepon Telepon NOT NULL, Fax Fax NOT NULL,

141 PRIMARY KEY(NamaPerusahaan)); Relasi Cabang : Domain KodeCabang : fixed length character string, length 6 Domain AlamatCabang : length character string, length 100 Domain Telepon : variable length character string, length 12 Domain Fax : variable length character string, length 12 Domain NamaPerusahaan : variable length character string, length 30 Cabang ( KodeCabang KodeCabang NOT NULL, AlamatCabang AlamatCabang NOT NULL, Telepon Telepon NOT NULL, Fax Fax NOT NULL, NamaPerusahaan NamaPerusahaan NOT NULL, PRIMARY KEY(KodeCabang), FOREIGN KEY NamaPerusahaan REFERENCES Perusahaan(NamaPerusahaan) ON UPDATE CASCADE ON DELETE NO ACTION);

142 Relasi Jabatan : Domain KodeJabatan : fixed length character string, length 6 Domain NamaJabatan:variable length character string, length 30 Jabatan ( KodeJabatan NamaJabatan KodeJabatan NOT NULL, NamaJabatan NOT NULL, PRIMARY KEY (KodeJabatan)); Relasi Barang : Domain KodeBarang : fixed length character string, length 6 Domain NamaBarang:variable length character string, length 30 Domain Satuan : variable length character string, length 30 Domain stok : integer Domain KodeCabang : fixed length character string, length 6 Barang ( KodeBarang KodeBarang NOT NULL, NamaBarang Satuan NamaBarang NOT NULL, NamaSatuan NOT NULL, Stok StokBarang NOT NULL,

143 KodeCabang KodeCabang NOT NULL, PRIMARY KEY (KodeBarang) FOREIGN KEY KodeCabang REFERENCES Cabang (KodeCabang) ON UPDATE CASCADE ON DELETE CASCADE); Relasi Kota Domain KodeKota: fixed length character string, length 6 Domain NamaKota : variable length character string, length 30 Kota ( KodeKota KodeKota NOT NULL, NamaKota NamaKota NOT NULL, PRIMARY KEY (KodeKota)); Relasi Kecamatan Domain KodeKec: fixed length character string, length 6 Domain NamaKec: variable length character string, length 30 Kecamatan ( KodeKec KodeKecamatan NOT NULL, NamaKec NamaKecamatan NOT NULL,

144 PRIMARY KEY (KodeKec)); Relasi Kelurahan: Domain KodeKel : fixed length character string, length 6 Domain NamaKel: variable length character string, length 30 Domain KodeKec : fixed length character string, length 6 Domain KodeKota: fixed length character string, length 6 Kelurahan ( KodeKel Kode Kelurahan NOT NULL, NamaKel Nama Kelurahan NOT NULL, KodeKec Kode Kecamatan NOT NULL, KodeKota Kode Kota NOT NULL, PRIMARY KEY (KodeKel), FOREIGN KEY KodeKec REFERENCES Kecamatan (KodeKec) ON UPDATE CASCADE ON DELETE CASCADE FOREIGN KEY KodeKota REFERENCES Kota(KodeKota) ON UPDATE CASCADE ON DELETE CASCADE); Relasi Pegawai : Domain KodePegawai : fixed length character string,length 10 Domain NamaPegawai: variable length character string, length 30

145 Domain AlamatPegawai: variable length character string, length 100 Domain KodeKel : fixed length character string, length 6 Domain TglLahir : Domain JenisKelamin : Date, must be less than now() Single character, must be one of L, P Domain TglMasukKerja : Date Domain Telepon : variable length character string, length 12 Domain HP: variable length character string, length 12 Domain KodeJabatan: fixed length character string, length 6 Domain KodeCabang: fixed length character string, length 6 Domain StatusPegawai: boolean Pegawai( KodePegawai KodePegawai NOT NULL, NamaPegawai AlamatPegawai KodeKel NamaPegawai NOT NULL, AlamatPegawai NOT NULL, KodeKelurahan NOT NULL, TglLahir TanggalLahir NOT NULL,

146 JenisKelamin JenisKelamin NOT NULL CONSTRAINT cekjenis CHECK (JenisKelamin like L OR P ) TglMasukKerja TanggalMasukKerja NOT NULL, Telepon HP mortelepon, morhp, KodeJabatan KodeJabatan NOT NULL, KodeCabang KodeCabang NOT NULL, StatusPegawai StatusPegawai NOT NULL, PRIMARY KEY(KodePegawai), FOREIGN KEY KodeKel REFERENCES Kelurahan(KodeKel) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY KodeJabatan REFERENCES Jabatan(KodeJabatan) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY KodeCabang REFERENCES Cabang(KodeCabang) ON UPDATE CASCADE ON DELETE NO ACTION);

147 Relasi Pelanggan : Domain KodePelanggan: fixed length character string,length 10 Domain NamaPelanggan: variable length character string, length 30 Domain AlamatPengiriman: variable length character string, length 100 Domain KodeKelKirim: fixed length character string, length 6 Domain AlamatPenagihan: variable length character string, length 100 Domain KodeKelTagih: Domain Telepon : fixed length character string, length 6 variable length character string, length 12 Domain StatusPelanggan: Boolean Pelanggan ( KodePelanggan KodePelanggan NOT NULL, NamaPelanggan NamaPelanggan NOT NULL, AlamatPengiriman AlamatPengiriman NOT NULL, KodeKelKirim KodeKelurahanKirim NOT NULL, AlamatPenagihan AlamatPenagihan NOT NULL,

148 KodeKelTagih KodeKelurahanTagih NOT NULL, Telepon mortelepon NOT NULL, StatusPelanggan StatusPelanggan NOT NULL, PRIMARY KEY (KodePelanggan), FOREIGN KEY KodeKelKirim REFERENCES Kelurahan(KodeKel) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY KodeKelTagih REFERENCES Kelurahan(KodeKel) ON UPDATE CASCADE ON DELETE NO ACTION); Relasi Kendaraan: Domain Polisi: variable length character string, length 8 Domain MerekMobil: variable length character string, length 30 Domain Type: variable length character string, length 30 Domain Tahun: Domain KapasitasStd: integer integer Domain StatusKendaraan: boolean Kendaraan ( Polisi morpolisi NOT NULL,

149 MerekMobil Merek NOT NULL, Type Type NOT NULL, Tahun Tahun NOT NULL, KapasitasStd KapasitasStandart NOT NULL, StatusKendaraan StatusKendaraan NOT NULL, PRIMARY KEY (Polisi)); Relasi BP: Domain KodeBP: fixed length character string, length 10 Domain Tgl: date Domain JenisPembayaran: single character, must be one of K, L Domain JmlPinjamanGalon: Integer Domain HargaPinjamanGalon: monetary value Domain StatusBP: Boolean Domain KodePelanggan: fixed length character string, length 10 Domain KodePegawai : fixed length character string, length 10 BP ( KodeBP KodeBP NOT NULL, Tgl Tanggal NOT NULL,

150 JenisPembayaran JenisPembayaran NOT NULL CONSTRAINT cekjenispembayaran CHECK (JenisPembayaran like K OR L ), JmlPinjamanGalon JumlahPinjaman Galon NOT NULL, HargaPinjamanGalon HargaPinjamanGalon NOT NULL, StatusBP StatusBP NOT NULL, KodePelanggan KodePelanggan NOT NULL, KodePegawai KodePegawai NOT NULL, PRIMARY KEY (KodeBP), FOREIGN KEY KodePelanggan REFERENCES Pelanggan(KodePelanggan) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY KodePegawai REFERENCES Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION); Relasi BPDetail: Domain KodeBP: fixed length character string, length 6 Domain KodeBarang: fixed length character string, length 6 Domain HargaBarang: monetary value

151 Domain JmlDefaultKirim: integer BPDetail ( KodeBP KodeBP NOT NULL, KodeBarang KodeBarang NOT NULL, HargaBarang JmlDefaultKirim HargaBarang NOT NULL, JumlahDefaultKirim NOT NULL, PRIMARY KEY (KodeBP,KodeBarang), FOREIGN KEY KodeBP REFERENCES BP(KodeBP) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY KodeBarang REFERENCES Barang(KodeBarang) ON UPDATE CASCADE ON DELETE NO ACTION); Relasi JadwalKirim: Domain HariKirim: variable length character string, length 6 Domain KodeBP: fixed length character string, length 10 JadwalKirim ( HariKirim HariKirim NOT NULL, KodeBP KodeBP NOT NULL, PRIMARY KEY (HariKirim, KodeBP),

152 FOREIGN KEY KodeBP REFERENCES BP(KodeBP) ON UPDATE CASCADE ON DELETE CASCADE); Relasi RKD: Domain KodeRKD: fixed length character string, length 10 Domain Tgl: date Domain Keterangan: variable length character string, length 100 Domain KodePegawai: fixed length character string, length 10 Domain KodeDriver: fixed length character string, length 10 Domain Polisi: variable length character string, length 8 RKD ( KodeRKD KodeRKD NOT NULL, Tgl Tanggal NOT NULL, KodePegawai KodePegawai NOT NULL, KodeDriver Supir NOT NULL, Polisi Polisi NOT NULL, PRIMARY KEY (KodeRKD), FOREIGN KEY KodePegawai REFERENCES Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION,

153 FOREIGN KEY KodeDriver REFERENCES Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY Polisi REFERENCES Kendaraan(Polisi) ON UPDATE CASCADE ON DELETE NO ACTION); Relasi PO : Domain KodePO: fixed length character string, length 10 Domain Tgl: date Domain KodePegawai: fixed length character string, length 10 Domain KodeRKD: fixed length character string, length 10 Domain KodeBP: fixed length character string, length 10 PO ( KodePO KodePO NOT NULL, Tgl Tanggal NOT NULL, KodePegawai KodePegawai NOT NULL, KodeRKD KodeRKD NOT NULL, KodeBP KodeBP NOT NULL, PRIMARY KEY (KodePO),

154 FOREIGN KEY KodePegawai REFERENCES Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY KodeRKD REFERENCES RKD(KodeRKD) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY KodeBP REFERENCES BP(KodeBP) ON UPDATE CASCADE ON DELETE NO ACTION); Relasi PODetail : Domain KodePO: fixed length character string, length 10 Domain KodeBarang: fixed length character string, length 6 Domain QtyDiminta : integer PODetail ( KodePO KodePO NOT NULL, KodeBarang KodeBarang NOT NULL, QtyDiminta KuantitiDiminta NOT NULL, PRIMARY KEY (KodePO, KodeBarang), FOREIGN KEY KodePO REFERENCES PO(KodePO) ON UPDATE CASCADE ON DELETE CASCADE,

155 FOREIGN KEY KodeBarang REFERENCES Barang(KodeBarang) ON UPDATE CASCADE ON DELETE NO ACTION); Relasi Penagihan : Domain KodePenagihan: fixed length character string, length 10 Domain TglPenagihan: date Domain TglJatuhTempo: date Domain TglPembayaran: date Domain Jumlah: Domain disc: monetary value float Domain TotalPenagihan: monetary value Domain StatusTagih: boolean Domain KodeDriver: fixed length character string, length 10 Domain KodePegawai: fixed length character string, length 10 Penagihan ( KodePenagihan KodePenagihan NOT NULL, TglPenagihan TanggalPenagihan NOT NULL, TglPembayaran TanggalPembayaran NOT NULL, Jumlah Jumlah NOT NULL,

156 Disc PotonganHarga NOT NULL, TotalPenagihan TotalPenagihan NOT NULL, StatusTagih StatusTagih NOT NULL, KodePegawai KodePegawai NOT NULL, KodeDriver KodeDriver, PRIMARY KEY (KodePenagihan), FOREIGN KEY KodePegawai REFERENCES Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY KodeDriver REFERENCES Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION, Derived Jumlah (Σ(SJ.totalDijual)), Derived tgljatuhtempo (dateadd (day,10,tglpenagihan)), Derived totalpenagihan ((jumlah (jumlah * disc)) + (jumlah (jumlah * disc)) * ppn) Relasi SJ : Domain KodeSJ: fixed length character string, length 10 Domain Tgl: date Domain TotalDijual: monetary value

157 Domain KodePegawai: fixed length character string, length 10 Domain KodePO : fixed length character string, length 10 Domain KodePenagihan: fixed length character string, length 10 SJ ( KodeSJ KodeSJ NOT NULL, Tgl Tanggal NOT NULL, TotalDijual TotalDijual, KodePegawai KodePegawai NOT NULL, KodePO KodePO NOT NULL, KodePenagihan KodePenagihan, PRIMARY KEY (KodeSJ), FOREIGN KEY KodePegawai REFERENCES Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY KodePO REFERENCES PO(KodePO) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY KodePenagihan REFERENCES Penagihan(KodePenagihan) ON UPDATE CASCADE ON DELETE NO ACTION), Derived totaldijual (Σ(SJDetail.jumlahDijual)); Relasi SJDetail : Domain KodeSJ: fixed length character string, length 10 Domain KodeBarang: fixed length character string, length 6

158 Domain QtyDijual : integer Domain JumlahDijual : monetary value Domain Keterangan :variable length character string, length 100 SJDetail ( KodeSJ KodeSJ NOT NULL, KodeBarang KodeBarang NOT NULL, QtyDijual JumlahDijual Keterangan KuantitiDijual, JumlahDijual, Keterangan, PRIMARY KEY (KodeSJ, KodeBarang), FOREIGN KEY KodeSJ REFERENCES SJ(KodeSJ) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY KodeBarang REFERENCES Barang(KodeBarang) ON UPDATE CASCADE ON DELETE NO ACTION, Derived jumlahdijual (qtydijual * PODetail.hargaBarang); Relasi BPBJ : Domain KodeBPBJ : fixed length character string, length 10 Domain Tgl : date Domain KodeRKD : fixed length character string, length 10 Domain KodePegawai : fixed length character string, length 10 BPBJ( KodeBPBJ KodeBPBJ NOT NULL,

159 Tgl Tanggal NOT NULL, KodeRKD KodeRKD NOT NULL, KodePegawai KodePegawai NOT NULL, PRIMARY KEY (KodeBPBJ), FOREIGN KEY KodeRKD REFERENCES RKD(KodeRKD) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY KodePegawai REFERENCES Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION); Relasi BPBJDetail : Domain KodeBPBJ: fixed length character string, length 10 Domain KodeBarang: fixed length character string, length 6 Domain QtyDiberikan: integer Domain QtySisaBarang: integer Domain Keterangan :variable length character string, length 100 BPBJDetail ( KodeBPBJ KodeBPBJ NOT NULL, KodeBarang KodeBarang NOT NULL, QtyDiberikan Kuantiti Diberikan NOT NULL, QtySisaBarang KuantitiSisaBarang,

160 Keterangan Keterangan, PRIMARY KEY (KodeBPBJ, KodeBarang), FOREIGN KEY KodeBPBJ REFERENCES BPBJ(KodeBPBJ) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY KodeBarang REFERENCES Barang(KodeBarang) ON UPDATE CASCADE ON DELETE NO ACTION); Relasi BSTPJ : Domain KodeBSTPJ: fixed length character string, length 10 Domain Tgl : date Domain KodePegawai: fixed length character string, length 10 BSTPJ ( KodeBSTPJ KodeBSTPJ NOT NULL, Tgl Tanggal NOT NULL, KodePegawai KodePegawai NOT NULL, PRIMARY KEY (KodeBSTPJ), FOREIGN KEY KodePegawai REFERENCES Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION);

161 Relasi BSTPJDetail : Domain KodeBSTPJ : fixed length character string, length 10 Domain KodeBarang : fixed length character string, length 6 Domain QtyMasuk : Integer BSTPJDetail ( KodeBSTPJ KodeBSTPJ NOT NULL, KodeBarang KodeBarang NOT NULL, QtyMasuk KuantitiMasuk NOT NULL, PRIMARY KEY (KodeBSTPJ, KodeBarang), FOREIGN KEY KodeBSTPJ REFERENCES BSTPJ(KodeBSTPJ) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY KodeBarang REFERENCES Barang(KodeBarang) ON UPDATE CASCADE ON DELETE NO ACTION); 3.2.4.2 Perancangan Representasi Fisikal 3.2.4.2.1 Analisa Transaksi Tujuan dari langkah ini adalah untuk memahami fungsional dari transaksi yang akan berjalan pada basis data dan untuk menganalisa transaksi yang penting.

162 Data Entry Transaksi/ Relasi (a) (b) (c) (d) I R U D I R U D I R U D I R U D Perusahaan Cabang Jabatan X X Barang Kota Kecamatan Kelurahan Pegawai X X Pelanggan X Kendaraan BP BPDetail JadwalKirim RKD PO PODetail Penagihan X SJ X SJDetail X BPBJ BPBJDetail BSTPJ BSTPJDetail I = Insert; R = Read; U = Update; D = Delete Tabel 3.18 Transaction/Relation Cross-Referenced Matrix Entri Data Transaksi (a) (d) a) Masukkan detail dari pelanggan b) Masukkan detail dari jabatan c) Masukkan detail dari pegawai d) Masukkan detail dari Penagihan

163 Transaksi/ Relasi (e) (f) (g) (h) I R U D I R U D I R U D I R U D Perusahaan Cabang Jabatan Barang X X Kota Kecamatan Kelurahan Pegawai X X Pelanggan X Kendaraan X X BP X BPDetail X JadwalKirim RKD X PO PODetail Penagihan SJ SJDetail BPBJ BPBJDetail BSTPJ BSTPJDetail I = Insert; R = Read; U = Update; D = Delete Tabel 3.19 Transaction/Relation Cross-Referenced Matrix Entri Data Transaksi (e) (h) e) Masukan detail dari Kendaraan f) Masukkan detail dari Barang g) Masukkan detail dari BP h) Masukkan detail dari RKD

164 Transaksi/ Relasi (i) (j) (k) (l) I R U D I R U D I R U D I R U D Perusahaan Cabang X Jabatan Barang X X X Kota Kecamatan Kelurahan Pegawai X X Pelanggan Kendaraan BP X BPDetail JadwalKirim RKD X PO X PODetail X Penagihan SJ SJDetail BPBJ X BPBJDetail X BSTPJ X BSTPJDetail X I = Insert; R = Read; U = Update; D = Delete Tabel 3.20 Transaction/Relation Cross-Referenced Matrix Entri Data Transaksi (i) (l) i) Masukkan detail dari BPBJ j) Masukkan detail dari BSTPJ k) Masukkan detail dari PO l) Masukkan detail dari Cabang

165 Transaksi/ Relasi (m) (n) (o) (p) I R U D I R U D I R U D I R U D Perusahaan X Cabang Jabatan Barang X Kota X Kecamatan Kelurahan Pegawai X Pelanggan Kendaraan BP X X BPDetail JadwalKirim X RKD PO PODetail Penagihan SJ X SJDetail X BPBJ BPBJDetail BSTPJ BSTPJDetail I = Insert; R = Read; U = Update; D = Delete Tabel 3.21 Transaction/Relation Cross-Referenced Matrix Entri Data Transaksi (m) (p) m) Masukkan detail dari SJ n) Masukkan detail dari Perusahaan o) Masukkan detail dari JadwalKirim p) Masukkan detail dari Kota

166 Transaksi/ Relasi (m) (n) I R U D I R U D Perusahaan Cabang Jabatan Barang Kota X Kecamatan X X Kelurahan X Pegawai Pelanggan Kendaraan BP BPDetail JadwalKirim RKD PO PODetail Penagihan SJ SJDetail BPBJ BPBJDetail BSTPJ BSTPJDetail I = Insert; R = Read; U = Update; D = Delete Tabel 3.22 Transaction/Relation Cross-Referenced Matrix Entri Data Transaksi (q) (r) p) Masukkan detail dari Kecamatan q) Masukkan detail dari Kelurahan

167 Update / Delete Data Transaksi/ Relasi (a) (b) (c) (d) I R U D I R U D I R U D I R U D Perusahaan Cabang Jabatan X X X X Barang Kota Kecamatan Kelurahan Pegawai X X X X Pelanggan X X X Kendaraan BP BPDetail JadwalKirim RKD PO PODetail Penagihan X X SJ SJDetail BPBJ BPBJDetail BSTPJ BSTPJDetail I = Insert; R = Read; U = Update; D = Delete Tabel 3.23 Transaction/Relation Cross-Referenced Matrix Mengubah dan Menghapus Data Transaksi (a) (d) a) Mengubah / menghapus detail dari pelanggan b) Mengubah / menghapus detail dari jabatan c) Mengubah / menghapus detail dari pegawai d) Mengubah detail dari Penagihan

168 Transaksi/ Relasi (e) (f) (g) (h) I R U D I R U D I R U D I R U D Perusahaan Cabang Jabatan Barang X X X X Kota Kecamatan Kelurahan Pegawai X X Pelanggan X Kendaraan X X X BP X X BPDetail X X JadwalKirim RKD X X PO PODetail Penagihan SJ SJDetail BPBJ BPBJDetail BSTPJ BSTPJDetail I = Insert; R = Read; U = Update; D = Delete Tabel 3.24 Transaction/Relation Cross-Referenced Matrix Mengubah dan Menghapus Data Transaksi (e) (h) e) Menghapus detail dari Kendaraan f) Mengubah / menghapus detail dari Barang g) Mengubah detail dari BP h) Mengubah detail dari RKD

169 Transaksi/ Relasi (i) (j) (k) (l) I R U D I R U D I R U D I R U D Perusahaan Cabang X X X Jabatan Barang X X X Kota Kecamatan Kelurahan Pegawai X X X Pelanggan Kendaraan BP X BPDetail JadwalKirim RKD X X PO X X PODetail X X Penagihan SJ SJDetail BPBJ X X BPBJDetail X X BSTPJ X X BSTPJDetail X X I = Insert; R = Read; U = Update; D = Delete Tabel 3.25 Transaction/Relation Cross-Referenced Matrix Mengubah dan Menghapus Data Transaksi (i) (l) i) Mengubah detail dari BPBJ j) Mengubah detail dari BSTPJ k) Mengubah detail dari PO l) Mengubah / menghapus detail dari Cabang

170 Transaksi/ Relasi (m) (n) (o) (p) I R U D I R U D I R U D I R U D Perusahaan X X X Cabang Jabatan Barang X Kota X X X Kecamatan Kelurahan Pegawai X Pelanggan Kendaraan BP X BPDetail JadwalKirim X X RKD PO X PODetail Penagihan SJ X X SJDetail X X BPBJ BPBJDetail BSTPJ BSTPJDetail I = Insert; R = Read; U = Update; D = Delete Tabel 3.26 Transaction/Relation Cross-Referenced Matrix Mengubah dan Menghapus Data Transaksi (m) (p) m) Mengubah detail dari SJ n) Mengubah / menghapus detail dari Perusahaan o) Mengubah / menghapus detail dari Jadwal Kirim p) Mengubah / menghapus detail dari Kota

171 Transaksi/ Relasi (q) (r) I R U D I R U D Perusahaan Cabang Jabatan Barang Kota X Kecamatan X X X X Kelurahan X X X Pegawai Pelanggan Kendaraan BP BPDetail JadwalKirim RKD PO PODetail Penagihan SJ SJDetail BPBJ BPBJDetail BSTPJ BSTPJDetail I = Insert; R = Read; U = Update; D = Delete Tabel 3.27 Transaction/Relation Cross-Referenced Matrix Mengubah dan Menghapus Data Transaksi (q) (r) q) Mengubah / menghapus detail dari Kecamatan r) Mengubah / menghapus detail dari Kelurahan

172 Data Query Transaksi/ Relasi (a) (b) (c) (d) I R U D I R U D I R U D I R U D Perusahaan X Cabang X X Jabatan X Barang X Kota X X Kecamatan X X Kelurahan X X Pegawai X Pelanggan X X X Kendaraan BP X X X BPDetail X JadwalKirim X RKD PO X PODetail Penagihan X SJ X SJDetail BPBJ BPBJDetail BSTPJ BSTPJDetail I = Insert; R = Read; U = Update; D = Delete Tabel 3.28 Transaction/Relation Cross-Referenced Matrix Melihat Data Transaksi (a) (d) a) Tampilkan detail pegawai berdasarkan kode jabatan b) Tampilkan detail pelanggan berdasarkan hari pengiriman c) Tampilkan detail barang beserta harga untuk pelanggan tertentu d) Tampilkan nama pelanggan dan detail dari penagihan yang belum dibayar pada bulan dan tahun tertentu

173 Transaksi/ Relasi (e) (f) (g) (h) I R U D I R U D I R U D I R U D Perusahaan Cabang Jabatan Barang X X X Kota Kecamatan Kelurahan Pegawai Pelanggan X X Kendaraan BP X BPDetail X JadwalKirim RKD X PO X X PODetail X Penagihan X SJ X X SJDetail X X BPBJ BPBJDetail BSTPJ BSTPJDetail I = Insert; R = Read; U = Update; D = Delete Tabel 3.29 Transaction/Relation Cross-Referenced Matrix Melihat Data Transaksi (e) (h) e) Tampilkan detail persediaan barang f) Tampilkan detail PO beserta detail Barang yang dipesan berdasarkan kode RKD tertentu g) Tampilkan detail SJ berdasarkan bulan dan kodepelanggan tertentu dari PO h) Tampilkan detail SJ berdasarkan kode penagihan tertentu

174 Transaksi/ Relasi (i) (j) (k) (l) I R U D I R U D I R U D I R U D Perusahaan Cabang Jabatan Barang X X X Kota Kecamatan Kelurahan Pegawai Pelanggan Kendaraan X BP BPDetail JadwalKirim RKD PO X PODetail X Penagihan SJ SJDetail BPBJ X BPBJDetail X BSTPJ X BSTPJDetail X I = Insert; R = Read; U = Update; D = Delete Tabel 3.30 Transaction/Relation Cross-Referenced Matrix Melihat Data Transaksi (i) (l) i) Tampilkan detail barang berdasarkan kode BPBJ tertentu j) Tampilkan detail barang berdasarkan kode BSTPJ tertentu k) Tampilkan detail barang berdasarkan kode PO tertentu l) Tampilkan detail kendaraan yang diurut berdasarkan kapasitas standart terbesar

175 Transaction/relation cross-referenced matrix di atas menunjukkan bahwa relasi Perusahaan diakses oleh 3 transaksi, relasi Cabang diakses oleh 4 transaksi, relasi Jabatan diakses oleh 4 transaksi, relasi Barang diakses oleh 19 transaksi, relasi Kota 6 diakses oleh transaksi, relasi Kecamatan diakses oleh 6 transaksi, relasi Kelurahan diakses oleh 4 transaksi, relasi Pegawai diakses oleh 16 transaksi, relasi Pelanggan diakses oleh 9 transaksi, relasi Kendaraan diakses oleh 5 transaksi, relasi BP diakses oleh 11 transaksi, relasi BPDetail diakses oleh 4 transaksi, relasi JadwalKirim diakses oleh 3 transaksi, relasi RKD diakses oleh 6 transaksi, relasi PO diakses oleh 7 transaksi, relasi PODetail diakses oleh 4 transaksi, relasi Penagihan diakses oleh 4 transaksi, relasi SJ diakses oleh 6 transaksi, relasi SJDetail diakses oleh 5 transaksi, relasi BPBJ diakses oleh 3 transaksi, relasi BPBJDetail diakses oleh 3 transaksi, relasi BSTPJ diakses oleh 3 transaksi, dan relasi BSTPJDetail diakses oleh 3 transaksi. Transaction Analysis Form Transaksi Volume Transaksi Average: Peak: c) Tampilkan detail barang beserta harga untuk pelanggan tertentu 10 per hour 30 per hour (antara 08.00 dan 12.00 Senin - Kamis)

176 SELECT bd.kodebarang, NamaBarang, Satuan, HargaBarang FROM Pelanggan p, BP bp, BPDetail bd,barang b WHERE p.kodepelanggan = bp.kodepelanggan AND bp.kodebp = bd.kodebp AND bd.kodebarang = b.kodebarang AND p.kodepelanggan= PLG010108 AND StatusBP = 1 Predicate : p.kodepelanggan= PLG010108,StatusBP = 1 JoinAttributes: p.kodepelanggan = bp.kodepelanggan, bp.kodebp = bd.kodebp, bd.kodebarang = b.kodebarang Ordering attribute: none Grouping attribute: none Built-in function: none Attribute updated: none Transaction Usage Map Access Entity Type of of References

177 Access Per Transaction Avg per Hour Peak per Hour 1 Pelanggan R 120 1200 3600 2 BP R 1 10 30 3 BPDetail R 3-10 30-100 90-300 4 Barang R 3-10 30-100 90-300 Total References 127-141 1270-1410 3810-4230 Tabel 3.31 Transaction Analysis Form untuk Transaksi Query Data (c) Transaction Analysis Form Transaksi d) Tampilkan nama pelanggan dan detail dari penagihan yang belum dibayar pada bulan dan tahun tertentu Volume Transaksi Average: 2 per hour Peak: 6 per hour (antara 08.00 dan 12.00 Senin - Kamis) SELECT NamaPelanggan, pngh.* FROM Pelanggan p, Penagihan pngh, SJ s, PO po, BP bp WHERE pngh.kodepenagihan = s.kodepenagihan AND s.kodepo = po.kodepo AND po.kodebp=bp.kodebp AND p.kodepelanggan = bp.kodepelanggan AND MONTH(TglPenagihan) = 1 AND YEAR(TglPenagihan) = 2008 AND StatusTagih = 0 Predicate : MONTH(TglPenagihan) = 1,YEAR(TglPenagihan) = 2008, StatusTagih = 0 JoinAttributes: pngh.kodepenagihan = s.kodepenagihan, s.kodepo = po.kodepo, po.kodebp=bp.kodebp, p.kodepelanggan = bp.kodepelanggan Ordering attribute: none Grouping attribute: none Built-in function: none

178 Attribute updated: none Transaction Usage Map Access Entity Type of of References Access Per Transaction Avg per Hour Peak per Hour 1 Penagihan R 1000 2000 6000 2 SJ R 800-1600 1600-3200 4800 9600 3 PO R 800 1600 1600-3200 4800 9600 4 BP R 200 400 1200 5 Pelanggan R 200 400 1200 Total References 4000-4600 6000-9200 18000-27600 Tabel 3.32 Transaction Analysis Form untuk Transaksi Query Data (d) Transaction Analysis Form Transaksi f) Tampilkan detail PO beserta detail Barang yang dipesan berdasarkan kode RKD tertentu Volume Transaksi Average: 2 per hour Peak: 6 per hour (antara 08.00 dan 12.00 Senin - Kamis) SELECT po.kodepo, Tgl, po.kodepegawai, KodeRKD, KodeBP, po.kodebarang,

179 NamaBarang, Satuan, QtyDiminta FROM RKD r, PO po, PODetail pod, Barang b WHERE r.koderkd = po.koderkd AND pod.kodepo = po.kodepo AND pod.kodebarang =b.kodebarang AND po.koderkd = RD01010001 Predicate : po.koderkd = RD01010001 JoinAttributes: r.koderkd = po.koderkd,pod.kodepo = po.kodepo,pod.kodebarang =b.kodebarang Ordering attribute: none Grouping attribute: none Built-in function: none Attribute updated: none Transaction Usage Map 1 Hanya terdapat 1 RKD untuk sebuah KodeRKD RKD Barang 1..1 dimiliki 1..* PO 2 1..1 Avg = 4 Max = 8 dimiliki 1..* 1..1 dimiliki 1..* PODetail Avg = 1 Max = 1 4 3 Avg = 2 Max = 6

180 Access Entity Type of of References Access Per Transaction Avg per Hour Peak per Hour 1 RKD R 1000 2000 6000 2 PO R 4-8 16-32 32-64 3 PODetail R 16-24 64-96 128-192 4 Barang R 16-24 64-96 128-192 Total References 1036-1056 2144-200 6288-6348 Tabel 3.33 Transaction Analysis Form untuk Transaksi Query Data (f) Transaction Analysis Form Transaksi g) Tampilkan detail SJ berdasarkan bulan dan kodepelanggan tertentu dari PO Volume Transaksi Average: 2 per hour Peak: 6 per hour (antara 08.00 dan 12.00 Senin - Kamis) SELECT sj.*, sjd.*, HargaBarang FROM SJ sj, SJDetail sjd, PO po, BP bp, BPDetail bpd WHERE sj.kodesj = sjd.kodesj AND sj.kodepo = po.kodepo AND po.kodebp = bp.kodebp AND bp.kodebp = bpd.kodebp AND MONTH(sj.Tgl) = 1 AND YEAR(a.Tgl) = 2008 AND KodePelanggan = PLG080101 Predicate : MONTH(sj.Tgl) = 1, YEAR(a.Tgl) = 2008, KodePelanggan = PLG080101 JoinAttributes: sj.kodesj = sjd.kodesj, sj.kodepo = po.kodepo, po.kodebp = bp.kodebp, bp.kodebp = bpd.kodebp Ordering attribute: none

181 Grouping attribute: none Built-in function: none Attribute updated: none Transaction Usage Map Asumsi terdapat 8 SJ untuk KodePelanggan tertentu pada Bulan tertentu 1 Avg = 1 Max = 1 Avg = 1 Max = 1 SJ 1..1 3 1..1 PO 1..1 4 1..1 dimiliki dimiliki BP 1..1 dipunyai 2 Avg = 1 Max = 4 Avg = 1 Max = 4 5 1..1 dimiliki 1..* SJDetail 1..1 1..* BPDetail Access Entity Type of of References Access Per Transaction Avg per Hour Peak per Hour 1 SJ R 1000 2000 6000 2 SJDetail R 8-32 16-64 48-192 3 PO R 8-32 16-64 48-192 4 BP R 8-32 16-64 48-192 5 BPDetail R 8-128 16 256 48-768 Total References 1032-1224 2064-2448 6192-7344 Tabel 3.34 Transaction Analysis Form untuk Transaksi Query Data (g) 3.2.4.2.2 Penerapan View dan Procedure Berikut ini adalah penerapan view berdasarkan transaksi yang ada. Tampilkan detail pelanggan berdasarkan hari pengiriman CREATE VIEW Vjadwal AS

182 SELECT bp.kodepelanggan AS [Kode Pelanggan], NamaPelanggan AS [Nama Pelanggan], HariKirim AS [Hari Kirim], jk.kodebp AS [KodeBP] FROM JadwalKirim jk, BP bp, Pelanggan p WHERE jk.kodebp = bp.kodebp AND bp.kodepelanggan = p.kodepelanggan Tampilkan detail dari Penagihan CREATE VIEW Vpenagihan AS SELECT pngh.kodepenagihan AS [Kode Penagihan], TglPenagihan AS [Tgl Penagihan], TglJatuhTempo AS [Tgl Jatuh Tempo], Jumlah AS [Jumlah Tagihan], Disc AS [Discount], TotalPenagihan AS [Total Penagihan], StatusTagih AS [Status Tagih], KodeDriver AS [KodeDriver], pgw.namapegawai AS [Nama Pegawai], plg.kodepelanggan AS [KodePelanggan], NamaPelanggan AS [Nama Pelanggan], AlamatPenagihan AS [Alamat Tagih] FROM Penagihan pngh, Pegawai pgw, SJ sj, PO po, BP bp, Pelanggan plg WHERE pngh. KodePegawai = pgw.kodepegawai AND pngh.kodepenagihan = sj.kodepenagihan AND sj.kodepo = po.kodepo AND po.kodebp = bp.kodebp AND plg.kodepelanggan = bp.kodepelanggan

183 Tampilkan detail dari BP CREATE VIEW VBP AS SELECT bp.kodebp AS [KodeBP],tgl AS [Tanggal], JenisPembayaran AS [Jenis Pembayaran], JmlPinjamanGalon AS [Jml Pinjaman Galon], HargaPinjamanGalon AS [Harga Pinjaman Galon], StatusBP AS [Status BP], bp.kodepelanggan AS [Kode Pelanggan], KodePegawai AS [KodePegawai], bpd.kodebarang AS [Kode Barang], NamaBarang AS [Nama Barang], HargaBarang AS [Harga Barang], JmlDefaultKirim AS [Jml Default Kirim] FROM BP bp, BPDetail bpd, Pelanggan plg, Barang b WHERE bp.kodebp = bpd.kodebp AND plg.kodepelanggan = bp.kodepelanggan AND bpd.kodebarang = b.kodebarang Tampilkan detail dari PO CREATE VIEW VPO AS SELECT po.kodepo AS [Kode PO], tgl AS [Tanggal], KodePegawai [Kode Pegawai], KodeRKD AS [KodeRKD], KodeBP AS [KodeBP], pod.kodebarang AS [Kode Barang], NamaBarang AS [Nama Barang], QtyDiminta AS [Qty Diminta] FROM PO po, PODetail pod, Barang b

184 WHERE po.kodepo = pod.kodepo AND b.kodebarang = pod.kodebarang Tampilkan detail dari SJ CREATE VIEW VSJ AS SELECT sj.kodesj AS [Kode SJ], Tgl AS [Tanggal], TotalDijual AS [Total Dijual], KodePegawai AS [Kode Pegawai], KodePO AS [KodePO], KodePenagihan AS [Kode Penagihan], sjd.kodebarang AS [Kode Barang], NamaBarang AS [Nama Barang], QtyDijual AS [QTY Dijual], JumlahDijual AS [Jumlah Dijual], Keterangan FROM SJ sj, SJDetail sjd, Barang b WHERE sj.kodesj = sjd.kodesj AND sjd.kodebarang = b.kodebarang Tampilkan detail dari BPBJ CREATE VIEW VBPBJ AS SELECT bpbj.kodebpbj AS [Kode BPBJ], tgl AS [Tanggal], KodeRKD AS [Kode RKD], KodePegawai AS [Kode Pegawai], bpbjd.kodebarang AS [Kode Barang], NamaBarang AS [Nama Barang], QtyDiberikan AS [Qty Diberikan], QtySisaBarang AS [Qty Sisa Barang], Keterangan FROM BPBJ bpbj, BPBJDetail bpbjd, Barang b

185 WHERE bpbj.kodebpbj = bpbjd.kodebpbj AND bpbjd.kodebarang = b.kodebarang Tampilkan detail dari BSTPJ CREATE VIEW VBSTPJ AS SELECT bstpj.kodebstpj AS [Kode BSTPJ], tgl AS [Tanggal], KodePegawai AS [Kode Pegawai], KodeBarang AS [Kode Barang], NamaBarang AS [Nama Barang], QtyMasuk AS [Qty Masuk] FROM BSTPJ bstpj, BSTPJDetail bstpjd, Barang b WHERE bstpj.kodebstpj = bstpjd.kodebstpj AND bstpjd.kodebarang = b.kodebarang Tampilkan detail dari Pelanggan CREATE VIEW Vpelanggan AS SELECT KodePelanggan AS [KodePelanggan], NamaPelanggan AS [Nama Pelanggan], AlamatPengiriman AS [Alamat Kirim], Telepon, kel1.namakel AS [Kelurahan Kirim], kec1.namakec AS [Kecamatan Kirim], kota1.namakota AS [Kota Kirim], AlamatPenagihan AS [Alamat Tagih], kel2.namakel AS [Kelurahan Tagih],

186 kec2.namakec AS [Kecamatan Tagih], kota2.namakota AS [Kota Tagih], StatusPelanggan AS [Status Pelanggan] FROM Pelanggan plg, Kelurahan kel1, Kecamatan kec1, Kota kota1, Kelurahan kel2, Kecamatan kec2, Kota kota2 WHERE plg.kodekelkirim = kel1.kodekel AND kel1.kodekec = kec1.kodekec AND kota1.kodekota = kel1.kodekota AND plg.kodekeltagih = kel2.kodekel AND kel2.kodekec = kec2.kodekec AND kota2.kodekota = kel2.kodekota Tampilkan BPDetail CREATE VIEW VBPDetail AS SELECT bpd.kodebarang AS [Kode Barang], NamaBarang AS [Nama Barang], HargaBarang AS [Harga Barang], JmlDefaultKirim AS [Jml Default Kirim] FROM BPDetail bpd, Pelanggan plg, Barang b WHERE bpd.kodebarang = b.kodebarang Tampilkan PODetail CREATE VIEW VPODetail AS SELECT NamaBarang AS [Nama Barang], Satuan AS [Satuan], QtyDiminta AS [Qty Diminta]

187 FROM PODetail pod, Barang b WHERE b.kodebarang = pod.kodebarang Tampilkan SJDetail CREATE VIEW VSJDetail AS SELECT sjd.kodebarang AS [Kode Barang], NamaBarang AS [Nama Barang], QtyDijual AS [QTY Dijual], JumlahDijual AS [Jumlah Dijual], Keterangan FROM SJDetail sjd, Barang b WHERE sjd.kodebarang = b.kodebarang Tampilkan SJ yang belum ada penagihan CREATE VIEW VSJTagih AS SELECT po.kodebp AS [Kode BP], KodeSJ AS [Kode SJ], TotalDijual AS [Total Dijual] FROM SJ sj, PO po, BP bp WHERE sj.kodepo = po.kodepo AND po.kodebp = bp.kodebp AND KodePenagihan IS NULL Tampilkan Barang yang ada di RKD CREATE VIEW VBarangRKD AS

188 SELECT pod.kodebarang AS [Kode Barang], NamaBarang AS [Nama Barang], Satuan AS [Satuan], SUM(qtyDiminta) AS [Qty Dibutuhkan] FROM PO po, PODetail pod, Barang b WHERE po.kodepo = pod.kodepo AND pod.kodebarang = b.kodebarang GROUP BY pod.kodebarang, NamaBarang, Satuan Berikut ini adalah penerapan procedure berdasarkan transaksi yang ada: Masukkan detail dari pelanggan CREATE PROCEDURE sp_insertpelangganbaru(kode char(10), nama varchar(30), alamatkirim varchar(100), kelurahankirim char(6), alamattagih(100), kelurahantagih char(6), telepon varchar(12)) BEGIN INSERT into pelanggan(kodepelanggan, NamaPelanggan, AlamatPengiriman, KodeKelKirim, AlamatPenagihan, KodeKelTagih,Pelanggan, Password) VALUES(kode, nama, alamatkirim, kelurahankirim, alamattagih, kelurahantagih, telepon); END Masukkan detail dari jabatan CREATE PROCEDURE sp_insertjabatanbaru(kode char(6), nama varchar(30)) BEGIN

189 INSERT into jabatan VALUES (kode, nama); END Masukkan detail dari pegawai CREATE PROCEDURE sp_insertpegawaibaru(kode char(10), nama varchar(30), alamat varchar(100), kodekel char(6), tgllahir datetime, jenis char(1), tglmasuk datetime, telepon varchar(12), HP varchar(12), kodejabatan char(6), KodeCabang char(6), status boolean)) BEGIN INSERT into pegawai VALUES (kode, nama, alamat, kodekel, tgllahir, jenis, tglmasuk, telepon, HP, kodejabatan, kodecabang, status); END Masukkan detail dari Penagihan CREATE PROCEDURE sp_insertpenagihanbaru(kode char(10), tgltagih datetime, tgljatuhtempo datetime, tglbayar datetime, jumlah double, disc float, total double, status boolean, kodedriver char(10), kodepegawai char(10) ) BEGIN INSERT into penagihan VALUES(kode, tgltagih, tgljatuhtempo, tglbayar, jumlah, disc, total, status, kodedriver, kodepegawai); END

190 Masukan detail dari Kendaraan CREATE PROCEDURE sp_insertkendaraanbaru(nopolisi varchar(8), merek varchar(30), type varchar(30), tahun integer, kapasitas integer, status boolean ) BEGIN INSERT into kendaraan VALUES (nopolisi, merek, type, tahun, kapasitas, status); END Masukkan detail dari Barang CREATE PROCEDURE sp_insertbarangbaru(kode char(6), nama varchar(30), satuan varchar(30), stok integer, kodecabang char(6)) BEGIN INSERT into barang VALUES (kode, nama, satuan, stok, kodecabang); END Masukkan detail dari BP CREATE PROCEDURE sp_insertbpbaru(kode char(10), tgl datetime, jenis char(1), jmlpinjaman integer, harga double, status boolean, kodepelanggan char(10), kodepegawai char(10)) BEGIN INSERT into bp VALUES(kode, tgl, jenis, jmlpinjaman, harga, status, kodepelanggan, kodepegawai); END

191 Masukkan detail dari Bpdetail CREATE PROCEDURE sp_insertbpdetailbaru(kode char(6), kodebarang char(6), harga double, jmlkirim integer) BEGIN INSERT into bpdetail VALUES(kode, kodebarang, harga, jmlkirim); END Masukkan detail dari RKD CREATE PROCEDURE sp_insertrkdbaru(kode char(10), tgl datetime, keterangan varchar(100), kodepegawai char(10), kodedriver char(10), nopolisi varchar(8)) BEGIN INSERT into rkd VALUES (kode, tgl, keterangan, kodepegawai, kodedriver, nopolisi); END Masukkan detail dari BPBJ CREATE PROCEDURE sp_insertbpbjbaru(kode char(10), tgl datetime, koderkd char(10), kodepegawai char(10)) BEGIN INSERT into bpbj VALUES (kode, tgl, koderkd, kodepegawai); END Masukkan detail dari BPBJDetail

192 CREATE PROCEDURE sp_insertbpbjdetailbaru(kode char(10), kodebarang char(10), qtydiberikan integer, qtysisa integer, keterangan varchar(100)) BEGIN INSERT into bpbjdetail VALUES (kode, kodebarang, qtydiberikan, qtysisa, keterangan); END Masukkan detail dari BSTPJ CREATE PROCEDURE sp_insertbstpjbaru(kode char(10), tgl datetime, kodepegawai char(10)) BEGIN INSERT into bstpj VALUES(kode, tgl, kodepegawai); END Masukkan detail dari BSTPJDetail CREATE PROCEDURE sp_insertbstpjdetailbaru(kode char(10), kodebarang char(6), qtymasuk integer) BEGIN INSERT into bstpjdetail VALUES (kode, kodebarang, qtymasuk); END Masukkan detail dari PO CREATE PROCEDURE sp_insertpobaru(kode char(10), tgl datetime, kodepegawai char(10), koderkd char(10), kodebp(10)) BEGIN

193 INSERT into po VALUES(kode, tgl, kodepegawai, koderkd, kodebp); END Masukkan detail dari PODetail CREATE PROCEDURE sp_insertpodetailbaru(kode char(10), kodebarang char(10), qty integer) BEGIN INSERT into podetail VALUES(kode, kodebarang, qty); END Masukkan detail dari Cabang CREATE PROCEDURE sp_insertcabangbaru(kode char(6), alamat varchar(100), telepon varchar(12), fax varchar(12)) BEGIN INSERT INTO cabang (KodeCabang, AlamatCabang, Telepon, Fax) VALUES (kode, alamat, telepon, fax); END Masukkan detail dari SJ CREATE PROCEDURE sp_insertsjbaru(kode char(10), tgl datetime, totaldijual double, kodepegawai char(10), kodepo char(10), kodepenagihan char(10)) BEGIN INSERT into sj VALUES (kode, tgl, totaldijual, kodepegawai, kodepo, kodepenagihan); END

194 Masukkan detail dari SJDetail CREATE PROCEDURE sp_insertsjdetailbaru(kode char(10), kodebarang char(6), qtydijual integer, jumlahdijual double, keterangan varchar(100)) BEGIN INSERT into sjdetail VALUES (kode, kodebarang, qtydijual, jumlahdijual, keterangan); END Masukkan detail dari Perusahaan CREATE PROCEDURE sp_insertperusahaan(nama varchar(30), alamat varchar(100), telepon varchar(12), fax varchar(12)) BEGIN INSERT into perusahaan VALUES(nama, alamat, telepon, fax); END Masukkan detail dari Jadwal Kirim CREATE PROCEDURE sp_insertjadwalkirim(harikirim varchar(6), kodebp char(10)) BEGIN INSERT into jadwalkirim VALUES (harikirim, kodebp); END Masukkan detail dari Kota CREATE PROCEDURE sp_insertkotabaru(kode char(6), nama varchar(30)) BEGIN INSERT into kota VALUES(kode, nama);

195 END Masukkan detail dari Kecamatan CREATE PROCEDURE sp_insertkecamatanbaru(kode char(6), nama varchar(30)) BEGIN INSERT into kecamatan VALUES(kode, nama); END Masukkan detail dari Kelurahan CREATE PROCEDURE sp_insertkelurahanbaru(kode char(6), nama varchar(30), kodekec char(6), kodekota char(6)) BEGIN INSERT into kelurahan VALUES(kode, nama, kodekec, kodekota); END Mengubah detail dari pelanggan CREATE PROCEDURE sp_updpelanggan(kode char(10), nama varchar(30), alamatkirim varchar(100), kelurahankirim char(6), alamattagih(100), kelurahantagih char(6), telepon varchar(12)) BEGIN UPDATE pelanggan set NamaPelanggan = nama, AlamatPengiriman = alamatkirim, KodeKelKirim = kelurahankirim, AlamatPenagihan = alamattagih, KodeKelTagih = kelurahantagih, Telepon = telepon WHERE KodePelanggan = kode; END

196 Mengubah detail dari jabatan CREATE PROCEDURE sp_updjabatan(kode char(6), nama varchar(30)) BEGIN UPDATE jabatan set NamaJabatan = nama WHERE KodeJabatan = kode; END Mengubah detail dari pegawai CREATE PROCEDURE sp_updpegawai(kode char(10), nama varchar(30), alamat varchar(100), kodekel char(6), tgllahir datetime, jenis char(1), tglmasuk datetime, telepon varchar(12), HP varchar(12), kodejabatan char(6), KodeCabang char(6), status boolean)) BEGIN UPDATE pegawai SET NamaPegawai = nama, AlamatPegawai = alamat, KodeKel = kodekel, TglLahir = tgllahir, JenisKelamin = jenis, TglMasukKerja = tglmasuk, Telepon = telepon, HP = HP, KodeJabatan = kodejabatan, KodeCabang = kodecabang, StatusPegawai = status WHERE KodePegawai = kode; END Mengubah detail dari Penagihan CREATE PROCEDURE sp_updpenagihan(kode char(10), tgltagih datetime, tgljatuhtempo datetime, tglbayar datetime, jumlah double, disc float, total double, status boolean, kodedriver char(10), kodepegawai char(10) ) BEGIN

197 UPDATE penagihan set TglPenagihan = tgltagih, TglJatuhTempo = tgljatuhtempo, TglPembayaran = tglbayar, Jumlah = jumlah, Disc = disc, TotalPenagihan = total, StatusTagih = status, KodeDriver = kodedriver, KodePegawai = kodepegawai WHERE KodePenagihan = kode; END Mengubah detail dari Barang CREATE PROCEDURE sp_updbarang(kode char(6), nama varchar(30), satuan varchar(30), stok integer, kodecabang char(6)) BEGIN UPDATE barang set NamaBarang = nama, Satuan = satuan, Stok = stok, KodeCabang = kodecabang WHERE KodeBarang = kode; END Mengubah detail dari BPDetail CREATE PROCEDURE sp_updbpdetail(kode char(10), kodebarang char(6), harga double, jumlahkirim integer) BEGIN UPDATE bpdetail set KodeBP = kode, KodeBarang = kodebarang, HargaBarang = harga, JmlDefaultKirim = jumlahkirim WHERE KodeBP = kode AND KodeBarang = kodebarang; END Mengubah detail dari RKD CREATE PROCEDURE sp_updrkd(kode char(10), tgl datetime, kodepegawai char(10), kodedriver char(10), nopolisi varchar(12))

198 BEGIN UPDATE rkd set Tgl = tgl, KodePegawai = kodepegawai, KodeDriver = kodedriver, Polisi = nopolisi WHERE KodeRKD = kode; END Mengubah detail dari BPBJDetail CREATE PROCEDURE sp_updbpbjdetail(kode char(10), kodebarang char(6), qtydiberikan integer, qtysisa integer, keterangan varchar(100)) BEGIN UPDATE bpbjdetail set QtyDiberikan = qtydiberikan, QtySisaBarang = qtysisa, Keterangan = keterangan WHERE KodeBPBJ = kode AND KodeBarang = kodebarang; END Mengubah detail dari BSTPJDetail CREATE PROCEDURE sp_updbstpjdetail(kode char(10), kodebarang char(6), qty integer) BEGIN UPDATE bstpjdetail set QtyMasuk = qty WHERE KodeBSTPJ = kode AND KodeBarang = kodebarang; END Mengubah detail dari PODetail CREATE PROCEDURE sp_updpodetail(kode char(10), kodebarang char(6), qty integer) BEGIN

199 UPDATE podetail set KodeBarang = kodebarang, QtyDiminta = qty WHERE KodePO = kode AND KodeBarang = kodebarang; END Mengubah detail dari Cabang CREATE PROCEDURE sp_updcabang(kode char(6), alamat varchar(100), telepon varchar(12), fax varchar(12)) BEGIN UPDATE cabang set AlamatCabang = alamat, Telepon = telepon, Fax = fax WHERE KodeCabang = kode; END Mengubah detail dari SJDetail CREATE PROCEDURE sp_updsjdetail(kode char(10), kodebarang char(6), qty integer, jumlah double, keterangan varchar(100)) BEGIN UPDATE sjdetail set KodeBarang = kodebarang, QtyDijual = qty, JumlahDijual = jumlah, Keterangan = keterangan WHERE KodeSJ = kode AND KodeBarang = kodebarang; END Mengubah detail dari Kota CREATE PROCEDURE sp_updkota(kode char(6), nama varchar(30)) BEGIN UPDATE kota set NamaKota = nama WHERE KodeKota = kode; END

200 Mengubah detail dari Kecamatan CREATE PROCEDURE sp_updkecamatan(kode char(6), nama varchar(30)) BEGIN UPDATE kota set NamaKec = nama WHERE KodeKec = kode; END Mengubah detail dari Kelurahan CREATE PROCEDURE sp_updkelurahan(kode char(6), nama varchar(30)) BEGIN UPDATE kelurahan set NamaKel = nama WHERE KodeKel = kode; END Menghapus detail dari pelanggan CREATE PROCEDURE sp_delpelanggan(kode char(10)) BEGIN DELETE from pelanggan where KodePelanggan = kode; END Menghapus detail dari jabatan CREATE PROCEDURE sp_deljabatan(kode Char(6)) BEGIN DELETE from jabatan where KodeJabatan = kode; END Menghapus detail dari pegawai CREATE PROCEDURE sp_delpegawai(kode Char(6)) BEGIN

201 DELETE from pegawai WHERE KodePegawai = kode; END Menghapus detail dari Kendaraan CREATE PROCEDURE sp_delkendaraan(nopolisi varchar(8)) BEGIN DELETE from kendaraan where Polisi = nopolisi; END Menghapus detail dari Barang CREATE PROCEDURE sp_delbarang(kode char(6)) BEGIN DELETE from barang where KodeBarang = kode; END Menghapus detail dari Cabang CREATE PROCEDURE sp_delcabang(kode char(6)) BEGIN DELETE from cabang where KodeCabang = kode; END Menghapus detail dari Kelurahan CREATE PROCEDURE sp_delkelurahan(kode char(6)) BEGIN DELETE from kelurahan where KodeKel = kode; END

202 Menghapus detail dari Kota CREATE PROCEDURE sp_delkota(kode char(6)) BEGIN DELETE from kota where KodeKota = kode; END Menghapus detail dari Kecamatan CREATE PROCEDURE sp_delkecamatan(kode char(6)) BEGIN DELETE from kecamatan where KodeKec = kode; END 3.2.4.2.3 Pemilihan Organisasi File DBMS yang digunakan untuk mengimplementasi basis data PT Musi Langgeng Mandiri ini adalah MySQL. Oleh karena itu organisasi file yang digunakan adalah Indexed Sequential Office Access Method(ISAM). 3.2.4.2.4 Pemilihan Indek tabel. Berikut ini merupakan pembuatan indeks untuk masing-masing Tabel Nama Indeks Field Perusahaan PerusahaanNamaPerusahaanInd(Primary Index) NamaPerusahaan Cabang CabangKodeCabangInd(Primary Index) KodeCabang

203 Tabel Nama Indeks Field Jabatan JabatanKodeJabatanInd (Primary Index) KodeJabatan JabatanNamaJabatanInd (Secondary Index) NamaJabatan Barang BarangKodeBarangInd (Primary Index) KodeBarang BarangNamaBarangInd (Secondary Index) NamaBarang Kota KotaKodeKotaInd (Primary Index) KodeKota KotaNamaKotaInd (Secondary Index) NamaKota Kecamatan KecamatanKodeKecInd (Primary Index) KodeKec KecamatanNamaKecInd (Secondary Index) NamaKec Kelurahan KelurahanKodeKelInd (Primary Index) KodeKel KelurahanNamaKelInd(Secondary Index) NamaKel Pegawai PegawaiKodePegawaiInd(Primary Index) KodePegawai PegawaiNamaPegawaiInd(Secondary Index) NamaPegawai Pelanggan PelangganKodePelangganInd(Primary Index) KodePelanggan PelangganNamaPelangganInd(Secondary Index) NamaPelanggan Kendaraan KendaraanPolisiInd(Primary Index) Polisi BP BPKodeBPInd(Primary Index) KodeBP BPTanggalInd(Secondary Index) Tgl BPKodePelangganInd(Secondary Index) KodePelanggan BPKodePegawaiInd(Secondary Index) KodePegawai BPDetail JadwalKirim BPDetailKodeBPKodeBarangInd(Primary Index) BPDetailKodeBPInd(Secondary Index) BPDetailKodeBarangInd(Secondary Index) JadwalKirimHariKirimKodeBPInd(Primary Index) JadwalKirimHariKirimInd(Secondary Index) JadwalKirimKodeBPInd(Secondary Index) KodeBP, KodeBarang KodeBP KodeBarang HariKirim, KodeBP HariKirim KodeBP

204 Tabel Nama Indeks Field RKD RKDKodeRKDInd(Primary Index) KodeRKD RKDTanggalInd(Secondary Index) Tgl RKDKodeKendaraanInd(Secondary Index) Polisi RKDKodeDriverInd(Secondary Index) KodeDriver RKDKodePegawaiInd(Secondary Index) KodePegawai PO POKodePOInd(Primary Index) KodePO POTanggalInd(Secondary Index) Tgl POKodePegawaiInd(Secondary Index) KodePegawai PODetail PODetailKodePOKodeBarangInd(Primary Index) KodePO, KodeBarang PODetailKodePOInd(Secondary Index) KodePO PODetailKodeBarangInd(Secondary Index) KodeBarang Penagihan PenagihanKodePenagihanInd(Primary Index) KodePenagihan PenagihanTglPenagihanInd(Secondary Index) TglPenagihan PenagihanTglJatuhTempoInd(Secondary Index) TglJatuhTempo PenagihanTglPembayaranInd(Secondary Index) TglPembayaran PenagihanKodeDriverInd(Secondary Index) KodeDriver PenagihanKodePegawaiInd(Secondary Index) KodePegawai SJ SJKodeSJInd(Primary Index) KodeSJ SJTanggalInd(Secondary Index) Tgl SJKodePOInd(Secondary Index) KodePo SJKodePegawai(Secondary Index) KodePegawai SJKodePenagihanInd(Secondary Index) KodePenagihan SJDetail SJDetailKodeSJKodeBarangInd(Primary Index) KodeSJ, KodeBarang SJDetailKodeSJInd(Secondary Index) KodeSJ SJDetailKodeBarangInd(Secondary Index) KodeBarang

205 Tabel Nama Indeks Field BPBJ BPBJKodeBPBJInd(Primary Index) KodeBPBJ BPBJTanggalInd(Secondary Index) Tgl BPBJKodeRKDInd(Secondary Index) KodeRKD BPBJKodePegawaiInd(Secondary Index) KodePegawai BPBJDetail BPBJDetailKodeBPBJKodeBarangInd(Primary KodeBPBJ, Index) KodeBarang BPBJDetailKodeBPBJInd(Secondary Index) KodeBPBJ BPBJDetailKodeBarangInd(Secondary Index) KodeBarang BSTPJ BSTPJKodeBSTPJInd(Primary Index) KodeBSTPJ BSTPJTanggalInd(Secondary Index) Tgl BSTPJKodePegawai(Secondary Index) KodePegawai BSTPJDetail BSTPJDetailKodeBSTPJKodeBarangInd(Primary KodeBSTPJ, Index) KodeBarang BSTPJDetailKodeBSTPJInd(Secondary Index) KodeBSTPJ BSTPJDetailKodeBarangInd(Secondary Index) KodeBarang Tabel 3.35 Indeks yang Digunakan pada Tabel (Primary Index / Clustered Index dan Secondary Index / nclustered Index) 3.2.4.2.5 Estimasi Kebutuhan Media Penyimpanan 3.2.4.2.5.1 Menghitung Estimasi Pertumbuhan Jumlah Baris Dalam 3 Tahun NAMA TABEL R i Jumlah Baris Dalam 3 Tahun (Num_Rows) Perusahaan 1-1 Cabang 1 1 2 Jabatan 15 1 16

206 NAMA TABEL R i Jumlah Baris Dalam 3 Tahun (Num_Rows) Barang 4-4 Kota 4 1 5 Kecamatan 40 3 44 Kelurahan 250 3 274 Pegawai 30 2 36 Pelanggan 120 5 135 Kendaraan 5 1 8 BP 500 5 575 BPDetail 500 5 575 JadwalKirim 750 5 890 RKD 750 5 890 PO 10800 5 11420 PODetail 10800 5 11420 Penagihan 3600 5 3672 SJ 10800 5 11420 SJDetail 10800 5 11420 BPBJ 5000 5 5150 BPBJDetail 5000 5 5150 BSTPJ 360 5 420 BSTPJDetail 360 5 420 Tabel 3.36 Estimasi Perhitungan Baris Dalam 3 Tahun

207 3.2.4.2.5.2 Menghitung Space Untuk Menyimpan Data Num_ Rows Num_ Cols Fixed_ Data_S ize Num_ Variabl e_cols Max_ Var_ Size Null_ Bitm ap Variabl e_data _Size Row _Siz e Rows_P er_page Free_Ro ws_per_ Page Num_ Pages NAMA TABEL Table_Size Perusahaan 1 3 7 0 100 3 102 116 68 14 1 8192 Cabang 2 4 8 0 100 3 102 117 68 14 1 8192 Jabatan 16 2 6 1 30 3 34 47 165 33 1 8192 Barang 4 4 8 3 90 3 98 113 70 14 1 8192 Kota 5 2 6 1 30 3 34 47 165 33 1 8192 Kecamatan 44 2 6 1 30 3 34 47 165 33 1 8192 Kelurahan 274 5 22 1 30 4 34 64 124 25 3 22700 Pegawai 36 12 40 4 154 4 164 212 38 8 1 9761 Pelanggan 135 13 23 4 255 5 265 297 27 5 6 50969 Kendaraan 8 6 7 4 168 4 178 193 42 8 1 8192 BP 575 8 50 0 0 4 2 60 131 26 5 45000 BPDetail 575 4 22 0 0 3 2 31 243 49 3 24273 JadwalKirim 890 2 10 1 6 3 10 27 278 56 4 32786 RKD 890 8 58 2 108 4 114 180 45 9 25 204735 PO 11420 5 48 0 0 4 2 58 136 27 105 859434 PODetail 11420 3 18 0 0 3 2 27 277 55 52 422495 Penagihan 3672 10 89 0 0 4 2 99 80 16 57 469668 SJ 11420 6 58 0 0 4 2 68 116 23 123 1005682 SJDetail 11420 5 26 1 100 4 104 138 58 12 246 2014975 BPBJ 5150 4 38 0 0 3 2 47 164 33 39 321621 BPBJDetail 5150 5 20 1 100 4 104 132 61 12 106 869597 BSTPJ 420 3 28 0 0 3 2 37 206 41 3 20851 BSTPJDetail 420 3 18 0 0 3 2 27 277 55 2 15538 Total Ukuran Data_Space_Used (bytes) 6447428 Tabel 3.37 Perhitungan Space untuk Menyimpan Data

208 Keterangan: Num_Rows = banyaknya baris Num_Cols = banyaknya kolom Fixed_Data_Size = total ukuran(bytes) kolom yang panjangnya tetap Num_Variable_Cols = banyaknya kolom yang panjangnya tidak tetap Max_Var_Size = total ukuran(bytes) maksimal kolom yang panjangnya tidak tetap Null_Bitmap = Jika terdapat panjang kolom yang tetap pada tabel, sebuah bagian baris, dikenal dengan null bitmap, disiapkan untuk menangani kemungkinan null pada kolom (column nullability). Untuk menghitung ukurannya: Null_Bitmap = 2 + ((Num_Cols +7) / 8) Variable_Data_Size = Jika terdapat kolom yang panjangnya tidak tetap pada tabel, tentukan berapa banyak tempat penyimpanan kolom dalam baris : Variable_Data_Size = 2 + (Num_Variable_Cols x 2) + Max_Var_Size Jika tidak terdapat kolom dengan panjang yang tidak tetap, maka Variable_Data_Size menjadi 0. Row_Size = menghitung ukuran baris Row_Size = Fixed_Data_Size + Variable_Data_Size + Null_Bitmap + 4

209 Nilai akhir yaitu 4 mewakili header baris data. Rows_Per_Page = Menghitung jumlah baris per halaman (8096 bytes per halaman): Rows_Per_Page = 8096 / (Row_Size + 2) Free_Rows_Per_page = jika sebuah clustered index akan dibuat pada tabel, hitung jumlah baris cadangan yang kosong per halaman, tergantung pada penetapan fill factor. Jika tidak ada clustered index yang akan dibuat, tetapkan fill factor menjadi 100. Free_Rows_Per_Page = 8096 x ((100- fill factor) / 100) / (Row_Size + 2) Num_Pages = Menghitung banyaknya halaman yang dibutuhkan untuk menyimpan semua baris Num_Pages = Num_Rows / (Rows_Per_Page Free_Rows_Per_Page) Data_Space_Used = menghitung jumlah tempat penyimpanan yang dibutuhkan untuk menyimpan data pada tabel (total 8192 bytes per halaman): Data_Space_Used = 8192 x Num_Pages

210 3.2.4.2.5.3 Menghitung Space Untuk Menyimpan Clustered Index Num Ckey Cols Fixed Ckey Size Num Vari able Ckey Cols Max Var Ckey Size Cindex Null Bitmap Vari able Ckey Size Cindex Row Size Cindex Rows Per Page Data Space Used Num Pages Clevel 0 Num Pages Clevel 1 Num Cindex Pages Nama_Clustered_Index PerusahaanNama PerusahaanInd 1 27 0 0 3 2 41 188 8192 1 1 2 16384 CabangKodeCabangInd 1 6 0 0 3 2 20 368 8192 1 1 2 16384 JabatanKodeJabatanInd 1 6 0 0 3 2 20 368 8192 1 1 2 16384 BarangKodeBarangInd 1 6 0 0 3 2 20 368 8192 1 1 2 16384 KotaKodeKotaInd 1 6 0 0 3 2 20 368 8192 1 1 2 16384 KecamatanKode KecInd 1 6 0 0 3 2 20 368 8192 1 1 2 16384 KelurahanKode KelInd 1 6 0 0 3 2 20 368 22700 1 1 2 16384 PegawaiKode PegawaiInd 1 10 0 0 3 2 24 311 9761 1 1 2 16384 PelangganKode PelangganInd 1 10 0 0 3 2 24 311 50969 1 1 2 16384 KendaraanPolisiInd 1 0 1 8 3 12 24 311 8192 1 1 2 16384 BPKodeBPInd 1 10 0 0 3 2 24 311 45000 1 1 2 16384 BPDetailKodeBPKode BarangInd 2 16 0 0 3 2 30 252 24273 1 1 2 16384 JadwalKirimHariKirim KodeBPInd 2 10 1 6 3 10 32 237 32786 1 1 2 16384 RKDKodeRKDInd 1 10 0 0 3 2 24 311 204735 1 1 2 16384 POKodePOInd 1 10 0 0 3 2 24 311 859434 1 1 2 16384 PODetailKodePOKode BarangInd 2 16 0 0 3 2 30 252 422495 1 1 2 16384 PenagihanKode PenagihanInd 1 10 0 0 3 2 24 311 469668 1 1 2 16384 SJKodeSJInd 1 10 0 0 3 2 24 311 1005682 1 1 2 16384 Clus tered Index Size

211 SJDetailKodeSJKode BarangInd 2 16 0 0 3 2 30 252 2014975 1 1 2 16384 BPBJKodeBPBJInd 1 10 0 0 3 2 24 311 321621 1 1 2 16384 BPBJDetailKodeBPBJ KodeBarangInd 2 16 0 0 3 2 30 252 869597 1 1 2 16384 BSTPJKodeBSTPJInd 1 10 0 0 3 2 24 311 20851 1 1 2 16384 BSTPJDetailKode BSTPJKodeBarangInd 2 16 0 0 3 2 30 252 15538 1 1 2 16384 Total Ukuran Clustered_Index_Size (bytes) 376832 Keterangan : Tabel 3.38 Perhitungan Space untuk Menyimpan Clustered Index Num Ckey Cols = banyaknya kolom pada kunci index Fixed Ckey Size = jumlah bytes pada semua panjang kolom kunci yang tetap Num Variable Ckey Cols = banyaknya kunci yang panjang kolomnya tidak tetap Max Var_Ckey_Size = total ukuran(bytes) maksimal kolom kunci yang panjangnya tidak tetap Cindex_Null_Bitmap = Jika terdapat panjang kolom yang tetap pada clustered index, bagian pada baris index disiapkan untuk null bitmap. Untuk menghitung ukurannya : Cindex_Null_Bitmap = 2 + ((Num_Ckey_Cols +7) / 8)

212 Variable Ckey Size = jika terdapat panjang kolom pada index yang tidak tetap, tentukan berapa banyak tempat penyimpanan yang digunakan untuk menyimpan kolom dalam baris index : Variable Ckey Size = 2 + (Num Variable Ckey Cols x 2) + Max Var_Ckey_Size Jika tidak ada panjang kolom pada index yang tidak tetap, maka Variable Ckey Size menjadi 0. Cindex Row Size = menghitung ukuran kolom index Cindex Row Size = Fixed Ckey Size + Variable Ckey Size + Cindex_Null_Bitmap + 1 + 8 Cindex Rows Per Page = menghitung banyaknya baris index per halaman (8096 bytes bebas per halaman): Cindex Rows Per Page = 8096 / (Cindex Row Size + 2) Num Page Clevel_0 dan Num Pages Clevel_1 = menghitung banyaknya halaman yang dibutuhkan untuk menyimpan semua baris index pada tiap level index. Num Page Clevel_0 = (Data_Space_Used / 8192) / Cindex Rows Per Page Num Pages Clevel_1 = Num Page Clevel_0 / Cindex Rows Per Page Num_Cindex_Pages = jumlah halaman yang digunakan untuk menyimpan setiap level index Num_Cindex_Pages = Num Page Clevel_0 + Num Pages Clevel_1 Clustered_Cindex_Size = menghitung ukuran dari clustered index

213 Clustered_Cindex_Size = 8192 x Num_Cindex_Pages 3.2.4.2.5.4 Menghitung Space Untuk Menyimpan nclustered Index Nama Index Nu m Ke y Col s Fi Xed Key Size Nu m Vari able Key Col s Ma x Va r _ Ke y _ Siz e Ind ex _Nu ll _ Bit ma p Vari Able Key Size NL _In dex _Ro w _ Siz e NL_ Index _Row s _Per _Pa ges Cin dex Row Size Jabatan Nama JabatanInd 1 0 1 30 3 34 46 169 42 76 104 21 16 1 1 0 2 16384 Barang Nama BarangInd 1 0 1 30 3 34 46 169 42 76 104 21 4 1 1 0 2 16384 KotaNama KotaInd 1 0 1 30 3 34 46 169 42 76 104 21 5 1 1 0 2 16384 Kecamatan NamaKec Ind 1 0 1 30 3 34 46 169 42 76 104 21 44 1 1 0 2 16384 Kelurahan NamaKelIn d 1 0 1 30 3 34 46 169 42 76 104 21 274 4 1 0 5 40960 Pegawai Nama PegawaiInd 1 0 1 30 3 34 46 169 42 76 104 21 36 1 1 0 2 16384 Pelanggan Nama Pelanggan Ind 1 0 1 30 3 34 46 169 42 76 104 21 135 2 1 0 3 24576 BPTanggal Ind 1 8 0 0 3 2 22 337 20 32 238 48 575 4 1 0 5 40960 In dex Row Size In dex Rows Per Page Free Inde x Row Per Page Num _ Rows Num Pa ges Le vel _0 Num Pa ges Le vel _1 Num Pa ges Le vel _2 Nu m _ In dex _ Pa ges n Clus Tered _Index _Size

BPKode Pelanggan Ind 1 10 0 0 3 2 24 311 22 36 213 43 575 4 1 0 5 40960 BPKode PegawaiInd 1 10 0 0 3 2 24 311 22 36 213 43 575 4 1 0 5 40960 BPDetail KodeBPInd 1 10 0 0 3 2 24 311 22 36 213 43 575 4 1 0 5 40960 BPDetail KodeBarang Ind 1 6 0 0 3 2 20 368 18 28 270 54 575 3 1 0 4 32768 JadwalKiri m HariKirim Ind 1 0 1 6 3 10 22 337 18 28 270 54 890 5 1 0 6 49152 JadwalKiri m KodeBPInd 1 10 0 0 3 2 24 311 22 36 213 43 890 6 1 0 7 57344 RKD Tanggal Ind 1 8 0 0 3 2 22 337 20 32 238 48 890 5 1 0 6 49152 RKDKode Kendaraan Ind 1 8 0 8 3 10 30 253 28 48 162 32 890 7 1 0 8 65536 RKDKode DriverInd 1 10 0 0 3 2 24 311 22 36 213 43 890 6 1 0 7 57344 RKDKode PegawaiInd 1 10 0 0 3 2 24 311 22 36 213 43 890 6 1 0 7 57344 POTang galind 1 8 0 0 3 2 22 337 20 32 238 48 11420 60 1 0 61 499712 POKode PegawaiInd 1 10 0 0 3 2 24 311 22 36 213 43 11420 68 1 0 69 565248 PODetail Kode BarangInd 1 6 0 0 3 2 20 368 18 28 270 54 11420 53 1 0 54 442368 PODetail 1 10 0 0 3 2 24 311 22 36 213 43 11420 68 1 0 69 565248 214

KodePOInd Penagihan Tgl Penagihan Ind 1 8 0 0 3 2 22 337 20 32 238 48 3672 20 1 0 21 172032 Penagihan TglJatuh TempoInd 3 8 0 0 3 2 22 334 20 33 235 47 3672 20 1 0 21 172032 Penagihan TglPem bayaran Ind 1 8 0 0 3 2 22 337 20 32 238 48 3672 20 1 0 21 172032 Penagihan Kode DriverInd 1 10 0 0 3 2 24 311 22 36 213 43 3672 22 1 0 23 188416 Penagihan Kode PegawaiInd 1 10 0 0 3 2 24 311 22 36 213 43 3672 22 1 0 23 188416 SJTanggal Ind 1 8 0 0 3 2 22 337 20 32 238 48 11420 60 1 0 61 499712 SJKode POInd 1 10 0 0 3 2 24 311 22 36 213 43 11420 68 1 0 69 565248 SJKode Pegawai 1 10 0 0 3 2 24 311 22 36 213 43 11420 68 1 0 69 565248 SJKode Penagihan Ind 1 10 0 0 3 2 24 311 22 36 213 43 11420 68 1 0 69 565248 SJDetail Kode SJInd 1 10 0 0 3 2 24 311 22 36 213 43 11420 68 1 0 69 565248 SJDetail Kode BarangInd 1 6 0 0 3 2 20 368 18 28 270 54 11420 53 1 0 54 442368 BPBJ Tanggal 1 8 0 0 3 2 22 337 20 32 238 48 5150 58 1 0 59 483328 215

216 Ind BPBJKode RKDInd 1 10 0 0 3 2 24 311 22 36 213 43 5150 31 1 0 32 262144 BPBJKode PegawaiInd 1 10 0 0 3 2 24 311 22 36 213 43 5150 31 1 0 32 262144 BPBJDetail KodeBPBJ Ind 1 10 0 0 3 2 24 311 22 36 213 43 5150 31 1 0 32 262144 BPBJDetail Kode Barang Ind 1 6 0 0 3 2 20 368 18 28 270 54 5150 24 1 0 25 204800 BSTPJ Tanggal Ind 1 8 0 0 3 2 22 337 20 32 238 48 420 3 1 0 4 32768 BSTPJDetai l KodeBarang Ind 1 6 0 0 3 2 20 368 18 28 270 54 420 2 1 0 3 24576 BSTPJDetai l KodeBSTPJ Ind 1 10 0 0 3 2 24 311 22 36 213 43 420 3 1 0 4 32768 BSTPJKode Pegawai 1 10 0 0 3 2 24 311 22 36 213 43 420 3 1 0 4 32768 Total Ukuran Clustered_Index_Size (bytes) 8445952 Tabel 3.39 Perhitungan Space untuk Menyimpan Clustered Index Tambahan Keterangan :

217 Num Key Cols = banyaknya kolom pada kunci index Fixed key Size = jumlah bytes pada semua panjang kolom kunci yang tetap Num Variable Key Cols = banyaknya kunci yang panjang kolomnya tidak tetap Index_Null_Bitmap = Jika terdapat panjgan kolom yang tetap pada clustered index, bagian pada baris index disiapkan untuk null bitmap. Untuk menghitung ukurannya : Cindex_Null_Bitmap = 2 + ((Num_Ckey_Cols + 7) / 8) Variable key Size = jika terdapat panjang kolom pada index yang tidak tetap, tentukan berapa banyak tempat penyimpanan yang digunakan untuk menyimpan kolom dalam baris index: Variable Ckey Size = 2 + (Num Variable Ckey Cols x 2) + Max Var_Ckey_Size Jika tidak ada panjang kolom pada index yang tidak tetap, maka Variable Ckey Size menjadi 0. NL_Index_Row_Size = menghitung baris index nonleaf NL_Index_Row_Size = Fixed key Size + Variable key Size + Index_Null_Bitmap + 1 + 8 NL_Index_Rows_Per_Pages = menghitung banyaknya baris index nonleaf per halaman NL_Index_Rows_Per_Pages = 8096 / (NL_Index_Row_Size + 2) Index Row Size = Menghitung ukuran kolom index

218 Index Row Size = Cindex Row Size + Fixed Key Size + Variable Key Size + Index_Null_Bitmap + 1 Index Rows Per Page = menghitung jumlah baris index level leaf per halaman Index Rows Per Page = 8096 / (Index Row Size + 2) Free Index Rows Per Page = menghitung jumlah baris index kosong cadangan per halaman berdasarkan pada fill factor yang ditetapkan untuk nonclustered index Free Index Rows Per Page = 8096 x ((100-fill factor) / 100) / (Index Row Size + 2) Num Pages Level_0, Num Pages Level_1, Num Pages Level_2 = menghitung jumlah halaman yang dibutuhkan untuk menyimpan semua baris index pada tiap level index Num Pages Level_0 = Num_Rows / (Index Rows Per Page Free Index Rows Per Page) Num Pages Level_1 = Num Pages level_0 / NL_Index_Rows_Per_Pages Num Pages Level_2 = Num Pages level_1 / NL_Index_Rows_Per_Pages Num_Index_Pages = jumlah halaman yang digunakan untuk menyimpan setiap level index Num_Index_Pages = Num Page level_0 + Num Pages level_1 + Num Pages level_2 nclustered_index_size = menghitung ukuran nonclustered index nclustered_index_size = 8192 x Num_Index_Pages

219 3.2.4.2.5.5 Menghitung Ukuran Tabel Menghitung ukuran semua tabel : Total seluruh tabel (bytes) = Data_Space_Used + Clustered Index Size + n Clustered Index Size = 6447428 + 376832 + 844595 = 7668909 Bytes = 7.32 MegaBytes 3.2.4.3 Perancangan Mekanisme Pengamanan Data Berikut ini adalah perancangan mekanisme keamanan yang meliputi nama tabel beserta hak akses yang dimiliki oleh user untuk masing masing tabel.

Tabel 3.40 Merancang Mekanisme Keamanan 220

221 3.2.5 Perancangan Program Aplikasi 3.2.5.1 Struktur Menu Gambar 3.25 Struktur Menu

222 3.2.5.2 STD Gambar 3.26 STD Menu Utama

223 Jabatan Klik Tambah Jabatan Tampilkan form manipulasi jabatan Klik Ubah Tampilkan form manipulasi jabatan Klik Kembali Tampilkan layar Jabatan Manipulasi Jabatan Gambar 3.27 STD Layar Database Jabatan Klik Kota Tampilkan database Kota Area Klik Kelurahan Tampilkan Database Kelurahan Klik Kecamatan Tampilkan Database Kecamatan Kota Kecamatan Kelurahan Klik Kembali Tampilkan Layar Area Area Gambar 3.28 STD Layar Area

224 Kota Klik Tambah Kota Tampilkan form manipulasi kota Klik ubah Tampilkan form manipulasi kota Klik Kembali Tampilkan layar Kota Manipulasi Kota Gambar 3.29 STD Layar Kota Kecamatan Klik ubah Klik Tambah Kecamatan Tampilkan form manipulasi kecamatan Tampilkan form manipulasi kecamatan Klik Kembali Tampilkan layar kecamatan Manipulasi Kecamatan Gambar 3.30 STD Layar Kecamatan

225 Gambar 3.31 STD Layar Kelurahan Gambar 3.32 STD Layar Database Pelanggan

226 Gambar 3.33 STD Layar Database Pegawai Gambar 3.34 STD Layar Database Cabang

227 Gambar 3.35 STD Layar Persediaan Barang Gambar 3.36 STD Menu Laporan Persediaan Barang

228 Gambar 3.37 STD Menu Pemesanan Barang Gambar 3.38 STD Menu Pengiriman Barang

229 Gambar 3.39 STD Layar Database Kendaraan Gambar 3.40 STD Layar Purchase Order

230 Gambar 3.41 STD Layar RKD Gambar 3.42 STD Layar SJ

231 Gambar 3.43 STD Menu Penagihan Gambar 3.44 STD Menu Laporan Penagihan

232 3.2.5.3 Perancangan Layar Gambar 3.45 Rancangan Layar Login Gambar 3.46 Rancangan Menu Utama

233 Gambar 3.47 Rancangan Layar Cabang Gambar 3.48 Rancangan Layar Tambah Cabang

234 Gambar 3.49 Rancangan Layar Ubah Cabang Gambar 3.50 Rancangan Layar Jabatan

235 Gambar 3.51 Rancangan Layar Tambah Jabatan Gambar 3.52 Rancangan Layar Ubah Jabatan

236 Gambar 3.53 Rancangan Layar Area Gambar 3.54 Rancangan Layar Kecamatan

237 Gambar 3.55 Rancangan Layar Tambah Kecamatan Gambar 3.56 Rancangan Layar Ubah Kecamatan

238 Gambar 3.57 Rancangan Layar Kelurahan Gambar 3.58 Rancangan Layar Tambah Kelurahan

239 Gambar 3.59 Rancangan Layar Ubah Kelurahan Gambar 3.60 Rancangan Layar Kota

240 Gambar 3.61 Rancangan Layar Tambah Kota Gambar 3.62 Rancangan Layar Ubah Kota

241 Gambar 3.63 Rancangan Layar Pegawai Gambar 3.64 Rancangan Layar Detail Pegawai

242 Gambar 3.65 Rancangan Layar Tambah Pegawai Gambar 3.66 Rancangan Layar Ubah Pegawai

243 Gambar 3.67 Rancangan Layar Pelanggan Gambar 3.68 Rancangan Layar Tambah Pelanggan

244 Gambar 3.69 Rancangan Layar Ubah Pelanggan Gambar 3.70 Rancangan Layar Detail Pelanggan

245 Gambar 3.71 Rancangan Layar Barang Gambar 3.72 Rancangan Layar BSTPJ

246 Gambar 3.73 Rancangan Layar Tambah BSTPJ Gambar 3.74 Rancangan Layar BPBJ

247 Gambar 3.75 Rancangan Layar Tambah BPBJ Gambar 3.76 Rancangan Layar BP

Gambar 3.77 Rancangan Layar Tambah BP 248

249 Gambar 3.78 Rancangan Layar Detail BP Gambar 3.79 Rancangan Layar Pengiriman

250 Gambar 3.80 Rancangan Layar PO Gambar 3.81 Rancangan Layar Tambah PO

251 Gambar 3.82 Rancangan Layar Ubah Jumlah/Kirim Gambar 3.83 Rancangan Layar Detail PO

252 Gambar 3.84 Rancangan Layar Ubah Jumlah/Kirim Gambar 3.85 Rancangan Layar Kendaraan

Gambar 3.86 Rancangan Layar RKD 253

Gambar 3.87 Rancangan Layar Tambah RKD 254

255 Gambar 3.88 Rancangan Layar Detail RKD Gambar 3.89 Rancangan Layar SJ

256 Gambar 3.90 Rancangan Layar Tambah SJ Gambar 3.91 Rancangan Layar Penagihan

257 Gambar 3.92 Rancangan Layar Tambah Penagihan Gambar 3.93 Rancangan Layar Pembayaran

258 3.2.5.4 Perancangan Laporan Gambar 3.94 Rancangan Laporan Persediaan Gambar 3.95 Rancangan Laporan Barang Masuk

259 Gambar 3.96 Rancangan Laporan Barang Keluar Gambar 3.97 Rancangan Laporan Penjualan

260 3.2.5.5 Spesifikasi Proses Modul User Login Modul User Login Masukkan Username Masukkan Password Tekan Login Akhir Modul Modul Tekan Login Modul Tekan Login If Username dan/atau Password salah atau Username dan/atau Password Kosong Tampilkan pesan bahwa Username atau Password salah. Else Tampilkan halaman utama. Akhir Modul Modul Halaman Utama Modul Halaman Utama Kantor Menampilkan pilihan Halaman Utama

261 Menampilkan pilihan Cabang Menampilkan pilihan Jabatan Menampilkan pilihan Area Menampilkan pilihan Pegawai Menampilkan pilihan Pelanggan Menampilkan pilihan Stok Barang Menampilkan pilihan Pemesanan Menampilkan pilihan Pengiriman Menampilkan pilihan Penagihan Akhir modul Modul Pilihan Cabang Modul Pilihan Cabang Menampilkan Kode Cabang Menampilkan Alamat Cabang Menampilkan Telepon Menampilkan Fax Menampilkan Pilihan Ubah Cabang Menampilkan Pilihan Tambah Cabang Akhir Modul

262 Modul Pilihan Ubah Cabang Modul Pilihan Ubah Cabang Menampilkan Kode Cabang sebelumnya Menampilkan Alamat Cabang sebelumnya (bisa diubah) Menampilkan Telepon sebelumnya (bisa diubah) Menampilkan Fax sebelumnya (bisa diubah) Lakukan Pilihan : Simpan Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan If Alamat dan/atau Telepon dan/atau Fax belum diisi. Tampilkan pesan untuk mengisi form tersebut Else Simpan data Cabang yang telah diubah ke dalam basis data Tampilkan Database Cabang dengan pesan sukses Akhir Modul Modul Pilihan Cabang Baru Modul Pilihan Cabang Baru Menampilkan form Cabang untuk diisi

263 Masukkan Alamat Cabang Masukkan Telepon Masukkan Fax Lakukan pilihan : Simpan Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan If Alamat dan/atau Telepon dan/atau Fax belum diisi Tampilkan pesan untuk mengisi form tersebut Else Simpan data Cabang Baru ke dalam basis data Tampilkan Database Cabang dengan pesan sukses Akhir Modul Modul Pilihan Jabatan Modul Pilihan Jabatan Menampilkan Kode Jabatan Menampilkan Nama Jabatan Menampilkan Pilihan Ubah Jabatan Menampilkan Pilihan Tambah Jabatan

264 Akhir Modul Modul Pilihan Ubah Jabatan Modul Pilihan Ubah Jabatan Menampilkan Kode Jabatan sebelumnya Menampilkan Nama Jabatan sebelumnya (bisa diubah) Lakukan Pilihan : Simpan Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan If Nama Jabatan belum diisi. Tampilkan pesan untuk mengisi form tersebut Else Simpan data Jabatan yang telah diubah ke dalam basis data Tampilkan Database Jabatan dengan pesan sukses Akhir Modul Modul Pilihan Jabatan Baru Modul Pilihan Jabatan Baru Menampilkan form Cabang untuk diisi

265 Masukkan Nama Jabatan Lakukan pilihan : Simpan Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan If Nama Jabatan belum diisi Tampilkan pesan untuk mengisi form tersebut Else Simpan data Jabatan Baru ke dalam basis data Tampilkan Database Jabatan dengan pesan sukses Akhir Modul Modul Pilihan Area Modul Pilihan Area Menampilkan Pilihan Kota Menampilkan Pilihan Kecamatan Menampilkan Pilihan Kelurahan Akhir Modul Modul Pilihan Kota Modul Pilihan Kota

266 Menampilkan Kode Kota Menampilkan Nama Kota Menampilkan Pilihan Ubah Kota Menampilkan Pilihan Tambah Kota Akhir Modul Modul Pilihan Ubah Kota Modul Pilihan Ubah Kota Menampilkan Kode Kota sebelumnya Menampilkan Nama Kota sebelumnya(bisa diubah) Lakukan Pilihan : Simpan Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan If Nama Kota belum diisi Tampilkan pesan untuk mengisi form tersebut Else Simpan data Kota yang telah diubah ke dalam basis data Tampilkan Database Kota dengan pesan sukses Akhir Modul

267 Modul Pilihan Kota Baru Modul Pilihan Kota Baru Menampilkan form Kota untuk diisi Masukkan Nama Kota Lakukan pilihan : Simpan Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan If Nama Kota belum diisi Tampilkan pesan untuk mengisi form tersebut Else Simpan data Kota Baru ke dalam basis data Tampilkan Database Kota dengan pesan sukses Akhir Modul Modul Pilihan Kecamatan Modul Pilihan Kecamatan Menampilkan Kode Kecamatan Menampilkan Nama Kecamatan Menampilkan Pilihan Ubah Kecamatan

268 Menampilkan Pilihan Tambah Kecamatan Akhir Modul Modul Pilihan Ubah Kecamatan Modul Pilihan Ubah Kecamatan Menampilkan Kode Kecamatan sebelumnya Menampilkan Nama Kecamatan sebelumnya(bisa diubah) Lakukan Pilihan : Simpan Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan If Nama Kecamatan belum diisi Tampilkan pesan untuk mengisi form tersebut Else Simpan data Kecamatan yang telah diubah ke dalam basis data Tampilkan Database Kecamatan dengan pesan sukses Akhir Modul Modul Pilihan Kecamatan Baru Modul Pilihan Kecamatan Baru

269 Menampilkan form Kecamatan untuk diisi Masukkan Nama Kecamatan Lakukan pilihan : Simpan Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan If Nama Kecamatan belum diisi Tampilkan pesan untuk mengisi form tersebut Else Simpan data Kota Kecamatan ke dalam basis data Tampilkan Database Kecamatan dengan pesan sukses Akhir Modul Modul Pilihan Kelurahan Modul Pilihan Kelurahan Menampilkan Kode Kelurahan Menampilkan Nama Kelurahan Menampilkan Pilihan Ubah Kelurahan Menampilkan Pilihan Tambah Kelurahan Akhir Modul

270 Modul Pilihan Ubah Kelurahan Modul Pilihan Ubah Kelurahan Menampilkan Kode Kelurahan sebelumnya Menampilkan Nama Kelurahan sebelumnya(bisa diubah) Lakukan Pilihan : Simpan Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan If Nama Kelurahan belum diisi Tampilkan pesan untuk mengisi form tersebut Else Simpan data Kelurahan yang telah diubah ke dalam basis data Tampilkan Database Kelurahan dengan pesan sukses Akhir Modul Modul Pilihan Kelurahan Baru Modul Pilihan Kelurahan Baru Menampilkan form Kelurahan untuk diisi Masukkan Nama Kelurahan

271 Lakukan pilihan : Simpan Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan If Nama Kelurahan belum diisi Tampilkan pesan untuk mengisi form tersebut Else Simpan data Kelurahan Baru ke dalam basis data Tampilkan Database Kelurahan dengan pesan sukses Akhir Modul Modul Pilihan Pegawai Modul Pilihan Pegawai Menampilkan Kode Pegawai Menampilkan Nama Pegawai Menampilkan Jabatan Pegawai Menampilkan Status Pegawai Menampilkan Pilihan Detail Pegawai Menampilkan Pilihan Ubah Pegawai Menampilkan Pilihan Tambah Pegawai

272 Menampilkan Pilihan Cari Pegawai Akhir Modul Modul Pilihan Detail Pegawai Modul Pilihan Detail Pegawai Menampilkan Kode Pegawai Menampilkan Nama Pegawai Menampilkan Alamat Pegawai Menampilkan Kelurahan Menampilkan Tanggal lahir Menampilkan Jenis Kelamin Menampilkan Tanggal Masuk Kerja Menampilkan Telepon Menampilkan HP Menampilkan Jabatan Pegawai Menampilkan Cabang Pegawai Menampilkan Status Pegawai Akhir Modul Menampilkan Pilihan Ubah Pegawai Menampilkan Pilihan Ubah Pegawai

273 Menampilkan Kode Pegawai Menampilkan Nama Pegawai Menampilkan Alamat Pegawai(bisa diubah) Menampilkan Kelurahan(bisa diubah) Menampilkan Tanggal lahir(bisa diubah) Menampilkan Jenis Kelamin(bisa diubah) Menampilkan Tanggal Masuk Kerja Menampilkan Telepon(bisa diubah) Menampilkan HP(bisa diubah) Menampilkan Jabatan Pegawai(bisa diubah) Menampilkan Cabang Pegawai(bisa diubah) Menampilkan Status Pegawai(bisa diubah) Lakukan Pilihan : Simpan Akhir Modul Modul Lakukan Pilihan Simpan Modul Lakukan Pilihan Simpan If Alamat Pegawai dan/atau Kelurahan dan/atau Tanggal Lahir dan/atau Jenis Kelamin dan/atau Telepon dan/atau HP belum diisi Tampilkan pesan untuk mengisi form tersebut

274 Else Simpan data Pegawai yang telah diubah ke dalam basis data Tampilkan Database Pegawai dengan pesan sukses Akhir Modul Menampilkan Pilihan Tambah Pegawai Menampilkan Pilihan Tambah Pegawai Menampilkan form Pegawai untuk diisi Masukkan Nama Pegawai Masukkan Alamat Pegawai Masukkan Kelurahan Masukkan Tanggal lahir Masukkan Jenis Kelamin Masukkan Telepon Masukkan HP Masukkan Jabatan Pegawai Masukkan Cabang Pegawai Masukkan Status Pegawai Lakukan Pilihan : Simpan

275 Akhir Modul Modul Lakukan Pilihan Simpan Modul Lakukan Pilihan Simpan If Nama Pegawai dan/atau Alamat Pegawai dan/atau Kelurahan dan/atau Tanggal Lahir dan/atau Jenis Kelamin dan/atau Telepon dan/atau HP dan/atau Jabatan Pegawai dan/atau Cabang dan/atau Status Pegawai belum diisi Tampilkan pesan untuk mengisi form tersebut Else Simpan data Pegawai baru ke dalam basis data Tampilkan Database Pegawai dengan pesan sukses Akhir Modul Modul Pilihan Cari Pegawai Modul Pilihan Cari Pegawai Lakukan pemilihan untuk mencari berdasarkan Kode Pegawai atau Nama Pegawai atau Tanggal Masuk Kerja atau Jabatan Masukkan pencarian berdasarkan pemilihan Lakukan Pilihan : Cari

276 Akhir Modul Modul Pilihan Cari Modul Pilihan Cari Mengecek Database Pegawai dan melakukan pencarian berdasarkan kata/huruf yang terkandung pada pemilihan If Pemilihan terdapat di Database Pegawai Tampilkan Database Pegawai sesuai pemilihan Else Tampilkan bahwa Database Pegawai yang dicari belum terdapat di database Akhir Modul Modul Pilihan Pelanggan Modul Pilihan Pelanggan Menampilkan Kode Pelanggan Menampilkan Nama Pelanggan Menampilkan Telepon Pelanggan Menampilkan Status Pelanggan Menampilkan Pilihan Detail Pelanggan Menampilkan Pilihan Ubah Pelanggan Menampilkan Pilihan Tambah Pelanggan

277 Menampilkan Pilihan Cari Pelanggan Akhir Modul Modul Pilihan Detail Pelanggan Modul Pilihan Detail Pelanggan Menampilkan Kode Pelanggan Menampilkan Nama Pelanggan Menampilkan Alamat Pengiriman Menampilkan Kelurahan Pengiriman Menampilkan Kecamatan Pengiriman Menampilkan Kota Pengiriman Menampilkan Alamat Penagihan Menampilkan Kelurahan Penagihan Menampilkan Kecamatan Penagihan Menampilkan Kota Penagihan Menampilkan Telepon Menampilkan Status Pelanggan Akhir Modul Menampilkan Pilihan Ubah Pelanggan Menampilkan Pilihan Ubah Pelanggan

278 Menampilkan Kode Pelanggan Menampilkan Nama Pelanggan Menampilkan Alamat Pengiriman (bisa diubah) Menampilkan Kelurahan Pengiriman (bisa diubah) Menampilkan Alamat Penagihan (bisa diubah) Menampilkan Kelurahan Penagihan (bisa diubah) Menampilkan Telepon(bisa diubah) Menampilkan Status Pegawai(bisa diubah) Lakukan Pilihan : Simpan Akhir Modul Modul Lakukan Pilihan Simpan Modul Lakukan Pilihan Simpan If Alamat Pengiriman dan/atau Kelurahan Pengiriman dan/atau Alamat Penagihan dan/atau Kelurahan Penagihan dan/atau Telepon belum diisi Tampilkan pesan untuk mengisi form tersebut Else Simpan data Pelanggan yang telah diubah ke dalam basis data

279 Tampilkan Database Pelanggan dengan pesan sukses Akhir Modul Menampilkan Pilihan Tambah Pelanggan Menampilkan Pilihan Tambah Pelanggan Menampilkan form Pelanggan untuk diisi Masukkan Nama Pelanggan Masukkan Alamat Pengiriman Masukkan Kelurahan Pengiriman Masukkan Alamat Penagihan Masukkan Kelurahan Penagihan Masukkan Telepon Masukkan Status Pegawai Lakukan Pilihan : Simpan Akhir Modul Modul Lakukan Pilihan Simpan Modul Lakukan Pilihan Simpan If Nama Pelanggan dan/atau Alamat Pengiriman dan/atau Kelurahan Pengiriman dan/atau Alamat Penagihan

280 dan/atau Kelurahan Penagihan dan/atau Telepon dan/atau Status Pegawai belum diisi Tampilkan pesan untuk mengisi form tersebut Else Simpan data Pelanggan baru ke dalam basis data Tampilkan Database Pelanggani dengan pesan sukses Akhir Modul Modul Pilihan Cari Pelanggan Modul Pilihan Cari Pelanggan Lakukan pemilihan untuk mencari berdasarkan Kode Pelanggan atau Nama Pelanggan atau Kota atau Kelurahan atau Kecamatan Masukkan pencarian berdasarkan pemilihan Lakukan Pilihan : Cari Akhir Modul Modul Pilihan Cari Modul Pilihan Cari Mengecek Database Pelanggan dan melakukan pencarian berdasarkan kata/huruf yang terkandung pada pemilihan

281 If Pemilihan terdapat di Database Pelanggan Tampilkan Database Pelanggan sesuai pemilihan Else Tampilkan bahwa Database Pelanggan yang dicari belum terdapat di database Akhir Modul Modul Pilihan Stok Barang Modul Pilihan Stok Barang Menampilkan Kode Barang Menampilkan Nama Barang Menampilkan Jumlah Menampilkan Satuan Menampilkan Pilihan : Barang Masuk Menampilkan Pilihan : Barang Keluar Akhir Modul Modul Pilihan Barang Masuk Modul Pilihan Barang Masuk Menampilkan KodeBSTPJ Menampilkan Tanggal Menampilkan Kode Pegawai

282 Menampilkan Nama Barang Menampilkan Qty Menampilkan Pilihan : BSTPJ Baru Akhir Modul Modul Pilihan BSTPJ Baru Modul Pilihan BSTPJ Baru Menampilkan KodeBSTPJ Menampilkan Tanggal Menampilkan Nama Pegawai Masukkan Pilihan Nama Barang Masukkan Qty Menampilkan Pilihan : Tambah Menampilkan Kode Barang Menampilkan Nama Barang Menampilkan Qty Menampilkan Satuan Menampilkan Pilihan : Hapus Menampilkan Pilihan : Simpan Akhir Modul

283 Modul Pilihan Tambah Modul Pilihan Tambah Menyimpan Nama Barang dan Qty yang telah dimasukkan ke dalam database Tampilkan Layar BSTPJ Baru Akhir Modul Modul Pilihan Hapus Modul Pilihan Hapus Menghapus Nama Barang dan Qty yang telah dimasukkan dari database Tampilkan Layar BSTPJ Baru Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan If Nama Barang dan/atau Qty belum diisi Tampilkan pesan untuk mengisi form tersebut Else Simpan Data BSTPJ ke dalam Database Akhir Modul

284 Modul Pilihan Barang Keluar Modul Pilihan Barang Keluar Menampilkan KodeBPBJ Menampilkan Tgl Menampilkan KodeRKD Menampilkan KodePegawai Menampilkan KodeBPBJ Menampilkan KodeBarang Menampilkan QtyDiberikan Menampilkan QtySisa Menampilkan Pilihan : BPBJ Baru Akhir Modul Modul Pilihan BPBJ Baru Modul Pilihan BPBJ Baru Menampilkan KodeBPBJ Masukkan Kode RKD Menampilkan Pilihan : Cari Menampilkan Kode Barang Menampilkan Nama Barang

285 Menampilkan Satuan Menampilkan Qty Dibutuhkan Menampilkan Qty Diberikan Menampilkan Pilihan : Ubah Qty Diberikan Menampilkan Keterangan Menampilkan Pilihan : Beri Keterangan Menampilkan Pilihan : Cek Stok Barang Menampilkan Pilihan : Simpan Akhir Modul Modul Pilihan Ubah Qty Diberikan Modul Pilihan Ubah Qty Diberikan Masukan Qty Diberikan Menampilkan Pilihan : Simpan Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan If Qty Diminta tidak diisi Tampilkan pesan error untuk mengisi form tersebut Else

286 Simpan Qty Diminta ke dalam database Tampilkan BPBJ baru Akhir Modul Modul Pilihan Beri Keterangan Modul Pilihan Beri Keterangan Masukan Keterangan Menampilkan Pilihan : Simpan Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan If Keterangan tidak diisi Tampilkan pesan error untuk mengisi form tersebut Else Simpan keterangan ke dalam database Tampilkan BPBJ Baru Akhir Modul Modul Pilihan Cek Stok Barang Modul Pilihan Cek Stok Barang Menampilkan Kode Barang

287 Menampilkan Nama Barang Menampilkan Satuan Menampilkan Stok Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan If KodeRKD kosong Tampilkan Pesan untuk mengisi form tersebut Else Simpan data BPBJ Baru ke dalam database Tampilkan Database BPBJ dengan pesan sukses Akhir Modul Modul Pilihan Pemesanan Modul Pilihan Pemesanan Menampilkan Kode BP Menampilkan Tanggal Menampilkan Jenis Pembayaran Menampilkan Jumlah Pinjaman Galon Menampilkan Harga Pinjaman

288 Menampilkan Status Menampilkan Pilihan : Detail Menampilkan Pilihan : BP Baru Akhir Modul Modul Pilihan Detail Modul Pilihan Detail Menampilkan KodeBP Menampilkan Tanggal Menampilkan Kode Pelanggan Menampilkan Nama Pelanggan Menampilkan Jenis Pembayaran Menampilkan Status BP Menampilkan Hari Kirim Menampilkan Kode Barang Menampilkan Nama Barang Menampilkan Satuan Menampilkan Jumlah/Kirim Menampilkan Harga Menampilkan Pilihan : Ubah

289 Akhir Modul Modul Pilihan Ubah Modul Pilihan Ubah Menampilkan KodeBP Menampilkan Tanggal Menampilkan Kode Pelanggan Menampilkan Nama Pelanggan Menampilkan Jenis Pembayaran (bisa diubah) Menampilkan Status BP (bisa diubah) Menampilkan Hari Kirim Menampilkan Kode Barang Menampilkan Nama Barang Menampilkan Satuan Menampilkan Jumlah/Kirim Menampilkan Harga Menampilkan Pilihan : Simpan Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan

290 Simpan Data BP yang telah diubah ke dalam database Tampilkan database BP dengan pesan sukses Akhir Modul Modul Pilihan Pengiriman Modul Pilihan Pengiriman Menampilkan Pilihan : Kendaraan Menampilkan Pilihan : Purchase Order Menampilkan Pilihan : RKD Menampilkan Pilihan : Surat Jalan Akhir Modul Modul Pilihan Kendaraan Modul Pilihan Kendaraan Menampilkan Polisi Menampilkan Merk Menampilkan Type Menampilkan Tahun Menampilkan Kapasitas Menampilkan Status Menampilkan Pilihan : Ubah

291 Menampilkan Pilihan : Hapus Menampilkan Pilihan : Tambah Kendaraan Akhir Modul Modul Pilihan Ubah Modul Pilihan Ubah Menampilkan Polisi Menampilkan Merk Menampilkan Type Menampilkan Tahun Menampilkan Kapasitas (bisa diubah) Menampilkan Status (bisa diubah) Menampilkan Pilihan : Simpan Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan If kapasitas tidak diisi Tampilkan pesan error untuk mengisi form tersebut Else Simpan Data Kendaraan yang telah diubah ke dalam database

292 Tampilkan database kendaraan Akhir Modul Modul Pilihan Hapus Modul Pilihan Hapus Hapus data kendaraan dari database Tampilkan database Kendaraan Akhir Modul Modul Pilihan Tambah Kendaraan Modul Pilihan Tambah Kendaraan Masukkan Polisi Masukkan Merek Mobil Masukkan Type Masukkan Tahun Masukkan Kapasitas Masukkan Status Menampilkan Pilihan : Simpan Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan

293 If Polisi dan/atau Merk Mobil dan/atau Type dan/atau Tahun dan/atau Kapasitas dan/atau Status belum diisi Tampilkan Pesan error untuk mengisi form tersebut Else Simpan data kendaraan ke dalam database Tampilkan database kendaraan dengan pesan sukses Akhir Modul Modul Pilihan Purchase Order Modul Pilihan Purchase Order Menampilkan Kode PO Menampilkan Tanggal Menampilkan Nama Pelanggan Menampilkan Kode Pegawai Menampilkan Kode RKD Menampilkan Kode BP Menampilkan Pilihan : Detail Menampilkan Pilihan : PO Baru Akhir Modul

294 Modul Pilihan Detail Modul Pilihan Detail Menampilkan Kode PO Menampilkan Tanggal Menampilkan Kode Pegawai Menampilkan Kode Pelanggan Menampilkan Nama Pelanggan Menampilkan Kode RKD Menampilkan Kode BP Menampilkan Kode Barang Menampilkan Nama Barang Menampilkan Qty Diminta Menampilkan Pilihan : Ubah Qty Diminta Akhir Modul Modul Pilihan Ubah Qty Diminta Modul Pilihan Ubah Qty Diminta Menampilkan Kode PO Menampilkan Kode Barang Menampilkan Qty Diminta (bisa diubah)

295 Menampilkan Pilihan : Simpan Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan If Qty Diminta tidak diisi dan/atau kurang dari 0 dan/atau bukan angka Tampilkan Pesan error untuk mengisi form tersebut dengan benar Else Simpan data Qty Diminta yang telah diubah ke dalam database Tampilkan Detail PO dengan pesan sukses Akhir Modul Modul Pilihan PO Baru Modul Pilihan PO Baru Menampilkan Kode PO Menampilkan Tanggal PO Memasukkan Kode Pelanggan Menampilkan Pilihan : Cari Menampilkan Nama Pelanggan

296 Menampilkan Kode BP Menampilkan Kode Barang Menampilkan Nama Barang Menampilkan Satuan Menampilkan Jumlah / Kirim Menampilkan Harga Menampilkan Pilihan : Simpan Akhir Modul Modul Pilihan Cari Modul Pilihan Cari Mengecek Database Pelanggan dan melakukan pencarian berdasarkan kata/huruf yang terkandung pada pemilihan If Pemilihan terdapat di Database Pelanggan Tampilkan Data Pelanggan sesuai pemilihan Else Tampilkan bahwa Data Pelanggan yang dicari belum terdapat di database Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan

297 If Kode Pelanggan tidak diisi Tampilkan pesan error untuk mengisi form tersebut Else Simpan data PO baru ke dalam database Tampilkan database PO dengan pesan sukses Akhir Modul Modul Pilihan RKD Modul Pilihan RKD Menampilkan Kode RKD Menampilkan Tanggal Menampilkan Keterangan Menampilkan Kode Pegawai Menampilkan Kode Driver Menampilkan Polisi Menampilkan Pilihan : Detail Menampilkan Pilihan : RKD Baru Akhir Modul Modul Pilihan Detail Modul Pilihan Detail

298 Menampilkan Kode Barang Menampilkan Nama Barang Menampilkan Total Menampilkan Daftar PO Menampilkan Kode RKD Menampilkan Tanggal Menampilkan Driver Menampilkan Kendaraan Menampilkan Keterangan Akhir Modul Modul Pilihan RKD Baru Modul Pilihan RKD Baru Masukkan Kriteria Pencarian PO Menampilkan Pilihan : Tampil Menampilkan Daftar PO Menampilkan Pilihan : Tampil Menampilkan Kode PO Menampilkan Kode Pelanggan Menampilkan Nama Pelanggan

299 Menampilkan Alamat Pengiriman Menampilkan Kelurahan Menampilkan Kecamatan Menampilkan Kota Menampilkan Kode Barang Menampilkan Nama Barang Menampilkan Qty Diminta Menampilkan Pilihan : Tambah Ke RKD Menampilkan Kode Barang Menampilkan Nama Barang Menampilkan Total Menampilkan Daftar PO Menampilkan Kode RKD Memasukan Nama Driver Memasukkan Kendaraan Memasukkan Keterangan Menampilkan Pilihan : Simpan Akhir Modul

300 Modul Pilihan Tampil Modul Pilihan Tampil Mengecek Database PO apakah ada yang sesuai dengan kriteria pencarian If Pencarian Terdapat di Database PO Tampilkan Data PO sesuai dengan pencarian Akhir Modul Modul Pilihan Tampil Modul Pilihan Tampil Mengecek Database PO sesuai dengan pencarian Tampilkan Data PO sesuai dengan pencarian Akhir Modul Modul Pilihan Tambah Ke RKD Modul Pilihan Tambah Ke RKD Menyimpan Data Kode PO kedalam Database Tampilkan RKD Baru Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan If Daftar PO belum diisi

301 tampilkan pesan error untuk mengisi data tersebut Else Menyimpan data RKD Baru ke dalam database Tampilkan Database RKD dengan pesan sukses Akhir Modul Modul Pilihan Surat Jalan Modul Pilihan Surat Jalan Menampilkan Kode SJ Menampilkan Tanggal Menampilkan Total Dijual Menampilkan Kode Pegawai Menampilkan Kode PO Menampilkan Pilihan : SJ Baru Akhir Modul Modul Pilihan SJ Baru Modul Pilihan SJ Baru Memilih Tanggal RKD Menampilkan Pilihan : Tampil Menampilkan Daftar RKD

302 Menampilkan Pilihan : Buat SJ Menampilkan Daftar SJ Menampilkan Pilihan : Simpan Akhir Modul Modul Pilihan Tampil Modul Pilihan Tampil Mengecek database RKD sesuai dengan tanggal yang dimasukkan If Pencarian terdapat di database RKD Tampilkan data RKD ke SJ Baru Akhir Modul Modul Pilihan Buat SJ Modul Pilihan Buat SJ Menampilkan Kode SJ sesuai dengan RKD yang dipilih Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan Menyimpan data SJ Baru ke dalam database Tampilkan Database SJ dengan pesan sukses Akhir Modul

303 Modul Pilihan Penagihan Modul Pilihan Penagihan Menampilkan Pilihan Penagihan Menampilkan Pilihan Pembayaran Akhir Modul Modul Pilihan Penagihan Modul Pilihan Penagihan Menampilkan Kode Penagihan Menampilkan Tanggal Penagihan Menampilkan Tanggal Jatuh Tempo Menampilkan Tanggal Pembayaran Menampilkan Jumlah Menampilkan Disc Menampilkan Total Penagihan Menampilkan Status Tagih Menampilkan Kode Driver Menampilkan Kode Pegawai Menampilkan Pilihan : Penagihan Baru Akhir Modul

304 Modul Pilihan Penagihan Baru Modul Pilihan Penagihan Baru Menampilkan Kode Penagihan Masukkan Periode Tagihan Masukkan Tahun Masukkan Jenis Pembayaran Masukkan Kode Pelanggan Menampilkan Pilihan : Cari Menampilkan Nama Pelanggan Menampilkan Kode BP Menampilkan Kode SJ Menampilkan Total Dijual Masukkan Disc Masukkan PPN Menampilkan Pilihan : Hitung Menampilkan Total Keseluruhan Menampilkan Jumlah Bayar Menampilkan Pilihan : Simpan Akhir Modul

305 Modul Pilihan Hitung Modul Pilihan Hitung Menghitung jumlah total keseluruhan Menghitung jumlah jumlah bayar Tampilkan Penagihan Baru Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan If Periode Tagihan dan/atau Tahun dan/atau Pembayaran dan/atau Kode Pelanggan dan/atau disc dan/atau PPN tidak diisi Tampilkan pesan error untuk mengisi form tersebut Else Masukkan Data Penagihan baru ke dalam database sukses Tampilkan database penagihan dengan pesan Akhir Modul Modul Pilihan Pembayaran Modul Pilihan Pembayaran Menampilkan Kode Penagihan

306 Menampilkan Tanggal Tagih Menampilkan Tanggal Jatuh Tempo Menampilkan Tgl Pembayaran Menampilkan KodeDriver Menampilkan KodePegawai Menampilkan Jumlah Pembayaran Menampilkan Pilihan : Pembayaran Baru Akhir Modul Modul Pilihan Pembayaran Baru Modul Pilihan Pembayaran Baru Masukkan Kode Penagihan Masukkan Tanggal Pembayaran Masukkan Kode Driver Menampilkan Nama Driver Menampilkan Kode Pelanggan Menampilkan Nama Pelanggan Menampilkan Tgl. Penagihan Menampilkan Tgl. Jatuh Tempo Menampilkan KodeBP

307 Menampilkan KodeSJ Menampilkan Total Dijual Menampilkan Disc Menampilkan PPN Menampilkan Total Menampilkan Jumlah Bayar Menampilkan Pilihan : Simpan Akhir Modul Modul Pilihan Simpan Modul Pilihan Simpan If Kode Penagihan dan/atau Tgl Pembayaran dan/atau Kode Kolektor tidak diisi Tampilkan Pesan error untuk mengisi form tersebut Else Masukkan data pembayaran ke dalam database Tampilkan database Pembayaran dengan pesan sukses Akhir Modul