Lampiran 1 - Coding Sturktur Tabel Relasi Dasar
CREATE TABLE Polis (
NoPolis CHAR(9) NOT NULL PRIMARY KEY,
NoEndorsement CHAR(3) NOT NULL PRIMARY KEY, NamaTertanggung VARCHAR(50) NOT NULL,
Alamat VARCHAR(100) NOT NULL, PeriodeAwal DATE NOT NULL, PeriodeAkhir DATE NOT NULL,
SukuPremi DECIMAL(10,2) NOT NULL, KelasKonstruksi CHAR(3) NOT NULL,
LokasiPertanggungan VARCHAR(100) NOT NULL, JumlahPertanggungan BIGINT NOT NULL,
JenisJaminan VARCHAR(30) NOT NULL, R/Icommision DECIMAL(10,2) NOT NULL, Deductibles VARCHAR(200) NOT NULL,
TanggalTerbit DATE NOT NULL, KodeKaryawan CHAR(6) NOT NULL, KodeJenisResiko CHAR(2) NOT NULL, NoExPolis CHAR(9),
KodeBuku CHAR(9) NOT NULL, NoSurvei CHAR(9) NOT NULL, KodeObjek CHAR(5) NOT NULL,
FOREIGN KEY (KodeKaryawan) REFERENCES Karyawan (KodeKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION
FOREIGN KEY (KodeJenisResiko) REFERENCES JenisResiko
(KodeJenisResiko) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (NoExPolis) REFERENCES ExPolis (NoExPolis) ON UPDATE CASCADE ON DELETE NO ACTION
FOREIGN KEY (KodeBuku) REFERENCES BukuRegister (KodeBuku) ON UPDATE CASCADE ON DELETE NO ACTION
FOREIGN KEY (NoSurvei) REFERENCES Survei (NoSurvei)ON UPDATE CASCADE ON DELETE NO ACTION
FOREIGN KEY (KodeObjek) REFERENCES Objek (KodeObjek) ON UPDATE CASCADE ON DELETE NO ACTION
CONSTRAINT consNoPolis CHECK (LEN(NoPolis) = 9 AND NoPolis LIKE ‘POL%’),
CONSTRAINT consNoEndorsement CHECK (LEN(NoEndorsement) = 3 AND NoEndorsement LIKE ‘[0-9][0-9][0-9]’),
CONSTRAINT consKodeKary CHECK (LEN(KodeKaryawan) = 6 AND KodeKaryawan LIKE ‘K%’),
CONSTRAINT consKodeJenis CHECK (LEN(KodeJenisResiko) = 3 AND KodeJenisResiko LIKE ‘[0-9][0-9][0-9]’),
CONSTRAINT consKodeJenis CHECK (KodeJenisResiko = ‘FI’ OR KodeJenisResiko = ‘MV’ OR KodeJenisResiko = ‘MC’),
CONSTRAINT consNoEx CHECK (LEN(NoEx) = 9 AND NoExPolis LIKE ‘POL%’),
CONSTRAINT consKodeBuku CHECK (LEN(KodeBuku) = 9 AND KodeBuku LIKE ‘BKR%’),
CONSTRAINT consNoSurvei CHECK (LEN(NoSurvei) = 9 AND NoSurvei LIKE ‘SRV%’),
CONSTRAINT consKodeObjek CHECK (LEN(KodeObjek) = 5 AND KodeObjek LIKE ‘‘[0-9][0-9][0-9] [0-9][0-9]’)
)
CREATE TABLE ExPolis (
NoExPolis CHAR(9) NOT NULL PRIMARY KEY, NamaTertanggung VARCHAR(50) NOT NULL, Alamat VARCHAR(100) NOT NULL,
PeriodeAwal DATE NOT NULL, PeriodeAkhir DATE NOT NULL,
SukuPremi DECIMAL(10,2) NOT NULL, KelasKonstruksi CHAR(3) NOT NULL,
LokasiPertanggungan VARCHAR(100) NOT NULL, JumlahPertanggungan BIGINT NOT NULL,
JenisJaminan VARCHAR(30) NOT NULL, TanggalTerbit DATE NOT NULL,
FOREIGN KEY (KodeObjek) REFERENCES Objek (KodeObjek) ON UPDATE CASCADE ON DELETE NO ACTION,
CONSTRAINT consExNoEx CHECK (LEN(NoEx) = 9 AND NoExPolis LIKE ‘POL%’),
CONSTRAINT consExKodeObjek CHECK (LEN(KodeObjek) = 5 AND KodeObjek LIKE ‘‘[0-9][0-9][0-9] [0-9][0-9]’)
)
CREATE TABLE BukuRegister (
KodeBuku CHAR(9) NOT NULL PRIMARY KEY, TanggalRegister DATE NOT NULL,
NamaTertanggung VARCHAR(50) NOT NULL, Alamat VARCHAR(100) NOT NULL,
LokasiPertanggungan VARCHAR(100) NOT NULL, KodeKaryawan CHAR(6) NOT NULL,
KodeNegosiasi CHAR(9) NOT NULL,
FOREIGN KEY (KodeKaryawan) REFERENCES Karyawan (KodeKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (KodeNegosiasi) REFERENCES Negosiasi (KodeNegosiasi) ON UPDATE CASCADE ON DELETE NO ACTION,
CONSTRAINT consBRKodeKary CHECK (LEN(KodeKaryawan) = 6 AND KodeKaryawan LIKE ‘K%’),
CONSTRAINT consBRKodeBuku CHECK (LEN(KodeBuku) = 9 AND KodeBuku LIKE ‘BKR%’),
CONSTRAINT consBRKodeNego CHECK (LEN(KodeNegosiasi) = 9 AND KodeBuku LIKE ‘NEG%’)
)
CREATE TABLE DetilRegister (
KodeBuku CHAR(9) NOT NULL PRIMARY KEY, KodeReasuransi CHAR(4) NOT NULL PRIMARY KEY, QuotationShare DECIMAL(10,2),
FOREIGN KEY (KodeBuku) REFERENCES BukuRegister (KodeBuku) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (KodeReasuransi) REFERENCES Reasuransi
(KodeReasuransi) ON UPDATE CASCADE ON DELETE NO ACTION, CONSTRAINT consDRKodeBuku CHECK (LEN(KodeBuku) = 9 AND KodeBuku LIKE ‘BKR%’),
CONSTRAINT consDRKodeReas CHECK (LEN(KodeReasuransi) = 4 AND KodeReasuransi LIKE ‘R%’)
)
CREATE TABLE Survei (
NoSurvei CHAR(9) NOT NULL PRIMARY KEY, TanggalPemeriksaan DATE NOT NULL,
NamaTertanggung VARCHAR(50) NOT NULL, StatusKelayakan VARCHAR(11) NOT NULL,
Foto VARCHAR(100) NOT NULL,
KeteranganLain VARCHAR(200) NOT NULL, KodeKaryawan CHAR(6) NOT NULL,
FOREIGN KEY (KodeKaryawan) REFERENCES Karyawan (KodeKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION,
CONSTRAINT consSrvNoSurvei CHECK (LEN(NoSurvei) = 9 AND KodeReasuransi LIKE ‘SRV%’)
CONSTRAINT consLayak CHECK (StatusKelayakan = ‘Layak’ OR StatusKelayakan = ‘Tidak Layak’),
CONSTRAINT consSrvKodeKary CHECK (LEN(KodeKaryawan) = 6 AND KodeKaryawan LIKE ‘K%’)
)
CREATE TABLE Negosiasi (
id BIGINT NOT NULL PRIMARY KEY,
KodeNegosiasi CHAR(9) NOT NULL PRIMARY KEY, NoPolis VARCHAR(20),
Alamat VARCHAR(100) NOT NULL, PeriodeAwal DATE NOT NULL, PeriodeAkhir DATE NOT NULL,
SukuPremi DECIMAL(10,2) NOT NULL, KelasKonstruksi CHAR(3) NOT NULL,
LokasiPertanggungan VARCHAR(100) NOT NULL, JumlahPertanggungan BIGINT NOT NULL,
JenisJaminan VARCHAR(30) NOT NULL, TanggalTerbit DATE NOT NULL,
KodeKaryawan CHAR(6) NOT NULL, KodeJenisResiko CHAR(2) NOT NULL, NoSurvei CHAR(9) NOT NULL,
KodeObjek CHAR(5) NOT NULL, KodeReasuransi CHAR(4) NOT NULL,
FOREIGN KEY (KodeKaryawan) REFERENCES Karyawan (KodeKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION
FOREIGN KEY (KodeJenisResiko) REFERENCES JenisResiko
(KodeJenisResiko) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (KodeReasuransi) REFERENCES Reasuransi
(KodeReasuransi) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (NoSurvei) REFERENCES Survei (NoSurvei)ON UPDATE CASCADE ON DELETE NO ACTION
FOREIGN KEY (KodeObjek) REFERENCES Objek (KodeObjek) ON UPDATE CASCADE ON DELETE NO ACTION
CONSTRAINT consNegosiasi CHECK (LEN(KodeNegosiasi) = 9 AND NoPolis LIKE ‘NEG%’),
CONSTRAINT consNegKodeKary CHECK (LEN(KodeKaryawan) = 6 AND KodeKaryawan LIKE ‘K%’),
CONSTRAINT consNegKodeReas CHECK (LEN(KodeReasuransi) = 4 AND KodeReasuransi LIKE ‘R%’),
CONSTRAINT consNegKodeJenis CHECK (KodeJenisResiko = ‘FI’ OR KodeJenisResiko = ‘MV’ OR KodeJenisResiko = ‘MC’),
CONSTRAINT consNegNoSurvei CHECK (LEN(NoSurvei) = 9 AND NoSurvei LIKE ‘SRV%’),
CONSTRAINT consKodeObjek CHECK (LEN(KodeObjek) = 5 AND KodeObjek LIKE ‘‘[0-9][0-9][0-9] [0-9][0-9]’)
)
CREATE TABLE PremiumNote (
NoNote CHAR(9) NOT NULL PRIMARY KEY, TanggalCetak DATE NOT NULL,
NoPolis CHAR(9) NOT NULL,
NoEndorsement CHAR(3) NOT NULL,
FOREIGN KEY NoPolis REFERENCES Polis (NoPolis) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY NoEndorsement REFERENCES Polis (NoEndorsement) ON UPDATE CASCADE ON DELETE NO ACTION,
CONSTRAINT consPremium CHECK (LEN(NoNote) = 9 AND NoNote LIKE ‘NOT%’),
CONSTRAINT consPNNoPolis CHECK (LEN(NoPolis) = 9 AND NoPolis LIKE ‘POL%’),
CONSTRAINT consPNNoEndorsement CHECK (LEN(NoEndorsement) = 3 AND NoEndorsement LIKE ‘[0-9][0-9][0-9]’),
)
CREATE TABLE Reasuransi (
KodeReasuransi CHAR(4) NOT NULL PRIMARY KEY, NamaReasuransi VARCHAR(50) NOT NULL,
Alamat VARCHAR(100) NOT NULL,
CONSTRAINT consReasuransi CHECK (LEN(KodeReasuransi) = 4 AND KodeReasuransi LIKE ‘R%’)
)
CREATE TABLE FacultativeClosingSlip (
NoSlip CHAR(9) NOT NULL PRIMARY KEY, TanggalCetak DATE NOT NULL,
NoPolis CHAR(9) NOT NULL,
NoEndorsement CHAR(3) NOT NULL,
FOREIGN KEY NoPolis REFERENCES Polis (NoPolis) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY NoEndorsement REFERENCES Polis (NoEndorsement) ON UPDATE CASCADE ON DELETE NO ACTION,
CONSTRAINT consSlip CHECK (LEN(NoSlip) = 9 AND NoSlip LIKE ‘SLP%’),
CONSTRAINT consSLPNoPolis CHECK (LEN(NoPolis) = 9 AND NoPolis LIKE ‘POL%’),
CONSTRAINT consSLPNoEndorsement CHECK (LEN(NoEndorsement) = 3 AND NoEndorsement LIKE ‘[0-9][0-9][0-9]’),
)
CREATE TABLE FacultativeEndorsement (
NoEndorse CHAR(9) NOT NULL PRIMARY KEY, TanggalCetak DATE NOT NULL,
NoPolis CHAR(9) NOT NULL,
NoEndorsement CHAR(3) NOT NULL,
FOREIGN KEY NoPolis REFERENCES Polis (NoPolis) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY NoEndorsement REFERENCES Polis (NoEndorsement) ON UPDATE CASCADE ON DELETE NO ACTION,
CONSTRAINT consEndorse CHECK (LEN(NoEndorse) = 9 AND NoEndorse LIKE ‘END%’),
CONSTRAINT consFENoPolis CHECK (LEN(NoPolis) = 9 AND NoPolis LIKE ‘POL%’),
CONSTRAINT consFENoEndorsement CHECK (LEN(NoEndorsement) = 3 AND NoEndorsement LIKE ‘[0-9][0-9][0-9]’),
)
CREATE TABLE Karyawan (
KodeKaryawan CHAR(6) NOT NULL PRIMARY KEY, NamaKaryawan VARCHAR(50) NOT NULL,
JenisKelamin CHAR(1) NOT NULL, NoKTP CHAR(15) NOT NULL, KodePos CHAR(9) NOT NULL, Alamat VARCHAR(100) NOT NULL, NoTelp CHAR(12) NOT NULL, TglLahir DATE NOT NULL,
StatusMenikah CHAR(1) NOT NULL, Gaji FLOAT NOT NULL,
CONSTRAINT consKaryawan CHECK (LEN(KodeKaryawan) = 6 AND KodeKaryawan LIKE ‘K%’),
CONSTRAINT consSex CHECK (JenisKelamin = ‘L’ OR JenisKelamin = ‘P’), CONSTRAINT consKTP CHECK (LEN(NoKTP) = 15 AND NoKTP LIKE ‘[0-9][0-9][0-9] [0-‘[0-9][0-9][0-9] [0-‘[0-9][0-9][0-9] [0-‘[0-9][0-9][0-9] [0-‘[0-9][0-9][0-9]’), CONSTRAINT consPos CHECK (LEN(KodePos) = 5 AND KodePos LIKE ‘[0-9][0-9][0-9] [0-9][0-9]’),
CONSTRAINT consTelp CHECK (LEN(NoTelp) = 12 AND NoEndorsement 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]’),
CONSTRAINT consStatus CHECK (StatusMenikah = ‘B’ OR StatusMenikah = ‘S’ OR StatusMenikah = ‘C’)
)
CREATE TABLE JenisResiko (
KodeJenisResiko CHAR(2) NOT NULL PRIMARY KEY, NamaJenisResiko VARCHAR(20) NOT NULL,
CONSTRAINT consJR CHECK (KodeJenisResiko = ‘FI’ OR KodeJenisResiko = ‘MV’ OR KodeJenisResiko = ‘MC’)
)
CREATE TABLE Objek (
KodeObjek CHAR(5) NOT NULL PRIMARY KEY, ObjekPertanggungan VARCHAR(50) NOT NULL,
CONSTRAINT consObjek CHECK (LEN(KodeObjek) = 5 AND KodeObjek LIKE ‘[0-9] [0-9] [0-9] [0-9] [0-9]’)
Lampiran 2 – Coding Batasan Perusahaan
1. Validitas JumlahPertanggungan tidak boleh lebih dari 10 Milyar ALTER TABLE Polis
Add CONSTRAINT BatasJumlah
CHECK (JumlahPertanggungan <= 10000000000)
ALTER TABLE Negosasi
Add CONSTRAINT BatasJumlah
CHECK (JumlahPertanggungan <= 10000000000) ALTER TABLE ExPolis
Add CONSTRAINT BatasJumlah
CHECK (JumlahPertanggungan <= 10000000000)
Lampiran 3 – Coding Indeks
CREATE UNIQUE INDEX idxPolis ON Polis(NoPolis)
CREATE INDEX idxNamaTertanggung ON Polis(NamaTertanggung) CREATE UNIQUE INDEX idxExPolis ON ExPolis(NoExPolis)
CREATE INDEX idxExNamaTertanggung ON ExPolis(NamaTertanggung) CREATE UNIQUE INDEX idxSlip ON FacultativeClosingSlip(NoSlip)
CREATE INDEX idxSlipTanggalCetak ON FacultativeClosingSlip(TanggalCetak) CREATE UNIQUE INDEX idxNote ON PremiumNote(NoNote)
CREATE INDEX idxNoteTanggalCetak ON PremiumNote(TanggalCetak)
CREATE UNIQUE INDEX idxEndorse ON FacultativeEndorsement(NoEndorse) CREATE INDEX idxEndTanggalCetak ON FacultativeEndorsement(TanggalCetak) CREATE UNIQUE INDEX idxKodeJenisResiko ON JenisResiko(KodeJenisResiko) CREATE INDEX idxNamaJenisResiko ON JenisResiko(NamaJenisResiko)
CREATE UNIQUE INDEX idxKodeObjek ON Objek(KodeObjek)
CREATE INDEX idxObjekPertanggungan ON Objek(ObjekPertanggungan) CREATE UNIQUE INDEX idxReasuransi ON Reasuransi(KodeReasuransi) CREATE INDEX idxNamaReasuransi ON Reasuransi(NamaReasuransi) CREATE UNIQUE INDEX idxSurvei ON Survei(NoSurvei)
CREATE INDEX idxTanggalPemeriksaan ON Survei(TanggalPemeriksaan) CREATE UNIQUE INDEX idxBuku ON BukuRegister(KodeBuku)
CREATE INDEX idxTanggalRegister ON BukuRegister(TanggalRegister) CREATE UNIQUE INDEX idxKaryawan ON Karyawan(KodeKaryawan) CREATE INDEX idxNamaKaryawan ON Karyawan(NamaKaryawan) CREATE UNIQUE INDEX idxNegosiasi ON Negosiasi(KodeNegosiasi)
CREATE INDEX idxNegoNamaTertanggung ON Negosiasi(NamaTertanggung)
Lampiran 4 – Estimasi Disk space
Menghitung ukuran tabel
1. Number of rows in the table = Num_Rows 2. Number of columns = Num_Cols
Sum of bytes in all fixed-length columns = Fixed_Data_Size
Number of variable-length columns = Num_Variable_Cols
Maximum size of all variable-length columns = Max_Var_Size
3. Null Bitmap (Null_Bitmap) = 2 + ((Num_Cols + 7/8), dibulatkan ke bawah 4. Total size of variable-length columns (Variable_Data_Size) = 2 +
(Num_Variable_Cols x 2) + Max_Var_Size
5. Menghitung row size :
Total row size (Row_Size) = Fixed_Data_Size + Variable_Data_Size + Null_Bitmap + 4
Penambahan 4 di belakang untuk row header.
6. Menghitung number of rows per page (8096 free bytes per page): Number of rows per page (Row_Per_Page) = (8096) / (Row_Size + 2)
Menggunakan pembulatan ke bawah.
7. Number of free rows per page (Free_Rows_Per_Page) = 8096 x ((100 – Fill_Factor) / 100) / (Row_Size + 2)
Nilai Fill_Factor secara default adalah 100.
8. Menghitung jumlah page yang dibutuhkan :
Number of pages (Num_Pages) = Num_Rows / (Rows_Per_Page – Free_Rows_Per_Page)
Dilakukan pembulatan ke atas.
9. Menghitung jumlah byte yang dibutuhkan (8192 total bytes per page): Table Size (bytes) = 8192 x Num_Pages
Polis
Var_cols: NamaTertanggung, Alamat, LokasiPertanggungan, JenisJaminan, Deductibles
Fixed_cols: NoPolis, NoEndorsement, PeriodeAwal, PeriodeAkhir, SukuPremi, KelasKonstruksi, JumlahPertanggungan, R/ICommision, QuotationShare, TanggalTerbit, KodeKaryawan, KodeJenisResiko, NoExPolis, KodeBuku, NoSurvei, KodeObjek • Num_Rows = 5000 • Num_Cols = 21 Fixed_Data_Size = 102 Num_Variable_Cols = 6 Max_Var_Size = 200 • Null_Bitmap = 5 • Var_Data_Size = 214 • Row_Size = 325 • Rows_Per_Page = 24 • Free_Rows_Per_Page = 0 • Num_Pages = 2023 • Table_Size = 16572416 Bytes
ExPolis
Var_cols: NamaTertanggung, Alamat, LokasiPertanggungan, JenisJaminan
Fixed_cols: NoExPolis, PeriodeAwal, PeriodeAkhir, SukuPremi, KelasKonstruksi, JumlahPertanggungan, TanggalTerbit, KodeObjek
• Num_Rows = 5000 • Num_Cols = 12 Fixed_Data_Size = 61 Num_Variable_Cols = 5 Max_Var_Size = 100 • Null_Bitmap = 4 • Var_Data_Size = 112 • Row_Size = 325 • Rows_Per_Page = 44 • Free_Rows_Per_Page = 0 • Num_Pages = 1133 • Table_Size = 9281536 Bytes BukuRegister
Fixed_cols: KodeBuku, TanggalRegister, KodeKaryawan • Num_Rows = 5000
Fixed_Data_Size = 25 • Null_Bitmap = 3 • Row_Size = 32 • Rows_Per_Page = 236 • Free_Rows_Per_Page = 0 • Num_Pages = 212 • Table_Size = 1736704 Bytes DetilRegister Var_cols: NamaTertanggung
Fixed_cols: KodeBuku, KodeReasuransi, QuotationShare • Num_Rows = 5000 • Num_Cols = 4 Fixed_Data_Size = 15 Num_Variable_Cols = 1 Max_Var_Size = 50 • Null_Bitmap = 3 • Var_Data_Size = 54 • Row_Size = 76 • Rows_Per_Page = 103 • Free_Rows_Per_Page = 0
• Num_Pages = 484
• Table_Size = 3964928 Bytes
Survei
Var_cols: Foto, KeteranganLain
Fixed_cols: NoSurvei, TanggalPemeriksaan, StatusKelayakan, KodeKaryawan • Num_Rows = 5000 • Num_Cols = 6 Fixed_Data_Size = 36 Num_Variable_Cols = 2 Max_Var_Size = 200 • Null_Bitmap = 3 • Var_Data_Size = 206 • Row_Size = 249 • Rows_Per_Page = 32 • Free_Rows_Per_Page = 0 • Num_Pages = 1554 • Table_Size = 12730368 Bytes Negosiasi
Var_cols: NoPolis, NamaTertanggung, Alamat, KeteranganLain, LokasiPertanggungan, JenisJaminan
Fixed_cols: KodeNegosiasi, PeriodeAwal, PeriodeAkhir, SukuPremi, QuotationShare, Persetujuan, KelasKonstruksi, JumlahPertanggungan, TanggalTerbit, KodeObjek, KodeKaryawan, KodeReasuransi, KodeJenisResiko • Num_Rows = 5000 • Num_Cols = 19 Fixed_Data_Size = 81 Num_Variable_Cols = 6 Max_Var_Size = 200 • Null_Bitmap = 5 • Var_Data_Size = 214 • Row_Size = 304 • Rows_Per_Page = 26 • Free_Rows_Per_Page = 0 • Num_Pages = 1891 • Table_Size = 15491072 Bytes PremiumNote
Fixed_cols: NoNote, TanggalCetak, NoPolis, NoEndorsement • Num_Rows = 5000
• Num_Cols = 4
• Null_Bitmap = 3 • Row_Size = 38 • Rows_Per_Page = 200 • Free_Rows_Per_Page = 0 • Num_Pages = 249 • Table_Size = 2039808 Bytes Reasuransi
Var_cols: NamaReasuransi, Alamat Fixed_cols: KodeReasuransi • Num_Rows = 25 • Num_Cols = 3 Fixed_Data_Size = 4 Num_Variable_Cols = 2 Max_Var_Size = 100 • Null_Bitmap = 3 • Var_Data_Size = 106 • Row_Size = 117 • Rows_Per_Page = 67 • Free_Rows_Per_Page = 0 • Num_Pages = 1
• Table_Size = 8192 Bytes
FacultativeClosingSlip
Fixed_cols: NoSlip, TanggalCetak, NoPolis, NoEndorsement • Num_Rows = 5000 • Num_Cols = 4 Fixed_Data_Size = 31 • Null_Bitmap = 3 • Row_Size = 38 • Rows_Per_Page = 200 • Free_Rows_Per_Page = 0 • Num_Pages = 249 • Table_Size = 2039808 Bytes FacultativeEndorsement
Fixed_cols: NoEndorse, TanggalCetak, NoPolis, NoEndorsement • Num_Rows = 5000 • Num_Cols = 4 Fixed_Data_Size = 31 • Null_Bitmap = 3 • Row_Size = 38 • Rows_Per_Page = 200
• Free_Rows_Per_Page = 0 • Num_Pages = 249
• Table_Size = 2039808 Bytes
Karyawan
Var_cols: NamaKaryawan, TempatLahir, Alamat, NoTelp
Fixed_cols: KodeKaryawan, JenisKelamin, NoKTP, KodePos, TglLahir, StatusMenikah, Gaji • Num_Rows = 200 • Num_Cols = 11 Fixed_Data_Size = 47 Num_Variable_Cols = 4 Max_Var_Size = 100 • Null_Bitmap = 4 • Var_Data_Size = 110 • Row_Size = 165 • Rows_Per_Page = 48 • Free_Rows_Per_Page = 0 • Num_Pages = 4 • Table_Size = 32768 Byt
JenisResiko Var_cols: NamaJenisResiko Fixed_cols: KodeJenisResiko • Num_Rows = 10 • Num_Cols = 2 Fixed_Data_Size = 2 Num_Variable_Cols = 1 Max_Var_Size = 20 • Null_Bitmap = 3 • Var_Data_Size = 24 • Row_Size = 33 • Rows_Per_Page = 230 • Free_Rows_Per_Page = 0 • Num_Pages = 1 • Table_Size = 8192 Bytes Objek Var_cols: ObjekPertanggungan Fixed_cols: KodeObjek • Num_Rows = 10 • Num_Cols = 2 Fixed_Data_Size = 5
Num_Variable_Cols = 1 Max_Var_Size = 50 • Null_Bitmap = 3 • Var_Data_Size = 54 • Row_Size = 66 • Rows_Per_Page = 118 • Free_Rows_Per_Page = 0 • Num_Pages = 1 • Table_Size = 8192 Bytes
Lampiran 5 - Coding View CREATE VIEW viewPolis AS
SELECT a.*, b.NamaKaryawan, c.ObjekPertanggungan, d.NamaJenisResiko, e.TanggalRegister, f.QuotationShare as ShareReasuransi, g.NamaReasuransi FROM Polis a JOIN Karyawan b ON a.KodeKaryawan = b.KodeKaryawan JOIN Objek c ON a.KodeObjek = c.KodeObjek JOIN JenisResiko d ON a.KodeJenisResiko =
d.KodeJenisResiko join BukuRegister e on a.KodeBuku = e.KodeBuku join DetilRegister f on e.KodeBuku = f.KodeBuku join Reasuransi g on f.KodeReasuransi =
g.KodeReasuransi
CREATE VIEW viewFacClosingSlip AS
SELECT a.NoSlip, a.TanggalCetak, b.*, c.NamaJenisResiko, d.ObjekPertanggungan, e.TanggalRegister, f.QuotationShare as ShareReasuransi, g.NamaReasuransi, g.Alamat FROM FacultativeClosingSlip a JOIN Polis b ON a.NoPolis = b.NoPolis
JOIN JenisResiko c ON b.KodeJenisResiko = c.KodeJenisResiko JOIN Objek d ON b.KodeObjek = d.KodeObjek JOIN BukuRegister e ON b.KodeBuku = e.KodeBuku JOIN DetilRegister f ON e.KodeBuku = f.KodeBuku JOIN Reasuransi g ON
CREATE VIEW viewPNClose AS
SELECT a.NoNote, a.TanggalCetak, b.*, c.NoSlip, d.TanggalRegister, e.QuotationShare as ShareReasuransi, f.NamaReasuransi, f.Alamat
FROM PremiumNote a JOIN Polis b ON a.NoPolis = b.NoPolis and a.NoEndorsement = b.NoEndorsement
JOIN FacultativeClosingSlip c ON b.NoPolis = c.NoPolis and c.NoEndorsement = b.NoEndorsement JOIN BukuRegister d ON b.KodeBuku = d.KodeBuku JOIN
DetilRegister e ON d.KodeBuku = e.KodeBuku JOIN Reasuransi f ON f.KodeReasuransi = e.KodeReasuransi
CREATE VIEW viewPNEndorse AS
SELECT a.NoNote, a.TanggalCetak, b.*, c.NoSlip, d.TanggalRegister, e.QuotationShare as ShareReasuransi, f.NamaReasuransi, f.Alamat, g.NoEndorse
FROM PremiumNote a JOIN Polis b ON a.NoPolis = b.NoPolis and a.NoEndorsement = b.NoEndorsement
JOIN FacultativeClosingSlip c ON b.NoPolis = c.NoPolis JOIN FacultativeEndorsement g ON g.NoPolis = b.NoPolis and g.NoEndorsement = b.NoEndorsement JOIN
BukuRegister d ON b.KodeBuku = d.KodeBuku JOIN DetilRegister e ON d.KodeBuku = e.KodeBuku JOIN Reasuransi f ON f.KodeReasuransi = e.KodeReasuransi
CREATE VIEW viewFacEndorsement AS
SELECT a.NoEndorse, a.TanggalCetak, b.*, c.NoSlip, d.TanggalRegister, e.QuotationShare as ShareReasuransi, f.NamaReasuransi, f.Alamat
FROM FacultativeEndorsement a JOIN Polis b ON a.NoPolis = b.NoPolis and a.NoEndorsement = b.NoEndorsement
JOIN FacultativeClosingSlip c ON b.NoPolis = c.NoPolis JOIN BukuRegister d ON b.KodeBuku = d.KodeBuku JOIN DetilRegister e ON d.KodeBuku = e.KodeBuku JOIN Reasuransi f ON f.KodeReasuransi = e.KodeReasuransi where b.NoEndorsement <> ‘000’
CREATE VIEW viewNegosiasi AS
SELECT a.*, b.ObjekPertanggungan, c.NamaJenisResiko, d.NamaKaryawan,
e.NamaReasuransi FROM Negosiasi a JOIN Objek b ON a.KodeObjek = b.KodeObjek JOIN JenisResiko c ON a.KodeJenisResiko = c.KodeJenisResiko JOIN Karyawan d ON a.KodeKaryawan = d.KodeKaryawan JOIN Reasuransi e ON a.KodeReasuransi = e.KodeReasuransi
CREATE VIEW viewSurvei AS
SELECT a.*, b.NamaKaryawan FROM Survei a JOIN Karyawan ON a.KodeKaryawan = b.KodeKaryawan
CREATE VIEW viewBukuRegister AS
SELECT a.KodeBuku, a.TanggalRegister, a.NamaTertanggung, a.Alamat,
a.LokasiPertanggungan, b.NamaKaryawan, c.QuotationShare, c.NamaTertanggung, d.NamaReasuransi FROM BukuRegister a JOIN Karyawan b ON a.KodeKaryawan = b.KodeKaryawan JOIN DetilRegister c ON a.KodeBuku = c.KodeBuku JOIN Reasuransi d ON c.KodeReasuransi = d.KodeReasuransi
Lampiran 6 – Hasil wawancara sebagai analisis kebutuhan informasi
• Hasil wawancara sebelum evaluasi
Tanggal Wawancara : 2 Februari 2009
Hasil Wawancara
Setelah melalui analisis kebutuhan informasi dalam perusahaan, berikut ini kami dokumentasikan kebutuhan-kebutuhan yang ada dalam perusahaan. Berikut ini dilampirkan hasil wawancara yang dilakukan dalam proses penelitian.
1. Tanya: Perusahaan yang Bapak Pimpin sudah berdiri berapa lama ?
Jawab: Sudah kurang lebih 10 tahun.
2. Tanya: Sistem yang berjalan selama ini ada berapa?
Jawab: Ada 2, yaitu sistem administrasi polis, sistem pembukuan atau keuangan /accounting.
3. Tanya: Sistem apa yang digunakan saat ini dan basis data apa yang digunakan untuk menyimpan data?
Jawab: Menggunakan basis data DBase dan sistem yang digunakan adalah Progress. Dan untuk sistem penutupan fakultatif reasuransi dari alur registrasi sampain penutupan masih menggunakan sistem manual. Dan negosiasi yang dilakukan masih menggunakan e-mail.
4. Tanya: Siapa yang menggunakan sistem aplikasi ini?
Jawab: Bagian Produksi hanya dalam hal penutupan fakultatif reasuransi yaitu input polis.
5. Tanya: Bagaimana perhitungan premi dalam penutupan fakultatif reasuransi?
Jawab: Pertama, fakultatif reasuransi terjadi karena kami sebagai pihak Eka Lloyd tidak dapat meng-cover secara penuh asuransi dari nasabah dikarenakan jumlah pertanggungan yang terlampau tinggi. Jadi kami bagi ke perusahaan reasuransi atau asuransi lain dengan pembagian persentase yang disetujui. Berikut dasar pertitungan premi penutupan fakultatif reasuransi:
Misalkan:
Jumlah Pertanggungan = Rp. 10.000.000 Suku Premi = 2%
Premi = Jumlah Pertanggungan * Suku Premi = Rp. 10.000.000 * 2%
= Rp. 200.000
PT. Asuransi Eka Lloyd Jaya 80%
PT. Asuransi A 10%
Untuk PT. Asuransi Eka Lloyd Jaya Jumlah Pertanggungan = Rp. 10.000.000 * 80% = Rp. 8.000.000 Premi = Rp. 8.000.000 * 2% = Rp. 160.000 Untuk PT. Asuransi A Jumlah Pertanggungan = Rp. 10.000.000 * 10% = Rp. 1.000.000 Premi = Rp. 1.000.000 * 2% = Rp. 20.000 Untuk PT. Asuransi B Jumlah Pertanggungan = Rp. 10.000.000 * 10% = Rp. 1.000.000 Premi = Rp. 1.000.000 * 2% = Rp. 20.000
Michael Kusliawan, S.Kom, ANZIIF(Assoc),CIP Manager IT
• Hasil wawancara setelah implementasi dan evaluasi Tanggal Wawancara : 11 Juni 2009
Hasil Wawancara
Setelah melalui implementasi dalam perusahaan, berikut ini kami dokumentasikan knowledge base pada sistem aplikasi baru yang telah diimplementasikan. Berikut ini dilampirkan hasil wawancara yang dilakukan.
1. Tanya: Apakah dengan sistem baru ini permasalahan yang dihadapi sebelumnya dapat terpecahkan?
Jawab: Pada sistem baru yang Anda-Anda buat sudah memenuhi kriteria dan untuk saat ini dapat dibilang memecahkan masalah perusahaan kami, tapi masih adanya kekurangan yang muncul dalam aplikasi tersebut. Dan masih membutuhkan perbaikan.
2. Tanya: Perbaikan apakah yang anda butuhkan?
Jawab: Perbaikan yang kami harapkan adalah pertama, pada data polis, seharusnya ditambahkan jenis jaminan tambahan beserta suku preminya. Kedua, pada tampilan halaman negosiasi, ditambahkan due time sehingga kami sebagai user tahu kapan dilakukannya negosiasi tersebut. Ketiga, adalah tidak adanya fungsi pembatalan
polis dan perhitungan premi pro-ratanya dan batal per sejak semula dalam aplikasi ini.
3. Tanya: Apakah aplikasi baru ini cukup nyaman dalam hal penggunaan dan tampilan?
Jawab: Menurut kami tampilan tidak masalah, yang penting adalah kejelasan dalam transaksi yang terjadi seperti input-an data dan query terhadap suatu data. Dan tidak ada keluhan dari user bagian produksi itu sendiri.
4. Tanya: Apakah sistem aplikasi baru ini sering terjadi bug?
Jawab: Sampai saat ini program aplikasi masih berjalan lancar, dan tidak terjadinya error.
Michael Kusliawan, S.Kom, ANZIIF(Assoc),CIP Manager IT