Baik Pak 👨🏫
Kita masuk ke tahap desain sistem.
📘 MODUL PERTEMUAN 5
Perancangan Sistem (Software Design &
Architecture)
1. Capaian Pembelajaran
Setelah mengikuti pertemuan ini, mahasiswa mampu:
1. Menjelaskan konsep desain perangkat lunak
2. Memahami prinsip-prinsip desain yang baik
3. Menjelaskan arsitektur perangkat lunak
4. Membedakan desain tingkat tinggi dan rendah
5. Mendesain arsitektur sistem sederhana
2. Konsep Perancangan Perangkat Lunak
Perancangan (design) adalah proses menerjemahkan requirement menjadi blueprint sistem
sebelum coding dilakukan.
Design menjawab pertanyaan:
Bagaimana sistem akan dibangun?
Bagaimana komponen saling berinteraksi?
Bagaimana struktur data disusun?
3. Tujuan Perancangan
1. Mengurangi kompleksitas
2. Meningkatkan maintainability
3. Meningkatkan reusability
4. Memudahkan pengujian
5. Meningkatkan kualitas sistem
4. Tingkatan Desain
4.1 High-Level Design (HLD)
Menjelaskan:
Arsitektur sistem
Modul utama
Interaksi antar komponen
Contoh:
Client–Server
3-Tier Architecture
4.2 Low-Level Design (LLD)
Menjelaskan:
Detail algoritma
Struktur class
Struktur database
API endpoint
5. Prinsip Desain Perangkat Lunak
5.1 Abstraction
Menyederhanakan sistem dengan menyembunyikan detail tidak penting.
5.2 Modularity
Membagi sistem menjadi modul independen.
5.3 Encapsulation
Menyembunyikan data dalam class.
5.4 Separation of Concern
Setiap bagian memiliki tanggung jawab spesifik.
6. Arsitektur Perangkat Lunak
Arsitektur adalah struktur tingkat tinggi sistem.
6.1 Arsitektur Monolithic
Semua komponen dalam satu sistem besar.
Kelebihan:
Sederhana
Mudah dikembangkan awal
Kekurangan:
Sulit diskalakan
6.2 Arsitektur Client–Server
Client meminta layanan, server memproses.
Contoh:
Aplikasi web
Mobile app dengan backend
6.3 Arsitektur 3-Tier
1. Presentation Layer
2. Business Logic Layer
3. Data Layer
Keuntungan:
Terstruktur
Mudah dikembangkan
Skalabilitas lebih baik
6.4 Microservices Architecture
Sistem dibagi menjadi layanan kecil independen.
Kelebihan:
Skalabilitas tinggi
Fleksibel
Kekurangan:
Kompleks
Butuh manajemen tinggi
7. Desain Database
Langkah umum:
1. Identifikasi entitas
2. Tentukan atribut
3. Tentukan relasi
4. Normalisasi
Desain database harus mendukung requirement dan performa.
8. Desain Antarmuka (UI/UX)
Prinsip UI:
Konsisten
Mudah dipahami
Responsif
Minimalis
UX fokus pada pengalaman pengguna.
Kesalahan umum:
Terlalu banyak fitur
Navigasi rumit
Tidak responsif
9. Studi Kasus Diskusi
Kasus:
Sebuah perusahaan ingin membangun aplikasi e-learning dengan fitur:
Video streaming
Forum diskusi
Quiz online
Dashboard admin
Diskusi:
1. Arsitektur apa yang cocok?
2. Apakah perlu microservices?
3. Bagaimana pembagian layer-nya?
10. Latihan Individu
Mahasiswa diminta:
Mendesain arsitektur sistem informasi klinik
Tentukan jenis arsitektur
Gambarkan pembagian modul
Jelaskan alasan pemilihan desain
11. Rangkuman
Design adalah jembatan antara requirement dan coding
Arsitektur menentukan struktur sistem
Prinsip desain yang baik meningkatkan kualitas
HLD dan LLD saling melengkapi
Berikutnya:
📘 Pertemuan 6 – Desain Berorientasi Objek & Prinsip OOP (SOLID)
Apakah saya lanjutkan sekarang, Pak? 👨🏫