library(readxl)
## Warning: package 'readxl' was built under R version 4.3.3
Data_Project_Komstat_kelompok_8 <- read_excel("D:/KOMSTAT/Data Project Komstat kelompok 8.xlsx")
View(Data_Project_Komstat_kelompok_8)
Variabel_x <- Data_Project_Komstat_kelompok_8$`Angka Harapan Hidup`
Variabel_y <- Data_Project_Komstat_kelompok_8$`Indeks Pembangunan Manusia`
variabel <- data.frame(Variabel_x,Variabel_y)
variabel
##    Variabel_x Variabel_y
## 1       70.06      63.69
## 2       63.05      68.05
## 3       65.28      70.92
## 4       67.58      70.31
## 5       69.16      74.14
## 6       70.76      75.96
## 7       70.37      72.92
## 8       68.73      71.13
## 9       71.78      73.77
## 10      69.64      72.56
## 11      72.03      75.36
## 12      72.07      76.19
## 13      69.39      71.86
## 14      69.21      63.17
## 15      70.02      70.32
## 16      66.44      68.85
## 17      71.82      71.67
## 18      69.21      71.21
## 19      67.55      69.51
## 20      67.53      70.93
## 21      67.43      69.58
## 22      69.16      72.16
## 23      69.91      72.77
## 24      69.90      63.75
## 25      69.43      62.93
## 26      69.77      74.74
## 27      63.87      69.86
## 28      74.25      79.70
## 29      71.29      76.17
## 30      73.58      81.76
## 31      72.79      76.95
## 32      69.84      76.05
## 33      71.71      70.23
# Berikut adalah langkah-langkah membuat fugsi dalam menghitung nilai korelasi
# 1. Inisialisasi jumlah data (n)
banyaknya_data <- function(Variabel_x, Variabel_y){
  n <- length(Variabel_x)  # Menghitung jumlah elemen
  
  # Validasi input
  if (n != length(Variabel_y) || n <= 1) {
    return(NA)  # Kembali NA (not available) jika panjang x dan y tidak sama atau kurang dari 2
  }
  return(n)} # mengembalikan hasil nilai n

# Memanggil fungsi dan menyimpan hasil
total_data <- banyaknya_data(Variabel_x, Variabel_y)
total_data
## [1] 33
# 2. Membuat fungsi menghitung jumlah nilai setiap variabel
penjumlahan_data <-function(data){# data adalah vektor berisi angka yang akan dihitung jumlahnya
  jumlah <- 0 # Inisialisasi variabel untuk menyimpan jumlah
  n <- length(data) # inisialisasi untuk panjang atau banyaknya data
  for(i in 1:n){ # pengulangan penjumlahan untuk setiap data ke i yang dimulai dari 1 sampai dengan n
    jumlah <- jumlah + data[i]} #inisialisasi variabel jumlah yaitu jumlah ditambah dengan data ke i
  return (jumlah) # mengembalikan jumlah data setiap data ke i
}
jumlahvariabelx <- penjumlahan_data(Variabel_x)
jumlahvariabelx
## [1] 2294.61
jumlahvariabely <- penjumlahan_data(Variabel_y)
jumlahvariabely
## [1] 2369.17

Including Plots

You can also embed plots, for example:

# 3. Membuat fungsi menjumlahkan x ke-i kali y ke-i
jumlahkan_xi_kali_yi <- function(x, y) {
  # Validasi input
  if (length(x) != length(y)) {
    stop("Panjang vektor x dan y harus sama.")  # jika banyak data pada variabel x dan y tidak sama maka eksekusi dihentikan
  }
  
  # Inisialisasi total untuk menyimpan hasil penjumlahan
  total <- 0 # total diinisialisasi dengan nilai 0, sehingga saat penjumlahan dimulai hasilnya akan bertambah dari 0
  
  # Loop untuk menjumlahkan x-ke-i kali y-ke-i
  for (i in 1:length(x)) {#loop for yang digunakan untuk mengulang setiap elemen dari vektor
    total <- total + (x[i] * y[i])  # Mengalikan elemen x-ke-i dengan y-ke-i dan menambahkannya ke total
  }
  
  # Mengembalikan hasil total
  return(total)
}

hasilxiyi <- jumlahkan_xi_kali_yi(Variabel_x, Variabel_y)
hasilxiyi
## [1] 164925.7
 #4. Membuat fungsi menghitung kuadrat
# Fungsi menghitung setiap nilai pada variabel dikuadratkan lalu dijumlahkan
kuadrat <- function(data){ #data adalah vektor berisi angka yang akan dihitung nilai kuadratnya
  n <- length(data) #inisialisasi untuk panjang atau banyaknya data
  hasil_kuadrat <- numeric(n) #inisialisasi vektor berukuran n untuk menampung hasil perhitungan kuadrat
  for (i in 1:n){ #pengulangan penjumlahan kuadrat untuk setiap data ke i sampai dengan n
    hasil_kuadrat[i] <- data[i]*data[i] #hasil kuadrat data ke i adalah perkalian data ke i dengan data ke i
  }
  return(hasil_kuadrat) #mengembalikan jumlah kuadrat data setiap data ke i
}

Variabel_xkuadrat <- kuadrat(Variabel_x)
Variabel_xkuadrat 
##  [1] 4908.404 3975.302 4261.478 4567.056 4783.106 5006.978 4951.937 4723.813
##  [9] 5152.368 4849.730 5188.321 5194.085 4814.972 4790.024 4902.800 4414.274
## [17] 5158.112 4790.024 4563.002 4560.301 4546.805 4783.106 4887.408 4886.010
## [25] 4820.525 4867.853 4079.377 5513.062 5082.264 5414.016 5298.384 4877.626
## [33] 5142.324
Variabel_ykuadrat <- kuadrat(Variabel_y)
Variabel_ykuadrat
##  [1] 4056.416 4630.802 5029.646 4943.496 5496.740 5769.922 5317.326 5059.477
##  [9] 5442.013 5264.954 5679.130 5804.916 5163.860 3990.449 4944.902 4740.322
## [17] 5136.589 5070.864 4831.640 5031.065 4841.376 5207.066 5295.473 4064.062
## [25] 3960.185 5586.068 4880.420 6352.090 5801.869 6684.698 5921.303 5783.602
## [33] 4932.253
dataframeVariabel_xkuadrat <- data.frame(Variabel_xkuadrat,Variabel_ykuadrat)
dataframeVariabel_xkuadrat
##    Variabel_xkuadrat Variabel_ykuadrat
## 1           4908.404          4056.416
## 2           3975.302          4630.802
## 3           4261.478          5029.646
## 4           4567.056          4943.496
## 5           4783.106          5496.740
## 6           5006.978          5769.922
## 7           4951.937          5317.326
## 8           4723.813          5059.477
## 9           5152.368          5442.013
## 10          4849.730          5264.954
## 11          5188.321          5679.130
## 12          5194.085          5804.916
## 13          4814.972          5163.860
## 14          4790.024          3990.449
## 15          4902.800          4944.902
## 16          4414.274          4740.322
## 17          5158.112          5136.589
## 18          4790.024          5070.864
## 19          4563.002          4831.640
## 20          4560.301          5031.065
## 21          4546.805          4841.376
## 22          4783.106          5207.066
## 23          4887.408          5295.473
## 24          4886.010          4064.062
## 25          4820.525          3960.185
## 26          4867.853          5586.068
## 27          4079.377          4880.420
## 28          5513.062          6352.090
## 29          5082.264          5801.869
## 30          5414.016          6684.698
## 31          5298.384          5921.303
## 32          4877.626          5783.602
## 33          5142.324          4932.253
# 5. Menghitung jumlah nilai variabel yang telah dikuadratkan
jumlah_Variabel_xikuadrat <- penjumlahan_data(Variabel_xkuadrat)
jumlah_Variabel_xikuadrat
## [1] 159754.8
jumlah_Variabel_yikuadrat <- penjumlahan_data(Variabel_ykuadrat)
jumlah_Variabel_yikuadrat
## [1] 170715
## 6. Membuat fungsi menjumlahkan total nilai variabel lalu dikuadratkan
sumx_kuadrat <- kuadrat(jumlahvariabelx)
sumx_kuadrat
## [1] 5265235
sumy_kuadrat <- kuadrat(jumlahvariabely)
sumy_kuadrat
## [1] 5612966
# 7. Menghitung nilai korelasi menggunakan fungsi yang telah dibuat
rumuskorelasi <- (total_data *hasilxiyi - jumlahvariabelx *jumlahvariabely)/sqrt((total_data * jumlah_Variabel_xikuadrat - sumx_kuadrat)*(total_data *jumlah_Variabel_yikuadrat - sumy_kuadrat))
rumuskorelasi   
## [1] 0.5308026
# 8. Menghitung kekuatan hubungan koefisien korelasi
kekuatan_korelasi <- function(rumuskorelasi){
  if (rumuskorelasi >= 0.9 && rumuskorelasi <= 1) {
    return("Hubungan sangat kuat positif")
  } else if (rumuskorelasi > 0.7 && rumuskorelasi < 0.9) {
    return("Hubungan kuat positif")
  } else if (rumuskorelasi > 0.5 && rumuskorelasi <= 0.7) {
    return("Hubungan sedang positif")
  } else if (rumuskorelasi > 0.3 && rumuskorelasi <= 0.5) {
    return("Hubungan lemah positif")
  } else if (rumuskorelasi > 0 && rumuskorelasi <= 0.3) {
    return("Tidak ada hubungan positif")
  } else if (rumuskorelasi < 0 && rumuskorelasi >= -0.3) {
    return("Tidak ada hubungan negatif")
  } else if (rumuskorelasi <= -0.3 && rumuskorelasi > -0.5) {
    return("Hubungan lemah negatif")
  } else if (rumuskorelasi <= -0.5 && rumuskorelasi > -0.7) {
    return("Hubungan sedang negatif")
  } else if (rumuskorelasi <= -0.7 && rumuskorelasi > -0.9) {
    return("Hubungan kuat negatif")
  } else if (rumuskorelasi <= -0.9 && rumuskorelasi >= -1) {
    return("Hubungan sangat kuat negatif")
  } else {
    return("Nilai tidak valid")
  }
}
hasil_hubungan_korelasi <- kekuatan_korelasi(rumuskorelasi)
hasil_hubungan_korelasi
## [1] "Hubungan sedang positif"