nilai— title: “Basic R for Simulation” author: “Galih Kusuma Wijaya” date: “2026-02-23” output: html_document —
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
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
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
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
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