# Penjumlahan: Menambahkan 2 dan 3, hasilnya 5
2 + 3
## [1] 5
# Pengurangan: Mengurangi 5 dengan 1, hasilnya 4
5 - 1
## [1] 4
# Perkalian: Mengalikan 4 dengan 2, hasilnya 8
4 * 2
## [1] 8
# Pembagian: Membagi 10 dengan 2, hasilnya 5
10 / 2
## [1] 5
# Pangkat: Menghitung 2 pangkat 3, hasilnya 8
2^3
## [1] 8
# Membuat variabel 'a' dan mengisinya dengan nilai 10
a <- 10
# Membuat variabel 'b' dan mengisinya dengan nilai 5
b <- 5
# Membuat variabel 'c' yang berisi hasil penjumlahan 'a' dan 'b'
c <- a + b
# Menampilkan nilai dari variabel 'c'
c
## [1] 15
# Membuat vektor numerik dengan nilai 1 hingga 5
vektor <- c(1, 2, 3, 4, 5)
# Menampilkan isi vektor
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"
# Mengubah vektor karakter menjadi faktor
warna_factor <- factor(warna)
str(warna_factor)
## Factor w/ 3 levels "Biru","Hijau",..: 3 1 2 3 1 2 3
# Menampilkan struktur dari faktor 'warna_factor'
str(warna_factor)
## Factor w/ 3 levels "Biru","Hijau",..: 3 1 2 3 1 2 3
# Menampilkan level atau kategori unik dalam faktor
levels(warna_factor)
## [1] "Biru" "Hijau" "Merah"
# Menampilkan frekuensi masing-masing kategori dalam faktor
table(warna_factor)
## 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
# Menampilkan seluruh isi list
print(data_list)
## $angka
## [1] 10 20 30 40
##
## $teks
## [1] "A" "B" "C"
##
## $kategori
## [1] Baik Sedang Buruk
## Levels: Baik Buruk Sedang
# Mengakses elemen 'angka' dalam list
data_list$angka
## [1] 10 20 30 40
# Mengakses elemen kedua dalam list (vektor 'teks')
data_list[[2]]
## [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
)
# Menampilkan seluruh isi dataframe
print(data_karyawan)
## Nama Usia Pekerjaan
## 1 Andi 25 Pegawai
## 2 Budi 30 Wirausaha
## 3 Citra 27 Mahasiswa
## 4 Dewi 35 Pegawai
## 5 Tika 28 Pegawai
# Menampilkan ringkasan statistik dari dataframe
summary(data_karyawan)
## 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
# Membuat array dengan dimensi 3x4x2
array_data <- array(1:24, dim = c(3, 4, 2))
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
# Menampilkan isi array
print(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
# Menampilkan dimensi dari array
dim(array_data)
## [1] 3 4 2
# Membuat vektor dengan beberapa nilai NA
nilai <- c(90, 85, NA, 75, 80, NA, 95)
nilai
## [1] 90 85 NA 75 80 NA 95
# Membuat sequence dari 0 hingga 10 dengan 5 elemen
x1 <- seq(0, 10, length=5)
x1
## [1] 0.0 2.5 5.0 7.5 10.0
# Membuat deret angka dengan 6 elemen
x2 <- seq(0,10,length=6)
x2
## [1] 0 2 4 6 8 10
# Membuat deret angka dengan 7 elemen
x3 <- seq(0,10,length=7)
x3
## [1] 0.000000 1.666667 3.333333 5.000000 6.666667 8.333333 10.000000
# Membuat deret angka dengan 10 elemen
x3 <- seq(0,15,length=15)
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
# panjang barisan
x4 <- numeric(10)
# nilai awal
x4[1] <- 2
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
# Membulatkan nilai dalam 'x3' ke bilangan bulat terdekat
round(x3)
## [1] 0 1 2 3 4 5 6 8 9 10 11 12 13 14 15
# Membulatkan nilai dalam 'x3' ke bawah
floor(x3)
## [1] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 15
# Membulatkan nilai dalam 'x3' ke atas
ceiling(x3)
## [1] 0 2 3 4 5 6 7 8 9 10 11 12 13 14 15
# Mengulang vektor "A", "B", "C" sebanyak 5 kali
rep(c("A", "B", "C"), times=5)
## [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"
# Mengulang setiap elemen vektor "A", "B", "C" sebanyak 5 kali
rep(c("A", "B", "C"), each=5)
## [1] "A" "A" "A" "A" "A" "B" "B" "B" "B" "B" "C" "C" "C" "C" "C"
# Mengulang setiap elemen vektor "A", "B", "C" sebanyak 2 kali, dan seluruhnya diulang 5 kali
rep(c("A", "B", "C"), each=2, times=5)
## [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"
# Mengulang vektor 1 hingga 5 sebanyak 5 kali
rep(1:5, 5)
## [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
# Mengulang setiap elemen vektor 1 hingga 5 sebanyak 5 kali
rep(1:5, each=5)
## [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
# Mengulang setiap elemen vektor 1 hingga 5 sebanyak 2 kali, dan seluruhnya diulang 5 kali
rep(1:5, each=2, 5)
## [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
#1. Buat dataframe dengan kolom Nama dan Nilai (minimal 4 baris). Atur nilai pada kolom Nilai sehingga rata-rata (mean) dari nilai tersebut adalah 96.Selanjutnya, tampilkan ringkasan statistik dari dataframe tersebut menggunakan fungsi summary().
# Membuat dataframe
data_nilai <- data.frame(
Nama = c("Ani", "Budi", "Citra", "Deni"),
Nilai = c(95, 97, 96, 96)
)
# Mengecek rata-rata
mean(data_nilai$Nilai)
## [1] 96
# Menampilkan summary
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
1. Verifikasi Mean
Hasil ini menunjukkan bahwa nilai yang disusun telah memenuhi ketentuan soal, yaitu memiliki rata rata sebesar 96 2. Variabel Nama - Length: 4 enunjukkan terdapat 4 observasi. - Class: character menunjukkan bahwa variabel ini bertipe teks. - Variabel ini bersifat kategorikal dan berfungsi sebagai identitas atau label individu 3. Variabel Nilai - Kesamaan nilai ukuran pemusatan antara mean dan median menunjukkan bahwa distribusi data relatif simetris dan tidak terdapat penyimpangan ekstrem. - Ukuran penyebaran Minimum = 95 Maximum = 97 Sehingga range = 2 IQR = 96.25 - 95.75 = 0.5
#2. Buat satu barisan sepanjang 12 elemen dengan aturan berulang +3 → ×2 → −1 dengan nilai awal 4.
x <- numeric(12)
x[1] <- 4
pola <- c("+3", "*2", "-1")
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
Pola ini menghasilkan deret yang tidak konstan karena adanya operasi perkalian yang mempercepat pertumbuhan nilai. Secara matematis, deret tersebut bersifat deterministik dan rekursif karena setiap elemen bergantung pada hasil perhitungan sebelumnya. Kesimpulannya, vektor yang terbentuk menunjukkan tren meningkat dengan pola transformasi aritmetika yang konsisten.
#3. Gunakan fungsi seq() dan rep() di R untuk membentuk satu vektor dengan hasil akhir sebagai berikut:0 0 2 2 4 4 6 6 0 0 2 2 4 4 6 6 0 0 2 2 4 4 6 6
# Membuat pola dasar
dasar <- rep(seq(0,6,2), each = 2)
# Mengulang 3 kali
hasil <- rep(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
Pola ini memperlihatkan bahwa setiap bilangan genap dari 0 hingga 6 muncul dua kali berturut-turut sebelum berpindah ke nilai berikutnya, lalu siklus tersebut diulang. Secara matematis, deret ini bersifat periodik dengan panjang periode 8 dan mengikuti pola bilangan genap berurutan yang direplikasi secara sistematis.
#4. Lakukan simulasi pelemparan koin sebanyak 30 kali menggunakan fungsi sample() di R, dengan ketentuan sebagai berikut: - Hasil 0 memiliki peluang kemunculan 45% - Hasil 1 memiliki peluang kemunculan 55%. Gunakan set.seed() agar hasil simulasi dapat direproduksi
set.seed(123)
# Simulasi lempar 3 koin
koin <- sample(c("A","G"), size = 3, replace = TRUE)
# Menghitung banyaknya sisi Angka
X <- sum(koin == "A")
koin
## [1] "A" "A" "A"
X
## [1] 3
Hasil simulasi menunjukkan bahwa ketiga koin yang dilempar menghasilkan sisi “A” (Angka) seluruhnya. Dengan demikian, banyaknya sisi Angka yang muncul adalah 3. Artinya, dalam satu kali percobaan ini diperoleh nilai maksimum untuk peubah acak X, yaitu semua koin menunjukkan Angka. Kejadian ini merupakan salah satu dari delapan kemungkinan hasil dalam ruang sampel dan memiliki peluang sebesar 0.125 atau 12.5% pada koin yang seimbang.
#5. Seorang pemilik UMKM mencatat data penjualan selama beberapa hari. Informasi yang dikumpulkan meliputi Hari, Jumlah Produk Terjual, Harga Satuan, Total Pendapatan. Buat sebuah dataframe dengan keempat kolom tersebut (minimal 4 baris), lalu tampilkan summary().
# 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
Data menunjukkan penjualan selama empat hari dengan harga satuan tetap sebesar Rp10.000. Rata-rata jumlah produk terjual adalah 19,5 unit per hari, dengan penjualan terendah 15 unit dan tertinggi 25 unit. Karena harga tidak berubah, variasi total pendapatan (rata-rata Rp195.000 per hari) sepenuhnya dipengaruhi oleh jumlah produk yang terjual. Secara umum, penjualan dan pendapatan relatif stabil selama periode pengamatan.