1 PENDAHULUAN

1.1 Latar Belakang

Dalam era persaingan bisnis yang semakin kompetitif saat ini, perusahaan harus memahami karakteristik pelanggan mereka untuk membuat strategi pemasaran yang efektif. Untuk menyediakan layanan dan penawaran yang lebih tepat sasaran, perusahaan harus menggunakan metode analisis yang dapat mengelompokkan pelanggan berdasarkan kesamaan karakteristik karena data pelanggan yang beragam. Untuk tujuan ini, cluster analysis adalah metode yang umum digunakan dalam analisis multivariat. Salah satu metode klasterisasi, hierarchical clustering, bekerja dengan menyusun objek pengamatan ke dalam struktur bertingkat berupa dendrogram, sehingga hubungan antar objek dapat diamati secara visual selama proses penggabungan atau pemisahan kelompok. Metode ini tidak memerlukan penentuan jumlah klaster awal, sehingga memberikan fleksibilitas bagi analis untuk mengevaluasi struktur data pada berbagai tingkat pengelompokan. Studi kasus ini menggunakan Mall Customers Dataset yang berisi informasi dasar seperti usia (Age), pendapatan tahunan (Annual Income), dan skor belanja (Spending Score). Dataset ini banyak dimanfaatkan dalam studi segmentasi pelanggan karena dapat menunjukkan perilaku konsumsi dan potensi nilai pelanggan. Dengan menerapkan hierarchical clustering pada dataset ini, diharapkan dapat memahami proses klasterisasi secara menyeluruh, termasuk memilih metode penghubung, menghitung jarak antara objek, menginterpretasikan dendrogram, dan menentukan jumlah klaster yang ideal.

1.2 Rumusan Masalah

  1. Bagaimana pengelompokan pelanggan mall berdasarkan usia (Age), pendapatan tahunan (Annual Income), dan skor belanja (Spending Score) menggunakan hierarchical clustering?
  2. Berapa jumlah klaster optimal yang dapat digunakan untuk mengelompokkan pelanggan berdasarkan karakteristik tersebut?
  3. Bagaimana karakteristik masing-masing klaster pelanggan berdasarkan rata-rata umur, pendapatan, dan skor belanja?

1.3 Tujuan

  1. Untuk mengetahui hasil pengelompokan pelanggan mall berdasarkan usia (Age), pendapatan tahunan (Annual Income), dan skor belanja (Spending Score) menggunakan hierarchical clustering.
  2. Untuk menentukan jumlah klaster optimal dari pelanggan mall berdasarkan ukuran validasi internal (Silhouette, Dunn, Connectivity).
  3. Untuk menganalisis profil karakteristik masing-masing klaster, seperti rata-rata usia, pendapatan, dan skor belanja, sehingga dapat digunakan untuk segmentasi pelanggan.

2 Tinjauan Pustaka

2.1 Analisis Cluster

Analisis klaster merupakan salah satu teknik multivariat yang digunakan untuk mengelompokkan objek atau kasus berdasarkan kesamaan karakteristik yang dimilikinya. Tujuan utama dari metode ini adalah untuk mengklasifikasikan berbagai objek, seperti individu, produk, atau wilayah, ke dalam kelompok-kelompok yang relatif homogen berdasarkan sekumpulan variabel yang relevan dengan penelitian.

Klaster yang baik ditandai oleh tingkat kesamaan atau homogenitas yang tinggi antaranggota dalam satu klaster (within-cluster similarity), serta tingkat perbedaan atau heterogenitas yang tinggi antara klaster yang satu dengan klaster lainnya (between-cluster dissimilarity). Dengan demikian, setiap anggota dalam satu klaster memiliki karakteristik yang semirip mungkin satu sama lain, namun berbeda secara signifikan dari anggota klaster lainnya. Pendekatan ini memungkinkan peneliti untuk mengidentifikasi pola atau struktur tersembunyi dalam data yang kompleks, sehingga dapat dimanfaatkan untuk mendukung proses pengambilan keputusan berbasis data (Purnomo & Sutadji, 2022).

Standarisasi data merupakan tahap penting dalam analisis klaster untuk menyamakan skala antarvariabel yang memiliki satuan berbeda. Proses ini bertujuan agar tidak ada variabel yang memiliki pengaruh lebih besar hanya karena perbedaan skala pengukuran. Standarisasi biasanya dilakukan dengan mengubah data ke dalam bentuk z-score, yaitu dengan mengurangi rata-rata dan membaginya dengan simpangan baku, sehingga setiap variabel memiliki rata-rata nol dan simpangan baku satu.

\[ Z_i = \frac{X_i - \bar{X}}{S_X} \]

Dengan:

\[ \bar{X} = \frac{\sum_{i=1}^{n} X_i}{n} \]

\[ S_X = \sqrt{\frac{\sum_{i=1}^{n} (X_i - \bar{X})^2}{n-1}} \]

Keterangan:

  • \(\bar{X}\) = rata-rata variabel
  • \(S_X\) = simpangan baku
  • \(X_i\) = nilai data ke-i
  • \(n\) = jumlah data

Dalam analisis klaster, pengelompokan didasarkan pada ukuran jarak (distance measure) yang menunjukkan tingkat kemiripan atau perbedaan antarobjek. Ukuran jarak ini menjadi dasar dalam menentukan objek mana yang akan digabungkan ke dalam klaster yang sama. Beberapa ukuran jarak yang umum digunakan antara lain jarak Euclidean, Manhattan, dan Mahalanobis.

  • Jarak Euclidean

\[ d(x,y) = \sqrt{\sum_{i=1}^{k} (x_i - y_i)^2} \]

  • Jarak Manhattan

\[ d(x,y) = \sum_{i=1}^{k} |x_i - y_i| \]

  • Jarak Mahalanobis

\[ d(x,y) = (x - y)' \Sigma^{-1} (x - y) \]

2.2 Metode Hierarki

Analisis klaster hierarki merupakan metode pengelompokan yang dilakukan secara bertahap berdasarkan tingkat kemiripan antarobjek. Proses ini diawali dengan penggabungan dua atau lebih objek yang memiliki tingkat kesamaan tertinggi, kemudian dilanjutkan hingga seluruh objek tergabung dalam satu klaster. Hasilnya dapat divisualisasikan melalui dendrogram, yaitu representasi grafis yang menunjukkan proses pembentukan klaster dan jarak antarobjek pada setiap tahap (Purnomo & Sutadji, 2022).

2.2.1 Metode Aglomerasi

Metode aglomerasi merupakan tahap penting dalam analisis klaster hierarki yang berfungsi untuk mengelompokkan objek berdasarkan tingkat kemiripannya. Proses ini bersifat kompleks karena melibatkan perhitungan koefisien jarak antarobjek yang jumlahnya terus bertambah hingga seluruh objek tergabung dalam satu klaster. Selama proses tersebut, terbentuk beberapa klaster dengan anggota yang berbeda-beda sesuai jumlah klaster yang diinginkan. Metode aglomerasi sendiri memiliki beberapa jenis (Purnomo, dkk., 2022).

  1. Metode Single Lingkage (Jarak Terdekat atau Tautan Tunggal)

Penentuan jarak antar-klaster pada metode single linkage dilakukan dengan membandingkan jarak antara dua klaster yang ada, kemudian memilih jarak yang paling dekat di antara keduanya. Pendekatan ini dikenal sebagai aturan tetangga terdekat (nearest neighbour rule).

\[ d(K_1, K_2) = \min \{ d(x, y) \};\quad x \in K_1,\; y \in K_2 \]

  1. Metode Complete Lingkage (Jarak Rata-Rata atau Tautan Rata-Rata)

Dalam metode complete linkage, jarak antar-klaster ditentukan berdasarkan jarak terjauh (farthest neighbour) antara dua objek yang berasal dari klaster yang berbeda.

\[ d(K_1, K_2) = \max \{ d(x, y) \};\quad x \in K_1,\; y \in K_2 \]

  1. Metode Centroid

Centroid merupakan nilai rata-rata dari seluruh objek yang terdapat dalam suatu klaster. Pada metode ini, jarak antar-klaster ditentukan berdasarkan jarak antar-centroid. Setiap kali terdapat penggabungan objek ke dalam klaster, nilai centroid akan diperbarui sesuai dengan perubahan anggota klaster tersebut.

\[ d(K_1, K_2) = d(\bar{x}, \bar{y}) \]

  1. Metode Average Linkage

Dalam metode average linkage, jarak antara dua klaster ditentukan berdasarkan rata-rata jarak antara seluruh anggota pada satu klaster dengan seluruh anggota pada klaster lainnya.

\[ d(K_1, K_2) = \frac{1}{n_{K_1} n_{K_2}} \sum_{x \in K_1} \sum_{y \in K_2} d(x, y) \]

  1. Metode Ward

Metode Ward bertujuan untuk membentuk klaster dengan variasi dalam klaster (internal variance) yang sekecil mungkin. Pada metode ini, penggabungan dua klaster dilakukan berdasarkan kenaikan terkecil pada jumlah kuadrat galat (Sum of Squares Error, SSE). Setiap tahap pengelompokan mempertimbangkan rata-rata (mean) dari masing-masing klaster dan menghitung jarak Euclidean antar objek terhadap nilai rata-rata tersebut. Dengan demikian, dua klaster akan digabungkan apabila penggabungan tersebut menghasilkan kehilangan informasi yang paling kecil dibandingkan alternatif lainnya.

\[ d(K_1, K_2) = \sqrt{ \frac{2 n_{K_1} n_{K_2}}{n_{K_1} + n_{K_2}} } \; \| \bar{x} - \bar{y} \| \]

2.2.2 Metode Devisif

Metode divisif merupakan kebalikan dari metode aglomerasi, di mana proses pengelompokan dimulai dari satu klaster besar yang berisi seluruh objek pengamatan. Selanjutnya, objek-objek yang memiliki perbedaan cukup besar dipisahkan secara bertahap hingga terbentuk jumlah klaster yang diinginkan (Purnomo, dkk., 2022).

3 Data

Data penelitian berasal dari dataset Mall Customers dari Kaggle, berisi 200 pelanggan dengan variabel CustomerID (ID unik), Age (tahun), Annual Income (k$: ribuan dolar per tahun), dan Spending Score (skala 1–100), yang digunakan untuk menganalisis pola perilaku belanja konsumen.

4 SOURCE CODE

Library

> # Library
> library(psych)
> library(GPArotation)
> library(clValid)
> library(ggplot2)
> library(cluster)
> library(factoextra)
> library(tidyverse)
> library(car)
> library(readxl)
> library(dplyr)

4.1 Impor Data

> data <- read_excel("D:/kuliah/sem 5/anmul/laprak 2/Mall_Customers.xlsx")
> data <- data.frame(data)
> head(data)

4.2 Statistik Deskriptif

> statdes <- summary(data)
> statdes

4.2 Uji Asumsi

4.2.1 Uji KMO (Sampel Representatif)

> kmo <- KMO(data[, 3:5])
> kmo

4.2.2 Uji Multikolinearitas (Korelasi Pearson)

> korelasi <- cor(data[, 3:5], method = "pearson")
> korelasi

4.3 Standarisasi Data

> datastand <- scale(data[, 3:5])
> rownames(datastand) <- 1:nrow(datastand)
> head(datastand)

4.4 Jarak Euclidean

> jarak <- dist(datastand, method = "euclidean")
> mat_jarak <- as.matrix(jarak)
> df_jarak <- as.data.frame(mat_jarak)
> datatable(
+   df_jarak,
+   options = list(
+     pageLength = 10,
+     lengthMenu = c(10, 20, 50, 100),
+     scrollX = TRUE
+   )
+ )

4.5 Koefisien Korelasi Coephenetic

> ## Single Linkage
> hc_single <- hclust(jarak, method = "single")
> cor_single <- cor(jarak, cophenetic(hc_single))
> ## Average Linkage
> hc_average <- hclust(jarak, method = "average")
> cor_average <- cor(jarak, cophenetic(hc_average))
> ## Complete Linkage
> hc_complete <- hclust(jarak, method = "complete")
> cor_complete <- cor(jarak, cophenetic(hc_complete))
> ## Centroid Linkage
> hc_centroid <- hclust(jarak, method = "centroid")
> cor_centroid <- cor(jarak, cophenetic(hc_centroid))
> ## Ward’s Method
> hc_ward <- hclust(jarak, method = "ward.D")
> cor_ward <- cor(jarak, cophenetic(hc_ward))
> ## Ringkasan Koefisien Korelasi
> KorCop <- data.frame(
+   Metode = c("Single Linkage", "Average Linkage", "Complete Linkage", 
+              "Centroid Linkage", "Ward's Method"),
+   Koefisien_Korelasi = c(cor_single, cor_average, cor_complete, 
+                          cor_centroid, cor_ward)
+ )
> KorCop

4.6 Jumlah Cluster Optimal

> inval <- clValid(datastand, 2:5, 
+                  clMethods = "hierarchical", 
+                  validation = "internal", 
+                  metric = "euclidean", 
+                  method = "average")
> summary(inval)
> plot_nb <- fviz_nbclust(datastand, FUN = hcut, hc_method = "average", 
+                         method = "silhouette")
> print(plot_nb)

4.7 Penentuan Anggota Cluster

> anggota <- data.frame(
+   Cluster = cutree(hc_average, k = 5)
+ )
> anggota

4.8 Visualisasi Dendogram

> clus_hier <- eclust(datastand, FUNcluster = "hclust", k = 5, 
+                     hc_method = "average", graph = TRUE)
> fviz_dend(clus_hier, rect = TRUE, main = "Hasil Analisis Cluster", 
+           cex = 0.5)

4.9 Mean Tiap Cluster

> idclus <- clus_hier$cluster
> aggregate(data[, 3:5], list(Cluster = idclus), mean)

5 HASIL DAN PEMBAHASAN

5.1 Statistika Deskriptif

   CustomerID        Genre                Age        Annual.Income..k..
 Min.   :  1.00   Length:200         Min.   :18.00   Min.   : 15.00    
 1st Qu.: 50.75   Class :character   1st Qu.:28.75   1st Qu.: 41.50    
 Median :100.50   Mode  :character   Median :36.00   Median : 61.50    
 Mean   :100.50                      Mean   :38.85   Mean   : 60.56    
 3rd Qu.:150.25                      3rd Qu.:49.00   3rd Qu.: 78.00    
 Max.   :200.00                      Max.   :70.00   Max.   :137.00    
                                                                       
 Spending.Score..1.100.   ...6              ...7    
 Min.   : 1.00          Mode:logical   Min.   : 35  
 1st Qu.:34.75          NA's:200       1st Qu.: 52  
 Median :50.00                         Median : 69  
 Mean   :50.20                         Mean   : 69  
 3rd Qu.:73.00                         3rd Qu.: 86  
 Max.   :99.00                         Max.   :103  
                                       NA's   :195  

Statistik deskriptif menunjukkan bahwa ketiga variabel numerik, yaitu Age, Annual Income, dan Spending Score, memiliki rentang nilai yang cukup lebar sehingga mencerminkan keragaman pelanggan. Karena masing-masing variabel memiliki satuan yang berbeda (tahun, ribuan dolar, dan skor belanja), proses standarisasi diperlukan agar tidak ada variabel yang mendominasi dalam analisis klaster. Variabel Genre bersifat kategorik dan CustomerID hanya berfungsi sebagai identitas sehingga tidak dianalisis lebih lanjut.

5.2 Pendeteksian Asumsi Analisis Cluster

5.2.1 Asumsi Sampel Representatif

Kaiser-Meyer-Olkin factor adequacy
Call: KMO(r = data[, 3:5])
Overall MSA =  0.5
MSA for each item = 
                   Age     Annual.Income..k.. Spending.Score..1.100. 
                  0.50                   0.66                   0.50 

Hasil uji KMO menunjukkan nilai Overall MSA sebesar 0.50, yang berarti kecukupan sampel berada pada kategori marginal. Annual Income memiliki MSA 0.66 sehingga cukup baik, sementara Age dan Spending Score masing-masing bernilai 0.50 dan berada pada batas minimum kelayakan. Meskipun korelasi antar variabel tidak terlalu kuat, seluruh variabel masih memenuhi syarat minimum (MSA ≥ 0.50), sehingga data tetap layak digunakan untuk analisis lebih lanjut.

5.2.1 Asumsi Non Multikolinearitas

                               Age Annual.Income..k.. Spending.Score..1.100.
Age                     1.00000000       -0.012398043           -0.327226846
Annual.Income..k..     -0.01239804        1.000000000            0.009902848
Spending.Score..1.100. -0.32722685        0.009902848            1.000000000

Hasil korelasi menunjukkan bahwa Age memiliki hubungan negatif lemah dengan Annual Income (-0.01) dan dengan Spending Score (-0.33), yang berarti semakin tua pelanggan cenderung sedikit menurun perilaku belanjanya. Annual Income hampir tidak berkorelasi dengan Spending Score (0.01), sehingga besar pendapatan tidak memengaruhi tingkat belanja dalam dataset ini. Secara keseluruhan, ketiga variabel tidak menunjukkan korelasi kuat sehingga layak digunakan bersama dalam analisis klaster.

5.3 Standarisasi Data

         Age Annual.Income..k.. Spending.Score..1.100.
1 -1.4210029          -1.734646             -0.4337131
2 -1.2778288          -1.734646              1.1927111
3 -1.3494159          -1.696572             -1.7116178
4 -1.1346547          -1.696572              1.0378135
5 -0.5619583          -1.658498             -0.3949887
6 -1.2062418          -1.658498              0.9990891

Proses standardisasi mengubah variabel Age, Annual Income, dan Spending Score ke dalam skala Z-score (mean = 0, standar deviasi = 1). Nilai positif menunjukkan data berada di atas rata-rata, sementara nilai negatif berada di bawah rata-rata. Contohnya, pelanggan ke-1 memiliki usia dan pendapatan yang lebih rendah dari rata-rata (nilai negatif), serta Spending Score sedikit di bawah rata-rata. Standardisasi diperlukan agar ketiga variabel berada pada skala yang sama dan tidak ada variabel yang mendominasi proses clustering.

5.4 Jarak Euclidean

Hasil perhitungan jarak Euclidean pada data yang telah distandarkan menunjukkan bahwa beberapa observasi memiliki kedekatan yang relatif tinggi, ditandai oleh nilai jarak yang kecil. Misalnya, observasi 2 dan 4 memiliki jarak 0.214, sementara observasi 4 dan 6 memiliki jarak 0.089, yang merupakan jarak paling kecil pada bagian awal output. Nilai‐nilai tersebut mengindikasikan bahwa pasangan observasi tersebut memiliki karakteristik yang sangat mirip. Sebaliknya, jarak yang lebih besar seperti antara observasi 2 dan 3 sebesar 2.905 menunjukkan perbedaan karakteristik yang lebih jauh. Informasi ini menjadi dasar penting dalam proses pengelompokan, karena observasi dengan jarak yang dekat cenderung ditempatkan dalam kelompok yang sama.

5.5 Linkage Terbaik dengan Korelasi Cophenetic

            Metode Koefisien_Korelasi
1   Single Linkage          0.5416452
2  Average Linkage          0.6683198
3 Complete Linkage          0.5931023
4 Centroid Linkage          0.5919521
5    Ward's Method          0.6028962

Hasil perhitungan korelasi cophenetic menunjukkan bahwa average linkage memiliki koefisien tertinggi (0.6683198), sehingga metode ini paling baik dalam merepresentasikan struktur jarak asli antar objek pada data. Metode lain seperti complete, centroid, dan Ward’s method memiliki nilai korelasi sedang, sedangkan single linkage menunjukkan hasil yang paling rendah. Dengan demikian, average linkage dipilih sebagai metode pengelompokan yang paling sesuai karena mampu menghasilkan dendrogram yang paling mendekati struktur hubungan sebenarnya dalam data.

5.6 Jumlah Cluster Terbaik


Clustering Methods:
 hierarchical 

Cluster sizes:
 2 3 4 5 

Validation Measures:
                                 2       3       4       5
                                                          
hierarchical Connectivity  11.5218 16.0488 16.0488 21.6802
             Dunn           0.0920  0.0926  0.1007  0.1216
             Silhouette     0.3249  0.3400  0.3839  0.4096

Optimal Scores:

             Score   Method       Clusters
Connectivity 11.5218 hierarchical 2       
Dunn          0.1216 hierarchical 5       
Silhouette    0.4096 hierarchical 5       

Hasil evaluasi menunjukkan bahwa metode hierarchical clustering menghasilkan kualitas pemisahan klaster yang berbeda untuk jumlah klaster 2 hingga 5. Nilai Connectivity terendah terdapat pada 2 klaster, menandakan struktur klaster yang paling terhubung dan rapi secara lokal. Namun, berdasarkan indeks Dunn dan Silhouette, kualitas klaster terbaik justru diperoleh pada 5 klaster, karena nilai Dunn tertinggi (0.1216) dan Silhouette tertinggi (0.4096). Temuan ini sejalan dengan grafik silhouette, di mana rata-rata silhouette meningkat stabil dan mencapai puncaknya pada k=5 sebelum menurun kembali. Dengan demikian, konfigurasi 5 klaster dapat dianggap sebagai solusi klasterisasi paling optimal untuk data ini.

5.7 Hasil Analisis dengan 5 Cluster

  Cluster      Age Annual.Income..k.. Spending.Score..1.100.
1       1 43.90000           24.45000               19.10000
2       2 24.65385           42.94231               62.07692
3       3 53.25926           54.20370               48.55556
4       4 32.69231           86.53846               82.12821
5       5 41.68571           88.22857               17.28571

Klaster 1 memiliki rata-rata usia 43.90 tahun, pendapatan tahunan sekitar 24.45 ribu, dan skor pengeluaran 19.10. Hal ini menggambarkan kelompok berusia lebih tua dengan pendapatan relatif rendah dan pola belanja yang sangat rendah. Klaster 2 menunjukkan rata-rata usia lebih muda (24.65 tahun), pendapatan 42.94 ribu, serta skor pengeluaran 62.08, sehingga mencerminkan konsumen muda dengan daya beli cukup tinggi. Klaster 3 terdiri dari individu dengan usia tertinggi (53.26 tahun), pendapatan menengah (54.20 ribu), dan skor pengeluaran sedang (48.56). Klaster 4 menampilkan karakteristik usia muda-menengah (32.69 tahun), pendapatan tinggi (86.54 ribu), dan skor pengeluaran sangat tinggi (82.13), sehingga menjadi kelompok dengan kekuatan ekonomi paling kuat. Klaster 5 berisi individu usia menengah (41.69 tahun) dengan pendapatan sangat tinggi (88.23 ribu), tetapi skor pengeluaran rendah (17.29), yang mengindikasikan daya beli tinggi namun perilaku konsumsi lebih hemat.

KESIMPULAN

Berdasarkan seluruh rangkaian analisis pada Mall Customers Dataset, diperoleh lima klaster konsumen yang memiliki karakteristik berbeda berdasarkan usia, pendapatan tahunan, dan tingkat pengeluaran. Evaluasi kualitas klaster menggunakan metrik Connectivity, Dunn Index, dan Silhouette menunjukkan bahwa pembagian menjadi lima klaster merupakan struktur pengelompokan yang paling optimal karena menghasilkan pemisahan antar kelompok yang paling jelas serta kekompakan internal yang paling baik. Secara umum, klaster pertama mencerminkan konsumen berusia menengah dengan pendapatan rendah dan tingkat pengeluaran yang rendah. Klaster kedua didominasi oleh konsumen muda dengan pendapatan menengah dan tingkat pengeluaran yang tinggi. Klaster ketiga berisi pelanggan berusia lebih tua dengan pendapatan cukup tinggi, namun tingkat pengeluarannya berada pada kategori sedang. Klaster keempat mencerminkan konsumen usia muda hingga menengah dengan pendapatan sangat tinggi serta tingkat pengeluaran yang tinggi. Sementara itu, klaster kelima terdiri atas konsumen berusia menengah dengan pendapatan sangat tinggi, tetapi menunjukkan tingkat pengeluaran yang rendah. Temuan ini menunjukkan bahwa perilaku belanja konsumen tidak hanya dipengaruhi oleh pendapatan, tetapi juga oleh faktor usia dan preferensi pengeluaran masing-masing kelompok. Informasi ini dapat dimanfaatkan untuk merancang strategi pemasaran yang lebih tepat sasaran, misalnya penawaran khusus bagi kelompok berpendapatan tinggi dengan kecenderungan pengeluaran besar, program loyalitas bagi konsumen dengan tingkat pengeluaran rendah, atau promosi yang disesuaikan dengan segmen usia dan daya beli. Dengan demikian, segmentasi menggunakan hierarchical clustering mampu memberikan gambaran yang lebih tajam mengenai profil konsumen dan mendukung pengambilan keputusan dalam pengelolaan pelanggan.

DAFTAR PUSTAKA