1 PENDAHULUAN

1.1 Latar Belakang

Perkembangan teknologi di bidang telekomunikasi, khususnya perangkat handphone, menunjukkan pertumbuhan yang pesat dalam beberapa tahun terakhir. Berbagai produsen terus berinovasi untuk memenuhi kebutuhan pasar yang semakin beragam. Setiap model handphone menawarkan spesifikasi yang berbeda, seperti kapasitas baterai, kamera, prosesor, ukuran layar, dan lainnya. Variasi ini menyebabkan konsumen kesulitan dalam memilih produk yang sesuai dengan kebutuhan dan preferensi mereka. Oleh karena itu, penting bagi produsen dan konsumen untuk memahami perbedaan dan kesamaan antara berbagai model handphone yang ada di pasar.

Salah satu cara untuk mengelompokkan produk berdasarkan karakteristik spesifikasinya adalah dengan menggunakan teknik analisis cluster. Analisis cluster adalah metode statistik yang digunakan untuk mengelompokkan objek berdasarkan kesamaan karakteristik atau atribut yang dimilikinya. Salah satu pendekatan dalam analisis cluster adalah Cluster Hirarki, yang memungkinkan pengelompokan data secara bertahap untuk menghasilkan struktur yang mudah dipahami.

Penerapan Analisis Cluster Hirarki pada data spesifikasi handphone dapat memberikan wawasan yang lebih baik tentang hubungan antar produk dan membantu dalam pembuatan keputusan yang lebih terinformasi, baik untuk produsen dalam hal pengembangan produk, maupun untuk konsumen dalam memilih produk yang sesuai dengan kebutuhan mereka. Dengan menggunakan analisis ini, kita dapat mengelompokkan handphone berdasarkan kesamaan dalam spesifikasi teknis seperti kapasitas baterai, harga, dan fitur-fitur lainnya.

Melalui penerapan analisis cluster hirarki, diharapkan dapat ditemukan pola-pola tersembunyi dalam data handphone yang akan memudahkan identifikasi kategori produk yang serupa, sehingga memberikan gambaran yang lebih jelas tentang bagaimana pasar HP tersegmentasi berdasarkan karakteristik teknisnya. Selain itu, analisis ini juga dapat menjadi alat yang berguna untuk evaluasi persaingan di pasar handphone, serta untuk merancang strategi pemasaran yang lebih efektif.

1.2 Rumusan Masalah

  1. Bagaimana cara mengelompokkan handphone berdasarkan spesifikasinya?
  2. Apa saja faktor spesifikasi handphone yang paling berpengaruh dalam proses pengelompokan menggunakan analisis cluster hirarki?
  3. Berapa cluster yang terbentuk dari kasus Handphone berdasarkan spesifikasinya?

1.3 Tujuan Penelitian

  1. Untuk mengetahui cara mengelompokkan handphone berdasarkan spesifikasinya.
  2. Untuk mengetahui faktor spesifikasi handphone yang paling berpengaruh dalam proses pengelompokan menggunakan analisis cluster hirarki.
  3. Untuk mengetahui cluster yang terbentuk dari kasus Handphone berdasarkan spesifikasinya.

1.4 Tinjauan Pustaka

1.4.1 Analisis Cluster Hirarki

Analisis Cluster merupakan salah satu metode statistik multivariat yang digunakan untuk mengelompokkan setiap objek atau pengamatan.Analisis Cluster dibagi menjadi 2 metode yaitu analisis cluster hierarki dan non hierarki.

Metode hierarki melakukan pengelompokan secara bertahap dan terstruktur baik secara agglomerative maupun divisive. Metode hierarki terdiri dari single linkage, complete linkage, average linkage, dan ward method. Metode optimisasi sering juga disebut dengan metode partisi, di mana membagi data ke dalam k cluster dengan mencoba seluruh kemungkinan agar menemukan cluster yang optimum. Salah satu contoh metode partisi adalah k-means.

1.4.2 Metode Cluster hirarki

1.Single Linkage

Merupakan teknik pengelompokan yang di dasarkan pada jarak terdekat antara dua objek.

KETERANGAN: \[d_{(uv)w} = \min(d_{UW}, d_{VW})\] \[d_{(uv)w} = jarak minimun antara kelompok (UV) dan Kelompok W \] \[d_{(uv)}= Jarak antara tetangga terdekat dari cluster U dan W\] \[d_{(vw)}= Jarak antara tetangga terdekat dari cluster V dan W\] 2.Complate Linkage

Merupakan cara pengelompokan objek yang memiliki jarak paling jauh atau kesamaan yang minim.

\[d_{(uv)w} = \max(d_{UW}, d_{VW})\] 3.Average Linkage

Merupakan pengelompokan yang dibentuk berdasarkan koefisien rata-rata pada jarak seluruh individu dalam satu kelompok dengan rata-rata jarak seluruh individu pada kelompok lainnya. \[ d(UV) = \frac{1}{|U| \cdot |V|} \sum_{u \in U} \sum_{v \in V} d(u, v) \] 4.Metode Ward

Merupakan mengelompokan dengan jarak antar dua kelompok adalah jumlah kuadrat antara dua kelompok untuk seluruh variabel. Metode ini dapat Smeminimumkan varians dalam kelompok dan cenderung digunakan untuk melakukan kombinasi kelompok-kelompok dengan jumlah yang kecil.Untuk pengelompokan dengan metode ward, ukuran yang digunakan adalah Sum of Square (SSE). \[ SSE = \sum_{i=1}^N (x_j - \bar{x})(x_j - \bar{x}) \] ## Asumsi Yang Harus Dipenuhi

  1. Kaiser-Meyer-Olkin(KMO)/ Asumsi Kecukupan Sampel

\[KMO = \frac{\sum_{i=1}^p \sum_{j=1}^p r_{ij}^2}{\sum_{i=1}^p \sum_{j=1}^p r_{ij}^2 + \sum_{i=1}^p \sum_{j=1}^p a_{ij}^2}\] Asumsi Asumsi Kecukupan Sampel terpenuhi saat nilai Kaiser-Meyer-Olkin(KMO) lebih besar dari 0,5 (>0,5)

  1. Uji Non-Multikolinearitas

\[r = \frac{\sum (X_i - \bar{X})(Y_i - \bar{Y})}{\sqrt{\sum (X_i - \bar{X})^2 \sum (Y_i - \bar{Y})^2}}\] -Penanganan Multikolinearitas

Penanganan multikolinearitas dengan menghilangkan variabel adalah salah satu pendekatan yang umum digunakan dalam analisis regresi. Multikolinearitas terjadi ketika dua atau lebih variabel independen dalam model regresi memiliki hubungan linier yang kuat, yang dapat menyebabkan ketidakstabilan estimasi koefisien dan kesulitan dalam menginterpretasikan model. Salah satu cara untuk mengatasi multikolinearitas adalah dengan menghilangkan variabel yang sangat berkorelasi.Kemudian melakukan pemodelan ulang

1.4.3 Spesifikasi Handphone

  1. Material Body Material body berpengaruh pada desain, kekuatan, dan ketahanan perangkat. Bahan yang umum digunakan antara lain kaca, metal, plastik, atau kombinasi dari bahan-bahan tersebut. Pemilihan material ini juga dapat mempengaruhi harga dan kesan premium dari perangkat.

  2. Kapisitas Baterai Kapasitas baterai yang lebih besar biasanya memberikan daya tahan yang lebih lama, memungkinkan pengguna untuk menggunakan perangkat lebih lama tanpa perlu mengisi ulang. Baterai dengan kapasitas besar sering ditemukan pada handphone dengan spesifikasi tinggi atau perangkat dengan layar besar dan penggunaan yang intensif.

  3. Chipset Prosesor utama yang digunakan dalam handphone, yang mengatur kinerja perangkat. Chipset terdiri dari CPU, GPU, dan komponen lainnya yang mempengaruhi kecepatan, efisiensi energi, dan kemampuan multitasking handphone. Chipset populer antara lain Qualcomm Snapdragon, MediaTek, dan Apple A-series.

  4. RAM Size RAM berfungsi untuk menyimpan data sementara yang dibutuhkan untuk menjalankan aplikasi. Semakin besar ukuran RAM, semakin banyak aplikasi atau tugas yang dapat dijalankan secara bersamaan tanpa menurunkan kinerja perangkat.

  5. Room Size Kapasitas penyimpanan internal handphone, biasanya dalam satuan gigabyte (GB) atau terabyte (TB). Penyimpanan ini digunakan untuk menyimpan aplikasi, data, foto, video, dan file lainnya. Pengguna biasanya memilih handphone dengan kapasitas penyimpanan yang lebih besar jika mereka sering menyimpan banyak data.

  6. Kamera Utama Kualitas dan spesifikasi kamera utama pada handphone, termasuk jumlah megapiksel, aperture, dan fitur tambahan seperti stabilisasi gambar optik (OIS) atau kemampuan perekaman video. Kamera utama adalah fitur penting bagi banyak pengguna, terutama bagi mereka yang sering memotret atau merekam video menggunakan handphone.

  7. Harga Harga handphone yang dapat dipengaruhi oleh berbagai faktor, termasuk kualitas material, kapasitas baterai, performa chipset, ukuran RAM dan penyimpanan, serta kualitas kamera. Harga dapat berkisar dari perangkat entry-level yang lebih terjangkau hingga perangkat flagship dengan harga premium.

1.5 Data

Data yang digunakan merupakan data sekunder dari website kaggle.com. Variabel yang digunakan yaitu nama_hp material_body kapasitas_baterai chipset ram_size room_size kamera_utama dan harga. sumber: https://www.kaggle.com/datasets/muhammadputrasenja/data-smartphone?resource=download

Penelitian ini mengambil sebanyak 20 sampel yang diuji. Hal ini bertujuan untuk mempermudah untuk mengeksplorasi data.

2 SOURCE CODE

2.1 Library

> library(psych)
> library(GPArotation)
> library(clValid)
> library(ggplot2)
> library(cluster)
> library(factoextra)
> library(tidyverse)
> library(car)

2.2 Impor Data

> data <- read.csv("C:/Users/Intan Maulilydiya SW/Downloads/SampleSmartphone.csv")
> data <- data[, !names(data) %in% "Level"]
> data
                    nama_hp material_body kapasitas_baterai chipset ram_size
1    Apple iPhone SE (2020)           0.7              1821     0.7        3
2        Samsung Galaxy A52           0.8              4500     0.8        8
3          Oppo Reno 5 Pro+           0.8              4350     0.8       12
4      Xiaomi Redmi Note 10           0.7              5000     0.7        6
5           Google Pixel 4a           0.6              3140     0.5        6
6                 Vivo Y20s           0.5              5000     0.5        4
7        OnePlus Nord CE 5G           0.6              4500     0.7        8
8         Sony Xperia 1 III           0.8              4500     0.8       12
9        Samsung Galaxy S20           0.9              4000     0.9        8
10    Motorola Moto G Power           0.6              5000     0.6        4
11       Xiaomi Poco X3 NFC           0.6              5160     0.7        6
12          Apple iPhone XR           0.8              2942     0.7        3
13           Google Pixel 5           0.7              4080     0.6        8
14            OnePlus 9 Pro           0.8              4500     0.9       12
15       Samsung Galaxy M31           0.6              6000     0.6        6
16          Xiaomi Redmi 9A           0.5              5000     0.5        2
17               Realme C11           0.5              5000     0.5        2
18                Nokia 2.4           0.6              4500     0.6        2
19 Samsung Galaxy S21 Ultra           1.0              5000     1.0       12
20        Xiaomi Mi 11 Lite           0.7              4250     0.7        6
   room_size kamera_utama    harga
1         64         12.0  6000000
2        128         64.0  4000000
3        256         50.0  8000000
4        128         64.0  2500000
5        128         12.2  3500000
6         64         13.0  2000000
7        128         64.0  3500000
8        256         12.0  9000000
9        128        108.0  7000000
10        64         16.0  2500000
11       128         64.0  2200000
12        64         12.0  6500000
13       128         12.2  6000000
14       256         48.0  9000000
15       128         64.0  3000000
16        32         13.0  1500000
17        32         13.0  1700000
18        32          8.0  1800000
19       256        108.0 12000000
20       128         64.0  2800000

2.3 Statistik Deskriptif

> statdes <- summary(data)
> statdes
   nama_hp          material_body  kapasitas_baterai    chipset    
 Length:20          Min.   :0.50   Min.   :1821      Min.   :0.50  
 Class :character   1st Qu.:0.60   1st Qu.:4208      1st Qu.:0.60  
 Mode  :character   Median :0.70   Median :4500      Median :0.70  
                    Mean   :0.69   Mean   :4412      Mean   :0.69  
                    3rd Qu.:0.80   3rd Qu.:5000      3rd Qu.:0.80  
                    Max.   :1.00   Max.   :6000      Max.   :1.00  
    ram_size       room_size      kamera_utama        harga         
 Min.   : 2.00   Min.   : 32.0   Min.   :  8.00   Min.   : 1500000  
 1st Qu.: 3.75   1st Qu.: 64.0   1st Qu.: 12.20   1st Qu.: 2425000  
 Median : 6.00   Median :128.0   Median : 32.00   Median : 3500000  
 Mean   : 6.50   Mean   :126.4   Mean   : 41.07   Mean   : 4725000  
 3rd Qu.: 8.00   3rd Qu.:128.0   3rd Qu.: 64.00   3rd Qu.: 6625000  
 Max.   :12.00   Max.   :256.0   Max.   :108.00   Max.   :12000000  

2.4 Uji Asumsi

2.4.1 Uji Sampel Representatif

> # Uji Sampel Representatif
> kmo <- KMO(data[,2:8])
> kmo
Kaiser-Meyer-Olkin factor adequacy
Call: KMO(r = data[, 2:8])
Overall MSA =  0.78
MSA for each item = 
    material_body kapasitas_baterai           chipset          ram_size 
             0.80              0.50              0.85              0.78 
        room_size      kamera_utama             harga 
             0.76              0.69              0.82 

2.4.2 Uji Non-Multikolinearitas

2.4.2.1 Uji Non-Multikolinearitas

> korelasi <- cor(data[,2:8], method = 'pearson')
> korelasi
                  material_body kapasitas_baterai     chipset  ram_size
material_body         1.0000000       -0.23750627  0.92192628 0.7068394
kapasitas_baterai    -0.2375063        1.00000000 -0.06680734 0.1296910
chipset               0.9219263       -0.06680734  1.00000000 0.7646516
ram_size              0.7068394        0.12969096  0.76465157 1.0000000
room_size             0.6933067        0.11571279  0.74950913 0.9744548
kamera_utama          0.5854882        0.30334928  0.70972489 0.5200962
harga                 0.8753876       -0.25654927  0.81460299 0.7782016
                  room_size kamera_utama      harga
material_body     0.6933067    0.5854882  0.8753876
kapasitas_baterai 0.1157128    0.3033493 -0.2565493
chipset           0.7495091    0.7097249  0.8146030
ram_size          0.9744548    0.5200962  0.7782016
room_size         1.0000000    0.4758276  0.7901405
kamera_utama      0.4758276    1.0000000  0.3445273
harga             0.7901405    0.3445273  1.0000000

2.4.2.2 Penanganan Multikolinearitas

> data <- data[, !names(data) %in% c("chipset", "ram_size")]
> data
                    nama_hp material_body kapasitas_baterai room_size
1    Apple iPhone SE (2020)           0.7              1821        64
2        Samsung Galaxy A52           0.8              4500       128
3          Oppo Reno 5 Pro+           0.8              4350       256
4      Xiaomi Redmi Note 10           0.7              5000       128
5           Google Pixel 4a           0.6              3140       128
6                 Vivo Y20s           0.5              5000        64
7        OnePlus Nord CE 5G           0.6              4500       128
8         Sony Xperia 1 III           0.8              4500       256
9        Samsung Galaxy S20           0.9              4000       128
10    Motorola Moto G Power           0.6              5000        64
11       Xiaomi Poco X3 NFC           0.6              5160       128
12          Apple iPhone XR           0.8              2942        64
13           Google Pixel 5           0.7              4080       128
14            OnePlus 9 Pro           0.8              4500       256
15       Samsung Galaxy M31           0.6              6000       128
16          Xiaomi Redmi 9A           0.5              5000        32
17               Realme C11           0.5              5000        32
18                Nokia 2.4           0.6              4500        32
19 Samsung Galaxy S21 Ultra           1.0              5000       256
20        Xiaomi Mi 11 Lite           0.7              4250       128
   kamera_utama    harga
1          12.0  6000000
2          64.0  4000000
3          50.0  8000000
4          64.0  2500000
5          12.2  3500000
6          13.0  2000000
7          64.0  3500000
8          12.0  9000000
9         108.0  7000000
10         16.0  2500000
11         64.0  2200000
12         12.0  6500000
13         12.2  6000000
14         48.0  9000000
15         64.0  3000000
16         13.0  1500000
17         13.0  1700000
18          8.0  1800000
19        108.0 12000000
20         64.0  2800000
> korelasi1 <- cor(data[,2:6], method = 'pearson')
> korelasi1
                  material_body kapasitas_baterai room_size kamera_utama
material_body         1.0000000        -0.2375063 0.6933067    0.5854882
kapasitas_baterai    -0.2375063         1.0000000 0.1157128    0.3033493
room_size             0.6933067         0.1157128 1.0000000    0.4758276
kamera_utama          0.5854882         0.3033493 0.4758276    1.0000000
harga                 0.8753876        -0.2565493 0.7901405    0.3445273
                       harga
material_body      0.8753876
kapasitas_baterai -0.2565493
room_size          0.7901405
kamera_utama       0.3445273
harga              1.0000000

2.4.3 Standarisasi

> datastand <- scale(data[,2:6])
> datastand
      material_body kapasitas_baterai   room_size kamera_utama      harga
 [1,]    0.07285096       -2.82393567 -0.82190385   -0.8843612  0.4215657
 [2,]    0.80136057        0.09574233  0.02107446    0.6975714 -0.2397138
 [3,]    0.80136057       -0.06773348  1.70703108    0.2716665  1.0828451
 [4,]    0.07285096        0.64066171  0.02107446    0.6975714 -0.7356734
 [5,]   -0.65565865       -1.38643836  0.02107446   -0.8782768 -0.4050337
 [6,]   -1.38416827        0.64066171 -0.82190385   -0.8539394 -0.9009933
 [7,]   -0.65565865        0.09574233  0.02107446    0.6975714 -0.4050337
 [8,]    0.80136057        0.09574233  1.70703108   -0.8843612  1.4134848
 [9,]    1.52987019       -0.44917704  0.02107446    2.0361298  0.7522054
[10,]   -0.65565865        0.64066171 -0.82190385   -0.7626740 -0.7356734
[11,]   -0.65565865        0.81503591  0.02107446    0.6975714 -0.8348653
[12,]    0.80136057       -1.60222643 -0.82190385   -0.8843612  0.5868855
[13,]    0.07285096       -0.36198994  0.02107446   -0.8782768  0.4215657
[14,]    0.80136057        0.09574233  1.70703108    0.2108229  1.4134848
[15,]   -0.65565865        1.73050046  0.02107446    0.6975714 -0.5703535
[16,]   -1.38416827        0.64066171 -1.24339301   -0.8539394 -1.0663131
[17,]   -1.38416827        0.64066171 -1.24339301   -0.8539394 -1.0001852
[18,]   -0.65565865        0.09574233 -1.24339301   -1.0060483 -0.9671212
[19,]    2.25837980        0.64066171  1.70703108    2.0361298  2.4054040
[20,]    0.07285096       -0.17671735  0.02107446    0.6975714 -0.6364815
attr(,"scaled:center")
    material_body kapasitas_baterai         room_size      kamera_utama 
             0.69           4412.15            126.40             41.07 
            harga 
       4725000.00 
attr(,"scaled:scale")
    material_body kapasitas_baterai         room_size      kamera_utama 
     1.372665e-01      9.175669e+02      7.592129e+01      3.287119e+01 
            harga 
     3.024440e+06 
> rownames(datastand) <- 1:nrow(datastand)

2.4.4 Jarak Euclidean

> jarak <- dist(datastand, method = "euclidean")
> jarak
            1          2          3          4          5          6          7
2  3.56449991                                                                  
3  4.03690218 2.19082888                                                       
4  4.06887704 1.03616567 2.71355935                                            
5  1.99775891 2.61350205 3.20007660 2.68932729                                 
6  3.98452351 2.93744144 4.10809875 2.29521980 2.36580676                      
7  3.59883808 1.46636820 2.71795096 0.96798038 2.16336712 2.04730006           
8  4.05396861 2.84218688 1.21344425 3.28504262 3.23562374 4.10203849 3.28251049
9  4.13661529 1.89823748 2.59640684 2.70484293 3.93547495 4.63417162 2.86433485
10 3.72668368 2.34707208 3.66020637 1.83675135 2.22315851 0.75258639 1.80255070
11 4.30866364 1.73046052 3.09897481 0.75562666 2.74126648 1.91919352 0.83793705
12 1.43200222 2.60374491 3.21442941 3.24400351 1.96571174 3.46724564 3.03364959
13 2.60227328 1.91333042 2.28460566 2.19722785 1.50448904 2.36401823 1.97656500
14 4.19929634 2.41090017 0.37383006 2.91991753 3.41399506 4.23786657 2.91706847
15 5.04684471 2.21464710 3.33368577 1.32128930 3.49656059 2.22386952 1.64309609
16 4.06432059 3.12454856 4.45749169 2.49765719 2.58391598 0.45275133 2.29586970
17 4.04058091 3.10770879 4.42598760 2.48976611 2.56778826 0.43300363 2.27770334
18 3.34307613 2.67455131 4.08528441 2.32000638 2.03174938 1.01628073 2.19479852
19 5.96995522 3.74842350 2.73627878 4.39056853 5.64229833 6.24086783 4.61749992
20 3.36754387 0.87314668 2.55392491 0.82337571 2.12861855 2.44515404 0.81149777
            8          9         10         11         12         13         14
2                                                                              
3                                                                              
4                                                                              
5                                                                              
6                                                                              
7                                                                              
8                                                                              
9  3.55480956                                                                  
10 3.66729369 4.08925218                                                       
11 3.61113933 3.26883811 1.69799137                                            
12 3.15624402 3.33578471 2.98620530 3.63325761                                 
13 2.13696877 3.27621657 1.89715979 2.44500155 1.67537844                      
14 1.09518411 2.72748029 3.79235173 3.28249000 3.34085386 2.39848635           
15 3.75178815 3.61502847 2.01444991 0.95291228 4.21690633 2.89420864 3.43661573
16 4.46416837 4.78933774 0.90886267 2.14959636 3.56633256 2.63466676 4.58929108
17 4.42777645 4.76462161 0.88694713 2.14348480 3.53616396 2.59789551 4.55389916
18 4.06324997 4.34548994 0.76641330 2.24411965 2.75923916 2.06975840 4.23980756
19 3.45441937 2.70073884 5.70848512 4.86369820 5.03837684 4.58842859 2.59528243
20 3.18626474 2.43255606 2.01285943 1.24645775 2.69676703 1.90711493 2.80832625
           15         16         17         18         19
2                                                        
3                                                        
4                                                        
5                                                        
6                                                        
7                                                        
8                                                        
9                                                        
10                                                       
11                                                       
12                                                       
13                                                       
14                                                       
15                                                       
16 2.44346362                                            
17 2.43090390 0.06612795                                 
18 2.70759244 0.92770660 0.92298089                      
19 4.81338654 6.50987547 6.47485108 6.17432859           
20 2.04268914 2.64231576 2.63236733 2.28374283 4.39680572

2.4.5 Koefisien Korelasi Cophenetic

> #Koefisien Korelasi Cophenetic
> d1 <- dist(data[,2:6])
> #Single Linkage
> hiers <- hclust(dist(data[,2:6]), method = "single")
> #korelasi cophenetic
> hc1 <- hclust(d1, "single")
> d2 <- cophenetic(hc1)
> cors <- cor(d1,d2)
> cors
[1] 0.8697509
> #Average Linkage
> hierave <- hclust(dist(data[,2:6]), method = "ave")
> #korelasi cophenetic
> hc2 <- hclust(d1, "ave")
> d3 <- cophenetic(hc2)
> corave <- cor(d1,d3)
> corave
[1] 0.8180623
> #Complete Linkage
> hiercomp <- hclust(dist(data[,2:6]), method = "complete")
> #korelasi cophenetic
> hc3 <- hclust(d1, "complete")
> d4 <- cophenetic(hc3)
> corcomp <- cor(d1,d4)
> corcomp
[1] 0.8079495
> #Centorid Linkage
> hiercen <- hclust(dist(data[,2:6]), method = "centroid")
> #korelasi cophenetic
> hc4 <- hclust(d1, "centroid")
> d5 <- cophenetic(hc4)
> corcen <- cor(d1,d5)
> corcen
[1] 0.8736663
> #Ward
> hierward <- hclust(dist(data[,2:6]), method = "ward.D")
> #korelasi cophenetic
> hc5 <- hclust(d1,"ward.D")
> d6 <- cophenetic(hc5)
> corward <- cor(d1,d6)
> corward
[1] 0.7835281

2.4.6 Membuat Data Frame dengan Semua Koefisien Cophenetic

> KorCop<-data.frame(cors,corave,corcomp,corcen,corward)
> KorCop
       cors    corave   corcomp    corcen   corward
1 0.8697509 0.8180623 0.8079495 0.8736663 0.7835281

2.4.7 Indeks Validitas

> inval <- clValid(datastand, 2:6, clMethods = "hierarchical", validation = "internal", metric = "euclidean", method = "average")
> summary(inval)

Clustering Methods:
 hierarchical 

Cluster sizes:
 2 3 4 5 6 

Validation Measures:
                                 2       3       4       5       6
                                                                  
hierarchical Connectivity   7.6460 13.8393 16.6671 17.4171 23.2115
             Dunn           0.3761  0.5337  0.6072  0.6072  0.6525
             Silhouette     0.3931  0.3836  0.3969  0.3712  0.4673

Optimal Scores:

             Score  Method       Clusters
Connectivity 7.6460 hierarchical 2       
Dunn         0.6525 hierarchical 6       
Silhouette   0.4673 hierarchical 6       
> optimalScores(inval)
                 Score       Method Clusters
Connectivity 7.6460317 hierarchical        2
Dunn         0.6525031 hierarchical        6
Silhouette   0.4673076 hierarchical        6
> plot(inval)

2.4.8 Cluster Hirarki Menggunakan Metode Average Linkage

> #Metode Average Linkage
> hirave <- hclust(dist(scale(data[,2:6])), method = "average")
> hirave

Call:
hclust(d = dist(scale(data[, 2:6])), method = "average")

Cluster method   : average 
Distance         : euclidean 
Number of objects: 20 
> plot(hirave, labels(data$nama_hp), hang = 1, col = "blue", main = "Cluster Dendogram", sub = " ", xlab = "nama hp", ylab = "Jarak")

> 
> anggotaave <- data.frame(id = data$nama_hp, cutree(hirave, k = 6))
> anggotaave
                         id cutree.hirave..k...6.
1    Apple iPhone SE (2020)                     1
2        Samsung Galaxy A52                     2
3          Oppo Reno 5 Pro+                     3
4      Xiaomi Redmi Note 10                     2
5           Google Pixel 4a                     1
6                 Vivo Y20s                     4
7        OnePlus Nord CE 5G                     2
8         Sony Xperia 1 III                     3
9        Samsung Galaxy S20                     5
10    Motorola Moto G Power                     4
11       Xiaomi Poco X3 NFC                     2
12          Apple iPhone XR                     1
13           Google Pixel 5                     1
14            OnePlus 9 Pro                     3
15       Samsung Galaxy M31                     2
16          Xiaomi Redmi 9A                     4
17               Realme C11                     4
18                Nokia 2.4                     4
19 Samsung Galaxy S21 Ultra                     6
20        Xiaomi Mi 11 Lite                     2
> clus_hier <- eclust(datastand, FUNcluster = "hclust", k = 6, hc_method = "average", graph = TRUE)
> fviz_dend(clus_hier, rect = TRUE, cex = 0.5)

> 
> idclus = clus_hier$cluster
> idclus
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 
 1  2  3  2  1  4  2  3  5  4  2  1  1  3  2  4  4  4  6  2 
> aggregate(data,list(idclus),mean)
  Group.1 nama_hp material_body kapasitas_baterai room_size kamera_utama
1       1      NA     0.7000000          2995.750      96.0     12.10000
2       2      NA     0.6666667          4901.667     128.0     64.00000
3       3      NA     0.8000000          4450.000     256.0     36.66667
4       4      NA     0.5400000          4900.000      44.8     12.60000
5       5      NA     0.9000000          4000.000     128.0    108.00000
6       6      NA     1.0000000          5000.000     256.0    108.00000
     harga
1  5500000
2  3000000
3  8666667
4  1900000
5  7000000
6 12000000
> 
> # Menambahkan hasil klasterisasi ke data asli untuk kemudahan plotting
> data$Cluster_Hierarki <- as.factor(idclus)  

2.4.9 Menvisualisasikan Menggunakan Scatter Plot

> # Scatter plot for 'kapasitas_baterai' vs. 'harga' with labels for HP names
> ggplot(data, aes(x = kapasitas_baterai, y = harga, label = nama_hp)) +
+   geom_point() +  
+   geom_text(vjust = -0.5, hjust = 0.5, size = 3) +
+   labs(title = "Kapacitas Baterai vs Harga", 
+        x = "Kapacitas Baterai", 
+        y = "Harga") +
+   theme_minimal()  

3 HASIL DAN PEMBAHASAN

3.1 Statistika Deskriptif

> statdes
   nama_hp          material_body  kapasitas_baterai    chipset    
 Length:20          Min.   :0.50   Min.   :1821      Min.   :0.50  
 Class :character   1st Qu.:0.60   1st Qu.:4208      1st Qu.:0.60  
 Mode  :character   Median :0.70   Median :4500      Median :0.70  
                    Mean   :0.69   Mean   :4412      Mean   :0.69  
                    3rd Qu.:0.80   3rd Qu.:5000      3rd Qu.:0.80  
                    Max.   :1.00   Max.   :6000      Max.   :1.00  
    ram_size       room_size      kamera_utama        harga         
 Min.   : 2.00   Min.   : 32.0   Min.   :  8.00   Min.   : 1500000  
 1st Qu.: 3.75   1st Qu.: 64.0   1st Qu.: 12.20   1st Qu.: 2425000  
 Median : 6.00   Median :128.0   Median : 32.00   Median : 3500000  
 Mean   : 6.50   Mean   :126.4   Mean   : 41.07   Mean   : 4725000  
 3rd Qu.: 8.00   3rd Qu.:128.0   3rd Qu.: 64.00   3rd Qu.: 6625000  
 Max.   :12.00   Max.   :256.0   Max.   :108.00   Max.   :12000000  

Berdasarkan Hasil Statistika Deskriptif didapatkan bahwa:

Variabel material_body memiliki nilai minimum 0.50 dan maksimum 1.00, dengan nilai rata-rata (mean) sebesar 0.69. Ini menunjukkan bahwa material body yang digunakan dalam HP memiliki variasi yang cukup signifikan. Sebagian besar HP dalam dataset ini memiliki material body yang lebih mendekati angka rata-rata, dengan kuartil pertama (Q1) pada 0.60 dan kuartil ketiga (Q3) pada 0.80, menunjukkan kecenderungan material body yang cukup bervariasi tetapi masih dominan pada kategori tertentu.

Variabel kapasitas_baterai, rentang nilai yang ada antara 1821 mAh hingga 6000 mAh, dengan rata-rata kapasitas sebesar 4412 mAh. Hal ini menunjukkan bahwa mayoritas HP dalam sampel memiliki kapasitas baterai yang relatif besar, dengan nilai kuartil pertama (Q1) pada 4208 mAh dan kuartil ketiga (Q3) pada 5000 mAh. Hal ini mengindikasikan bahwa sebagian besar HP cenderung memiliki kapasitas baterai yang lebih besar, dengan sedikit HP yang memiliki kapasitas lebih kecil.

Variabel chipset memiliki nilai minimum 0.50 dan maksimum 1.00, dengan rata-rata 0.69. Nilai kuartil pertama (Q1) dan kuartil ketiga (Q3) pada 0.60 dan 0.80, masing-masing, menunjukkan bahwa sebagian besar HP dalam sampel menggunakan chipset dengan tingkat performa yang relatif standar. Dengan rata-rata 0.69, chipset HP dalam dataset ini lebih banyak yang mendekati nilai rata-rata, dengan sebagian kecil di antaranya memiliki performa lebih rendah atau lebih tinggi.

Variabel ram_size menunjukkan rentang kapasitas antara 2 GB hingga 12 GB, dengan rata-rata 6.50 GB. Kuartil pertama (Q1) menunjukkan 3.75 GB, dan kuartil ketiga (Q3) menunjukkan 8.00 GB, yang berarti mayoritas HP dalam sampel memiliki RAM yang cukup besar, dengan sebagian kecil memiliki RAM yang lebih kecil. Hal ini menunjukkan bahwa hampir semua HP dalam sampel memiliki kapasitas RAM yang memadai untuk kebutuhan sehari-hari.

Variabel room_size menunjukkan rentang nilai yang sangat besar, antara 32 inci hingga 1080 inci, dengan nilai rata-rata 126.4 inci. Hal ini mengindikasikan bahwa terdapat variasi yang cukup ekstrem dalam ukuran layar HP, dari yang sangat kecil hingga yang sangat besar, meskipun rata-rata ukuran layar cukup besar (126.4 inci). Kuartil pertama (Q1) pada 64 inci dan kuartil ketiga (Q3) pada 256 inci menunjukkan adanya kelompok HP dengan ukuran layar yang sangat bervariasi.

Variabel kamera_utama menunjukkan rentang antara 8 MP hingga 108 MP, dengan rata-rata 41.07 MP. Kuartil pertama (Q1) pada 12.20 MP dan kuartil ketiga (Q3) pada 64.00 MP menunjukkan bahwa mayoritas HP dalam sampel memiliki kualitas kamera utama yang cukup tinggi. Ini menggambarkan bahwa sebagian besar HP yang diuji memiliki kamera dengan resolusi tinggi, namun ada juga beberapa HP dengan kualitas kamera lebih rendah.

Variabel harga menunjukkan rentang harga yang sangat lebar, dari 1.500.000 IDR hingga 12.000.000 IDR, dengan rata-rata harga 4.725.000 IDR. Kuartil pertama (Q1) pada 2.450.000 IDR dan kuartil ketiga (Q3) pada 6.625.000 IDR, menunjukkan bahwa mayoritas HP dalam sampel memiliki harga yang lebih terjangkau, meskipun ada beberapa HP yang memiliki harga sangat tinggi. Hal ini mencerminkan variasi harga yang besar di pasar HP yang diuji, yang dipengaruhi oleh berbagai faktor seperti merek dan spesifikasi lainnya.

3.2 Uji Asumsi

3.2.1 Uji Sampel Representatif

> kmo
Kaiser-Meyer-Olkin factor adequacy
Call: KMO(r = data[, 2:8])
Overall MSA =  0.78
MSA for each item = 
    material_body kapasitas_baterai           chipset          ram_size 
             0.80              0.50              0.85              0.78 
        room_size      kamera_utama             harga 
             0.76              0.69              0.82 

Tujuan dilakukan uji Kaiser-Meyer-Olkin (KMO) adalah untuk mengukur kelayakan data dalam melakukan analisis faktor. Uji KMO digunakan untuk menilai apakah data yang dimiliki cukup memenuhi syarat untuk dilanjutkan dengan analisis faktor, yang merupakan metode statistik untuk mengidentifikasi faktor-faktor yang mendasari variabel yang saling terkait.

Syarat hasil uji Kaiser-Meyer-Olkin (KMO): Nilai Kaiser-Meyer-Olkin (KMO) lebih rendah dari 0.5,maka analisis faktor tidak layak dilakukan. Sedangkan jika nilai Kaiser-Meyer-Olkin (KMO) lebih besar dari 0.5, maka analisis faktor layak dilakukan. Apabila data tidak memenuhi syarat maka dapat dilakukan menghapus variabel atau mengurangi dimensi.

Berdasarkan hasil diatas didapatkan bahwa hasil pengujian Kaiser-Meyer-Olkin (KMO) yaitu bernilai diatas 0.5 menunjukkan bahwa sampel telah representatif atau mewakili populasi. Sehingga dapat di analis lanjut.

3.2.2 Uji Non-Multikolinearitas

> korelasi
                  material_body kapasitas_baterai     chipset  ram_size
material_body         1.0000000       -0.23750627  0.92192628 0.7068394
kapasitas_baterai    -0.2375063        1.00000000 -0.06680734 0.1296910
chipset               0.9219263       -0.06680734  1.00000000 0.7646516
ram_size              0.7068394        0.12969096  0.76465157 1.0000000
room_size             0.6933067        0.11571279  0.74950913 0.9744548
kamera_utama          0.5854882        0.30334928  0.70972489 0.5200962
harga                 0.8753876       -0.25654927  0.81460299 0.7782016
                  room_size kamera_utama      harga
material_body     0.6933067    0.5854882  0.8753876
kapasitas_baterai 0.1157128    0.3033493 -0.2565493
chipset           0.7495091    0.7097249  0.8146030
ram_size          0.9744548    0.5200962  0.7782016
room_size         1.0000000    0.4758276  0.7901405
kamera_utama      0.4758276    1.0000000  0.3445273
harga             0.7901405    0.3445273  1.0000000

Uji non-multikolinearitas dilakukan bertujuan untuk memastikan tidak ada hubungan linear yang kuat antar variabel independen. Multikolinearitas terbentuk saat dua atau lebih variabel memiliki korelasi yang sangat besar, sehingga tidak dapat dilakukan uji lanjut.

Berdasarkan hasil uji didapatkan bahwa terdapat multikolinearitas, sehingga perlu penanganan lebih lanjut. Pada kasus ini dilakukan penanganan multikolinearitas dengan cara menghilangkan variabel yang berkorelasi cukup kuat yaitu variabel chipset dan ram_size.

3.2.3 Penanganan Multikolinearitas

> data <- data[, !names(data) %in% c("chipset", "ram_size")]
> data
                    nama_hp material_body kapasitas_baterai room_size
1    Apple iPhone SE (2020)           0.7              1821        64
2        Samsung Galaxy A52           0.8              4500       128
3          Oppo Reno 5 Pro+           0.8              4350       256
4      Xiaomi Redmi Note 10           0.7              5000       128
5           Google Pixel 4a           0.6              3140       128
6                 Vivo Y20s           0.5              5000        64
7        OnePlus Nord CE 5G           0.6              4500       128
8         Sony Xperia 1 III           0.8              4500       256
9        Samsung Galaxy S20           0.9              4000       128
10    Motorola Moto G Power           0.6              5000        64
11       Xiaomi Poco X3 NFC           0.6              5160       128
12          Apple iPhone XR           0.8              2942        64
13           Google Pixel 5           0.7              4080       128
14            OnePlus 9 Pro           0.8              4500       256
15       Samsung Galaxy M31           0.6              6000       128
16          Xiaomi Redmi 9A           0.5              5000        32
17               Realme C11           0.5              5000        32
18                Nokia 2.4           0.6              4500        32
19 Samsung Galaxy S21 Ultra           1.0              5000       256
20        Xiaomi Mi 11 Lite           0.7              4250       128
   kamera_utama    harga Cluster_Hierarki
1          12.0  6000000                1
2          64.0  4000000                2
3          50.0  8000000                3
4          64.0  2500000                2
5          12.2  3500000                1
6          13.0  2000000                4
7          64.0  3500000                2
8          12.0  9000000                3
9         108.0  7000000                5
10         16.0  2500000                4
11         64.0  2200000                2
12         12.0  6500000                1
13         12.2  6000000                1
14         48.0  9000000                3
15         64.0  3000000                2
16         13.0  1500000                4
17         13.0  1700000                4
18          8.0  1800000                4
19        108.0 12000000                6
20         64.0  2800000                2
> korelasi1 <- cor(data[,2:6], method = 'pearson')
> korelasi1
                  material_body kapasitas_baterai room_size kamera_utama
material_body         1.0000000        -0.2375063 0.6933067    0.5854882
kapasitas_baterai    -0.2375063         1.0000000 0.1157128    0.3033493
room_size             0.6933067         0.1157128 1.0000000    0.4758276
kamera_utama          0.5854882         0.3033493 0.4758276    1.0000000
harga                 0.8753876        -0.2565493 0.7901405    0.3445273
                       harga
material_body      0.8753876
kapasitas_baterai -0.2565493
room_size          0.7901405
kamera_utama       0.3445273
harga              1.0000000

Setelah dilakukan penanganan maka didapatkan hasil seperti di output. Maka sudah bisa dibentuk cluster.

3.2.4 Standarisasi

> datastand <- scale(data[,2:6])
> datastand
      material_body kapasitas_baterai   room_size kamera_utama      harga
 [1,]    0.07285096       -2.82393567 -0.82190385   -0.8843612  0.4215657
 [2,]    0.80136057        0.09574233  0.02107446    0.6975714 -0.2397138
 [3,]    0.80136057       -0.06773348  1.70703108    0.2716665  1.0828451
 [4,]    0.07285096        0.64066171  0.02107446    0.6975714 -0.7356734
 [5,]   -0.65565865       -1.38643836  0.02107446   -0.8782768 -0.4050337
 [6,]   -1.38416827        0.64066171 -0.82190385   -0.8539394 -0.9009933
 [7,]   -0.65565865        0.09574233  0.02107446    0.6975714 -0.4050337
 [8,]    0.80136057        0.09574233  1.70703108   -0.8843612  1.4134848
 [9,]    1.52987019       -0.44917704  0.02107446    2.0361298  0.7522054
[10,]   -0.65565865        0.64066171 -0.82190385   -0.7626740 -0.7356734
[11,]   -0.65565865        0.81503591  0.02107446    0.6975714 -0.8348653
[12,]    0.80136057       -1.60222643 -0.82190385   -0.8843612  0.5868855
[13,]    0.07285096       -0.36198994  0.02107446   -0.8782768  0.4215657
[14,]    0.80136057        0.09574233  1.70703108    0.2108229  1.4134848
[15,]   -0.65565865        1.73050046  0.02107446    0.6975714 -0.5703535
[16,]   -1.38416827        0.64066171 -1.24339301   -0.8539394 -1.0663131
[17,]   -1.38416827        0.64066171 -1.24339301   -0.8539394 -1.0001852
[18,]   -0.65565865        0.09574233 -1.24339301   -1.0060483 -0.9671212
[19,]    2.25837980        0.64066171  1.70703108    2.0361298  2.4054040
[20,]    0.07285096       -0.17671735  0.02107446    0.6975714 -0.6364815
attr(,"scaled:center")
    material_body kapasitas_baterai         room_size      kamera_utama 
             0.69           4412.15            126.40             41.07 
            harga 
       4725000.00 
attr(,"scaled:scale")
    material_body kapasitas_baterai         room_size      kamera_utama 
     1.372665e-01      9.175669e+02      7.592129e+01      3.287119e+01 
            harga 
     3.024440e+06 
> rownames(datastand) <- 1:nrow(datastand)

Setelah itu data distandarisasi. ###

> #Menghitung Jarak Euclidien
> jarak <- dist(datastand, method = "euclidean")
> jarak
            1          2          3          4          5          6          7
2  3.56449991                                                                  
3  4.03690218 2.19082888                                                       
4  4.06887704 1.03616567 2.71355935                                            
5  1.99775891 2.61350205 3.20007660 2.68932729                                 
6  3.98452351 2.93744144 4.10809875 2.29521980 2.36580676                      
7  3.59883808 1.46636820 2.71795096 0.96798038 2.16336712 2.04730006           
8  4.05396861 2.84218688 1.21344425 3.28504262 3.23562374 4.10203849 3.28251049
9  4.13661529 1.89823748 2.59640684 2.70484293 3.93547495 4.63417162 2.86433485
10 3.72668368 2.34707208 3.66020637 1.83675135 2.22315851 0.75258639 1.80255070
11 4.30866364 1.73046052 3.09897481 0.75562666 2.74126648 1.91919352 0.83793705
12 1.43200222 2.60374491 3.21442941 3.24400351 1.96571174 3.46724564 3.03364959
13 2.60227328 1.91333042 2.28460566 2.19722785 1.50448904 2.36401823 1.97656500
14 4.19929634 2.41090017 0.37383006 2.91991753 3.41399506 4.23786657 2.91706847
15 5.04684471 2.21464710 3.33368577 1.32128930 3.49656059 2.22386952 1.64309609
16 4.06432059 3.12454856 4.45749169 2.49765719 2.58391598 0.45275133 2.29586970
17 4.04058091 3.10770879 4.42598760 2.48976611 2.56778826 0.43300363 2.27770334
18 3.34307613 2.67455131 4.08528441 2.32000638 2.03174938 1.01628073 2.19479852
19 5.96995522 3.74842350 2.73627878 4.39056853 5.64229833 6.24086783 4.61749992
20 3.36754387 0.87314668 2.55392491 0.82337571 2.12861855 2.44515404 0.81149777
            8          9         10         11         12         13         14
2                                                                              
3                                                                              
4                                                                              
5                                                                              
6                                                                              
7                                                                              
8                                                                              
9  3.55480956                                                                  
10 3.66729369 4.08925218                                                       
11 3.61113933 3.26883811 1.69799137                                            
12 3.15624402 3.33578471 2.98620530 3.63325761                                 
13 2.13696877 3.27621657 1.89715979 2.44500155 1.67537844                      
14 1.09518411 2.72748029 3.79235173 3.28249000 3.34085386 2.39848635           
15 3.75178815 3.61502847 2.01444991 0.95291228 4.21690633 2.89420864 3.43661573
16 4.46416837 4.78933774 0.90886267 2.14959636 3.56633256 2.63466676 4.58929108
17 4.42777645 4.76462161 0.88694713 2.14348480 3.53616396 2.59789551 4.55389916
18 4.06324997 4.34548994 0.76641330 2.24411965 2.75923916 2.06975840 4.23980756
19 3.45441937 2.70073884 5.70848512 4.86369820 5.03837684 4.58842859 2.59528243
20 3.18626474 2.43255606 2.01285943 1.24645775 2.69676703 1.90711493 2.80832625
           15         16         17         18         19
2                                                        
3                                                        
4                                                        
5                                                        
6                                                        
7                                                        
8                                                        
9                                                        
10                                                       
11                                                       
12                                                       
13                                                       
14                                                       
15                                                       
16 2.44346362                                            
17 2.43090390 0.06612795                                 
18 2.70759244 0.92770660 0.92298089                      
19 4.81338654 6.50987547 6.47485108 6.17432859           
20 2.04268914 2.64231576 2.63236733 2.28374283 4.39680572

Menghitung jarak euclidien bertujuan untuk menghitung seberapa dekat atau beda antar variabel. Semakin kecil jarak yang dihasilkan maka variabel semakin memiliki karakteristik yang sama.

> #Koefisien Korelasi Cophenetic
> d1 <- dist(data[,2:6])
> #Single Linkage
> hiers <- hclust(dist(data[,2:6]), method = "single")
> #korelasi cophenetic
> hc1 <- hclust(d1, "single")
> d2 <- cophenetic(hc1)
> cors <- cor(d1,d2)
> cors
[1] 0.8697509

Nilai korelasi sebesar 0.8697509 menunjukkan bahwa dendrogram yang dihasilkan merepresentasikan struktur data asli dengan cukup baik.

> #Average Linkage
> hierave <- hclust(dist(data[,2:6]), method = "ave")
> #korelasi cophenetic
> hc2 <- hclust(d1, "ave")
> d3 <- cophenetic(hc2)
> corave <- cor(d1,d3)
> corave
[1] 0.8180623
> #Complete Linkage
> hiercomp <- hclust(dist(data[,2:6]), method = "complete")
> #korelasi cophenetic
> hc3 <- hclust(d1, "complete")
> d4 <- cophenetic(hc3)
> corcomp <- cor(d1,d4)
> corcomp
[1] 0.8079495
> #Centorid Linkage
> hiercen <- hclust(dist(data[,2:6]), method = "centroid")
> #korelasi cophenetic
> hc4 <- hclust(d1, "centroid")
> d5 <- cophenetic(hc4)
> corcen <- cor(d1,d5)
> corcen
[1] 0.8736663
> #Ward
> hierward <- hclust(dist(data[,2:6]), method = "ward.D")
> #Ward
> #korelasi cophenetic
> hc5 <- hclust(d1,"ward.D")
> d6 <- cophenetic(hc5)
> corward <- cor(d1,d6)
> corward
[1] 0.7835281

Untuk memilih metode terbaik, dilakukan perbandingan dengan mengamati nilai korelasi cophenetic dari masing-masing metode. Metode yang memiliki nilai korelasi cophenetic tertinggi dipilih sebagai yang terbaik, karena mencerminkan kecocokan terbaik antara jarak asli dan jarak cophenetic.

Dalam menghitung korelasi cophenetic, data yang telah diubah menjadi jarak (d1) dibandingkan dengan koefisien cophenetic (d2, d3 sampai d6) yang dihasilkan dari objek cluster hc. Objek hc didefinisikan menggunakan hclust() dengan argumen berupa data yang sudah dihitung jaraknya (d1), metode clustering yang dipilih (single, average, complete, centroid, atau Ward), dan jarak Euclidean sebagai metrik pengukurannya.

> #Membuat Data Frame dengan Semua Koefisien Cophenetic
> KorCop<-data.frame(cors,corave,corcomp,corcen,corward)
> KorCop
       cors    corave   corcomp    corcen   corward
1 0.8697509 0.8180623 0.8079495 0.8736663 0.7835281
> #Indeks Validitas
> inval <- clValid(datastand, 2:6, clMethods = "hierarchical", validation = "internal", metric = "euclidean", method = "average")
> summary(inval)

Clustering Methods:
 hierarchical 

Cluster sizes:
 2 3 4 5 6 

Validation Measures:
                                 2       3       4       5       6
                                                                  
hierarchical Connectivity   7.6460 13.8393 16.6671 17.4171 23.2115
             Dunn           0.3761  0.5337  0.6072  0.6072  0.6525
             Silhouette     0.3931  0.3836  0.3969  0.3712  0.4673

Optimal Scores:

             Score  Method       Clusters
Connectivity 7.6460 hierarchical 2       
Dunn         0.6525 hierarchical 6       
Silhouette   0.4673 hierarchical 6       
> optimalScores(inval)
                 Score       Method Clusters
Connectivity 7.6460317 hierarchical        2
Dunn         0.6525031 hierarchical        6
Silhouette   0.4673076 hierarchical        6
> plot(inval)

Connectivity adalah metrik yang mengevaluasi bagaimana titik data dalam kluster terhubung satu sama lain. Nilai yang lebih rendah menunjukkan kluster yang lebih baik karena lebih konsisten dengan kedekatan data.

Dunn Index mengukur kualitas clustering. Nilai yang lebih tinggi menunjukkan clustering yang lebih baik, dengan mempertimbangkan rasio antara jarak minimum antar kluster (separation) dan jarak maksimum dalam kluster (compactness). Nilai Dunn yang lebih tinggi biasanya menunjukkan kluster yang lebih terpisah dan lebih kompak.

Metrik Silhouette mengukur seberapa baik objek dikelompokkan dalam klusternya dibandingkan dengan kluster lain. Nilai berkisar dari -1 hingga 1, di mana nilai lebih tinggi menunjukkan bahwa kluster lebih baik atau objek lebih dekat dengan klusternya daripada kluster lain.

Berdasarkan grafik ini, jumlah kluster optimal tampaknya adalah 6, karena memiliki nilai Silhouette tertinggi. Namun, penting untuk mempertimbangkan konteks data, karena peningkatan yang besar ini bisa saja diakibatkan oleh struktur data tertentu.

> #Metode Average Linkage
> hirave <- hclust(dist(scale(data[,2:6])), method = "average")
> hirave

Call:
hclust(d = dist(scale(data[, 2:6])), method = "average")

Cluster method   : average 
Distance         : euclidean 
Number of objects: 20 
> plot(hirave, labels(data$nama_hp), hang = 1, col = "blue", main = "Cluster Dendogram", sub = " ", xlab = "nama hp", ylab = "Jarak")

> 
> anggotaave <- data.frame(id = data$nama_hp, cutree(hirave, k = 6))
> anggotaave
                         id cutree.hirave..k...6.
1    Apple iPhone SE (2020)                     1
2        Samsung Galaxy A52                     2
3          Oppo Reno 5 Pro+                     3
4      Xiaomi Redmi Note 10                     2
5           Google Pixel 4a                     1
6                 Vivo Y20s                     4
7        OnePlus Nord CE 5G                     2
8         Sony Xperia 1 III                     3
9        Samsung Galaxy S20                     5
10    Motorola Moto G Power                     4
11       Xiaomi Poco X3 NFC                     2
12          Apple iPhone XR                     1
13           Google Pixel 5                     1
14            OnePlus 9 Pro                     3
15       Samsung Galaxy M31                     2
16          Xiaomi Redmi 9A                     4
17               Realme C11                     4
18                Nokia 2.4                     4
19 Samsung Galaxy S21 Ultra                     6
20        Xiaomi Mi 11 Lite                     2
> clus_hier <- eclust(datastand, FUNcluster = "hclust", k = 6, hc_method = "average", graph = TRUE)
> fviz_dend(clus_hier, rect = TRUE, cex = 0.5)

> 
> idclus = clus_hier$cluster
> idclus
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 
 1  2  3  2  1  4  2  3  5  4  2  1  1  3  2  4  4  4  6  2 
> aggregate(data,list(idclus),mean)
  Group.1 nama_hp material_body kapasitas_baterai room_size kamera_utama
1       1      NA     0.7000000          2995.750      96.0     12.10000
2       2      NA     0.6666667          4901.667     128.0     64.00000
3       3      NA     0.8000000          4450.000     256.0     36.66667
4       4      NA     0.5400000          4900.000      44.8     12.60000
5       5      NA     0.9000000          4000.000     128.0    108.00000
6       6      NA     1.0000000          5000.000     256.0    108.00000
     harga Cluster_Hierarki
1  5500000               NA
2  3000000               NA
3  8666667               NA
4  1900000               NA
5  7000000               NA
6 12000000               NA
> # Menambahkan hasil klasterisasi ke data asli untuk kemudahan plotting
> data$Cluster_Hierarki <- as.factor(idclus)  

Pembagian Cluster berdasarkan handphone name didapatkan:

Klaster 1: 8: Sony Xperia 1 III ; 3: Oppo Reno 5 Pro+ ; 14: OnePlus 9 Pro

Klaster 2: 9: Samsung Galaxy S20

Klaster 3: 19: Samsung Galaxy S21 Ultra

Klaster 4: 1: Apple iPhone SE (2020) ; 12: Apple iPhone XR ; 5: Google Pixel 4a; 13: Google Pixel 5

Klaster 5: 6: Vivo Y20s ; 16: Xiaomi Redmi 9A ; 17: Realme C11 ; 10: Motorola Moto G Power ; 18: Nokia 2.4

Klaster 6: 15: Samsung Galaxy M31 ; 2: Samsung Galaxy A52 ; 4: Xiaomi Redmi Note 10 ; 11: Xiaomi Poco X3 NFC ; 7: OnePlus Nord CE 5G ; 20: Xiaomi Mi 11 Lite

>   # Scatter plot for 'kapasitas_baterai' vs. 'harga' with labels for HP names
> ggplot(data, aes(x = kapasitas_baterai, y = harga, label = nama_hp)) +
+   geom_point() +  # This adds the points to the plot
+   geom_text(vjust = -0.5, hjust = 0.5, size = 3) +  # Add labels (adjust position as needed)
+   labs(title = "Kapacitas Baterai vs Harga", 
+        x = "Kapacitas Baterai", 
+        y = "Harga") +
+   theme_minimal()  

Dari plot tersebut didapatkan :

  1. Smartphone dengan kapasitas baterai yang lebih besar cenderung memiliki harga lebih tinggi, tetapi ini tidak berlaku secara konsisten.

  2. Smartphone seperti Samsung Galaxy M31 memiliki kapasitas baterai tinggi (di atas 6000 mAh) dengan harga yang relatif terjangkau.

  3. Smartphone premium seperti Samsung Galaxy S21 Ultra memiliki harga yang sangat tinggi (>12 juta) meskipun kapasitas baterainya tidak yang tertinggi (~5000 mAh).

  4. Apple iPhone SE (2020) dan Apple iPhone XR memiliki harga yang cukup tinggi dibandingkan kapasitas baterai mereka (<3000 mAh), menunjukkan bahwa harga dipengaruhi oleh faktor lain seperti merek atau spesifikasi non-baterai.

  5. Samsung Galaxy M31 menjadi outlier pada kapasitas baterai tinggi dengan harga rendah.

  6. Smartphone seperti Xiaomi Mi 11 Lite, Samsung Galaxy A52, dan Google Pixel 5 berada di rentang harga menengah dengan kapasitas baterai yang cukup bervariasi (sekitar 4000 mAh).

4 KESIMPULAN

Dari Hasil Uji diatas, dapat disimpulkan bahwa spesifikasi handphone dibagi menjadi 6 cluster menggunakan metode average linkage. Berdasarkan nilai koefisien cophenetic sebesar 0.8180623 menunjukkan hasil yang paling representatif. Pembagian Cluster berdasarkan handphone name didapatkan:

Klaster 1: 8: Sony Xperia 1 III ; 3: Oppo Reno 5 Pro+ ; 14: OnePlus 9 Pro

Klaster 2: 9: Samsung Galaxy S20

Klaster 3: 19: Samsung Galaxy S21 Ultra

Klaster 4: 1: Apple iPhone SE (2020) ; 12: Apple iPhone XR ; 5: Google Pixel 4a; 13: Google Pixel 5

Klaster 5: 6: Vivo Y20s ; 16: Xiaomi Redmi 9A ; 17: Realme C11 ; 10: Motorola Moto G Power ; 18: Nokia 2.4

Klaster 6: 15: Samsung Galaxy M31 ; 2: Samsung Galaxy A52 ; 4: Xiaomi Redmi Note 10 ; 11: Xiaomi Poco X3 NFC ; 7: OnePlus Nord CE 5G ; 20: Xiaomi Mi 11 Lite

Secara umum, hasil analisis menunjukkan bahwa Kapasitas baterai bukan satu-satunya penentu harga. Banyak faktor lain, seperti chipset, merek, dan fitur tambahan, memengaruhi harga smartphone dan untuk kapasitas baterai yang lebih tinggi, seperti >5000 mAh, ada kecenderungan harga lebih rendah pada merek tertentu (misalnya, Samsung Galaxy M31), dibandingkan smartphone premium dengan kapasitas baterai serupa.

5 DAFTAR PUSTAKA

Senja, M. P. (n.d.). Data Smartphone. Kaggle. Diakses pada 25 November 2024, dari https://www.kaggle.com/datasets/muhammadputrasenja/data-smartphone?resource=download

Apriliana, T., & Widodo, E. (2023). Analisis cluster hierarki untuk pengelompokan provinsi di Indonesia berdasarkan jumlah base transceiver station dan kekuatan sinyal. Konstelasi: Konvergensi Teknologi dan Sistem Informasi, 3(2), Desember 2023.

Novaldi, J., & Wijayanto, A. W. (2023). Analisis cluster kualitas pemuda di Indonesia pada tahun 2022 dengan agglomerative hierarchical dan k-means. Komputika: Jurnal Sistem Komputer, 12(2), 211-219.

Jurnal Informatika Komputer, Bisnis dan Manajemen (FAHMA). (2023). Vol. 21 No. 1: Januari 2023. STMIK El Rahma Yogyakarta.