Wednesday, December 9, 2015

Menggambar Kubus dan Beberapa Unsurnya

Masih mengutip dari soal Ujian Nasional Matematika SMA/MA IPA Tahun Pelajaran 2014/2015, saya menemukan soal nomor 24 sebagai berikut.
Diketahui kubus $\small{ABCD.EFGH}$ dengan panjang rusuk $\small4\textrm{cm}$. Titik $\small{M}$ adalah titik tengan $\small{AB}$. Jarak titik $\small{E}$ ke $\small{CM}$ sama dengan ....
  1. $\small\frac{4}{5}\sqrt{30}\textrm{cm}$
  2. $\small\frac{2}{3}\sqrt{30}\textrm{cm}$
  3. $\small2\sqrt{5}\textrm{cm}$
  4. $\small2\sqrt{3}\textrm{cm}$
  5. $\small2\sqrt{2}\textrm{cm}$
Kita akan menggambar kubus tersebut beserta unsur-unsur yang diberikan dalam soal itu dengan menggunakan paket tikz. Gambarnya akan tampak seperti di samping ini.
Nah, bagaimana cara menggambar bangun geometris tersebut dengan menggunakan paket tikz?

Gambar TikZ

Untuk setiap gambar yang kita buat dengan paket tikz kita gunakan environment
\begin{tikzpicture}[opsi]
... pengkodean gambar
\begin{tikzpicture}


Koordinat

Koordinat merupakan unsur dasar dalam gambar tikz. Ada beberapa cara dalam menetapkan koordinat dari suatu titik, sesuai dengan keperluan atau selera. Pada contoh ini akan digunakan salah satunya. Demikian pula dengan sistem koordinat yang digunakan, kita dapat menyatakannya secara dua dimensi atau tiga dimensi. Untuk contoh ini, setelah saya coba kedua-duanya, ternyata lebih cocok bila digunakan dalam dua dimensi.
Kedelapan koordinat berikut ini, untuk menghasilkan tampilan terbaik, lebih dulu saya gunakan GeoGebra untuk menetapkannya. Salah satu cara menetapkan koordinat adalah sebagai berikut.
\coordinate (A) at (0,0);
\coordinate (B) at (4,0);
\coordinate (C) at (6,1);
\coordinate (D) at (2,1);
\coordinate (E) at (0,4);
\coordinate (F) at (4,4);
\coordinate (G) at (6,5);
\coordinate (H) at (2,5);
Dalam hal ini kita baru "menetapkan tempat", bukan "menamainya".


Poligon

Suatu poligon digambar (draw) dengan cara merangkai (oleh dash ganda) koordinat-koordinat dari titik-titik sudutnya dalam jalur (path) tertutup (cycle). Misalnya,
\draw (A) -- (B) -- (F) -- (E) -- cycle;
berarti menggambar poligon $\small{ABFE}$, sebagai bidang (sisi) frontal kubus. Tetapi 
\draw[] (B) -- (C) -- (G) -- (F) ;
hanya menghubungkan oleh ruas garis dari $\small{B}$ sampai ke $\small{F}$, dalam urutan itu, tanpa kembali ke $\small{B}$. Demikian pula, kita hubungkan
\draw[] (G) -- (H) -- (E);
dan kita hubungkan rusuk-rusuk dalam bentuk garis putus-putus (oleh opsi dashed) dalam dua bagian (jalur).
\draw[dashed] (A) -- (D) -- (H) (C)--(D);
Perhatikan kita memutus jalur $\small{ADH}$ dan $\small{CD}$.
Nah, rangkaian perintah di atas menghasilkan gambar seperti tampak pada Gambar 1 dalam dokumen terlampir di bawah ini.


Menggambar Bidang Pengiris


Menetapkan Koordinat Titik Tengah

Kita awali dengan menetapkan titik $\small{M}$ (seperti diketahui dari soal di atas) sebagai titik tengah dari ruas garis (rusuk) $\small\overline{AB}$. Dalam tikz kita menyatakannya dengan
\coordinate (M) at ($(A)!0.5!(B)$);
Dalam hal ini kita memerlukan dukungan library calc dari paket tikz. Kemudian, sesuai dengan kaidah dalam menggambar, kita hubungkan titik-titik $\small{E}$ ke $\small{M}$ dalam bentuk ruas garis biasa, tetapi $\small{E}$ ke $\small{C}$ dalam bentuk ruas garis putus-putus.
\draw (E)--(M);
\draw[dashed] (E)--(C) ;


Memperpanjang Ujung-ujung Ruas Garis

Tadi ruas garis $\small\overline{CM}$ tidak langsung kita gambar dalam bentuk ruas garis putus-putus. Memang disengaja, karena kita akan memperpanjang pada kedua ujungnya, dengan suatu cara yang khas. Untuk memperpanjang dalam arah $\small{CM}$ kitanyatakan dengan $\small\textrm{\$(C)!...cm!(M)\$}$, sedangkan untuk memperpanjang dalam arah $\small{MC}$ kitanyatakan dengan $\small\textrm{\$(M)!...cm!(C)\$}$. Dengan demikian kita gambar, dalam bentuk ruas garis putus-putus, ruas garis $\small{CM}$ beserta perpanjangannya sebagai
\draw ($(C)!6cm!(M)$) -- ($(M)!5cm!(C)$);
Tentu saja nilai (dalam cm) perpanjangan ini bersifat subjektif, berdasarkan selera. Ini juga memerlukan dukungan library calc dari paket tikz.


Mengarsir Daerah Poligon

Untuk mengarsir daerah, kita tidak perlu menggambar (draw), karena hasilnya akan bertumpang-tindih dengan hasil gambar sebelumnya, melainkan cukup dengan merangkaikan jalur (path) secara tertutup (cycle). Bidang $\small{CEM}$ adalah bidang pengiris kubus dan akan kita arsir. Arsiran ini kita arahkan ke Barat Laut (antara Utara dan Timur) dengan warna arsiran (saya pilih dan saya tetapkan pada preamble bersama paket xcolor) bistreb setingkat 70%. Agar arsiran ini menerawang (tidak menutupi bagian lain pada kubus itu), maka kita susutkan sedikit tingkat keburamannya (opacity) menjadi $\small{0.9}$ dari $\small{1}$.
\path[pattern=north east lines,pattern color=bistreb!70,opacity=.9] (C)--(E)--(M)--cycle;
Dalam hal ini kita memerlukan dukungan library patterns dari paket tikz.


Proyeksi Titik pada Ruas Garis

Untuk menetapkan proyeksi dari suatu titik pada suatu ruas garis, kita tuliskan nama titik itu beserta nama dari kedua titik pembentuk ruas garis tersebut dengan meletakkan di tengah untuk nama titik yang diproyeksikan itu. Koordinat dari proyeksi titik $\small{EM}$ pada ruas garis $\small\overline{CM}$ dinyatakan oleh
($(C)!(E)!(M)$)
Koordinat ini kita namai saja sebagai $\small{N}$. Kemudian kita hubungkan titik $\small{M}$ ke proyeksinya pada $\small\overline{CM}$.
\coordinate (N) at ($(C)!(E)!(M)$) ;
\draw ($(C)!(E)!(M)$) -- (E);


Menandai Sudut Siku-siku

Dalam hal ini saya gunakan makro (dengan dukungan library angles dan quotes dari paket tikz), yang ditulis oleh salah seorang anggota forum, sebagai berikut.
\newcommand{\siku}[4][.3cm]% #1=size (optional), #2-#4 three points: \angle #2#3#4
{\coordinate (tempa) at ($(#3)!#1!(#2)$);
 \coordinate (tempb) at ($(#3)!#1!(#4)$);
 \coordinate (tempc) at ($(tempa)!0.5!(tempb)$);%midpoint
 \draw[rusia] (tempa) -- ($(#3)!2!(tempc)$) -- (tempb);
}
Dengan demikian sudut siku-siku ditandai oleh perintah \siku. Dalam penggunaanya, kita sebut tiga koordinat pembentuk sudut di mana koordinat dari titik sudut diletakkan di tengah dan urutannya dalam arah berlawanan dengan arah putar jarum jam. Perintah
\siku{C}{N}{E}
meminta $\small\LaTeX$ untuk menandai siku-siku pada $\small\angle{CNE}$.

Hingga di sini pekerjaan menggambar, berdasarkan pada soal di atas, dapat dianggap sudah selesai. Namun untuk menandai dan menampilkan nama titik-titik sudut pada kubus itu, kita masih perlu memberikan perintah-perintah
\path[fill=JungleGreen] (M) circle (2pt) node[below,font=\small]{M};
\path[fill=JungleGreen] (A) circle (2pt) node[below]{A};
\path[fill=JungleGreen] (B) circle (2pt) node[below]{B};
\path[fill=JungleGreen] (C) circle (2pt) node[below]{C};
\path[fill=JungleGreen] (D) circle (2pt) node[left,yshift=.2cm]{D};
\path[fill=JungleGreen] (E) circle (2pt) node[left]{E};
\path[fill=JungleGreen] (F) circle (2pt) node[right,yshift=-.2cm]{F};
\path[fill=JungleGreen] (G) circle (2pt) node[above]{G};
\path[fill=JungleGreen] (H) circle (2pt) node[above]{H};
\path[fill=red] (N) circle (2pt) node[below] {N};
Masing-masing perintah tersebut menyatakan koordinat titik yang disebutkan sebagai tempat untuk menggambar lingkaran (sebagai noktah berbentuk bulat) berjari-jari $\small{2pt}$, kemudian menamai titik tersebut dengan nama yang disebutkan dan meletakkan nama itu dengan mengacu terhadap letak koordinat tersebut. Bersama dengan itu, masing-masing lingkaran itu diisi oleh warna tertentu (yang dicantumkan pada opsi perintah path). 


Penutup

Demikianlah, hasil dari semua pengkodean di atas tampak pada Gambar 2 dalam dokumen terlampir di bawah ini. Berikut ini pengkodean selengkapnya untuk gambar kubus yang dimaksud oleh soal di atas, yang saya susun dalam jaringan melalui Online LaTeX Editor ShareLaTeX
Semoga bermanfaat.

Adjie Gumarang Pujakelana 2015
\documentclass[10pt]{article} 
\usepackage[a4paper,margin=2cm]{geometry}
\usepackage[dvipsnames,svgnames]{xcolor}
\definecolor{bistreb}{RGB}{150, 113, 23}
\definecolor{rusia}{RGB}{85 85 57}
\usepackage{tikz}
\usetikzlibrary{calc,patterns,angles,quotes}
\newcommand{\siku}[4][.3cm]% #1=size (optional), #2-#4 three points: \angle #2#3#4
{\coordinate (tempa) at ($(#3)!#1!(#2)$);
 \coordinate (tempb) at ($(#3)!#1!(#4)$);
 \coordinate (tempc) at ($(tempa)!0.5!(tempb)$);%midpoint
 \draw[rusia] (tempa) -- ($(#3)!2!(tempc)$) -- (tempb);
}
\begin{document}

\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (4,0);
\coordinate (C) at (6,1);
\coordinate (D) at (2,1);
\coordinate (E) at (0,4);
\coordinate (F) at (4,4);
\coordinate (G) at (6,5);
\coordinate (H) at (2,5);

\draw[] (A) -- (B) -- (F) -- (E) -- cycle;
\draw[] (B) -- (C) -- (G) -- (F) ;
\draw[] (G) -- (H) -- (E);
\draw[dashed] (A) -- (D) -- (H) (C)--(D);

\coordinate (M) at ($(A)!0.5!(B)$);
\draw (E)--(M);
\draw[dashed] (E)--(C) ;

\draw ($(C)!6cm!(M)$) -- ($(M)!5cm!(C)$);

\path[pattern=north east lines,pattern color=bistreb!70,opacity=.9] (C)--(E)--(M)--cycle;

\coordinate (N) at ($(C)!(E)!(M)$) ;
\draw ($(C)!(E)!(M)$) -- (E);

\siku{C}{N}{E}

\path[fill=JungleGreen] (M) circle (2pt) node[below,font=\small]{M};
\path[fill=JungleGreen] (A) circle (2pt) node[below]{A};
\path[fill=JungleGreen] (B) circle (2pt) node[below]{B};
\path[fill=JungleGreen] (C) circle (2pt) node[below]{C};
\path[fill=JungleGreen] (D) circle (2pt) node[left,yshift=.2cm]{D};
\path[fill=JungleGreen] (E) circle (2pt) node[left]{E};
\path[fill=JungleGreen] (F) circle (2pt) node[right,yshift=-.2cm]{F};
\path[fill=JungleGreen] (G) circle (2pt) node[above]{G};
\path[fill=JungleGreen] (H) circle (2pt) node[above]{H};
\path[fill=red] (N) circle (2pt) node[below] {N};

\end{tikzpicture}

\end{document}





Monday, December 7, 2015

Menggambar Grafik Fungsi Aljabar

Pada tulisan ini saya akan mengulas cara menggambar grafik fungsi aljabar dengan menggunakan paket pgfplots. Sebagai contoh, saya kutip dari soal Ujian Nasional Matematika SMA/MA IPA Tahun Pelajaran 2014/2015 berikut ini.
Luas daerah antara kurva $\small{y=x^3-x^2-6x}$ dan sumbu $\small{X}$ adalah
  1. $\small23\frac{5}{12}$ satuan luas
  2. $\small23\frac{1}{12}$ satuan luas
  3. $\small22\frac{3}{12}$ satuan luas
  4. $\small21\frac{5}{12}$ satuan luas
  5. $\small21\frac{1}{12}$ satuan luas
Gambar akhir yang kita tuju tampak seperti di samping ini.
Nah, bagaimana cara menggambar grafik fungsi $\small{y=x^3-x^2-6x}$ dengan menggunakan paket pgfplots?

Paket

Pada preamble kita muat
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

Environment

"Kerangka" untuk menggambar grafik dalam pgfplots menggunakan environment sebagai berikut
\begin{tikzpicture}
\begin{axis}[opsi]
... pengkodean grafik
\begin{axis}
\end{tikzpicture}

Menggambar Grafik

Persamaan fungsi yang akan kita gambar adalah $\small{y=x^3-x^2-6x}$, maka dalam pengkodeannya kita cukup mencantumkan $\small{x^3-x^2-6x}$ saja, dan untuk perkalian digunakan tanda bintang.
\begin{tikzpicture}
\begin{axis}
\addplot {x^3-x^2-6*x};
\end{axis}
\end{tikzpicture}
Perhatikan pengkodean di atas. Kita tidak menggunakan opsi, baik pada environment tikzpicture maupun pada environment axisaddplot adalah perintah untuk menggambar kurva dalam pgfplots. Perintah ini pun tidak menyertakan opsi. Hasilnya dapat dilihat pada Gambar 1 dalam dokumen terlampir di bawah ini.

Sekarang, apa yang terjadi jika kita cantumkan opsi pada environment axis dengan meletakkan kedua sumbu di tengah, kemudian pada perintah addplot kita cantumkan opsi daerah asal, kehalusan kurva, dan ketebalan kurva?
\begin{tikzpicture}
\begin{axis}[axis lines=middle]
\addplot[domain=-2.5:4.25,smooth,very thick] {x^3-x^2-6*x};
\end{axis}
\end{tikzpicture}
Perhatikan juga bahwa setiap perintah diakhiri oleh titik-koma, setiap opsi dipisahkan oleh koma, dan rentang daerah asal dipisahkan oleh titik-dua. Penetapan nilai pada rentang daerah asal bersifat subjektif, menurut selera. Hasilnya dapat dilihat pada Gambar 2 dalam dokumen terlampir di bawah ini.

Pada Gambar 2 tampak bahwa rentang absis dan rentang ordinat "tidak imbang", karena nilai $\small{y}$ terlalu besar. Kita (subjektif) dapat mengaturnya dengan menambahkan opsi nilai minimum dan maksimum untuk keduanya pada environment axis, misalnya
xmin=-3, xmax=5, 
ymin=-9, ymax=9,
Hasilnya dapat dilihat pada Gambar 3 dalam dokumen terlampir di bawah ini.

Selanjutnya, kita dapat menunjukkan semua atau sebagian dari nilai absis dan ordinat pada grafik yang kita buat. Jika kita ingin menunjukkan hanya sebagiannya (tertentu) saja, maka kita menyatakannya dengan, misalnya,
xtick={-2,-1,0,1,2,3},
ytick={-8,4},
Ini juga (tambahkan) merupakan opsi pada environment axis, dan hasilnya dapat dilihat pada Gambar 4 dalam dokumen terlampir di bawah ini.

Opsi berikutnya adalah kerapatan dari plot kurva yang kita buat, yaitu samples. Kita dapat menetapkan nilai yang memadai. Kemudian, kita dapat memperluas atau tidak memperluas bagian kiri dan kanan bidang grafik. Ini ditetapkan dalam opsi enlargelimits oleh true atau false. Dengan demikian, sebagai opsi environment axis, dapat kita tambahkan, misalnya,
samples=500,
enlargelimits=false,
Hasilnya dapat dilihat pada Gambar 5 dalam dokumen terlampir di bawah ini.

Sekarang kita akan menamai kedua sumbu koordinat. Dalam opsi label dapat kita tetapkan beberapa perintah untuk penamaannya. Dalam contoh ini, misalnya, nama sumbu adalah $\small{x}$ dan $\small{y}$ dengan ukuran huruf large.
xlabel={\large $x$},
ylabel={\large $y$}
Perhatikan bahwa ukuran huruf itu bersifat lokal, sehingga harus diperintahkan di dalam tanda kurung kurawal. Penamaan semacam ini bersifat asal (bawaan) dari pgfplots dan hasilnya dapat dilihat pada Gambar 6 dalam dokumen terlampir di bawah ini.

Bila diinginkan nama sumbu $\small{x}$ terletak di kanan dan nama sumbu $\small{y}$ terletak di atas, maka pada opsi label ditambahkan style sebagai berikut.
xlabel={\large $x$},xlabel style=right,
ylabel={\large $y$},ylabel style=above,
Hasilnya dapat dilihat pada Gambar 7 dalam dokumen terlampir di bawah ini.

Terakhir kita akan menamai kurva yang kita buat dengan persamaan fungsinya. Dalam hal ini kita gunakan perintah node dari paket tikz (yang merupakan dasar dari paket pgfplots). Kita letakkan namanya pada suatu koordinat (disesuaikan), yang ditautkan oleh pin dengan sudut tertentu. Misalnya,
\node[coordinate,pin=95:{\small{$y=x^3-x^2-6x$}}] at (axis cs:3.3,5){};

Nah, bila keseluruhan pengkodean itu kita rangkai maka akan kita peroleh gambar seperti di atas. Berikut ini pengkodean selengkapnya untuk gambar tersebut dan hasilnya dapat dilihat pada Gambar 8 dalam dokumen terlampir di bawah ini.
\documentclass[10pt]{article}
\usepackage[margin=2cm,a4paper]{geometry}
\usepackage[svgnames,dvipsnames]{xcolor}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}

\centering
\begin{tikzpicture}
\begin{axis}[
    axis lines=middle,
    xmin=-3, xmax=5, 
    ymin=-9, ymax=9,
    xtick={-2,-1,0,1,2,3},ytick={-8,4},
    samples=500,enlargelimits=false,
    xlabel={\large $x$},xlabel style=right,
    ylabel={\large $y$},ylabel style=above]
\addplot[domain=-2.5:4.25, Navy, smooth,very thick] {x^3-x^2-6*x} ;
\node[coordinate,pin=95:{\small{$y=x^3-x^2-6x$}}] at (axis cs:3.3,5){};
\end{axis}
\end{tikzpicture}

\end{document}




Penutup

Demikianlah, dokumen tersebut saya susun dalam jaringan melalui Online LaTeX Editor ShareLaTeX
Semoga bermanfaat.

Adjie Gumarang Pujakelana 2015


Friday, December 4, 2015

Menggambar Grafik Fungsi Logaritma

Saya memulung soal dari Ujian Nasional Matematika SMA/MA IPA Tahun Pelajaran 2014/2015, seperti tampak pada gambar di samping ini.
Sekarang kita akan menggambar grafik fungsi logaritma yang tampak pada gambar tersebut dengan menggunakan (lagi-lagi) paket pgfplots.

Selain teknis menggambar grafik tersebut, kita juga akan menambahkan dua perintah dari paket tikz untuk:
  • menghubungkan absis dan ordinat dari satu titik yang terletak pada kurva tersebut,
  • meletakkan nama (persamaan fungsi) dari kurva tersebut,
  • makro untuk menuliskan dengan baik lambang logaritma beserta bilangan pokoknya.

Fungsi untuk Grafik

Fungsi yang memenuhi kurva tersebut adalah $\small{y={}^3\log{x}}$. Dalam pgfplots, fungsi logaritma dinyatakan dalam bentuk logaritma dengan bilangan pokok $\small10$, yaitu dalam bentuk seperti
log10(x)
yang berarti $\small{y={}^{10}\log{x}}$. Oleh karena itu, dengan menggunakan sifat logaritma
\[\boxed{{}^{a}\log{b} = \frac{\log{b}}{\log{a}}}\]
maka kita peroleh $\displaystyle\small{{}^3\log{x}=\frac{\log{x}}{\log3}}$ yang dalam perintah pgfplots dinyatakan sebagai
log10(x)/log10(3)

Menuliskan Lambang Logaritma dengan Baik

Dapat Anda perhatikan penulisan lambang logaritma seperti di atas, di dalam blog ini, yaitu $\small{{}^3\log{x}}$ tampak kurang begitu baik karena ada jarak yang cukup renggang di antara bilangan pokok dan huruf "l" dari "log". Lambang tersebut dituliskan dengan
$\small{{}^3\log{x}}$
Selanjutnya, di dalam penyusunan dokumen $\small\LaTeX$ kita dapat menuliskan lambang logaritma semacam itu dengan lebih baik. Untuk hal ini kita gunakan paket xparse dan makro seperti tertulis di bawah ini, yang kita cantumkan pada preamble.
\usepackage{xparse}
\NewDocumentCommand{\Log}{o}{%
  \IfNoValueTF{#1}{}{{}^{#1}\!}\log}
Dalam penggunaannya kita tulis (misalnya) sebagai
$\Log[3]x$


Opsi-opsi Grafik

Sekarang kita bersiap untuk menggambar kurva tersebut. Opsi-opsi ini sebenarnya bersifat subjektif, tetapi sebagai contoh kita akan menetapkannya sebagai berikut.
Kedua sumbu kita letakkan di tengah, nama sumbu $\small{Y}$ kita letakkan di atasnya, nama sumbu $\small{X}$ kita letakkan di kanannya, dan kita perlebar ruang di kiri dan kanan bidang grafik.
axis lines=middle,
ylabel style=above,ylabel=$Y$,
xlabel style=right,xlabel=$X$,
enlargelimits,
Kemudian kita batasi ruang gambar dengan
xmin=-.25,xmax=5,
ymin=-2,ymax=2,
sehingga absis dan ordinat yang kita tampilkan cukuplah
xtick={1,2,3,4,5},ytick={1,2,3},
Terakhir, agar kurva kita tampil "halus-mulus" kita tetapkan "kerapatan plot" senilai
samples=500

Grafik

Kita gambar kurva dari $\small{y={}^3\log{x}}$ dalam warna biru, dengan daerah asal $\small{0\le{x}\le5}$, halus, dan ketebalan kurvanya seukuran thick.
\addplot[blue,domain=0:5,smooth,thick]  {log10(x)/log10(3)} ;
Kemudian kita hubungkan absis dan ordinat dari titik $\small(3,1)$ dalam bentuk garis putus-putus yang agak rapat dan diwarnai abu-abu.
\draw[densely dashed,gray] (axis cs:3,0)--(axis cs:3,1)--(axis cs:0,1);
Terakhir kita namai kurva kita ini dengan memakunya pada posisi $\small90^\circ$ dari suatu koordinat, yaitu
\node[coordinate,pin=95:{\small{$y=\Log[3]x$}}] at (axis cs:4,1.25){};

Pengkodean dan Hasilnya

Nah, berikut ini pengkodean selengkapnya untuk menggambar grafik fungsi logaritma seperti tampak pada gambar di atas, kemudian hasilnya dapat Anda lihat dalam dokumen terlampir di bawahnya.
\documentclass[10pt,a4paper]{article}
\usepackage{geometry}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
%--------------------------- notasi logaritma
\usepackage{xparse}
\NewDocumentCommand{\Log}{o}{%
  \IfNoValueTF{#1}{}{{}^{#1}\!}\log}%
%---------------------------

\begin{document}

\centering

\begin{tikzpicture}
\begin{axis}[
    axis lines=middle,
    ylabel style=above,ylabel=$Y$,
    xlabel style=right,xlabel=$X$,
    enlargelimits,
    xmin=-.25,xmax=5,
    ymin=-2,ymax=2,
    xtick={1,2,3,4,5},ytick={1,2,3},
    samples=500]
\addplot[blue,domain=0:5,smooth,thick]  {log10(x)/log10(3)} ;
\draw[densely dashed,gray] (axis cs:3,0)--(axis cs:3,1)--(axis cs:0,1);
\node[coordinate,pin=95:{\small{$y=\Log[3]x$}}] at (axis cs:4,1.25){};
\end{axis}
\end{tikzpicture}

\end{document}



Penutup

Demikianlah, dokumen tersebut saya susun dalam jaringan melalui Online LaTeX Editor ShareLaTeX
Semoga bermanfaat.

Adjie Gumarang Pujakelana 2015


Thursday, December 3, 2015

Menggambar Histogram dengan Menggunakan Tabel Pgfplots

Histogram yang kita gambar terdahulu menempatkan tepi-tepi kelas dari data berkelompok sebagai absis untuk batang-batangnya. Sekarang kita akan menempatkan tiap-tiap kelasnya sebagai absis yang menamai batang yang bersesuaian, seperti tampak pada gambar di samping ini.

Paket


Pada tulisan ini akan saya tampilkan contoh histogram ini persis seperti gambar tersebut. Untuk itu saya gunakan warna bistre dan bistre Prancis dan Tan dengan paket xcolor
\usepackage[svgnames]{xcolor}
\definecolor{bistre}{RGB}{61, 43, 31}
\definecolor{bistref}{RGB}{133, 109, 77}
Paket xcolor ini harus kita muat sebelum paket pgfplots. Sama seperti sebelum ini, untuk menggambar histogram ini, kita gunakan paket pgfplots dan library patterns dari paket tikz untuk pengarsiran batang. Dengan demikian kita muat
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{patterns}

Tabel Pgfplots

Kali ini akan kita buat tabel pgfplots sebagai data yang digunakan oleh pgfplots dalam menggambar histogramnya. Kita akan memberitahu kepada pgfplots bahwa data kita berbentuk tabel, di mana kolom dipisahkan oleh tanda "&" dan baris dipisahkan oleh tanda "\\". Mirip seperti menuliskan tabel di samping ini, kita sebut kolom pertama sebagai Berat dan kolom kedua sebagai f, kemudian kita namai tabel ini sebagai (misalnya) dataku.
\pgfplotstableread[row sep=\\,col sep=&]{
    Berat    & f  \\
    51--60   & 8   \\
    61--70   & 10  \\
    71--80   & 11 \\
    81--90   & 8 \\
    91--100  & 3  \\
    }\dataku

Opsi-opsi Grafik


Sumbu koordinat kita warnai oleh warna bistref yang telah ditetapkan di dalam preamble.
axis line style={bistref},
Sumbu $\small{X}$ kita tetapkan di tengah sedangkan sumbu $\small{Y}$ kita tetapkan di kiri, kemudian pada awal sumbu $\small{X}$ positif kita buat rentang pemutus.
axis x line = center,
axis y line = left,
axis x discontinuity=crunch,
Batang histogram kita tegak, sejajar dengan sumbu $\small{Y}$, maka kita nyatakan
ybar,
Agar batang-batang itu merapat maka jarak antarbatang dan lebar tiap batang kita buat sama, misalnya
x=1cm,bar width=1cm,
sedangkan ruang kosong pada awal dan ujung bidang grafik dapat kita atur dengan menuliskan nilai yang cocok dalam
enlarge x limits=0.375,
Sekarang kita ganti nilai-nilai absisnya oleh kelas-kelas dari data kita, maka kita nyatakan 
symbolic x coords={51--60,61--70,71--80,81--90,91--100},
xtick=data,
kemudian noktah penanda nilai absis dan ordinat kita sembunyikan saja
tickwidth=0pt,
Berikutnya kita namai sumbu $\small{X}$ sebagai Berat dan kita letakkan di kanan, dan kita mewarnai nama ini dengan bistref
xlabel=Berat,
xlabel style={at={(1,0)},right,font=\color{bistre}\small,text width=1cm,align=center},
Agar nilai-nilai ordinat tidak tercetak (kosong) maka kita nyatakan
ytick=\empty,
kemudian kita namai sumbu $\small{Y}$ sebagai Frekuensi dan kita letakkan di (posisi paling) atas, dan kita mewarnai nama ini dengan bistref
ylabel=Frekuensi,
ylabel style={at={(0,1)},above,rotate=-90,font=\color{bistre}\small,text width=1cm,align=center},
Seluruh nilai absis dan ordinat (agar tak terlalu besar) kita buat dalam huruf berukuran small saja.
y tick label style={font=\color{bistre}\small},
x tick label style={font=\color{bistre}\small,text width=1cm,align=center},
Kemudian kita letakkan nilai-nilai itu secara asal (default).
nodes near coords,
nodes near coords align={vertical},
Dalam modus batang-tegak, kita nyatakan nilai $\small{y}$ minimum nol sedang maksimumnya disesuaikan dengan data. Pada data kita ini nilai maksimum frekuensi adalah $\small11$, maka
ymin=0,ymax=13,
Sebagai opsi terakhir, bila perlu, kita dapat membubuhkan judul sebagai keterangan terhadap histogram yang dibuat, misalnya
title=Histogram Berat Benda

Grafik


Kita perintahkan pgfplots untuk menggunakan data kita dari tabel dataku untuk menggambarkan histogramnya berdasarkan pada opsi-opsi grafik di atas. Kemudian kita minta pgfplots mewarnai sisi-sisi batangnya dengan warna bistref dan mengarsir daerah batangnya ke arah Barat Laut.
\addplot[draw=bistref,pattern=north west lines,pattern color=Tan] table[x=Berat,y=f]{\dataku};

Pengkodean dan Hasilnya


Nah, berikut ini pengkodean selengkapnya untuk menggambar histogram seperti tampak pada gambar di atas, kemudian hasilnya dapat Anda lihat dalam dokumen terlampir di bawahnya.
\documentclass{article}
\usepackage[svgnames]{xcolor}
\definecolor{bistre}{RGB}{61, 43, 31}
\definecolor{bistref}{RGB}{133, 109, 77}

\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{patterns}

\begin{document}

\pgfplotstableread[row sep=\\,col sep=&]{
    Berat    & f  \\
    51--60   & 8   \\
    61--70   & 10  \\
    71--80   & 11 \\
    81--90   & 8 \\
    91--100  & 3  \\
    }\dataku

\begin{tikzpicture}
    \begin{axis}[
    axis line style={bistref},
    axis x line = center,
    axis y line = left,
    axis x discontinuity=crunch,
    ybar,x=1cm,bar width=1cm,
    enlarge x limits=0.375,
    symbolic x coords={51--60,61--70,71--80,81--90,91--100},
    xtick=data,
    tickwidth=0pt,
    xlabel=Berat,
    xlabel style={at={(1,0)},right,font=\color{bistre}\small,text width=1cm,align=center},
    ytick=\empty,
    ylabel=Frekuensi,
    ylabel style={at={(0,1)},above,rotate=-90,font=\color{bistre}\small,text width=1cm,align=center},
    y tick label style={font=\color{bistre}\small},
    x tick label style={font=\color{bistre}\small,text width=1cm,align=center},
    nodes near coords,
    nodes near coords align={vertical},
    ymin=0,ymax=13,title=Histogram Berat Benda
    ]
    \addplot[draw=bistref,pattern=north west lines,pattern color=Tan] table[x=Berat,y=f]{\dataku};
    \end{axis}
\end{tikzpicture}
\end{document}



Penutup

Demikianlah, dokumen tersebut saya susun dalam jaringan melalui Online LaTeX Editor ShareLaTeX
Semoga bermanfaat.

Adjie Gumarang Pujakelana 2015


Wednesday, December 2, 2015

Menggambar Histogram

Setelah menggambar diagram lingkaran dan diagram batang, kali ini kita lanjutkan dengan menggambar histogram, seperti tampak pada gambar di samping ini.


Paket

Untuk ini pun akan kita gunakan paket pgfplots dan library patterns dari paket tikz untuk pengarsiran batang. Dengan demikian pada preamble kita muat
\usepackage{tikz}
\usetikzlibrary{patterns}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
Agar ukuran dari gambar histogram ini tidak terlalu besar, dapat kita atur skala gambar kita pada opsi gambar tikz. Sebagai contoh, saya gunakan

\begin{tikzpicture}[scale=.9]
\begin{axis}[...]
...
\end{axis}
\end{tikzpicture}


Opsi-opsi Grafik


Untuk gambar pada contoh di atas, sumbu $\small{X}$ kita letakkan di tengah sedangkan sumbu $\small{Y}$ diletakkan di kiri.
axis x line=center,
axis y line=left,
Untuk "menyingkat" nilai-nilai di kiri dari tepi bawah kelas pertama, kita buat lekukan semacam itu. Lekukan tersebut dibuat oleh opsi
axis x discontinuity=crunch,
Perhatikan bahwa kita akan mengganti nilai-nilai absis pada sumbu $\small{X}$ oleh nilai dari tepi-tepi kelas dari data berkelompok. Untuk 5 kelas dari data itu kita nyatakan
symbolic x  coords={$50.5$,$60.5$,$70.5$,$80.5$,$90.5$,$100.5$},
Kemudian kita nyatakan frekuensi untuk tiap kelas yang bersesuaian
ytick={3,8,10,11},
sehingga nilai $\small{y}$ dapat kita batasi (subjektif) dengan
ymin=0,ymax=13,
Agar penggantian ini berterima dengan pgfplots, kita nyatakan
xtick=data,
Selanjutnya kita dapat mengatur (secara subjektif) jarak antarbatang, lebar tiap batang, dan ruang kosong sebelum batang pertama dan setelah batang terakhir.
x=1cm, bar width=10pt, enlarge x limits=0.15,
Untuk menempatkan tiap nilai absis dan ordinat kita nyatakan
ylabel near ticks,
xlabel near ticks,
Sekarang kita namai sumbu $\small{X}$ sebagai "Umur", meletakkannya di kanan, dan menggunakan huruf berukuran small
xlabel=Umur,
xlabel style={at={(1,0)},right,font=\small,text width=1cm,align=center},
dan menamai sumbu $\small{Y}$ sebagai "Frekuensi", meletakkannya di atas, dan menggunakan huruf berukuran small
ylabel=Frekuensi,
ylabel style={at={(0,1)},above,rotate=-90,font=\small,text width=1cm,align=center},
Demikian pula nama-nama absis dan ordinat kita buat saja dengan huruf berukuran small.
y tick label style={font=\small},
x tick label style={font=\small,text width=1cm,align=center}


Grafik

Sekarang kita gambar histogram itu dengan cara menghimpun dan merangkai koordinat dari tepi kelas dan frekuensinya secara berurutan, tetapi kita tambahkan opsi pattern untuk mengarsir batang-batang yang terbentuk.

\addplot[ybar interval,pattern=north west lines] coordinates{($50.5$,8)($60.5$,10)($70.5$,11)($80.5$,8)($90.5$,3)($100.5$,3)};

Pengkodean dan Hasilnya

Nah, berikut ini pengkodean selengkapnya untuk menggambar histogram seperti tampak pada soal di atas (dalam warna asal, hitam), kemudian hasilnya dapat Anda lihat dalam dokumen terlampir di bawahnya.
\documentclass{article} 

\usepackage{utopia}
\usepackage{geometry}

\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{patterns}

\begin{document}  

\centering

\begin{tikzpicture}[scale=.9]
 \begin{axis}[
     axis x line=center,
     axis y line=left,
     axis x discontinuity=crunch,
     symbolic x  coords={$50.5$,$60.5$,$70.5$,$80.5$,$90.5$,$100.5$},
     ytick={3,8,10,11},
     ymin=0,ymax=13,
     xtick=data,
     x=1cm,bar width=10pt,enlarge x limits=0.15,
     ylabel near ticks,
     xlabel near ticks,
     xlabel=Umur,
     xlabel style={at={(1,0)},right,font=\small,text width=1cm,align=center},
     ylabel=Frekuensi,
     ylabel style={at={(0,1)},above,rotate=-90,font=\small,text width=1cm,align=center},
     y tick label style={font=\small},
     x tick label style={font=\small,text width=1cm,align=center}
     ]
    \addplot[ybar interval,pattern=north west lines] coordinates{($50.5$,8)($60.5$,10)($70.5$,11)($80.5$,8)($90.5$,3)($100.5$,3)};
  \end{axis}
 \end{tikzpicture}
 
\end{document}



Penutup

Demikianlah, dokumen tersebut saya susun dalam jaringan melalui Online LaTeX Editor ShareLaTeX
Semoga bermanfaat.

Adjie Gumarang Pujakelana 2015


Related Posts Plugin for WordPress, Blogger...