R Markdown
getwd()
## [1] "C:/komstat"
setwd("C:/komstat")
getwd()
## [1] "C:/komstat"
wilayah<-c("Provinsi Bengkulu", "Bengkulu Selatan", "Rejang Lebong", "Bengkulu Utara", "Kaur",
"Seluma", "Muko-muko", "Lebong", "Kepahiang", "Bengkulu Tengah", "Kota Bengkulu")
indeks_pembangunan_manusia<-c(74.3, 74.06, 74.43, 72.27, 70.92, 70.27, 73, 72.95, 71.38, 70.81, 83.38)
indeks_pembangunan_manusia
## [1] 74.30 74.06 74.43 72.27 70.92 70.27 73.00 72.95 71.38 70.81 83.38
pengeluaran_perkapita<-c(11172, 10657, 10848, 11188, 9365, 8949, 11075, 12012, 10044, 10114, 14924)
pengeluaran_perkapita
## [1] 11172 10657 10848 11188 9365 8949 11075 12012 10044 10114 14924
wilayah_faktor <- factor(wilayah)
wilayah_faktor
## [1] Provinsi Bengkulu Bengkulu Selatan Rejang Lebong Bengkulu Utara
## [5] Kaur Seluma Muko-muko Lebong
## [9] Kepahiang Bengkulu Tengah Kota Bengkulu
## 11 Levels: Bengkulu Selatan Bengkulu Tengah Bengkulu Utara Kaur ... Seluma
data_list_ipm_pp <- list(
Wilayah = wilayah,
Indeks_Pembangunan_Manusia = indeks_pembangunan_manusia,
Pengeluaran_Perkapita = pengeluaran_perkapita)
data_list_ipm_pp
## $Wilayah
## [1] "Provinsi Bengkulu" "Bengkulu Selatan" "Rejang Lebong"
## [4] "Bengkulu Utara" "Kaur" "Seluma"
## [7] "Muko-muko" "Lebong" "Kepahiang"
## [10] "Bengkulu Tengah" "Kota Bengkulu"
##
## $Indeks_Pembangunan_Manusia
## [1] 74.30 74.06 74.43 72.27 70.92 70.27 73.00 72.95 71.38 70.81 83.38
##
## $Pengeluaran_Perkapita
## [1] 11172 10657 10848 11188 9365 8949 11075 12012 10044 10114 14924
library(readxl)
DATA_KOMSTAT <- read_excel("C:/Users/ASUS/Downloads/DATA KOMSTAT.xlsx", col_types = c("text", "numeric", "numeric"))
View(DATA_KOMSTAT)
getwd()
## [1] "C:/komstat"
head(DATA_KOMSTAT,11)
## # A tibble: 11 × 3
## wilayah Indeks Pembangunan Manusia tahun 2…¹ Pengeluaran Perkapit…²
## <chr> <dbl> <dbl>
## 1 Provinsi Bengkulu 74.3 11172
## 2 Bengkulu Selatan 74.1 10657
## 3 Rejang Lebong 74.4 10848
## 4 Bengkulu Utara 72.3 11188
## 5 Kaur 70.9 9365
## 6 Seluma 70.3 8949
## 7 Mukomuko 73 11075
## 8 Lebong 73.0 12012
## 9 Kepahiang 71.4 10044
## 10 Bengkulu Tengah 70.8 10114
## 11 Kota Bengkulu 83.4 14924
## # ℹ abbreviated names: ¹​`Indeks Pembangunan Manusia tahun 2023`,
## # ²​`Pengeluaran Perkapita tahun 2023`
class(DATA_KOMSTAT)
## [1] "tbl_df" "tbl" "data.frame"
str(DATA_KOMSTAT)
## tibble [11 × 3] (S3: tbl_df/tbl/data.frame)
## $ wilayah : chr [1:11] "Provinsi Bengkulu" "Bengkulu Selatan" "Rejang Lebong" "Bengkulu Utara" ...
## $ Indeks Pembangunan Manusia tahun 2023: num [1:11] 74.3 74.1 74.4 72.3 70.9 ...
## $ Pengeluaran Perkapita tahun 2023 : num [1:11] 11172 10657 10848 11188 9365 ...
names(DATA_KOMSTAT)
## [1] "wilayah"
## [2] "Indeks Pembangunan Manusia tahun 2023"
## [3] "Pengeluaran Perkapita tahun 2023"
cek_data_kosong <- function(cek_data)
# Mengecek apakah ada nilai kosong (NA) di dalam data frame
if (any(is.na(cek_data))) {
message("Ada data yang kosong. Harap lengkapi data sebelum melanjutkan.")
} else {
message("Tidak ada data kosong. Proses bisa dilanjutkan.")
}
# Membuat data frame dari DATA_KOMSTAT
cek_data <- data.frame(
Indeks_Pembangunan_Manusia_tahun_2023 = DATA_KOMSTAT$`Indeks Pembangunan Manusia tahun 2023`,
Pengeluaran_Perkapita_tahun_2023 = DATA_KOMSTAT$`Pengeluaran Perkapita tahun 2023`)
cek_data_kosong(cek_data)
## Tidak ada data kosong. Proses bisa dilanjutkan.
cek_data_kosong(cek_data)
## Tidak ada data kosong. Proses bisa dilanjutkan.
nilai_korelasi <- function(x, y) {
# Menghitung komponen-komponen utama
jumlah_data <- length(x)
sum_x <- sum(x)
sum_y <- sum(y)
sum_produk_deviasi <- sum(x * y)
sum_kuadrat_deviasi_x <- sum(x^2)
sum_kuadrat_deviasi_y <- sum(y^2)
# Menghitung korelasi Pearson
pembilang <- (jumlah_data * sum_produk_deviasi) - (sum_x * sum_y)
penyebut <- sqrt((jumlah_data * sum_kuadrat_deviasi_x - sum_x^2) * (jumlah_data * sum_kuadrat_deviasi_y - sum_y^2))
korelasi <- pembilang / penyebut
# Menampilkan hasil korelasi
cat("Korelasi Pearson:", korelasi, "\n")
return(korelasi)
}
x <- indeks_pembangunan_manusia
y <- pengeluaran_perkapita
nilai_korelasi(x,y)
## Korelasi Pearson: 0.9247782
## [1] 0.9247782
library(ggplot2)
# Data frame contoh
df <- data.frame(
x = DATA_KOMSTAT$`Indeks Pembangunan Manusia tahun 2023`,
y = DATA_KOMSTAT$`Pengeluaran Perkapita tahun 2023`
)
# Scatter plot dengan garis regresi
ggplot(df, aes(x = x, y = y)) +
geom_point(color = "darkred") + # Scatter plot
geom_smooth(method = "lm", color = "blue") + # Garis regresi
labs(
x = "Indeks Pembangunan Manusia tahun 2023",
y = "Pengeluaran Per Kapita tahun 2023",
title = "Scatter Plot Indeks Pembangunan Manusia vs Pengeluaran Per Kapita"
)
## `geom_smooth()` using formula = 'y ~ x'

# Load package
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(corrplot)
## Warning: package 'corrplot' was built under R version 4.3.3
## corrplot 0.94 loaded
# Misalnya nama dataframe Anda adalah DATA_KOMSTAT
# Menghitung matriks korelasi per wilayah
korelasi_per_wilayah <- DATA_KOMSTAT %>%
group_by(wilayah) %>%
summarize(
IPM = mean(`Indeks Pembangunan Manusia tahun 2023`, na.rm = TRUE),
Pengeluaran = mean(`Pengeluaran Perkapita tahun 2023`, na.rm = TRUE)
)
# Hitung matriks korelasi
M <- cor(korelasi_per_wilayah[, c("IPM", "Pengeluaran")], use = "complete.obs")
# Melihat matriks korelasi
print(M)
## IPM Pengeluaran
## IPM 1.0000000 0.9247782
## Pengeluaran 0.9247782 1.0000000
# Load package
library(dplyr)
library(corrplot)
View(DATA_KOMSTAT)
# Menghitung rata-rata IPM dan Pengeluaran Perkapita per kabupaten
korelasi_per_wilayah <- DATA_KOMSTAT %>%
group_by(wilayah) %>%
summarize(
IPM = mean(`Indeks Pembangunan Manusia tahun 2023`, na.rm = TRUE),
Pengeluaran = mean(`Pengeluaran Perkapita tahun 2023`, na.rm = TRUE),
.groups = 'drop'
)
# Hitung matriks korelasi
M <- cor(korelasi_per_wilayah[, c("IPM", "Pengeluaran")], use = "complete.obs")
# Cek jika matriks korelasi memiliki cukup nilai untuk divisualisasikan
if (nrow(M) > 1) {
# Visualisasi korelasi per wilayah
corrplot.mixed(M,
order = 'AOE',
lower = "number",
upper = "circle",
tl.col = "black",
tl.srt = 45,
number.cex = 1.2,
title = "Korelasi antara IPM dan Pengeluaran Perkapita",
lower.col = "black",
upper.col = colorRampPalette(c("red", "white", "blue"))(200))
} else {
print("Tidak ada cukup data untuk menghitung korelasi.")
}
