Академический Документы
Профессиональный Документы
Культура Документы
Tabel Mortalitas
“Comissioners 1941 Standard Ordinary”
x lx x lx x lx
64
LAMPIRAN B :
x A X x A X
15 0.306390278 33 0.43907973
16 0.312571979 34 0.44778151
17 0.318894544 35 0.45661214
18 0.325348746 36 0.46557449
19 0.331945707 37 0.47466049
20 0.338677270 38 0.48386878
21 0.345553950 39 0.49319827
22 0.352568050 40 0.50263868
23 0.359724050 41 0.51263800
24 0.367020660 42 0.51219002
25 0.374463290 43 0.52184385
26 0.382045100 44 0.53159700
27 0.389771700 45 0.54144336
28 0.397642530 46 0.55137253
29 0.405652000 47 0.56138058
30 0.413800490 48 0.57145985
31 0.422087880 49 0.58159988
32 0.430515610 50 0.59179649
65
LAMPIRAN C :
1 1
x A x:n
x A x:n
15 0.023016768 33 0.051163433
16 0.023710722 34 0.054306268
17 0.024471927 35 0.057708621
18 0.025296676 36 0.061401598
19 0.026203614 37 0.065403299
20 0.027184176 38 0.069734534
21 0.028255610 39 0.074436503
22 0.029415305 40 0.079518901
23 0.030672672 41 0.085022172
24 0.032041979 42 0.090968568
25 0.033532950 43 0.097401892
26 0.035151570 44 0.104350017
27 0.036914810 45 0.111842644
28 0.038829982 46 0.119925787
29 0.040910485 47 0.128633659
30 0.043164910 48 0.138002540
31 0.045614526 49 0.148081012
32 0.048276228 50 0.158897255
66
LAMPIRAN D :
x A x:n
x A x:n
15 0.785483846 33 0.791079604
16 0.785620003 34 0.791704227
17 0.785770560 35 0.792373982
18 0.785939160 36 0.793100343
19 0.786122138 37 0.793889488
20 0.786318153 38 0.794735185
21 0.786529270 39 0.795660943
22 0.786760806 40 0.796651998
23 0.787008214 41 0.797724904
24 0.787285482 42 0.798878728
25 0.787579796 43 0.800129261
26 0.787905431 44 0.801469044
27 0.788256401 45 0.802910663
28 0.788634009 46 0.804462193
29 0.789051880 47 0.806122913
30 0.789496990 48 0.807903484
31 0.789984592 49 0.809809081
32 0.790510031 50 0.811842898
67
LAMPIRAN E:
LISTING PROGRAM
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, Buttons, jpeg, ExtCtrls;
type
TForm2 = class(TForm)
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Image2: TImage;
procedure SimulasiTx1Click(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure About1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
68
procedure TForm2.SimulasiTx1Click(Sender: TObject);
begin
form1.show();
form2.Hide();
end;
end;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
69
Dialogs, StdCtrls, Buttons,math, Menus, ComCtrls, ActnList, StdActns,
ActnMan, Mask, Spin, XPStyleActnCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label5: TLabel;
Label6: TLabel;
Nama: TEdit;
Umur: TEdit;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Label3: TLabel;
As_J: TRadioButton;
As_S: TRadioButton;
As_D: TRadioButton;
Besar_Benefit: TEdit;
P_Nk: TRadioButton;
P_Tt: TRadioButton;
Hasil_Premi: TEdit;
premi: TBitBtn;
BitBtn2: TBitBtn;
Label12: TLabel;
GroupBox3: TGroupBox;
Cara_Kontinu: TRadioButton;
Cara_Diskrit: TRadioButton;
reset: TBitBtn;
Label10: TLabel;
P_Sb: TRadioButton;
Banyak_Nk: TEdit;
Label11: TLabel;
GroupBox4: TGroupBox;
Label4: TLabel;
print: TButton;
Rich: TRichEdit;
ActionManager1: TActionManager;
FilePrintSetup1: TFilePrintSetup;
MainMenu1: TMainMenu;
File1: TMenuItem;
About1: TMenuItem;
Print1: TMenuItem;
Exit1: TMenuItem;
Lama: TEdit;
Label7: TLabel;
procedure FormCreate(Sender: TObject);
procedure P_SbClick(Sender: TObject);
procedure premiClick(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
70
procedure UsLifeTable1Click(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure About1Click(Sender: TObject);
procedure P_NkClick(Sender: TObject);
procedure P_TtClick(Sender: TObject);
procedure resetClick(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure printClick(Sender: TObject);
procedure Besar_BenefitExit(Sender: TObject);
procedure Besar_BenefitEnter(Sender: TObject);
procedure Print1Click(Sender: TObject);
procedure As_JClick(Sender: TObject);
procedure As_SClick(Sender: TObject);
procedure As_DClick(Sender: TObject);
private
delta,v,age,m,c : real;
d,annuity_cwl,premi_annual_cwl,im,dm,annuitym_cwl,premi_monthly_cwl,mt:real;
annuity_dwl,premi_annual_dwl,annuitym_dwl,premi_monthly_dwl:real;
ZTc,ZTd,KT,inc_ZTc,dec_ZTc:array of real;
NSPTc,NSPTd,Tot_ZTc,Tot_ZTd:real;
term,bunga,benefit,cetak: real;
annuity_cnt,premi_annual_cnt,annuitym_cnt,premi_monthly_cnt:real;
annuity_dnt,premi_annual_dnt,annuitym_dnt,premi_monthly_dnt:real;
premi_annual_cend,annuitym_cend,premi_monthly_cend:real;
premi_annual_dend,annuitym_dend,premi_monthly_dend:real;
ZEpc,ZEpd,KEp:array of real;
NSPEpc,NSPEpd,Tot_ZEpc,Tot_ZEpd:real;
procedure inisialisasi_mc();
procedure FungsiT();
procedure FungsiTs();
procedure Nsp_Cwl();
procedure Nsp_Dwl();
procedure Annual_Cwl();
procedure Monthly_Cwl();
procedure Annual_Dwl();
procedure Monthly_Dwl();
procedure Nsp_Cnt();
procedure Nsp_Dnt();
procedure Annual_Cnt();
procedure Monthly_Cnt();
procedure Annual_Dnt();
procedure Monthly_Dnt();
procedure Nsp_Cpend();
procedure Nsp_Dpend();
procedure NSP_DEnd();
procedure NSP_CEnd();
procedure Annual_Cend();
procedure Monthly_Cend();
procedure Annual_Dend();
procedure Monthly_Dend();
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
72
//Generating Uniform Random Variabel
procedure TForm1.RandomV();
var i : integer;
begin
for i:=0 to j-1 do
begin
repeat
u[i]:=(random(10000))/10000;
until u[i]<>0 ;
E[i]:= -1*(Ln(1-u[i]));
end;
end;
//inisialisasi umum
procedure TForm1.IniateUmum();
begin
bunga:=0.025;
delta:=ln(1+bunga);
v:=Power((1+bunga),-1);
d:=bunga/(bunga+1);
end;
//*************************************************************
//*Awal Simulating Net Single Premium For Whole Life Insurance*
//*************************************************************
73
//Simulating Net single Premium For whole Life Insurance
Procedure TForm1.Nsp_Cwl();
var i:longint;
begin
Tot_ZWc:=0;
NSPWc:=0;
for i:=0 to j-1 do
begin
ZWc[i]:=Power(v,T[i]);
end;
for i:=0 to j-1 do
begin
Tot_ZWc:=Tot_ZWc+ZWc[i];
end;
NSPWc:=(Tot_ZWc/j);
end;
Procedure TForm1.Annual_Cwl();
begin
annuity_cwl:=0;
Premi_annual_Cwl:=0;
annuity_cwl:=(1-NSPWc)/d;
Premi_annual_Cwl:=NSPWc/annuity_cwl;
end;
Procedure TForm1.Monthly_Cwl();
begin
annuitym_cwl:=0;
premi_monthly_cwl:=0;
im:=(Power((1+bunga),1/mt)-1)/(1/mt);
dm:=im/(1+(im/mt));
annuitym_cwl:=((d/dm)*annuity_cwl)-(((mt-1)/(2*mt))*NSPWc);
premi_monthly_cwl:=NSPWc/annuitym_cwl;
end;
Procedure TForm1.Nsp_Dwl();
var i:longint;
begin
Tot_Zwd:=0;
NSPWd:=0;
for i:=0 to j-1 do
begin
KW[i] :=floor(T[i]); // Discritation of T(x);
end;
for i:=0 to j-1 do
begin
ZWd[i]:=power(v,(KW[i]+1));
end;
74
for i:=0 to j-1 do
begin
Tot_ZWd:=Tot_ZWd+ZWd[i];
end;
NSPWd:=(Tot_ZWd/j);
end;
Procedure TForm1.Annual_Dwl();
begin
annuity_dwl:=0;
premi_annual_Dwl:=0;
annuity_dwl:=(1-NSPWd)/d;
premi_annual_Dwl:=NSPWd/annuity_dwl;
end;
Procedure TForm1.Monthly_Dwl();
begin
annuitym_dwl:=0;
premi_monthly_dwl:=0;
im:=(Power((1+bunga),1/mt)-1)/(1/mt);
dm:=im/(1+(im/mt));
annuitym_dwl:=((d/dm)*annuity_dwl)-(((mt-1)/(2*mt))*NSPWd);
premi_monthly_dwl:=NSPWd/annuitym_dwl;
end;
//************************************************************
//Akhir Program Simulating Net Single Prewmium for Whole Life*
//************************************************************
//**************************************************************
//*Awal Simulating Net Single Premium For n year term insurance*
//**************************************************************
Procedure TForm1.Annual_Cnt();
begin
annuity_cnt:=0;
premi_annual_cnt:=0;
annuity_cnt:=(1-NSPEc)/d;
premi_annual_cnt:=NSPTc/annuity_cnt;
end;
Procedure TForm1.Monthly_Cnt();
begin
annuitym_cnt:=0;
premi_monthly_cnt:=0;
im:=(Power((1+bunga),1/mt)-1)/(1/mt);
dm:=im/(1+(im/mt));
annuitym_cnt:=((d/dm)*annuity_cnt)-(((mt-1)/(2*mt))*NSPTc);
premi_monthly_cnt:=NSPTc/annuitym_cnt;
end;
Procedure TForm1.Nsp_Dnt();
var i:longint;
begin
Tot_Ztd:=0;
NSPTd:=0;
for i:=0 to j-1 do
begin
if Tt[i]=0 then
KT[i]:=0
else
KT[i] :=floor(Tt[i]); // Discritation of T(x);
end;
Procedure TForm1.Annual_Dnt();
begin
annuity_dnt:=0;
premi_annual_dnt:=0;
annuity_dnt:=(1-NSPEd)/d;
premi_annual_dnt:=NSPTd/annuity_dnt;
end;
Procedure TForm1.Monthly_Dnt();
begin
annuitym_dnt:=0;
premi_monthly_dnt:=0;
im:=(Power((1+bunga),1/mt)-1)/(1/mt);
dm:=im/(1+(im/mt));
annuitym_dnt:=((d/dm)*annuity_dnt)-(((mt-1)/(2*mt))*NSPTd);
premi_monthly_dnt:=NSPTd/annuitym_dnt;
end;
//*********************************************************
//Akhir Simulating Net SIngle Premium for n-term Insurance*
//*********************************************************
//************************************************************
//*Awal Simulating Net Single Premium For Endowment Insurance*
//************************************************************
Procedure TForm1.Nsp_Cpend();
var i:longint;
begin
Tot_ZEpc:=0;
NSPEpc:=0;
for i:=0 to j-1 do
begin
ZEpc[i]:=power(v,term);
end;
77
Procedure TForm1.Nsp_Dpend();
var i:longint;
begin
Tot_ZEpd:=0;
NSPEpd:=0;
for i:=0 to j-1 do
begin
ZEpd[i]:=power(v,term);
end;
procedure TForm1.NSP_CEnd();
var i:integer;
begin
Tot_ZEc:=0;
NSPEc:=0;
for i:=0 to j-1 do
begin
ZEc[i]:=ZTc[i]+ZEPc[i];
end;
Procedure TForm1.Annual_Cend();
begin
annuity_cnt:=0;
premi_annual_cend:=0;
annuity_cnt:=(1-NSPEc)/d;
premi_annual_cend:=NSPEc/annuity_cnt;
end;
Procedure TForm1.Monthly_Cend();
begin
annuitym_cend:= 0;
premi_monthly_cend:=0;
im:=(Power((1+bunga),1/mt)-1)/(1/mt);
dm:=im/(1+(im/mt));
78
annuitym_cend:=((d/dm)*annuity_cnt)-(((mt-1)/(2*mt))*NSPEc);
premi_monthly_cend:=NSPEc/annuitym_cend;
end;
procedure TForm1.NSP_DEnd();
var i:integer;
begin
Tot_ZEd:=0;
NSPEd:=0;
for i:=0 to j-1 do
begin
ZEd[i]:=ZTd[i]+ZEPd[i];
end;
Procedure TForm1.Annual_Dend();
begin
annuity_dnt:=0;
premi_annual_dend:=0;
annuity_dnt:=(1-NSPEd)/d;
premi_annual_dend:=NSPEd/annuity_dnt;
end;
Procedure TForm1.Monthly_Dend();
begin
annuitym_dend:=0;
premi_monthly_dend:=0;
im:=(Power((1+bunga),1/mt)-1)/(1/mt);
dm:=im/(1+(im/mt));
annuitym_dend:=((d/dm)*annuity_dnt)-(((mt-1)/(2*mt))*NSPEd);
premi_monthly_dend:=NSPEd/annuitym_dend;
end;
//************************************************************
//Akhir Simulating Net SIngle Premium for Endowment Insurance*
//************************************************************
//inisialisasi parameter m c
Procedure TForm1.inisialisasi_mc();
begin
m:=0.0105;
79
c:=1.0652;
end;
setlength(u,j);
setlength(E,j);
setlength(T,j);
setlength(ZWc,j);
setlength(ZWd,j);
setlength(KW,j);
setlength(lxus,112);
setlength(Tt,j);
setlength(ZTc,j);
setlength(ZTd,j);
setlength(KT,j);
setlength(inc_ZTc,j);
setlength(dec_ZTc,j);
setlength(Te,j);
setlength(ZEpc,j);
setlength(ZEpd,j);
setlength(KEp,j);
setlength(ZEc,j);
setlength(ZEd,j);
inisialisasi_mc();
randomize();
RandomV();
iniateUmum();
end;
if Nama.Text='' then
begin
MessageDlg('Harap isi Nama !', mtWarning,[mbOK], 0) ;
Nama.SetFocus();
goto keluar;
end;
if Umur.Text='' then
begin
MessageDlg('Harap isi Umur !', mtWarning,[mbOK], 0) ;
Umur.SetFocus();
goto keluar;
end;
if Besar_Benefit.Text='' then
begin
MessageDlg('Harap isi Besarnya Benefit !', mtWarning,[mbOK], 0) ;
Besar_Benefit.SetFocus();
goto keluar;
end;
if tes1=0 then
begin
MessageDlg('Umur Salah!Tolong dilihat !', mtWarning,[mbOK], 0) ;
Umur.SetFocus();
goto keluar;
end;
age:=strtofloat(Umur.text);
if P_Nk.checked then
begin
mt:=strtofloat(Banyak_Nk.text);
end;
if As_S.checked then
Begin
FungsiTs();
Nsp_Cwl();
Nsp_Dwl();
Annual_Cwl();
Annual_Dwl()
End
else if As_J.checked or As_D.Checked then
Begin
if Lama.text='' then
begin
MessageDlg('Harap Jangka Waktu Asuransi Diisi!', mtWarning,[mbOK], 0) ;
Lama.SetFocus();
goto keluar;
end;
Term:=Strtofloat(Lama.Text);
FungsiT();
Nsp_Cnt();
Nsp_Dnt();
Nsp_Cpend();
Nsp_Dpend();
NSP_DEnd();
NSP_CEnd();
Annual_Cnt();
Annual_Dnt();
Annual_Cend();
Annual_Dend();
End;
else if (As_S.checked) and (P_Tt.checked) then //Asuransi Seumur Hidup Tiap Tahun
begin
if (Cara_Kontinu.checked) then
begin
cetak:=0;
cetak:=benefit*premi_annual_cwl;
Hasil_Premi.Text :=CurrToStrF((cetak), ffCurrency,2);
end
else if Cara_Diskrit.checked then
begin
cetak:=0;
cetak:=benefit*premi_annual_dwl;
Hasil_Premi.Text :=CurrToStrF((cetak), ffCurrency,2);
end;
end
84
if (As_D.checked) and (P_Sb.checked) then //Asuransi Dwiguna Sekali bayar
begin
if (Cara_Kontinu.checked) then
begin
cetak:=0;
cetak:=benefit*NSPEc;
Hasil_Premi.Text :=CurrToStrF((cetak), ffCurrency,2);
end
else if Cara_Diskrit.checked then
begin
cetak:=0;
cetak:=benefit*NSPEd;
Hasil_Premi.Text :=CurrToStrF((cetak), ffCurrency,2);
end;
end
If As_S.checked then
begin
Rich.Lines.Add(' Jenis Asuransi : Asuransi Seumur Hidup');
Rich.Lines.Add('');
end
else if As_J.checked then
begin
Rich.Lines.Add(' Jenis Asuransi : Asuransi Berjangka ');
Rich.Lines.Add('');
Rich.Lines.Add(' Jangka Waktu : '+floattostr(term)+' Tahun');
Rich.Lines.Add('');
end
else if As_D.checked then
begin
Rich.Lines.Add(' Jenis Asuransi : Asuransi Dwiguna ');
Rich.Lines.Add('');
Rich.Lines.Add(' Jangka Waktu : '+floattostr(term)+' Tahun');
Rich.Lines.Add('');
end;
if As_S.checked then
Begin
if P_Sb.checked then
Rich.Lines.Add(' Jenis Pembayaran : Sekali Bayar ')
else if P_Tt.checked then
Rich.Lines.Add(' Jenis Pembayaran : Tiap Tahun Seumur Hidup')
else if P_Nk.checked then
87
Rich.Lines.Add(' Jenis Pembayaran : '+floattostr(mt)+' Kali Dalam Setahun
Seumur Hidup');
End
else if (As_J.checked) or(As_D.checked) then
Begin
if P_Sb.checked then
Rich.Lines.Add(' Jenis Pembayaran : Sekali Bayar ')
else if P_Tt.checked then
Rich.Lines.Add(' Jenis Pembayaran : Tiap Tahun Selama '+floattostr(term)+'
Tahun')
else if P_Nk.checked then
Rich.Lines.Add(' Jenis Pembayaran : '+floattostr(mt)+' Kali Dalam Setahun
Selama '+floattostr(term)+' Tahun');
End;
Rich.Lines.Add('');
Rich.Lines.Add('');
if Cara_Kontinu.Checked then
Rich.Lines.Add(' Uang Pertanggungan(benefit) dibayarkan sesaat terjadinya
klaim')
else if Cara_Kontinu.Checked then
Rich.Lines.Add(' Uang Pertanggungan(benefit) dibayarkan Akhir Tahun
terjadinya klaim');
Rich.Lines.Add('');
Rich.Lines.Add('');
Rich.Lines.Add('');
Rich.Lines.Add(' Premi Yang Harus Dibayarkan adalah : '+Hasil_Premi.text);
FilePrintSetup1.Dialog.Execute;
Rich.Print('Premi Asuransi');
end;
if tes2=0 then
begin
MessageDlg('Benefit Salah!Tolong dilihat !', mtWarning,[mbOK], 0) ;
end
else
begin
ThousandSeparator:='.';
DecimalSeparator := ',';
CurrencyString :='Rp ';
88
benefit := StrToFloat(Besar_Benefit.text);
Besar_Benefit.Text :=CurrToStrF(StrToFloat( Besar_Benefit.Text), ffCurrency,2);
end;
end;
If As_S.checked then
begin
Rich.Lines.Add(' Jenis Asuransi : Asuransi Seumur Hidup');
Rich.Lines.Add('');
end
else if As_J.checked then
begin
Rich.Lines.Add(' Jenis Asuransi : Asuransi Berjangka ');
Rich.Lines.Add('');
Rich.Lines.Add(' Jangka Waktu : '+floattostr(term)+' Tahun');
Rich.Lines.Add('');
end
else if As_D.checked then
begin
Rich.Lines.Add(' Jenis Asuransi : Asuransi Dwiguna ');
Rich.Lines.Add('');
Rich.Lines.Add(' Jangka Waktu : '+floattostr(term)+' Tahun');
Rich.Lines.Add('');
end;
if As_S.checked then
Begin
if P_Sb.checked then
Rich.Lines.Add(' Jenis Pembayaran : Sekali Bayar ')
89
else if P_Tt.checked then
Rich.Lines.Add(' Jenis Pembayaran : Tiap Tahun Seumur Hidup')
else if P_Nk.checked then
Rich.Lines.Add(' Jenis Pembayaran : '+floattostr(mt)+' Kali Dalam Setahun
Seumur Hidup');
End
else if (As_J.checked) or(As_D.checked) then
Begin
if P_Sb.checked then
Rich.Lines.Add(' Jenis Pembayaran : Sekali Bayar ')
else if P_Tt.checked then
Rich.Lines.Add(' Jenis Pembayaran : Tiap Tahun Selama '+floattostr(term)+'
Tahun')
else if P_Nk.checked then
Rich.Lines.Add(' Jenis Pembayaran : '+floattostr(mt)+' Kali Dalam Setahun
Selama '+floattostr(term)+' Tahun');
End;
Rich.Lines.Add('');
Rich.Lines.Add('');
if Cara_Kontinu.Checked then
Rich.Lines.Add(' Uang Pertanggungan(benefit) dibayarkan sesaat terjadinya
klaim')
else if Cara_Kontinu.Checked then
Rich.Lines.Add(' Uang Pertanggungan(benefit) dibayarkan Akhir Tahun
terjadinya klaim');
Rich.Lines.Add('');
Rich.Lines.Add('');
Rich.Lines.Add('');
Rich.Lines.Add(' Premi Yang Harus Dibayarkan adalah : '+Hasil_Premi.text);
FilePrintSetup1.Dialog.Execute;
Rich.Print('Premi Asuransi');
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm3 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Button1: TButton;
Label9: TLabel;
Label8: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
end.
91