Pemrograman R Dasar

Jimy
7 min readAug 24, 2019

--

R adalah bahasa pemrograman dan perangkat lunak untuk analisis statistika dan grafik yang awalnya dibuat oleh Ross Ihaka dan Robert Gentleman dan akhirnya lanjutkan oleh R Development Core Team.

R sangat baik digunakan untuk permodelan linier dan nonlinier, uji statistik parametrik dan nonparametrik, klasifikasi, klasterisasi, dan lainnya dan juga baik dalam visualisasi data. R dan Python saat ini adalah 2 platform yang paling populer untuk Data Science.

R dapat diunduh secara resmi untuk platform Windows disini.
Untuk platform Linux, install package r-base sesuai distro masing-masing.

Setelah instalasi, R bisa dijalankan dari

Windows Start Menu : Cari Aplikasi R dan jalankan
Linux terminal : user@hostname:~$ R

Berbeda dengan pemrograman lainnya Program R berupa interpreter yang dituliskan baris per baris seperti pada Command Line Interface (CLI) atau biasa disebut Shell.

R tidak sesulit bahasa pemrograman lainnya, R merupakan bahasa turunan dari S, dimana S juga turunan dari bahasa C, maka R akan terlihat mirip dengan bahasa C. Mari membahas bahasa pemrograman R dasar.

Variabel

Seperti bahasa pemrograman lainnya, R menggunakan variabel, aturan nama variabel sama dengan bahasa lainnya, yaitu :

  1. Variabel berupa kombinasi huruf, angka, titik dan garis bawah (underscore).
  2. Harus diawali dengan huruf atau titik, jika berawal dengan titik, selanjutnya tidak bisa menggunakan angka.
  3. Syntax R tidak dapat digunakan sebagai nama variabel.
  4. Huruf besar dan kecil berbeda (case sensitive)

Variabel memiliki tipe data tetapi tidak perlu secara eksplisit dituliskan tipe datanya.

Deklarasi variabel pada R cukup dengan memasukkan nilai kedalam variabelnya menggunakan operator = atau <-, operator <- lebih umum digunakan karena merupakan operator asli R, komentar pada R bisa menggunakan #, contoh :

Karakter

s <- "Hello World"
s1 <- "'Hello World dengan petik 1'"
s2 <- '"Hello World dengan petik 2"'
print(s) #Hasil : "Hello World"
Output
[1] "Hello World"

Numerik

a <- 5 #Memasukkan nilai 5 bertipe double ke variabel a
print(a) #Hasil : 5
Output
[1] 5
a <- 5
b <- 6
print((a+b)/2) #Hasil berupa double 5.5
Output
[1] 5.5

Untuk mengecek tipe data dan kelasnya suatu variable bisa menggunakan typeof() dan class(), contoh diatas typeof(a) akan menghasilkan “double” dan class(a) akan menghasilkan “numeric”, tipe lainnya untuk numeric : “integer” dan “complex”, secara default bilangan di R adalah double.

Vector

Vector adalah data array yang dapat menyimpan banyak data dalam 1 variabel saja dan diakses menggunakan indeks, berikut inisialisasi vector di R, menggunakan fungsi bernama c(), data yang dimasukkan harus seragam, jika tidak akan dikonversi menjadi karakter agar seragam), vector akan dibahas lagi lebih lanjut nantinya :

x <- c(1, 5, 4, 9, 0)
y <- c(1, 5.4, TRUE, "hello")
print(y[2]) #Hasil "5.4", Indeks pada R dimulai dari angka 1 bukan 0
Output
[1] "5.4"

Operasi Vector

x <- c(1, 2, 3, 4, 5)
y <- c(1, 1, 1, 1, 1)
print(x + y) #Tiap elemen vector akan ditambahkan
Output
[1] 2 3 4 5 6

Operator

Aritmatik         : +,–,*,/,(,)
Pangkat : ^
Modulus : %%
Pembagian integer : %/%
Komparasi : <,>,<=,>=,==,!=
Logikal : ! (NOT),& (AND untuk vector),&& (AND),
| (OR untuk vector),|| (OR)
Set variabel : <-, <<- (untuk variabel global), =,->,
->>(untuk variabel global)

Kondisi

If, else if, dan else

x <- 0
if (x < 0) {
print("Negatif")
}
else if (x > 0) {
print("Positif")
}
else
print("Nol")
Output
[1] "Nol"

Ifelse

a <- c(6,3,2,9)
ifelse(a %% 2 == 0, "genap", "ganjil")
Output
[1] "genap" "ganjil" "genap" "ganjil"

Switch

a <- 2
switch(a,”merah”, “hijau”, “biru”)
Output
[1] "hijau"

Perulangan (Loop)

For

x <- c(2,5,3,9,8,11,6)
count <- 0
for (val in x) {
if (val %% 2 == 0) count = count + 1
}
print(count)
Output
[1] 3

While

i <- 1
while (i < 4) {
print(i)
i = i + 1
}
Output
[1] 1
[1] 2
[1] 3

Repeat

x <- 1
repeat {
print(x)
x = x + 1
if (x == 3) {
break
}
}
Output
[1] 1
[1] 2

didalam loop bisa menggunakan syntax break untuk keluar dari loop dan next lanjut ke loop berikutnya.

Function

Fungsi atau function merupakan potongan code yang diberikan nama dan dapat mengembalikan nilai tertentu berdasarkan parameter yang dimasukkan, digunakan apabila potongan code tersebut digunakan berulang-ulang.

pangkat <- function (x, y) {
hasil <- x^y
return(hasil)
}
z <- pangkat(2,3)
print(paste("Pangkat 3 dari 2 adalah : ",z))
Output
[1] "Pangkat 3 dari 2 adalah : 8"

Struktur Data / Data Structure

Ini adalah bagian terpenting dari R yang akan sering digunakan untuk menyimpan dan memanipulasi data yang jumlahnya banyak dan akan sering digunakan dalam analisis Data Science terdiri dari :

  • Vector
  • Matrix
  • List
  • Data Frame
  • Factor

Vector

Vector sudah dijelaskan sebelumnya digunakan untuk menyimpan nilai array 1 dimensi.

x <- c(1,2,3,4,5,6)
x <- 1:6 #sama dengan diatas, cara ini lebih cepat untuk data seri
y <- 2:-2 #membuat seri nilai menurun
z <- c("satu"=2, "dua"=4, "tiga"=6)
print(y)
Output
[1] 2 1 0 -1 -2
print(y[c(1,2)]) #hanya menampilkan index pertama dan kedua dari yOutput
[1] 2 1
print(y[y<0]) #filter y, tampilkan nilai dibawah 0Output
[1] -1 -2
print(z[c("dua")]) #menampilkan index dengan stringOutput
dua
4
x[2] <- 5 #memodifikasi index kedua dengan nilai 5
x <- x[1:3] #memotong index jadi hanya 3
print(x)
Output
[1] 1 5 3

Matrix

Jika Vector menyimpan nilai 1 dimensi maka Matrix dapat menyimpan nilai 2 dimensi.

Membuat Matrix

a <- matrix(1:9, nrow = 3, ncol = 3) #diisi baris dulu
print(a)
Output
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
a <- matrix(1:9, nrow = 3, ncol = 3, byrow = TRUE) #diisi kolom dulu
print(a)
Output
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9
colnames(a) <- c("K1","K2","K3") #memberi nama index kolom
rownames(a) <- c("B1","B2","B3") #memberi nama index baris
print (a)
Output
K1 K2 K3
B1 1 2 3
B2 4 5 6
B3 7 8 9

Membuat Matrix dengan menggabungkan dari 2 Vector

cbind(c(1,2,3),c(4,5,6)) #digunakan untuk menggabungkan kolomOutput
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
rbind(c(1,2,3),c(4,5,6)) #digunakan untuk menggabungkan barisOutput
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6

Mengakses Matrix

a <- matrix(1:9, nrow = 3, ncol = 3) #diisi baris dulu
print(a)
Output
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
print(a[2,3]) #menampilkan baris ke-2 kolom ke-3Output
[1] 8
print(a[2,]) #menampilkan semua baris ke-2Output
[1] 2 5 8
print(a[,3]) #menampilkan semua baris ke-3Output
[1] 7 8 9
print(a[c(1,2),c(2,3)]) #menampilkan potongan matrix dari titik kiri atas sampai kanan bawahOutput
[,1] [,2]
[1,] 4 7
[2,] 5 8
print(a[-1,])) #menampilkan semua kecuali baris ke-1Output
[,1] [,2] [,3]
[1,] 2 5 8
[2,] 3 6 9
print(t(a)) #menampilkan transpose matrixOutput
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9

List

Jika Vector hanya dapat menyimpan data seragam maka List dapat menyimpan data yang tidak seragam / berbeda tipe data.

x <- list(5.5, TRUE, 1:5)
print(x)
Output
x
[[1]]
[1] 5.5
[[2]]
[1] TRUE
[[3]]
[1] 1 2 3 4 5
x <- list(“a” = 5.5, “b” = TRUE, “c” = 1:5)
str(x) #str dipakai untuk melihat stuktur dari jenis data structure
Output
List of 3
$ a: num 5.5
$ b: logi TRUE
$ c: int [1:3] 1 2 3 4 5
print(x[1]) #menampilkan list index pertamaOutput
[[1]]
[1] 5.5
print(x[[1]]) #menampilkan value dari list index pertamaOutput
[1] 5.5

Data Frame

Data Frame adalah stuktur data terpenting karena bentuknya seperti tabel yang memiliki kolom dan baris, mirip matrix, bedanya matrix menyimpan data seragam, sementara Data Frame dapat menyimpan data dengan berbagai tipe data seperti tabel pada Database. Kebanyakan library R menggunakan Data Frame sebagai parameter datanya.

Membuat Data Frame

df <- data.frame(“ID” = c(1,2,3),
“Nama” = c(“Budi”,”Agus”,”Bambang”),
“Umur” = c(21,28,30),
“Tanggal.Lahir” = c(“1997–02–05”,
”1990–07–23",”1988–12–13")
)
print(df)
Output
ID Nama Umur Tanggal.Lahir
1 1 Budi 21 1997–02–05
2 2 Agus 28 1990–07–23
3 3 Bambang 30 1988–12–13
print(df["Nama"]) #menampilkan kolom nama, sama dengan print(df[2])Output
Nama
1 Budi
2 Agus
3 Bambang
print(df$Nama) #menampilkan kolom nama dan diubah menjadi vectorOutput
[1] Budi Agus Bambang
Levels: Agus Bambang Budi
print(df[2,2:3]) #menampilkan kolom nama dan umur Agus (baris 2)Output
Nama Umur
2 Agus 28

Memodifikasi Data Frame

df <- data.frame(“ID” = c(1,2,3),
“Nama” = c(“Budi”,”Agus”,”Bambang”),
“Umur” = c(21,28,30),
“Tanggal.Lahir” = c(“1997–02–05”,
”1990–07–23",”1988–12–13"),
stringsAsFactors = FALSE #agar tidak menjadi factor
)
df[2,"Nama"] <- "Mahmud"
print(df)
Output
ID Nama Umur Tanggal.Lahir
1 1 Budi 21 1997–02–05
2 2 Mahmud 28 1990–07–23
3 3 Bambang 30 1988–12–13
Tempat.Lahir <- c("Jakarta","Sorong","Bandung")
df <- cbind(df, Tempat.Lahir)
print(df)
Output
ID Nama Umur Tanggal.Lahir Tempat.Lahir
1 1 Budi 21 1997–02–05 Jakarta
2 2 Agus 28 1990–07–23 Sorong
3 3 Bambang 30 1988–12–13 Bandung
df["Tempat.Lahir"] <- NULL #hapus kolom
df <- rbind(df,list(4,"Ani",19,"1999-10-30")) #tambah baris
print(df)
Output
ID Nama Umur Tanggal.Lahir
1 1 Budi 21 1997–02–05
2 2 Mahmud 28 1990–07–23
3 3 Bambang 30 1988–12–13
4 4 Ani 19 1999-10-30
df <- df[1:3,] #menghapus baris keempat

Factor

Factor adalah struktur data yang menyimpan kategori dari vector bertipe karakter, misalnya terdapat vector berisi c(“Laki-laki”,”Perempuan”,”Perempuan”,”Laki-Laki”) maka Factornya adalah “Laki-laki” dan “Perempuan” saja, hanya 2 kategori.

Membuat factor

x <- factor(c(“Laki-laki”,”Perempuan”,”Perempuan”,”Laki-laki”), levels <- c("Laki-laki","Perempuan"))
print(x)
Output
[1] Laki-laki Perempuan Perempuan Laki-laki
Levels: Laki-laki Perempuan
levels(x) <- c(levels(x), "Tidak jelas") #untuk menambah level baru
print(x)

--

--