# Set seed agar hasil reproducible
set.seed(250)

# Simulasi tinggi badan siswa SMA (1200 data), rata-rata 165, sd 7
tinggi_siswa <- rnorm(1200, mean = 165, sd = 7)

# Vektor kosong untuk simpan rata-rata 40 sampel (ukuran 60)
sample_means_tinggi <- numeric(40)

# Loop untuk bootstrap sampling
for (i in 1:40) {
  sampel <- sample(tinggi_siswa, 60) # ambil sampel acak ukuran 60
  sample_means_tinggi[i] <- mean(sampel) # hitung rata-rata sampel
}

# Tampilkan rata-rata dari 40 sampel bootstrap
print(sample_means_tinggi)
##  [1] 165.8873 164.9915 163.9460 164.4339 165.4221 165.5828 165.3588 164.4878
##  [9] 165.9380 164.6636 164.9626 163.9199 164.1967 164.7178 165.4856 165.2551
## [17] 165.5491 165.7503 163.6359 164.9475 165.4624 165.3560 163.0267 164.3536
## [25] 164.7145 165.6308 164.0761 164.5794 163.9376 165.9969 165.0546 166.9651
## [33] 164.7795 164.3040 165.0816 166.5079 163.8266 165.4883 165.1258 164.0679
# Set layout plot: 1 baris 2 kolom
par(mfrow = c(1, 2))

# Histogram distribusi rata-rata sampel bootstrap
hist(sample_means_tinggi,
     main = "Distribusi Rata-Rata Sampel\n(Tinggi Badan Siswa)",
     xlab = "Rata-rata Tinggi (cm)",
     col = "orange",
     border = "darkorange")

# Histogram data asli tinggi badan siswa
hist(tinggi_siswa,
     main = "Distribusi Data Asli\n(Tinggi Badan Siswa)",
     xlab = "Tinggi (cm)",
     col = "lightblue",
     border = "blue")

# Kembalikan layout ke default (1 plot)
par(mfrow = c(1, 1))
# Latihan 1
cat("Latihan 1:\n")
## Latihan 1:
cat("Tetapkan benih pada angka 150.\n")
## Tetapkan benih pada angka 150.
cat("Hasilkan distribusi normal acak dari 1000 observasi,\n")
## Hasilkan distribusi normal acak dari 1000 observasi,
cat("dengan rata-rata 30 dan simpangan baku 2,5.\n")
## dengan rata-rata 30 dan simpangan baku 2,5.
cat("Hitung rata-rata dari 50 sampel dari 1000 observasi tersebut.\n\n")
## Hitung rata-rata dari 50 sampel dari 1000 observasi tersebut.
set.seed(150)  # Tetapkan seed

# Membuat data asli
data_asli <- rnorm(1000, mean = 30, sd = 2.5)

# Vektor untuk rata-rata 50 sampel
sample_means <- numeric(50)

# Menghitung rata-rata tiap sampel berukuran 50 (dengan pengambilan sampel ulang)
for (i in 1:50) {
  sampel <- sample(data_asli, 50, replace = TRUE)
  sample_means[i] <- mean(sampel)
}

cat("Rata-rata 50 sampel:\n")
## Rata-rata 50 sampel:
print(sample_means)
##  [1] 30.14309 29.02990 29.76690 30.48360 29.73881 29.71241 29.86385 29.50678
##  [9] 30.56253 29.79078 30.12034 29.86928 29.54955 29.55482 30.04611 30.07912
## [17] 30.16797 29.64843 30.13613 30.47296 30.24592 29.79687 29.70930 29.79885
## [25] 30.11966 30.25528 29.48354 29.84970 30.02096 30.38388 29.65810 30.26251
## [33] 30.29870 29.64380 30.04316 30.29065 30.60772 29.66573 29.80451 29.08342
## [41] 29.63084 30.34124 29.88440 29.82377 29.02525 29.77596 29.64970 29.86317
## [49] 29.88076 29.31903
# Latihan 2
cat("\nLatihan 2:\n")
## 
## Latihan 2:
cat("Buat dua histogram:\n")
## Buat dua histogram:
cat("1. Distribusi rata-rata yang diperoleh di Latihan 1.\n")
## 1. Distribusi rata-rata yang diperoleh di Latihan 1.
cat("2. Distribusi data asli 1000 observasi.\n\n")
## 2. Distribusi data asli 1000 observasi.
# Membagi area plot menjadi 1 baris dan 2 kolom untuk 2 histogram
par(mfrow = c(1, 2))

# Histogram rata-rata sampel
hist(sample_means,
     main = "Distribusi Rata-Rata Sampel (50 Sampel)",
     xlab = "Rata-Rata Nilai",
     col = "skyblue",
     border = "black")

# Histogram data asli
hist(data_asli,
     main = "Distribusi Data Asli (1000 Observasi)",
     xlab = "Nilai",
     col = "lightgreen",
     border = "black")

# Kembalikan layout plot ke default
par(mfrow = c(1, 1))