PERANCANGAN SISTEM BASIS DATA PENJUALAN DAN PEMBELIAN PADA SURYA PHOTO
TUGAS AKHIR
Oleh DAVID HARDISON 2003-81-198
JURUSAN TEKNIK INFORMATIKA FAKULTAS ILMU KOMPUTER UNIVERSITAS INDONUSA ESA UNGGUL JAKARTA 2008
PERANCANGAN SISTEM BASIS DATA PENJUALAN DAN PEMBELIAN PADA SURYA PHOTO
TUGAS AKHIR diajukan sebagai salah satu syarat untuk gelar kesarjanaan pada Jurusan Teknik Informatika Jenjang Pendidikan Strata - 1
Oleh DAVID HARDISON 2003-81-198 JURUSAN TEKNIK INFORMATIKA FAKULTAS ILMU KOMPUTER UNIVERSITAS INDONUSA ESA UNGGUL JAKARTA 2008
PERANCANGAN SISTEM BASIS DATA PENJUALAN DAN PEMBELIAN PADA SURYA PHOTO
TUGAS AKHIR
Disusun oleh :
DAVID HARDISON 2003-81-198
Disetujui oleh :
Drs Bambang Mulyatno, MKom Dewanto, MM Pembimbing Materi Penulisan
Ir. I. Joko Dewanto, M.Kom M.Kom, MMSi
Ir. I. Joko Pembimbing
Ir. Munawar,
KaJur Teknik Informatika FASILKOM
Dekan
ABSTRAK
Pada era globalisasi saat ini, kemajuan terjadi disegala
bidang
terutama
tekologi
informasi
serta
manajemen yang makin efisien , tepat, cepat, dan strategis dengan adanya pemanfaatan teknologi informasi serta pengetahuan tentang manajemen yang modern dan trend saat ini .Kunci kesuksesan suatu perusahaan adalah manajemen yang baik, pengorganisasian yang efisien, serta dukungan
teknologi
informasi
yang
handal,
serta
komunikasi yang baik. Salah satunya adalah SURYA PHOTO, sebuah usaha cuci-cetak foto dan seni fotografi yang sedang berkembang. Kunci kesuksesan usaha cuci-cetak foto adalah manajemen keuangan dan stok barang yang baik, laporan-laporan keuangan dan barang yang akurat dan cepat serta tepat. Oleh karena itu, penggunaan teknologi informasi diharapkan dapat membantu meningkatkan, mempercepat
kerja
dan
efisiensi
kerja
staff
serta
komunikasi antar staff untuk memperlancar proses cucicetak foto.
Kata Kunci : cuci-cetak foto, seni fotografi, stok barang, meningkatkan, mempercepat, efisiensi kerja.
KATA PENGANTAR
Puji dan syukur kepada Tuhan Yesus Kristus atas berkat dan penyertaanNya sehingga penulis dapat menyelesaikan penyusunan tugas akhir ini tepat pada waktunya. Judul tugas akhir ini adalah PERANCANGAN SISTEM BASIS DATA PENJUALAN DAN PEMBELIAN PADA SURYA PHOTO Penyusunan tugas akhir ini merupakan salah satu syarat untuk
gelar
kesarjanaan
Jurusan
Teknik
Informatika
Fakultas Ilmu Komputer Jenjang Pendidikan Strata – 1 pada Universitas Indonusa Esa Unggul. Penulis mengucapkan terima kasih kepada semua pihak yang telah terlibat dalam penyusunan skripsi ini, yaitu: 1.
Bapak Ir. Munawar, MMSI, M.Kom. selaku Dekan Fakultas Ilmu Komputer
2.
Bapak Ir. I. Joko Dewanto, MM. selaku Ketua Jurusan Teknik Informatika
3.
Bapak
Drs
Bambang
Mulyatno,
MKom
selaku
pembimbing materi. 4.
Ir. I. Joko Dewanto, MM selaku pembimbing penulisan
5.
Seluruh Dosen dan Staff Fakultas Ilmu Komputer yang telah memberikan ilmu dan bimbingan kepada penulis selama masa perkuliahan
6.
Orang tua dan keluarga yang telah memberikan
7.
Semua Mahasiswa Teknik Informatika 2003 yang
dukungan moral maupun spiritual kepada penulis
bersama-sama belajar untuk menyelesaikan studi di kampus ini
8.
Semua
pihak
yang
telah
membantu
selama
penyusunan tugas akhir ini dan tidak dapat penulis sebutkan satu persatu
Akhir kata, penulis berharap penulisan Skripsi ini dapat bermanfaat bagi para pembaca, terutama bagi para pembaca yang ingin melakukan penelitian di bidang yang sama.
Tangerang, Juli 2008
Penulis (David Hardison)
DAFTAR ISI Halaman KATA PENGANTAR DAFTAR ISI DAFTAR GAMBAR DAFTAR TABEL Bab I
PENDAHULUAN 1.1 Latar Belakang 1.2 Perumusan Masalah 1.3 Tujuan dan Manfaat 1.4 Ruang Lingkup Masalah 1.5 Metodologi Pemecahan Masalah 1.6 Sistematika Penulisan
1 1 2 3 3 4 5
BAB II
LANDASAN TEORI 2.1 Database atau Basis Data 2.2 Sistem Basis Data 2.2.1 Komponen Sistem Basis Data 2.2.2 Keuntungan dan Kerugian sistem basis data 2.3 Abstraksi Data 2.4 Bahasa Basis Data (Database Languange) 2.5 Enhanced Entity Relationship Diagram 2.5.1 Subclass dan Superclass 2.5.2 Generalisasi dan Specialisasi 2.6 Normalisasi Data 2.7 Entity 2.8 Relationship 2.9 Atribut 2.9.1 Klasifikasi Atribut 2.10 Entity Relationship Diagram 2.11 Kardinalitas 2.12 Statement SQL 2.12.1 Sintaks Perintah 2.13 Tahapan Perancangan dengan metode Database Life Cycle Connolly & Begg 2.13.1 Perencanaan Basis Data
7 7 8 8 14 16 17 19 20 21 22 26 27 28 29 34 35 38 38
i
48 49
2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21 2.22 2.23 2.24
2.13.2 Definisi Sistem 2.13.3 Analisis dan Pengumpulan kebutuhan 2.13.4 Desain Basis Data 2.12.4.1. Conceptual Level 2.12.4.2 Logical Level 2.12.4.3 Physical Level 2.13.5 Pemilihan DBMS 2.13.6 Desain Aplikasi 2.13.7 Prototyping 2.13.8 Implementasi 2.13.9 Konversi dan Loading Data 2.13.10 Testing Bahasa Pemrograman Definisi Sistem Definisi Informasi Sistem Informasi Penjualan dan Pembelian Retur Penjualan Retur Pembelian Stock Barang Stock Opname First-In First Out Last-In First Out
50 50 51 51 52 54 55 55 56 56 56 56 56 57 57 58 59 59 60 60 60 60 61
BAB III GAMBARAN UMUM PERUSAHAAN 3.1 Profil Perusahaan 3.1.1 Sejarah Singkat Perusahaan 3.1.2 Visi dan Misi Perusahaan 3.1.3 Struktur Organisasi 3.2 Analisa Sistem yang berjalan 3.2 Penjualan 3.3 Pembelian 3.3 Staff dan Efektifitas Kerja 3.4 Masalah 3.5 Pemecahan Masalah
62 62 62 63 63 65 65 66 66 67 68
BAB IV RANCANGAN SISTEM YANG DIUSULKAN 4. 1. Perancangan Basis Data 4. 1. 1 Rancangan Basis Data secara Konseptual
69 69 69
ii
4. 1. 2. Rancangan Basis Data Secara Logikal 4. 1. 3. Rancangan Basis Data Secara Fisikal 4. 2. Perancangan Aplikasi 4.2.1 Menu Connection ke Database 4.2.2 Menu Master 4.2.3 Menu View 4.2.4 Menu Transaksi 4.2.5 Menu Tools 4.2.6 Menu Laporan 4.2.7 Menu Settings 4.3 Biaya Implementasi Sistem Penjualan dan Pembelian pada Surya Photo 4.4 Staff dan Efektifitas kerja setelah Implementasi Sistem BAB V SIMPULAN DAN SARAN 5.1. Simpulan 5.2. Saran
153 154 155 155 156
DAFTAR PUSTAKA
157
LAMPIRAN
iii
87 99 136 136 137 140 143 147 147 152
DAFTAR GAMBAR Gambar 2.1 Gambar 2.2 Gambar 2.3 Gambar 2.4 Gambar 2.5 Gambar 2.6 Gambar 2.7 Gambar 2.8 Gambar 2.9 Gambar 3.1 Gambar 4.1 Gambar 4.2 Gambar 4.3 Gambar 4.4 Gambar 4.5 Gambar 4.6 Gambar 4.7 Gambar 4.8 Gambar 4.9 Gambar 4.10 Gambar 4.11 Gambar 4.12 Gambar 4.13 Gambar 4.14 Gambar 4.15 Gambar 4.16 Gambar 4.17 Gambar 4.18 Gambar 4.19 Gambar 4.20 Gambar 4.21 Gambar 4.22 Gambar 4.23 Gambar 4.24 Gambar 4.25 Gambar 4.26 Gambar 4.27 Gambar 4.28
Sistem Basis Data Struktur Sistem Basis Data Keseluruhan) Contoh Bagan Employee Contoh Spesialisasi dari Employee Contoh Generalisasi dari Kendaraan One-to-One Relationship One to Many Relationship Many-to-Many Relationship Database Life Cycle Struktur Organisasi PT. Indokarya Jaya Pratama Entitas dan Relasi pada Surya Photo ER-Model dengan Primary Key Validasi Model Konsepual Lokal terhadap Transaksi User Mengirimkan kunci utama sebagai kunci asing Tabel yang sudah Dinormalisasi ER-Model tahap desain logikal Enhanched ERD-Model Surya Photo Halaman Utama - Connection Menu Login Menu Master Barang Menu Master Distributor Menu Master Jasa Menu Master Operasional Item Menu Master Pelanggan Menu Master Stock Awal Berjalan Menu View Master Barang Menu View Master Jasa Menu View Master Distributor Menu View Master Pelanggan Menu View Stock Barang Menu View Operational Item Transaksi Pembelian Transaksi Retur Pembelian dengan Pembelian Transaksi Penjualan Transaksi Retur Penjualan dengan Penjualan Stock Barang Rusak Contoh Struk Penjualan Contoh Struk Retur Penjualan dengan Penjualan
iv
Halaman 10 12 20 21 22 36 37 37 49 64 73 85 86 89 92 97 98 136 137 137 138 138 139 139 140 140 141 141 142 142 143 143 144 144 145 145 146 146
Gambar 4.29 Gambar 4.30 Gambar 4.31 Gambar 4.32 Gambar 4.33 Gambar 4.34 Gambar 4.35 Gambar 4.36 Gambar 4.37 Gambar 4.38 Gambar 4.39 Gambar 4.40 Gambar 4.41
Tools Calculator Laporan Keuntungan Bulanan Laporan Transaksi per Agen Laporan Penjualan Laporan Pembelian Laporan Retur Penjualan Laporan Retur Pembelian Laporan Pendapatan Jasa Laporan Biaya Operasional Laporan 10 Barang Terlaris Laporan 10 Pelanggan Terbaik Laporan Stock Barang Menu Users
v
147 147 148 148 149 149 149 150 150 151 151 152 152
DAFTAR TABEL Tabel 2.1 Mahasiswa Tabel 2.2 Mata_Kuliah Tabel 2.3 Nilai_Mhs Tabel 2.4 Daftar Simbol Tabel 2.5 Struktur Tabel tMahasiswa Tabel 2.6 Pegawai Tabel 2.7 Output Query Insert Tabel 2.8 Output Query Kondisi Order_by Tabel 2.9 Output Query Select Tabel 2.10 Output Query Kondisi Where Tabel 2.11 Output Query Keyword Distinct Tabel 2.12 Output Query Update Tabel 2.13 Output Query Delete Tabel 4.1 Identifikasi Jenis Entitas Tabel 4.2 Identifikasi Jenis Relasi Tabel 4.3. Identifikasi atribut dan domain atribut tm_barang Tabel 4.4. Identifikasi atribut dan domain atribut tm_jasa Tabel 4.5. Identifikasi atribut dan domain atribut tt_penjualan Tabel 4.6. Identifikasi atribut dan domain atribut tt_retur_penjualan Tabel 4.7. Identifikasi atribut dan domain atribut tt_pembelian Tabel 4.8. Identifikasi atribut dan domain atribut tt_retur_pembelian Tabel 4.9. Identifikasi atribut dan domain atribut ts_stock_barang Tabel 4.10. Identifikasi atribut dan domain atribut ts_stock_barang_retur Tabel 4.11. Identifikasi atribut dan domain atribut tt_operational Tabel 4.12. Identifikasi atribut dan domain atribut tm_user Tabel 4.13. Identifikasi atribut dan domain atribut tm_distributor Tabel 4.14. Identifikasi atribut dan domain atribut tm_opr_cost Tabel 4.15. Identifikasi atribut dan domain atribut tt_hpp Tabel 4.16. Identifikasi atribut dan domain atribut tm_retur_hpp Tabel 4.17. Identifikasi atribut dan domain atribut tt_temp Tabel 4.18. Identifikasi atribut dan domain atribut tm_pelanggan Tabel 4.19. Daftar relasi tm_barang,tm_jasa,tt_penjualan, tt_retur_penjualan,tt_pembelian,tt_retur_pembelian tm_opr_cost, tt_operational, tm_user, tm_distributor, tm_pelanggan
vi
Halaman 26 27 28 34 40 42 43 44 45 46 46 47 48 69 71 75 75 76 77 78 79 79 80 80 81 82 82 82 83 83 83
90
Tabel 4.20. Referential Integrity Sistem Penjualan dan Pembelian Surya Photo Tabel 4.21. diagram pemetaan transaksi terhadap relasi (1) Tabel 4.22. diagram pemetaan transaksi terhadap relasi (2) Tabel 4.23. Estimasi Ruang tm_barang Tabel 4.24. Estimasi Ruang Disk tm_jasa Tabel 4.25. Estimasi Ruang Disk ts_stock_barang Tabel 4.26. Estimasi Ruang Disk ts_stock_barang_retur Tabel 4.27. Estimasi Ruang Disktm_user Tabel 4.28. Estimasi Ruang Disk tm_distributor Tabel 4.29. Estimasi Ruang Disk tm_opr_cost Tabel 4.30 Estimasi Ruang Disk tm_pelanggan Tabel 4.31 Estimasi Ruang Disk tt_penjualan_0 Tabel 4.32. Estimasi Ruang Disk tt_penjualan_1 Tabel 4.33. Estimasi Ruang Disk tt_penjualan_2 Tabel 4.34 Estimasi Ruang Disk tt_pembelian_0 Tabel 4.35. Estimasi Ruang Disk tt_pembelian_1 Tabel 4.36. Estimasi Ruang Disk tt_retur_pembelian_0 Tabel 4.37. Estimasi Ruang Disk tt_retur_pembelian_1 Tabel 4.38. Estimasi Ruang Disk tt_retur_penjualan_0 Tabel 4.39. Estimasi Ruang Disk tt_retur_penjualan_1 Tabel 4.40. Estimasi Ruang Disk tt_operational_0 Tabel 4.41. Estimasi Ruang Disk tt_operational_1 Tabel 4.42. Estimasi Ruang Disk tt_hpp Tabel 4.43. Estimasi Ruang Disk tt_retur_hpp Tabel 4.44. Estimasi Ruang Disk tt_temp Tabel 4.45. Kumulatif Satu Transaksi Tabel 4.46. Kumulatif dalam satu tahun Tabel 4.47. Biaya Implementasi Sistem Tabel 4.50. Biaya Maintenance Sistem Tabel 4.51. Anggaran Gaji Staff setelah Implementasi Sistem Tabel 4.52. Efektifitas Pembuatan Laporan Setelah Implementasi SIstem
vii
93 113 114 117 118 118 119 119 120 121 121 122 122 123 124 124 125 126 126 127 128 128 129 130 130 131 133 153 153 154 154
1
BAB I PENDAHULUAN
1.1
Latar Belakang Dalam sebuah usaha fotografi mencakup dua aspek bidang usaha, yaitu; penjualan barangbarang fotografi dan jasa usaha pemotretan. SURYA PHOTO didirikan pada 1993 yang bergerak dalam bidang cuci cetak foto (digital dan manual), video editing dan transfer video. Dengan
semakin
majunya
meningkatnya persaingan
taknologi
dan
perusahaan semakin
mengembangkan produk dan jasa layanannya dengan menjual kamera (digital dan manual), kertas foto, film, memory card, dan masih banyak lagi. Untuk
pencatatan
transaksi,
SURYA
PHOTO masih menggunakan cara manual dalam sistem penjualan dan pencatatan stok yaitu berupa kartu stok dan bon tulisan tangan, sehingga kadang menyulitkan untuk mengecek stok yang keluar dan masuk secara rinci. Apabila dalam penjualan sparepart terdapat kecacatan produk serta pengeluaran tambahan, kadang tidak tercatat dalam
retur
barang
dan
bon
pengeluaran,
sehingga dalam pembuatan laporan keuangan bulanan, tidak tercatat secara akurat.sehingga ada
2
perbedaan dalam pemasukan dan pengeluaran di lapangan dan dalam laporan keuangan. Dengan
kesadaran
bahwa
semakin
meningkatnya persaingan di dalam bisnis cucicetak
foto,
meningkatkan
Sentral
Photo
pelayanan
berkeinginan
dalam
memenuhi
kebutuhan pelanggan dengan mengembangkan sistem yang terintegrasi antar bagian di dalam perusahaa dalam rangka mendukung kelancaran usahanya dalam memanajemen stok, pencatatan transaksi harian baik penjualan maupun pembelian beserta pengeluaran/ biaya operasional sehingga memudahkan
pembuatan
laporan
keuangan
SURYA PHOTO untuk keperluan strategis dan finansial SURYA PHOTO.
1.2
Perumusan Permasalahan •
Bagaimana merancang sistem basis data sistem penjualan dan pembelian SURYA PHOTO dengan metode
Connolly
dan
Begg
serta
pengimplementasiannya dengan Visual Basic 6.0 dan Microsoft SQL Server 2000 ? •
Apakah penjualan
dengan dan
adanya pembelian
sistem dapat
kegiatan operasional SURYA PHOTO?
informasi menunjang
3
1.3
Batasan Masalah •
Menganalisis sistem penjualan dan pembelian yang berjalan dalam perusahaan SURYA PHOTO berdasar hasil pengamatan di lapangan.
•
Merancang sistem basis data berdasarkan hasil pengamatan sistem penjualan dan pembelian secara tunai yang berjalan di lapangan pada SURYA PHOTO dengan metode Connolly dan Begg
serta
mengimplementasiannya
dengan
Visual Basic 6.0 dan Microsoft SQL Server 2000. •
Pada Perancangan bagian pembelian, hanya mencatat transaksi pembelian yang di dapat dari pembelian secara manual.
1.4
Tujuan dan Manfaat Tujuan dari penulisan tugas akhir ini adalah : Membantu SURYA PHOTO dengan memberikan suatu alternatif sistem
melalui basis
perancangan
data
serta
dan
perangkat
implementasi lunak
yang
menangani : •
transaksi penjualan dan pembelian,retur penjualan dan pembelian.
•
Pengeluaran stok alat-alat fotografi sesuai dengan metode first in-first out berdasarkan tanggal Purchase Order.
•
Penbuatan Laporan-laporan transaksi penjualan alat-alat fotografi dan jasa cuci cetak, serta laporan keuangan sederhana.
4
Memberi informasi tentang manfaat sistem penjualan dan
pembelian
dalam
mencari
efisiensi
waktu
pembuatan laporan dan jumlah karyawan dengan membandingkan antara sistem lama dan sistem baru.
Manfaat dari penulisan tugas akhir ini adalah : Memberikan
sumbangan
hasil
pemikiran
berupa
perancangan serta implementasi sistem basis data dan perangkat lunak yang membantu pencatataan proses penjualan dan pembelian serta pencatatan stok yang akurat dengan metode first in-first out berdasarkan tanggal Purchase Order yang dilaksanakan SURYA PHOTO. Memberikan gambaran secara umum proses transaksi penjualan dan pembelian sebuah perusahaan cucicetak foto khususnya SURYA PHOTO.
1.5
Metodologi Dalam menganalisis dan merancang digunakan dua
metodologi penelitian yaitu : 1.
Metode Analisis Dalam metode analisis dan pendekatan yang dilakukan oleh penulis dalam menganalisis system yang sedang berjalan, antara lain :
a. Penelitian Kepustakaan Dalam penelitian kepustakaan, dikumpulkanlah dari berbagai literature yang mendukung untuk
5
melengkapi informasi yang dibutuhkan dalam skripsi ini.
b. Penelitian Lapangan Dalam penelitian lapangan, diperoleh data hasil pengamatan
proses
bisnis
penjualan
dan
pembelian pada SURYA PHOTO
2.
Metode Perancangan Dalam metode perancangan piranti lunak ini menggunakan metode DBLC (Data Base Life Cycle) onnolly dan Begg dan menampilkan gambaran sistem penjualan dan pembelian yang berjalan serta kebutuhan sistem yang akan dirancang dan diimplementasikan. Alat bantu piranti lunak yang akan digunakan adalah dengan menggunakan Visual Basic 6.0 dan Microsoft SQL Server 2000.
1.6
Sistematika Penulisan Sistematika penulisan skripsi ini diuraikan dalam lima bab dan isinya akan diuraikan sebagai berikut : BAB I PENDAHULUAN Dalam bab ini akan dibahas mengenai latar belakang penelitian,
ruang
lingkup,
tujuan
dan
manfaat
penelitian, metode yang digunakan dalam menganalisa dan merancang sistem basis data dan perangkat lunak penjualan dan pembelian pada SURYA PHOTO dan sistematika penulisannya.
6
BAB II LANDASAN TEORI Dalam bab ini akan diuraikan mengenai teori-teori yang mendukung yang berhubungan dengan penelitian ini.
BAB III GAMBARAN UMUM PERUSAHAAN Dalam bab ini dibahas mengenai latar belakang, sejarah, struktur organisasi serta gambaran sistem yang sedang berjalan pada SURYA PHOTO.
BAB IV PERANCANGAN SISTEM BASIS DATA DAN PERANGKAT LUNAK Dalam bab ini akan dijelaskan mengenai perancangan sistem basis data dan perangkat lunak yang dibangun untuk membantu pencatatan transaksi penjualan dan pembelian serta pencatatan stok yang akurat dengan metode first in-first out berdasarkan tanggal Purchase Order pada SURYA PHOTO.
BAB V SIMPULAN DAN SARAN Dalam bab ini akan dijelaskan kesimpulan dari skripsi ini dan saran yang diberikan berdasarkan perancangan sistem basis data dan perangkat lunak yang dibangun untuk membantu membantu membantu pencatatan transaksi penjualan dan pembelian serta pencatatan stok yang akurat
dengan metode first in-first out
berdasarkan tanggal Purchase Order pada SURYA PHOTO
7
BAB II LANDASAN TEORI
2.1 Database atau Basis Data
Menurut Bambang Hariyanto (p4, 2004), basisdata adalah kumpulan data ( Elementer ) yang secara logic berkaitan dalam merepresentasikan fenomena/fakta secara terstruktur dalam domain tertentu untuk mendukung aplikasi pada sistem tertentu. Basisdata mendeskripsikan state rganisasi/perusahaan/sistem. Saat satu kejadian muncul didunia
nyata
mengubah
state
organisasi/perusahaan/sistem maka satu perubahan pun harus dilakukan terhadap data yang disimpan di basisdata. Connolly dan Begg (2002; h14) menyatakan, basis data adalah penggunaan bersama dari data yang terhubung secara logic dan deskripsi dari data, yang dirancang untuk keperluan informasi dari suatu perusahaan. Tujuan konsep basis data adalah meminimumkan pengulangan
data
(data
redundancy)
dan
mencapai
independensi data. Pengulangan data (data redundancy) adalah duplikasi data, artinya data yang sama disimpan dalam beberapa file. Independensi data adalah kemampuan untuk membuat perubahan dalam struktur data tanpa membuat perubahan pada program yang memproses data. Independensi
data
dicapai
dengan
menempatkan
spesifikasi data dalam tabel dan kamus yang terpisah secara fisik dari program. Perubahan pada struktur data hanya dilakukan sekali, yaitu dalam tabel.
8
C.J
Date
(1999,
p5),
suatu
sistem
database adalah suatu sistem yang pada dasarnya menyimpan record – record didalam suatu file yang
dilakukan
tujuannya
secara
memelihara informasi
secara
komputerisasi
keseluruhan
informasi tersebut
dan
adalah
untuk
tersedia
yang untuk
membuat
berdasarkan
permintaan.
2.2 Sistem Basis Data Fathansyah (1999; h10) menyatakan sistem basis data adalah sistem yang terdiri atas kumpulan file (tabel) yang saling berhubungan (dalam sebuah basis data di sebuah
sistem
(Database
komputer)
Management
dan
sekumpulan
System
/
program
DBMS)
yang
memungkinkan beberapa pemakai dan atau program lain untuk mengakses dan memanipulasi file-file (tabel-tabel) tersebut. 2. 2. 1. Komponen Sistem Basis Data Fathansyah (1999; h10) menyatakan dalam sebuah sistem basis data, secara lengkap akan terdapat
komponen-komponen
utama
sebagai
berikut: 1. Perangkat Keras (Hardware) Hardware yang biasanya terdapat dalam sebuah sistem basis data adalah:
9
a. Komputer, satu untuk sistem yang standalone atau lebih dari satu untuk sistem jaringan. b. Memory sekunder yang on-line (harddisk). c. Memory sekunder yang off-line (Tape atau Removable Disk) untuk keperluan back up data. d.
Media / perangkat komunikasi (untuk sistem jaringan)
2. Sistem Operasi (Operating System) Menurut Fathansyah (1999; h11) sistem operasi yang
merupakan
mengaktifkan
sistem
program komputer,
mengendalikan seluruh sumber daya dalam komputer
dan
melakukan
operasi-operasi
dasar dalam komputer. 3. Basis Data (Database) Sebuah sistem basis data dapat memiliki beberapa basis data. Setiap basis data berisi sejumlah objek basis data (seperti file atau tabel, indeks, dan lain-lain). Di samping berisi data, setiap basis data juga menyimpan definisi struktur, baik untuk basis data maupun objek-objeknya secara detail. 4. Sistem pengelola basis data (DBMS) Fathansyah (1999; h11) menyatakan sistem manajemen basis data (Database Management
System
–
DBMS)
adalah
perangkat lunak yang dapat mengelola basis data yang akan menentukan bagaimana data
10
diorganisasikan,
disimpan,
diubah,
dan
diambil kembali. Adi
Nugroho
(2004;
h73)
menyatakan sistem manajemen basis data adalah perangkat lunak yang didesain untuk membantu dalam hal pemeliharaan utilitas kumpulan data dalam jumlah besar. DBMS dapat menjadi alternatif penggunaan secara khusus untuk aplikasi, misal penyimpanan data dalam file dan menulis kode aplikasi yang spesifik untuk pengaturannya. DBMS
adalah
bagian
perangkat
lunak yang didesain untuk memudahkan pekerjaan
pengelolaan
data.
Dengan
menyimpan data ke dalam suatu DBMS, akan lebih mudah daripada menyimpannya ke dalam sekumpulan sistem file. DBMS dapat digunakan
untuk
mengolah
data
efisien.
Gambar 2.1. Sistem Basis Data (Sumber: Fathansyah, 1999; h10)
secara
11
Sebuah
DBMS
terbagi
menjadi
modul-modul yang masing-masing memiliki tanggung jawab dalam membentuk struktur sistem
keseluruhan.
DBMS
memiliki
Umumnya sejumlah
sebuah komponen
fungsional (modul) seperti: a. File Manager, yang mengelola alokasi ruang dalam disk dan struktur data yang dipakai
untuk
merepresentasikan
informasi yang tersimpan dalam disk. Sebenarnya
sistem
operasi
(tempat
dimana DBMS diaktifkan) juga memiliki modul file manager, tetapi file manager di DBMS lebih difokuskan pada efisiensi dan efektivitas penyimpanan. b. Database Manager, yang menyediakan interface antara data low level yang ada di basis data dengan program aplikasi dan query yang diberikan ke sistem. c. Query Processor, yang menerjemahkan perintah-perintah dalam query language ke
perintah
low
level
yang
dapat
dimengerti oleh database manager. Di samping
itu,
query
processor
akan
mentransformasikan permintaan user ke bentuk yang lebih efisien, sehingga query menjadi lebih efektif.
12
d. DML Precompiler, yang mengkonversi perintah DML yang ditambahkan dalam sebuah program aplikasi ke pemanggilan prosedur normal dalam bahasa induk. Precompiler ini akan berinteraksi dengan query processor. e. DDL Compiler, yang mengkonversi perintah DDL ke dalam sekumpulan tabel yang mengandung metadata. Tabel-tabel ini kemudian disimpan dalam kamus data.
Gambar 2.2. Struktur Sistem Basis Data Keseluruhan (Sumber: Fathansyah, 1999; h16)
13
5. Pengguna (User) Ada
beberapa
jenis
pengguna
terhadap suatu sistem basis data yang dibedakan
berdasarkan
cara
berinteraksi
dengan sistem (Fathansyah, 1999;
h12),
yaitu:
a. Programmer Aplikasi Penguna yang berinteraksi dengan basis data melalui Data Manipulation Language (DML), yang disertakan dalam program yang ditulis dalam bahasa pemrograman induk. b. Pengguna Mahir (Casual User) Pengguna
yang
berinteraksi
dengan
sistem tanpa menulis modul program. Mereka menyatakan query untuk akses data dengan bahasa query yang telah disediakan oleh suatu DBMS. c. Pengguna Umum (End User) Penguna
yang
berinteraksi
dengan
sistem melalui pemanggilan satu program aplikasi permanen yang telah disediakan sebelumnya. d. Pengguna Khusus (Specialized User)
14
Pengguna yang menulis aplikasi basis data
non
konvensional,
tetapi
untuk
keperluan-keperluan khusus yang dapat saja mengakses basis data dengan atau tanpa DBMS yang bersangkutan. 6. Aplikasi lain yang bersifat optional Aplikasi lain ini bersifat opsional. Artinya, ada atau tidaknya tergantung pada kebutuhan kita. DBMS yang digunakan lebih berperan dalam pengorganisasian data dalam basis data, sementara bagi pengguna basis data (khususnya end user) dapat disediakan program khusus untuk melakukan pengisian, pengubahan, dan pengambilan data. Program ini ada yang sudah disediakan bersama dengan DBMS-nya, ada juga yang harus dibuat sendiri dengan menggunakan aplikasi lain. 2. 2. 2. Keuntungan dan kerugian sistem basis data Keuntungan dan kerugian sistem basis data antara lain: 1. Keuntungan sistem basis data adalah: a. Mengurangi kerangkapan data, yaitu data yang sama disimpan dalam berkas data yang
berbeda-beda
sehingga
dilakukan berulang-ulang.
update
15
b. Mencegah ketidak-konsistenan. c. Keamanan data dapat terjaga, yaitu data dapat dilindungi dari pemakai yang tidak berwenang. d. Integritas dapat dipertahankan. e. Data dapat dipergunakan bersama-sama. f. Menyediakan recovery. g. Memudahkan penerapan standarisasi. h. Data bersifat mandiri (data independence). i.
Keterpaduan data terjaga, memelihara keterpaduan data berarti data harus akurat. Hal ini sangat erat hubungannya dengan pengontrolan kerangkapan data dan pemeliharaan keselarasan data.
2. Kerugian sistem basis data adalah: a.
Diperlukan tempat penyimpanan yang besar.
b.
Diperlukan tenaga yang terampil dalam mengelola data.
c.
Perangkat lunaknya mahal.
d.
Kerusakan di sistem basis data dapat mempengaruhi departemen yang terkait.
16
2. 3. Abtraksi Data Menurut Fathansyah (1999; h13) abstraksi data merupakan tingkatan (level) dalam bagaimana melihat data dalam sebuah sistem basis data. Ada 3 (tiga) level abstraksi data, yaitu: 1. Level Fisik (Physical Level) Merupakan level terendah dalam abstraksi data, yang menunjukkan bagaimana sesungguhnya suatu data disimpan. Pada level ini, pemakai melihat data sebagai gabungan dari struktur dan datanya sendiri. Pemakai juga
berkompeten
dalam
mengetahui
bagaimana
representasi fisik dari penyimpanan data. Pada level ini kita berurusan dengan data sebagai teks, angka, atau bahkan melihatnya sebagai himpunan bit data.
2. Level Logic atau Konseptual (Conceptual Level) Merupakan level yang menggambarkan data apa yang sebenarnya (secara fungsional) disimpan dalam basis data dan hubungannya dengan data yang lain. Misalnya, pemakai pada level ini dapat mengetahui bahwa data pegawai disimpan dalam beberapa file (tabel). Seperti file pribadi, pendidikan, pekerjaan, keluarga, dan sebagainya.
17
3. Level Penampakan (View Level) Merupakan level tertinggi dari abstraksi data yang hanya menunjukkan sebagian basis data. Banyak user dalam sistem basis data tidak akan terlibat dengan semua data yang disimpan. Para user umumnya hanya membutuhkan sebagian data dalam basis data yang kemunculannya di mata pemakai diatur oleh aplikasi end-user. Aplikasi ini juga yang mengkonversi data fisik (asli) menjadi data lojik (bermakna) pada pemakai. Misalnya, data hari yang disimpan dalam bentuk kode (1 untuk Senin, 2 untuk Selasa, dan seterusnya) yang kemudian ditampilkan bukan dalam bentuk kodenya (1,2,3, dan seterusnya) tetapi sudah dalam bentuk nama harinya (Senin, Selasa, dan seterusnya). 2. 4. Bahasa Basis Data (Database Language) DBMS
(Database
Management
System)
merupakan perantara bagi pemakai dengan basis data dalam disk. Cara berkomunikasi antara pemakai dengan basis data tersebut diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Bahasa itu disebut Bahasa Basis Data yang terdiri atas sejumlah perintah yang diformulasikan dan dapat diberikan user dan diproses oleh DBMS untuk melakukan suatu aksi tertentu. Contohnya SQL, dBase, QUEL, dan sebagainya. Sebuah bahasa basis data biasanya dibagi menjadi dua bentuk, yaitu:
18
a. Data Definition Language (DDL) Struktur basis data yang menggambarkan desain basis data secara keseluruhan dispesifikasikan dengan bahasa khusus yang disebut Data Definition Language (DDL). Dengan bahasa inilah kita dapat membuat tabel baru, membuat indeks, mengubah tabel, menentukan struktur penyimpanan tabel, dan sebagainya. Hasil dari kompilasi perintah DDL adalah kumpulan tabel yang disimpan dalam file khusus yang disebut kamus data (data dictionary). Kamus data merupakan suatu metadata (superdata) yaitu data yang mendeskripsikan data sesungguhnya. Kamus data ini akan selalu diakses dalam suatu operasi basis data sebelum file data yang sesungguhnya diakses. b. Data Manipulation Language (DML) Digunakan untuk melakukan manipulasi dan pengambilan data pada suatu basis data. Manipulasi data dapat berupa: 1. Penyisipan atau penambahan data baru ke suatu basis data. 2. Penghapusan data dari suatu basis data. 3. Pengubahan data di suatu basis data. Pada level fisik, kita harus mendefinisikan algoritma yang memungkinkan pengaksesan yang efisien terhadap data. Pada level yang lebih tinggi, yang dipentingkan bukan hanya efisiensi akses, tetapi
19
juga
efisiensi
interaksi
pemakai
dengan
sistem
(kemudahan permintaan akses). Data Manipulation Language (DML) merupakan bahasa yang bertujuan memudahkan pemakai untuk mengakses data sebagaimana direpresentasikan oleh model data. Ada dua jenis DML, yaitu: - Prosedural,
yang mensyaratkan agar pemakai
menentukan,
data
apa
yang
diinginkan
serta
bagaimana cara mendapatkannya. - Non Prosedural, yang membuat pemakai dapat menentukan
data
apa
yang
diinginkan
tanpa
menyebutkan bagaimana cara mendapatkannya.
2. 5.
Enhanced Entity Relational Diagram en.wikipedia.org (diakses tanggal 8 Maret 2008) menyebutkan
bahwa
Entity-relationship
modeling
adalah suatu metoda modeling database bagan relational,
yang
digunakan
di
dalam
rekayasa
perangkat Iunak untuk menghasilkan suatu jenis dari model data konseptual (atau model data semantik) dari suatu sistem. Langkah
yang
menggunakan
pertama
desain
model-model
ini
sistem
informasi
selama
analisis
keperluan itu untuk menguraikan informasi memerlukan atau jenis informasi yang akan disimpan di suatu database. Di dalam kasus dari perancangan satu sistem
informasi
yang
didasarkan
pada
suatu
database, model data yang konseptual adalah, pada
20
suatu langkah atau tahap yang kemudiannya (biasanya disebut logical design), yang dipetakan kepada suatu model data logical, seperti relational model; kemudian dipetakan kepada suatu model physical selama desain secara fisik.
EER model concepts mengandung : –
semua konsep modeling dari Enitity Relationship dasar
–
konsep tambahan :
subclasses/superclasses
specialization/generalization
categories (UNION types)
attribute dan relationship inheritance
2.5.1 Subclass dan Superclass Superclass adalah suatu tipe entitas yang termasuk satu atau lebih subgrouping yang terpisah,tentang detailnya,diperlukan dalam pembuatan data model. Subclass adalah pemisahan subgrouping detail dari tipe entitas, yang diperlukan dalam pembuatan data model.
21
SECRETARY ENGINEER EMPLOYEE TECHNICIAN
SALARIED_EMPLOYEE HOURLY_EMPLOYEE Gambar 2.3 Contoh bagan Employee
Dari contoh Gambar 2.3, didapat : Superclasses: EMPLOYEE Subclasses:
SECRETARY, ENGINEER, TECHNICIAN, SALARIED_EMPLOYEE, HOURLY_EMPLOYEE
2.5.2 Generalisasi dan Spesialisasi Spesialisasi adalah Proses tentang memaksimalkan perbedaan antara para anggota dari suatu kesatuan dengan mengidentifikasi karakter mereka yang menjadi pembeda.
22
EMPLOYEE d
∪
∪
∪
∪
d
MANAGER SECRETA RY
TECHNICI AN
ENGINEE R
∪
∪
HOURLY_E MP
SALARIED E
MANAGES
BELONGS_T
PROJEC
TRADE_UNI ON
Gambar 2.4 Contoh Spesialisasi dari Employee
Generalisasi
adalah
Proses
tentang
meminimalkan
perbedaan antara para anggota dari suatu kesatuan dengan mengidentifikasi karakteristik umum mereka. NoOfPassengers
LicensePlateNo
MaxSpeed
NoOfAxies Tonnage
Price
CAR
LicensePlateNo
TRUCK
VehicleID
Price
VehicleID
VehicleID
Price
LicensePlateNo
VEHICL NoOfPassengers
∪
d
∪
NoOfAxies
MaxSpeed
CAR
TRUCK
Tonnage
Gambar 2.5 Contoh Generalisasi Kendaraan
2. 6.
Normalisasi Data Rob mengungkapkan
& bahwa
Coronel(2002, normalisasi
p176) merupakan
23
sebuah proses untuk menempatkan atribut-atribut ke entitas. Normalisasi mengurangi redundansi data dan, melalui perluasan, membantu menghapuskan kelainan data yang merupakan hasil dari redundansiredundansi tersebut. Normalisasi tidak menghapus redundansi data; sebagai ganti, normalisasi tersebut menghasilkan redundansi yang terkontrol yang dapat membuat kita menghubungkan tabel-tabel dalam basis data. Menurut Connolly & Begg(2002, p376), normalisasi
adalah
sebuah
teknik
untuk
menghasilkan sekumpulan relasi dengan properti yang dinginkan, yang akan memberikan kebutuhan data bagi perusahaan. Relasi adalah sebuah tabel dengan kolom dan baris. Basis data dianggap normal jika basis data tersebut tidak mengulangi data(data redundancy) atau tidak menimbulkan keanehan pada proses
update,
delete,
atau
insert.
Tujuan
normalisasi yaitu : 1.
Menghilangkan kumpulan relasi dari inserting, updating, dan delete dependency yang tidak diharapkan.
2.
Mengurangi kumpulan
kebutuhan relasi
dan
restrukturisasi
meningkatkan
life
span(jangka hidup) program aplikasi. 3.
Membuat
model
relational
yang
lebih
informatif. 4.
Membuat sekecil mungkin terjadinya data rangkap.
24
5.
Menghindarkan konsisten
adanya
data
terutama
bila
yang
tidak
dilakukan
penghapusan atau penambahan data sebagai akibat adanya data rangkap. 6.
Menjamin
bahwa
identitas
tabel
secara
tunggal sebagai determinant(yang utama). Untuk
menghindarkan
update
anomalies(relasi yang memiliki pengulangan atau redundansi data yang menyebabkan masalah), biasanya dianjurkan sampai pada tahap ketiga(3NF). Berikut merupakan normal form(Connolly & Begg, 2002, pp387-394) :
1. First Normal Form(1NF) Sebelum memasuki tahap 1NF, status sebelum 1NF disebut dengan Unnormalized Form(UNF), yaitu sebuah tabel yang mengandung satu atau lebih kelompok yang berulang. First Normal Form(1NF) adalah sebuah relasi di mana persimpangan dari setiap baris dan kolom yang mengandung satu dan hanya satu nilai saja. Untuk mengubah tabel UNF ke dalam 1NF harus
mengidentifikasi
dan
menghilangkan
repeating group tabel. Sebuah repeating group merupakan sebuah atribut atau kumpulan atribut pada suatu tabel yang terdapat lebih dari satu nilai(multiple) untuk sebuah kejadian tunggal dari key atributnya. Ada 2
pendekatan
25
umum untuk menghilangkan repeating group pada tabel UNF, yaitu : a. Pendekatan pertama, menghilangkan repeating group
dengan
memasukkan
data
yang
berlebihan ke dalam kolom dan baris yang kosong. Sehingga hasil dari tabel nantinya hanya mengandung nilai atomik(tunggal).
b. Pendekatan kedua, menghilang kan repeating group
dengan
berlebihan,
menempatkan
selanjutnya
dengan
data
yang
meng-copy
atribut kuncinya yang asli dalam sebuah relasi yang dipisahkan.
2. Second Normal Form(2NF) 2NF adalah sebuah relasi dimana pada bentuk normal pertama dan setiap atribut yang bukan primary key adalah secara fungsional tergantung dengan primary key. Proses normalisasi 1NF ke 2NF melibatkan penghilangan
partial
dependencies.
Jika
terdapat partial dependencies, maka atribut functionality dihilangkan
dependent dengan
dari
relasi
akan
menempatkkanya
pada
sebuah relasi baru bersama dengan copy determinant mereka. 3. Third Normal Form(3NF) 3NF adalah sebuah relasi di mana bentuk normal pertama dan kedua dan di mana tidak
26
ada atribut yang bukan primary key secara transitif bergantung pada primary key. Transitive dependency adalah sebuah kondisi di mana A, B, dan C adalah atribut dari relasi di mana AÆB dan BÆC, maka C adalah transitive dependency pada A melalui B. Proses normalisasi dari relasi 2NF ke 3NF melibatkan penghilangan dari ketergantungan
transitif.
ketergantungan
teransitif
dihilangkan
Jika
ketergantungan
sebuah
muncul,
maka
transitif
antara
atribut dengan menempatkan atribut tersebut ke dalam seleksi baru, selanjutnya dengan sebuah salinan dari determinannya.
2. 7. Entity Entity adalah suatu objek yang terdiri dari kumpulan data atau elemen yang dapat dibedakan
dari
objek
lainnya.
Entity
direpresentasikan oleh sejumlah attribute yang mempunyai nilai (value) yang sesuai dengan atributnya. Sekumpulan dari entity yang sejenis disebut
dengan
entity
set.
Entity
set
direpresentasikan dalam bentuk tabel dan nama yang unik. Setiap tabel terdiri dari sejulah kolom, dimana masing-masing kolom diberi nama yang unik.
27
Contoh entity dan entity set: Tabel 2.1. Mahasiswa NIM
Nama_Mhs
Alamat_Mhs
Tanggal_Lahir
2003-81-021
Kiki Mulyani
Serpong
09 Okt 1985
2003-81-052
Ellen Lim
Cimone
07 Nov 1984
2003-81-053
Anna Maria
Cimone
09 Sept 1985
- Sebuah entity tertentu dibentuk dari: {(NIM,
2003-81-021),
Mulyani),
(Nama_Mhs,
(Alamat_Mhs,
Kiki
Serpong),
(Tanggal_lahir, 09 Okt 1985)} - Entity set: Entity set Mahasiswa
2. 8 Relationship Relationship adalah adalah hubungan yang terjadi antara dua
entitas atau lebih.
Relationship digunakan untuk meringkas data yang ada dalam database sehingga penggunaan data
menjadi
relationship
lebih
yang
relationalship set.
fleksibel.
sejenis
Sekumpulan
disebut
dengan
28
Contoh
Relationship
dan
Relationship
set
(menggunakan tabel 2.10.): Tabel 2.2. Mata_Kuliah Kode_MK
Nama_MK
SKS
Semester
Inf 110
Matematika Diskrit
3
1
Inf 122
Struktur Data
4
2
Inf 211
Sistem Basis Data
4
3
Inf 212
Sistem Operasi
4
3
Tabel 2.3. Nilai_Mhs Nama_MK
NIM
Nilai
Sistem Basis Data
2003-81-021
C
Matematika Diskrit
2003-81-053
B
Sistem Operasi
2003-81-021
A
Struktur Data
2003-81-052
B
- Sebuah Relationship tertentu dibentuk dari: {(NIM, 2003-81-021), (Nama_MK, Sistem Basis Data), (Nilai, C)} - Relationship set: Relationship set Nilai_Mhs
29
2. 9 Atribut Atribut adalah property dari entity atau relationship. Atau karakteristik dari entity atau relationship yang menyediakan penjelasan detail tentang entity atau relationship tersebut. Contoh Atribut: 1.
tabel Mahasiswa, atribut
:
NIM, Nama_Mhs, Alamat_Mhs, dan Tanggal_Lahir.
2.
tabel Dosen, atribut
:
Nama_Dos, dan Alamat_Dos.
3.
tabel Mata_Kuliah, atribut
:
Kode_MK,
Nama_MK,
Semester. Atribut
dapat
dibedakan
menjadi
2
berdasarkan sejumlah pengelompokkan, yaitu: - Atribut identifikasi (key attribute), yang digunakan untuk menentukan suatu entity secara unik -
Atribut
deskriptif
(non
key
attribute),
yang
digunakan untuk menspesifikasikan karakteristik dari suatu entity yang tidak unik.
2. 9. 1. Klasifikasi Atribut Fathansyah (1999; h40) menyatakan, atribut terbagi atas beberapa klasifikasi, yaitu: 1. Key dan Atribut Deskriptif Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan semua baris data (row) dalam tabel secara unik. Artinya,
SKS
dan
30
jika suatu atribut dijadikan sebagai key, maka tidak boleh ada dua atau lebih baris data dengan nilai yang sama untuk atribut tersebut. Ada 3 (tiga) macam key yang dapat diterapkan dalam suatu tabel, yaitu: a) Superkey merupakan satu atau lebih atribut yang dapat membedakan setiap baris data dalam sebuah tabel secara unik. Contoh pada tabel 2.10. Mahasiswa, yang dapat menjadi superkey adalah: -(NIM,Nama_Mhs,Alamat_Mhs,Tgl_Lahir) -(NIM,Nama_Mhs, Alamat_Mhs) - (NIM, Nama_Mhs) -(Nama_Mhs), apabila kita bisa menjamin tidak ada nilai yang sama untuk atribut ini. - (NIM) b)
Candidate-Key
merupakan
kumpulan
dari
atribut minimal yang dapat membedakan setiap baris data dalam sebuah tabel secara unik. Sebuah Candidate-Key tidak boleh berisi atribut atau kumpulan atribut yang telah menjadi superkey yang lain. Jadi, sebuah Candidate-Key pastilah superkey, tapi belum tentu sebaliknya. Contoh pada tabel 2.10. yang dapat menjadi Candidate-Key adalah: - (NIM)
31
-(Nama_Mhs), apabila kita bisa menjamin tidak ada nilai yang sama untuk atribut ini. c) Primary Key merupakan key yang lebih sering digunakan sebagai acuan, lebih ringkas, dan jaminan keunikannya lebih baik. Contoh pada tabel 2.10. Mahasiswa, yang dapat menjadi primary Key adalah: - (NIM) d) Alternate Key adalah candidate-key yang tidak terpilih sebagai primary key. - (Nama_Mhs), apabila kita bisa menjamin tidak ada nilai yang sama untuk atribut ini. e) Composite Key merupakan sebuah candidatekey yang terdiri dari dua atau lebih atribut f)
Foreign Key merupakan Non-key atribut pada relasi yang juga menjadi primary key atribut pada relasi lainnya. Biasanya digunakan sebagai penghubung antar record dari kedua relasi.
Atribut deskriptif adalah atribut-atribut yang tidak menjadi atau merupakan anggota dari primary Key. Jadi, atribut-atribut Nama_Mhs, Alamat_Mhs dan Tanggal_Lahir digolongkan sebagai atribut deskriptif.
32
2. Atribut Sederhana (Simple Attribute) dan Atribut Komposit (Composite Attribute) Atribut Sederhana adalah atribut atomik yang tidak dapat dipilah lagi. Contoh pada tabel 2.10.
atribut
Nama_Mhs
merupakan
atribut
komposit
adalah
sederhana. Sedangkan
atribut
atribut yang masih dapat diuraikan lagi menjadi sub-sub atribut yang masing-masing memiliki makna.
Contoh
pada
tabel
2.10.
atribut
Alamat_Mhs merupakan atribut komposit, karena dapat diuraikan lagi menjadi beberapa sub atribut seperti Alamat, Nama_Kota, dan Kode_Pos, yang masing-masing memiliki makna. 3. Atribut Bernilai Tunggal (Single Valued Attribute) dan Atribut Bernilai Banyak (Multi Valued Attribute) Atribut bernilai tunggal ditujukan pada atribut-atribut yang memiliki paling banyak satu nilai setiap baris data. Contoh pada tabel 2.10. semua atribut (NIM, Nama_Mhs, Alamat_Mhs, dan
Tgl_Lahir)
merupakan
atribut
bernilai
tunggal, karena atribut-atribut tersebut hanya dapat berisi 1 (satu) nilai. Sedangkan
atribut
bernilai
banyak
ditujukan pada atribut-atribut yang dapat d2si dengan lebih dari 1 (satu) nilai, tetapi jenisnya sama. Contoh pada tabel 2.10. kita dapat
33
menambahkan mahasiswa
atribut
hobi
tersebut.
pada
Karena
data
seorang
mahasiswa ada yang memiliki hobi lebih dari 1 (satu) dan bahkan ada yang tidak memiliki hobi.
4. Atribut Harus Bernilai (Mandatory Attribute) dan Nilai Null Ada sejumlah atribut pada sebuah tabel yang ditetapkan harus berisi data. Jadi nilainya tidak boleh kosong. Atribut semacam ini disebut Mandatory Attribute. Contoh pada tabel 2.10. atribut NIM dan Nama_Mhs dapat digolongkan
sebagai
Mandatory
Attribute,
karena setiap mahasiswa yang datanya ingin disimpan ke tabel tersebut, paling tidak harus diketahui dengan pasti NIM dan Nama-nya. Sebaliknya, ada pula atribut-atribut lain pada suatu tabel yang nilainya boleh dikosongkan (Non Mandatory Attribute) Nilai
Null
digunakan
untuk
mengisi
atribut-atribut yang nilainya memang belum siap atau tidak ada.
5. Atribut Turunan (Derived Attribute) Atribut turunan adalah atribut yang nilainilainya diperoleh dari pengolahan atau dapat diturunkan dari atribut atau tabel lain yang
34
berhubungan. Atribut demikian sebenarnya dapat ditiadakan dari sebuah tabel, karena nilai-nilainya bergantung pada nilai yang ada di atribut lainnya. Contoh pada tabel 2.10. dapat ditambahkan atribut ip (indeks prestasi). Nilai-nilainya diperoleh dari pengolahan yang melibatkan atribut Indeks_Nilai yang ada pada tabel Nilai dan atribut SKS yang ada pada tabel Mata_Kuliah. 2. 10. Entity Relationship Diagram Connolly dan Begg (2002; h:111) menyatakan Entity
Relationship
Diagram
(ERD)
adalah
suatu
pendekatan top-down untuk medesain basis data yang dimulai dengan mengidentifikasi data yang penting (entity) dan relationships antara data yang harus diwakilkan di dalam model. Notasi-notasi simbolik yang digunakan dalam ERD antara lain: Tabel 2.4. Daftar Simbol NO
SIMBOL
KETERANGAN
SIMBOL ERD
1
NamaEntitas
NamaRelasi 2
entity set
Relasi ditandai dengan nama relasi dan tanda panah.
35
NilaiMin…NilaiMax
NilaiMin…NilaiMax
3
Relasi
dengan
multiplicity (NilaiMin…NilaiMax).
NamaRelasi 4
NamaEntitas
Dua NamaEntitas
entitas
berhubungan
yang dalam
suatu relasi. SIMBOL OCCURRENCE DIAGRAM
NamaEntitas
Set
entitas
dilambangkan 1
Atribut ● Atribut ● Atribut
dengan
NamaEntitas & atributatributnya.
Penggambaran antar
dua
relasi entitas,
dimana garis-garis yang 2
menghubungkan kedua entitas
menunjukkan
multiplicity-nya.
Lanjutan Tabel 2.4. Daftar Simbol
36
2. 11. Kardinalitas Kardinalitas atau tingkat hubungan yang terjadi antara satu entitas dengan entitas lain atau dengan suatu relasi. Kardinalitas menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain. Kardinalitas yang terjadi di antara dua himpunan entitas dapat berupa: a. One-to-One (1:1) Relationship Tingkat hubungan yang dinyatakan satu ke satu jika suatu kejadian pada entitas pertama hanya mempunyai
satu
hubungan
dengan
satu
kejadian pada entitas kedua. Demikian juga sebaliknya, satu kejadian pada entitas yang kedua hanya bisa mempunyai satu hubungan dengan
satu
kejadian
pada
entitas
pertama.
Contoh:
Gambar 2.6. One-to-One Relationship b. One-to- Many (1:M) Relationship
yang
37
Tingkat hubungan satu ke banyak ( 1 : M ) adalah sama dengan banyak ke satu ( M : 1 ), tergantung
dari
arah
mana
hubungan
–
hubungan tersebut di lihat. Untuk satu kejadian pada entitas yang pertama dapat mempunyai banyak hubungan dengan entitas pada kejadian yang kedua. Sebaliknya, satu kejadian pada entitas yang kedua hanya bisa mempunyai satu hubungan dengan satu kejadian pada entitas yang pertama.
Contoh:
Gambar 2.7. One-to-Many Relationship c. Many -to- Many (M:N) Relationship Tingkat hubungan banyak ke banyak terjadi jika tiap
kejadian
pada
sebuah
entitas
akan
mempunyai banyak hubungan dengan kejadian pada entitas lainnya. Baik dilihat dari sisi entitas yang pertama maupun dilihat dari sisi entitas yang kedua. Contoh:
38
Gambar 2.8. Many -to-Many Relationship 2. 12. Statemen MICROSOFT SQL SERVER 2000 Kadir (2002; h353) mendefinisikan Microsoft SQL Server 2000 sebagai salah satu jenis database server yang sangat terkenal. Kepopulerannya disebabkan Microsoft SQL Server 2000 menggunakan SQL (Structure Query Language) sebagai bahasa dasar unrtuk mengakses databasenya. Microsoft SQL Server 2000 termasuk jenis RDBMS (Relational Database Management System). Itulah sebabnya istilah seperti tabel, baris, kolom digunakan pada Microsoft SQL Server 2000. Pada Microsoft SQL Server 2000, sebuah database mengandung satu atau sejumlah tabel. Tabel terdiri atas sejumlah baris dan setiap baris mengandung satu atau beberapa kolom.
2. 12. 1. Sintaks Perintah - SHOW DATABASE Untuk mengetahui nama-nama basis data yang terdapat pada MySQL SHOW DATABASE;
39
- CREATE DATABASE Untuk menciptakan basis data baru CREATE DATABASE [nama basis data]; Contoh: membuat basis data Akademik CREATE DATABASE Akademik; - USE DATABASE Untuk melakukan koneksi ke suatu basis data USE [nama basis data]; Contoh: USE Akademik; - DROP DATABASE Untuk menghapus basis data DROP DATABASE [nama basis data]; Contoh: DROP DATABASE Akademik;
- CREATE TABLE Untuk membuat tabel baru dalam basis data CREATE TABLE [nama tabel] ([nama field] [tipe data], [nama field] [tipe data], …);
40
Contoh: membuat tabel tMahasiswa CREATE TABLE tMahasiswa (NIM char(11), Nama_Mhs char(30)); Untuk
membuat
tabel
baru
dengan
menggunakan batasan PRIMARY KEY CREATE TABLE [nama tabel] ([nama field] [tipe data] [batasan], [nama field] [tipe data], …); Contoh: CREATE
TABLE
tMahasiswa
(NIM
char(11) primary key not null, Nama_Mhs char(30) not null); - SHOW TABLES Untuk mengetahui tabel-tabel yang terdapat pada suatu basis data SHOW TABLES; - DESCRIBE TABLE Untuk mengetahui struktur suatu tabel DESCRIBE [nama tabel]; Contoh: DESCRIBE tMahasiswa;
41
Tabel 2.5. Struktur Tabel tMahasiswa Field
Type
Null
Key
NIM
Cahr(11)
Not null
Pri
Nama_Mhs
Char(30)
Not null
Default
Extra
- DROP TABLE Untuk menghapus tabel yang sudah dibuat dalam suatu basis data DROP TABLE [nama tabel]; Contoh: menghapus tabel tMahasiswa DROP TABLE tMahasiswa; - ALTER TABLE Untuk menambah field pada tabel tertentu yang sudah dibuat dalam suatu basis data ALTER TABLE [nama tabel] ADD [nama field baru] [tipe data], [nama field baru] [tipe data], ... ; Contoh: ALTER
TABLE
Alamat_Mhs
tMahasiswa
varchar(50),
ADD
Tanggal_Lahir
datetime; Untuk
merubah
struktur
diciptakan
field
yang
telah
42
ALTER TABEL [nama tabel] MODIFY [nama field yang akan dimodifikasi] [tipe data baru]; Contoh: ALTER
TABLE
tMahasiswa
MODIFY
Alamat_Mhs nvarchar(50); - INSERT Untuk menambahkan nilai data pada field-field INSERT INTO [nama tabel] ( [nama field1], [nama field2], [...] ) VALUES ([nilai data1], [nilai data2] , […]); Contoh: INSERT INTO Pegawai (NIP, Nama_Pegawai, Jabatan, gaji) VALUES (‘006’,’Rima’,’Sales’,’2200000’); Tabel 2.6. Pegawai NIP
Nama_Pegawai
Jabatan
Gaji
001
Sudirman
Dirut
10000000
002
Basuki
Dirkeu
9000000
003
Wawan
Manager
5000000
004
Chintya
Sales
2000000
005
Hasan
Programmer
3000000
43
Tabel 2.7. Output Query Insert NIP
Nama_Pegawai
Jabatan
Gaji
001
Sudirman
Dirut
10000000
002
Basuki
Dirkeu
9000000
003
Wawan
Manager
5000000
004
Chintya
Sales
2000000
005
Hasan
Programmer
3000000
006
Rima
Sales
2200000
- SELECT Untuk melihat semua baris dan kolom dari tabel SELECT * FROM [nama tabel]; Contoh: SELECT * FROM Pegawai; Untuk mengurutkan nilai attribut yang ada dalam tabel SELECT * FROM [nama tabel] ORDER BY [nama field]; Contoh:
44
SELECT * FROM pegawai ORDER BY Nama_Pegawai; Tabel 2.8. Output Query kondisi Order By NIP
Nama_Pegawai
Jabatan
Gaji
002
Basuki
Dirkeu
9000000
004
Chintya
Sales
2000000
005
Hasan
Programmer
3000000
006
Rima
Sales
2200000
001
Sudirman
Dirut
10000000
003
Wawan
Manager
5000000
Untuk menghasilkan semua baris data dari kolom yang ingin ditampilkan dari tabel SELECT [nama field1], [nama field2], [...] FROM [nama tabel]; Contoh: SELECT Pegawai;
NIP,
Nama_Pegawai
FROM
45
Tabel 2.9. Output Query Select NIP
Nama_Pegawai
001
Sudirman
002
Basuki
003
Wawan
004
Chintya
005
Hasan
006
Rima
Untuk mencari semua baris dan kolom dari tabel dengan kondisi yang harus terpenuhi. SELECT [nama field1], [nama field2], [...] FROM [nama tabel] WHERE [kondisi]; Contoh: SELECT NIP, Nama_Pegawai FROM Pegawai WHERE Jabatan = ‘Sales’ ;
46
Tabel 2.10. Output Query kondisi Where NIP
Nama_Pegawai
004
Chintya
006
Rima
Untuk menspesifikasikan nilai atribut tidak diduplikasi. SELECT DISTINCT [nama field] FROM [nama tabel]; Contoh: SELECT
DISTINCT
Jabatan
FROM
Pegawai; Tabel
2.11.
Output
Distinct Jabatan Dirut Dirkeu Manager Sales Programmer
Query
Keyword
47
- UPDATE Untuk mengganti satu atau beberapa buah data yang telah ada di dalam tabel. UPDATE [nama tabel] SET [nama field1]=[nilai data1], […] = […] WHERE [nama field]=[kondisi]; Contoh: UPDATE Pegawai SET Gaji=’2500000’ WHERE Nama_Pegawai=’ Chintya’;
Tabel 2.12. Output Query Update NIP
Nama_Pegawai
Jabatan
Gaji
004
Chintya
Sales
2500000
- DELETE Untuk menghapus data yang telah ada di dalam tabel. DELETE FROM [nama tabel] WHERE [kondisi]; Contoh: DELETE
FROM
Pegawai
Nama_Pegawai=’ Wawan’;
WHERE
48
Tabel 2.13. Output Query Delete NIP
Nama_Pegawai
Jabatan
Gaji
001
Sudirman
Dirut
10000000
002
Basuki
Dirkeu
9000000
004
Chintya
Sales
2000000
005
Hasan
Programmer
3000000
006
Rima
Sales
2200000
2. 13. Tahapan Perancangan dengan metode Database Life Cycle (DBLC) Connolly & Begg Sistem basis data merupakan komponen yang fundamental dari organisasi sistem informasi yang besar, database aplication lifecycle sudah menjadi sifat yang dihubungkan dengan siklus hidup dari sistem informasi.
49
Gambar. 2.9. Database Lifecycle (Sumber: Connolly dan Begg, 2002; h272)
2. 13. 1. Perencanaan Basis Data Connolly dan Begg, 2002 menyatakan, Perencanaan Basis Data yaitu Merencanakan bagaimana tingkatan dari siklus hidup dapat dicapat dengan sangat efisien dan efektif.
50
- Menganalisis dan memperbaiki sistem basis data yang ada
jika ada kelemahan struktur dari
sistem yang sedang berjalan. - Menyediakan informasi yang lebih lengkap yang berhubungan
dengan
informasi
persediaan
barang.
2. 13. 2. Definisi sistem Pihak SURYA PHOTO belum memiliki sistem basis data terkomputerisasi. data yang ada dalam format Microsoft excel dan word, serta printout
document.
Rencananya
akan
digunakan
Microsoft Visual Basic 6.0 dan DBMS Microsoft SQL SERVER 2000 sebagai basis pembuatan aplikasi sistem penjualan dan pembelian pada SURYA PHOTO dan merancang databasenya.
2. 13. 3. Analisis dan Pengumpulan Kebutuhan Proses dari
informasi pengumpulan
data dan analisis tentang bagian-bagian dari organisasi yang didukung dengan aplikasi basis data,
dan
menggunakan
informasi
untuk
mengetahui user requirement dari sistem yang diperbaharui.
51
2. 13. 4. Desain Basis Data 2.13.4.1. Conceptual Level Conceptual Level, menggambarkan data apa yang sebenarnya (secara fungsional) disimpan dalam basis data dan hubungannya dengan data yang lain. Desain basis data secara konseptual adalah proses membangun sebuah model informasi yang digunakan pada sebuah perusahaan, terlepas dari semua pertimbangan fisik (Conolly; 2002; h419). Langkah-langkah dalam membangun basis data secara konseptual, yaitu: a. Identifikasi jenis entitas, untuk mengidentifikasi jenis entitas utama yang dibutuhkan. b. Identifikasi jenis relasi, untuk mengidentifikasi relationship penting yang ada diantara entitas yang telah di identifikasi. c. Identifikasi dan menghubungkan atribut-atribut dengan
jenis
menghubungkan
entitas
atau
relasi,
untuk
atribut-atribut
dengan
entitas
atau relasi yang tepat. d. Menentukan domain atribut, untuk menentukan domain-domain untuk atribut pada model data konseptual. e. Menentukan atribut kandidat dan atribut kunci, untuk mengidentifikasi kandidat kunci untuk tiap
52
entitas dan, jika ada lebih dari satu kandidat kunci, memilih salah satunya sebagai kunci utama. f. Menggunakan konsep pemodelan tingkat lanjut, untuk
memperhitungkan
tingkat
lanjut,
seperti
konsep
pemodelan
spesialisasi/generalisasi,
agregasi, dan komposisi. g. Memeriksa model terhadap rendundancy, untuk memeriksa adanya rendundancy dalam model. h.
Memvalidasi
model
konseptual
terhadap
transaksi user, untuk memastikan bahwa model konseptual mendukung transaksi-transaksi yang dibutuhkan user. j.
Mereview model data konseptual terhadap
user, untuk mereview model data konseptual terhadap user utnuk meyakinkan bahwa model yang dibangun benar-benar menggambarkan view.
2.13.4.2 Logical Level Logical Level, proses pembuatan sebuah model nformasi yang digunakan dalam suatu organisasi berdasarkan model data spesifik, akan tetapi tidak memperhatikan pertimbangan DBMS tertentu atau ketentuan fisik lain. Desain basis data secara logikal merupakan proses membangun sebuah model informasi yang digunakan pada sebuah perusahaan berdasarkan
53
sebuah model data spesifik, tetapi masih terlepas dari pertimbangan DBMS dan pertimbangan fisik lainnya (Conolly; 2002; h419). Langkah-langkah dalam membangun basis data secara logikal, adalah: a. Menghilangkan fitur yang tidak kompatibel dengan
model
relasi
(opsional),
untuk
memperhalus model data konseptual dengan menghilangkan
fitur
yang
tidak
kompatibel
terhadap model relasi. b. Mengambil relasi untuk model data logikal, untuk membuat relasi-relasi untuk model data logikal dengan menggambarkan entitas, relasi, dan atribut yang telah d2dentifikasi. c. Memvalidasi relasi menggunakan normalisasi, untuk memvalidasi relasi-relasi pada model data logikal menggunakan teknik normalisasi. d. Memvalidasi relasi terhadap transaksi user, untuk meyakinkan bahwa relasi yang ada pada model data logikal mendukung transaksi yang dibutuhkan view. e.
Mendefinisikan
batasan
integritas,
untuk
mendefinisikan batasan integritas yang diberikan kepada view. f.
Mereview model relasi logikal terhadap user,
untuk
meyakinkan
model
data
logical
dan
54
mendukung dokumentasi yang menggambarkan kebenaran model. 2.13.4.3 Physical Level Physical
Level,
user
melihat
data
sebagai
gabungan dari struktur dan datanya sendiri. Pada level ini kita berurusan dengan data sebagai teks, sebagai angka, atau sebagai himpunan bit data. Desain
fisik
basis
data
merupakan
proses
menghasilkan sebuah deskripsi penerapan basis data pada secondary storage. Menjelaskan relasi dasar, organisasi file, dan penggunaan index untuk mencapai efisiensi dalam pengaksesan data, dan beberapa batasan integritas dan ukuran keamanan (Conolly; 2002; h419). Langkah-langkah dalam membangun fisik basis data, yaitu: a. Mendesain relasi dasar, untuk memutuskan bagaimana merepresentasikan relasi dasar yang telah diidentifikasikan pada model data logikal kedalam target DBMS. b. Mendesain representasi data turunan, untuk memutuskan
bagaimana
merepresentasikan
beberapa data turunan yang telah dihadirkan dalam model data logikal ke dalam target DBMS. c.
Mendesain
batasan
perusahaan,
untuk
mendesain batasan perusahaan untuk target DBMS.
55
d.
Menganalisa
fungsionalitas
transaksi,
untuk
transaksi-transaksi
memahami yang
akan
berjalan pada basis data dan untuk menganalisis transaksi-transaksi penting. e. Memilih organisasi file, untuk menentukan organsiasi file yang efisien untuk tiap relasi dasar. f. Memilih index, untuk menentukan apakah penambahan index akan meningkatkan performa sistem. g. Memperkirakan kebutuhan ruang disk, untuk mengestimasi jumlah ruang disk yang akan dibutuhkan oleh basis data. h. Mendesain user view, untuk mendesain user view . i. Mendesain mekanisme keamanan, mendesain tingkat keamanan untuk basis data yang telah dispesifikasikan terhadap user. 2. 13. 5. Pemilihan DBMS Tahap ini adalah tahap untuk memilih DBMS yang cocok untuk mendukung
aplikasi
basis data. 2. 13. 6. Desain Aplikasi User interface design dan program aplikasi yang digunakan dan diproses melalui basis
data.
Penulis
menggunakan
program
56
Microsoft Visual Basic 6.0 serta penyimpanan data dengan menggunakan Microsoft SQL Server 2000
2. 13. 7. Prototyping Perancangan model aplikasi basis data yang akan berjalan. 2. 13. 8. Implementasi Perwujudan fisik dari basis data dan desain aplikasi yang menggunakan Microsoft Visual Basic 6.0, Microsoft SQL Server 2000.
2. 13. 9. Konversi dan Loading Data Mentransfer data yang sudah ada ke dalam basis data yang baru dan mengubah aplikasi-aplikasi yang sudah ada. 2. 13. 10. Testing Proses
menjalankan
program
aplikasi dengan tujuan untuk mencari kesalahankesalahan dalam program tersebut. 2.14 Bahasa Pemrograman http://id.wikipedia.org (diakses tanggal 12 Agustus 2007) menyatakan bahwa Bahasa pemrograman, atau sering d2stilahkan juga dengan bahasa komputer, adalah teknik
komando/instruksi
standar
untuk
memerintah
komputer. Bahasa pemrograman ini merupakan suatu set
57
aturan
sintaks
mendefinisikan
dan
semantik
program
yang
komputer.
dipakai
untuk
Bahasa
ini
memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.
2.15 Definisi Sistem a. Mulyadi (2001, p2) menyatakan bahwa, suatu sistem pada dasarnya adalah sekelompok unsur yang erat hubungannya satu dengan lainnya, yang berfungsi bersama-sama untuk mencapai tujuan tertentu. b.
McLeod
(2004,
p9)
menyatakan
bahwa,
sistem adalah sekelompok elemen yang terintegrasi dan berkaitan satu sama lain untuk mencapai suatu tujuan tertentu. Dari kedua pengertian di atas, pengertian sistem dapat disimpulkan sebagai sekelompok elemen yang terintegrasi dan berkaitan satu sama lain untuk mencapai suatu tujuan tertentu.
2.16 Definisi Informasi a.
Loudon dalam buku karya Tata Sutabri (2004, p7) menyatakan bahwa, informasi adalah data yang telah diproses menjadi sesuatu yang mempunyai arti dan berguna bagi manusia.
58
b.
McLeod (2004, p12) menyatakan bahwa, informasi adalah data yang telah di proses atau data yang memiliki arti.
c.
Robbins
dan
Coulter
(1999,
p590)
menyatakan bahwa, informasi adalah data yang sudah dianalisis dan diproses. Dari ketiga pengertian di atas disimpulkan informasi adalah semua data yang telah dianalisis, diproses dan memiliki arti untuk dapat dimengerti oleh penerima informasi tersebut.
2.17 Sistem Informasi a.
O’Brien (2000, p7) menyatakan bahwa, sistem informasi adalah gabungan yang terorganisasi dari manusia, perangkat keras, perangkat lunak, jaringan komunikasi dan sumber data dalam
mengumpulkan,
menyebarkan
informasi
mengubah, dalam
dan suatu
organisasi. b.
Loudon dalam buku karya Tata Sutabri (2004, p15) menyatakan bahwa, sistem informasi adalah kumpulah komponen-komponen yang saling berhubungan yang bekerja sama untuk mengumpulkan, memproses, menyimpan dan menyebarkan informasi untuk mendukung pengambilan
keputusan,
koordinasi
dan
kontrol dalam organisasi. Kesimpulan
dari
teori-teori
sistem
informasi tersebut adalah rangkaian prosedur yang terorganisasi
dari
manusia,
perangkat
keras,
59
perangkat lunak, jaringan komunikasi dan sumber data untuk menghasilkan informasi yang dapat mendukung pengambilan keputusan, koordinasi, dan kontrol organisasi.
2.18 Penjualan dan Pembelian pengertian penjualan dan Pembelian dalam buku Ensiklopedia Ekonomi, Keuangan dan Perdagangan yang disadur dari http://www.investopedia.org (diakses tanggal 11 Maret 2008) adalah ” suatu kontrak atau perjanjian antara dua pihak, masing-masing dikenal sebagai penjual, dan pembeli, yang mewajibkan pihak yang pertama itu untuk, atas pertimbangan akan suatu pembayaran, atau suatu janji akan pembayaran sejumlah harga dalam uang tertentu, memindahkan kepada pihak yang terakhir hak dan kepemilikan harta benda ” (A. Abdurrachman, 1991, h939)
2.19 Retur Penjualan http://www.e-dukasi.net (diakses tanggal 11 Maret 2008) menyatakan bahwa setelah transaksi penjualan dilakukan dimana barang yang telah dikirimkan kepada pembeli. Maka dapat terjadi transaksi retur penjualan. Artinya sejumlah barang yang telah dijual/dikirimkan, dikembalikan lagi oleh pihak pembeli dengan alasan tertentu. Misalnya karena rusak atau tidak sesuai dengan pesanannya.
2.20 Retur Pembelian http://www.e-dukasi.net (diakses tanggal 11 Maret 2008) menyatakan bahwa retur pembelian adalah kondisi
60
diwaktu melakukan transaksi pembelian barang, kadangkadang barang yang dibeli itu tidak sesuai dengan barang yang dipesan, atau mengalami kerusakan saat dalam perjalanan. Maka pihak pembeli berhak mengembalikan barang yang rusak tersebut kepada penjual.
2.21 Stock Barang / inventory http://www.investopedia.org (diakses tanggal 11 Maret 2008) menyatakan bahwa, stok barang atau inventory adalah bahan baku atau barang-barang barang dalam pengolahan dan dengan sepenuhnya barang jadi yang dianggap sebagai bagian suatu asset-asset bisnis yang siap atau akan tersedia bagi penjualan
2.22 Stock Opname http://www.dataworks-indonesia.com
(diakses
tanggal 11 Maret 2008) menyatakan bahwa stock opname adalah proses pengecekan stok barang adalah kegiatan mencocokan antara data stok dengan bukti fisik (barang) yang ada.
2.23 First-In First Out (FIFO) http://id.wikipedia.org (diakses tanggal 11 Maret 2008) menyatakan bahwa, FIFO adalah satu singkatan untuk First In, First Out, suatu metoda historis tentang perekaman nilai dari inventori, suatu yang dipastikan merekam unit-unit yang pertama membeli sebagai unit-unit yang pertama menjual
61
2.24 Last-In, First Out (LIFO) http://id.wikipedia.org (diakses tanggal 18 Februari 2008) menyatakan bahwa, LIFO adalah suatu metoda historis tentang perekaman nilai dari inventori, suatu yang dipastikan
merekam
unit-unit
yang
terakhir
membeli
sebagai unit-unit yang pertama menjual. http://www.investopedia.org (diakses tanggal 18 Februari 2008) menyatakan bahwa, LIFO berasumsi bahwa satu kesatuan menjual, gunakan atau membuang inventori nya yang paling baru terlebih dulu. Jika satu asset dijual karena kurang dari itu diperoleh ,lalu perbedaan itu dipertimbangkan suatu rugi modal. Jika satu asset dijual karena
lebih
dipertimbangkan
dari
itu
suatu
diperoleh laba
dari
,perbedaan penjualan
itu
aktiva.
Menggunakan metoda keluar terawal untuk mengevaluasi dan
mengatur
menguntungkan, kewajiban pajak.
inventori tetapi
dapat mungkin
mengenakan juga
pajak
meningkatkan
62
BAB III GAMBARAN UMUM PERUSAHAAN
3.1
Profil Perusahaan
3.1.1
Sejarah Singkat Perusahaan
Surya Photo didirikan pada tahun 1994 yang bergerak dalam bidang cuci cetak foto (digital dan manual), video editing dan transfer video. Dengan semakin majunya taknologi dan meningkatnya persaingan perusahaan semakin mengembangkan produk dan jasa layanannya dengan menjual kamera (digital dan manual), kertas foto, film, memory card, dan masih banyak lagi. Dengan kesadaran bahwa semakin meningkatnya persaingan di dalam bisnis
cuci-cetak
pelayanan
dalam
foto,
Surya
memenuhi
Photo
berkeinginan
kebutuhan
meningkatkan
pelanggan
dengan
mengembangkan sistem yang terintegrasi anatar bagian di dalam perusahaa dalam rangka mendukung kelancaran usahanya. Dan untuk saat ini Surya Photo dapat ditemukan di Kompleks Ruko Sektor 1.2 Blok RC III No. 20, Bumi Serpong Damai, kelurahan Rawabuntu, Kecamatan Serpong, Tangerang
63
3.1.2
Misi dan Visi
Surya Photo adalah toko yang menawarkan jasa percetakan dengan misi untuk menjalankan usahanya seoptimal mungkin dalam mengabadikan kenangan berupa foto dan video. Surya Photo memiliki visi memperluas pelayanan sehingga konsumen mendapatkan pelayanan terbaik dan tepat waktu tentunya dengan harga kompetitif.
3.1.3
Struktur Organisasi
Struktur organisasi adalah suatu hal yang sama penting dalam rangka menjalankan usaha agar tujuan perusahaan dapat tercapai. Salah satu tugas penting dari suatu perusahaan adalah menyelaraskan satu kelompok yang terdiri dari berbagai individu, menyatukan berbagai kepentingan serta mendayagunakan kemampuan unsur individu untuk mencapai tujuan yang telah ditetapkan. Untuk membagi tugas dan tanggung jawab dari kelompok tersebut, maka dibentuklah suatu struktur organisasi agar tercapai hasil kerja yang optimal dan tercapainya tujuan yang telah ditetapkan.
64
Berikut ini adalah struktur organisasi Surya Photo:
Gambar 3.1 Struktur organisasi Surya Photo
Uraian tugas: 1.
Direktur, menangani pengambilan keputusan, pemecahan masalah dan bertanggung jawab terhadap kelangsungan perusahaan
2.
Manajer :
-
HRD → merekrut karyawan dan mengurus pembagian gaji
-
Pemasaran → mengatur strategi penjualan, mengkoordinasi pemasaran produk. mempromosikan perusahaan dan menarik pelanggan, serta melayani pelanggan, memeriksa laporan penjualan.
-
Produksi → mengatur pengolahan atau pengeditan foto/video
65
-
Pembelian → mengatur sirkulasi keluar-masuk barang, memeriksa laporan pembelian dan persedian barang serta mengatur keuangan perusahaan
3.
Staff;
- Pemasaran → menjalankan strategi penjualan dan menarik pelanggan , membuat laporan penjualan bulanan - Produksi
→ menjalankan pengeditan foto/video dan mencetak foto/video, Membuat Laporan Laporan Kegagalan cetakan Foto/Video
- Pembelian → membeli barang sesuai sirkulasi dan mengentry persediaan barang, stock opname .
3.2
Analisa Sistem Berjalan 3.2.1. Penjualan Pelanggan yang datang dilayani oleh staff pemasaran, staff pemasaran memasukkan foto digital pelanggan ke komputer bagian produksi, atau mengecek roll film pelanggan yang akan dicuci, kemudian diserahkan kepada bagian produksi untuk di cuci cetak, staff pemasaran juga melayani penjualan peralatan fotografi, kemudian membuat bon transaksi untuk pelanggan, dan bagi pelanggan yang melakukan cuci cetak foto, dapat menunggu atau kembali lagi setelah foto selesai dicuci. Setelah tutup, staff penasaran mengupdate kartu stock peralatan fotografi dan bahanbahan pencetakan foto sesuai bon transaksi hari itu juga, membuat
66
laporan keuangan harian, serta mengevaluasi kinerja harian kemudian
menyerahkan
laporan
tersebut
kepada
manager
pemasaran untuk diperiksa kembali. Pada akhir bulan, staff pemasaran melakukan stock opname dan pembuatan laporan penjualan bulanan dan diserahkan kepada manager pemasaran kemudian menginformasikan kepada manager pembelian dan mempertanggungjawabkan kepada direktur.
3.2.2. Pembelian Bila
stock
alat-alat
fotografi
atau
bahan-bahan
percetakan foto sudah menipis, staff pemasaran melaporkan hal tersebut kepada manager pemasaran yang kemudian manager bagian Pemasaran melaporkan kepada manager bagian Pembelian untuk memesan barang-barang tersebut .kemudian manager bagian Pembelian
menginstruksikan
kepada
staff
pembelian
untuk
membuat PO kepada distributor. Setelah distributor mengirim barang, staff dan manager bagian Pembelian mengecek Nota Pembelian sesuai atau tidak dengan PO yang diminta. Setelah itu bagian Pembelian mengupdate kartu stock barang-barang tersebut dan membuat laporan pembelian. 3.3
Staff dan Efektifitas Kerja
Tabel 3.1 Anggaran Gaji Staff Staff Bagian Pemasaran (5)
Biaya Rp. 3.000.000,00
@Rp 600.000,00 Bagian Pembelian (4) @Rp 600.000,00
Rp. 2.400.000,00
67
Bagian HRD (1)
Rp. 600.000,00
@ Rp 600.000,00 Bagian Produksi (3)
Rp. 3.000.000,00
@ Rp 1.000.000,00 Total Biaya per bulan
Rp. 9.000.000,00
Tabel 3.2 Efektifitas Kerja Karyawan dalam hal pembuatan Laporan Staff
Waktu
Bagian Pemasaran
Laporan Penjualan Harian dan Bulanan - 2 Minggu - Stok Opname 1 Hari
Bagian Pembelian
- Laporan Pembelian Bulanan 1 Minggu - Stok Opname 1 Hari - Memuat Laporan Harga Pokok Penjualan sesuai laporan penjualan bulanan 2 Minggu
Bagian HRD
Membuat Laporan Gaji Karyawan dan Pengeluaran Bulanan 1 Minggu
Bagian Produksi
Membuat Laporan Laporan Kegagalan Cetakan Foto/Video 1 Minggu
3.4
Masalah: •
Dalam transaksi penjualan dan pembelian, sistem keluar masuk barang tidak konsisten, karena belum memakai metode First-In First Out. Maka perhitungan pendapatan tidak akurat, serta adanya
barang
stock
lama
yang
kadaluwarsa
masa
pakainya.Sehingga mengakibatkan kerugian bagi Surya Photo
68
sebab barang yang kadaluwarsa ada yang tidak dapat ditukar ke distributor. •
Terkadang ada kesalahan cetak dalam proses cuci-cetak foto, dan biaya lainnya namun tidak tercatat dalam laporan pengeluaran perusahaan. Jadi laporan keuntungan yang ada tidak menggambarkan keuntungan yang sebenarnya.
•
Pada akhir bulan, bagian pembelian dan pemasaran membuat laporan keuangan bulanan berdasarkan transaksi harian secara manual.hal ini jelas memakan waktu lebih lama dan pekerjaan yang lebih banyak.
•
Pembuatan laporan terlalu lama sehingga menyulitkan direktur untuk me-review kinerja usahanya, serta biaya karyawan yang terlalu besar, mempengaruhi keuntungan yang didapat .
3.5 Pemecahan Masalah •
Untuk menghadapi permasalahan di atas, diperlukan suatu aplikasi yang dapat menangani penjualan dan pembelian serta pengeluaran stock dengan metode FIFO, serta pencatatan pengeluaran atau yang lebih familiar disebut biaya operasional perusahaan sehingga pencatatan transaksi, manajemen stock barang, dan pembuatan laporan keuangan sederhana dan efisien, sehingga dapat mengurangi jumlah karyawan dan meningkatkan efektifitas kerja mereka, serta memudahkan direktur me-review kinerja perusahaan dengan laporan yang dapat dibuat secara langsung dan meningkatkan keuntungan perusahaan.
•
Sebelum membuat aplikasi tersebut, terlebih dahulu akan dirancang sistem basis data sebagai dasar atau pondasi sesuai kebutuhan perusahaan Surya Photo.
69 BAB IV PERANCANGAN SISTEM BASIS DATA DAN PERANGKAT LUNAK
4.1.
Perancangan Basis Data Dalam merancang suatu database, ada 3 tahapan yang
diperlukan yaitu : 1.
Perancangan basis data konseptual
2.
Perancangan basis data logikal
3.
Perancangan basis data fisikal
4. 1.1 Rancangan Basis Data secara Konseptual
1.
Identifikasi Tipe Entitas Tujuan dari mengidentifikasi tipe entitas adalah untuk
menentukan entitas utama yang dibutuhkan. Berikut merupakan tabel entitas dan keterangannya.
Tabel 4.1. Identifikasi Jenis Entitas Entity tm_barang
Aliases
Description
Occurrence
Master
Entitas yang memberikan
Tabel master tipe
Barang
informasi mengenai jenis
jenis barang, dan
barang
harga
yang
dijual
di
SURYA PHOTO tm_jasa
Master
Entitas
Jasa
informasi
yang
pelayanan
jual
di
SURYA PHOTO. berisikan tentang yang
Katalog kode, jenis jasa,
dan
pelayanan
biaya yang
ditawarkan oleh SURYA
dtawarkan SURYA
PHOTO
PHOTO
70 Lanjutan Tabel 4.1. Identifikasi Jenis Entitas tt_penjualan
Transaksi
Entitas
Penjualan
data mengenai transaksi
transaksi
harian penjualan barang
bengkel oleh kasir
dan
yang
jasa
di
berisikan
Pencatatan harian
SURYA
PHOTO tt_pembelian
Transaksi
Entitas
yang
berisikan
Pembelian
tentang log dari transaksi
transaksi
Barang
pembelian barang SURYA
pembelian
PHOTO
Manager
berdasarkan
Purchase Order ts_
Stok
Entitas
stock_baran
Barang
informasi
g
yang
Pencatatan oleh
Pembelian berisikan
tentang
Stok
barang di SURYA PHOTO
Stok
barang
disusun berdasarkan Purchase Order.
tm_user
Pegawai
Entitas
yang
informasi Pegawai/staff bekerja
di
berisikan
Setiap Staff yang
tentang
bekerja di SURYA
yang
PHOTO
SURYA
PHOTO tt_operation
Biaya
Entitas
al
Operasion
informasi mengenai biaya
diisi oleh manager
al
operasional
masing-masing
yang
berisikan SURYA
FOTO per hari selama
Biaya
operasional
bagian.
sebulan tt_retur_pem
Retur
Entitas
belian
Pembelian
informasi
yang
berisikan
Setiap barang yang
mengenai
sudah di beli, dan
transaksi retur pembelian
mengalami
Surya Photo
atau rusak di retur ke distributor.
cacat
71 Lanjutan Tabel 4.1. Identifikasi Jenis Entitas tt_retur_penjua
Retur
Entitas
lan
Penjual
informasi
an
transaksi retur penjualan
pelanggan,
dan
Surya Photo
mengalami
cacat
yang
berisikan mengenai
Setiap barang yang sudah
di
beli
atau rusak di retur ke distributor. tm_distributor
Distribu
Entitas
yang
berisikan
tor
informasi
mengenai
digunakan
Distributor
langganan
membuat Purchase
Surya Photo
data distributor ini
Order
dan
ketika Retur
Penjualan tm_pelanggan
Pelangg
Entitas
an
informasi
yang
berisikan mengenai
pelanggan Surya Photo
data
pelanggan
berguna
untuk
komunikasi antara pihak Surya Photo dengan Pelanggan
tm_opr_cost
Master
Entitas
yang
Biaya
item
Opersio
Surya Photo
biaya
berisikan operasional
Tabel master item biaya
operasional
di SURYA PHOTO.
nal ts_stock_baran
Stock
Entitas
g_retur
Barang
barang-barang yang akan
Barang rusak yang
Retur
di
akan
yang
retur
berisikan
kembali
ke
distributor utama
Stock
Sementara di
kembali
retur ke
distributor tt_hpp
Harga
Entitas
yang
Pokok
Harga Pokok Penjualan
membuat
laporan
Penjual
(harga
laba-rugi
Surya
an
dalam
modal)
penjualan
berisikan barang transaksi
Berguna
Photo.
ketika
72 Lanjutan Tabel 4.1. Identifikasi Jenis Entitas tt_retur_hpp
Harga
Entitas
yang
berisikan
Pokok
informasi mengenai Harga
menyusun laporan
Penjual
Pokok Penjualan (harga
laba-rugi
an
modal) barang hasil retur
laporan lainnya.
barang
penjualan.
Berguna
ketika serta
retur tt_temp
Pencata
Entitas
tan
informasi
yang
berisikan
Transak
mengenai detail transaksi
untuk menampung
si
penjualan yang dilakukan
sementara
secara
saat itu saja.
transaksi penjualan
sementara
Tujuan tabel
di ini
buata adalah detail
tempora
saat itu untuk di
ry
cetak dalam struk penjualan
Surya
Photo
2.
Identifikasi Tipe Relasional Tujuan dari mengidentifikasi tipe relasional yaitu untuk
menentukan hubungan-hubungan yang penting yang ada di antara jenis-jenis entitas yang sebelumnya telah diidentifikasi. Langkah-langkah penting dalam mengidentifikasi tipe relasional yaitu: a.
Membuat E-R Diagram.
b.
Menentukan pembatas multiplicity dari tipe relasi.
1 1 menginput
1 1
tm_barang
1..n
1..n
mencatat transak si
menginput
1 1
Gambar 4.1. Entitas dan Relasi pada SURYA PHOTO
1..n
tt_retur_hpp
1..n
1..n tt_hpp
menginput
mengupdate
0..n
1..n tt_temp
mengupdate
menginput
terdapat
1 ts_stock_bar 1..n ang_retur 1..n
+bila ada yang rusak
1
mengurangi qty barang
1
+mengambil1..n data tt_retur_pe 1..n 1 mbelian
terdapat
1..n tt_operational
tm_distri butor
tm_opr_ 1 terdapat dalam menginput 1..n cost
menginput
1 1
1 1
1..n mencatat transaksi +mencatat transaksi1..n 1 mengandung terdapat terdapat dalam mengandung +mengandung 1..n 1..n 1..n 1 1 1 1..n 1 mengurangi tt_retur_pe mengambil data ts_stock_b +mengupdate tt_pembelian 1 tt_penjualan1 1..n njualan arang 1..n 1 1..n 1 1 1 1 1 1 1 +menambah qty barang
mencatat transak si tm_pelan 1..n ggan 1..n tm_jasa 1
menginput
tm_user 1
73
74
Daftar entitas dan relasi-relasinya:
Tabel 4.2. Identifikasi Jenis Relasi Entitas
Multipli
relasi
Entitas
city
Multi plicit y
tm_user
1...1
Mencatat Transaksi
tt_pembelian
1...n
tm_user
1...1
Mencatat Transaksi
tt_retur_pembelian
1...n
tm_user
1...1
Mencatat Transaksi
tt_retur_penjualan
1...n
tm_user
1...1
Mencatat Transaksi
tt_penjualan
1...n
tm_user
1...1
Menginput
tm_opr_cost
1...n
tm_user
1...1
Menginput
tm_barang
1...n
tm_user
1...1
Menginput
tm_jasa
1...n
tm_user
1...1
Menginput
tm_distributor
1...n
tm_user
1...1
Menginput
tm_pelanggan
1...n
tt_pembelian
1...1
Mengupdate
ts_stock_barang
1...n
tt_pembelian
1...1
Terdapat
tm_distributor
1...1
tt_pembelian
1...1
Mengandung
tm_barang
1...n
tt_retur_pembelian
1...1
Mengambil data
tt_pembelian
1...n
tt_retur_pembelian
1...1
Mengurangi qty
ts_stock_barang_r
1...n
barang
etur
tt_retur_pembelian
1...1
Terdapat
tm_distributor
1...1
tt_penjualan
1...1
Mengurangi
ts_stock_barang
1...n
tt_penjualan
1...1
Mengandung
tm_jasa
1...n
tt_penjualan
1...1
Mengandung
tm_barang
1...n
tt_penjualan
1...1
Menginput
tt_hpp
1...n
tt_penjualan
1...1
Mengandung
tm_pelanggan
1...n
tt_penjualan
1...1
Mengupdate
tt_temp
1...n
tt_retur_penjualan
1...1
Mengandung
tm_pelanggan
1...1
75 Lanjutan Tabel 4.2. Identifikasi Jenis Relasi tt_retur_penjualan
1...1
Mengambil data
tt_penjualan
1...n
tt_retur_penjualan
1...1
Menambah qty
ts_stock_barang_r
1...n
barang
etur
tt_retur_penjualan
1...1
Menginput
tt_retur_hpp
1...n
tt_retur_penjualan
1...1
Mengupdate
tt_temp
1...n
tm_barang
1...1
Terdapat dalam
ts_stock_barang
1...1
ts_stock_barang
1...1
Bila ada yang rusak
ts_stock_barang_r
1...1
etur tm_opr_cost
1...1
3.
Terdapat dalam
tt_operational
1...n
Mengidentifikasi dan menghubungkan atribut dengan jenis entitas atau dengan jenis relasi Tahap ini bertujuan untuk menentukan atribut dan
domain atribut dalam bentuk model konseptual lokal.
Tabel 4.3. Identifikasi atribut dan domain atribut tm_barang Nama
Nama Attribut
Keterangan
Type
Null
tm_bara
kd_brg
Kode Barang
Varchar (13)
Not Null
ng
nm_brg
Nama Barang
Varchar (50)
Not Null
hrg_jual_satuan_u
Harga Jual Satuan
Decimal (9)
Not Null
mum
Umum
hrg_jual_satuan_ag
Harga Jual Satuan
Decimal (9)
Not Null
en
Agen
Entitas
76 Tabel 4.4. Identifikasi atribut dan domain atribut tm_jasa Nama
Nama Attribut
Keterangan
Type
Null
kd_jasa
Kode Jasa
Varchar (7)
Not Null
nm_jasa
Nama Jasa
Varchar (50)
Not Null
hrg
Harga Jasa
Decimal (9)
Not Null
Entitas tm_jasa
Tabel 4.5. Identifikasi atribut dan domain atribut tt_penjualan Nama
Nama Attribut
Keterangan
Type
Null
no_nota_jual
Nomor Nota
Varchar (15)
Not Null
tgl_jual
tanggal
DateTime (8)
Not Null
id_pelanggan
Kode Pelanggan
Varchar (5)
Not Null
nm_ pelanggan
Data Pelanggan
Varchar (50)
Not Null
alamat
Alamat Pelanggan
Varchar (80)
Null
no_telp
No Telp Pelanggan
Varchar (20)
Null
jenis
Jenis Pelanggan
Varchar (30)
Not Null
nip
NIP Penginput
Varchar (8)
Not Null
username
Penginput
Varchar (30)
Not Null
kd_brg
Kode Barang
Varchar (13)
Not Null
nm_brg
Nama Barang
Varchar (50)
Not Null
qty
Jumlah
Integer (4)
Not Null
hrg_jual _satuan
Harga Satuan
Decimal (9)
Not Null
subtotal_jual
Subtotal Satuan
Decimal (9)
Not Null
Entitas tt_penjualan
Transaksi kd_jasa
Kode jasa
Varchar (7)
Not Null
nm_jasa
Nama Transaksi
Varchar (50)
Not Null
qty
Jumlah
Integer (4)
Not Null
hrg
Harga Jasa
Decimal (9)
Not Null
77 Lanjutan Tabel 4.5. Identifikasi atribut dan domain atribut tt_penjualan subtotal
Subtotal Satuan
Decimal (9)
Not Null
Decimal (9)
Not Null
Transaksi grandtotal_jual
Jumlah Subtotal dari Nota Transaksi
Tabel 4.6. Identifikasi atribut dan domain atribut tt_retur_penjualan Nama
Nama Attribut
Keterangan
Type
Null
tt_retur_penj
no_nota_retur
Nomor Nota Retur
Varchar (15)
Not Null
ualan
tgl_retur
tanggal retur
DateTime (8)
Not Null
no_nota_jual
Nomor Nota
Varchar (15)
Not Null
id_pelanggan
Kode Pelanggan
Varchar (5)
Not Null
nm_ pelanggan
Data Pelanggan
Varchar (50)
Not Null
alamat
Alamat Pelanggan
Varchar (80)
Null
no_telp
No Telp Pelanggan
Varchar (20)
Null
jenis
Jenis Pelanggan
Varchar (30)
Not Null
nip
NIP Penginput
Varchar (8)
Not Null
username
Penginput
Varchar (30)
Not Null
kd_brg
Kode_Barang
Varchar (13)
Not Null
nm_brg
Nama Barang
Varchar (50)
Not Null
qty
Jumlah
Integer (4)
Not Null
hrg _satuan_jual
Harga Satuan
Decimal (9)
Not Null
Subtotal Satuan
Decimal (9)
Not Null
Decimal (9)
Not Null
Entitas
subtotal_jual
Transaksi grandtotal_jual
Jumlah Subtotal dari Nota Transaksi
78 Tabel 4.7. Identifikasi atribut dan domain atribut tt_pembelian Nama
Nama Attribut
Keterangan
Type
Null
no_nota_beli
Nomor Nota
Varchar (15)
Not Null
tgl_beli
tanggal
DateTime (8)
Not Null
id_distributor
ID_distributor
Varchar (5)
Not Null
nm_distributor
Nama Distributor
Varchar (50)
Not Null
alamat
Alamat Distributor
Varchar (80)
Not Null
no_telp
No Telp/Fax
Varchar (20)
Not Null
nip
NIP Penginput
Varchar (8)
Not Null
username
Penginput
Varchar (30)
Not Null
kd_brg
Kode Barang
Varchar (13)
Not Null
nm_brg
Nama Barang
Varchar (50)
Not Null
qty
Jumlah
Integer (4)
Not Null
disc_item
Discount per item
Decimal (9)
Not Null
hrg_beli_satuan
Harga Satuan
Decimal (9)
Not Null
subtotal_sblm_di
Subtotal Satuan
Decimal (9)
Not Null
sc
Transaksi sebelum Decimal (9)
Not Null
Entitas tt_pembelian
discount per item subtotal_stlh_dis
Subtotal Satuan
c
Transaksi setelah discount per item
total_beli
Total Pembelian
Decimal (9)
Not Null
disc_beli
Discount Pembelian
Decimal (9)
Not Null
hrg_disc_beli
Harga Discount
Decimal (9)
Not Null
Pembelian subtotal_retur
Retur Pembelian
Decimal (9)
Not Null
grandtotal_beli
Jumlah Subtotal dari
Decimal (9)
Not Null
Nota Transaksi Setelah Discount
79
Tabel 4.8. Identifikasi atribut dan domain atribut tt_retur_pembelian Nama
Nama Attribut
Keterangan
Type
Null
tt_retur_pem
no_nota_retur
Nomor Nota Retur
Varchar (15)
Not Null
belian
tgl_retur
tanggal retur
DateTime (8)
Not Null
no_nota_beli
Nomor Nota
Varchar (15)
Not Null
id_distributor
Kode Distributor
Varchar (5)
Not Null
nm_distributor
Nama Distributor
Varchar (50)
Not Null
alamat
Alamat Distributor
Varchar (80)
Not Null
no_telp
No Telp/Fax
Varchar (20)
Not Null
Entitas
Lanjutan Tabel 4.8. Identifikasi atribut dan domain atribut tt_retur_pembelian nip
NIP Penginput
Varchar (8)
Not Null
nama
Nama Pegawai
Varchar (30)
Not Null
kd_brg
Kode_Transaksi (baik
Varchar (20)
Not Null
jasa maupun barang) nm_brg
Nama Transaksi
Varchar (50)
Not Null
qty
Jumlah
Varchar (5)
Not Null
hrg _satuan_beli
Harga Satuan (beli)
Decimal (9)
Not Null
subtotal_beli
Subtotal nilai
Decimal (9)
Not Null
Decimal (9)
Not Null
Transaksi grandtotal_beli
Jumlah Subtotal dari Nilai Transaksi
Tabel 4.9. Identifikasi atribut dan domain atribut ts_stock_barang Nama
Nama Attribut
Keterangan
Type
Null
ts_stock_bar
kd_brg
Kode Barang
Varchar (13)
Not Null
ang
nm_brg
Nama Barang
Varchar (50)
Not Null
Entitas
80 Lanjutan Tabel 4.9. Identifikasi atribut dan domain atribut ts_stock_barang no_nota_beli
Nomor Nota
Varchar (15)
Not Null
tgl_beli
tanggal
DateTime (8)
Not Null
qty_in
Jumlah
Integer
Not Null
qty_out
Jumlah
Integer
Not Null
qty_sisa
Jumlah
Integer
Not Null
hrg_beli_satuan
Harga Satuan (beli)
Decimal (9)
Not Null
Tabel 4.10. Identifikasi atribut dan domain atribut ts_stock_barang_retur Nama
Nama Attribut
Keterangan
Type
Null
ts_stock_bar
kd_brg
Kode Barang
Varchar (13)
Not Null
ang_retur
nm_brg
Nama Barang
Varchar (50)
Not Null
no_nota_beli
Nomor Nota
Varchar (15)
Not Null
tgl_beli
tanggal
DateTime (8)
Not Null
qty
Jumlah
Integer (4)
Not Null
hrg_beli_satuan
Harga Satuan (beli)
Decimal (9)
Not Null
Entitas
Tabel 4.11. Identifikasi atribut dan domain atribut tt_operational Nama
Nama Attribut
Keterangan
Type
Null
tt_operation
no_nota
Nomor Nota
Varchar (15)
Not Null
al
tgl
tanggal
DateTime (8)
Not Null
kpd
Pengeluaran Kepada
Varchar (30)
Not Null
nip
NIP Penginput
Varchar (8)
Not Null
nama
Nama Pegawai
Varchar (30)
Not Null
jenis
Jenis pengeluaran
Varchar (15)
Not Null
no_nota_beli
no_nota_beli
Varchar (15)
Null
Entitas
81 Lanjutan Tabel 4.11. Identifikasi atribut dan domain atribut tt_operational kd_item
Kode_Transaksi
Varchar (50)
Not Null
deskripsi
Nama Transaksi
Varchar (100)
Not Null
qty
Jumlah
Integer (4)
Not Null
hrg_satuan
Harga
Decimal (9)
Not Null
subtotal
Subtotal Transaksi
Decimal (9)
Not Null
grandtotal
Jumlah Subtotal dari
Decimal (9)
Not Null
Nota Transaksi
Tabel 4.12. Identifikasi atribut dan domain atribut tm_user Nama
Nama Attribut
Keterangan
Type
Null
nip
No Induk Pegawai
Varchar (8)
Not Null
nama
Nama Pegawai
Varchar (30)
Not Null
alamat
Alamat Pegawai
Varchar (100)
Not Null
No Telp tempat tinggal
Varchar (20)
Null
Entitas tm_user
no_telp_rmh
pegawai no_telp_hp
No Telp ponsel pegawai
Varchar (20)
Null
username
Nama pengguna sistem
Varchar (20)
Not Null
password
Kata sandi pengguna
Varchar (10)
Not Null
Varchar (15)
Not Null
Integer (4)
Not Null
sistem previlege
Jabatan pengguna dalam sistem
Status
Status pengguna dalam sistem (aktif/tidak aktif)
82 Tabel 4.13. Identifikasi atribut dan domain atribut tm_distributor Nama
Nama Attribut
Keterangan
Type
Null
id_distributor
ID_distributor
Varchar (5)
Not Null
nm_distributor
Nama Distributor
Varchar (50)
Not Null
nm_sales
Nama Salesman
Varchar (30)
Not Null
no_telp_sales
No Telp Salesman
Varchar (20)
Not Null
spesialisasi
Merek Spesialisasi
Varchar (30)
Not Null
alamat
Alamat Distributor
Varchar (80)
Not Null
no_telp
No Telp/Fax
Varchar (20)
Not Null
Entitas tm_distributor
Tabel 4.14. Identifikasi atribut dan domain atribut tm_opr_cost Nama
Nama Attribut
Keterangan
Type
Null
kd_opr
Kode Operasional
Varchar (10)
Not Null
nm_opr
Nama Operasional
Varchar (50)
Not Null
Entitas tm_opr_cost
Tabel 4.15. Identifikasi atribut dan domain atribut tt_hpp Nama
Nama Attribut
Keterangan
Type
Null
no_nota_jual
Nomor Nota
Varchar (15)
Not Null
no_nota_beli
Nomor Nota
Varchar (15)
Not Null
tgl_beli
tanggal
DateTime (8)
Not Null
kd_brg
Kode Barang
Varchar (13)
Not Null
nm_brg
Nama Barang
Varchar (50)
Not Null
qty
Jumlah
Integer (4)
Not Null
hrg_beli_satuan
Harga Satuan (beli)
Decimal (9)
Not Null
Entitas tt_hpp
83 Tabel 4.16. Identifikasi atribut dan domain atribut tt_retur_hpp Nama
Nama Attribut
Keterangan
Type
Null
no_nota_retur
Nomor Nota Retur
Varchar (15)
Not Null
no_nota_jual
Nomor Nota
Varchar (15)
Not Null
no_nota_beli
Nomor Nota
Varchar (15)
Not Null
tgl_beli
tanggal
DateTime (8)
Not Null
kd_brg
Kode Barang
Varchar (13)
Not Null
nm_brg
Nama Barang
Varchar (50)
Not Null
qty
Jumlah
Integer (4)
Not Null
hrg_beli_satuan
Harga Satuan (beli)
Decimal (9)
Not Null
Entitas tt_retur_hpp
Tabel 4.17. Identifikasi atribut dan domain atribut tt_temp Nama
Nama Attribut
Keterangan
Type
Null
no_nota
Nomor Nota
Varchar (15)
Not Null
kd_trans
Kode_Transaksi
Varchar (13)
Not Null
deskripsi
Nama Transaksi
Varchar (50)
Not Null
qty
Jumlah
Integer (4)
Not Null
hrg_satuan
Harga
Decimal (9)
Not Null
subtotal
Subtotal Transaksi
Decimal (9)
Not Null
Entitas tt_temp
Tabel 4.18. Identifikasi atribut dan domain atribut tm_pelanggan Nama Entitas
Nama Attribut
Keterangan
Type
Null
tm_pelanggan
id_pelanggan
ID_pelanggan
Varchar (5)
Not Null
nm_pelanggan
Nama_pelanggan
Varchar (50)
Not Null
alamat
Alamat Distributor
Varchar (80)
Not Null
no_telp
No Telp/Fax
Varchar (20)
Not Null
jenis
Jenis Pelanggan
Varchar (30)
Not Null
84
5. Menentukan Kunci Utama dan Kunci Kandidat Setelah entitas-entitas dari suatu atribut ditentukan, maka ditentukan primary key untuk masing-masing entitas.
1 1 menginput
1 11
1..n tm_barang kd_brg
menginput
1
1 1
mencatat transak si
1..n tm_distributor id_distributor
tm_opr_c tt_operational 1 terdapat dalam 1..n ost no_nota kd_opr
menginput
menginput 1..n
Gambar 4.2. ER-Model dengan Primary Key no_nota_jual
1 1 1..n mencatat transak si terdapat terdapat +mencatat transaksi mengandung 0..n 1 1..n terdapat terdapat dalam mengandung 1 1..n 1..n 1 +mengandung 1..n 1..n 1 1 1 tt_retur_penjuala tt_retur_pembeli ts_stock_baran tt_pembelian +mengambil1..n tt_penjualan 1 mengurangi data +mengupdate n an 1 mengambil data g 1..n no_nota_jual 1 no_nota_beli 1..n no_nota_retur no_nota_retur no_nota_beli 1..n 1 1..n 1 1 1+menambah qty barang 1 1 1 1 mengupdate 1 +bila ada yang rusak menginput mengupdate 1 1..n ts_stock_baran mengurangi qty barang 1..n g_retur tt_temp 1..n menginput no_nota_beli no_nota_jual 1..n 1..n tt_retur_hpp 1..n no_nota_retur tt_hpp
1
1..n tm_jasa kd_jasa
tm_pelanggan mencatat transak si id_pelanggan 1..n
menginput
tm_user 1 nip
85
86
6. Validasi Model Konseptual Terhadap Transaksi User Bertujuan untuk memastikan bahwa model konseptual mendukung transaksi-transaksi yang dibutuhkan user. tm_user nip
1
1
tt_operational no_nota
mencatat transak si 1 1 1
1..n
mencatat transak si mencatat transak si
+mencatat transaksi
mencatat transak si
1..n 1..n tt_retur_penjuala tt_penjualan n 1 mengambil data 1..n no_nota_jual no_nota_retur
1..n 1..n tt_retur_pembeli tt_pembelian +mengambil data an 1 no_nota_beli 1..n no_nota_retur
Gambar 4.3. Validasi Model Konseptual Lokal Terhadap Transaksi User a.
Staff yang merupakan User dari sistem tersebut melakukan login dengan memasukkan username, previlege, dan password.
b.
User Memilih jenis transaksi yang akan dilakukan apakah transaksi penjualan, pembelian atau, biaya operasional sesuai hak akses mereka.
c.
Bila ada kerusakan barang baik dari hasil penjualan, maka dilakukan transaksi retur penjualan dari pelanggan ke pihak distributor melalui Surya Photo.
d.
Bila ada barang dagangan yang kadaluarsa, pihak Surya Photo, membuat bon retur pembelian kepada distributor
e.
User yang berhak, mencata Biaya Operasional Surya Foto agar dapat menghitung secara rinci Laporan Keuangan Surya Photo.
87
4. 1.2. Rancangan Basis Data Secara Logikal
1. Menghilangkan Fitur yang tidak Kompatibel dengan Model Relasi Bertujuan untuk memperhalus model data konseptual dengan menghilangkan fitur yang tidak kompatibel terhadap model relasi. - Menghilangkan multi-valued atribut Entitas yang mempunyai multi-valued atribut dirubah dengan cara memindahkan multi-valued atribut yang ada dari entitas yang berkaitan dan membuat entitas baru untuk menampung multi-valued atribut tersebut. Dalam kasus sistem penjualan dan pembelian pada Surya Photo, tidak ada multi-valued attribut.
2. Mengambil Relasi untuk Model Data Logikal Bertujuan untuk membuat relasi-relasi untuk model data logikal dengan menggambarkan entitas, relasi, dan atribut yang telah diidentifikasi. a.
Jenis relasi Superclass/Subclass Dalam kasus sistem penjualan dan pembelian pada Surya Photo, tidak memiliki relasi Superclass atau subclass.
b.
Menghilangkan many-to-many (m:n) binary relationship types
88 Dalam kasus sistem penjualan dan pembelian pada Surya Photo, tidak ada hubungan many-to-many (m:n) binary relationship. c. Jenis relasi One-To-Many (1:n) Untuk tiap relasi 1:n, entitas pada ‘sisi 1..1’ dari relasi didesain sebagai induk entitas dan entitas pada ‘sisi 1..n’ didesain sebagai entitas anak. Dimana kunci utama pada entitas induk dikirim ke entitas anak sebagai kunci asing.
89
Gambar 4.4. Mengirimkan kunci utama sebagai kunci asing
90
Tabel 4.19. Daftar relasi tm_barang, tm_jasa, tt_penjualan, tt_retur_penjualan, tt_pembelian, tt_retur_pembelian, tm_opr_cost, tt_operational, tm_user, tm_distributor, tm_pelanggan tm_barang (kd_brg,nm_brg,hrg_jual_satuan_umum,hrg_jual_satuan_agen) Primary Key (kd_brg) tm_jasa (kd_jasa,nm_jasa,hrg) Primary Key (kd_jasa) tt_penjualan(no_nota_jual,tgl_jual,id_pelanggan,nm_pelanggan,alamat,no_telp,jenis,nip, username,kd_brg,nm_brg,qty,hrg_jual_satuan,subtotal_jual,kd_jasa,nm_jasa,qty,hrg, subtotal,grandtotal_jual) Primary Key (no_nota_jual) Foreign Key (id_pelanggan,nip,kd_brg,kd_jasa ) tt_retur_penjualan (no_nota_retur,tgl_retur,id_pelanggan,nm_ pelanggan, alamat,no_telp,jenis,nip,username,no_nota_jual,kd_brg,nm_brg,qty, hrg _satuan_jual,subtotal_jual,grandtotal_jual) Primary Key (no_nota_retur) Foreign Key (id_pelanggan,nip,no_nota_jual,kd_brg ) tt_pembelian(no_nota_beli,tgl_beli,id_distributor,nm_distributor,alamat,no_telp,nip, username,kd_brg,nm_brg,qty,disc_item,hrg_beli_satuan,subtotal_sblm_disc, subtotal_stlh_disc,total_beli,disc_beli,hrg_disc_beli,subtotal_retur,grandtotal_beli) Primary Key (no_nota_beli) Foreign Key (id_distributor,nip,kd_brg) tt_retur_pembelian (no_nota_retur,tgl_retur,id_distributor,nm_distributor,alamat, no_telp,nip,nama,no_nota_beli,kd_brg,nm_brg,qty, hrg _satuan_beli,subtotal_beli,grandtotal_beli) Primary Key (no_nota_retur) Foreign Key (,id_distributor,nip,no_nota_beli,kd_brg ) tm_opr_cost (kd_opr, nm_opr)
91 Primary Key (kd_opr) tt_operational(no_nota,tgl,kpd,nip,nama,jenis,no_nota_beli,kd_item,deskripsi,qty,cost, subtotal,grandtotal) Primary Key (no_nota) Foreign Key (nip,kd_opr) tm_user(nip,nama,alamat,no_telp_rmh,no_telp_hp,username,password,previlege,Status) Primary Key (nip) tm_distributor(id_distributor,nm_distributor,nm_sales,no_telp_sales,alamat, no_telp,spesialisasi) Primary Key (id_distributor) tm_pelanggan(id_pelanggan,nm_pelanggan,alamat,no_telp,jenis) Primary Key (id_pelanggan)
3. Validasi Relasi Menggunakan Normalisasi Bertujuan untuk memvalidasi relasi-relasi pada model data logikal menggunakan teknik normalisasi. Pada tahap ini, entitas di normalisasi untuk menghindari redudansi
data,
menghindari adanya data yang tidak konsisten terutama bila dilakukan penghapusan atau penambahan data sebagai akibat adanyaa duplikasi data, dan menjamin bahwa entitas tabel secara tunggal sebagai determinan semua atribut.
1
1 1
1..n
0..n
1
1..n
1..n
mencatat transak si
mencatat transak si
1..n
1..n
1 1
memilik i 1 1..n
tt_operational_1 no_nota jenis kd_item deskripsi qty hrg_jual_satuan subtotal
tt_retur_pembelian _1 no_nota_retur no_nota_beli kd_brg qty hrg_beli_satuan subtotal_beli terdapat
tt_operational no_nota tgl kpd nip grandtotal
tm_distributor id_distributor nm_distributor alamat no_telp nm_sales no_telp_sales spesialisasi
tm_opr_c ost 1 terdapat dalam kd_opr nm_opr
menginput
tm_barang kd_brg nm_brg name hrg_jual_satuan_umum hrg_jual_satuan_agen
1..n +mencatat transaksi
tm_jasa kd_jasa nm_jasa hrg
1
1
menginput
1
1
menginput
1..n
1 1 terdapat tt_retur_penjuala terdapat dalam 1..n mengandung +mengandung 1 n tt_retur_penjualan 1..n tt_pembelian _1 no_nota_retur memilik i 1 no_nota_beli 1..n no_nota_retur memilik i tgl_retur 1 1..n 1 id_pelanggan 1 tgl_beli no_nota_jual 1 ts_stock_barang tt_penjualan 1 nip id_distributor mengambil data kd_brg 1..n 1 grandtotal nip no_nota_beli qty 1..n no_nota_jual 1 tt_retur_pembeli tgl_beli hrg_jual_satuan 1..n tgl_jual +mengupdate total_beli 1..n an 1 disc_beli subtotal_jual tgl_jth_tempo mengurangi kd_brg 1 mengupdate no_nota_retur 1 hrg_disc_beli qty_in id_pelanggan 1..n 1 +menambah qty barang +mengambil data 1 tgl_retur 1..n subtotal_retur qty_out nip id_distributor grandtotal_beli 1 qty_sisa menginput grandtotal_jual 1..n nip hrg_beli_satuan tt_temp grandtotal 1 mengupdate 1 no_nota 1 1 1 kd_trans 1..n deskripsi memilik i 1..n qty mengurangi qty barang tt_retur_hpp +bila ada yang rusak hrg_satuan no_nota_retur subtotal memilik i menginput no_nota_jual 1 tt_pembelian_1 no_nota_beli tgl_beli no_nota_beli ts_stock_barang_r 1..n 1..n kd_brg kd_brg 1..n tt_hpp etur 1..n qty qty 1..n tt_penjualan_2 no_nota_jual no_nota_beli brg_beli_satuan disc_item tt_penjualan_1 no_nota_jual no_nota_beli tgl_beli hrg_beli_satuan no_nota_jual kd_jasa tgl_beli kd_brg subtotal_sblm_disc kd_brg qty kd_brg qty subtotal_stlh_disc qty hrg qty hrg_beli_satuan hrg_jual_satuan subtotal hrg_beli_satuan subtotal_jual
terdapat
1
tm_pelanggan menginput id_pelanggan 1..n nm_pelanggan alamat mencatat transak si no_telp jenis 1..n
menginput
tm_user nip nama alamat notelp_rmh 1 notelp_hp username password previlege status
92
Gambar 4.5. Tabel yang sudah Dinormalisasi
93
\4. Mendefinisikan Batasan Integritas Bertujuan untuk mendefinisikan batasan integritas yang diberikan kepada view. Integritas data yang akan dilakukan yaitu Referencial Integrity. Merupakan integritas antara tabel induk yang mempunyai kunci utama dan tabel anak yang mempuyai kunci asing yang terhubung kepada tabel induk terhadap kunci utamanya.
Tabel 4.20. Referential Integrity Sistem Penjualan dan Pembelian pada Surya Photo tm_barang (kd_brg,nm_brg,hrg_jual_satuan_umum,hrg_jual_satuan_agen) Primary Key (kd_brg) tm_jasa (kd_jasa,nm_jasa,hrg) Primary Key (kd_jasa) tm_opr_cost (kd_opr, nm_opr) Primary Key (kd_opr) tm_distributor(id_distributor,nm_distributor,nm_sales,no_telp_sales,alamat, no_telp,spesialisasi) Primary Key (id_distributor) tm_user(nip,nama,alamat,no_telp_rmh,no_telp_hp,username,password,previlege,Status) Primary Key (nip) tm_pelanggan(id_pelanggan,nm_pelanggan,alamat,no_telp,jenis) Primary Key (id_pelanggan) tt_penjualan_0(no_nota_jual,tgl_jual,id_pelanggan,nm_ pelanggan,alamat,no_telp,jenis,nip,username,grandtotal_jual) Primary Key (no_nota_jual) tt_penjualan_1(no_nota_jual,kd_brg,nm_brg,qty,hrg_jual_satuan,subtotal_jual) Foreign Key (no_nota_jual) References tt_penjualan_0 (no_nota_jual) ON UPDATE CASCADE ON DELETE SET NULL
94 Foreign Key (kd_brg) References tm_barang (kd_brg) ON UPDATE CASCADE ON DELETE CASCADE tt_penjualan_2(no_nota_jual,kd_jasa,nm_jasa,qty,hrg,subtotal) Foreign Key (no_nota_jual) References tt_penjualan_0 (no_nota_jual) ON UPDATE CASCADE ON DELETE SET NULL Foreign Key (kd_jasa) References tm_jasa (kd_jasa) ON UPDATE CASCADE ON DELETE SET NULL tt_retur_penjualan_0(no_nota_retur,tgl_retur,id_pelanggan,nm_ pelanggan,alamat,no_telp,jenis,nip,username,grandtotal_jual) Primary Key (no_nota_retur) tt_retur_penjualan_1(no_nota_retur,no_nota_jual,kd_brg,nm_brg,qty,hrg _satuan_jual,subtotal_jual) Foreign Key (no_nota_retur) References tt_retur_penjualan_0 (no_nota_retur) ON UPDATE CASCADE ON DELETE SET NULL Foreign Key (no_nota_jual) References tt_penjualan_0 (no_nota_jual) ON UPDATE CASCADE ON DELETE SET NULL Foreign Key (kd_brg) References tm_barang (kd_brg) ON UPDATE CASCADE ON DELETE SET NULL tt_pembelian_0(no_nota_beli,tgl_beli,id_distributor,nm_distributor,alamat,no_telp,nip, username,total_beli,disc_beli,hrg_disc_beli,subtotal_retur,grandtotal_beli) Primary Key (no_nota_beli) tt_pembelian_1(no_nota_beli,kd_brg,nm_brg,qty,disc_item,hrg_beli_satuan, subtotal_sblm_disc,subtotal_stlh_disc) Foreign Key (no_nota_beli) References tt_pembelian_0 (no_nota_beli) ON UPDATE CASCADE ON DELETE SET NULL Foreign Key (kd_brg) References tm_barang (kd_brg) ON UPDATE CASCADE ON DELETE SET NULL tt_retur_pembelian_0(no_nota_retur,tgl_retur,id_distributor,nm_distributor,alamat ,no_telp,nip,nama,grandtotal_beli) Primary Key (no_nota_retur)
95 tt_retur_pembelian_1(no_nota_retur,no_nota_beli,kd_brg,nm_brg,qty,hrg _satuan_beli,subtotal_beli) Foreign Key (no_nota_retur) References tt_retur_pembelian_0 (no_nota_retur) ON UPDATE CASCADE ON DELETE SET NULL Foreign Key (no_nota_beli) References tt_pembelian_0 (no_nota_beli) ON UPDATE CASCADE ON DELETE SET NULL Foreign Key (kd_brg) References tm_barang (kd_brg) ON UPDATE CASCADE ON DELETE CASCADE ts_stock_barang(no_nota_beli,tgl_beli,kd_brg,nm_brg,qty_in,qty_out, qty_sisa,hrg_beli_satuan) Foreign Key (no_nota_beli) References tt_pembelian_0 (no_nota_beli) ON UPDATE CASCADE ON DELETE SET NULL Foreign Key (kd_brg) References tm_barang (kd_brg) ON UPDATE CASCADE ON DELETE CASCADE ts_stock_barang_retur(no_nota_beli,tgl_beli,kd_brg,nm_brg,qty,hrg_beli_satuan) Foreign Key (no_nota_beli) References tt_pembelian_0 (no_nota_beli) ON UPDATE CASCADE ON DELETE SET NULL Foreign Key (kd_brg) References tm_barang (kd_brg) ON UPDATE CASCADE ON DELETE SET NULL tt_operational_0(no_nota,tgl,kpd,nip,nama,grandtotal) Primary Key (no_nota) tt_operational_1(no_nota,jenis,no_nota_beli,kd_item,qty,hrg_satuan_jual,subtotal) Foreign Key (no_nota_beli) References tt_operational_0 (no_nota) ON UPDATE CASCADE ON DELETE SET NULL Foreign Key (kd_item) References tm_barang (kd_brg) ON UPDATE CASCADE ON DELETE SET NULL Foreign Key (kd_item) References tm_opr_cost (kd_opr) ON UPDATE CASCADE ON DELETE SET NULL tt_hpp(no_nota_jual,no_nota_beli,tgl_beli,kd_brg,nm_brg,qty,hrg_beli_satuan) Foreign Key (no_nota_jual) References tt_penjualan_0 (no_nota_jual) ON UPDATE CASCADE ON DELETE SET NULL
96 Foreign Key (no_nota_beli) References tt_pembelian_0 (no_nota_beli) ON UPDATE CASCADE ON DELETE SET NULL Foreign Key (kd_brg) References tm_barang (kd_brg) ON UPDATE CASCADE ON DELETE SET NULL tt_retur_hpp(no_nota_retur,no_nota_jual,no_nota_beli,tgl_beli,kd_brg, nm_brg,qty,hrg_beli_satuan) Foreign Key (no_nota_retur) References tt_retur_penjualan_0 (no_nota_retur) ON UPDATE CASCADE ON DELETE SET NULL Foreign Key (no_nota_jual) References tt_penjualan_0 (no_nota_jual) ON UPDATE CASCADE ON DELETE SET NULL Foreign Key (no_nota_beli) References tt_pembelian_0 (no_nota_beli) ON UPDATE CASCADE ON DELETE SET NULL Foreign Key (kd_brg) References tm_barang (kd_brg) ON UPDATE CASCADE ON DELETE SET NULL tt_temp(no_nota,kd_trans,deskripsi,qty,hrg_satuan,subtotal)
5. Mereview Model Relasi Logikal Terhadap User Bertujuan untuk meyakinkan model data logical dan mendukung dokumentasi yang menggambarkan kebenaran model.
1..n tm_jasa tm_barang
1..n
1..n
mencatat transaksi
menginput
1
1
terdapat
mengandung
1..n
1
1 tt_retur_pe mbelian
1
1..n memilik i
mengurangi qty barang
1 +mengambil data
1..n
tt_operati onal_1
tt_retur_pem belian_1
1..n
memiliki 1
terdapat
1..n tt_operational
tm_distri butor
menginput 1..n tm_opr_ 1 terdapat dalam cost
1..n mencatat transak si 0..n +mencatat transaksi1..n mengandung 1 terdapat terdapat dalam +mengandung 1..n 1..n 1..n 1 1 1 1 1..n 1 mengurangi ts_stock_b +mengupdate tt_pembelian tt_retur_penj memilik i tt_retur_pe 1 mengambil data 1..ntt_penjualan njualan arang ualan_1 1..n 1 1..n 1 1 1..n 1 1 1 1 1 11 1 +menambah qty barang mengupdate +bila ada yang rusak memiliki mengupdate tt_pembeli menginput 1..n an_1 1 memilik i 1..n tt_temp ts_stock_bar menginput 1..n ang_retur 1..n 1..n 1..n 1..n 1..n tt_retur_hpp tt_penjual tt_penjual tt_hpp an_1 an_2
1
1
1 1
menginput
1 1
tm_user 1 1 1 menginput
tm_pelan ggan 1..nmencatat transak si
menginput
1
97
Gambar 4.6. ER-Model tahap desain logikal
6.Merancang Enhanced Entity Relationship Diagram
Entity-relationship modeling adalah suatu metoda modeling
database bagan relational, yang digunakan di dalam rekayasa
perangkat Iunak untuk menghasilkan suatu jenis dari model data
konseptual (atau model data semantik) dari suatu sistem.
1..n
1..n
0..n
tm_jasa kd_jasa nm_jasa hrg
1
1..n tm_barang
1..n +mencatat transaksi 1
kd_brg nm_brg name hrg_jual_satuan_umum hrg_jual_satuan_agen 1..n
mencatat transak si
1..n
1..n
terdapat
1 1
memilik i 1 1..n
tt_operational_1 no_nota jenis kd_item deskripsi qty hrg_jual_satuan subtotal
tt_retur_pembelian _1 no_nota_retur no_nota_beli kd_brg qty hrg_beli_satuan subtotal_beli terdapat
tt_operational no_nota tgl kpd nip grandtotal
tm_distributor id_distributor nm_distributor alamat no_telp nm_sales no_telp_sales spesialisasi
tm_opr_c ost 1 terdapat dalam kd_opr nm_opr
menginput
1..n
mencatat transak si
menginput
menginput
1
1
1
1
Staff nip
tt_retur_penjuala terdapat dalam 1..n +mengandung 1 n mengandung tt_retur_penjualan 1..n tt_pembelian _1 no_nota_retur memilik i 1 no_nota_beli 1..n no_nota_retur memilik i tgl_retur 1 1..n 1 id_pelanggan 1 tgl_beli no_nota_jual 1 ts_stock_barang tt_penjualan id_distributor 1 nip mengambil data kd_brg 1..n 1 grandtotal nip no_nota_beli qty 1..n no_nota_jual 1 tt_retur_pembeli tgl_beli hrg_jual_satuan 1..n tgl_jual +mengupdate total_beli an 1..n 1 mengurangi disc_beli kd_brg subtotal_jual tgl_jth_tempo 1 mengupdate no_nota_retur 1 hrg_disc_beli qty_in id_pelanggan 1..n 1 +menambah qty barang +mengambil data 1 tgl_retur 1..n subtotal_retur qty_out nip id_distributor grandtotal_beli 1 menginput qty_sisa grandtotal_jual 1..n nip hrg_beli_satuan tt_temp grandtotal 1 mengupdate 1 no_nota 1 1 1 kd_trans 1..n deskripsi memilik i 1..n qty mengurangi qty barang tt_retur_hpp +bila ada yang rusak hrg_satuan no_nota_retur subtotal memilik i menginput no_nota_jual 1 tt_pembelian_1 no_nota_beli tgl_beli no_nota_beli ts_stock_barang_r 1..n 1..n kd_brg kd_brg 1..n tt_hpp etur 1..n qty qty 1..n tt_penjualan_2 no_nota_jual no_nota_beli brg_beli_satuan disc_item tt_penjualan_1 no_nota_jual no_nota_beli tgl_beli hrg_beli_satuan no_nota_jual kd_jasa tgl_beli kd_brg subtotal_sblm_disc kd_brg qty kd_brg qty subtotal_stlh_disc qty hrg qty hrg_beli_satuan hrg_jual_satuan subtotal hrg_beli_satuan subtotal_jual
1
terdapat
1
11
nip nama alamat notelp_rmh 1 notelp_hp username password previlege status
tm_user
Manager nip
menginput
1
mencatat transak si
1..n
menginput
agen id_pelanggan hrg_jual_satuan_agen
tm_pelanggan id_pelanggan nm_pelanggan alamat no_telp jenis
umum id_pelanggan hrg_jual_satuan_umum
Owner nip
opr_item kd_opr nm_opr
barang kd_brg nm_brg
98
Gambar 4.7 Enhanced ERD-Model Surya Photo
99
4.1.3. Rancangan Basis Data Secara Fisikal Perancangan basis data fisikal merupakan suatu proses pembuatan deskripsi dari suatu implementasi basis data pada secondary storage. Pada tahap ini dilakukan penyeleksian terhadap penyimpanan data dan karakteristik akses data dari basis data. Beberapa langkah penting dalam merancang basis data secara fisik yaitu :
1. Mendefinisikan Relasi Dasar Dilakukan dengan menentukan domain, tipe data, panjang data, nilai default, indikator null, primary key, foreign key dan referential integritynya. a.
Database Design Language (DDL) untuk tabel tm_barang
Domain kd_brg
variable length character string (13)
Domain nm_brg
variable length character string (50)
Domain hrg_jual_satuan_umum
variable length Decimal (9)
Domain hrg_jual_satuan_agen
variable length Decimal (9)
tm_barang ( kd_brg
kode barang
Not Null
nm_brg
nama barang
Not Null
hrg_jual_satuan_umum
harga umum
Not Null
hrg_jual_satuan_agen
harga agen
Not Null
Primary Key (kd_brg) );
100
b.
Database Design Language (DDL) untuk tabel tm_jasa
Domain kd_jasa
variable length character string (7)
Domain nm_jasa
variable length character string (50)
Domain hrg
variable length Decimal (9) kode jasa
Not Null
nm_jasa
nama jasa
Not Null
hrg
harga
Not Null
kd_jasa
Primary Key (kd_jasa) ); c.
Database Design Language (DDL) untuk table tt_penjualan_0
Domain no_nota_jual
variable length character string (15)
Domain tgl_jual
variable length DateTime (8)
Domain tgl_jth_tempo
variable length DateTime (8)
Domain id_pelanggan
variable length character string (5)
Domain nip
variable length character string (8)
Domain grandtotal_jual
variable length Decimal (9)
tt_penjualan_0 ( no_nota_jual
No Nota
not null
tgl_jual
Tanggal Transaksi
not null
tgl_jth_tempo
Tanggal Jatuh Tempo
not null
id_pelanggan
Data Customer
not null
nip
Nomor Induk Pegawai
not null
grandtotal_jual Primary Key (no_nota_jual) );
Nilai Transaksi
not null
101 d.
Database Design Language (DDL) untuk table tt_penjualan_1
Domain no_nota
variable length character string (15)
Domain kd_brg
variable length character string (13)
Domain qty
variable length Integer (4)
Domain hrg_satuan
variable length Decimal (9)
Domain subtotal
variable length Decimal (9)
tt_penjualan_1 ( no_nota_jual
No Nota
not null
kd_brg
Kode Barang
not null
qty
Quantity
not null
hrg_satuan_jual
Harga Satuan
not null
subtotal
Subtotal Transaksi
not null
Foreign Key (no_nota_jual) references tt_penjualan_0 (no_nota_jual) ON UPDATE ON DELETE CASCADE );
e.
Database Design Language (DDL) untuk table tt_penjualan_2
Domain no_nota
variable length character string (15)
Domain kd_jasa
variable length character string (13)
Domain qty
variable length Integer (4)
Domain hrg
variable length Decimal (9)
Domain subtotal
variable length Decimal (9)
tt_penjualan_2 ( no_nota_jual
No Nota
not null
kd_jasa
Kode Jasa
not null
102 qty
Quantity
not null
hrg
Harga
not null
subtotal
Subtotal Transaksi
not null
Foreign Key (no_nota_jual) references tt_penjualan_0 (no_nota_jual) ON UPDATE ON DELETE CASCADE );
f.
Database Design Language (DDL) untuk table tt_retur_penjualan_0
Domain no_retur
variable length character string (15)
Domain tgl_tgl_retur
variable length DateTime(8)
Domain id_pelanggan
variable length character string (5)
Domain nip
variable length character string (8)
Domain grandtotal
variable length decimal (9)
tt_retur_penjualan_0 ( no_nota_retur
No Nota Retur
not null
tgl_retur
Tanggal Retur
not null
id_pelanggan
kode pelanggan
not null
nip
nomor induk pegawai
not null
grandtotal
Data Customer
not null
Primary Key (no_nota_retur) ); g.
Database Design Language (DDL) untuk table tt_retur_penjualan_1
Domain no_nota_retur
variable length character string (15)
Domain no_nota_jual
variable length character string (15)
Domain kd_brg
variable length character string (13)
Domain qty
variable length integer (4)
Domain hrg_satuan_jual
variable length decimal (9)
103 Domain subtotal_jual
variable length decimal (9)
tt_retur_penjualan_1 ( no_nota_retur
no nota retur
not null
no_nota_jual
no nota jual
not null
kd_brg
kode barang
not null
qty
quantity
not null
hrg_satuan_jual
harga satuan
not null
subtotal_jual
subtotal
not null
Primary Key (no_retur) references tt_retur_penjualan_0 (no_retur) ON UPDATE ON DELETE CASCADE ); h.
Database Design Language (DDL) untuk table tt_retur_hpp
Domain no_nota_retur
variable length character string (15)
Domain no_nota_jual
variable length character string (15)
Domain no_nota_beli
variable length character string (15)
Domain tgl_beli
variable length datetime (8)
Domain kd_brg
variable length character string (13)
Domain qty
variable length integer (4)
Domain hrg_satuan_beli
variable length decimal (9)
tt_retur_hpp ( no_nota_retur
no nota retur
not null
no_nota_jual
no nota jual
not null
no_nota_beli
no nota beli
not null
tgl_beli
tanggal beli
not null
kd_brg
kode barang
not null
qty
quantity
not null
hrg_satuan_jual
harga satuan
not null
104 Primary Key (no_retur) references tt_retur_penjualan_1 (no_retur) ON UPDATE ON DELETE CASCADE ); i.
Database Design Language (DDL) untuk table tt _hpp
Domain no_nota_jual
variable length character string (15)
Domain no_nota_beli
variable length character string (15)
Domain tgl_beli
variable length datetime (8)
Domain kd_brg
variable length character string (13)
Domain qty
variable length integer (4)
Domain hrg_satuan_beli
variable length decimal (9)
tt _hpp ( no_nota_jual
no nota jual
not null
no_nota_beli
no nota beli
not null
tgl_beli
tanggal beli
not null
kd_brg
kode barang
not null
qty
quantity
not null
hrg_satuan_jual
harga satuan
not null
Primary Key (no_nota_jual) references tt _penjualan_1 (no_nota_jual) ON UPDATE ON DELETE CASCADE ); j.
Database Design Language (DDL) untuk table tt_pembelian_0
Domain no_nota_beli
variable length character string (15)
Domain tgl_beli
variable length DateTime (8)
Domain id_distributor
variable length character string (5)
Domain nip
variable length character string (5)
Domain grandtotal
variable length decimal (9)
105 tt_pembelian_0 ( no_nota_beli
No Nota
not null
tgl_beli
Tanggal Transaksi
not null
id_distributor
kode Distributor
not null
grandtotal
Nilai Transaksi
not null
Primary Key (no_nota_beli) ); k.
Database Design Language (DDL) untuk table tt_pembelian_1
Domain no_nota_beli
variable length character string (15)
Domain kd_brg
variable length character string (13)
Domain qty
variable length integer (4)
Domain hrg_satuan
variable length decimal (9)
Domain subtotal
variable length decimal (9)
tt_pembelian_1 ( no_nota_beli
No Nota Beli
not null
kd_brg
Kode Barang
not null
qty
Quantity
not null
hrg_satuan
Harga Satuan
not null
subtotal
Subtotal Transaksi
not null
Foreign Key (no_nota) references tt_pembelian_0 (no_nota) ON UPDATE ON DELETE CASCADE ); l.
Database Design Language (DDL) untuk table tt_retur_pembelian_0
Domain no_nota_retur
variable length character string (15)
Domain tgl_retur
variable length datetime (8)
Domain id_distributor
variable length character string (5)
Domain nip
variable length character string (8)
106 Domain grandtotal
variable length decimal (9)
tt_retur_pembelian_0 ( no_nota_retur
No Nota Retur
not null
tgl_retur
Tanggal Retur
not null
id_distributor
kode distributor
not null
nip
nomor induk pegawai
not null
grandtotal
grandtotal transaksi
not null
Primary Key (no_retur) ); m. Database Design Language (DDL) untuk table tt_retur_pembelian_1 Domain no_nota_retur
variable length character string (15)
Domain no_nota_beli
variable length character string (15)
Domain kd_brg
variable length character string (13)
Domain qty
variable length integer (4)
Domain hrg_satuan_beli
variable length decimal (9)
Domain subtotal
variable length decimal (9)
tt_retur_pembelian_1 ( no_nota_retur
No Nota
not null
no_nota_beli
Kode Transaksi
not null
kd_brg
Nama Transaksi
not null
qty
Quantity
not null
hrg_satuan_beli
harga satuan beli
not null
subtotal
Keterangan
not null
Foreign Key (no_nota_retur) references tt_retur_pembelian_0 (no_nota_retur) ON UPDATE ON DELETE CASCADE );
107 n.
Database Design Language (DDL) untuk table tt_operational_0
Domain no_nota
variable length character string (15)
Domain tgl
variable length datetime (8)
Domain kpd
variable length character string (30)
Domain grandtotal
variable length decimal (9)
tt_operational_cost_0 ( no_nota
No Nota
not null
tgl
Tanggal Transaksi
not null
kpd
Data Pengeluaran
not null
grandtotal
Nilai Transaksi
not null
Primary Key (no_nota) ); o.
Database Design Language (DDL) untuk table tt_ operational_cost _1
Domain no_nota
variable length character string (15)
Domain jenis
variable length character string (15)
Domain no_nota_beli
variable length character string (15)
Domain kd_item
variable length character string (13)
Domain deskripsi
variable length character string (100)
Domain qty
variable length integer (4)
Domain hrg_satuan
variable length decimal (9)
Domain subtotal
variable length decimal (9)
tt_ operational_cost _1 ( no_nota
No Nota
not null
jenis
Jenis
not null
no_nota_beli
No Nota Beli
not null
108 kd_item
Kode Transaksi
not null
deskripsi
Deskripsi
Not null
qty
Quantity
not null
hrg_satuan
Harga Satuan
not null
subtotal
Subtotal Transaksi
not null
Foreign Key (no_nota) references tt_ operational_cost _0 (no_nota) ON UPDATE ON DELETE CASCADE ); p.
Database Design Language (DDL) untuk table tt_ temp
Domain no_nota
variable length character string (15)
Domain kd_item
variable length character string (13)
Domain deskripsi
variable length character string (50)
Domain qty
variable length integer (4)
Domain hrg_satuan
variable length decimal (9)
Domain subtotal
variable length decimal (9)
tt_ temp ( no_nota
No Nota
not null
kd_item
Kode Transaksi
not null
deskripsi
Deskripsi
not null
qty
Quantity
not null
hrg_satuan
Harga Satuan
not null
subtotal
Subtotal Transaksi
not null
Foreign Key (no_nota) references tt_ penjualan_1 (no_nota) ON UPDATE ON DELETE CASCADE ); Foreign Key (no_nota) references tt_ retur_penjualan_1 (no_nota) ON UPDATE ON DELETE CASCADE );
109 q.
Database Design Language (DDL) untuk table ts_stock_barang
Domain kd_barang
variable length character string (13)
Domain no_nota_beli
variable length character string (15)
Domain tgl_beli
variable length datetime (8)
Domain qty_in
variable length Integer (4)
Domain qty_out
variable length Integer (4)
Domain qty_sisa
variable length Integer (4)
Domain hrg_satuan_beli
variable length decimal (9)
ts_stock_barang ( kd_brg
Kode_Barang
not null
no_nota_beli
No Nota Pembelian
not null
tgl_beli
Tanggal Pembelian
not null
qty_in
Jumlah Masuk
not null
qty_out
Jumlah Keluar
null
qty_sisa
Sisa
null
hrg_satuan
Harga_Satuan Beli
not null
Foreign Key (kd_brg) references tm_barang (kd_brg) ON UPDATE CASCADE ON DELETE SET NULL,); Foreign Key (no_nota_beli) references tt_pembelian_0 (no_nota_beli) ON UPDATE CASCADE ON DELETE SET NULL,);
r.
Database Design Language (DDL) untuk table ts_stock_barang_retur
Domain kd_barang
variable length character string (13)
Domain no_nota_beli
variable length character string (15)
Domain tgl_beli
variable length datetime (8)
Domain qty
variable length Integer (4)
110 Domain hrg_satuan_beli
variable length decimal (9)
ts_stock_barang_retur ( kd_brg
Kode_Barang
not null
no_nota_beli
No Nota Pembelian
not null
tgl_beli
Tanggal Pembelian
not null
qty
Sisa
null
hrg_satuan
Harga_Satuan Beli
not null
Foreign Key (kd_brg) references tm_barang (kd_brg) ON UPDATE CASCADE ON DELETE SET NULL,); Foreign Key (no_nota_beli) references tt_pembelian_0 (no_nota_beli) ON UPDATE CASCADE ON DELETE SET NULL,); s.
Database Design Language (DDL) untuk table tm_user
Domain nip
variable length character string (8)
Domain Nama
variable length character string (30)
Domain Alamat
variable length character string (100)
Domain no_telp_rmh
variable length character string (20)
Domain no_telp_hp
variable length character string (20)
Domain username
variable length character string (20)
Domain password
variable length character string (10)
Domain previlege
variable length character string (15)
Domain status
variable length integer (4)
tm_user ( NIP
NIP_Pegawai
not null
nama
nama pegawai
not null
alamat
alamat
not null
no_telp_rmh
no_telp_rumah
not null
111 no_telp_hp
no_telp_ponsel
not null
username
Nama_Pengguna
not null
password
Kata_Sandi_Pengguna
not null
previlege
Jabatan_Pengguna
not null
Primary Key (NIP)
2. Merencanakan Constraint Tujuan merancang constraint adalah untuk merancang constraint perusahaan dalam DBMS. Staff Penjualan dan Pembelian dapat melakukan insert basis data saja, Manager Penjualan dan Pembelian dapat melakukan insert, update, edit ,delete basis data.Direktur dapat melakukan select
basis data saja.
Untuk menambahkan data staff hanya dapat dilakukan oleh bagian HRD. Data transaksi dapat dicetak memalui feature yang telah disediakan.
3. Analisa Transaksi Bertujuan untuk memahami fungsionalitas transaksi yang akan berjalan pada basis data dan untuk menganalisis transaksi penting, terdiri dari: 1. Memetakan semua jalur transaksi kedalam relasi Transaksi yang biasa dilakukan pada Surya Photo, yaitu: a.
mengisi,menampilkan,meng-update data user baru
b.
mengisi,menampilkan,mengubah tabel master barang, jasa, distributor,
menginput
stock
awal
berjalan,item
biaya
operasional dan data pelanggan. c.
menginput transaksi pembelian serta meng-update Stock
d.
Bila ada barang rusak tapi belum diretur, barang rusak dicatat
barang secara otomatis setelah validasi transaksi pembelian ke stock barang rusak terlebih dahulu sebelum kelak di retur.hal ini tentunya akan mengurangi stock barang yang akan di jual.
112 e.
Bila barang rusak akan diretur,maka akan dilakukan transaksi retur akan mengurangi stock barang yang rusak.
f.
Ketika terjadi transaksi penjualan, akan mengurangi stock barang, mengupdate tabel transaksi tt_hpp sebagai pencatatan harga pokok transaksi penjualan barang, dan input sementara tt_temp untuk keperluan cetak faktur kemudian di hapus.
g.
Ketika terjadi transaksi retur penjualan, barang yang rusak akan di catat dalam stock barang rusak sebelum di kembalikan ke distributor, mengupdate tabel transaksi tt_retur hpp sebagai pencatatan harga pokok transaksi retur penjualan barang dan input sementara tt_temp untuk keperluan cetak faktur saja kemudian di hapus.
h.
Bila ada pengeluaran operasional, dicatat dalam transaksi biaya operasional.
i.
Mengambil
data
transaksi
baik
pembelian,penjualan,retur
pembelian, penjualan,biaya operasional surya photo,stock barang baik yang rusak maupun tidak,untuk pembuatan laporan keuntungan,laporan harian,dan sebagainya.
113 Berikut diagram pemetaan yang dihasilkan:
Tabel 4.21. diagram pemetaan transaksi terhadap relasi (1) Transaksi/
(a)
(b)
(c)
(d)
(e)
Relasi
IRUD
IRUD
IRUD
IRUD
IRUD
tm_user
xxx
tm_pelanggan
xxx
tm_distributor
xxx
tm_barang
xxx
tm_jasa
xxx
ts_stock_barang tm_opr_cost
xx
x
x
xxx
ts_stock_barang_
x
xx
retur tt_pembelian_0/
x
_1 tt_retur_pembelia
x
n_0/_1 tt_penjualan_0/_1 /_2 tt_retur_penjuala n_0/_1 tt_hpp tt_retur_hpp tt_operational_0/_ 1 tt_temp I = Insert; R = Read; U = Update; D = Delete
114
Tabel 4.22. diagram pemetaan transaksi terhadap relasi (2)
Transaksi/
(f)
(g)
(h)
(i)
Relasi
IRUD
IRUD
IRUD
IRUD
tm_user tm_pelanggan tm_distributor tm_barang tm_jasa ts_stock_barang
x
x
tm_opr_cost ts_stock_barang_
x
x
x
retur tt_pembelian_0/
x
_1 tt_retur_pembelia
x
n_0/_1 tt_penjualan_0/_1
x
x
/_2 tt_retur_penjuala
x
x
n_0/_1 tt_hpp
x
x
tt_retur_hpp
x
x
tt_operational_0/_
x
1 tt_temp
xx
x
xx
x
I = Insert; R = Read; U = Update; D = Delete
x
115
4. Pemilihan Indeks Tujuan dari langkah ini adalah untuk menentukan apakah penambahan index akan meningkatkan performa dari sistem. Index yang digunakan adalah sebagai berikut : User CREATE UNIQUE INDEX NIP ON tm_user (NIP) Pelanggan CREATE UNIQUE INDEX id_Pelanggan ON tm_pelanggan(Kode_Pelanggan) CREATE INDEX nm_pelanggan ON tm_pelanggan (nm_pelanggan) Distributor CREATE UNIQUE INDEX id_distributor ON tm_distributor (id_distributor) CREATE INDEX nm_distributor ON tm_distributor (nm_distributor) Barang CREATE UNIQUE INDEX kd_brg ON tm_barang (kd_brg) Jasa CREATE UNIQUE INDEX kd_jasa ON tm_jasa (kd_jasa) Item biaya operasional CREATE UNIQUE INDEX kd_opr ON tm_opr_cost(kd_opr) Stock Barang CREATE UNIQUE INDEX no_nota_beli ON ts_stock_barang(no_nota_beli) CREATE INDEX tgl_beli ON ts_stock_barang(tgl_beli) CREATE UNIQUE INDEX kd_brg ON ts_stock_barang (kd_brg)
116
Stock Barang Retur CREATE UNIQUE INDEX no_nota_beli ON ts_stock_barang_retur(no_nota_beli) CREATE INDEX tgl_beli ON ts_stock_barang_retur (tgl_beli) CREATE UNIQUE INDEX kd_brg ON ts_stock_barang_retur (kd_brg) Transaksi Penjualan CREATE UNIQUE INDEX no_nota_jual ON tt_penjualan_0(no_nota_jual) CREATE INDEX tgl_jual ON tt_penjualan (tgl_jual) CREATE INDEX no_nota_jual ON tt_penjualan_1(no_nota_jual) CREATE INDEX no_nota_jual ON tt_penjualan_2(no_nota_jual) Transaksi Retur Penjualan CREATE UNIQUE INDEX no_nota_retur ON tt_retur_penjualan_0(no_nota_retur) CREATE INDEX tgl_retur ON tt_retur_penjualan (tgl_retur) CREATE INDEX no_nota_retur ON tt_retur_penjualan_1(no_nota_retur) Transaksi Pembelian CREATE UNIQUE INDEX no_nota_beli ON tt_pembelian_0(no_nota_beli) CREATE INDEX tgl_beli ON tt_pembelian_0 (tgl_beli) CREATE INDEX no_nota_beli ON tt_pembelian_1(no_nota_beli) Transaksi Retur Pembelian CREATE UNIQUE INDEX no_nota_retur ON tt_retur_pembelian_0(no_nota_retur) CREATE INDEX tgl_retur ON tt_retur_pembelian (tgl_retur) CREATE INDEX no_nota_retur ON tt_retur_pembelian_1(no_nota_retur)
117
Transaksi Operasional CREATE UNIQUE INDEX no_nota_ ON tt_operational(no_nota) CREATE INDEX tgl ON tt_operational (tgl)
5. Estimasi Ruang Disk Tujuan dari langkah ini adalah untuk menghitung kapasitas penyimpanan yang diberikan oleh basis data. Perkiraan kapasitas setiap table adalah sebagai berikut :
Tabel 4.23. Estimasi Ruang Disk tm_barang Nama
Nama Attribut
Type
Ukuran
kd_brg
Varchar
13
nm_brg
Varchar
50
hrg_jual_satuan_umum
Decimal
9
hrg_jual_satuan_agen
Decimal
9
Entitas tm_barang
Total
81
Kapsitas dari tabel tersebut adalah 81 karakter per tuple Diperkirakan dalam ada 70 jenis barang. Maka diperlukan dari tabel ini adalah: 70 jenis x 81 karakter per tuple = 5670 karakter
118 Tabel 4.24. Estimasi Ruang Disk Jasa Nama
Nama Attribut
Type
Ukuran
kd_jasa
Varchar
7
nm_jasa
Varchar
50
hrg
Decimal
9
Entitas tm_jasa
Total
66
Kapsitas dari tabel tersebut adalah 66 karakter per tuple Diperkirakan dalam ada 15 jenis layanan. Maka diperlukan dari tabel ini adalah: 15 jenis x 66 karakter per tuple = 990 karakter
Tabel 4.25. Estimasi Ruang Disk ts_stock_barang Nama Entitas
Nama Attribut
Type
ts_stock_barang
kd_brg
Varchar
13
no_nota_beli
Varchar
15
tgl_beli
DateTime
8
qty_in
Integer
4
qty_out
Integer
4
qty_sisa
Integer
4
hrg_beli_satuan
Decimal
9
Total
Ukuran
57
Kapsitas dari tabel tersebut adalah 57 karakter per tuple Diperkirakan dalam satu bulan ada 5 transaksi pembelian dengan dan memiliki detail kurang lebih 20 item/tuple Dalam satu tahun pertumbuhan dari tabel ini adalah: 12 Bulan x 5 Transaksi x 20 tuple x 57 karakter per tuple = 68400 karakter
119
Tabel 4.26. Estimasi Ruang Disk ts_stock_barang_retur Nama
Nama Attribut
Type
Ukuran
ts_stock_bar
kd_brg
Varchar
13
ang_retur
no_nota_beli
Varchar
15
tgl_beli
DateTime
8
qty
Integer
4
hrg_beli_satuan
Decimal
9
Entitas
Total
49
Kapsitas dari tabel tersebut adalah 49 karakter per tuple Diperkirakan dalam satu bulan ada 10 transaksi retur baik pembelian maupun penjualan
dengan dan memiliki detail
kurang lebih 5 item/tuple Dalam satu tahun pertumbuhan dari tabel ini adalah: 12 Bulan x 10 Transaksi x 5 tuple x 49 karakter per tuple = 29400 karakter
Tabel 4.27. Estimasi Ruang Disk tm_user Nama
Nama Attribut
Type
Ukuran
nip
Varchar
8
nama
Varchar
30
alamat
Varchar
100
no_telp_rmh
Varchar
20
no_telp_hp
Varchar
20
username
Varchar
20
password
Varchar
10
Entitas tm_user
120 Lanjutan Tabel 4.27. Estimasi Ruang Disk tm_user previlege
Varchar
15
Status
Integer
4
Total
227
Kapsitas dari tabel tersebut adalah 227 karakter per tuple Diperkirakan dalam ada 10 karyawan. Maka diperlukan dari tabel ini adalah: 10 Karyawan x 227 karakter per tuple = 2270 karakter
Tabel 4.28 Estimasi Ruang Disk tm_distributor Nama
Nama Attribut
Type
Ukuran
id_distributor
Varchar
5
nm_distributor
Varchar
50
nm_sales
Varchar
30
no_telp_sales
Varchar
20
spesialisasi
Varchar
30
alamat
Varchar
80
no_telp
Varchar
20
Entitas tm_distributor
Total
235
Kapsitas dari tabel tersebut adalah 235 karakter per tuple Diperkirakan dalam ada 10 Distributor. Maka diperlukan dari tabel ini adalah: 10 Distributor x 235 karakter per tuple = 2350 karakter
121 Tabel 4.29 Estimasi Ruang Disk tm_opr_cost Nama
Nama Attribut
Type
Ukuran
kd_opr
Varchar
10
nm_opr
Varchar
50
Entitas tm_opr_cost
Total
60
Kapsitas dari tabel tersebut adalah 60 karakter per tuple Diperkirakan dalam ada 15 Jenis Biaya Operasional . Maka diperlukan dari tabel ini adalah: 15 Jenis x 60 karakter per tuple = 900 karakter
Tabel 4.30 Estimasi Ruang Disk tm_pelanggan Nama Entitas
Nama Attribut
Type
Null
tm_pelanggan
id_pelanggan
Varchar
5
nm_pelanggan
Varchar
50
alamat
Varchar
80
no_telp
Varchar
20
jenis
Varchar
30
Total
185
Kapsitas dari tabel tersebut adalah 185 karakter per tuple Diperkirakan dalam ada 20 Pelanggan berupa agen dan Umum. Maka diperlukan dari tabel ini adalah: 20 Pelanggan x 185 karakter per tuple = 3700 karakter
122 Tabel 4.31. Estimasi Ruang Disk tt_penjualan_0 Nama
Nama Attribut
Type
Ukuran
tt_penjualan
no_nota_jual
Varchar
15
_0
tgl_jual
DateTime
8
id_pelanggan
Varchar
5
nip
Varchar
8
grandtotal_jual
Decimal
9
Entitas
Total
45
Kapsitas dari tabel tersebut adalah 45 karakter per tuple Diperkirakan dalam satu hari ada 20 transaksi maupun penjualan Dalam satu tahun pertumbuhan dari tabel ini adalah: 12 Bulan x 30 hari X 20 Transaksi x 45 karakter per tuple = 324000 karakter
Tabel 4.32. Estimasi Ruang Disk tt_penjualan_1 Nama
Nama Attribut
Type
Ukuran
tt_penjualan
no_nota_jual
Varchar
15
_1
kd_brg
Varchar
13
qty
Integer
4
hrg_jual _satuan
Decimal
9
subtotal_jual
Decimal
9
Entitas
Total
50
123 Lanjutan Tabel 4.32. Estimasi Ruang Disk tt_penjualan_1 Kapsitas dari tabel tersebut adalah 50 karakter per tuple Diperkirakan dalam satu hari ada 20 transaksi maupun penjualan dengan detail 5 item Dalam satu tahun pertumbuhan dari tabel ini adalah: 12 Bulan x 30 hari X 20 Transaksi x 5 item x 45 karakter per tuple = 1620000 karakter
Tabel 4.33. Estimasi Ruang Disk tt_penjualan_2 Nama
Nama Attribut
Type
Ukuran
tt_penjualan
no_nota_jual
Varchar
15
_2
kd_jasa
Varchar
7
qty
Integer
4
hrg
Decimal
9
subtotal
Decimal
9
Entitas
Total
44
Kapsitas dari tabel tersebut adalah 44 karakter per tuple Diperkirakan dalam satu hari ada 20 transaksi maupun penjualan dengan detail 5 item Dalam satu tahun pertumbuhan dari tabel ini adalah: 12 Bulan x 30 hari X 20 Transaksi x 5 item x 44 karakter per tuple = 1584000 karakter
124 Tabel 4.34. Estimasi Ruang Disk tt_pembelian_0 Nama
Nama Attribut
Type
Ukuran
tt_pembelian
no_nota_beli
Varchar
15
_0
tgl_beli
DateTime
8
id_distributor
Varchar
5
nip
Varchar
8
grandtotal_beli
Decimal
9
Entitas
Total
45
Kapsitas dari tabel tersebut adalah 45 karakter per tuple Diperkirakan dalam satu bulan ada 5 transaksi pembelian Dalam satu tahun pertumbuhan dari tabel ini adalah: 12 Bulan x 30 hari X 5 Transaksi x 45 karakter per tuple = 81000 karakter
Tabel 4.35. Estimasi Ruang Disk tt_pembelian_1 Nama
Nama Attribut
Type
Ukuran
tt_pembelian
no_nota_beli
Varchar
15
_1
kd_brg
Varchar
13
qty
Integer
4
disc_item
Decimal
9
hrg_beli _satuan
Decimal
9
subtotal_sblm_disc
Decimal
9
subtotal_stlh_disc
Decimal
9
Entitas
Total
68
125 Lanjutan Tabel 4.35. Estimasi Ruang Disk tt_pembelian_1 Kapsitas dari tabel tersebut adalah 68 karakter per tuple Diperkirakan dalam satu bulan ada 5 transaksi maupun penjualan dengan detail 20 item Dalam satu tahun pertumbuhan dari tabel ini adalah: 12 Bulan x 30 hari X 20 item x 5 transaksi x 68 karakter per tuple = 2448000 karakter
4.36. Estimasi Ruang Disk tt_retur_pembelian_0 Nama
Nama Attribut
Type
Ukuran
tt_pembelian
no_nota_retur
Varchar
15
_0
tgl_retur
DateTime
8
id_distributor
Varchar
5
nip
Varchar
8
grandtotal
Decimal
9
Entitas
Total
45
Kapsitas dari tabel tersebut adalah 45 karakter per tuple Diperkirakan dalam satu bulan ada 5 transaksi retur pembelian Dalam satu tahun pertumbuhan dari tabel ini adalah: 12 Bulan x 30 hari X 5 Transaksi x 45 karakter per tuple = 81000 karakter
126 Tabel 4.37. Estimasi Ruang Disk tt_retur_pembelian_1 Nama
Nama Attribut
Type
Ukuran
tt_pembelian
no_nota_retur
Varchar
15
_1
no_nota_beli
Varchar
15
kd_brg
Varchar
13
qty
Integer
4
hrg_beli _satuan
Decimal
9
subtotal_beli
Decimal
9
Entitas
Total
65
Kapsitas dari tabel tersebut adalah 65 karakter per tuple Diperkirakan dalam satu bulan ada 5 transaksi retur pembelian dengan detail 5 item Dalam satu tahun pertumbuhan dari tabel ini adalah: 12 Bulan x 30 hari X 5 item x 5 transaksi x 65 karakter per tuple = 585000 karakter
Tabel 4.38. Estimasi Ruang Disk tt_retur_penjualan_0 Nama
Nama Attribut
Type
Ukuran
tt_retur_penj
no_nota_retur
Varchar
15
ualan_0
tgl_retur
DateTime
8
id_pelanggan
Varchar
5
nip
Varchar
8
grandtotal
Decimal
9
Entitas
Total
45
127 Lanjutan Tabel 4.38. Estimasi Ruang Disk tt_retur_penjualan_0 Kapsitas dari tabel tersebut adalah 45 karakter per tuple Diperkirakan dalam satu bulan ada 5 transaksi retur penjualan Dalam satu tahun pertumbuhan dari tabel ini adalah: 12 Bulan x 30 hari X 5 Transaksi x 45 karakter per tuple = 81000 karakter
Tabel 4.39. Estimasi Ruang Disk tt_retur_penjualan_1 Nama
Nama Attribut
Type
Ukuran
tt_retur_penj
no_nota_retur
Varchar
15
ualan_1
no_nota_jual
Varchar
15
kd_brg
Varchar
13
qty
Integer
4
hrg_jual _satuan
Decimal
9
subtotal_jual
Decimal
9
Entitas
Total
65
Kapsitas dari tabel tersebut adalah 65 karakter per tuple Diperkirakan dalam satu bulan ada 5 transaksi retur penjualan dengan detail 5 item Dalam satu tahun pertumbuhan dari tabel ini adalah: 12 Bulan x 30 hari X 5 item x 5 transaksi x 65 karakter per tuple = 585000 karakter
128 Tabel 4.40. Estimasi Ruang Disk tt_operational_0 Nama
Nama Attribut
Type
Ukuran
tt_operation
no_nota
Varchar
15
al_0
tgl
DateTime
8
kpd
Varchar
30
nip
Varchar
8
grandtotal
Decimal
9
Entitas
Total
70
Kapsitas dari tabel tersebut adalah 70 karakter per tuple Diperkirakan dalam satu bulan ada 30 transaksi biaya operasional Dalam satu tahun pertumbuhan dari tabel ini adalah: 12 Bulan x 30 hari x 30 transaksi x 65 karakter per tuple = 702000 karakter
Tabel 4.41. Estimasi Ruang Disk tt_operational_1 Nama
Nama Attribut
Type
Ukuran
tt_operation
no_nota
Varchar
15
al_1
jenis
Varchar
15
No_nota_beli
Varchar
15
kd_item
Varchar
50
deskripsi
Varchar
100
qty
Integer
4
hrg_satuan
Decimal
9
subtotal
Decimal
9
Entitas
Total
217
129 Lanjutan Tabel 4.41. Estimasi Ruang Disk tt_operational_1 Kapsitas dari tabel tersebut adalah 117 karakter per tuple Diperkirakan dalam satu bulan ada 30 transaksi biaya operasional dengan minimal 1 detail transaksi. Dalam satu tahun pertumbuhan dari tabel ini adalah: 12 Bulan x 30 hari x 30 transaksi x 217 karakter per tuple =2343600karakter
Tabel 4.42. Estimasi Ruang Disk tt_hpp Nama
Nama Attribut
Type
Ukuran
no_nota_jual
Varchar
15
no_nota_beli
Varchar
15
tgl_beli
DateTime
8
kd_brg
Varchar
13
nm_brg
Varchar
50
qty
Integer
4
hrg_beli_satuan
Decimal
9
Entitas tt_hpp
Total
114
Kapsitas dari tabel tersebut adalah 114 karakter per tuple Diperkirakan dalam satu hari ada 20 transaksi maupun penjualan dengan detail 5 item Dalam satu tahun pertumbuhan dari tabel ini adalah: 12 Bulan x 30 hari X 20 Transaksi x 5 item x 114 karakter per tuple = 4104000 karakter
130 Tabel 4.43. Estimasi Ruang Disk tt_retur_hpp Nama
Nama Attribut
Type
Ukuran
no_nota_retur
Varchar
15
no_nota_jual
Varchar
15
no_nota_beli
Varchar
15
tgl_beli
DateTime
8
kd_brg
Varchar
13
nm_brg
Varchar
50
qty
Integer
4
hrg_beli_satuan
Decimal
9
Entitas tt_retur_hpp
Total
129
Kapsitas dari tabel tersebut adalah 129 karakter per tuple Diperkirakan dalam satu bulan ada 5 transaksi retur penjualan dengan detail 5 item Dalam satu tahun pertumbuhan dari tabel ini adalah: 12 Bulan x 30 hari X 5 item x 5 transaksi x 129 karakter per tuple = 1161000 karakter
Tabel 4.44. Estimasi Ruang Disk tt_temp Nama
Nama Attribut
Type
Ukuran
no_nota
Varchar
15
kd_trans
Varchar
13
deskripsi
Varchar
50
qty
Integer
4
hrg_satuan
Decimal
9
subtotal
Decimal
9
Entitas tt_temp
Total
100
131 Lanjutan Tabel 4.44. Estimasi Ruang Disk tt_temp Kapsitas dari tabel tersebut adalah 100 karakter per tuple Diperkirakan dalam satu hari ada 20 transaksi maupun penjualan
dengan detail 5 item.Namun setelah cetak
faktur,tabel
ini
kemudian
dikosongkan.Jadi
tidak
ada
pertumbuhan transaksi.namun setiap cetak faktur memerlukan 20 Transaksi x 5 item x 100 karakter per tuple = 10000 karakter
132 Dengan ketentuan 1 karakter = 8 bit, 1 Byte = 1024 bit, 1 KByte = 1024 Byte, 1 MByte = 1024 KByte, dan 1 Gbyte = 1024 MByte maka: Tabel. 4.45. Kumulatif Satu Transaksi Nama tabel
Jumlah
Jumlah
Kapasitas
Kapasitas dalam
dalam karakter
bit
tm_barang
81
648
tm_jasa
66
528
tm_distributor
235
1880
tm_pelanggan
185
1480
tm_opr_cost
60
480
tm_user
227
1816
tt_penjualan_0
45
360
tt_penjualan_1
50
400
tt_penjualan_2
44
352
tt_retur_penjualan_0
45
360
tt_retur_penjualan_1
65
520
tt_pembelian_0
45
360
tt_pembelian_1
68
544
tt_retur_pembelian_0
45
360
tt_retur_pembelian_1
65
520
tt_operational_0
70
560
tt_operational_1
217
1736
tt_hpp
114
912
tt_retur_hpp
129
1032
tt_temp
100
800
ts_stock_barang
57
456
ts_stock_barang_retur
49
392
2017 karakter
16136 Bit
Total ruang disk yang dibutuhkan
133 Tabel 4.46. Kumulatif dalam satu tahun Nama tabel tm_barang
Jml kapasitas dalam
Jml kapasitas dalam
1 tahun
bit 5670
45360
990
7920
tm_distributor
2350
18800
tm_pelanggan
3700
29600
900
7200
2270
18160
tt_penjualan_0
324000
2592000
tt_penjualan_1
1620000
12960000
tt_penjualan_2
1584000
12672000
tt_retur_penjualan_0
81000
648000
tt_retur_penjualan_1
585000
4680000
tm_jasa
tm_opr_cost tm_user
tt_pembelian_0
81000
648000
tt_pembelian_1
2448000
19584000
tt_retur_pembelian_0
81000
648000
tt_retur_pembelian_1
585000
4680000
tt_operational_0
702000
5616000
tt_operational_1
2343600
18748800
tt_hpp
4104000
32832000
tt_retur_hpp
1161000
9288000
tt_temp
10000
80000
ts_stock_barang
68400
547200
ts_stock_barang_retur
29400
235200
Total ruang disk yang dibutuhkan dalam 1 tahun
15823280 karakter
126586240 bit
134 Total ruang disk yang dibutuhkan dalam 1 tahun = 126586240 bit = 123683.4375 Byte = 120.79 KB = 0.12 MB Total ruang disk yang dibutuhkan dalam 5 tahun = 5 x 0.12 MByte ≈ 0,60 MByte
6. Mendesain Tingkat Keamanan Tahap ini bertujuan untuk mendesain ukuran keamanan basis data yang dispesifikasikan terhadap user yang ada pada Surya Photo. Dimana keamanan yang dimaksud adalah keamanan dalam membatasi hak akses (privillage) user terhadap basis data yang ada agar data-data dapat dilindungi dari user yang tidak berhak untuk mengaksesnya. User yang ada pada Surya Photo terdiri dari 1 orang Direktur merangkap admin, 1 orang Manager Pembelian, 1 orang Staff Pembelian, 1 Manager Pemasaran, 2 Staff Pemasaran, dan 2 Staff HRD, 1 Manager Produksi, 1 Staff Produksi. Admin bertindak sebagai administrator basis data,dan diberi hak atas tabel User saja. Sedangkan user yang merupakan staff diberi hak umtuk insert saja terhadap seluruh tabel dari basis data namun, direktur diberi hak untuk Menampilkan data saja, sedangkan Manager tiap bagian berhak atas penambahan, pengubahan, dan penghapusan data.
135 7. Perencanaan Implementasi
a. Spesifikasi Hardware a.1. Spesifikasi Hardware Client Penambahan 2 unit komputer, dimana 2 unit telah tersedia di perusahaan(jumlah total 4 unit), masingmasing untuk 1 (satu) unit Bagian HRD, 2 (dua) unit Bagian Pemasaran, 1 (satu) unit Bagian Pembelian, 1 (satu) unit bagian Produksi. Konstruksi : - Memori 1GHz - Processor Intel Core Duo Min 2.0 GHz - Harddisk 80 GigaBytes, - LAN card - Mouse - Keyboard - Monitor - Card reader - Bluetooth dongle
a.2. Spesifikasi Hardware Server Konstruksi : - Memori 2GHz - Processor AMD Athlon 64 Min 2.0 GHz - Harddisk 250 GigaBytes - LAN card - Mouse -Keyboard - Monitor
136 a.3. Spesifikasi Jaringan - 1 buah Switch(LAN, kabel, konektor - 2 unit Printer sebagai pencetak laporan/pencetak Laporan
dan
struk
penjualan
serta
penjualan(sharing).
b. Spesifikasi Software b.1. Spesifikasi Software Client - Microsoft SQL server 2000 (Client). - Microsoft Windows 2000 Server - Adobe Photoshop CS3 - Sistem Penjualan dan Pembelian Surya Photo
b.2. Spesifikasi Software Server - Microsoft SQL server 2000 (Database Server). - Microsoft Windows 2000 Server
4. 2. Perancangan Aplikasi 4.2.1 Menu Connection ke Database
Gambar 4.8 Halaman Utama – Connection - Untuk dapat masuk ke aplikasi, harus melakukan mengkoneksikan dahulu dengan database terlebih.
retur
137
Gambar 4.9 Menu Login - Lakukan Login terlebih dahulu sebelum masuk ke dalam aplikasi
4.2.2 Menu Master
Gambar 4.10 Menu Master Barang - Menu ini untuk melihat mengisi tabel master barang
138
Gambar 4.11 Menu Master Distributor - Menu ini untuk menginput data distributor
Gambar 4.12 Menu Master Jasa - Menu ini untuk menginput jenis jasa yang dilayani di Surya Photo
139
Gambar 4.13 Menu Master Item Operasional - Menu ini untuk membuat mendata jenis operasional Surya Photo
Gambar 4.14 Menu Master Pelanggan - Menu ini untuk mendata pelanggan baik umum maupun agen Surya Photo
140
Gambar 4.15 Menu Master Stock Awal Berjalan - Menu ini untuk menginput Stock awal berjalan surya photo
4.2.3 Menu View
Gambar 4.16 Menu View Master Barang - Menu ini melihat master barang Surya Photo
141
Gambar 4.17 Menu View Master Jasa - Menu ini untuk melihat tabel jasa yang dilayani di Surya Photo
Gambar 4.18 Menu View Tabel Distributor - Menu ini untuk melihat data distributor yang bekerja sama dengan Surya Photo
142
Gambar 4.19 Menu View Master Pelanggan - Menu ini untuk melihat pelanggan baik agen maupun umum Surya Photo
Gambar 4.20 Menu View Stock Barang - Menu ini untuk melihat Stock Barang Surya Photo
143
Gambar 4.21 Menu View Operational Item - Menu ini untuk melihat item-item yang menjadi operasional pada Surya Photo 4.2.4 Menu Transaksi
Gambar 4.22 Transaksi Pembelian - Menu menginput transaksi pembelian yang telah dilakukan.
144
Gambar 4.23 Transaksi Retur Pembelian dengan Pembelian -
Menu transaksi retur pembelian sekaligus pembelian dengan distributor yang sama.
Gambar 4.24 Transaksi Penjualan Menu transaksi penjualan dengan pelanggan
145
Gambar 4.25 Transaksi Retur Penjualan dengan Penjualan -
Menu transaksi retur penjualan sekaligus penjualan dengan pelanggan yang sama.
Gambar 4.26 Stock Barang yang rusak - Menu stock sementara barang yang rusak namun belum diretur.
146
Gambar 4.27 Contoh Struk Penjualan
Gambar 4.28 Contoh Struk Retur Penjualan dan Penjualan
147 4.2.5 Menu Tools
Gambar 4.29 Tools Calculator - Menu tambahan untuk menghitung
4.2.6 Menu Laporan
Gambar 4.30 Laporan Keuntungan Bulanan
148
Gambar 4.31 Laporan Transaksi per Agen
Gambar 4.32 Laporan Penjualan
149
Gambar 4.33 Laporan Pembelian
Gambar 4.34 Laporan Retur Penjualan
Gambar 4.35 Laporan Retur Pembelian
150
Gambar 4.36 Laporan Pendapatan Jasa
Gambar 4.37 Laporan Biaya Operasional
151
Gambar 4.38 Laporan 10 Barang Terlaris
Gambar 4.39 Laporan 10 Pelanggan Terbaik
152
Gambar 4.40 Laporan Stock Barang
4.2.7 Menu Settings
Gambar 4.41 Menu Users - Menu ini untuk menginput user yang berhak melakukan transaksi pada aplikasi ini
153
4.3 Biaya Implementasi Sistem Penjualan dan Pembelian pada Surya Photo
Tabel 4.47 Biaya Implementasi Sistem Nama Item Biaya Pembuatan Software dan
Biaya Rp. 1.000.000,00
setting Program
Tabel 4.48 Biaya Maintenance Sistem Nama Item Biaya Maintenance per Tahun
Biaya Rp. 600.000,00
(12 x Rp. 50.000,00) Tinta Printer (12 x 2 x Rp
Rp. 1.440.000,00
60.000)
Tabel 4.49 Biaya Hardware Nama Item Biaya Pembelian 3 Unit
Biaya Rp. 9.000.000,00
Komputer (Memori 1GHz, Processor Intel Core Duo Min 2.0 GHz, Harddisk 80 GigaBytes, LAN card, Mouse, Keyboard, Monitor)
3 x Rp. 3.000.000,00 Database dan Application server (Konstruksi : Memori 2GHz, Processor AMD Athlon 64 Min 2.0 GHz, Harddisk 250 GigaBytes, LAN card, Mouse, Keyboard, Monitor).
Rp 5.000.000,00
154 4.4 Staff dan Efektifitas kerja setelah Implementasi Sistem Tabel 4.50 Anggaran Gaji Staff setelah Implementasi Sistem Staff
Biaya
Bagian Pemasaran (3)
Rp. 1.800.000,00
@Rp 600.000,00 Bagian Pembelian (2)
Rp. 1.200.000,00
@Rp 600.000,00 Bagian HRD (1)
Rp. 600.000,00
@ Rp 600.000,00 Bagian Produksi (3)
Rp. 3.000.000,00
@ Rp 1.000.000,00 Total Biaya per bulan
Rp. 6.600.000,00
Tabel 4.51 Efektifitas Pembuatan Laporan setelah imlpementasi sistem Staff Bagian Pemasaran
Waktu Laporan Penjualan Harian dan Bulanan - Langsung - Stok Opname - 1 Hari
Bagian Pembelian
- Laporan Pembelian Bulanan Langsung - Stok Opname 1 Hari - Memuat Laporan Harga Pokok Penjualan sesuai laporan penjualan bulanan - Langsung
Bagian HRD
Membuat Laporan Gaji Karyawan dan Pengeluaran Bulanan - Langsung
Bagian Produksi
Membuat Laporan Laporan Kegagalan Cetakan Foto/Video - Langsung
155
BAB V SIMPULAN DAN SARAN
5.1.
Simpulan Berdasarkan
hasil
analisis
dan
pembahasan
yang
telah
disimpulkan dalam bab-bab sebelumnya, maka dapat diambil suatu simpulan dengan adanya Sistem Basis Data sistem penjualan dan pembelian pada Surya Photo, akan memudahkan dalam operasional perusahaan seperti : 1.
Transaksi
dan
memudahkan
pemrosesan dalam
penjualan
mengorganisasikan
dan data
pembelian, transaksi
secara digital sehingga dapat memberikan informasikan secara langsung 2.
Dapat mendukung laporan-laporan yang disajikan secara sederhana, terperinci dan periodik seperti :
- Laporan Penjualan (baik bulanan maupun harian) - Laporan Pembelian (bulanan) - Laporan Retur Penjualan - Laporan Retur Pembelian - Laporan Pendapatan Jasa - Laporan Biaya Operasional (Bulanan) - Laporan Total Transaksi per Agen - Laporan 10 Barang Terlaris - Laporan 10 Pelanggan Terbaik - Laporan Stock Barang Semua laporan- laporan ini dapat diakses secara langsung saat di butuhkan serta dapat membantu menghasilkan suatu keputusan untuk melakukan pembelian dan penjualan dan kinerja usaha.
156
3. Dengan adanya sistem penjualan dan pembelian ini mampu memberikan efisiensi waktu pembuatan laporan dan tenaga kerja. . 5.2.
Saran Berdasarkan hasil analisis dan kesimpulan yang diperoleh di atas,
dapat diusulkan beberapa saran, yaitu : 1.
Dalam penerapan aplikasi pengolahan data pembelian dan penjualan ini sebaiknya didukung oleh perangkat hardware yang memadai baik (minimal Memori 1GHz, Processor Intel Core Duo Min 2.0 GHz, Harddisk 80 GigaBytes, LAN card, Mouse, Keyboard, Monitor) dan dari segi manusia (brainware) melalui pelatihan penggunaan aplikasi komputerisasi sistem basis data penjualan dan pembelian pada Surya Photo
2.
Suatu perusahaan pasti membutuhkan pertumbuhan sistem yang terus-menerus. Oleh karena itu, dari komputerisasi sistem penjualan dan pembelian pada Surya Photo ini dapat dikembangkan untuk basis data lainnya, misal untuk sistem basis data Kepegawaian, Utang dan Piutang dan lainnya.
3.
Sistem basis data yang sudah dirancang harus selalu dimaintenace secara periodik, misalnya dengan melakukan back up secara berkala. Dalam hal ini, dengan adanya maintenance, sistem yang ada bisa terhindar dari ancamanancaman seperti, ancaman hacker, dan kerusakan maupun kehilangan data.
157
DAFTAR PUSTAKA
Connolly, Thomas & Carolyn Begg. Database System : A Practical th Approach to Design, Implementation, and Management. 3 Edition. England : Addison Wesley. 2002.
Date, C.J., An Introduction to Database System. International Edition. Pearson-Addison Wesley. 2004.
Fathansyah, Ir. Basis Data. Bandung : CV Informatika. 1999
Hawryszkiewycz, Igor. Introduction to : System Analysis and Design. 4th Edition. New Jersey : Prentice Hall. 1998.
Hariyanto, Bambang, Manajemen Basis Data : Permodelan, Perancangan, dan Terapannya. Bandung : CV Informatika. 2004
Indriyana, Indah & Bunafit Nugroho, Membuat Sistem Informasi Penjualan Retail dengan SQL Server dan VB 6. Jakarta : Penerbit PT. Elex Media Komputindo. 2007
Jogiyanto, H.M. Analisis dan Desain Sistem Informasi. Bandung : Erlangga. 1999.
McLeod, Raymond. Sistem Informasi Manajemen, Edisi VII-Terjemahan Teguh Hendra,SE. Jakarta : PT. Prenhalindo. 2001.
Mulyadi. Sistem Akuntansi. Edisi ke-3. Jakarta : Penerbit Salemba Empat. 2001.
158
Nugroho, Adi. Konsep Pengembangan Sistem Basis Data. Bandung : Penerbit Informatika. 2004.
O’ Brien, James A. An Introduction to Information System. Texas : McGraw Hill-Irwin. 2003.
Rob, Peter & Carlos M. Coronel. Database Systems : Design, th Implementation, And Management. 5 Edition. Massachusetts : Course Technology. 2002.
Sutabri, Tata. Analisa Sistem Informasi. Yogyakarta : Penerbit Andi. 2004.
http://id.wikipedia.org (diakses tanggal 12 Agustus 2007)
www.ilmukomputer.com (diakses tanggal 22 Februari 2007)
ifsc.ualr.edu (diakses tanggal 8 April 2008)
http://www.e-dukasi.net (diakses tanggal 11 Maret 2008)
http://www.investopedia.org (diakses tanggal 11 Maret 2008)
http://www.dataworks-indonesia.com (diakses tanggal 11 Maret 2008)
LAMPIRAN I STRUK PENJUALAN SURYA PHOTO
LAMPIRAN II FAKTUR PEMBELIAN SURYA PHOTO
LAMPIRAN III ENTITAS DAN RELASI PADA SURYA PHOTO
tm_user 1 1 1
1 menginput
1 1 menginput
1 1
tm_opr_ 1 terdapat dalam menginput 1..n cost
1
menginput 1..n
menginput mencatat transak si tm_pelan 1..n ggan 1..n tm_jasa 1
1..n tt_operational
tm_distri butor 1..n
mencatat transak si
tm_barang
1
1
1..n mencatat transaksi +mencatat transaksi1..n 1 mengandung terdapat terdapat dalam mengandung +mengandung 1..n 1..n 1..n 1 1 1 1..n 1 mengurangi ts_stock_b +mengupdate tt_pembelian tt_retur_pe mengambil data 1 1 1..ntt_penjualan njualan arang 1..n 1 1..n 1 1 1 1 1 +menambah qty barang 1 1 0..n
terdapat
mengupdate
+mengambil1..n data tt_retur_pe 1..n 1 mbelian
mengupdate 1..n 1..n tt_temp
tt_retur_hpp
1
+bila ada yang rusak
menginput
1..n
terdapat
menginput 1..n tt_hpp
1 ts_stock_bar 1..n ang_retur
mengurangi qty barang 1..n
1
LAMPIRAN IV ER MODEL DENGAN PRIMARY KEY
1 menginput
1 1 menginput
tm_pelanggan mencatat transaksi id_pelanggan 1..n
1
tm_user 1 nip 1
menginput 1..n 1 1
11
tm_opr_c tt_operational 1 terdapat dalam 1..n ost no_nota kd_opr
menginput 1..n tm_distributor id_distributor
menginput 1..n
1..n tm_jasa kd_jasa
tm_barang kd_brg
mencatat transak si 1
1 1..n mencatat transaksi terdapat terdapat +mencatat transaksi mengandung 0..n 1 1..n terdapat terdapat dalam mengandung 1 1..n 1..n 1 +mengandung 1..n 1..n 1 1 1 tt_retur_penjuala tt_retur_pembeli ts_stock_baran tt_pembelian +mengambil1..n 1 mengurangi tt_penjualan data mengambil data +mengupdate n an 1 g 1..n no_nota_jual 1 no_nota_beli 1..n no_nota_retur no_nota_retur no_nota_beli 1..n 1 1..n 1 1 1+menambah qty barang 1 1 1 1 mengupdate 1 +bila ada yang rusak menginput mengupdate 1 1..n ts_stock_baran mengurangi qty barang 1..n g_retur tt_temp 1..n menginput no_nota_beli no_nota_jual 1..n 1..n tt_retur_hpp 1..n no_nota_retur tt_hpp no_nota_jual
LAMPIRAN V MENGIRIMKAN KUNCI UTAMA SEBAGAI KUNCI ASING
LAMPIRAN VI TABEL YANG SUDAH DINORMALISASI
1 menginput
tm_user nip nama alamat notelp_rmh 1 notelp_hp username password previlege status
1..n menginput
tm_opr_c ost 1 terdapat dalam kd_opr nm_opr
1..n
1
1
tt_operational no_nota tgl kpd nip grandtotal
1 menginput
1 1 tm_pelanggan menginput id_pelanggan 1..n nm_pelanggan alamat mencatat transak si no_telp jenis 1..n 1 terdapat
tm_jasa kd_jasa nm_jasa hrg
1
1
menginput
mencatat transak si
1..n tm_barang kd_brg nm_brg name hrg_jual_satuan_umum hrg_jual_satuan_agen
1..n +mencatat transaksi
1..n
tm_distributor id_distributor nm_distributor alamat no_telp nm_sales no_telp_sales spesialisasi
1 mencatat transak si 1..n
1
memilik i 1 1..n
tt_operational_1 no_nota jenis kd_item deskripsi qty hrg_jual_satuan subtotal
tt_retur_pembelian _1 no_nota_retur no_nota_beli kd_brg qty hrg_beli_satuan subtotal_beli terdapat
0..n 1..n 1 1 terdapat tt_retur_penjuala terdapat dalam 1..n mengandung +mengandung 1 n tt_retur_penjualan 1..n tt_pembelian _1 no_nota_retur memilik i 1 no_nota_beli 1..n no_nota_retur memilik i tgl_retur 1 1..n 1 id_pelanggan 1 tgl_beli no_nota_jual 1 ts_stock_barang tt_penjualan 1 nip id_distributor mengambil data kd_brg 1..n 1 grandtotal nip no_nota_beli qty 1..n no_nota_jual 1 tt_retur_pembeli tgl_beli hrg_jual_satuan 1..n tgl_jual +mengupdate total_beli 1..n an 1 disc_beli subtotal_jual tgl_jth_tempo mengurangi kd_brg 1 mengupdate no_nota_retur 1 hrg_disc_beli qty_in id_pelanggan 1..n 1 +menambah qty barang +mengambil data 1 tgl_retur 1..n subtotal_retur qty_out nip id_distributor grandtotal_beli 1 menginput qty_sisa grandtotal_jual 1..n nip hrg_beli_satuan tt_temp grandtotal 1 mengupdate 1 no_nota 1 1 1 kd_trans 1..n deskripsi memilik i 1..n qty mengurangi qty barang tt_retur_hpp +bila ada yang rusak hrg_satuan no_nota_retur subtotal memilik i menginput no_nota_jual 1 tt_pembelian_1 no_nota_beli tgl_beli no_nota_beli ts_stock_barang_r 1..n 1..n kd_brg kd_brg 1..n tt_hpp etur 1..n qty qty 1..n tt_penjualan_2 no_nota_jual no_nota_beli brg_beli_satuan disc_item tt_penjualan_1 no_nota_jual no_nota_beli tgl_beli hrg_beli_satuan no_nota_jual kd_jasa tgl_beli kd_brg subtotal_sblm_disc kd_brg qty kd_brg qty subtotal_stlh_disc qty hrg qty hrg_beli_satuan hrg_jual_satuan subtotal hrg_beli_satuan subtotal_jual
LAMPIRAN VII ER MODEL DESAIN LOGIKAL
tm_user 1 1 menginput
1 1 menginput
tm_pelan ggan 1..nmencatat transaksi 1
1..n tm_jasa
1 1
menginput 1..n tm_opr_ 1 terdapat dalam cost 1 1 1
1
1..n
tt_operati onal_1
menginput 1..n
menginput
tm_distri butor 1..n
tm_barang
mencatat transaksi
1
tt_retur_pem belian_1
1
1..n mencatat transaksi 0..n +mencatat transaksi1..n mengandung 1 terdapat terdapat dalam mengandung +mengandung 1..n 1..n 1..n 1 1 1 1..n 1 1 mengurangi ts_stock_b tt_retur_penj memiliki tt_retur_pe +mengupdate tt_pembelian 1 mengambil data 1..ntt_penjualan njualan arang ualan_1 1..n 1 1..n 1 1 1..n 1 1 1 1 1 +menambah qty barang 1 1 1 mengupdate +bila ada yang rusak memiliki mengupdate tt_pembeli menginput 1..n an_1 1 memiliki tt_temp 1..n ts_stock_bar menginput 1..n ang_retur 1..n 1..n 1..n 1..n 1..n tt_retur_hpp tt_penjual tt_penjual tt_hpp an_1 an_2 terdapat
memiliki
1..n tt_operational
1..n memiliki
terdapat 1
1 tt_retur_pe 1..n 1 mbelian +mengambil data 1..n
1
mengurangi qty barang
LAMPIRAN VIII ENHANCED ENTITY RELATIONAL DIAGRAM
Owner nip
umum id_pelanggan hrg_jual_satuan_umum
Manager nip
Staff nip
tm_user nip nama alamat notelp_rmh 1 notelp_hp username password previlege status
agen id_pelanggan hrg_jual_satuan_agen 1 menginput
1..n menginput
tm_opr_c ost 1 terdapat dalam kd_opr nm_opr
1..n
1
1
tt_operational no_nota tgl kpd nip grandtotal
1 menginput
11 tm_pelanggan id_pelanggan nm_pelanggan alamat no_telp jenis
1..n
menginput
terdapat
1 menginput
mencatat transak si
1..n
1..n
mencatat transak si
1..n 1
1
tm_jasa kd_jasa nm_jasa hrg
tm_barang kd_brg nm_brg name hrg_jual_satuan_umum hrg_jual_satuan_agen
1 mencatat transak si
1..n +mencatat transaksi
tm_distributor id_distributor nm_distributor alamat no_telp nm_sales no_telp_sales spesialisasi
1..n
1
barang kd_brg nm_brg memilik i 1 1..n
tt_operational_1 no_nota jenis kd_item deskripsi qty hrg_jual_satuan subtotal
tt_retur_pembelian _1 no_nota_retur no_nota_beli kd_brg qty hrg_beli_satuan subtotal_beli terdapat
1..n 0..n 1 terdapat 1 tt_retur_penjuala terdapat dalam 1..n +mengandung 1 n mengandung tt_retur_penjualan 1..n tt_pembelian _1 no_nota_retur memilik i 1 tgl_retur no_nota_beli 1..n no_nota_retur memilik i 1 1..n 1 id_pelanggan 1 tgl_beli no_nota_jual 1 ts_stock_barang tt_penjualan nip id_distributor 1 mengambil data kd_brg 1..n 1 grandtotal nip no_nota_beli qty 1..n no_nota_jual 1 tt_retur_pembeli total_beli tgl_beli hrg_jual_satuan 1..n tgl_jual +mengupdate an 1..n 1 disc_beli subtotal_jual tgl_jth_tempo mengurangi kd_brg 1 mengupdate no_nota_retur 1 hrg_disc_beli qty_in id_pelanggan 1..n 1 +menambah qty barang +mengambil data 1 tgl_retur 1..n subtotal_retur qty_out nip id_distributor grandtotal_beli 1 qty_sisa menginput grandtotal_jual 1..n nip hrg_beli_satuan tt_temp grandtotal 1 mengupdate 1 no_nota 1 1 1 kd_trans 1..n deskripsi memilik i 1..n qty mengurangi qty barang tt_retur_hpp +bila ada yang rusak hrg_satuan no_nota_retur subtotal memilik i menginput no_nota_jual 1 tt_pembelian_1 no_nota_beli tgl_beli no_nota_beli ts_stock_barang_r 1..n 1..n kd_brg kd_brg 1..n tt_hpp etur 1..n qty qty 1..n tt_penjualan_2 no_nota_jual no_nota_beli brg_beli_satuan disc_item tt_penjualan_1 no_nota_jual no_nota_beli tgl_beli hrg_beli_satuan no_nota_jual kd_jasa tgl_beli kd_brg subtotal_sblm_disc kd_brg qty kd_brg qty subtotal_stlh_disc qty hrg qty hrg_beli_satuan hrg_jual_satuan subtotal hrg_beli_satuan subtotal_jual
opr_item kd_opr nm_opr