Showing posts with label tabel. Show all posts
Showing posts with label tabel. Show all posts

Saturday, January 23, 2021

Membuat Tabel: Multirow dan Rowcolor

Mukadimah

Anda tahu, suatu tabel dapat dibuat dengan atau tanpa menggunakan paket. Suatu tabel dibuat dengan menggunakan lingkup perintah. Dalam tulisan ini Anda akan berkonsentrasi pada lingkup perintah bawaan $\LaTeX$, yaitu tabular.

Contoh di atas menunjukkan bahwa Anda membuat tabel dalam tiga kolom. Kolom 1 diatur rata-kiri (l=left), kolom 2 diatur rata-tengah (c=center), dan kolom 3 diatur rata-kanan (r=right). Pada isi tabel, kolom-kolom itu disekat oleh lambang ampersand (&). Berikut ini beberapa hal yang layak Anda pertimbangkan ketika membuat tabel.

  1. Sebaiknya tabel dibuat oleh paket booktabs, kecuali ketika Anda menggunakan pewarnaan pada baris-baris tabel. Paket booktabs menggunakan hanya garis mendatar pada tabel. Lazimnya garis mendatar itu, di atas kepala tabel dibuat oleh perintah \toprule; di bawah baris dibuat oleh \midrule; dan di bawah baris terakhir dibuat oleh \bottomrule; sedangkan untuk menggaris bawahi beberapa kolom tertentu dibuat oleh \cmidrule{...}.
  2. Untuk pewarnaan pada tabel, sediakan paket xcolor dengan mencantumkan opsi table, selain opsi lainnya. \usepackage[table]{xcolor}.
  3. Sediakan paket array untuk pengaturan ketinggian baris, pewarnaan baris, dan ketebalan garis.
  4. Jika Anda akan menggunakan penggandaan (dua atau lebih) baris maka sediakan paket multirow.
  5. Gunakan lingkup perintah minipage ketika Anda memuat daftar butir (enumarate atau itemize) atau ketika sel memuat teks yang cukup panjang.
  6. Garis tegak | pada tabel dibuat dengan menekan tombol shift dan | yang terletak diatas tombol enter.
  7. Penggandaan kolom dibuat oleh perintah \multicolumn{<banyak kolom>}{<perataan>}{<isi sel>}.
  8. Penggandaan baris dibuat oleh perintah \multirow{<banyak baris>}{*}[opsi]{<isi sel>}.
  9. Jika penggandaan kolom dan penggandaan baris dilakukan sekaligus maka letakkan perintah multirow sebagai isi sel di dalam perintah multicolumn, \multicolumn{...}{...}{\multirow{...}{*}[...]{...}}.
  10. Gunakan paket caption, dengan menetapkan beberapa opsi yang diperlukan, jika Anda ingin membuat keterangan pada tabel.
  11. Sebagai pilihan, Anda dapat menggunakan paket dan lingkup perintah tabularx, juga paket makecell (silakan pelajari dokumentasinya).


Menerapkan Penggandaan Kolom dan Penggandaan Baris

Misalkan Anda akan membuat tabel terdiri dari 7 kolom sebagai berikut. (Argumen *{7}c menyatakan bahwa Anda membuat 7 kolom dengan pengaturan yang sama, yaitu rata-tengah.)

Perhatikan Tabel 2. Sekarang Anda ingin menggunakan dua baris pertama untuk kepala tabel. Pada baris pertama Anda ingin menyatukan tiga kolom, yaitu kolom 3, 4, dan 5. Sedang pada masing-masing kolom 1, 2, 6, dan 7 Anda ingin menyatukan dua baris. Untuk hal itu Anda atur sebagai berikut.





Penggandaan Kolom, Penggandaan Baris, dan Pewarnaan Baris, Sel, dan Garis pada Tabel


Sekarang Anda ingin membuat tabel ``yang sebenarnya'' dan menggunakan pewarnaan, seperti tampak pada tabel 4. Untuk hal ini Anda lakukan seperti ketika membuat Tabel 3 tetapi cukup menggunakan perintah bawaan $\LaTeX$, bukan perintah dari paket 
booktabs.

Agar isi-isi sel ``dapat bernapas lega'', lebih dulu Anda dapat mengatur ketinggian baris dari semula $1$ menjadi (misalnya) $1.25$ oleh \renewcommand{\arraystretch}{1.25}Anda juga dapat menetapkan jenis kolom tertentu untuk mengatur perataan dan lebarnya, \newcolumntype{C}{>{\centering\arraybackslash}m{5mm}} dengan C sebagai nama kolom, \centering\arraybackslash agar isi sel rata-tengah, dan m{...} berisi ukuran lebar kolom dan mengatur isi sel berada di tengah baris (m=middle). 

Perhatikan pembuatan Tabel 5.



Tampak bahwa isi sel pada kolom 1, 2, 6, dan 7 tertutupi oleh pewarnaan terhadap baris 2. Di sinilah Anda gunakan trik. Dalam perintah multirow dengan pewarnaan baris, letakkan perintah untuk isi sel pada keempat kolom itu di baris 8 (baris kedua dari penggandaan dua baris), bukan pada baris 7. Kemudian gunakan opsi (pada perintah multirow) untuk ``mengangkat'' isi sel pada keempat kolom tersebut dengan nilai positif yang sesuai. Misalnya, $4.5\,\textrm{mm}$. Perhatikan baris 8.




Penutup

Seperti halnya menggambar, membuat tabel memang memenuhi tantangan karena (dalam hal tertentu) cukup menyita kecerdikan dalam menyiasatinya. Meskipun tulisan ini sekadar menampilkan contoh kasus, semoga juga membawakan gagasan kepada Anda ketika membuat tabel lainnya. 
Demikian semoga bermanfaat. Bila Anda berminat untuk mempelajari $\LaTeX$ secara khusyuk, silakan bergabung ke Indonesia Digital Teacher atau hubungi @Kalakay via Telegram. 


$\square$ Adjie Gumarang Pujakelana 2020

Sunday, July 8, 2018

Membuat Daftar Butir di dalam Tabel

Membuat daftar butir (enumerate atau itemize) pada satu halaman kosong, tentu, dapat dilakukan dengan mudah. Hal berbeda terjadi ketika Anda harus membuatnya di dalam suatu sel pada suatu tabel, seperti tampak pada gambar di samping ini.
Selain membuat gambar (picture), membuat tabel memang tak selalu mudah. Kadang, dalam hal tertentu, Anda memerlukan beberapa ``siasat'' dalam membuatnya. Secara mendasar Anda dapat kembali membuka tulisan ini, itu, atau itu lagi untuk mengingat tentang teknis pembuatan tabel.
Uraian berikut ini akan merujuk kepada contoh dalam gambar di samping ini. Dalam hal pembuatan tabel, penulis seringkali menyiapkan tiga paket berikut ini.
\usepackage{booktabs,array,multicol}
Kemudian Anda siapkan paket enumitem dengan opsi shortlabels untuk membuat daftar butir. 
\usepackage[shortlabels]{enumitem}
Nah, ini dia ``pelaku utamanya'', Anda akan memanfaatkan lingkup perintah (environment) bawaan dari $\small\LaTeX$, yaitu minipage. Agar teks/paragraf di dalam minipage merapat ke tepi atasnya, Anda gunakan paket adjustbox.
\usepackage{adjustbox}
Untuk mengingat kembali tentang lingkup perintah minipage dan contoh penggunaannya, silakan ke sini, ke situ, atau ke sana
Sekarang Anda akan mulai membuat tabel tersebut. Anda gunakan saja lingkup perintah tabular, bawaan dari $\small\LaTeX$. Tampak bahwa tabel itu terdiri dari dua kolom dan Anda akan membuatnya pada satu halaman. Pertimbangkan ukuran kertas dan margin yang Anda tetapkan dalam opsi pada paket geometry. Penulis gunakan 
\documentclass[10pt]{article}
\usepackage[a4paper,margin=2cm]{geometry}
Dengan demikian bentuk tabel yang Anda buat seperti ini, 
\begin{tabular}{p{9.5cm}p{6cm}}
... & ...
\end{tabular}
Anda dapat mengubah lebar kolom pertama $9.5\,$cm dan lebar kolom kedua $6\,$cm, bila diperlukan. 
Perhatikan baris pertama, berupa kepala tabel dengan teks tebal, Anda menyatakannya dengan
\multicolumn{1}{c}{\bfseries Kompetensi Dasar Pengetahuan} &
\multicolumn{1}{c}{\bfseries Kompetensi Dasar Keterampilan}
Perintah \multicolumn (dari paket multicol) itu diperlukan karena, secara umum, baris-baris pada tabel itu ditetapkan ``rata-kiri'' sedangkan kepala tabel itu dibuat ``rata-tengah''.
Pada baris kedua, di sinilah Anda perlu bekerja dengan minipage (yang dipadukan dengan perintah dari paket adjustbox untuk perataan teks di dalamnya) karena pada sel ini Anda akan membuat daftar butir. Pada sel baris 2 kolom 1 Anda nyatakan sebagai berikut.
\adjustbox{valign=t}{
\begin{minipage}{9.5cm}
\begin{enumerate}[leftmargin=*]
\item[3.1] ...
\end{minipage}
}
Karena daftar butir pada contoh tersebut terdiri dari hanya satu butir maka penomorannya cukup diberikan secara langsung saja, oleh [3.1]. Kemudian cara yang sama Anda lakukan untuk mengisi sel pada baris 2 kolom 2.
Untuk mengisi baris ketiga (yang berupa kepala tabel), Anda lakukan cara yang sama seperti pada baris pertama.
Pada baris 4, Anda akan mengisi sel oleh banyak butir. Caranya sama seperti cara mengisi baris 2 tetapi pengaturan penomorannya sebagai berikut.
\adjustbox{valign=t}{
\begin{minipage}{9.5cm}
\begin{enumerate}[label=3.1.\arabic*]
\item ...
\item ...
\end{enumerate}
\end{minipage}
}
Perhatikan bahwa penghitungan dalam penomorannya berjalan pada angka terakhir (angka ketiga), itulah yang dilakukan oleh $\small\LaTeX$ atas perintah \arabic*. Dengan demikian hal yang sama Anda lakukan juga dalam mengisi sel pada baris 4 kolom 2, sehingga berbentuk
\adjustbox{valign=t}{
\begin{minipage}{6cm}
\begin{enumerate}[label=4.1.\arabic*]
\item ...
\item ...
\end{enumerate}
\end{minipage}
}
Agar lebih jelas lagi, berikut ini pengkodean selengkapnya untuk tabel pada contoh di atas.


Demikianlah semoga tulisan bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2018

Sunday, January 29, 2017

Kepala Tabel (Table Header)

Mukadimah

Seperti yang sering saya sebutkan, tabel dan gambar/grafik merupakan dua unsur yang agak "rumit" di dalam dokumen $\small\LaTeX$ karena sering kali meminta trik tertentu untuk dapat mencetak hasil seperti yang kita inginkan.
Sebagai sarana "bantuan gawat darurat", tentu jaringan memberikan beberapa situs atau perangkat lunak yang dapat digunakan sebagai "jembatan" untuk membuat tabel (salah satunya situs ini), tetapi tetap saja memerlukan kecakapan kita untuk menyuntingnya kembali.
Salah satu contoh "sederhana" tampak pada gambar di samping ini. Ketika itu seseorang bertanya, "Bagaimana baris pada kepala tabel dibuat lebih renggang daripada baris-baris lainnya?". Dapat Anda lihat, kepala tabel pada kedua tabel itu tampak lebih renggang, bukan?
Kemudian, setelah kedua tabel itu saya tunjukkan, saya pun bertanya, "Adakah yang menarik perhatian dari kedua tabel itu?". Berikut ini jawaban yang saya peroleh:

  • Tabel 2 lebih "sedap dipandang"
  • Tabel 2 tanpa garis tepi vertikal
  • Tabel 2 memberikan garis lebih tebal pada bagian paling atas dan paling bawah
  • jarak garis dengan garis lain atau tulisan dengan tulisan lain

Perlu diketahui bahwa kedua tabel itu dibuat dalam lingkup perintah tabular. Lalu, bagaimana keduanya bisa berbeda? Bagaimana pula kerenggangan baris pada kepala tabel dapat berbeda dengan baris-baris lainnya?


Tabel Dengan atau Tanpa Paket Booktabs

Perhatikan Tabel 1 di atas. Tabel 1 dibuat di dalam lingkup perintah (environmenttabular dan menggunakan kemampuan dasar $\small\LaTeX$ (tanpa menggunakan paket tertentu). Setiap garis mendatar dibuat oleh perintah \hline dan setiap garis tegak dibuat oleh | (tombolnya terletak di atas tombol enter) dalam
\begin{tabular}{|c|c|c|}
Perlu diketahui pula bahwa kerenggangan untuk tiap baris pada kedua tabel itu masih merupakan kerenggangan dasar, belum diatur dalam ukuran tertentu. Tentu dapat Anda lihat bahwa kerenggangan teks antarbaris lebih nyaman terlihat pada Tabel 2, bukan?

Tabel 2 dibuat di dalam lingkup perintah tabular dan menggunakan paket booktabs. Secara asal (default), paket booktabs memberikan kerenggangan yang memadai antarbaris-barisnya. Paket booktabs "tidak menyukai" garis tegak dan memberikan perintah khusus untuk garis mendatarnya. Di atas kepala tabel, garis mendatar dibuat oleh perintah \toprule. Setelah baris terakhir, garis mendatar dibuat oleh perintah \bottomrule. Garis-garis mendatar antarbaris-baris lainnya dibuat oleh perintah \midrule. Hal itu memberikan ketebalan garis yang berbeda untuk garis paling atas/paling bawah dan garis-garis lainnya. Oleh karena itu, dalam hal tabel, saya "bermazhab" kepada paket booktabs.


Membuat Baris pada Kepala Tabel Lebih Renggang

Salah satu pilihan (paling mudah) untuk membuat itu adalah dengan menggunakan paket makecell. Sekaligus menebalkan judulnya, pada mukadimah, kita cantumkan 
\usepackage{makecell}
\renewcommand\theadfont{\bfseries}
kemudian tiap judul pada kepala tabel itu kita nyatakan di dalam perintah \thead{...}.
Agar dapat memberikan gambaran yang lebih jelas tentang uraian di atas, berikut ini saya lampirkan pengkodean untuk kedua tabel di atas. Silakan Anda salin lalu kompilasi dan perhatikan hasilnya.

\documentclass{article}
\usepackage[a4paper,margin=2cm]{geometry} %tata letak halaman
\renewcommand{\rmdefault}{put} %jenis huruf Utopia
\usepackage{caption} %untuk keterangan pada tabel/gambar
\usepackage{booktabs}
\usepackage{makecell}
\renewcommand\theadfont{\bfseries}

\begin{document}

\begin{table}[!ht]
    \centering
\begin{tabular}{|c|c|c|}\hline
\thead{No.} & \thead{Nama Peserta} & \thead{Daerah Asal}\\\hline
1. & Andika Suryana & Sumedang\\\hline
2. & Bahtiar Alwi & Solo\\\hline
3. & Candra Hermanto & Tuban\\\hline
4. & Darmawan Hanafi & Banyuwangi\\\hline
\end{tabular}
\caption{}
\end{table}

\begin{table}[!ht]
    \centering
\begin{tabular}{cll}\toprule
\thead{No.} & \multicolumn{1}{c}{\thead{Nama Peserta}} & \multicolumn{1}{c}{\thead{Daerah Asal}}\\\midrule
1. & Andika Suryana & Sumedang\\\midrule
2. & Bahtiar Alwi & Solo\\\midrule
3. & Candra Hermanto & Tuban\\\midrule
4. & Darmawan Hanafi & Banyuwangi\\\bottomrule
\end{tabular}
\caption{}
\end{table}

\end{document}


Penutup

Pada tulisan lainnya, saya telah menerjemahkan suatu tulisan tentang cara menyusun tabel di dalam $\small\LaTeX$. Silakan Anda buka dan unduh berkasnya di sini. Anda juga dapat meninjau tulisan lainnya yang berkaitan dengan tabel, di situ atau di sana.

Demikian semoga bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2017

Related Posts Plugin for WordPress, Blogger...