## ===== Soal 1: Simpangan baku (tanpa sd) =====
nilai <- c(70, 85, 60, 90, 75) # ganti dengan data UTS contoh 1.2
n <- length(nilai)
# 1) hitung rata-rata
jumlah <- 0
for (x in nilai) {
jumlah <- jumlah + x
}
rata2 <- jumlah / n
# 2) jumlahkan kuadrat selisih tiap nilai dari rata-rata
total_kuadrat <- 0
for (x in nilai) {
total_kuadrat <- total_kuadrat + (x - rata2)^2
}
# 3) bagi dengan (n-1), lalu akar
simpangan_baku <- sqrt(total_kuadrat / (n - 1))
simpangan_baku
## [1] 11.93734
## ===== Soal 2: Indeks kemunculan TERAKHIR nilai maksimum =====
data <- c(3, 9, 2, 9, 5)
indeks <- 1
for (i in 2:length(data)) {
if (data[i] >= data[indeks]) { # pakai >= (bukan >)
indeks <- i
}
}
indeks # hasil: 4
## [1] 4
## ===== Soal 3: Maks dan Min dalam satu loop =====
data <- c(50, 40, 30, 20, 10)
terbesar <- data[1]
terkecil <- data[1]
perbandingan <- 0
for (i in 2:length(data)) {
perbandingan <- perbandingan + 1
if (data[i] > terbesar) {
terbesar <- data[i]
} else {
perbandingan <- perbandingan + 1
if (data[i] < terkecil) {
terkecil <- data[i]
}
}
}
terbesar
## [1] 50
terkecil
## [1] 10
perbandingan # kasus terburuk: 2*(n-1) = 8
## [1] 8
## ===== Soal 4: Kenaikan harian terbesar DAX =====
dax <- EuStockMarkets[, "DAX"]
selisih <- diff(dax) # DAX hari ini - DAX kemarin
kenaikan_terbesar <- max(selisih)
hari_ke <- which.max(selisih) + 1 # +1 karena selisih mulai dari hari ke-2
hari_ke
## [1] 1653
kenaikan_terbesar
## [1] 160.97
## ===== Soal 5: Jumlah dan rata-rata per kolom =====
penjualan <- matrix(c(10, 12, 9, 15,
8, 14, 11, 13,
12, 10, 13, 16),
nrow = 3, byrow = TRUE) # 3 toko x 4 minggu
jumlah_kolom <- colSums(penjualan) # total tiap minggu
rata2_kolom <- colMeans(penjualan) # rata-rata tiap minggu
minggu_terbaik <- which.max(jumlah_kolom)
jumlah_kolom
## [1] 30 36 33 44
rata2_kolom
## [1] 10.00000 12.00000 11.00000 14.66667
minggu_terbaik
## [1] 4
## ===== Soal 6: Matriks di R tidak saling terkait =====
m <- matrix(0, nrow = 3, ncol = 3)
m[1, 1] <- 1
m # hanya satu sel yang berubah
## [,1] [,2] [,3]
## [1,] 1 0 0
## [2,] 0 0 0
## [3,] 0 0 0