TL;DR
R masih relevan di 2025 buat tiga pekerjaan: uji statistik yang udah ada di bawaan bahasanya, grafik eksplorasi yang cepat lewat ggplot2, dan laporan yang bisa dibikin ulang lewat Quarto. Buat analis yang kerjaannya banyak nguji hipotesis dan bikin laporan berkala, R sering lebih ringkas daripada Python. Buat yang kerjaannya nyambung ke aplikasi atau pipeline produksi, Python lebih pas.
R masih relevan di 2025 karena tiga hal yang belum dikalahkan: uji statistik yang udah nempel di bahasanya, grafik eksplorasi yang cepat, dan laporan yang bisa dibikin ulang persis sama tiap bulan.
Python punya lebih banyak pemakai dan lebih banyak lowongan. Itu fakta yang nggak perlu dibantah.
Tapi kalau kerjaanmu banyak nguji hipotesis dan bikin laporan berkala, R sering nyelesaiin hal yang sama dengan kode yang jauh lebih pendek. Aku bahas di mana batasnya.
R adalah bahasa pemrograman gratis yang dirancang khusus buat komputasi statistik dan grafik. Dia lahir di lingkungan akademis dan dirawat oleh R Foundation, jadi prioritasnya beda dari bahasa umum: yang didahulukan itu ketepatan statistik dan kemudahan analisis, bukan kecepatan bikin aplikasi. Keterangan resminya ada di halaman about R Project.
Konsekuensinya kelihatan di kode. Uji t di R cuma satu baris, tanpa impor apa pun.
t.test(omzet ~ kelompok, data = toko)
Hasilnya langsung berisi nilai t, derajat kebebasan, nilai p, dan selang kepercayaan. Nggak perlu nyusun sendiri.
Regresi linear, analisis ragam, uji proporsi, uji normalitas, semuanya ada tanpa pasang paket tambahan.
model <- lm(omzet ~ jumlah_promo + hari_libur, data = toko)
summary(model)
Keluaran summary udah nyantumin koefisien, galat baku, nilai p, dan R kuadrat dalam satu tabel yang siap dibaca. Kalau kamu belum akrab sama cara bacanya, ada di artikel cara baca nilai signifikansi dan glossary regression.
Grafik yang dipecah per kategori cuma butuh satu baris tambahan.
library(ggplot2)
ggplot(toko, aes(x = tanggal, y = omzet)) +
geom_line(color = "#0891b2") +
facet_wrap(~ cabang)
Tiga baris itu ngasih 12 grafik garis, satu per cabang, dengan skala sumbu yang seragam. Di matplotlib, hal yang sama biasanya makan sembilan sampai dua belas baris karena perulangan dan pengaturan sumbunya manual.
Selisih enam baris kedengeran kecil. Waktu kamu ngulangin pola ini 20 kali dalam sehari eksplorasi, selisihnya jadi terasa.
Quarto dan R Markdown bikin kamu nulis analisis dan narasi di satu file, terus dicetak jadi PDF, HTML, atau Word. Angkanya dihitung ulang tiap kali dijalanin, jadi nggak ada lagi angka lama yang ketinggalan di paragraf.
Buat laporan bulanan yang isinya sama tapi datanya baru, ini menghapus seluruh kerjaan salin tempel.
Analisis survival, model campuran, peramalan deret waktu, analisis survei berbobot. Bidang-bidang ini punya paket R yang matang dan ditulis sama orang yang menulis metodenya.
| Situasi | Pilihan yang lebih pas | Alasan |
|---|---|---|
| Analisis harus jalan di pipeline produksi | Python | Dukungan orkestrator dan penerapan lebih matang |
| Perlu nyambung ke API dan aplikasi | Python | Pustaka pendukungnya lebih banyak |
| Machine learning skala besar | Python | Ekosistemnya jauh lebih dalam |
| Uji statistik dan laporan berkala | R | Kode lebih pendek, hasil lebih lengkap |
| Eksplorasi visual yang cepat | R | ggplot2 lebih ringkas buat grafik bertingkat |
| Tim kamu udah pakai salah satunya | Ikut tim | Bisa saling bantu itu lebih berharga dari pilihan optimal di kertas |
Perbandingan yang lebih luas, termasuk dengan SPSS, ada di SPSS vs R vs Python.
Pertanyaannya sederhana: promo diskon 15% yang jalan dua minggu itu ngangkat omzet atau nggak. Datanya 12 cabang, 84 hari, satu baris per cabang per hari.
Alurnya di R:
library(dplyr)
library(ggplot2)
ringkas <- toko %>%
group_by(cabang, periode) %>%
summarise(rata_omzet = mean(omzet), .groups = "drop")
# Uji beda rata-rata sebelum dan selama promo
t.test(omzet ~ periode, data = toko)
ggplot(ringkas, aes(x = periode, y = rata_omzet, group = cabang)) +
geom_line(alpha = 0.6, color = "#0891b2") +
geom_point(color = "#f97316")
Hasilnya:
| Angka | Nilai |
|---|---|
| Rata-rata omzet harian sebelum promo | Rp 3.410.000 |
| Rata-rata omzet harian selama promo | Rp 3.980.000 |
| Kenaikan | Rp 570.000 per hari, sekitar 17% |
| Cabang yang justru turun | 3 dari 12 |
Yang menarik justru tiga cabang yang turun. Grafik garis per cabang langsung nunjukin mereka, dan ketiganya ada di lokasi yang omzetnya paling tinggi sebelum promo. Diskon 15% di sana motong margin tanpa nambah pembeli.
Kalau cuma lihat rata-rata gabungan, promo ini kelihatan berhasil. Grafik yang pecah per cabang bikin ceritanya lebih jujur. Angka ekstrem semacam ini kadang juga perlu dicek sebagai outlier sebelum diambil kesimpulan.
Seluruh proses ini, dari baca CSV sampai grafik jadi, muat di 14 baris kode.
str dan summary, dan pahami bentuk data frame.filter, select, mutate, group_by, dan summarise. Kalau kamu udah bisa SQL, ini gampang karena logikanya mirip.Uji statistik dipelajari belakangan, waktu ada pertanyaan yang beneran butuh. Belajar t.test tanpa punya hipotesis yang mau diuji bakal cepat lupa.
dplyr susah dibaca. Pilih satu gaya per proyek.Masih dipakai di industri, cuma sebarannya nggak merata. Paling banyak di riset pasar, farmasi, keuangan, lembaga statistik, dan tim yang kerjanya nguji hipotesis. Di tim produk dan startup teknologi, Python lebih dominan karena nyambung langsung ke aplikasi. Jadi jawabannya tergantung industri tujuanmu, bukan tergantung bahasanya masih hidup atau nggak.
Kalau kamu belum kuat SQL dan spreadsheet, dua-duanya kecepetan. Kalau keduanya udah lancar, pilih berdasarkan kerjaan yang kamu incar. Analisis statistik, riset, dan laporan berkala condong ke R. Otomatisasi, integrasi aplikasi, dan machine learning condong ke Python. Belajar dua-duanya barengan bikin kamu setengah bisa di keduanya.
ggplot2 nyusun grafik dari lapisan yang punya aturan tetap: data, pemetaan kolom ke sumbu, lalu bentuk geometrinya. Karena aturannya konsisten, grafik yang pecah per kategori cuma butuh satu baris tambahan. Di matplotlib, hal yang sama biasanya perlu perulangan dan pengaturan sumbu manual. Buat eksplorasi cepat, selisih ini kerasa tiap hari.
Bisa. Paket DBI plus driver seperti RPostgres bikin kamu bisa nulis query langsung dari R dan nerima hasilnya sebagai data frame. Banyak analis pakai pola ini: ambil dan agregasi berat di SQL, lalu bawa hasil yang udah kecil ke R buat uji statistik dan grafik. Ini juga bikin beban ke database tetap ringan.
Empat hal, urut: struktur data frame, paket dplyr buat menyaring dan meringkas, ggplot2 buat grafik, lalu Quarto buat laporan. Empat ini nutup sebagian besar kerjaan analis. Fungsi statistik bawaan seperti t.test dan lm bisa dipelajari sambil jalan waktu ada pertanyaan yang butuh. Hindari mulai dari pemrograman tingkat lanjut.
Tiga hal yang perlu nempel:
Kalau kamu penasaran, ambil satu data kerjaanmu minggu ini dan coba bikin grafik yang dipecah per kategori pakai ggplot2. Tiga baris. Kalau kamu suka hasilnya, lanjut. Kalau nggak, kamu cuma kehilangan setengah jam.
Lanjut baca belajar Python untuk data analyst buat lihat sisi sebelahnya, atau SQL untuk analisis data kalau kamu mau memperkuat pondasi yang paling sering kepakai dulu.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Kolom datetime nyimpen tanggal, jam, hari, semuanya nempel jadi satu. Accessor .dt di pandas ngeluarin tiap bagian jadi kolom sendiri buat dianalisa.
Nama toko ketik campur huruf besar-kecil, spasi nyasar di ujung, atau kode produk nempel jadi satu. Accessor .str di pandas ngerapiin semua itu tanpa loop.
Model machine learning cuma ngerti angka, bukan teks kayak merah atau biru. get_dummies ngubah kolom kategori jadi kolom 0/1 dalam satu baris kode.