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
#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
Nama <- c("Dinda", "Icha", "Ayu", "Ajeng")
Nilai <- c(95, 96, 97, 96) # rata-rata = 96
data_nilai <- data.frame(Nama, Nilai)
# 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
#2. Buat satu barisan sepanjang 12 elemen dengan aturan berulang +3 → ×2 → −1 dengan nilai awal 4.
# Membuat barisan
barisan <- numeric(12)
barisan[1] <- 4
for(i in 2:12){
if((i-1) %% 3 == 1){
barisan[i] <- barisan[i-1] + 3
} else if((i-1) %% 3 == 2){
barisan[i] <- barisan[i-1] * 2
} else {
barisan[i] <- barisan[i-1] - 1
}
}
barisan
## [1] 4 7 14 13 16 32 31 34 68 67 70 140
#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
pola <- rep(seq(0, 6, by = 2), each = 2)
# Mengulang 3 kali
vektor <- rep(pola, times = 3)
vektor
## [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
#4. Lakukan simulasi pelemparan dadu 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) # agar hasil sama setiap dijalankan
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
# Melihat frekuensi hasil
table(simulasi)
## simulasi
## 0 1
## 17 13
#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().
# Data penjualan
Hari <- c("Senin", "Selasa", "Rabu", "Kamis")
Jumlah_Produk <- c(10, 15, 8, 20)
Harga_Satuan <- c(5000, 5000, 5000, 5000)
Total_Pendapatan <- Jumlah_Produk * Harga_Satuan
data_penjualan <- data.frame(
Hari,
Jumlah_Produk,
Harga_Satuan,
Total_Pendapatan
)
# Tampilkan dataframe
data_penjualan
## Hari Jumlah_Produk Harga_Satuan Total_Pendapatan
## 1 Senin 10 5000 50000
## 2 Selasa 15 5000 75000
## 3 Rabu 8 5000 40000
## 4 Kamis 20 5000 100000
# Ringkasan statistik
summary(data_penjualan)
## Hari Jumlah_Produk Harga_Satuan Total_Pendapatan
## Length:4 Min. : 8.00 Min. :5000 Min. : 40000
## Class :character 1st Qu.: 9.50 1st Qu.:5000 1st Qu.: 47500
## Mode :character Median :12.50 Median :5000 Median : 62500
## Mean :13.25 Mean :5000 Mean : 66250
## 3rd Qu.:16.25 3rd Qu.:5000 3rd Qu.: 81250
## Max. :20.00 Max. :5000 Max. :100000