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")
