import data

dataset_pendidikan <- read.csv("C:/Users/User/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

#1.Jumlah mahasiswa yang memiliki IPK lebih besar atau sama dengan 3,5

sum(dataset_pendidikan$IPK>=3.5)
## [1] 49

#2.Top ipk tertinggi

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
top3 <- dataset_pendidikan %>%
  arrange(desc(IPK)) %>%
  slice(1:3)

top3
##   ID_Mahasiswa IPK Semester Total_Kehadiran Total_Jam_Belajar Rata2_Jam_Tidur
## 1       MHS052   4        4              70               377             6.8
## 2       MHS111   4        6              61               258             7.2
## 3       MHS123   4        4              66               341             6.2

#3.Mahasiswa yang masuk kategori “Baik”

library(dplyr)

dataset_pendidikan <- dataset_pendidikan %>%
  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 kategori "Baik"
jumlah_baik <- sum(dataset_pendidikan$Kategori_IPK == "Baik")

jumlah_baik
## [1] 71

#4.Rata-rata ipk per semester

library(dplyr)

rata_ipk_semester <- dataset_pendidikan %>%
  group_by(Semester) %>%
  summarise(Rata_IPK = mean(IPK, na.rm = TRUE))

rata_ipk_semester
## # A tibble: 8 × 2
##   Semester 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

#5.Mahasiswa yang kehadirannya kurang dari 75%

library(dplyr)

dataset_pendidikan <- dataset_pendidikan %>%
  mutate(
    Persen_Kehadiran = Total_Kehadiran / 70 * 100
  )

jumlah_kurang_75 <- sum(dataset_pendidikan$Persen_Kehadiran < 75)

jumlah_kurang_75
## [1] 40

#6.Mahasiswa “rajin tapi IPK rendah”

sum(
  dataset_pendidikan$Total_Jam_Belajar > median(dataset_pendidikan$Total_Jam_Belajar) &
  dataset_pendidikan$IPK < mean(dataset_pendidikan$IPK)
)
## [1] 17