Operasi Dasar

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

Pembuatan Variabel

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

Struktur Data Dasar

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

Membuat Vektor Karakter

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"

Mengonversi ke Faktor

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

Menampilkan Struktur Faktor

str(warna_factor)  # Menampilkan struktur dari faktor 'warna_factor'
##  Factor w/ 3 levels "Biru","Hijau",..: 3 1 2 3 1 2 3

Menampilkan Level yang Ada dalam Faktor

levels(warna_factor)  # Menampilkan level atau kategori unik dalam faktor
## [1] "Biru"  "Hijau" "Merah"

Frekuensi Tiap Kategori

table(warna_factor)  # Menampilkan frekuensi masing-masing kategori dalam faktor
## warna_factor
##  Biru Hijau Merah 
##     2     2     3

Membuat List yang Berisi Berbagai Jenis Data

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 Isi List

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

Mengakses Elemen List

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"

Membuat Dataframe

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 Dataframe

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

Menampilkan Ringkasan Dataframe

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

Membuat Array 3 Dimensi

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

Menampilkan Array

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

Menampilkan Dimensi Array

dim(array_data)  # Menampilkan dimensi dari array
## [1] 3 4 2

Membuat Vektor dengan Nilai NA

nilai <- c(90, 85, NA, 75, 80, NA, 95)  # Membuat vektor dengan beberapa nilai NA
nilai
## [1] 90 85 NA 75 80 NA 95

Sequence Generation

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

Pembulatan Pecahan Desimal

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

Replicate Elements of Vectors and Lists

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"

Fungsi Dasar Statistika pada R

# 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 Sampel Acak

# 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

Latihan

#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