189
LAMPIRAN
1.
Kuisioner Pengguna
Tanggal : __/__/2013
Jenis Kelamin : L/P
1.
Berapa usia anda saat ini?
a.
21 – 30 tahun
b.
31 – 40 tahun
c.
41 – 50 tahun
d.
> 50 tahun
2.
Berapa penghasilan yang anda terima per bulan?
a.
< Rp 10.000.000,00
b.
Rp 10.000.000,00 – Rp 20.000.000,00
c.
Rp 20.000.000,00 – Rp 30.000.000,00
d.
> Rp 30.000.000,00
3.
Apakah anda sering menggunakan kendaraan pribadi anda?
a.
Ya, 7 kali dalam seminggu.
b.
Jarang, < 7 kali dalam seminggu.
c.
Tidak pernah.
4.
Apakah kendaraan pribadi anda sudah memiliki asuransi? (kecelakaan, kehilangan,
dsb)
b.
Tidak, lanjut ke nomor 9
5.
Apakah anda mengerti sistem penentuan harga premi asuransi kendaraan anda ?
a.
Ya
b.
Tidak, lanjut ke nomor 9
6.
Apakah ada penalti bila anda melakukan klaim dalam jangka waktu tertentu dalam
bentuk kenaikan harga premi ?
a.
Ya
b.
Tidak
7.
Apakah ada pemotongan harga premi asuransi yang diberikan bila anda tidak
melakukan klaim dalam jangka waktu tertentu ?
a.
Ya
b.
Tidak
8.
Apakah anda tertarik bila sistem asuransi kendaraan bermotor menerapkan diskon
untuk premi jika anda tidak melakukan klaim dalam jangka waktu 1 tahun, dan akan
mengenakan kenaikan harga premi di tahun berikutnya yang ukuran kenaikannya
disesuaikan dengan jumlah uang klaim yang anda terima di tahun sekarang ?
a.
Tertarik
b.
Kurang Tertarik
c.
Tidak tertarik
9.
Menurut anda apakah sistem tersebut adil untuk anda ?
b.
Tidak
10.
Jika sistem ini diterapkan di Indonesia, apakah anda berminat untuk mengganti sistem
anda yang lama dengan sistem yang baru tersebut ?
a.
Ya
b.
Tidak
2.
Kuisioner Program
Tanggal : __/__/2013
Jenis Kelamin : L/P
1.
Apakah anda menemukan kesamaan tampilan pada setiap halaman aplikasi ini?
a.
Ya
b.
Tidak
2.
Apakah informasi yang disajikan aplikasi ini membingungkan anda?
a.
Ya
b.
Tidak
3.
Apakah anda dapat menemukan reaksi setiap Anda melakukan aksi pada aplikasi?
a.
Ya
b.
Tidak
4.
Apakah anda pernah menemui pesan kesalahan di aplikasi ini?
a.
Ya
5.
Apakah anda dapat membatalkan aksi yang telah dilakukan sebelumnya dengan
mudah?
a.
Ya
b.
Tidak
6.
Apakah anda kesulitan mengingat menu yang ada dalam aplikasi ini?
a.
Ya
b.
Tidak
7.
Apakah fitur Dictionary dan Help pada aplikasi ini membuat anda mengerti tentang
sistem bonus-malus optimal?
a.
Ya
b.
Tidak
8.
Apakah aplikasi ini membantu Anda dalam menentukan nilai premi yang harus
dikenakan pada pemegang polis?
a.
Ya
b.
Tidak
9.
Dengan adanya aplikasi ini, apakah anda merasa perhitungan rumit saat menentukan
premi untuk pemegang polis dapat diselesaikan dengan cepat dan mudah?
a.
Ya
b.
Tidak
10.
Apakah anda berminat untuk memakai aplikasi ini jika anda bekerja di bidang
asuransi kendaraan bermotor?
a.
Ya
b.
Tidak
3.
CalculatorExp.cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;using Excel = Microsoft.Office.Interop.Excel; namespace bmsv1
{
public partial class CalculatorExp : Form {
private string ExcelPath = Environment.CurrentDirectory +
@"\Template\BonusMalusOptimal.xlsx";
int state = 1;
BonusMalusDbEntities db = null;
List<ExponentialTableViewModel> dataList;
public CalculatorExp()
{
InitializeComponent();
db = new BonusMalusDbEntities();
}
private void btnReset_Click(object sender, EventArgs e)
{
DialogResult rslt = MessageBox.Show("Are you sure want to reset
field ?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (rslt.Equals(DialogResult.Yes))
{ kosong(); stateawal(true); state = 1; } }
private void stateawal(bool e)
{
btnExport.Enabled = !e; btnCount.Enabled = !e; btnSave.Enabled = !e; }
private void kosong()
{ txtClaimAmount.Text = ""; txtName.Text = ""; txtNumber.Text = ""; txtPremium.Text = ""; txtTotalYears.Text = ""; dataGridExp.DataSource = null;
}
public void btnCount_Click(object sender, EventArgs e)
{
dataList = new List<ExponentialTableViewModel>();
if (txtName.Text == "" || txtNumber.Text == "" || txtPremium.Text == "" || txtTotalYears.Text == "" || txtClaimAmount.Text == "")
{
MessageBox.Show("All field must be filled before counting",
"Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); }
else
{
int premi = Int32.Parse(txtPremium.Text);
int x = Int32.Parse(txtClaimAmount.Text);
int years = Int32.Parse(txtTotalYears.Text);
double theta = 0.9612;
double s = 2.7541;
int m = 1502189;
dataList.Add(new ExponentialTableViewModel
{
t = 0,
klaim_0 = (int
)(premi*((0+1)*(m)*(theta)*(s-1))/((theta)*(0+s-1)*(m))), klaim_1 = (int)(0), klaim_2 = (int)(0), klaim_3 = (int)(0), klaim_4 = (int)(0), klaim_5 = (int)(0), });
for (int i = 1; i <= years; i++)
{
dataList.Add(new ExponentialTableViewModel
{
t = i,
klaim_0 = (int
)(premi*((0+1)*(m)*(theta)*(s-1))/((i+theta)*(0+s-1)*(m))),
klaim_1 = (int
)(premi*((1+1)*(m+x)*(theta)*(s-1))/((i+theta)*(1+s-1)*(m))),
klaim_2 = (int
)(premi*((2+1)*(m+x)*(theta)*(s-1))/((i+theta)*(2+s-1)*(m))),
klaim_3 = (int
)(premi*((3+1)*(m+x)*(theta)*(s-1))/((i+theta)*(3+s-1)*(m))),
klaim_4 = (int
)(premi*((4+1)*(m+x)*(theta)*(s-1))/((i+theta)*(4+s-1)*(m))),
klaim_5 = (int
)(premi*((5+1)*(m+x)*(theta)*(s-1))/((i+theta)*(5+s-1)*(m))), }); } dataGridExp.DataSource = dataList; state = 0; } }
private void txtAverage_TextChanged(object sender, EventArgs e)
{
if (txtName.Text == "" && txtNumber.Text == "" && txtPremium.Text == "" && txtTotalYears.Text == "" && txtClaimAmount.Text == "")
{
stateawal(true);
else {
stateawal(false);
} }
private void btnSave_Click(object sender, EventArgs e)
{
if (txtName.Text == "" || txtNumber.Text == "" || txtPremium.Text == "" || txtTotalYears.Text == "" || txtClaimAmount.Text == "")
{
MessageBox.Show("All field must be filled before saving",
"Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); }
else
{
if (Program.flag == 0)
{
MsPolicyHolder obj = new MsPolicyHolder();
obj.PolicyHolderName = txtName.Text; obj.PolicyHolderNumber = txtNumber.Text;
obj.ClaimAmount = Int32.Parse(txtClaimAmount.Text);
obj.TotalYears = Int32.Parse(txtTotalYears.Text);
obj.BasicPremium = txtPremium.Text; db.MsPolicyHolders.Add(obj);
db.SaveChanges();
MessageBox.Show("Save success", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
//update
var query = from obj in db.MsPolicyHolders where
obj.PolicyHolderNumber.Equals(txtNumber.Text) select obj;
MsPolicyHolder temp = query.First();
temp.PolicyHolderName = txtName.Text; temp.PolicyHolderNumber = txtNumber.Text;
temp.ClaimAmount = Int32.Parse(txtClaimAmount.Text);
temp.TotalYears = Int32.Parse(txtTotalYears.Text);
temp.BasicPremium = txtPremium.Text; db.SaveChanges();
MessageBox.Show("Data has been updated", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
Program.flag = 0;
Program.masterPH = new MsPemegangPolis();
Program.masterPH.Show();
this.Close();
} } }
private void btnImport_Click(object sender, EventArgs e)
{
if (state == 0)
{
Excel.Application excelApp = new Excel.Application();
excelApp.Visible = true;
Excel.Workbook excelWorkBook = excelApp.Workbooks.Open(ExcelPath);
Excel.Sheets excelSheets = excelWorkBook.Worksheets;
Excel.Worksheet excelWorksheet =
(Excel.Worksheet)excelSheets.get_Item(currentSheet);
excelWorksheet.Cells[3, 3] = txtName.Text; excelWorksheet.Cells[4, 3] = txtNumber.Text; excelWorksheet.Cells[5, 3] = txtPremium.Text; excelWorksheet.Cells[6, 3] = txtTotalYears.Text; excelWorksheet.Cells[7, 3] = txtClaimAmount.Text; int rowField = 10;
foreach (ExponentialTableViewModel item in dataList)
{ excelWorksheet.Cells[rowField, 1] = item.t; excelWorksheet.Cells[rowField, 2] = item.klaim_0; excelWorksheet.Cells[rowField, 3] = item.klaim_1; excelWorksheet.Cells[rowField, 4] = item.klaim_2; excelWorksheet.Cells[rowField, 5] = item.klaim_3; excelWorksheet.Cells[rowField, 6] = item.klaim_4; excelWorksheet.Cells[rowField, 7] = item.klaim_5; rowField++; }
MessageBox.Show("Result has been exported to Excel", "Export File", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("Don't have any table to export", "Warning", MessageBoxButtons.OK,MessageBoxIcon.Warning);
} }
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
private void txtAverage_KeyPress(object sender, KeyPressEventArgs e)
{ if (e.KeyChar == 13) { btnCount.PerformClick(); } } } }