Pengelompokan Kabupaten/Kota di Jawa Timur Berdasarkan Garis Kemiskinan dan Jumlah Penduduk Miskin Tahun 2024 Menggunakan Hierarchical Clustering.

Joselyn Karen

2024-11-27

1 PENDAHULUAN

1.1 Latar Belakang

Kemiskinan adalah kondisi ketidakmampuan seseorang dalam memenuhi kebutuhan dasar, baik kebutuhan pokok maupun kebutuhan minimum yang memungkinkan seseorang hidup secara layak. Ketika pendapatan seseorang tidak mencukupi untuk memenuhi kebutuhan pokok tersebut, individu tersebut dapat dikategorikan sebagai miskin. Secara sederhana, kemiskinan diartikan sebagai ketidakmampuan dalam memenuhi kebutuhan dasar keluarga, mencakup makanan dan non-makanan (Agustiya, 2024).

Kemiskinan merupakan salah satu masalah mendasar karena berkaitan dengan pemenuhan kebutuhan hidup yang paling esensial. Masalah ini juga menjadi tantangan global yang dihadapi oleh banyak negara (Maulana, 2017). Kemiskinan dapat terjadi ketika individu dalam masyarakat tidak berpartisipasi dalam proses perubahan akibat ketidakmampuan mereka memiliki faktor-faktor produksi atau karena kualitasnya yang berada di bawah standar.

Provinsi Jawa Timur saat ini tumbuh menjadi provinsi besar yang modern. Dengan pertumbuhan provinsi yang cukup pesat, mendorong bertambah pula permasalahan sosial setempat antara lain adalah kesenjangan ekonomi pembangunan yang tidak merata di lingkup wilayah provinsi jawa timur. Berdasarkan data Badan Pusat Statistik (BPS) Provinsi Jawa Timur, tercatat tingkat kemiskinan provinsi Jawa Timur adalah sebesar 9.79% pada tahun 2024. Oleh karena itu sangat perlu untuk mengelompokan kabupaten/kota di provinsi Jawa Timur untuk mengidentifikasi wilayah-wilayah yang memerlukan perhatian lebih dalam pelaksanaan program-program pemerintah agar lebih tepat sasaran

1.2 Tujuan

Penelitian ini bertujuan untuk:

  1. Memahami dan menerapkan langkah-langkah analisis Hierarchical Clustering.

  2. Mengelompokkan Kabupaten/Kota di Jawa Timur berdasarkan banyak penduduk miskin dan garis kemiskinan.

1.3 Tinjauan Pustaka

1.3.1 Analisis Klaster

Analisis klaster adalah sebuah teknik analisis multivariat yang bertujuan untuk mengelompokkan objek atau kasus berdasarkan karakteristik yang dimilikinya. Teknik ini mengklasifikasikan objek sehingga objek-objek dengan karakteristik yang paling mirip akan dikelompokkan ke dalam klaster (kelompok) yang sama. Pengelompokan data dalam analisis klaster dapat dilakukan dengan dua pendekatan, yaitu Metode Hierarki dan Non-Hierarki.

1.3.2 Metode Hierarki (Hierarchical Clustering)

Metode ini dimulai dengan mengelompokkan dua atau lebih objek yang memiliki kesamaan paling tinggi, lalu melanjutkan proses pengelompokan berdasarkan tingkat kesamaan berikutnya, hingga membentuk struktur seperti pohon (dendogram). Struktur ini menunjukkan hirarki (tingkatan) antar objek, mulai dari yang paling mirip hingga yang paling berbeda. Beberapa metode yang digunakan dalam klaster hierarki meliputi single linkage, complete linkage, average linkage, Ward’s method, dan centroid method (Santoso, 2010).

1.3.3 Metode Non-Hierarki (Non-Hierarchical Clustering)

Untuk pendekatan non-hierarki dimulai dengan menentukan jumlah klaster yang diinginkan, proses ini berbeda dengan metode hierarki yang tidak memerlukan penentuan awal jumlah klaster. Selanjutnya, proses pengelompokan/klasterisasi dilakukan tanpa mempertimbangkan struktur hierarki antar objek (Santoso, 2010). Beberapa teknik yang digunakan dalam metode ini adalah K-Means, K-Medoids, dan DBSCAN.

1.4 Data

Data yang digunakan diperoleh dari BPS tentang tingkat kemiskinan di kabupaten/kota Jawa Timur berdasarkan banyak penduduk miskin dan garis kemiskinan pada tahun 2024.

2 Source Code

2.1 Library

> library(psych)
> library(GPArotation)
> library(clValid)
> library(ggplot2)
> library(cluster)
> library(factoextra)
> library(tidyverse)
> library(car)
> library(readxl)
> library(corrplot)
  • library(psych) untuk analisis statistik multivariat, termasuk analisis faktor, uji reliabilitas, dan deskriptif statistik.

  • library(GPArotation) untuk melakukan rotasi pada analisis faktor, seperti rotasi ortogonal atau oblique, untuk interpretasi yang lebih baik.

  • library(clValid) untuk mengevaluasi dan membandingkan hasil klasterisasi.

  • library(ggplot2) untuk membuat visualisasi data yang fleksibel dan estetis berdasarkan grammar of graphics.

  • library(cluster) untuk berbagai teknik klasterisasi, seperti partitioning, hierarchical clustering, dan visualisasi klaster.

  • library(factoextra) memvisualisasikan hasil analisis multivariat.

  • library(tidyverse) untuk manipulasi data, analisis, dan visualisasi dalam format yang konsisten.

  • library(car) untuk analisis regresi lanjutan dan diagnosis model, seperti uji asumsi regresi.

  • library(readxl) untuk membaca file excel.

2.2 Syntax

2.2.1 Input Data

1. Input Data

> data <- read_excel("C:/Users/ASUS/Downloads/datamiskin.xlsx")
> data.fix <- data.frame(data)
  • read_excel() untuk membaca file excel dari lokasi yang ditentukan ke dalam variabel yang diberi nama data.

  • data.frame() digunakan untuk tabel data 2 dimensi di R.

2. Statistika Deskriptif

> summary(data.fix)
  Kabupaten         Penduduk_Miskin  Garis_Kemiskinan
 Length:38          Min.   :  6.59   Min.   :370643  
 Class :character   1st Qu.: 68.07   1st Qu.:448367  
 Mode  :character   Median :107.49   Median :499161  
                    Mean   :104.81   Mean   :514364  
                    3rd Qu.:146.44   3rd Qu.:585628  
                    Max.   :240.14   Max.   :742678  
  • summary() untuk memberikan ringkasan statistik deskriptif dari dataset data.

2.2.2 Uji Asumsi

1. Uji Sampel Representatif

> kmo <- KMO(data.fix[,2:3])

Menghitung nilai Kaiser-Meyer-Olkin (KMO) untuk variabel yang ditentukan. Pada syntax ini perhitungan KMO dilakukan pada dataset dari kolom 2 hingga 3.

2. Uji Non-Multikolinieritas

> korelasi <- cor(data.fix[,2:3], method = 'pearson')

Pada Uji Asumsi Non-Multikolinieritas digunakan syntax cor() untuk menghitung matriks korelasi antar variabel dari dataset. Pada syntax ini perhitungan hanya dilakukan pada kolom 2 hingga 3 dan disimpan dalam korelasi. Untuk lebih memudahkan interpretasi, digunakan corrplot() sebagai visualisasi dari matriks korelasi.

2.2.3 Standarisasi

> datastandar <- scale(data.fix[,2:3])
> rownames(datastandar) <- 1:nrow(datastandar)

Melakukan standarisasi data pada kolom 2 dan 3 dari dataset menggunakan scale(), yang mengubah data menjadi skala dengan mean 0 dan standar deviasi 1. Hasil standarisasi tersebut disimpan dalam variabel datastandar. Selanjutnya, nama baris pada datastandar diatur ulang menjadi urutan numerik menggunakan rownames() <- 1:nrow(), sehingga lebih mudah dibaca.

2.2.4 Koefisien Korelasi Cophenetic

> d1 <- dist(data.fix[,2:3])
> 
> #Single Linkage
> his <- hclust(dist(data.fix[,2:3]), method = "single")
> #korelasi cophenetic
> hc1 <- hclust(d1, "single")
> d2 <- cophenetic(hc1)
> cors <- cor(d1,d2)
> cors
[1] 0.7971804
> 
> #Average Linkage
> hiave <- hclust(dist(data.fix[,2:3]), method = "ave")
> #korelasi cophenetic
> hc2 <- hclust(d1, "ave")
> d3 <- cophenetic(hc2)
> corave <- cor(d1,d3)
> corave
[1] 0.7940961
> 
> #Complete Linkage
> hicomp <- hclust(dist(data.fix[,2:3]), method = "complete")
> #korelasi cophenetic
> hc3 <- hclust(d1, "complete")
> d4 <- cophenetic(hc3)
> corcomp <- cor(d1,d4)
> corcomp
[1] 0.7859921
> 
> #Centorid Linkage
> hicen <- hclust(dist(data.fix[,2:3]), method = "centroid")
> #korelasi cophenetic
> hc4 <- hclust(d1, "centroid")
> d5 <- cophenetic(hc4)
> corcen <- cor(d1,d5)
> corcen
[1] 0.7939699
> 
> #Ward
> hiward <- hclust(dist(data.fix[,2:3]), method = "ward.D")
> #korelasi cophenetic
> hc5 <- hclust(d1,"ward.D")
> d6 <- cophenetic(hc5)
> corward <- cor(d1,d6)
> corward
[1] 0.7829488
> 
> KorCop<-data.frame(cors,corave,corcomp,corcen,corward)

Analisis ini membantu memilih metode linkage yang paling sesuai berdasarkan korelasi cophenetic tertinggi, sehingga hasil klasterisasi lebih akurat dalam merepresentasikan struktur jarak data.

2.2.5 Indeks Validitas

> inval <- clValid(datastandar, 2:3, clMethods = "hierarchical", validation = "internal", metric = "euclidean", method = "single")

Syntax diatas bertujuan untuk menentukan jumlah klaster yang paling representatif dan metode klasterisasi yang paling sesuai berdasarkan indeks validitas.

2.2.6 Metode Single Linkage

> his <- hclust(dist(scale(data.fix[,2:3])), method = "single")

Syntax ini digunakan untuk melakukan analisis hierarchical clustering menggunakan metode single linkage

2.2.7 Dendogram

> clus_hier <- eclust(data.fix, FUNcluster = "hclust", k = 2, hc_method = "single", graph = TRUE)

Syntax ini digunakan untuk memvisualisasikan dendogram berdasarkan klaster yang sudah ditentukan.

2.2.8 Karateristik Masing-Masing Cluster

> data.fix2 <- data.fix[sapply(data.fix, is.numeric)]
> idclus = clus_hier$cluster
> idclus
 [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 2 1
> aggregate(data.fix2,list(idclus),mean)
  Group.1 Penduduk_Miskin Garis_Kemiskinan
1       1        106.4242         502689.3
2       2         75.7300         724509.5

Syntax ini digunakan untuk mengidentifikasikan karateristik setiap klaster yang terbentuk serta membandingkan setiap klasternya.

3 Hasil dan Pembahasan

3.1 Uji Asumsi Sampel Representatif

Hasil perhitungan Uji KMO

> kmo
Kaiser-Meyer-Olkin factor adequacy
Call: KMO(r = data.fix[, 2:3])
Overall MSA =  0.5
MSA for each item = 
 Penduduk_Miskin Garis_Kemiskinan 
             0.5              0.5 

Output dari masing-masing variabel memiliki nilai KMO 0.5, sehingga dapat kita simpulkan bahwa data representatif dan dapat digunakan untuk analisis selanjutnya.

3.2 Uji Asumsi Non-Multikolinearitas

> korelasi
                 Penduduk_Miskin Garis_Kemiskinan
Penduduk_Miskin        1.0000000       -0.3777792
Garis_Kemiskinan      -0.3777792        1.0000000
> corrplot(korelasi, method="number")

Output menunjukkan bahwa seluruh nilai korelasi antar variabel kurang dari 0.8 maka dapat disimpulkan tidak terdapat multikolinieritas antar variabel.

3.3 Standarisasi

> datastandar
   Penduduk_Miskin Garis_Kemiskinan
1      -0.48639706     -1.572339894
2      -0.37895059     -1.102172925
3      -0.47537691     -0.877602994
4      -0.58756817     -0.728301788
5      -0.13620117     -1.159280883
6       0.83357208     -1.211553262
7       2.07134927     -1.028709337
8      -0.21058718     -1.194978826
9       1.83609967     -0.605224294
10      0.02757052     -0.477551906
11     -0.07941678      0.036944841
12     -0.37711390     -1.102260447
13      1.41274222      0.255563292
14      0.61270990     -0.703193979
15      0.07012054      0.907162897
16      0.05986568     -0.062862802
17      0.08818134     -0.002122691
18      0.05450866      0.277334333
19     -0.48456037     -0.592511756
20     -0.69333100     -0.648153724
21      0.17848536     -0.749394536
22      0.65082125     -0.469412381
23      1.01678209     -0.286995124
24      0.64546424      0.112377670
25      0.57521078      1.033456817
26      1.31830565      0.357230772
27      1.67615443     -0.247369641
28      0.28547265     -0.512779420
29      1.40218124     -0.085279316
30     -1.30969415      1.167179147
31     -1.45326222      0.894264376
32     -1.07092422      2.100270658
33     -1.37091720      1.532123063
34     -1.40413071      0.435759684
35     -1.49045523      1.056868891
36     -1.48417986      1.350832649
37      0.18078122      2.497805495
38     -1.50331207      1.404877345
attr(,"scaled:center")
 Penduduk_Miskin Garis_Kemiskinan 
        104.8087      514364.0263 
attr(,"scaled:scale")
 Penduduk_Miskin Garis_Kemiskinan 
        65.33486      91405.82570 

Hasil standarisasi menunjukkan data yang memiliki nilai positif menunjukkan data tersebut bernilai lebih besar dari rata-rata. Data dengan nilai negatif menunjukkan data tersebut bernilai lebih kecil dari rata-rata dan 0 menunjukkan data tersebut persis di rata-rata.

3.4 Koefisien Korelasi Cophenetic

> KorCop
       cors    corave   corcomp    corcen   corward
1 0.7971804 0.7940961 0.7859921 0.7939699 0.7829488

Output diatas menunjukkan bahwa metode yang memiliki nilai korelasi mendekati 1 adalah metode single linkage, sehingga dipilih sebagai metode terbaik.

3.5 Metode Single Linkage

> optimalScores(inval)
                 Score       Method Clusters
Connectivity 3.1829365 hierarchical        2
Dunn         0.4606623 hierarchical        3
Silhouette   0.4969932 hierarchical        3

Berdasarkan ketiga indeks diatas terbentuk sebanyak 2 klaster sebagai klaster optimal menggunakan metode single linkage.

3.6 Cluster Dendogram

> fviz_dend(clus_hier, rect = TRUE, cex = 0.5)

Berdasarkan output tersebut didapatkan pengelompokan sebagai berikut :

  • Cluster 1 : Dendogram berwarna merah yang terdiri dari Kota Malang dan Surabaya.

  • Cluster 2 : Dendogram berwarna biru yang terdiri dari 35 Kabupaten/Kota yaitu, Kabupaten Pacitan, Ponorogo, Trenggalek, Tulungagung, Lumajang, Blitar, Kediri, Malang, Jember, Banyuwangi, Bondowoso, Situbondo, Probolinggo, Pasuruan, Sidoarjo, Mojokerto, Jombang, Nganjuk, Madiun, Magetan, Ngawi, Bojonegoro, Tuban, Lamongan, Gresik, Bangkalan, Sampang, Pamenkasan, Sumenep, Kota Kediri, Kota Blitar, Kota Probolinggo, Kota Pasuruan, Kota Mojokerto, Kota Madiun, dan Kota Batu

3.7 Karateristik Masing-Masing Cluster

> aggregate(data.fix2,list(idclus),mean)
  Group.1 Penduduk_Miskin Garis_Kemiskinan
1       1        106.4242         502689.3
2       2         75.7300         724509.5

Dapat kita lihat pada cluster 1 jumlah penduduk miskin (X1) lebih banyak dibandingkan cluster 2, tetapi garis kemiskinan (X2) yang dimiliki lebih rendah jika dibandingkan dengan cluster 2.

3.8 Indeks Validitas

> summary(inval)

Clustering Methods:
 hierarchical 

Cluster sizes:
 2 3 

Validation Measures:
                                2      3
                                        
hierarchical Connectivity  3.1829 5.9036
             Dunn          0.2962 0.4607
             Silhouette    0.3342 0.4970

Optimal Scores:

             Score  Method       Clusters
Connectivity 3.1829 hierarchical 2       
Dunn         0.4607 hierarchical 3       
Silhouette   0.4970 hierarchical 3       

Connectivity index value yang diperoleh bernilai lebih dari 1, tetapi 2 index yang lain memiliki nilai kurang dari 1. Dapat kita simpulkan hasil cluster tersebut kurang baik.

4 Penutup

4.1 Kesimpulan

  1. Klaster 1 memiliki rata-rata jumlah penduduk miskin yang lebih tinggi (106.42 ribu jiwa) tetapi dengan garis kemiskinan yang lebih rendah (502.689,3). Hal ini menunjukkan bahwa meskipun penduduk miskin banyak, kebutuhan minimum mereka lebih rendah dibandingkan dengan Klaster 2.

  2. Klaster 2 memiliki rata-rata jumlah penduduk miskin yang lebih rendah (75.73 ribu jiwa), tetapi garis kemiskinan lebih tinggi (724.509,5). Hal ini menunjukkan bahwa biaya hidup atau kebutuhan minimum di kelompok ini lebih tinggi meskipun jumlah penduduk miskin lebih sedikit.

4.2 Saran

Pemerintah dapat memprioritaskan program di daerah dengan jumlah penduduk miskin yang lebih besar, yaitu klaster 1. Bantuan sosial dan program pengentasan kemiskinan, seperti distribusi kebutuhan pokok, pemberdayaan ekonomi, dan pelatihan kerja, perlu difokuskan pada daerah ini.

Sementara itu, untuk daerah yang termasuk dalam klaster 2, pemerintah dapat menyesuaikan program dengan kebutuhan lokal, mengingat garis kemiskinan yang lebih tinggi menunjukkan tingginya biaya hidup. Intervensi seperti subsidi harga kebutuhan dasar, pengembangan infrastruktur, atau perbaikan layanan kesehatan dan pendidikan dapat membantu menurunkan beban ekonomi masyarakat. Pemerintah juga perlu memastikan adanya pemantauan dan evaluasi yang berkelanjutan untuk menilai efektivitas program yang diterapkan.

5 Daftar Pustaka

Agustiya, K. W. D. N. N. F. B., & H. H. (2024). Kontribusi Dinas Sosial dalam upaya pengentasan kemiskinan di Kabupaten Jember. Jurnal Pengabdian Mandiri, 3(2), 193–200

Maulana, P., & A. (n.d.). Analisis pengaruh kemiskinan dan kondisi ekonomi terhadap indeks pembangunan manusia di Provinsi Jawa Tengah tahun 2013-2017

Santoso, S. (2010). Statistik non parametrik konsep dan aplikasi dengan SPSS. Jakarta: PT Elex Media Komputindo.