Pengambilan Data

Pengambilan data bersumber dari BPS(Badan Pusat Statistik) dan data diambil pada tahun 2021 Link BPS

☕ Pendahuluan

Laporan ini menganalisis data persentase rumah tangga di Indonesia berdasarkan fasilitas tempat buang air besar (BAB) tahun 2021. Analisis mencakup statistik deskriptif, visualisasi data, dan pengelompokan provinsi menggunakan metode Hierarchical Clustering.


📚 Load Library dan Data

# Load libraries
library(readxl)
library(moments)
library(cluster)
# Load dataset
FTBAB <- read_excel("C:/Users/Mareko/Downloads/Persentase Rumah Tangga Menurut Provinsi dan Fasilitas Tempat Buang Air Besar, 2021.xlsx")
# Ekstraksi variabel
sendiri <- c(FTBAB$data_1)
Bersama <- c(FTBAB$data_2)
Umum <- c(FTBAB$data_3)
Tidak_ada <- c(FTBAB$data_4)

📊 Analisis Deskriptif

Summary Statistics

Fasilitas Sendiri

summary(sendiri)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00   76.19   84.50   74.92   88.33   94.55

Fasilitas Bersama

summary(Bersama)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   3.330   5.930   6.066   8.600  14.720

Fasilitas Umum

summary(Umum)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.955   1.600   2.635   3.320  12.970

Tidak Ada Fasilitas

summary(Tidak_ada)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   2.140   5.590   6.005   8.090  23.240

Standar Deviasi & Variansi

Fasilitas Sendiri

cat("Standar Deviasi:", sd(sendiri), "\n")
## Standar Deviasi: 26.65864
cat("Variansi:", var(sendiri), "\n")
## Variansi: 710.6832

Fasilitas Bersama

cat("Standar Deviasi:", sd(Bersama), "\n")
## Standar Deviasi: 3.75899
cat("Variansi:", var(Bersama), "\n")
## Variansi: 14.13

Fasilitas Umum

cat("Standar Deviasi:", sd(Umum), "\n")
## Standar Deviasi: 2.852369
cat("Variansi:", var(Umum), "\n")
## Variansi: 8.13601

Tidak Ada Fasilitas

cat("Standar Deviasi:", sd(Tidak_ada), "\n")
## Standar Deviasi: 5.086335
cat("Variansi:", var(Tidak_ada), "\n")
## Variansi: 25.8708

Skewness & Kurtosis

Fasilitas Sendiri

cat("Skewness:", skewness(sendiri), "\n")
## Skewness: -2.281737
cat("Kurtosis:", kurtosis(sendiri), "\n")
## Kurtosis: 6.792459

Fasilitas Bersama

cat("Skewness:", skewness(Bersama), "\n")
## Skewness: 0.2495468
cat("Kurtosis:", kurtosis(Bersama), "\n")
## Kurtosis: 2.390721

Fasilitas Umum

cat("Skewness:", skewness(Umum), "\n")
## Skewness: 1.942765
cat("Kurtosis:", kurtosis(Umum), "\n")
## Kurtosis: 6.694343

Tidak Ada Fasilitas

cat("Skewness:", skewness(Tidak_ada), "\n")
## Skewness: 1.03535
cat("Kurtosis:", kurtosis(Tidak_ada), "\n")
## Kurtosis: 4.485865

Range (Rentang)

Fasilitas Sendiri

range(sendiri)
## [1]  0.00 94.55

Fasilitas Bersama

range(Bersama)
## [1]  0.00 14.72

Fasilitas Umum

range(Umum)
## [1]  0.00 12.97

Tidak Ada Fasilitas

range(Tidak_ada)
## [1]  0.00 23.24

Koefisien Variasi

Fasilitas Sendiri

cv_sendiri <- (sd(sendiri) / mean(sendiri)) * 100
cat("Koefisien Variasi:", cv_sendiri, "%\n")
## Koefisien Variasi: 35.5822 %

Fasilitas Bersama

cv_bersama <- (sd(Bersama) / mean(Bersama)) * 100
cat("Koefisien Variasi:", cv_bersama, "%\n")
## Koefisien Variasi: 61.96923 %

Fasilitas Umum

cv_umum <- (sd(Umum) / mean(Umum)) * 100
cat("Koefisien Variasi:", cv_umum, "%\n")
## Koefisien Variasi: 108.244 %

Tidak Ada Fasilitas

cv_tidak_ada <- (sd(Tidak_ada) / mean(Tidak_ada)) * 100
cat("Koefisien Variasi:", cv_tidak_ada, "%\n")
## Koefisien Variasi: 84.69623 %

📈 Visualisasi Deskriptif

Pie Chart

rata_rata <- c(mean(sendiri), mean(Bersama), mean(Umum), mean(Tidak_ada))
labels <- c("Sendiri", "Bersama", "Umum", "Tidak Ada")
colors <- c("#FF6B6B", "#4ECDC4", "#45B7D1", "#FFA07A")

pie(rata_rata, 
    labels = paste(labels, "\n", round(rata_rata, 2), "%"),
    col = colors,
    main = "Distribusi Rata-rata Fasilitas Tempat BAB di Indonesia 2021")


Histogram

par(mfrow=c(2,2))

hist(sendiri, 
     main = "Histogram Fasilitas Sendiri",
     xlab = "Persentase (%)",
     ylab = "Frekuensi",
     col = "#FF6B6B",
     border = "white",
     breaks = 10)

hist(Bersama, 
     main = "Histogram Fasilitas Bersama",
     xlab = "Persentase (%)",
     ylab = "Frekuensi",
     col = "#4ECDC4",
     border = "white",
     breaks = 10)

hist(Umum, 
     main = "Histogram Fasilitas Umum",
     xlab = "Persentase (%)",
     ylab = "Frekuensi",
     col = "#45B7D1",
     border = "white",
     breaks = 10)

hist(Tidak_ada, 
     main = "Histogram Tidak Ada Fasilitas",
     xlab = "Persentase (%)",
     ylab = "Frekuensi",
     col = "#FFA07A",
     border = "white",
     breaks = 10)

par(mfrow=c(1,1))

Boxplot

boxplot(sendiri, Bersama, Umum, Tidak_ada,
        names = c("Sendiri", "Bersama", "Umum", "Tidak Ada"),
        main = "Boxplot Perbandingan Fasilitas Tempat BAB",
        ylab = "Persentase (%)",
        col = c("#FF6B6B", "#4ECDC4", "#45B7D1", "#FFA07A"),
        border = "darkgray",
        notch = TRUE)


Scatter Plot

par(mfrow=c(2,2))

# sendiri ~ bersama
plot(Bersama, sendiri,
     main = "Scatter Plot: Sendiri vs Bersama",
     xlab = "Fasilitas Bersama (%)",
     ylab = "Fasilitas Sendiri (%)",
     pch = 19,
     col = "#FF6B6B")
abline(lm(sendiri ~ Bersama), col = "blue", lwd = 2)

# sendiri ~ umum
plot(Umum, sendiri,
     main = "Scatter Plot: Sendiri vs Umum",
     xlab = "Fasilitas Umum (%)",
     ylab = "Fasilitas Sendiri (%)",
     pch = 19,
     col = "#4ECDC4")
abline(lm(sendiri ~ Umum), col = "blue", lwd = 2)

# umum ~ bersama
plot(Bersama, Umum,
     main = "Scatter Plot: Umum vs Bersama",
     xlab = "Fasilitas Bersama (%)",
     ylab = "Fasilitas Umum (%)",
     pch = 19,
     col = "#45B7D1")
abline(lm(Umum ~ Bersama), col = "blue", lwd = 2)

# sendiri ~ tidak_ada
plot(Tidak_ada, sendiri,
     main = "Scatter Plot: Sendiri vs Tidak Ada",
     xlab = "Tidak Ada Fasilitas (%)",
     ylab = "Fasilitas Sendiri (%)",
     pch = 19,
     col = "#FFA07A")
abline(lm(sendiri ~ Tidak_ada), col = "blue", lwd = 2)

par(mfrow=c(1,1))

🔬 Analisis Hierarchical Clustering

Persiapan Data

Provinsi <- c("ACEH", "SUMATERA UTARA", "SUMATERA BARAT", "RIAU", "JAMBI",
              "SUMATERA SELATAN", "BENGKULU", "LAMPUNG", "KEP. BANGKA BELITUNG",
              "KEP. RIAU", "DKI JAKARTA", "JAWA BARAT", "JAWA TENGAH",
              "DI YOGYAKARTA", "JAWA TIMUR", "BANTEN", "BALI",
              "NUSA TENGGARA BARAT", "NUSA TENGGARA TIMUR", "KALIMANTAN BARAT",
              "KALIMANTAN TENGAH", "KALIMANTAN SELATAN", "KALIMANTAN TIMUR",
              "KALIMANTAN UTARA", "SULAWESI UTARA", "SULAWESI TENGAH",
              "SULAWESI SELATAN", "SULAWESI TENGGARA", "GORONTALO",
              "SULAWESI BARAT", "MALUKU", "MALUKU UTARA", "PAPUA BARAT",
              "PAPUA BARAT DAYA", "PAPUA", "PAPUA SELATAN", "PAPUA TENGAH",
              "PAPUA PEGUNUNGAN", "INDONESIA")

data_FTBAB <- data.frame(
  sendiri = c(FTBAB$data_1),
  Bersama = c(FTBAB$data_2),
  Umum = c(FTBAB$data_3),
  Tidak_ada = c(FTBAB$data_4)
)

rownames(data_FTBAB) <- Provinsi
print(data_FTBAB)
##                      sendiri Bersama  Umum Tidak_ada
## ACEH                   80.38    3.61  3.26     12.22
## SUMATERA UTARA         88.91    2.50  1.50      7.02
## SUMATERA BARAT         79.04    5.73  3.62     11.37
## RIAU                   92.30    2.57  0.75      4.28
## JAMBI                  87.90    3.38  1.50      7.20
## SUMATERA SELATAN       82.81    5.93  3.34      7.76
## BENGKULU               88.62    3.28  0.94      7.08
## LAMPUNG                91.92    4.69  0.79      2.57
## KEP. BANGKA BELITUNG   92.46    2.12  2.13      3.15
## KEP. RIAU              94.55    4.59  0.34      0.48
## DKI JAKARTA            86.46   10.52  2.90      0.10
## JAWA BARAT             86.16    7.37  2.94      3.47
## JAWA TENGAH            88.66    6.05  1.09      4.15
## DI YOGYAKARTA          83.80   14.72  0.85      0.58
## JAWA TIMUR             83.80    7.89  1.22      7.01
## BANTEN                 88.04    3.21  1.08      7.52
## BALI                   85.95   11.00  0.06      2.97
## NUSA TENGGARA BARAT    73.32   12.74  1.30     12.27
## NUSA TENGGARA TIMUR    79.20   11.89  1.41      7.36
## KALIMANTAN BARAT       84.50    3.99  1.60      9.78
## KALIMANTAN TENGAH      84.60    7.74  6.95      0.71
## KALIMANTAN SELATAN     87.24    8.26  3.30      1.02
## KALIMANTAN TIMUR       93.53    3.67  0.97      1.71
## KALIMANTAN UTARA       92.44    2.39  2.21      2.93
## SULAWESI UTARA         81.86    9.74  1.87      6.47
## SULAWESI TENGAH        76.90    4.72  4.13     14.15
## SULAWESI SELATAN       88.62    6.93  1.28      3.10
## SULAWESI TENGGARA      85.64    5.10  1.73      7.44
## GORONTALO              67.43   11.68  8.48     12.34
## SULAWESI BARAT         77.96    6.12  3.48     12.22
## MALUKU                 72.87    9.33  6.30     11.38
## MALUKU UTARA           69.73    8.81 12.97      8.42
## PAPUA BARAT            75.48    9.16 10.00      5.15
## PAPUA BARAT DAYA        0.00    0.00  0.00      0.00
## PAPUA                  63.34    8.39  4.44     23.24
## PAPUA SELATAN           0.00    0.00  0.00      0.00
## PAPUA TENGAH            0.00    0.00  0.00      0.00
## PAPUA PEGUNUNGAN        0.00    0.00  0.00      0.00
## INDONESIA              85.51    6.75  2.04      5.59

Scaling Data

data_scaled <- scale(data_FTBAB)
print(data_scaled)
##                          sendiri      Bersama        Umum   Tidak_ada
## ACEH                  0.20476354 -0.653339757  0.21907115  1.22182592
## SUMATERA UTARA        0.52473483 -0.948631865 -0.39795978  0.19947870
## SUMATERA BARAT        0.15449842 -0.089358434  0.34528202  1.05471147
## RIAU                  0.65189810 -0.930009840 -0.66089910 -0.33921965
## JAMBI                 0.48684843 -0.714526410 -0.39795978  0.23486764
## SUMATERA SELATAN      0.29591597 -0.036152649  0.24711801  0.34496657
## BENGKULU              0.51385656 -0.741129303 -0.59428780  0.21127501
## LAMPUNG               0.63764381 -0.366028517 -0.64687567 -0.67541460
## KEP. BANGKA BELITUNG  0.65789991 -1.049722857 -0.17709075 -0.56138356
## KEP. RIAU             0.73629850 -0.392631410 -0.80463926 -1.08631954
## DKI JAKARTA           0.43283218  1.184920121  0.09286028 -1.16102953
## JAWA BARAT            0.42157879  0.346929004  0.10688371 -0.49846989
## JAWA TENGAH           0.51535701 -0.004229178 -0.54169994 -0.36477833
## DI YOGYAKARTA         0.33305215  2.302241610 -0.62584052 -1.06665902
## JAWA TIMUR            0.33305215  0.485264046 -0.49612379  0.19751264
## BANTEN                0.49210001 -0.759751327 -0.54520580  0.29778131
## BALI                  0.41370142  1.312614005 -0.90280327 -0.59677251
## NUSA TENGGARA BARAT  -0.06006615  1.775504337 -0.46807693  1.23165618
## NUSA TENGGARA TIMUR   0.16050022  1.549379750 -0.42951250  0.26632448
## KALIMANTAN BARAT      0.35931005 -0.552248765 -0.36290120  0.74210914
## KALIMANTAN TENGAH     0.36306118  0.445359707  1.51273259 -1.04110034
## KALIMANTAN SELATAN    0.46209098  0.583694748  0.23309458 -0.98015271
## KALIMANTAN TIMUR      0.69803699 -0.637378021 -0.58377023 -0.84449510
## KALIMANTAN UTARA      0.65714968 -0.977895047 -0.14904389 -0.60463671
## SULAWESI UTARA        0.26028025  0.977417559 -0.26824305  0.09134582
## SULAWESI TENGAH       0.07422426 -0.358047649  0.52408076  1.60127402
## SULAWESI SELATAN      0.51385656  0.229876277 -0.47508865 -0.57121382
## SULAWESI TENGGARA     0.40207292 -0.256956657 -0.31732506  0.28205289
## GORONTALO            -0.28100764  1.493513675  2.04912880  1.24541855
## SULAWESI BARAT        0.11398623  0.014392847  0.29620002  1.22182592
## MALUKU               -0.07694623  0.868345699  1.28485185  1.05667752
## MALUKU UTARA         -0.19473168  0.730010658  3.62325884  0.47472603
## PAPUA BARAT           0.02095823  0.823120782  2.58201915 -0.16817309
## PAPUA BARAT DAYA     -2.81039382 -1.613704180 -0.92383841 -1.18069005
## PAPUA                -0.43442881  0.618278509  0.63276234  3.38841561
## PAPUA SELATAN        -2.81039382 -1.613704180 -0.92383841 -1.18069005
## PAPUA TENGAH         -2.81039382 -1.613704180 -0.92383841 -1.18069005
## PAPUA PEGUNUNGAN     -2.81039382 -1.613704180 -0.92383841 -1.18069005
## INDONESIA             0.39719645  0.181991070 -0.20864347 -0.08166679
## attr(,"scaled:center")
##   sendiri   Bersama      Umum Tidak_ada 
## 74.921282  6.065897  2.635128  6.005385 
## attr(,"scaled:scale")
##   sendiri   Bersama      Umum Tidak_ada 
## 26.658642  3.758990  2.852369  5.086335

Perhitungan Jarak

jarak_antar_list <- dist(data_scaled, method = "euclidean")

Model Clustering

FTBAB_model <- hclust(jarak_antar_list, method = "complete")

Dendrogram

plot(FTBAB_model, 
     main = "Dendogram Analisis Fasilitas Tempat BAB Indonesia",
     xlab = "Provinsi",
     ylab = "Tingkat Perbedaan",
     sub = "berdasarkan sendiri, bersama, umum, tidak ada",
     hang = -1)

k_groups <- 4
rect.hclust(FTBAB_model, k = k_groups, border = "red")


Hasil Clustering

cluster_assignment <- cutree(FTBAB_model, k = k_groups)
final_data <- cbind(data_FTBAB, Cluster = cluster_assignment)
print(final_data)
##                      sendiri Bersama  Umum Tidak_ada Cluster
## ACEH                   80.38    3.61  3.26     12.22       1
## SUMATERA UTARA         88.91    2.50  1.50      7.02       2
## SUMATERA BARAT         79.04    5.73  3.62     11.37       1
## RIAU                   92.30    2.57  0.75      4.28       2
## JAMBI                  87.90    3.38  1.50      7.20       2
## SUMATERA SELATAN       82.81    5.93  3.34      7.76       2
## BENGKULU               88.62    3.28  0.94      7.08       2
## LAMPUNG                91.92    4.69  0.79      2.57       2
## KEP. BANGKA BELITUNG   92.46    2.12  2.13      3.15       2
## KEP. RIAU              94.55    4.59  0.34      0.48       2
## DKI JAKARTA            86.46   10.52  2.90      0.10       2
## JAWA BARAT             86.16    7.37  2.94      3.47       2
## JAWA TENGAH            88.66    6.05  1.09      4.15       2
## DI YOGYAKARTA          83.80   14.72  0.85      0.58       2
## JAWA TIMUR             83.80    7.89  1.22      7.01       2
## BANTEN                 88.04    3.21  1.08      7.52       2
## BALI                   85.95   11.00  0.06      2.97       2
## NUSA TENGGARA BARAT    73.32   12.74  1.30     12.27       2
## NUSA TENGGARA TIMUR    79.20   11.89  1.41      7.36       2
## KALIMANTAN BARAT       84.50    3.99  1.60      9.78       2
## KALIMANTAN TENGAH      84.60    7.74  6.95      0.71       2
## KALIMANTAN SELATAN     87.24    8.26  3.30      1.02       2
## KALIMANTAN TIMUR       93.53    3.67  0.97      1.71       2
## KALIMANTAN UTARA       92.44    2.39  2.21      2.93       2
## SULAWESI UTARA         81.86    9.74  1.87      6.47       2
## SULAWESI TENGAH        76.90    4.72  4.13     14.15       1
## SULAWESI SELATAN       88.62    6.93  1.28      3.10       2
## SULAWESI TENGGARA      85.64    5.10  1.73      7.44       2
## GORONTALO              67.43   11.68  8.48     12.34       3
## SULAWESI BARAT         77.96    6.12  3.48     12.22       1
## MALUKU                 72.87    9.33  6.30     11.38       3
## MALUKU UTARA           69.73    8.81 12.97      8.42       3
## PAPUA BARAT            75.48    9.16 10.00      5.15       3
## PAPUA BARAT DAYA        0.00    0.00  0.00      0.00       4
## PAPUA                  63.34    8.39  4.44     23.24       1
## PAPUA SELATAN           0.00    0.00  0.00      0.00       4
## PAPUA TENGAH            0.00    0.00  0.00      0.00       4
## PAPUA PEGUNUNGAN        0.00    0.00  0.00      0.00       4
## INDONESIA              85.51    6.75  2.04      5.59       2

Ringkasan Statistik per Cluster

summary_stats <- aggregate(. ~ Cluster, data = final_data, mean)
print(summary_stats)
##   Cluster  sendiri  Bersama     Umum Tidak_ada
## 1       1 75.52400 5.714000 3.786000 14.640000
## 2       2 86.87692 6.500769 1.772692  4.758462
## 3       3 71.37750 9.745000 9.437500  9.322500
## 4       4  0.00000 0.000000 0.000000  0.000000

☕ Kesimpulan

Dari analisis hierarchical clustering yang telah dilakukan, provinsi-provinsi di Indonesia dapat dikelompokkan menjadi 4 cluster berdasarkan kesamaan karakteristik fasilitas tempat buang air besar. Setiap cluster memiliki profil yang berbeda dalam hal kepemilikan fasilitas sendiri, bersama, umum, dan ketiadaan fasilitas.


© 2024 Mareko F. Nazara | Data Analysis with R