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

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

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

**Penulis: Cody Herring (Juni 2013)**

Ini adalah kelanjutan dari [Cara menulis file kelas LaTeX dan mendesain CV Anda sendiri (Bagian 1)](/latex/id/topik-lainnya/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md), membahas lebih banyak opsi untuk membuat CV, dan menggunakan file kelas untuk melakukannya.

Di postingan terakhir, kita telah membuat 2 file: `cv.tex` dan `my_cv.cls`. File konten, `cv.tex`, berisi hal berikut:

```latex
\documentclass{my_cv}
\begin{document}
\section{Pendidikan}
\datedsubsection{University of Nowhere}{2004-2008}
\section{Pekerjaan}
\datedsubsection{ABC Limited}{2008-Now}
\end{document}
```

`my_cv.cls` berisi beberapa default pemformatan, serta beberapa perintah untuk digunakan:

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[6/6/2013 kelas CV kustom]
\LoadClass{article}
\RequirePackage{titlesec}
\titleformat{\section}       % Kustomisasi perintah \section
{\Large\scshape\raggedright} % Buat header \section berukuran besar (\Large),
                             % huruf kapital kecil (\scshape) dan rata kiri (\raggedright)
  {}{0em}            % Dapat digunakan untuk memberi prefiks pada semua bagian, seperti 'Section ...'
  {}                 % Dapat digunakan untuk menyisipkan kode sebelum judul
  [\titlerule]       % Menyisipkan garis horizontal setelah judul
  \titleformat{\subsection}
  {\large\scshape\raggedright}
  {}{0em}
  {}
\newcommand{\datedsection}[2]{%
  \section[#1]{#1 \hfill #2}%
}
\newcommand{\datedsubsection}[2]{%
  \subsection[#1]{#1 \hfill #2}%
}
```

Ini menghasilkan dokumen berikut:

![Gambar 1.png](/files/1e82324a7f8b80682b33330b5680e784ca8ef532)

Fitur `#1` dan `#2` merujuk pada argumen atau parameter pertama dan kedua yang diteruskan ke perintah. Pada baris pertama sebuah `\newcommand`, bagian dalam tanda kurung misalnya `[2]` merujuk pada jumlah parameter yang diteruskan ke fungsi. Fungsi kemudian dapat memanggil parameter ini dengan menggunakan `#1`, `#2`, dan seterusnya, tergantung pada berapa banyak parameter yang diperlukan oleh fungsi. Fungsi dengan lebih banyak parameter akan ditunjukkan nanti dalam artikel.

Kita akan melanjutkan dengan menambahkan bagian nama dan kontak, serta melanjutkan dengan pengalaman dan bagian lainnya.

### Nama dan informasi kontak

Dalam sebuah CV, nama biasanya berada di bagian atas, dengan informasi kontak untuk keperluan lamaran kerja. Ini akan dicapai dengan menambahkan fungsi-fungsi baru ke file kelas kita. Nama dapat ditambahkan menggunakan fungsi sederhana:

```latex
\newcommand{\name}[1]{%
  \centerline{\Huge{#1}}
}
```

Ini menghasilkan nama berukuran besar yang rata tengah di mana pun digunakan. Ini dapat dipanggil seperti ini:

```latex
\name{John Smith}
```

Sekarang, untuk informasi kontak. Tambahkan berikut ini ke file kelas:

```latex
\newcommand\contact[5]{%
    \centerline{%
        \makebox[0pt][c]{%
            #1 {\large\textperiodcentered} #2 {\large\textperiodcentered} #3
            \ #4 \ \ #5%
        }%
    }%
}
```

Lalu panggil fungsinya dari dokumen:

```latex
\contact{123 Broadway}{London}{UK 12345}{john@smith.com}{(000)-111-1111}
```

Semua ini ditampilkan dengan rapi, dengan nama dan informasi kontak seperti ini:

![Gambar 2.png](/files/b71016a224854f25dfe6278a0167dd58a86d7360)

Ini menampilkan informasi kontak dengan format yang rapi dengan pemisah berupa titik di tengah di antaranya. Ini dapat disesuaikan untuk alamat yang lebih panjang jika perlu dengan menambahkan fungsi kedua:

```latex
\newcommand{\longcontact}[5]{%
    \noindent
    #1\hfill {\large\textperiodcentered}\hfill #2\hfill
    {\large\textperiodcentered}\hfill #3\\
    #4\hfill #5%
}
```

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

Ini terlihat agak aneh dengan informasi yang singkat, tetapi jika sebuah alamat sangat panjang, ini lebih fleksibel untuk digunakan. Bagian terbaiknya adalah dokumen TeX hanya memerlukan perubahan minimal:

```latex
\longcontact{123 Broadway}{London}{UK 12345}{john@smith.com}{(000)-111-1111}
```

Inilah poin utama menggunakan file kelas. Memungkinkan perubahan minimal pada isi dokumen, dan mengontrol penyajiannya (bagaimana isi ditampilkan) dari luar.

### Memperluas bagian Pengalaman

CV seharusnya lebih dari sekadar daftar pekerjaan. Beberapa deskripsi tentang apa yang dilakukan dalam pekerjaan tersebut harus ditambahkan di bawah setiap item. 3 poin per pekerjaan adalah keseimbangan yang baik antara detail dan deskripsi. Ini dapat dengan mudah disesuaikan dengan menambah atau menghapus butir. Tambahkan berikut ini ke file kelas:

```latex
\newcommand{\workitems}[3]{%
    \begin{itemize}
    \item #1
    \item #2
    \item #3
    \end{itemize}%
}
```

Tambahkan berikut ini ke `.tex` file:

```latex
\workitems
{Mengembangkan produk baru}
{Meningkatkan produktivitas sebesar 20\%}
{Mengurangi biaya sebesar \$10.000}
```

Sekarang bagian pengalaman terlihat sedikit lebih penuh:

![Gambar 4.png](/files/4a3731d4e295329116fb91dae9e5c396d0735b43)

Menambahkan bagian keterampilan melengkapi resume. Ini dilakukan tanpa fungsi kelas, karena tidak terlalu mempersingkat kode LaTeX:

```latex
\section{Keterampilan}

\begin{tabular}{l l l l}
C\# & T-SQL & JavaScript & HTML \\
XML & JSON & SOAP & REST
\end{tabular}
```

Ini menghasilkan hal berikut:

![Gambar 5.png](/files/bb7359f6da76a63e715424a75e1f66ae75d24c88)

### Kesimpulan

Artikel dua bagian ini seharusnya telah memberi Anda templat CV yang sangat dasar, siap untuk diperluas dan ditambahkan bagian baru.

Seluruh file kelas adalah sebagai berikut:

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[6/6/2013 kelas CV kustom]
\LoadClass{article}
\RequirePackage{titlesec}

\titleformat{\section}
  {\Large\scshape\raggedright}
  {}{0em}
  {}
  [\titlerule]

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

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

\newcommand{\name}[1]{%
  \centerline{\Huge{#1}}%
}

\newcommand\contact[5]{%
    \centerline{%
        \makebox[0pt][c]{%
            #1 {\large\textperiodcentered} #2 {\large\textperiodcentered} #3
            \ #4 \ \ #5%
        }%
    }%
}

\newcommand{\longcontact}[5]{%
    \noindent
    #1\hfill {\large\textperiodcentered}\hfill #2\hfill
    {\large\textperiodcentered}\hfill #3\\
    #4\hfill #5%
}

\newcommand{\workitems}[3]{%
    \begin{itemize}
    \item #1
    \item #2
    \item #3
    \end{itemize}%
}
```

Fitur `.tex` file adalah sebagai berikut:

```latex
\documentclass{my_cv}
\begin{document}
\name{John Smith}
\contact{123 Broadway}{London}{UK 12345}{john@smith.com}{(000)-111-1111}
\section{Pendidikan}
\datedsubsection{University of Nowhere}{2004-2008}
\section{Pekerjaan}
\datedsubsection{ABC Limited}{2008-Now}
\workitems
{Mengembangkan produk baru}
{Meningkatkan produktivitas sebesar 20\%}
{Mengurangi biaya sebesar \$10.000}

\section{Keterampilan}
\begin{tabular}{l l l l}
C\# & T-SQL & JavaScript & HTML \\
XML & JSON & SOAP & REST
\end{tabular}

\end{document}
```

Ini menghasilkan dokumen berikut:

![Gambar 6.png](/files/48e5ceedb12fb01cd96b5d558df041c89745cc73)

Tutorial ini seharusnya memberikan titik awal yang bagus untuk CV, dengan ruang untuk pengembangan.

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


---

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