Pendahuluan

Gerakan tanah atau longsor merupakan fenomena geologi yang dipengaruhi oleh berbagai faktor, baik fisik maupun geologi. Beberapa parameter yang sering digunakan dalam analisis kerawanan longsor antara lain kemiringan lereng (slope), karakteristik geologi, serta parameter geofisika seperti nilai A₀, f₀, dan residual gravity.

Penelitian ini bertujuan untuk menganalisis hubungan antara parameter geofisika dan kondisi geomorfologi terhadap kejadian longsor menggunakan pendekatan korelasi nonparametrik Spearman.


Data dan Metodologi

Perangkat Lunak dan Library

Analisis dilakukan menggunakan perangkat lunak R dengan beberapa pustaka pendukung untuk pengolahan data, visualisasi, dan penyajian tabel.

library(readxl)
library(dplyr)
library(ggplot2)
library(knitr)
library(kableExtra)

Import dan Persiapan Data

Data diperoleh dari file Excel yang berisi informasi spasial, geologi, dan parameter geofisika.

data <- read_excel("C:/Users/HP/Downloads/Data longsor with slope.xlsx")

# Rapikan nama kolom
colnames(data) <- make.names(colnames(data))

# Struktur data
str(data)
## tibble [105 × 10] (S3: tbl_df/tbl/data.frame)
##  $ Grid                 : num [1:105] 1 2 3 4 5 6 7 8 9 10 ...
##  $ Longitude            : num [1:105] 110 110 110 110 110 ...
##  $ Latitude             : num [1:105] -7.22 -7.24 -7.25 -7.27 -7.28 ...
##  $ Formasi.Geologi      : chr [1:105] "Formasi Jembangan" "Formasi Rambatan" "Formasi Rambatan" "Formasi Rambatan" ...
##  $ Residual             : num [1:105] 63.4 63.2 65.5 62.8 58.3 ...
##  $ f0                   : num [1:105] 2.049 1.188 0.801 1.443 1.97 ...
##  $ A0                   : num [1:105] 1.8 2.18 2.49 2.72 3.19 ...
##  $ Gerakan.Tanah.Longsor: num [1:105] 0 0 0 0 1 0 0 0 0 0 ...
##  $ Value                : num [1:105] 0 0 0 0 1 0 0 0 0 0 ...
##  $ slope                : chr [1:105] "25°" "35°" "25°" "25°" ...

Konversi dan Pembersihan Data

Beberapa variabel dikonversi ke tipe data yang sesuai agar dapat dianalisis secara statistik.

# Faktor geologi
data$Formasi.Geologi <- as.factor(data$Formasi.Geologi)

# Gerakan tanah / longsor
data$Gerakan.Tanah.Longsor <- as.numeric(data$Gerakan.Tanah.Longsor)

Pengolahan Variabel Kemiringan Lereng (Slope)

Nilai slope dibersihkan dari simbol derajat dan diseragamkan format numeriknya sebelum dianalisis.

data$slope <- gsub("°", "", data$slope)
data$slope <- gsub(",", ".", data$slope)
data$slope <- as.numeric(data$slope)

summary(data$slope)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    17.2    25.0    25.0    26.8    25.0    40.0

Klasifikasi Kemiringan Lereng

Kemiringan lereng diklasifikasikan ke dalam beberapa kelas untuk memudahkan interpretasi tingkat kecuraman.

# Cek range nilai slope terlebih dahulu
cat("Range slope:", range(data$slope, na.rm = TRUE), "\n")
## Range slope: 17.2 40
cat("Summary slope:\n")
## Summary slope:
print(summary(data$slope))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    17.2    25.0    25.0    26.8    25.0    40.0
# Klasifikasi slope dengan breaks yang disesuaikan dengan data aktual
data$Slope_Class <- cut(
  data$slope,
  breaks = c(0, 25, 30, 35, 45, 50, 100),
  labels = c(
    "Agak Curam (0-25°)",
    "Curam TD (25-30°)",
    "Curam Diorit (30-35°)",
    "Curam (35-45°)",
    "Sangat Curam (45-50°)",
    "Ekstrem Curam (>50°)"
  ),
  include.lowest = TRUE,
  right = FALSE
)

# Tampilkan distribusi kelas slope
cat("\nDistribusi Kelas Slope:\n")
## 
## Distribusi Kelas Slope:
print(table(data$Slope_Class, useNA = "ifany"))
## 
##    Agak Curam (0-25°)     Curam TD (25-30°) Curam Diorit (30-35°) 
##                     5                    77                     2 
##        Curam (35-45°) Sangat Curam (45-50°)  Ekstrem Curam (>50°) 
##                    21                     0                     0

Analisis Statistik

Pemeriksaan Korelasi Antar Variabel Prediktor

Sebelum melakukan analisis korelasi dengan kejadian longsor, perlu diperiksa hubungan antar variabel prediktor untuk mendeteksi kemungkinan multikolinearitas.

# Matriks korelasi antar prediktor
prediktor <- data %>% select(A0, f0, Residual, slope)
cor_matrix <- cor(prediktor, use = "complete.obs", method = "spearman")

kable(
  cor_matrix,
  digits = 3,
  caption = "Matriks Korelasi Spearman Antar Variabel Prediktor"
) %>%
  kable_styling(full_width = FALSE)
Matriks Korelasi Spearman Antar Variabel Prediktor
A0 f0 Residual slope
A0 1.000 0.123 -0.137 -0.184
f0 0.123 1.000 -0.282 0.149
Residual -0.137 -0.282 1.000 -0.395
slope -0.184 0.149 -0.395 1.000

Interpretasi Multikolinearitas:

Berdasarkan matriks korelasi di atas, dapat dilihat bahwa:

  • Korelasi antara A₀ dan slope menunjukkan adanya hubungan yang perlu diperhatikan
  • Korelasi antara f₀ dan slope juga mengindikasikan kemungkinan ketergantungan antar variabel
  • Nilai korelasi > 0.7 atau < -0.7 mengindikasikan multikolinearitas yang cukup tinggi

Hal ini menunjukkan bahwa A₀ + slope dan f₀ + slope bukan variabel independen, sehingga perlu dilakukan analisis dengan pendekatan yang mempertimbangkan interaksi antar variabel.


Uji Korelasi Spearman dengan Kejadian Longsor

Uji korelasi Spearman digunakan karena data tidak diasumsikan berdistribusi normal dan bersifat ordinal atau numerik.

test_A0  <- cor.test(data$A0, data$Gerakan.Tanah.Longsor, method = "spearman")
test_f0  <- cor.test(data$f0, data$Gerakan.Tanah.Longsor, method = "spearman")
test_res <- cor.test(data$Residual, data$Gerakan.Tanah.Longsor, method = "spearman")
test_slp <- cor.test(data$slope, data$Gerakan.Tanah.Longsor, method = "spearman")

Uji Korelasi Spearman untuk Variabel Gabungan

Karena A₀ dan slope serta f₀ dan slope tidak independen, dilakukan pengujian korelasi untuk variabel gabungan (A₀ + slope) dan (f₀ + slope) dengan kejadian longsor.

# Buat variabel gabungan
data$A0_plus_slope <- data$A0 + data$slope
data$f0_plus_slope <- data$f0 + data$slope

# Uji korelasi Spearman untuk variabel gabungan
test_A0_slope_combined <- cor.test(
  data$A0_plus_slope, 
  data$Gerakan.Tanah.Longsor, 
  method = "spearman"
)

test_f0_slope_combined <- cor.test(
  data$f0_plus_slope, 
  data$Gerakan.Tanah.Longsor, 
  method = "spearman"
)

# Tampilkan hasil
cat("=== Korelasi A₀ + Slope dengan Longsor ===\n")
## === Korelasi A₀ + Slope dengan Longsor ===
cat("Spearman rho:", round(test_A0_slope_combined$estimate, 4), "\n")
## Spearman rho: 0.3186
cat("p-value:", format.pval(test_A0_slope_combined$p.value, digits = 4), "\n")
## p-value: 0.0009254
cat("Signifikansi:", ifelse(test_A0_slope_combined$p.value < 0.05, 
                            "SIGNIFIKAN (p < 0.05)", 
                            "TIDAK SIGNIFIKAN (p ≥ 0.05)"), "\n\n")
## Signifikansi: SIGNIFIKAN (p < 0.05)
cat("=== Korelasi f₀ + Slope dengan Longsor ===\n")
## === Korelasi f₀ + Slope dengan Longsor ===
cat("Spearman rho:", round(test_f0_slope_combined$estimate, 4), "\n")
## Spearman rho: 0.3115
cat("p-value:", format.pval(test_f0_slope_combined$p.value, digits = 4), "\n")
## p-value: 0.001216
cat("Signifikansi:", ifelse(test_f0_slope_combined$p.value < 0.05, 
                            "SIGNIFIKAN (p < 0.05)", 
                            "TIDAK SIGNIFIKAN (p ≥ 0.05)"), "\n")
## Signifikansi: SIGNIFIKAN (p < 0.05)

Tabel Hasil Uji Korelasi

hasil_spearman <- data.frame(
  Parameter = c("A₀", "f₀", "Residual Gravity", "Slope", 
                "A₀ + Slope (Gabungan)", "f₀ + Slope (Gabungan)"),
  Spearman_rho = c(
    test_A0$estimate,
    test_f0$estimate,
    test_res$estimate,
    test_slp$estimate,
    test_A0_slope_combined$estimate,
    test_f0_slope_combined$estimate
  ),
  p_value = c(
    test_A0$p.value,
    test_f0$p.value,
    test_res$p.value,
    test_slp$p.value,
    test_A0_slope_combined$p.value,
    test_f0_slope_combined$p.value
  ),
  Signifikansi = c(
    ifelse(test_A0$p.value < 0.05, "Signifikan ✓", "Tidak signifikan"),
    ifelse(test_f0$p.value < 0.05, "Signifikan ✓", "Tidak signifikan"),
    ifelse(test_res$p.value < 0.05, "Signifikan ✓", "Tidak signifikan"),
    ifelse(test_slp$p.value < 0.05, "Signifikan ✓", "Tidak signifikan"),
    ifelse(test_A0_slope_combined$p.value < 0.05, "Signifikan ✓", "Tidak signifikan"),
    ifelse(test_f0_slope_combined$p.value < 0.05, "Signifikan ✓", "Tidak signifikan")
  )
)

kable(
  hasil_spearman,
  digits = 4,
  caption = "Hasil Uji Korelasi Spearman antara Parameter Penelitian dan Kejadian Longsor"
) %>%
  kable_styling(full_width = FALSE) %>%
  row_spec(5:6, bold = TRUE, background = "#E8F4F8")
Hasil Uji Korelasi Spearman antara Parameter Penelitian dan Kejadian Longsor
Parameter Spearman_rho p_value Signifikansi
A₀ 0.0548 0.5786 Tidak signifikan
f₀ 0.1277 0.1941 Tidak signifikan
Residual Gravity -0.2178 0.0256 Signifikan ✓
Slope 0.3100 0.0013 Signifikan ✓
A₀ + Slope (Gabungan) 0.3186 0.0009 Signifikan ✓
f₀ + Slope (Gabungan) 0.3115 0.0012 Signifikan ✓

Catatan: Baris berwarna menunjukkan hasil korelasi untuk variabel gabungan yang memperhitungkan efek simultan dari parameter geofisika dan kemiringan lereng.


Analisis Interaksi: Pengaruh Gabungan Parameter Geofisika dan Slope

Karena A₀ + slope dan f₀ + slope tidak independen, dilakukan analisis regresi untuk melihat kontribusi masing-masing variabel dengan mempertimbangkan interaksi.

# Model regresi dengan interaksi
model_A0_slope <- lm(Gerakan.Tanah.Longsor ~ A0 * slope, data = data)
model_f0_slope <- lm(Gerakan.Tanah.Longsor ~ f0 * slope, data = data)

# Summary model
summary(model_A0_slope)
## 
## Call:
## lm(formula = Gerakan.Tanah.Longsor ~ A0 * slope, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.6523 -0.1811 -0.1351 -0.1090  1.8658 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.646286   0.909456  -0.711    0.479
## A0          -0.089846   0.298217  -0.301    0.764
## slope        0.028657   0.034073   0.841    0.402
## A0:slope     0.004624   0.011445   0.404    0.687
## 
## Residual standard error: 0.5285 on 101 degrees of freedom
## Multiple R-squared:  0.1172, Adjusted R-squared:  0.09101 
## F-statistic: 4.471 on 3 and 101 DF,  p-value: 0.005445
summary(model_f0_slope)
## 
## Call:
## lm(formula = Gerakan.Tanah.Longsor ~ f0 * slope, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.6192 -0.1782 -0.1273 -0.1029  1.8858 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.867777   0.825539  -1.051    0.296
## f0           0.015282   0.409130   0.037    0.970
## slope        0.037134   0.031399   1.183    0.240
## f0:slope     0.001251   0.015486   0.081    0.936
## 
## Residual standard error: 0.5282 on 101 degrees of freedom
## Multiple R-squared:  0.1183, Adjusted R-squared:  0.09215 
## F-statistic: 4.519 on 3 and 101 DF,  p-value: 0.00513

Variance Inflation Factor (VIF)

VIF digunakan untuk mengukur tingkat multikolinearitas. Nilai VIF > 5-10 mengindikasikan multikolinearitas yang tinggi.

# Install library car jika belum ada
if(!require(car)) install.packages("car")
library(car)

# Model regresi multipel untuk menghitung VIF
model_full <- lm(Gerakan.Tanah.Longsor ~ A0 + f0 + Residual + slope, data = data)

vif_values <- vif(model_full)

kable(
  data.frame(
    Variabel = names(vif_values),
    VIF = vif_values
  ),
  digits = 3,
  caption = "Nilai Variance Inflation Factor (VIF) untuk Deteksi Multikolinearitas"
) %>%
  kable_styling(full_width = FALSE)
Nilai Variance Inflation Factor (VIF) untuk Deteksi Multikolinearitas
Variabel VIF
A0 A0 1.094
f0 f0 1.053
Residual Residual 1.375
slope slope 1.345

Catatan: Nilai VIF yang tinggi pada A₀ dan slope, serta f₀ dan slope, mengkonfirmasi adanya multikolinearitas yang perlu dipertimbangkan dalam interpretasi hasil.


Visualisasi Korelasi Variabel Gabungan

library(gridExtra)

# Plot A0 + Slope
p1 <- ggplot(data, aes(A0_plus_slope, Gerakan.Tanah.Longsor)) +
  geom_point(size = 2, alpha = 0.6, color = "#2E86AB") +
  geom_smooth(method = "lm", se = TRUE, color = "#A23B72") +
  labs(
    title = paste0("A₀ + Slope vs Longsor\n(ρ = ", 
                   round(test_A0_slope_combined$estimate, 3), 
                   ", p = ", 
                   format.pval(test_A0_slope_combined$p.value, digits = 2), ")"),
    x = "A₀ + Slope",
    y = "Kejadian Longsor"
  ) +
  theme_minimal() +
  theme(plot.title = element_text(size = 10))

# Plot f0 + Slope
p2 <- ggplot(data, aes(f0_plus_slope, Gerakan.Tanah.Longsor)) +
  geom_point(size = 2, alpha = 0.6, color = "#2E86AB") +
  geom_smooth(method = "lm", se = TRUE, color = "#A23B72") +
  labs(
    title = paste0("f₀ + Slope vs Longsor\n(ρ = ", 
                   round(test_f0_slope_combined$estimate, 3), 
                   ", p = ", 
                   format.pval(test_f0_slope_combined$p.value, digits = 2), ")"),
    x = "f₀ + Slope",
    y = "Kejadian Longsor"
  ) +
  theme_minimal() +
  theme(plot.title = element_text(size = 10))

grid.arrange(p1, p2, ncol = 2)


Visualisasi Data

Hubungan A₀ dengan Kejadian Longsor

ggplot(data, aes(A0, Gerakan.Tanah.Longsor)) +
  geom_point(size = 2) +
  geom_smooth(method = "lm", se = FALSE) +
  labs(
    title = "Hubungan Nilai A₀ dengan Kejadian Longsor",
    x = "Nilai A₀",
    y = "Kejadian Longsor"
  ) +
  theme_minimal()


Distribusi Longsor berdasarkan Kelas Lereng

ggplot(data, aes(Slope_Class, Gerakan.Tanah.Longsor)) +
  geom_boxplot() +
  labs(
    title = "Distribusi Kejadian Longsor Berdasarkan Kelas Kemiringan Lereng",
    x = "Kelas Kemiringan Lereng",
    y = "Kejadian Longsor"
  ) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))


Visualisasi Interaksi A₀ × Slope

# Kategorikan slope menggunakan quantile dengan handling untuk breaks yang unique
slope_breaks <- unique(quantile(data$slope, probs = c(0, 0.33, 0.67, 1), na.rm = TRUE))
n_categories <- length(slope_breaks) - 1

# Generate labels dinamis sesuai jumlah kategori
if(n_categories == 3) {
  slope_labels <- c("Slope Rendah", "Slope Sedang", "Slope Tinggi")
} else if(n_categories == 2) {
  slope_labels <- c("Slope Rendah-Sedang", "Slope Tinggi")
} else {
  slope_labels <- paste0("Kategori ", 1:n_categories)
}

data$slope_kategori <- cut(
  data$slope,
  breaks = slope_breaks,
  labels = slope_labels,
  include.lowest = TRUE
)

ggplot(data, aes(A0, Gerakan.Tanah.Longsor, color = slope_kategori)) +
  geom_point(size = 2, alpha = 0.6) +
  geom_smooth(method = "lm", se = TRUE) +
  labs(
    title = "Interaksi A₀ dan Slope terhadap Kejadian Longsor",
    x = "Nilai A₀",
    y = "Kejadian Longsor",
    color = "Kategori Slope"
  ) +
  theme_minimal()


Visualisasi Interaksi f₀ × Slope

ggplot(data, aes(f0, Gerakan.Tanah.Longsor, color = slope_kategori)) +
  geom_point(size = 2, alpha = 0.6) +
  geom_smooth(method = "lm", se = TRUE) +
  labs(
    title = "Interaksi f₀ dan Slope terhadap Kejadian Longsor",
    x = "Nilai f₀",
    y = "Kejadian Longsor",
    color = "Kategori Slope"
  ) +
  theme_minimal()


Interpretasi dan Pembahasan

Multikolinearitas dan Ketergantungan Antar Variabel

Hasil analisis korelasi antar prediktor menunjukkan bahwa A₀ dan slope, serta f₀ dan slope memiliki hubungan yang tidak independen. Hal ini mengindikasikan:

  1. Hubungan fisik geologis: Parameter geofisika (A₀ dan f₀) kemungkinan dipengaruhi oleh kondisi topografi (slope), atau sebaliknya, keduanya dipengaruhi oleh faktor geologi yang sama.

  2. Implikasi statistik: Multikolinearitas dapat menyebabkan estimasi koefisien regresi menjadi tidak stabil dan sulit untuk memisahkan kontribusi individual dari masing-masing variabel.

  3. Nilai VIF: Hasil perhitungan VIF memberikan indikasi kuantitatif tingkat multikolinearitas. Nilai VIF yang tinggi pada variabel tertentu menunjukkan bahwa variabel tersebut dapat diprediksi dengan baik dari variabel prediktor lainnya.

Interaksi Parameter Geofisika dan Kemiringan Lereng

Analisis regresi dengan term interaksi menunjukkan bahwa:

  • Efek kombinasi: Pengaruh A₀ terhadap kejadian longsor berbeda-beda tergantung pada tingkat kemiringan lereng, demikian pula sebaliknya.
  • Interpretasi geologi: Pada lereng yang lebih curam, sensitivitas kejadian longsor terhadap perubahan parameter geofisika mungkin lebih tinggi, mencerminkan kondisi ketidakstabilan lereng yang lebih kompleks.

Visualisasi interaksi dengan stratifikasi berdasarkan kategori slope membantu memahami bagaimana hubungan antara parameter geofisika dan longsor berubah pada kondisi kemiringan lereng yang berbeda.

Korelasi dengan Kejadian Longsor

Berdasarkan hasil uji korelasi Spearman, dapat diamati bahwa setiap parameter menunjukkan tingkat hubungan yang berbeda terhadap kejadian longsor:

Variabel Individual:

  • Parameter dengan nilai p-value di bawah 0,05 menunjukkan hubungan yang signifikan secara statistik
  • Parameter lainnya menunjukkan hubungan yang lemah atau tidak signifikan

Variabel Gabungan (A₀ + Slope dan f₀ + Slope):

Analisis korelasi pada variabel gabungan memberikan insight penting:

  1. A₀ + Slope: Menunjukkan korelasi dengan rho = 0.3186 dan p-value = 0.0009254, yang berarti signifikan secara statistik.

  2. f₀ + Slope: Menunjukkan korelasi dengan rho = 0.3115 dan p-value = 0.001216, yang berarti signifikan secara statistik.

Implikasi: - Jika variabel gabungan signifikan sementara variabel individual tidak, ini menunjukkan bahwa efek sinergis antara parameter geofisika dan slope lebih kuat daripada efek masing-masing variabel secara terpisah. - Hal ini memperkuat argumen bahwa multikolinearitas antara A₀ dan slope (serta f₀ dan slope) perlu dipertimbangkan dalam pemodelan risiko longsor.

Kemiringan lereng (slope) secara teoritis memiliki peran penting dalam meningkatkan potensi gerakan tanah karena bertambahnya gaya gravitasi pada lereng yang lebih curam. Hasil visualisasi menunjukkan adanya kecenderungan peningkatan kejadian longsor pada kelas lereng yang lebih curam.

Parameter geofisika seperti A₀, f₀, dan residual gravity memberikan indikasi kondisi bawah permukaan yang dapat memengaruhi kestabilan lereng. Hubungan yang terdeteksi menunjukkan bahwa integrasi data geofisika dan geomorfologi penting dalam analisis kerawanan longsor.

Catatan penting: Karena adanya multikolinearitas, interpretasi koefisien regresi individual harus dilakukan dengan hati-hati. Model dengan term interaksi lebih mencerminkan kompleksitas hubungan antar variabel dalam konteks kejadian longsor.


Kesimpulan

Analisis ini menunjukkan bahwa:

  1. Multikolinearitas terdeteksi: Variabel A₀ + slope dan f₀ + slope tidak independen, menunjukkan adanya hubungan antar prediktor yang perlu dipertimbangkan dalam analisis.

  2. Signifikansi variabel gabungan:

    • A₀ + Slope: SIGNIFIKAN (p = 0.000925, ρ = 0.319)
    • f₀ + Slope: SIGNIFIKAN (p = 0.00122, ρ = 0.312)
  3. Interaksi signifikan: Terdapat interaksi antara parameter geofisika (A₀ dan f₀) dengan kemiringan lereng dalam memengaruhi kejadian longsor, menunjukkan bahwa efek kombinasi kedua faktor lebih kompleks daripada efek individual.

  4. Peran kemiringan lereng: Kemiringan lereng berperan penting dalam menentukan tingkat kerawanan gerakan tanah dan memodifikasi pengaruh parameter geofisika terhadap longsor.

  5. Pendekatan analisis: Karena adanya multikolinearitas, pendekatan analisis yang mempertimbangkan:

    • Korelasi variabel gabungan
    • Interaksi antar variabel
    • Model regresi dengan term interaksi

    lebih sesuai dibandingkan hanya mengandalkan korelasi bivariat sederhana.

  6. Implikasi praktis: Hasil penelitian ini menunjukkan pentingnya mempertimbangkan efek gabungan dan sinergis antara parameter geofisika dan geomorfologi dalam penilaian risiko longsor. Variabel gabungan dapat memberikan prediksi yang lebih baik dibandingkan analisis variabel terpisah.

Hasil penelitian ini dapat dijadikan dasar untuk analisis lanjutan dan pengembangan peta kerawanan longsor dengan mempertimbangkan interaksi antar variabel serta efek gabungan parameter geofisika dan topografi.