Library
# install.packages('psych')
# install.packages('GPArotation')
# install.packages('clValid')
# install.packages('ggplot2')
# install.packages('cluster')
# install.packages('factoextra')
# install.packages('tidyverse')
# install.packages('car')
# install.packages('readxl')Data kependudukan merupakan dasar penting untuk memahami kondisi demografi suatu wilayah. Pada penelitian ini digunakan data kependudukan Indonesia tahun 2025 yang bersumber dari Badan Pusat Statistik (BPS). Data tersebut memuat beberapa indikator utama, yaitu:
Ketiga variabel tersebut digunakan sebagai dasar untuk melihat variasi dan pola demografis antarprovinsi. Untuk meninjau kemiripan karakteristik antarwilayah, penelitian ini menggunakan analisis klaster, yaitu metode statistik yang bertujuan mengelompokkan objek berdasarkan tingkat kesamaannya. Pendekatan ini banyak digunakan untuk menggambarkan struktur kelompok alami dalam data multivariat.
Penelitian ini bertujuan memberikan gambaran umum mengenai kelompok provinsi yang memiliki karakteristik demografi serupa sehingga dapat membantu memahami perbedaan dan pola distribusi penduduk di Indonesia. Sumber data dapat diakses melalui situs resmi BPS: https://www.bps.go.id/id/statistics-table/3/V1ZSbFRUY3lTbFpEYTNsVWNGcDZjek53YkhsNFFUMDkjMyMwMDAw/jumlah-penduduk--laju-pertumbuhan-penduduk--distribusi-persentase-penduduk--kepadatan-penduduk--rasio-jenis-kelamin-penduduk-menurut-provinsi.html?year=2025
library(psych)
library(GPArotation)
library(clValid)
library(ggplot2)
library(cluster)
library(factoextra)
library(tidyverse)
library(car)
library(readxl)
library(DT)Dapat dilihat data yang dipakai adalah sebagai berikut
statdes <- summary(data)
statdes
Provinsi Jumlah Penduduk (Ribu) Laju Pertumbuhan Penduduk per Tahun
Length:38 Min. : 549.7 Min. :0.230
Class :character 1st Qu.: 1531.7 1st Qu.:1.135
Mode :character Median : 3775.0 Median :1.340
Mean : 7485.2 Mean :1.289
3rd Qu.: 6587.0 3rd Qu.:1.448
Max. :50759.0 Max. :2.670
Rasio Jenis Kelamin Penduduk
Min. : 97.8
1st Qu.:101.0
Median :103.2
Mean :104.0
3rd Qu.:105.3
Max. :114.0 Gambar diatas adalah ringkasan statistika deskriptif untuk tiap variabel, dapat dilihat jumlah penduduk memiliki nilai minimum 549,7 ribu dan nilai maksimum 50759 ribu, sedangkan laju pertumbuhan penduduk memiliki rata-rata 1,289% per tahunnya.
kmo <- KMO(data[,2:4])
kmo
Kaiser-Meyer-Olkin factor adequacy
Call: KMO(r = data[, 2:4])
Overall MSA = 0.65
MSA for each item =
Jumlah Penduduk (Ribu) Laju Pertumbuhan Penduduk per Tahun
0.68 0.65
Rasio Jenis Kelamin Penduduk
0.63 Hasil uji KMO terlihat bahwa tiap variabel memiliki nilai >0.5 yang menandakan bahwa sampel telah cukup untuk digunakan dalam analisis klaster.
korelasi <- cor(data[,2:4], method = 'pearson')
korelasi
Jumlah Penduduk (Ribu)
Jumlah Penduduk (Ribu) 1.0000000
Laju Pertumbuhan Penduduk per Tahun -0.3493323
Rasio Jenis Kelamin Penduduk -0.3727119
Laju Pertumbuhan Penduduk per Tahun
Jumlah Penduduk (Ribu) -0.3493323
Laju Pertumbuhan Penduduk per Tahun 1.0000000
Rasio Jenis Kelamin Penduduk 0.4230262
Rasio Jenis Kelamin Penduduk
Jumlah Penduduk (Ribu) -0.3727119
Laju Pertumbuhan Penduduk per Tahun 0.4230262
Rasio Jenis Kelamin Penduduk 1.0000000Dari output yang diperoleh, dapat disimpulkan tidak terjadi multikolinieritas antar variabel, karena nilai korelasi yang didapat <0.8. Sehingga data yang digunakan dapat dilakukan analisis klaster
Data distandarisasi agar setiap variabel memiliki skala yang sama, sehingga tidak ada variabel tertentu yang mendominasi perhitungan jarak pada analisis klaster
datastand <- scale(data[,2:4])
datastand
Jumlah Penduduk (Ribu) Laju Pertumbuhan Penduduk per Tahun
[1,] -0.1628517 0.21000599
[2,] 0.7270563 0.21000599
[3,] -0.1375992 0.31432269
[4,] -0.0590387 0.13176846
[5,] -0.3255521 -0.02470659
[6,] 0.1264179 -0.44197339
[7,] -0.4683694 0.02745176
[8,] 0.1784821 -0.28549834
[9,] -0.5198029 0.13176846
[10,] -0.4617563 0.49687691
[11,] 0.2796585 -2.76301997
[12,] 3.7903972 -0.59844844
[13,] 2.6933100 -0.83316101
[14,] -0.3244134 -1.69377379
[15,] 3.0310087 -1.45906121
[16,] 0.4425254 -0.49413174
[17,] -0.2648690 -1.56337791
[18,] -0.1536458 0.75766866
[19,] -0.1526385 0.80982701
[20,] -0.1505889 0.10568929
[21,] -0.4064425 0.15784764
[22,] -0.2769566 -0.07686494
[23,] -0.2818354 3.60029874
[24,] -0.5899984 0.26216434
[25,] -0.4172688 -1.30258616
[26,] -0.3791929 -0.28549834
[27,] 0.1820032 -0.46805256
[28,] -0.4071695 0.94022289
[29,] -0.5468335 -0.12902329
[30,] -0.5220365 0.62727279
[31,] -0.4830322 0.15784764
[32,] -0.5353065 0.41863939
[33,] -0.6041706 1.01846041
[34,] -0.5998962 0.73158949
[35,] -0.5616014 0.13176846
[36,] -0.6074903 0.39256021
[37,] -0.5249270 0.52295609
[38,] -0.5255752 0.26216434
Rasio Jenis Kelamin Penduduk
[1,] -0.81783968
[2,] -0.84382455
[3,] -0.66193044
[4,] 0.06564599
[5,] -0.22018761
[6,] -0.11624811
[7,] 0.03966112
[8,] 0.01367625
[9,] 0.29950985
[10,] -0.24617248
[11,] -0.84382455
[12,] -0.42806659
[13,] -0.81783968
[14,] -1.62337073
[15,] -1.20761277
[16,] -0.19420273
[17,] -0.94776404
[18,] -0.81783968
[19,] -1.05170353
[20,] 0.32549472
[21,] 0.63731319
[22,] -0.48003633
[23,] 0.71526781
[24,] 1.65072323
[25,] 0.01367625
[26,] 0.27352498
[27,] -1.36352200
[28,] -0.37609684
[29,] -0.63594557
[30,] -0.35011197
[31,] -0.48003633
[32,] 0.27352498
[33,] 1.67670810
[34,] 1.15701065
[35,] 1.39087450
[36,] 0.94913167
[37,] 2.45625428
[38,] 2.58617865
attr(,"scaled:center")
Jumlah Penduduk (Ribu) Laju Pertumbuhan Penduduk per Tahun
7485.226316 1.289474
Rasio Jenis Kelamin Penduduk
104.047368
attr(,"scaled:scale")
Jumlah Penduduk (Ribu) Laju Pertumbuhan Penduduk per Tahun
1.141669e+04 3.834477e-01
Rasio Jenis Kelamin Penduduk
3.848393e+00
rownames(datastand) <- 1:nrow(datastand)Dihitung jarak Euclidian antar masing-masing metode
jarak <- dist(datastand, method = "euclidean")
jarak
1 2 3 4 5 6 7
2 0.8902873
3 0.1892811 0.8897171
4 0.8929979 1.2046590 0.7542316
5 0.6623816 1.2457920 0.5877107 0.4209688
6 1.0004922 1.1468265 0.9692564 0.6298090 0.6238525
7 0.9284260 1.4976367 0.8270034 0.4232125 0.3010625 0.7735888
8 1.0263781 1.1321510 0.9571505 0.4829374 0.6138038 0.2099416 0.7190479
9 1.1755872 1.6935149 1.0506061 0.5167165 0.5764575 0.9589764 0.2846906
10 0.7060044 1.3611607 0.5579055 0.6266709 0.5397000 1.1154681 0.5496404
11 3.0058899 3.0065010 3.1108242 3.0531381 2.8729015 2.4372335 3.0210636
12 4.0538498 3.1953890 4.0394305 3.9490664 4.1609413 3.6805515 4.3298514
13 3.0407001 2.2259888 3.0586064 3.0474677 3.1818729 2.6896456 3.3870605
14 2.0734898 2.3103373 2.2342154 2.5011609 2.1805296 2.0103909 2.3977105
15 3.6247003 2.8681568 3.6718845 3.7013943 3.7813863 3.2653012 4.0013823
16 1.1185770 0.9993880 1.0995055 0.8431127 0.9005433 0.3297292 1.0753934
17 1.7810610 2.0346031 1.9035908 1.9856705 1.7031029 1.4498525 1.8833905
18 0.5477400 1.0374227 0.4702349 1.0868526 0.9994252 1.4176768 1.1694337
19 0.6438803 1.0848327 0.6306138 1.3103413 1.1906990 1.5874362 1.3794469
20 1.1481489 1.4657594 1.0093092 0.2767362 0.5876941 0.7561772 0.4345186
21 1.4763221 1.8658267 1.3359623 0.6694572 0.8804413 1.1007180 0.6148382
22 0.4576308 1.1057481 0.4533583 0.6235265 0.2694501 0.6544899 0.5635657
23 3.7227222 3.8655810 3.5658264 3.5358661 3.7440154 4.1470536 3.6409442
24 2.5057888 2.8213689 2.3570644 1.6767203 1.9111604 2.0325477 1.6326067
25 1.7447297 2.0815193 1.7745573 1.4793251 1.3023365 1.0262212 1.3312728
26 1.2179511 1.6485697 1.1372026 0.5655298 0.5609294 0.6573050 0.4007275
27 0.9361931 1.0133764 1.0984022 1.5685687 1.3271705 1.2487842 1.6240172
28 0.8877188 1.4277444 0.7389994 0.9848504 0.9808455 1.5042285 1.0048638
29 0.5435700 1.3345223 0.6039070 0.8934130 0.4823921 0.9062509 0.6979151
30 0.7224227 1.4064482 0.5856284 0.7954534 0.6932269 1.2721921 0.7173482
31 0.4683451 1.2646646 0.4205875 0.6915344 0.3544677 0.9292774 0.5360070
32 1.1718905 1.6986930 1.0218268 0.5935820 0.6959200 1.1534542 0.4606524
33 2.6591596 2.9629122 2.4865094 1.9180492 2.1826679 2.4251430 1.9184533
34 2.0888013 2.4568667 1.9225964 1.3577146 1.5949682 1.8777566 1.3272450
35 2.2457829 2.5808215 2.1040704 1.4173214 1.6357643 1.7532737 1.3584373
36 1.8311792 2.2425505 1.6800119 1.0720814 1.2731490 1.5395135 0.9898462
37 3.3088862 3.5434334 3.1490676 2.4667970 2.7391652 2.8236692 2.4675181
38 3.4236865 3.6519485 3.2716141 2.5666601 2.8280728 2.8677544 2.5579511
8 9 10 11 12 13 14
2
3
4
5
6
7
8
9 0.8622148
10 1.0438091 0.6591227
11 2.6236726 3.2134331 3.3961466
12 3.6522603 4.4317501 4.3947278 4.1452998
13 2.7047574 3.5360505 3.4713466 3.0904278 1.1876925
14 2.2172204 2.6586183 2.5912330 1.4546074 4.4226866 3.2397823
15 3.3174847 4.1725796 4.1169732 3.0663623 1.3874500 0.8109960 3.3892186
16 0.3955508 1.2496315 1.3425812 2.3656686 3.3576509 2.3600625 2.0173888
17 1.6594890 2.1199539 2.1853250 1.3215350 4.2007569 3.0497410 0.6906468
18 1.3747455 1.3320255 0.6998198 3.5473478 4.1888486 3.2612722 2.5860418
19 1.5634617 1.5557476 0.9178082 3.6049036 4.2331659 3.2944689 2.5737768
20 0.5987873 0.3710449 0.7593789 3.1276050 4.0737006 3.2056847 2.6582624
21 0.9631280 0.3572699 0.9479174 3.3460381 4.3955070 3.5648329 2.9233410
22 0.7033522 0.8427304 0.6465469 2.7672353 4.1009898 3.0835983 1.9808735
23 3.9753669 3.5014548 3.2539155 6.5755509 5.9598465 5.5549504 5.7877670
24 1.8895554 1.3593043 1.9156590 4.0163182 4.9244175 4.2513121 3.8230774
25 1.1787225 1.4661471 1.8186720 1.8313607 4.2889859 3.2538406 1.6856965
26 0.6152420 0.4410873 0.9428750 2.7965458 4.2397701 3.3062494 2.3631449
27 1.3892492 1.9021020 1.6105853 2.3551003 3.7299581 2.5957148 1.3514332
28 1.4132598 1.0595892 0.4652050 3.7953273 4.4709928 3.5990277 2.9155581
29 0.9861925 0.9715039 0.7422346 2.7684366 4.3675101 3.3207567 1.8635781
30 1.2067391 0.8170300 0.1773139 3.5186009 4.4839217 3.5623151 2.6547128
31 0.9369679 0.7808486 0.4124146 3.0406425 4.3401478 3.3444519 2.1819430
32 1.0357729 0.2884623 0.5306752 3.4692354 4.4987122 3.6307087 2.8469244
33 2.2535591 1.6401267 1.9974486 4.6296688 5.1338774 4.5304138 4.2807708
34 1.7168442 1.0495274 1.4293689 4.1218022 4.8534675 4.1465269 3.6998376
35 1.6181811 1.0921648 1.6802369 3.7525189 4.7730132 4.0501797 3.5319311
36 1.3973521 0.7054856 1.2086655 3.7362296 4.7138295 3.9395258 3.3242579
37 2.6673152 2.1919399 2.7032908 4.7260466 5.3102616 4.7870444 4.6473043
38 2.7227559 2.2903909 2.8427761 4.6438199 5.3342241 4.8112680 4.6461238
15 16 17 18 19 20 21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 2.9425048
17 3.3077505 1.4871277
18 3.8997229 1.5203116 2.3273393
19 3.9125147 1.6702803 2.3781297 0.2396118
20 3.8628262 0.9907852 2.1023875 1.3161687 1.5467673
21 4.2230578 1.3554491 2.3441694 1.5941020 1.8281879 0.4067091
22 3.6582056 0.8794696 1.5584082 0.9087150 1.0622999 0.8355687 1.1490546
23 6.3458277 4.2563125 5.4248981 3.2322433 3.3053914 3.5187276 3.4455875
24 4.9238597 2.2454044 3.1922484 2.5553338 2.7918325 1.4049184 1.0351689
25 3.6615091 1.1983565 1.0077725 2.2373122 2.3806202 1.4668295 1.5880514
26 3.8987811 0.9682552 1.7713252 1.5264815 1.7341554 0.4560575 0.5741429
27 3.0204698 1.1982735 1.2539087 1.3830481 1.3572738 1.8145453 2.1774666
28 4.2742312 1.6770331 2.5719778 0.5410518 0.7336440 1.1200494 1.2802779
29 3.8596320 1.1433600 1.4946933 0.9868661 1.0998565 1.0660522 1.3127042
30 4.2085897 1.4873586 2.2852294 0.6094948 0.8136409 0.9308421 1.0994228
31 3.9360189 1.1676621 1.7969368 0.7631459 0.9279226 0.8729944 1.1199714
32 4.2939647 1.4170659 2.3437312 1.2048579 1.4337689 0.4986444 0.4657898
33 5.2604134 2.6237025 3.6971433 2.5482844 2.7733805 1.6925322 1.3638521
34 4.8552925 2.1011456 3.1319635 2.0248095 2.2549011 1.1335991 0.7979282
35 4.7105968 1.9780019 2.9035843 2.3316512 2.5677230 1.1422108 0.7698110
36 4.6172204 1.7877274 2.7461421 1.8605017 2.0938823 0.8246071 0.4390228
37 5.4769511 2.9992256 4.0009699 3.3034272 3.5393024 2.2032650 1.8590023
38 5.4776600 3.0396913 3.9861414 3.4599417 3.6977294 2.2969090 1.9552880
22 23 24 25 26 27 28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 3.8665629
24 2.1801542 3.4803998
25 1.3288462 4.9546799 2.2711676
26 0.7885650 3.9120371 1.4970132 1.0504469
27 1.0696816 4.5921668 3.1960722 1.7182108 1.7401695
28 1.0306437 2.8779835 2.1450383 2.2764484 1.3875099 1.8180684
29 0.3160091 3.9754049 2.3202899 1.3476073 0.9379363 1.0842100 1.1091956
30 0.7568054 3.1672723 2.0350097 1.9666402 1.1146652 1.6499726 0.3343761
31 0.3123414 3.6496167 2.1359916 1.5430307 0.8804504 1.2706573 0.7928869
32 0.9381492 3.2221640 1.3871376 1.7447268 0.7212360 1.9951638 0.8428979
33 2.4409738 2.7738343 0.7568750 2.8614445 1.9286903 3.4743041 2.0637196
34 1.8541336 2.9198959 0.6813296 2.3406061 1.3651830 2.8988951 1.5591953
35 1.9039060 3.5447730 0.2921144 1.9937101 1.2065879 2.9153787 1.9492654
36 1.5401733 3.2326970 0.7138205 1.9454517 0.9840363 2.5908148 1.4478582
37 3.0071710 3.5440323 0.8491919 3.0512919 2.3321973 4.0090572 2.8653431
38 3.0949033 3.8344306 0.9376712 3.0129625 2.3811193 4.0784825 3.0411937
29 30 31 32 33 34 35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 0.8088878
31 0.3326759 0.4886324
32 1.0616986 0.6577439 0.7991243
33 2.5823194 2.0658590 2.3252689 1.5275636
34 1.9895130 1.5127335 1.7386086 0.9394980 0.5936317
35 2.0435826 1.8105590 1.8727415 1.1538875 0.9325962 0.6449373
36 1.6697899 1.3230368 1.4536509 0.6799522 0.9597549 0.3977590 0.5150290
37 3.1602622 2.8083059 2.9591995 2.1852453 0.9270903 1.3180221 1.1355205
38 3.2458534 2.9589051 3.0682839 2.3179616 1.1854525 1.5061224 1.2029351
36 37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 1.5150044
38 1.6442737 0.2913642d1 <- dist(data[,2:4])
hiers <- hclust(dist(data[,2:4]), method = "single")
hc1 <- hclust(d1, "single")
d2 <- cophenetic(hc1)
cors <- cor(d1,d2)
cors
[1] 0.9690103
hierave <- hclust(dist(data[,2:4]), method = "ave")
hc2 <- hclust(d1, "ave")
d3 <- cophenetic(hc2)
corave <- cor(d1,d3)
corave
[1] 0.9742916
hiercomp <- hclust(dist(data[,2:4]), method = "complete")
hc3 <- hclust(d1, "complete")
d4 <- cophenetic(hc3)
corcomp <- cor(d1,d4)
corcomp
[1] 0.9704122
hiercen <- hclust(dist(data[,2:4]), method = "centroid")
hc4 <- hclust(d1, "centroid")
d5 <- cophenetic(hc4)
corcen <- cor(d1,d5)
corcen
[1] 0.973394
hierward <- hclust(dist(data[,2:4]), method = "ward.D")
hc5 <- hclust(d1,"ward.D")
d6 <- cophenetic(hc5)
corward <- cor(d1,d6)
corward
[1] 0.9369638Setelah disatukan
Dilakukan uji koefisien korelasi cophenetic untuk melihat metode terbaik yang akan digunakan untuk analisis klaster. Jika dilihat dari output yang didapat, dapat disimpukan bahwa metode terbaik yang akan digunakan adalah average linkage karena memiliki nilai yang paling mendekati 1
inval <- clValid(datastand, 2:4, clMethods = "hierarchical", validation = "internal", metric = "euclidean", method = "average")
summary(inval)
Clustering Methods:
hierarchical
Cluster sizes:
2 3 4
Validation Measures:
2 3 4
hierarchical Connectivity 4.2869 7.2159 12.8901
Dunn 0.3385 0.4710 0.2516
Silhouette 0.5661 0.5168 0.4398
Optimal Scores:
Score Method Clusters
Connectivity 4.2869 hierarchical 2
Dunn 0.4710 hierarchical 3
Silhouette 0.5661 hierarchical 2
optimalScores(inval)Dilihat dari indeks connectivity, indeks dunn, dan indeks silhouette, jumlah klaster yang akan dipakai yaitu 2 sebagai klaster optimal.
hirave <- hclust(dist(scale(data[,2:4])), method = "average")
hirave
Call:
hclust(d = dist(scale(data[, 2:4])), method = "average")
Cluster method : average
Distance : euclidean
Number of objects: 38
anggotaave <- data.frame(id = data$Provinsi, cutree(hirave, k = 2))
anggotaaveDapat dilihat pengelompokkan tiap provinsi ke dalam klaster.
clus_hier <- eclust(datastand, FUNcluster = "hclust", k = 2, hc_method = "average", graph = TRUE)
fviz_dend(clus_hier, rect = TRUE, cex = 0.5)
Berikut ditampilkan hasil dendogram yang didapat dengan bantuan R
Studio.
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 21 22 23 24 25 26
1 1 1 1 1 1 1 1 1 1 1 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1
27 28 29 30 31 32 33 34 35 36 37 38
1 1 1 1 1 1 1 1 1 1 1 1
aggregate(data,list(idclus),mean)Jika dilihat dari output diatas, klaster 1 memiliki persentase yang lebih tinggi dalam bidang laju pertumbuhan penduduk per tahun dan juga rasio jenis kelamin penduduk, yaitu yang termasuk dalam klaster 1 adalah Jawa Barat, Jawa Tengah, dan juga Jawa Timur, sedangkan klaster 2 memiliki persentase yang lebih tinggi dalam bidang jumlah penduduk yaitu 43694,067 dalam satuan ribu, yaitu 35 provinsi sisanya selain 3 provinsi diatas.
Berdasarkan hasil analisis, dapat ditarik beberapa kesimpulan sebagai berikut: 1. Statistik deskriptif menunjukkan bahwa setiap variabel memiliki sebaran nilai yang cukup beragam, misalnya jumlah penduduk antar provinsi yang bervariasi sangat besar, dari sekitar 550 ribu hingga lebih dari 50 juta jiwa. Sementara itu, laju pertumbuhan penduduk memiliki rata-rata sekitar 1,289% per tahun, menunjukkan adanya perbedaan dinamika demografis antar wilayah.
Uji KMO yang dilakukan menunjukkan bahwa seluruh variabel memiliki nilai di atas 0,5, sehingga data dinilai layak untuk digunakan dalam analisis klaster. Selain itu, uji korelasi Pearson memperlihatkan bahwa tidak terdapat multikolinieritas antar variabel, karena seluruh nilai korelasi berada di bawah batas kritis 0,8. Dengan demikian, ketiga variabel dapat dianalisis secara bersamaan tanpa perlu menghilangkan variabel tambahan.
Pemilihan metode klaster dilakukan melalui evaluasi koefisien korelasi cophenetic, dan hasilnya menunjukkan bahwa metode average linkage memiliki nilai korelasi yang paling mendekati 1. Artinya, metode ini paling akurat dalam merepresentasikan struktur jarak asli antar observasi sehingga dipilih sebagai metode terbaik dalam penyusunan klaster.
Berdasarkan indeks-validitas internal (connectivity, Dunn, dan silhouette), jumlah klaster optimal yang terbentuk adalah dua klaster. Hasil dendrogram dan pengelompokkan menunjukkan bahwa:
Badan Pusat Statistik. (2025). Jumlah penduduk, laju pertumbuhan penduduk, distribusi persentase penduduk, kepadatan penduduk, rasio jenis kelamin penduduk menurut provinsi [Statistik online]. https://www.bps.go.id/id/statistics-table/3/V1ZSbFRUY3lTbFpEYTNsVWNGcDZjek53YkhsNFFUMDkjMyMwMDAw/jumlah-penduduk--laju-pertumbuhan-penduduk--distribusi-persentase-penduduk--kepadatan-penduduk--rasio-jenis-kelamin-penduduk-menurut-provinsi.html?year=2025
DataCamp. (n.d.). Cluster analysis in R. Retrieved from https://www.datacamp.com/doc/r/cluster
Nurussadad, A. A. (n.d.). STA551 Pemodelan Klasifikasi – Analisis Cluster dengan R. RPubs. Retrieved from https://rpubs.com/nurussadad/cluster