library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.3
library(reshape2)
## Warning: package 'reshape2' was built under R version 4.5.3
data <- read.csv("D:/SEMESTER 2/Komputasi Statistik D/StudentsPerformance (1).csv")
colnames(data)
## [1] "gender"                      "race.ethnicity"             
## [3] "parental.level.of.education" "lunch"                      
## [5] "test.preparation.course"     "math.score"                 
## [7] "reading.score"               "writing.score"
names(data) <- make.names(names(data))


# Tambahkan average & passed
data$average_score <- (data$math.score + data$reading.score + data$writing.score)/3
data$passed <- ifelse(data$average_score >= 50, "Lulus", "Tidak Lulus")

ggplot(data, aes(x = math.score)) +
  geom_histogram(bins = 10, 
                 fill = "skyblue", 
                 color = "black") +
  labs(title = "Distribusi Nilai Matematika", x = "Math Score", y = "Frekuensi")

ggplot(data, aes(x = gender, y = math.score, fill = gender)) +
  geom_boxplot() +
  labs(title = "Math Score berdasarkan Gender", 
       x = "Gender", 
       y = "Math Score")

ggplot(data, aes(x = math.score, y = reading.score)) +
  geom_point(color = "blue") +
  labs(title = "Hubungan Math dan Reading", 
       x = "Math Score", 
       y = "Reading Score")

ggplot(data, aes(x = math.score, y = reading.score, color = passed)) +
  geom_point(size = 2) +
  labs(title = "Math vs Reading berdasarkan Status Lulus",
       x = "Math Score", 
       y = "Reading Score")

ggplot(data, aes(x = gender, fill = passed)) +
  geom_bar(position = "dodge") +
  labs(title = "Kelulusan berdasarkan Gender",
       x = "Gender", 
       y = "Jumlah")

numeric_data <- data[, c("math.score", "reading.score", "writing.score")]

cor_matrix <- cor(numeric_data)

library(reshape2)
melted <- melt(cor_matrix)

ggplot(melted, aes(x=Var1, y=Var2, fill=value)) +
  geom_tile() +
  geom_text(aes(label=round(value,2))) +
  labs(title="Heatmap Korelasi")