> 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/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md).

# Cara menulis file kelas LaTeX dan mendesain CV Anda sendiri (Bagian 1)

Bagian 1 | [Bagian 2](/latex/id/topik-lainnya/26-how-to-write-a-latex-class-file-and-design-your-own-cv-part-2.md)

**Penulis: James Allen (Maret 2011)**

Semua orang menginginkan CV yang terlihat profesional dan ada banyak sekali templat LaTeX yang dapat memberikannya. Namun, jika Anda seperti saya, Anda pasti ingin memiliki CV Anda sendiri dan menjadikannya benar-benar milik Anda. Itu berarti Anda harus bisa menyesuaikan tampilan dan nuansanya sendiri, yang bisa sangat sulit dilakukan di LaTeX. Dalam seri posting blog ini saya berharap dapat memandu Anda dalam membuat file kelas kustom Anda sendiri dan menunjukkan bahwa memformat CV Anda persis seperti yang Anda inginkan bisa jadi mudah. Kita akan fokus pada gaya CV, tetapi metodenya akan sama untuk semua jenis dokumen.

### Apa itu file kelas?

Ketika Anda menulis `\documentclass{article}` di file LaTeX Anda, Anda menyertakan file kelas `article.cls`. Ini mendefinisikan semua perintah seperti `\section` dan `\title` yang digunakan untuk menyusun dokumen Anda. Ini juga mengonfigurasi bagaimana perintah-perintah ini memengaruhi format dan tata letak halaman.

### Menyiapkan file kelas Anda sendiri

Cara paling rapi untuk menyesuaikan format sebuah dokumen adalah menyimpan semua informasi itu dalam file kelas pribadi. Ini membuat struktur dokumen Anda terpisah dengan rapi dari pemformatannya dan memungkinkan penggunaan ulang yang mudah. Mudah untuk menyiapkannya, jadi buatlah dokumen bernama cv.tex dengan isi berikut:

```latex
\documentclass{my_cv}
\begin{document}
\section{Pendidikan}
\subsection{Universitas di Mana-Mana}
\section{Pekerjaan}
\subsection{ABC Limited.}
\end{document}
```

Ini sedang mencoba memuat file kelas kustom Anda `my_cv.cls`, yang belum ada. Buat `my_cv.cls` di direktori yang sama dengan `cv.tex` dan tuliskan baris berikut di dalamnya:

```latex
\LoadClass{article}
```

Jika Anda mengompilasi dokumen sekarang, Anda akan melihat header dengan gaya artikel bawaan.

Jadi, apa yang terjadi di sini? File kelas perlu berisi banyak informasi pemformatan dan pengaturan internal agar LaTeX bekerja dengan benar, tetapi kita tidak ingin harus memasukkannya semua secara manual. Sebagai gantinya kita dapat mendasarkan file kelas baru kita pada `article.cls`. Kita menggunakan `\LoadClass` menyertakan `article.cls` dan memuat semua perintah dan gaya yang didefinisikannya. Perhatikan bahwa kita tidak menggunakan `\documentclass` perintah biasa untuk menyertakan `article.cls` karena `\documentclass` seharusnya hanya dipanggil sekali, tepat di awal dokumen LaTeX Anda.

### Memberi tahu LaTeX tentang kelas Anda

Semua file kelas harus diawali dengan dua baris seperti berikut, yang harus Anda tambahkan di bagian atas `my_cv.cls` sekarang:

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[2011/03/26 Kelas CV kustom saya]
```

Fitur `\NeedsTeXFormat` perintah memberi tahu compiler versi LaTeX yang dituju oleh paket. Versi LaTeX saat ini adalah LaTeX2e dan hampir semua distribusi menggunakannya.

Fitur `\ProvidesClass` perintah memberi compiler beberapa informasi tentang paket Anda. Argumen pertama harus cocok dengan nama file kelas Anda dan memberi tahu LaTeX apa nama paket Anda. Argumen kedua bersifat opsional dan memberikan deskripsi kelas Anda yang akan muncul di log dan tempat lain. Deskripsi harus diawali dengan tanggal persis dalam format di atas dan seharusnya merupakan tanggal terakhir paket dimodifikasi. Ini dapat digunakan saat menyertakan kelas untuk memeriksa apakah Anda memiliki versi yang cukup baru. Misalnya jika Anda menyertakannya melalui `\documentclass{my_cv}[2012/01/01]` dengan tanggal yang lebih baru daripada tanggal pada deskripsi kelas, maka peringatan akan ditampilkan yang mengatakan bahwa kelas tersebut sudah usang.

### Memodifikasi header bagian

Judul bagian standar pada artikel sebenarnya tidak cocok untuk CV, jadi kita ingin menggantinya dengan sesuatu yang lebih rapi. Untuk melakukan ini, kita dapat mendefinisikan ulang `\section` perintah untuk menghasilkan header kustom.

Untungnya sudah ada paket yang sangat bagus bernama `titlesec` yang menyediakan cara mudah untuk menyesuaikan gaya header kita. Sertakan ini dalam file kelas Anda dengan:

```latex
\RequirePackage{titlesec}
```

Perhatikan bahwa kita harus menggunakan `\RequirePackage` bukan `\usepackage` perintah karena kita berada dalam file kelas. Perintah `\RequirePackage` memastikan bahwa setiap paket hanya dimuat sekali, bahkan jika dipanggil berkali-kali dari file gaya dan kelas yang berbeda.

Fitur `titlesec` Paket ini menyediakan perintah `\titleformat` yang memungkinkan kita menyesuaikan judul bagian. Tambahkan yang berikut di akhir `my_cv.cls` untuk menyesuaikan format judul:

```latex
\titleformat{\section}         % Sesuaikan perintah \section
  {\Large\scshape\raggedright} % Buat header \section berukuran besar (\Large),
                               % huruf kapital kecil (\scshape) dan rata kiri (\raggedright)
  {}{0em}                      % Dapat digunakan untuk memberi awalan pada semua bagian, seperti 'Bagian ...'
  {}                           % Dapat digunakan untuk menyisipkan kode sebelum judul
  [\titlerule]                 % Menyisipkan garis horizontal setelah judul
```

Jika kita mengompilasi `cv.tex` sekarang, kita akan melihat bahwa kita memiliki beberapa header utama yang lebih sesuai untuk CV:

![Screenshot1.png](/files/115c23c25f7044cdc4a3e36f48c49a0ce69507c9)

Kita juga dapat menyesuaikan header \subsection:

```latex
\titleformat{\subsection}
  {\large\scshape\raggedright}
  {}{0em}
  {}
```

Subbagian sekarang berada dalam gaya yang sama:

![Screenshot2.png](/files/19a99d5bad6aaaa57fc4d0ec1452e9fc21ff8f8f)

Anda sebaiknya mencoba beberapa opsi pemformatan yang tersedia untuk melihat mana yang Anda sukai:

* `\bfseries`, `\itshape`: buat judul menjadi tebal atau miring;
* `\scshape`:huruf kapital kecil;
* `\small`, `\normalsize`, `\large`, `\Large`, `\LARGE`, `\huge`, `\Huge`: atur ukuran font;
* `\rmfamily`, `\sffamily`, `\ttfamily`: atur jenis font masing-masing menjadi serif, sans serif, atau typewriter.

### Menambahkan tanggal ke header bagian

Kita dapat mendefinisikan beberapa perintah baru yang memungkinkan kita menyertakan tanggal dalam judul bagian. Sertakan yang berikut dalam file kelas Anda:

```latex
\newcommand{\datedsection}[2]{%
  \section[#1]{#1 \hfill #2}%
}
\newcommand{\datedsubsection}[2]{%
  \subsection[#1]{#1 \hfill #2}%
}
```

Ini mendefinisikan dua perintah baru `\datedsection` dan `\datedsubsection` yang mengambil dua argumen: nama bagian seperti sebelumnya, dan tanggal yang akan dicetak di sisi kanan halaman. Perintah `\hfill` memberi tahu LaTeX untuk mengisi ruang sebanyak mungkin sehingga mendorong argumen kedua (`#2`) ke sisi kanan halaman. Ubah `cv.tex` untuk menggunakan perintah ini:

```latex
\documentclass{my_cv}

\begin{document}

\section{Pendidikan}
\datedsubsection{Universitas di Mana-Mana}{2004--2008}
Saya kuliah di Universitas di Mana-Mana dari 2004 hingga 2008.

\section{Pekerjaan}
\datedsubsection{ABC Limited.}{2008--Sekarang}
Saya telah bekerja di ABC Limited sejak 2008.

\end{document}
```

CV kita sekarang memuat tanggal:

![Screenshot3.png](/files/122c38566616d95632769a7ac9cfdf92f87eecf4)

### Kesimpulan

Itu saja untuk bagian pertama panduan ini, tetapi semoga saya sudah membahas cukup banyak sehingga Anda bisa mulai membuat file kelas yang berguna. Tidak banyak perintah yang diperlukan untuk membuat sesuatu yang sudah tampak seperti templat CV yang layak, dan kita baru menyentuh permukaan dari hal-hal lain yang bisa kita sesuaikan. Di bagian-bagian berikutnya dari panduan ini saya akan membahas cara meneruskan opsi ke kelas Anda untuk mengonfigurasinya, membuat judul yang menarik, dan bagaimana mengatur beberapa opsi tata letak umum.

Terima kasih telah membaca!

Perlu dicatat bahwa saya sendiri masih relatif baru dalam membuat file kelas, jadi jika ada yang dapat menunjukkan cara yang lebih baik untuk melakukan hal-hal yang saya sebutkan di sini, mohon beri tahu saya.

Bagian 1 | [Bagian 2](/latex/id/topik-lainnya/26-how-to-write-a-latex-class-file-and-design-your-own-cv-part-2.md)


---

# 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/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.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.
