# Membuat Variabel Identitas Mahasiswa (20 orang)
nama <- c("Andi", "Budi", "Citra", "Dewi", "Eko", 
          "Fajar", "Gita", "Hadi", "Indah", "Joko", 
          "Kiki", "Lala", "Maya", "Nina", "Oki", 
          "Putri", "Qori", "Roni", "Siska", "Toni")

# Variabel jk
jk <- c("Laki-laki", "Laki-laki", "Perempuan", "Perempuan", "Laki-laki",
        "Laki-laki", "Perempuan", "Laki-laki", "Perempuan", "Laki-laki", 
        "Perempuan", "Perempuan", "Perempuan", "Perempuan", "Laki-laki",
        "Perempuan", "Laki-laki", "Laki-laki", "Perempuan", "Laki-laki")

# Variabel Kelas menggunakan rep secara berulang untuk a, b, dan c dengan syarat
kelas <- rep(c("a", "b", "c"), each = 7, length.out = 20)

# Variabel Keikutsertaan (15 ikut, 5 tidak ikut: 3 perempuan dan 2 laki-laki)
keikutsertaan <- c("ikut", "tidak", "ikut", "tidak", "ikut",
                   "ikut", "ikut", "tidak", "ikut", "ikut",
                   "ikut", "tidak", "ikut", "ikut", "tidak",
                   "ikut", "ikut", "ikut", "ikut", "ikut")

# Variabel Transportasi: Jika laki-laki "motoran", jika perempuan "gocar"
transportasi <- ifelse(jk == "Laki-laki", "motoran", "gocar")

# Variabel Riwayat Penyakit menggunakan sample (asma, alergi, maag. dan tidak punya (-), dengan probability)
prob <- c(0.1, 0.1, 0.2 , 0.60)
riwayat_penyakit <- sample(c("asma", "alergi", "maag", "-"), 20, replace = TRUE, prob = prob)

# Membuat DataFrame Identitas Awal
df_identitas <- data.frame(
  Nama = nama,
  JK = jk,
  Kelas = kelas,
  Keikutsertaan = keikutsertaan,
  Transportasi = transportasi,
  Penyakit = riwayat_penyakit,
  stringsAsFactors = FALSE
)

# Menampilkan Tabel Identitas Mahasiswa
print(df_identitas)
##     Nama        JK Kelas Keikutsertaan Transportasi Penyakit
## 1   Andi Laki-laki     a          ikut      motoran        -
## 2   Budi Laki-laki     a         tidak      motoran        -
## 3  Citra Perempuan     a          ikut        gocar     asma
## 4   Dewi Perempuan     a         tidak        gocar        -
## 5    Eko Laki-laki     a          ikut      motoran        -
## 6  Fajar Laki-laki     a          ikut      motoran     maag
## 7   Gita Perempuan     a          ikut        gocar   alergi
## 8   Hadi Laki-laki     b         tidak      motoran        -
## 9  Indah Perempuan     b          ikut        gocar     maag
## 10  Joko Laki-laki     b          ikut      motoran        -
## 11  Kiki Perempuan     b          ikut        gocar        -
## 12  Lala Perempuan     b         tidak        gocar        -
## 13  Maya Perempuan     b          ikut        gocar     maag
## 14  Nina Perempuan     b          ikut        gocar     maag
## 15   Oki Laki-laki     c         tidak      motoran        -
## 16 Putri Perempuan     c          ikut        gocar     maag
## 17  Qori Laki-laki     c          ikut      motoran     asma
## 18  Roni Laki-laki     c          ikut      motoran        -
## 19 Siska Perempuan     c          ikut        gocar   alergi
## 20  Toni Laki-laki     c          ikut      motoran        -
# Menonaktifkan scientific notation
options(scipen = 999)

# Vektor Variabel Harga
harga_villa <- 1500000
harga_transportasi <- 525000
harga_bakar <- 300000
harga_konsumsi <- 975000

# Perhitungan Iuran per Anak
# Laki-laki: 0.1 * villa + 0.67 * bakar + 0.08 * konsumsi
iuran_laki <- 0.1 * harga_villa + 0.67 * harga_bakar + 0.08 * harga_konsumsi

# Perempuan: 0.1 * villa + 0.67 * bakar + 0.08 * konsumsi + 0.125 * transportasi
iuran_perempuan <- 0.1 * harga_villa + 0.67 * harga_bakar + 0.08 * harga_konsumsi + 0.125 * harga_transportasi

# Menyusun vektor iuran sesuai dengan kolom JK di dataframe
iuran_per_anak <- ifelse(df_identitas$JK == "Laki-laki", iuran_laki, iuran_perempuan)
# Kalkulasi data biaya
df_biaya <- data.frame(
  Harga_Villa = rep(harga_villa, 20),
  Harga_Transportasi = rep(harga_transportasi, 20),
  Harga_Bakar_Bakar = rep(harga_bakar, 20),
  Harga_Konsumsi = rep(harga_konsumsi, 20),
  Iuran_Per_Anak = iuran_per_anak
)

# Menggabungkan tabel menggunakan cbind
tabel_baru <- cbind(df_identitas, df_biaya)

print(head(tabel_baru), caption = "Pratinjau Tabel Setelah Penggabungan (cbind)")
##    Nama        JK Kelas Keikutsertaan Transportasi Penyakit Harga_Villa
## 1  Andi Laki-laki     a          ikut      motoran        -     1500000
## 2  Budi Laki-laki     a         tidak      motoran        -     1500000
## 3 Citra Perempuan     a          ikut        gocar     asma     1500000
## 4  Dewi Perempuan     a         tidak        gocar        -     1500000
## 5   Eko Laki-laki     a          ikut      motoran        -     1500000
## 6 Fajar Laki-laki     a          ikut      motoran     maag     1500000
##   Harga_Transportasi Harga_Bakar_Bakar Harga_Konsumsi Iuran_Per_Anak
## 1             525000            300000         975000         429000
## 2             525000            300000         975000         429000
## 3             525000            300000         975000         494625
## 4             525000            300000         975000         494625
## 5             525000            300000         975000         429000
## 6             525000            300000         975000         429000
# tabel baru pembayaran
metode_pembayaran <- character(nrow(tabel_baru))


set.seed(999) 
metode_pembayaran <- sample(c("cash", "qris"), 20, replace = TRUE)


# Menambahkan kolom ke dalam dataset
tabel_baru$metode_pembayaran <- metode_pembayaran
# tabel baru penyakit
tingkat_penyakit <- character(nrow(tabel_baru))

for (i in 1:nrow(tabel_baru)) {
  peny <- tabel_baru$Penyakit[i]
  if (peny == "alergi") {
    tingkat_penyakit[i] <- "ringan"
  } else if (peny == "maag") {
    tingkat_penyakit[i] <- "sedang"
  } else if (peny == "asma") {
    tingkat_penyakit[i] <- "berat"
  } else {
    tingkat_penyakit[i] <- "tidak diketahui"
  }
}

# Menambahkan kolom ke dalam dataset
tabel_baru$tingkat_penyakit <- tingkat_penyakit
print(tabel_baru)
##     Nama        JK Kelas Keikutsertaan Transportasi Penyakit Harga_Villa
## 1   Andi Laki-laki     a          ikut      motoran        -     1500000
## 2   Budi Laki-laki     a         tidak      motoran        -     1500000
## 3  Citra Perempuan     a          ikut        gocar     asma     1500000
## 4   Dewi Perempuan     a         tidak        gocar        -     1500000
## 5    Eko Laki-laki     a          ikut      motoran        -     1500000
## 6  Fajar Laki-laki     a          ikut      motoran     maag     1500000
## 7   Gita Perempuan     a          ikut        gocar   alergi     1500000
## 8   Hadi Laki-laki     b         tidak      motoran        -     1500000
## 9  Indah Perempuan     b          ikut        gocar     maag     1500000
## 10  Joko Laki-laki     b          ikut      motoran        -     1500000
## 11  Kiki Perempuan     b          ikut        gocar        -     1500000
## 12  Lala Perempuan     b         tidak        gocar        -     1500000
## 13  Maya Perempuan     b          ikut        gocar     maag     1500000
## 14  Nina Perempuan     b          ikut        gocar     maag     1500000
## 15   Oki Laki-laki     c         tidak      motoran        -     1500000
## 16 Putri Perempuan     c          ikut        gocar     maag     1500000
## 17  Qori Laki-laki     c          ikut      motoran     asma     1500000
## 18  Roni Laki-laki     c          ikut      motoran        -     1500000
## 19 Siska Perempuan     c          ikut        gocar   alergi     1500000
## 20  Toni Laki-laki     c          ikut      motoran        -     1500000
##    Harga_Transportasi Harga_Bakar_Bakar Harga_Konsumsi Iuran_Per_Anak
## 1              525000            300000         975000         429000
## 2              525000            300000         975000         429000
## 3              525000            300000         975000         494625
## 4              525000            300000         975000         494625
## 5              525000            300000         975000         429000
## 6              525000            300000         975000         429000
## 7              525000            300000         975000         494625
## 8              525000            300000         975000         429000
## 9              525000            300000         975000         494625
## 10             525000            300000         975000         429000
## 11             525000            300000         975000         494625
## 12             525000            300000         975000         494625
## 13             525000            300000         975000         494625
## 14             525000            300000         975000         494625
## 15             525000            300000         975000         429000
## 16             525000            300000         975000         494625
## 17             525000            300000         975000         429000
## 18             525000            300000         975000         429000
## 19             525000            300000         975000         494625
## 20             525000            300000         975000         429000
##    metode_pembayaran tingkat_penyakit
## 1               cash  tidak diketahui
## 2               qris  tidak diketahui
## 3               cash            berat
## 4               cash  tidak diketahui
## 5               cash  tidak diketahui
## 6               qris           sedang
## 7               cash           ringan
## 8               qris  tidak diketahui
## 9               qris           sedang
## 10              qris  tidak diketahui
## 11              cash  tidak diketahui
## 12              cash  tidak diketahui
## 13              qris           sedang
## 14              cash           sedang
## 15              cash  tidak diketahui
## 16              cash           sedang
## 17              qris            berat
## 18              qris  tidak diketahui
## 19              cash           ringan
## 20              cash  tidak diketahui