nilai— title: “Basic R for Simulation” author: “Galih Kusuma Wijaya” date: “2026-02-23” output: html_document —

Creating DataFrame

Pada tahap awal, kita akan mencari nilai bangkitan untuk variabel Nilai yang disimpan dalam “nilai”, kemudian pada tahap deklarasi dataframe, variabel “nilai” diubah ke dalam “Nilai”.

set.seed(1)
nilai <- rnorm(5, mean = 96)

df <- data.frame(
  Nama = c("Shata", "Mirip", "Timothy", "Tapi", "KW"),
  Nilai = nilai
)

summary(df)
##      Nama               Nilai      
##  Length:5           Min.   :95.16  
##  Class :character   1st Qu.:95.37  
##  Mode  :character   Median :96.18  
##                     Mean   :96.13  
##                     3rd Qu.:96.33  
##                     Max.   :97.60

Deret dan Baris

Pada kasus ini, diinisialisasikan variabel bernama dnb dengan kapasitas 12 numerik, index pertama diisi oleh angka 4. Selanjutnya menginisialisasi variabel patt yang berisikan character berupa aturan atau pola. Pada for loop, dilakukan perulangan untuk setiap i dengan index 2 hingga i = 12 (panjang dnb) dengan syarat patt i-4 dimoduluskan dengan panjang patt +1. Ini digunakan karena kita berharap sistem akan melakukan loop dengan menggunakan pola atau aturan yang sudah didefinisikan pada “patt” secara berulang: Misal i = 2 2 - 2 = 0 %% 3 + 1 = 1 i = 3 3 - 2 = 1 %% 3 + 1 = 2 dst

dnb <- numeric(12)
dnb[1] <- 4

patt <- c("+3", "x2", "-1")

for (i in 2:length(dnb)) {
  rule <- patt[(i-2) %% length(patt) + 1]
  
  if (rule == "+3") dnb[i] <- dnb[i-1] + 3
  if (rule == "x2") dnb[i] <- dnb[i-1] * 2
  if (rule == "-1") dnb[i] <- dnb[i-1] - 1
}

dnb
##  [1]   4   7  14  13  16  32  31  34  68  67  70 140

Replicate & Sequencing

Pada lapisan pertama, digunakan sequence untuk generate data dengan ketentuan dari 0 hingga 6 dan by = 2 berarti setiap data dilompati 2, kemudian masuk ke lapisan rep pertama untuk memunculkan each = 2 yang artinya setiap value dikeluarkan 2x dan terakhir seluruhnya digenerate ulang 3x

repS <- rep(rep(seq(0, 6,by=2), each=2), times=3)
repS
##  [1] 0 0 2 2 4 4 6 6 0 0 2 2 4 4 6 6 0 0 2 2 4 4 6 6

Simulasi pelemparan dadu

Di sini kita menginisialisasi value dari x berupa 0 dan 1, kemudian untuk probabilitas kita beri 0,45 dan 0,55 secara berurut, terapkan asumsi indexing. Ketika x diinsialisasi dari c(1, 0) maka inisialisasi probabilitas perlu dimulai dari c(0.55, 0.45)

set.seed(123)

simulasi <- sample(
  x = c(0, 1),
  size = 30,
  replace = TRUE,
  prob = c(0.45, 0.55)
)

simulasi
##  [1] 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 1

Dataframe penjualan

Seperti pada nomor pertama, kita diminta untuk membuat dataframe, di sini kita menginisialisasi masing-masing variabel secara terpisah, kemudian setiap variabel kita satukan dalam bentuk dataframe.

Hari <- c("Senin", "Selasa", "Rabu", "Kamis")
TotalSales <- c(20, 35, 28, 40)
HargaSatuan <- c(10000, 10000, 10000, 10000)

TotalPendapatan <- TotalSales * HargaSatuan

dataUmkm <- data.frame(
  Hari,
  TotalSales,
  HargaSatuan,
  TotalPendapatan
)

summary(dataUmkm)
##      Hari             TotalSales     HargaSatuan    TotalPendapatan 
##  Length:4           Min.   :20.00   Min.   :10000   Min.   :200000  
##  Class :character   1st Qu.:26.00   1st Qu.:10000   1st Qu.:260000  
##  Mode  :character   Median :31.50   Median :10000   Median :315000  
##                     Mean   :30.75   Mean   :10000   Mean   :307500  
##                     3rd Qu.:36.25   3rd Qu.:10000   3rd Qu.:362500  
##                     Max.   :40.00   Max.   :10000   Max.   :400000