IMPORT DATA

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.4.3
## Warning: package 'ggplot2' was built under R version 4.4.3
## Warning: package 'tidyr' was built under R version 4.4.3
## Warning: package 'readr' was built under R version 4.4.3
## Warning: package 'purrr' was built under R version 4.4.3
## Warning: package 'dplyr' was built under R version 4.4.3
## Warning: package 'forcats' was built under R version 4.4.3
## Warning: package 'lubridate' was built under R version 4.4.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(cluster)
## Warning: package 'cluster' was built under R version 4.4.3
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.4.3
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
data <- read.csv("keadaan sd jatim 2023.csv", header = TRUE, sep = ";")
data
##      Kabupaten.Kota Sekolah  Siswa Mengulang Putus.Sekolah
## 1       Kab. Gresik     389  57111        37            90
## 2     Kab. Sidoarjo     464 108427        28           118
## 3    Kab. Mojokerto     385  54712         8            18
## 4      Kab. Jombang     475  61570        39            32
## 5   Kab. Bojonegoro     692  63700        24            26
## 6        Kab. Tuban     541  60257        18            23
## 7     Kab. Lamongan     597  44054        17            21
## 8       Kab. Madiun     401  34939        18            16
## 9        Kab. Ngawi     475  40483        10            42
## 10     Kab. Magetan     385  29401        15            11
## 11    Kab. Ponorogo     552  42603        15            18
## 12     Kab. Pacitan     408  30522        12            56
## 13      Kab. Kediri     611  79131        75            38
## 14     Kab. Nganjuk     573  63148        22            30
## 15      Kab. Blitar     634  56636        38            27
## 16 Kab. Tulungagung     569  54152        49            36
## 17  Kab. Trenggalek     417  36815        11            21
## 18      Kab. Malang    1061 150119       225           161
## 19    Kab. Pasuruan     657 105904       241           112
## 20 Kab. Probolinggo     574  63710       300            76
## 21    Kab. Lumajang     525  59638        50            67
## 22   Kab. Bondowoso     441  46650        69            91
## 23   Kab. Situbondo     397  39599       167            51
## 24      Kab. Jember     905 140604       183           282
## 25  Kab. Banyuwangi     747  92861        46            63
## 26   Kab. Pamekasan     411  49503       184           111
## 27     Kab. Sampang     513  63115       917           271
## 28     Kab. Sumenep     567  47479       192           350
## 29   Kab. Bangkalan     617  90683       931           208
## 30    Kota Surabaya     284 129711       113            74
## 31      Kota Malang     195  47557        60            13
## 32      Kota Madiun      52  10762         2             3
## 33      Kota Kediri     111  18008         8             0
## 34   Kota Mojokerto      44   8101         1             0
## 35      Kota Blitar      48   8749        13             0
## 36    Kota Pasuruan      46  12706         7             2
## 37 Kota Probolinggo      75  15958        23            13
## 38        Kota Batu      64  11442         4             8
## 39      Kab. Gresik      72  16163         3            16
## 40    Kab. Sidoarjo     121  34715         4            19
## 41   Kab. Mojokerto      34   5192         0             1
## 42     Kab. Jombang      47   7805        14            10
## 43  Kab. Bojonegoro      19   3982         2             1
## 44       Kab. Tuban      26   5711         2             1
## 45    Kab. Lamongan      41   5683         1             1
## 46      Kab. Madiun       4   1359         0             0
## 47       Kab. Ngawi      30   5820         0             0
## 48     Kab. Magetan      17   5605         0             0
## 49    Kab. Ponorogo      21   6815         1             1
## 50     Kab. Pacitan      10   2846         0             3
## 51      Kab. Kediri      89  16130         1            15
## 52     Kab. Nganjuk      35   6173         0             2
## 53      Kab. Blitar      31   6586         1             0
## 54 Kab. Tulungagung      63  11118         2             7
## 55  Kab. Trenggalek      21   3719         0            22
## 56      Kab. Malang      92  19466        13            32
## 57    Kab. Pasuruan      67  11644        15            13
## 58 Kab. Probolinggo      52   6665        15             4
## 59    Kab. Lumajang      32   5864         7             2
## 60   Kab. Bondowoso      23   3328         6             6
## 61   Kab. Situbondo      29   4430         2             8
## 62      Kab. Jember     143  21832        37            63
## 63  Kab. Banyuwangi      60  11625         3             2
## 64   Kab. Pamekasan      64   8490         4            20
## 65     Kab. Sampang     113   9239       173           122
## 66     Kab. Sumenep      84   6347        26           170
## 67   Kab. Bangkalan      66   7213        48            46
## 68    Kota Surabaya     366  88522        82           131
## 69      Kota Malang      90  22089        50            10
## 70      Kota Madiun      16   2862         0            10
## 71      Kota Kediri      27   7004         2             2
## 72   Kota Mojokerto      11   3293         0             1
## 73      Kota Blitar      15   3774         0             1
## 74    Kota Pasuruan      21   5040         6             3
## 75 Kota Probolinggo      11   2405         0             2
## 76        Kota Batu      15   3775         2             1
##    Kepala.Sekolah...Guru Tenaga.Kependidikan Rombel Ruang.Kelas.Rusak.Berat
## 1                   3810                 365   2929                     651
## 2                   6078                 438   4499                     182
## 3                   3596                 177   2584                     416
## 4                   3454                 200   3093                     181
## 5                   5003                 135   4321                     536
## 6                   4238                 275   3466                     350
## 7                   4789                  75   3648                     196
## 8                   2827                 300   2458                     481
## 9                   3960                 251   2960                     421
## 10                  2909                 182   2372                     182
## 11                  3777                 291   3385                     603
## 12                  3362                 259   2478                     671
## 13                  4915                 224   4160                     290
## 14                  4602                 311   3682                     890
## 15                  4563                 194   3944                     429
## 16                  5219                 282   3562                     439
## 17                  3030                 360   2565                     171
## 18                  7976                 334   6998                     607
## 19                  5764                 688   4680                     528
## 20                  3989                 402   3708                     814
## 21                  3320                 230   3395                     142
## 22                  4353                 326   2988                     237
## 23                  3819                 294   2608                     222
## 24                  6919                 712   6632                    1138
## 25                  5798                 368   4979                     615
## 26                  4233                 220   2786                     448
## 27                  3959                  40   3286                     337
## 28                  5609                 226   3619                     645
## 29                  4829                 290   4239                     749
## 30                  5595                 755   4521                      53
## 31                  2341                 294   1859                     136
## 32                   658                 157    471                      46
## 33                  1037                 141    727                      24
## 34                   470                 107    303                      39
## 35                   507                  61    368                      31
## 36                   750                  98    505                      16
## 37                   771                 145    619                      44
## 38                   729                  75    534                      21
## 39                   761                  75    725                      28
## 40                  2043                 236   1463                       7
## 41                   348                  22    263                       6
## 42                   468                  43    380                       0
## 43                   165                  10    183                       3
## 44                   333                  34    256                       0
## 45                   351                  24    311                       6
## 46                    54                   7     56                       0
## 47                   324                  35    266                       4
## 48                   209                  19    224                       0
## 49                   357                  44    272                      11
## 50                   150                  15    121                       4
## 51                   727                  52    767                       0
## 52                   295                  32    298                       1
## 53                   359                  21    312                       1
## 54                   734                  50    535                      12
## 55                   196                  25    182                       0
## 56                   936                  58    850                       2
## 57                   626                  53    530                      19
## 58                   400                  28    383                      23
## 59                   371                  42    275                       2
## 60                   236                  18    170                       6
## 61                   306                  13    246                      11
## 62                  1239                 103   1100                      50
## 63                   569                  33    506                       3
## 64                   481                  30    452                      49
## 65                   523                   9    623                      56
## 66                   657                  21    547                      50
## 67                   370                  28    412                      32
## 68                  5267                 564   3869                       6
## 69                  1387                 191    984                      10
## 70                   135                  23    136                       0
## 71                   441                  61    304                       0
## 72                   223                  36    138                       0
## 73                   224                  41    168                       6
## 74                   273                  41    217                       0
## 75                   128                  21    107                       0
## 76                   216                  27    162                       0
##    Ruang.Kelas.Rusak.Sedang Ruang.Kelas.Rusak.Ringan Ruang.Kelas.Baik
## 1                       577                      957              706
## 2                       260                     1217             2534
## 3                       520                      985             1006
## 4                       789                     1062             1229
## 5                       831                     1384             1713
## 6                       551                     1327             1534
## 7                      1384                     1257              965
## 8                       493                      674              982
## 9                       845                     1111              733
## 10                      545                     1052              755
## 11                      674                     1151             1082
## 12                      370                      658              816
## 13                     1204                     1426             1619
## 14                      769                      970             1271
## 15                      691                     1590             1486
## 16                      822                     1158             1361
## 17                      648                      892             1018
## 18                      914                     2855             2946
## 19                      702                     1590             1880
## 20                      688                     1225             1145
## 21                      798                     1407             1229
## 22                      683                      944             1202
## 23                      780                     1021              705
## 24                      998                     1849             3055
## 25                      969                     1957             1805
## 26                      736                      895              923
## 27                     1012                     1018             1086
## 28                      878                     1373              790
## 29                     1005                     1378              804
## 30                      152                      911             2996
## 31                      185                      416             1237
## 32                       64                       86              290
## 33                      235                      198              305
## 34                       44                       95              149
## 35                       40                      113              231
## 36                       56                      164              341
## 37                       49                      113              429
## 38                       93                      133              299
## 39                       22                      187              524
## 40                       56                      226             1329
## 41                       24                       63              176
## 42                       27                       66              305
## 43                        6                       85              103
## 44                        8                       46              200
## 45                       31                      104              172
## 46                        0                       36               17
## 47                       16                       71              183
## 48                       16                       81              157
## 49                       11                       29              242
## 50                        5                       39               75
## 51                       25                      157              645
## 52                        5                       48              246
## 53                       10                       56              270
## 54                       29                      148              395
## 55                        3                       66              122
## 56                       39                      179              659
## 57                       46                      169              315
## 58                       67                      158              140
## 59                        7                       54              222
## 60                       21                       32              119
## 61                       20                       76              157
## 62                       76                      315              726
## 63                       19                      139              359
## 64                       76                      126              251
## 65                      141                      260              148
## 66                      138                      182              171
## 67                       99                      102              169
## 68                       71                      542             3601
## 69                       19                      132              870
## 70                        2                       15              127
## 71                       11                       83              225
## 72                        0                       19              126
## 73                        6                       55              105
## 74                       12                       60              159
## 75                        0                       45               68
## 76                        0                       33              144
##    Total.Ruang.Kelas Status
## 1               2891 Negeri
## 2               4193 Negeri
## 3               2927 Negeri
## 4               3261 Negeri
## 5               4464 Negeri
## 6               3762 Negeri
## 7               3802 Negeri
## 8               2630 Negeri
## 9               3110 Negeri
## 10              2534 Negeri
## 11              3510 Negeri
## 12              2515 Negeri
## 13              4539 Negeri
## 14              3900 Negeri
## 15              4196 Negeri
## 16              3780 Negeri
## 17              2729 Negeri
## 18              7322 Negeri
## 19              4700 Negeri
## 20              3872 Negeri
## 21              3576 Negeri
## 22              3066 Negeri
## 23              2728 Negeri
## 24              7040 Negeri
## 25              5346 Negeri
## 26              3002 Negeri
## 27              3453 Negeri
## 28              3686 Negeri
## 29              3936 Negeri
## 30              4112 Negeri
## 31              1974 Negeri
## 32               486 Negeri
## 33               762 Negeri
## 34               327 Negeri
## 35               415 Negeri
## 36               577 Negeri
## 37               635 Negeri
## 38               546 Negeri
## 39               761 Swasta
## 40              1618 Swasta
## 41               269 Swasta
## 42               398 Swasta
## 43               197 Swasta
## 44               254 Swasta
## 45               313 Swasta
## 46                53 Swasta
## 47               274 Swasta
## 48               254 Swasta
## 49               293 Swasta
## 50               123 Swasta
## 51               827 Swasta
## 52               300 Swasta
## 53               337 Swasta
## 54               584 Swasta
## 55               191 Swasta
## 56               879 Swasta
## 57               549 Swasta
## 58               388 Swasta
## 59               285 Swasta
## 60               178 Swasta
## 61               264 Swasta
## 62              1167 Swasta
## 63               520 Swasta
## 64               502 Swasta
## 65               605 Swasta
## 66               541 Swasta
## 67               402 Swasta
## 68              4220 Swasta
## 69              1031 Swasta
## 70               144 Swasta
## 71               319 Swasta
## 72               145 Swasta
## 73               172 Swasta
## 74               231 Swasta
## 75               113 Swasta
## 76               177 Swasta
cat("Jumlah baris:", nrow(data), "\n")
## Jumlah baris: 76
cat("Nama kolom:\n")
## Nama kolom:
print(names(data))
##  [1] "Kabupaten.Kota"           "Sekolah"                 
##  [3] "Siswa"                    "Mengulang"               
##  [5] "Putus.Sekolah"            "Kepala.Sekolah...Guru"   
##  [7] "Tenaga.Kependidikan"      "Rombel"                  
##  [9] "Ruang.Kelas.Rusak.Berat"  "Ruang.Kelas.Rusak.Sedang"
## [11] "Ruang.Kelas.Rusak.Ringan" "Ruang.Kelas.Baik"        
## [13] "Total.Ruang.Kelas"        "Status"

Analisis Statistika Diskriptif

str(data)
## 'data.frame':    76 obs. of  14 variables:
##  $ Kabupaten.Kota          : chr  "Kab. Gresik" "Kab. Sidoarjo" "Kab. Mojokerto" "Kab. Jombang" ...
##  $ Sekolah                 : int  389 464 385 475 692 541 597 401 475 385 ...
##  $ Siswa                   : int  57111 108427 54712 61570 63700 60257 44054 34939 40483 29401 ...
##  $ Mengulang               : int  37 28 8 39 24 18 17 18 10 15 ...
##  $ Putus.Sekolah           : int  90 118 18 32 26 23 21 16 42 11 ...
##  $ Kepala.Sekolah...Guru   : int  3810 6078 3596 3454 5003 4238 4789 2827 3960 2909 ...
##  $ Tenaga.Kependidikan     : int  365 438 177 200 135 275 75 300 251 182 ...
##  $ Rombel                  : int  2929 4499 2584 3093 4321 3466 3648 2458 2960 2372 ...
##  $ Ruang.Kelas.Rusak.Berat : int  651 182 416 181 536 350 196 481 421 182 ...
##  $ Ruang.Kelas.Rusak.Sedang: int  577 260 520 789 831 551 1384 493 845 545 ...
##  $ Ruang.Kelas.Rusak.Ringan: int  957 1217 985 1062 1384 1327 1257 674 1111 1052 ...
##  $ Ruang.Kelas.Baik        : int  706 2534 1006 1229 1713 1534 965 982 733 755 ...
##  $ Total.Ruang.Kelas       : int  2891 4193 2927 3261 4464 3762 3802 2630 3110 2534 ...
##  $ Status                  : chr  "Negeri" "Negeri" "Negeri" "Negeri" ...
summary(data)
##  Kabupaten.Kota        Sekolah           Siswa          Mengulang     
##  Length:76          Min.   :   4.0   Min.   :  1359   Min.   :  0.00  
##  Class :character   1st Qu.:  33.5   1st Qu.:  6304   1st Qu.:  2.00  
##  Mode  :character   Median :  89.5   Median : 16146   Median : 13.00  
##                     Mean   : 249.7   Mean   : 33301   Mean   : 61.76  
##                     3rd Qu.: 466.8   3rd Qu.: 54292   3rd Qu.: 46.50  
##                     Max.   :1061.0   Max.   :150119   Max.   :931.00  
##  Putus.Sekolah    Kepala.Sekolah...Guru Tenaga.Kependidikan     Rombel      
##  Min.   :  0.00   Min.   :  54.0        Min.   :  7.00      Min.   :  56.0  
##  1st Qu.:  2.00   1st Qu.: 358.5        1st Qu.: 32.75      1st Qu.: 301.8  
##  Median : 16.00   Median : 766.0        Median : 86.50      Median : 726.0  
##  Mean   : 43.78   Mean   :2190.0        Mean   :164.04      Mean   :1772.7  
##  3rd Qu.: 52.25   3rd Qu.:3967.2        3rd Qu.:263.00      3rd Qu.:3310.8  
##  Max.   :350.00   Max.   :7976.0        Max.   :755.00      Max.   :6998.0  
##  Ruang.Kelas.Rusak.Berat Ruang.Kelas.Rusak.Sedang Ruang.Kelas.Rusak.Ringan
##  Min.   :   0.0          Min.   :   0.0           Min.   :  15.00         
##  1st Qu.:   4.0          1st Qu.:  19.0           1st Qu.:  79.75         
##  Median :  35.5          Median :  73.5           Median : 180.50         
##  Mean   : 189.3          Mean   : 318.7           Mean   : 564.42         
##  3rd Qu.: 340.2          3rd Qu.: 684.2           3rd Qu.:1028.75         
##  Max.   :1138.0          Max.   :1384.0           Max.   :2855.00         
##  Ruang.Kelas.Baik Total.Ruang.Kelas    Status         
##  Min.   :  17.0   Min.   :  53.0    Length:76         
##  1st Qu.: 175.0   1st Qu.: 309.8    Class :character  
##  Median : 476.5   Median : 761.5    Mode  :character  
##  Mean   : 772.1   Mean   :1844.5                      
##  3rd Qu.:1100.8   3rd Qu.:3467.2                      
##  Max.   :3601.0   Max.   :7322.0

Cek missing value

mv <- colSums(is.na(data))
print(mv)
##           Kabupaten.Kota                  Sekolah                    Siswa 
##                        0                        0                        0 
##                Mengulang            Putus.Sekolah    Kepala.Sekolah...Guru 
##                        0                        0                        0 
##      Tenaga.Kependidikan                   Rombel  Ruang.Kelas.Rusak.Berat 
##                        0                        0                        0 
## Ruang.Kelas.Rusak.Sedang Ruang.Kelas.Rusak.Ringan         Ruang.Kelas.Baik 
##                        0                        0                        0 
##        Total.Ruang.Kelas                   Status 
##                        0                        0

Memilih Kolom

library(dplyr)

data_cluster <- data %>%
  select(Sekolah,
         Siswa,
         Mengulang,
         Putus.Sekolah,
         Kepala.Sekolah...Guru,
         Tenaga.Kependidikan,
         Ruang.Kelas.Rusak.Berat,
         Ruang.Kelas.Rusak.Sedang,
         Ruang.Kelas.Rusak.Ringan,
         Ruang.Kelas.Baik,
         Total.Ruang.Kelas,
         Status)
colSums(is.na(data_cluster))
##                  Sekolah                    Siswa                Mengulang 
##                        0                        0                        0 
##            Putus.Sekolah    Kepala.Sekolah...Guru      Tenaga.Kependidikan 
##                        0                        0                        0 
##  Ruang.Kelas.Rusak.Berat Ruang.Kelas.Rusak.Sedang Ruang.Kelas.Rusak.Ringan 
##                        0                        0                        0 
##         Ruang.Kelas.Baik        Total.Ruang.Kelas                   Status 
##                        0                        0                        0

EDA

library(ggplot2)
library(tidyr)

data_long <- data_cluster %>%
  select(where(is.numeric)) %>%
  pivot_longer(cols = everything(), names_to = "Variabel", values_to = "Nilai")

ggplot(data_long, aes(x = Nilai)) +
  facet_wrap(~ Variabel, scales = "free", ncol = 3) +
  geom_histogram(bins = 30, fill = "steelblue", color = "white") +
  theme_minimal() +
  labs(title = "Distribusi Setiap Variabel Numerik")

ggplot(data, aes(x = Status, fill = Status)) +
  geom_bar() +
  labs(title = "Distribusi Sekolah Berdasarkan Status", x = "Status Sekolah", y = "Jumlah Sekolah") +
  theme_minimal() +
  scale_fill_brewer(palette = "Paired")

Standarisasi

data_cluster_numeric <- data_cluster %>%
  select(where(is.numeric))

data_scaled <- scale(data_cluster_numeric)

K-Means

Elbow Method

scaled_data <- scale(
  data_cluster[, sapply(data_cluster, is.numeric)]
)

wss <- function(k) {
  kmeans(scaled_data, centers = k, nstart = 10)$tot.withinss
}

k_values <- 1:10
wss_values <- sapply(k_values, wss)

plot(k_values, wss_values, type = "b",
     xlab = "Jumlah Klaster (k)",
     ylab = "Total Within Sum of Squares",
     main = "Metode Elbow untuk Menentukan K")

set.seed(123)
kmeans_result <- kmeans(data_scaled, centers = 3, nstart = 25)

data_cluster$Cluster <- as.factor(kmeans_result$cluster)
install.packages("factoextra")
## Warning: package 'factoextra' is in use and will not be installed
library(factoextra)
fviz_cluster(kmeans_result, data = data_scaled,
             geom = "point",
             ellipse.type = "convex",
             labelsize = 8)

table(data_cluster$Cluster)
## 
##  1  2  3 
## 26 44  6

Silhouette Score

library(cluster)

silhouette_kmeans <- silhouette(kmeans_result$cluster, dist(data_scaled))
fviz_silhouette(silhouette_kmeans)
##   cluster size ave.sil.width
## 1       1   26          0.41
## 2       2   44          0.83
## 3       3    6          0.05

Davies-Bouldin Index (DBI)

library(clusterSim)
## Warning: package 'clusterSim' was built under R version 4.4.3
## Loading required package: MASS
## 
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
## 
##     select
db_index <- index.DB(data_scaled, kmeans_result$cluster)$DB
cat("Davies-Bouldin Index:", db_index, "\n")
## Davies-Bouldin Index: 1.087653
data_final <- cbind(data_cluster, Cluster = kmeans_result$cluster)

write.csv(data_final, "Hasil cluster Kmeans.csv", row.names = FALSE)

cat("Hasil klasterisasi telah disimpan dalam file 'Hasil cluster Kmeans.csv'")
## Hasil klasterisasi telah disimpan dalam file 'Hasil cluster Kmeans.csv'

Fuzzy C-Means

library(ppclust)
## Warning: package 'ppclust' was built under R version 4.4.3
set.seed(123)

fcm_result <- fcm(data_scaled, centers = 3, m = 2)

# Pusat klaster
print(fcm_result$centers)
## NULL
# Derajat keanggotaan
membership_matrix <- fcm_result$u
head(membership_matrix)
##   Cluster 1  Cluster 2  Cluster 3
## 1 0.7543644 0.08291941 0.16271616
## 2 0.3535583 0.09156661 0.55487513
## 3 0.8624167 0.07285403 0.06472927
## 4 0.8803295 0.05173979 0.06793068
## 5 0.7123368 0.06615723 0.22150600
## 6 0.8818301 0.03522679 0.08294309
cluster_assignments <- apply(membership_matrix, 1, which.max)

data_cluster$Cluster_FCM <- as.factor(cluster_assignments)
fcm_ppclust <- ppclust2(fcm_result, "kmeans")
fviz_cluster(fcm_ppclust, data = data_scaled,
             ellipse.type = "convex",
             geom = "point",
             main = "Fuzzy C-Means Clustering",
             labelsize = 8)

Silhouette Score

silhouette_fcm <- silhouette(cluster_assignments, dist(data_scaled))
fviz_silhouette(silhouette_fcm)
##   cluster size ave.sil.width
## 1       1   22          0.49
## 2       2   44          0.82
## 3       3   10         -0.04

Davies-Bouldin Index (DBI)

db_index_fcm <- index.DB(data_scaled, cluster_assignments)$DB
cat("Davies-Bouldin Index for FCM:", db_index_fcm, "\n")
## Davies-Bouldin Index for FCM: 1.202335
data_final_fcm <- cbind(data_cluster, Cluster_FCM = cluster_assignments)

write.csv(data_final_fcm, "Hasil cluster FCM.csv", row.names = FALSE)
cat("Hasil klasterisasi FCM telah disimpan dalam file 'Hasil cluster FCM.csv'")
## Hasil klasterisasi FCM telah disimpan dalam file 'Hasil cluster FCM.csv'

Meanshift

library(LPCM)
## Warning: package 'LPCM' was built under R version 4.4.3
## 
## Attaching package: 'LPCM'
## The following object is masked from 'package:lubridate':
## 
##     ms
data_for_meanshift <- data_scaled
meanshift_result <- ms(data_for_meanshift, h = 1.0)

clusters_ms <- meanshift_result$cluster.label
data_cluster$Cluster_MS <- as.factor(clusters_ms)
library(factoextra)

fviz_cluster(list(data = data_scaled, cluster = clusters_ms),
             geom = "point",
             ellipse.type = "convex",
             labelsize = 8,
             main = "Visualisasi Clustering - MeanShift")

Silhouette Score

silhouette_ms <- silhouette(clusters_ms, dist(data_scaled))

Davies-Bouldin Index (DBI)

db_index_ms <- index.DB(data_scaled, clusters_ms)$DB
## Warning in max(R[i, ][is.finite(R[i, ])]): no non-missing arguments to max;
## returning -Inf
cat("Davies-Bouldin Index for MeanShift:", db_index_ms, "\n")
## Davies-Bouldin Index for MeanShift: NaN
data_final_ms <- cbind(data_cluster, Cluster_MeanShift = clusters_ms)

write.csv(data_final_ms, "Hasil cluster MeanShift.csv", row.names = FALSE)
cat("Hasil klasterisasi MeanShift telah disimpan dalam file 'Hasil cluster MeanShift.csv'")
## Hasil klasterisasi MeanShift telah disimpan dalam file 'Hasil cluster MeanShift.csv'