Daftar Isi

Menggambar Graf Lengkap Berarah (Directed Complete Graph K16) dengan TikZ di LaTeX

Artikel ini membahas analisis matematika Teori Graf dan teknik pengodean LaTeX TikZ untuk menggambar Graf Lengkap Berarah dengan 16 simpul (K16K_{16}).


Dalam Teori Graf (Graph Theory), sebuah graf lengkap (complete graph) berlabel KnK_n didefinisikan sebagai graf di mana setiap pasangan simpul (vertices) terhubung secara langsung oleh sebuah sisi (edge).

Ketika graf tersebut dijadikan graf berarah (directed complete graph atau symmetric complete digraph), maka untuk setiap pasang simpul uu dan vv, terdapat dua busur berarah yang berlawanan: satu panah mengarah dari uu ke vv, dan satu panah lagi mengarah dari vv ke uu.

Artikel ini ulas secara mendalam kode LaTeX TikZ buatan Quintin Jean-Noël. Kode ini memanfaatkan perulangan bertingkat (nested loops), manipulasi counter TeX untuk posisi sudut melingkar, serta efek melengkung (bend left dan bend right) untuk menggambar jaring-jaring 240 busur berarah dari 16 simpul secara sangat rapi.


Untuk graf berarah lengkap dengan n=16n = 16 simpul:

  1. Banyak Simpul (VV): V=16|V| = 16
  2. Banyak Pasangan Simpul Unik: (162)=16×152=120 pasang\binom{16}{2} = \frac{16 \times 15}{2} = 120 \text{ pasang}
  3. Total Busur Berarah (EE): Karena setiap pasang simpul memiliki 2 busur berarah bolak-balik: E=2×(162)=16×15=240 busur|E| = 2 \times \binom{16}{2} = 16 \times 15 = 240 \text{ busur}
  4. Derajat Simpul (Degree): Setiap simpul terhubung ke 15 simpul lainnya, sehingga:
    • Derajat keluar (out-degree): d+(v)=15d^+(v) = 15
    • Derajat masuk (in-degree): d(v)=15d^-(v) = 15

Berikut adalah kode TikZ lengkap karya Quintin Jean-Noël:

% A complete graph
% Author: Quintin Jean-Noël
\documentclass{article}
\usepackage{tikz}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\setlength\PreviewBorder{5pt}%
\usetikzlibrary[topaths]

% Counter TeX untuk menghitung posisi sudut secara presisi
\newcount\mycount

\begin{document}
\begin{tikzpicture}[transform shape]

  % 1. Membuat 8 Simpul Pertama (Sudut: 0, 45, 90, 135, ...)
  \foreach \number in {1,...,8}{
    \mycount=\number
    \advance\mycount by -1
    \multiply\mycount by 45
    \advance\mycount by 0
    \node[draw,circle,inner sep=0.25cm] (N-\number) at (\the\mycount:5.4cm) {};
  }

  % 2. Membuat 8 Simpul Kedua dengan Offset 22.5 derajat (Sudut: 22.5, 67.5, ...)
  \foreach \number in {9,...,16}{
    \mycount=\number
    \advance\mycount by -1
    \multiply\mycount by 45
    \advance\mycount by 22.5
    \node[draw,circle,inner sep=0.25cm] (N-\number) at (\the\mycount:5.4cm) {};
  }

  % 3. Menghubungkan Seluruh Pasangan Simpul dengan Garis Melengkung Berarah
  \foreach \number in {1,...,15}{
    \mycount=\number
    \advance\mycount by 1
    \foreach \numbera in {\the\mycount,...,16}{
      \path (N-\number) edge[->,bend right=3] (N-\numbera)
                        edge[<-,bend left=3] (N-\numbera);
    }
  }

\end{tikzpicture}
\end{document}

Keluaran visual yang dihasilkan membentuk simetri jaringan melingkar yang sangat padat dan indah:

Complete Graph K16
Hasil Kompilasi Complete Graph K16 TikZ


Mesin TeX tradisional tidak mendukung operasi aritmetika bilangan desimal (floating point) secara langsung di dalam perintah dasar. Oleh karena itu, pengarang membagi peletakan 16 simpul menjadi dua tahap menggunakan \newcount\mycount:

  • Tahap 1 (Simpul 1–8): Menghitung sudut (number1)×45(\text{number} - 1) \times 45^\circ, menghasilkan sudut 0,45,90,135,180,225,270,3150^\circ, 45^\circ, 90^\circ, 135^\circ, 180^\circ, 225^\circ, 270^\circ, 315^\circ.
  • Tahap 2 (Simpul 9–16): Menambahkan offset desimal 22.522.5^\circ, menghasilkan sudut 22.5,67.5,112.5,157.5,202.5,247.5,292.5,337.522.5^\circ, 67.5^\circ, 112.5^\circ, 157.5^\circ, 202.5^\circ, 247.5^\circ, 292.5^\circ, 337.5^\circ.

Setiap simpul ditetapkan sebagai node melingkar bernama (N-1) hingga (N-16) pada radius 5.4 cm5.4\text{ cm}.

Untuk menghubungkan setiap pasang simpul tanpa pengulangan ganda:

  • Loop luar berjalan dari i=1i = 1 hingga 1515.
  • Loop dalam berjalan dari j=i+1j = i+1 hingga 1616.
  • Pendekatan ini secara tepat mengeksekusi (162)=120\binom{16}{2} = 120 iterasi.

Jika dua garis panah berlawanan arah digambar sebagai garis lurus tepat di atas satu sama lain, keduanya akan saling menutupi.

  • Perintah edge[->,bend right=3] melengkungkan panah maju sebesar 33^\circ ke kanan.
  • Perintah edge[<-,bend left=3] melengkungkan panah balik sebesar 33^\circ ke kiri.
  • Efek kelengkungan tipis ini menghasilkan celah estetis sehingga kedua arah panah dapat terlihat dengan sangat jelas.

Anda dapat mencoba beberapa modifikasi menarik:

  1. Mengubah Jumlah Simpul (nn): Gantikan dengan n=6n = 6 (K6K_6) atau n=10n = 10 (K10K_{10}) untuk graf yang lebih renggang.
  2. Pewarnaan Sisi Berdasarkan Jarak: Warnai garis penghubung berdasarkan panjang jarak antar-simpul (misalnya sisi tetangga berwarna biru, sisi seberang berwarna merah).
  3. Penyusunan Tata Letak Bipartit: Susun simpul dalam dua baris sejajar untuk membentuk Graf Bipartit Lengkap (Km,nK_{m,n}).

Kode TikZ karya Quintin Jean-Noël merupakan contoh luar biasa bagaimana Teori Graf abstrak dapat diderivasi menjadi visualisasi data yang elegan di LaTeX. Dengan memanfaatkan kalkulasi counter dan opsi kelengkungan bend, 240 busur berarah dapat digambar secara otomatis, presisi, dan estetis.


  1. Quintin Jean-Noël, A complete graph, TeXample.net
  2. Till Tantau, The TikZ and PGF Manual, v3.1.10, 2024.
  3. Douglas B. West, Introduction to Graph Theory, 2nd Edition, Prentice Hall.

Ditulis oleh: Aan Triono
Lisensi: CC BY-SA 4.0