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.")
}