judul <- function(teks) cat("\n====", teks, "====\n")
# 1. OUTPUT & KOMENTAR
judul("1. OUTPUT")
##
## ==== 1. OUTPUT ====
print("Halo, R!")
## [1] "Halo, R!"
cat("Belajar", "R", "itu", "seru\n")
## Belajar R itu seru
cat("Baris 1\nBaris 2\n")
## Baris 1
## Baris 2
message("Ini pesan (keluar di stderr)")
## Ini pesan (keluar di stderr)
print(paste("Gabung", "string", sep = "-"))
## [1] "Gabung-string"
print(paste0("Tanpa", "spasi"))
## [1] "Tanpaspasi"
print(sprintf("Nama: %s, Umur: %d, IPK: %.2f", "Fauzan", 21L, 3.75))
## [1] "Nama: Fauzan, Umur: 21, IPK: 3.75"
format(1234567.891, big.mark = ",", nsmall = 2)
## [1] "1,234,567.89"
# 2. VARIABEL & TIPE DATA
judul("2. VARIABEL & TIPE DATA")
##
## ==== 2. VARIABEL & TIPE DATA ====
x <- 10 # numeric
y <- 5L # integer
z <- "teks" # character
b <- TRUE # logical
k <- 3 + 2i # complex
r <- charToRaw("A")# raw
print(class(x)); print(class(y)); print(class(z))
## [1] "numeric"
## [1] "integer"
## [1] "character"
print(class(b)); print(class(k)); print(class(r))
## [1] "logical"
## [1] "complex"
## [1] "raw"
print(typeof(x)); print(is.numeric(x)); print(is.character(z))
## [1] "double"
## [1] TRUE
## [1] TRUE
# konversi tipe
as.integer("12")
## [1] 12
as.numeric("3.14")
## [1] 3.14
as.character(100)
## [1] "100"
as.logical("TRUE")
## [1] TRUE
as.logical(0)
## [1] FALSE
# nilai khusus
NA; NULL; NaN; Inf; -Inf
## [1] NA
## NULL
## [1] NaN
## [1] Inf
## [1] -Inf
is.na(NA); is.null(NULL); is.nan(NaN); is.finite(10)
## [1] TRUE
## [1] TRUE
## [1] TRUE
## [1] TRUE
# assign & get
assign("var_dinamis", 99)
get("var_dinamis")
## [1] 99
ls() # daftar objek di environment
## [1] "b" "judul" "k" "r" "var_dinamis"
## [6] "x" "y" "z"
rm(var_dinamis) # hapus objek
# 3. OPERATOR
judul("3. OPERATOR")
##
## ==== 3. OPERATOR ====
a <- 17; c2 <- 5
cat("Tambah :", a + c2, "\n")
## Tambah : 22
cat("Kurang :", a - c2, "\n")
## Kurang : 12
cat("Kali :", a * c2, "\n")
## Kali : 85
cat("Bagi :", a / c2, "\n")
## Bagi : 3.4
cat("Pangkat :", a ^ 2, "\n")
## Pangkat : 289
cat("Modulus :", a %% c2, "\n")
## Modulus : 2
cat("Bagi int:", a %/% c2, "\n")
## Bagi int: 3
# perbandingan
a == c2; a != c2; a > c2; a < c2; a >= c2; a <= c2
## [1] FALSE
## [1] TRUE
## [1] TRUE
## [1] FALSE
## [1] TRUE
## [1] FALSE
# logika
TRUE & FALSE; TRUE | FALSE; !TRUE
## [1] FALSE
## [1] TRUE
## [1] FALSE
xor(TRUE, FALSE)
## [1] TRUE
isTRUE(TRUE)
## [1] TRUE
any(c(TRUE, FALSE)); all(c(TRUE, FALSE))
## [1] TRUE
## [1] FALSE
# %in%
3 %in% c(1, 2, 3)
## [1] TRUE
# 4. VECTOR
judul("4. VECTOR")
##
## ==== 4. VECTOR ====
v <- c(5, 3, 8, 1, 9, 2)
print(v)
## [1] 5 3 8 1 9 2
print(length(v))
## [1] 6
print(v[2]) # elemen ke-2
## [1] 3
print(v[c(1, 3)]) # elemen 1 dan 3
## [1] 5 8
print(v[-1]) # kecuali elemen 1
## [1] 3 8 1 9 2
print(v[v > 4]) # filter kondisi
## [1] 5 8 9
print(sort(v))
## [1] 1 2 3 5 8 9
print(sort(v, decreasing = TRUE))
## [1] 9 8 5 3 2 1
print(order(v))
## [1] 4 6 2 1 3 5
print(rev(v))
## [1] 2 9 1 8 3 5
print(which(v > 4))
## [1] 1 3 5
print(which.max(v)); print(which.min(v))
## [1] 5
## [1] 4
print(v * 2)
## [1] 10 6 16 2 18 4
1:10
## [1] 1 2 3 4 5 6 7 8 9 10
seq(1, 10, by = 2)
## [1] 1 3 5 7 9
seq(0, 1, length.out = 5)
## [1] 0.00 0.25 0.50 0.75 1.00
rep(c("a", "b"), times = 3)
## [1] "a" "b" "a" "b" "a" "b"
rep(c("a", "b"), each = 2)
## [1] "a" "a" "b" "b"
append(v, 100, after = 2)
## [1] 5 3 100 8 1 9 2
head(v, 3); tail(v, 3)
## [1] 5 3 8
## [1] 1 9 2
unique(c(1, 1, 2, 3, 3))
## [1] 1 2 3
duplicated(c(1, 1, 2, 3, 3))
## [1] FALSE TRUE FALSE FALSE TRUE
cumsum(v); cumprod(1:5)
## [1] 5 8 16 17 26 28
## [1] 1 2 6 24 120
diff(v)
## [1] -2 5 -7 8 -7
names(v) <- letters[1:6]
print(v)
## a b c d e f
## 5 3 8 1 9 2
# 5. MATRIX
judul("5. MATRIX")
##
## ==== 5. MATRIX ====
m <- matrix(1:9, nrow = 3, ncol = 3, byrow = TRUE)
print(m)
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
## [3,] 7 8 9
dim(m); nrow(m); ncol(m)
## [1] 3 3
## [1] 3
## [1] 3
m[2, 3]; m[1, ]; m[, 2]
## [1] 6
## [1] 1 2 3
## [1] 2 5 8
t(m) # transpose
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
m %*% m # perkalian matriks
## [,1] [,2] [,3]
## [1,] 30 36 42
## [2,] 66 81 96
## [3,] 102 126 150
m * 2 # perkalian elemen
## [,1] [,2] [,3]
## [1,] 2 4 6
## [2,] 8 10 12
## [3,] 14 16 18
diag(3) # matriks identitas
## [,1] [,2] [,3]
## [1,] 1 0 0
## [2,] 0 1 0
## [3,] 0 0 1
det(matrix(c(2, 1, 1, 3), 2))
## [1] 5
solve(matrix(c(2, 1, 1, 3), 2)) # invers
## [,1] [,2]
## [1,] 0.6 -0.2
## [2,] -0.2 0.4
rbind(m, 10:12)
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
## [3,] 7 8 9
## [4,] 10 11 12
cbind(m, c(0, 0, 0))
## [,1] [,2] [,3] [,4]
## [1,] 1 2 3 0
## [2,] 4 5 6 0
## [3,] 7 8 9 0
rowSums(m); colSums(m); rowMeans(m); colMeans(m)
## [1] 6 15 24
## [1] 12 15 18
## [1] 2 5 8
## [1] 4 5 6
rownames(m) <- c("A", "B", "C")
colnames(m) <- c("X", "Y", "Z")
print(m)
## X Y Z
## A 1 2 3
## B 4 5 6
## C 7 8 9
# 6. ARRAY
judul("6. ARRAY")
##
## ==== 6. ARRAY ====
arr <- array(1:24, dim = c(3, 4, 2))
print(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
arr[2, 3, 1]
## [1] 8
dim(arr)
## [1] 3 4 2
# 7. LIST
judul("7. LIST")
##
## ==== 7. LIST ====
lst <- list(nama = "Fauzan", umur = 21, hobi = c("coding", "gaming"),
nilai = list(R = 90, Python = 85))
print(lst)
## $nama
## [1] "Fauzan"
##
## $umur
## [1] 21
##
## $hobi
## [1] "coding" "gaming"
##
## $nilai
## $nilai$R
## [1] 90
##
## $nilai$Python
## [1] 85
lst$nama
## [1] "Fauzan"
lst[["umur"]]
## [1] 21
lst$hobi[2]
## [1] "gaming"
lst$nilai$R
## [1] 90
lst$kampus <- "UNMUL" # tambah elemen
lst$umur <- NULL # hapus elemen
names(lst)
## [1] "nama" "hobi" "nilai" "kampus"
length(lst)
## [1] 4
str(lst)
## List of 4
## $ nama : chr "Fauzan"
## $ hobi : chr [1:2] "coding" "gaming"
## $ nilai :List of 2
## ..$ R : num 90
## ..$ Python: num 85
## $ kampus: chr "UNMUL"
unlist(list(a = 1, b = 2, c = 3))
## a b c
## 1 2 3
# 8. DATA FRAME
judul("8. DATA FRAME")
##
## ==== 8. DATA FRAME ====
df <- data.frame(
nama = c("Ani", "Budi", "Citra", "Dedi", "Eka"),
umur = c(20, 21, 19, 22, 20),
nilai = c(85, 90, 78, 88, 95),
stringsAsFactors = FALSE
)
print(df)
## nama umur nilai
## 1 Ani 20 85
## 2 Budi 21 90
## 3 Citra 19 78
## 4 Dedi 22 88
## 5 Eka 20 95
str(df)
## 'data.frame': 5 obs. of 3 variables:
## $ nama : chr "Ani" "Budi" "Citra" "Dedi" ...
## $ umur : num 20 21 19 22 20
## $ nilai: num 85 90 78 88 95
summary(df)
## nama umur nilai
## Length :5 Min. :19.0 Min. :78.0
## N.unique :5 1st Qu.:20.0 1st Qu.:85.0
## N.blank :0 Median :20.0 Median :88.0
## Min.nchar:3 Mean :20.4 Mean :87.2
## Max.nchar:5 3rd Qu.:21.0 3rd Qu.:90.0
## Max. :22.0 Max. :95.0
dim(df); nrow(df); ncol(df)
## [1] 5 3
## [1] 5
## [1] 3
names(df); colnames(df)
## [1] "nama" "umur" "nilai"
## [1] "nama" "umur" "nilai"
head(df, 3); tail(df, 2)
## nama umur nilai
## 1 Ani 20 85
## 2 Budi 21 90
## 3 Citra 19 78
## nama umur nilai
## 4 Dedi 22 88
## 5 Eka 20 95
df$nama
## [1] "Ani" "Budi" "Citra" "Dedi" "Eka"
df[2, ]
## nama umur nilai
## 2 Budi 21 90
df[, "nilai"]
## [1] 85 90 78 88 95
df[df$nilai > 85, ]
## nama umur nilai
## 2 Budi 21 90
## 4 Dedi 22 88
## 5 Eka 20 95
subset(df, umur > 19, select = c(nama, nilai))
## nama nilai
## 1 Ani 85
## 2 Budi 90
## 4 Dedi 88
## 5 Eka 95
df$lulus <- ifelse(df$nilai >= 80, "Lulus", "Remedial")
df[order(-df$nilai), ]
## nama umur nilai lulus
## 5 Eka 20 95 Lulus
## 2 Budi 21 90 Lulus
## 4 Dedi 22 88 Lulus
## 1 Ani 20 85 Lulus
## 3 Citra 19 78 Remedial
df <- rbind(df, data.frame(nama = "Fani", umur = 21, nilai = 82, lulus = "Lulus"))
df <- df[, c("nama", "umur", "nilai")] # pilih kolom
mean(df$nilai)
## [1] 86.33333
aggregate(nilai ~ umur, data = df, FUN = mean)
## umur nilai
## 1 19 78
## 2 20 90
## 3 21 86
## 4 22 88
table(df$umur)
##
## 19 20 21 22
## 1 2 2 1
with(df, tapply(nilai, umur, mean))
## 19 20 21 22
## 78 90 86 88
# merge
df2 <- data.frame(nama = c("Ani", "Budi", "Citra"),
jurusan = c("IF", "SI", "TI"))
merge(df, df2, by = "nama")
## nama umur nilai jurusan
## 1 Ani 20 85 IF
## 2 Budi 21 90 SI
## 3 Citra 19 78 TI
# 9. FACTOR
judul("9. FACTOR")
##
## ==== 9. FACTOR ====
gender <- factor(c("L", "P", "P", "L", "P"), levels = c("L", "P"),
labels = c("Laki-laki", "Perempuan"))
print(gender)
## [1] Laki-laki Perempuan Perempuan Laki-laki Perempuan
## Levels: Laki-laki Perempuan
levels(gender)
## [1] "Laki-laki" "Perempuan"
table(gender)
## gender
## Laki-laki Perempuan
## 2 3
as.integer(gender)
## [1] 1 2 2 1 2
nlevels(gender)
## [1] 2
# 10. STRING
judul("10. STRING")
##
## ==== 10. STRING ====
s <- "Belajar Bahasa R itu Menyenangkan"
nchar(s)
## [1] 33
toupper(s); tolower(s)
## [1] "BELAJAR BAHASA R ITU MENYENANGKAN"
## [1] "belajar bahasa r itu menyenangkan"
substr(s, 1, 7)
## [1] "Belajar"
strsplit(s, " ")[[1]]
## [1] "Belajar" "Bahasa" "R" "itu" "Menyenangkan"
gsub("R", "Python", s)
## [1] "Belajar Bahasa Python itu Menyenangkan"
sub("a", "A", s)
## [1] "BelAjar Bahasa R itu Menyenangkan"
grepl("Bahasa", s)
## [1] TRUE
grep("a", c("apel", "jeruk", "mangga"))
## [1] 1 3
regmatches(s, regexpr("[A-Z]\\w+", s))
## [1] "Belajar"
trimws(" spasi ")
## [1] "spasi"
sprintf("%05d", 42)
## [1] "00042"
rev(strsplit("R", "")[[1]])
## [1] "R"
paste(rev(strsplit("kasur", "")[[1]]), collapse = "") # balik string
## [1] "rusak"
startsWith(s, "Belajar"); endsWith(s, "an")
## [1] TRUE
## [1] TRUE
casefold("ABC", upper = FALSE)
## [1] "abc"
chartr("abc", "xyz", "aabbcc")
## [1] "xxyyzz"
toString(1:5)
## [1] "1, 2, 3, 4, 5"
format(Sys.Date(), "%d-%m-%Y")
## [1] "26-10-2026"
# 11. MATEMATIKA & STATISTIK
judul("11. MATEMATIKA & STATISTIK")
##
## ==== 11. MATEMATIKA & STATISTIK ====
abs(-5); sqrt(16); exp(1); log(10); log10(100); log2(8); log(8, base = 2)
## [1] 5
## [1] 4
## [1] 2.718282
## [1] 2.302585
## [1] 2
## [1] 3
## [1] 3
round(3.14159, 2); ceiling(3.2); floor(3.8); trunc(-3.8); signif(123456, 2)
## [1] 3.14
## [1] 4
## [1] 3
## [1] -3
## [1] 120000
sin(pi / 2); cos(0); tan(pi / 4)
## [1] 1
## [1] 1
## [1] 1
factorial(5); choose(5, 2)
## [1] 120
## [1] 10
max(v); min(v); range(v)
## [1] 9
## [1] 1
## [1] 1 9
sum(v); prod(1:5)
## [1] 28
## [1] 120
data_stat <- c(12, 15, 11, 18, 20, 15, 13, 17, 15, 14)
mean(data_stat)
## [1] 15
median(data_stat)
## [1] 15
var(data_stat)
## [1] 7.555556
sd(data_stat)
## [1] 2.748737
quantile(data_stat)
## 0% 25% 50% 75% 100%
## 11.00 13.25 15.00 16.50 20.00
summary(data_stat)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 11.00 13.25 15.00 15.00 16.50 20.00
cor(c(1, 2, 3, 4, 5), c(2, 4, 5, 4, 5))
## [1] 0.7745967
scale(data_stat)[1:3]
## [1] -1.091410 0.000000 -1.455214
modus <- function(x) {
u <- unique(x)
u[which.max(tabulate(match(x, u)))]
}
modus(data_stat)
## [1] 15
# 12. PERCABANGAN
judul("12. PERCABANGAN")
##
## ==== 12. PERCABANGAN ====
nilai <- 82
if (nilai >= 85) {
print("Grade A")
} else if (nilai >= 70) {
print("Grade B")
} else {
print("Grade C")
}
## [1] "Grade B"
ifelse(nilai >= 75, "Lulus", "Tidak Lulus")
## [1] "Lulus"
hari <- "Senin"
hasil <- switch(hari,
"Senin" = "Awal pekan",
"Jumat" = "Akhir pekan kerja",
"Hari biasa")
print(hasil)
## [1] "Awal pekan"
# 13. PERULANGAN
judul("13. PERULANGAN")
##
## ==== 13. PERULANGAN ====
for (i in 1:5) cat("for i =", i, "\n")
## for i = 1
## for i = 2
## for i = 3
## for i = 4
## for i = 5
j <- 1
while (j <= 3) {
cat("while j =", j, "\n")
j <- j + 1
}
## while j = 1
## while j = 2
## while j = 3
n <- 0
repeat {
n <- n + 1
if (n == 2) next # lewati
if (n > 4) break # berhenti
cat("repeat n =", n, "\n")
}
## repeat n = 1
## repeat n = 3
## repeat n = 4
for (buah in c("apel", "jeruk", "mangga")) print(buah)
## [1] "apel"
## [1] "jeruk"
## [1] "mangga"
seq_along(c("a", "b", "c"))
## [1] 1 2 3
# 14. FUNGSI
judul("14. FUNGSI")
##
## ==== 14. FUNGSI ====
kuadrat <- function(x) x^2
print(kuadrat(7))
## [1] 49
luas_persegi_panjang <- function(p, l = 1) {
return(p * l)
}
print(luas_persegi_panjang(4, 5))
## [1] 20
print(luas_persegi_panjang(4))
## [1] 4
hitung <- function(...) {
args <- c(...)
list(jumlah = sum(args), rata2 = mean(args))
}
str(hitung(1, 2, 3, 4))
## List of 2
## $ jumlah: num 10
## $ rata2 : num 2.5
faktorial_rekursif <- function(n) if (n <= 1) 1 else n * faktorial_rekursif(n - 1)
print(faktorial_rekursif(6))
## [1] 720
fibonacci <- function(n) {
f <- numeric(n); f[1:2] <- 1
for (i in 3:n) f[i] <- f[i - 1] + f[i - 2]
f
}
print(fibonacci(10))
## [1] 1 1 2 3 5 8 13 21 34 55
(function(x) x + 1)(5) # fungsi anonim
## [1] 6
sapply(1:5, function(x) x * 2)
## [1] 2 4 6 8 10
# 15. APPLY FAMILY & FUNCTIONAL
judul("15. APPLY FAMILY")
##
## ==== 15. APPLY FAMILY ====
mat <- matrix(1:6, nrow = 2)
apply(mat, 1, sum) # per baris
## [1] 9 12
apply(mat, 2, sum) # per kolom
## [1] 3 7 11
lapply(1:3, function(x) x^2) # hasil list
## [[1]]
## [1] 1
##
## [[2]]
## [1] 4
##
## [[3]]
## [1] 9
sapply(1:3, function(x) x^2) # hasil vector
## [1] 1 4 9
vapply(1:3, function(x) x^2, numeric(1))
## [1] 1 4 9
mapply(function(a, b) a + b, 1:3, 4:6)
## [1] 5 7 9
Map(function(a, b) a * b, 1:3, 4:6)
## [[1]]
## [1] 4
##
## [[2]]
## [1] 10
##
## [[3]]
## [1] 18
Reduce(`+`, 1:5)
## [1] 15
Filter(function(x) x %% 2 == 0, 1:10)
## [1] 2 4 6 8 10
tapply(c(10, 20, 30, 40), c("a", "b", "a", "b"), sum)
## a b
## 40 60
do.call(rbind, list(1:3, 4:6))
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
# 16. INPUT DARI USER
judul("16. INPUT")
##
## ==== 16. INPUT ====
if (interactive()) {
nama_input <- readline(prompt = "Masukkan nama: ")
cat("Halo,", nama_input, "\n")
} else {
cat("(readline() hanya jalan di mode interaktif / RStudio)\n")
}
## (readline() hanya jalan di mode interaktif / RStudio)
# 17. TANGGAL & WAKTU
judul("17. TANGGAL & WAKTU")
##
## ==== 17. TANGGAL & WAKTU ====
Sys.Date()
## [1] "2026-10-26"
Sys.time()
## [1] "2026-10-26 13:50:07 AWST"
tgl <- as.Date("2026-10-26")
format(tgl, "%A, %d %B %Y")
## [1] "Monday, 26 October 2026"
tgl + 30
## [1] "2026-11-25"
as.numeric(as.Date("2026-12-31") - tgl)
## [1] 66
seq(tgl, by = "month", length.out = 3)
## [1] "2026-10-26" "2026-11-26" "2026-12-26"
weekdays(tgl); months(tgl)
## [1] "Monday"
## [1] "October"
# 18. BACA/TULIS FILE
judul("18. FILE I/O")
##
## ==== 18. FILE I/O ====
file_csv <- tempfile(fileext = ".csv")
write.csv(df, file_csv, row.names = FALSE)
data_baca <- read.csv(file_csv)
print(data_baca)
## nama umur nilai
## 1 Ani 20 85
## 2 Budi 21 90
## 3 Citra 19 78
## 4 Dedi 22 88
## 5 Eka 20 95
## 6 Fani 21 82
file_txt <- tempfile(fileext = ".txt")
writeLines(c("baris satu", "baris dua", "baris tiga"), file_txt)
readLines(file_txt)
## [1] "baris satu" "baris dua" "baris tiga"
file.exists(file_csv)
## [1] TRUE
saveRDS(df, tempfile(fileext = ".rds"))
unlink(c(file_csv, file_txt))
getwd()
## [1] "C:/Users/HP/Documents"
# 19. ERROR HANDLING
judul("19. ERROR HANDLING")
##
## ==== 19. ERROR HANDLING ====
hasil <- tryCatch({
log(-1)
}, warning = function(w) {
cat("Warning:", conditionMessage(w), "\n"); NA
}, error = function(e) {
cat("Error:", conditionMessage(e), "\n"); NA
}, finally = {
cat("Selesai tryCatch\n")
})
## Warning: NaNs produced
## Selesai tryCatch
tryCatch(stop("Error buatan sendiri"),
error = function(e) cat("Tertangkap:", conditionMessage(e), "\n"))
## Tertangkap: Error buatan sendiri
try(sqrt("a"), silent = TRUE)
stopifnot(is.numeric(5))
# 20. RANDOM & SAMPLING
judul("20. RANDOM")
##
## ==== 20. RANDOM ====
set.seed(123)
runif(3) # uniform
## [1] 0.2875775 0.7883051 0.4089769
rnorm(3, mean = 0, sd = 1) # normal
## [1] 1.190207 -1.689556 1.239496
sample(1:10, 5) # tanpa pengembalian
## [1] 5 4 6 8 1
sample(c("H", "T"), 5, replace = TRUE)
## [1] "T" "H" "T" "H" "H"
rbinom(5, 10, 0.5)
## [1] 8 7 6 6 9
# 21. GRAFIK DASAR
judul("21. GRAFIK")
##
## ==== 21. GRAFIK ====
png("grafik_dasar.png", width = 1000, height = 800)
par(mfrow = c(2, 2))
plot(1:10, (1:10)^2, type = "b", col = "blue", main = "Line Plot",
xlab = "x", ylab = "x^2")
barplot(c(A = 5, B = 8, C = 3), col = c("red", "green", "blue"),
main = "Bar Plot")
hist(rnorm(200), col = "skyblue", main = "Histogram", xlab = "Nilai")
boxplot(nilai ~ umur, data = df, col = "orange", main = "Boxplot")
dev.off()
## png
## 2
cat("Grafik tersimpan di grafik_dasar.png\n")
## Grafik tersimpan di grafik_dasar.png
# 22. LAIN-LAIN
judul("22. LAIN-LAIN")
##
## ==== 22. LAIN-LAIN ====
is.function(print)
## [1] TRUE
exists("df")
## [1] TRUE
Sys.getenv("HOME")
## [1] "C:\\Users\\HP\\Documents"
R.version.string
## [1] "R version 4.6.1 (2026-06-24 ucrt)"
system.time(for (i in 1:1e5) i^2)
## user system elapsed
## 0 0 0
identical(c(1, 2), c(1, 2))
## [1] TRUE
all.equal(0.1 + 0.2, 0.3)
## [1] TRUE
nchar(Sys.time())
## [1] 16
invisible(gc())
cat("\n=== SELESAI: semua fungsi dasar R sudah dijalankan ===\n")
##
## === SELESAI: semua fungsi dasar R sudah dijalankan ===