> 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/perintah/02-environments.md).

# Lingkungan

Lingkungan LaTeX digunakan untuk menerapkan efek penataan tertentu pada bagian konten dokumen Anda. Artikel ini menjelaskan cara menggunakan lingkungan yang sudah ada dan mendefinisikan yang baru.

## Pendahuluan

Suatu lingkungan dimulai dengan `\begin{name}` dan diakhiri dengan `\end{name}`:

```
\begin{name}
Konten Anda di sini...
...ditempatkan di sini...
\end{name}
```

di mana “`nama`” adalah nama lingkungan yang digunakan—seperti contoh berikut yang menggunakan “`center`” untuk memformat (memusatkan) sebuah paragraf teks:

```latex
\documentclass{article}
\begin{document}
\begin{center}
Ini adalah demonstrasi lingkungan \texttt{center}.
Paragraf teks ini akan \textit{dipusatkan} karena
terkandung dalam lingkungan khusus. Lingkungan menyediakan
cara yang efisien untuk memodifikasi blok teks di dalam dokumen Anda.
\end{center}
\end{document}
```

[Buka contoh ini di Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Simple+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bcenter%7D%0AThis+is+a+demonstration+of+the+%5Ctexttt%7Bcenter%7D+environment.+%0AThis+paragraph+of+text+will+be+%5Ctextit%7Bcentred%7D+because+it+is+%0Acontained+within+a+special+environment.+Environments+provide+%0Aan+efficient+way+to+modify+blocks+of+text+within+your+document.%0A%5Cend%7Bcenter%7D%0A%5Cend%7Bdocument%7D)

Contoh ini menghasilkan keluaran berikut:

![Gambar yang menunjukkan perataan tengah](/files/beb2b295be1f53945cae8540ab95184505782a78)

## Lingkungan

Contoh berikut menggunakan `tabular` lingkungan untuk menata sebuah tabel kecil. `tabular` memerlukan argumen tambahan `{ c c c }` yang mendefinisikan perataan sel—lihat [Tabel](/latex/id/gambar-dan-tabel/01-tables.md) artikel untuk informasi lebih lanjut.

```latex
\documentclass{article}
\begin{document}
\begin{tabular}{ c c c }
  cell1 & cell2 & cell3 \\
  cell4 & cell5 & cell6 \\
  cell7 & cell8 & cell9 \\
 \end{tabular}
\end{document}
```

[Buka contoh ini di Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Simple+tabular+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btabular%7D%7B+c+c+c+%7D+%0A++cell1+%26+cell2+%26+cell3+%5C%5C+%0A++cell4+%26+cell5+%26+cell6+%5C%5C+%0A++cell7+%26+cell8+%26+cell9+%5C%5C+%0A+%5Cend%7Btabular%7D%0A%5Cend%7Bdocument%7D)

Contoh ini menghasilkan keluaran berikut:

![Contoh lingkungan tabular](/files/abfa7b0ec9e49962f9977fa571e7e60a8afe8667)

Beberapa lingkungan menerima argumen opsional yang biasanya diteruskan di dalam kurung siku (`[...]`).

## Mendefinisikan lingkungan baru

Untuk mendefinisikan lingkungan baru, gunakan `\newenvironment` perintah yang bentuk umumnya:

```
\newenvironment{name}[numarg][optarg_default]{begin_def}{end_def}
```

di mana:

* `nama` adalah nama argumen yang ditentukan pengguna ini;
* `numarg` adalah jumlah argumen, dari 1 hingga 9, yang diterima lingkungan ini. Jika `[numarg]` dihilangkan, maka lingkungan tidak menerima argumen apa pun—seperti pada [`boxed` lingkungan yang didefinisikan pada contoh berikut](#defining-simple-environments);
* `optarg_default` membuat argumen pertama opsional dan memberikan nilai bawaan—yaitu nilai yang digunakan jika nilai argumen opsional tidak diberikan;
* `begin_def` adalah kode LaTeX yang dijalankan saat lingkungan dimulai (dibuka), yaitu ketika Anda menulis `\begin{name}`. Di dalam kode ini Anda dapat menggunakan argumen yang diterima oleh lingkungan—perhatikan bahwa argumen opsional adalah #1 dan argumen sisanya diakses menggunakan #2 hingga #numarg;
* `end_def` adalah kode LaTeX yang dijalankan saat lingkungan berakhir (ditutup); yaitu ketika Anda menulis `\end{name}`. Anda tidak dapat menggunakan argumen apa pun di dalam bagian kode ini.

### Mendefinisikan lingkungan sederhana

Pada contoh pertama ini, kita mendefinisikan `boxed` lingkungan yang tidak menerima argumen apa pun. Lingkungan ini menggambar sebuah kotak di sekitar teks yang terdapat di dalam lingkungan:

```latex
\documentclass{article}
%Kita dapat mendefinisikan lingkungan di preamble
\newenvironment{boxed}
    {\begin{center}
    \begin{tabular}{|p{0.9\textwidth}|}
    \hline\\
    }
    {
    \\\\\hline
    \end{tabular}
    \end{center}
    }
%
\begin{document}
Sekarang kita dapat menggunakan lingkungan \texttt{boxed} di dokumen kita:

\begin{boxed}
Teks ini diformat di dalam lingkungan \texttt{boxed}.
\end{boxed}

Teks ini ditata di luar lingkungan \texttt{boxed}.
\end{document}
```

[Buka contoh ini di Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Creating+a+new+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%25We+can+define+the+environment+in+the+preamble%0A%5Cnewenvironment%7Bboxed%7D%0A++++%7B%5Cbegin%7Bcenter%7D%0A++++%5Cbegin%7Btabular%7D%7B%7Cp%7B0.9%5Ctextwidth%7D%7C%7D%0A++++%5Chline%5C%5C%0A++++%7D%0A++++%7B+%0A++++%5C%5C%5C%5C%5Chline%0A++++%5Cend%7Btabular%7D+%0A++++%5Cend%7Bcenter%7D%0A++++%7D%0A%25%0A%5Cbegin%7Bdocument%7D%0ANow+we+can+use+the+%5Ctexttt%7Bboxed%7D+environment+in+our+document%3A%0A%0A%5Cbegin%7Bboxed%7D%0AThis+text+is+formatted+within+the+%5Ctexttt%7Bboxed%7D+environment.%0A%5Cend%7Bboxed%7D%0A%0AThis+text+is+typeset+outside+the+%5Ctexttt%7Bboxed%7D+environment.%0A%5Cend%7Bdocument%7D)

Contoh ini menghasilkan keluaran berikut:

![Menunjukkan lingkungan LaTeX kustom](/files/9f4fc7911824354188acb8e0d0c82abc4831f62e)

Jika kita membandingkan definisi kita tentang `boxed` dengan bentuk umum dari `\newenvironment` kita dapat melihat:

* `nama` adalah `boxed`;
* tidak ada `[numarg]` atau `[optarg_default]` yang diberikan karena lingkungan ini tidak menerima argumen apa pun;
* `begin_def` adalah kode LaTeX—yang disediakan di antara sepasang kurung kurawal `{...}`—yang dieksekusi ketika lingkungan *dimulai* (dibuka):

```latex
\begin{center}
    \begin{tabular}{|p{0.9\textwidth}|}
    \hline\\
```

* `end_def` adalah kode LaTeX—yang disediakan di antara sepasang kurung kurawal `{...}`—yang dieksekusi ketika lingkungan *berhenti* (ditutup):

```latex
    \\\\\hline
    \end{tabular}
    \end{center}
```

Dalam contoh ini, `begin_def` memulai sebuah `center` lingkungan dan di dalamnya sebuah `tabular` lingkungan dibuka untuk menggambar garis vertikal dan sebuah garis horizontal di sekitar teks yang kita tempatkan di dalam lingkungan. `end_def` menggambar garis horizontal lainnya lalu menutup `tabular` dan `center` lingkungan-lingkungan.

### Mendefinisikan lingkungan yang menerima argumen

Mari kita tingkatkan contoh sebelumnya untuk melakukan hal berikut:

* gunakan argumen opsional untuk menata judul. Jika judul tidak disediakan, gunakan nilai bawaan `Ini adalah sebuah kotak`;
* gunakan argumen kedua yang berisi materi untuk ditata sebelum teks yang kita berikan di dalam lingkungan itu sendiri.

Jadi kita memiliki 2 argumen:

* yang pertama (argumen 1) bersifat opsional;
* yang kedua (argumen 2) tidak.

Artinya `numarg`=2.

Kita dapat menggunakan definisi berikut untuk `boxed` lingkungan:

```latex
\newenvironment{boxed}[2][This is a box]
    {\begin{center}
    Argumen 1 (\#1)=#1\\[1ex]
    \begin{tabular}{{{!}}p{0.9\textwidth}{{!}}}
    \hline\\
    Argumen 2 (\#2)=#2\\[2ex]
    }
    {
    \\\\\hline
    \end{tabular}
    \end{center}
    }
```

Versi yang ditingkatkan ini berbeda dari versi asli dalam hal berikut:

* \[numarg] ada dan bernilai 2;
* \[optarg\_default] juga ada, sehingga argumen pertama menjadi opsional dengan nilai bawaan `Ini adalah sebuah kotak`.

Contoh berikut menunjukkan beberapa penggunaan dari versi \texttt{boxed} yang telah ditingkatkan `boxed` lingkungan:

```latex
\documentclass{article}
% Perhatikan nilai bawaan untuk argumen pertama
% disediakan oleh [This is a box]
\newenvironment{boxed}[2][This is a box]
    {\begin{center}
    Argumen 1 (\#1)=#1\\[1ex]
    \begin{tabular}{|p{0.9\textwidth}|}
    \hline\\
    Argumen 2 (\#2)=#2\\[2ex]
    }
    {
    \\\\\hline
    \end{tabular}
    \end{center}
    }
\begin{document}
\textbf{Contoh 1}: Gunakan nilai bawaan untuk argumen pertama:

\begin{boxed}{Beberapa teks pendahuluan}
Teks ini \textit{di dalam} lingkungan.
\end{boxed}

Teks ini \textit{di luar} lingkungan.

\vskip12pt

\textbf{Contoh 2}: Berikan nilai untuk argumen pertama:

\begin{boxed}[Ini bukan nilai bawaan]{Beberapa teks pendahuluan tambahan}
Teks ini masih \textit{di dalam} lingkungan.
\end{boxed}

Teks ini juga \textit{di luar} lingkungan.
\end{document}
```

[Buka contoh ini di Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Environment+with+an+optional+argument\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Note+the+default+value+for+the+first%0A%25+argument+is+provided+by+%5BThis+is+a+box%5D%0A%5Cnewenvironment%7Bboxed%7D%5B2%5D%5BThis+is+a+box%5D%0A++++%7B%5Cbegin%7Bcenter%7D%0A++++Argument+1+%28%5C%231%29%3D%231%5C%5C%5B1ex%5D%0A++++%5Cbegin%7Btabular%7D%7B%7Cp%7B0.9%5Ctextwidth%7D%7C%7D%0A++++%5Chline%5C%5C%0A++++Argument+2+%28%5C%232%29%3D%232%5C%5C%5B2ex%5D%0A++++%7D%0A++++%7B+%0A++++%5C%5C%5C%5C%5Chline%0A++++%5Cend%7Btabular%7D+%0A++++%5Cend%7Bcenter%7D%0A++++%7D%0A%5Cbegin%7Bdocument%7D%0A%5Ctextbf%7BExample+1%7D%3A+Use+the+default+value+for+the+first+argument%3A%0A+%0A%5Cbegin%7Bboxed%7D%7BSome+preliminary+text%7D%0AThis+text+is+%5Ctextit%7Binside%7D+the+environment.%0A%5Cend%7Bboxed%7D%0A%0AThis+text+is+%5Ctextit%7Boutside%7D+the+environment.%0A%0A%5Cvskip12pt%0A%0A%5Ctextbf%7BExample+2%7D%3A+Provide+a+value+for+the+first+argument%3A%0A+%0A%5Cbegin%7Bboxed%7D%5BThis+is+not+the+default+value%5D%7BSome+more+preliminary+text%7D%0AThis+text+is+still+%5Ctextit%7Binside%7D+the+environment.%0A%5Cend%7Bboxed%7D%0A%0AThis+text+is+also+%5Ctextit%7Boutside%7D+the+environment.%0A%5Cend%7Bdocument%7D)

Contoh ini menghasilkan keluaran berikut:

![Lingkungan dengan parameter opsional](/files/515b0268f70a176f34433652000e20a6bfb91d5e)

### Lingkungan bernomor

Lingkungan bernomor dapat dibuat secara manual atau langsung dengan perintah `\newtheorem`, seperti ditunjukkan oleh contoh berikut:

```latex
\documentclass{article}
% Definisikan lingkungan bernomor kita di dalam preamble
\newcounter{example}[section]
\newenvironment{example}[1][]{\refstepcounter{example}\par\medskip
   \noindent \textbf{Contoh~\theexample. #1} \rmfamily}{\medskip}

% Lingkungan bernomor lain yang didefinisikan dengan \newtheorem
\usepackage{amsmath} % Untuk perintah \newtheorem
\newtheorem{SampleEnv}{Contoh Lingkungan}[section]
\begin{document}

\section{Lingkungan bernomor buatan pengguna}

\begin{example}
Lingkungan bernomor buatan pengguna pertama (nomor \theexample).
\end{example}

\begin{example}
Lingkungan bernomor buatan pengguna kedua (nomor \theexample).
\end{example}

\section{Lebih banyak lingkungan bernomor buatan pengguna}
Perhatikan bagaimana penomoran contoh dimulai ulang dari 1:

\begin{example}
Lingkungan bernomor buatan pengguna pertama (nomor \theexample).
\end{example}

\begin{SampleEnv}
Lingkungan buatan pengguna yang dibuat dengan perintah \verb|\newtheorem|.
\end{SampleEnv}
\end{document}
```

[Buka contoh ini di Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Creating+a+numbered+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Define+our+numbered+environment+within+the+preamble%0A%5Cnewcounter%7Bexample%7D%5Bsection%5D%0A%5Cnewenvironment%7Bexample%7D%5B1%5D%5B%5D%7B%5Crefstepcounter%7Bexample%7D%5Cpar%5Cmedskip%0A+++%5Cnoindent+%5Ctextbf%7BExample%7E%5Ctheexample.+%231%7D+%5Crmfamily%7D%7B%5Cmedskip%7D%0A%0A%25+Another+numbered+environment+defined+with+%5Cnewtheorem%0A%5Cusepackage%7Bamsmath%7D+%25+For+the+%5Cnewtheorem+command%0A%5Cnewtheorem%7BSampleEnv%7D%7BSample+Environment%7D%5Bsection%5D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Csection%7BUser-defined+numbered+environments%7D%0A%0A%5Cbegin%7Bexample%7D%0AFirst+user-defined+numbered+environment+%28number+%5Ctheexample%29.%0A%5Cend%7Bexample%7D%0A%0A%5Cbegin%7Bexample%7D%0ASecond+user-defined+numbered+environment+%28number+%5Ctheexample%29.%0A%5Cend%7Bexample%7D%0A%0A%5Csection%7BMore+user-defined+numbered+environments%7D%0ANote+how+the+example+numbering+has+restarted+at+1%3A%0A%0A%5Cbegin%7Bexample%7D%0AFirst+user-defined+numbered+environment+%28number+%5Ctheexample%29.%0A%5Cend%7Bexample%7D%0A%0A%5Cbegin%7BSampleEnv%7D%0AUser-defined+environment+created+with+the+%5Cverb%7C%5Cnewtheorem%7C+command.%0A%5Cend%7BSampleEnv%7D%0A%5Cend%7Bdocument%7D)

Contoh ini menghasilkan keluaran berikut:

![Contoh yang menunjukkan lingkungan bernomor buatan pengguna](/files/9163ad13e1b738fbaf6de7971b0efa46084d504c)

#### Beberapa catatan

* Pada lingkungan yang didefinisikan secara manual `contoh` lingkungan, perintah `\newcounter{example}[section]` membuat sebuah penghitung, juga disebut `contoh`. Paket `contoh` penghitung adalah:
  * ditingkatkan sebesar 1 dengan menggunakan `\refstepcounter{example}` di dalam definisi lingkungan;
  * diatur ulang setiap kali sebuah `\section{...}` dimulai;
  * sebuah variabel yang nilai saat ini dapat ditata menggunakan `\theexample`. Lihat [artikel tentang penghitung](/latex/id/pemformatan/10-counters.md) untuk mempelajari lebih lanjut.
* Perintah `\newtheorem` secara langsung membuat lingkungan bernomor dan menerima tiga parameter:
  * nama lingkungan baru: `SampleEnv` dalam contoh kita;
  * teks yang akan dicetak tebal di awal baris: `Contoh Lingkungan` dalam contoh kita;
  * parameter opsional yang menentukan kapan penghitung diatur ulang; dan jika digunakan, penghitung akan didahului oleh nilai penghitung pengatur ulang tersebut: `section` dalam contoh kita.

Fitur [`amsthm` ke preambel dokumen Anda (seperti disarankan](https://ctan.org/pkg/amsthm?lang=en), bersama dengan `amsmath`, menyediakan definisi tambahan yang berguna bersama `\newtheorem`; lihat [Teorema dan pembuktian](/latex/id/bidang-khusus/01-theorems-and-proofs.md) untuk detail lebih lanjut.

## Mendefinisikan ulang lingkungan yang sudah ada

Lingkungan dapat didefinisikan ulang menggunakan `\renewenvironment` yang sintaksnya sama seperti `\newenvironment`—lihat bagian [Mendefinisikan lingkungan baru](#defining-a-new-environment) untuk penjelasan berbagai parameter:

```
\newenvironment{name}[numarg][optarg_default]{begin_def}{end_def}
```

Contoh berikut mendefinisikan ulang `itemize` lingkungan—ini hanya sebuah contoh untuk menggambarkan prosesnya, dan tidak boleh dianggap untuk digunakan dalam dokumen nyata. Lingkungan baru `itemize` tidak lagi menghasilkan daftar berpoin; sebagai gantinya, ia memusatkan dan menegaskan (memiringkan) teks di dalamnya (menggunakan perintah `\em` ).

```latex
\documentclass{article}
% Definisikan ulang lingkungan di preamble
\renewenvironment{itemize}
{\begin{center}\em}
{\end{center}}
\begin{document}

\begin{itemize}
Kita telah mendefinisikan ulang lingkungan \texttt{itemize} sehingga teks apa pun
di dalamnya dipusatkan dan diberi penekanan (dicetak miring). Lingkungan ini tidak lagi membuat
daftar berpoin---ini hanya contoh dan tidak dimaksudkan untuk digunakan
dalam dokumen nyata!
\end{itemize}
\end{document}
```

[Buka contoh ini di Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Redefining+an+existing+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Redefine+the+environment+in+the+preamble%0A%5Crenewenvironment%7Bitemize%7D%0A%7B%5Cbegin%7Bcenter%7D%5Cem%7D%0A%7B%5Cend%7Bcenter%7D%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Bitemize%7D%0AWe+have+redefined+the+%5Ctexttt%7Bitemize%7D+environment+so+that+any+text+%0Awithin+it+is+centred+and+emphasised+%28italicized%29.+It+no+longer+creates%0Aa+bulleted+list---this+is+only+an+example+and+not+intended+for+use+%0Ain+real+documents%21%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Contoh ini menghasilkan keluaran berikut:

![Contoh dengan lingkungan itemize yang didefinisikan ulang](/files/6e50775a6f407b7c00a7e79901d5a11e492c98dd)

## Bacaan lanjutan

Untuk informasi lebih lanjut lihat:

* [Perintah](/latex/id/perintah/01-commands.md)
* [Memahami paket dan file kelas](/latex/id/file-kelas/01-understanding-packages-and-class-files.md)
* [Menulis paket Anda sendiri](/latex/id/file-kelas/03-writing-your-own-package.md)
* [Menulis kelas Anda sendiri](/latex/id/file-kelas/04-writing-your-own-class.md)
* [Panjang dalam LaTeX](/latex/id/pemformatan/01-lengths-in-latex.md)
* [Menggunakan warna di LaTeX](/latex/id/pemformatan/13-using-colors-in-latex.md)
* [Ukuran halaman dan margin](/latex/id/pemformatan/07-page-size-and-margins.md)
* [Daftar paket dan file kelas](/latex/id/file-kelas/02-overleaf-and-tex-live.md)
* [Pengantar LaTeX2ε yang tidak terlalu singkat](http://www.ctan.org/tex-archive/info/lshort/)
* [LaTeX/Membuat\_Paket di WikiBooks](http://en.wikibooks.org/wiki/LaTeX/Creating_Packages)


---

# 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/perintah/02-environments.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.
