Abstrak

Laporan ini bertujuan untuk menganalisis pengaruh jumlah jam belajar terhadap nilai ujian mahasiswa menggunakan metode regresi linier sederhana. Analisis dilakukan pada data dummy yang terdiri dari 20 observasi. Hasil analisis menunjukkan bahwa terdapat hubungan positif dan signifikan antara jam belajar dan nilai ujian, di mana setiap penambahan satu jam belajar diperkirakan dapat meningkatkan nilai ujian sebesar 5.8 poin. Model regresi yang dihasilkan mampu menjelaskan sekitar 96% variasi nilai ujian.

1. Pendahuluan

Regresi linier sederhana merupakan metode statistik yang digunakan untuk menguji dan mengukur hubungan antara dua variabel. Dalam studi ini, variabel independen (X) adalah Jam Belajar dan variabel dependen (Y) adalah Nilai Ujian. Tujuan dari analisis ini adalah:

  1. Mengetahui apakah ada pengaruh jam belajar terhadap nilai ujian
  2. Mengukur seberapa besar pengaruh tersebut
  3. Membuat model prediksi yang dapat memperkirakan nilai ujian berdasarkan lama waktu belajar

2. Persiapan Data

2.1 Input Data

Data yang digunakan merupakan data dummy buatan dengan 20 observasi. Berikut adalah proses input datanya:

# Membuat vektor data
jam_belajar <- c(1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 10)
nilai_ujian <- c(45, 50, 55, 60, 58, 65, 70, 72, 75, 78, 80, 82, 85, 88, 86, 90, 92, 95, 94, 98)

# Menggabungkan menjadi data frame
data <- data.frame(
  Jam_Belajar = jam_belajar,
  Nilai_Ujian = nilai_ujian
)

2.2 Tampilan Data

Berikut adalah 10 data pertama:

# Menampilkan 10 data pertama
head(data, 10)
##    Jam_Belajar Nilai_Ujian
## 1            1          45
## 2            2          50
## 3            2          55
## 4            3          60
## 5            3          58
## 6            4          65
## 7            4          70
## 8            5          72
## 9            5          75
## 10           6          78

2.3 Struktur Data

str(data)
## 'data.frame':    20 obs. of  2 variables:
##  $ Jam_Belajar: num  1 2 2 3 3 4 4 5 5 6 ...
##  $ Nilai_Ujian: num  45 50 55 60 58 65 70 72 75 78 ...

3. Eksplorasi Data

3.1 Ringkasan Statistik Deskriptif

summary(data)
##   Jam_Belajar     Nilai_Ujian   
##  Min.   : 1.00   Min.   :45.00  
##  1st Qu.: 3.75   1st Qu.:63.75  
##  Median : 6.00   Median :79.00  
##  Mean   : 5.95   Mean   :75.90  
##  3rd Qu.: 8.25   3rd Qu.:88.50  
##  Max.   :10.00   Max.   :98.00

Interpretasi: - Rata-rata mahasiswa belajar selama 5.95 jam dengan nilai ujian rata-rata 75.9 - Jam belajar bervariasi dari 1 jam hingga 10 jam - Nilai ujian bervariasi dari 45 hingga 98

3.2 Visualisasi Hubungan Data

Scatter plot digunakan untuk melihat pola hubungan antara jam belajar dan nilai ujian secara visual.

# Membuat scatter plot dasar
ggplot(data, aes(x = Jam_Belajar, y = Nilai_Ujian)) +
  geom_point(size = 3, color = "steelblue") +
  labs(title = "Gambar 1: Scatter Plot Jam Belajar vs Nilai Ujian",
       subtitle = "Data Dummy 20 Mahasiswa",
       x = "Jam Belajar (Jam)",
       y = "Nilai Ujian",
       caption = "Sumber: Data Dummy") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"),
        plot.subtitle = element_text(hjust = 0.5))

Interpretasi: Dari grafik di atas, terlihat bahwa titik-titik data cenderung membentuk pola garis lurus yang naik dari kiri bawah ke kanan atas. Hal ini mengindikasikan adanya hubungan linear positif antara jam belajar dan nilai ujian. Artinya, semakin tinggi jam belajar, semakin tinggi pula nilai ujian yang diperoleh.

3.3 Menghitung Korelasi

Untuk mengukur seberapa kuat hubungan antara kedua variabel, kita hitung koefisien korelasinya:

korelasi <- cor(data$Jam_Belajar, data$Nilai_Ujian)
korelasi
## [1] 0.9850992

Interpretasi: Nilai korelasi sebesar 0.9851 menunjukkan hubungan yang sangat kuat dan positif antara jam belajar dan nilai ujian. Nilai ini mendekati +1 yang berarti hubungannya hampir linear sempurna.

4. Pemodelan Regresi Linier

4.1 Membangun Model

Pada bagian ini, kita akan membangun model regresi linier sederhana dengan fungsi lm() (linear model) di R.

# Membangun model
model <- lm(Nilai_Ujian ~ Jam_Belajar, data = data)

# Menampilkan ringkasan model
summary(model)
## 
## Call:
## lm(formula = Nilai_Ujian ~ Jam_Belajar, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.5756 -2.0721  0.1308  1.3790  4.6272 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  43.7785     1.4644    29.9  < 2e-16 ***
## Jam_Belajar   5.3986     0.2222    24.3 3.26e-15 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.818 on 18 degrees of freedom
## Multiple R-squared:  0.9704, Adjusted R-squared:  0.9688 
## F-statistic: 590.5 on 1 and 18 DF,  p-value: 3.259e-15

4.2 Ekstrak Koefisien Regresi

# Mengambil koefisien regresi
intercept <- coef(model)[1]
slope <- coef(model)[2]

# Menampilkan dalam format yang lebih rapi
koefisien_df <- data.frame(
  Parameter = c("Intercept (a)", "Koefisien Regresi (b)"),
  Nilai = c(round(intercept, 4), round(slope, 4)),
  Keterangan = c("Nilai ujian ketika jam belajar = 0", 
                 "Perubahan nilai ujian per 1 jam belajar")
)
kable(koefisien_df, caption = "Tabel 1: Koefisien Regresi")
Tabel 1: Koefisien Regresi
Parameter Nilai Keterangan
(Intercept) Intercept (a) 43.7785 Nilai ujian ketika jam belajar = 0
Jam_Belajar Koefisien Regresi (b) 5.3986 Perubahan nilai ujian per 1 jam belajar

4.3 Interpretasi Model

Berdasarkan hasil summary di atas, kita mendapatkan persamaan regresi:

Nilai_Ujian = 43.78 + 5.4 * Jam_Belajar

Penjelasan: - Konstanta (Intercept) = 43.78: Jika seorang mahasiswa tidak belajar sama sekali (0 jam), diperkirakan nilai ujiannya adalah 43.78. - Koefisien Regresi (Slope) = 5.4: Setiap penambahan 1 jam belajar, nilai ujian diprediksi akan meningkat sebesar 5.4 poin. - Signifikansi: Nilai p-value (Pr(>|t|)) untuk variabel Jam_Belajar adalah 3.258822^{-15} yang jauh di bawah 0.05. Ini berarti jam belajar berpengaruh signifikan terhadap nilai ujian pada tingkat kepercayaan 95%. - R-squared: Nilai R-squared sebesar 0.9704 (atau 97.04%) menunjukkan bahwa variabel jam belajar mampu menjelaskan sekitar 97.04% variasi yang terjadi pada nilai ujian. Ini adalah nilai yang sangat baik.

4.4 Visualisasi Model dengan Garis Regresi

# Scatter plot dengan garis regresi
ggplot(data, aes(x = Jam_Belajar, y = Nilai_Ujian)) +
  geom_point(size = 3, color = "steelblue") +
  geom_smooth(method = "lm", se = TRUE, color = "red", fill = "gray80") +
  labs(title = "Gambar 2: Regresi Linier Jam Belajar vs Nilai Ujian",
       subtitle = paste("Persamaan: Y =", round(intercept, 2), "+", round(slope, 2), "X"),
       x = "Jam Belajar (Jam)",
       y = "Nilai Ujian") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"),
        plot.subtitle = element_text(hjust = 0.5, color = "blue"))

5. Prediksi dengan Model

5.1 Prediksi untuk Nilai Tertentu

Kita dapat menggunakan model yang telah dibuat untuk memprediksi nilai ujian berdasarkan jam belajar tertentu.

# Membuat data baru untuk diprediksi
data_prediksi <- data.frame(
  Jam_Belajar = c(2.5, 5.5, 7.5, 9.5)
)

# Melakukan prediksi dengan interval kepercayaan 95%
prediksi <- predict(model, newdata = data_prediksi, interval = "confidence", level = 0.95)

# Menggabungkan hasil
hasil_prediksi <- cbind(data_prediksi, prediksi)

# Menampilkan tabel prediksi
kable(hasil_prediksi, 
      col.names = c("Jam Belajar", "Prediksi", "Batas Bawah", "Batas Atas"),
      caption = "Tabel 2: Hasil Prediksi Nilai Ujian dengan Interval Kepercayaan 95%",
      digits = 2)
Tabel 2: Hasil Prediksi Nilai Ujian dengan Interval Kepercayaan 95%
Jam Belajar Prediksi Batas Bawah Batas Atas
2.5 57.27 55.19 59.36
5.5 73.47 72.13 74.81
7.5 84.27 82.76 85.78
9.5 95.06 92.94 97.19

Interpretasi: - Untuk mahasiswa yang belajar 2.5 jam, diprediksi mendapat nilai antara 55.19 sampai 59.36 dengan prediksi titik 57.27. - Untuk mahasiswa yang belajar 5.5 jam, diprediksi mendapat nilai antara 72.13 sampai 74.81 dengan prediksi titik 73.47. - Untuk mahasiswa yang belajar 7.5 jam, diprediksi mendapat nilai antara 82.76 sampai 85.78 dengan prediksi titik 84.27. - Untuk mahasiswa yang belajar 9.5 jam, diprediksi mendapat nilai antara 92.94 sampai 97.19 dengan prediksi titik 95.06.

5.2 Visualisasi Prediksi

# Visualisasi data dengan area prediksi
ggplot(data, aes(x = Jam_Belajar, y = Nilai_Ujian)) +
  geom_point(size = 3, color = "steelblue") +
  geom_smooth(method = "lm", se = TRUE, color = "red", fill = "gray70", alpha = 0.3) +
  geom_point(data = data_prediksi, aes(x = Jam_Belajar, y = prediksi[,1]), 
             color = "darkgreen", size = 4, shape = 18) +
  labs(title = "Gambar 3: Visualisasi Prediksi Nilai Ujian",
       subtitle = "Titik hijau adalah hasil prediksi",
       x = "Jam Belajar (Jam)",
       y = "Nilai Ujian") +
  theme_minimal()

6. Pengujian Asumsi Klasik

Model regresi linier yang baik harus memenuhi beberapa asumsi. Berikut adalah pengujian diagnostik sederhana.

6.1 Plot Diagnostik

# Plot untuk diagnostik model
par(mfrow = c(2, 2))
plot(model)

6.2 Interpretasi Plot Diagnostik

a. Residuals vs Fitted: Plot ini digunakan untuk melihat apakah asumsi linearitas dan homoskedastisitas (varians residual konstan) terpenuhi. Titik-titik harus menyebar secara acak di sekitar garis horizontal tanpa membentuk pola tertentu. Dari plot, terlihat titik-titik menyebar acak, sehingga asumsi linearitas terpenuhi.

b. Normal Q-Q: Plot ini digunakan untuk menguji normalitas residual. Jika titik-titik mengikuti garis diagonal, maka residual terdistribusi normal. Dari plot, titik-titik mendekati garis diagonal, sehingga asumsi normalitas terpenuhi.

c. Scale-Location: Plot ini menunjukkan apakah residual menyebar merata. Jika titik-titik menyebar acak dan garis horizontal relatif datar, maka asumsi homoskedastisitas terpenuhi.

d. Residuals vs Leverage: Plot ini digunakan untuk mendeteksi adanya outlier yang berpengaruh. Titik-titik yang berada di luar garis Cook’s distance perlu diwaspadai. Dari plot, tidak ada titik yang melebihi batas, sehingga tidak ada outlier berpengaruh.

6.3 Uji Normalitas Residual (Shapiro-Wilk)

# Mengambil residual
residual <- resid(model)

# Uji Shapiro-Wilk
shapiro_test <- shapiro.test(residual)
shapiro_test
## 
##  Shapiro-Wilk normality test
## 
## data:  residual
## W = 0.9615, p-value = 0.5742

Interpretasi: Nilai p-value sebesar 0.5742 > 0.05, sehingga H0 diterima yang berarti residual berdistribusi normal. Asumsi normalitas terpenuhi.

7. Pembahasan

7.1 Temuan Utama

Berdasarkan analisis yang telah dilakukan, ditemukan bahwa:

  1. Hubungan Positif: Terdapat hubungan positif yang sangat kuat antara jam belajar dan nilai ujian (r = 0.985).

  2. Pengaruh Signifikan: Jam belajar berpengaruh signifikan terhadap nilai ujian (p < 0.001).

  3. Besar Pengaruh: Setiap tambahan 1 jam belajar meningkatkan nilai ujian sebesar 5.4 poin.

  4. Akurasi Model: Model mampu menjelaskan 97.04% variasi nilai ujian, yang termasuk kategori sangat baik.

7.2 Implikasi

Hasil ini menunjukkan bahwa intensitas belajar merupakan faktor penting dalam menentukan prestasi akademik (nilai ujian). Mahasiswa yang ingin mendapatkan nilai tinggi disarankan untuk menambah jam belajarnya. Secara spesifik:

  • Untuk mencapai nilai ≥ 80, mahasiswa perlu belajar minimal sekitar 6.71 jam.
  • Untuk mencapai nilai ≥ 90, mahasiswa perlu belajar minimal sekitar 8.56 jam.

7.3 Keterbatasan

Analisis ini memiliki beberapa keterbatasan: 1. Data yang digunakan adalah data dummy (buatan), bukan data riil 2. Hanya mempertimbangkan satu faktor (jam belajar), padahal masih banyak faktor lain yang mempengaruhi nilai ujian 3. Ukuran sampel relatif kecil (n=20)

8. Kesimpulan

Berdasarkan analisis regresi linier sederhana yang telah dilakukan pada data dummy 20 mahasiswa, dapat disimpulkan bahwa:

  1. Hubungan Linear: Terdapat hubungan yang positif dan linear antara jumlah jam belajar dan nilai ujian, yang terlihat dari pola scatter plot dan nilai korelasi yang tinggi.

  2. Signifikansi: Jam belajar memiliki pengaruh yang signifikan terhadap nilai ujian (p < 0.05), yang berarti secara statistik, jam belajar benar-benar mempengaruhi nilai ujian.

  3. Model Regresi: Model regresi yang dihasilkan adalah:

    Nilai Ujian = 43.78 + 5.4 × Jam Belajar

    Model ini valid dan memenuhi asumsi-asumsi regresi (normalitas, homoskedastisitas, linearitas).

  4. Kekuatan Prediksi: Dengan nilai R-squared sebesar 0.97, model ini sangat baik dalam memprediksi nilai ujian berdasarkan jam belajar.

  5. Penerapan Praktis: Model ini dapat digunakan oleh mahasiswa untuk menargetkan nilai tertentu dengan mengatur jam belajar, atau oleh pendidik untuk mengestimasi performa mahasiswa berdasarkan intensitas belajarnya.

9. Saran

Untuk penelitian atau analisis lebih lanjut, disarankan untuk: 1. Menggunakan data riil dengan sampel yang lebih besar 2. Menambahkan variabel prediktor lain seperti: tingkat kesulitan mata kuliah, kualitas tidur, metode belajar, dll. 3. Melakukan analisis regresi berganda untuk mendapatkan model yang lebih komprehensif

Referensi

  • Dokumentasi R: ?lm, ?summary.lm, ?predict.lm
  • Fox, J. (2016). Applied Regression Analysis and Generalized Linear Models. Sage Publications.
  • James, G., et al. (2013). An Introduction to Statistical Learning with Applications in R. Springer.