L1 Lampiran 1 - Hasil Wawancara Pertama (Direktur Utama)
Penulis melakukan wawancara terhadap direktur dari perusahaan PT. Nabatindah Sejahtera untuk mendapatkan pendapat tentang pendangan terhadap sistem perusahaan yang berjalan pada PT. Nabatindah Sejahtera. Hasil wawancara penulis adalah sebagai berikut:
1. PT. Nabatindah Sejahtera bergerak di bidang apa ? Bisa tolong sedikit diberikan informasi tentang perusahaan !
PT. Nabatindah Sejahtera bergerak di bidang kontraktor. Jumlah karyawan kami sekitar 20 orang dan sudah termasuk yang ada di lapangan, 100 orang lagi karyawan tidak tetap yang berada di lapangan.
2. Bisa tolong dijelaskan sedikit cara kerja sistem perusahaan dalam pengerjaan tender ?
PT. Nabatindah Sejahtera menerima tawaran tender dari perusahaan yang bersangkutan, lalu melakukan proses penawaran. Dari proses penawaran sampai proses pembayaran hingga tahap akhir, rata-rata dilakukan secara manual.
3. Apa saja permasalahan yang sering terjadi akibat belum adanya sistem komputerisasi dalam transaksi ?
Ada beberapa permasalahan yang terjadi dalam pengerjaan tender. Ketidakefisienan waktu dan proses membuat sering terjadi kesalahan dalam
L2 pencatatan transaksi, pencarian berkas-berkas yang dibutuhkan tiba-tiba dan lain-lain. Permasalahan tersebut terjadi karena sistem yang tidak terstruktur dan jumlah transaksi yang terus meningkat.
4. Bagaimana prosedur penawaran di PT. Nabatindah Sejahtera ?
Kami menerima tawaran tender dari perusahaan yang bersangkutan, lalu kami membuat penawaran tender sesuai informasi yang diberikan. Penawaran tender tersebut kurang lebih berisi barang yang digunakan, jasa yang digunakan, dan peralatan yang digunakan dan lain-lain.
5. Bagaimana sistem pembayaran dalam transaksi pelunasan tender ?
Kami kebanyakan melayani pembayaran cash atau menggunakan cek, biasanya memakai cek mundur. Proses pembayaran dilakukan sesuai kesepakatan pertama dan proses tersebut tetap memiliki beberapa tahap. Total pembayaran yang ditentukan dapat berubah sesuai tambahan yang dilakukan, tetapi penambahan tersebut tetap meminta persetujuan dari konsumen atau perusahaan yang bersangkutan.
Lampiran 2 - Hasil Wawancara Kedua (Direktur Utama)
Penulis melakukan wawancara terhadap direktur dari perusahaan PT. Nabatindah Sejahtera untuk mendapatkan pendapat tentang pendangan terhadap aplikasi sistem basis data yang akan diimplementasikan. Hasil wawancara penulis adalah sebagai berikut:
L3 1. Apakah aplikasi sistem basis data yang akan diimplementasikan cukup mudah untuk digunakan ?
Aplikasi ini cukup mudah dipahami dan digunakan terutama untuk karyawan yang telah mengenal komputer. Sementara untuk karyawan yang belum memahami komputer perlu diadakan pelatihan terhadap sistem basis data yang akan dibuat.
2. Apakah penggunaan aplikasi sistem basis data ini dapat mempercepat proses transaksi
persediaan
serta
mempercepat
pembuatan
laporan
yang
diperlukan ?
Proses transaksi dapat dilakukan dengan lebih cepat dan menghemat waktu pekerjaan. Transaksi pembelian yang mencangkup transaksi permintaan dan pembelian barang sudah cukup bagus dalam beberapa hal. Hubungan antara stok barang dan setiap proyek yang sedang dikerjakan sangat membantu tetapi laporan dari setiap bagian masih perlu dilakukan peninjauan karena kami tetap memerlukan gambaran kenyataan yang ada.
3. Apakah penggunaan aplikasi sistem basis data ini dapat mempercepat proses transaksi penjualan jasa serta mempercepat kebutuhan laporan yang diperlukan ?
Aplikasi ini sudah cukup membantu dalam mendefinisikan tugas-tugas yang terdapat di dalam suatu proyek. Data-data setiap pelanggan beserta propertynya tersimpan dengan baik sehingga proses pembagian tugas lebih cepat dan
L4 teratur. Tampilan-tampilan yang berhubungan dengan bentuk laporan yang diperlukan cukup berguna utnuk menampilkan transaksi pembagian tugas. Hasil penawaran jasa sudah cukup membantu dalam membantu perencanaan proyek ke depan. Laporan tersebut sudah bagus karena sudah memiliki fiturfitur yang bisa dilihat berdasarkan pelanggan, tanggal, suplier, perusahaan, dan lain-lain.
4. Apakah aplikasi ini dapat mempermudah pekerjaan para karyawan ?
Aplikasi ini memang dapat mempermudah pekerjaan karyawan, tetapi bagi para karyawan yang sebelumnya tidak dapat menggunakan komputer dan baru mendapatkan pelatihan, mengalami beberapa kesulitan. Tetapi masalah tersebut dapat diatasi setelah pelatihan beberapa waktu.
5. Apakah pengeluaran implementasi sistem yang baru sebanding dengan manfaat yang akan didapat ?
Hal tersebut belum dapat dipastikan karena implementasi sistem baru berlangsung dan penggunaannya belum sempurna dan masih membutuhkan waktu untuk penggunaan yang sebenarnya, sehingga tidak bisa dipastikan apakah pengeluaran yang dilakukan dengan feedback yang didapat.
6. Menurut anda, apakah sebaiknya seluruh bagian perusahaan mulai menggunakan aplikasi ini untuk mempermudah proses pengerjaan proyek ?
Hal ini dapat dipastikan karena perlu diadakan analisa lebih dahulu terhadap hasil yang didapat dari sistem yang baru dan mungkin analisa dapat
L5 dilakukan jika sistem telah berjalan sekitar setengah hingga satu tahun tetapi dalam satengah bulan sejak aplikasi telah diimplementasikan proses pembelian, pembagian tugas, pembagian barang, penwaran jasa, dan pembayaran dapat berlangsung dengan mudah dan efisien waktu sehingga kinerja dapat berjalan dengan cepat.
7. Apakah anda ingin mengembangkan sistem basis data beserta aplikasinya untuk jangka waktu yang lama ?
Pengembangan sistem basis data dan aplikasi yang mencakup seluruh informasi penting perusahaan sangat diperlukan, sehingga semua transaksi seperti penawaran jasa, pembelian barang, pembagian tugas karyawan, data karyawan, dan lain-lain dapat dilakukan dengan menggunakan komputer.
Lampiran 3 – Implementasi Tabel
Table Master: CREATE TABLE [dbo].[msjabatan] ( [kdjabatan] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [jabatan] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY] GO
L6
CREATE TABLE [dbo].[msbarang] ( [kdbarang] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [nama] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [harga] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [stok] [int] NOT NULL ) ON [PRIMARY] GO
CREATE TABLE [dbo].[msjasa] ( [kdjasa] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [jasa] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY] GO
CREATE TABLE [dbo].[mskaryawan] ( [kdkaryawan] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
L7 [kdjabatan] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [userID] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [nama] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [alamat] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [kota] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY] GO
CREATE TABLE [dbo].[mskonsumen] ( [kdkonsumen] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [nama] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [alamat] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [kota] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY] GO
L8
CREATE TABLE [dbo].[msperalatan] ( [kdperalatan] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [nama] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [harga] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [stok] [int] NOT NULL ) ON [PRIMARY] GO
CREATE TABLE [dbo].[msproyek] ( [kdproyek] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [nama] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [alamat] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [kota] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [tgl_mulai] [datetime] NOT NULL , [tgl_selesai] [datetime] NOT NULL ,
L9 [harga] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY]
CREATE TABLE [dbo].[msrental] ( [kdrental] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [nama] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [alamat] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [kota] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY]
CREATE TABLE [dbo].[mssupplier] ( [kdsupplier] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [nama] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [alamat] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [kota] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
L 10 ) ON [PRIMARY]
CREATE TABLE [dbo].[msuser] ( [userID] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [pass] [varchar] (35) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [status] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [login] [numeric](18, 0) NOT NULL ) ON [PRIMARY]
CREATE TABLE [dbo].[telpkaryawan] ( [notelpkaryawan] [numeric](18, 0) NOT NULL , [kdkaryawan] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY]
CREATE TABLE [dbo].[telpkonsumen] ( [notelpkonsumen] [numeric](18, 0) NOT NULL , [kdkonsumen] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY]
L 11 CREATE TABLE [dbo].[telprental] ( [notelprental] [numeric](18, 0) NOT NULL , [kdrental] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY]
CREATE TABLE [dbo].[telpsupplier] ( [notelpsupplier] [numeric](18, 0) NOT NULL , [kdsupplier] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY]
Table Transaction: CREATE TABLE [dbo].[pembayaran] ( [kdpembayaran] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [kdkaryawan] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [kdproyek] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [tgl_bayar] [datetime] NOT NULL , [tgl_lunas] [datetime] NOT NULL ) ON [PRIMARY] GO
L 12
CREATE TABLE [dbo].[pembelianD] ( [kdpembelian] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [kdbarang] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [qty] [int] NOT NULL ) ON [PRIMARY] GO
CREATE TABLE [dbo].[pembelianH] ( [kdpembelian] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [kdsupplier] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [kdkaryawan] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [tgl_beli] [datetime] NOT NULL ) ON [PRIMARY] GO
CREATE TABLE [dbo].[peminjamanD] (
L 13 [kdpeminjaman] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [kdperalatan] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [qty] [int] NOT NULL ) ON [PRIMARY] GO
CREATE TABLE [dbo].[peminjamanH] ( [kdpeminjaman] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [kdkaryawan] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [kdrental] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [tgl_pinjam] [datetime] NOT NULL , [tgl_kembali] [datetime] NOT NULL ) ON [PRIMARY] GO
CREATE TABLE [dbo].[penawaranD] ( [kdpenawaran] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
L 14 [kdbarang] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [kdperalatan] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [kdjasa] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [qty_barang] [int] NOT NULL , [qty_peralatan] [int] NOT NULL ) ON [PRIMARY] GO
CREATE TABLE [dbo].[penawaranH] ( [kdpenawaran] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [kdkonsumen] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [kdkaryawan] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [kdproyek] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [nama] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [tgl] [datetime] NOT NULL ) ON [PRIMARY]
L 15 GO
Lampiran 4 – Implementasi PK, FK, dan Constraint
ALTER TABLE [dbo].[msbarang] WITH NOCHECK ADD CONSTRAINT [DF_msbarang_kdbarang] DEFAULT ('BR') FOR [kdbarang], CONSTRAINT [PK_msbarang] PRIMARY KEY CLUSTERED ( [kdbarang] ) ON [PRIMARY] , CONSTRAINT [CK_msbarang] CHECK ([kdbarang] like 'BR[0-9][0-9][09]') GO
ALTER TABLE [dbo].[msjabatan] WITH NOCHECK ADD CONSTRAINT [PK_msjabatan] PRIMARY KEY CLUSTERED ( [kdjabatan] ) ON [PRIMARY] , CONSTRAINT [CK_msjabatan] CHECK ([kdjabatan] like 'JB[0-9][0-9][09]') GO
L 16 ALTER TABLE [dbo].[msjasa] WITH NOCHECK ADD CONSTRAINT [PK_msjasa] PRIMARY KEY CLUSTERED ( [kdjasa] ) ON [PRIMARY] , CONSTRAINT [CK_msjasa] CHECK ([kdjasa] like 'JA[0-9][0-9][0-9]') GO
ALTER TABLE [dbo].[mskaryawan] WITH NOCHECK ADD CONSTRAINT [PK_mskaryawan] PRIMARY KEY CLUSTERED ( [kdkaryawan] ) ON [PRIMARY] , CONSTRAINT [CK_mskaryawan] CHECK ([kdkaryawan] like 'KA[0-9][09][0-9]') GO
ALTER TABLE [dbo].[mskonsumen] WITH NOCHECK ADD CONSTRAINT [PK_mskonsumen] PRIMARY KEY CLUSTERED ( [kdkonsumen] ) ON [PRIMARY] CONSTRAINT [CK_mskonsumen] CHECK ([kdkonsumen] like 'KS[0-9][09][0-9]')
L 17 GO
ALTER TABLE [dbo].[msperalatan] WITH NOCHECK ADD CONSTRAINT [PK_msperalatan] PRIMARY KEY CLUSTERED ( [kdperalatan] ) ON [PRIMARY] , CONSTRAINT [CK_msperalatan] CHECK ([kdperalatan] like 'AL[0-9][09][0-9]') GO
ALTER TABLE [dbo].[msproyek] WITH NOCHECK ADD CONSTRAINT [PK_msproyek] PRIMARY KEY CLUSTERED ( [kdproyek] ) ON [PRIMARY] , CONSTRAINT [CK_msproyek] CHECK ([kdproyek] like 'PR[0-9][0-9][09]') GO
ALTER TABLE [dbo].[msrental] WITH NOCHECK ADD CONSTRAINT [PK_msrental] PRIMARY KEY CLUSTERED ( [kdrental]
L 18 ) ON [PRIMARY] CONSTRAINT [CK_msrental] CHECK ([kdrental] like 'RE[0-9][0-9][0-9]') GO
ALTER TABLE [dbo].[mssupplier] WITH NOCHECK ADD CONSTRAINT [PK_mssupplier] PRIMARY KEY CLUSTERED ( [kdsupplier] ) ON [PRIMARY] CONSTRAINT [CK_mssupplier] CHECK ([kdsupplier] like 'SP[0-9][0-9][09]') GO
ALTER TABLE [dbo].[msuser] WITH NOCHECK ADD CONSTRAINT [PK_msuser] PRIMARY KEY CLUSTERED ( [userID] ) ON [PRIMARY] GO
ALTER TABLE [dbo].[pembelianD] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [kdpembelian],
L 19 [kdbarang] ) ON [PRIMARY] CONSTRAINT [CK_pembelianD] CHECK ([kdpembelian] like 'BL[0-9][09][0-9]') GO
ALTER TABLE [dbo].[pembelianH] WITH NOCHECK ADD CONSTRAINT [PK_pembelianH] PRIMARY KEY CLUSTERED ( [kdpembelian] ) ON [PRIMARY] CONSTRAINT [CK_pembelianH] CHECK ([kdpembelian] like 'BL[0-9][09][0-9]') GO
ALTER TABLE [dbo].[peminjamanD] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [kdpeminjaman], [kdperalatan] ) ON [PRIMARY] CONSTRAINT [CK_peminjamanD] CHECK ([kdpeminjaman] like 'PJ[09][0-9][0-9]') GO
L 20
ALTER TABLE [dbo].[peminjamanH] WITH NOCHECK ADD CONSTRAINT [PK_peminjamanH] PRIMARY KEY CLUSTERED ( [kdpeminjaman] ) ON [PRIMARY] CONSTRAINT [CK_peminjamanH] CHECK ([kdpeminjaman] like 'PJ[09][0-9][0-9]') GO
ALTER TABLE [dbo].[penawaranD] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [kdpenawaran], [kdbarang], [kdperalatan], [kdjasa] ) ON [PRIMARY] CONSTRAINT [CK_ Barang] CHECK ([kdpenawaran] like 'PW[0-9][09][0-9]') CONSTRAINT [CK_ Peralatan] CHECK ([kdpenawaran] like 'PW[0-9][09][0-9]') CONSTRAINT [CK_ Jasa] CHECK ([kdpenawaran] like 'PW[0-9][0-9][09]')
L 21 GO
ALTER TABLE [dbo].[penawaranH] WITH NOCHECK ADD CONSTRAINT [PK_penawaranH] PRIMARY KEY CLUSTERED ( [kdpenawaran] ) ON [PRIMARY] CONSTRAINT [CK_penawaranH] CHECK ([kdpenawaran] like 'PW[09][0-9][0-9]')
GO
ALTER TABLE [dbo].[telpkaryawan] WITH NOCHECK ADD CONSTRAINT [PK_telpkaryawan] PRIMARY KEY CLUSTERED ( [notelpkaryawan] ) ON [PRIMARY] GO
ALTER TABLE [dbo].[telpkonsumen] WITH NOCHECK ADD CONSTRAINT [PK_telpkonsumen] PRIMARY KEY CLUSTERED ( [notelpkonsumen] ) ON [PRIMARY]
L 22 GO
ALTER TABLE [dbo].[telprental] WITH NOCHECK ADD CONSTRAINT [PK_telprental] PRIMARY KEY CLUSTERED ( [notelprental] ) ON [PRIMARY] GO
ALTER TABLE [dbo].[telpsupplier] WITH NOCHECK ADD CONSTRAINT [PK_telpsupplier] PRIMARY KEY CLUSTERED ( [notelpsupplier] ) ON [PRIMARY] GO
ALTER TABLE [dbo].[mskaryawan] ADD CONSTRAINT [FK_mskaryawan_msjabatan1] FOREIGN KEY ( [kdjabatan] ) REFERENCES [dbo].[msjabatan] ( [kdjabatan] )
L 23 CONSTRAINT [CK_mskaryawan] CHECK ([kdkaryawan] like 'KY[0-9][09][0-9]') GO
ALTER TABLE [dbo].[pembelianD] ADD FOREIGN KEY ( [kdbarang] ) REFERENCES [dbo].[msbarang] ( [kdbarang] ) ON DELETE CASCADE ON UPDATE CASCADE , FOREIGN KEY ( [kdpembelian] ) REFERENCES [dbo].[pembelianH] ( [kdpembelian] ) ON DELETE CASCADE ON UPDATE CASCADE GO
ALTER TABLE [dbo].[peminjamanD] ADD FOREIGN KEY ( [kdpeminjaman] ) REFERENCES [dbo].[peminjamanH] (
L 24 [kdpeminjaman] ) ON DELETE CASCADE ON UPDATE CASCADE , FOREIGN KEY ( [kdperalatan] ) REFERENCES [dbo].[msperalatan] ( [kdperalatan] ) ON DELETE CASCADE ON UPDATE CASCADE GO
ALTER TABLE [dbo].[penawaranD] ADD FOREIGN KEY ( [kdbarang] [kdpenawaran] [kdjasa] ) REFERENCES [dbo].[msbarang] ( [kdbarang] ) ON DELETE CASCADE ON UPDATE CASCADE , FOREIGN KEY ( [kdpenawaran] ) REFERENCES [dbo].[penawaranH] ( [kdpenawaran]
L 25 ) ON DELETE CASCADE ON UPDATE CASCADE , FOREIGN KEY ( [kdperalatan] ) REFERENCES [dbo].[msperalatan] ( [kdperalatan] ) ON DELETE CASCADE ON UPDATE CASCADE FOREIGN KEY ( ) REFERENCES [dbo].[msjasa] ( [kdjasa] ) ON DELETE CASCADE ON UPDATE CASCADE , GO
ALTER TABLE [dbo].[telpkaryawan] ADD CONSTRAINT [FK_telpkaryawan_mskaryawan] FOREIGN KEY ( [kdkaryawan] ) REFERENCES [dbo].[mskaryawan] ( [kdkaryawan] ) GO
L 26 ALTER TABLE [dbo].[telpkonsumen] ADD CONSTRAINT [FK_telpkonsumen_mskonsumen] FOREIGN KEY ( [kdkonsumen] ) REFERENCES [dbo].[mskonsumen] ( [kdkonsumen] ) GO
ALTER TABLE [dbo].[telprental] ADD CONSTRAINT [FK_telprental_msrental] FOREIGN KEY ( [kdrental] ) REFERENCES [dbo].[msrental] ( [kdrental] ) GO
ALTER TABLE [dbo].[telpsupplier] ADD CONSTRAINT [FK_telpsupplier_mssupplier] FOREIGN KEY ( [kdsupplier] ) REFERENCES [dbo].[mssupplier] ( [kdsupplier]
L 27 ) GO
Lampiran 5 – Implementasi View
View Pembelian SELECT
dbo.msbarang.kdbarang AS [kode barang], dbo.msbarang.nama AS
barang, dbo.msbarang.harga, dbo.pembelianD.qty FROM
dbo.msbarang INNER JOIN dbo.pembelianD ON dbo.msbarang.kdbarang =
dbo.pembelianD.kdbarang INNER JOIN dbo.pembelianH ON dbo.pembelianD.kdpembelian = dbo.pembelianH.kdpembelian
View Peminjaman SELECT
dbo.msperalatan.kdperalatan AS [kode peralatan],
dbo.msperalatan.nama AS peralatan, dbo.msperalatan.harga AS [harga sewa], dbo.peminjamanD.qty FROM
dbo.msperalatan INNER JOIN dbo.peminjamanD ON dbo.msperalatan.kdperalatan =
dbo.peminjamanD.kdperalatan INNER JOIN dbo.peminjamanH ON dbo.peminjamanD.kdpeminjaman = dbo.peminjamanH.kdpeminjaman
L 28 View Pembayaran SELECT
dbo.mskonsumen.nama AS [nama konsumen],.jml_bayar AS
[jumlah pembayaran], dbo.pembayaranH.tgl_bayar AS [tanggal pembayaran] FROM
dbo.pembayaranH INNER JOIN dbo.pembayaranD ON dbo.pembayaranH.kdpembayaran =
dbo.pembayaranD.kdpembayaran INNER JOIN dbo.mskonsumen ON dbo.pembayaranD.kdkonsumen = dbo.mskonsumen.kdkonsumen
View Penawaran SELECT
dbo.msjasa.jasa, dbo.msbarang.nama AS barang,
dbo.penawaranD.qty_barang AS [qty barang], dbo.msperalatan.nama AS peralatan, dbo.penawaranD.qty_peralatan AS [qty peralatan], dbo.msjasa.biaya FROM
dbo.msbarang INNER JOIN dbo.penawaranD ON dbo.msbarang.kdbarang =
dbo.penawaranD.kdbarang INNER JOIN dbo.penawaranH ON dbo.penawaranD.kdpenawaran = dbo.penawaranH.kdpenawaran INNER JOIN dbo.msperalatan ON dbo.penawaranD.kdperalatan = dbo.msperalatan.kdperalatan INNER JOIN dbo.msjasa ON dbo.penawaranD.kdjasa = dbo.msjasa.kdjasa
L 29 View Karyawan SELECT
dbo.mskaryawan.kdkaryawan, dbo.mskaryawan.nama,
dbo.mskaryawan.alamat, dbo.mskaryawan.kota, dbo.msjabatan.jabatan, dbo.telpkaryawan.notelpkaryawan, dbo.msuser.userID, dbo.msuser.pass FROM
dbo.mskaryawan INNER JOIN dbo.msjabatan ON dbo.mskaryawan.kdjabatan =
dbo.msjabatan.kdjabatan INNER JOIN dbo.msuser ON dbo.mskaryawan.userID = dbo.msuser.userID INNER JOIN dbo.telpkaryawan ON dbo.mskaryawan.kdkaryawan = dbo.telpkaryawan.kdkaryawan
View Konsumen SELECT
dbo.mskonsumen.kdkonsumen, dbo.mskonsumen.nama,
dbo.mskonsumen.alamat, dbo.mskonsumen.kota, dbo.telpkonsumen.notelpkonsumen FROM
dbo.mskonsumen INNER JOIN dbo.telpkonsumen ON dbo.mskonsumen.kdkonsumen =
dbo.telpkonsumen.kdkonsumen View Supplier SELECT
dbo.mssupplier.kdsupplier, dbo.mssupplier.nama,
dbo.mssupplier.alamat, dbo.mssupplier.kota, dbo.telpsupplier.notelpsupplier FROM
dbo.mssupplier INNER JOIN
L 30 dbo.telpsupplier ON dbo.mssupplier.kdsupplier = dbo.telpsupplier.kdsupplier
View Rental SELECT
dbo.msrental.kdrental, dbo.msrental.nama,
dbo.msrental.alamat, dbo.msrental.kota, dbo.telprental.notelprental FROM
dbo.msrental INNER JOIN dbo.telprental ON dbo.msrental.kdrental =
dbo.telprental.kdrental
Lampiran 6 – implementasi Hak Akses
1. Logistik Grant read, insert on msbarang to Logistik Grant read, insert on pembelianH to Logistik Grant read, insert on pembelianD to Logistik Grant read, insert on mssuplier to Logistik Grant read, insert on TelpSuplier to Logistik Grant all on peminjamanH to Logistik Grant read, insert on msrental to Logistik Grant all on peminjamanD to Logistik Grant read, insert on TelpRental to Logistik Grant read, insert on msperalatan to Logistik Grant read, insert, update on msuser to Logistik
L 31
2. Marketing Grant read on penawaranH to Marketing Grant read on penawaranD to Marketing Grant read on msproyek to Marketing Grant read, insert on mskonsumen to Marketing Grant read, insert on TelpKonsumen to Marketing Grant read, insert, update on msuser to Marketing
3. Personalia Grant read, insert on mskaryawan to Personalia Grant read, insert on TelpKaryawan to Personalia Grant read on msjabatan to Personalia Grant read, insert, update on msuser to Personalia
4. Manajer Proyek Grant read on msbarang to Manajer Proyek Grant read on mskaryawan to Manajer Proyek Grant read, insert on penawaranH to Manajer Proyek Grant read,insert on penawaranD to Manajer Proyek Grant read, insert on msproyek to Manajer Proyek Grant read, insert on msjasa to Manajer Proyek Grant read on mskonsumen to Manajer Proyek Grant read on msperalatan to Manajer Proyek
L 32 Grant read, insert, update on msuser to Manajer Proyek
5. Direktur Grant read on msbarang to Direktur Grant read on pembelianH to Direktur Grant read on pembelianD to Direktur Grant read on mssuplier to Direktur Grant read on TelpSuplier to Direktur Grant read, insert, update on msuser to Direktur Grant read on mskaryawan to Direktur Grant read on TelpKaryawan to Direktur Grant read on penawaranH to Direktur Grant read on penawaranD to Direktur Grant read on pembayaranH to Direktur Grant read on msjabatan to Direktur Grant read on peminjamanH to Direktur Grant read on peminjamanD to Direktur Grant read on msrental to Direktur Grant read on TelpRental to Direktur Grant read on msproyek to Direktur Grant read on msjasa to Direktur Grant read on mskonsumen to Direktur Grant read on TelpKonsumen to Direktur Grant read on msperalatan to Direktur
L 33
6. Admin dan Keuangan Grant read, update, delete on msbarang to Admin dan Keuangan Grant read, update, delete on pembelianH to Admin dan Keuangan Grant read, update, delete on pembelianD to Admin dan Keuangan Grant read, update, delete on mssuplier to Admin dan Keuangan Grant read, update, delete on TelpSuplier to Admin dan Keuangan Grant all on msuser to Admin dan Keuangan Grant read, update, delete on mskaryawan to Admin dan Keuangan Grant read, update, delete on TelpKaryawan to Admin dan Keuangan Grant read, update, delete on penawaranH to Admin dan Keuangan Grant read, update, delete on penawaranD to Admin dan Keuangan Grant all on pembayaranH to Admin dan Keuangan Grant read on msjabatan to Admin dan Keuangan Grant read, update, delete on peminjamanH to Admin dan Keuangan Grant read, update, delete on peminjamanD to Admin dan Keuangan Grant read, update, delete on msrental to Admin dan Keuangan Grant read, update, delete on TelpRental to Admin dan Keuangan Grant read, update, delete on msproyek to Admin dan Keuangan Grant read, update, delete on msjasa to Admin dan Keuangan Grant read, update, delete on mskonsumen to Admin dan Keuangan Grant read, update, delete on TelpKonsumen to Admin dan Keuangan Grant read, update, delete on msperalatan to Admin dan Keuangan
L 34 Lampiran 7 – Pseudocode Program
1. Form Login
Mulai
Buka koneksi
Baca msuser dimana userID = usert.text dan pass = pass.text
Jika tidak EOF maka
Tampilkan main_menu
Selain itu
Tampilkan pesan error “Wrong UseID or Password”
Selesai Jika
Selesai
2. Form Menu Utama
Mulai
Tampilkan main menu
Check status jabatan dan login
Jika user.click = barang maka tampilkan barang
L 35 Jika user.click = peralatan maka tampilkan peralatan
Jika user.click = konsumen maka tampilkan konsumen
Jika user.click = karyawan maka tampilkan karyawan
Jika user.click = suplier maka tampilkan suplier
Jika user.click = rental maka tampilkan rental
Jika user.click = proyek maka tampilkan proyek
Jika user.click = jasa maka tampilkan jasa
Jika user.click = pembelian maka tampilkan pemebelian
Jika user.click = peminjaman maka tampilkan peminjaman
Jika user.click = penawaran maka tampilkan penawaran
Jika user.click = pembayaran maka tampilkan pembayaran
Jika user.click = logout maka tampilkan login
Jika user.click = exit maka Selesai
Selesai
3. Form Master Data Barang
Mulai
L 36 Jika user.click = insert maka tambah_barang
Jika user.click = update maka ubah_barang
Jika user.click = delete maka hapus_barang
Jika user.click = search maka cari_barang
Jika user.click = exit maka tampilkan main menu
Selesai
3.1 Fungsi Tambah Data Barang
Mulai
Jika kode_barang.text = “” maka
Set focus kode_barang
Selesai Jika
Jika nama_barang.text = “” maka
Set focus nama_barang
Selesai Jika
Jika hgBeli_barang.value = “” maka
Set focus hgBeli_barang
L 37 Selesai Jika
Jika stok_barang.text = “” maka
Set focus stok_barang
Selesai Jika
Baca msbarang dimana kdbarang = kode_barang.text
Jika kdbarang = kode_barang.text maka
Tampilkan pesan error “kode barang sudah ada”
Selain itu
Masukkan kode_barang, nama_barang, hgBeli_barang, stok_barang dalam msbarang
Selesai jika
Selesai
3.2 Fungsi Ubah Data Barang
Mulai
Pilih data dalam grid
Baca msbarang dimana kdbarang = kode_barang.text
L 38 Ubah nama_barang.text
Ubah hgBeli_barang.text
Ubah stok_barang.text
Jika User.click = ubah maka update msbarang
Selesai
3.3 Fungsi Hapus Data Barang
Mulai
Pilih data dalam grid
Baca msbarang dimana kdbarang = kode_barang.text
Jika User.click = hapus maka delete msbarang
Selesai
3.4 Fungsi Cari Data Barang
Mulai
Tampilkan search.textbox
Baca msbarang dimana nama = search.text
Masukkan search.textbox
L 39 Tampilkan hasil pencarian dalam grid
Selesai
**Semua pseudocode pada form data master dan prosedurnya sama
4. Form Transaksi Data Pembelian
Mulai
Cek nomor transaksi
Jika transaksi = ada maka
Tampilkan data detail pembelian
Jika user.click = update maka ubah_ pembelian
Jika user.click = delete maka hapus_ pembelian
Jika user.click = cetak maka cetak laporan pembelian
Jika user.click = exit maka tampilkan main menu
Selain
Baca MsSuplier
Baca MsBarang
Jika user.click = insert maka tambah_pembelian
L 40 Jika user.click = cetak maka cetak laporan pembelian
Jika user.click = exit maka tampilkan main menu
Selesai
3.1 Fungsi Tambah Data Pembelian
Mulai
Jika kode_pembelian.text = ”” maka
Set focus kode_ pembelian
Selesai Jika
Jika nama_suplier.text = ”” maka
Set focus nama_suplier
Selesai Jika
Jika tgl_ pembelian.value = “” maka
Set focus tgl_ pembelian
Selesai Jika
Jika kd_barang.text = “” maka
Set focus kd_barang
L 41 Selesai Jika
Jika hg_barang.value = “” maka
Set focus hg_barang
Selesai Jika
Jika qty.text = “” maka
Set focus qty
Selesai Jika
Masukkan data pembelian ke dalam PembelianH
Masukkan data pembelian ke dalam PembelianD
Selesai
3.2 Fungsi Ubah Data Pembelian
Mulai
Baca pembelianD d, pembelian H h, MsBarang b dimana h.kdpembelian = d.kdpembelian dan d.kdbarang = b.kdbarang dan h.kdpembelian = kode_pembelian.text
Tampilkan data pembelian
L 42 Ubah hgBeli_barang.text
Ubah qty.text
Jika User.click = ubah maka update pembelianD
Selesai
3.3 Fungsi Hapus Data Pembelian
Mulai
Baca pembelianD d, pembelian H h, MsBarang b dimana h.kdpembelian = d.kdpembelian dan d.kdbarang = b.kdbarang dan h.kdpembelian = kode_pembelian.text
Tampilkan data pembelian
Jika User.click = hapus maka delete pembelianD
Selesai
5. Form Transaksi Data Peminjaman
Mulai
Cek nomor transaksi
Jika transaksi = ada maka
L 43 Tampilkan data detail pembelian
Jika user.click = update maka ubah_ peminjaman
Jika user.click = delete maka hapus_ peminjaman
Jika user.click = cetak maka cetak laporan peminjaman
Jika user.click = exit maka tampilkan main menu
Selain
Baca MsRental
Baca MsPeralatan
Jika user.click = insert maka tambah_pembelian
Jika user.click = cetak maka cetak laporan peminjaman
Jika user.click = exit maka tampilkan main menu
Selesai
3.1 Fungsi Tambah Data Peminjaman
Mulai
Jika kode_peminjaman.text = “” maka
Set focus kode_ peminjaman
L 44 Selesai Jika
Jika nama_rental.text = “” maka
Set focus nama_rental
Selesai Jika
Jika tgl_ peminjaman.value = “” maka
Set focus tgl_ peminjaman
Selesai Jika
Jika kd_peralatan.text = “” maka
Set focus kd_peralatan
Selesai Jika
Jika hg_sewa.value = “” maka
Set focus hg_sewa
Selesai Jika
Jika qty.text = “” maka
Set focus qty
Selesai Jika
L 45 Masukkan data peminjaman ke dalam PeminjamanH
Masukkan data peminjaman ke dalam PeminjamanD
Selesai
3.2 Fungsi Ubah Data Peminjaman
Mulai
Baca peminjamanD d, peminjaman H h, MsRental b dimana h.kdpeminjaman = d.kdpeminjaman dan d.kdrental = b.kdrenta dan h.kdpeminjaman = kode_peminjaman.text
Tampilkan data peminjaman
Ubah hgsewa.text
Ubah qty.text
Jika User.click = ubah maka update pembelianD
Selesai
3.3 Fungsi Hapus Data Peminjaman
Mulai
L 46 Baca peminjamanD d, peminjaman H h, MsRental b dimana h.kdpeminjaman = d.kdpeminjaman dan d.kdrental = b.kdrental dan h.kdpeminjaman = kode_peminjaman.text
Tampilkan data peminjaman
Jika User.click = hapus maka delete peminjamanD
Selesai
6. Form Transaksi Data Pembayaran
Mulai
Cek nomor transaksi
Jika transaksi = ada maka
Tampilkan data detail pembayaran
Jika user.click = update maka ubah_ pembayaran
Jika user.click = delete maka hapus_ pembayaran
Jika user.click = exit maka tampilkan main menu
Selain
Baca MsRental
L 47 Baca MsPeralatan
Jika user.click = insert maka tambah_pembayaran
Jika user.click = exit maka tampilkan main menu
Selesai
3.1 Fungsi Tambah Data Pembayaran
Mulai
Baca MsKonsumen
Baca MsProyek
Jika tgl_bayar.datetime = “” maka
Set focus tgl_bayar
Selesai Jika
Jika jml_bayar.text = “” maka
Set focus jml_bayar
Selesai Jika
Jika kd_pembayaran.text = “” maka
Set focus kd_pembayaran
L 48 Selesai Jika
Jika nama_cus.text = “” maka
Set focus nama_cus.text
Selesai Jika
Masukkan data pembayaran ke dalam PembayaranH
Masukkan data pembayaran ke dalam PembayaranD
Selesai
3.2 Fungsi Ubah Data Pembayaran
Mulai
Baca pembayaranD d, pembayaran H h, kdproyek b dimana h.kdpembayaran = d.kdpembayaran dan d.kdproyek = b.kdproyek dan h.kdpembayaran = kode_pembayaran.text
Ubah tgl_bayar.datetime
Ubah jml_bayar.text
Jika User.click = ubah maka update pembayaranD
Selesai
L 49 3.3 Fungsi Hapus Data Pembayaran
Mulai
Baca pembayaranD d, pembayaran H h, Msproyek b dimana h.kdpembayaran = d.kdpembayaran dan d.kdproyek = b.kdproyek dan h.kdpembayaran = kode_pembayaran.text
Tampilkan data pembayaran
Jika User.click = hapus maka delete pembayaranD
Selesai
7. Form Transaksi Data Penawaran
Mulai
Cek nomor transaksi
Jika transaksi = ada maka
Tampilkan data detail penawaran
Jika user.click = update maka ubah_ penawaran
Jika user.click = delete maka hapus_ penawaran
Jika user.click = exit maka tampilkan main menu
L 50 Selain
Baca MsBarang
Baca Jasa
Baca MsPeralatan
Jika user.click = insert maka tambah_penawaran
Jika user.click = exit maka tampilkan main menu
Selesai
3.1 Fungsi Tambah Data Penawaran
Mulai
Baca MsBarang
Baca MsPeralatan
Baca MsJasa
Jika kd_penawaran.text = “” maka
Set focus kd_penawaran
Selesai Jika
Jika nama_konsumen.text = “” maka
L 51 Set focus nama_konsumen
Selesai Jika
Jika nama_barang.text = “” maka
Set focus nama_barang
Selesai Jika
Jika nama_peralatan.text = “” maka
Set focus nama_peralatan
Selesai Jika
Jika kode_jasa.text = “” maka
Set focus kode_jasa
Selesai Jika
Jika qty_peralatan.text = “” maka
Set focus qty_peralatan
Selesai Jika
Jika qty_barang.text = “” maka
L 52 Set focus qty_barang.text
Selesai Jika
Masukkan data pembayaran ke dalam PenawaranH
Masukkan data pembayaran ke dalam PenawaranD
Selesai
3.2 Fungsi Ubah Data Penawaran
Mulai
Baca penawaran d, penawaran H h, kdbarang b, kdperalatan l, kdjasa j dimana h.kdpenawaran = d.kdpenawaran dan d.kdbarang = b.kdbarang dan d.kdperalatan = b.kdperalatan dan d.kdjasa = b.kdjasa dan h.kdpenawaran = kode_penawaran.text
Ubah kdjasa.text
Ubah nama_barang.text
Ubah nama_jasa.text
Jika User.click = ubah maka update penawaranD
Selesai
3.3 Fungsi Hapus Data Penawaran
L 53 Mulai
Baca penawaran d, penawaran H h, kdbarang b, kdperalatan l, kdjasa j dimana h.kdpenawaran = d.kdpenawaran dan d.kdbarang = b.kdbarang dan d.kdperalatan = b.kdperalatan dan d.kdjasa = b.kdjasa dan h.kdpenawaran = kode_penawaran.text
Tampilkan data penawaran
Jika User.click = hapus maka delete penawaranD
Selesai