Friday, December 30, 2016

Hal Mengarsir

Seseorang memberikan gambar di samping ini dan menyampaikan "keluhannya",
"Kalau mengarsir ini bagimana? Masak dibuat titik satu-satu di antara AB, AC, BC? Nanti titiknya banyak banget. Biar titiknya tidak kebanyakan, bagimana?"
Nah, penulis akan mengulas hal tersebut. Dalam hal ini gambar dibuat dengan menggunakan paket TikZ.
Dalam gambar TikZ, mengarsir dilakukan di dalam suatu path tertutup (poligon), baik sambil menggambarkan poligonnya itu atau pun tidak. Oleh karena itu, khususnya untuk gambar tersebut, kelima belas koordinat itu harus kita tetapkan lebih dulu.
Pada umumnya, arsiran akan tampak baik bila perintah pengarsiran ditetapkan lebih dulu sebelum perintah untuk gambar (draw) poligonnya. Jadi kedua hal itu ditetapkan secara terpisah.
Karena $\triangle{ABC}$ berupa segitiga sama sisi, maka koordinat $A$, $B$, dan $C$ akan lebih mudah ditetapkan dalam koordinat kutub (polar). Suatu koordinat kutub dinyatakan sebagai $(\textrm{besar sudut}:\textrm{panjang jari-jari})$. Sedangkan koordinat lainnya kita tetapkan oleh perhitungan dengan menggunakan kepustakaan TikZ, calc, dan untuk ketiga koordinat yang terletak di dalam daerah $\triangle{ABC}$ dapat kita tetapkan dengan menggunakan kepustakaan TikZ, intersections.

Koordinat-koordinat

Misalkan kita buat $\triangle{ABC}$ sama sisi itu dengan panjang sisi $7\,\textrm{cm}$, maka (dalam koordinat kutub) ketiga koordinatnya kita tetapkan sebagai
\coordinate[label=below:$A$] (A) at (0:0);
\coordinate[label=below:$B$] (B) at (0:7);
\coordinate[label=above:$C$] (C) at (60:7);
Untuk sementara, kita dapat memperlihatkan gambar segitiganya oleh
\draw[thick] (A)--(B)--(C)--cycle;
tetapi, nanti, perintah ini ditiadakan dari baris ini karena perintah "pattern" harus lebih dulu agar tertindas oleh perintah-perintah "draw" lainnya.
Sekarang, pada sisi $\overline{AB}$, kita tetapkan ketiga koordinat itu. Misalkan sebagai $D$, $E$, dan $F$ berturut-turut dari kiri ke kanan. Perhatikan bahwa ketiga titik itu membagi ruas garis $\overline{AB}$ menjadi $4$ bagian yang sama panjang. Berkat kepustakaan TikZ, calc, kita dapat menetapkan ketiganya sebagai
\coordinate[] (D) at ($(A)!1/4!(B)$);
\coordinate[] (E) at ($(A)!2/4!(B)$);
\coordinate[] (F) at ($(A)!3/4!(B)$);
Dengan cara yang sama, kita tetapkan tiga koordinat pada sisi $\overline{BC}$ berturut-turut dari arah bawah ke atas. Misalnya sebagai
\coordinate[] (K) at ($(B)!1/4!(C)$);
\coordinate[] (L) at ($(B)!2/4!(C)$);
\coordinate[] (M) at ($(B)!3/4!(C)$);
Kemudian pada sisi $\overline{CA}$ berturut-turut dari arah atas ke bawah, misalnya sebagai
\coordinate[] (P) at ($(C)!1/4!(A)$);
\coordinate[] (Q) at ($(C)!2/4!(A)$);
\coordinate[] (R) at ($(C)!3/4!(A)$);
Untuk sementara, kita dapat memperlihatkan ruas-ruas garisnya oleh
\draw[thick] (D)--(R) (E)--(Q) (F)--(P) (D)--(M)
(E)--(L) (F)--(K) (P)--(M) (Q)--(L) (R)--(K);
Berikutnya kita akan menetapkan tiga koordinat yang terletak pada bagian tengah dari daerah $\triangle{ABC}$. Perhatikan bahwa masing-masing titik itu merupakan titik tengah dari $\overline{EQ}$, $\overline{EL}$, dan $\overline{LQ}$. Oleh karena itu dapat kita tetapkan, misalnya
\coordinate[] (X) at ($(E)!.5!(Q)$);
\coordinate[] (Y) at ($(E)!.5!(L)$);
\coordinate[] (Z) at ($(L)!.5!(Q)$);


Pengarsiran

Nah, sekarang kita dapat mulai mengarsir. Kita awali pada $\triangle{RDX}$. Kita hanya mengarsir tanpa menggambarkan ruas garisnya. Hal ini kita lakukan dengan perintah
\path[pattern=north west lines,pattern color=olive!50!orange] (D)--(X)--(R)--cycle;
Tampak dalam opsi, saya warnai arsiran itu oleh olive dan orange dalam takaran yang sama, masing-masing senilai $50\%$.
Hal yang sama kita lakukan pada kelima segitiga kecil lainnya sebagai berikut.
\path[pattern=north west lines,pattern color=olive!50!orange] (E)--(Y)--(X)--cycle;
\path[pattern=north west lines,pattern color=olive!50!orange] (F)--(K)--(Y)--cycle;
\path[pattern=north west lines,pattern color=olive!50!orange] (X)--(Z)--(Q)--cycle;
\path[pattern=north west lines,pattern color=olive!50!orange] (Y)--(L)--(Z)--cycle;
\path[pattern=north west lines,pattern color=olive!50!orange] (Z)--(M)--(P)--cycle;


Menggambar Segitiga dan Ruas-ruas Garis

Agar arsiran tidak menutupi gambar hasil dari perintah "draw", salin (dua) perintah "draw" di atas dan tempelkan di bawah ini. Kedua perintah semula itu dapat dihapus atau disembunyikan dengan diawali oleh tanda persen ($\%$) atau diganti oleh perintah "\path[...]...".
\draw[thick] (A)--(B)--(C)--cycle;
\draw[thick] (D)--(R) (E)--(Q) (F)--(P) (D)--(M)
(E)--(L) (F)--(K) (P)--(M) (Q)--(L) (R)--(K);


Penutup

Berikut ini dapat Anda salin pengkodean selengkapnya dan hasilnya dapat Anda lihat pada berkas di bawahnya.
Demikian semoga bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2016

\documentclass[border=10pt]{standalone}
\usepackage[utf8]{inputenc}
%\usepackage[a4paper,margin=2cm]{geometry}
\usepackage[indonesian]{babel}
\usepackage{fourier}
\usepackage{tikz}
\usetikzlibrary{patterns,calc,intersections}

\begin{document}

\centering

\begin{tikzpicture}[scale=1,line join=round]
\coordinate[label=below left:$A$] (A) at (0:0);
\coordinate[label=below right:$B$] (B) at (0:7);
\coordinate[label=above:$C$] (C) at (60:7);

%\draw[thick] (A)--(B)--(C)--cycle;

%Pada sisi AB
\coordinate[] (D) at ($(A)!1/4!(B)$);
\coordinate[] (E) at ($(A)!2/4!(B)$);
\coordinate[] (F) at ($(A)!3/4!(B)$);

%Pada sisi BC
\coordinate[] (K) at ($(B)!1/4!(C)$);
\coordinate[] (L) at ($(B)!2/4!(C)$);
\coordinate[] (M) at ($(B)!3/4!(C)$);

%Pada sisi CA
\coordinate[] (P) at ($(C)!1/4!(A)$);
\coordinate[] (Q) at ($(C)!2/4!(A)$);
\coordinate[] (R) at ($(C)!3/4!(A)$);

%Kita perlu menetapkan 3 titik potong yang berada di tengah itu
\coordinate[] (X) at ($(E)!.5!(Q)$);
\coordinate[] (Y) at ($(E)!.5!(L)$);
\coordinate[] (Z) at ($(L)!.5!(Q)$);

%\draw[thick] (D)--(R) (E)--(Q) (F)--(P) (D)--(M) (E)--(L) (F)--(K) (P)--(M) (Q)--(L) (R)--(K);

%Sekarang barulah kita mengarsir
\path[pattern=north west lines,pattern color=olive!50!orange] (D)--(X)--(R)--cycle;
\path[pattern=north west lines,pattern color=olive!50!orange] (E)--(Y)--(X)--cycle;
\path[pattern=north west lines,pattern color=olive!50!orange] (F)--(K)--(Y)--cycle;
\path[pattern=north west lines,pattern color=olive!50!orange] (X)--(Z)--(Q)--cycle;
\path[pattern=north west lines,pattern color=olive!50!orange] (Y)--(L)--(Z)--cycle;
\path[pattern=north west lines,pattern color=olive!50!orange] (Z)--(M)--(P)--cycle;

\draw[thick] (A)--(B)--(C)--cycle;
\draw[thick] (D)--(R) (E)--(Q) (F)--(P) (D)--(M)
(E)--(L) (F)--(K) (P)--(M) (Q)--(L) (R)--(K);

\end{tikzpicture}

\end{document}




Friday, December 16, 2016

Menyisipkan Berkas GIF ke dalam Berkas PDF

Dalam keseharian mungkin seringkali kita lihat dan kita "putar" berkas-berkas berbentuk Graphics Interchange Format (GIF) seperti yang Anda lihat di samping ini. (Berkas tersebut saya peroleh dari Randy McMillan di Github.)
Pada tulisan ini penulis akan mengulas salah satu cara untuk menyisipkan berkas *.gif ke dalam dokumen $\small\LaTeX$ yang kita susun. Tentu, ini bertalian dengan tujuan dari penyusunan dokumen itu. Untuk guru, misalnya, hal ini bermanfaat untuk memperkaya dokumen dengan memuat berkas *.gif yang bersesuaian dengan materi pelajaran yang diampunya.
Selain itu mungkin juga sekadar dimanfaatkan sebagai "penghibur", "pemanis", atau apalah yang memikat perhatian pada suatu dokumen $\small\LaTeX$ yang disusun.

Apa yang Harus Dilakukan?

Penyusunan dokumen $\small\LaTeX$ akan menemui tingkat kesulitan yang relatif tinggi bila sudah menyangkut animasi. Hal ini dapat menyebabkan kita untuk memilih cara ini. Atas saran dari seorang pakar di forum, saya pilih cara dengan mengubah berkas *.gif itu menjadi berkas *.png kemudian di dalam dokumen $\small\LaTeX$ dirangkai kembali oleh paket animate
Karena sifat dari berkas animasi yang tersusun oleh beberapa pelapis (layer) berupa gambar, maka ketika berkas *.gif itu diubah menjadi berkas *.png dihasilkan menjadi beberapa berkas *.png dengan nama yang sama tetapi dibedakan oleh indeks atau penomorannya. Semula saya ubah berkas *.gif itu secara daring melalui beberapa situs secara berulang kali tetapi setelah disusun dalam dokumen $\small\LaTeX$ hasilnya tidak memuaskan, karena tampak buram dan terdapat bagian garis yang hilang. Beruntung, akhirnya, saya menemukan software gratis yang relatif ringan di sini.
Berikut ini langkah-langkah yang saya lakukan untuk membuat dokumen $\small\LaTeX$ yang memuat berkas *.gif seperti yang dapat Anda lihat dan unduh pada bagian bawah tulisan ini. (Saya anggap Anda bekerja pada komputer dengan menggunakan TeX Live, MikTeX, atau lainnya.)

Pertama, buatlah folder dan namai (misalnya) "Contoh Animasi".

Kedua, unduh dan pasang pada komputer Anda software untuk mengubah berkas GIF ke Portable Network Graphics (PNG) dari sini. Buka software tersebut sehingga tampil seperti ini.
Buka berkas *.gif Anda pada kotak "Input File" dan simpan (melalui kotak "Output Folder") hasilnya dalam folder "Contoh Animasi".

Ketiga, periksa folder "Contoh Animasi". Namai berkas PNG yang dihasilkan sebagai namaberkas-0.png, namaberkas-1.pngnamaberkas-2.png, dan seterusnya.

Keempat, sebagai contoh, silakan Anda salin pengkodean berikut ini dan ganti nama berkas *.gif sesuai dengan berkas yang Anda miliki.


Perhatikan baris 10 di atas. 
\animategraphics[loop,controls,width=.8\linewidth]{20}{patrick-}{0}{65}
Nilai $\textrm{width}$ menyatakan ukuran gambar animasi yang ingin kita tampilkan. Anda dapat mengubahnya sesuai dengan keinginan Anda. Nilai $20$ menyatakan tingkat kecepatan dari animasi. Nilai yang besar berarti melambatkan dan demikian sebaliknya. $\textrm{patrick}$ adalah nama berkas *.gif yang saya miliki. Hasil pengubahan dari GIF ke PNG dari berkas saya "patrick.gif" itu menghasilkan 66 berkas "patrick-<nomor>.png" yang kemudian saya nomori dari $0$ hingga $65$.

Kelima, simpan dokumen $\small\LaTeX$ itu dan namai (saya menamainya sebagai patrick.tex) kemudian kompilasi dalam editor $\small\LaTeX$ Anda. Hasil dari saya dapat Anda lihat pada dokumen terlampir di bawah ini. 

Penutup

Salah satu "kerepotan" dari bagian langkah di atas adalah ketika harus menomori tiap berkas PNG yang dihasilkan. Meskipun demikian hal itu tak seberapa bila kita bandingkan dengan kemanfaatannya. Demikian semoga bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2016



Monday, July 11, 2016

Belajar LaTeX Bersama TeX Live 2016

Mukadimah

Berdasarkan kewajiban untuk belajar sepanjang hayat, akhirnya membawa saya pada suatu jama'ah para pembelajar dengan i'tikad yang sama. Bertalian dengan itu, membaca adalah salah satu cara belajar yang paling pokok. Pengetahuan apa pun terkuak setelah proses membaca dilakukan. Salah seorang yang istiqomah dalam membaca adalah Bapak Muhammad Sahlan Rosyidi. Saya belajar kepada beliau untuk dapat membuat tulisan ini.
TeX Live merupakan salah satu distro $\small\LaTeX$ terlengkap dan terbaik. Menurut thefreedictionary.com,
Perangkat lunak distro adalah seperangkat komponen perangkat lunak (berupa komponen dari sumberdaya terbuka) yang dirakit menjadi satu kesatuan kerja dan disalurkan kepada kelompok penggunanya.
TeX Live menyertakan 3000-an paket $\small\LaTeX$ yang siap digunakan sekaligus menyertakan penyunting $\small\LaTeX$ TeXworks. Setelah TeX Live terpasang pada komputer Anda, penyunting TeXworks dapat Anda temukan dalam C:\texlive\2016\bin\win32. Saat ini telah tersebar TeX Live terbitan tahun 2016. Anda dapat memperoleh berkas program TeX Live 2016 (yaitu texlive.iso) di sini. Kemudian Anda dapat memasangnya pada komputer dengan mengikuti petunjuk dari tulisan ini.

Belajar LaTeX Secara Mandiri

Seperti telah disebutkan di atas, TeX Live memiliki beberapa keunggulan dibandingkan dengan distro atau perangkat lunak $\small\LaTeX$ lainnya, yaitu
  • memasang 3000-an paket yang diperlukan dalam penyusunan dokumen
  • memasang penyunting $\small\LaTeX$ (TeXworks)
  • menyertakan dokumentasi (PDF) dari tiap paket
  • memasang "mesin pencari" dokumentasi (PDF), yaitu texdoctk.exe

Nah, dengan memanfaatkan texdoctk.exe itu kita dapat mempelajari $\small\LaTeX$ secara mandiri melalui dokumentasi-dokumentasi (PDF) yang telah tersedia berkat pemasangan TeX Live. Program texdoctk.exe itu dapat Anda temukan dalam C:\texlive\2016\bin\win32. Setelah Anda buka akan tampak seperti ini
Tampak bahwa dokumentasi-dokumentasi $\small\LaTeX$  itu sudah dipilah-pilah berdasarkan topiknya. Bila kita ingin mempelajari tentang "Panduan dan Tutorial", klik tombol  "Guides and tutorials", maka akan muncul
Kita dapat memilih hal apa yang ingin dipelajari dengan mengklik judul yang tersedia di situ. "Tombol penggeser" dapat pula kita gunakan untuk melihat semua hal yang tersedia pada topik ini. Untuk ini saya sarankan/harapkan Anda telah memasang Adobe Reader karena begitu suatu judul diklik maka akan langsung terbuka oleh pembaca berkas PDF.

Penutup

Tentu saja dokumentasi-dokumentasi itu bukan dalam bahasa Jawa atau Sunda atau lainnya melainkan dalam bahasa Inggris atau bahasa asing lainnya. Dengan demikian Anda secara tidak langsung juga belajar menjadi seorang penerjemah. Hehehe....
Bila terdapat kendala dalam memahaminya, tak perlu kuatir karena kita dapat mengadukannya ke forum tex.stackexchange.com
Demikian semoga tulisan ini bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2016

Saturday, July 2, 2016

Tips 3: Menarik Garis Tegak Lurus

Mukadimah

Karena tulisan berbentuk tips ini berjarak cukup jauh dari tulisan sejenis, saya lampirkan dulu tulisan sebelumnya di sini dan di sana.
Pada tulisan ini akan saya ulas tentang cara menarik suatu garis dari suatu titik pada suatu garis, demikian sehingga garis itu tegak lurus terhadap garis yang diketahui. Perhatikan Gambar 1 berikut ini, kemudian hasil yang diharapkan pada Gambar 2.
Kita ketahui suatu ruas garis $AC$ dan suatu titik $B$ pada $\overline{AC}$. Kita ingin membuat suatu ruas garis dari $B$ dan tegak lurus pada $\overline{AC}$.

Lukisan

Untuk menjawab masalah tersebut akan kita gunakan paket TikZ. Lebih dulu akan kita gambar ruas garis yang diketahui dan salah satu titik pada ruas garis itu, yaitu titik $B$. Untuk hal ini dapat kita siapkan koordinat-koordinat berikut ini.
\coordinate (A) at (0,1/3);
\coordinate (B) at (2,1);
\coordinate (C) at (5,2);
Kemudian kita tunjukkan ruas garis $\overline{AC}$ oleh
\draw[thick] (A)--(C);
dan kita namai tiap koordinat itu oleh
\node[below,xshift=.05cm] at (A) {A}
node[below,xshift=.05cm] at (B) {B}
node[below] at (C) {C};
Hingga di sini kita peroleh gambar seperti tampak pada Gambar 1 di atas.

Sekarang, bagaimana cara memperoleh garis yang tegak lurus terhadap $\overline{AC}$ dari $B$?
Inilah kunci dari masalah ini. Yang kita lakukan adalah menetapkan suatu koordinat yang berkaitan dengan $\overline{BC}$ pada kedudukan $90^\circ$ terhadapnya. Untuk ini kita tetapkan (misalnya) koordinat untuk titik $D$ oleh
\coordinate (D) at ($(B)!2.5cm!90:(C)$);
yang menempatkannya sejarak $2,5\,\textrm{cm}$ dari $B$. (Perlu diketahui bahwa penetapan koordinat oleh cara itu memerlukan kepustakaan Tikz calc.) Kemudian kita hubungkan $B$ ke $D$ oleh 
\draw[thick] (B)--(D);
Untuk mendai sudut siku-siku itu, dapat Anda buka tulisan ini. Dengan demikian, hingga di sini, kita sudah menjawab masalah tersebut dan hasilnya tampak pada gambar 2 di atas.

Penutup

Penetapan koordinat semacam untuk titik $D$ itu bersifat khas, sehingga kita harus menghafalkannya. Demikian semoga tulisan ini bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2016

Friday, July 1, 2016

Irisan pada Bangun Ruang dalam Sistem Koordinat Ruang


Mukadimah

Kepada saya disodorkan gambar seperti tampak di samping ini. Terhadap gambar tersebut diminta untuk menentukan irisan terhadap prisma $ABC.DEF$. 
Irisan pada suatu bangun ruang adalah suatu bidang yang mengiris atau memotong semua sisi dari bangun ruang itu. 
Perluasan dari bidang itu disebut sebagai bidang pengiris. Salah satu cara untuk melukis irisan pada suatu bangun ruang adalah dengan menggunakan sumbu afinitas
Sumbu afinitas adalah suatu garis yang terletak pada satu sisi bangun ruang itu dan melalui dua titik yang diketahui. Sumbu afinitas merupakan garis-potong antara bidang pengiris dan salah satu sisi dari bangun ruang itu.
Pada gambar di samping diminta lukisan dari irisan tehadap prisma $ABC.DEF$ yang melalui titik $K$, $L$, dan $M$ yang diketahui. Sesuai dengan gambar yang diberikan, saya akan membuat lukisan tersebut dalam sistem koordinat ruang dengan menggunakan paket TikZ.


Menggambar Sumbu Koordinat

Pada gambar TikZ, dalam sistem koordinat ruang, sumbu-sumbu $x_+$, $y_+$, dan $z_+$ diatur menurut kaidah jari tangan kanan seperti tampak pada gambar di samping ini. 
Bagian negatif dari tiap sumbu koordinat itu kita gambar dengan garis putus-putus. Kemudian, karena bangun ruang itu "memanjang" ke arah sumbu $x_+$ dan $y_+$, maka kita buat nilai absis dan ordinatnya lebih besar. Saya tetapkan sumbu-sumbu itu sebagai berikut.
\draw[thick,dashed,gray] (-3,0,0)--(0,0,0); % sumbu x-
\draw[thick,-latex] (0,0,0)--(13,0,0) node[anchor=west]{\large$x$}; % sumbu x+
\draw[thick,dashed,gray] (0,-3,0)--(0,0,0); % sumbu y-
\draw[thick,-latex] (0,0,0)--(0,6,0) node[above]{\large$y$}; % sumbu y+
\draw[thick,dashed,gray] (0,0,-7)--(0,0,0); % sumbu z-
\draw[thick,-latex] (0,0,0)--(0,0,6) node[anchor=east]{\large$z$}; % sumbu z+
Hasilnya tampak pada gambar 1 dalam dokumen di bawah tulisan ini.


Menggambar Prisma ABC.DEF

Berdasarkan koordinat titik-titik sudut dari prisma pada gambar di atas, saya gambarkan prisma itu dan langsung menamai keenam titik sudutnya sebagai berikut.
\draw[thick] 
(0,0,0) node[above left] {A}--
(6,0,4) node[below,xshift=-.2cm,black] {B}--
(6,5,4) node[below left,black] {E}--
(0,5,0) node[left] {D} 
(6,0,4)--(6,0,0) node[above,xshift=.2cm] {C}--
(6,5,0) node[above] {F}--(0,5,0) 
(6,5,4)--(6,5,0);
Hasilnya tampak pada gambar 2 dalam dokumen di bawah tulisan ini.


Menggambar Irisan pada Prisma ABC.DEF

Untuk menggambar bidang pengiris dan irisannya, saya perlu menetapkan beberapa koordinat sebagai berikut.
\coordinate (X) at (13,0,0); % ujung sumbu x
\coordinate (A) at (0,0,0);
\coordinate (B) at (6,0,4);
\coordinate (C) at (6,0,0);
\coordinate (D) at (0,5,0);
\coordinate (E) at (6,5,4);
Kemudian, berdasarkan pada gambar di atas, saya menetapkan titik $K$, $L$, dan $M$, menamainya, dan menandainya dengan "noktah" sebagai berikut.
\path (4,0,2.68) coordinate (K) node[below,yshift=-.1cm,xshift=-.1cm] {K};
\path (6,3,0) coordinate (L) node[right,xshift=.1cm,,yshift=.1cm] {L};
\path (3,5,0) coordinate (M) node[above,yshift=.1cm] {M};
\draw[SeaGreen,thin,fill=Yellow] (K) circle (2pt) (L) circle (2pt) (M) circle (2pt);
Hasilnya tampak pada gambar 3 dalam dokumen di bawah tulisan ini.

Pada gambar di atas, titik $L$ dan $M$ terletak sebidang, yaitu pada bidang $ACFD$ atau pada bidang $xy$. Dengan demikian garis $\overleftrightarrow{LM}$ merupakan sumbu afinitas.
  1. Tarik $\overleftrightarrow{LM}$ sehingga memotong sumbu $x$, misalkan, di titik $P$.
  2. Bidang $ABC$ terletak pada bidang $xz$. Titik $K$ terletak pada bidang $ABC$ atau pada bidang $xz$ dan sebidang dengan titik $P$. Tarik $\overleftrightarrow{PK}$ sehingga memotong $\overleftrightarrow{BC}$, misalkan, di titik $Q$.
  3. Titik $L$, titik $Q$, dan $\overleftrightarrow{EB}$ sebidang, yaitu pada bidang $BCFE$. Tarik $\overleftrightarrow{LQ}$ sehingga memotong $\overleftrightarrow{EB}$, misalkan, di titik $R$.
  4. Titik $R$, titik $K$, dan $\overleftrightarrow{DE}$ sebidang, yaitu pada bidang $ABED$. Tarik $\overleftrightarrow{RK}$ sehingga memotong $\overleftrightarrow{DE}$, misalkan, di titik $S$.
  5. Sekarang kita sudah mendapatkan bidang pengiris terhadap prisma $ABC.DEF$, yang melalui titik $K$, $L$, dan $M$, yaitu bidang $KQLMS$.
Sekarang kita buat ruas garis $MN$ dan memanjangkannya pada kedua ujungnya.
\draw[densely dashed,LimeGreen] (M)--(L); %membuat ruas garis ML
\path[darkgray] ($(M)!-2cm!(L)$) node[left,yshift=.1cm] {1} coordinate (U); % memanjangkan ke kiri dari M
\path ($(L)!-6cm!(M)$) coordinate (V); % memanjangkan ke kanan dari L
\draw[LimeGreen] (U)--(M) (L)--(V);
Kemudian kita tetapkan perpotongan dari $\overleftrightarrow{ML}$ dan $\overleftrightarrow{OX_+}$ sebagai titik $P$, menandainya oleh "noktah", dan menamainya.
\coordinate[label=above:P] (P) at (intersection of A--X and L--V);
\draw[SeaGreen,thin,fill=Yellow] (P) circle (2pt) ;
Hasilnya tampak pada gambar 4 dalam dokumen di bawah tulisan ini.
Berikutnya kita tetapkan titik $Q$ sebagai perpotongan dari $\overline{BC}$ dan $\overline{PK}$, menggambar $\overline{PQ}$, dan memanjangkannya pada kedua ujungnya.
\coordinate[label=below right:Q] (Q) at (intersection of C--B and P--K);
\draw[densely dashed,Tomato] (K)--(Q);
\draw[Tomato] (Q)--($(P)!-2cm!(Q)$) node[right,yshift=.1cm,darkgray] {2}; % memanjangkan ke arah P
\draw[Tomato] (K)--($(K)!-2cm!(Q)$); % memanjangkan ke arah sumbu z
\draw[SeaGreen,thin,fill=Yellow] (Q) circle (2pt) ;
Hasilnya tampak pada gambar 5 dalam dokumen di bawah tulisan ini.

Untuk menghubungkan titik $L$ dan $Q$ yang sebidang, lebih dulu kita perpanjangkan $\overline{EB}$ ke arah $B$ oleh
\draw[darkgray] (B)--($(B)!-5cm!(E)$) node[below] {3} coordinate (T);
sekaligus menetapkan titik ujungnya sebagai $T$. Barulah memperpanjang $\overline{LQ}$ pada kedua arah sekaligus oleh
\draw[DodgerBlue] ($(L)!-2cm!(Q)$) node[above,darkgray] {4}--($(Q)!-6cm!(L)$) coordinate (G);
dan menetapkan titik ujungnya sebagai $G$. Ini dilakukan karena ruas garis ini tidak diselangi oleh bagian ruas garis putus-putus. Lalu menetapkan titik potong dari $\overleftrightarrow{EB}$ dan $\overleftrightarrow{LQ}$ sebagai $R$.
\coordinate[label=right:R] (R) at (intersection of B--T and L--G);
\draw[SeaGreen,thin,fill=Yellow] (R) circle (2pt) ;
Hasilnya tampak pada gambar 6 dalam dokumen di bawah tulisan ini.

Sekarang kita menggambar dan memperpanjang $\overline{RK}$ pada kedua arah sekaligus oleh
\draw[SlateBlue] ($(R)!-2cm!(K)$) node[below] {5}--($(K)!-7cm!(R)$) coordinate (H);
sekaligus menetapkan titik ujungnya sebagai $H$. Kemudian menetapkan titik potong dari $\overleftrightarrow{RK}$ dan $\overline{DE}$ sebagai $S$.

\coordinate[label=below left:S] (S) at (intersection of R--H and D--E);
\draw[SeaGreen,thin,fill=Yellow] (S) circle (2pt) ;
Kemudian kita menggambar dan memperpanjang $\overline{SM}$ pada kedua arah sekaligus oleh
\draw[Crimson] ($(S)!-1.25cm!(M)$)--($(M)!-2cm!(S)$) node[right,darkgray,yshift=.1cm] {6};
Hasilnya tampak pada gambar 7 dalam dokumen di bawah tulisan ini.

Terakhir kita akan menandai irisan pada prisma $ABC.DEF$, yaitu bidang $KQLMS$ oleh suatu arsiran. Kita buat arsiran itu oleh
\path[pattern=north west lines,pattern color=RosyBrown] (K)--(Q)--(L)--(M)--(S)--(K);
Hasilnya tampak pada gambar 8 dalam dokumen di bawah tulisan ini. 


Penutup


Untuk keperluan gambar tersebut, pada mukadimah harus kita siapkan
\usepackage[svgnames,dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{calc,intersections,patterns}
Demikianlah pengkodean selengkapnya dapat Anda peroleh di sini.

Semoga tulisan ini bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2016



Sunday, June 26, 2016

Menampilkan Pengkodean dalam Dokumen LaTeX

Mukadimah

Untuk suatu keperluan tertentu, kita kadang ingin menunjukkan kepada pembaca tentang suatu pengkodean yang menghasilkan teks/gambar yang dihasilkan. Meskipun demikian, memang masih diperlukan keterangan tambahan secara terpisah tentang paket dll yang digunakan untuk itu, baik di dalam mukadimah (preamble) maupun di dalam badan dokumen (main body).
Bagaimana cara menunjukkan kepada pembaca tentang pengkodean untuk gambar di samping ini? Ada beberapa cara yang dapat dilakukan untuk itu, tetapi kali ini akan saya tunjukkan empat cara, yaitu dengan menggunakan
  1. lingkup perintah (environment) verbatim 
  2. paket listings 
  3. paket minted 
  4. paket showexpl 

Menampilkan Kode dengan Menggunakan Verbatim

Lingkup perintah verbatim telah disediakan oleh $\small\LaTeX$, oleh karena itu kita dapat langsung menggunakannya dengan menuliskan
\begin{verbatim} 
Tulis kode di sini 
\end{verbatim}
Dengan menggunakan lingkup perintah verbatim, kode untuk gambar tersebut dapat diperlihatkan oleh
\begin{verbatim}
\begin{tikzpicture}
\node (a) at (0,0) {$\tan x$};
\node (b) at (4,0) {$\sec^2 x$};
\draw[-latex,bend left,blau]  (a) edge (b) ;
\draw[-latex,bend left,Tomato]  (b) edge (a);
\path[blau] (a) -- (b) node[midway,above,yshift=.8cm] {\small diferensial};
\path[Tomato] (b) -- (a) node[midway,below,yshift=-.8cm] {\small integral};
\end{tikzpicture}
\end{verbatim}
Hasilnya seperti ini


Menampilkan Kode dengan Menggunakan Paket Listings

Seperti terlihat di atas, hasil dari lingkup perintah verbatim tampak ``biasa'' saja. Mungkin akan tampak lebih menarik bila, misalnya, kode itu diletakkan di dalam suatu bingkai (frame) dan dilatari oleh suatu warna. Kita dapat melakukan itu dengan menggunakan paket listings. Lebih dulu, dalam mukadimah kita muat paket listings beserta pengaturan dalam penggunaannya, misalnya
\usepackage{listings}
\lstset{
basicstyle=\ttfamily,frame=lines,
framexleftmargin=0.5em,framexrightmargin=0.5em,
backgroundcolor=\color{LemonChiffon}
}
kemudian kita menuliskan kodenya dan mengatur lebar bingkainya, misalnya
\begin{lstlisting}[linewidth=10cm]
Tulis kode di sini
\end{lstlisting}
Hasilnya seperti ini
Hal-hal lainnya sehubungan dengan penggunaan paket listings dapat dipelajari dalam dokumentasinya.


Menampilkan Kode dengan Menggunakan Paket Minted

Seperti telihat di atas, meskipun paket listing dapat menampilkan kode berbingkai disertai oleh pewarnaan pada latarnya tetapi teks yang dihasilkan berwarna dasar (hitam). Mungkin akan tampak lebih menarik bila digunakan warna berbeda pada teks tersebut. Inilah yang dilakukan oleh paket minted. Lebih dulu, dalam mukadimah kita muat \usepackage{minted} kemudian kita menuliskan kodenya, misalnya, sebagai berikut.
\begin{minted}[
    frame=lines,
    framerule=1pt,
    framesep=5pt,
    rulecolor=\color{bistre}
            ]{latex}
Tuliskan kode di sini
\end{minted}
Dengan menggunakan paket minted, kode untuk gambar tersebut dapat diperlihatkan oleh
\begin{minted}[
    frame=lines,
    framerule=1pt,
    framesep=5pt,
    rulecolor=\color{bistre}
            ]{latex}
\begin{tikzpicture}
\node (a) at (0,0) {$\tan x$};
\node (b) at (4,0) {$\sec^2 x$};
\draw[-latex,bend left,blau]  (a) edge (b) ;
\draw[-latex,bend left,Tomato]  (b) edge (a);
\path[blau] (a) -- (b) node[midway,above,yshift=.8cm] {\small diferensial};
\path[Tomato] (b) -- (a) node[midway,below,yshift=-.8cm] {\small integral};
\end{tikzpicture}
\end{minted}
Hasilnya seperti ini
Hal-hal lainnya sehubungan dengan penggunaan paket minted dapat dipelajari dalam dokumentasinya.


Menampilkan Kode dengan Menggunakan Showexpl

Sesuai dengan namanya, kelebihan dari paket showexpl adalah dapat menunjukkan gambar yang dibuat sekaligus dengan menunjukkan kodenya, disertai dengan penomoran pada tiap barisnya. Pada opsinya, kita juga dapat memberinya garis bingkai dan warna pada latarnya, sedangkan teks hanya dalam satu warna. Lebih dulu, dalam mukadimah kita muat paket showexpl beserta pengaturan dalam penggunaannya, misalnya 
\usepackage{showexpl}
\lstdefinestyle{gayaku}{
    backgroundcolor=\color{BurlyWood!15},
    numberstyle=\footnotesize, 
    numbersep=5pt,
    rframe=
}
kemudian kita menuliskan kodenya dan mengatur lebar bingkainya, misalnya
\begin{LTXexample}[style=gayaku,width=.3\linewidth,pos=l]
Tuliskan kode di sini
\end{LTXexample}
Opsi tersebut memerintahkan $\small\LaTeX$ untuk menggunakan pengaturan ``gayaku'' yang telah ditetapkan dalam mukadimah, ``kolom'' halaman terbagi atas 30% untuk gambar dan 70% untuk kodenya, kemudian gambar diletakkan di kiri (l = left). Perhatikan contoh penggunaannya berikut ini.
\begin{LTXexample}[style=gayaku,width=.3\linewidth,pos=l]
\begin{tikzpicture}
\node (a) at (0,0) {$\tan x$};
\node (b) at (4,0) {$\sec^2 x$};
\draw[-latex,bend left,blau]  (a) edge (b) ;
\draw[-latex,bend left,Tomato]  (b) edge (a);
\path[blau] (a) -- (b) 
node[midway,above,yshift=.8cm] {\small diferensial};
\path[Tomato] (b) -- (a) 
node[midway,below,yshift=-.8cm] {\small integral};
\end{tikzpicture}
\end{LTXexample}
Hasilnya seperti ini

Penutup

Demikianlah sesuai dengan keperluannya kita menunjukkan kode atas hasil gambar (atau teks) yang kita buat dengan menggunakan salah satu dari keempat pilihan tersebut.
Semoga tulisan ini bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2016

Related Posts Plugin for WordPress, Blogger...