# ==========================================
# MATERI: FUNGSI DASAR DALAM R
# TANGGAL: 29 OKTOBER 2026
# ==========================================


# 1. MEMBUAT VEKTOR DAN MENAMPILKAN DATA

data <- c(10, 20, 30, 40, 50)
print(data)
## [1] 10 20 30 40 50
data <- c(1000, 2000, 3000, 4000, 5000)
print(data)
## [1] 1000 2000 3000 4000 5000
# 2. MENGAKSES ELEMEN VEKTOR

data <- c(10, 20, 40, 15, 40)

data[3]
## [1] 40
data[4]
## [1] 15
data[c(1, 3, 4)]
## [1] 10 40 15
data[2:4]
## [1] 20 40 15
# 3. MENGUBAH ELEMEN VEKTOR

data <- c(10, 20, 40, 15, 40)
print(data)
## [1] 10 20 40 15 40
data[3] <- 100
data[4] <- 10000

print(data)
## [1]    10    20   100 10000    40
# 4. MENGHAPUS ELEMEN VEKTOR

skor <- c(10, 40, 45, 30, 80)
print(skor)
## [1] 10 40 45 30 80
skor <- skor[-3]
print(skor)
## [1] 10 40 30 80
skor <- c(10, 40, 45, 30, 80)
skor <- skor[c(-1, -3)]
print(skor)
## [1] 40 30 80
# 5. MENAMPILKAN DATA BERDASARKAN KONDISI

skor <- c(100, 95, 70, 80, 25, 60, 80, 60, 55, 90)
print(skor)
##  [1] 100  95  70  80  25  60  80  60  55  90
skor[skor > 80]
## [1] 100  95  90
skor[skor < 70]
## [1] 25 60 60 55
skor[skor > 60 & skor < 80]
## [1] 70
skor[skor > 80 | skor < 30]
## [1] 100  95  25  90
# 6. MENYARING DATA DAN MENYIMPAN HASILNYA

skor <- c(100, 95, 70, 80, 25, 60, 80, 60, 55, 90)

skor <- skor[skor < 75]
print(skor)
## [1] 70 25 60 60 55
skor <- c(100, 95, 70, 80, 25, 60, 80, 60, 55, 90)

skor <- skor[skor > 90]
print(skor)
## [1] 100  95
# 7. MEMBUAT FUNGSI DAN PERULANGAN

ubah_nilai <- function(data) {
  for (i in seq_along(data)) {
    if (data[i] < 65) {
      data[i] <- data[i] + 10
    }
    print(data[i])
  }
}

nilai_awal <- c(100, 95, 70, 80, 25, 60, 60, 55, 90)

ubah_nilai(nilai_awal)
## [1] 100
## [1] 95
## [1] 70
## [1] 80
## [1] 35
## [1] 70
## [1] 70
## [1] 65
## [1] 90
# 8. MENGETAHUI TIPE DATA DENGAN MODE()

mode(1000)
## [1] "numeric"
data_angka <- c(1000)
mode(data_angka)
## [1] "numeric"
mode("HALO")
## [1] "character"
data_teks <- c("HALO")
mode(data_teks)
## [1] "character"
logika_salah <- c(FALSE)
logika_benar <- c(TRUE)

logika_salah
## [1] FALSE
logika_benar
## [1] TRUE
mode(logika_salah)
## [1] "logical"
mode(logika_benar)
## [1] "logical"
# 9. MEMBUAT FUNGSI KUADRAT

hitung_kuadrat <- function(angka) {
  print(angka * angka)
}

nilai <- c(4)
hitung_kuadrat(nilai)
## [1] 16
mode(hitung_kuadrat)
## [1] "function"
# 10. OPERASI PENJUMLAHAN VEKTOR

vektor_a <- c(1, 2, 3)
vektor_b <- c(4, 5, 6)

hasil <- vektor_a + vektor_b
hasil
## [1] 5 7 9
vektor_a <- c(1, 2, 3)

hasil <- 2 + vektor_a
hasil
## [1] 3 4 5
# 11. OPERASI PENGURANGAN VEKTOR

vektor_a <- c(2, 4, 6)
vektor_b <- c(1, 3, 5)

vektor_b - vektor_a
## [1] -1 -1 -1
# 12. OPERASI PERKALIAN VEKTOR

vektor <- c(4, 8, 12)

vektor * 0.5
## [1] 2 4 6
# 13. OPERASI PEMBAGIAN VEKTOR

vektor_a <- c(4, 8, 12)
vektor_b <- c(2, 2, 2)

vektor_a / vektor_b
## [1] 2 4 6
vektor_a <- c(3, 6, 1)
vektor_b <- c(2, 2, 0)

vektor_a / vektor_b
## [1] 1.5 3.0 Inf
# 14. OPERASI MODULUS (SISA BAGI)

vektor_a <- c(5, 2, 7)
vektor_b <- c(3, 2, 6)

sisa_bagi <- vektor_a %% vektor_b
sisa_bagi
## [1] 2 0 1
# 15. MENGHITUNG JUMLAH DATA

data <- c(100, 70, 80, 55, 80, 70, 80)

length(data)
## [1] 7
# 16. MENGURUTKAN DATA

data <- c(70, 80, 50, 25, 100, 60)

sort(data)
## [1]  25  50  60  70  80 100
# 17. MENGHITUNG SELISIH ANTAR ELEMEN

data <- c(100, 50, 70, 80, 60)

diff(data)
## [1] -50  20  10 -20
# 18. MENJUMLAHKAN SELURUH DATA

data <- c(50, 60, 70, 80)

sum(data)
## [1] 260
# 19. MENGHITUNG AKAR KUADRAT

hasil_akar <- sqrt(81)
hasil_akar
## [1] 9
akar_lanjutan <- sqrt(hasil_akar)
akar_lanjutan
## [1] 3
# 20. MENCARI NILAI MAKSIMUM DAN MINIMUM

data <- c(10, 25, 90, 75, 95, 57)

max(data)
## [1] 95
min(data)
## [1] 10
# 21. FUNGSI EKSPONENSIAL

exp(1)
## [1] 2.718282
exp(2)
## [1] 7.389056
# 22. MENGATUR JUMLAH ANGKA DESIMAL

options(digits = 3)
pi
## [1] 3.14
options(digits = 10)
pi
## [1] 3.141592654
# 23. MEMBUAT URUTAN ANGKA DENGAN SEQ()

seq(from = 1, to = 10)
##  [1]  1  2  3  4  5  6  7  8  9 10
seq(from = 2, by = 0.5, length.out = 4)
## [1] 2.0 2.5 3.0 3.5
# 24. MEMBUAT FUNGSI URUTAN DENGAN FOR DAN BREAK

buat_urutan <- function(mulai, langkah, batas) {
  nilai <- mulai
  print(nilai)
  
  for (i in mulai:batas) {
    nilai <- nilai + langkah
    
    if (nilai > batas) {
      break
    }
    
    print(nilai)
  }
}

buat_urutan(2, 3, 30)
## [1] 2
## [1] 5
## [1] 8
## [1] 11
## [1] 14
## [1] 17
## [1] 20
## [1] 23
## [1] 26
## [1] 29
seq(from = 2, to = 30, by = 3)
##  [1]  2  5  8 11 14 17 20 23 26 29
# 25. MEMBUAT TABEL FREKUENSI

data <- c(10, 10, 30, 10, 30, 10, 10, 40,
          70, 90, 70, 80, 60, 60, 90)

table(data)
## data
## 10 30 40 60 70 80 90 
##  5  2  1  2  2  1  2
table(data) / length(data)
## data
##            10            30            40            60            70 
## 0.33333333333 0.13333333333 0.06666666667 0.13333333333 0.13333333333 
##            80            90 
## 0.06666666667 0.13333333333
# 26. TABEL FREKUENSI DATA KATEGORI

jawaban <- c("ya", "tidak", "ya", "ya", "ya",
             "ya", "tidak", "ya", "tidak", "ya")

table(jawaban)
## jawaban
## tidak    ya 
##     3     7
table(jawaban) / length(jawaban)
## jawaban
## tidak    ya 
##   0.3   0.7
# 27. MENGUBAH DATA MENJADI FACTOR

jenis_hewan <- c("ikan", "ikan", "udang",
                 "ikan", "ikan", "udang")

factor(jenis_hewan)
## [1] ikan  ikan  udang ikan  ikan  udang
## Levels: ikan udang
status_pendidikan <- c(
  "sarjana", "sarjana", "sarjana", "pengangguran",
  "sarjana", "diploma", "diploma", "pengangguran"
)

factor(status_pendidikan)
## [1] sarjana      sarjana      sarjana      pengangguran sarjana     
## [6] diploma      diploma      pengangguran
## Levels: diploma pengangguran sarjana
# 28. MEMBUAT DIAGRAM BATANG

data <- c(10, 10, 10, 10, 20, 20,
          30, 30, 30, 30, 30, 30)

barplot(table(data))

# 29. DIAGRAM BATANG BERDASARKAN PROPORSI

barplot(table(data) / length(data))

# 30. MEMBUAT GRAFIK PLOT

data <- c(10, 10, 10, 10, 10,
          20, 20, 30, 30, 40)

table(data)
## data
## 10 20 30 40 
##  5  2  2  1
nilai <- c(10, 20, 30, 40)
jumlah <- c(5, 3, 2, 1)

plot(nilai, jumlah)

# 31. MEMBUAT PLOT DARI TABEL FREKUENSI

data <- c(10, 10, 10, 10, 10,
          20, 20, 20, 30, 30, 40)

plot(table(data))

# ==========================================
# SELESAI
# ==========================================