# Bagian A: Data Cuaca
suhu <- c(32, 33, 31, 34, 35, 30, 29, 33, 32, 34)
# a. rata-rata, median, standar deviasi suhu.
mean(suhu)
## [1] 32.3
median(suhu)
## [1] 32.5
sd(suhu)
## [1] 1.888562
#b.hari dengan suhu tertinggi.
max(suhu)
## [1] 35
which(suhu == max(suhu))
## [1] 5
#c. berapa hari dengan suhu di atas rata-rata.
mean_suhu <- mean(suhu)
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, penumpang)
df_transport
## hari penumpang
## 1 Senin 45
## 2 Selasa 52
## 3 Rabu 49
## 4 Kamis 60
## 5 Jumat 55
## 6 Sabtu 70
## 7 Minggu 65
#b.rata-rata jumlah penumpang pada 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. persen peningkatan jumlah penumpang dari hari Senin ke Sabtu
(penumpang[6] - penumpang[1]) / penumpang[1] * 100
## [1] 55.55556
#Bagian C: Data Ekonomi
harga_beras <- c(12000, 12200, 12150, 12300,
12400, 12500, 12600, 12750)
minggu <- 1:8
#a. data frame
df_beras <- data.frame(minggu, harga_beras)
df_beras
## minggu harga_beras
## 1 1 12000
## 2 2 12200
## 3 3 12150
## 4 4 12300
## 5 5 12400
## 6 6 12500
## 7 7 12600
## 8 8 12750
#b. rata-rata kenaikan harga per minggu.
kenaikan <- diff(harga_beras)
mean(kenaikan)
## [1] 107.1429
#c.selisih harga antar minggu.
diff(harga_beras)
## [1] 200 -50 150 100 100 100 150
#d.minggu dengan kenaikan harga tertinggi.
which.max(diff(harga_beras)) + 1
## [1] 2
Kenaikan harga tertinggi terjadi pada minggu ke-2, sebesar Rp200/kg dibanding minggu sebelumnya.
#Bagian D: Matriks Populasi
populasi <- matrix(c(
50, 55, 60, 65,
40, 42, 45, 47,
70, 72, 74, 76
), nrow = 3, byrow = TRUE)
rownames(populasi) <- c("Kec_A", "Kec_B", "Kec_C")
colnames(populasi) <- c("2019", "2020", "2021", "2022")
populasi
## 2019 2020 2021 2022
## Kec_A 50 55 60 65
## Kec_B 40 42 45 47
## Kec_C 70 72 74 76
#a. pertumbuhan penduduk rata-rata tiap kecamatan
apply(populasi, 1, mean)
## Kec_A Kec_B Kec_C
## 57.5 43.5 73.0
#b. kecamatan dengan populasi tertinggi pada tahun 2022
populasi[, "2022"]
## Kec_A Kec_B Kec_C
## 65 47 76
rownames(populasi)[which.max(populasi[, "2022"])]
## [1] "Kec_C"
#c.total penduduk tiap tahun.
apply(populasi, 2, sum)
## 2019 2020 2021 2022
## 160 169 179 188
#Bagian E: Fungsi Custom
#fungsi deteksi_kenaikan()
deteksi_kenaikan <- function(harga) {
kenaikan <- diff(harga)
which(kenaikan > 200) + 1
}
#Uji fungsi
deteksi_kenaikan(harga_beras)
## numeric(0)
numeric(0) artinya tidak ada kenaikan yang lebih tinggi dari Rp200.