> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/id/topik-lainnya/29-knitr.md).

# Knitr

Seperti dicatat di Wikipedia, [Knitr adalah mesin untuk pembuatan laporan dinamis dengan R](https://en.wikipedia.org/wiki/Knitr), sebuah bahasa pemrograman yang berorientasi pada statistik. Artikel ini menjelaskan cara menambahkan kode R ke dokumen LaTeX Anda untuk menghasilkan keluaran dinamis.

Dalam distribusi LaTeX standar, Anda harus menyiapkan R di sistem operasi Anda dan menjalankan beberapa perintah khusus untuk mengompilasinya. Overleaf dapat menyelamatkan Anda dari kerepotan itu, **knitr** bekerja langsung tanpa konfigurasi tambahan.

## Pendahuluan

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

```latex
\documentclass{article}
\begin{document}

Anda dapat mengetik perintah R di dokumen \LaTeX{} Anda yang akan diproses dan keluarannya disertakan dalam dokumen:

<<>>=
# Buat urutan angka
X = 2:10

# Tampilkan ukuran statistik dasar
summary(X)

@
\end{document}
```

![KnitrDemo1.png](/files/406b288e964182ac12a54893059a185f539ebddf)

&#x20;[Buka `knitr` contoh 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 dan keluarannya dicetak dalam format seperti daftar. Potongan kode ini dapat menerima beberapa parameter tambahan untuk menyesuaikan keluaran dinamis. Lihat bagian berikutnya.

## Potongan kode

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

```latex
\documentclass{article}
\begin{document}

Anda dapat mengetik perintah R di dokumen \LaTeX{} Anda yang akan diproses dan keluarannya disertakan dalam dokumen:

<<echo=FALSE, cache=TRUE>>=
# Buat urutan angka
X = 2:10

# Tampilkan ukuran statistik dasar
summary(X)

@
\end{document}
```

![KnitrDemo2.png](/files/6d2ad7e17328bfb75d30542dcd6060e7cdf39b4c)

&#x20;[Buka `knitr` contoh 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 tiga opsi tambahan yang diterapkan di dalam `<<` dan `>>`.

**echo=FALSE**

Ini menyembunyikan kode dan hanya mencetak keluaran yang dihasilkan oleh R.

**cache=TRUE**

Jika cache disetel ke true, chunk tidak dijalankan, hanya objek yang dihasilkannya. Ini menghemat waktu jika data dalam chunk tersebut tidak berubah. Perhatikan bahwa opsi cache=TRUE saat ini tidak didukung di Overleaf, tetapi seharusnya berfungsi secara lokal.

Lihat [panduan referensi](#reference-guide) untuk opsi lainnya.

## Perintah sebaris

Dimungkinkan untuk mengakses objek yang dihasilkan dalam chunk dan mencetaknya secara sebaris.

```latex
\documentclass{article}
\begin{document}

Anda dapat mengetik perintah R di dokumen \LaTeX{} Anda yang akan diproses dan keluarannya disertakan dalam dokumen:

<<echo=FALSE, cache=TRUE>>=
# Buat urutan angka
X = 2:10

# Tampilkan ukuran statistik dasar
summary(X)

@

Jadi, rata-rata datanya adalah $\Sexpr{mean(X)}$
\end{document}
```

![KnitrDemo3.png](/files/59467a1e022e620d964b95a0ae7b561fb06d3f3a)

&#x20;[Buka `knitr` contoh 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 sebuah **knitr** dokumen. Lihat contoh berikut

```latex
\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")

@

Gambar \ref{fig:plot1} adalah histogram sederhana.

\end{document}
```

![KnitrDemo4.png](/files/a4fdfe62d1f4ce5a5753542b0bfcba5c23f7c31b)

&#x20;[Buka `knitr` contoh 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 disimpan dalam "data.txt", yang disimpan di direktori kerja saat ini. Beberapa opsi yang terkait dengan gambar diterapkan ke chunk.

**plot1**

Ini adalah label yang digunakan untuk mereferensikan plot. Awalan "fig:" wajib. Anda dapat melihat pada contoh bahwa gambar direferensikan dengan \ref{fig:plot1}.

**fig.pos="t"**

Parameter penempatan. Ini sama seperti yang digunakan dalam lingkungan figure.

**fig.height=4, fig.width=4**

Lebar dan tinggi gambar.

**fig.cap="First plot"**

Keterangan untuk gambar.

## Skrip R eksternal

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

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

```latex
## ---- myrcode1
# Buat urutan angka
 X = 2:10

## ---- myrcode2
# Tampilkan ukuran statistik dasar
summary(X)
```

Perhatikan baris

```latex
## ---- myrcode1
```

dan

```latex
## ---- myrcode2
```

Ini menandai awal dari sebuah potongan kode dan wajib jika Anda ingin menggunakan skrip ini dalam dokumen kita, seperti ditunjukkan pada fragmen kode berikut:

```latex
Chunk di bawah ini tidak akan dicetak

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

Kode harus muncul di sini

<<myrcode2>>=

@
```

![KnitrDemo5.png](/files/5862146fae1a82ad75d89ad45c3370e1891b412d)

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

Kami telah menempatkan semua fragmen kode artikel 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**

* `hasil`. Mengubah perilaku hasil yang dihasilkan oleh kode R, nilai yang mungkin adalah
  * `markup` Gunakan LaTeX untuk memformat keluaran.
  * `asis` Mencetak hasil mentah dari R.
  * `hold` Menahan hasil keluaran dan mendorongnya ke akhir chunk.
  * `hide` Sembunyikan hasil.
* `echo`. Apakah menyertakan kode sumber R. Dapat mengambil parameter lain, `echo=2:3` mencetak hanya baris kedua dan ketiga; `echo=-2:-3` mengecualikan hanya baris kedua dan ketiga.
* `cache`. Apakah akan menyimpan cache untuk chunk kode. Nilai yang mungkin adalah `TRUE` dan `FALSE`
* `highlight`. Apakah akan menyorot kode sumber. Nilai yang mungkin adalah `TRUE` dan `FALSE`
* `background`. Warna latar belakang chunk, format rgb dan HTML dapat digunakan, nilai defaultnya adalah *"#F7F7F7"*.

## Bacaan lanjutan

Untuk informasi lebih lanjut, lihat

* [Penyorotan Kode dengan minted](/latex/id/pemformatan/12-code-highlighting-with-minted.md)
* [Menggunakan warna di LaTeX](/latex/id/pemformatan/13-using-colors-in-latex.md)
* [plot di LaTeX](/latex/id/bidang-khusus/08-pgfplots-package.md)
* [Menyisipkan Gambar](/latex/id/topik-lainnya/27-inserting-images.md)
* [Tabel](/latex/id/gambar-dan-tabel/01-tables.md)
* [Penempatan gambar dan tabel](/latex/id/gambar-dan-tabel/02-positioning-images-and-tables.md)
* [Paket TikZ](/latex/id/gambar-dan-tabel/05-tikz-package.md)
* [Ekspresi matematika](/latex/id/matematika/01-mathematical-expressions.md)
* [situs web **knitr** halaman web](http://yihui.name/knitr/)
* [situs web **knitr** manual paket](https://bitbucket.org/stat/knitr/downloads/knitr-manual.pdf)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/id/topik-lainnya/29-knitr.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
