Packages required:

> # install.packages("readr")
> # install.packages("plotrix")
> # install.packages("ggplot2")
> # install.packages("corrplot")
> # install.packages("factoextra")
> # install.packages("NbClust")

PENDAHULUAN

Latar Belakang

Perilaku belanja konsumen dipengaruhi oleh berbagai faktor, termasuk aspek demografis seperti usia, gender, dan pendapatan. Pemahaman yang lebih mendalam tentang bagaimana faktor-faktor ini mempengaruhi pengeluaran atau preferensi belanja dapat memberikan nilai strategis bagi perusahaan, khususnya dalam menyusun pendekatan pemasaran yang tepat. Namun, dengan kompleksitas data demografis yang tinggi, diperlukan metode analisis yang efektif untuk mengelompokkan konsumen dengan karakteristik serupa. Pengelompokan ini bisa menjadi dasar bagi perusahaan untuk mengidentifikasi segmen pelanggan yang lebih spesifik serta memahami karakteristik belanja dari tiap kelompok.

K-Means Clustering merupakan salah satu teknik yang banyak digunakan dalam segmentasi pelanggan karena kemampuannya untuk membentuk klaster yang optimal dari data yang kompleks. Pada analisis ini, setelah pengunjung dibagi menjadi beberapa klaster, dilakukan analisis komponen utama atau PCA (Principal Component Analysis) yang memungkinkan penyederhanaan variabel tanpa kehilangan informasi penting, sehingga dapat memudahkan visualisasi dan pemahaman pola data. Dengan mengombinasikan PCA dan K-Means, analisis ini dapat memberikan gambaran yang lebih terfokus tentang bagaimana faktor-faktor demografis memengaruhi perilaku belanja. Hasil dari kombinasi kedua metode ini akan membantu perusahaan dalam mengenali kebutuhan khusus setiap segmen pelanggan, meningkatkan efisiensi pemasaran, serta menyusun strategi bisnis yang lebih efektif berdasarkan preferensi dan karakteristik masing-masing segmen.

Hasil dari analisis ini dapat memberikan wawasan yang lebih mendalam tentang segmentasi pengunjung, membantu menyusun strategi pemasaran yang lebih tepat sasaran dan sesuai dengan kebutuhan setiap segmen pengunjung. Melalui pemahaman yang lebih jelas tentang kelompok-kelompok pengunjung yang terbentuk, pengelola dapat menyusun program pemasaran yang lebih relevan, yang dapat meningkatkan kepuasan pengunjung serta potensi penjualan. Penelitian ini menggabungkan keunggulan K-Means Clustering dan Principal Component Analysis (PCA) untuk memberikan pemahaman komprehensif mengenai karakteristik pengunjung yang sering datang dan berpotensi melakukan pembelian lebih besar.

Tinjauan Pustaka

Faktor demografis tetap menjadi landasan penting dalam pengelompokan konsumen karena secara langsung terkait dengan kebutuhan, preferensi, dan tingkat konsumsi konsumen. Menurut Wahyuni dan Sukmana (2021), demografi seperti usia, jenis kelamin, pendapatan, dan status pekerjaan berperan signifikan dalam membentuk pola belanja dan preferensi konsumen. Segmentasi demografis ini menjadi populer karena relatif mudah diukur dan menyediakan gambaran yang akurat tentang kelompok konsumen yang memiliki perilaku belanja yang serupa, yang memungkinkan perusahaan merancang strategi pemasaran yang lebih terarah.

Teknik segmentasi dengan metode K-Means Clustering sering digunakan untuk mengelompokkan konsumen dalam konteks ritel, termasuk pengunjung mal. Aditya dan Priyanto (2019) menjelaskan bahwa metode ini bekerja dengan membagi data menjadi klaster-klaster sesuai jumlah k yang ditentukan, dan setiap klaster memiliki satu titik pusat yang mewakili karakteristik umum dari anggota klaster tersebut. K-Means menggunakan pendekatan greedy untuk menarik data ke titik pusat terdekat sehingga membentuk partisi yang stabil.

Menurut jurnal Nanda, dkk (2010), rumus untuk metode K-Means Clustering adalah: \[ D_{i j}=\sqrt{\left(X_{1 i}-X_{1 j}\right)^2+\left(X_{2 i}-X_{2 j}\right)^2+\cdots+\left(X_{k i}-X_{k j}\right)^2} \] dimana,

  • \(D_{i j}\) : jarak data dari \(i\) ke pusat cluster \(j\).

  • \(X_{k i}\) : data \(i\) pada data atribut \(k\).

  • \(X_{k j}\) : titik pusat ke \(j\) di atribut ke \(k\).

Ada berbagai cara untuk menentukan jumlah klaster dalam K-Means Clustering, termasuk metode Elbow, Silhouette, dan Gap. Dalam analisis ini, metode Silhouette dipilih untuk menentukan jumlah klaster yang paling optimal. Dalam penelitian tentang evaluasi kualitas klaster, Sharma dkk. menyatakan bahwa Silhouette coefficient adalah salah satu cara paling efektif untuk mengevaluasi hasil klasterisasi dalam K-Means dan metode klasterisasi lainnya. Dengan menghitung rata-rata koefisien untuk setiap klaster, metode ini memberikan penilaian langsung terhadap kualitas klasterisasi. Jumlah klaster dipilih berdasarkan nilai k dengan rata-rata Silhouette coefficient tertinggi, yang menunjukkan pembagian data dengan kualitas dan kekuatan klaster terbaik.

Untuk menangani kompleksitas variabel demografis yang beragam, beberapa penelitian juga menggabungkan K-Means dengan Principal Component Analysis (PCA) sebagai teknik reduksi dimensi. Menurut Hidayat dan Rahmawati (2020), PCA membantu mengurangi jumlah variabel tanpa kehilangan informasi penting, sehingga memudahkan identifikasi faktor-faktor demografis utama yang memengaruhi perilaku belanja. Kombinasi ini memberikan hasil yang lebih akurat dan mengidentifikasi segmen pengunjung dengan lebih efisien.

Data

Data dikumpulkan melalui penelitian kuantitatif yang disajikan dalam bentuk angka dan dianalisis menggunakan metode statistik. Penelitian ini bertujuan untuk mengidentifikasi segmentasi pengunjung mal berdasarkan variabel seperti usia, pendapatan tahunan (dalam ribuan USD), dan pengeluaran tahunan (dalam ribuan USD). Di samping ketiga variabel ini, variabel gender juga disertakan untuk menunjukkan perbandingan pengunjung mal berdasarkan jenis kelamin.

Penelitian ini menggunakan data sekunder yang tersedia untuk umum dan dapat digunakan secara terbuka dari website kaggle.com. (Link: https://www.kaggle.com/datasets/baktisiregar/datapengunjungmall) Data yang digunakan merupakan kumpulan data yang hanya dibuat publisher untuk tujuan pembelajaran konsep segmentasi pelanggan.

HASIL DAN PEMBAHASAN SOURCE CODE

Library yang Dibutuhkan

> library ("readr")
> library ("plotrix")
> library ("ggplot2")
> library ("corrplot")
> library ("factoextra")
> library ("NbClust")
> 

Setiap library memiliki fungsi tertentu sebagai berikut:

  • readr: digunakan untuk membaca file CSV yang diambil dari sumber data, seperti Kaggle.
  • plotrix: menyediakan plot khusus dan fungsi aksesori, seperti scaling warna, penempatan teks, serta pembuatan legenda.
  • ggplot2: berfungsi membuat grafik secara deklaratif dengan pemetaan variabel berdasarkan estetika dan mendetail sesuai konsep The Grammar of Graphics.
  • corrplot: menampilkan visualisasi grafis dari matriks korelasi beserta interval kepercayaannya.
  • factoextra: memvisualisasikan objek dalam berbagai kelas.
  • NbClust: menentukan jumlah klaster optimal dan merekomendasikan skema pengelompokan terbaik bagi pengguna.

Input Data

Setelah mengunduh data dari kaggle, input data sebagai berikut.

> library(readxl)
> Pengunjung_Mall <- read_excel("C:/Users/THINKPAD/Downloads/Pengunjung_Mall.xlsx")
> View(Pengunjung_Mall)

Menyederhanakan nama kolom

> colnames(Pengunjung_Mall) <- c("ID_Pelanggan","Gender","Usia","Pendapatan","Pengeluaran")

Perintah ini akan mengganti nama kolom dari file yang telah diinput menjadi “ID_Pelanggan”,“Gender”,“Usia”,“Pendapatan”, dan “Pengeluaran”.

Menyesuaikan tipe data

Penyesuaian Tipe Data

Dalam file data yang diimpor, kolom gender terbaca dalam bentuk karakter (chr). Agar data ini dapat dianalisis lebih lanjut dengan tepat, tipe data pada kolom gender perlu diubah menjadi tipe faktor yang terdiri dari dua kategori, yaitu “Pria” dan “Wanita”.

> Pengunjung_Mall$Gender <- as.factor(Pengunjung_Mall$Gender)

Data

> head(Pengunjung_Mall)
# A tibble: 6 × 5
  ID_Pelanggan Gender  Usia Pendapatan Pengeluaran
         <dbl> <fct>  <dbl>      <dbl>       <dbl>
1            1 Pria      19         15          39
2            2 Pria      21         15          81
3            3 Wanita    20         16           6
4            4 Wanita    23         16          77
5            5 Wanita    31         17          40
6            6 Wanita    22         17          76
> str(Pengunjung_Mall)
tibble [200 × 5] (S3: tbl_df/tbl/data.frame)
 $ ID_Pelanggan: num [1:200] 1 2 3 4 5 6 7 8 9 10 ...
 $ Gender      : Factor w/ 2 levels "Pria","Wanita": 1 1 2 2 2 2 2 2 1 2 ...
 $ Usia        : num [1:200] 19 21 20 23 31 22 35 23 64 30 ...
 $ Pendapatan  : num [1:200] 15 15 16 16 17 17 18 18 19 19 ...
 $ Pengeluaran : num [1:200] 39 81 6 77 40 76 6 94 3 72 ...

Berdasarkan hasil yang ditampilkan di atas, dapat disimpulkan bahwa struktur data pada variabel gender (jenis kelamin) merupakan tipe faktor (kualitatif). Oleh karena itu, analisis variabel ini akan lebih sesuai jika dilakukan dengan melihat frekuensi atau persentase antar kategori menggunakan pie chart.

Statistika Deskriptif

> summary(Pengunjung_Mall)
  ID_Pelanggan       Gender         Usia         Pendapatan      Pengeluaran   
 Min.   :  1.00   Pria  : 88   Min.   :18.00   Min.   : 15.00   Min.   : 1.00  
 1st Qu.: 50.75   Wanita:112   1st Qu.:28.75   1st Qu.: 41.50   1st Qu.:34.75  
 Median :100.50                Median :36.00   Median : 61.50   Median :50.00  
 Mean   :100.50                Mean   :38.85   Mean   : 60.56   Mean   :50.20  
 3rd Qu.:150.25                3rd Qu.:49.00   3rd Qu.: 78.00   3rd Qu.:73.00  
 Max.   :200.00                Max.   :70.00   Max.   :137.00   Max.   :99.00  

Fungsi summary memberikan informasi mengenai statistik deskriptif seperti nilai rata-rata, minimum, maksimum, kuartil, dan median dari data. Berdasarkan hasil summary, terlihat bahwa jumlah pengunjung wanita lebih banyak dibandingkan pria. Untuk variabel usia, pendapatan, dan pengeluaran, terdapat rentang nilai yang cukup besar sehingga memungkinkan analisis lebih mendalam. Pengunjung termuda berusia 18 tahun, sedangkan pengunjung tertua mencapai 70 tahun, dengan rata-rata usia pengunjung adalah 38 tahun. Pendapatan tahunan pengunjung berkisar dari minimum 15 ribu USD hingga maksimum 137 ribu USD, dengan mayoritas pengunjung memiliki pendapatan sekitar 60,56 ribu USD per tahun. Pengeluaran tahunan pengunjung memiliki kisaran antara 1 ribu USD hingga 99 ribu USD, dengan rata-rata pengeluaran sebesar 50,2 ribu USD per tahun.

Visualisasi Data Gender

> Gender <- table(Pengunjung_Mall$Gender)
> persentase <- round(Gender/sum(Gender)*100)
> label <- paste(c("Pria", "Wanita"), " ", persentase, "%", sep = " ")
> library(plotrix)
> pie3D(Gender, labels = label, main = "Perbandingan Pengunjung", 
+       col = c("#3399FF","#FF99CC"))

Karena variabel gender bersifat kategorikal, analisis visual menggunakan pie chart sudah cukup untuk menunjukkan bahwa jumlah pengunjung wanita lebih besar dibandingkan pria. Untuk memvisualisasikannya, data pada variabel gender terlebih dahulu dibuat dalam bentuk tabel frekuensi, kemudian dihitung persentase masing-masing kategori. Pie chart ini kemudian dibuat menggunakan fungsi pie3D dari package plotrix.

Visualisasi Data Usia

> boxplot(Pengunjung_Mall$Usia, col = "#3BB9A0", main = "Boxplot Usia Pengunjung")

Variabel usia divisualisasikan menggunakan boxplot, yang dibuat dengan memanfaatkan fungsi boxplot(data, ...). Hasil visualisasi ini menunjukkan bahwa mayoritas pengunjung berada pada rentang usia sekitar 30-an tahun. Berdasarkan temuan ini, produk-produk yang dijual di mal sebaiknya disesuaikan untuk lebih memenuhi kebutuhan serta minat kelompok usia 30-an, mengingat dominasi mereka di antara pengunjung.

Visualisasi Data Pendapatan Tahunan

> library(ggplot2)
> ggplot(Pengunjung_Mall, aes(x = Pendapatan)) +
+          geom_histogram(aes(y = ..count..), binwidth = 5, 
+                         col = "darkgreen", fill = "#3BB9A0") +
+          scale_x_continuous(name = "Pendapatan Tahunan", breaks = seq(0, 150, 20)) +
+          scale_y_continuous(name = "Frekuensi",breaks = seq(0, 50, 5)) +
+          ggtitle("Histogram Pendapatan Tahunan Pengunjung") +
+          geom_vline(xintercept = mean(Pengunjung_Mall$Pendapatan), 
+            size = 1, colour = "#FF3721",linetype = "dashed")

Data pada variabel pendapatan divisualisasikan dalam bentuk histogram yang dibuat menggunakan fungsi ggplot, dengan ukuran bin sebesar 5. Rentang sumbu x ditetapkan dari 0 hingga 150 dengan interval 20, sedangkan sumbu y berkisar dari 0 hingga 50 dengan interval 5. Histogram ini dilengkapi dengan kurva menggunakan fungsi geom_vline, yang membantu menampilkan pola distribusi data. Dari hasil plot, terlihat bahwa data cenderung berdistribusi normal, dan pengunjung dengan pendapatan tahunan sekitar 60 ribu USD memiliki frekuensi paling tinggi.

Visualisasi Data Pengeluaran Pengunjung

> ggplot(Pengunjung_Mall, aes(x = Pengeluaran)) +
+   geom_histogram(aes(y = ..count..), binwidth = 5, 
+                  col = "darkgreen", fill = "#3BB9A0") +
+   scale_x_continuous(name = "Pengeluaran", breaks = seq(0, 100, 20)) +
+   scale_y_continuous(name = "Frekuensi",breaks = seq(0, 50, 5)) +
+   ggtitle("Histogram Pengeluaran Pengunjung") +
+   geom_vline(xintercept = mean(Pengunjung_Mall$Pengeluaran), 
+              size = 1, colour = "#FF3721",linetype = "dashed")

Visualisasi data pengeluaran dilakukan dengan cara yang sama seperti pada data pendapatan, yaitu menggunakan histogram. Berdasarkan hasil histogram, dapat dilihat bahwa sebagian besar pengunjung memiliki pengeluaran tahunan yang paling tinggi berada di kisaran antara 40 ribu hingga 60 ribu USD. Hal ini menunjukkan konsentrasi pengeluaran yang signifikan pada rentang tersebut di antara para pengunjung mal.

Analisis Korelasi

Nilai korelasi antar variabel menunjukkan angka yang cenderung kecil, yang mengindikasikan bahwa masing-masing variabel memiliki keragaman yang cukup berbeda. Matriks korelasi menyajikan hubungan antara dua variabel dengan lebih rinci, sementara fungsi corrplot digunakan untuk memvisualisasikan korelasi tersebut dalam bentuk grafik. Dalam analisis ini, parameter t.cex atau ukuran teks pada judul grafik diatur sedemikian rupa agar tetap terbaca dengan jelas tanpa terlihat terlalu besar.

> library(corrplot)
> matriks_korelasi <- cor(Pengunjung_Mall[3:5])
> matriks_korelasi
                   Usia   Pendapatan  Pengeluaran
Usia         1.00000000 -0.012398043 -0.327226846
Pendapatan  -0.01239804  1.000000000  0.009902848
Pengeluaran -0.32722685  0.009902848  1.000000000
> corrplot(matriks_korelasi, method = "number", tl.cex = 0.7, bg = "#CCE5FF")

K-Means Clustering

Jumlah klaster yang perlu dibentuk ditentukan menggunakan metode Silhouette (Silhouette method). Klaster yang optimal akan memiliki nilai rata-rata Silhouette coefficient yang tertinggi, yang menandakan bahwa data dalam klaster tersebut lebih kohesif dan terpisah dengan baik dari klaster lainnya.

> library(NbClust)
> require(ggplot2)
> library(factoextra)
> fviz_nbclust(Pengunjung_Mall[,3:5], kmeans, method = "silhouette")

> k6 <- kmeans(Pengunjung_Mall[,3:5], 6, iter.max = 100, nstart = 50, algorithm = "Lloyd")
> k6
K-means clustering with 6 clusters of sizes 22, 38, 21, 35, 39, 45

Cluster means:
      Usia Pendapatan Pengeluaran
1 25.27273   25.72727    79.36364
2 27.00000   56.65789    49.13158
3 44.14286   25.14286    19.52381
4 41.68571   88.22857    17.28571
5 32.69231   86.53846    82.12821
6 56.15556   53.37778    49.08889

Clustering vector:
  [1] 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3
 [38] 1 3 1 6 1 6 2 3 1 6 2 2 2 6 2 2 6 6 6 6 6 2 6 6 2 6 6 6 2 6 6 2 2 6 6 6 6
 [75] 6 2 6 2 2 6 6 2 6 6 2 6 6 2 2 6 6 2 6 2 2 2 6 2 6 2 2 6 6 2 6 2 6 6 6 6 6
[112] 2 2 2 2 2 6 6 6 6 2 2 2 5 2 5 4 5 4 5 4 5 2 5 4 5 4 5 4 5 4 5 2 5 4 5 4 5
[149] 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4
[186] 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5

Within cluster sum of squares by cluster:
[1]  4099.818  7742.895  7732.381 16690.857 13972.359  8062.133
 (between_SS / total_SS =  81.1 %)

Available components:

[1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
[6] "betweenss"    "size"         "iter"         "ifault"      

Dapat disimpulkan bahwa 6 adalah jumlah klaster yang tepat karena memiliki rata-rata Silhouette coefficient tertinggi, yang menunjukkan klastering yang optimal. Rata-rata usia, pendapatan, dan pengeluaran untuk masing-masing klaster dapat dilihat pada bagian cluster means, yang memberikan gambaran lebih jelas mengenai karakteristik tiap klaster berdasarkan variabel-variabel tersebut.

Visualisasi hasil Klastering

Berikut ini ditunjukkan grafik kombinasi 2 dari 3 variabel usia, pendapatan, dan pengeluaran pengunjung untuk memperjelas klasifikasi pada masing-masing klaster. Adapun fungsi set.seed yang sama akan menjaga agar klaster yang digunakan tetap konsisten dan nomor klaster tidak berubah.

> #Berdasarkan Penghasilan dan Pengeluaran
> set.seed(666)
> ggplot(Pengunjung_Mall, 
+        aes(x =Pendapatan, y = Pengeluaran)) + 
+   geom_point(stat = "identity", aes(color = as.factor(k6$cluster))) +
+   scale_color_discrete(name=" ",breaks=c("1", "2", "3", "4", "5","6"),
+                        labels=c("Cluster 1", "Cluster 2", "Cluster 3", 
+                                 "Cluster 4", "Cluster 5","Cluster 6")) +
+   ggtitle("Pengunjung Mall berdasarkan Penghasilan dan Pengeluaran",
+           subtitle = "K-means Clustering")

> 
> #Berdasarkan Pengeluaran dan Usia
> set.seed(666)
> ggplot(Pengunjung_Mall, aes(x =Pengeluaran, y =Usia)) + 
+   geom_point(stat = "identity", aes(color = as.factor(k6$cluster))) +
+   scale_color_discrete(name=" ", breaks=c("1", "2", "3", "4", "5","6"),
+                        labels=c("Cluster 1", "Cluster 2", "Cluster 3", 
+                                 "Cluster 4", "Cluster 5","Cluster 6")) +
+   ggtitle("Pengunjung Mall Berdasarkan Pengeluaran dan Usia", 
+           subtitle = "K-means Clustering")

> 
> #Berdasarkan Pendapatan dan Usia
> set.seed(666)
> ggplot(Pengunjung_Mall, aes(x =Pendapatan, y =Usia)) + 
+   geom_point(stat = "identity", aes(color = as.factor(k6$cluster))) +
+   scale_color_discrete(name=" ", breaks=c("1", "2", "3", "4", "5","6"),
+                        labels=c("Cluster 1", "Cluster 2", "Cluster 3", 
+                                 "Cluster 4", "Cluster 5","Cluster 6")) +
+   ggtitle("Pengunjung Mall Berdasarkan Pendapatan dan Usia", 
+           subtitle = "K-means Clustering")

Berdasarkan ketiga grafik visualisasi di atas, segmen pengunjung mall untuk setiap klaster memiliki karakteristik sebagai berikut:

Pendapatan dan Pengeluaran:

  • Cluster 6 dan 2: Pengunjung dengan pengeluaran menengah dan pendapatan tahunan menengah.
  • Cluster 1: Pengunjung dengan pendapatan tahunan rendah dan pengeluaran tahunan tinggi.
  • Cluster 3: Pengunjung dengan pendapatan tahunan rendah dan pengeluaran tahunan rendah.
  • Cluster 4: Pengunjung dengan pendapatan tahunan tinggi, namun pengeluaran tahunan rendah.
  • Cluster 5: Pengunjung dengan pendapatan tahunan tinggi dan pengeluaran tahunan tinggi.

Usia dan Pengeluaran:

  • Cluster 6: Pengunjung berusia tua (45 tahun ke atas) dengan pengeluaran menengah.
  • Cluster 5: Pengunjung berusia muda (25-32 tahun) dengan pengeluaran tinggi.
  • Cluster 1 dan 4: Pengunjung dengan usia dominan antara 30 hingga 60 tahun, dengan pengeluaran tinggi dan rendah.
  • Cluster 3: Pengunjung dengan usia tua (45 tahun ke atas) dan pengeluaran rendah.
  • Cluster 2: Pengunjung usia muda (di bawah 40 tahun) dengan pengeluaran menengah.

Usia dan Pendapatan:

  • Cluster 1 dan 3: Pengunjung dengan pendapatan rendah (di bawah 50 ribu USD per tahun), baik usia muda maupun tua.
  • Cluster 2 dan 6: Pengunjung dengan pendapatan menengah, usia di bawah 40 tahun (Cluster 2) dan lebih dari 45 tahun (Cluster 6).
  • Cluster 4 dan 5: Pengunjung dengan pendapatan tinggi, usia lebih besar dari 45 tahun (Cluster 4) dan lebih kecil dari 40 tahun (Cluster 5).

Karakteristik-klaster ini dapat membantu pengelola mall dalam merancang strategi pemasaran yang lebih terfokus pada kebutuhan masing-masing segmen pengunjung.

Analisis PCA

> set.seed(666)
> clust_pc <- prcomp(Pengunjung_Mall[,3:5])
> summary(clust_pc)
Importance of components:
                           PC1     PC2     PC3
Standard deviation     26.4625 26.1597 12.9317
Proportion of Variance  0.4512  0.4410  0.1078
Cumulative Proportion   0.4512  0.8922  1.0000

Model yang dibangun dengan variabel usia, pendapatan, dan pengeluaran menghasilkan 3 komponen utama. Namun, dua komponen pertama sudah cukup untuk menjelaskan 89,2% dari total variansi model. Oleh karena itu, hanya dua komponen utama yang digunakan untuk analisis lebih lanjut, karena keduanya mampu mewakili sebagian besar informasi yang ada dalam data.

> #Persamaan PC
> clust_pc$rotation[,1:2]
                   PC1        PC2
Usia         0.1889742 -0.1309652
Pendapatan  -0.5886410 -0.8083757
Pengeluaran -0.7859965  0.5739136

Didapatkan model PC sebagai berikut. \[ \begin{gathered} P C_1=0.189 Usia-0.589 Pendapatan-0.786 Pengeluaran \\ P C_2=-0.131 Usia-0.808 Pendapatan+0.574 Pengeluaran \end{gathered} \] Persamaan tersebut menjelaskan pengaruh kenaikan sebanyak 1 satuan pada masing-masing variabel sebanyak koefisiennya terhadap model.

Visualisasi Hasil Analisis secara Keseluruhan

> kCols <- function(vec){cols=rainbow (length (unique (vec)))
+          return (cols[as.numeric(as.factor(vec))])}
> Cluster<-k6$cluster; name<-as.character(Cluster);  # K-means clustering
> plot(clust_pc$x[,1:2], col =kCols(Cluster),pch =19,xlab ="K-means",ylab="Classes")
> legend("bottomright",unique(name),fill=unique(kCols(Cluster)), cex = 0.6)

Setelah dilakukan analisis menggunakan PCA, klaster yang terbentuk dapat disederhanakan dan dijelaskan dengan karakteristik sebagai berikut:

  • Cluster 2: Pengunjung dengan pendapatan dan pengeluaran menengah, dengan rentang usia yang bervariasi.
  • Cluster 3: Pengunjung dengan pendapatan dan pengeluaran rendah, dengan rentang usia yang bervariasi.
  • Cluster 6: Pengunjung dengan pendapatan dan pengeluaran menengah, dengan usia rata-rata sekitar 45 tahun ke atas.
  • Cluster 5: Pengunjung dengan pengeluaran dan pendapatan tinggi, dengan usia di kisaran 30-an.
  • Cluster 4: Pengunjung dengan pengeluaran rendah, usia tua, dan pendapatan tinggi.
  • Cluster 1: Pengunjung dengan pengeluaran tinggi namun pendapatan rendah, yang sebagian besar berada pada usia muda.

Klaster-klaster ini memberikan gambaran yang lebih jelas mengenai berbagai segmen pengunjung mal berdasarkan pendapatan, pengeluaran, dan usia.

Hasil Analisis

Hasil analisis menunjukkan bahwa pengunjung dengan pendapatan menengah umumnya memiliki pengeluaran yang juga menengah. Selain itu, terdapat sebuah klaster yang menunjukkan adanya pengunjung dengan pengeluaran tinggi namun pendapatannya rendah, yang umumnya didominasi oleh pengunjung muda. Di sisi lain, pengunjung yang lebih tua cenderung memiliki pendapatan menengah hingga tinggi, tetapi pengeluaran mereka lebih rendah. Pengunjung berusia 30-an tampaknya menjadi target pemasaran yang ideal, karena selain memiliki frekuensi kunjungan tertinggi di antara pengunjung mal, kelompok ini juga memiliki pendapatan dan pengeluaran yang relatif lebih tinggi.

KESIMPULAN DAN SARAN

Dengan menggunakan K-Means Clustering yang dilengkapi dengan analisis PCA, pengelola mall dapat memperoleh wawasan yang lebih mendalam mengenai karakteristik pengunjung, sehingga dapat membuat keputusan yang lebih tepat dalam merancang strategi pemasaran dan penataan produk. Berdasarkan analisis berdasarkan gender, terlihat bahwa pengunjung wanita lebih sering mengunjungi mall. Sementara itu, berdasarkan usia, pengunjung berusia 30-an menjadi kelompok yang paling potensial untuk dijadikan target pemasaran. Oleh karena itu, untuk mencapai hasil yang optimal, penting bagi pengelola untuk fokus pada pemenuhan kebutuhan kelompok usia ini.

DAFTAR PUSTAKA

Adiana, N., Riza, S., & Wijaya, R. (2018). Segmentasi Konsumen dalam Pemasaran: Pendekatan dengan K-Means Clustering. Jurnal Manajemen Pemasaran, 12(2), 145-160.

Chandra, D., & Wijaya, M. (2006). Pengaruh Faktor Demografis terhadap Perilaku Konsumen dalam Pengambilan Keputusan Pembelian. Jurnal Ekonomi dan Bisnis, 9(3), 215-225.

Furqon, A., & Widodo, D. (2017). Aplikasi Silhouette Coefficient dalam Evaluasi Kualitas Klastering pada Data Konsumen. Jurnal Sistem Informasi dan Komputer, 10(4), 301-315.

Hidayat, F., & Rahmawati, S. (2020). Penerapan Principal Component Analysis untuk Reduksi Dimensi dalam Analisis Segmentasi Pasar. Jurnal Riset dan Teknologi, 15(1), 56-70.

Jain, A. K. (2010). Data Clustering: 50 Years Beyond K-Means. Pattern Recognition Letters, 31(8), 651-666.

Kaufman, L., & Rousseeuw, P. J. (2005). Finding Groups in Data: An Introduction to Cluster Analysis. Wiley-Interscience.

Nanda, S. R., Mahanty, B., & Tiwari, M. K. (2010). Clustering Indian stock market data for portfolio management. Expert Systems with Applications, 37(12), 8793-8798.

Rousseeuw, P. J. (1987). Silhouettes: A Graphical Aid to the Interpretation and Validation of Cluster Analysis. Journal of Computational and Graphical Statistics, 1(1), 53-65.

Sharma, R., Kumar, V., & Gupta, N. (2019). Evaluating Clustering Algorithms Using Silhouette Coefficient and Other Metrics. International Journal of Computer Applications, 45(3), 103-112.