Load Data Dulu Ngab

library(readxl)
## Warning: package 'readxl' was built under R version 4.0.4
data <- read_excel("D:/STIS/3SE3/00. PKL/Hasil Kategorisasi Dengan K Means Clustering.xls")
data
## # A tibble: 214 x 3
##    NoResponden TotalSkorKepuasan Kategori   
##          <dbl>             <dbl> <chr>      
##  1           1               238 Moderat    
##  2           2               208 Tidak Puas 
##  3           3               266 Sangat Puas
##  4           4               237 Moderat    
##  5           5               228 Moderat    
##  6           6               290 Sangat Puas
##  7           7               190 Tidak Puas 
##  8           8               214 Tidak Puas 
##  9           9               231 Moderat    
## 10          10               232 Moderat    
## # ... with 204 more rows

Load semua Library yang diperlukan

library(cluster)
## Warning: package 'cluster' was built under R version 4.0.4
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.0.4
## Loading required package: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
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
DataKategori <- kmeans(data$TotalSkorKepuasan,5,nstart=25)
DataKategori
## K-means clustering with 5 clusters of sizes 59, 86, 6, 41, 22
## 
## Cluster means:
##       [,1]
## 1 249.2542
## 2 228.3837
## 3 143.3333
## 4 203.8049
## 5 276.3182
## 
## Clustering vector:
##   [1] 2 4 5 2 2 5 4 4 2 2 1 2 5 5 2 1 2 5 2 1 1 4 1 3 2 4 2 4 2 2 1 1 2 4 4 1 2
##  [38] 1 1 4 3 1 5 4 5 5 2 1 2 4 3 2 2 2 4 2 2 1 1 2 4 2 2 5 4 2 4 1 5 2 5 2 1 4
##  [75] 4 1 1 2 2 1 5 2 5 1 2 2 2 4 2 2 1 5 2 2 2 2 1 2 2 1 2 1 1 2 2 4 2 2 2 2 1
## [112] 4 2 1 4 2 2 1 4 2 5 2 4 4 2 1 5 2 2 1 2 2 2 3 2 4 4 3 1 2 2 2 1 2 5 1 5 2
## [149] 1 2 2 1 2 4 2 1 2 2 2 4 1 5 5 5 4 1 4 4 1 1 1 4 1 2 2 1 4 1 2 1 2 1 2 1 1
## [186] 2 2 4 2 1 1 2 4 1 1 4 1 2 1 4 3 1 1 5 1 4 2 2 2 4 4 4 1 1
## 
## Within cluster sum of squares by cluster:
## [1] 2853.186 2660.337 2365.333 2976.439 2058.773
##  (between_SS / total_SS =  91.6 %)
## 
## Available components:
## 
## [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
## [6] "betweenss"    "size"         "iter"         "ifault"
library(dplyr)
data1 <- data %>% mutate(KategoriKepuasan = DataKategori$cluster)
data1
## # A tibble: 214 x 4
##    NoResponden TotalSkorKepuasan Kategori    KategoriKepuasan
##          <dbl>             <dbl> <chr>                  <int>
##  1           1               238 Moderat                    2
##  2           2               208 Tidak Puas                 4
##  3           3               266 Sangat Puas                5
##  4           4               237 Moderat                    2
##  5           5               228 Moderat                    2
##  6           6               290 Sangat Puas                5
##  7           7               190 Tidak Puas                 4
##  8           8               214 Tidak Puas                 4
##  9           9               231 Moderat                    2
## 10          10               232 Moderat                    2
## # ... with 204 more rows
x=ifelse(data1$KategoriKepuasan==4,1,ifelse(data1$KategoriKepuasan==2,2,ifelse(data1$KategoriKepuasan==3,3,ifelse(data1$KategoriKepuasan==1,4,5))))
x
##   [1] 2 1 5 2 2 5 1 1 2 2 4 2 5 5 2 4 2 5 2 4 4 1 4 3 2 1 2 1 2 2 4 4 2 1 1 4 2
##  [38] 4 4 1 3 4 5 1 5 5 2 4 2 1 3 2 2 2 1 2 2 4 4 2 1 2 2 5 1 2 1 4 5 2 5 2 4 1
##  [75] 1 4 4 2 2 4 5 2 5 4 2 2 2 1 2 2 4 5 2 2 2 2 4 2 2 4 2 4 4 2 2 1 2 2 2 2 4
## [112] 1 2 4 1 2 2 4 1 2 5 2 1 1 2 4 5 2 2 4 2 2 2 3 2 1 1 3 4 2 2 2 4 2 5 4 5 2
## [149] 4 2 2 4 2 1 2 4 2 2 2 1 4 5 5 5 1 4 1 1 4 4 4 1 4 2 2 4 1 4 2 4 2 4 2 4 4
## [186] 2 2 1 2 4 4 2 1 4 4 1 4 2 4 1 3 4 4 5 4 1 2 2 2 1 1 1 4 4
z=ifelse(data1$KategoriKepuasan==4,"Sangat Tidak Puas",ifelse(data1$KategoriKepuasan==2,"Tidak Puas",ifelse(data1$KategoriKepuasan==3,"Moderat",ifelse(data1$KategoriKepuasan==1,"Puas","Sangat Puas"))))
z
##   [1] "Tidak Puas"        "Sangat Tidak Puas" "Sangat Puas"      
##   [4] "Tidak Puas"        "Tidak Puas"        "Sangat Puas"      
##   [7] "Sangat Tidak Puas" "Sangat Tidak Puas" "Tidak Puas"       
##  [10] "Tidak Puas"        "Puas"              "Tidak Puas"       
##  [13] "Sangat Puas"       "Sangat Puas"       "Tidak Puas"       
##  [16] "Puas"              "Tidak Puas"        "Sangat Puas"      
##  [19] "Tidak Puas"        "Puas"              "Puas"             
##  [22] "Sangat Tidak Puas" "Puas"              "Moderat"          
##  [25] "Tidak Puas"        "Sangat Tidak Puas" "Tidak Puas"       
##  [28] "Sangat Tidak Puas" "Tidak Puas"        "Tidak Puas"       
##  [31] "Puas"              "Puas"              "Tidak Puas"       
##  [34] "Sangat Tidak Puas" "Sangat Tidak Puas" "Puas"             
##  [37] "Tidak Puas"        "Puas"              "Puas"             
##  [40] "Sangat Tidak Puas" "Moderat"           "Puas"             
##  [43] "Sangat Puas"       "Sangat Tidak Puas" "Sangat Puas"      
##  [46] "Sangat Puas"       "Tidak Puas"        "Puas"             
##  [49] "Tidak Puas"        "Sangat Tidak Puas" "Moderat"          
##  [52] "Tidak Puas"        "Tidak Puas"        "Tidak Puas"       
##  [55] "Sangat Tidak Puas" "Tidak Puas"        "Tidak Puas"       
##  [58] "Puas"              "Puas"              "Tidak Puas"       
##  [61] "Sangat Tidak Puas" "Tidak Puas"        "Tidak Puas"       
##  [64] "Sangat Puas"       "Sangat Tidak Puas" "Tidak Puas"       
##  [67] "Sangat Tidak Puas" "Puas"              "Sangat Puas"      
##  [70] "Tidak Puas"        "Sangat Puas"       "Tidak Puas"       
##  [73] "Puas"              "Sangat Tidak Puas" "Sangat Tidak Puas"
##  [76] "Puas"              "Puas"              "Tidak Puas"       
##  [79] "Tidak Puas"        "Puas"              "Sangat Puas"      
##  [82] "Tidak Puas"        "Sangat Puas"       "Puas"             
##  [85] "Tidak Puas"        "Tidak Puas"        "Tidak Puas"       
##  [88] "Sangat Tidak Puas" "Tidak Puas"        "Tidak Puas"       
##  [91] "Puas"              "Sangat Puas"       "Tidak Puas"       
##  [94] "Tidak Puas"        "Tidak Puas"        "Tidak Puas"       
##  [97] "Puas"              "Tidak Puas"        "Tidak Puas"       
## [100] "Puas"              "Tidak Puas"        "Puas"             
## [103] "Puas"              "Tidak Puas"        "Tidak Puas"       
## [106] "Sangat Tidak Puas" "Tidak Puas"        "Tidak Puas"       
## [109] "Tidak Puas"        "Tidak Puas"        "Puas"             
## [112] "Sangat Tidak Puas" "Tidak Puas"        "Puas"             
## [115] "Sangat Tidak Puas" "Tidak Puas"        "Tidak Puas"       
## [118] "Puas"              "Sangat Tidak Puas" "Tidak Puas"       
## [121] "Sangat Puas"       "Tidak Puas"        "Sangat Tidak Puas"
## [124] "Sangat Tidak Puas" "Tidak Puas"        "Puas"             
## [127] "Sangat Puas"       "Tidak Puas"        "Tidak Puas"       
## [130] "Puas"              "Tidak Puas"        "Tidak Puas"       
## [133] "Tidak Puas"        "Moderat"           "Tidak Puas"       
## [136] "Sangat Tidak Puas" "Sangat Tidak Puas" "Moderat"          
## [139] "Puas"              "Tidak Puas"        "Tidak Puas"       
## [142] "Tidak Puas"        "Puas"              "Tidak Puas"       
## [145] "Sangat Puas"       "Puas"              "Sangat Puas"      
## [148] "Tidak Puas"        "Puas"              "Tidak Puas"       
## [151] "Tidak Puas"        "Puas"              "Tidak Puas"       
## [154] "Sangat Tidak Puas" "Tidak Puas"        "Puas"             
## [157] "Tidak Puas"        "Tidak Puas"        "Tidak Puas"       
## [160] "Sangat Tidak Puas" "Puas"              "Sangat Puas"      
## [163] "Sangat Puas"       "Sangat Puas"       "Sangat Tidak Puas"
## [166] "Puas"              "Sangat Tidak Puas" "Sangat Tidak Puas"
## [169] "Puas"              "Puas"              "Puas"             
## [172] "Sangat Tidak Puas" "Puas"              "Tidak Puas"       
## [175] "Tidak Puas"        "Puas"              "Sangat Tidak Puas"
## [178] "Puas"              "Tidak Puas"        "Puas"             
## [181] "Tidak Puas"        "Puas"              "Tidak Puas"       
## [184] "Puas"              "Puas"              "Tidak Puas"       
## [187] "Tidak Puas"        "Sangat Tidak Puas" "Tidak Puas"       
## [190] "Puas"              "Puas"              "Tidak Puas"       
## [193] "Sangat Tidak Puas" "Puas"              "Puas"             
## [196] "Sangat Tidak Puas" "Puas"              "Tidak Puas"       
## [199] "Puas"              "Sangat Tidak Puas" "Moderat"          
## [202] "Puas"              "Puas"              "Sangat Puas"      
## [205] "Puas"              "Sangat Tidak Puas" "Tidak Puas"       
## [208] "Tidak Puas"        "Tidak Puas"        "Sangat Tidak Puas"
## [211] "Sangat Tidak Puas" "Sangat Tidak Puas" "Puas"             
## [214] "Puas"
data2<-data %>% mutate(Kategori=z)
data2
## # A tibble: 214 x 3
##    NoResponden TotalSkorKepuasan Kategori         
##          <dbl>             <dbl> <chr>            
##  1           1               238 Tidak Puas       
##  2           2               208 Sangat Tidak Puas
##  3           3               266 Sangat Puas      
##  4           4               237 Tidak Puas       
##  5           5               228 Tidak Puas       
##  6           6               290 Sangat Puas      
##  7           7               190 Sangat Tidak Puas
##  8           8               214 Sangat Tidak Puas
##  9           9               231 Tidak Puas       
## 10          10               232 Tidak Puas       
## # ... with 204 more rows