Skip to content

Instantly share code, notes, and snippets.

@wisnunugroho21
Last active September 26, 2018 08:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wisnunugroho21/0e22b5e971f5ee71b76619c567e69013 to your computer and use it in GitHub Desktop.
Save wisnunugroho21/0e22b5e971f5ee71b76619c567e69013 to your computer and use it in GitHub Desktop.
find_grade <- function(score) {
if (score >= 90 && score <= 100) {
return("A")
} else if (score >= 85 && score <= 89) {
return("A-")
} else if (score >= 80 && score <= 84) {
return("B+")
} else if (score >= 75 && score <= 79) {
return("B")
} else if (score >= 70 && score <= 74) {
return("B-")
} else if (score >= 65 && score <= 69) {
return("C")
} else if (score >= 50 && score <= 64) {
return("D")
} else {
return("E")
}
}
find_grade_matrix <- function(matrix_score) {
grade_vector <- sapply(matrix_score[, 1], find_grade)
matrix_grade <- data.frame(grade = grade_vector, jumlahSKS = matrix_score[, 2])
return(matrix_grade)
}
find_gradeScore <- function(grade) {
if (grade == "A") {
return(4)
} else if (grade == "A-") {
return(3.67)
} else if (grade == "B+") {
return(3.33)
} else if (grade == "B") {
return(3)
} else if (grade == "B-") {
return(2.5)
} else if (grade == "C") {
return(2)
} else if (grade == "D") {
return(1)
} else {
return(0)
}
}
find_gradeScore_matrix <- function(matrix_grade) {
gradeScore_vector <- sapply(matrix_grade[, 1], find_gradeScore)
matrix_gradeScore <- data.frame(gradeScore = gradeScore_vector, jumlahSKS = matrix_grade[, 2])
return(matrix_gradeScore)
}
find_total_nilai_semester <- function(matrix_semester) {
return(sum(matrix_semester[ , 1] * matrix_semester[ , 2]))
}
find_total_sks <- function(matrix_semester) {
return(sum(matrix_semester[ , 2]))
}
find_ipk <- function(list_matrix_semester) {
return(sum(sapply(list_matrix_semester, find_total_nilai_semester)) / sum(sapply(list_matrix_semester, find_total_sks)))
}
find_ips <- function(list_matrix_semester) {
return(sapply(list_matrix_semester, find_total_nilai_semester) / sapply(list_matrix_semester, find_total_sks))
}
#install package tidyverse jika belum terinstall dengan cara uncomment kode dibawah ini
#install.package("tidyverse")
library(tidyverse)
semester_1 <- c(82, 86, 85, 95, 88, 86)
semester_2 <- c(75, 97, 80, 66, 65)
semester_3 <- c(71, 81, 80, 65, 85, 50, 88, 81)
semester_4 <- c(89, 64, 75, 96, 67, 77)
semester_5 <- c(94, 88, 84, 75, 67, 56, 76)
semester_6 <- c(86, 95, 89, 89, 88)
semester_7 <- c(86, 93, 90)
semester_8 <- c(75)
sks_semester_1 <- c(2, 4, 2, 4, 4, 4)
sks_semester_2 <- c(2, 6, 2, 4, 6)
sks_semester_3 <- c(2, 2, 3, 5, 2, 4, 2, 2)
sks_semester_4 <- c(2, 5, 6, 2, 4, 2)
sks_semester_5 <- c(5, 4, 3, 2, 3, 4, 2)
sks_semester_6 <- c(4, 8, 1, 1, 3)
sks_semester_7 <- c(6, 6, 5)
sks_semester_8 <- c(6)
semester_vector <- c(1, 2, 3, 4, 5, 6, 7, 8)
matrix_semester_1 <- matrix(c(semester_1, sks_semester_1), ncol = 2)
matrix_semester_2 <- matrix(c(semester_2, sks_semester_2), ncol = 2)
matrix_semester_3 <- matrix(c(semester_3, sks_semester_3), ncol = 2)
matrix_semester_4 <- matrix(c(semester_4, sks_semester_4), ncol = 2)
matrix_semester_5 <- matrix(c(semester_5, sks_semester_5), ncol = 2)
matrix_semester_6 <- matrix(c(semester_6, sks_semester_6), ncol = 2)
matrix_semester_7 <- matrix(c(semester_7, sks_semester_7), ncol = 2)
matrix_semester_8 <- matrix(c(semester_8, sks_semester_8), ncol = 2)
daftar_score_sks_semester <- list(matrix_semester_1, matrix_semester_2, matrix_semester_3, matrix_semester_4, matrix_semester_5,
matrix_semester_6, matrix_semester_7, matrix_semester_8)
daftar_grade_semester <- lapply(daftar_score_sks_semester, find_grade_matrix)
daftar_gradeScore_semester <- lapply(daftar_grade_semester, find_gradeScore_matrix)
ips_vector <- find_ips(daftar_gradeScore_semester)
ips_df <- data.frame(ips = ips_vector, semester = semester_vector)
ggplot(ips_df, aes(x = semester, y = ips)) + geom_line()
ipk <- find_ipk(daftar_gradeScore_semester)
cat("IPK saya adalah", ipk)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment