Bagian A: Data Cuaca

suhu <- c(32, 33, 31, 34, 35, 30, 29, 33, 32, 34)
# a. Rata raa, median, standar deviasi
mean(suhu)
## [1] 32.3
median(suhu)
## [1] 32.5
sd(suhu)
## [1] 1.888562
# b. Hari dengan suhu tertinggi
which.max(suhu)
## [1] 5
# c. Jumlah hari dengan suhu di atas rata-rata
sum(suhu > mean(suhu))
## [1] 5

Bagian B: Data Transportasi

penumpang <- c(45, 52, 49, 60, 55, 70, 65)
hari <- c("Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", "Minggu")
# a. Data frame
df_transport <- data.frame(Hari = hari, Penumpang = penumpang)
# b. Rata-rata jumlah penumpang hari kerja 
mean(df_transport$Penumpang[1:5])
## [1] 52.2
# c. Hari dengan penumpang terbanyak
df_transport$Hari[which.max(df_transport$Penumpang)]
## [1] "Sabtu"
# d. Presentase peningkatan Senin ke Sabtu
((penumpang[6] - penumpang[1]) / penumpang[1]) * 100
## [1] 55.55556

Bagian C: Data Ekonomi

harga_beras <- c(12002, 12200, 12150, 12300, 12400, 12500, 12600, 12750)
minggu <- 1:8
# a. Data frame
df_beras <- data.frame(Minggu = minggu, Harga = harga_beras)
# b. Rata-rata kenaikan harga per minggu
mean(diff(harga_beras))
## [1] 106.8571
# c. Selisih harga antar minggu
diff(harga_beras)
## [1] 198 -50 150 100 100 100 150
# d. Minggu dengan kenaikan harga tertinggi 
which.max(diff(harga_beras)) + 1
## [1] 2

Bagian D: Matriks Populasi

populasi <- matrix(c(
  50, 55, 60, 65,  # Kec A
  40, 42, 45, 47,  # Kec B
  70, 72, 74, 76   # Kec C
), nrow = 3, byrow = TRUE)

rownames(populasi) <- c("Kec_A", "Kec_B", "Kec_C")
colnames(populasi) <- c("2019","2020","2021","2022")
# a. Pertumbuhan rata-rata tiap kecamatan
apply(populasi, 1, function(x) mean(diff(x)))
##    Kec_A    Kec_B    Kec_C 
## 5.000000 2.333333 2.000000
# b. Kecamatan dengan populasi tertinggi tahun 2022
rownames(populasi)[which.max(populasi[, "2022"])]
## [1] "Kec_C"
# c. Total penduduk tiap tahun
colSums(populasi)
## 2019 2020 2021 2022 
##  160  169  179  188

Bagian E: Fungsi Custom

deteksi_kenaikan <- function(harga) {
  which(diff(harga) > 200) + 1  # minggu setelah kenaikan
}
deteksi_kenaikan(harga_beras)
## numeric(0)