#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