Pengambilan Data

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

☕ Pendahuluan

Analisis ini melaporkan Jumlah bencana alam menurut provinsi dan jenisnya di Tahun 2021 menggunakan metode Hierarchical Clustering.Pemilihan topik ini didasarkan pada pentingnya pemahaman pola kejadian bencana alam sebagai upaya awal dalam mitigasi dan pengurangan risiko bencana di Indonesia yang memiliki tingkat kerawanan bencana cukup tinggi.

Data tahun 2021 dipilih karena merupakan tahun dengan ketersediaan data yang relatif paling lengkap dan konsisten dibandingkan tahun-tahun sebelumnya, baik dari sisi cakupan provinsi maupun jenis bencana yang dilaporkan. Kelengkapan data tersebut memudahkan proses analisis statistik dan pengelompokan provinsi berdasarkan karakteristik kejadian bencana alam.


📚 Load Library dan Data

# Load libraries
library(readxl)
library(moments)
library(cluster)
# Load dataset
JKBA <- read_excel("C:/Users/Michael Zidane/Downloads/matana project/bencana alam 2021.xlsx")
# Ekstraksi variabel
tanah_longsor <- as.numeric(JKBA$longsor_1)
banjir <- as.numeric(JKBA$banjir_1)
kebakaran <- as.numeric(JKBA$kebakaran_1)
cuaca_ekstrem <- as.numeric(JKBA$cuaca_1)

📋 Preview Data

print(JKBA)
## # A tibble: 35 × 5
##    Provinsi                  longsor_1 banjir_1 kebakaran_1 cuaca_1
##    <chr>                         <dbl>    <dbl>       <dbl>   <dbl>
##  1 Aceh                             11      100          77      91
##  2 Sumatera Utara                   23       83          13      54
##  3 Sumatera Barat                   18       58          16     118
##  4 Riau                              7       67          44      24
##  5 Jambi                            11       37          24      24
##  6 Sumatera Selatan                  4       39          24      24
##  7 Bengkulu                          9       25           1      11
##  8 Lampung                           5       25           4      46
##  9 Kepulauan Bangka Belitung         2       15          10      13
## 10 Kepulauan Riau                    5       14          79       6
## # ℹ 25 more rows

Sebelum dilakukan analisis lebih lanjut, terlebih dahulu ditampilkan preview data untuk mengetahui gambaran awal dataset yang digunakan. Preview data ini bertujuan untuk memastikan struktur data, jumlah observasi, serta variabel yang dianalisis telah sesuai. Data yang digunakan memuat jumlah kejadian bencana alam per provinsi di Indonesia pada tahun 2021, yang terdiri dari beberapa jenis bencana seperti banjir, kebakaran, tanah longsor, dan cuaca ekstrem.


📊 Analisis Deskriptif

Summary Statistics

Bencana Tanah Longsor🌍

summary(tanah_longsor)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    1.00    4.00   10.50   39.03   21.75  613.00       1

Berdasarkan hasil statistik deskriptif, jumlah kejadian tanah longsor pada tahun 2021 memiliki nilai minimum 1 kejadian dan maksimum 613 kejadian, yang menunjukkan perbedaan tingkat kejadian yang sangat besar antarprovinsi. Nilai median sebesar 10,50 mengindikasikan bahwa sebagian besar provinsi mengalami kejadian tanah longsor pada tingkat rendah hingga menengah. Nilai rata-rata sebesar 39,03 yang lebih tinggi dibandingkan median menunjukkan bahwa distribusi data miring ke kanan, dipengaruhi oleh beberapa provinsi dengan jumlah kejadian tanah longsor yang sangat tinggi. Kuartil pertama (Q1 = 4) dan kuartil ketiga (Q3 = 21,75) menunjukkan bahwa 75% provinsi memiliki kejadian tanah longsor kurang dari 22 kejadian. Selain itu, terdapat satu provinsi yang tidak mengalami kejadian tanah longsor pada tahun 2021.

Bencana Banjir🌊

summary(banjir)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    2.00   20.00   36.50   51.32   65.75  247.00       1

Berdasarkan statistik deskriptif, jumlah kejadian banjir pada tahun 2021 menunjukkan variasi yang cukup besar antarprovinsi. Nilai minimum sebesar 2 dan maksimum sebesar 247 kejadian mengindikasikan adanya perbedaan tingkat kerawanan banjir. Median sebesar 36,50 menunjukkan bahwa setengah provinsi mengalami kejadian banjir kurang dari atau sama dengan angka tersebut. Nilai rata-rata yang lebih tinggi dari median (51,32) mengindikasikan adanya provinsi dengan kejadian banjir sangat tinggi sehingga memengaruhi nilai rata-rata.

Bencana Kebakaran🔥

summary(kebakaran)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    1.00    3.50   16.53   13.75  165.00       1

Berdasarkan hasil statistik deskriptif, jumlah kejadian kebakaran pada tahun 2021 memiliki nilai minimum 0 kejadian dan maksimum 165 kejadian, yang menunjukkan adanya perbedaan tingkat kejadian yang cukup besar antarprovinsi. Nilai median sebesar 3,50 mengindikasikan bahwa sebagian besar provinsi mengalami kejadian kebakaran yang relatif rendah. Namun, rata-rata sebesar 16,53 yang jauh lebih tinggi dari median menunjukkan bahwa distribusi data miring ke kanan, dipengaruhi oleh beberapa provinsi dengan jumlah kejadian kebakaran yang sangat tinggi. Kuartil pertama (Q1 = 1) dan kuartil ketiga (Q3 = 13,75) memperlihatkan bahwa 75% provinsi memiliki kejadian kebakaran kurang dari 14 kejadian. Terdapat 1 data yang hilang (NA) yang telah ditangani dalam proses analisis.

Bencana Cuaca Ekstrem ⚡

summary(cuaca_ekstrem)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    9.00   19.00   90.51   42.50 1577.00

Berdasarkan hasil statistik deskriptif, jumlah kejadian cuaca ekstrem pada tahun 2021 memiliki nilai minimum 1 kejadian dan maksimum 1.577 kejadian, yang menunjukkan perbedaan tingkat kejadian yang sangat besar antarprovinsi. Nilai median sebesar 19 mengindikasikan bahwa sebagian besar provinsi mengalami kejadian cuaca ekstrem pada tingkat rendah hingga menengah. Nilai rata-rata sebesar 90,51 yang jauh lebih tinggi dibandingkan median menunjukkan bahwa distribusi data miring ke kanan, dipengaruhi oleh beberapa provinsi dengan jumlah kejadian cuaca ekstrem yang sangat tinggi. Kuartil pertama (Q1 = 9) dan kuartil ketiga (Q3 = 42,50) menunjukkan bahwa 75% provinsi memiliki kejadian cuaca ekstrem kurang dari 43 kejadian.


Standar Deviasi & Variansi

Bencana Tanah Longsor🌍

cat("Standar Deviasi:", sd(tanah_longsor, na.rm = TRUE ) , "\n")
## Standar Deviasi: 109.7174
cat("Variansi:", var(tanah_longsor, na.rm = TRUE ) , "\n")
## Variansi: 12037.91

Nilai standar deviasi sebesar 109,72 menunjukkan bahwa jumlah kejadian tanah longsor antarprovinsi memiliki tingkat penyebaran yang sangat tinggi terhadap nilai rata-ratanya. Hal ini menandakan adanya perbedaan yang cukup besar antara provinsi dengan kejadian tanah longsor rendah dan provinsi dengan kejadian yang sangat tinggi. Nilai variansi sebesar 12.037,91 memperkuat hasil tersebut, yang mengindikasikan bahwa data tanah longsor bersifat tidak homogen dan memiliki variasi yang besar antarprovinsi.

Bencana Banjir🌊

cat("Standar Deviasi:", sd(banjir, na.rm = TRUE ) , "\n")
## Standar Deviasi: 50.9139
cat("Variansi:", var(banjir,  na.rm = TRUE) , "\n")
## Variansi: 2592.225

Nilai standar deviasi sebesar 50,91 menunjukkan bahwa jumlah kejadian banjir antarprovinsi memiliki penyebaran yang cukup besar dari nilai rata-ratanya. Hal ini menandakan adanya perbedaan yang jelas antara provinsi dengan kejadian banjir yang rendah dan provinsi dengan kejadian banjir yang tinggi. Nilai variansi sebesar 2.592,23 memperkuat temuan tersebut, yang menunjukkan bahwa data kejadian banjir memiliki variasi yang cukup tinggi antarprovinsi, meskipun tidak sebesar variasi pada bencana tanah longsor.

Bencana Cuaca Ekstrem⚡

cat("Standar Deviasi:", sd(cuaca_ekstrem, na.rm = TRUE),"\n")
## Standar Deviasi: 272.786
cat("Variansi:", var(cuaca_ekstrem, na.rm = TRUE), "\n")
## Variansi: 74412.2

Nilai standar deviasi sebesar 272,79 menunjukkan bahwa jumlah kejadian cuaca ekstrem antarprovinsi memiliki tingkat penyebaran yang sangat tinggi dari nilai rata-ratanya. Hal ini mengindikasikan adanya perbedaan yang sangat mencolok antara provinsi dengan jumlah kejadian cuaca ekstrem yang rendah dan provinsi dengan jumlah kejadian yang sangat tinggi. Nilai variansi sebesar 74.412,20 semakin menegaskan bahwa data cuaca ekstrem memiliki variasi yang sangat besar antarprovinsi, sehingga distribusi data bersifat sangat tidak merata.

Bencana Kebakaran🔥

cat("Standar Deviasi:", sd(kebakaran,na.rm = TRUE), "\n")
## Standar Deviasi: 32.6675
cat("Variansi:", var(kebakaran, na.rm = TRUE), "\n")
## Variansi: 1067.166

Nilai standar deviasi sebesar 32,67 menunjukkan bahwa jumlah kejadian kebakaran antarprovinsi memiliki penyebaran yang cukup besar terhadap nilai rata-ratanya. Hal ini menandakan adanya perbedaan tingkat kejadian kebakaran antara provinsi, meskipun tidak setinggi variasi pada bencana cuaca ekstrem maupun tanah longsor. Nilai variansi sebesar 1.067,17 menunjukkan bahwa data kejadian kebakaran memiliki variasi yang relatif sedang antarprovinsi.


Skewness & Kurtosis

Bencana Banjir🌊

cat("Skewness:", skewness(banjir, na.rm = TRUE), "\n")
## Skewness: 2.096944
cat("Kurtosis:", kurtosis(banjir,na.rm = TRUE), "\n")
## Kurtosis: 7.917864

Nilai skewness sebesar 2,10 menunjukkan bahwa distribusi jumlah kejadian banjir miring ke kanan (positively skewed). Artinya, sebagian besar provinsi memiliki jumlah kejadian banjir yang relatif rendah hingga sedang, sementara terdapat beberapa provinsi dengan jumlah kejadian banjir yang sangat tinggi. Nilai kurtosis sebesar 7,92 mengindikasikan bahwa distribusi data bersifat leptokurtik, yaitu memiliki puncak yang tajam dan ekor distribusi yang tebal. Hal ini menandakan adanya nilai ekstrem (outlier) pada data kejadian banjir di beberapa provinsi.

Bencana Tanah Longsor🌍

cat("Skewness:", skewness(tanah_longsor, na.rm = TRUE), "\n")
## Skewness: 4.568711
cat("Kurtosis:", kurtosis(tanah_longsor, na.rm = TRUE), "\n")
## Kurtosis: 23.72769

Nilai skewness sebesar 4,57 menunjukkan bahwa distribusi jumlah kejadian tanah longsor sangat miring ke kanan (positively skewed). Hal ini berarti sebagian besar provinsi memiliki jumlah kejadian tanah longsor yang relatif rendah, namun terdapat beberapa provinsi dengan jumlah kejadian yang sangat tinggi. Nilai kurtosis sebesar 23,73 menunjukkan bahwa distribusi data bersifat sangat leptokurtik, dengan puncak yang sangat tajam dan ekor distribusi yang sangat tebal. Kondisi ini mengindikasikan adanya outlier yang ekstrem pada data kejadian tanah longsor di beberapa provinsi.

Bencana Kebakaran🔥

cat("Skewness:", skewness(kebakaran, na.rm = TRUE), "\n")
## Skewness: 3.258807
cat("Kurtosis:", kurtosis(kebakaran, na.rm = TRUE), "\n")
## Kurtosis: 14.14988

Nilai skewness sebesar 3,26 menunjukkan bahwa distribusi jumlah kejadian kebakaran miring ke kanan (positively skewed). Artinya, sebagian besar provinsi memiliki jumlah kejadian kebakaran yang relatif rendah, sementara hanya beberapa provinsi yang mengalami jumlah kejadian kebakaran yang sangat tinggi. Nilai kurtosis sebesar 14,15 mengindikasikan bahwa distribusi data bersifat leptokurtik, yaitu memiliki puncak yang tajam dan ekor distribusi yang tebal. Hal ini menunjukkan adanya nilai ekstrem (outlier) pada data kejadian kebakaran di beberapa provinsi.

Bencana Cuaca Ekstrem⚡

cat("Skewness:", skewness(cuaca_ekstrem, na.rm = TRUE), "\n")
## Skewness: 4.898866
cat("Kurtosis:", kurtosis(cuaca_ekstrem, na.rm = TRUE), "\n")
## Kurtosis: 26.82662

Nilai skewness sebesar 4,90 menunjukkan bahwa distribusi jumlah kejadian cuaca ekstrem sangat miring ke kanan (positively skewed). Hal ini menandakan bahwa sebagian besar provinsi memiliki jumlah kejadian cuaca ekstrem yang relatif rendah, namun terdapat beberapa provinsi dengan jumlah kejadian yang sangat tinggi. Nilai kurtosis sebesar 26,83 menunjukkan bahwa distribusi data bersifat sangat leptokurtik, dengan puncak distribusi yang sangat tajam dan ekor yang sangat tebal. Kondisi ini mengindikasikan adanya outlier yang sangat ekstrem pada data kejadian cuaca ekstrem di beberapa provinsi.


Range (Rentang)

Bencana Banjir🌊

range(banjir, na.rm = TRUE)
## [1]   2 247

Hasil range sebesar [2, 247] menunjukkan bahwa jumlah kejadian banjir terendah yang tercatat pada suatu provinsi adalah 2 kejadian, sedangkan jumlah kejadian banjir tertinggi mencapai 247 kejadian dalam tahun 2021. Rentang nilai yang cukup lebar ini mengindikasikan adanya perbedaan yang besar dalam jumlah kejadian banjir antarprovinsi, di mana beberapa provinsi mengalami kejadian banjir yang sangat tinggi dibandingkan provinsi lainnya.

Bencana Tanah Longsor🌍

range(tanah_longsor, na.rm = TRUE)
## [1]   1 613

Hasil range sebesar [1, 613] menunjukkan bahwa jumlah kejadian tanah longsor terendah yang tercatat pada suatu provinsi adalah 1 kejadian, sedangkan jumlah kejadian tanah longsor tertinggi mencapai 613 kejadian pada tahun 2021. Rentang nilai yang sangat lebar ini mengindikasikan adanya ketimpangan yang besar dalam jumlah kejadian tanah longsor antarprovinsi, di mana beberapa provinsi mengalami kejadian tanah longsor yang jauh lebih tinggi dibandingkan provinsi lainnya.

Bencana Kebakaran🔥

range(kebakaran, na.rm = TRUE)
## [1]   0 165

Hasil range sebesar [0, 165] menunjukkan bahwa terdapat provinsi yang tidak mengalami kejadian kebakaran sama sekali, sementara provinsi dengan jumlah kejadian kebakaran tertinggi mencapai 165 kejadian pada tahun 2021. Rentang nilai ini menunjukkan adanya perbedaan yang cukup besar antarprovinsi dalam hal kejadian kebakaran, meskipun tingkat variasinya tidak sebesar bencana tanah longsor dan cuaca ekstrem.

Bencana Cuaca Ekstrem⚡

range(cuaca_ekstrem, na.rm = TRUE)
## [1]    1 1577

Hasil range sebesar [1, 1577] menunjukkan bahwa jumlah kejadian cuaca ekstrem terendah yang tercatat pada suatu provinsi adalah 1 kejadian, sedangkan jumlah kejadian cuaca ekstrem tertinggi mencapai 1.577 kejadian pada tahun 2021. Rentang nilai yang sangat lebar ini mengindikasikan adanya ketimpangan yang sangat besar antarprovinsi dalam jumlah kejadian cuaca ekstrem, di mana beberapa provinsi mengalami kejadian cuaca ekstrem yang jauh lebih tinggi dibandingkan provinsi lainnya.


Koefisien Variasi

Bencana Banjir🌊

cv_banjir <- (sd(banjir, na.rm = TRUE ) / mean(banjir, na.rm = TRUE)) * 100
cat("Koefisien Variasi:", cv_banjir, "%\n")
## Koefisien Variasi: 99.20187 %

Nilai Koefisien Variasi sebesar 99,20% menunjukkan bahwa tingkat variasi jumlah kejadian banjir antarprovinsi sangat tinggi dibandingkan dengan nilai rata-ratanya. Hal ini mengindikasikan bahwa data kejadian banjir sangat tidak homogen, di mana terdapat perbedaan yang sangat besar antara provinsi dengan jumlah kejadian banjir rendah dan provinsi dengan jumlah kejadian banjir yang sangat tinggi.

Bencana Tanah Longsor🌍

cv_tanah_longsor <- (sd(tanah_longsor,na.rm = TRUE) / mean(tanah_longsor,na.rm = TRUE)) * 100
cat("Koefisien Variasi:", cv_tanah_longsor, "%\n")
## Koefisien Variasi: 281.1147 %

Nilai Koefisien Variasi sebesar 281,11% menunjukkan bahwa variasi jumlah kejadian tanah longsor antarprovinsi sangat tinggi dan jauh melebihi nilai rata-ratanya. Hal ini menandakan bahwa data kejadian tanah longsor sangat tidak homogen, dengan perbedaan yang ekstrem antara provinsi yang memiliki kejadian sangat rendah dan provinsi dengan kejadian sangat tinggi.

Bencana Kebakaran🔥

cv_kebakaran <- (sd(kebakaran, na.rm = TRUE) / mean(kebakaran, na.rm = TRUE)) * 100
cat("Koefisien Variasi:", cv_kebakaran, "%\n")
## Koefisien Variasi: 197.6326 %

Nilai Koefisien Variasi sebesar 197,63% menunjukkan bahwa data jumlah kejadian kebakaran antarprovinsi sangat heterogen. Hal ini menandakan adanya perbedaan yang sangat besar antarprovinsi, di mana sebagian provinsi memiliki jumlah kejadian kebakaran yang sangat rendah, sementara provinsi lainnya memiliki kejadian yang jauh lebih tinggi.

Bencana Cuaca Ekstrem⚡

cv_cuaca_ekstrem <- (sd(cuaca_ekstrem, na.rm = TRUE) / mean(cuaca_ekstrem, na.rm = TRUE)) * 100
cat("Koefisien Variasi:", cv_cuaca_ekstrem, "%\n")
## Koefisien Variasi: 301.3734 %

Nilai Koefisien Variasi sebesar 301,37% menunjukkan bahwa jumlah kejadian cuaca ekstrem antarprovinsi memiliki tingkat variasi yang sangat tinggi. Hal ini menandakan data bersifat sangat heterogen, dengan perbedaan yang ekstrem antarprovinsi, di mana sebagian provinsi hanya mengalami sedikit kejadian, sementara provinsi lainnya mengalami jumlah kejadian yang sangat besar.


📈 Visualisasi Deskriptif

Pie Chart

rata_rata <- c(mean(banjir, na.rm = TRUE), mean(tanah_longsor, na.rm = TRUE), mean(kebakaran, na.rm = TRUE), mean(cuaca_ekstrem, na.rm = TRUE))
labels <- c("Banjir", "Tanah Longsor", "Kebakaran", "Cuaca Ekstrem")
colors <- c("#FF6B6B", "#4ECDC4", "#45B7D1", "#FFA07A")

pie(rata_rata, 
    labels = paste(labels, "\n", round(rata_rata, 2), "%"),
    col = colors,
    main = "Distribusi Rata-rata Bencana Alam per Provinsi Tahun 2021")

Berdasarkan pie chart di atas, dapat dilihat bahwa bencana cuaca ekstrem memiliki proporsi terbesar dengan rata-rata sebesar 90,51%, menunjukkan bahwa jenis bencana ini merupakan kejadian yang paling dominan dialami oleh provinsi-provinsi di Indonesia pada tahun 2021. Hal ini mengindikasikan bahwa cuaca ekstrem menjadi ancaman utama yang perlu mendapatkan perhatian lebih dalam upaya mitigasi bencana.

Selanjutnya, banjir menempati posisi kedua dengan rata-rata sebesar 51,32%, yang menunjukkan bahwa banjir juga merupakan bencana yang cukup sering terjadi dan tersebar luas di berbagai provinsi. Tingginya angka ini mencerminkan kerentanan wilayah Indonesia terhadap curah hujan tinggi dan sistem drainase yang belum optimal.

Tanah longsor memiliki rata-rata kejadian sebesar 39,03%, berada di bawah banjir namun tetap menunjukkan kontribusi yang signifikan. Hal ini berkaitan dengan kondisi geografis Indonesia yang banyak memiliki wilayah perbukitan dan pegunungan.

Sementara itu, kebakaran menunjukkan proporsi terkecil dengan rata-rata sebesar 16,53%, yang mengindikasikan bahwa secara umum kejadian kebakaran lebih sedikit dibandingkan jenis bencana lainnya, meskipun pada beberapa provinsi tertentu jumlahnya dapat cukup tinggi.


Histogram

par(mfrow=c(2,2))

hist(banjir, 
     main = "Histogram Bencana Banjir",
     xlab = "Persentase (%)",
     ylab = "Frekuensi",
     col = "#FF6B6B",
     border = "white",
     breaks = 10)

hist(tanah_longsor, 
     main = "Histogram Bencana Tanah Longsor",
     xlab = "Persentase (%)",
     ylab = "Frekuensi",
     col = "#4ECDC4",
     border = "white",
     breaks = 10)

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

hist(cuaca_ekstrem, 
     main = "Histogram Bencana Cuaca Ekstrem",
     xlab = "Persentase (%)",
     ylab = "Frekuensi",
     col = "#FFA07A",
     border = "white",
     breaks = 10)

par(mfrow=c(1,1))

Berdasarkan keempat histogram yang ditampilkan, dapat disimpulkan bahwa distribusi kejadian banjir, tanah longsor, kebakaran, dan cuaca ekstrem di tingkat provinsi pada tahun 2021 tidak berdistribusi normal. Mayoritas provinsi memiliki nilai kejadian yang relatif rendah, sementara hanya beberapa provinsi yang menunjukkan nilai yang sangat tinggi. Pola ini membentuk ekor distribusi yang panjang di sebelah kanan (right-skewed) pada seluruh jenis bencana, yang mengindikasikan adanya ketimpangan dan outlier dalam data. Ketimpangan paling mencolok terlihat pada bencana cuaca ekstrem dan tanah longsor, di mana terdapat provinsi dengan jumlah kejadian yang jauh melampaui provinsi lainnya


Boxplot

boxplot(banjir, kebakaran, tanah_longsor, cuaca_ekstrem,
        names = c("Banjir", "Kebakaranr", "Tanah Longsor", "Cuaca Ekstrem"),
        main = "Boxplot Perbandingan Bencana Alam",
        ylab = "Persentase (%)",
        col = c("#FF6B6B", "#4ECDC4", "#45B7D1", "#FFA07A"),
        border = "darkgray",
        notch = FALSE )

Boxplot menunjukkan bahwa seluruh jenis bencana memiliki distribusi yang tidak simetris dengan keberadaan outlier ekstrem. Skala kejadian yang sangat besar pada beberapa provinsi menyebabkan boxplot pada skala asli terlihat tertekan di bagian bawah. Oleh karena itu, interpretasi difokuskan pada median, rentang antar kuartil, serta keberadaan outlier, bukan pada bentuk visual semata.


Scatter Plot

par(mfrow=c(2,2))

# cuaca ekstrem ~ kebakaran
plot(cuaca_ekstrem, kebakaran,
     main = "Scatter Plot Cuaca ekstrem dan kebakaran",
     xlab = "Cuaca Ekstrem",
     ylab = "Kebakaran",
     pch = 19,
     col = "#FF6B6B")
abline(lm(cuaca_ekstrem ~ kebakaran), col = "blue", lwd = 2)

# cuaca ekstrem ~ banjir
plot(cuaca_ekstrem, banjir,
     main = "Scatter Plot Cuaca eksterem dan banjir",
     xlab = "cuaca ekstrem",
     ylab = "banjir",
     pch = 19,
     col = "#4ECDC4")
abline(lm(cuaca_ekstrem ~ banjir), col = "blue", lwd = 2)

# cuaca ekstrem ~ tanah longsor
plot(cuaca_ekstrem, tanah_longsor,
     main = "Scatter Plot Cuaca ekstrem dan tanah longsor",
     xlab = "Cuaca ekstrem",
     ylab = "tanah longsor",
     pch = 19,
     col = "#45B7D1")
abline(lm(cuaca_ekstrem ~ tanah_longsor), col = "blue", lwd = 2)



par(mfrow=c(1,1))

Cuaca ekstrem digunakan sebagai variabel pembanding dalam scatter plot karena secara konseptual merupakan faktor alam yang berpotensi memicu terjadinya bencana lain seperti banjir, tanah longsor, dan kebakaran hutan. Intensitas hujan ekstrem dapat meningkatkan risiko banjir dan longsor, sementara periode cuaca ekstrem berupa kekeringan dan suhu tinggi dapat meningkatkan potensi kebakaran. Oleh karena itu, hubungan antara cuaca ekstrem dan jenis bencana lain dianalisis untuk melihat kecenderungan keterkaitan antar kejadian bencana.

Berdasarkan hasil scatter plot, terlihat bahwa sebagian besar titik data berada relatif dekat dengan garis regresi, yang menunjukkan adanya kecenderungan hubungan positif antara cuaca ekstrem dengan kejadian banjir, tanah longsor, dan kebakaran. Hal ini mengindikasikan bahwa peningkatan kejadian cuaca ekstrem cenderung diikuti oleh peningkatan kejadian bencana lain di beberapa provinsi. Meskipun demikian, terdapat beberapa titik yang menyimpang cukup jauh dari garis regresi, yang menunjukkan adanya variasi antar provinsi serta kemungkinan pengaruh faktor lain di luar cuaca ekstrem.


🔬 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", "Kaliimantan Timur",
              "Kalimantan Utara", "Sulawesi Utara", "Sulawes Tengah",
              "Sulawesi Selatan", "Sulawesi Tenggara", "Gorontalo",
              "Sulawesi Barat", "Maluku", "Maluku Utara", "Papua Barat",
              "Papua")


data_JKBA <- data.frame(
  banjir = banjir,
  kebakaran = kebakaran,
  tanah_longsor = tanah_longsor,
  cuaca_ekstrem = cuaca_ekstrem
)


data_JKBA <- data_JKBA[complete.cases(data_JKBA), ]


rownames(data_JKBA) <- Provinsi[1:nrow(data_JKBA)]
print(data_JKBA)
##                      banjir kebakaran tanah_longsor cuaca_ekstrem
## Aceh                    100        77            11            91
## Sumatera Utara           83        13            23            54
## Sumatera Barat           58        16            18           118
## Riau                     67        44             7            24
## Jambi                    37        24            11            24
## Sumatera Selatan         39        24             4            24
## Bengkulu                 25         1             9            11
## Lampung                  25         4             5            46
## Kep. Bangka Belitung     15        10             2            13
## Kep.Riau                 14        79             5             6
## DKI Jakarta              20         1            14            16
## Jawa Barat              247        14           613           478
## Jawa Tengah             153        13           238           206
## DI Yogyakarta             6         0            17             2
## Jawa Timur              149         8            76           122
## Banten                   57         3            14            39
## Bali                     13         1            63             8
## Nusa Tenggara Barat      79         3            10            17
## Nusa Tenggara Timur      59         1            24            28
## Kalimantan Barat         45        10             4             9
## Kalimantan Tengah         2         4             1             1
## Kalimantan Selatan       62       165            12            32
## Kaliimantan Timur        36        29            46             7
## Kalimantan Utara         16         8            32             3
## Sulawesi Utara           23         1             3            13
## Sulawes Tengah           96         1             4            36
## Sulawesi Selatan         68         1            24            90
## Sulawesi Tenggara        38         1             8            21
## Gorontalo                22         1             7            10
## Sulawesi Barat           23         1             4             9
## Maluku                   23         1            14            19
## Maluku Utara             20         1             2            10
## Papua Barat               5         1             1             1
## Papua                    20         1             1             3

Scaling Data

data_scaled <- scale(data_JKBA)
print(data_scaled)
##                          banjir   kebakaran tanah_longsor cuaca_ekstrem
## Aceh                  0.9560546  1.85109304   -0.25546915   0.502503239
## Sumatera Utara        0.6221576 -0.10804045   -0.14609726   0.081911706
## Sumatera Barat        0.1311326 -0.01620607   -0.19166888   0.809421385
## Riau                  0.3079016  0.84091484   -0.29192645  -0.259108457
## Jambi                -0.2813285  0.22868562   -0.25546915  -0.259108457
## Sumatera Selatan     -0.2420465  0.22868562   -0.31926943  -0.259108457
## Bengkulu             -0.5170205 -0.47537798   -0.27369780  -0.406883860
## Lampung              -0.5170205 -0.38354360   -0.31015510  -0.009027004
## Kep. Bangka Belitung -0.7134305 -0.19987483   -0.33749807  -0.384149183
## Kep.Riau             -0.7330715  1.91231597   -0.31015510  -0.463720554
## DKI Jakarta          -0.6152255 -0.47537798   -0.22812618  -0.350047167
## Jawa Barat            3.8432817 -0.07742899    5.23135419   4.901663333
## Jawa Tengah           1.9970276 -0.10804045    1.81348251   1.809747195
## DI Yogyakarta        -0.8901995 -0.50598944   -0.20078321  -0.509189909
## Jawa Timur            1.9184636 -0.26109775    0.33696194   0.854890740
## Banten                0.1114916 -0.41415506   -0.22812618  -0.088598376
## Bali                 -0.7527125 -0.47537798    0.21847572  -0.440985877
## Nusa Tenggara Barat   0.5435936 -0.41415506   -0.26458348  -0.338679828
## Nusa Tenggara Timur   0.1507736 -0.47537798   -0.13698294  -0.213639102
## Kalimantan Barat     -0.1242004 -0.19987483   -0.31926943  -0.429618538
## Kalimantan Tengah    -0.9687635 -0.38354360   -0.34661240  -0.520557248
## Kalimantan Selatan    0.2096966  4.54490160   -0.24635483  -0.168169747
## Kaliimantan Timur    -0.3009695  0.38174292    0.06353220  -0.452353215
## Kalimantan Utara     -0.6937895 -0.26109775   -0.06406834  -0.497822570
## Sulawesi Utara       -0.5563025 -0.47537798   -0.32838375  -0.384149183
## Sulawes Tengah        0.8774906 -0.47537798   -0.31926943  -0.122700392
## Sulawesi Selatan      0.3275426 -0.47537798   -0.13698294   0.491135900
## Sulawesi Tenggara    -0.2616875 -0.47537798   -0.28281213  -0.293210473
## Gorontalo            -0.5759435 -0.47537798   -0.29192645  -0.418251199
## Sulawesi Barat       -0.5563025 -0.47537798   -0.31926943  -0.429618538
## Maluku               -0.5563025 -0.47537798   -0.22812618  -0.315945150
## Maluku Utara         -0.6152255 -0.47537798   -0.33749807  -0.418251199
## Papua Barat          -0.9098405 -0.47537798   -0.34661240  -0.520557248
## Papua                -0.6152255 -0.47537798   -0.34661240  -0.497822570
## attr(,"scaled:center")
##        banjir     kebakaran tanah_longsor cuaca_ekstrem 
##      51.32353      16.52941      39.02941      46.79412 
## attr(,"scaled:scale")
##        banjir     kebakaran tanah_longsor cuaca_ekstrem 
##      50.91390      32.66750     109.71740      87.97134

Metode Elbow

set.seed(123)

wcss <- c()
max_k <- min(10, nrow(data_scaled) - 1)

for (k in 1:max_k) {
  wcss[k] <- sum(kmeans(data_scaled, centers = k, nstart = 25)$withinss)
}

plot(1:length(wcss), wcss, type = "b",
     xlab = "Jumlah Cluster (k)",
     ylab = "Within-Cluster Sum of Squares (WCSS)",
     main = "Metode Elbow untuk Menentukan Jumlah Cluster")

Berdasarkan Grafik Metode Elbow, terlihat bahwa penurunan nilai WCSS cukup signifikan hingga jumlah cluster ke-4. Setelah titik tersebut, penurunan WCSS cenderung melandai, yang menunjukkan bahwa penambahan jumlah cluster tidak memberikan peningkatan kualitas pengelompokan yang signifikan. Oleh karena itu, jumlah cluster yang dipilih dalam penelitian ini adalah sebanyak 4 cluster.


Perhitungan Jarak

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

Model Clustering

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

Dendrogram

plot(JKBA_model, 
     main = "Dendogram Analisis Jumlah Kejadian Bencana Alam",
     xlab = "Provinsi",
     ylab = "Tingkat Perbedaan",
     sub = "berdasarkan tanah longsor, banjir, kebakaran, cuaca ekstrem",
     hang = -1)

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


Hasil Clustering

cluster_assignment <- cutree(JKBA_model, k = k_groups)
final_data <- cbind(data_JKBA, Cluster = cluster_assignment)

# Cluster 1
rownames(final_data)[final_data$Cluster == 1]
## [1] "Aceh"               "Kep.Riau"           "Kalimantan Selatan"
# Cluster 2
rownames(final_data)[final_data$Cluster == 2]
##  [1] "Sumatera Utara"       "Sumatera Barat"       "Riau"                
##  [4] "Jambi"                "Sumatera Selatan"     "Bengkulu"            
##  [7] "Lampung"              "Kep. Bangka Belitung" "DKI Jakarta"         
## [10] "DI Yogyakarta"        "Banten"               "Bali"                
## [13] "Nusa Tenggara Barat"  "Nusa Tenggara Timur"  "Kalimantan Barat"    
## [16] "Kalimantan Tengah"    "Kaliimantan Timur"    "Kalimantan Utara"    
## [19] "Sulawesi Utara"       "Sulawes Tengah"       "Sulawesi Selatan"    
## [22] "Sulawesi Tenggara"    "Gorontalo"            "Sulawesi Barat"      
## [25] "Maluku"               "Maluku Utara"         "Papua Barat"         
## [28] "Papua"
# Cluster 3
rownames(final_data)[final_data$Cluster == 3]
## [1] "Jawa Barat"
# Cluster 4
rownames(final_data)[final_data$Cluster == 4]
## [1] "Jawa Tengah" "Jawa Timur"
data.frame(Provinsi = rownames(final_data), Cluster = final_data$Cluster)
##                Provinsi Cluster
## 1                  Aceh       1
## 2        Sumatera Utara       2
## 3        Sumatera Barat       2
## 4                  Riau       2
## 5                 Jambi       2
## 6      Sumatera Selatan       2
## 7              Bengkulu       2
## 8               Lampung       2
## 9  Kep. Bangka Belitung       2
## 10             Kep.Riau       1
## 11          DKI Jakarta       2
## 12           Jawa Barat       3
## 13          Jawa Tengah       4
## 14        DI Yogyakarta       2
## 15           Jawa Timur       4
## 16               Banten       2
## 17                 Bali       2
## 18  Nusa Tenggara Barat       2
## 19  Nusa Tenggara Timur       2
## 20     Kalimantan Barat       2
## 21    Kalimantan Tengah       2
## 22   Kalimantan Selatan       1
## 23    Kaliimantan Timur       2
## 24     Kalimantan Utara       2
## 25       Sulawesi Utara       2
## 26       Sulawes Tengah       2
## 27     Sulawesi Selatan       2
## 28    Sulawesi Tenggara       2
## 29            Gorontalo       2
## 30       Sulawesi Barat       2
## 31               Maluku       2
## 32         Maluku Utara       2
## 33          Papua Barat       2
## 34                Papua       2
print(final_data)
##                      banjir kebakaran tanah_longsor cuaca_ekstrem Cluster
## Aceh                    100        77            11            91       1
## Sumatera Utara           83        13            23            54       2
## Sumatera Barat           58        16            18           118       2
## Riau                     67        44             7            24       2
## Jambi                    37        24            11            24       2
## Sumatera Selatan         39        24             4            24       2
## Bengkulu                 25         1             9            11       2
## Lampung                  25         4             5            46       2
## Kep. Bangka Belitung     15        10             2            13       2
## Kep.Riau                 14        79             5             6       1
## DKI Jakarta              20         1            14            16       2
## Jawa Barat              247        14           613           478       3
## Jawa Tengah             153        13           238           206       4
## DI Yogyakarta             6         0            17             2       2
## Jawa Timur              149         8            76           122       4
## Banten                   57         3            14            39       2
## Bali                     13         1            63             8       2
## Nusa Tenggara Barat      79         3            10            17       2
## Nusa Tenggara Timur      59         1            24            28       2
## Kalimantan Barat         45        10             4             9       2
## Kalimantan Tengah         2         4             1             1       2
## Kalimantan Selatan       62       165            12            32       1
## Kaliimantan Timur        36        29            46             7       2
## Kalimantan Utara         16         8            32             3       2
## Sulawesi Utara           23         1             3            13       2
## Sulawes Tengah           96         1             4            36       2
## Sulawesi Selatan         68         1            24            90       2
## Sulawesi Tenggara        38         1             8            21       2
## Gorontalo                22         1             7            10       2
## Sulawesi Barat           23         1             4             9       2
## Maluku                   23         1            14            19       2
## Maluku Utara             20         1             2            10       2
## Papua Barat               5         1             1             1       2
## Papua                    20         1             1             3       2

Ringkasan Statistik per Cluster

summary_stats <- aggregate(. ~ Cluster, data = final_data, mean)
print(summary_stats)
##   Cluster    banjir  kebakaran tanah_longsor cuaca_ekstrem
## 1       1  58.66667 107.000000      9.333333      43.00000
## 2       2  36.42857   7.357143     13.285714      23.42857
## 3       3 247.00000  14.000000    613.000000     478.00000
## 4       4 151.00000  10.500000    157.000000     164.00000

☕ Kesimpulan

Dari hasil analisis hierarchical clustering terhadap jumlah kejadian bencana alam di Indonesia tahun 2021, provinsi-provinsi dapat dikelompokkan menjadi 4 cluster berdasarkan kemiripan jumlah kejadian tanah longsor, banjir, kebakaran hutan/lahan, dan cuaca ekstrem.

Beberapa poin penting:

Cluster 1: Provinsi dengan jumlah kejadian bencana relatif tinggi di hampir semua kategori.

Cluster 2: Provinsi dengan jumlah kejadian sedang, sebagian besar didominasi oleh bencana tertentu (misal banjir).

Cluster 3: Provinsi dengan jumlah kejadian rendah.

Cluster 4: Provinsi dengan profil unik atau kombinasi bencana yang berbeda.

Hasil clustering ini dapat digunakan untuk:

-Perencanaan mitigasi bencana per provinsi.

-Prioritas alokasi sumber daya untuk penanggulangan bencana.

-lebih lanjut terkait faktor risiko dan pola kejadian bencana di Indonesia.


© 2025 Michael Zidane | Data Analysis with R