Modul 4: R - Library and Project Management

Studi Kasus: Big Project

Author

Tim Asisten Lab Matematika UI

Published

October 2, 2025

Kembali ke Arsip Praktikum PSD 2025

Tujuan Pembelajaran

Setelah menyelesaikan modul ini, mahasiswa diharapkan mampu:

  • 1. Mengelola Alur Kerja dengan RStudio Projects
    • Memahami pentingnya menggunakan project untuk menjaga keteraturan dan reproduktifitas.
    • Membuat sebuah project baru di RStudio.
    • Mengorganisir file skrip dan data dalam direktori project.
  • 2. Mengenali Tipe Objek Dasar di R
    • Membuat dan memanipulasi objek dasar seperti atomic vector.
    • Memahami struktur objek yang lebih kompleks seperti list dan data frame.
    • Memeriksa tipe dan struktur dari sebuah objek R menggunakan str().
  • 3. Memahami dan Mengelola R Packages
    • Memahami fungsi packages sebagai ekstensi fungsionalitas R.
    • Menginstal package baru dari CRAN.
    • Memuat package ke dalam sesi R untuk digunakan.
    • Mengakses dokumentasi dan halaman bantuan untuk fungsi dalam sebuah package.

Skenario: Proyek Perdana 🧑‍🔬

Selamat datang di proyek pertama Anda!

Bayangkan Anda baru saja bergabung sebagai analis data di sebuah perusahaan analitik game. Manajer Anda langsung memberikan sebuah tantangan besar yang diberi nama “Big Project”. Tugas Anda adalah membangun sebuah sistem untuk menganalisis probabilitas dalam permainan kartu, menggunakan data mentah dari puluhan ribu permainan.

Manajer Anda menekankan dua hal:

  1. Keteraturan adalah Kunci: Proyek ini akan berjalan lama dan melibatkan banyak file: skrip, set data, dan visualisasi. Kesalahan terbesar yang sering dilakukan analis junior adalah bekerja secara berantakan. Maka, tugas pertama Anda adalah membangun fondasi atau ‘garasi’ kerja yang rapi agar proyek ini terorganisir.
  2. Gunakan Alat yang Tepat: R yang Anda pasang sekarang itu ibarat mobil standar dari pabrik. Kemampuannya bagus, tapi terbatas. Untuk tugas analisis data modern yang kompleks, Anda butuh power tools—alat-alat khusus yang lebih canggih untuk memanipulasi dan memvisualisasikan data secara efisien.

Tugas kita dalam modul ini adalah mensimulasikan dan menyelesaikan dua persiapan fundamental tersebut. Kita akan belajar cara memasang power tools yang disebut Packages untuk meningkatkan kemampuan R kita secara drastis.

1. RStudio Projects: Membangun ‘Garasi’ Kerja

Setiap proyek analisis data yang serius harus dimulai dengan membuat “rumah”-nya sendiri. Di RStudio, rumah ini disebut Project. Ini memastikan semua file kita (skrip, data, dan hasil) berada di satu tempat yang aman dan terorganisir.

Sebuah project membuat pekerjaan Anda:

  • Self-contained: Semua yang dibutuhkan ada di dalam satu folder.
  • Portable: Mudah dipindahkan ke komputer lain tanpa merusak path file.
  • Reproducible: Orang lain (atau Anda di masa depan) bisa menjalankan ulang analisis Anda dengan mudah.

Studi Kasus: Membuat Garasi untuk “Big Project” Kartu

Mari kita ikuti langkah-langkah berikut untuk membuat ‘garasi’ resmi bagi proyek analisis kartu kita.

  1. Buat Project Baru: Di RStudio, klik File > New Project.... Pilih New Directory, lalu New Project. Beri nama direktori, misalnya Proyek_Analisis_Kartu, dan klik Create Project.

  2. Masuk ke Garasi Baru: RStudio akan me-restart. Perhatikan bahwa sekarang direktori kerja Anda sudah otomatis mengarah ke folder proyek yang baru saja dibuat.

  3. Buat Skrip R Baru: Klik File > New File > R Script. Di dalam skrip ini, ketikkan kode yang kita buat di Bagian 2 untuk membuat data frame deck.

R
# Skrip untuk membangun data deck kartu
face <- c("king", "queen", "jack", "ten")
suit <- c("spades", "spades", "spades", "spades")
value <- c(13, 12, 11, 10)

deck <- data.frame(face, suit, value)
  1. Simpan Skrip: Tekan Ctrl + S (atau Cmd + S) dan beri nama file, misalnya buat_deck.R. File ini akan otomatis tersimpan di dalam ‘garasi’ proyek Anda.

Selesai! Sekarang “Big Project” kita memiliki rumahnya sendiri. Semua ‘power tools’ yang kita pasang dan ‘bahan baku’ yang kita siapkan akan tersimpan rapi di sini, siap untuk tahap analisis selanjutnya.

1.1 Memasang Package

Anda hanya perlu menginstal sebuah package satu kali. Kita akan coba menginstal dplyr, sebuah package yang sangat populer untuk manipulasi data. Buka RStudio Anda dan ketik di konsol:

R
install.packages("dplyr")

1.2 Memuat Package

Setiap kali Anda memulai sesi R baru dan ingin menggunakan fungsi dari dplyr, Anda harus memuatnya terlebih dahulu dengan fungsi library().

R
library(dplyr)

1.3 Help

Bagaimana cara mengetahui fungsi apa saja yang ada di dplyr atau bagaimana cara menggunakannya? Gunakan tanda tanya ?. Misalnya, kita ingin tahu cara kerja fungsi mutate() dari dplyr.

R
?mutate

Perhatikan panel Help di RStudio, di sana akan muncul dokumentasi lengkapnya. Ini adalah keterampilan yang sangat penting.


2. Objek di R: Menyiapkan ‘Bahan Baku’

Setelah garasi siap, saatnya kita menyiapkan ‘bahan baku’ untuk diolah. Di R, semua data—dari angka tunggal hingga tabel kompleks—disimpan dalam wadah yang disebut objek. Memahami berbagai jenis ‘bahan baku’ ini adalah keterampilan fundamental yang membedakan analis data pemula dan profesional.

2.1. Atomic Vector: Bata Fondasi Proyek

Ini adalah tipe objek paling dasar, ibarat ‘bata’ atau ‘sekrup’ dalam proyek kita. Atomic vector adalah rangkaian nilai dengan tipe yang sama.

R
# Vector berisi angka
nilai_ujian <- c(85, 92, 78)

# Vector berisi teks
nama_mahasiswa <- c("Budi", "Ani", "Candra")

Rangkaian ini harus homogen. Anda tidak bisa mencampur teks dan angka dalam satu atomic vector tanpa R mengubah tipenya secara paksa (sebuah proses yang disebut coercion).

2.2. Enam Tipe Dasar Atomic Vector

Semua ‘bata’ di R memiliki material dasar. Ada enam tipe utama, namun empat di antaranya akan Anda gunakan 99% setiap saat.

Ini adalah tipe default untuk angka di R. Tipe ini bisa menampung angka desimal.

R
ipk <- c(3.55, 4.0, 2.89)
ipk
[1] 3.55 4.00 2.89
class(ipk) # class() memberitahu kita tipe objeknya
[1] "numeric"

Jika Anda yakin hanya akan bekerja dengan bilangan bulat, Anda bisa membuatnya secara eksplisit dengan menambahkan L di belakang angka. Ini menghemat memori.

R
jumlah_sks <- c(24L, 21L, 18L)
jumlah_sks
[1] 24 21 18
class(jumlah_sks)
[1] "integer"

Untuk menyimpan data teks. Selalu diapit oleh tanda kutip " atau '.

R
mata_kuliah <- c("Kalkulus", "Aljabar Linear", "Statistika")
mata_kuliah
[1] "Kalkulus"       "Aljabar Linear" "Statistika"    
class(mata_kuliah)
[1] "character"

Hanya bisa berisi tiga nilai: TRUE, FALSE, atau NA (Not Available/Missing). Sangat penting untuk operasi perbandingan dan filter.

R
lulus_ujian <- c(TRUE, TRUE, FALSE)
lulus_ujian
[1]  TRUE  TRUE FALSE
class(lulus_ujian)
[1] "logical"

2.3. Faktor: Mengelola Data Kategorikal

Dalam statistika, kita sering bekerja dengan variabel kategorikal (data yang nilainya terbatas pada beberapa level). Untuk “Big Project” kita, kolom face dan suit adalah contoh sempurna. Menyimpannya sebagai teks biasa itu kurang efisien. R punya tipe data khusus untuk ini: Faktor.

Faktor lebih pintar dari teks biasa karena R secara internal menyimpan “level” atau kategori yang mungkin ada. Ini sangat berguna untuk pemodelan dan visualisasi.

R
# Kita ubah vector 'face' dan 'suit' menjadi faktor
face_faktor <- factor(c("king", "queen", "jack", "ten"))
suit_faktor <- factor(c("spades", "spades", "spades", "spades"))

face_faktor
[1] king  queen jack  ten  
Levels: jack king queen ten
suit_faktor
[1] spades spades spades spades
Levels: spades

Perhatikan outputnya! R memberitahu kita apa saja Levels yang ada di dalam faktor tersebut.

2.4. Data Frame: Blueprint Data Utama

Sekarang kita bisa membangun Data Frame kita dengan ‘bahan baku’ yang lebih baik. Data frame adalah objek 2D yang ajaib karena bisa menampung kolom dengan tipe yang berbeda-beda (numeric, character, factor, dll.).

Mari kita rakit data frame untuk proyek kartu kita menggunakan character, factor, dan numeric.

R
# Buat tiga vector terpisah sebagai 'bahan baku'
face <- c("king", "queen", "jack", "ten")
suit <- c("spades", "spades", "spades", "spades")
value <- c(13, 12, 11, 10)

# Gabungkan menjadi satu blueprint data frame
deck <- data.frame(
  face = factor(face), # Langsung diubah jadi faktor
  suit = factor(suit),
  value = value
)

deck
   face   suit value
1  king spades    13
2 queen spades    12
3  jack spades    11
4   ten spades    10

2.5. List: Kotak Perkakas Serbaguna

Data frame mengharuskan semua kolomnya punya panjang yang sama. Tapi bagaimana jika kita ingin menyimpan beberapa jenis objek (seperti data frame, beberapa catatan proyek, dan sebuah vector) dalam satu wadah tanpa aturan tersebut? Kita gunakan list.

Sebuah list adalah objek paling fleksibel, ibarat kotak perkakas yang bisa diisi apa saja.

R
# Membuat list untuk menyimpan data frame dan info proyek
proyek_kartu <- list(
  nama_proyek = "Analisis Kartu Big Project",
  penanggung_jawab = c("Budi", "Ani"),
  data_utama = deck,
  sudah_dimulai = TRUE
)

proyek_kartu
$nama_proyek
[1] "Analisis Kartu Big Project"

$penanggung_jawab
[1] "Budi" "Ani" 

$data_utama
   face   suit value
1  king spades    13
2 queen spades    12
3  jack spades    11
4   ten spades    10

$sudah_dimulai
[1] TRUE

2.6. Mengakses Data di Dalam Objek (Indexing)

Menyimpan data itu satu hal, mengambilnya kembali adalah hal lain. Ini adalah keterampilan krusial. Ada tiga cara utama untuk “mencomot” data dari dalam objek:

Cara paling umum dan mudah dibaca untuk mengakses kolom dalam data.frame atau elemen dalam list yang memiliki nama.

R
# Mengambil kolom 'value' dari data frame 'deck'
deck$value
[1] 13 12 11 10
# Mengambil 'data_utama' dari list 'proyek_kartu'
proyek_kartu$data_utama
   face   suit value
1  king spades    13
2 queen spades    12
3  jack spades    11
4   ten spades    10

Sangat berguna untuk mengambil satu elemen dari list. Anda bisa menggunakan nama (dengan kutip) atau nomor posisinya.

R
# Mengambil elemen kedua ('penanggung_jawab') dari list
proyek_kartu[[2]]
[1] "Budi" "Ani" 
# Sama seperti proyek_kartu$nama_proyek
proyek_kartu[["nama_proyek"]]
[1] "Analisis Kartu Big Project"

Ini adalah alat paling serbaguna, digunakan untuk mengambil satu atau lebih elemen. Untuk data frame, formatnya adalah [baris, kolom].

R
# Mengambil baris pertama dari data frame 'deck' (semua kolom)
deck[1, ]
  face   suit value
1 king spades    13
# Mengambil kolom kedua dari data frame 'deck' (semua baris)
deck[, 2]
[1] spades spades spades spades
Levels: spades
# Mengambil nilai pada baris ke-3, kolom ke-1
deck[3, 1]
[1] jack
Levels: jack king queen ten

2.7. Inspeksi Objek Lanjutan

Setelah membuat dan memanipulasi objek, kita perlu cara cepat untuk memeriksanya. Berikut adalah tiga fungsi diagnostik yang akan Anda gunakan setiap hari.

str (structure) adalah teman terbaik Anda. Fungsi ini memberikan diagnosis cepat tentang struktur internal sebuah objek.

R
str(deck)
'data.frame':   4 obs. of  3 variables:
 $ face : Factor w/ 4 levels "jack","king",..: 2 3 1 4
 $ suit : Factor w/ 1 level "spades": 1 1 1 1
 $ value: num  13 12 11 10
str(proyek_kartu)
List of 4
 $ nama_proyek     : chr "Analisis Kartu Big Project"
 $ penanggung_jawab: chr [1:2] "Budi" "Ani"
 $ data_utama      :'data.frame':   4 obs. of  3 variables:
  ..$ face : Factor w/ 4 levels "jack","king",..: 2 3 1 4
  ..$ suit : Factor w/ 1 level "spades": 1 1 1 1
  ..$ value: num [1:4] 13 12 11 10
 $ sudah_dimulai   : logi TRUE

Perhatikan bagaimana str() dengan jelas menunjukkan mana kolom yang bertipe Factor, numeric, dll.

Memberikan ringkasan statistik untuk setiap kolom dalam data frame. Untuk kolom numerik, ia memberikan statistik deskriptif. Untuk kolom faktor, ia memberikan hitungan frekuensi.

R
summary(deck)
    face       suit       value      
 jack :1   spades:4   Min.   :10.00  
 king :1              1st Qu.:10.75  
 queen:1              Median :11.50  
 ten  :1              Mean   :11.50  
                      3rd Qu.:12.25  
                      Max.   :13.00  

Digunakan untuk “mengintip” beberapa baris pertama atau terakhir dari objek data Anda. Sangat berguna jika Anda bekerja dengan data yang sangat besar.

R
# Melihat 6 baris pertama
head(deck)
   face   suit value
1  king spades    13
2 queen spades    12
3  jack spades    11
4   ten spades    10
# Jika data kita besar, kita juga bisa melihat 6 baris terakhir
# tail(deck)

Kesimpulan

Luar biasa! Anda telah berhasil menyelesaikan tahap persiapan fundamental untuk “Big Project” Anda dengan alur kerja yang profesional. Anda kini tahu cara:

  1. Membangun ‘garasi’ kerja yang rapi dengan RStudio Projects.
  2. Mengambil ‘perkakas canggih’ (Packages) untuk mengolah bahan tersebut.
  3. Menyiapkan dan memahami ‘bahan baku’ (objek vector, data.frame, list) di dalamnya.

Dengan fondasi ini, Anda siap menghadapi tantangan analisis data yang lebih kompleks di modul-modul berikutnya.

Latihan Mini-Project

Untuk menguji pemahaman Anda, selesaikan tantangan terintegrasi berikut:

  1. Bangun Garasi Baru: Buat sebuah RStudio Project baru bernama Latihan_Modul_4.
  2. Siapkan Bahan Baku: Di dalam project tersebut, buat sebuah R Script baru. Di dalam skrip itu, buat sebuah list bernama proyek_pemain. List ini harus berisi dua item:
    • metadata: Sebuah character vector berisi nama Anda dan tanggal hari ini.
    • data_pemain: Sebuah data.frame dengan 3 kolom: nama (3 nama fiktif), id_pemain (3 ID fiktif), dan level (misal: “Gold”, “Silver”, “Bronze”).
    • Gunakan str() untuk menampilkan struktur dari list proyek_pemain tersebut.
  3. Ambil Perkakas Visualisasi:
    • Instal package ggplot2 (jika Anda belum punya).
    • Muat package ggplot2 menggunakan library().
    • Gunakan ?ggplot untuk membuka halaman bantuan dari fungsi utama package tersebut.

Simpan R skrip Anda. Jika Anda berhasil menyelesaikan semua langkah, Anda telah menguasai tiga pilar fundamental alur kerja analisis data di R!


Kembali ke Arsip Praktikum PSD 2025