input parameter
x <- 30
B <- 10^-5
C <- 1.09
i <- 0.05
v <- 1 / (1 + i)
omega <- 100
fungsi survival
s_x <- function(age) {
if (age > omega) return(0)
exp(- (B / log(C)) * (C^age - 1))
}
fungsi peluang bertahan hidup t tahun untuk usia x:tPx
t_p_x <- function(t, age) {
s_x(age + t) / s_x(age)
}
t_max <- omega - x
# Awal (Due)
a_due_a <- 0
for (t in 0:t_max) {
a_due_a <- a_due_a + (v^t) * t_p_x(t, x)
}
# Akhir (Immediate)
a_imm_a <- 0
for (t in 1:t_max) {
a_imm_a <- a_imm_a + (v^t) * t_p_x(t, x)
}
{
cat("a. Anuitas Jiwa Seumur Hidup:\n")
cat(" - Awal (Due) :", round(a_due_a, 4), "\n")
cat(" - Akhir (Immediate):", round(a_imm_a, 4), "\n\n")
}
## a. Anuitas Jiwa Seumur Hidup:
## - Awal (Due) : 19.8904
## - Akhir (Immediate): 18.8904
# Awal (Due)
a_due_b <- 0
for (t in 0:19) {
a_due_b <- a_due_b + (v^t) * t_p_x(t, x)
}
# Akhir (Immediate)
a_imm_b <- 0
for (t in 1:20) {
a_imm_b <- a_imm_b + (v^t) * t_p_x(t, x)
}
{
cat("b. Anuitas Jiwa Berjangka 20 Tahun:\n")
cat(" - Awal (Due) :", round(a_due_b, 4), "\n")
cat(" - Akhir (Immediate):", round(a_imm_b, 4), "\n\n")
}
## b. Anuitas Jiwa Berjangka 20 Tahun:
## - Awal (Due) : 13.0606
## - Akhir (Immediate): 12.4348
# Awal (Due)
a_due_c <- 0
for (t in 5:24) {
a_due_c <- a_due_c + (v^t) * t_p_x(t, x)
}
# Akhir (Immediate)
a_imm_c <- 0
for (t in 6:25) {
a_imm_c <- a_imm_c + (v^t) * t_p_x(t, x)
}
{
cat("c. Anuitas Jiwa Berjangka 20 Tahun Tertunda 5 Tahun:\n")
cat(" - Awal (Due) :", round(a_due_c, 4), "\n")
cat(" - Akhir (Immediate):", round(a_imm_c, 4), "\n\n")
}
## c. Anuitas Jiwa Berjangka 20 Tahun Tertunda 5 Tahun:
## - Awal (Due) : 10.2144
## - Akhir (Immediate): 9.7234
# Awal (Due)
a_pasti_due <- 0
for(t in 0:9) {
a_pasti_due <- a_pasti_due + v^t
}
a_tertunda_due <- 0
for(t in 10:t_max) {
a_tertunda_due <- a_tertunda_due + (v^t) * t_p_x(t, x)
}
a_due_d <- a_pasti_due + a_tertunda_due
# Akhir (Immediate)
a_pasti_imm <- 0
for(t in 1:10) {
a_pasti_imm <- a_pasti_imm + v^t
}
a_tertunda_imm <- 0
for(t in 11:t_max) {
a_tertunda_imm <- a_tertunda_imm + (v^t) * t_p_x(t, x)
}
{
a_imm_d <- a_pasti_imm + a_tertunda_imm
cat("d. Anuitas Jiwa Garansi 10 Tahun:\n")
cat(" - Awal (Due) :", round(a_due_d, 4), "\n")
cat(" - Akhir (Immediate):", round(a_imm_d, 4), "\n")
}
## d. Anuitas Jiwa Garansi 10 Tahun:
## - Awal (Due) : 19.8963
## - Akhir (Immediate): 18.8976