Lewati ke konten utama

File System I/O

File System I/O digunakan untuk membaca dan menulis file. Di R, file yang sering digunakan dalam praktikum adalah TXT, CSV, dan Excel.

Path File

Path adalah alamat lokasi file. Jika file berada di folder kerja yang sama, kita cukup menulis nama filenya.

print(getwd())

Penjelasan: getwd() menampilkan working directory yang sedang digunakan R.

Untuk mengganti working directory, gunakan setwd().

setwd("D:/praktikum")

Membaca File TXT

isi_file <- readLines("catatan.txt")

print(isi_file)

Penjelasan: readLines() membaca file teks per baris dan menyimpannya sebagai vector character.

catatan <- c("Belajar R", "Belajar data analysis")

writeLines(catatan, "catatan.txt")

Penjelasan: writeLines() menulis vector teks ke file.

Membaca File CSV

data <- read.csv("nilai.csv")

print(data)

Penjelasan: read.csv() membaca file CSV dan menghasilkan data frame.

data <- data.frame(
nama = c("Budi", "Ani", "Citra"),
nilai = c(80, 90, 75)
)

write.csv(data, "hasil_nilai.csv", row.names = FALSE)

Penjelasan: row.names = FALSE digunakan agar nomor baris tidak ikut disimpan sebagai kolom baru.

Membaca Excel

Untuk membaca Excel, kita bisa menggunakan package readxl.

install.packages("readxl")
library(readxl)

data <- read_excel("nilai.xlsx")

print(data)

Penjelasan: read_excel() membaca file .xlsx menjadi data frame atau tibble.

Untuk menulis Excel, kita bisa menggunakan package writexl.

install.packages("writexl")
library(writexl)

data <- data.frame(
nama = c("Budi", "Ani", "Citra"),
nilai = c(80, 90, 75)
)

write_xlsx(data, "hasil_nilai.xlsx")

Mengolah Kolom X1 sampai X5 dari CSV

Misalnya file CSV memiliki kolom x1 sampai x5. Kita bisa menghitung xbar dan R seperti berikut.

data <- read.csv("data_pengukuran.csv")

kolom_x <- data[, c("x1", "x2", "x3", "x4", "x5")]

data$xbar <- rowMeans(kolom_x)
data$R <- apply(kolom_x, 1, max) - apply(kolom_x, 1, min)

print(data)

Penjelasan: rowMeans() menghitung rata-rata per baris, sedangkan apply(..., 1, ...) menjalankan fungsi untuk setiap baris.

Membuat Folder Output

if (!dir.exists("output")) {
dir.create("output")
}

write.csv(data, "output/hasil.csv", row.names = FALSE)

Penjelasan: dir.exists() mengecek apakah folder sudah ada, sedangkan dir.create() membuat folder baru.

Error yang Sering Terjadi

  • File tidak ditemukan karena working directory berbeda.
  • Nama file salah ketik.
  • CSV menggunakan pemisah ;, tetapi dibaca dengan read.csv().
  • Package Excel belum di-install atau belum dipanggil dengan library().

Latihan Singkat

Coba buat program sederhana dengan ketentuan berikut:

  • Buat data frame berisi nama dan nilai.
  • Simpan data frame ke file CSV.
  • Baca kembali file CSV tersebut.
  • Tambahkan kolom status kelulusan.
  • Simpan hasil akhir ke folder output.