Apa itu Diagram Penempatan?
Sebuah Diagram Penempatan adalah struktural diagram UML yang memodelkan arsitektur eksekusi fisik dari suatu sistem perangkat lunak. Sebagai standar inti dari spesifikasi Bahasa Pemodelan Terpadu (UML), jenis diagram ini jenis diagram UML memetakan bagaimana komponen perangkat lunak ditempatkan secara fisik pada target host perangkat keras, elemen infrastruktur awan, atau runtime container. Ini memberikan insinyur sistem, profesional DevOps, dan arsitek jaringan dengan tata letak yang jelas mengenai batas klaster server, jalur replikasi basis data, tingkatan load balancer, dan protokol jaringan perangkat keras di seluruh wilayah pengembangan dan produksi.
Dengan VPasCode, Anda tidak perlu bersusah payah dengan bentuk pengelompokan vektor yang rumit atau pemetaan koordinat manual. Dengan menggunakan blok skrip deklaratif sederhana, mesin kami secara otomatis mengelompokkan, menghitung, dan menempatkan struktur node perangkat keras Anda dengan rapi.
Panduan Sintaks Inti: Elemen dan Konstruksi
Untuk merancang diagram penempatan UML yang akurat dan sesuai standar di PlantUML, Anda perlu menguasai node perangkat keras, lingkungan eksekusi, artefak penempatan, dan keterhubungan jaringan.
1. Deklarasi Kubus Infrastruktur (Node)
Dalam tata letak penempatan, sumber daya komputasi fisik direpresentasikan sebagai kubus tiga dimensi 3D. Anda mendeklarasikan elemen-elemen ini menggunakan kata kunci node kata kunci, atau dengan memilih varian khusus yang memberi pembaca konteks visual langsung mengenai tingkat perangkat keras:
node "Server Aplikasi Logam Murni" sebagai CoreServer
node Server1
database "Server Basis Data" sebagai DB_Node 
2. Pemodelan Lapisan Awan dan Lingkungan Virtual
Aplikasi modern jarang ditempatkan langsung pada perangkat keras fisik. PlantUML menyediakan pembungkus pengelompokan bersarang untuk merepresentasikan batas eksekusi logis, jejak penyedia awan, atau runtime container virtual seperti Docker dan Kubernetes:
cloud— Melambangkan lapisan web publik eksternal atau batas jaringan awan (misalnya, AWS, Azure).frame— Melambangkan sistem virtual atau wilayah organisasi.storage— Melambangkan konfigurasi SAN fisik atau lokasi penyimpanan objek.
cloud "Amazon Web Services VPC" {
node "Instans Linux EC2" sebagai WorkerNode
} 
3. Mendefinisikan Artefak Deploi (Apa yang Berjalan di Mana)
Sebuah artefak mewakili file fisik yang sebenarnya (seperti file JAR yang telah dikompilasi, folder build statis, atau paket yang di-zip) yang dideploy ke sebuah node. Anda mendeklarasikan artefak menggunakan kata kunci artefak kata kunci, atau letakkan langsung di dalam blok perangkat keras Anda:
node "Server Aplikasi" {
artefak "api_v1.0.war" sebagai API_File
} 
4. Memetakan Tautan Komunikasi Jaringan
Koneksi antar elemen infrastruktur mewakili jaringan fisik yang nyata, jalur kabel, atau saluran nirkabel. Anda memetakan tautan ini menggunakan garis ganda padat (--), dan tambahkan teks di dalam tanda kutip untuk secara eksplisit menentukan protokol jaringan yang digunakan (misalnya, HTTPS, TCP/IP, SSH):
node Server1
node DB_Node
Server1 -- DB_Node : "TCP/IP (Port 5432)" 
Praktik Terbaik untuk Peta Deploi yang Praktis
- Sisipkan Struktur dengan Benar: Selalu gambar komponen internal atau artefak Anda *di dalam* kurung kurawal dari deklarasi
nodeuntuk secara jelas menunjukkan lokasi eksekusi. - Label Protokol Komunikasi: Jangan pernah menggambar garis kosong antar server. Selalu label koneksi dengan protokol komunikasi utamanya (misalnya,
"HTTPS (Port 443)") untuk membantu tinjauan jaringan dan keamanan. - Terpisahkan Zona Ketersediaan: Saat mendokumentasikan konfigurasi awan dengan ketersediaan tinggi, gunakan wrapper terpisah
framewrapper untuk menggambarkan pengaturan wilayah terpisah (misalnya,us-east-1avs.us-east-1b).
Contoh Diagram Penempatan PlantUML Dunia Nyata
Contoh 1: Pengaturan Web Tiga Lapisan Klasik (Node & Protokol)
Contoh ini memodelkan struktur aplikasi perusahaan modern standar, memetakan jaringan distribusi konten eksternal, klaster server aplikasi, dan lapisan host basis data internal yang aman.
@startuml
cloud "Internet Publik" sebagai net
node "Sudut CDN Cloudflare" sebagai cdn
frame "Zona Demilitarisasi (DMZ)" {
node "Server Pemroses Beban Nginx" sebagai proxy
}
frame "Subnet VPC Aplikasi Pribadi" {
node "Server Ubuntu 22.04" sebagai app_node {
artifact "core_api.jar" sebagai application
}
}
database "Lapisan Basis Data yang Dikelola" {
node "Klaster Utama PostgreSQL" sebagai db_master
}
' Menetapkan koneksi topologis
net -- cdn : "HTTPS"
cdn -- proxy : "HTTPS (TLS 1.3)"
proxy -- app_node : "HTTP (Port 8080)"
app_node -- db_master : "TCP/IP (Port 5432)"
@enduml 
Analisis Sintaks: Peta ini dengan jelas menentukan perimeter keamanan. Aset yang dikompilasi core_api.jar berada dengan aman di dalam kotak server app_node server box. Jalur jaringan berskala secara bersih ke dalam, menetapkan aturan protokol ketat untuk setiap segmen dari tepi web publik hingga lapisan basis data yang dikelola.
Contoh 2: Arsitektur Kontainer Berbasis Awan (Kubernetes & AWS Mesh)
Rancangan perusahaan canggih ini memetakan penempatan awan multi-wilayah yang sangat dapat diskalakan. Ini menggunakan tata letak node bersarang untuk memvisualisasikan sistem kontainer Kubernetes yang seimbang beban berinteraksi dengan basis data awan mandiri.
@startuml
cloud "Amazon Web Services (AWS)" {
node "Pemroses Beban Aplikasi AWS" sebagai alb
frame "Zona Ketersediaan: us-east-1a" {
node "Node Pekerja EC2 Node A" sebagai ec2_a {
node "Pod K8s: Frontend Web" sebagai pod_web_a
node "Pod K8s: API Pesanan" sebagai pod_api_a
}
}
frame "Zona Ketersediaan: us-east-1b" {
node "Node Pekerja EC2 Node B" sebagai ec2_b {
node "Pod K8s: Frontend Web" sebagai pod_web_b
node "Pod K8s: API Pesanan" sebagai pod_api_b
}
}
storage "Klaster Serverless AWS Aurora" {
database "Basis Data Pelanggan" sebagai rds_db
}
}
' Jalur garis orkestrasi infrastruktur
alb -- pod_web_a : "HTTP Round-Robin"
alb -- pod_web_b : "HTTP Round-Robin"
pod_web_a -- pod_api_a : "gRPC Internal"
pod_web_b -- pod_api_b : "gRPC Internal"
pod_api_a -- rds_db : "SSL/TCP"
pod_api_b -- rds_db : "SSL/TCP"
@enduml 
Analisis Sintaks: Dengan menempatkan node target di dalam anak nodestruktur, templat ini memodelkan tata letak berbasis container dengan sempurna (Pod yang berjalan di dalam mesin virtual EC2). Load balancer aplikasi mendistribusikan permintaan masuk secara mulus di seluruh zona ketersediaan, sementara komponen klaster mengarahkan panggilan basis data kembali ke pool penyimpanan bersama.