163 4.1.3 Perancangan Basisdata Fisikal Perancangan basisdata fisikal merupakan proses pembuatan deskripsi implementasi basisdata pada secondary storage, mencakup relasi-relasi dasar, organisasi file, dan index yang digunakan untuk mencapai akses data yang efisien, beserta semua integrity constraints, dan langkah-langkah yang dilakukan untuk menjamin keamanan data. Perancangan basisdata fisikal terdiri dari beberapa langkah, yaitu : 1. Menerjemahkan model data logikal untuk DBMS yang digunakan a. Merancang relasi dasar. b. Merancang representasi derived data. c. Merancang general constraints. 2. Merancang organisasi file dan index a. Menganalisa transaksi. b. Memilih organisasi file. c. Memilih index. d. Memperkirakan kebutuhan disk space. 3. Merancang view pengguna 4. Merancang mekanisme keamanan
4.1.3.1 Menerjemahkan Model Data Logikal untuk DBMS yang Digunakan Tujuan langkah ini adalah untuk menghasilkan skema basisdata relasional dari model data logikal yang dapat diterapkan pada DBMS yang akan digunakan.
163
164 4.1.3.1.1 Merancang Relasi Dasar Tujuan
langkah
ini
adalah
untuk
menentukan
bagaimana representasi relasi dasar, yang telah diidentifikasi pada model data logikal, di dalam DBMS yang akan digunakan. Berikut ini adalah Database Definition Languange (DBDL)
untuk
masing-masing
relasi
dengan
penggunaan SQL Server 2005 sebagai DBMS.
Tabel 4.11 Database Definition Language untuk Relasi Dasar Domain KodeMaster :
integer with identity function
Domain Nama :
variable length character string, length 25
Domain Status :
fixed length character string, length 7
Domain Alamat :
variable length character string, length 100
Domain Kota :
variable length character string, length 15
Domain NomorTelepon :
variable length character string, length 15
Domain Jabatan :
variable length character string, length 15
Domain Bagian :
variable length character string, length 15
Domain Uang :
monetary value
Domain Tanggal :
datetime
Domain Luas :
integer
Domain Jenis :
variable length character string, length 5
Domain Lokasi :
variable length character string, length 15
Domain NJOP :
monetary value
dasar
165 Domain NamaJabatan :
variable length character string, length 15
Domain NamaBagian :
variable length character string, length 15
Domain Jumlah :
monetary value
Domain KodeForeign :
integer
Domain KodeTransaksi :
fixed length character string, length 9
Domain KodeSurat :
fixed length character string, length 9
Domain Sandi :
variable lengh character string, length 25
1. Wajib_Pajak ( NPWP
KodeMaster
NOT NULL,
Nama
Nama
NOT NULL,
Status
Status
NOT NULL,
Alamat1
Alamat
NOT NULL,
Alamat2
Alamat
NOT NULL,
Telp1
NomorTelepon
NOT NULL,
Telp2
NomorTelepon
NOT NULL,
Kota
NamaKota
NOT NULL,
Kd_Pegawai
KodeMaster
NOT NULL,
Nama
Nama
NOT NULL,
Gaji
Uang
NOT NULL,
PRIMARY KEY (NPWP));
2. Pegawai (
166 Kd_Jabatan
KodeForeign
NOT NULL,
Alamat1
Alamat
NOT NULL,
Alamat2
Alamat ,
Telp1
NomorTelepon
Telp2
NomorTelepon,
Email
AlamatEmail,
Kd_Bagian
KodeForeign
NOT NULL,
Username
Nama
NOT NULL,
Password
Sandi
NOT NULL.
NOT NULL,
PRIMARY KEY (Kd_Pegawai)); FOREIGN KEY (Kd_Jabatan) REFERENCES Jabatan_Pegawai (Kd_Jabatan) ON UPDATE CASCADE ON DELETE NO ACTION); FOREIGN KEY (Kd_Bagian) REFERENCES Bagian (Kd_Bagian) ON UPDATE CASCADE ON DELETE NO ACTION));
3. Detail_PenangananOP ( NOP
KodeTransaksi
NOT NULL,
Kd_Pegawai
KodeForeign
NOT NULL,
Tanggal
Tanggal
NOT NULL,
PRIMARY KEY (NOP, Kd_Pegawai) FOREIGN KEY (NOP) REFERENCES Objek_Pajak (NOP) ON UPDATE CASCADE ON DELETE NO ACTION
167 FOREIGN KEY (Kd_Pegawai) REFERENCES Pegawai (Kd_Pegawai) ON UPDATE CASCADE ON DELETE NO ACTION));
4. Objek_Pajak ( NOP
KodeMaster
NOT NULL,
Luas
Luas
NOT NULL,
Jenis_Sertifikat
Jenis
NOT NULL,
Lokasi
Lokasi
NOT NULL,
NJOP
NJOP
NOT NULL,
NPWP
KodeForeign
NOT NULL,
PRIMARY KEY (NOP) FOREIGN KEY (NPWP) REFERENCES Wajib_Pajak (NPWP) ON UPDATE CASCADE ON DELETE NO ACTION));
5. Jabatan_Pegawai ( Kd_Jabatan
KodeMaster
NOT NULL,
Nama_Jabatan
Nama
NOT NULL,
PRIMARY KEY (Kd_Jabatan));
6. Bagian ( Kd_Bagian
KodeMaster
NOT NULL,
Nama_ Bagian
Nama
NOT NULL,
PRIMARY KEY (Kd_Bagian));
168 7. Detail_SuratOP ( No_SPOP
KodeTransaksi
NOT NULL,
TanggalSPOP
Tanggal
NOT NULL,
No_FDM
KodeSurat
NOT NULL,
TanggalFDM
Tanggal
NOT NULL,
No_RPN
KodeSurat
NOT NULL,
TanggalRPN
Tanggal
NOT NULL,
NOP
KodeForeign
NOT NULL,
Kd_Pegawai
KodeForeign
NOT NULL,
No_SPPT
KodeForeign
NOT NULL.
PRIMARY KEY (No_SPOP) FOREIGN KEY (Kd_Pegawai) REFERENCES Pegawai (Kd_Pegawai) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (NOP) REFERENCES Objek_Pajak (NOP) FOREIGN KEY (No_SPPT) REFERENCES SPPT (No_SPPT) ON UPDATE CASCADE ON DELETE NO ACTION);
8. SPPT ( No_SPPT
KodeSurat
NOT NULL,
Tanggal_Pengajuan
Tanggal
NOT NULL,
Jumlah_Terhutang
Jumlah
NOT NULL,
Tanggal_Jatuh_Tempo
Tanggal
NOT NULL,
PRIMARY KEY (No_SPPT));
169 9. STP ( No_STP
KodeSurat
NOT NULL,
Tanggal
Tanggal
NOT NULL,
Jumlah_Tagihan
Jumlah
NOT NULL,
No_SPPT
KodeForeign
NOT NULL,
NPWP
KodeForeign
NOT NULL,
PRIMARY KEY (No_STP) FOREIGN KEY (No_SPPT) REFERENCES SPPT (No_SPPT) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (NPWP) REFERENCES Wajib_Pajak (NPWP) ON UPDATE CASCADE ON DELETE NO ACTION);
10. Pembayaran_SPPT ( No_Pemb_SPPT
KodeTransaksi
NOT NULL,
Tanggal
Tanggal
NOT NULL,
Jmlh_Pemb_SPPT
Jumlah
NOT NULL,
NPWP
KodeForeign
NOT NULL,
Kd_Pegawai
KodeForeign
NOT NULL,
No_SPPT
KodeForeign
NOT NULL,
PRIMARY KEY (No_Pemb_SPPT) FOREIGN KEY (NPWP) REFERENCES Wajib_Pajak (NPWP) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (Kd_Pegawai) REFERENCES Pegawai (Kd_Pegawai) ON UPDATE CASCADE ON DELETE NO ACTION
170 FOREIGN KEY (No_SPPT) REFERENCES SPPT (No_SPPT) ON UPDATE CASCADE ON DELETE NO ACTION);
11. Pembayaran_STP ( No_Pemb_STP
KodeTransaksi
NOT NULL,
Tanggal
Tanggal
NOT NULL,
Jmlh_Pemb_STP
Jumlah
NOT NULL,
Kd_Pegawai
KodeForeign
NOT NULL,
NPWP
KodeForeign
NOT NULL,
No_STP
KodeForeign
NOT NULL,
PRIMARY KEY (No_Pemb_STP) FOREIGN KEY (Kd_Pegawai) REFERENCES Pegawai (Kd_Pegawai) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (NPWP) REFERENCES Wajib_Pajak (NPWP) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (No_STP) REFERENCES STP (No_STP) ON UPDATE CASCADE ON DELETE NO ACTION);
171 4.1.3.1.2 Merancang Representasi Derived Data Tujuan langkah ini adalah untuk memutuskan bagaimana representasi derived data yang terdapat pada model data logikal, di dalam DBMS yang akan digunakan. Atributatribut derived yang dimasukkan ke dalam relasi model data logikal yaitu : a. Atribut Tanggal_Jatuh_Tempo pada relasi SPPT diperoleh dari waktu saat data Objek Pajak, Wajib Pajak
dan
Surat-Surat
yang
terdapat
pada
Detail_SuratOP. Dengan menempatkan atribut Tanggal_Jatuh_Tempo pada relasi SPPT akan mempermudah pencarian pajak yang manakah yang sudah mendekati tanggal jatuh tempo pembayaran. b. Atribut
Jmlh_Pemb_SPPT
Pembayaran_SPPT
pada
bergantung
relasi pada
Jumlah_Terhutang pada relasi SPPT. Hal ini akan mempermudah pencarian dan pembuatan laporan transaksi pembayaran pajak per tahun karena data dapat diperoleh dengan mencari data pada satu relasi saja.
172 4.1.3.1.3 Merancang General Constraints Tujuan langkah ini adalah untuk merancang general constraints perusahaan untuk diterapkan pada DBMS yang akan digunakan. Beberapa general constraints yang ditemukan pada
prosedur
pendaftaran
dan
pendataan,
penilaian,
penetapan, pembayaran dan penagihan : a. Tabel WajibPajak CONSTRAINT cekTelp1 CHECK (ISNUMERIC(Telp1)=1) CONSTRAINT cekTelp2 CHECK (ISNUMERIC(Telp2)=1)
b. Tabel Pegawai CONSTRAINT cekTelp1 CHECK (ISNUMERIC(Telp1)=1) CONSTRAINT cekTelp2 CHECK (ISNUMERIC(Telp2)=1)
c. Tabel SPPT CONSTRAINT cekTanggalBayar CHECK
(DATEDIFF(dd,
Tanggal_Jatuh_Tempo) > 0)
Tanggal_Pengajuan,
173 d. Tabel Pembayaran_SPPT CONSTRAINT cekTanggalPembayaran CHECK (DATEDIFF(Tanggal) > 0)
e. Tabel Pembayaran_STP CONSTRAINT cekTanggalPembayaran CHECK (DATEDIFF(Tanggal) > 0)
f. Tabel STP CONSTRAINT cekTanggalCetak CHECK (DATEDIFF(Tanggal) > 0)
g. Tabel Detail_PenangananOP CONSTRAINT cekTanggalPelayanan CHECK (DATEDIFF(Tanggal) > 0)
h. Tabel Detail_SuratOP CONSTRAINT cekTanggalSPOP CHECK (DATEDIFF(TanggalSPOP) > 0) CONSTRAINT cekTanggalFDM CHECK (DATEDIFF(TanggalFDM) > 0) CONSTRAINT cekTanggalRPN CHECK (DATEDIFF(TanggalRPN) > 0)
174 i. Tabel Wajib_Pajak CONSTRAINT cekNomorWajibPajak CHECK (NPWP like ‘[0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9]’)
j. Tabel Objek_Pajak CONTSTRAINT cekNJOP CHECK (NJOP > 0) CONTSTRAINT cekLuas CHECK (Luas > 0)
k. Tabel SPPT CONTSRAINT cekJumlahTerhutang CHECK (Jumlah_Terhutang > 0)
4.1.3.2 Merancang Organisasi File dan Index Tujuan langkah ini adalah untuk menentukan pilihan organisasi file yang optimal untuk menyimpan relasi-relasi dasar dan index yang diperlukan untuk mencapai kinerja yang memuaskan, atau dengan kata lain, bagaimana relasi dan record akan disimpan di dalam secondary storage.
175 4.1.3.2.1 Menganalisa Transaksi Tujuan
langkah
ini
adalah
untuk
memahami
fungsionalitas transaksi yang akan berjalan di dalam basisdata dan menganalisa transaksi-transaksi yang akan berjalan di dalam basisdata yaitu :
Data entry A. Memasukan data SPOP baru. B. Memasukan data FDM baru berdasarkan data dari SPOP. C. Memasukan data Wajib Pajak baru. D. Memasukan data Objek Pajak, update NJOP berdasarkan nilai baru yang berlaku. E. Memasukan data pegawai baru. F. Memasukan bagian pegawai baru. G. Memasukan data transaksi pembayaran SPPT Objek Pajak, meng-update data Objek Pajak dan Wajib Pajak yang bersangkutan. H. Memasukan jabatan pegawai. I. Memasukan data transaksi pembayaran STP, dan mengupdate data Objek Pajak beserta Wajib Pajak yang bersangkutan. J. Memasukan data SPPT. K. Memasukan data STP.
176 L. Memasukan data RPN. M. Memasukan data pembayaran SPPT dan meng-update atribut jumlah pembayaran pada data Pembayaran_SPPT. N. Memasukan data Alamat dari Pegawai. O. Memasukan data Alamat dari Wajib_Pajak.
Data update/deletion P. Update data Wajib Pajak. Q. Update data Objek Pajak. R. Update data Pegawai. S. Update JabatanPegawai. T. Update BagianPegawai. U. Update status kepemilikan Wajib Pajak. V. Update jenis Sertifikat Objek Pajak. W. Update jumlah pembayaran SPPT. X. Update jumlah pembayaran STP. Y. Update / delete data Alamat dari Pegawai. Z. Update / delete data Alamat dari Wajib_Pajak.
177 Data queries AA. Menampilkan data Wajib Pajak berdasarkan tanggal Jatuh Tempo. BB. Menampilkan data Wajib Pajak yang belum melunasi SPPT dan melewati batas waktu yang ditentukan. CC. Menampilkan data Objek Pajak yang terdaftar melalui SPOP beserta data Wajib Pajak. DD. Menampilkan data FDM berdasarkan data yang diperoleh dari SPOP beserta data Wajib Pajak. EE. Menampilkan Laporan pembayaran SPPT. FF. Menampilkan Laporan penagihan SPPT. GG. Menampilkan Laporan pembayaran STP. HH. Menampilkan Laporan STP. II. Menampilkan data pegawai berdasarkan kode pegawai, jabatan pegawai, dan gaji. JJ. Menampilkan Objek Pajak berdasarkan luas dan Lokasi. KK. Menampilkan data pembayaran SPPT tertentu. LL. Menampilkan data pembayaran STP tertentu. MM. Menampilkan data Objek Pajak beserta nama Wajib Pajak yang mempunyai hak milik terhadap Objek pajak yang bersangkutan. NN. Menampilkan data SPPT tertentu berdasatkan No_SPPT. OO. Menampilkan data STP tertentu berdasarkan No_STP
178 PP.
Menampilkan data Wajib Pajak berdasarkan status kepemilikannya.
QQ. Menampilkan data Objek Pajak berdasarkan Jenis Sertifikatnya. RR. Menampilkan data Wajib Pajak berdasarkan Nomor Wajib Pajak. SS. Menampilkan data Pegawai beserta Alamat dan Telpnya. TT. Menampilkan data Wajib_Pajak beserta Alamat dan Telpnya.
Tabel 4.12 Analisis Transaksi
Transaction/ Relation Wajib_pajak Pegawai Detail_ Penanganan_OP Objek_Pajak Jabatan_Pegawai Bagian Detail_SuratOP SPPT STP Pembayaran_ SPPT Pembayaran_ STP
(A)
(B)
(C)
(D)
(E)
(F)
(G)
I R U D X X
I R U D X X
I R U D X X X
I R U D X X X
I R U D
I R U D
I R U D X X X
X
X
X
X
X X
X
X X X X
X
X X
X
X X
X
X X X
179
Tabel 4.12 Analisis Transaksi (lanj.)
Transaction/ Relation Wajib_pajak Pegawai Detail_ Penanganan_OP Objek_Pajak Jabatan_Pegawai Bagian Detail_SuratOP SPPT STP Pembayaran_ SPPT Pembayaran_ STP
(H)
(I)
(J)
(K)
(L)
(M)
(N)
I R U D
I R U D X X X
I R U D X X
I R U D
I R U D
I R U D
I R U D
X
X
X X
X
X
X X
X
X X
X
X X X
X X X
X
X X
X
X X
X X X
X
X
180
Tabel 4.12 Analisis Transaksi (lanj.)
Transaction/ Relation Wajib_pajak Pegawai Detail_ Penanganan_OP Objek_Pajak Jabatan_Pegawai Bagian Detail_SuratOP SPPT STP Pembayaran_ SPPT Pembayaran_ STP
(O)
(P)
(Q)
(R)
(S)
(T)
(U)
I R U D X X X X
I R U D X X X X
I R U D X
I R U D
I R U D
I R U D
X X
X X
X X
I R U D X X X X
X
X
X X X X X
X X X X X
X X X
X X X
X X
181
Tabel 4.12 Analisis Transaksi (lanj.)
Wajib_pajak Pegawai Detail_ Penanganan_OP Objek_Pajak Jabatan_Pegawai Bagian Detail_SuratOP SPPT STP Pembayaran_ SPPT Pembayaran_ STP
(V)
(W)
(X)
(Y)
(Z)
(AA)
(BB)
I R U D X X X
I R U D X X
I R U D X X
I R U D
I R U D X X X X
I R U D X X X
I R U D X X X
X X
X X
X X
X X
X
X
X
X X
X X
X X X X X
X X X X
X X X X
182
Tabel 4.12 Analisis Transaksi (lanj.)
Transaction/ Relation Wajib_pajak Pegawai Detail_ Penanganan_OP Objek_Pajak Jabatan_Pegawai Bagian Detail_SuratOP SPPT STP Pembayaran_ SPPT Pembayaran_ STP
(CC)
(DD)
(EE)
(FF)
(GG)
(HH)
(II)
I R U D X X X
I R U D X X
I R U D X X
I R U D X X
I R U D X X
I R U D X X
I R U D
X
X
X
X
X
X
X X X
X
X X
X X
X X X
X X
X X
183
Tabel 4.12 Analisis Transaksi (lanj.)
Transaction/ Relation Wajib_pajak Pegawai Detail_ Penanganan_OP Objek_Pajak Jabatan_Pegawai Bagian Detail_SuratOP SPPT STP Pembayaran_ SPPT Pembayaran_ STP
(JJ)
(KK)
(LL)
(MM)
(NN)
(OO)
(PP)
I R U D X X X
I R U D
I R U D
I R U D X X X
I R U D X X
I R U D X X
I R U D X X
X
X
X
X
X X
X X X
X
X
X
X
X X
X X X
X X
X X
184
Tabel 4.12 Analisis Transaksi (lanj.)
Transaction/ Relation Wajib_pajak Pegawai Detail_ Penanganan_OP Objek_Pajak Jabatan_Pegawai Bagian Detail_SuratOP SPPT STP Pembayaran_ SPPT Pembayaran_ STP
(QQ)
(RR)
(SS)
(TT)
I R U D X X X
I R U D X X X
I R U D
I R U D X X X
X
X
X
X X X
X
X
X
Keterangan : I : Insert R : Read U : Update D : Delete
185
186 Berdasarkan matriks kolerasi transaksi/ relasi di atas, dapat disimpulkan bahwa transaksi-transaksi yang banyak melakukan akses terhadap relasi adalah : D. Memasukan data Objek Pajak berdasarkan SPOP, update NJOP berdasarkan nilai baru yang berlaku. G. Memasukan data transaksi pembayaran SPPT Objek Pajak, meng-update data Objek Pajak dan Wajib Pajak yang bersangkutan. I. Memasukan data transaksi pembayaran STP, dan mengupdate data Objek Pajak beserta Wajib Pajak yang bersangkutan. P. Update data Wajib Pajak. S. Update data Pegawai.
Dan relasi-relasi yang banyak diakses adalah : 1. Wajib_Pajak 2. Objek_Pajak 3. Detail_SuratOP 4. SPPT
187 4.1.3.2.2 Memilih Organisasi File (Opsional) Tujuan langkah ini adalah menentukan organisasi file yang efisien untuk tiap-tiap relasi dasar jika diperbolehkan oleh DBMS yang akan digunakan. Dalam banyak kasus, DBMS relasional memberikan sedikit atau tidak ada pilihan untuk memilih organisasi file. Dalam kasus ini, DBMS yang digunakan adalah SQL Server 2005 dan organisasi file yang digunakan telah ditentukan oleh SQL Server 2005.
4.1.3.2.3 Memilih Index Tujuan langkah ini adalah memutuskan apakah penambahan
index
akan
meningkatkan
kinerja
sistem
basisdata.
Tabel 4.13 Pemilihan Index No.
Relasi
Clustered Index
Nonclustered Index
1.
Wajib_Pajak
NPWP
Alamat1, Telp1
2.
Pegawai
Kd_Pegawai
Kd_Jabatan, Kd_Bagian, Alamat1, Telp1
3.
Detail_PenangananOP
NOP, Kd_Pegawai
Tanggal
4.
Objek_Pajak
NOP
Luas, NPWP
5.
Jabatan_Pegawai
Kd_Jabatan
Nama_Jabatan
188 No.
Relasi
Clustered Index
Nonclustered Index
6.
Bagian
Kd_Bagian
Nama_Bagian
7.
Detail_SuratOP
No_SPOP
TanggalSPOP, NPWP, NOP
8.
SPPT
No_SPPT
Tanggal_Pengajuan
9.
STP
No_STP
Tanggal, No_SPPT
10.
Pembayaran_SPPT
No_Pemb_SPPT
Tanggal,
NPWP,
No_SPPT 11.
Pembayaran_STP
No_Pemb_STP
Tanggal,
NPWP,
No_STP
Pada DBMS SQL Server 2005, masing-masing primary key dari suatu tabel sudah dijadikan clustered index secara otomatis pada saat dilakukan create table. Sehingga index-index yang perlu dibuat hanyalah non clustered index.
CREATE NONCLUSTERED INDEX AWPIdx_Alamat1 ON WajibPajak (Alamat1) CREATE NONCLUSTERED INDEX AWPIdx_Telp1 ON WajibPajak (Telp1)
189 CREATE NONCLUSTERED INDEX PegIdx_Kd_Jabatan ON Pegawai (Kd_Jabatan) CREATE NONCLUSTERED INDEX PegIdx_Kd_Bagian ON Pegawai (Kd_Bagian)
CREATE NONCLUSTERED INDEX APegIdx_Alamat1 ON Pegawai (Alamat1) CREATE NONCLUSTERED INDEX APegIdx_Telp1 ON Pegawai (Telp1)
CREATE
NONCLUSTERED
INDEX
DOPdx_Tanggal
ON
Detail_PenangananOP (Tanggal)
CREATE NONCLUSTERED INDEX OPdx_Luas ON Objek_Pajak (Luas) CREATE NONCLUSTERED INDEX OPIdx_NPWP ON Objek_Pajak (NPWP)
CREATE
NONCLUSTERED
INDEX
JPIdx_Nama_Jabatan
ON
Jabatan_Pegawai (Nama_Jabatan)
CREATE NONCLUSTERED INDEX BagIdx_Nama_Bagian ON Bagian (Nama_bagian)
190 CREATE
NONCLUSTERED
INDEX
SOPIdx_TanggalSPOP
ON
INDEX
SOPIdx_No_WajiPajak
ON
Detail_SuratOP (TanggalSPOP) CREATE
NONCLUSTERED
Detail_SuratOP (NPWP) CREATE NONCLUSTERED INDEX SOPIdx_NOP ON Detail_SuratOP (NOP)
CREATE NONCLUSTERED INDEX SPPTIdx_Tanggal_Pengajuan ON SPPT (Tanggal_Pengajuan)
CREATE NONCLUSTERED INDEX STPIdx_Tanggal ON STP (Tanggal) CREATE NONCLUSTERED INDEX STPIdx_No_SPPT ON STP (No_SPPT)
CREATE
NONCLUSTERED
INDEX
PembSPIdx_Tanggal
ON
INDEX
PembSPIdx_NPWP
ON
PembSPIdx_No_SPPT
ON
Pembayaran_SPPT (Tanggal) CREATE
NONCLUSTERED
Pembayaran_SPPT (NPWP) CREATE
NONCLUSTERED
Pembayaran_SPPT (No_SPPT)
INDEX
191 CREATE
NONCLUSTERED
INDEX
PembSTIdx_Tanggal
ON
INDEX
PembSTIdx_NPWP
ON
PembSTIdx_No_SPPT
ON
Pembayaran_STP (Tanggal) CREATE
NONCLUSTERED
Pembayaran_STP (NPWP) CREATE
NONCLUSTERED
INDEX
Pembayaran_STP (No_SPPT)
4.1.3.2.4 Memperkirakan Kebutuhan Disk Space Tujuan langkah ini adalah menghitung kapasitas penyimpanan yang dibutuhkan oleh basisdata. Tabel 4.14 Perkiraan Jumlah Data Nama Tabel Wajib_Pajak
Jumlah Saat Ini 1322
Data
Pertumbuhan Data Num_Rows Per Tahun (5 Tahun) 35 1497
Pegawai
850
5
875
Detail_PenangananOP
2150
3200
18150
Objek_Pajak
1523
15
1598
Jabatan_Pegawai
15
0
15
Bagian
9
1
14
Detail_SuratOP
2321
3500
19821
SPPT
1523
15
1598
STP
135
3
150
Pembayaran_SPPT
1523
15
1598
Pembayaran_STP
135
3
150
192 Tabel 4.15 Wajib_Pajak Field NPWP
Type Int
Size 15
Nama
Varchar
25
Status
Char
7
Alamat1
Varchar
100
Alamat2
Varchar
100
Telp1
Varchar
15
Telp2
Varchar
15
Kota
Varchar
15
Int
15
Total
307
Tabel 4.16 Pegawai Field Kd_Pegawai
Type Int
Size 6
Nama
Varchar
25
Gaji
Money
8
Alamat1
Varchar
100
Alamat2
Varchar
100
Telp1
Varchar
15
Telp2
Varchar
15
Total
193 Tabel 4.17 Detail_PenangananOP Field NOP
Type Int
Size 18
Kd_Pegawai
Int
6
Tanggal
Datetime
8
Total
32
Tabel 4.18 Objek_Pajak Field NOP
Type Int
Size 18
Luas
Int
7
Jenis_Sertifikat
Char
10
Lokasi
Varchar
15
NJOP
Int
10
NPWP
Int
15
Total
75
Tabel 4.19 Jabatan_Pegawai Field Kd_Jabatan
Type Int
Size 6
Nama_Jabatan
Varchar
20
Kd_Pegawai
Int
6
Total
32
194 Tabel 4.20 Bagian Field Kd_Bagian
Type Int
Size 6
Nama_Bagian
Varchar
20
Kd_Pegawai
Int
6
Total
32
Tabel 4.21 Detail_SuratOP Field No_SPOP
Type Int
Size 12
TanggalSPOP
Datetime
8
No_FDM
Int
12
TanggalFDM
Datetime
8
No_RPN
Int
12
TanggalRPN
Datetime
8
NPWP
Int
15
NOP
Int
18
No_PegSPOP
Int
6
No_PegFDM
Int
6
No_PegRPN
Int
6
Total
260
195 Tabel 4.22 SPPT Field No_SPPT
Type Int
Size 12
Tanggal_Pengajuan
Datetime
8
Jumlah_Terhutang
Money
7
Tanggal_Jatuh_Tempo
Datetime
8
Kd_Pegawai
Int
6
No_STP
Int
12
Total
53
Tabel 4.23 STP Field No_STP
Type Int
Size 12
Tanggal
Datetime
8
Jumlah_Tagihan
Money
7
No_Pemb_STP
Int
10
Total
37
Tabel 4.24 Pembayaran_SPPT Field No_Pemb_SPPT
Type Int
Size 10
Tanggal
Datetime
8
Jmlh_Pemb_SPPT
Money
7
NPWP
Int
15
Total
40
196 Tabel 4.25 Pembayaran_STP Field No_Pemb_STP
Type Int
Size 10
Tanggal
Datetime
8
Jmlh_Pemb_STP
Money
7
Kd_Pegawai
Int
6
Total
31
4.1.3.3 Merancang View Pengguna Tujuan langkah ini adalah merancang user views yang telah ditentukan dalah tahap analisis dan pengumpulan persyaratan. CREATE VIEW view_WP AS SELECT e.NPWP, e.Nama, i.NOP, i.Lokasi, f.No_SPOP, f.TanggalSPOP FROM Wajib_Pajak e JOIN Objek_Pajak i ON e.NPWP = i.NPWP JOIN Detail_SuratOP f ON i.NOP = f.NOP
CREATE VIEW view_Peg AS SELECT g.Kd_Pegawai AS NIP, b.Nama_Bagian AS Divisi, c.Nama_Jabatan AS Jabatan FROM Pegawai g JOIN Bagian B ON g.Kd_Bagian = b.Kd_Bagian JOIN Jabatan_Pegawai c ON g.Kd_Jabatan = c.Kd_Jabatan
197 CREATE VIEW view_JatuhTempoPemb AS SELECT e.NPWP, e.Nama AS “Nama Pemilik”, i.NOP, i.Luas AS “Luas Perkebunan”, i.Lokasi AS Kota, l.Jumlah_Terhutang AS Tagihan, l.Tanggal_Jatuh_Tempo AS “Jatuh Tempo” FROM Wajib_Pajak e JOIN Objek_Pajak i ON e.NPWP = i.NPWP JOIN Detail_SuratOP f ON i.NOP = f.NOP JOIN SPPT l ON l.No_SPOP = f.No_SPOP