#1. Import Data
dataset_pendidikan <- read.csv("C:/Users/ACER/Downloads/dataset_pendidikan.csv")
head(dataset_pendidikan)
## ID_Mahasiswa IPK Semester Total_Kehadiran Total_Jam_Belajar Rata2_Jam_Tidur
## 1 MHS001 3.45 2 58 238 7.5
## 2 MHS002 3.13 5 54 246 7.1
## 3 MHS003 2.75 4 61 91 7.0
## 4 MHS004 3.52 4 67 162 6.6
## 5 MHS005 3.57 4 56 258 7.4
## 6 MHS006 3.52 7 56 222 7.5
#2.Berapa jumlah mahasiswa yang memiliki IPK lebih besar atau sama dengan 3,5?
# Membaca dataset
data <- read.csv("C:/Users/ACER/Downloads/dataset_pendidikan.csv")
# Menghitung jumlah mahasiswa dengan IPK >= 3,5
jumlah_mahasiswa <- sum(data$IPK >= 3.5)
# Menampilkan hasil
jumlah_mahasiswa
## [1] 49
#3. Siapa saja yang menjadi top 3 IPK tertinggi?
data <- read.csv("C:/Users/ACER/Downloads/dataset_pendidikan.csv")
top_3 <- data[order(-data$IPK), c("ID_Mahasiswa", "IPK")][1:3, ]
top_3
## ID_Mahasiswa IPK
## 52 MHS052 4
## 111 MHS111 4
## 123 MHS123 4
#4. Berapa mahasiswa yang masuk kotegori baik?
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
data <- read.csv("C:/Users/ACER/Downloads/dataset_pendidikan.csv")
data <- data %>%
mutate(
Kategori_IPK = case_when(
IPK < 2.50 ~ "Kurang",
IPK >= 2.50 & IPK <= 2.99 ~ "Cukup",
IPK >= 3.00 & IPK <= 3.49 ~ "Baik",
IPK >= 3.50 ~ "Sangat Baik"
)
)
# Menghitung jumlah mahasiswa kategori "Baik"
sum(data$Kategori_IPK == "Baik")
## [1] 71
#5. Semester berapa yang rata-rata IPK-nya tertinggi?
library(dplyr)
data <- read.csv("C:/Users/ACER/Downloads/dataset_pendidikan.csv")
rata_ipk <- data %>%
group_by(Semester) %>%
summarise(
Rata_Rata_IPK = mean(IPK, na.rm = TRUE)
)
rata_ipk
## # A tibble: 8 × 2
## Semester Rata_Rata_IPK
## <int> <dbl>
## 1 1 3.06
## 2 2 3.04
## 3 3 3.17
## 4 4 3.20
## 5 5 3.12
## 6 6 3.19
## 7 7 3.06
## 8 8 3.04
#6. Berapa mahasiswa yang kehadirannya kurang dari 75%?
library(dplyr)
data <- read.csv("C:/Users/ACER/Downloads/dataset_pendidikan.csv")
data <- data %>%
mutate(
Persen_Kehadiran = Total_Kehadiran / 70 * 100
)
# Menghitung mahasiswa dengan kehadiran < 75%
jumlah_kurang_75 <- data %>%
filter(Persen_Kehadiran < 75) %>%
nrow()
jumlah_kurang_75
## [1] 40
#7. Jumlah mhs rajin tapi IPK rendah
library(dplyr)
data <- read.csv("C:/Users/ACER/Downloads/dataset_pendidikan.csv")
median_jam <- median(data$Total_Jam_Belajar, na.rm = TRUE)
rata_ipk <- mean(data$IPK, na.rm = TRUE)
rajin_rendah <- data %>%
filter(
Total_Jam_Belajar > median_jam,
IPK < rata_ipk
)
nrow(rajin_rendah)
## [1] 17