# Penataan Kode

{% hint style="info" %}

* Contoh dan modul Terraform sebaiknya disertai dengan dokumentasi yang menjelaskan fitur-fitur dan cara penggunaannya.
* Semua tautan pada berkas README.md sebaiknya menggunakan tautan absolut sehingga tautan akan ditampilkan dengan benar pada halaman Terraform Registry.
* Dokumentasi bisa diisi dengan diagram yang dibuat menggunakan [mermaid](https://github.com/mermaid-js/mermaid) dan cetak biru buatan [cloudcraft.co](https://cloudcraft.co).
* Gunakan [kait-kait pre-commit Terraform](https://github.com/antonbabenko/pre-commit-terraform) untuk memastikan kode valid, diformat dengan benar, dan terdokumentasi secara otomatis sebelum dikirim ke git dan ditinjau oleh orang lain.
  {% endhint %}

## Dokumentasi

### Dokumentasi secara otomatis

[pre-commit](https://pre-commit.com) merupakan kerangka kerja untuk mengelola dan memelihara kait pre-commit multi bahasa. Pre-commit ditulis dalam bahasa Python dan merupakan alat ampuh untuk melakukan sesuatu secara otomatis pada mesin pengembang sebelum kode disimpan pada repositori git. Umumnya alat ini digunakan untuk menjalankan *linter* dan memformat kode (Lihat [kait yang didukung](https://pre-commit.com/hooks.html)).

Kita bisa menggunakan `pre-commit` untuk memformat dan memvalidasi konfigurasi Terraform dan juga untuk memperbarui dokumentasi.

Periksa [repository pre-commit-terraform](https://github.com/antonbabenko/pre-commit-terraform/blob/master/README.md) untuk membiasakan diri Anda akan penggunaan pre-commit untuk Terraform. Beberapa repositori seperti [terraform-aws-vpc](https://github.com/terraform-aws-modules/terraform-aws-vpc) sudah menggunakan pre-commit.

### terraform-docs

[terraform-docs](https://github.com/segmentio/terraform-docs) merupakan alat untuk menciptakan dokumentasi modul Terraform dalam berbagai format keluaran. Kita dapat menjalankan terraform-docs secara manual (tanpa kait pre-commit) atau via [kait pre-commit-terraform](https://github.com/antonbabenko/pre-commit-terraform) untuk memperbarui dokumentasi secara otomatis.

@todo: Dokumentasikan versi modul, rilis, dan GH actions

## Sumber daya

1. [halaman depan kerangka kerja pre-commit](https://pre-commit.com)
2. [Kumpulan kait-kait git untuk Terraform menggunakan kerangka kerja pre-commit](https://github.com/antonbabenko/pre-commit-terraform)
3. Tulisan blog oleh [Dean Wilson](https://github.com/deanwilson): [pre-commit hooks and terraform - a safety net for your repositories](https://www.unixdaemon.net/tools/terraform-precommit-hooks/)


---

# Agent Instructions: 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:

```
GET https://www.terraform-best-practices.com/id/code-styling.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
