Вы находитесь на странице: 1из 28

LAMPIRAN A :

Tabel Mortalitas
“Comissioners 1941 Standard Ordinary”

x lx x lx x lx

0 1023102 34 910515 68 506403


1 1000000 35 906554 69 480850
2 994230 36 902393 70 454548
3 990114 37 898007 71 427593
4 986767 38 893382 72 400112
5 983817 39 888504 73 372240
6 981102 40 883342 74 344136
7 978541 41 877883 75 315982
8 976124 42 872098 76 287973
9 973869 43 865967 77 260322
10 971804 44 859464 78 233251
11 969890 45 852554 79 206989
12 968038 46 845214 80 181765
13 966179 47 837413 81 157799
14 964266 48 829114 82 135297
15 962270 49 820292 83 114440
16 960201 50 810900 84 95378
17 958098 51 800910 85 78221
18 955942 52 790282 86 63036
19 953743 53 778981 87 49838
20 951483 54 766961 88 38593
21 949171 55 754191 89 29215
22 946789 56 740631 90 21577
23 944337 57 726241 91 15514
24 941806 58 710990 92 10833
25 939197 59 694843 93 7327
26 936492 60 677771 94 4787
27 933692 61 659749 95 3011
28 930788 62 640761 96 1818
29 927763 63 620782 97 1005
30 924609 64 599824 98 454
31 921317 65 577882 99 125
32 917880 66 554975 100 0
33 914282 67 531133

64
LAMPIRAN B :

Premi Bersih (Net Single Premium)


Asuransi Seumur Hidup Deterministik Model

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

Data Tabel Mortalitas CSO 1941


Tingkat Bunga 2,5 %
Benefit = 1

65
LAMPIRAN C :

Premi Bersih (Net Single Premium)


Asuransi Berjangka Deterministik Model

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

Data Tabel Mortalitas CSO 1941


Jangka Waktu 10 Tahun
Tingkat Bunga 2,5 %
Benefit = 1

66
LAMPIRAN D :

Premi Bersih (Net Single Premium)


Asuransi Dwiguna Deterministik Model

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

Data Tabel Mortalitas CSO 1941


Jangka Waktu 10 Tahun
Tingkat Bunga 2,5 %
Benefit = 1

67
LAMPIRAN E:

LISTING PROGRAM

A.1 Form Menu (Form 2)

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

uses Unit1, Unit3;

{$R *.dfm}

68
procedure TForm2.SimulasiTx1Click(Sender: TObject);
begin
form1.show();
form2.Hide();
end;

procedure TForm2.Exit1Click(Sender: TObject);


begin
application.terminate;
end;

procedure TForm2.About1Click(Sender: TObject);


begin
form3.show();
end;

procedure TForm2.Button1Click(Sender: TObject);


begin
form1.Show();
form2.Hide();
end;

procedure TForm2.Button2Click(Sender: TObject);


begin
form3.show();
end;

procedure TForm2.Button3Click(Sender: TObject);


begin
Application.Terminate;
end;

procedure TForm2.FormCreate(Sender: TObject);


begin

end;

end.

A.2 Form Perhitungan Premi (Form 1)

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

lxus,u,E,T,Tt,Te : array of real;

delta,v,age,m,c : real;

ZWc,ZWd,KW: array of real;


NSPWc,NSPWd,Tot_ZWc,Tot_ZWd:real;
j:longint;

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;

ZEd,ZEc :array of real;


Tot_ZEc,Tot_ZEd,NSPEc,NSPEd:real;
71
procedure IniateUmum();
procedure RandomV();

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

uses Unit2, Unit3;

{$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*
//*************************************************************

//Simulating T(x) untuk asuransi berjangka


procedure TForm1.FungsiT();
var i: integer;
begin
for i:=0 to j-1 do
begin
T[i]:=(Ln((E[i]/(m*Power(c,age)))+1))*(1/Ln(c));
if T[i]<term then
Tt[i]:=T[i]
else Tt[i]:=0;
end;
end;

//simulating T(x) untuk asuransi seumur hidup


procedure TForm1.FungsiTs();
var i: integer;
begin
for i:=0 to j-1 do
begin
T[i]:=(Ln((E[i]/(m*Power(c,age)))+1))*(1/Ln(c));
end;
end;

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*
//**************************************************************

//Simulating Net single Premium For n-term Insurance


Procedure TForm1.Nsp_Cnt();
var i:longint;
begin
Tot_ZTc:=0;
NSPTc:=0;
for i:=0 to j-1 do
begin
if Tt[i]=0 then
ZTc[i]:=0
else
ZTc[i]:=Power(v,Tt[i]);
end;

for i:=0 to j-1 do


begin
75
Tot_ZTc:=Tot_ZTc+ZTc[i];
end;
NSPTc:=(Tot_ZTc/j);
end;

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;

for i:=0 to j-1 do


begin
if KT[i]=0 then
ZTd[i]:=0
else
ZTd[i]:=power(v,(KT[i]+1));
end;

for i:=0 to j-1 do


begin
Tot_ZTd:=Tot_ZTd+ZTd[i];
end;
NSPTd:=(Tot_ZTd/j);
76
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*
//************************************************************

//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;

for i:=0 to j-1 do


begin
Tot_ZEpc:=Tot_ZEpc+ZEpc[i];
end;
NSPEpc:=(Tot_ZEpc/j);
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;

for i:=0 to j-1 do


begin
Tot_ZEpd:=Tot_ZEpd+ZEpd[i];
end;
NSPEpd:=(Tot_ZEpd/j);
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;

for i:=0 to j-1 do


begin
Tot_ZEc:=Tot_ZEc+ZEc[i];
end;
NSPEc:=Tot_ZEc/j;
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;

for i:=0 to j-1 do


begin
Tot_ZEd:=Tot_ZEd+ZEd[i];
end;
NSPEd:=Tot_ZEd/j;
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;

procedure TForm1.FormCreate(Sender: TObject);


begin
Lama.Enabled:=true;
Rich.Visible:=false;
print.Enabled:=false;
Print1.Enabled:=false;
Hasil_Premi.Enabled:=false;
Banyak_Nk.Enabled:=false;
Banyak_Nk.Color:=clBtnFace;

label12.caption:=FormatDateTime('d "-" mmmm "-" yyyy', Date);


j:=(46*64*4*6);

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;

procedure TForm1.P_SbClick(Sender: TObject);


begin
Banyak_Nk.Enabled:=false;
Banyak_Nk.color:=clBtnFace;
end;

procedure TForm1.premiClick(Sender: TObject);


80
var flag,hitung,i,tes1,tes2:integer;
cek_angka1:string;
label keluar;
begin
cek_angka1:=Umur.text;
for i:=1 to Length(cek_angka1) do
begin
if (ord(cek_angka1[i])<48) or (ord(cek_angka1[i])>57) then tes1:=0;
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;

if (strtofloat(Umur.Text)<15) or (strtofloat(Umur.Text)>50) then


begin
MessageDlg('Umur Harus Berada antara 15-50 !', mtWarning,[mbOK], 0) ;
Umur.SetFocus();
goto keluar;
end;

if As_J.checked or As_D.Checked then


begin
if (strtofloat(lama.text)<10) then
begin
81
MessageDlg('Jangka Waktu Harus Lebih Besar Dari 10 Tahun !', mtWarning,[mbOK],
0) ;
lama.SetFocus();
goto keluar;
end;
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;

if (As_J.checked) and (P_Sb.checked) then //Asuransi Berjangka sekali bayar


begin
if (Cara_Kontinu.checked) then
begin
cetak:=0;
82
cetak:=benefit*NSPTc;
ThousandSeparator:='.';
DecimalSeparator := ',';
CurrencyString :='Rp ';
Hasil_Premi.Text :=CurrToStrF((cetak), ffCurrency,2);
end
else if Cara_Diskrit.checked then
begin
cetak:=0;
cetak:=benefit*NSPTd;
Hasil_Premi.Text :=CurrToStrF((cetak), ffCurrency,2);
end;
end

else if (As_J.checked) and (P_Tt.checked) then //Asuransi Berjangka Tiap Tahun


begin
if (Cara_Kontinu.checked) then
begin
cetak:=0;
cetak:=benefit*premi_annual_cnt;
Hasil_Premi.Text :=CurrToStrF((cetak), ffCurrency,2);
end
else if Cara_Diskrit.checked then
begin
cetak:=0;
cetak:=benefit*premi_annual_dnt;
Hasil_Premi.Text :=CurrToStrF((cetak), ffCurrency,2);
end;
end

else if (As_J.checked) and (P_Nk.checked) then // Asuransi Berjangka N-kali


begin
if (Cara_Kontinu.checked) then
begin
Monthly_Cnt();
cetak:=0;
cetak:=benefit*premi_monthly_cnt;
Hasil_Premi.Text :=CurrToStrF((cetak), ffCurrency,2);
end
else if Cara_Diskrit.checked then
begin
Monthly_Dnt();
cetak:=0;
cetak:=benefit*premi_monthly_dnt;
Hasil_Premi.Text :=CurrToStrF((cetak), ffCurrency,2);
end;
end;

if (As_S.checked) and (P_Sb.checked) then //Asuransi Seumur Hidup Sekali Bayar


83
begin
if (Cara_Kontinu.checked) then
begin
cetak:=0;
cetak:=benefit*NSPWc;
Hasil_Premi.Text :=CurrToStrF((cetak), ffCurrency,2);
end
else if Cara_Diskrit.checked then
begin
cetak:=0;
cetak:=benefit*NSPWd;
Hasil_Premi.Text :=CurrToStrF((cetak), ffCurrency,2);
end;
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

else if (As_S.checked) and (P_Nk.checked) then //Asuransi Seumur Hidup N-kali


begin
if (Cara_Kontinu.checked) then
begin
Monthly_Cwl();
cetak:=0;
cetak:=benefit*premi_monthly_cwl;
Hasil_Premi.Text :=CurrToStrF((cetak), ffCurrency,2);
end
else if Cara_Diskrit.checked then
begin
Monthly_Dwl();
cetak:=0;
cetak:=benefit*premi_monthly_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

else if (As_D.checked) and (P_Tt.checked) then //Asuransi Dwiguna Tiap Tahun


begin
if (Cara_Kontinu.checked) then
begin
cetak:=0;
cetak:=benefit*premi_annual_cend;
Hasil_Premi.Text :=CurrToStrF((cetak), ffCurrency,2);
end
else if Cara_Diskrit.checked then
begin
cetak:=0;
cetak:=benefit*premi_annual_dend;
Hasil_Premi.Text :=CurrToStrF((cetak), ffCurrency,2);
end;
end

else if (As_D.checked) and (P_Nk.checked) then //Asuransi Dwiguna N-kali


begin
if (Cara_Kontinu.checked) then
begin
Monthly_Cend();
cetak:=0;
cetak:=benefit*premi_monthly_cend;
Hasil_Premi.Text :=CurrToStrF((cetak), ffCurrency,2);
end
else if Cara_Diskrit.checked then
begin
Monthly_Dend();
cetak:=0;
cetak:=benefit*premi_monthly_dend;
Hasil_Premi.Text :=CurrToStrF((cetak), ffCurrency,2);
end;
end;
85
print.Enabled:=true;
Print1.enabled:=true;
keluar:
end;

procedure TForm1.BitBtn2Click(Sender: TObject);


begin
Application.Terminate;
end;

procedure TForm1.UsLifeTable1Click(Sender: TObject);


begin
form1.Hide();
form2.show();
end;

procedure TForm1.Exit1Click(Sender: TObject);


begin
application.terminate;
end;

procedure TForm1.About1Click(Sender: TObject);


begin
form3.Show();
end;

procedure TForm1.P_NkClick(Sender: TObject);


begin
Banyak_Nk.Enabled:=true;
Banyak_Nk.Color:=clWindow;
end;

procedure TForm1.P_TtClick(Sender: TObject);


begin
Banyak_Nk.Enabled:=false;
Banyak_Nk.Color:=clBtnFace;
end;

procedure TForm1.resetClick(Sender: TObject);


begin
Nama.Text:='';
Umur.text:='';
Lama.Text:='';
Besar_Benefit.text:='';
Banyak_Nk.Text:='';
Hasil_Premi.Text:='';
print.enabled:=false;
end;
86
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
form1.Hide();
form3.Show();
end;

procedure TForm1.printClick(Sender: TObject);


begin
Rich.Clear;
Rich.Lines.Add('');
Rich.Lines.Add('');
Rich.Lines.Add(' Tanggal Pembuatan Polis : '+label12.Caption);
Rich.Lines.Add('');
Rich.Lines.Add('');
Rich.Lines.Add(' Nama : '+Nama.text);
Rich.Lines.Add('');
Rich.Lines.Add(' Umur : '+Umur.text);
Rich.Lines.Add('');
Rich.Lines.Add(' Besarnya Benefit : '+Besar_Benefit.text);
Rich.Lines.Add('');

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;

procedure TForm1.Besar_BenefitExit(Sender: TObject);


var cek_angka2:string;
tes2,i:integer;
begin
cek_angka2:=Besar_Benefit.text;
for i:=1 to Length(cek_angka2) do
begin
if (ord(cek_angka2[i])<48) or (ord(cek_angka2[i])>57) then tes2:=0;
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;

procedure TForm1.Besar_BenefitEnter(Sender: TObject);


begin
Besar_Benefit.Text := '';
end;

procedure TForm1.Print1Click(Sender: TObject);


begin
Rich.Clear;
Rich.Lines.Add('');
Rich.Lines.Add('');
Rich.Lines.Add(' Tanggal Pembuatan Polis : '+label12.Caption);
Rich.Lines.Add('');
Rich.Lines.Add('');
Rich.Lines.Add(' Nama : '+Nama.text);
Rich.Lines.Add('');
Rich.Lines.Add(' Umur : '+Umur.text);
Rich.Lines.Add('');
Rich.Lines.Add(' Besarnya Benefit : '+Besar_Benefit.text);
Rich.Lines.Add('');

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;

procedure TForm1.As_JClick(Sender: TObject);


begin
Lama.Enabled:=true;
Lama.Color:=clWindow;
end;

procedure TForm1.As_SClick(Sender: TObject);


begin
Lama.Enabled:=false;
Lama.Color:=clBtnFace;
end;

procedure TForm1.As_DClick(Sender: TObject);


begin
Lama.Enabled:=true;
Lama.Color:=clWindow;
90
end;

end.

A.3 Form About (Form 3)

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}

procedure TForm3.Button1Click(Sender: TObject);


begin
form3.Close();
end;

end.

91

Вам также может понравиться