Rangkuman Materi
Tipe Objek Data
R mempunyai beberapa jenis mode objek dasar, atau disebut sebagai “atomic” class dari objek, yaitu:
character, misalnya "ipb"
, "mahasiswa"
, "statistika"
numeric, misalnya 12, 2.3
, 1.2e-2
complex, misalnya 1.2e6+2i
logical, misalnya T
, F
, TRUE
, FALSE
Objek di R
Terdapat beberapa tipe objek data standar dalam R, yaitu:
Vector: tipe sederhana dari objek data dalam R di mana setiap elemennya mempunyai mode yang sama
Factor: vektor dengan anggota/elemennya berupa kategori
Matrix: vektor yang berdimensi dua yaitu baris dan kolom
Array: tipe objek yang dapat menyimpan data lebih dari dua dimensi
Data frame: objek yang menyimpan data dalam bentuk tabular (baris dan kolom)
List: vektor dengan anggota/elemennya berupa objek. Mode dari elemen list boleh berbeda-beda

Vector
v_num <- c(1.5, 2.3, 5.4, 3.3)
v_seq <- seq(1, 10, by = 2)
v_rep <- rep(c("A", "B"), times = 3)
labs <- paste(c("X", "Y"), 1:6, sep = "")
v_num
[1] "A" "B" "A" "B" "A" "B"
[1] "X1" "Y2" "X3" "Y4" "X5" "Y6"
Matrix
m <- matrix(1:9, nrow = 3, ncol = 3)
v <- 1:6
dim(v) <- c(2, 3)
m
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
Array
arr <- array(1:24, dim = c(3, 4, 2))
arr
, , 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
Factor
warna <- factor(c("merah", "biru", "merah", "hijau"))
warna
[1] merah biru merah hijau
Levels: biru hijau merah
List
my_list <- list(angka = 1:3, teks = c("A","B"), logis = TRUE)
my_list
$angka
[1] 1 2 3
$teks
[1] "A" "B"
$logis
[1] TRUE
Data Frame
df <- data.frame(
nama = c("Ani","Budi","Cici"),
umur = c(21, 22, 20),
lulus = c(TRUE, FALSE, TRUE)
)
df
nama umur lulus
1 Ani 21 TRUE
2 Budi 22 FALSE
3 Cici 20 TRUE
Pengolahan Objek
Operasi Aljabar Vektor
x <- c(2,4,6); y <- c(1,3,5)
x + y
Operasi Dasar String
nchar()
→ menghitung jumlah karakter
substring(x, start, stop)
s <- "Institut Pertanian Bogor"
nchar(s)
Operasi Matriks
# 1. Membuat matriks 2x2
M <- matrix(c(1, 2, 3, 4), nrow = 2, byrow = TRUE)
M
[,1] [,2]
[1,] 1 2
[2,] 3 4
[,1] [,2]
[1,] 1 3
[2,] 2 4
# 3. Perkalian matriks
A <- matrix(c(1, 2, 3, 4), nrow = 2)
B <- matrix(c(2, 0, 1, 2), nrow = 2)
A %*% B
[,1] [,2]
[1,] 2 7
[2,] 4 10
# 4. Matriks diagonal
diag(3)
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
# 5. Inverse matriks
solve(M)
[,1] [,2]
[1,] -2.0 1.0
[2,] 1.5 -0.5
[,1] [,2]
[1,] 1 1.110223e-16
[2,] 0 1.000000e+00
# 6. Nilai & vektor eigen
eigen(M)
eigen() decomposition
$values
[1] 5.3722813 -0.3722813
$vectors
[,1] [,2]
[1,] -0.4159736 -0.8245648
[2,] -0.9093767 0.5657675
Struktur Kendali
Kondisional
x <- 5
if(x > 0){
print("positif")
} else {
print("nol/negatif")
}
ifelse()
untuk vektor:
v <- -2:2
ifelse(v > 0, "positif", "non-positif")
[1] "non-positif" "non-positif" "non-positif" "positif" "positif"
Looping
for
a <- 0
for(i in 1:5){
a <- a + i
print(a)
}
[1] 1
[1] 3
[1] 6
[1] 10
[1] 15
while
i <- 1; z <- 1
while(z < 15){
z <- z + i
print(z)
i <- i + 1
}
[1] 2
[1] 4
[1] 7
[1] 11
[1] 16
repeat
i <- 1; z <- 1
repeat{
z <- z + i
print(z)
i <- i + 1
if(z > 15) break
}
[1] 2
[1] 4
[1] 7
[1] 11
[1] 16
Latihan Soal
Buat sebuah vektor berisi bilangan genap dari 2 sampai 20. Hitung jumlah elemen dan rata-ratanya.
Buat matriks 3×3 berisi angka 1 sampai 9. Tampilkan:
- Transpose-nya
- Determinannya
Diketahui string:
x <- "Pemrograman Statistik R"
- Hitung jumlah karakternya
- Ambil kata
"Statistik"
dengan fungsi substring
Buat data.frame
dengan kolom: Nama
, Umur
, Nilai
. Isi dengan minimal 3 baris data. Tampilkan hanya baris dengan Nilai >= 80
.
Diberikan vektor:
Lakukan a * b
dan jelaskan kenapa hasilnya demikian.
Buat kode yang membaca satu nilai bilangan bulat x
. Jika:
x > 0
cetak “positif”
x < 0
cetak “negatif”
x = 0
cetak “nol”
Gunakan for
untuk menghitung jumlah kuadrat dari 1 sampai 10. (Hint: hasil akhir = 1²+2²+…+10²).
Gunakan while
untuk menampilkan deret Fibonacci pertama 10 suku.
Gunakan repeat
untuk mencari bilangan bulat terkecil yang jika dipangkatkan 2 melebihi 200.
Buatlah sebuah program R dengan ketentuan berikut:
Bentuk sebuah data.frame
berisi 5 orang dengan kolom Nama
, Nilai
.
Gunakan ifelse
untuk menambahkan kolom baru bernama Kategori
dengan aturan:
- Nilai ≥ 85 → `"A"`
- Nilai 70–84 → `"B"`
- Nilai \< 70 → `"C"`
- Hitung rata-rata nilai tiap kategori.
Referensi: rpubs.com/alfanugraha/r-basic