# =========================================================
# 1. MEMBACA DATA
# =========================================================
data <- read.table(file.choose(), header = TRUE)
View(data)
names(data)
## [1] "Provinsi" "x" "y"
str(data)
## 'data.frame': 38 obs. of 3 variables:
## $ Provinsi: chr "Aceh" "Sumatera_Utara" "Sumatera_Barat" "Riau" ...
## $ x : num 1.34 1.34 1.39 1.31 1.25 1.1 1.28 1.16 1.32 1.45 ...
## $ y : num 12.34 7.1 5.27 6.19 6.67 ...
# =========================================================
# 2. MEMILIH VARIABEL
# =========================================================
X <- data$x
Y <- data$y
# =========================================================
# 3. CEK MISSING VALUE
# =========================================================
sum(is.na(X))
## [1] 0
sum(is.na(Y))
## [1] 0
# =========================================================
# 4. MEMBERSIHKAN DATA
# =========================================================
data <- data[complete.cases(data$x, data$y), ]
X <- data$x
Y <- data$y
# Jumlah data setelah dibersihkan
length(X)
## [1] 38
length(Y)
## [1] 38
# =========================================================
# 5. STATISTIK DESKRIPTIF X
# =========================================================
mean(X)
## [1] 1.275789
median(X)
## [1] 1.315
min(X)
## [1] 0.18
max(X)
## [1] 3.06
range(X)
## [1] 0.18 3.06
quantile(X)
## 0% 25% 50% 75% 100%
## 0.180 1.115 1.315 1.430 3.060
IQR(X)
## [1] 0.315
var(X)
## [1] 0.1829764
sd(X)
## [1] 0.4277574
summary(X)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.180 1.115 1.315 1.276 1.430 3.060
# =========================================================
# 6. STATISTIK DESKRIPTIF Y
# =========================================================
mean(Y)
## [1] 10.09474
median(Y)
## [1] 9.135
min(Y)
## [1] 3.44
max(Y)
## [1] 30.41
range(Y)
## [1] 3.44 30.41
quantile(Y)
## 0% 25% 50% 75% 100%
## 3.4400 5.4800 9.1350 12.0775 30.4100
IQR(Y)
## [1] 6.5975
var(Y)
## [1] 38.97301
sd(Y)
## [1] 6.242837
summary(Y)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 3.440 5.480 9.135 10.095 12.078 30.410
# =========================================================
# 7. BOXPLOT X
# =========================================================
boxplot(
X,
main = "Boxplot Laju Pertumbuhan Penduduk",
ylab = "Laju Pertumbuhan Penduduk (%)"
)

boxplot.stats(X)
## $stats
## [1] 0.630 1.100 1.315 1.430 1.650
##
## $n
## [1] 38
##
## $conf
## [1] 1.230418 1.399582
##
## $out
## [1] 0.18 3.06
# =========================================================
# 8. BOXPLOT Y
# =========================================================
boxplot(
Y,
main = "Boxplot Persentase Penduduk Miskin",
ylab = "Persentase Penduduk Miskin (%)"
)

boxplot.stats(Y)
## $stats
## [1] 3.440 5.380 9.135 12.160 18.680
##
## $n
## [1] 38
##
## $conf
## [1] 7.397219 10.872781
##
## $out
## [1] 30.41 26.34
# =========================================================
# 9. PERHITUNGAN OUTLIER X
# =========================================================
Q1_X <- quantile(X, 0.25)
Q3_X <- quantile(X, 0.75)
IQR_X <- Q3_X - Q1_X
batas_bawah_X <- Q1_X - 1.5 * IQR_X
batas_atas_X <- Q3_X + 1.5 * IQR_X
Q1_X
## 25%
## 1.115
Q3_X
## 75%
## 1.43
IQR_X
## 75%
## 0.315
batas_bawah_X
## 25%
## 0.6425
batas_atas_X
## 75%
## 1.9025
outlier_X <- X[X < batas_bawah_X | X > batas_atas_X]
outlier_X
## [1] 0.18 0.63 3.06
# =========================================================
# 10. PERHITUNGAN OUTLIER Y
# =========================================================
Q1_Y <- quantile(Y, 0.25)
Q3_Y <- quantile(Y, 0.75)
IQR_Y <- Q3_Y - Q1_Y
batas_bawah_Y <- Q1_Y - 1.5 * IQR_Y
batas_atas_Y <- Q3_Y + 1.5 * IQR_Y
Q1_Y
## 25%
## 5.48
Q3_Y
## 75%
## 12.0775
IQR_Y
## 75%
## 6.5975
batas_bawah_Y
## 25%
## -4.41625
batas_atas_Y
## 75%
## 21.97375
outlier_Y <- Y[Y < batas_bawah_Y | Y > batas_atas_Y]
outlier_Y
## [1] 30.41 26.34
plot(
X, Y,
main = "Scatter Plot Laju Pertumbuhan Penduduk terhadap Kemiskinan",
xlab = "Laju Pertumbuhan Penduduk (%)",
ylab = "Persentase Penduduk Miskin (%)",
pch = 19
)
model <- lm(Y ~ X)
abline(model)

tabel_bantu <- data.frame(
Provinsi = data$Provinsi,
X = X,
Y = Y,
X2 = X^2,
Y2 = Y^2,
XY = X * Y
)
# Membuat baris jumlah
jumlah <- data.frame(
Provinsi = "Jumlah",
X = sum(X),
Y = sum(Y),
X2 = sum(X^2),
Y2 = sum(Y^2),
XY = sum(X * Y)
)
# Menggabungkan tabel dengan baris jumlah
tabel_bantu <- rbind(tabel_bantu, jumlah)
tabel_bantu
## Provinsi X Y X2 Y2 XY
## 1 Aceh 1.34 12.34 1.7956 152.2756 16.5356
## 2 Sumatera_Utara 1.34 7.10 1.7956 50.4100 9.5140
## 3 Sumatera_Barat 1.39 5.27 1.9321 27.7729 7.3253
## 4 Riau 1.31 6.19 1.7161 38.3161 8.1089
## 5 Jambi 1.25 6.67 1.5625 44.4889 8.3375
## 6 Sumatera_Selatan 1.10 9.50 1.2100 90.2500 10.4500
## 7 Bengkulu 1.28 11.83 1.6384 139.9489 15.1424
## 8 Lampung 1.16 9.31 1.3456 86.6761 10.7996
## 9 Kepulauan_Bangka_Belitung 1.32 4.75 1.7424 22.5625 6.2700
## 10 Kepulauan_Riau 1.45 4.09 2.1025 16.7281 5.9305
## 11 DKI_Jakarta 0.18 3.96 0.0324 15.6816 0.7128
## 12 Jawa_Barat 1.02 6.54 1.0404 42.7716 6.6708
## 13 Jawa_Tengah 0.95 9.21 0.9025 84.8241 8.7495
## 14 DI_Yogyakarta 0.63 9.70 0.3969 94.0900 6.1110
## 15 Jawa_Timur 0.71 9.06 0.5041 82.0836 6.4326
## 16 Banten 1.05 5.38 1.1025 28.9444 5.6490
## 17 Bali 0.68 3.44 0.4624 11.8336 2.3392
## 18 Nusa_Tenggara_Barat 1.56 11.17 2.4336 124.7689 17.4252
## 19 Nusa_Tenggara_Timur 1.58 17.52 2.4964 306.9504 27.6816
## 20 Kalimantan_Barat 1.31 5.78 1.7161 33.4084 7.5718
## 21 Kalimantan_Tengah 1.32 5.09 1.7424 25.9081 6.7188
## 22 Kalimantan_Selatan 1.24 3.63 1.5376 13.1769 4.5012
## 23 Kalimantan_Timur 3.06 5.14 9.3636 26.4196 15.7284
## 24 Kalimantan_Utara 1.37 5.18 1.8769 26.8324 7.0966
## 25 Sulawesi_Utara 0.77 6.32 0.5929 39.9424 4.8664
## 26 Sulawesi_Tengah 1.16 10.46 1.3456 109.4116 12.1336
## 27 Sulawesi_Selatan 1.10 7.24 1.2100 52.4176 7.9640
## 28 Sulawesi_Tenggara 1.63 10.02 2.6569 100.4004 16.3326
## 29 Gorontalo 1.22 12.16 1.4884 147.8656 14.8352
## 30 Sulawesi_Barat 1.51 10.00 2.2801 100.0000 15.1000
## 31 Maluku 1.33 14.91 1.7689 222.3081 19.8303
## 32 Maluku_Utara 1.43 5.79 2.0449 33.5241 8.2797
## 33 Papua_Barat 1.65 18.68 2.7225 348.9424 30.8220
## 34 Papua_Barat_Daya 1.55 16.49 2.4025 271.9201 25.5595
## 35 Papua 1.31 18.39 1.7161 338.1921 24.0909
## 36 Papua_Selatan 1.43 18.54 2.0449 343.7316 26.5122
## 37 Papua_Tengah 1.45 30.41 2.1025 924.7681 44.0945
## 38 Papua_Pegunungan 1.34 26.34 1.7956 693.7956 35.2956
## 39 Jumlah 48.48 383.60 68.6204 5314.3424 507.5188
# =========================================================
# KOEFISIEN KORELASI PEARSON
# =========================================================
# Jumlah sampel
n <- length(X)
# Nilai yang diperlukan
sumX <- sum(X)
sumY <- sum(Y)
sumX2 <- sum(X^2)
sumY2 <- sum(Y^2)
sumXY <- sum(X * Y)
# Menampilkan nilai
n
## [1] 38
sumX
## [1] 48.48
sumY
## [1] 383.6
sumX2
## [1] 68.6204
sumY2
## [1] 5314.342
sumXY
## [1] 507.5188
# =========================================================
# MENGHITUNG PEMBILANG
# =========================================================
pembilang <- (n * sumXY) - (sumX * sumY)
pembilang
## [1] 688.7864
# =========================================================
# MENGHITUNG PENYEBUT
# =========================================================
bagian_X <- (n * sumX2) - (sumX^2)
bagian_Y <- (n * sumY2) - (sumY^2)
penyebut <- sqrt(bagian_X * bagian_Y)
bagian_X
## [1] 257.2648
bagian_Y
## [1] 54796.05
penyebut
## [1] 3754.61
# =========================================================
# KOEFISIEN KORELASI PEARSON
# =========================================================
r <- pembilang / penyebut
r
## [1] 0.1834509