Fungsi convert_temperature() mengubah suhu Celsius ke
Fahrenheit atau Kelvin. Rumus yang digunakan:
\[F = \frac{9}{5}C + 32 \qquad\qquad K = C + 273.15\]
Fungsi summarize_practice() mengembalikan sebuah
list berisi n, average,
median, minimum, dan maximum.
## [1] 78 82 90 74 86
summarize_practice <- function(x) {
list(
n = length(x),
average = mean(x),
median = median(x),
minimum = min(x),
maximum = max(x)
)
}## $n
## [1] 5
##
## $average
## [1] 82
##
## $median
## [1] 82
##
## $minimum
## [1] 74
##
## $maximum
## [1] 90
## [1] 82
✅ Hasil: n = 5, rata-rata = 82, median = 82, minimum = 74, maksimum = 90
Fungsi standardize() menghitung z-score untuk setiap
nilai:
\[z_i = \frac{x_i - \bar{x}}{s}\]
dengan \(s\) adalah standar deviasi
sampel (sd(x)).
## [1] 55 65 70 80 90
## [1] -1.2583965 -0.5181632 -0.1480466 0.5921866 1.3324198
## [1] TRUE
## [1] -1.11456e-17
## [1] 1
✅ Hasil: panjang = 5, rata-rata ≈ 0 (≈ 0), sd ≈ 1 (≈ 1)
Fungsi median_by_hand() menghitung median
tanpa memanggil median() di dalamnya:
urutkan data, lalu tangani kasus jumlah data ganjil dan genap.
practice_odd <- c(9, 2, 7, 4, 6)
practice_even <- c(9, 2, 7, 4)
median_by_hand <- function(x) {
x_sorted <- sort(x)
n <- length(x_sorted)
if (n %% 2 == 1) {
# ganjil: ambil nilai tengah
hasil <- x_sorted[(n + 1) / 2]
} else {
# genap: rata-rata dua nilai tengah
tengah_bawah <- x_sorted[n / 2]
tengah_atas <- x_sorted[n / 2 + 1]
hasil <- (tengah_bawah + tengah_atas) / 2
}
return(hasil)
}## [1] 6
## [1] 5.5
## [1] 6
## [1] 5.5
✅ Hasil: median(practice_odd) = 6 (harusnya 6)  | median(practice_even) = 5.5 (harusnya 5.5)
Fungsi mode_by_hand() mengembalikan
semua nilai yang memiliki frekuensi tertinggi (bisa
lebih dari satu), beserta frekuensinya.
## [1] 1 1 3 3 3 5 5 5 8