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 ().
Pendahuluan
Dalam Teori Graf (Graph Theory), sebuah graf lengkap (complete graph) berlabel 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 dan , terdapat dua busur berarah yang berlawanan: satu panah mengarah dari ke , dan satu panah lagi mengarah dari ke .
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.
Analisis Matematika: Graf Lengkap
Untuk graf berarah lengkap dengan simpul:
- Banyak Simpul ():
- Banyak Pasangan Simpul Unik:
- Total Busur Berarah (): Karena setiap pasang simpul memiliki 2 busur berarah bolak-balik:
- Derajat Simpul (Degree):
Setiap simpul terhubung ke 15 simpul lainnya, sehingga:
- Derajat keluar (out-degree):
- Derajat masuk (in-degree):
Kode Sumber LaTeX
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}Hasil Kompilasi
Keluaran visual yang dihasilkan membentuk simetri jaringan melingkar yang sangat padat dan indah:

Penjelasan Struktur & Logika Kode
1. Manipulasi Counter TeX untuk Penentuan Sudut
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 , menghasilkan sudut .
- Tahap 2 (Simpul 9–16): Menambahkan offset desimal , menghasilkan sudut .
Setiap simpul ditetapkan sebagai node melingkar bernama (N-1) hingga (N-16) pada radius .
2. Algoritma Perulangan Ganda (Nested Loop)
Untuk menghubungkan setiap pasang simpul tanpa pengulangan ganda:
- Loop luar berjalan dari hingga .
- Loop dalam berjalan dari hingga .
- Pendekatan ini secara tepat mengeksekusi iterasi.
3. Pemisahan Busur Garis dengan bend left & bend right
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 ke kanan. - Perintah
edge[<-,bend left=3]melengkungkan panah balik sebesar ke kiri. - Efek kelengkungan tipis ini menghasilkan celah estetis sehingga kedua arah panah dapat terlihat dengan sangat jelas.
Eksperimen Variasi TikZ
Anda dapat mencoba beberapa modifikasi menarik:
- Mengubah Jumlah Simpul (): Gantikan dengan () atau () untuk graf yang lebih renggang.
- Pewarnaan Sisi Berdasarkan Jarak: Warnai garis penghubung berdasarkan panjang jarak antar-simpul (misalnya sisi tetangga berwarna biru, sisi seberang berwarna merah).
- Penyusunan Tata Letak Bipartit: Susun simpul dalam dua baris sejajar untuk membentuk Graf Bipartit Lengkap ().
Kesimpulan
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.
Referensi
- Quintin Jean-Noël, A complete graph, TeXample.net
- Till Tantau, The TikZ and PGF Manual, v3.1.10, 2024.
- Douglas B. West, Introduction to Graph Theory, 2nd Edition, Prentice Hall.
Ditulis oleh: Aan Triono
Lisensi: CC BY-SA 4.0




