Pendahuluan
Mesin preprocessor PlantUML mengubah kode diagram statis menjadi templat dinamis yang dapat digunakan kembali. Ketika dikombinasikan dengan Visual Paradigm VPasCode—sebuah ruang kerja berbasis browser yang ditingkatkan dengan AI untuk diagram-sebagai-kode—Anda memperoleh kemampuan untuk menulis, menguji, dan melakukan iterasi pada arsitektur kompleks tanpa instalasi lokal. Panduan ini mencakup segala hal mulai dari sintaks variabel dasar hingga pola modular tingkat lanjut, yang dioptimalkan khusus untuk alur kerja VPasCode.

1. Mengapa Menggunakan Variabel di PlantUML?
Menggunakan nilai yang dikodekan secara keras (hardcoding) menyebabkan mimpi buruk dalam pemeliharaan. Variabel memungkinkan Anda untuk:
-
Memusatkan Konfigurasi:Mengubah nama basis data atau nilai waktu tunggu di satu tempat, dan perubahan tersebut akan diperbarui di semua tempat.
-
Mengaktifkan Modularitas:Membuat file templat bersama yang beradaptasi berdasarkan konteks (misalnya, Pengembangan vs. Produksi).
-
Mengurangi Pengulangan:Menggunakan loop dan makro untuk menghasilkan struktur yang berulang seperti kluster mikroservice atau titik akhir API.
Di VPasCode, manfaat ini diperkuat oleh pratinjau langsungyang berarti Anda melihat dampak perubahan variabel Anda secara instan saat Anda mengetik.
2. Sintaks dan Deklarasi Variabel
PlantUML modern menggunakan prefiks ” untuk variabel, menawarkan skoping dan keamanan tipe yang lebih baik daripada pendekatan lama “!$PlantUML modern menggunakan prefiks ” untuk variabel, menawarkan skoping dan keamanan tipe yang lebih baik daripada pendekatan lama “!define.
Penugasan Dasar (=)
Gunakan “= untuk menugaskan atau menugaskan ulang sebuah nilai.
!$appName = "OrderService"
!$maxRetries = 5
Penugasan Bersyarat (?=)
Gunakan ?= untuk menetapkan nilai default hanya jika variabel belum didefinisikan. Ini sangat penting untuk membuat templat fleksibel yang dapat ditimpa dengan menyertakan file.
!$Environment ?= "Staging"
// Jika $Environment sudah diset oleh file include, baris ini dilewati.
Aturan Lingkup
-
Variabel yang dideklarasikan di tingkat atas bersifat global dalam skrip.
-
Variabel di dalam
!functionatau!procedurebersifat lokal pada lingkup tersebut kecuali jika dikelola secara eksplisit.
3. Tipe Data dan Penanganan
PlantUML mendukung tiga tipe data utama:
| Tipe | Deskripsi | Contoh |
|---|---|---|
| String | Teks yang diapit tanda kutip. | !$host = "api.example.com" |
| Integer | Angka bulat untuk matematika/loop. | !$port = 8080 |
| JSON | Data terstruktur untuk konfigurasi kompleks. | !$config = %str2json("{ 'debug': true }") |
Catatan tentang Boolean: PlantUML memperlakukan
0sebagai false dan angka non-nol atau string non-kosong sebagai true. Gunakan%true()dan%false()untuk kejelasan.
4. Implementasi Praktis: Diagram Urutan Dinamis
Variabel sangat berguna saat mendefinisikan aktor dan pesan. Di bawah ini adalah contoh lengkap yang siap untuk VPasCode.

@startuml
!$client = "MobileApp"
!$gateway = "API_Gateway"
!$authService = "AuthMicroservice"
!$protocol = "HTTPS/JSON"
autonumber
$client -> $gateway : Permintaan Login ($protocol)
activate $gateway
$gateway -> $authService : Validasi Token
activate $authService
alt Token Valid
$authService --> $gateway : 200 OK
else Token Tidak Valid
$authService --> $gateway : 401 Unauthorized
end
deactivate $authService
$gateway --> $client : Respons
deactivate $gateway
note right: Lingkungan diatur ke !$Environment
@enduml
Tip VPasCode: Saat Anda mengubah $client menjadi "WebDashboard", diagram akan diperbarui secara real-time, memungkinkan Anda memverifikasi penyesuaian tata letak secara langsung.
5. Fitur Lanjutan: Fungsi dan Bawaan
Fungsi Kustom (!function)
Fungsi memungkinkan Anda melakukan perhitungan atau manipulasi string dan mengembalikan hasil langsung ke label diagram.

@startuml
!function $formatSize($mb)
!return $mb + " MB"
!endfunction
Alice -> Bob : Batas unggah adalah $formatSize(50)
@enduml
Fungsi Bawaan yang Berguna
-
%variable_exists("$varName"): Periksa apakah variabel telah didefinisikan sebelum menggunakannya untuk mencegah kesalahan. -
%get_variable_value("$varName"): Ambil nilai variabel secara dinamis, berguna untuk penelusuran kesalahan. -
%strlen("$text"): Dapatkan panjang string untuk pemformatan bersyarat.
6. Mengoptimalkan Alur Kerja Anda di VPasCode
VPasCode menyediakan alat khusus untuk meningkatkan pengalaman pengembangan berbasis variabel:
1. Pratinjau Langsung & Deteksi Kesalahan
-
Umpan Balik Instan: Ubah nilai variabel di panel editor dan saksikan diagram dirender ulang secara instan.
-
Penelusuran Kesalahan Dibantu AI: Jika Anda melewatkan
$awalan atau memiliki kesalahan ruang lingkup, gunakan Pembuat Kode AI tombol. Ini menganalisis logika pra-pemroses dan menyarankan perbaikan secara otomatis.
2. Desain Modular dengan Include
Meskipun VPasCode berbasis browser, Anda dapat mensimulasikan modularitas dengan mengatur kode Anda ke dalam blok logis. Untuk alur kerja lokal, Anda akan menggunakan !include, tetapi di VPasCode, Anda dapat menyimpan variabel bersama di bagian atas skrip Anda untuk akses mudah.
3. Ekspor untuk Dokumentasi
Setelah diagram dinamis Anda selesai:
-
SVG: Terbaik untuk dokumentasi teknis di mana skalabilitas dan kemampuan pencarian teks diperlukan.
-
PNG: Ideal untuk berbagi cepat di Slack, Teams, atau komunikasi email.
7. Praktik Terbaik untuk Kode yang Mudah Dipelihara
-
Konvensi Penamaan: Gunakan camelCase atau snake_case secara konsisten (misalnya, “
$dbNameatau “$db_name). -
Nilai Default: Selalu gunakan “
?=untuk variabel yang mungkin ditimpa di lingkungan yang berbeda. -
Komentar: Tambahkan komentar di atas blok variabel untuk menjelaskan tujuannya, terutama untuk konfigurasi JSON.
-
Jaga Logika Tetap Sederhana: Meskipun PlantUML mendukung perulangan dan kondisional, logika yang terlalu kompleks dapat membuat diagram sulit dibaca. Gunakan variabel untuk konfigurasi, bukan untuk membangun seluruh logika aplikasi.
Kesimpulan
Dengan menguasai variabel dan direktif preprocessor di PlantUML, Anda mengubah diagram Anda dari gambar statis menjadi dokumentasi yang hidup. Menggunakan “VPasCode menyederhanakan proses ini dengan kemampuan penyuntingan yang ditingkatkan AI dan pratinjau langsung, memungkinkan Anda fokus pada arsitektur daripada sintaks. Mulailah bereksperimen dengan penugasan kondisional dan fungsi kustom hari ini untuk membangun template diagram yang lebih tangguh dan dapat digunakan kembali.
This post is also available in Deutsch, English, Español, فارسی, Français, 日本語, Polski, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文.












