Dua Cara Memakai R: Console vs Script
R punya console interaktif (sebuah REPL: read, evaluate, print, loop): kamu mengetik sebuah ekspresi, dan R langsung menjawab. Mengetik R di terminal, atau melihat panel bawah RStudio, memberimu prompt > tempat setiap baris dijalankan begitu kamu menekan Enter. Console adalah tempat kamu bereksplorasi: mengutak-atik data, menguji satu baris, melihat hasilnya.
Script R hanyalah file teks biasa berisi kode R, disimpan dengan ekstensi .R. Script adalah tempat analisis tinggal: resep yang bisa diulang, yang bisa dijalankan siapa pun (termasuk dirimu di masa depan) dari atas sampai bawah dan mendapat hasil yang sama.
Script bukan sesuatu yang aneh. Ini satu script yang lengkap, coba jalankan:
Semua yang ada di bawah ini membahas berbagai cara memberikan file seperti itu ke R.
Rscript: Menjalankan File dari Command Line
R memasang alat command line bernama Rscript yang dibuat persis untuk ini. Di terminal, di folder yang berisi file-mu:
Rscript summary.R
R menyala, menjalankan file dari atas sampai bawah, mencetak apa pun yang dicetak script itu, lalu keluar. Inilah andalan untuk otomatisasi: cron job, pipeline data, server, CI, di mana pun kode berjalan tanpa ada manusia yang mengawasi.
Ada satu perilaku yang pernah mengejutkan semua orang: di console, mengetik ekspresi polos seperti avg akan mencetak nilainya secara otomatis. Di bawah Rscript, ekspresi polos di dalam fungsi atau perulangan mungkin tidak mencetak apa pun, itulah sebabnya script menyatakan maksudnya dengan panggilan cat() atau print() yang eksplisit. Biasakan sejak awal.
source(): Menjalankan File dari Dalam R
Sudah berada di sesi R dan ingin menjalankan sebuah file? Itulah gunanya source():
source("summary.R")
Setiap baris file itu dijalankan di sesimu saat ini, dan apa pun yang didefinisikan script itu, seperti variabel dan fungsi, tetap ada sesudahnya. Justru itulah intinya: source() adalah cara memuat fungsi bantu buatanmu sendiri ke sesi interaktif.
Secara default, source() berjalan tanpa suara kecuali untuk output yang eksplisit. Untuk melihatnya bekerja, tampilkan setiap baris saat dijalankan:
source("summary.R", echo = TRUE)
Perhatikan path relatifnya: "summary.R" berarti "di working directory saat ini", dan letaknya bergantung pada cara kamu membuka R. Ketika source() atau read.csv() secara misterius tidak bisa menemukan file yang jelas-jelas ada di sana, working directory hampir selalu menjadi penyebabnya. Lihat working directory.
Menjalankan Script di RStudio
RStudio memberimu kedua mode lewat dua perintah, dan perbedaannya layak benar-benar dipahami:
- Run (Ctrl+Enter, Cmd+Enter di macOS): menjalankan baris saat ini atau bagian yang disorot di console. Ini mode eksplorasi: tulis satu baris, jalankan, lihat, sesuaikan.
- Source (tombol Source, atau Ctrl/Cmd+Shift+S): menjalankan seluruh file, persis seperti
source()di console.
Jebakan dari Run baris demi baris adalah sesi console-mu menumpuk state: variabel dari baris yang kemudian kamu edit atau hapus masih hidup, sehingga script itu "berhasil" bagimu dan gagal bagi orang lain. Ujian yang jujur untuk sebuah script adalah Source di sesi yang baru (Session → Restart R, lalu Source). Kalau script itu lolos, berarti ia reproducible.
Membuat Script Bisa Dieksekusi Langsung (macOS / Linux)
Di sistem mirip Unix, kamu bisa mengubah script R menjadi sebuah perintah tersendiri. Taruh baris shebang di bagian paling atas file:
#!/usr/bin/env Rscript
cat("I am a self-running R script\n")
Lalu tandai sebagai executable sekali saja, dan jalankan secara langsung:
chmod +x summary.R
./summary.R
Shebang memberi tahu shell interpreter mana yang menjalankan file itu; env Rscript menemukan Rscript di mana pun letaknya di PATH komputer tersebut. Karena barisnya diawali #, R sendiri membacanya sebagai komentar dan mengabaikannya.
Memberikan Argumen ke Script
Script sungguhan menerima input, seperti nama file, tanggal, atau ambang batas, yang diberikan sesudah nama script:
Rscript report.R sales.csv 2026
Di dalam script, commandArgs(trailingOnly = TRUE) mengembalikan argumenmu sebagai vector character (trailingOnly = TRUE membuang argumen internal milik interpreter, dan hampir selalu kamu butuhkan):
# report.R
args <- commandArgs(trailingOnly = TRUE)
input_file <- args[1]
year <- as.numeric(args[2])
cat("Reading:", input_file, "\n")
cat("Filtering to year:", year, "\n")
Semuanya datang sebagai teks, "2026", bukan 2026, jadi konversikan dengan as.numeric() sebelum menghitung. Kita bisa menyimulasikan logika parsing-nya dalam bentuk yang bisa dijalankan:
Mana yang Sebaiknya Kamu Pakai?
- Mengeksplorasi data, mencoba ide → console, atau Run di RStudio.
- Menjalankan seluruh analisismu → Source di RStudio, atau
Rscriptdi terminal. - Memuat fungsi bantumu ke dalam sesi →
source("helpers.R"). - Otomatisasi, penjadwal, pipeline →
Rscript, dengancommandArgs()untuk input.
Sintaks dari apa yang ditulis di dalam file-file itu adalah pelajaran berikutnya. Lihat sintaks R.
Yang Perlu Kamu Ingat
- Console untuk bereksplorasi; file script
.Runtuk analisis yang bisa diulang. Rscript file.Rmenjalankan script dari command line;source("file.R")menjalankannya di dalam sesi (tambahkanecho = TRUEuntuk melihat prosesnya).- Di RStudio, Run menjalankan satu baris; Source menjalankan seluruh file, dan Source di sesi baru adalah ujian reprodusibilitas yang sebenarnya.
#!/usr/bin/env Rscript+chmod +xmembuat script bisa dieksekusi langsung;commandArgs(trailingOnly = TRUE)membaca argumennya sebagai teks.
Berikutnya: sintaks R, yaitu assignment dengan <-, pemanggilan fungsi, dan aturan bahwa semuanya adalah vector.
Pertanyaan yang sering diajukan
Bagaimana cara menjalankan script R dari command line?
Pakai perintah Rscript yang sudah ikut terpasang bersama R: Rscript analysis.R. Perintah ini menjalankan file dari awal sampai akhir dan mencetak apa pun yang dicetak script itu. Inilah cara standar menjalankan R di tugas terjadwal, pipeline, dan server.
Apa bedanya Run dan Source di RStudio?
Run (Ctrl/Cmd+Enter) hanya menjalankan baris atau pilihan saat ini di console, ideal saat bereksplorasi. Source menjalankan seluruh file sekaligus, seperti yang dilakukan Rscript. Menjalankan Source pada script-mu dari sesi yang bersih adalah ujian sebenarnya bahwa script itu berjalan dari atas sampai bawah.
Apa fungsi source() di R?
source("script.R") membaca sebuah file dan menjalankan setiap barisnya di dalam sesi R yang sedang aktif, sehingga variabel dan fungsi apa pun yang didefinisikannya bisa kamu pakai. Tambahkan echo = TRUE supaya setiap baris juga dicetak saat dijalankan.
Bagaimana cara memberikan argumen ke script R?
Jalankan Rscript script.R value1 value2, lalu baca di dalam script dengan args <- commandArgs(trailingOnly = TRUE). Bagian trailingOnly = TRUE membuang argumen internal milik interpreter dan hanya menyisakan argumenmu. Semuanya datang sebagai teks, jadi konversikan angka dengan as.numeric().