Lewati ke konten utama

Tipe Data di R

Pelajari tipe data dan pentingnya dalam bahasa pemrograman. Secara khusus, pelajari cara menggunakan berbagai tipe data seperti vektor, matriks, list, dan dataframe dalam bahasa pemrograman R.
Diperbarui 28 Sep 2026  · 12 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

diagram struktur data r

Sebelum kita mulai dengan pengantar dan mempelajari berbagai tipe data di R, mari cepat menyiapkan lingkungan R baik di Terminal maupun Jupyter Notebook.

Perintah berikut untuk sistem operasi Mac, yang akan menginstal R di terminal Anda.

brew install r --build-from-source

Untuk memverifikasi instalasi berhasil, cukup ketik R (huruf besar) di terminal, dan Anda akan masuk ke sesi R seperti ditunjukkan di bawah.

sesi r

Untuk instalasi pada sistem operasi lain, silakan cek tutorial ini.

Sekarang mari tambahkan bahasa pemrograman R sebagai kernel di jupyter notebook. Pastikan jupyter notebook sudah terinstal di sistem Anda.

Buka terminal Anda dan jalankan sesi R lalu masukkan dua perintah di bawah, yang akan menambahkan kernel R ke jupyter notebook Anda.

install.packages('IRkernel')
IRkernel::installspec()

Setelah dua perintah di atas berhasil, jalankan jupyter dari terminal dan buka notebook dengan kernel R seperti ditunjukkan di bawah:

kernel r

Sekarang Anda siap menulis kode R pertama Anda di jupyter notebook.

Pendahuluan

Untuk memaksimalkan penggunaan R, sangat penting mengetahui dan memahami berbagai tipe data dan struktur data yang ada di R serta cara kerjanya. Keduanya berperan penting di hampir semua masalah, terutama saat Anda mengerjakan masalah machine learning yang sangat berpusat pada data.

Dalam bahasa pemrograman, kita biasanya membutuhkan variabel untuk menyimpan informasi, yang bisa berupa bilangan bulat, karakter, floating-point, boolean, dan lain-lain. type dari variabel murni didasarkan pada jenis informasi yang dikandungnya. Jika diisi bilangan bulat, maka tipe data variabel adalah int. Variabel hanyalah lokasi memori yang dicadangkan tempat nilai disimpan. Begitu Anda membuat variabel, sebagian ruang memori dicadangkan untuknya.

Berdasarkan tipe data variabel, sejumlah memori akan dialokasikan oleh sistem operasi. Misalnya, dalam pemrograman R, variabel yang menyimpan bilangan bulat akan mencadangkan memori 4 byte dan 1 byte untuk karakter.

Pada bahasa pemrograman seperti C, C++, dan Java, variabel dideklarasikan sebagai tipe data; namun, di Python dan R, variabel adalah objek. Objek tidak lain adalah struktur data yang memiliki beberapa atribut dan metode yang diterapkan pada atributnya.

Ada berbagai jenis objek R atau struktur data yang akan dibahas dalam tutorial ini seperti:

Mari terlebih dahulu memahami beberapa tipe data dasar yang menjadi fondasi objek R, seperti Numeric, Integer, Character, Factor, dan Logical.

  • Numeric: Angka yang memiliki nilai desimal atau bersifat pecahan bertipe data numeric.
num <- 1.2
print(num)
[1] 1.2

Anda dapat memeriksa tipe data a menggunakan kata kunci class().

class(num)
'numeric'
  • Integer: Angka yang tidak mengandung nilai desimal bertipe data integer. Namun, untuk membuat tipe data integer, Anda secara eksplisit menggunakan as.integer() dan meneruskan variabel sebagai argumen.
int <- as.integer(2.2)
print(int)
[1] 2
class(int)
'integer'
  • Character: Seperti namanya, berupa huruf atau kombinasi huruf yang diapit tanda kutip dan dianggap sebagai tipe data karakter oleh R. Bisa berupa alfabet atau angka.
char <- "datacamp"
print(char)
[1] "datacamp"
class(char)
'character'
char <- "12345"
print(char)
[1] "12345"
class(char)
'character'
  • Logical: Variabel yang dapat bernilai True dan False seperti boolean disebut variabel logical.
log_true <- TRUE
print(log_true)
[1] TRUE
class(log_true)
'logical'
log_false <- FALSE
print(log_false)
[1] FALSE
class(log_false)
'logical'
  • Factor: Tipe data yang digunakan untuk menyatakan relasi kualitatif seperti warna, baik & buruk, rating kursus atau film, dan sebagainya. Berguna dalam pemodelan statistik.

Untuk mencapainya, Anda akan menggunakan fungsi c() yang mengembalikan vektor (satu dimensi) dengan menggabungkan semua elemen.

fac <- factor(c("good", "bad", "ugly","good", "bad", "ugly"))
print(fac)
[1] good bad  ugly good bad  ugly
Levels: bad good ugly
class(fac)
'factor'

Faktor fac memiliki tiga level yaitu good, bad, dan ugly, yang dapat diperiksa menggunakan kata kunci levels, dan tipe dari level adalah karakter.

levels(fac)
  1. 'bad'
  2. 'good'
  3. 'ugly'
nlevels(fac)
3
class(levels(fac))
'character'

Sebelum lanjut, mari pahami beberapa kiat penting yang bisa berguna!

  • Selalu ingat bahwa bahasa pemrograman R peka huruf besar-kecil (case-sensitive). Semua objek yang didefinisikan di atas harus digunakan dengan cara yang sama, baik huruf besar maupun kecil, seperti ditunjukkan pada contoh di bawah.
Num
Error in eval(expr, envir, enclos): object 'Num' not found
Traceback:
  • Di R, Anda dapat memeriksa semua variabel atau objek yang telah Anda definisikan di lingkungan kerja dengan menggunakan kata kunci ls(), seperti ditunjukkan di bawah.
ls()
  1. 'char'
  2. 'int'
  3. 'num'

List

Pengindeksan List di Python
(Sumber)

Berbeda dengan vektor, list dapat berisi elemen dari berbagai tipe data dan sering disebut sebagai kumpulan nilai yang terurut. List dapat berisi vektor, fungsi, matriks, bahkan list lain di dalamnya (nested-list).

List di R menggunakan indeks mulai dari satu (one-indexed), yakni indeks dimulai dari satu.

Mari pahami konsep list dengan contoh cepat yang berisi tiga tipe data berbeda disimpan dalam satu list.

lis1 <- 1:5  # Integer Vector
lis1
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
lis2 <- factor(1:5)  # Factor Vector
lis2
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
Levels:
  1. '1'
  2. '2'
  3. '3'
  4. '4'
  5. '5'
lis3 <- letters[1:5]  # Character Vector
lis3
  1. 'a'
  2. 'b'
  3. 'c'
  4. 'd'
  5. 'e'
combined_list <- list(lis1, lis2, lis3)
combined_list
    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
  1. Levels:
    1. '1'
    2. '2'
    3. '3'
    4. '4'
    5. '5'
    1. 'a'
    2. 'b'
    3. 'c'
    4. 'd'
    5. 'e'

Mari akses tiap vektor di dalam list secara terpisah. Untuk itu, Anda akan menggunakan double square brackets karena ketiga vektor ditempatkan pada satu level di dalam list. python combined_list[[1]]

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

python combined_list[[2]]

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
Levels:
  1. '1'
  2. '2'
  3. '3'
  4. '4'
  5. '5'
combined_list[[3]]
  1. 'a'
  2. 'b'
  3. 'c'
  4. 'd'
  5. 'e'

Sekarang, mari coba mengakses elemen kelima dari vektor ketiga, yang menghasilkan huruf e.

combined_list[[3]][5]
'e'

Terakhir, mari coba memipihkan (flatten) list. Satu hal penting untuk diingat adalah karena combined_list merupakan gabungan tipe data character dan numeric, maka tipe data character akan memiliki prioritas, dan tipe data seluruh list akan menjadi character.

flat_list <- unlist(combined_list)
class(flat_list)
'character'
flat_list
  1. '1'
  2. '2'
  3. '3'
  4. '4'
  5. '5'
  6. '1'
  7. '2'
  8. '3'
  9. '4'
  10. '5'
  11. 'a'
  12. 'b'
  13. 'c'
  14. 'd'
  15. 'e'
length(flat_list)
15

Vektor

vektor matriks
(Sumber)

Vektor adalah objek yang digunakan untuk menyimpan banyak informasi atau nilai dengan tipe data yang sama. Satu vektor tidak bisa berisi kombinasi integer dan karakter sekaligus. Misalnya, jika Anda ingin menyimpan total nilai 100 siswa, alih-alih membuat 100 variabel berbeda untuk tiap siswa, Anda akan membuat vektor dengan panjang 100 yang menyimpan seluruh nilai siswa tersebut.

Vektor dapat dibuat dengan fungsi c(), yang akan menggabungkan semua elemen dan mengembalikan array satu dimensi.

Mari buat vektor marks dengan data lima siswa bertipe numeric.

marks <- c(88,65,90,40,65)
class(marks)
'numeric'

Mari periksa panjang vektor, yang akan mengembalikan jumlah elemen di dalamnya.

length(marks)
5

Sekarang, mari coba mengakses elemen tertentu berdasarkan indeksnya.

marks[4]
40
marks[5]
65
marks[6] #mengembalikan NA karena tidak ada elemen keenam dalam vektor

<NA>

  • Slicing: Mirip dengan Python, konsep slicing juga dapat diterapkan di R.

    Mari coba mengakses elemen dari indeks kedua hingga kelima menggunakan slicing.

marks[2:5]
  1. 65
  2. 90
  3. 40
  4. 65

Sekarang buat vektor character yang mirip cara pembuatannya dengan vektor numeric.

char_vector <- c("a", "b", "c")
print(char_vector)
[1] "a" "b" "c"
class(char_vector)

'character'

length(char_vector)
3
char_vector[1:3]
  1. 'a'
  2. 'b'
  3. 'c'

Jika kita membuat vektor yang berisi nilai numeric dan character, nilai numeric akan dikonversi menjadi tipe data character.

char_num_vec <- c(1,2, "a")
char_num_vec
  1. '1'
  2. '2'
  3. 'a'
class(char_num_vec)
'character'

Mari buat vektor dengan 1024 nilai numeric dengan bantuan konsep slicing.

vec <- c(1:1024)

Sekarang, coba akses elemen tengah dan elemen terakhir. Untuk melakukannya, Anda akan menggunakan fungsi length.

vec[length(vec)]
1024
vec[length(vec)/2]
512
  • Bagaimana cara membuat vektor bilangan ganjil?

Untuk membuat vektor bilangan ganjil, Anda dapat menggunakan fungsi seq, yang menerima tiga parameter: awal, akhir, dan ukuran langkah.

seq(1,10, by = 2)
  1. 1
  2. 3
  3. 5
  4. 7
  5. 9

Matriks

matriks di r
(Sumber)

Mirip dengan vektor, matriks digunakan untuk menyimpan informasi dengan tipe data yang sama. Namun, berbeda dengan vektor, matriks mampu menyimpan informasi dua dimensi di dalamnya.

Sintaks untuk mendefinisikan matriks adalah:

M <- matrix(vector, nrow=r, ncol=c, byrow=FALSE, dimnames=list(char_vector_rownames, char_vector_colnames))

byrow=TRUE menandakan matriks diisi per baris. byrow=FALSE menunjukkan matriks diisi per kolom (default).

Mari cepat mendefinisikan matriks M berukuran $2\times3$.

M = matrix( c('AI','ML','DL','Tensorflow','Pytorch','Keras'), nrow = 2, ncol = 3, byrow = TRUE)
print(M)
     [,1]         [,2]      [,3]   
[1,] "AI"         "ML"      "DL"   
[2,] "Tensorflow" "Pytorch" "Keras"

Mari gunakan konsep slicing dan ambil elemen dari suatu baris dan kolom.

M[1:2,1:2] #dimensi pertama memilih kedua baris sedangkan dimensi kedua akan memilih
#elemen dari kolom ke-1 dan ke-2
Matriks: 2 × 2 bertipe chr
AI ML
Tensorflow Pytorch

DataFrame

data frame
(Sumber)

Berbeda dengan matriks, Data frame adalah bentuk yang lebih umum dari matriks. Ia berisi data dalam bentuk tabel. Data dalam data frame dapat tersebar di berbagai kolom dengan tipe data berbeda. Kolom pertama bisa berupa karakter, kolom kedua bisa berupa integer, dan kolom ketiga bisa logical.

Variabel atau fitur berada dalam bentuk kolom, juga dikenal sebagai header, sementara observasi berada dalam baris dengan elemen pertama sebagai nama baris diikuti oleh data aktual, juga dikenal sebagai data rows.

DataFrame dapat dibuat menggunakan fungsi data.frame().

DataFrame telah banyak digunakan untuk membaca file comma-separated (CSV), file teks. Penggunaannya tidak hanya terbatas pada membaca data, tetapi Anda juga dapat menggunakannya untuk masalah machine learning, terutama saat menangani data numerik. DataFrame berguna untuk memahami data, pengolahan data (wrangling), membuat plot dan visualisasi.

Mari buat dataset dummy dan pelajari beberapa fungsi khusus data frame.

dataset <- data.frame(
   Person = c("Aditya", "Ayush","Akshay"),
   Age = c(26, 26, 27),
   Weight = c(81,85, 90),
   Height = c(6,5.8,6.2),
   Salary = c(50000, 80000, 100000)
)
print(dataset)
  Person Age Weight Height Salary
1 Aditya  26     81    6.0  5e+04
2  Ayush  26     85    5.8  8e+04
3 Akshay  27     90    6.2  1e+05
class(dataset)
'data.frame'
nrow(dataset) # ini akan memberi Anda jumlah baris yang ada di dataframe dataset
3
ncol(dataset) # ini akan memberi Anda jumlah kolom yang ada di dataframe dataset
5
df1 = rbind(dataset, dataset) # penggabungan baris yang akan menambahkan argumen secara baris.
df1
Sebuah data.frame: 6 × 5
Person Age Weight Height Salary
<fct> <dbl> <dbl> <dbl> <dbl>
Aditya 26 81 6.0 5e+04
Ayush 26 85 5.8 8e+04
Akshay 27 90 6.2 1e+05
Aditya 26 81 6.0 5e+04
Ayush 26 85 5.8 8e+04
Akshay 27 90 6.2 1e+05
df2 = cbind(dataset, dataset) # penggabungan kolom yang akan menambahkan argumen secara kolom.
df2
Sebuah data.frame: 3 × 10
Person Age Weight Height Salary Person Age Weight Height Salary
<fct> <dbl> <dbl> <dbl> <dbl> <fct> <dbl> <dbl> <dbl> <dbl>
Aditya 26 81 6.0 5e+04 Aditya 26 81 6.0 5e+04
Ayush 26 85 5.8 8e+04 Ayush 26 85 5.8 8e+04
Akshay 27 90 6.2 1e+05 Akshay 27 90 6.2 1e+05

Mari lihat fungsi head yang sangat berguna ketika Anda memiliki jutaan catatan dan ingin melihat beberapa baris pertama data Anda. Demikian pula, fungsi tail akan menampilkan beberapa baris terakhir data Anda.

head(df1,3) # di sini hanya tiga baris yang akan dicetak
Sebuah data.frame: 3 × 5
  Person Age Weight Height Salary
  <fct> <dbl> <dbl> <dbl> <dbl>
1 Aditya 26 81 6.0 5e+04
2 Ayush 26 85 5.8 8e+04
3 Akshay 27 90 6.2 1e+05
str(dataset) #ini mengembalikan informasi kelas atau tipe data masing-masing untuk setiap kolom.
'data.frame':    3 obs. of  5 variables:
 $ Person: Factor w/ 3 levels "Aditya","Akshay",..: 1 3 2
 $ Age   : num  26 26 27
 $ Weight: num  81 85 90
 $ Height: num  6 5.8 6.2
 $ Salary: num  5e+04 8e+04 1e+05

Sekarang mari lihat fungsi summary(), yang berguna ketika Anda ingin memahami statistik dari dataset Anda. Seperti ditunjukkan di bawah, fungsi ini membagi data Anda menjadi tiga kuartil, berdasarkan itu Anda bisa memperoleh intuisi tentang distribusi data. Fungsi ini juga menunjukkan apakah ada nilai hilang dalam dataset Anda.

summary(dataset)
    Person       Age            Weight          Height        Salary      
 Aditya:1   Min.   :26.00   Min.   :81.00   Min.   :5.8   Min.   : 50000  
 Akshay:1   1st Qu.:26.00   1st Qu.:83.00   1st Qu.:5.9   1st Qu.: 65000  
 Ayush :1   Median :26.00   Median :85.00   Median :6.0   Median : 80000  
            Mean   :26.33   Mean   :85.33   Mean   :6.0   Mean   : 76667  
            3rd Qu.:26.50   3rd Qu.:87.50   3rd Qu.:6.1   3rd Qu.: 90000  
            Max.   :27.00   Max.   :90.00   Max.   :6.2   Max.   :100000  

Kesimpulan

Selamat telah menyelesaikan tutorial ini.

Tutorial ini merupakan titik awal yang baik bagi pemula yang ingin mempelajari bahasa pemrograman R. Sebagai latihan yang baik, silakan eksplor lebih banyak fungsi pembantu terkait tiap tipe data.

Masih banyak informasi terkait R yang belum dibahas seperti Kondisional dan Alur Kontrol di R, Utilitas di R, dan yang paling menarik Machine Learning menggunakan R, yang akan dibahas di tutorial mendatang, jadi pantau terus!

Jangan ragu untuk mengajukan pertanyaan terkait tutorial ini di kolom komentar di bawah.

Jika Anda ingin belajar lebih lanjut tentang R, ikuti kursus Intermediate R dari DataCamp dan lihat juga tutorial Introduction to Data frames in R.

Topik
R
Data Science

Pelajari lebih lanjut tentang R

Kursus

Pengantar R

4 jam
3.1M
Kuasai dasar analisis data di R, termasuk vectors, lists, dan data frames, lalu praktikkan R dengan data sets nyata.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya