Diagram komponen mewakili komponen fisik atau logis dari suatu sistem. Ini memberikan gambaran tingkat tinggi tentang bagaimana bagian perangkat lunak berinteraksi. Panduan ini menjelaskan simbol, aturan, dan tips praktis untuk membuat diagram yang jelas dan efektif.

Pengantar Pemodelan Komponen 🏗️
Diagram komponen berfokus pada struktur suatu sistem pada tingkat yang lebih tinggi daripada diagram kelas. Mereka menunjukkan bagaimana berbagai modul atau subsistem diorganisasi. Pandangan ini membantu pengembang memahami penempatan fisik dan ketergantungan logis dari arsitektur perangkat lunak.
Manfaat utama meliputi:
- Memvisualisasikan organisasi sistem
- Menentukan kontrak antarmuka
- Melacak ketergantungan antar modul
- Mendukung dokumentasi desain tingkat tinggi
Saat membuat diagram ini, tujuannya adalah kejelasan. Hindari menampilkan setiap kelas secara individual. Fokuslah pada blok bangunan utama yang membentuk aplikasi.
Simbol dan Notasi Inti 🔣
Memahami simbol standar adalah langkah pertama. Elemen-elemen ini menentukan bahasa visual dari diagram.
1. Ikon Komponen
Simbol utama adalah persegi panjang dengan dua tab di sisi kiri. Bentuk ini mewakili bagian modular dari sistem. Di dalam persegi panjang, Anda menempatkan nama komponen.
- Bentuk:Persegi panjang dengan dua tab di sisi kiri.
- Label:Nama komponen dalam huruf tebal.
- Stereotip:Anda dapat menambahkan label seperti <
> di atas nama.
2. Antarmuka
Antarmuka menentukan perilaku yang disediakan atau dibutuhkan oleh suatu komponen. Mereka sangat penting untuk memisahkan implementasi dari penggunaan.
- Antarmuka yang Disediakan:Bentuk ‘permen lollipop’ yang terhubung ke komponen. Ini menunjukkan fungsi yang ditawarkan oleh komponen.
- Antarmuka yang Dibutuhkan:Bentuk ‘soket’ yang terhubung ke komponen. Ini menunjukkan fungsi yang dibutuhkan komponen dari komponen lain.
3. Port
Port adalah titik interaksi untuk komponen. Mereka sering digunakan ketika suatu komponen memiliki beberapa koneksi ke sistem yang berbeda.
- Simbol: Persegi panjang kecil di tepi komponen.
- Penggunaan: Menunjukkan di mana koneksi eksternal masuk atau keluar.
4. Node
Meskipun diagram komponen berfokus pada perangkat lunak, mereka sering berkaitan dengan penempatan. Node mewakili perangkat keras fisik atau lingkungan eksekusi.
- Simbol:Bentuk kubus 3D.
- Label:Nama server, perangkat, atau lingkungan.
| Simbol | Nama | Makna |
|---|---|---|
| Persegi panjang dengan tab | Komponen | Bagian modular dari sistem |
| Lollipop | Antarmuka yang Disediakan | Fungsionalitas yang ditawarkan oleh komponen |
| Socket | Antarmuka yang Diperlukan | Fungsionalitas yang dibutuhkan oleh komponen |
| Kubus 3D | Node | Perangkat keras fisik atau lingkungan |
| Persegi panjang terbuka | Paket | Pengelompokan elemen |
Konsep Antarmuka dan Port 🔌
Antarmuka adalah jembatan antar komponen. Mereka memastikan bahwa komponen dapat berkomunikasi tanpa mengetahui rincian internal satu sama lain.
Antarmuka yang Disediakan
Suatu komponen menyediakan antarmuka ketika menerapkan fungsionalitas tertentu. Komponen lain dapat menggunakan antarmuka ini untuk berinteraksi dengan sistem.
- Gunakan lingkaran (permen lollipop) untuk menandakan antarmuka.
- Hubungkan antarmuka ke garis komponen.
- Beri label pada antarmuka dengan operasi spesifik yang tersedia.
Antarmuka yang Diperlukan
Suatu komponen membutuhkan antarmuka ketika bergantung pada fungsionalitas eksternal. Ini menciptakan ketergantungan.
- Gunakan setengah lingkaran (soket) untuk menandakan antarmuka.
- Hubungkan soket ke garis komponen.
- Beri label pada antarmuka dengan operasi yang dibutuhkan.
Menggunakan Port
Port menyempurnakan konsep antarmuka. Mereka memungkinkan Anda mengelompokkan beberapa antarmuka di bawah satu titik akses.
- Tempatkan port di tepi komponen.
- Hubungkan garis ke port, bukan ke badan komponen.
- Ini membuat diagram lebih bersih ketika banyak koneksi ada.
Hubungan dan Ketergantungan 🔄
Menghubungkan komponen dengan benar sangat penting untuk memahami aliran sistem. Garis-garis yang berbeda mewakili jenis interaksi yang berbeda.
Ketergantungan
Ketergantungan menunjukkan bahwa satu komponen bergantung pada komponen lain. Jika pemasok berubah, klien mungkin rusak.
- Gaya:Garis putus-putus dengan panah terbuka.
- Arah:Menunjuk dari klien ke pemasok.
- Penggunaan:Gunakan untuk penggunaan antarmuka atau referensi sederhana.
Asosiasi
Asosiasi mewakili hubungan struktural. Ini mengimplikasikan koneksi langsung antara dua komponen.
- Gaya:Garis padat.
- Penggunaan: Gunakan ketika komponen merupakan bagian dari keseluruhan yang lebih besar atau berbagi data secara langsung.
Realisasi
Realisasi terjadi ketika suatu komponen menerapkan antarmuka atau spesifikasi.
- Gaya:Garis putus-putus dengan kepala panah padat.
- Arah:Menunjuk dari pelaksana ke antarmuka.
Generalisasi
Generalisasi mewakili pewarisan. Satu komponen merupakan versi yang disesuaikan dari komponen lain.
- Gaya:Garis padat dengan panah segitiga berongga.
- Arah:Menunjuk dari kelas turunan ke kelas induk.
| Hubungan | Gaya Garis | Jenis Panah | Tujuan |
|---|---|---|---|
| Ketergantungan | Putus-putus | Panah Terbuka | Penggunaan atau ketergantungan |
| Asosiasi | Padat | Tidak ada | Koneksi langsung |
| Realisasi | Putus-putus | Segitiga Padat | Implementasi |
| Generalisasi | Padat | Segitiga Berongga | Warisan |
Aturan dan Konvensi Struktural 📏
Konsistensi membuat diagram mudah dibaca. Ikuti konvensi ini untuk menjaga kualitas.
Konvensi Penamaan
- Gunakan PascalCase untuk nama komponen (misalnya, PaymentService).
- Gunakan camelCase untuk nama antarmuka (misalnya, paymentInterface).
- Jaga agar nama tetap deskriptif. Hindari singkatan kecuali sudah menjadi standar industri.
Pengelompokan dan Paket
- Gunakan paket untuk mengelompokkan komponen yang saling terkait.
- Beri label paket dengan jelas (misalnya, Inti, UI, Data).
- Jaga diagram agar tidak terlalu penuh dengan menempatkan komponen ke dalam paket.
Lapisan
Atur komponen secara logis berdasarkan lapisan. Ini membantu memahami alur data.
- Tempatkan komponen presentasi di bagian atas.
- Tempatkan logika bisnis di tengah.
- Tempatkan akses data di bagian bawah.
Kesalahan Umum yang Harus Dihindari ⚠️
Bahkan arsitek yang berpengalaman membuat kesalahan. Waspadai jebakan umum ini.
- Terlalu rumit: Jangan menggambar setiap kelas secara individual. Diagram komponen bersifat tingkat tinggi. Jika Anda melihat kelas, kemungkinan besar Anda berada dalam diagram kelas.
- Antarmuka yang Hilang: Jangan menghubungkan komponen secara langsung tanpa antarmuka. Ini membuat mereka terlalu terikat satu sama lain.
- Penamaan yang Tidak Konsisten: Pastikan semua nama sesuai dengan kode atau dokumentasi. Nama yang tidak sesuai menyebabkan kebingungan.
- Ketergantungan Melingkar: Hindari lingkaran di mana Komponen A bergantung pada B, dan B bergantung pada A. Ini menunjukkan kelemahan desain.
- Mengabaikan Port: Jika suatu komponen terhubung ke banyak hal, gunakan port untuk menjaga tata letak tetap rapi.
Dokumentasi dan Pemeliharaan 📝
Diagram hanya bermanfaat jika tetap diperbarui. Anggaplah sebagai dokumentasi yang hidup.
Kontrol Versi
- Simpan file diagram dalam sistem kontrol versi Anda.
- Perbarui diagram ketika arsitektur berubah.
- Dokumentasikan perubahan dalam pesan commit.
Referensi Silang
- Hubungkan diagram komponen dengan diagram kelas untuk tampilan yang lebih rinci.
- Hubungkan ke diagram penempatan untuk konteks fisik.
- Pastikan nama komponen sama persis di seluruh diagram.
Proses Tinjauan
- Minta rekan kerja meninjau diagram untuk kejelasan.
- Periksa apakah antarmuka sesuai dengan kontrak API yang sebenarnya.
- Pastikan ketergantungan mencerminkan urutan pembuatan yang sebenarnya.
Pertimbangan Lanjutan 🧠
Untuk sistem yang kompleks, simbol standar mungkin perlu disesuaikan.
Komponen Komposit
Kadang-kadang suatu komponen berisi komponen lain. Ini disebut struktur komposit.
- Gambar kotak komponen yang lebih besar.
- Tempatkan komponen yang lebih kecil di dalamnya.
- Tunjukkan koneksi internal tanpa terhubung ke luar.
Antarmuka dalam Paket
Anda dapat mengelompokkan antarmuka ke dalam paket untuk mengatur sistem besar.
- Buat paket untuk semua antarmuka layanan.
- Buat paket untuk semua antarmuka data.
- Referensikan paket-paket ini dalam diagram komponen Anda.
Praktik Terbaik untuk Dokumentasi 📋
Mengikuti tips-tips ini memastikan diagram Anda berfungsi secara efektif.
- Mulai dengan Gambaran Besar: Tentukan komponen utama terlebih dahulu. Tambahkan detail kemudian.
- Gunakan Ruang Kosong: Jangan memadati elemen. Gunakan jarak untuk mengelompokkan item yang terkait.
- Batasi Koneksi: Jika suatu komponen memiliki terlalu banyak garis, pertimbangkan untuk membaginya menjadi sub-komponen.
- Orientasi yang Konsisten: Susun komponen dalam baris atau kolom untuk membimbing pandangan.
- Legenda: Jika Anda menggunakan simbol non-standar, sertakan legenda.
Ringkasan Poin Penting 🎯
- Gunakan simbol standar untuk komponen, antarmuka, dan port.
- Tentukan antarmuka yang jelas untuk mengurangi ketergantungan.
- Gunakan garis putus-putus untuk ketergantungan dan garis padat untuk asosiasi.
- Jaga diagram tetap tingkat tinggi; hindari menampilkan kelas individu.
- Jaga konsistensi dalam penamaan dan struktur.
- Perbarui diagram secara rutin agar sesuai dengan kode sumber.
Dengan mengikuti pedoman ini, Anda membuat diagram yang menyampaikan arsitektur secara jelas. Ini mengarah pada kolaborasi yang lebih baik dan kesalahan yang lebih sedikit selama pengembangan.












