==============================================

1. PEMBANGKITAN DATA

==============================================

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.6
## ✔ forcats   1.0.1     ✔ stringr   1.6.0
## ✔ ggplot2   4.0.1     ✔ tibble    3.3.1
## ✔ lubridate 1.9.5     ✔ tidyr     1.3.2
## ✔ purrr     1.2.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggplot2)

set.seed(123)

data_mahasiswa <- data.frame(
  nama = paste0("Mahasiswa_", 1:50),
  usia = sample(18:30, 50, replace = TRUE),
  gender = sample(c("Laki-laki", "Perempuan"), 50, replace = TRUE),
  merokok = sample(c("Ya", "Tidak"), 50, replace = TRUE, prob = c(0.3, 0.7)),
  harapan_hidup = rnorm(50, mean = 75, sd = 5)
)

head(data_mahasiswa)
summary(data_mahasiswa)
##      nama                usia          gender            merokok         
##  Length:50          Min.   :18.00   Length:50          Length:50         
##  Class :character   1st Qu.:22.00   Class :character   Class :character  
##  Mode  :character   Median :26.00   Mode  :character   Mode  :character  
##                     Mean   :24.74                                        
##                     3rd Qu.:27.00                                        
##                     Max.   :30.00                                        
##  harapan_hidup  
##  Min.   :66.66  
##  1st Qu.:71.90  
##  Median :74.68  
##  Mean   :74.92  
##  3rd Qu.:77.11  
##  Max.   :85.94

==============================================

2. COMPLETE & CURTATE LIFE EXPECTANCY (PER MAHASISWA)

==============================================

# Hitung untuk SETIAP mahasiswa
data_mahasiswa <- data_mahasiswa %>%
  mutate(
    complete_le = harapan_hidup - usia,
    curtate_le  = floor(complete_le),
    sisa_hidup  = complete_le
  )

head(data_mahasiswa)

==============================================

3. RATA-RATA HARAPAN HIDUP BERDASARKAN GENDER

==============================================

rata_gender <- data_mahasiswa %>%
  group_by(gender) %>%
  summarise(
    jumlah = n(),
    rata_rata_harapan_hidup = mean(harapan_hidup),
    sd = sd(harapan_hidup)
  )

rata_gender

==============================================

4. UJI HIPOTESIS PERBEDAAN GENDER

==============================================

t_test_gender <- t.test(harapan_hidup ~ gender, data = data_mahasiswa)
t_test_gender
## 
##  Welch Two Sample t-test
## 
## data:  harapan_hidup by gender
## t = 0.20116, df = 47.869, p-value = 0.8414
## alternative hypothesis: true difference in means between group Laki-laki and group Perempuan is not equal to 0
## 95 percent confidence interval:
##  -2.146226  2.623393
## sample estimates:
## mean in group Laki-laki mean in group Perempuan 
##                75.03551                74.79693

==============================================

5. HISTOGRAM COMPLETE LIFE EXPECTANCY

==============================================

hist(data_mahasiswa$complete_le,
     main = "Histogram Complete Life Expectancy",
     xlab = "Complete Life Expectancy",
     col = "blue",
     border = "black")


==============================================

6. BOXPLOT BERDASARKAN STATUS MEROKOK

==============================================

boxplot(harapan_hidup ~ merokok,
        data = data_mahasiswa,
        main = "Boxplot Harapan Hidup berdasarkan Status Merokok",
        xlab = "Status Merokok",
        ylab = "Harapan Hidup",
        col = c("orange", "green"))


==============================================

7. SCATTER PLOT USIA vs SISA HARAPAN HIDUP

==============================================

plot(data_mahasiswa$usia,
     data_mahasiswa$sisa_hidup,
     main = "Scatter Plot usia vs harapan_hidup",
     xlab = "usia",
     ylab = "Sisa harapan_hidup",
     col = "lightgreen",
     pch = 16)

abline(lm(sisa_hidup ~ usia, data = data_mahasiswa),
       col = "red", lwd = 2)


==============================================

8. RINGKASAN AKHIR

==============================================

cat("====================================================\n")
## ====================================================
cat("RINGKASAN ANALISIS\n")
## RINGKASAN ANALISIS
cat("====================================================\n")
## ====================================================
cat("Jumlah Observasi:", nrow(data_mahasiswa), "\n")
## Jumlah Observasi: 50
cat("Rata-rata Harapan Hidup:", 
    round(mean(data_mahasiswa$harapan_hidup),2), "\n")
## Rata-rata Harapan Hidup: 74.92
cat("Rata-rata Complete LE:", 
    round(mean(data_mahasiswa$complete_le),2), "\n")
## Rata-rata Complete LE: 50.18
cat("Rata-rata Curtate LE:", 
    round(mean(data_mahasiswa$curtate_le),2), "\n")
## Rata-rata Curtate LE: 49.64
cat("====================================================\n")
## ====================================================