> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Kode R (knitr)

Overleaf menyediakan integrasi dengan **knitr**, yang memungkinkan Anda menambahkan kode R ke dokumen LaTeX Anda untuk menghasilkan keluaran dinamis.

Dokumen yang berisi kode R harus disimpan dengan ekstensi `.Rtex` atau `.Rnw`, jika tidak, kode tersebut tidak akan berfungsi. Mari kita lihat contohnya:

```latex wrap theme={null}
\documentclass{article}
\begin{document}

You can type R commands in your \LaTeX{} document which will be processed and their output included in the document:

<<>>=
# Create a sequence of numbers
X = 2:10

# Display basic statistical measures
summary(X)

@
\end{document}
```

<img src="https://mintcdn.com/ayakaleaf-pro/v5p5w9EX1_dka_GD/images/texlive/knitrdemo1.png?fit=max&auto=format&n=v5p5w9EX1_dka_GD&q=85&s=4cd20c6acbeeab2b1ae2b115efece70d" alt="KnitrDemo1.png" width="2150" height="681" data-path="images/texlive/knitrdemo1.png" />

[Buka contoh `knitr` ini di Overleaf](https://www.overleaf.com/project/new/template/20421?id=69881107\&templateName=Knitr+demo+1\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Seperti yang Anda lihat, teks di antara karakter `<<>>=` dan `@` adalah kode R. Kode ini beserta keluarannya dicetak dalam format seperti listing. Potongan kode ini dapat menerima beberapa parameter tambahan untuk menyesuaikan keluaran dinamis, seperti yang dijelaskan di bagian berikutnya.

### Potongan kode (chunk)

Blok kode seperti yang ditampilkan di bagian sebelumnya biasanya disebut *chunk*. Anda dapat mengatur beberapa opsi tambahan pada chunk knitr. Lihat contoh di bawah ini:

```latex wrap theme={null}
\documentclass{article}
\begin{document}

You can type R commands in your \LaTeX{} document which will be processed and their output included in the document:

<<echo=FALSE, cache=TRUE>>=
# Create a sequence of numbers
X = 2:10

# Display basic statistical measures
summary(X)

@
\end{document}
```

<img src="https://mintcdn.com/ayakaleaf-pro/v5p5w9EX1_dka_GD/images/texlive/screenshot-2025-12-16-143420.png?fit=max&auto=format&n=v5p5w9EX1_dka_GD&q=85&s=9c79c98b1894d1cd22f783c29356de1f" alt="KnitrDemo2.png" width="1910" height="559" data-path="images/texlive/screenshot-2025-12-16-143420.png" />

[Buka contoh `knitr` ini di Overleaf](https://www.overleaf.com/project/new/template/20423?id=69885763\&templateName=Knitr+demo+2\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Ada dua opsi tambahan yang diberikan di dalam `<<` dan `>>`.

* `echo=FALSE` Opsi ini menyembunyikan kode dan hanya mencetak keluaran yang dihasilkan oleh R.
* `cache=TRUE` Jika cache diatur ke true, chunk tidak dijalankan, hanya objek yang dihasilkannya yang digunakan. Ini menghemat waktu jika data dalam chunk tersebut tidak berubah.

  <Info><em>Perlu dicatat bahwa opsi cache=TRUE saat ini tidak didukung di Overleaf, tetapi seharusnya berfungsi secara lokal.</em></Info>

Lihat [panduan referensi](https://learn.overleaf.com/learn/Knitr#Reference_guide) untuk opsi lainnya.

### Perintah inline

Objek yang dihasilkan dalam chunk dapat diakses dan dicetak secara inline.

```latex wrap theme={null}
\documentclass{article}
\begin{document}

You can type R commands in your \LaTeX{} document which will be processed and their output included in the document:

<<echo=FALSE, cache=TRUE>>=
# Create a sequence of numbers
X = 2:10

# Display basic statistical measures
summary(X)

@

So, the mean of the data is $\Sexpr{mean(X)}$
\end{document}
```

<img src="https://mintcdn.com/ayakaleaf-pro/v5p5w9EX1_dka_GD/images/texlive/screenshot-2025-12-16-143647.png?fit=max&auto=format&n=v5p5w9EX1_dka_GD&q=85&s=8b59926a477373b2787f884267d7c263" alt="KnitrDemo3.png" width="1910" height="630" data-path="images/texlive/screenshot-2025-12-16-143647.png" />

[Buka contoh `knitr` ini di Overleaf](https://www.overleaf.com/project/new/template/20425?id=69886866\&templateName=Knitr+demo+3\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Perintah `\Sexpr{mean(X)}` mencetak keluaran yang dikembalikan oleh kode R `mean(X)`. Di dalam kurung kurawal, perintah R apa pun dapat diberikan.

### Plot

Plot juga dapat ditambahkan ke dokumen knitr, seperti pada contoh berikut:

```latex wrap theme={null}
\documentclass{article}
\begin{document}

<<plot1, fig.pos="t", fig.height=4, fig.width=4, fig.cap="First plot">>=

xdata = read.csv(file="data.txt", head=TRUE,sep=" ")

hist(xdata$data, main="Overleaf histogram", xlab="Data")

@

The figure \ref{fig:plot1} is simple histogram.

\end{document}
```

<img src="https://mintcdn.com/ayakaleaf-pro/GmaXa-Cu4QQRFT4C/images/texlive/screenshot-2025-12-16-143811.png?fit=max&auto=format&n=GmaXa-Cu4QQRFT4C&q=85&s=af1985b1e5b5ce56b777c5d9e3066420" alt="KnitrDemo4.png" width="1915" height="756" data-path="images/texlive/screenshot-2025-12-16-143811.png" />

[Buka contoh `knitr` ini di Overleaf](https://www.overleaf.com/project/new/template/20427?id=69890965\&templateName=Knitr+demo+3\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Histogram ini menggunakan data yang tersimpan di "data.txt", yang disimpan di direktori kerja saat ini. Beberapa opsi terkait gambar diberikan ke chunk tersebut.

`plot1` Ini adalah label yang digunakan untuk mereferensikan plot. Prefiks "fig:" wajib digunakan. Anda dapat melihat pada contoh bahwa gambar direferensikan dengan `\ref{fig:plot1}`. `fig.pos="t"` parameter posisi. Ini sama dengan yang digunakan pada [lingkungan figure](https://learn.overleaf.com/learn/Positioning_images_and_tables#The_figure_environment). `fig.height=4, fig.width=4` Lebar dan tinggi gambar. `fig.cap="First plot"` Keterangan (caption) untuk gambar.

### Skrip R eksternal

Anda dapat mengimpor bagian dari skrip R eksternal ke dalam dokumen knitr. Ini sangat membantu karena cukup umum untuk menulis dan men-debug skrip di program eksternal sebelum memasukkannya ke dalam dokumen Anda.

Misalkan kita memiliki kode R berikut dalam file bernama `mycode.R` yang kita sertakan dalam dokumen LaTeX kita:

```r theme={null}
## ---- myrcode1
# Create a sequence of numbers
 X = 2:10

## ---- myrcode2
# Display basic statistical measures
summary(X)
```

Perhatikan baris:

```r theme={null}
## ---- myrcode1
```

dan

```r theme={null}
## ---- myrcode2
```

Baris-baris ini menandai awal sebuah chunk kode dan wajib ada jika Anda ingin menggunakan skrip ini dalam dokumen, seperti yang ditunjukkan pada potongan kode berikut:

```r theme={null}
The chunk below will not be printed

<<echo=FALSE, cache=FALSE>>=
read_chunk("mycode.R")
@

The code must show up here

<<myrcode2>>=

@
```

<img src="https://mintcdn.com/ayakaleaf-pro/v5p5w9EX1_dka_GD/images/texlive/knitrdemo5.png?fit=max&auto=format&n=v5p5w9EX1_dka_GD&q=85&s=0f1fd4088c9359058547a7c58f121bd5" alt="KnitrDemo5.png" width="1544" height="436" data-path="images/texlive/knitrdemo5.png" />

Chunk pertama tidak dicetak dan hanya digunakan untuk mengimpor skrip dengan perintah `read_chunk("mycode.R")`. Itulah sebabnya opsi `echo=FALSE` diatur. Selain itu, skrip tidak boleh di-cache. Setelah skrip diimpor, Anda dapat mencetak sebuah chunk menggunakan label yang Anda tetapkan setelah `## ----`. Dalam kasus ini adalah `myrcode2`.

Kami telah memasukkan semua potongan kode dalam artikel ini ke dalam sebuah proyek yang [dapat Anda Buka di Overleaf](https://www.overleaf.com/project/new/template/20429?id=69894649\&templateName=Knitr+full+demo\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=).

### Panduan referensi

Beberapa opsi chunk:

* `results`. Mengubah perilaku hasil yang dihasilkan oleh kode R. Nilai yang mungkin adalah:
  * `markup` Menggunakan LaTeX untuk memformat keluaran.
  * `asis` Mencetak hasil mentah dari R.
  * `hold` Menahan hasil keluaran dan menempatkannya di akhir chunk.
  * `hide` Menyembunyikan hasil.
* `echo`. Apakah akan menyertakan kode sumber R. Parameter lainnya meliputi:
  * `echo=2:3` hanya mencetak baris kedua dan ketiga;
  * `echo=-2:-3` hanya mengecualikan baris kedua dan ketiga.
* `cache`. Apakah akan meng-cache chunk kode. Nilai yang mungkin adalah: `TRUE` dan `FALSE`
* `highlight`. Apakah akan menyorot (highlight) kode sumber. Nilai yang mungkin adalah: `TRUE` dan `FALSE`
* `background`. Warna latar belakang chunk. Format rgb dan HTML dapat digunakan. Nilai default-nya adalah *"#F7F7F7"*.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.