Topik ini membahas langkah pertama bekerja dengan R: mengenal konsol sebagai tempat ekspresi diketik dan dievaluasi, menyimpan nilai ke dalam objek dengan tanda <-, serta membaca cara hasil ekspresi ditampilkan. Pembahasan juga mencakup komentar dan gaya penulisan yang menjaga kode tetap mudah dibaca. Setelah membacanya, perintah dasar dapat diketik langsung ke konsol dan keluarannya dapat ditafsirkan dengan benar, termasuk arti angka dalam kurung siku pada awal baris hasil.
Konsol sebagai REPL#
Konsol R bekerja menurut pola read-eval-print loop (REPL), yaitu siklus yang berulang tanpa henti. Konsol membaca ekspresi yang diketik, mengevaluasi ekspresi tersebut, mencetak hasilnya, lalu kembali menunggu ekspresi berikutnya. Satu baris perintah berarti satu siklus penuh. Pola ini menjadikan konsol tempat bereksperimen yang cepat karena setiap ekspresi langsung memperlihatkan akibatnya tanpa perlu menyimpan berkas atau menjalankan program secara utuh.
Dua ekspresi aritmetika berikut dievaluasi sebagai dua siklus yang berurutan.
2 + 3
100 / 8[1] 5
[1] 12.5Perhatikan baris keluaran [1] 5. Angka dalam kurung siku adalah indeks elemen pertama pada baris tersebut, bukan bagian dari nilai. Hasil 2 + 3 adalah sebuah vektor dengan satu elemen, dan [1] menyatakan bahwa angka 5 menempati posisi pertama vektor itu. Apabila keluaran memuat lebih banyak elemen sehingga melintasi beberapa baris, indeks elemen awal setiap baris dicetak ulang, sehingga posisi setiap nilai tetap dapat dilacak.
Ekspresi yang belum lengkap diperlakukan dengan cara khusus. Apabila sebuah kurung belum ditutup, konsol tidak melaporkan error melainkan menampilkan tanda + sebagai prompt lanjutan dan menunggu sisa ekspresinya. Penulisan dapat dilanjutkan pada baris berikutnya, dan R baru mengevaluasi setelah ekspresi terbaca utuh.
Penugasan dengan tanda <-#
Ekspresi yang hasilnya perlu dipakai kembali disimpan ke dalam objek melalui penugasan (assignment). R menggunakan tanda <- sebagai operator penugasan, yang dibaca sebagai “diberi nilai”. Pernyataan nilai_ali <- 85 membuat objek bernama nilai_ali dan menyimpan angka 85 ke dalamnya. Penugasan tidak mencetak apa pun, sehingga hasilnya baru tampak ketika nama objeknya diketik kembali.
nilai_ali <- 85
nilai_ali[1] 85Nama objek boleh memuat huruf, angka, titik, dan garis bawah, tetapi tidak boleh diawali angka. R peka terhadap besar kecil huruf (case-sensitive), sehingga Nilai_ali dan nilai_ali diperlakukan sebagai dua objek yang berbeda. Konvensi yang lazim menggunakan huruf kecil dengan garis bawah sebagai pemisah kata, sebagaimana nilai_ali pada contoh di atas.
Menampilkan hasil ekspresi#
Setelah dievaluasi pada tingkat teratas konsol, hasil ekspresi dicetak secara otomatis. Perilaku ini disebut auto-printing. Fungsi print() melakukan hal yang sama secara eksplisit, dan pada konsol keduanya memberikan keluaran yang identik. Auto-printing hanya berlaku untuk hasil yang ditandai terlihat, sedangkan penugasan tidak mencetak apa pun karena hasilnya ditandai tidak terlihat.
nilai_ali
print(nilai_ali)[1] 85
[1] 85Perbedaan keduanya muncul di luar konsol. Di dalam perulangan, definisi fungsi, atau skrip yang dijalankan dengan source(), hasil tidak dicetak otomatis, sehingga print() diperlukan untuk menampilkannya. Praktik yang disarankan adalah membiarkan auto-printing bekerja saat bereksperimen di konsol, kemudian menulis print() secara eksplisit begitu kode dipindahkan ke dalam fungsi atau perulangan. Dengan kebiasaan ini, kode yang sama berjalan baik di konsol maupun sebagai skrip. Pada keluaran angka, print() menerima argumen digits yang mengendalikan banyaknya angka penting yang ditampilkan.
Komentar dan gaya penulisan#
Baris yang diawali tanda # adalah komentar (comment) dan diabaikan sepenuhnya oleh R. Komentar ditujukan bagi pembaca manusia, bukan bagi mesin, sehingga isinya menjelaskan maksud langkah yang sedang dilakukan. Komentar yang baik menyatakan alasan sebuah langkah, bukan sekadar mengulang isi kodenya. Komentar boleh menempati satu baris penuh atau menempel di belakang pernyataan.
# nilai akhir dari dua komponen penilaian
tugas <- 80
ujian <- 90
(tugas + ujian) / 2 # rata-rata sederhana[1] 85Gaya penulisan yang rapi membuat kode lebih mudah diperiksa ulang. Aturan yang diterapkan sepanjang jalur ini sederhana: satu baris memuat satu pernyataan, spasi diberikan di sekitar operator seperti <-, +, dan /, serta spasi mengikuti setiap koma. R mengeksekusi kode berurutan dari atas ke bawah, sehingga sebuah objek hanya dapat digunakan pada baris-baris setelah penugasannya, tidak sebelumnya. Konsistensi lebih penting daripada aturan yang sempurna, karena kode dibaca berkali-kali setelah ditulis sekali.
Kesalahan umum#
Kesalahan yang paling sering muncul pada tahap ini adalah salah menuliskan besar kecil huruf pada nama objek. Kode berikut memanggil Nilai_ali dengan huruf besar pada awal nama, padahal objek yang tersimpan bernama nilai_ali.
Nilai_aliError: object 'Nilai_ali' not foundPesan object ... not found menandakan objek dengan nama tersebut tidak ada. Penyebabnya biasanya salah ketik, perbedaan kapitalisasi, atau penugasan yang belum pernah dijalankan. Daftar objek yang sudah ada dapat dilihat dengan ls(), dan perbaikannya adalah mengetik ulang nama persis seperti semula. Kesalahan lain yang lazim adalah kurung yang lupa ditutup. Konsol menanggapinya dengan prompt lanjutan +, bukan pesan error, sehingga pengetikan cukup dilanjutkan atau dibatalkan terlebih dahulu sebelum ekspresi disusun ulang.
Ringkasan#
- Konsol R bekerja sebagai REPL: ekspresi dibaca, dievaluasi, dan hasilnya dicetak, lalu siklus berulang untuk ekspresi berikutnya.
- Penugasan menggunakan tanda
<-, tidak mencetak apa pun, dan hasilnya tampil ketika nama objek diketik kembali. - Angka dalam kurung siku pada keluaran adalah indeks elemen pertama di baris tersebut, bukan bagian dari nilai.
- Komentar diawali
#dan diabaikan R. Satu baris memuat satu pernyataan dengan spasi di sekitar operator.
Referensi#
- An Introduction to R — CRAN — Bagian awal memperkenalkan sesi interaktif R, penugasan sederhana, dan evaluasi ekspresi aritmetika.
- R for Data Science, edisi ke-2 — Wickham, Çetinkaya-Rundel, Grolemund — Bab workflow basics memuat konvensi penamaan objek dan gaya penulisan kode R.