DASAR-DASAR PEMROGRAMAN R

2+6
## [1] 8
87-5
## [1] 82
60*5
## [1] 300
120/4
## [1] 30

Contoh komentar (perintah yang ditulis setelah tanda # tidak akan dijalankan oleh R)

#nilai x dan y
#X <- 12
#x <- 15
#8 -> z

Memasukkan nilai ke objek di R

x <- 5
y = 9
8 -> z

Memanggil objek

print(x)
## [1] 5
x
## [1] 5
y
## [1] 9
z
## [1] 8

Mengecek working directory

getwd()
## [1] "C:/Users/dahayu/Documents/PSD"

Mengganti working directory

setwd()

Pembuatan objek

# Tipe character
nama <- "Kinan"

# Tipe numeric
angka <- 59.8

# Tipe complex
bilangan_kompleks <- 3 + 2i

# Tipe logical
lulus <- TRUE

Cek tipe data

class(nama)
## [1] "character"

Perbedaan Numeric dan Integer

x <- 5
y <- 98L

class(x)
## [1] "numeric"
class(y)
## [1] "integer"

Operasi pada Character (String) # Menghitung jumlah karakter

teks <- "BELAJAR PSD ITU SERU BGT LOH!"
nchar (teks)
## [1] 29

Menggabungkan string

nama_depan <- "Dahayu"
nama_belakang <- "Kinanthi"

# Menggabungkan dengan spasi
paste(nama_depan, nama_belakang)
## [1] "Dahayu Kinanthi"
# Menggabungkan tanpa spasi
paste0(nama_depan, nama_belakang)
## [1] "DahayuKinanthi"
# Menggabungkan dengan pemisah kustom
paste(nama_depan, nama_belakang, sep = "_")
## [1] "Dahayu_Kinanthi"

Mengambil bagian dari string

teks <- "Belajar Pengantar Sains Data"

nchar(teks)
## [1] 28
substr(teks, start = 8, stop = 28)
## [1] " Pengantar Sains Data"
substring(teks, first = 18)
## [1] " Sains Data"
substring(teks, first = 18, last = 23)
## [1] " Sains"

Vektor

angka <- c(1, 2, 3, 4, 5)     
nama  <- c("Dahayu", "kinan") 
lulus <- c(TRUE, FALSE, TRUE)

angka
## [1] 1 2 3 4 5
nama
## [1] "Dahayu" "kinan"
lulus
## [1]  TRUE FALSE  TRUE

seq()-sequence

bilangan <- seq(1, 20, by = 5)
bilangan
## [1]  1  6 11 16

rep() - Repeat

rep(c(1, 2, 3), times =  5)
##  [1] 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
rep(c(1, 2, 3), each =  5)
##  [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3

Factor

pendidikan <- factor(c("TK", "SD", "SMP", "SMA", "PERGURUAN TINNGI"))
pendidikan
## [1] TK               SD               SMP              SMA             
## [5] PERGURUAN TINNGI
## Levels: PERGURUAN TINNGI SD SMA SMP TK
factor(pendidikan, levels = c("TK", "SD", "SMP", "SMA", "PERGURUAN TINNGI"), ordered = TRUE)
## [1] TK               SD               SMP              SMA             
## [5] PERGURUAN TINNGI
## Levels: TK < SD < SMP < SMA < PERGURUAN TINNGI
pendidikan
## [1] TK               SD               SMP              SMA             
## [5] PERGURUAN TINNGI
## Levels: PERGURUAN TINNGI SD SMA SMP TK

Matrix

# Membuat matriks 3x3 (default column-wise)
matriks1 <- matrix(1:9, nrow = 3, ncol = 3)
matriks1
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9
matriks4 <- matrix(1:9, nrow = 3, ncol = 3)

# Mengambil elemen baris ke-2 kolom ke-3
matriks4[2, 3]
## [1] 8
## [1] 8
# Mengambil seluruh baris pertama
matriks4[1, ]
## [1] 1 4 7
## [1] 1 4 7
# Mengambil seluruh kolom kedua
matriks4[, 2]
## [1] 4 5 6
# Mengambil baris 1 dan 3
matriks4[c(1, 3), ]
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    3    6    9

DATA FRAME

nama <- c("Kinan", "Saltik", "Fitri")
umur <- c(18, 19, 19)
jurusan <- c("Statistika Sains Data", "Akuntansi", "Psikologi")

df <- data.frame(Nama = nama, Umur = umur, Jurusan = jurusan)
df
##     Nama Umur               Jurusan
## 1  Kinan   18 Statistika Sains Data
## 2 Saltik   19             Akuntansi
## 3  Fitri   19             Psikologi

IF

num <- 5

if(num > 0){print("Non Negative")} else {print("Negative")}
## [1] "Non Negative"
num <- 8

if (num > 0) {
   print("Positive")
} else if (num < 0) {
   print("Negative")
} else if (num == 0) {
   print("Zero")
}
## [1] "Positive"

FOR LOOP

angka <- c(5, 9, 8)
total <- 0

for (nilai in angka) {
   total <- total + nilai
}
print(paste("Total penjumlahan:", total))
## [1] "Total penjumlahan: 22"

WHILE LOOP

i <- 18
while (i <= 21) {
   print(paste("Kinan ke-", i))
   i <- i + 1}
## [1] "Kinan ke- 18"
## [1] "Kinan ke- 19"
## [1] "Kinan ke- 20"
## [1] "Kinan ke- 21"