# membuat data frame
data_nilai <- data.frame(
nim = c(101,102,103,104,105,106,107,108),
nama = c("Andi", "Budi", "Citra", "Dewi", "Eka", "Fajar", "Gita", "Hadi"),
matematika = c(85,78,92,65,88,72,95,81),
fisika = c(78,82,79,70,85,68,90,76),
kimia = c(80,75,88,62,82,75,92,79),
bahasa_inggris = c(88,80,85,78,90,82,87,84)
)
data_nilai
## nim nama matematika fisika kimia bahasa_inggris
## 1 101 Andi 85 78 80 88
## 2 102 Budi 78 82 75 80
## 3 103 Citra 92 79 88 85
## 4 104 Dewi 65 70 62 78
## 5 105 Eka 88 85 82 90
## 6 106 Fajar 72 68 75 82
## 7 107 Gita 95 90 92 87
## 8 108 Hadi 81 76 79 84
# menghitung rata-rata nilai setiap mahasiswa
data_nilai$rata_rata <- rowMeans(
data_nilai[, c("matematika", "fisika", "kimia", "bahasa_inggris")]
)
data_nilai
## nim nama matematika fisika kimia bahasa_inggris rata_rata
## 1 101 Andi 85 78 80 88 82.75
## 2 102 Budi 78 82 75 80 78.75
## 3 103 Citra 92 79 88 85 86.00
## 4 104 Dewi 65 70 62 78 68.75
## 5 105 Eka 88 85 82 90 86.25
## 6 106 Fajar 72 68 75 82 74.25
## 7 107 Gita 95 90 92 87 91.00
## 8 108 Hadi 81 76 79 84 80.00
# menambahkan kolom grade
data_nilai$grade <- ifelse(
data_nilai$rata_rata >= 85, "A",
ifelse(
data_nilai$rata_rata >= 70 & data_nilai$rata_rata < 85, "B",
ifelse(
data_nilai$rata_rata >= 60 & data_nilai$rata_rata < 70, "C", "D"
)
)
)
data_nilai
## nim nama matematika fisika kimia bahasa_inggris rata_rata grade
## 1 101 Andi 85 78 80 88 82.75 B
## 2 102 Budi 78 82 75 80 78.75 B
## 3 103 Citra 92 79 88 85 86.00 A
## 4 104 Dewi 65 70 62 78 68.75 C
## 5 105 Eka 88 85 82 90 86.25 A
## 6 106 Fajar 72 68 75 82 74.25 B
## 7 107 Gita 95 90 92 87 91.00 A
## 8 108 Hadi 81 76 79 84 80.00 B
# menampilkan 3 mahasiswa dengan nilai tertinggi
tiga_tertinggi <- head(
data_nilai[order(data_nilai$rata_rata, decreasing = TRUE), ],
3
)
tiga_tertinggi
## nim nama matematika fisika kimia bahasa_inggris rata_rata grade
## 7 107 Gita 95 90 92 87 91.00 A
## 5 105 Eka 88 85 82 90 86.25 A
## 3 103 Citra 92 79 88 85 86.00 A
# hitung rata-rata nilai per mata kuliah
rata_per_matkul <- colMeans(
data_nilai[, c("matematika","fisika","kimia","bahasa_inggris")]
)
rata_per_matkul
## matematika fisika kimia bahasa_inggris
## 82.000 78.500 79.125 84.250
# cari mahasiswa yang nilai dibawah 70 di salah satu mata kuliah
mahasiswaa_nilai_dibawah_70 <- data_nilai[
data_nilai$matematika < 70 |
data_nilai$fisika < 70 |
data_nilai$kimia < 70 |
data_nilai$bahasa_inggris < 70,
]
mahasiswaa_nilai_dibawah_70
## nim nama matematika fisika kimia bahasa_inggris rata_rata grade
## 4 104 Dewi 65 70 62 78 68.75 C
## 6 106 Fajar 72 68 75 82 74.25 B
# skript R berdasarkan flowchart
# membuat data nasabah sesuai dengan tabel soal
data_nasabah <- data.frame(
ID = c(101, 102, 103, 104),
Nama = c("Ahmad","Bunga","Candra","Dewi"),
PB = c(6500000,4000000,2800000,8000000),
SK = c(750,680,620,690),
Total_Utang = c(162500,1800000,1000000,2400000)
)
# menghitung rasio utang terhadap pendapatan (RUR)
data_nasabah$RUR <- data_nasabah$Total_Utang /
data_nasabah$PB
# menentukan keputusan peminjaman berdasarkan flowchart
data_nasabah$Keputusan <- ifelse(
# cek syarat DISETUJUI
data_nasabah$PB > 5000000 &
data_nasabah$SK > 700 &
data_nasabah$RUR < 0.35,
"DISETUJUI",
ifelse(
# jika tidak disetujui, cek syarat DITOLAK
data_nasabah$PB < 3000000 |
data_nasabah$SK > 600 |
data_nasabah$RUR > 0.5,
"DITOLAK",
# jika tidak memenuhi keduanya
"DIREVIEW"
)
)
# menampilkan hasil akhir
data_nasabah
## ID Nama PB SK Total_Utang RUR Keputusan
## 1 101 Ahmad 6500000 750 162500 0.0250000 DISETUJUI
## 2 102 Bunga 4000000 680 1800000 0.4500000 DITOLAK
## 3 103 Candra 2800000 620 1000000 0.3571429 DITOLAK
## 4 104 Dewi 8000000 690 2400000 0.3000000 DITOLAK