Analisis Klaster K-Means

Analisis klaster merupakan salah satu metode dalam analisis statistik yang digunakan untuk mengelompokkan objek atau data ke dalam beberapa kelompok berdasarkan tingkat kemiripan karakteristik yang dimiliki. Tujuan utama dari analisis klaster adalah untuk menemukan pola atau struktur tertentu dalam data sehingga objek yang berada dalam satu kelompok memiliki kemiripan yang lebih tinggi dibandingkan dengan objek pada kelompok lainnya.

Pada analisis ini digunakan metode K-Means Clustering, yaitu metode pengelompokan yang bekerja dengan membagi data ke dalam sejumlah klaster berdasarkan jarak kedekatan antar objek. Metode ini akan menempatkan data ke dalam klaster yang memiliki pusat klaster (centroid) terdekat sehingga setiap kelompok yang terbentuk memiliki karakteristik yang relatif homogen.

Dalam penelitian ini, analisis klaster dilakukan pada data mahasiswa dengan menggunakan beberapa variabel yaitu jam belajar, tingkat aktivitas organisasi, dan Indeks Prestasi Kumulatif (IPK). Melalui analisis ini diharapkan dapat diketahui pola pengelompokan mahasiswa berdasarkan karakteristik akademik dan aktivitas organisasi yang dimiliki.

Persiapan Data

data_mahasiswa <- data.frame(
  belajar = c(8,9,7,8,9,7,8,9,8,7,
              3,4,5,3,4,5,3,4,5,4,
              6,6,7,5,6,7,5,6,7,6),

  organisasi = c(2,3,2,1,2,3,1,2,2,3,
                 8,7,9,8,7,9,8,7,9,8,
                 5,6,5,6,5,6,5,6,5,6),

  ipk = c(3.8,3.9,3.7,3.8,3.9,3.7,3.8,3.9,3.8,3.7,
          2.9,3.0,2.8,2.9,3.0,2.8,2.9,3.0,2.8,2.9,
          3.3,3.4,3.5,3.2,3.3,3.4,3.2,3.3,3.4,3.3)
)

data_mahasiswa
##    belajar organisasi ipk
## 1        8          2 3.8
## 2        9          3 3.9
## 3        7          2 3.7
## 4        8          1 3.8
## 5        9          2 3.9
## 6        7          3 3.7
## 7        8          1 3.8
## 8        9          2 3.9
## 9        8          2 3.8
## 10       7          3 3.7
## 11       3          8 2.9
## 12       4          7 3.0
## 13       5          9 2.8
## 14       3          8 2.9
## 15       4          7 3.0
## 16       5          9 2.8
## 17       3          8 2.9
## 18       4          7 3.0
## 19       5          9 2.8
## 20       4          8 2.9
## 21       6          5 3.3
## 22       6          6 3.4
## 23       7          5 3.5
## 24       5          6 3.2
## 25       6          5 3.3
## 26       7          6 3.4
## 27       5          5 3.2
## 28       6          6 3.3
## 29       7          5 3.4
## 30       6          6 3.3

Data yang digunakan merupakan data simulasi mahasiswa dengan tiga variabel utama, yaitu:

  1. Belajar
    Menunjukkan rata-rata jumlah jam belajar mahasiswa per hari.

  2. Organisasi
    Menunjukkan tingkat aktivitas mahasiswa dalam kegiatan organisasi yang diukur dalam skala 1–10.

  3. IPK
    Menunjukkan Indeks Prestasi Kumulatif mahasiswa dengan rentang nilai antara 0 sampai 4.

Standarisasi Data

data_scaled <- scale(data_mahasiswa)

head(data_scaled)
##        belajar organisasi      ipk
## [1,] 1.0755201 -1.2541457 1.192385
## [2,] 1.6223947 -0.8622251 1.453491
## [3,] 0.5286455 -1.2541457 0.931279
## [4,] 1.0755201 -1.6460662 1.192385
## [5,] 1.6223947 -1.2541457 1.453491
## [6,] 0.5286455 -0.8622251 0.931279

Model K-Means

set.seed(123)

kmeans_model <- kmeans(data_scaled, centers = 3, nstart = 25)

kmeans_model
## K-means clustering with 3 clusters of sizes 10, 10, 10
## 
## Cluster means:
##       belajar organisasi         ipk
## 1  0.03645831  0.1175762 -0.03481417
## 2 -1.11197839  1.0973775 -1.15757105
## 3  1.07552008 -1.2149536  1.19238522
## 
## Clustering vector:
##  [1] 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
## 
## Within cluster sum of squares by cluster:
## [1] 2.401686 3.125100 2.956138
##  (between_SS / total_SS =  90.2 %)
## 
## Available components:
## 
## [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
## [6] "betweenss"    "size"         "iter"         "ifault"

Hasil Klaster

data_mahasiswa$cluster <- kmeans_model$cluster

data_mahasiswa
##    belajar organisasi ipk cluster
## 1        8          2 3.8       3
## 2        9          3 3.9       3
## 3        7          2 3.7       3
## 4        8          1 3.8       3
## 5        9          2 3.9       3
## 6        7          3 3.7       3
## 7        8          1 3.8       3
## 8        9          2 3.9       3
## 9        8          2 3.8       3
## 10       7          3 3.7       3
## 11       3          8 2.9       2
## 12       4          7 3.0       2
## 13       5          9 2.8       2
## 14       3          8 2.9       2
## 15       4          7 3.0       2
## 16       5          9 2.8       2
## 17       3          8 2.9       2
## 18       4          7 3.0       2
## 19       5          9 2.8       2
## 20       4          8 2.9       2
## 21       6          5 3.3       1
## 22       6          6 3.4       1
## 23       7          5 3.5       1
## 24       5          6 3.2       1
## 25       6          5 3.3       1
## 26       7          6 3.4       1
## 27       5          5 3.2       1
## 28       6          6 3.3       1
## 29       7          5 3.4       1
## 30       6          6 3.3       1

Jumlah Klaster

table(kmeans_model$cluster)
## 
##  1  2  3 
## 10 10 10

Rata-rata Variabel pada Setiap Klaster

aggregate(data_mahasiswa[,1:3],
          by = list(Klaster = data_mahasiswa$cluster),
          FUN = mean)
##   Klaster belajar organisasi  ipk
## 1       1     6.1        5.5 3.33
## 2       2     4.0        8.0 2.90
## 3       3     8.0        2.1 3.80

Berdasarkan rata-rata variabel pada setiap klaster, terlihat bahwa setiap klaster memiliki karakteristik yang berbeda. Klaster 3 menunjukkan mahasiswa dengan jam belajar tinggi dan IPK tinggi namun aktivitas organisasi rendah. Klaster 2 menunjukkan mahasiswa yang sangat aktif dalam organisasi namun memiliki jam belajar lebih rendah serta IPK lebih rendah. Sementara itu, klaster 1 menunjukkan mahasiswa dengan tingkat belajar dan aktivitas organisasi yang relatif seimbang.

Visualisasi Klaster

plot(data_scaled[,1:2],
     col = kmeans_model$cluster,
     pch = 19,
     xlab = "Belajar",
     ylab = "Organisasi",
     main = "Visualisasi Klaster Mahasiswa")