Lakukan visualisasi, interpretasi/penjelasan, dan lampiran koding
untuk dataset berikut.
Visualisasi bebas apa saja yang penting cocok untuk peubah yang dipilih
(minimal 5, buat untuk satu peubah ataupun dua peubah)
Jawaban:
library(ggplot2)
ggplot(dataKaggle, aes(x = Exam_Score)) +
geom_histogram(binwidth = 2, fill = "#2E86C1", color = "black") +
theme_bw() + labs(title = "Distribusi Nilai Ujian", x = "Exam Score", y = "Frekuensi")Interpretasi:
ggplot(dataKaggle, aes(x = Gender)) +
geom_bar(fill = "#AF7AC5") + theme_bw() +
labs(title = "Distribusi Jenis Kelamin", x = "Gender", y = "Jumlah Siswa")Interpretasi:
Sebagian besar siswa adalah laki-laki. Ini dapat menjadi pertimbangan jika ingin membandingkan nilai ujian antar gender.
ggplot(dataKaggle, aes(x = Access_to_Resources, y = Exam_Score, fill = Access_to_Resources)) +
geom_boxplot() + theme_bw() +
labs(title = "Nilai Ujian Berdasarkan Akses ", x = "Akses to Resources", y = "Exam Score")Interpretasi:
Siswa dengan akses materi High cenderung memiliki skor ujian yang sedikit lebih tinggi dibanding yang aksesnya Low atau Medium.
ggplot(dataKaggle, aes(x = Hours_Studied, y = Exam_Score)) +
geom_point(color = "#28B463", size = 3) +
geom_smooth(method = "lm", se = FALSE, linetype = "dashed") + theme_bw() +
labs(title = "Jam Belajar vs Skor Ujian", x = "Hours of Studied", y = "Exam Score")## `geom_smooth()` using formula = 'y ~ x'
Interpretasi:
ggplot(dataKaggle, aes(x = Peer_Influence, y = Exam_Score, fill = Peer_Influence)) +
stat_summary(fun = mean, geom = "bar") + theme_bw() +
labs(title = "Rata-rata Nilai Ujian Berdasarkan Pengaruh Teman Sebaya", x = "Peer Influence", y = "Rata-rata Exam Score")Interpretasi:
Buatlah class system S4
dengan nama “Mahasiswa” yang berisi atribut:
Buatlah objek dalam class “Mahasiswa” sebanyak 5 individu
Buatlah objek tersebut dengan fungsi konstruktor
Ubahlah method show agar dapat menampilkan objek
Jawab:
setMethod(
"show",
"Mahasiswa",
function(object) {
cat("=== Data Mahasiswa ===\n")
cat("Nama :", object@nama, "\n")
cat("NIM :", object@nim, "\n")
cat("Domisili :", object@domisili, "\n")
cat("======================\n")
}
)# Gabungkan data menjadi data frame
data_mahasiswa <- data.frame(
Nama = c(m1@nama, m2@nama, m3@nama, m4@nama, m5@nama),
NIM = c(m1@nim, m2@nim, m3@nim, m4@nim, m5@nim),
Domisili = c(m1@domisili, m2@domisili, m3@domisili, m4@domisili, m5@domisili)
)
data_mahasiswa## Nama NIM Domisili
## 1 Andi G140123201 Bogor
## 2 Budi G140123202 Depok
## 3 Citra G140123203 Jakarta
## 4 Dewi G140123204 Bandung
## 5 Eko G140123205 Bekasi
Buatlah program R untuk mencari nilai minimum dari suatu fungsi berikut:
\[ f(x_1, x_2, x_3) = 10(x_1 + x_2)^2 + (2x_1 + x_3^2) + (1 + x_2)^2 \]
Jawab:
optim() untuk Minimalisasi# Titik awal tebakan (bisa dipilih sembarang)
start_point <- c(0, 0, 0)
# Lakukan minimisasi
result <- optim(par = start_point, fn = f)
# Tampilkan hasil
cat("Nilai minimum fungsi:", result$value, "\n")## Nilai minimum fungsi: 0.9
## Diperoleh pada titik:
## x1 = -0.1000313
## x2 = 3.772963e-05
## x3 = -8.259502e-06
Buatlah Class System S3 dengan nama “Optimasi” yang berisi atribut “nama_metode” dan “fungsi” (dapat diambil dari sumber mana pun). Kemudian buatlah method “execute.Optimasi” sebagai method yang digunakan untuk mengeksekusi suatu persamaan ke dalam fungsi optimasi tersebut.
Jawab:
Optimasiexecute.OptimasiMisalnya kita ingin meminimalkan fungsi:
\[ f(x_1, x_2) = (x_1 - 3)^2 + (x_2 + 5)^2 \]
# Definisi fungsi
fungsi_contoh <- function(x) {
(x[1] - 3)^2 + (x[2] + 5)^2
}
# Buat objek dari class S3
objek_opt <- Optimasi("Nelder-Mead", fungsi_contoh)
# Eksekusi fungsi optimasi
hasil <- execute.Optimasi(objek_opt, titik_awal = c(0, 0))
# Tampilkan hasil
cat("Nilai minimum:", hasil$nilai_minimum, "\n")## Nilai minimum: 7.987809e-08
## Parameter optimum: 2.999859 -5.000245