Saturday, December 19, 2015

Pembagi Terbesar Bersisa Sama

Hari ini saya belajar dari Pak Anang yang mengajukan soal sebagai berikut.
"Berapakah bilangan $\small{A}$ terbesar sehingga jika $\small480608$, $\small508811$, dan $\small723217$ dibagi oleh $\small{A}$ akan memberikan sisa yang sama."
Jawaban atas soal tersebut sudah saya tulis dalam dokumen berikut ini. 



Lalu, apa hal penting dalam penyusunan dokumen tersebut?
Silakan Anda perhatikan kolom kanan pada jawaban dalam dokumen tersebut. Penentuan nilai $\small{b-a}$ dan $\small{c-b}$ itu tidak saya tuliskan secara manual melainkan dilakukan oleh paket xlop dengan perintah
$b-a=$ \opsub[style=text]{508811}{480608}\\
$c-b=$ \opsub[style=text]{723217}{508811}
untuk menunjukkan pengurangan dari kedua bilangan itu dengan arah ke samping kanan.
Kemudian perhatikan di bawahnya. Menentukan faktor persekutuan terbesar (great common divisordari kedua bilangan itu juga dilakukan oleh paket xlop dengan perintah (makro)
\opcopy{28203}{a}%
\opcopy{214406}{b}%
\opgcd{a}{b}{FPB}%
$\gcd(\opprint{a},\opprint{b})=\opprint{FPB}$
Tampak bahwa nilai beda yang telah diperoleh sebelumnya dari hasil perintah \opsub, yaitu $\small28203$ dan $\small214406$ berturut-turut saya tetapkan sebagai $\small{a}$ dan $\small{b}$. Lalu nilai faktor persekutuan terbesarnya saya tetapkan sebagai $\small{FPB}$. Setelah itu barulah memberi perintah \gcd untuk memperoleh hasilnya.

Yang terakhir, perhatikan kolom kanan pada bagian terbawah. Pemfaktoran bilangan atas faktor-faktor prima tersebut dihasilkan oleh makro dari Nickie, seorang pakar di forum, berikut ini. Makro ini saya simpan sebagai faktorprima.tex yang kemudian disertakan pada preamble dalam penyusunan dokumen di atas.
\makeatletter

\newcount\factorize@n  % the number to be factorized
\newcount\factorize@t  % temporary
\newcount\factorize@p  % a candidate factor
\newcount\factorize@c  % counter of factors (total)
\newcount\factorize@w  % counter of factors (power of given candidate)

% machinery for factorization
%
\def\factorize#1{%
  \factorize@begin{#1}%
  \factorize@n=#1
  \factorize@c=0
  \factorize@p=2
  \factorize@try%
  \factorize@p=3
  \factorize@try%
  \factorize@p=5
  \factorize@loop%
  \ifnum\factorize@c>0
    \ifnum\factorize@n>1
      \factorize@process{\the\factorize@n}{1}%
    \fi%
  \else%
    \factorize@process{\the\factorize@n}{1}%
  \fi%
  \factorize@end{#1}%
}
\def\factorize@loop{%
  \factorize@t=\factorize@p
  \multiply\factorize@t by \factorize@p
  \ifnum\factorize@t>\factorize@n\else%
    \factorize@try%
    \advance\factorize@p by 2
    \factorize@t=\factorize@p
    \multiply\factorize@t by \factorize@p
    \ifnum\factorize@t>\factorize@n\else%
      \factorize@try%
      \advance\factorize@p by 4
      \factorize@loop%
    \fi%
  \fi%
}
\def\factorize@try{%
  \factorize@w=0
  \factorize@try@aux%
  \ifnum\factorize@w>0
    \factorize@process{\the\factorize@p}{\the\factorize@w}%
    \advance\factorize@c by \factorize@w
  \fi%
}
\def\factorize@try@aux{%
  \factorize@t=\factorize@n
  \divide\factorize@t by \factorize@p
  \multiply\factorize@t by \factorize@p
  \ifnum\factorize@n=\factorize@t
    \divide\factorize@n by \factorize@p
    \advance\factorize@w by 1
    \factorize@try@aux%
  \fi%
}

% Stubs to be called at start, end, and when a factor is found
%
\def\factorize@begin#1{%
  \noindent%
  $#1 =%$
}
\def\factorize@end#1{%
  $%$
  \par%
}
\def\factorize@process#1#2{%
  \ifnum\factorize@c>0
    \times%
  \fi%
  \ifnum#2>1
    #1^{#2}%
  \else%
    #1%
  \fi%
}

\makeatother
Kemudian saya gunakan untuk
\factorize{28203}

\factorize{214406}

Demikianlah, berikut ini pengkodean selengkapnya untuk soal dan jawaban pada di atas. Dokumen tersebut saya susun dalam jaringan melalui Online LaTeX Editor ShareLaTeXSemoga bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2015
\documentclass[10pt,a4paper]{article}
\usepackage[hmargin=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage[dvipsnames,svgnames,table]{xcolor}
\definecolor{bistreb}{RGB}{150, 113, 23}
\definecolor{blau}{RGB}{17,94,140}
\renewcommand{\rmdefault}{put}
\usepackage[indonesian]{babel}
\usepackage{amsmath,amssymb,bm} 
\usepackage{xlop}
\input{faktorprima.tex}
\usepackage{multicol}
\setlength\columnseprule{.4pt}
\renewcommand{\columnseprulecolor}{\color{bistreb}}

\parindent0em

\begin{document}

{\color{blau}\bfseries Soal.}

\smallskip
Berapakah bilangan $A$ terbesar sehingga jika $480608$, $508811$, dan $723217$ dibagi oleh $A$ akan memberikan sisa yang sama?

\medskip
{\color{blau}\bfseries Jawaban:}
\begin{multicols}{2}
Misalkan ketiga bilangan itu $a_1$, $a_2$, dan $a_3$ dengan $a_1


Friday, December 18, 2015

Metode Hörner

Metode Hörner dipelajari di sekolah-sekolah sebagai salah satu cara dalam melakukan pembagian terhadap suatu sukubanyak oleh suatu fungsi. Mengutip dari Wikipedia,
Metode Hörner berkaitan dengan salah satu dari dua hal:
  • algoritma untuk perhitungan terhadap sukubanyak, yang berupa pengubahan bentuk (transformasi) dari deretan suku-suku (monomial) ke bentuk perhitungan (dengan menggunakan bagan/skema) yang lebih efisien; atau 
  • metode untuk menemukan pendekatan terhadap akar-akar dari sukubanyak, yang dikenal sebagai metode Ruffini-Horner.
Metode ini mengatasnamai matematikawan Inggris, William George Hörner, meskipun hal itu sudah dikenal sebelumnya oleh Paolo Ruffini dan, enam ratus tahun sebelumnya, oleh matematikawan China, Qin Jiushao

Sukubanyak (Polinomial)

Pada tulisan ini saya akan mengulas tentang perhitungan di dalam Metode Hörner pada dokumen $\small\LaTeX$ di mana, dengan mencantumkan koefisien-koefisien dari suatu sukubanyak dan pembaginya, kita dapat langsung memperoleh hasil pembagian dan sisanya. Namun, sebelum itu dan seperti telah kita ketahui, karena metode ini berkaitan dengan sukubanyak maka (sebagai acuan) lebih dulu saya tunjukkan dokumen yang memuat konsep sukubanyak berikut ini.



Dokumen di atas saya susun dalam TeX Live 2015 dengan kelas dokumen (presentasi) Beamer dan bertema Feather dari Lilyana.


Perhitungan dalam Metode Hörner 

Perhatikan gambar di samping ini. Barangkali Anda sudah terbiasa melakukan pembagian sukubanyak dengan cara Hörner semacam itu. Kali ini (dalam dokumen $\small\LaTeX$) kita dapat melakukannya tanpa perhitungan secara manual atau coba-coba (try and error). Ini berkat sumbangsih makro dari Egreg, seorang pakar di forum.
Untuk memudahkan, karena makro tersebut cukup panjang, lebih dulu saya menyimpannya sebagai file horner.tex. Kemudian, dalam struktur dokumen, saya sertakan sebagai input dan menjalankannya dengan paket xparse.

\ExplSyntaxOn
\NewDocumentCommand{\horner}{smm}
 {
  \IfBooleanTF{#1}
   { \bool_set_false:N \l_silke_show_bool }
   { \bool_set_true:N \l_silke_show_bool }
  \silke_horner:nn { #2 } { #3 }
 }

\bool_new:N \l_silke_show_bool
\seq_new:N \l_silke_top_seq
\seq_new:N \l_silke_middle_seq
\seq_new:N \l_silke_bottom_seq
\seq_new:N \l_silke_temp_seq
\int_new:N \l_silke_degree_int
\tl_new:N \l_silke_remainder_tl

\cs_new_protected:Npn \silke_horner:nn #1 #2
 {
  \seq_set_split:Nnn \l_silke_top_seq { , } { #1 }
  \int_set:Nn \l_silke_degree_int { \seq_count:N \l_silke_top_seq }
  \seq_clear:N \l_silke_middle_seq
  \seq_clear:N \l_silke_bottom_seq
  \seq_put_right:Nn \l_silke_middle_seq { \downarrow }
  \seq_put_right:Nx \l_silke_bottom_seq
   {
    \int_to_arabic:n { \seq_item:Nn \l_silke_top_seq { 1 } }
   }
  \int_step_inline:nnnn { 2 } { 1 } { \l_silke_degree_int }
   {
    \seq_put_right:Nx \l_silke_middle_seq
     {
      \int_to_arabic:n { \seq_item:Nn \l_silke_bottom_seq { ##1 - 1 } * #2 }
     }
    \seq_put_right:Nx \l_silke_bottom_seq
     {
      \int_to_arabic:n
       {
        \seq_item:Nn \l_silke_top_seq { ##1 }
        +
        \seq_item:Nn \l_silke_middle_seq { ##1 }
       }
     }
   }
  \silke_print_scheme:n { #2 }
 }

\cs_new_protected:Npn \silke_print_scheme:n #1
 {
  \bool_if:NF \l_silke_show_bool
   {
    \silke_phantom:N \l_silke_middle_seq
    \silke_phantom:N \l_silke_bottom_seq
   }
  \seq_pop_right:NN \l_silke_bottom_seq \l_silke_remainder_tl
  \begin{array}{r | *{\l_silke_degree_int}{r} }
     & \seq_use:Nn \l_silke_top_seq { & } \\
  #1 & \seq_use:Nn \l_silke_middle_seq { & } \\
  \hline
     & \seq_use:Nn \l_silke_bottom_seq { & } & 
       \multicolumn{1}{@{\vline width 1pt}r}{\l_silke_remainder_tl}
  \end{array}
 }

\cs_new_protected:Npn \silke_phantom:N #1
 {
  \seq_clear:N \silke_temp_seq
  \seq_map_inline:Nn #1 { \seq_put_right:Nn \silke_temp_seq { \phantom{##1} } }
  \seq_set_eq:NN #1 \silke_temp_seq
 }

\ExplSyntaxOff
Sebagai contoh, silakan Anda buka dokumen di atas pada frame 9. Untuk memperoleh hasil bagi dan sisa dari pembagian sukubanyak $\small{x^3+2x^2+3x-5}$ oleh $\small{x-2}$, cukup kita nyatakan
$\horner{1,2,3,-5}{2}$
Kemudian pada frame 10 kita lakukan pembagian $\small{f(x)=x^4-6x^3-6x^2+8x+6}$ oleh $\small{x-2}$, maka kita tulis
$\horner{1,-6,-6,8,6}{2}$
Masih pada frame 10 kita lakukan pembagian $\small{4x^4+3x^2-6x+1}$ oleh $\small{2x-1}$, maka kita tulis
$\horner{4,0,3,-6,1}{1/2}$
Namun demikian, untuk diingat, makro tersebut berfungsi hanya jika pembagi dari sukubanyak itu berupa fungsi linear.


Pengkodean dan Hasilnya

Berikut ini pengkodean selengkapnya untuk menentukan hasil bagi dan sisa dalam Metode Hörner dengan menggunakan makro tersebut, kemudian hasilnya dapat Anda lihat pada gambar di atas.
\documentclass{article}
\usepackage{xparse}

\input{horner.tex}

\begin{document}

$\horner{1,2,3,-5}{2}$

\bigskip

$\horner{1,-6,-6,8,6}{2}$

\bigskip

$\horner{4,0,3,-6,1}{1/2}$

\end{document}


Penutup


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

Adjie Gumarang Pujakelana 2015


Wednesday, December 16, 2015

Menyelesaikan Pertidaksamaan Bentuk Akar dengan Menggunakan Garis Bilangan

Mari kita ulas jawaban dari soal berikut ini.
Tentukan penyelesaian dari $\displaystyle\sqrt{3x-5}<\sqrt{2x+7}$.
Tentu kita akan selesaikan seperti ini
\begin{align*}
\sqrt{3x-5} &< \sqrt{2x+7}\\
3x-5 &< 2x+7\\
3x-2x &< 7+5\\
x &< 12\qquad\cdots\cdots\cdots\quad (1)
\end{align*}

Namun ada dua syarat lainnya yang harus dipenuhi, yaitu:
\begin{align*}
3x-5 &\ge 0\\
3x &\ge 5\\
x &\ge \frac{5}{3}\qquad\cdots\cdots\cdots\quad (2)
\end{align*}

dan
\begin{align*}
2x+7 &\ge 0\\
2x &\ge -7\\
x &\ge -\frac{7}{2}\qquad\cdots\cdots\cdots\quad (3)
\end{align*}
Nah, ketiga batasan tersebut akan menetapkan penyelesaian dari pertidaksamaan pada soal di atas, yaitu semua nilai $\small{x}$ yang memenuhi ketiga batasan itu. Hal inilah yang ditindaklanjuti dengan menggunakan garis bilangan, agar diperoleh penyelesaian yang tepat secara jelas dan mudah. Lalu, bagaimana kita menggambarkannya dengan menggunakan $\small\LaTeX$, seperti tampak pada gambar di atas?

Kita akan menggambarnya dengan menggunakan paket tikz, dalam environment gambar tikz.
\begin{tikzpicture}[scale=.5]
...
\end{tikzpicture}
Kita sengaja perkecil skalanya (dalam 50%) agar gambarnya tidak terlalu melebar.

Menggambar Ruas Garis

Sesuai dengan cakupan yang memadai, kita buat ruas garis dalam rentang $\small{-5\le{x}\le14}$, dengan memuat mata panah pada kedua ujungnya.
\draw[thick,stealth-stealth] (-5,0)--(14,0);
Agar jarak antarbatasan (berupa ruas garis berarah) relatif tampak baik, maka kita atur agar berjarak $\small1\textrm{cm}$.
Sekarang kita tunjukkan batasan (1) yang beranjak dari koordinat $\small(12,0)$ lalu ke $\small(12,1)$, kemudian lurus ke kiri (tak hingga) yang ditunjukkan oleh mata panah pada koordinat $\small(-5,1)$.
\draw[thick,-stealth,Indigo] (12,0)--(12,1)--(-5,1);
Warna Indigo (dan juga warna lainnya) digoreskan oleh paket xcolor dalam opsi svgnames.

Berikutnya kita buat ruas garis untuk batasan (2) yang beranjak dari koordinat $\small\left(\frac{5}{3},0\right)$ lalu ke $\small\left(\frac{5}{3},2\right)$, kemudian lurus ke kanan (tak hingga) yang ditunjukkan oleh mata panah pada koordinat $\small(14,2)$.
Bagaimana koordinat $\small\left(\frac{5}{3},0\right)$ dapat ditetapkan dengan tepat? Paket tikz memiliki library yang bertugas untuk melakukannya, yaitu calc. Kita tidak menggunakan kalkulator untuk menetapkan nilai $\small\frac{5}{3}$.
\draw[thick,-stealth,OrangeRed] ({5/3},0)--({5/3},2)--(14,2);
Batasan (3) kita buat dari koordinat $\small\left(-\frac{7}{2},0\right)$ ke $\small\left(-\frac{7}{2},3\right)$, kemudian lurus ke kanan (tak hingga) yang ditunjukkan oleh mata panah pada koordinat $\small(14,3)$.
\draw[thick,-stealth,RoyalBlue] ({-7/2},0)--({-7/2},3)--(14,3);

Mengarsir "Daerah" Penyelesaian

Nah, penyelesaian dari pertidaksamaan pada soal di atas, tentu saja, adalah semua nilai $\small{x}$ pada garis bilangan yang "terlintasi" oleh bagian dari ketiga ruas garis berarah tersebut. Dalam hal ini penyelesaiannya terletak pada selang $\small\frac{5}{3}\le{x} < 12$. Untuk menandainya kita arsir daerah persegi panjang yang mencakup bagian dari ketiga ruas garis berarah dalam selang tersebut dan untuk hal ini kita memerlukan library patterns dari tikz.
\path[pattern=north west lines,opacity=.8,pattern color=LightSlateGray] ({5/3},0)--({5/3},3)--(12,3)--(12,0)--cycle;


Menandai "Noktah" Absis

Sekarang kita tandai absis-absis yang menjadi pembatas pada penyelesaian terhadap soal di atas. Penanda ini berupa bulatan (circle) yang kita isi warna hitam atau putih secara bersesuaian dengan penyelesaiannya. Untuk hal ini kita gunakan perintah filldraw.
\filldraw[black,fill=white] (12,0) node[below,yshift=-.05cm] {$12$} circle (0.5em) ;

\filldraw[black] ({5/3},0) node[below,yshift=-.05cm] {$\frac{5}{3}$} circle (0.5em) ;

\filldraw[black] ({-7/2},0) node[below,yshift=-.05cm] {$-\frac{7}{2}$} circle (0.5em);
Perhatikan bahwa kita sekaligus menempatkan nilai-nilainya (oleh perintah node), masing-masing di bawah bulatan tersebut dengan menyusutkannya ke arah bawah sejauh $\small0,05\textrm{cm}$.


Menamai Pembatas

Terakhir kita tunjukkan nama-nama pembatas (1), (2), dan (3) pada langkah-langkah penyelesaian dari pertidaksamaan pada soal di atas. Kita letakkan nama-nama ini masing-masing pada koordinat mata panahnya, di kiri atau kanannya.
\node[right] at (14,3) {(3)} node[right] at (14,2) {(2)} node[left] at (-5,1) {(1)};


Pengkodean dan Hasilnya

Berikut ini pengkodean selengkapnya untuk menggambar penyelesaian dari pertidaksamaan pada soal di atas dengan menggunakan garis bilangan, kemudian hasilnya dapat Anda lihat dalam dokumen terlampir di bawahnya.
\documentclass{article}
\usepackage{geometry}
\usepackage[dvipsnames,svgnames]{xcolor}
\usepackage{amsmath}
\usepackage{utopia,mathpazo}
\usepackage{tikz}
\usetikzlibrary{calc,patterns}

\pagestyle{empty}

\begin{document}

\begin{tikzpicture}[scale=.5]

\draw[thick,stealth-stealth] (-5,0)--(14,0);

\draw[thick,-stealth,Indigo] (12,0)--(12,1)--(-5,1);

\draw[thick,-stealth,OrangeRed] ({5/3},0)--({5/3},2)--(14,2);

\draw[thick,-stealth,RoyalBlue] ({-7/2},0)--({-7/2},3)--(14,3);

\path[pattern=north west lines,opacity=.8,pattern color=LightSlateGray] ({5/3},0)--({5/3},3)--(12,3)--(12,0)--cycle;

\filldraw[black,fill=white] (12,0) node[below,yshift=-.05cm] {$12$} circle (0.5em) ;

\filldraw[black] ({5/3},0) node[below,yshift=-.05cm] {$\frac{5}{3}$} circle (0.5em) ;

\filldraw[black] ({-7/2},0) node[below,yshift=-.05cm] {$-\frac{7}{2}$} circle (0.5em);

\node[right] at (14,3) {(3)} node[right] at (14,2) {(2)} node[left] at (-5,1) {(1)};
\end{tikzpicture}
\end{document}



Penutup

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

Adjie Gumarang Pujakelana 2015


Tuesday, December 15, 2015

Menggambar Grafik Fungsi Trigonometri

Pada tulisan ini kita akan menggambar grafik fungsi trigonometri dengan daerah asal (absis) berupa sudut dalam radian yang dinyatakan dalam $\small\pi$, seperti tampak pada gambar di samping ini, dengan menggunakan paket pgfplots.

Preamble

Tentu saja kita muat
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
Tetapi untuk keperluan lainnya (ukuran dan letak) kita memerlukan library tikz
\usetikzlibrary{calc,positioning,intersections}
Hal utama dalam contoh grafik ini adalah menetapkan ukuran (jarak) absis yang dinyatakan dalam $\small\pi$. Agar ukuran ini menyatakan ukuran sebenarnya, kita memerlukan makro berikut ini.
\makeatletter
\newcommand*{\ArrayToCommaList}[1]{%
  \let\ArrayToCommaList@Result\@empty
  \expandafter\@tfor\expandafter\ArrayToCommaList@Entry
  \expandafter:\expandafter=#1\do{%
    \edef\ArrayToCommaList@Result{%
      \ArrayToCommaList@Result,\ArrayToCommaList@Entry
    }%
  }%
  % Remove first comma
  \edef#1{%
    \expandafter\@cdr\ArrayToCommaList@Result\@empty\@nil
  }%
}
\makeatother
Dengan makro tersebut kita akan mendaftar nilai-nilai absis pada sumbu $\small{X}$ dan mengurutkannya pada jarak yang tepat berdasarkan nilai $\small\pi$.

Opsi-opsi Grafik

Di dalam environment gambar tikz, sebelum environment axis, kita tetapkan dulu nilai-nilai absis yang akan kita tunjukkan, dengan menggunakan makro tadi, misalnya
\pgfmathsetmacro\xticklist{(1/4)*pi, (1/2)*pi, (3/4)*pi, pi, (5/4)*pi, (3/2)*pi, (7/4)*pi, 2*pi}
\ArrayToCommaList\xticklist
Agar bagian kurva kita termuat seluruhnya pada bidang gambar maka kita nyatakan
clip=false,
Kedua sumbu kita letakkan di tengah dan saya pilih warna bistre untuk kedua sumbu tersebut.
axis lines=middle,
axis line style={-stealth,bistre},
Warna bistre itu kita tetapkan dengan paket xcolor sebagai
\definecolor{bistre}{RGB}{61, 43, 31}
Kemudian kita namai dan kita letakkan nama kedua sumbu itu sebagai
xlabel=$x$,ylabel=$y$,
xlabel style=right,ylabel style=above,
Sesuai dengan cakupannya, kita batasi daerah asal dan daerah kawan, misalnya
xmin=-.25,xmax=2*pi+.25,
ymin=-2.5,ymax=2.5,
Noktah untuk absis yang kita tunjukkan merujuk pada daftar dalam perintah \xticklist semula, sedangkan ordinatnya cukup kita tunjukkan bilangan $\small-2$, $\small-1$, $\small1$, dan $\small2$.
xtick=\xticklist,ytick={-2,-1,1,2},
Khusus untuk nilai-nilai absisnya kita namai sesuai dengan daftar tersebut, yaitu
xticklabels={$\frac{\pi}{4}$,$\frac{\pi}{2}$,$\frac{3\pi}{4}$,$\pi$,$\frac{5\pi}{4}$,$\frac{3\pi}{2}$,$\frac{7\pi}{4}$,$2\pi$},
Agar tak terlalu besar, ukuran huruf untuk bilangan-bilangan absis dan ordinat itu kita perkecil, misalnya dengan
xticklabel style={font=\small,bistre},
yticklabel style={font=\small,bistre}
Bila dianggap masih terlalu besar juga, maka ukuran huruf itu dapat kita ganti dengan \scriptsize atau \footnotesize.

Grafik Fungsi

Setelah opsi-opsi tersebut kita muat, barulah sekarang kita bersiap untuk menyatakan kurva yang ingin kita buat. Dalam menggambar grafik fungsi trigonometri, sudut kita nyatakan di dalam tanda kurung setelah fungsinya dan sudut itu dinyatakan dalam derajat (degree) sebagai
cos(deg(sudut))
Dengan demikian untuk menyatakan kurva dari fungsi $\small{y=\cos{3x}+\cos{x}}$, kita nyatakan (dalam tanda kurung siku) sebagai
{cos(deg(3*x))+cos(deg(x))}
Kurva pada gambar di atas dinyatakan oleh
\addplot [samples=500,thick,stempel,domain=0:2*pi] {cos(deg(3*x))+cos(deg(x))} node[above left] {$y=\cos 3x + \cos x$};
Perhatikan opsi yang menyertainya. Kurva yang kita buat mencakup daerah asal $\small0\le{x}\le2\pi$, diwarnai oleh warna stempel, ketebalan garisnya seukuran thick, dan kerapatan plot setingkat $\small500$. Kemudian sekaligus juga kita namai kurva ini oleh perintah node dengan persamaan fungsinya yang diletakkan (pada ujung kanan kurva) di atas-kirinya.
Warna stempel ditetapkan sebagai
\definecolor{stempel}{RGB}{0 34 85}

Pengkodean dan Hasilnya

Nah, berikut ini pengkodean selengkapnya untuk menggambar grafik fungsi trigonometri seperti tampak pada gambar di atas, kemudian hasilnya dapat Anda lihat pada Gambar 1 dalam dokumen terlampir di bawahnya. Kemudian silakan Anda coba gunakan cara-cara yang telah diuraikan di atas untuk menghasilkan kurva seperti tampak pada Gambar 2 dan Gambar 3 dalam dokumen terlampir.
\documentclass[10pt]{article}
\usepackage[margin=2cm,a4paper]{geometry}
\usepackage{mathtools}
\usepackage[dvipsnames,svgnames]{xcolor}
\definecolor{bistre}{RGB}{61, 43, 31}
\definecolor{stempel}{RGB}{0 34 85}
%-------------------------------------------------

\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{calc,positioning,intersections}

%-----------------absis dalam pi
\makeatletter
\newcommand*{\ArrayToCommaList}[1]{%
  \let\ArrayToCommaList@Result\@empty
  \expandafter\@tfor\expandafter\ArrayToCommaList@Entry
  \expandafter:\expandafter=#1\do{%
    \edef\ArrayToCommaList@Result{%
      \ArrayToCommaList@Result,\ArrayToCommaList@Entry
    }%
  }%
  % Remove first comma
  \edef#1{%
    \expandafter\@cdr\ArrayToCommaList@Result\@empty\@nil
  }%
}
\makeatother
%---------------------------------------
\pagestyle{empty}

\begin{document}

\begin{figure}[!ht] 
\centering
\begin{tikzpicture}
\pgfmathsetmacro\xticklist{(1/4)*pi, (1/2)*pi, (3/4)*pi, pi, (5/4)*pi, (3/2)*pi, (7/4)*pi, 2*pi}
\ArrayToCommaList\xticklist
\begin{axis}[
    clip=false,axis lines=middle,
    axis line style={-stealth,bistre},
    xlabel=$x$,ylabel=$y$,
    xlabel style=right,ylabel style=above,
    xmin=-.25,xmax=2*pi+.25,
    ymin=-2.5,ymax=2.5,
    xtick=\xticklist,ytick={-2,-1,1,2},
    xticklabels={$\frac{\pi}{4}$,$\frac{\pi}{2}$,$\frac{3\pi}{4}$,$\pi$,$\frac{5\pi}{4}$,$\frac{3\pi}{2}$,$\frac{7\pi}{4}$,$2\pi$},
    xticklabel style={font=\small,bistre},
    yticklabel style={font=\small,bistre}
]
\addplot [samples=500,thick,stempel,domain=0:2*pi] {cos(deg(3*x))+cos(deg(x))} node[above left] {$y=\cos 3x + \cos x$};
\end{axis}
\end{tikzpicture}
\end{figure}

\end{document}



Penutup

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

Adjie Gumarang Pujakelana 2015


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}





Related Posts Plugin for WordPress, Blogger...