Belajar R Programming
Materi Komunitas · 5 Juli 2026
Reproducible Reporting
Using Quarto
in RStudio
Ikang Fadhli
Market Researcher & Blogger
ikanx101.com
🙋
Siapa dari rekan-rekan di sini yang
kerjanya membuat report?
✍️
Siapa yang hobinya menulis blog,
artikel, jurnal penelitian,
atau membuat website?
📊
Siapa yang kerjanya membuat
dashboard Shiny di R?
Kabar baik buat kalian semua! 🎉
R + RStudio bisa mengerjakan SEMUA itu — dalam satu tools yang sama
📄
Report
PDF, Word, HTML — otomatis dari data terbaru, tanpa copy-paste manual
🌐
Website & Blog
Publish artikel dan analisis ke internet langsung dari RStudio
📊
Dashboard
Visualisasi interaktif dengan Shiny atau Observable JS
📽️
Presentasi
Slide deck modern dari kode R — seperti yang sedang kamu lihat ini!
📚
Buku
Multi-chapter, export ke PDF + EPUB sekaligus dalam satu project
Reproducible Reporting — Kenapa Harus Coding?
🍳 Analogi: Kode adalah resep masak. Bahan-bahan (data) boleh berganti setiap bulan, tapi proses dan hasilnya selalu konsisten — dan siapapun bisa mereplikasi laporan yang sama hanya dengan menjalankan kodenya. Tanpa resep, kamu memasak dari nol setiap hari.
📋 Cara Biasa — MS Office
  • Copy-paste data baru ke Excel setiap periode
  • Update chart dan tabel satu per satu secara manual
  • Angka di narasi bisa tidak sinkron dengan tabel
  • Data berubah? Ulang semua langkah dari awal
  • Orang lain tidak bisa verifikasi tanpa bantuanmu
⚡ Cara Coding — Quarto + R
  • Update data → semua output refresh otomatis
  • Tidak ada copy-paste = tidak ada human error
  • Satu template untuk puluhan laporan berbeda sekaligus
  • Siapapun bisa menjalankan ulang dan memverifikasi
  • Riwayat perubahan terlacak otomatis via git
Sejarah: R Markdown
2012
Package knitr lahir — dibuat oleh Yihui Xie dari RStudio. Fondasi ekosistem.
2014
Package rmarkdown dirilis resmi — knitr + pandoc dalam satu workflow
2016+
Ekosistem meluas: bookdown, blogdown, flexdashboard
Menggabungkan teks Markdown + kode R + output menjadi satu dokumen yang reproducible
Tim Pengembang
Yihui Xie — penulis utama knitr & rmarkdown
JJ Allaire — co-author, CEO RStudio
Garrett Grolemund — kontributor & edukator
Format Output
HTMLPDFWordBeamerioslides
Sejarah: xaringan
2016
Package xaringan dirilis oleh Yihui Xie, berbasis remark.js
2019
xaringanExtra & xaringanthemer lahir dari komunitas R
Kini
Masih aktif digunakan, terutama di komunitas R dan akademisi
Nama "xaringan" terinspirasi dari Sharingan — teknik mata sakti di anime Naruto! 👁️
Apa itu xaringan?
Package R untuk membuat presentasi menggunakan remark.js. Output-nya adalah slide HTML interaktif yang bisa dibuka di browser.
Kelebihan
Infinite canvas • Custom CSS bebas • Live reload • Komunitas template yang kaya
Quarto — Generasi Berikutnya
2022
Quarto v1.0 dirilis resmi oleh Posit (nama baru RStudio)
Tim Pengembang
JJ Allaire — CEO Posit, inisiator
Charles Teague — lead engineer
Christophe Dervieux — senior engineer
Multi-bahasa: RPythonJuliaObservable JS
vs R Markdown
Tidak bergantung pada R; satu sistem untuk semua bahasa; CLI mandiri; YAML lebih konsisten
vs xaringan
Menggunakan RevealJS yang lebih modern; fitur built-in lebih lengkap; integrasi kode lebih smooth
Unified Publishing
Satu tool untuk dokumen, presentasi, web, blog, dashboard, dan buku
Cara Instalasi Quarto
Langkah 1 — Download
Kunjungi quarto.org → klik Download → pilih installer sesuai OS (Windows / macOS / Linux)
Langkah 2 — RStudio
Quarto sudah bundled di RStudio versi 2022.07 ke atas. Update RStudio ke versi terbaru!
Langkah 3 — R Package
Install package quarto di R untuk fitur render programatik dari dalam skrip R
R + Terminal
# Install package quarto di R install.packages("quarto") # Cek versi Quarto di terminal quarto --version # Cek semua dependensi siap quarto check
💡 Jalankan quarto check di terminal — pastikan semua item menunjukkan tanda ✓ sebelum mulai kerja
Quarto · 01
Document
Laporan otomatis langsung dari data nyata
Quarto Document — Apa itu?
Dokumen yang menggabungkan narasi teks, kode, dan output dalam satu file .qmd — render ulang kapanpun data berubah
  • Render ulang → dokumen langsung update tanpa edit manual
  • Output bisa HTML, PDF, Word — pilih sesuai kebutuhan
  • TOC, nomor halaman, referensi — semua otomatis
  • Cocok untuk laporan rutin, analisis eksploratori, skripsi
Format Output
htmlpdfdocxodtepubtypst
Use Case Nyata
Laporan bulanan penjualan • Hasil survey • Analisis eksperimen • Skripsi / Tesis • Dokumen teknis tim
Reproducible = siapapun bisa menjalankan ulang dan mendapat hasil yang persis sama
Quarto Document — Contoh Kode
laporan.qmd
--- title: "Laporan Analisis Penjualan Bulanan" author: "Ikang Fadhli" date: "today" format: html: toc: true theme: cosmo code-fold: true embed-resources: true --- ## Pendahuluan Laporan ini dibuat otomatis dari data per tanggal `r Sys.Date()`. ```{r} #| label: fig-tren #| fig-cap: "Tren Penjualan Bulanan" #| echo: false library(tidyverse) df <- read_csv("data/penjualan.csv") df |> ggplot(aes(x = bulan, y = nilai)) + geom_line(color = "#4db6ff", linewidth = 1.5) + theme_minimal() ```
Render dengan: quarto render laporan.qmd atau klik tombol Render di RStudio
Quarto · 02
Presentation
Slide deck modern langsung dari kode R
Quarto Presentation — Apa itu?
Presentasi berbasis RevealJS yang dibuat dari file .qmd — heading Markdown secara otomatis menjadi slide baru
  • Heading ## = slide baru secara otomatis
  • Kode R/Python dijalankan dan outputnya muncul di slide
  • Speaker notes, sub-slides, animasi incremental built-in
  • Pengganti modern untuk xaringan
Format Output
revealjs HTML interaktif
beamer PDF via LaTeX
pptx PowerPoint
Fitur RevealJS
Sub-slides vertikal • Speaker mode • Fullscreen • Search • Multiplex • Export ke PDF
💡 Presentasi ini sendiri dibuat menggunakan konsep yang sama dengan Quarto Presentation!
Quarto Presentation — Contoh Kode
presentasi.qmd
--- title: "Analisis Data dengan R" author: "Ikang Fadhli" format: revealjs: theme: dark slide-number: true transition: slide incremental: true # bullet muncul satu per satu code-line-numbers: true --- ## Slide Pertama - Poin pertama - Poin kedua (muncul setelah klik) ## Slide dengan Visualisasi ```{r} plot(mtcars$mpg, mtcars$hp, col = "#4db6ff", pch = 19) ``` ## Slide dengan Speaker Notes Konten yang dilihat audiens. ::: {.notes} Catatan presenter — tekan S untuk speaker view. :::
Quarto · 03
Dashboard
Visualisasi interaktif tanpa ngoding UI dari nol
Quarto Dashboard — Apa itu?
Buat dashboard interaktif menggunakan layout berbasis baris dan kolom — tanpa perlu belajar Shiny UI dari awal
  • Layout grid otomatis: rows, columns, tabset
  • Mode statik: plotly, DT, leaflet — deploy sebagai HTML biasa
  • Mode Shiny: input/output reaktif penuh — butuh Shiny server
  • Value box, gauge, card — komponen siap pakai
Pengganti dari...
Quarto Dashboard = versi modern dari flexdashboard di R Markdown, dengan fitur yang jauh lebih lengkap
Mode Statik
Tidak butuh reaktivitas real-time — cukup filter dengan plotly atau crosstalk. Deploy gratis di GitHub Pages!
Mode Shiny
Input user mempengaruhi komputasi R di server secara real-time — butuh Shiny Server atau shinyapps.io
Quarto Dashboard — Contoh Kode
dashboard.qmd
--- title: "Dashboard Penjualan 2024" format: dashboard # server: shiny ← aktifkan jika pakai Shiny --- ## Row {height=35%} ```{r} #| content: valuebox #| title: "Total Penjualan" list(icon = "bag-check", color = "primary", value = "Rp 1.500.000") ``` ## Row {height=65%} ### Column {width=60%} ```{r} library(plotly) plot_ly(df, x = ~bulan, y = ~penjualan, type = "bar") ``` ### Column {width=40%} ```{r} library(DT) datatable(df, options = list(pageLength = 8)) ```
Quarto · 04
Website
Multi-halaman, deploy ke GitHub Pages dalam hitungan menit
Quarto Website
Buat website multi-halaman dari kumpulan file .qmd — navigasi, sidebar, dan search otomatis terbentuk dari konfigurasi YAML
📁 my-website/ ├── _quarto.yml # konfigurasi utama ├── index.qmd # halaman home ├── about.qmd ├── analisis.qmd └── styles.css
Deploy gratis: quarto publish gh-pages → langsung live di GitHub Pages!
_quarto.yml
project: type: website website: title: "Website Saya" navbar: left: - href: index.qmd text: Home - href: about.qmd text: About - href: analisis.qmd text: Analisis search: true format: html: theme: cosmo toc: true
Quarto · 05
Blog
Tulis, analisis, publikasikan — semuanya dari RStudio
Quarto Blog
Blog dengan listing halaman otomatis, RSS feed, kategori, dan tags — semua dari file .qmd
📁 my-blog/ ├── _quarto.yml ├── index.qmd # listing post └── posts/ ├── analisis-april/ │ └── index.qmd └── tutorial-ggplot/ ├── index.qmd └── thumbnail.png
💡 Blog post = cara terbaik mendokumentasikan analisis data + berbagi ilmu ke komunitas — persis seperti ikanx101.com!
posts/tutorial/index.qmd
--- title: "Visualisasi Data dengan ggplot2" author: "Ikang Fadhli" date: "2024-06-01" categories: [R, ggplot2, visualisasi] image: "thumbnail.png" description: "Panduan membuat chart yang informatif" --- Isi artikel di sini — kode R berjalan langsung, output otomatis muncul di halaman blog! ```{r} library(ggplot2) ggplot(mtcars, aes(mpg, hp)) + geom_point(color = "#4db6ff") + theme_minimal() ```
Quarto · 06
Book
Buku digital multi-bab dengan referensi silang otomatis
Quarto Book
Tulis buku multi-bab yang bisa di-render menjadi website, PDF, dan EPUB dari satu project yang sama
  • 📖
    Cross-reference antar bab, gambar, dan tabel otomatis
  • 🔍
    Search built-in pada versi web
  • 📥
    Download button untuk PDF & EPUB tersedia otomatis
  • 🌐
    Deploy ke GitHub Pages atau Quarto Pub — gratis
💡 Contoh nyata: buku R for Data Science 2nd Ed (Hadley Wickham) dibuat dengan Quarto!
_quarto.yml (book)
project: type: book book: title: "Belajar R dari Nol" author: "Ikang Fadhli" date: "2024" chapters: - index.qmd # Preface - bab01-intro.qmd - bab02-dataframe.qmd - bab03-visualisasi.qmd - bab04-model.qmd - references.qmd format: html: theme: cosmo pdf: documentclass: scrreprt epub: default
Pro Tips
Tips & Tricks
Fitur-fitur yang wajib kamu tahu
Cross-referencing Otomatis
Quarto membuat nomor referensi otomatis untuk gambar, tabel, dan section — bisa dikutip di mana saja dalam dokumen
  • 🖼️
    Gambar: @fig-nama → "Gambar 1"
  • 📋
    Tabel: @tbl-nama → "Tabel 2"
  • 🔢
    Persamaan: @eq-nama → "Persamaan 3"
  • 📑
    Section: @sec-nama → "Bagian 1.2"
contoh cross-ref
```{r} #| label: fig-distribusi #| fig-cap: "Distribusi skor nilai" hist(rnorm(1000), col = "#4db6ff", main = "Distribusi Normal") ``` Lihat @fig-distribusi untuk hasil distribusi nilai yang dibangkitkan. ```{r} #| label: tbl-ringkasan #| tbl-cap: "Ringkasan statistik" knitr::kable(summary(mtcars[,1:3])) ``` Tabel @tbl-ringkasan menunjukkan statistik deskriptif dataset mtcars.
Parameterized Report
Satu template .qmd bisa dirender berkali-kali dengan nilai berbeda — laporan per-region, per-produk, atau per-periode secara otomatis!
  • 1
    Definisikan params di YAML header
  • 2
    Gunakan params$nama di dalam kode R
  • 3
    Render batch lewat script R dengan purrr::walk
💡 Output otomatis: laporan-Jakarta.html, laporan-Surabaya.html, laporan-Bandung.html — sekaligus!
laporan-param.qmd + render.R
--- title: "Laporan `r params$region`" params: region: "Jakarta" # nilai default tahun: 2024 --- ```{r} df_filtered <- data |> filter(region == params$region, tahun == params$tahun) ``` --- render.R --- regions <- c("Jakarta", "Surabaya", "Bandung") purrr::walk(regions, \(r) quarto::quarto_render( "laporan-param.qmd", output_file = paste0("laporan-", r, ".html"), execute_params = list(region = r) ) )
Perbandingan: Rmd vs xaringan vs Quarto
FiturR MarkdownxaringanQuarto
Multi-bahasa (R, Python, Julia)
Dokumen (HTML / PDF / Word)
Presentasi modern~
Dashboard~ flexdashboard
Website & Blog & Book~ blogdown / bookdown
CLI mandiri (tanpa R)
Parameterized report
Cross-referencing built-in~ bookdown syntax
Terima Kasih!
Selamat bereksperimen
dengan Quarto!
Semua yang tadi kita bahas bisa dimulai hari ini — gratis.
📚
Dokumentasi
quarto.org/docs
Awesome Quarto
github.com/mcanouil/
awesome-quarto
✍️
Blog Saya
ikanx101.com
Ingat: Reproducible reporting bukan sekadar soal tools — ini tentang kebiasaan mendokumentasikan pekerjaan kita dengan baik sehingga bisa diulang, diverifikasi, dan dibangun bersama.
Ikang Fadhli • Market Researcher & Blogger • ikanx101.com