Dosen Pengampu : Prof. Dr. Suhartono, M.Kom

Mata Kuliah : Kalkulus

Prodi : Teknik Informatika

Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang

Jenis dan Struktur Data

Untuk menggunakan bahasa programming R secara efisien dan efektif, pembaca harus memahami struktur penyimpanan data dan jenis data. Jika tidak melakukan pengaturan yang tepat, banyak algoritma data science akan menghasilkan analisa yang salah atau bahkan akan tidak jalan sama sekali.

Struktur data adalah cara untuk mengatur dataset untuk penyimpanan data. R dapat membuat berbagai tipe dataset, seperti vektor, matrix, array, dan list.

Secara garis besar, ada tiga tipe atau jenis data yang tersedia di bahasa programming:

  1. Karakter (character), atau sering disebut object, string, atau teks. Ini adalah tipe data yang berisikan huruf atau kata-kata.

  2. Numerik (number), berisikan angka. Jika angkanya hanya boleh berisikan angka bulat, disebut integer. Jika boleh memiliki koma, disebut double, float, atau real.

  3. Logis (boolean), hanya berisikan TRUE atau FALSE, atau benar atau salah.

\(JENIS\)

R adalah bahasa pemrograman tingkat tinggi yang dapat mengolah dataset dengan kapasitas yang besar. Core dari bahasa pemrograman ini sedikit banyak mempunyai kesamaan dengan C, tetapi banyak hal di R telah diautomatisasi yang tidak ditemukan dalam C. Jenis-jenis data yang umum dikenal dalam pemrograman, atau di R disebut sebagai kelas atomic data (atomic clasess). Kelas atomic data tersebut dibedakan atas:

logical `(e.g., TRUE, FALSE)`
integer `(e.g,, 2L, as.integer(3))`
numeric `(real or decimal) (e.g, 2, 2.0, pi)`
complex `(e.g, 1 + 0i, 1 + 4i)`
character `(e.g, “one”, “two”, “three”, “monday”)`

Data pada R dapat dikelompokan berdasarkan beberapa jenis. Jenis data pada R disajikan pada Tabel berikut :

Jenis Data KETERANGAN CONTOH
Logical Nilai Boolean TRUE, FALSE
Numeric Segala jenis angka 12.3, 5, 999
Integer Bilangan integer (bilangan bulat) 23L, 97L, 3L
Complex Bilangan kompleks 2i, 3i, 9i
Character Karakter dan string ‘a’, “b”, “123”
Factor Dapat berupa numerik atau string (namun pada proses akan terbaca sebagai angka) 1, 0, “Merah”
Raw Segala jenis data yang disimpan sebagai raw bytes Identik dengan “hello”

Sintaks berikut adalah contoh dari jenis data pada R. Untuk mengetahui jenis data suatu objek kita dapat menggunakan perintah class()

# Logical
melon <- TRUE
class(melon)
## [1] "logical"
# Numeric
x <- 5.2
class(x)
## [1] "numeric"
# Integer
y <- 7L
class(y)
## [1] "integer"
# Compleks
n <- 3+8i
class(n)
## [1] "complex"
# string
p <- "Anda"
class(p)
## [1] "character"
# Raw
xy <- charToRaw("hello world")
class(xy)
## [1] "raw"

Keenam jenis data tersebut disebut sebagai tipe data atomik. Hal ini disebabkan karena hanya dapat menangani satu tipe data saja. Misalnya hanya numeric atau hanya integer.Selain menggunakan fungsi class(), kita dapat pula menggunakan fungsi is_numeric(), is.character(), is.logical(), dan sebagainya berdasarkan jenis data apa yang ingin kita cek. Berbeda dengan fungsi class(), ouput yang dihasilkan pada fungsi seperti is_numeric() adalah nilai Boolean sehingga fungsi ini hanya digunakan untuk mengecek apakah jenis data pada objek sama seperti yang kita pikirkan.

\(STRUKTUR\) \(DATA\)

struktur data yang dikenali oleh R. Dalam R, struktur data dibedakan atas

Scalars, vectors (numerical, character, logical), matrices (matrix), array, data frames, dan lists (daftar).

kita akan melihat satu per satu jenis data serta beberapa operasi sederhana dengan menggunakan fungsi-fungsi R untuk mengidentifikasi jenis data tersebut.

1. Scalar

Scalar adalah data tunggal atau data yang terdiri dari 1 variable. Code di bawah ini menunjukkan bagaimana caranya membuat variable scalar dalam R

x = 5
y <- 10

contoh yang paling umum adalah pi. merupakan scalar yang akan memberikan nilai pi (=22/7)

2. Vector

Vector adalah daftar dari yang terdiri dari beberapa atomic class data

 a <- c(1,2,5.3,6,-2,4) # numeric vector
 b <- c("one","two","three") # character vector

c menunjukkan concatenate

3. Matrices

Sebuah matrix adalah table dua arah dari number. Matrix hanya bisa menyimpan satu kelas data saja. Artinya tidak bisa menggabungkan data numeric dengan data character. Jika di’paksa’kan untuk digabung, maka salah satu akan berubah mengikuti column pertama dari matrix tersebut. misalkan menggabungkan character dengan numeric, dengan character sebagai column pertama akan membuat semua numeric di column selanjutnya menjadi character.

Code dibawah ini akan menggenerate matrix yang terdiri dari 3 baris dan 2 column.

x = matrix(c(2, 3, 4, 5, 6, 7), nrow=3, ncol=2)

x
2  5
3  6
4  7

sementara jika code tersebut dirubah menjadi :

x = matrix(c(2, 3, 4, 5, 6, 7), nrow=3, ncol=2, byrow=TRUE)

x
2  3
4  5
6  7

#Beberapa fungsi untuk identifikasi matrix misalkan
dim(x)
2  3  #artinya matrix kita terdiri dari 3 baris dan 2 kolum
x[,2] # column kedua dari matrix
x[3,] # baris ketiga dari matrix
x[2:3,2] # baris kedua sampai ketiga dari column ke 2

4. Array

Array adalah jenis data yang seperti matrix tapi bisa mempunyai lebih dari dua dimensi. Code dibawah ini digunakan untuk menggenerate array

# membuat dua vector dengan banyaknya data (length) yang berbeda
vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)

# Dua vector tersebut digunakan untuk menginput data array
result <- array(c(vector1,vector2),dim = c(3,3,2))
print(result)
, , 1

[,1] [,2] [,3]
[1,] 5 10 13
[2,] 9 11 14
[3,] 3 12 15

, , 2

[,1] [,2] [,3]
[1,] 5 10 13
[2,] 9 11 14
[3,] 3 12 15

5. Data frame

Data frame lebih umum digunakan daripada matrix, karena dalam satu table dapat terdiri dari berbagai jenis atomic data (numeric, character, factor, dll). Data frame ini mungkin bisa dianggap sama dengan jenis dataset yang biasa digunakan di SAS atau SPSS.

d <- c(1,2,3,4)
e <- c("red", "white", "red", NA)
f <- c(TRUE,TRUE,TRUE,FALSE)
mydata <- data.frame(d,e,f)
mydata
 d e f
1 1 red TRUE
2 2 white TRUE
3 3 red TRUE
4 4 <NA> FALSE

names(mydata) <- c("ID","Color","Passed") # mengganti nama variable
mydata
ID Color Passed
1 1 red TRUE
2 2 white TRUE
3 3 red TRUE
4 4 <NA> FALSE

6. List

List adalah urutan dari kumpulan object atau komponen (jenis-jenis struktur data yang sudah dijelaskan diatas. Merupakan jenis struktur data yang paling sering saya pakai. Sebuah list memungkinkan kita mengumpulkan dan melakukan banyak operasi dalam satu nama saja secara automatis sehingga kita tidak perlu melakukan kalkulasi yang sama dan berulang-ulang untuk komponen yang ada dalam list. Karena ini R, list memungkinkan kita melakukan operasi tanpa melakukan loop dengan beberapa fungsi seperti lapply, mapply, sapply, dan lain-lain.Menjalankan loop dalam adalah hal yang sangat penting untuk automatisasi, akan tetapi looping akan mengonsumsi banyak memori dan agak lambat, sementara dengan fungsi-fungsi yang saya sebutkan tadi, akan memberikan proses iterasi yang lebih cepat.

# contoh list dengan empat komponen yang terdiri dari
# string (character), vector numeric,
sebuah matrix dan sebuah scalar
w <- list(name="Fred", mynumbers=d, mymatrix=x, age=5.3)

# contoh list dengan dua list
mydata -> list1
w -> list2
v <- c(list1,list2)

#mengakses element dalam list
w[[1]]
[1] "Fred
"v[[2]][[1]]
[1] "Fred"
#"fred" merupakan komponen pertama dari list2

7. Factors (faktor)

Sebuah variabel dapat dijadikan nominal dengan mengelaskannya ke dalam factor. Factor menyimpan nominal dari sebuah vvector integer dalam range [1 … k], dimana k adalah nilai unik dari nominal variable. Sebuah vector character dapat dipetakan untuk integer dalam range tersebut.

# Variabel gender terdiri dari 30 variable "perempuan" dan 20 variable "laki-laki"
# 30 "female" entries
gender <- c(rep("perempuan", 30), rep("laki-laki",20))   #rep adalah fungsi untuk mengulang
gender <- factor(gender)
# fungsi ini membuat R membaca gender dengan mengasosiasikannya sebagai 20 data 1 = laki-laki, dan 30 data 2 = perempuan
#faktor mengurutkan data tersebut berdasarkan alphabet,dan memperlakukan data secara nominal

Struktur data diklasifikasikan berdasarkan dimensi data dan tipe data di dalamnya (homogen atau heterogen). Klasifikasi jenis data disajikan pada Tabel berikut :

Dimensi Homogen Heterogen
1d Atomik vektor List
2d Matriks Dataframe
nd Array

Berdasarkan Tabel tersebut dapat kita lihat bahwa objek terbagi atas dua buah struktur data yaitu homogen dan heterogen. Objek dengan struktur data homogen hanya dapat menyimpan satu tipe atau jenis data saja (numerik saja atau factor saja), sedangkan objek dengan struktur data heterogen akan dapat menyimpan berbagai jenis data.

Kesimpulan

Penggunaan program/software R akan sangat bergantung dengan seberapa paham anda dalam menggunakan jenis data dan stuktur data yang berlaku pada R. Anda memerlukan pemahaman yang kuat tentang jenis data dan strukturnya kemudian kapan digunakan atau bagaimana cara mengolahnya. Jenis data sangat penting untuk dipahami karena ini adalah objek yang akan anda temui setiap kali anda mengoperasikan R.

Referensi

https://bookdown.org/moh_rosidi2610/Rcmdr-book/tipe-dan-struktur-data.html

https://irapoenya.wordpress.com/2018/06/23/seri-belajar-r-3-jenis-data-dalam-r/

https://swanstatistics.com/tipe-data-pada-r-r-studio/