Panduan Sintaks Diagram Komponen PlantUML

Apa itu Diagram Komponen?

Sebuah Diagram Komponen adalah diagram struktural diagram UML yang memetakan organisasi modular tingkat tinggi dari suatu sistem perangkat lunak. Sebagai komponen penting dalam spesifikasi Bahasa Pemodelan Terpadu (UML), jenis diagram tipe diagram UMLmemvisualisasikan bagaimana modul kode fisik, perpustakaan, mikroservis, paket eksekusi, dan lapisan basis data dikelompokkan dan saling terhubung secara struktural. Ini mengalihkan fokus dokumentasi dari definisi kelas yang terperinci, memungkinkan arsitek perangkat lunak dan insinyur utama untuk menggambarkan batas integrasi sistem, jalur orkestrasi API, dan ketergantungan pihak ketiga secara jelas.

Baik Anda sedang menggambarkan topologi mikroservis berbasis awan modern atau menunjukkan bagaimana perpustakaan kerangka kerja internal terhubung ke inti aplikasi warisan Anda, peta komponen UML memberikan gambaran struktural yang jelas mengenai batas sistem. Dengan VPasCode, tata letak komponen Anda dirender secara otomatis berdasarkan teks deklaratif, menghilangkan kesulitan dalam menyesuaikan kotak tata letak atau kabel penghubung secara manual.

Panduan Sintaks Inti: Elemen dan Konstruksi

Untuk merancang diagram komponen UML yang elegan dan sesuai standar di PlantUML, Anda perlu menguasai deklarasi blok kode modular, mekanika kabel antarmuka, pengelompokan paket sistem, dan parameter koneksi arah.

1. Deklarasi Komponen Perangkat Lunak

Anda mendeklarasikan modul perangkat lunak menggunakan componentkata kunci. Sebagai alternatif, Anda dapat membungkus identifikasi teks bersih di dalam tanda kurung siku ([Nama Komponen]), yang berfungsi sebagai indikator singkatan global:

component PaymentEngine
[Service Autentikasi] sebagai AuthService

Kiat Pro:Selalu pasangkan string komponen panjang dengan sebagaiidentifikasi (seperti sebagai AuthService) untuk menjaga garis hubungan tetap bersih dan mudah dibaca.

2. Mendefinisikan Port dan Antarmuka

Komponen berinteraksi satu sama lain melalui titik masuk struktural. Anda dapat secara eksplisit memodelkan antarmuka UML standar (digambarkan secara visual dengan ikon lingkaran “lollipop” yang bersih) menggunakan kata kunciantarmukakata kunci:

antarmuka "REST API v2" sebagai WebAPI
[AuthService] --() WebAPI : "mengekspos"

3. Memetakan Ketergantungan Komponen

Untuk menunjukkan bahwa satu modul sistem bergantung pada atau berkomunikasi dengan modul lain, gunakan panah arah (-->). Anda juga dapat menggunakan garis ketergantungan titik standar (..>) untuk mewakili hubungan yang lebih longgar, seperti pola konsumsi antrean pesan atau panggilan runtime sementara:

[Aplikasi Frontend] --> WebAPI
WebAPI ..> [Mesin Basis Data] : "Kueri SQL"

4. Mengatur Batas dengan Paket

Untuk menetapkan batas sistem bawah yang bersih atau mengelompokkan komponen berdasarkan lingkungan penggunaan, bungkus blok modul Anda di dalam pembungkus strukturalpaket atau awan pembungkus:

paket "Konteks Keamanan" {
    [Layanan Otorisasi]
    [Validator Token]
}

Praktik Terbaik untuk Sistem Bawah Komponen yang Bersih

  • Jaga Nama Node pada Tingkat yang Tinggi: Hindari penamaan komponen berdasarkan file atau direktori kode internal tertentu. Gunakan nama fungsional, tingkat tinggi seperti [Router Pemberitahuan] atau [Lapisan Cache].
  • Manfaatkan Notasi Lollipop: Alih-alih menggambar garis datar antar kotak, arahkan koneksi melalui node antarmuka eksplisit.antarmuka node. Ini dengan jelas membedakan *apa* antarmuka yang dipaparkan dari *siapa* yang mengonsumsinya.
  • Kontrol Ekspansi Tata Letak: Peta komponen berkembang dengan cepat saat melacak beberapa sub-sistem. Gunakan bendera spasial di dalam panah ketergantungan Anda (seperti -kanan-> atau -bawah->) untuk mengatur komponen Anda secara rapi di seluruh kisi kanvas.

Contoh Diagram Objek PlantUML Dunia Nyata

Contoh 1: Jaringan Gateway API Inti (Antarmuka & Pengelompokan Paket)

Contoh ini menunjukkan setup web sistem multi-lapisan standar, menyoroti bagaimana aplikasi pengguna publik terhubung ke mikroservis internal melalui antarmuka REST API yang terstruktur.

@startuml
package "Lapisan Presentasi Publik" {
    [Klien Web SPA] sebagai client
    [Klien Mobile iOS] sebagai mobile
}

package "Subsistem Gateway API" {
    antarmuka "Titik Akhir Gateway HTTPS" sebagai HTTP_GW
    [Gateway API Kong] sebagai gateway
}

package "Layanan Backend Inti" {
    antarmuka "API Manajemen Pengguna" sebagai UserAPI
    antarmuka "API Penagihan" sebagai BillingAPI
    
    [Layanan Identitas] sebagai auth
    [Mesin Pemrosesan Pembayaran] sebagai billing
}

' Hubungkan presentasi ke gateway
client --> HTTP_GW
mobile --> HTTP_GW
HTTP_GW -- gateway

' Hubungkan gateway ke antarmuka backend
gateway --> UserAPI
gateway --> BillingAPI

UserAPI -- auth
BillingAPI -- billing
@enduml

Analisis Sintaks: Dengan menempatkan modul di dalam batas package yang bersih, mesin tata letak otomatis menciptakan zona yang jelas dan indah. Klien presentasi terhubung secara eksklusif ke port gateway yang terpapar tunggal, yang kemudian mengelola penjadwalan lalu lintas internal ke lapisan mikroservis backend khusus di bawahnya.HTTP_GW port gateway, yang kemudian mengelola penjadwalan lalu lintas internal ke lapisan mikroservis backend khusus di bawahnya.

Contoh 2: Saluran Pemrosesan Data Cloud (Awan Asinkron dan Antrian)

Rancangan perusahaan canggih ini memetakan arsitektur data cloud asinkron dunia nyata, melacak saluran masuk, broker pesan terpisah, dan titik akhir penyimpanan fisik.

@startuml
cloud "Batasan Jaringan AWS Cloud" {
    [Webhook Ingesti] sebagai webhook
    queue "Kelompok Apache Kafka" sebagai broker
    [Pekerja Acara Pemroses Aliran] sebagai worker
    database "Danau Data Amazon S3" sebagai storage
}

database "Gudang Data Perusahaan" sebagai redshift

' Mekanisme alur pipa pemrosesan
[Aplikasi Klien Eksternal] --> webhook : "POST /telemetri"
webhook -kanan-> broker : "Terbitkan log mentah"

broker ..> worker : "Konsumsi aliran data topik"
worker --> storage : "Tulis file Parquet terkompresi"

storage ..> redshift : "Sinkronisasi ETL Malam Hari"
@enduml

Analisis Sintaks: Contoh ini memperkenalkan cloud dan queue bentuk, memberikan petunjuk visual langsung bagi pengembang mengenai topologi struktural. Penggunaan penggantian panah horizontal -kanan-> memastikan bahwa aliran ingesti data berjalan lancar dari kiri ke kanan melintasi kisi jaringan, sementara ketergantungan putus (..>) secara akurat merepresentasikan komunikasi yang terpisah dan asinkron.

Scroll to Top