Anda di halaman 1dari 25

TikZ Libraries

Komunitas Wiki1 dan Sulaeman, S.Pd.2

1 StackExchange
http://tex.stackexchange.com/questions/42611/list-of-available-tikz-libraries-with-a-short-introduction
2 Guru Matematika, SMK Negeri 2 Sumbawa Besar,
Sumbawa, Indonesia
kalakaypalid@gmail.com

Ringkasan
Paket-paket perpustakaan (library) memberikan objek grafis tambahan yang telah ditetapkan,
tetapi kadang-kadang juga ekstensi dari sistem PGF atau TikZ dasar. Library tidak dimuat secara
asal (default) karena banyak pengguna yang tidak akan memerlukannya.
Anda mencantumkan perpustakaan dengan menuliskan \usetikzlibrary{<jenis library>}.

2013 Till Tantau TikZ & PGF Manual for Version 3.0.0 – http://www.ctan.org/pkg/pgf

Kata Kunci: tikz, library

1 Jenis-jenis library

Berikut ini daftar library, dan ringkasan singkat dari kegunaan masing-masingnya (kode
diberikan untuk LATEX dan/atau Plain TEX, tidak untuk ConTEXt):

1 Library arrow: \usetikzlibrary{arrows}. Lihat rinciannya di sini.


2 Library gambar automata, diakses oleh \usetikzlibrary{automata}, dan digunakan untuk
menggambar “finite state automata” dan “Turing machine”. Untuk menggambar grafik
ini, setiap node, nama dan posisi relatifnya ditetapkan, serta jenis jalur antara masing-
masingnya.
3 Library background, diakses oleh \usetikzlibrary{backgrounds}, dan “menetapkan latar
untuk gambar”. Untuk menggunakan ini dalam Tikzpicture, suatu opsi diterapkan, mi-
salnya \begin{tikzpicture}[show background rectangle], dengan menetapkan gaya latar
belakang persegi panjang sebelum gambar. (Misalnya, \tikzstyle{background rectangle}
yang berarti “tetapkan latar persegi panjang di sini”)
4 Library calc, diakses melalui \usetikzlibrary{calc} untuk membuat perhitungan koordi-
nat yang kompleks. Lihat rinciannya di sini.
5 Library calendar, diakses melalui \usetikzlibrary{calendar}. Library ini digunakan un-
tuk menampilkan kalender. Anda menetapkan kalender dengan \calendar[opsi tampilan
dan opsi tanggal](Nama (opsional)).
6 Library chain, untuk menyelaraskan node rantai (chain). Lihat rinciannya di sini.
7 Library entity relationship, diakses oleh \usetikzlibrary{er}, seperti dalam library
gambar automata, setiap node ditetapkan, seperti halnya setiap sisi di antara setiap node,
serta semua atribut. Sebagai catatan peringatan, menggarisbawahi seharusnya digunakan
untuk atribut, tetapi ini tidak digunakan karena jelek dan sulit untuk diterapkan. Sebagai
gantinya digunakan cetak miring.
8 Library intersection, diakses melalui \usetikzlibrary{intersections}, untuk menghi-
tung perpotongan lintasan (path). Lihat rinciannya di sini.
9 Library mindmap, diakses melalui \usetikzlibrary{mindmap}. Lihat rinciannya di sini.

c Komunitas Wiki;
http://tex.stackexchange.com/questions/42611/list-of-available-tikz-libraries-with-a-short-introduction
2 Penggunaan TikZ library

10 Library matrix, diakses melalui \usetikzlibrary{matrix}. Matriks ditetapkan dengan


cara yang sama seperti dalam modus matematika, namun, setiap item dalam matriks
ditugaskan sebagai nilai maupun sebagai node, mulai dari 1. Setiap node kemudian dapat
diidentifikasi dan dimanipulasi. Tanda kurung dapat dipilih dalam opsi matriks dan dapat
juga “setiap pembatas yang dapat diterima oleh perintah \left TEX”.
11 Library folding, melipat kertas: \usetikzlibrary{folding}. Lihat rinciannya di sini.

12 Library pattern: \usetikzlibrary{patterns}. Paket ini “menetapkan pola pengisian


daerah”. Dalam dokumentasinya, masing-masing pola diberi nama dan diberikan suatu
contoh.
13 Library Petri–Net. Ini digunakan untuk menggambar Petri–Net, seperti yang digunakan
untuk pemodelan matematika. Seperti diagram gaya flowchart serupa lainnya, masing-
masing node dan sisi ditetapkan, serta gaya dan letaknya. Token-token juga dapat ditem-
pelkan di dalam node, dengan memperlakukannya sebagai node children dan child.
14 Library plothandler, diakses melalui \usetikzlibrary{patterns}.TikZ memuat library ini
secara otomatis. Setiap titik ditetapkan (sebagai node) untuk menggambarkannya (plot)
dan setiap titik menempati suatu kurva.
15 Library plotmark, diakses melalui \usetikzlibrary{plotmarks} digunakan untuk mene-
tapkan gaya tambahan untuk plot seperti yang digunakan di atas. Setiap titik ditetapkan
dengan \pgfuseplotmark{deskripsi plot}
16 Library shape, digunakan untuk menetapkan bangun-bangun selain persegi panjang,
lingkaran dan koordinat. Diakses melalui
\usetikzlibrary{shapes} atau \usetikzlibrary{shapes.jenis bangun}.
Tersedia jenis-jenis tambahan sebagai berikut: bangun-bangun geometris, baik bangun
bernama (star, diamond, dll.) atau poligon dengan banyak sisi tertentu; bangun-bangun
simbolis, misalnya “tanda larangan” seperti digunakan dalam tanda Dilarang Merokok;
bangun-bangun “multipart”, dengan “beberapa bagian (teks)”; dan terakhir, bangun-
bangun “lain-lain” yang "tidak termasuk dalam kategori sebelumnya", seperti tanda silang.
Lihat rinciannya di sini.
17 Library snake, diakses melalui \usetikzlibrary{snakes} dan dapat digambarkan seba-
gai garis lengkung (kurva), dan digunakan di antara node-node atau sebagai pembatas
(border) terhadap suatu bangun, atau sebagai bangun-bangun yang berdiri sendiri (inde-
penden).
18 Library topath, diakses melalui \usetikzlibrary{topaths}. Library ini digunakan untuk
menetapkan lintasan (path) di antara dua titik, dan termuat secara otomatis. Selain itu,
dapat membuat bentuk garis lengkung di antara dua bangun atau sebagai loop yang
kembali ke suatu node.
19 Library tree, diakses melalui \usetikzlibrary{trees}. Setiap titik pada tree ditetapkan
sebagai node, dengan children, dan setiap child dapat memiliki children sendiri. Arah tree
juga dapat ditentukan, serta sudut di mana children muncul, namun, ketika dibiarkan
tersendiri, hasilnya dapat diterima.

Catatan: Semua yang berada dalam tanda kutip berasal dari tikzpgfmanual, demikian pula
contoh kalender.
Komunitas Wiki 3

2 Library arrows

Diakses oleh: \usetikzlibrary{arrows}


Keterangan: Menyediakan berbagai tips tanda panah baru
Contoh:

arrow thick thin double, thick double, thin


to
to reversed
implies
latex
latex reversed
latex’
latex’ reversed
stealth
stealth reversed
stealth’
stealth’ reversed
triangle 90
triangle 90 reversed
triangle 60
triangle 60 reversed
triangle 45
triangle 45 reversed
open triangle 90
open triangle 90 reversed
open triangle 60
open triangle 60 reversed
open triangle 45
open triangle 45 reversed
angle 90
angle 90 reversed
angle 60
angle 60 reversed
angle 45
angle 45 reversed
[
]
(
)
|
o
*
diamond
open diamond
square
open square
4 Penggunaan TikZ library

serif cm
left to
left to reversed
right to
right to reversed
left hook
left hook reversed
right hook
right hook reversed

Rujukan:
pgfmanual.pdf, halaman 256 dan 257

\documentclass[parskip]{scrartcl}
\usepackage[margin=15mm]{geometry}
\usepackage{tikz}
\usetikzlibrary{arrows}

\newcommand{\sampleline}[1]{%
\xdef\ca{#1}%
\ca & \ask{\ca-\ca} & \asn{\ca-\ca} & \adk{\ca-\ca} & \adn{\ca-\ca} \\%
}

\newcommand{\ask}[1]{\tikz \draw[#1,thick] (0,0) -- (2,0);}


\newcommand{\asn}[1]{\tikz \draw[#1,thin] (0,0) -- (2,0);}
\newcommand{\adk}[1]{\tikz \draw[#1,double,thick] (0,0) -- (2,0);}
\newcommand{\adn}[1]{\tikz \draw[#1,double,thin] (0,0) -- (2,0);}
\newcommand{\ca}{}

\begin{document}

\begin{tabular}{|l|c|c|c|c|} \hline
\textbf{arrow} & \textbf{thick} & \textbf{thin} & \textbf{double, thick}
& \textbf{double, thin} \\ \hline \hline

\sampleline{to}
\sampleline{to reversed}
\sampleline{implies} \hline \hline

\sampleline{latex}
\sampleline{latex reversed}
\sampleline{latex’}
\sampleline{latex’ reversed} \hline
Komunitas Wiki 5

\sampleline{stealth}
\sampleline{stealth reversed}
\sampleline{stealth’}
\sampleline{stealth’ reversed} \hline
\sampleline{triangle 90}
\sampleline{triangle 90 reversed}
\sampleline{triangle 60}
\sampleline{triangle 60 reversed}
\sampleline{triangle 45}
\sampleline{triangle 45 reversed} \hline
\sampleline{open triangle 90}
\sampleline{open triangle 90 reversed}
\sampleline{open triangle 60}
\sampleline{open triangle 60 reversed}
\sampleline{open triangle 45}
\sampleline{open triangle 45 reversed} \hline \hline

\sampleline{angle 90}
\sampleline{angle 90 reversed}
\sampleline{angle 60}
\sampleline{angle 60 reversed}
\sampleline{angle 45}
\sampleline{angle 45 reversed} \hline \hline

\sampleline{[}
\sampleline{]}
\sampleline{(}
\sampleline{)}
\sampleline{|} \hline \hline

\sampleline{o}
\sampleline{*}
\sampleline{diamond}
\sampleline{open diamond}

\sampleline{square}
\sampleline{open square} \hline \hline

\sampleline{serif cm} \hline\hline

\sampleline{left to}
\sampleline{left to reversed}
\sampleline{right to}
\sampleline{right to reversed} \hline
\sampleline{left hook}
\sampleline{left hook reversed}
\sampleline{right hook}
6 Penggunaan TikZ library

\sampleline{right hook reversed} \hline


\end{tabular}
\end{document}

3 Library intersections

Diakses oleh: \usetikzlibrary{intersections}


Keterangan: Memungkinkan perhitungan otomatis dari perpotongan lintasan (path)
Contoh 1:

B
A

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{intersections}

\begin{document}
\begin{tikzpicture}
% Draw to path and give a name to them
\draw [red, name path={red line}] (0,0) -- (4,3);
\draw [blue, name path={blue curve}] (1,-0.5) to[out=80, in=100]
(3,2);
% use the intersections on a path to giv them coordinates
% and draw a line between them
\draw [green, name intersections={of=red line and blue curve,
by={first intersect, second intersect}}]
(first intersect) -- (second intersect);
% one can use the coordinates furtheron
\node [above] at (first intersect) {A};
\node [below] at (second intersect) {B};
\end{tikzpicture}
\end{document}
Komunitas Wiki 7

Contoh 2:

object
virtual image

Rujukan:
pgfmanual.pdf, halaman 131 dan berikutnya

\documentclass{standalone}% or wathever you want

% load packages
\usepackage{tikz, xcolor}
% load libraries
\usetikzlibrary{intersections,shapes.arrows,calc}

% define light and dark gray


\definecolor{lgray}{cmyk}{0,0,0,0.2}
\definecolor{dgray}{cmyk}{0,0,0,0.7}

% make some settings


\tikzset{%
% style for the intersecting path, which
% are nessesary for the calculation but
% shouldn’t be drawn in the final image
ipath/.style={
% draw,% comment this aout after construction
red
},
8 Penggunaan TikZ library

% style for an arrow used as object


optical arrow/.style={%
fill=dgray,
inner sep=3pt,
shape=single arrow,
minimum width=0.5cm,
minimum height=1.5cm,
outer sep=0pt,
shape border rotate=90,
},
% style for the virtual image
virtual optical arrow/.style={%
fill=lgray,
inner sep=3pt,
shape=single arrow,
minimum width=0.5cm,
minimum height=1.5cm,
outer sep=0pt,
shape border rotate=90,
},
% style for the mirror
mirror/.style={%
line width=2pt,
},
% style for the axis
optical axis/.style={%
thin,
},
% style for light rays
ray/.style={%
thin,
->,
},
% style for imagined rays, which ar not real
% but help by constructin the image
imagined ray/.style={%
ray, dgray, -,
},
% alias
virtual ray/.style={imagined ray},
% style for (focal) points
point/.style={%
fill=black,
radius=0.8pt,
inner sep=1pt,
shape=circle,
minimum size=2pt,
Komunitas Wiki 9

outer sep=2pt
},
}

% set three layers


\pgfdeclarelayer{background}
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}
% and define shortcuts to access them
\newcommand{\bglayer}[1]{%
\begin{pgfonlayer}{background}%
#1%
\end{pgfonlayer}%
}
\newcommand{\fglayer}[1]{%
\begin{pgfonlayer}{foreground}%
#1%
\end{pgfonlayer}%
}

\begin{document}
\begin{tikzpicture}
% define the bounding box is nessesarx because the ipaths
% make it bigger than needed
\path [use as bounding box] (-5.2,-5) rectangle (6.2,5);
% define variables, you may vary them a little
%% radius
\def\radius{5}
\def\radiusII{5.05}
%% focal distancs = \radius/2
\def\focal{2.5}
%% object size
\def\size{1.cm}
%% object width
\def\owidth{1.25}
% draw mirror
%% the extra ipath is nessesary to get nicer rays
\path [ipath, name path=M] (\radius,0) ++(90:\radius)
arc (90:270:\radius);
\fglayer{%
\draw [mirror] (\radiusII-0.05,0) ++(130:\radiusII)
arc (130:240:\radiusII);
}
% draw focal point
\node (B) at (\focal,0) [point] {};
% draw object
\node (O) [optical arrow,anchor=tail, minimum height=\size] %
10 Penggunaan TikZ library

at (\owidth,0) {};
%% description
\node [above right] at (O.tip) {object};
% rays
%% draw axis ray
\draw [ray] (O.tip) -- (0,0) -- ($(0,0)!3!(\owidth,-\size)$);
%% draw parallel ray
\path [ipath, name path=PS] (O.tip) -- ++(-3,0);
\draw [ray, name intersections={of=M and PS, by=M-PS}]
(O.tip) -- (M-PS) -- ($(M-PS)!2!(B)$);
%% caculate virtual axis ray
\path [ipath, name path=AS-V] ($(0,0)!-4!(\owidth,-\size)$) -- (0,0);
%% calculate virtual parallel ray
\path [ipath, name path=PS-V] ($(M-PS)!-4!(B)$) -- (M-PS);
%% draw virtual axis ray
\draw [imagined ray, name intersections={of=AS-V and PS-V, by=Tip-V}]
(Tip-V) -- (0,0);
%% draw virtual axis ray
\draw [imagined ray] (Tip-V) -- (M-PS);
% draw virtual object
\bglayer{\path let \p{1}=(Tip-V) in
(Tip-V) node (V) [minimum height=\size,
scale={\y{1}/\size*0.665},
virtual optical arrow,anchor=tip
] {};}
%% description
\path (V.west) node [left] {virtual image};
% draw optical axis
\fglayer{\draw [optical axis] (-5,0) --++(11,0);}
\end{tikzpicture}
\end{document}

4 Library calc

Diakses oleh: \usetikzlibrary{calc}


Keterangan: Memungkinkan perluasan perhitungan koordinat
Contoh:

A
Komunitas Wiki 11

Rujukan:
pgfmanual.pdf, halaman 134 dan berikutnya

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}
% make some mathematical calculations
\node (a) at (1,1) {A};
\fill [red] ($(a) + 1/3*(1cm,0)$) circle (2pt);
% draw a segment of a path between two points
\coordinate (b) at (0,0);
\coordinate (c) at (0.5,3);
\fill (b) circle (1pt) (c) circle (1pt);
\draw [blue!50!green, ->] (b) -- ($(b)!1.5!(c)$);
\draw [blue, ->] (b) -- ($(b)!0.5!(c)$);
% draw a parallel line
\draw [green] (2,0) coordinate (d) -- (3,4) coordinate (e);
\draw [green, dashed] (2.5,1) -- ++($(e)-(d)$);
\end{tikzpicture}
\end{document}

5 Library shapes

Diakses oleh: \usetikzlibrary{shapes}


Keterangan: Memungkinkan bangun-bangun untuk ditempatkan sebagai bagian dari bagan
alir (flowchart)
Contoh:

2
yes
n = n2 ≤ 1 End
n no

Rujukan:
http://www.texample.net/tikz/examples/simple-flow-chart/, digunakan sebagai dasar un-
tuk memulai, gaya tambahan (kosong) yang digunakan sebagai dukungan, contoh dari
pertanyaan yang diajukan pada saat wawancara perguruan tinggi.
12 Penggunaan TikZ library

\documentclass{standalone}

\usepackage{tikz, xcolor}
\usetikzlibrary{shapes,arrows}

\tikzstyle{decision} = [diamond, draw, text width=4.5em,


text badly centered, node distance=2cm,
inner sep=0pt]
\tikzstyle{block} = [rectangle, draw, text width=5em,
text centered, rounded corners,
minimum height=4em, node distance=3cm]
\tikzstyle{line} = [draw, -latex’]
\tikzstyle{cloud} = [draw, ellipse, node distance=2.5cm, minimum height=
2em]
\tikzstyle{blank} = [node distance=1cm]

\begin{document}
\begin{tikzpicture}[node distance = 3cm, auto]
% Place nodes
\node [cloud] (init) {n};
\node [blank, below of=init] (sup) {};
\node [decision, below of=sup] (square) {$n^2 \le 1$};
\node [cloud, right of=square] (end) {End};
\node [block, left of=square] (newN) {$n = \frac{2}{n}$};

% Draw edges
\path [line] (init) -- (square);
\path [line] (square) -- node [near start] {yes} (end);
\path [line] (square) -- node [near start] {no} (newN);
\path [line] (newN) |- (sup);
\end{tikzpicture}
\end{document}
Komunitas Wiki 13

6 Library folding

Diakses oleh: \usetikzlibrary{folding}


Keterangan: Ini berisi satu perintah, tetapi berguna untuk menghasilkan kalender sebenar-
nya (seperti yang digunakan pada desktop).
Contoh:

4
01 7
r2 6 14
be 5
c em 4 13 21
De 3 1
12 20 28
9
2 10 1 8 1 6 27
1 9 17 1 2
2 5
8 16
24
15 23 31
22 30
29

November 2014
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

10 1 19 20 8 29 3
3 4 12 13 1 22 23
17 1 26 27
24 2
31

Mar
1
8
5

ch 2
5 6 4 15 1
4 5 Fe
01 br
r2 4 ua

014
2 3
be 3 11 1 9 10 ry
to

7 8
1 4 20

21
Oc 2 10

2
8 26 17 11 5 14

1 2
1 9 1
7 5 24 18 12 6
8 16 1 4 2 25 1 1 3 7 1

9
2 9

6
7 5 3 26 20 14 8 2
6 14 1 2 2 0 31

0
2 3 27 21 15 9
13 21 29 28 22 16
20 28 23
27
7
3 14
4

1
201

7 28
29 3 24 25 9 20 2
15 1 10 11 5 6

January 2014
12 1
ber

1 2 3 4 5
26 2

28 2 23 24 8 19 2
4 5 13 14 1 23 24
11 1 20 21 9 30 3
18 1
8 9 3 4
tem

6 7 8 9 10 11 12
21 2 16 17 1 12 1
7

14 1
1 2 10

6 7 5 16 1
3

13 14 15 16 17 18 19
7
9 30
Sep

2
6 17

5
2

20 21 22 23 24 25 26
2

8
1 2

1 2
014

18 1 27 28

27 28 29 30 31
3

9 10 4 5
0
22 2

Apr
st 2

25 2

3
il 20
1
u

1
9
Aug

2
2

6 27
25

1 4
0

30
3
6

26
23 24 25 26 27 28 29 19 27
16 17 18 19 20 21 22 12 20 28
2 2
9 10 11 12 13 14 15 5 13 1 1 2 9 30
6 4 2
2 3 4 5 6 7 8 1 5 23 31
7 2
1 8 16 1 4 2
1 9 7 5
June 2014 M
ay 2 10 18
20 3 11
14
4
27
26 20
31 25 19 13
30 24 18 12 6
29 23 17 1 5
28 22 16 10 1 4
21 15 9 3
14 8 14
7
2 20
1 ly
Ju

Rujukan:
pgfmanual.pdf, halaman 202 dan berikutnya
14 Penggunaan TikZ library

\documentclass{standalone}

\usepackage{tikz, xcolor}
\usetikzlibrary{folding,calendar}
\begin{document}
\sffamily\scriptsize
\begin{tikzpicture}[transform shape]
\tikzstyle{every calendar}=
[
%Formats calendars and sets positions
at={(-8ex,4ex)},
week list,
month label above centered,
month text=\bfseries\textcolor{red}{\%mt} \%y0,
if={(Sunday) [black!50]}
]
\tikzfoldingdodecahedron
[
%Sets size of calendar
folding line length=2.5cm,
%Adds calendar image to each face
face 1={ \calendar [dates=\the\year-01-01 to \the\year-01-last];},
face 2={ \calendar [dates=\the\year-02-01 to \the\year-02-last];},
face 3={ \calendar [dates=\the\year-03-01 to \the\year-03-last];},
face 4={ \calendar [dates=\the\year-04-01 to \the\year-04-last];},
face 5={ \calendar [dates=\the\year-05-01 to \the\year-05-last];},
face 6={ \calendar [dates=\the\year-06-01 to \the\year-06-last];},
face 7={ \calendar [dates=\the\year-07-01 to \the\year-07-last];},
face 8={ \calendar [dates=\the\year-08-01 to \the\year-08-last];},
face 9={ \calendar [dates=\the\year-09-01 to \the\year-09-last];},
face 10={\calendar [dates=\the\year-10-01 to \the\year-10-last];},
face 11={\calendar [dates=\the\year-11-01 to \the\year-11-last];},
face 12={\calendar [dates=\the\year-12-01 to \the\year-12-last];},
];
\end{tikzpicture}
\end{document}

7 Library mindmap

Diakses oleh: \usetikzlibrary{mindmap}

Keterangan: Titik fokus utama, ditempatkan di tengah, dengan sub-titik bercabang. Setiap
node ditetapkan, sebagai children. Node juga dapat terpisah satu sama lain, dan setiap
node juga dapat berbeda warna dan saling berhubungan. Anotasi juga tersedia.

Contoh:
Komunitas Wiki 15

Meta

TEX and
LATEXStack Q&A
Exchange

Chat

Meta

Stack Exchange Sites Q&A

Chat

Rujukan:
pgfmanual.pdf, halaman 207 dan berikutnya
16 Penggunaan TikZ library

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{mindmap,backgrounds}

\begin{document}
\tikzstyle{root concept}+=[concept color=blue!20,minimum size=2cm]
\tikzstyle{level 1 concept}+=[sibling angle=45]

\begin{tikzpicture}[mindmap]
\node [concept] (n1) {Stack Exchange Sites}
child[concept color=red,grow=45] {node[concept] (c1) {Meta}}
child[concept color=orange,grow=0] {node[concept] (c2) {Q \& A}}
child[concept color=green,grow=-45] {node[concept] (c3) {Chat}};
\begin{pgfonlayer}{background}
\draw [concept connection] (c1) edge (c2)
edge (c3)
(c2) edge (c3);
\end{pgfonlayer}

\node [extra concept] at (0,10) (n2) {\TeX {} and \LaTeX {}Stack Exchange
}
child[concept color=red,grow=45] {node[concept] (s1) {Meta}}
child[concept color=orange,grow=0] {node[concept] (s2) {Q \& A}}
child[concept color=green,grow=-45] {node[concept] (s3) {Chat}};

\begin{pgfonlayer}{background}
\draw [concept connection] (s1) edge (s2)
edge (s3)
(s2) edge (s3)
(n1) edge (n2);
\end{pgfonlayer}
\end{tikzpicture}

\end{document}

8 Library chains

Diakses oleh: \usetikzlibrary{chains}


Keterangan: Chains adalah urutan node yang tersusun dalam satu baris atau kolom dan
yang, biasanya, dihubungkan oleh sisi. Secara umum, mereka dapat digunakan untuk
letak node dari jaringan percabangan secara sistematis. Untuk meletakkan node dalam
baris dan kolom Anda juga dapat menggunakan matriks (lihat Seksi 17 dari pgfmanu-
al.pdf) tetapi chains juga dapat digunakan untuk menggambarkan penggunaan hubungan
di antara node yang telah terhubung, katakanlah, matriks. Dengan demikian, sering kali
masuk akal untuk menggunakan matriks dalam peletakkan unsur-unsur dan rantai-rantai
untuk menggambarkan hubungan.
Contoh: dengan menggunakan chain
Komunitas Wiki 17

unsigned integer . digit E unsigned integer

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{shapes,% for the rectangle
chains,% provides the chains
scopes}% allows to replace \begin{scope} \end{scope}
%with {}

\begin{document}
\begin{tikzpicture}[
nonterminal/.style={
rectangle,
minimum size=6mm,
very thick,
draw=red!50!black!50,
top color=white, % a shading that is white at the top...
bottom color=red!50!black!20, % and something else at the bottom
font=\itshape
},
terminal/.style={
rectangle,minimum size=6mm,rounded corners=3mm,
very thick,draw=black!50,
top color=white,bottom color=black!20,
font=\ttfamily
},
node distance=5mm, every on chain/.style={join}, every join/.style={->}
]
{ [start chain]
\node [on chain,nonterminal] {unsigned integer};
\node [on chain,terminal] {.};
\node [on chain,terminal] {digit};
\node [on chain,terminal] {E};
{ [start branch=plus]
\node (plus) [terminal,on chain=going above right] {+};
}
{ [start branch=minus]
\node (minus) [terminal,on chain=going below right] {-};
}
\node [on chain, nonterminal, join=with chain/plus-end, join=with
18 Penggunaan TikZ library

chain/minus-end] {unsigned integer};


}
\end{tikzpicture}
\end{document}

Contoh: dengan menggunakan matrix and chain

+
unsigned integer . digit E unsigned integer
-

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{shapes,% for the rectangle
chains,% provides the chains
scopes}% allows to replace \begin{scope} \end{scope}
%with {}

\begin{document}
\begin{tikzpicture}[
nonterminal/.style={
rectangle,
minimum size=6mm,
very thick,
draw=red!50!black!50,
top color=white, % a shading that is white at the top...
bottom color=red!50!black!20, % and something else at the bottom
font=\itshape
},
terminal/.style={
rectangle,minimum size=6mm,rounded corners=3mm,
very thick,draw=black!50,
top color=white,bottom color=black!20,
font=\ttfamily
},
every on chain/.style={join}, every join/.style={->}
]

\matrix[column sep=4mm] {
% First row:
& & & & \node (plus) [terminal] {+};&\\
% Second row:
\node (ui1) [nonterminal] {unsigned integer};&
\node (dot) [terminal] {.}; &
\node (digit) [terminal] {digit}; &
Komunitas Wiki 19

\node (e) [terminal] {E}; &


& % space in between
\node (ui2) [nonterminal] {unsigned integer};\\
% Third row:
& & & & \node (minus)[terminal] {-};&\\
};

{ [start chain]
\chainin (ui1);
\chainin (dot);
\chainin (digit);
\chainin (e);
{ [start branch=plus]
\chainin (plus);
}
{ [start branch=minus]
\chainin (minus);
}
\chainin (ui2) [join=with chain/plus-end, join=with chain/minus-end];
}
\end{tikzpicture}
\end{document}

Chains dengan Label


Kadang-kadang kita perlu menambahkan label pada sisi yang dibuat oleh library chain.
Meskipun tidak didukung secara asal oleh library tersebut, Anda dapat melakukannya
dengan menyesuaikannya.
Contoh:

+ plus label
a label
unsigned integer . digit E unsigned integer
- minus label

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{shapes,% for the rectangle
chains,% provides the chains
scopes}% allows to replace \begin{scope} \end{scope}
%with {}

\makeatletter
\def\tikz@lib@parse@join#1{%
\def\tikz@temp{#1}%
\ifx\tikz@temp\pgfutil@empty%
20 Penggunaan TikZ library

\tikz@lib@parse@join@by by \pgf@stop%
\else%
\pgfutil@in@{with }{#1}%
\ifpgfutil@in@% ’with [by] [label]’
\pgfutil@in@{by }{#1}%
\ifpgfutil@in@% ’with by [label]’
\pgfutil@in@{label }{#1}%
\ifpgfutil@in@% ’with by label’
\tikz@lib@parse@join@with@by@label#1\pgf@stop%
\else% ’with by’
\tikz@lib@parse@join@with@by#1\pgf@stop%
\fi%
\else% ’with [label]’
\pgfutil@in@{label }{#1}%
\ifpgfutil@in@% ’with label’
\tikz@lib@parse@join@with@label#1\pgf@stop%
\else% with
\tikz@lib@parse@join@with@by#1 by \pgf@stop%
\fi%
\fi%
\else% ’[by] [label]’
\pgfutil@in@{by }{#1}%
\ifpgfutil@in@% ’by [label]’
\pgfutil@in@{label }{#1}%
\ifpgfutil@in@% ’by label’
\tikz@lib@parse@join@by@label#1\pgf@stop%
\else% ’by’
\tikz@lib@parse@join@by#1\pgf@stop%
\fi%
\else% ’[label]’
\pgfutil@in@{label }{#1}%
\ifpgfutil@in@% ’label’
\tikz@lib@parse@join@label#1\pgf@stop%
\else%
\tikz@lib@parse@join@by#1 by \pgf@stop%
\fi%
\fi%
\fi%
\fi%
}
\def\tikz@lib@parse@join@with@by@label with #1 by #2 label #3\pgf@stop{%
\tikzset{after node path={(#1)edge[every join,#2]#3(\tikzchaincurrent)}
}%
}
\def\tikz@lib@parse@join@with@label with #1 label #2\pgf@stop{%
\tikzset{after node path={(#1)edge[every join]#2(\tikzchaincurrent)}
}%
Komunitas Wiki 21

}
\def\tikz@lib@parse@join@by@label by #1 label #2\pgf@stop{%
\tikzset{after node path={\ifx\tikzchainprevious\pgfutil@empty\else
(\tikzchainprevious)edge[every join,#1]#2(\tikzchaincurrent)\fi}}%
}
\def\tikz@lib@parse@join@label label #1\pgf@stop{%
\tikzset{after node path={\ifx\tikzchainprevious\pgfutil@empty\else
(\tikzchainprevious)edge[every join]#1(\tikzchaincurrent)\fi}}%
}
\makeatother

\begin{document}
\begin{tikzpicture}[
nonterminal/.style={
rectangle,
minimum size=6mm,
very thick,
draw=red!50!black!50,
top color=white, % a shading that is white at the top...
bottom color=red!50!black!20, % and something else at the bottom
font=\itshape
},
terminal/.style={
rectangle,minimum size=6mm,rounded corners=3mm,
very thick,draw=black!50,
top color=white,bottom color=black!20,
font=\ttfamily
},
every on chain/.style={join}, every join/.style={->}
]

\matrix[column sep=4mm] {
% First row:
& & & & \node (plus) [terminal] {+};&\\
% Second row:
\node (ui1) [nonterminal] {unsigned integer};&
\node (dot) [terminal] {.}; &
\node (digit) [terminal] {digit}; &
\node (e) [terminal] {E}; &
& % space in between
\node (ui2) [nonterminal] {unsigned integer};\\
% Third row:
& & & & \node (minus)[terminal] {-};&\\
};

{ [start chain]
\chainin (ui1);
22 Penggunaan TikZ library

\chainin (dot);
\chainin (digit);
\chainin (e);
{ [start branch=plus]
\chainin (plus) [join=label {node[above left]{a label}}];
}
{ [start branch=minus]
\chainin (minus);
}
\chainin (ui2) [join=with chain/plus-end label {node[above right]
{plus label}}, join=with chain/minus-end by dashed label {node [below
right]{minus label}}];
}
\end{tikzpicture}
\end{document}

9 Library shapes

Diakses oleh: \usetikzlibrary{shapes, shapes.geometric, shapes.symbols,


shapes.arrows, shapes.multipart, shapes.callouts, shapes.misc}

Keterangan: Menyediakan beberapa bangun selain bangun-bangun yang standar

Contoh:

circle
rectangle
Standard shapes

regular polygon

diamond
ellipse trapezium semicircle

isosceles triangle circular sector


kite
star dart
cylinder
Geometric shapes
Komunitas Wiki 23

magnifying glass

forbidden sign
cloud starburst
tape
signal
Symbol shapes

arrow box
single arrow double arrow

Arrow shapes

circle solidus

circle split rectangle split


ellipse split

Multipart shapes

cloud callout

ellipse callout rectangle callout

Callout shapes
cross out strike out rounded rectangle chamfered rectangle

Miscellaneous shapes

\documentclass[parskip]{scrartcl}
\usepackage[margin=5mm,a3paper]{geometry}
\usepackage{kerkis}
\usepackage{tikz}
\usetikzlibrary{
shapes,
shapes.geometric,
shapes.symbols,
shapes.arrows,
24 Penggunaan TikZ library

shapes.multipart,
shapes.callouts,
shapes.misc}

\begin{document}

\tikzset{every node/.style={draw=red!20!black,fill=orange!50!red!50!white
,text=black,inner sep=2pt}}

\foreach \shape in {circle,rectangle}


{ \begin{tikzpicture}
\node[shape=\shape] {\shape};
\end{tikzpicture}
}
\\

{\Large \textbf{Standard shapes}}\\


\foreach \shape in {diamond,ellipse,trapezium,semicircle,regular polygon,
star,isosceles triangle,kite,dart,circular sector,cylinder}
{ \begin{tikzpicture}
\node[shape=\shape] {\shape};
\end{tikzpicture}
}
\\

{\Large \textbf{Geometric shapes}}\\


\foreach \shape in {forbidden sign,magnifying glass,cloud,starburst,
signal,tape}
{ \begin{tikzpicture}
\node[shape=\shape] {\shape};
\end{tikzpicture}
}
\\

{\Large \textbf{Symbol shapes}}\\


\foreach \shape in {single arrow,double arrow,arrow box}
{ \begin{tikzpicture}
\node[shape=\shape] {\shape};
\end{tikzpicture}
}
\\

{\Large \textbf{Arrow shapes}}\\


\foreach \shape in {circle split,circle solidus,ellipse split,rectangle
split}
{ \begin{tikzpicture}
\node[shape=\shape] {\shape};
Komunitas Wiki 25

\end{tikzpicture}
}
\\

{\Large \textbf{Multipart shapes}}\\


\foreach \shape in {ellipse callout,rectangle callout,cloud callout}
{ \begin{tikzpicture}
\node[shape=\shape] {\shape};
\end{tikzpicture}
}
\\

{\Large \textbf{Callout shapes}}\\


\foreach \shape in {cross out,strike out,rounded rectangle,chamfered
rectangle}
{ \begin{tikzpicture}
\node[shape=\shape] {\shape};
\end{tikzpicture}
}
\\

{\Large \textbf{Miscellaneous shapes}}


\end{document}

Rujukan:
pgfmanual.pdf, halaman 419 s.d. 461

Pustaka
1 Till Tantau. The TikZ and PGF Packages Manual for version 3.0.0. http://sourceforge.
net/projects/pgf. Institut für Theoretische Informatik , Universität zu Lübeck, 2013