data <- read.csv("C:/Users/Lenovo/Downloads/SEMESTER 2/Komputasi Statistik/StudentsPerformance.csv")
mathscore <- data$math.score
readingscore <- data$reading.score
writingscore <- data$writing.score
gender <- data$gender
race <- data$race.ethnicity
parental <- data$parental.level.of.education
lunch <- data$lunch
test <- data$test.preparation.course
rata2 <- rowMeans(cbind(mathscore, readingscore, writingscore))
passed <- ifelse(rata2 >= 50, 1, 0)
plot(readingscore, mathscore,
     main = "Reading Score vs Math Score",
     xlab = "Reading Score",
     ylab = "Math Score",
     pch = 19,
     col = "lightblue",
     cex = 0.8)

plot(writingscore, mathscore,
     main = "Writing Score vs Math Score",
     xlab = "Writing Score",
     ylab = "Math Score",
     pch = 19,
     col = "lightpink",
     cex = 0.8)

plot(readingscore, writingscore,
     main = "Reading Score vs Writing Score",
     xlab = "Reading Score",
     ylab = "Writing Score",
     pch = 19,
     col = "lightgreen",
     cex = 0.8)

hist(mathscore,
     main = "Distribution of Math Score",
     xlab = "Math Score",
     col = "skyblue",
     border = "darkblue",
     breaks = 10)

hist(readingscore,
     main = "Distribution of Reading Score",
     xlab = "Reading Score",
     col = "lightpink",
     border = "red",
     breaks = 10)

hist(writingscore,
     main = "Distribution of Writing Score",
     xlab = "Writing Score",
     col = "lightgreen",
     border = "darkgreen",
     breaks = 10)

hist(rata2,
     main = "Distribution of Average",
     xlab = "Average",
     col = "yellow",
     border = "orange",
     breaks = 10)

barplot(table(lunch),
        main = "Number of Lunch Type",
        xlab = "Lunch",
        ylab = "Frequency",
        col = "darkgrey",
        border = "black")

barplot(table(race),
        main = "Number of Etnichs",
        xlab = "Etnichs",
        ylab = "Frequency",
        col = "brown",
        border = "red")

barplot(table(parental),
        main = "Number of Parental Level of Education",
        xlab = "Level of Education",
        ylab = "Frequency",
        col = "pink",
        border = "purple")

pparental <- trimws(tolower(parental))
boxplot(mathscore,
        data = data,
        main = "Math Score",
        ylab = "Freq",
        col = "lightblue")

boxplot(mathscore, readingscore, writingscore,
        names = c("Math Score", "Reading Score", "Writing Score"),
        data = data,
        main = "Perbandingan Math, Reading, dan Writing",
        xlab = "Score",
        ylab = "Freq",
        col = "pink")

pie(table(gender),
    main = "Proportion of Gender",
    col = c("lightblue", "lightpink"),
    labels = c("Male", "Female"))

pie(table(test),
    main = "Proportion of Preparation Test",
    col = c("blue", "red"),
    labels = c("completed", "none"))

pie(table(lunch),
    main = "Proportion of Lunch",
    col = c("lightgreen", "yellow"),
    labels = c("standard", "free/reduced"))

pie(table(race),
    main = "Proportion of Etnichs",
    col = c("brown", "orange", "purple", "grey"),
    labels = c("group A", "group B", "group C", "group D"))

library(ggplot2)
ggplot(data,
       aes(x=gender,
           y=mathscore)) + geom_violin()

ggplot(data,
       aes(x=gender,
           fill=lunch)) + geom_bar()

mosaicplot(table(gender, lunch),
           main = "Mosaic Plot of Gender and Lunch",
           col = "pink")

plot(sort(mathscore),
     type = "l")