Industri smartphone di Indonesia mengalami pertumbuhan pesat dengan persaingan yang sangat dinamis. Berbagai brand internasional dan lokal berlomba-lomba merebut pangsa pasar dengan strategi positioning yang berbeda-beda. Memahami persepsi konsumen terhadap berbagai brand menjadi krusial untuk merancang strategi pemasaran yang efektif.
Multi-Dimensional Scaling (MDS) merupakan teknik analisis multivariat yang powerful untuk memvisualisasikan struktur kompleks dari data kedekatan (proximity data) dalam ruang dimensi rendah. Teknik ini memungkinkan peneliti untuk mengidentifikasi posisi relatif objek berdasarkan kesamaan atau perbedaan, mengungkap dimensi-dimensi laten yang mendasari persepsi konsumen, menemukan pola clustering dan segmentasi pasar, serta memberikan insight strategis untuk positioning dan diferensiasi brand.
MDS adalah sekelompok teknik statistik yang mentransformasikan penilaian kedekatan (proximity) antar n objek menjadi representasi geometris dalam ruang p-dimensi (biasanya p=2 atau 3). Tujuan utama MDS adalah menemukan konfigurasi titik-titik dalam ruang berdimensi rendah sedemikian rupa sehingga jarak antar titik sesuai dengan dissimilarity data asli.
Misalkan kita memiliki matriks dissimilarity D dengan elemen d(ij) yang merepresentasikan ketidaksamaan antara objek i dan j. MDS mencari konfigurasi X yang meminimalkan fungsi stress:
STRESS = sqrt(sum((d_ij - d_hat_ij)^2) / sum(d_ij^2))
dimana d(ij) adalah dissimilarity observasi dan d-hat(ij) adalah jarak dalam konfigurasi MDS.
Metric MDS (Classical MDS): Mengasumsikan data berskala interval atau rasio. Menggunakan eigenvalue decomposition untuk mendapatkan koordinat.
Non-metric MDS: Hanya mempertahankan urutan (ranking) dari dissimilarity. Lebih fleksibel dan robust terhadap transformasi monoton.
STRESS Value: Mengukur seberapa baik fit model MDS -
STRESS < 0.05: Excellent fit - STRESS < 0.10: Good fit
- STRESS < 0.20: Fair fit - STRESS > 0.20: Poor fit
R-squared: Proporsi varians yang dijelaskan oleh model Variance Accounted For (VAF): Proporsi varians yang direpresentasikan oleh dimensi MDS
Penelitian ini bertujuan untuk:
Data penelitian ini dibangkitkan untuk mensimulasikan hasil survei persepsi konsumen terhadap 10 brand smartphone berdasarkan 7 atribut kunci.
set.seed(20241216)
brands <- c("Samsung", "Apple", "Xiaomi", "Oppo", "Vivo",
"Realme", "Infinix", "Tecno", "Nokia", "Asus")
attributes <- c("Harga_Terjangkau", "Kualitas_Kamera", "Performa_Prosesor",
"Desain_Elegan", "Daya_Tahan_Baterai", "Brand_Prestige",
"Value_for_Money")
# Profil brand berdasarkan positioning pasar
samsung <- c(5, 9, 9, 8, 8, 9, 7)
apple <- c(2, 9, 10, 10, 7, 10, 4)
xiaomi <- c(9, 8, 8, 7, 8, 6, 10)
oppo <- c(6, 9, 7, 8, 7, 7, 7)
vivo <- c(6, 9, 7, 8, 7, 7, 7)
realme <- c(9, 7, 8, 7, 9, 6, 9)
infinix <- c(10, 6, 6, 6, 10, 5, 9)
tecno <- c(10, 6, 6, 6, 9, 5, 9)
nokia <- c(7, 7, 7, 6, 9, 6, 7)
asus <- c(6, 7, 10, 7, 8, 7, 8)
data_mean <- rbind(samsung, apple, xiaomi, oppo, vivo,
realme, infinix, tecno, nokia, asus)
# Tambahkan noise realistis
data_matrix <- data_mean + matrix(rnorm(70, 0, 0.3), nrow = 10, ncol = 7)
data_matrix <- pmax(pmin(data_matrix, 10), 1)
rownames(data_matrix) <- brands
colnames(data_matrix) <- attributes
df <- as.data.frame(data_matrix)
kable(round(df, 2),
caption = "Data Rating Persepsi Konsumen terhadap Brand Smartphone (Skala 1-10)") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"),
full_width = FALSE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#FFB6C1") %>%
column_spec(1, bold = TRUE, color = "#D5587C", background = "#FFF5F7")| Harga_Terjangkau | Kualitas_Kamera | Performa_Prosesor | Desain_Elegan | Daya_Tahan_Baterai | Brand_Prestige | Value_for_Money | |
|---|---|---|---|---|---|---|---|
| Samsung | 5.17 | 8.43 | 8.73 | 8.01 | 7.29 | 9.29 | 6.84 |
| Apple | 1.60 | 9.18 | 9.87 | 9.83 | 7.35 | 9.68 | 4.26 |
| Xiaomi | 8.87 | 7.88 | 8.05 | 6.61 | 8.01 | 6.12 | 10.00 |
| Oppo | 5.78 | 8.40 | 7.08 | 7.84 | 7.86 | 6.94 | 6.97 |
| Vivo | 5.19 | 8.68 | 7.10 | 7.86 | 7.49 | 7.35 | 6.97 |
| Realme | 8.91 | 7.15 | 7.82 | 6.41 | 9.28 | 5.98 | 9.18 |
| Infinix | 10.00 | 6.19 | 6.62 | 6.12 | 10.00 | 4.78 | 8.88 |
| Tecno | 10.00 | 6.21 | 5.88 | 5.75 | 9.14 | 4.68 | 9.13 |
| Nokia | 6.88 | 7.05 | 7.10 | 5.99 | 8.82 | 6.22 | 6.78 |
| Asus | 5.76 | 6.63 | 9.44 | 7.32 | 8.15 | 6.91 | 8.08 |
Dataset terdiri dari 10 brand smartphone yang dinilai berdasarkan 7 atribut dengan skala 1-10:
desc_stats <- data.frame(
Atribut = attributes,
Mean = colMeans(df),
Median = apply(df, 2, median),
SD = apply(df, 2, sd),
Min = apply(df, 2, min),
Max = apply(df, 2, max)
)
kable(desc_stats, digits = 2,
caption = "Statistik Deskriptif Atribut Smartphone") %>%
kable_styling(bootstrap_options = c("striped", "hover"),
full_width = FALSE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#FFB6C1")| Atribut | Mean | Median | SD | Min | Max | |
|---|---|---|---|---|---|---|
| Harga_Terjangkau | Harga_Terjangkau | 6.82 | 6.33 | 2.66 | 1.60 | 10.00 |
| Kualitas_Kamera | Kualitas_Kamera | 7.58 | 7.51 | 1.07 | 6.19 | 9.18 |
| Performa_Prosesor | Performa_Prosesor | 7.77 | 7.46 | 1.27 | 5.88 | 9.87 |
| Desain_Elegan | Desain_Elegan | 7.17 | 6.96 | 1.25 | 5.75 | 9.83 |
| Daya_Tahan_Baterai | Daya_Tahan_Baterai | 8.34 | 8.08 | 0.92 | 7.29 | 10.00 |
| Brand_Prestige | Brand_Prestige | 6.79 | 6.56 | 1.66 | 4.68 | 9.68 |
| Value_for_Money | Value_for_Money | 7.71 | 7.53 | 1.68 | 4.26 | 10.00 |
brand_stats <- data.frame(
Brand = brands,
Mean_Rating = rowMeans(df),
SD = apply(df, 1, sd)
) %>% arrange(desc(Mean_Rating)) %>%
mutate(Rank = row_number())
kable(brand_stats, digits = 2,
caption = "Rating Rata-Rata dan Ranking Brand") %>%
kable_styling(bootstrap_options = c("striped", "hover"),
full_width = FALSE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#FFB6C1") %>%
row_spec(1, bold = TRUE, background = "#FFE8EE") %>%
column_spec(1, bold = TRUE, color = "#D5587C")| Brand | Mean_Rating | SD | Rank | |
|---|---|---|---|---|
| Xiaomi | Xiaomi | 7.93 | 1.31 | 1 |
| Realme | Realme | 7.82 | 1.36 | 2 |
| Samsung | Samsung | 7.68 | 1.38 | 3 |
| Infinix | Infinix | 7.51 | 2.09 | 4 |
| Asus | Asus | 7.47 | 1.20 | 5 |
| Apple | Apple | 7.40 | 3.26 | 6 |
| Oppo | Oppo | 7.27 | 0.86 | 7 |
| Tecno | Tecno | 7.26 | 2.10 | 8 |
| Vivo | Vivo | 7.24 | 1.07 | 9 |
| Nokia | Nokia | 6.98 | 0.91 | 10 |
df_long <- df %>%
mutate(Brand = rownames(df)) %>%
pivot_longer(cols = -Brand, names_to = "Atribut", values_to = "Rating")
ggplot(df_long, aes(x = reorder(Atribut, Rating, FUN = median),
y = Rating, fill = Atribut)) +
geom_boxplot(alpha = 0.8, outlier.color = "#D5587C") +
stat_summary(fun = mean, geom = "point", shape = 23, size = 3,
fill = "white", color = "#D5587C") +
scale_fill_brewer(palette = "RdPu") +
coord_flip() +
labs(title = "Distribusi Rating per Atribut Smartphone",
subtitle = "Diamond = Mean, Box = IQR",
x = "Atribut", y = "Rating (1-10)") +
theme_minimal() +
theme(
legend.position = "none",
plot.title = element_text(hjust = 0.5, face = "bold", color = "#D5587C", size = 14),
plot.subtitle = element_text(hjust = 0.5, color = "#D5587C", size = 10),
panel.background = element_rect(fill = "#FFF5F7", color = NA)
)
Daya tahan baterai dan performa prosesor memperoleh median tinggi dengan
sebaran relatif sempit, yang mengindikasikan tingkat kepuasan pengguna
yang konsisten dan pengalaman penggunaan yang stabil lintas responden.
Kualitas kamera juga dinilai baik, meskipun tidak tampil sebagai faktor
pembeda utama karena variasi penilaiannya masih moderat.
Sebaliknya, atribut yang bersifat perseptual memperlihatkan heterogenitas penilaian yang lebih besar. Harga terjangkau dan value for money memiliki rentang rating paling lebar, menandakan perbedaan ekspektasi pengguna terhadap kesesuaian harga dan manfaat yang diterima. Brand prestige memperoleh median paling rendah dibandingkan atribut lain, menunjukkan bahwa citra merek belum sepenuhnya dipersepsikan kuat atau premium oleh mayoritas pengguna. Secara keseluruhan, temuan ini mengindikasikan bahwa kepuasan konsumen lebih didorong oleh kinerja nyata produk dibandingkan oleh persepsi nilai dan citra merek, sehingga peningkatan strategi harga dan positioning merek menjadi area kunci untuk memperkuat kepuasan secara menyeluruh.
df_melt <- melt(as.matrix(df))
ggplot(df_melt, aes(x = Var2, y = Var1, fill = value)) +
geom_tile(color = "white", size = 0.5) +
scale_fill_gradient2(
low = "#FFF0F3",
mid = "#FFB6C1",
high = "#D5587C",
midpoint = median(df_melt$value),
name = "Rating"
) +
geom_text(aes(label = round(value, 1)),
color = "black", size = 3, fontface = "bold") +
labs(title = "Heatmap Rating Brand per Atribut",
x = "Atribut", y = "Brand") +
theme_minimal() +
theme(
axis.text.x = element_text(angle = 45, hjust = 1),
plot.title = element_text(hjust = 0.5, face = "bold", color = "#D5587C", size = 14),
panel.background = element_rect(fill = "#FFF5F7", color = NA)
)
Heatmap menunjukkan bahwa keunggulan tiap brand bersifat
spesifik pada atribut tertentu. Infinix dan Xiaomi
menonjol pada harga terjangkau dan value for money,
mencerminkan positioning kuat di segmen value-driven, sementara Apple
dan Samsung unggul pada performa, kamera, dan daya
tahan, tetapi relatif lemah pada persepsi harga. Oppo, Vivo,
dan Realme berada di posisi menengah dan seimbang tanpa
dominasi ekstrem, sedangkan brand seperti Tecno dan Nokia menunjukkan
performa atribut yang cenderung moderat. Secara keseluruhan, pola ini
menegaskan adanya segmentasi pasar yang jelas, di mana
kompetisi tidak terjadi secara menyeluruh, melainkan pada atribut yang
selaras dengan strategi dan target konsumen masing-masing brand.
top5_brands <- brand_stats$Brand[1:5]
df_top5 <- df[top5_brands, ]
df_radar <- rbind(
rep(10, 7),
rep(1, 7),
df_top5
)
colors_border <- c("#8B1538", "#D5587C", "#E88CA7", "#FFB6C1", "#FFC0CB")
colors_fill <- paste0(colors_border, "30")
par(mar = c(1, 1, 4, 1), bg = "#FFF5F7")
radarchart(
df_radar,
axistype = 1,
pcol = colors_border,
pfcol = colors_fill,
plwd = 2.5,
plty = 1,
cglcol = "grey70",
cglty = 1,
axislabcol = "#D5587C",
caxislabels = c("2", "4", "6", "8", "10"),
vlcex = 0.85,
title = "Profil 5 Brand Smartphone Teratas",
cex.main = 1.3,
col.main = "#D5587C"
)
legend(
x = 1.3, y = 1.3,
legend = top5_brands,
col = colors_border,
lty = 1, lwd = 2.5,
cex = 0.85,
bty = "n",
text.col = "#D5587C"
)
Radar chart memperlihatkan diferensiasi yang jelas antar lima brand
teratas. Xiaomi dan Infinix kuat pada harga terjangkau dan value
for money, menegaskan fokus pada efisiensi biaya, namun relatif
lebih lemah pada brand prestige. Samsung dan Asus
menunjukkan profil yang lebih seimbang, dengan
keunggulan pada performa prosesor dan kualitas kamera,
mencerminkan orientasi pada kualitas dan keandalan produk. Realme berada
di posisi transisi dengan performa cukup merata, tetapi tidak
mendominasi pada satu atribut spesifik. Secara keseluruhan, visual ini
menegaskan bahwa keunggulan kompetitif masing-masing brand dibangun
melalui kombinasi atribut yang berbeda, bukan
keunggulan menyeluruh di semua dimensi.
cor_attributes <- cor(df)
corrplot(
cor_attributes,
method = "color",
type = "upper",
col = colorRampPalette(c("#FFF5F7", "#FFB6C1", "#D5587C"))(100),
tl.col = "#D5587C",
tl.srt = 45,
tl.cex = 0.9,
addCoef.col = "black",
number.cex = 0.8,
title = "Matriks Korelasi Antar Atribut",
mar = c(0, 0, 3, 0)
)
Matriks korelasi menunjukkan adanya trade-off yang kuat antara
harga dan kualitas. Harga terjangkau berkorelasi negatif sangat
kuat dengan kualitas kamera, performa, desain, dan brand prestige,
tetapi positif kuat dengan value for money, menegaskan bahwa smartphone
murah dinilai bernilai karena efisiensi biaya, bukan keunggulan atribut
premium. Di sisi lain, kualitas kamera, performa prosesor, desain
elegan, dan brand prestige saling berkorelasi positif tinggi, membentuk
satu klaster atribut “premium experience”. Daya tahan baterai relatif
lebih netral, mampu menjembatani kedua klaster, sehingga menjadi atribut
penting yang diapresiasi lintas segmen harga.
dist_matrix <- dist(df, method = "euclidean")
dist_mat <- as.matrix(dist_matrix)
kable(round(dist_mat, 2),
caption = "Matriks Jarak Euclidean Antar Brand") %>%
kable_styling(bootstrap_options = c("striped", "hover"),
full_width = FALSE, font_size = 11) %>%
row_spec(0, bold = TRUE, color = "white", background = "#FFB6C1") %>%
column_spec(1, bold = TRUE, color = "#D5587C", background = "#FFF5F7")| Samsung | Apple | Xiaomi | Oppo | Vivo | Realme | Infinix | Tecno | Nokia | Asus | |
|---|---|---|---|---|---|---|---|---|---|---|
| Samsung | 0.00 | 4.98 | 6.08 | 3.00 | 2.57 | 6.28 | 8.26 | 8.45 | 4.83 | 3.54 |
| Apple | 4.98 | 0.00 | 10.69 | 6.71 | 6.13 | 10.73 | 12.50 | 12.80 | 8.68 | 7.29 |
| Xiaomi | 6.08 | 10.69 | 0.00 | 4.71 | 5.25 | 1.72 | 3.66 | 3.69 | 4.12 | 4.24 |
| Oppo | 3.00 | 6.71 | 4.71 | 0.00 | 0.86 | 4.67 | 6.22 | 6.31 | 2.81 | 3.21 |
| Vivo | 2.57 | 6.13 | 5.25 | 0.86 | 0.00 | 5.36 | 7.00 | 7.04 | 3.47 | 3.48 |
| Realme | 6.28 | 10.73 | 1.72 | 4.67 | 5.36 | 0.00 | 2.38 | 2.82 | 3.30 | 4.13 |
| Infinix | 8.26 | 12.50 | 3.66 | 6.22 | 7.00 | 2.38 | 0.00 | 1.22 | 4.31 | 6.01 |
| Tecno | 8.45 | 12.80 | 3.69 | 6.31 | 7.04 | 2.82 | 1.22 | 0.00 | 4.47 | 6.35 |
| Nokia | 4.83 | 8.68 | 4.12 | 2.81 | 3.47 | 3.30 | 4.31 | 4.47 | 0.00 | 3.36 |
| Asus | 3.54 | 7.29 | 4.24 | 3.21 | 3.48 | 4.13 | 6.01 | 6.35 | 3.36 | 0.00 |
dist_vec <- dist_mat[upper.tri(dist_mat)]
min_idx <- which(dist_mat == min(dist_vec), arr.ind = TRUE)[1,]
max_idx <- which(dist_mat == max(dist_vec), arr.ind = TRUE)[1,]
cat("\n=== STATISTIK MATRIKS JARAK ===\n")##
## === STATISTIK MATRIKS JARAK ===
## Mean distance: 5.326
cat(sprintf("Min distance: %.3f (%s - %s)\n", min(dist_vec),
brands[min_idx[1]], brands[min_idx[2]]))## Min distance: 0.857 (Vivo - Oppo)
cat(sprintf("Max distance: %.3f (%s - %s)\n", max(dist_vec),
brands[max_idx[1]], brands[max_idx[2]]))## Max distance: 12.801 (Tecno - Apple)
Statistik matriks jarak menunjukkan bahwa perbedaan karakteristik antar brand smartphone tergolong cukup moderat secara umum, tercermin dari nilai rata-rata jarak sebesar 5,326. Jarak minimum antara Vivo dan Oppo mengindikasikan kemiripan positioning dan profil atribut yang sangat tinggi, sehingga keduanya berpotensi saling bersaing langsung pada segmen yang sama. Sebaliknya, jarak maksimum antara Tecno dan Apple merefleksikan kontras ekstrem dalam strategi nilai dan citra, dengan perbedaan tajam antara orientasi harga dan pengalaman premium. Temuan ini menegaskan adanya polarisasi pasar dari brand value-oriented hingga premium-centric.
mds_2d <- cmdscale(dist_matrix, k = 2, eig = TRUE)
coords_2d <- as.data.frame(mds_2d$points)
colnames(coords_2d) <- c("Dim1", "Dim2")
coords_2d$Brand <- brands
eigenvalues <- mds_2d$eig[mds_2d$eig > 0]
prop_var <- eigenvalues / sum(eigenvalues)
gof_2d <- sum(prop_var[1:2]) * 100
cat("\n=== CLASSICAL MDS ===\n")##
## === CLASSICAL MDS ===
## Dimensi 1: 86.80% variance
## Dimensi 2: 6.50% variance
## Total variance explained: 93.30%
kable(coords_2d %>% arrange(Dim1), digits = 4,
caption = "Koordinat Brand dalam Ruang 2 Dimensi (Classical MDS)") %>%
kable_styling(bootstrap_options = c("striped", "hover"),
full_width = FALSE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#FFB6C1") %>%
column_spec(1, bold = TRUE, color = "#D5587C")| Dim1 | Dim2 | Brand | |
|---|---|---|---|
| Apple | -7.8560 | 0.2530 | Apple |
| Samsung | -3.3284 | -0.8367 | Samsung |
| Vivo | -2.0619 | 0.7596 | Vivo |
| Oppo | -1.3574 | 0.8797 | Oppo |
| Asus | -0.8721 | -1.2660 | Asus |
| Nokia | 0.6487 | 1.3942 | Nokia |
| Xiaomi | 2.5046 | -1.7781 | Xiaomi |
| Realme | 2.8077 | -0.7945 | Realme |
| Infinix | 4.6317 | 0.5695 | Infinix |
| Tecno | 4.8832 | 0.8193 | Tecno |
Koordinat pada dua dimensi menunjukkan posisi kompetitif yang berbeda antar brand. Apple berada jauh pada sisi ekstrem Dim1, menandakan karakteristik yang paling kontras dibanding brand lain dan merepresentasikan orientasi premium yang kuat. Samsung masih berada pada sisi yang sama dengan Apple tetapi lebih dekat ke pusat, menunjukkan profil semi-premium yang tetap menekankan kualitas namun lebih seimbang. Vivo berada lebih dekat ke pusat dan sedikit berbeda pada Dim2, mengindikasikan positioning yang lebih moderat dan fleksibel, cenderung menjembatani segmen premium dan value-oriented.
set.seed(20241216)
mds_smacof <- mds(dist_matrix, ndim = 2, type = "ordinal")
coords_smacof <- as.data.frame(mds_smacof$conf)
colnames(coords_smacof) <- c("Dim1", "Dim2")
coords_smacof$Brand <- brands
stress_value <- mds_smacof$stress
rsq <- mds_smacof$spp
cat("\n=== NON-METRIC MDS (SMACOF) ===\n")##
## === NON-METRIC MDS (SMACOF) ===
## STRESS value: 0.00883
## R-squared: 3.18894
## R-squared: 0.09998
## R-squared: 15.87832
## R-squared: 9.04482
## R-squared: 8.28810
## R-squared: 10.50550
## R-squared: 2.19849
## R-squared: 13.66610
## R-squared: 10.02469
## R-squared: 27.10507
## Variance explained: 318.89%
## Variance explained: 10.00%
## Variance explained: 1587.83%
## Variance explained: 904.48%
## Variance explained: 828.81%
## Variance explained: 1050.55%
## Variance explained: 219.85%
## Variance explained: 1366.61%
## Variance explained: 1002.47%
## Variance explained: 2710.51%
stress_interp <- ifelse(stress_value < 0.05, "EXCELLENT fit",
ifelse(stress_value < 0.10, "GOOD fit",
ifelse(stress_value < 0.20, "FAIR fit", "POOR fit")))
cat(sprintf("\nInterpretasi: %s\n", stress_interp))##
## Interpretasi: EXCELLENT fit
kable(coords_smacof %>% arrange(Dim1), digits = 4,
caption = "Koordinat Brand dalam Ruang 2 Dimensi (Non-metric MDS)") %>%
kable_styling(bootstrap_options = c("striped", "hover"),
full_width = FALSE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#FFB6C1") %>%
column_spec(1, bold = TRUE, color = "#D5587C")| Dim1 | Dim2 | Brand | |
|---|---|---|---|
| Apple | -1.3793 | 0.0445 | Apple |
| Samsung | -0.5857 | -0.1377 | Samsung |
| Vivo | -0.3559 | 0.1660 | Vivo |
| Oppo | -0.2385 | 0.1691 | Oppo |
| Asus | -0.1115 | -0.2599 | Asus |
| Nokia | 0.1343 | 0.1934 | Nokia |
| Xiaomi | 0.4446 | -0.2733 | Xiaomi |
| Realme | 0.4732 | -0.1374 | Realme |
| Infinix | 0.7867 | 0.0732 | Infinix |
| Tecno | 0.8320 | 0.1622 | Tecno |
Koordinat Non-metric MDS menunjukkan gradasi posisi brand yang konsisten. Apple tetap berada paling jauh pada Dim1, menegaskan diferensiasi dan persepsi paling unik/premium dibandingkan brand lain. Samsung berada di posisi menengah, mencerminkan kedekatan sekaligus perbedaan moderat dengan Apple. Vivo paling dekat ke pusat, mengindikasikan profil yang paling umum dan adaptif, sehingga berpotensi menjangkau segmen konsumen yang lebih luas.
par(bg = "#FFF5F7", mar = c(5, 5, 4, 2))
plot(mds_smacof, plot.type = "Shepard",
main = "Shepard Diagram",
col = "#D5587C", pch = 16,
col.main = "#D5587C",
col.lab = "#D5587C",
cex = 1.2)
Shepard diagram menunjukkan hubungan yang hampir linear antara
dissimilarities dan jarak hasil pemetaan MDS, menandakan bahwa
struktur ketidakmiripan antar brand berhasil direpresentasikan
dengan baik dalam ruang dua dimensi. Titik-titik yang mengikuti
garis monotonik mengindikasikan distorsi rendah dan kualitas
pemetaan yang memadai, sehingga interpretasi posisi relatif
brand pada peta MDS dapat dianggap andal dan valid.
ggplot(coords_smacof, aes(x = Dim1, y = Dim2, label = Brand)) +
geom_hline(yintercept = 0, linetype = "dashed", color = "grey60", alpha = 0.7) +
geom_vline(xintercept = 0, linetype = "dashed", color = "grey60", alpha = 0.7) +
geom_point(size = 6, color = "#D5587C", alpha = 0.8) +
geom_text_repel(
size = 4.5, fontface = "bold", color = "#D5587C",
box.padding = 0.6, point.padding = 0.4,
segment.color = "#FFB6C1"
) +
labs(
title = "Perceptual Map Brand Smartphone Indonesia",
subtitle = sprintf("STRESS = %.5f | R-squared = %.4f | Variance = %.2f%%",
stress_value, rsq, rsq * 100),
x = "Dimensi 1", y = "Dimensi 2"
) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 16, color = "#D5587C"),
plot.subtitle = element_text(hjust = 0.5, size = 11, color = "#D5587C"),
panel.grid.major = element_line(color = "#FFE8EE"),
panel.background = element_rect(fill = "#FFF5F7", color = NA)
)
Peta persepsi merek smartphone di Indonesia menunjukkan adanya
pengelompokan merek berdasarkan kemiripan persepsi konsumen pada dua
dimensi laten. Apple berada relatif terpisah di sisi kiri atas,
menandakan citra yang cukup berbeda dibanding merek lain, kemungkinan
terkait persepsi premium dan ekosistem eksklusif. Vivo dan Oppo berada
berdekatan di kuadran atas, mengindikasikan persepsi yang mirip,
sementara Nokia juga cukup dekat namun sedikit bergeser, mencerminkan
diferensiasi yang moderat. Di sisi kanan, Tecno dan Infinix berdekatan,
menunjukkan kemiripan citra sebagai merek dengan karakteristik serupa,
sedangkan Realme dan Xiaomi berada di kuadran bawah kanan, mencerminkan
persepsi yang relatif mirip satu sama lain namun berbeda dari kelompok
atas. Samsung dan Asus berada di area bawah dengan posisi terpisah,
mengindikasikan citra yang berbeda baik dari merek premium maupun merek
value-oriented.
cor_dim1 <- cor(coords_smacof$Dim1, df)
cor_dim2 <- cor(coords_smacof$Dim2, df)
dim_interp <- data.frame(
Atribut = attributes,
Korelasi_Dim1 = as.vector(cor_dim1),
Korelasi_Dim2 = as.vector(cor_dim2)
)
kable(dim_interp, digits = 4,
caption = "Korelasi Dimensi MDS dengan Atribut Asli") %>%
kable_styling(bootstrap_options = c("striped", "hover"),
full_width = FALSE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#FFB6C1")| Atribut | Korelasi_Dim1 | Korelasi_Dim2 |
|---|---|---|
| Harga_Terjangkau | 0.9899 | -0.0595 |
| Kualitas_Kamera | -0.8413 | 0.0420 |
| Performa_Prosesor | -0.7271 | -0.6187 |
| Desain_Elegan | -0.9563 | -0.0405 |
| Daya_Tahan_Baterai | 0.8359 | 0.1533 |
| Brand_Prestige | -0.9589 | -0.1566 |
| Value_for_Money | 0.9039 | -0.3824 |
cor_long <- dim_interp %>%
pivot_longer(cols = starts_with("Korelasi"),
names_to = "Dimensi", values_to = "Korelasi") %>%
mutate(Dimensi = gsub("Korelasi_", "", Dimensi))
ggplot(cor_long, aes(x = reorder(Atribut, abs(Korelasi)),
y = Korelasi, fill = Dimensi)) +
geom_bar(stat = "identity", position = "dodge", alpha = 0.8) +
scale_fill_manual(values = c("Dim1" = "#FFB6C1", "Dim2" = "#D5587C")) +
coord_flip() +
labs(title = "Korelasi Atribut dengan Dimensi MDS",
x = "Atribut", y = "Korelasi") +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", color = "#D5587C"),
legend.position = "top",
panel.background = element_rect(fill = "#FFF5F7", color = NA)
)
Grafik korelasi atribut dengan dimensi MDS menunjukkan bahwa
Dimensi 1 terutama merepresentasikan spektrum citra
estetika–prestise versus fungsionalitas dasar, di mana
desain elegan, kualitas kamera, brand prestige, dan performa prosesor
memiliki korelasi negatif yang kuat, menandakan bahwa merek di sisi
tersebut dipersepsikan unggul pada aspek gaya, citra, dan kualitas
visual. Sebaliknya, Dimensi 2 sangat dipengaruhi oleh
atribut value for money, harga
terjangkau, dan daya tahan baterai yang
memiliki korelasi positif tinggi, sehingga dimensi ini mencerminkan
orientasi nilai ekonomis dan kepraktisan. Atribut kualitas kamera dan
desain elegan hampir tidak berkorelasi dengan Dimensi 2, menunjukkan
bahwa aspek visual tidak menjadi pembeda utama pada dimensi nilai harga.
Secara keseluruhan, kombinasi kedua dimensi ini mengindikasikan bahwa
persepsi konsumen smartphone di Indonesia terpolarisasi antara merek
yang menonjolkan citra premium desain dan merek yang menekankan
keterjangkauan harga serta efisiensi penggunaan.
hc <- hclust(dist_matrix, method = "ward.D2")
par(bg = "#FFF5F7", mar = c(5, 5, 4, 2))
plot(hc,
main = "Dendrogram Hierarchical Clustering",
xlab = "Brand", ylab = "Height",
col.main = "#D5587C", col.lab = "#D5587C",
cex = 1.1, hang = -1)
rect.hclust(hc, k = 3, border = c("#8B1538", "#D5587C", "#FFB6C1"))
Dendrogram hierarchical clustering menunjukkan bahwa merek smartphone di
Indonesia dapat dikelompokkan ke dalam tiga klaster utama berdasarkan
kemiripan persepsi. Klaster pertama terdiri dari Infinix, Tecno,
Xiaomi, dan Realme yang bergabung pada tingkat jarak relatif
rendah, menandakan persepsi konsumen yang mirip, terutama sebagai merek
dengan orientasi harga terjangkau dan value for money. Klaster kedua
adalah Apple yang berdiri sendiri, menunjukkan posisi
yang sangat berbeda dibanding merek lain dan merefleksikan citra
eksklusif serta diferensiasi kuat di benak konsumen. Klaster ketiga
mencakup Samsung, Oppo, Vivo, Nokia, dan Asus, yang
memiliki kedekatan persepsi satu sama lain dan merepresentasikan merek
arus utama dengan kombinasi citra, kualitas, dan fitur yang relatif
seimbang. Secara keseluruhan, struktur klaster ini menegaskan adanya
segmentasi pasar yang jelas antara merek premium eksklusif, merek
value-oriented, dan merek mainstream di pasar smartphone Indonesia.
clusters <- cutree(hc, k = 3)
coords_smacof$Cluster <- factor(clusters)
cluster_means <- df %>%
mutate(Cluster = clusters) %>%
group_by(Cluster) %>%
summarise(across(everything(), mean))
cluster_names <- c("Premium Flagship", "Mid-Range Mainstream", "Budget Value")
ggplot(coords_smacof, aes(x = Dim1, y = Dim2,
color = Cluster, label = Brand)) +
geom_point(size = 7, alpha = 0.8) +
stat_ellipse(aes(fill = Cluster), geom = "polygon",
alpha = 0.15, show.legend = FALSE, level = 0.68) +
geom_text_repel(size = 4, fontface = "bold",
box.padding = 0.6, show.legend = FALSE) +
scale_color_manual(values = c("1" = "#8B1538", "2" = "#D5587C", "3" = "#FFB6C1"),
labels = cluster_names) +
scale_fill_manual(values = c("1" = "#8B1538", "2" = "#D5587C", "3" = "#FFB6C1")) +
geom_hline(yintercept = 0, linetype = "dashed", color = "grey60", alpha = 0.5) +
geom_vline(xintercept = 0, linetype = "dashed", color = "grey60", alpha = 0.5) +
labs(
title = "Perceptual Map dengan Segmentasi Cluster",
subtitle = "Ellipse menunjukkan 68% confidence region",
x = "Dimensi 1", y = "Dimensi 2", color = "Segmen"
) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 14, color = "#D5587C"),
plot.subtitle = element_text(hjust = 0.5, size = 10, color = "#D5587C"),
legend.position = "right",
panel.background = element_rect(fill = "#FFF5F7", color = NA)
)cluster_membership <- data.frame(
Brand = brands,
Cluster = clusters,
Segmen = cluster_names[clusters]
) %>% arrange(Cluster, Brand)
kable(cluster_membership,
caption = "Keanggotaan Cluster Brand") %>%
kable_styling(bootstrap_options = c("striped", "hover"),
full_width = FALSE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#FFB6C1") %>%
column_spec(1, bold = TRUE, color = "#D5587C")| Brand | Cluster | Segmen | |
|---|---|---|---|
| Asus | Asus | 1 | Premium Flagship |
| Nokia | Nokia | 1 | Premium Flagship |
| Oppo | Oppo | 1 | Premium Flagship |
| Samsung | Samsung | 1 | Premium Flagship |
| Vivo | Vivo | 1 | Premium Flagship |
| Apple | Apple | 2 | Mid-Range Mainstream |
| Infinix | Infinix | 3 | Budget Value |
| Realme | Realme | 3 | Budget Value |
| Tecno | Tecno | 3 | Budget Value |
| Xiaomi | Xiaomi | 3 | Budget Value |
Peta persepsi menunjukkan tiga segmentasi merek smartphone yang cukup jelas: Premium Flagship (Apple) terpisah sendiri dan berada jauh dari merek lain, menandakan persepsi eksklusivitas dan diferensiasi tinggi; Mid-Range Mainstream (Samsung, Oppo, Vivo, Asus, Nokia) membentuk klaster padat, mencerminkan persaingan langsung dengan persepsi nilai dan fitur yang relatif mirip; sementara Budget Value (Xiaomi, Realme, Infinix, Tecno) terkonsentrasi pada klaster tersendiri, menunjukkan fokus kuat pada harga terjangkau dan value for money dengan citra yang berbeda dari segmen menengah dan premium.
Praktikum Teknik Peubah Ganda
2025