2 + 3 # Penjumlahan: Menambahkan 2 dan 3, hasilnya 5
## [1] 5
5 - 1 # Pengurangan: Mengurangi 5 dengan 1, hasilnya 4
## [1] 4
4 * 2 # Perkalian: Mengalikan 4 dengan 2, hasilnya 8
## [1] 8
10 / 2 # Pembagian: Membagi 10 dengan 2, hasilnya 5
## [1] 5
2^3 # Pangkat: Menghitung 2 pangkat 3, hasilnya 8
## [1] 8
a <- 10 # Membuat variabel 'a' dan mengisinya dengan nilai 10
b <- 5 # Membuat variabel 'b' dan mengisinya dengan nilai 5
c <- a + b # Membuat variabel 'c' yang berisi hasil penjumlahan 'a' dan 'b'
c # Menampilkan nilai dari variabel 'c'
## [1] 15
vektor <- c(1, 2, 3, 4, 5) # Membuat vektor numerik dengan nilai 1 hingga 5
vektor # Menampilkan isi vektor
## [1] 1 2 3 4 5
warna <- c("Merah", "Biru", "Hijau", "Merah", "Biru", "Hijau", "Merah")
warna # Menampilkan isi vektor karakter
## [1] "Merah" "Biru" "Hijau" "Merah" "Biru" "Hijau" "Merah"
str(warna)
## chr [1:7] "Merah" "Biru" "Hijau" "Merah" "Biru" "Hijau" "Merah"
warna_factor <- factor(warna) # Mengubah vektor karakter menjadi faktor
str(warna_factor)
## Factor w/ 3 levels "Biru","Hijau",..: 3 1 2 3 1 2 3
str(warna_factor) # Menampilkan struktur dari faktor 'warna_factor'
## Factor w/ 3 levels "Biru","Hijau",..: 3 1 2 3 1 2 3
levels(warna_factor) # Menampilkan level atau kategori unik dalam faktor
## [1] "Biru" "Hijau" "Merah"
table(warna_factor) # Menampilkan frekuensi masing-masing kategori dalam faktor
## warna_factor
## Biru Hijau Merah
## 2 2 3
data_list <- list(
angka = c(10, 20, 30, 40),
teks = c("A", "B", "C"),
kategori = factor(c("Baik", "Sedang", "Buruk"))
)
data_list
## $angka
## [1] 10 20 30 40
##
## $teks
## [1] "A" "B" "C"
##
## $kategori
## [1] Baik Sedang Buruk
## Levels: Baik Buruk Sedang
print(data_list) # Menampilkan seluruh isi list
## $angka
## [1] 10 20 30 40
##
## $teks
## [1] "A" "B" "C"
##
## $kategori
## [1] Baik Sedang Buruk
## Levels: Baik Buruk Sedang
data_list$angka # Mengakses elemen 'angka' dalam list
## [1] 10 20 30 40
data_list[[2]] # Mengakses elemen kedua dalam list (vektor 'teks')
## [1] "A" "B" "C"
data_karyawan <- data.frame(
Nama = c("Andi", "Budi", "Citra", "Dewi", "Tika"), # Kolom Nama
Usia = c(25, 30, 27, 35, 28), # Kolom Usia
Pekerjaan = factor(c("Pegawai", "Wirausaha", "Mahasiswa", "Pegawai", "Pegawai"))
# Kolom Pekerjaan
)
print(data_karyawan) # Menampilkan seluruh isi dataframe
## Nama Usia Pekerjaan
## 1 Andi 25 Pegawai
## 2 Budi 30 Wirausaha
## 3 Citra 27 Mahasiswa
## 4 Dewi 35 Pegawai
## 5 Tika 28 Pegawai
summary(data_karyawan) # Menampilkan ringkasan statistik dari dataframe
## Nama Usia Pekerjaan
## Length:5 Min. :25 Mahasiswa:1
## Class :character 1st Qu.:27 Pegawai :3
## Mode :character Median :28 Wirausaha:1
## Mean :29
## 3rd Qu.:30
## Max. :35
array_data <- array(1:24, dim = c(3, 4, 2)) # Membuat array dengan dimensi 3x4x2
array_data
## , , 1
##
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
##
## , , 2
##
## [,1] [,2] [,3] [,4]
## [1,] 13 16 19 22
## [2,] 14 17 20 23
## [3,] 15 18 21 24
print(array_data) # Menampilkan isi array
## , , 1
##
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
##
## , , 2
##
## [,1] [,2] [,3] [,4]
## [1,] 13 16 19 22
## [2,] 14 17 20 23
## [3,] 15 18 21 24
dim(array_data) # Menampilkan dimensi dari array
## [1] 3 4 2
nilai <- c(90, 85, NA, 75, 80, NA, 95) # Membuat vektor dengan beberapa nilai NA
nilai
## [1] 90 85 NA 75 80 NA 95
x1 <- seq(0, 10, length=5) # Membuat sequence dari 0 hingga 10 dengan 5 elemen
x1 # Menampilkan sequence
## [1] 0.0 2.5 5.0 7.5 10.0
x2 <- seq(0,10,length=6) # Membuat deret angka dengan 6 elemen
x2
## [1] 0 2 4 6 8 10
x3 <- seq(0,10,length=7) # Membuat deret angka dengan 7 elemen
x3
## [1] 0.000000 1.666667 3.333333 5.000000 6.666667 8.333333 10.000000
x3 <- seq(0,15,length=15) # Membuat deret angka dengan 10 elemen
x3
## [1] 0.000000 1.071429 2.142857 3.214286 4.285714 5.357143 6.428571
## [8] 7.500000 8.571429 9.642857 10.714286 11.785714 12.857143 13.928571
## [15] 15.000000
x4 <- numeric(10) # panjang barisan
x4[1] <- 2 # nilai awal
pola <- c("+2", "*2", "/2")
for (i in 2:length(x4)) {
aturan <- pola[(i - 2) %% length(pola) + 1]
if (aturan == "+2") x4[i] <- x4[i-1] + 2
if (aturan == "*2") x4[i] <- x4[i-1] * 2
if (aturan == "/2") x4[i] <- x4[i-1] / 2
}
x4
## [1] 2 4 8 4 6 12 6 8 16 8
round(x3) # Membulatkan nilai dalam 'x3' ke bilangan bulat terdekat
## [1] 0 1 2 3 4 5 6 8 9 10 11 12 13 14 15
floor(x3) # Membulatkan nilai dalam 'x3' ke bawah
## [1] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 15
ceiling(x3) # Membulatkan nilai dalam 'x3' ke atas
## [1] 0 2 3 4 5 6 7 8 9 10 11 12 13 14 15
rep(c("A", "B", "C"), times=5) # Mengulang vektor "A", "B", "C" sebanyak 5 kali
## [1] "A" "B" "C" "A" "B" "C" "A" "B" "C" "A" "B" "C" "A" "B" "C"
rep(c("A","B","C"), times = c(1, 2, 3))
## [1] "A" "B" "B" "C" "C" "C"
rep(c("A", "B", "C"), each=5) # Mengulang setiap elemen vektor "A", "B", "C" sebanyak 5 kali
## [1] "A" "A" "A" "A" "A" "B" "B" "B" "B" "B" "C" "C" "C" "C" "C"
rep(c("A", "B", "C"), each=2, times=5) # Mengulang setiap elemen vektor "A", "B", "C" sebanyak 2 kali, dan seluruhnya diulang 5 kali
## [1] "A" "A" "B" "B" "C" "C" "A" "A" "B" "B" "C" "C" "A" "A" "B" "B" "C" "C" "A"
## [20] "A" "B" "B" "C" "C" "A" "A" "B" "B" "C" "C"
rep(1:5, 5) # Mengulang vektor 1 hingga 5 sebanyak 5 kali
## [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
rep(1:5, each=5) # Mengulang setiap elemen vektor 1 hingga 5 sebanyak 5 kali
## [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5
rep(1:5, each=2, 5) # Mengulang setiap elemen vektor 1 hingga 5 sebanyak 2 kali, dan seluruhnya diulang 5 kali
## [1] 1 1 2 2 3 3 4 4 5 5 1 1 2 2 3 3 4 4 5 5 1 1 2 2 3 3 4 4 5 5 1 1 2 2 3 3 4 4
## [39] 5 5 1 1 2 2 3 3 4 4 5 5
rep(seq(0,10,length=6),times = 3)
## [1] 0 2 4 6 8 10 0 2 4 6 8 10 0 2 4 6 8 10
rep(seq(0,10,length=6),each = 2, times = 3)
## [1] 0 0 2 2 4 4 6 6 8 8 10 10 0 0 2 2 4 4 6 6 8 8 10 10 0
## [26] 0 2 2 4 4 6 6 8 8 10 10
grup <- rep(c("Kontrol", "Perlakuan"), each = 10)
waktu <- rep(1:10, times = 2)
cbind(grup, waktu)
## grup waktu
## [1,] "Kontrol" "1"
## [2,] "Kontrol" "2"
## [3,] "Kontrol" "3"
## [4,] "Kontrol" "4"
## [5,] "Kontrol" "5"
## [6,] "Kontrol" "6"
## [7,] "Kontrol" "7"
## [8,] "Kontrol" "8"
## [9,] "Kontrol" "9"
## [10,] "Kontrol" "10"
## [11,] "Perlakuan" "1"
## [12,] "Perlakuan" "2"
## [13,] "Perlakuan" "3"
## [14,] "Perlakuan" "4"
## [15,] "Perlakuan" "5"
## [16,] "Perlakuan" "6"
## [17,] "Perlakuan" "7"
## [18,] "Perlakuan" "8"
## [19,] "Perlakuan" "9"
## [20,] "Perlakuan" "10"
# Membuat data x dan y
x <- c(3, 4, 5, 6) # Membuat vektor x
y <- c(2, 3, 4, 5, 6, 6) # Membuat vektor y
# Menghitung nilai statistik dasar
min(x) # Menghitung nilai minimum dari vektor x
## [1] 3
max(y) # Menghitung nilai maksimum dari vektor y
## [1] 6
mean(x) # Menghitung rata-rata dari vektor x
## [1] 4.5
var(y) # Menghitung variansi dari vektor y
## [1] 2.666667
cor(x, y[1:length(x)]) # Menghitung korelasi antara vektor x dan y (panjang harus sama)
## [1] 1
# Menentukan range (jangkauan nilai)
range(x) # Menghitung range dari vektor x
## [1] 3 6
range(y) # Menghitung range dari vektor y
## [1] 2 6
# Simulasi pelemparan koin (0 = gambar, 1 = angka)
set.seed(11)
sample(0:1,100, replace = TRUE) # Simulasi pelemparan koin sebanyak 30 kali
## [1] 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 1
## [38] 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 1 0
## [75] 1 1 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 0 0 0 1 0 0 0 1
# Simulasi pengambilan sampel huruf "A" dan "G" sebanyak 15 kali
set.seed(123)
sample(c("A", "G"), 15, replace = TRUE) # Simulasi pengambilan sampel huruf "A" dan "G"
## [1] "A" "A" "A" "G" "A" "G" "G" "G" "A" "A" "G" "G" "G" "A" "G"
set.seed(1)
# Simulasi pelemparan dadu sebanyak 30 kali
sample(1:6, 30, replace = TRUE) # Simulasi pelemparan dadu sebanyak 30 kali
## [1] 1 4 1 2 5 3 6 2 3 3 1 5 5 2 6 6 2 1 5 5 1 1 6 5 5 2 2 6 1 4
Agar Mean = 96 dan minimal 4 baris, maka total nilai adalah = 96*4 = 384.Artinya, jumlah keseluruhan nilai harus sama dengan 384 agar rata-ratanya tepat 96.
# Membuat dataframe
data_nilai <- data.frame(
Nama = c("Andi", "Budi", "Citra", "Dewi"),
Nilai = c(95, 97, 96, 96)
)
# Mengecek mean
mean(data_nilai$Nilai)
## [1] 96
# Menampilkan ringkasan statistik
summary(data_nilai)
## Nama Nilai
## Length:4 Min. :95.00
## Class :character 1st Qu.:95.75
## Mode :character Median :96.00
## Mean :96.00
## 3rd Qu.:96.25
## Max. :97.00
Berdasarkan hasil di atas, dapat diketahui bahwa mean tepat sebesar 96 dengan minimal 4 baris.Sehingga, dataframe tepat sesuai dengan ketentuan soal.
# Membuat vektor kosong
x <- numeric(12)
# Nilai awal
x[1] <- 4
# Pola operasi
pola <- c("+3", "*2", "-1")
# Perulangan
for (i in 2:12) {
aturan <- pola[(i - 2) %% length(pola) + 1]
if (aturan == "+3") x[i] <- x[i-1] + 3
if (aturan == "*2") x[i] <- x[i-1] * 2
if (aturan == "-1") x[i] <- x[i-1] - 1
}
x
## [1] 4 7 14 13 16 32 31 34 68 67 70 140
Untuk membentuk satu vektor dengan hasil akhir sesuai soal, ditentukan terlebih dahulu pola dasarnya, yakni “0 0 2 2 4 4 6 6” yang kemudian diulang sebanyak 3 kali.
# Membuat pola dasar
pola_dasar <- rep(seq(0, 6, by = 2), each = 2)
# Mengulang 3 kali
hasil <- rep(pola_dasar, times = 3)
hasil
## [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
set.seed(123)
simulasi <- sample(
c(0,1),
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
# Menghitung frekuensi dan proporsi
table(simulasi)
## simulasi
## 0 1
## 17 13
prop.table(table(simulasi))
## simulasi
## 0 1
## 0.5666667 0.4333333
Berdasarkan soal, probabilitas yang ditentukan adalah: - P(0) = 0.45 - P(1) = 0.55
Namun pada hasil simulasi: - P̂(0) = 0.5667 - P̂(1) = 0.4333 Hasil ini tidak sama persis dengan probabilitas teoritis karena jumlah percobaan hanya 30 kali (relatif kecil) dan simulasi bersifat acak. Jadi, bisa disimpulkan bahwa simulasi berhasil dilakukan menggunakan fungsi sample() dengan probabilitas yang telah ditentukan.
# Membuat dataframe penjualan
data_penjualan <- data.frame(
Hari = c("Senin", "Selasa", "Rabu", "Kamis"),
Jumlah_Produk_Terjual = c(20, 15, 25, 18),
Harga_Satuan = c(10000, 10000, 10000, 10000)
)
# Menghitung Total Pendapatan
data_penjualan$Total_Pendapatan <-
data_penjualan$Jumlah_Produk_Terjual *
data_penjualan$Harga_Satuan
# Menampilkan dataframe
data_penjualan
## Hari Jumlah_Produk_Terjual Harga_Satuan Total_Pendapatan
## 1 Senin 20 10000 200000
## 2 Selasa 15 10000 150000
## 3 Rabu 25 10000 250000
## 4 Kamis 18 10000 180000
# Menampilkan summary
summary(data_penjualan)
## Hari Jumlah_Produk_Terjual Harga_Satuan Total_Pendapatan
## Length:4 Min. :15.00 Min. :10000 Min. :150000
## Class :character 1st Qu.:17.25 1st Qu.:10000 1st Qu.:172500
## Mode :character Median :19.00 Median :10000 Median :190000
## Mean :19.50 Mean :10000 Mean :195000
## 3rd Qu.:21.25 3rd Qu.:10000 3rd Qu.:212500
## Max. :25.00 Max. :10000 Max. :250000
Interpretasi Output 🔹 Kolom Hari - Length = 4 → terdapat 4 data. - Class = character → bertipe teks.
🔹 Jumlah_Produk_Terjual - Minimum = 15 (penjualan terendah terjadi pada Selasa) - Maximum = 25 (penjualan tertinggi terjadi pada Rabu) - Mean = 19.5 → rata-rata produk terjual per hari adalah sekitar 19–20 unit - Median = 19 → nilai tengah distribusi penjualan
🔹 Harga_Satuan - Semua nilai = 10000 - Karena nilainya sama, maka Min, Max, Mean, dan Median semuanya 10000.
🔹 Total_Pendapatan - Minimum = 150000 - Maximum = 250000 - Mean = 195000 → rata-rata pendapatan harian - Median = 190000
Ini menunjukkan bahwa pendapatan harian UMKM berkisar antara 150.000 hingga 250.000 rupiah.