Daftar Isi

Segitiga Pascal: Komputasi dan Visualisasi Heksagon di LaTeX

Segitiga Pascal adalah susunan segitiga dari koefisien binomial yang sangat terkenal dalam matematika. Setiap angka di dalam segitiga ini adalah hasil penjumlahan dari dua angka yang berada tepat di atasnya. Selain berguna untuk mencari koefisien ekspansi aljabar (a+b)n(a+b)^n, susunan ini juga menyimpan banyak pola menarik lainnya.

Dalam artikel ini, kita akan membuat visualisasi Segitiga Pascal di LaTeX menggunakan TikZ. Menariknya, kita tidak akan menulis angka-angkanya secara manual, melainkan menggunakan pemrograman makro TeX untuk menghitung koefisien binomial secara otomatis dan menggambarnya dalam bentuk sel-sel heksagon (segi enam) yang berwarna-warni.


Secara geometri, susunan heksagon (sarang lebah) sangat ideal untuk menyusun Segitiga Pascal karena setiap sel heksagon secara alami berbatasan dengan dua sel di atasnya.

Untuk membuat visualisasi ini di LaTeX secara efisien, kita memerlukan dua hal utama:

  1. Algoritma Komputasi: Fungsi TeX internal untuk menghitung kombinasi (nk)=n!k!(nk)!\binom{n}{k} = \frac{n!}{k!(n-k)!} secara dinamis tanpa melampaui batas kapasitas memori kompilasi.
  2. Looping Grafis: Perulangan bertingkat (\foreach) pada TikZ untuk menggambar heksagon dan menempatkannya pada posisi koordinat yang tepat berdasarkan baris dan kolom.

Berikut adalah kode LaTeX lengkap untuk membuat Segitiga Pascal berbentuk heksagon berwarna:

% Segitiga Pascal
% Penulis: M.H. Ahmadi
\documentclass[border=10pt]{standalone} 
\usepackage[dvipsnames]{xcolor} 
\usepackage{tikz} 
\usepackage{ifthen} 

\makeatletter
% Makro komputasi koefisien binomial \binomialCoefficient{n}{k}
\newcommand\binomialCoefficient[2]{% 
  % Simpan nilai parameter
  \c@pgf@counta=#1% n 
  \c@pgf@countb=#2% k 
  % 
  % Memanfaatkan sifat simetri jika k > n - k
  \c@pgf@countc=\c@pgf@counta% 
  \advance\c@pgf@countc by-\c@pgf@countb% 
  \ifnum\c@pgf@countb>\c@pgf@countc% 
    \c@pgf@countb=\c@pgf@countc% 
  \fi% 
  % 
  % Menghitung koefisien secara rekursif menggunakan looping
  \c@pgf@countc=1% Menyimpan hasil akhir
  \c@pgf@countd=0% Counter perulangan
  \pgfmathloop% Rumus: c -> c*(n-i)/(i+1) untuk i=0,...,k-1 
    \ifnum\c@pgf@countd<\c@pgf@countb% 
      \multiply\c@pgf@countc by\c@pgf@counta% 
      \advance\c@pgf@counta by-1% 
      \advance\c@pgf@countd by1% 
      \divide\c@pgf@countc by\c@pgf@countd% 
  \repeatpgfmathloop% 
  \the\c@pgf@countc% Tampilkan hasil akhir
} 
\makeatother

\begin{document} 

\newdimen\R 
\R=.4cm % Jari-jari lingkaran luar heksagon
\newcommand\mycolor{gray} 

\begin{tikzpicture}[line width=.8pt] 
% Perulangan untuk kolom (k) dari 0 sampai 12
\foreach \k in {0,...,12}{ 
  \begin{scope}[shift={(-60:{sqrt(3)*\R*\k})}] 
    \pgfmathtruncatemacro\ystart{12-\k} 
    % Perulangan untuk baris (n)
    \foreach \n in {0,...,\ystart}{ 
      \pgfmathtruncatemacro\newn{\n+\k} 
      
      % Penentuan warna dinamis berdasarkan kolom/baris
      \ifthenelse{\k=0}{\def\mycolor{pink}}{} 
      \ifthenelse{\k=1}{\def\mycolor{yellow}}{} 
      \ifthenelse{\k=2}{\def\mycolor{blue}}{} 
      \ifthenelse{\k=3}{\def\mycolor{green}}{} 
      \ifthenelse{\k=8 \AND \n < 4}{\def\mycolor{purple}}{} 
      \ifthenelse{\k=9 \AND \n = 3}{\def\mycolor{purple}}{} 
      
      \begin{scope}[shift={(-120:{sqrt(3)*\R*\n})}] 
        % Menggambar heksagon dengan degradasi warna (top & bottom color)
        \draw[top color=\mycolor!20,bottom color=\mycolor!60] 
          (30:\R) \foreach \x in {90,150,...,330} { -- (\x:\R)} -- cycle 
          (90:0) node {\tiny $\mathbf{\binomialCoefficient{\newn}{\k}}$}; 
      \end{scope} 
    } 
  \end{scope} 
} 
\end{tikzpicture} 
\end{document}

Keluaran kode tersebut adalah sebagai berikut:

Keluaran Segitiga Pascal


Konsep pemrograman grafis TeX dan TikZ utama yang digunakan pada kode di atas dijelaskan secara rinci sebagai berikut:

Kelemahan kalkulasi angka besar di LaTeX adalah batas memori yang kecil. Fungsi di atas dioptimalkan menggunakan register counter bawaan TeX (\c@pgf@counta s.d. \c@pgf@countd) untuk melakukan kalkulasi perkalian dan pembagian secara cepat dan presisi menggunakan rumus multiplikatif:

(nk)=i=1kni+1i\binom{n}{k} = \prod_{i=1}^{k} \frac{n-i+1}{i}

Sifat simetri (nk)=(nnk)\binom{n}{k} = \binom{n}{n-k} juga diterapkan untuk memotong jumlah iterasi perulangan hingga setengahnya, mempercepat waktu kompilasi dokumen secara signifikan.

Heksagon (segi enam beraturan) digambar secara efisien menggunakan perulangan koordinat kutub (polar coordinates):

(30:\R) \foreach \x in {90,150,...,330} { -- (\x:\R)} -- cycle

Perintah ini memulai garis dari sudut 3030^\circ dengan radius RR, lalu membuat segmen garis ke sudut 90,150,210,270,33090^\circ, 150^\circ, 210^\circ, 270^\circ, 330^\circ, lalu menutup jalur secara otomatis (-- cycle) untuk membentuk segi enam sempurna.

Untuk menempatkan heksagon pada baris dan kolom yang tepat, digunakan lingkungan scope dengan pergeseran arah vektor koordinat:

  • Kolom digeser ke arah sudut 60-60^\circ sebesar 3Rk\sqrt{3} \cdot R \cdot k: shift={(-60:{sqrt(3)*\R*\k})}
  • Baris digeser ke arah sudut 120-120^\circ sebesar 3Rn\sqrt{3} \cdot R \cdot n: shift={(-120:{sqrt(3)*\R*\n})} Perpaduan dua sudut pergeseran ini menciptakan struktur segitiga Pascal yang simetris sempurna di layar.

Paket ifthen digunakan untuk memberikan warna gradasi yang berbeda pada blok segitiga tertentu:

  • Kolom ke-0 diwarnai merah muda (pink).
  • Kolom ke-1 diwarnai kuning (yellow).
  • Kolom ke-2 diwarnai biru (blue).
  • Kolom ke-3 diwarnai hijau (green).
  • Sel-sel tertentu di tengah bawah diwarnai ungu (purple) untuk menonjolkan pola visual tertentu di dalam Segitiga Pascal.

  1. Pastikan Anda memiliki distribusi LaTeX yang terinstal di komputer Anda (seperti TeX Live, MiKTeX, atau Overleaf).
  2. Salin kode di atas ke dalam file teks dan beri nama pascal-triangle.tex.
  3. Kompilasi menggunakan compiler pdfLaTeX atau XeLaTeX.
  4. Grafik akan terpusat secara otomatis dengan margin 10pt berkat penggunaan kelas standalone.

Membuat Segitiga Pascal menggunakan komputasi dinamis di TikZ LaTeX membuktikan bahwa LaTeX bukan hanya sebuah alat pengetikan statis, melainkan juga lingkungan pemrograman yang sangat andal. Teknik ini sangat berguna untuk membuat ilustrasi materi ajar matematika yang dinamis dan estetis tanpa perlu melakukan perhitungan manual terlebih dahulu. Selamat mencoba!