PRINSIP DAN DIAGRAM UNTUK PERANCANGAN PERANGKAT LUNAK (kelompok 4)
A.Pengertian Prinsip Perancangan Perangkat Lunak
Desain sistem perangkat lunak adalah proses merancang arsitektur dan komponen perangkat lunak yang dapat memecahkan masalah yang dihadapi pengguna atau organisasi. Proses desain ini melibatkan pengambilan keputusan tentang bagaimana sistem akan dibangun, serta memilih komponen dan struktur yang terbaik untuk memenuhi kebutuhan fungsional dan non-fungsional.
Berikut adalah beberapa prinsip utama dalam desain sistem perangkat lunak:
1. Prinsip Modularitas & Reusability
Keuntungan Modularitas:
-
Pemeliharaan lebih mudah: Perubahan hanya di modul terkait tanpa ganggu sistem lain.
-
Reusabilitas: Modul dapat digunakan kembali di proyek lain.
-
Pengujian lebih mudah: Modul bisa diuji satu per satu.
-
Skalabilitas: Sistem lebih fleksibel untuk berkembang.
Reusabilitas adalah kemampuan menggunakan kembali komponen perangkat lunak yang sudah ada, sehingga:
-
Efisiensi meningkat: Pengembang tidak perlu membuat semuanya dari awal.
-
Biaya lebih rendah: Mengurangi sumber daya yang dibutuhkan.
DRY (Don't Repeat Yourself)
-
Mengurangi redundansi
-
Memudahkan pemeliharaan
-
Mencegah kesalahan akibat pembaruan yang tidak konsisten
DRY sangat erat kaitannya dengan pemrograman modular, di mana fungsi, kelas, atau modul dibuat reusable untuk meningkatkan efisiensi dan keterbacaan kode.
KISS (Keep It Simple, Stupid)
-
Sistem lebih mudah dipahami dan dipelihara
-
Mengurangi risiko kesalahan
-
Memudahkan kolaborasi antar anggota tim
KISS bukan berarti mengabaikan kebutuhan penting, melainkan menemukan solusi paling sederhana yang tetap memenuhi tujuan proyek.
2.Prinsip SOLID dalam OOP
Kohesi dan Coupling dalam Perangkat Lunak
Jenis-jenis Coupling:
-
Data Coupling: Modul hanya bertukar data tanpa informasi tambahan.
-
Stamp Coupling: Struktur data lengkap diteruskan antar modul.
-
Control Coupling: Modul berbagi informasi kontrol.
-
External Coupling: Modul bergantung pada sistem luar atau perangkat keras tertentu.
-
Common Coupling: Modul berbagi data global.
-
Content Coupling: Modul dapat langsung mengubah data atau kontrol modul lain, yang harus dihindari.
Jenis-jenis Cohesion:
-
Functional Cohesion: Setiap elemen penting untuk satu komputasi (ideal).
-
Sequential Cohesion: Output satu elemen menjadi input untuk elemen lain.
-
Communicational Cohesion: Elemen bekerja pada data masukan/keluaran yang sama.
-
Procedural Cohesion: Elemen menjalankan urutan prosedur.
-
Temporal Cohesion: Elemen digabung karena waktu eksekusi yang sama.
-
Logical Cohesion: Elemen terkait secara logis, bukan fungsional.
-
Coincidental Cohesion: Elemen tidak berhubungan, bentuk kohesi terburuk.
-
Informational Cohesion: Elemen bekerja berdasarkan struktur data tertentu.
Dependency Injection juga diterapkan untuk mendukung prinsip ini, di mana objek mendapatkan ketergantungannya dari luar, bukan membuat sendiri, sehingga memperkuat fleksibilitas sistem.
B.Memvisualisasikan Diagram untuk Perancangan Perangkat Lunak
-
Aktor: Entitas eksternal yang berinteraksi dengan sistem (contoh: pelanggan, admin).
-
Use Case: Fungsi spesifik yang dapat dilakukan pengguna, misalnya "Pesan Produk" atau "Check-out".
-
Relasi: Ada relasi include (menggabungkan fungsionalitas) dan extend (menambahkan perilaku baru).Diagram ini penting untuk mendefinisikan fungsionalitas sistem secara umum.
-
1:1 (Satu ke Satu): Contoh, satu orang memiliki satu NIK.
-
1:M (Satu ke Banyak): Contoh, satu dosen mengajar banyak mata kuliah.
-
M:N (Banyak ke Banyak): Contoh, mahasiswa mengambil banyak mata kuliah dan sebaliknya.
-
Association: Hubungan statis antara dua class.
-
Aggregation: Hubungan di mana satu class merupakan bagian dari class lain, tetapi tetap bisa berdiri sendiri.
Class Diagram biasanya dibuat sebelum tahap produksi untuk menjadi panduan bagi programmer.
Komentar
Posting Komentar