Anda di halaman 1dari 12

MODUL KULIAH

SEKOLAH TINGGI TEKNOLOGI INFORMASI NIIT

Mata Kuliah Rekayasa Perangkat Lunak


Semester Ganjil 2020/2021
Dosen Susana Dwi Yulianti, M.Kom

Modul 7 (Tujuh)
Pertemuan 7 (Tujuh)
Topik Prinsip danKonsep Desain
Sub Topik Prinsip danKonsep Desain
Materi 
 Mahasiswa dapat mengetahui dan memahami konsep dan
prinsip desain perangkat lunak
 Mahasiswa dapat mengerti bahwa desain secara modular
Tujuan dapat mengurangi kompleksitas program dan hasil dari
desain ini dapat dengan mudah diimplementasikan
 Mahasiswa dapat memahami model desain
 Mahasiswa dapat membuat dan mengetahui isi dari
dokumentasi desain

Modul Perancangan Database dan ImplementasiPage 1


PERTEMUAN 7
PRINSIP DAN KONSEP DESAIN

A. Definisi Desain
Desain adalah Proses aplikasi berbagai teknik dan prinsip bagi tujuan
pendifinisian suatu perangkat, suatu proses atau sistem dalam detail yang
memadai untuk memungkinkan realisasi fisiknya.
Tujuan desainer: menghasilkan suatu model atau representasi dari
entitas yang kemudian akan dibangun.
Desain sebagai model: Memberikan sudut pandang yang bervariasi
dalam melihat sebuah software.
Desain adalah tempat dimana kualitas sebuah software ditentukan.
Desain menjadi sumber referensi dalam menilai kualitas sebuah software.
Desain adalah satu-satunya cara merelasikan kebutuhan customer
dengan software yang dibangun.

Beberapa dampak jika tidak menggunakan desain:


 Sistem tidak stabil
 Perubahan kecil dapat membuat software gagal bekerja
 Software sulit ditest
 Kualitas software tidak dapat dinilai

Manfaat desain:
 Untuk Komunikasi dengan Stakeholder
 Sebagai bahan analisa sistem (komponen-komponen penting dapat
teridentifikasi saat awal fase).
 Dapat digunakan kembali untuk software dengan skala yang lebih
besar
 Menjadi panduan dalam melakukan coding

Modul Perancangan Database dan ImplementasiPage 2


B. Fokus Dari Desain
Jika persyaratan PL telah mulai dianalisis dan ditentukan, maka desain
PL menjadi yang pertama dari 3 aktivitas teknik (desain, coding,
pengujian). Desain berfokus pada 4 area:
1. Desain Data (ERD, Kamus Data)
Mentransformasikan model domain informasi yang dibuat selama
analisis kedalam struktur data yang akan diperlukan untuk
mengimplementasi perangkat lunak.
Objek dan hubungan data yang ditetapkan dalam ERD dan isi data
detail yang digambarkan didalam kamus data, menjadi basis bagi
aktivitas desain data.
2. Desain Arsitektur (Desain Arsitektur)
Menentukan hubungan diantara elemen2 struktur utama dari
program. Representasi dalam bentuk kerangka kerja modular dari
sebuah program komputer
3. Desain Interface (GUI)
Menggambarkan bagaimana perangkat lunak berkomunikasi dalam
dirinya sendiri, dengan sistem yg berinteroperasi dengannya, dan
dengan manusia yang menggunakannya
4. Desain Prosedural
Mentransformasi elemen struktural dari arsitektur program ke dalam
suatu deskripsi prosedural dari komponen2 PL

C. Model Desain
Translasi/merubah model analisis ke model desain:

Modul Perancangan Database dan ImplementasiPage 3


Design data pada dasarnya melakukan transformasi model-model
kelas menjadi rancangan kelas-kelas realisasi dan juga menghasilkan
struktur-struktur data yang diperlukan untuk mengimplementasikan
perangkat lunak.
Architectural design pada dasarnya mendefinisikan hubungan
antara elemen-elemen structural utama dari suatu perangkat lunak,
mendifinisikan gaya arsitektural, dan pola-pola perancangan dapat
digunakan untuk mencapai kebutuhan-kebutuhan yang sebelumnya telah
didefinisikan pada tahapan analisis system, dan memungkinkan batasan-
batasan yang memiliki imbas pada arsitektur dapat diimplementasikan.
Interface design mendefinisikan bagaimana caranya
kelakperangkat lunak berkomunikasi dengan system-sistem yang bekerja
bersamanya dandengan orang-orang yang akan menggunakannya.
Karakteristik desain yang baik:
 Harus mengimplementasi semua requirement yang terdapat dalam
model analisis
 Mengakomodir kebutuhan customer yang implisit
 Harus dapat dibaca & dimengerti oleh programmer, tester & tim
support.
 Harus memberi gambaran (data, fungsi & perilaku) yang komplit
dari sebuah software

D. Prinsip Desain
Desain PL berupa proses dan model. Proses desain adalah
serangkaian langkah iteratif yang memungkinkan desainer
menggambarkan semua aspek PL yang dibangun. model desain adalah
ekivalen rencana arsitek untuk sebuah rumah.
Berikut ini merupakan prinsip desain:
1. Desain harus dapat di hubungkan dengan analisa
Karna suatu elemen tunggal dari model desain sering menelusuri
sampai persyaratan bertingkat, maka hrs ada tools yg digunakan
untuk menelusuri bahwa persyaratan dipenuhi oleh model desain

Modul Perancangan Database dan ImplementasiPage 4


2. Desain tidak boleh berulang
Gunakan komponen desain reusable untuk mempersingkat waktu
desain
3. Desain harus dapat menjembatani antara software dengan problem
didunia nyata
4. Desain harus menggambarkan integrasi & keseragaman gaya
Aturanstyle dan format bagi suatu tim dasain harus
ditentukansebelum desain dimulai
5. Desain harus terstruktur untuk dapat mengakomodir perubahan
6. Desain tidak sama dengan coding
7. Desain harus memperhatikan kualitas
8. Desain harus direview untuk meminimalkan kesalahan-kesalahan
konseptual
Prinsip desain yang diterapkan dengan baik, akan menghasilkan
desain yang memenuhi faktor kualitas internal (berdasarkan konsep
desain dasar) maupun faktor kualitas eksternal (sifat PL yang dapat
diamati). Faktor kualitas eksternal: sifat-sifat PL yang dapat diamati oleh
pemakai (misal: kecepatan, reliabilitas, ketepatan, usabilitas). Faktor
kualitas internal berdasarkan perspektif teknis berdasarkan konsep-
konsep desain dasar.

E. Konsep Desain
Konsep desain PL memberikan kerangka kerja untuk menghasilkan
program yang berfungsi dengan benar.
Konsep desain membantu desainer dalam:
 Menentukan kriteria yang digunakan untuk membagi software
menjadi komponen-komponen
 Memisahkan antara struktur data/fungsi dengan konsep sebuah
software
 Menentukan kualitas sebuah desain software

Modul Perancangan Database dan ImplementasiPage 5


Berikut ini merupakan konsep desain:
1. Abstraksi
Bagaimana sebuah solusi dipresentasikan. Memungkinkan
seseorang untuk berkonsentrasi pada suatu permasalahan pada
beberapa tingkat generalisasi tanpa memperhatikan detail tingkat
rendah yang tidak relevan. Memungkinkan orang bekerja dengan
konsep-konsep dan istilah-istilah yang umum dalam lingkungan
permasalahan.
Tingkat abstraksi terendah adalah source code. Tingkat abstraksi
yang berbeda menghasilkan abstraksi data dan prosedural. Abstraksi
prosedural adl urutan instruksi yang diberi nama yang mempunya
fungsi tertentu dan terbatas. Abstraksi data adalah kumpulan data
yang bernama yang menggambarkan objek data.
Contoh abstraksi data:

Contoh Abstraksi procedural:

Modul Perancangan Database dan ImplementasiPage 6


2. Refinement/elaborasi/penyaringan
Merupakan Langkah memperbaiki desain secara bertahap.
Membuat hirarki dengan mendekomposisi suatu fungsi (abstraksi
prosedural). Abstraksi dan elaborasi adalah konsep komplementer.
abstraksi memungkinkan desainer menentukan prosedur dan data,
elaborasi membantu desainer menghasilkan detailnya.
3. Modularitas
Memecah software menjadi komponen yang disebut modul dan
dapat dipanggil terpisah. Manfaat: Memperkecil effort untuk
mendevelop software.

C(p1)>C(p2) maka E(p1)>E(p2)


C(p1+p2)>C(p1)+C(p2) maka E(p1+p2)>E(p1)+E(p2)

Keterangan :
C(x) : fungsi untuk mengukur kompleksitas permasalahan x
E(x) : fungsi untuk menentukan usaha (dalam waktu) yang
diperlukan untuk memecahkan masalah x
Kesimpulan dari persamaan adalah :
 lebih mudah untuk memecahkan suatu masalah yang kompleks
jika dibagi kedalam bagian2 yang dapat diatur
 Jika membagi PL secara tidak terbatas, maka usaha yang
dibutuhkan untuk mengembangkannya menjadi sangat kecil
Jumlah Modul bertambah maka Biaya integrasi antar modul akan
bertambah.

Keadaan undermodularity dan overmodularity harus dihindari.

Modul Perancangan Database dan ImplementasiPage 7


4. Arsitektur software
Arsitektur merupakan struktur hirarki dari komponen
program(modul), cara bagaimana komponen tersebut berinteraksi, dan
struktur data yang digunakan oleh komponen
5. Hirarki control
Disebut juga struktur program, merepresentasikan organisasi
(secara hirarkis) komponen program(modul) serta mengimplikasikan
suatu hirarki control. Tidak merepresentasikan aspek prosedural PL
(misalnya urutan proses, pengulangan operasi)

Keterangan:
 Depth mengindikasikan tingkat kontrol
 Width mengindikasikan rentang keseluruhan kontrol
 Fan-out : pengukuran jumlah modul yang dikontrol secara
langsung oleh modul yang lain
 Fan-in : berapa banyak modul yang secara langsung
mengontrol sebuah modul yang diberikan
 Superordinat : modul yang mengontrol modul lain, misalnya M
adalah super ordinat untuk modul a, b, c
 Subordinat : modul yang dikontrol modul lain
6. Partisi structural
Partisi horizontal mendefinisikan tiga partisi (input, transformasi
data, dan output). Partisi vertikal (factoring) menyatakan bahwa
kontrol(pembuatan keputusan) dan kerja harus didistribusikan secara
top down dalam arsitektur program.

Modul Perancangan Database dan ImplementasiPage 8


Keputusan kontrol dalam modul level atas dan pemrosesan kerja
dalam modul yang lebih rendah.
Partisi Horizontal:
 Menentukan cabang-cabang terpisah dari hirarki modular untuk
setiap fungsi program mayor
 Menggunakan modul kontrol untuk mengkoordinasikan
komunikasi antara fungsi-fungsi

Keuntungan partisi horizontal:


 Menghasilkan software yang lebih mudah diuji
 Membawa software yang lebih mudah dipelihara
 Menghasilkan penyebaran efek samping yang lebih sedikit
 Menghasilkan software yang lebih mudah diperluas
Kerugian partisi horizontal:
Partisi horizontal menyebabkan lebih banyak data yang dilewatkan
melalui interface modul dan dapat merumitkan keseluruhan kontrol
dari aliran program(bila pemrosesan membutuhkan pergerakan
yang cepat dari suatu fungsi ke fungsi yang lain)

Partisi vertical:
Desain, sedemikian sehingga pembuatan keputusan dan kerja
dibuat bertingkat-tingkat. Modul pembuatan keputusan sebaiknya
terletak pada puncak arsitektur.

Modul Perancangan Database dan ImplementasiPage 9


Keuntungan partisi vetikal:
 Sifat : perubahan pada modul kontrol memiliki probabilitas
penyebaran efek samping yang lebih tinggi ke modul yang
menjadi sub ordinatnya
 Secara umum perubahan program berada di seputar
perubahan input, komputasi, dan output
 Struktur kontrol keseluruhan program (perilaku dasar) sangat
kecil probabilitas untuk berubah, sehingga kurang rentan
terhadap efek samping pada saat perubahan dibuat,
sehingga menjadi lebih dapat dipelihara
7. Struktur data
Representasi dari hubungan logis antara elemen-elemen data
individual
8. Software procedure
Spesifikasi proses yang seksama(event sequences, titik-titik
keputusan, operasi pengulangan, struktur data)
9. Penyembunyian informasi
Informasi (data dan procedur) yang terkandung dalam modul tidak
dapat diakses oleh modul lain, yang tidak mempunyai kebutuhan
terhadap informasi tersebut

F. Dokumen Desain
Berikut ini merupakan template dari dokumen design:
I. Ruang Lingkup
A. Sasaran Sistem
B. Persyaratan Utama Perangkat Lunak
C. Batasan desain
II. Desain Data
A. Objek Data dan Struktur Data
B. Struktur File dan Database
1. Struktur File Eksternal
a. Struktur logis

Modul Perancangan Database dan ImplementasiPage 10


b. Deskripsi record logis
c. Metode akses
2. Data global
3. File dan referensi lintas data
III. Desain Arsitektural
A. Kajian Data dan Aliran Kontrol
B. Struktur Program yang diperoleh
IV. Desain Interface
A. Spesifikasi Interface Manusia – Mesin
B. Aturan Desain Interface Manusia – Mesin
C. Desain Interface Eksternal
1. Interface untuk data eksternal
2. Interface untuk sistem atau peralatan eksternal
V. Desain Prosedural
A. Naratif Pemrosesan
B. Deskripsi interface
C. Deskripsi bahasa desain
D. Modul-modul yang digunakan
E. Struktur data internal
F. Keterangan
VI. Persyaratan Lintas Referensi
VII. Ketentuan Pengujian
VIII. Catatan Khusus
IX. Lampiran

Modul Perancangan Database dan ImplementasiPage 11


Latihan Soal Pertemuan 7

1. Apakah anda mendesain perangkat lunak ketika anda membuat


program?apakah perbedaan desain dengan pengkodean?

2. Berikan 3 contoh abstraksi data dan abstraksi prosedural yang dapat


digunakan untuk memanipulasinya!

Modul Perancangan Database dan ImplementasiPage 12

Anda mungkin juga menyukai