Anda di halaman 1dari 156

PERANCANGAN STRUKTUR

PERANGKAT LUNAK

Jurusan Teknik Informatika


FTKI - Universitas Nasional
Perancangan Perangkat Lunak
Berorientasi pada Fungsi

 Memahami bentuk dan tools dasar analisis dan


perancangan perangkat lunak berbasis Fungsi:
– Teknik Konvensional (DFD, ERD, HIPO, dll.)
– Warnier Diagrams, DSSD, Jackson, SADT,
Formal, Automasi / CASE.
 Memahami berbagai teknik pemodulan
(modularity), abstraksi, keterkaitan (coupling)
dan keterpaduan (cohesion) modul-modul
 Mengetahui berbagai metode perancangan
dan dapat memilih metode yang sesuai.
Empat Kelompok Metodologi
1. Functional Decomposition Methodologies
Metodologi ini menekankan pada pemecahan dari
sistem ke dalam subsistem-subsistem yang lebih
kecil, sehingga akan mudah untuk dipahami,
dirancang dan diterapkan.
Yang termasuk dalam kelompok metodologi ini:
- HIPO (Hierarchy Input-Process-Output)
- Iterative Stewise refinement (ISR)
- Information hiding.

2. Data-Oriented Methodologies
Metodologi ini menekankan pada karakteristik
dari data yang akan diproses.
a. Data-flow Oriented Methodologies
Metodologi ini secara umum didasarkan pada
pemecahan dari sistem kedalam modul-modul
didasarkan jenis elemen data dan hubungan antara
fungsi modul-modul.
Yang termasuk dalam kelompok metodologi ini:
- SADT (Structured Analysis and Design Techniques)
- Composite Design
- SSAD (Structured Systems Analysis and Design)

b. Data Structure Oriented Methodologies


Metodologi ini menekankan struktur dari input dan
output di sistem. Hubungan fungsi antar modul atau
elemen-elemen sistem dijelaskan dalam struktur
sistemnya.
Yang termasuk dalam metodologi ini adalah:
- JSD (Jackson’s Systems Development)
- W/O (Warnier/Orr)

2. Object-Oriented Methodologies
Yang termasuk dalam metodologi ini adalah:
- OMT (Object Modelling Technique),
- OOA/D (Object-Oriented Analysis/Design ),
- UML (Unified Modelling Language).

3. Prescriptive Methodologies
Yang termasuk dalam metodologi ini adalah:
- PLEXSYS
- PRIDE
- SDM/70 (System Development Methodology/70)
- SRES (Software Requirment Engineering
System)
Software Process

Requirements
definition

System
design

Implementation
and testing

Integration
and testing

Operation and
maintenance
PERANCANGAN PERANGKAT LUNAK

Tiga tahap dasar dalam strategi pengembangan:


1. Analisis : memahami permasalahan (What) –
Conceptual Model, System Requirements.
2. Desain/Perancangan : mengorganisasikan atau
menstrukturkan permasalahan (How). System Design,
Detailed Design.
3. Implementasi : membuat solusi pemecahan masalah
dapat dilaksanakan. Coding - Testing
PERANCANGAN PERANGKAT LUNAK
MERUPAKAN BRAINWARE

 Perancangan merupakan aktivitas otak manusia yang belum


dapat diganti secara mekanik oleh mesin.
 Perancangan memerlukan pengetahuan (knowledge).
 Perancangan membutuhkan pengalaman/keterampilan (skill).
 Pengetahuan dan keterampilan tersebut dapat dituntun oleh
suatu teknik atau metoda perancangan sehingga menghasilkan
suatu kreativitas dan pemikiran inovatif.
OTAK MANUSIA

Penalaran, bahasa,
aritmatika dan logika Kreativitas, seni,
Apa tujuan dari Perancangan
 Tujuan dari perancangan adalah untuk menghasilkan
suatu model atau gambaran lengkap dari suatu
perangkat lunak yang akan dibangun.
 Perancangan disini adalah mendekomposisi fungsi
program menjadi modul-modul dan kemudian
menjelaskan spesifikasi dari setiap modul (data,
proses, interface).
Penggunaan Model-model
Dapat dibangun oleh satu
orang dan membutuhkan:
• Pemodelan Minimal
• Proses sederhana Dibangun oleh sejumlah Tim
• Peralatan sederhana Kontraktor dan membutuhkan:
• Model rekayasa
• Proses yang terkoordinasi
mnya dibangun oleh suatu tim dan
• Mesin-mesin indutri
utuhkan:
modelan
oses yang baik
t-alat canggih
Apa pentingnya perancangan
perangkat lunak ?
 Pentingnya perancangan perangkat lunak dapat
dinyatakan dengan kata tunggal – kualitas.
 Perancangan adalah tempat dimana kualitas dibangun
dalam pengembangan perangkat lunak.
 Perancangan memberi kita gambaran perangkat lunak
yang kualitasnya dapat dinilai.
 Perancangan adalah satu-satunya cara dimana kita
dapat secara akurat menerjemahkan kebutuhan
pelanggan ke dalam produk/sistem perangkat lunak.
 Tanpa rancangan, kita berisiko membangun sistem yang
tidak stabil, sulit diuji dan kualitasnya tidak dapat dinilai.
PERANCANGAN PERANGKAT LUNAK
(Menurut ANSI/IEEE Std 729-1983)
Perancangan Perangkat Lunak adalah suatu perioda
didalam siklus hidup rekayasa perangkat lunak,
mulai dari analisis, dokumentasi, dan pemeriksaan
kembali rancangan data, arsitektur, interface dan
prosedur perangkat lunak, untuk memenuhi
kebutuhan tententu.

Definisi Umum
Perancangan perangkat lunak adalah suatu
proses untuk mengubah kebutuhan-kebutuhan
(requirements) fungsional menjadi suatu
struktur dan prosedur sebelum dilakukan
pengkodean atau pemrograman.
Aspek Manajemen dan Aspek Teknis

Hubungan antara aspek-aspek manajemen


dengan aspek-aspek teknis dari perancangan

Aspek-aspek System Architecture Design


(Structure)
Manajemen Detail Design
(Procedure)
Data Design

Aspek-aspek Architectural Design


Teknis
Procedural Design

Interface Design
Perancangan perangkat lunak menurut aspek teknis:

 Perancangan Data (Data Design)


Mengubah model domain informasi yang dibuat pada
saat analisis menjadi struktur-struktur data.
 Perancangan Arsitektural (Architectural Design)
Mendefiniskan hubungan antara komponen-komponen
struktural utama dari program.
 Perancangan Antarmuka (Interface Design)
Memberikan layout dan mekanisme interaksi antara
manusia-mesin.
 Perancangan Prosedural (Procedural Design)
Mengubah komponen-komponen struktural menjadi
suatu gambaran prosedural dari perangkat lunak.
Hubungan Data Dictionary pada
Perancangan Data
 Data Dictionary adalah sekumpulan metadata yang
berisi definisi-definisi dan representasi-representasi
dari elemen-elemen data.
 Metadata adalah data mengenai data.
 Data adalah fakta, huruf dan angka yang tidak
sedang digunakan pada proses keputusan, dan
biasanya berbentuk catatan historis atau arsip.
METADATA
• MARC 21 (2709) • ALD
• GILS • FGDC
• CDWA • Dublin Core (15)
• VRA • RDF
• CIMI • EAD
 Item dari metadata adalah suatu hubungan yang
terjadi diantara dua entitas dalam bentuk teks.
 Pada konteks DBMS, Data Dictionary adalah sejumlah
read-only of tables and views, berisi informasi tentang:
– Precise definition of data elements
– Usernames, roles and privileges
– Schema objects
– Integrity constraints
– Stored procedures and triggers
– General database structure
– Audit information
– Space allocations
Basic Dictionary Objects
 Tables – koleksi dari rekord-rekord data dalam fields.
 Data elements – berisi definisi semantik (gambaran singkat)
kalimat dalam suatu field.
 Domains – menggambarkan atribut-atribut teknis fields
dalam tabel (e.g. field type, length, value range).

Table

Table field

Data element
uses
Domain
uses
File Data Structures

A file: “STUDENT”
field

ID Last First Grade

3 Smith Jane A
1 Wood Bob C
record
2 Kent Chuck B
4 Boone Dan B
Contoh Data

Course Section Semester Name Rank


MIS 3353 100 Su 01 Kemp Instr
MIS 3353 200 Su 01 Schwarzkopf Assoc P
MIS 3373 200 Su 01 Kemp Instr
MIS 4663 900 Fa 01 Schwarzkopf Assoc P
MIS 4663 901 Fa 01 Van Horn Prof
Contoh Metadata
Data Item Value
Name Type Length Min Max Description
Course Char 7 Three digit depart-
ment reference and 4
digit course number
Section Integer 3 001 900 Section number
Semester Char 10 Semester and year
Name Char 30 Instructor name
Rank Char 10 Instructor rank
DATABASE
Program 1
Meta-
Program 2 Data Data

Program 3
Data Dictionary
Apa itu Entity Relationships Diagram ?
 Entitas adalah komponen-komponen yang ada dalam sistem yang
dijadikan model.
 Relationship adalah hubungan antara entitas-entitas
- One to Many (1:M) – mis: Ibu ke Anak
- One to One (1:1) – mis: Tgl. kelahiran ke Tgl. Kematian
- Many to Many (M:M) – mis: Produk ke Purchase Order.

Supplier supplies Items

Entitas Relationsh Entitas


ip
Data Modeling
 Data modeling is a formalism
 Entity-Relationship Model (ER) Entity
Relationship model:
– a visual model
– attempts to capture the structure of data

 Premises
– The real world consists of entities
– Entities in one enterprise are
related
– Database model =
relevant entities + relationships among them
– Entities and relationships have attributes
Database Design

Conceptual design Entity-Relationship Model

Logical design
Logical Schema

Physical design
Relationship sets
 Relationship set: a relation among entity sets:
– e.g. (Smith,IST210) takes
 Relationship sets
– have degree
– may have attributes
– e.g. final mark attribute for takes relationship
Graphical Elements of the ER Diagram
 Its components are:
– rectangles representing entity sets.
– ellipses representing attributes.
– diamonds representing relationship sets.

Relationship
Entity Attribute

• Customers • id • Customer Account


• Accounts • name
Basic Symbols
Cardinality Symbology
 Entitas adalah komponen-komponen yang ada dalam sistem yang
dijadikan model.
 Relationship adalah hubungan antara entitas-entitas
- One to Many (1:M) – mis: Ibu ke Anak
- One to One (1:1) – mis: Tgl. kelahiran ke Tgl. Kematian
- Many to Many (M:M) – mis: Produk ke Purchase Order.

Supplier supplies Items

Entitas Relationsh Entitas


ip
Relationship

STUDENT Take COURSE

 Connect two or more entity sets


 Represented by diamonds
 Think of the “value” of a relationship set as a table
 One row for each list of entities, one from each set,
that are connected by the relationship
Finding Relationships
 Often represented by a Verb
 allows answers to questions not available
through individual entity types

EMPLOYEE Has DEPENDENT

Weak Entity
Entity, Attribute, Relationship
Name Address

Numb

CLIENT PASSPORT

Exp

ITINERARY
• A client must have a passport
• Each client has only one passport
Date city • A client may have one or more
itinerates
• An itinerary belongs to one client
Basic relationships
One-to-One HUSBAND WIFE

• A husband has one wife


• A wife has one husband

One-to-Many TEAM PARTICIPANT

• A team has many participants


• Many participants belong to one
team

Many-to-Many EMPLOYEE SKILL

• An employee has many skills


• Many employees have the same skill
Exercise

 Business rules: A university where a student


may take many courses employs lecturers.
Each lecturer teaches one or more courses but
no course is taught by more than one lecturer.
Each student has to complete two or three
assignments for each course.
 Requirement: Draw an entity relationship (ER)
diagram for the situation described.
Solution

Has Take

Teach
Review

 Use ER Diagrams to help understand


– The essential information
– Visual guide to the organization
– Plan for how to proceed
– Improve database design
Apa itu Data Flow Diagram?
Data Flow Diagram (DFD) adalah suatu teknik grafik
yang menggambarkan alur informasi dan transformasi
menggunakan dekomposisi fungsi terhirarki dari suatu
proses dalam suatu sistem

Levelisasi DFD
 Diagram Konteks (Level 0)
Merupakan data flow diagram level
tertinggi dan langkah awal pada sebuah
sistem, yang menggambarkan sistem
dengan lingkungan luar sistem yang
berhubungan secara langsung.
 Diagram Level 1
Penguraian dari proses sistem yang ada
pada diagram konteks, menggambarkan
hubungan proses utama yang ada didalam
Tujuan Data Flow Diagrams ?
Untuk memperlihatkan:
 Empat komponen sistem komputer: input,
output, processing, storage.
 Bagaimana informasi masuk dan
meninggalkan sistem.
 Apa saja yang mengubah informasi.
 Dimana informasi di simpan.

Mengapa DFD penting:


 Mendefinisikan batas-batas (boundary).
 Memeriksa kelengkapan dari suatu
analisis.
 Sebagai dasar dari spesifikasi program.
Data Flow Diagram
Didasarkan 4 (empat) komponen sistem
komputer:
1. Input (data sources) atau Entity
2. Output (data destinations)
3. Processing (tranformation processes)
4. Storage (data stores)
Data Data
Input Flow Transform
Process Flow Output
(Source) (Destination)

Data
Flow
Data store
Simple Data Flow Diagram
Common Process Errors on DFDs
SOAL
Buatlah Data Flow Diagram siklus transaksi dari
empat siklus aktivitas bisnis yang umum.
Empat Siklus Aktivitas Bisnis yang Umum
1. Siklus Pendapatan. Kejadian-kejadian yang berkaitan
dengan penjualan barang dan jasa dan penagihan hasil-
hasilnya (pesanan pelanggan, penagihan, piutang dagang dan
pelaporan penjualan).
2. Siklus Pengeluaran. Kejadian-kejadian yang berkaitan
dengan perolehan barang dan jasa dan pelunasan kewajiban /
hutang (pemilihan pemasok, pembelian, hutang dagang dan
penggajian).
3. Siklus Produksi. Kejadian-kejadian yang berkaitan dengan
manajemen dan pengendalian sumber daya, investasi dan
fasilitas (akutansi biaya produksi, pengendalian persediaan
dan akutansi kekayaan).
4. Siklus Keuangan. Kejadian-kejadian yang berkaitan dengan
perolehan dan manajemen dana-dana modal, termasuk kas
(kas, hutang, dan pensiun karyawan).
Kejadian-
kejadian
Ekonomik
Transaksi-
transaksi

Siklus Siklus
Siklus Siklus
Produksi Keuangan
Pendapatan Pengeluaran

Siklus
Laporan
Pelaporan
Keuangan
Keuangan
Apa itu State Transition Diagram ?
 State Transition Diagram merepresentasikan perilaku suatu
sistem dengan menggambarkan keadaan-keadaannya (states)
dan kejadian-kejadian yang dapat membuat sistem berubah
keadaan.
 Menunjukkan tindakan-tindakan apa yang harus dilakukan
sebagai akibat dari kejadian tertentu.
 Keadaan adalah mode perilaku yang dapat diamati.

2-state Coffee
Switch button to on
Maker:

Idle Making coffee

Switch button to off


The software design process

Requirements
Requirements
specification
specification

Data
Architectural Abstract Interface Component structure Algorithm
design specification design design design design

System Software Interface Component Data structure Algorithm


architecture specification specification specification specification specification
DOKUMENTASI PERANCANGAN
I. Ruang Lingkup
A. Sasaran Sistem
B. Persyaratan Utama Perangkat Lunak
C. Batasan-batasan dan Pembahasan
Rancangan
II. Rancangan Data
A. Objek Data dan Struktur Data
B. Struktur File dan Basisdata
1. Struktur File Eksternal
2. Data Global
3. File dan Acuan Lintas Data
III. Rancangan Arsitektural
A. Kajian Data dan Aliran Kendali
B. Struktur Program
IV. Rancangan Interface
A. Spesifikasi Interface Manusia-Mesin
B. Aturan Rancangan Interface Manusia-Mesin
C. Rancangan Interface Eksternal
1. Interface untuk Data Eksternal
2. Interface untuk Sistem/Peralatan Eksternal
V. Rancangan Prosedural
Untuk masing-masing Modul:
A. Naratif Pemrosesan
B. Penggambaran Interface
C. Penggambaran Bahasa Rancangan
D. Modul-modul yang Digunakan
E. Struktur Data Internal
F. Keterangan/Larangan/Pembatasan
VI. Persyaratan Lintas-Acuan
VII. Ketentuan Pengujian
1. Paduan Pengujian
2. Strategi Integrasi
3. Pertimbangan Khusus
VIII. Catatan Khusus
IX. Lampiran
Pertanyaan

Gambarkan bagan struktur organisasi (Organizational


Structure Chart) di tempat kerja saudara dan jelaskan ciri-
cirinya ?
Organizational Structure Chart
Penjelasan
 Struktur organisasi di gambarkan dalam suatu
arsitektur (bangunan) berupa kotak-kotak untuk
menggambarkan satuan dan garis-garis untuk
mengambarkan hubungan hirarki antara kotak-
kotak.
 Panah-panah menunjukkan aliran dari kendali
terhirarki antara kotak-kotak.
 Setiap satuan mempunyai fungsi dan tugas-tugas
(tusi) yang diuraikan dalam bentuk wewenang dan
tanggung jawab dalam suatu hubungan lini (garis).
 Fungsi dijabarkan dalam bentuk perincian kegiatan
secara sederhana yang disebut dengan tugas-tugas
pekerjaan.
Struktur Perangkat Lunak
 Pendekatan terstruktur menggambarkan
perangkat lunak dalam bentuk sistem yang
strukturnya didefinisikan dengan jelas.
 Metodologi ini mengenalkan penggunaan alat-
alat (tools) dan teknik-teknik untuk
mengembangkan sistem yang terstruktur.
Proses Dekomposisi Sistem
Decomposition Diagrams

Decomposition
diagram – suatu
perangkat yang
digunakan untuk
menggambarkan
dekomposisi dari
suatu sistem.
Disebut juga
hierarchy chart.
Structure Chart
 Perangkat utama yang digunakan pada perangcangan
tersetruktur adalah Structure Chart.
 Structure Chart memberi gambaran mengenai modul-
modul dalam suatu sistem, bagaimana sistem
diorganisasikan menjadi modul-modul yang terkelola,
hirarki dari tiap-tiap modul tersebut, dan interface
komunikasi antara modul.
 Structure Chart tidak memperlihatkan prosedur
internal yang dilakukan suatu modul atau data internal
yang digunakan oleh suatu modul.
 Structure Chart terdiri dari: (1) Modul-modul individual;
(2) Data dari dan ke modul; (3) Kontrol sebagai interface
antara modul-modul.
Simbol-simbol Structure Charts

Module

"Lexical inclusion" module

Decisions, embedded with module

Control flow
Data flow (data structure or data element)
Control flag
 Panah lingkaran berlubang untuk
menggambarkan data yang dipertukarkan
antara dua modul
 Panah lingkaran solid untuk menggambrakan
pesan-pesan (flag) yang dilewatkan antara
dua modul.
Get
Customer
Details

Customer Customer Flag dari pemaggil ke yang dipanggil


Account Name
Number Data dari pemaggil ke yang dipanggil
Account
Number is
OK Flag dari yang dipanggil ke pemanggil

Find
Customer Data dari yang dipanggil ke pemaggil
Name
 Intan : hanya satu modul dibawahnya (subordinate)
yang dipanggil.
 Kura garis: modul-modul subordinat akan dipanggil
secara berulangulang sampai kondisi akhir terpenuhi.
CONTOH SOAL
Buat data flow graph dari ATM (automatic teller
machine).

MAIN

ne tra
Rec t # ns

Re
w
#
c

c
t Ac
Acc
Ac

Rp
Rp ct

Get Get Retriev Debit Update Record


Account Rupiah eAccou Account Account Transactio
Number Amount nt n
Record
Contoh Structure Chart

SUMMARIZE
PAYMENTS
FOR ALL
CUSTOMERS
Total for One Total for All
Customer Customers
Total for One
EOTP
Customer

GET TOTAL
PUT
PAYMENT FOR PUT FINAL
CUSTOMER
ONE TOTAL
TOTAL
CUSTOMER

Valid Customer Record EOVCR Final Total


Line
Customer
Total Line
GET VALID
CUSTOMER
RECORD PRINT
Field Valid
Customer Record

Field

READ EDIT FIELD


Pertanyaan

 Buat model struktur data dari suatu bahan


pustaka berupa buku perpustakaan dan
gambarkan juga dengan diagram W/O ?
 Dan tentukan kamus datanya (data dictionner).
Model Struktur trn type
Diagram Buku
status publisher

header input Language +

right personalauthor

notes ? corporatename*
book
title
bibliographic
category + conference*

descriptor + format
subject
keyword* size

abstract* isbn
availability notes ?
Diagram W/O Buku trn type
Perpustakaan publisher
status

header input Language +


(1)
right personalauthor

notes ? corporatename*
title
bibliographic
(1)
book category + conference*

descriptor + format
subject
(1) keyword* size

abstract* isbn
availability notes ?
(1)
Prosedur Perangkat Lunak
 Prosedur Perangkat Lunak lebih
menajamkan pada rincian tahap-tahap
pemrosesan dari setiap modul secara
individual.
 Prosedur harus memberikan spesifikasi
yang lengkap dari suatu pemrosesan,
meliputi urutan-urutan kejadian, titik-titik
keputusan yang nyata, operasi-operasi
berulang, dan bahkan organisasi dan
struktur data.
Prosedur Perangkat Lunak
Flowcharts
Flowchart adalah teknis analitik digunakan
untuk menggambarkan beberapa aspek dari
suatu sistem informasi secara logis, jelas, dan
konsisten.

Simbol-simbol Flowchart dapat dibagi atas


empat kategori:
1 Input/output symbols
2 Processing symbols
3 Storage symbols
4 Flow and miscellaneous symbols
Peta Aliran (Flowchart)
Peta Aliran memperlihatkan alur peta gerakan data
masukkan, proses pengolahan, dan keluaran.

Umpan data Keputusan


input/output logika

Input manual Database

On-line storage
Proses

Operasi manual Dokumen

Display Kendali aliran


PROCESS A
PROGRAM FLOWCHART:

SEQUENCE

PROCESS B

TRUE PROCESS E

TRUE
PROCESS D PROCESS C
S

SELECTION ITERATION
KONSTRUKSI FLOWCHARTs

Berurut
Bersyarat

Seleksi Berulang
SYSTEM FLOWCHART:

HUMAN
RESOURCES PAYROLL
DATA TIME CARDS MASTER

LOAD &
VALIDATE

PAYROLL SYSTEM
VALID
TRANS- PAYROLL
ACTIONS MASTER

COMPARE & UPDATE

PAYROLL
DIRECT GENERAL UPDATED
REPORTS & PAYROLL
CHECKS DEPOSITS LEDGER
MASTER
Pertanyaan

Apa perbedaan antara DFD dengan


Flowchart ?
Perbedaan DFD & Flowcharts
 Proses pada DFD dapat beroperasi secara parallel (pada
waktu yang bersamaan)
Proses pada flowcharts dieksekusi satu demi satu.

 DFD memperlihatkan aliran data melalui suatu sistem


Flowcharts memperlihatkan aliran kontrol (sequence &
transfer of control)

 Proses pada DFD dapat memiliki perbedaan waktu yang


sangat berbeda (harian, mingguan, sesuai permintaan)
Proses pada flowcharts adalah bagian dari suatu
program tunggal dengan waktu yang konsisten.
Perbedaan antara DFD dengan Flowchart
 DFD menekankan pada aliran data,
sedangkan Flowchart menekankan pada
aliran dokumen atau record yang berisi data.
 DFD umumnya menggambarkan aliran logika
(logical flow) dari data, sedangkan Flowchart
menggambarkan aliran fisik dari data.
Pertanyaan

Jelaskan tahapan-tahapan yang harus dilalui


dalam pengembangan suatu perangkat lunak
?
Dan jelaskan pula produk-produk yang
dihasilkan dari tiap tahapan tersebut ?
PROSES PENGEMBANGAN
TAHAP HASIL PRODUKSI
PERENCANAAN - Penggambaran Masalah.
- Rencana Pengembangan PL.
- Rencana Pengukuran Kinerja.

ANALISIS - Diagram Aliran Data.


- Spesifikasi Elemen Fungsi-
fungsi.
- Model Entity-Relationship.
- Kamus Data Analisis.
- Rencana Pengujian Terintegrasi.
- Laporan Kesalahan Analisis.
TAHAP HASIL PRODUKSI
DISAIN - Chart Struktur.
- Spesifikasi Modul.
- Tabel Normalisasi dan Jejak
Navigasi.
- Kamus Data Rancangan.
- Matriks Cross Reference.
- Rencana Pengujian Terintegrasi
- Laporan Kesalahan Disain
MODUL-MODUL

 Perangkat Lunak yang akan dibangun umumnya


besar, kompleks, jangka waktu yang panjang
dan melibatkan banyak pihak.
 Sistem terdiri dari elemen-elemen, dan elemen-
elemen utama dalam perangkat lunak disebut
modul.
 Berapa jumlah, besar dan kompleksitas suatu
modul yang harus dibuat dari suatu perangkat
lunak.
 Modul-modul tersebut akan saling berinteraksi,
dan bagaimana meminimalkan interaksi antara
modul (low coupling).
MODULARITY
 Modul adalah bagian dari suatu program yang dapat
dipisah secara logika yaitu dapat berupa suatu paket,
proses, prosedur, subrutin, fungsi atau makro.
 Modularitymemungkinkan program dapat dikelola
secara lebih mudah dan lebih cerdas.
 Misal
C(x) adalah suatu fungsi yang menentukan
kompleksitas suatu masalah x dan E(x) adalah fungsi
yang menentukan usaha atau waktu yang dibutuhkan
untuk menyelesaikan masalah x.
 Untuk suatu masalah p1 dan p2 , jika C(p1) > C(p2)
Maka biasanya E(p1) > E(p2)
 Artinya
diperlukan lebih banyak waktu untuk
menyelesaikan masalah yang lebih kompleks
Sifat menarik lainnya dari pemecahan masalah
oleh manusia adalah:
C(p1 + p2) > C(p1) + C(p2)

Artinya kompleksitas suatu masalah yang


merupakan gabungan dari p1 dan p2 adalah lebih
besar dari pada kompleksitas memecahkan
masalah secara terpisah atau sendiri-sendiri.
Sifat menarik lainnya dari pemecahan masalah
oleh manusia adalah:
E(p1 + p2) > E(p1) +
E(p2)
KESIMPULAN adalah lebih mudah menyelesaikan
suatu masalah kompleks jika masalah tersebut
dapat dipecah menjadi bagian-bagian yang
terkelola
Keuntungan melakukan pemodulan:

1. Modul dapat lebih mudah untuk dipahami dan


dijelaskan, sehingga pendokumentasiannya lebih
cepat.
2. Lebih mudah untuk diprogram karena setiap
kelompok bebas dapat bekerja pada modul-
modul secara terpisah dengan sedikit melakukan
komunikasi.
3. Lebih mudah untuk di test, karena masing-
masing dapat diuji secara terpisah kemudian
diintegrasikan dan diuji lagi secara bersama.
4. Jika suatu modul tidak tergantung pada yang
lain, maka akan lebih mudah pemeliharaannya.
Suatu Rancangan Sistem harus:
 menunjukan suatu organisasi terhirarki yang dapat
mengendalikan komponen-komponen perangkat lunak.
 modular artinya perangkat lunak harus dapat dibagi
secara logika kedalam komponen-komponen yang
membentuk fungsi-fungsi atau sub-sub fungsi tertentu.
 memberikan penggambaran yang jelas dan terpisah
dari data dan prosedur.
 Menuju kepada modul (subroutine atau procedure).
mempunyai sifat-sifat fungsional yang independent.
 Membentuk antarmuka-antarmuka yang mengurangi
kerumitan hubungan antara modul-modul dan dengan
lingkungan luar.
Perinsip Dasar Perancangan Sistem
 Kriteria
apa yang dapat digunakan untuk
membagi perangkat lunak menjadi komponen-
komponen individual atau modul-modul ?
 Bagaimana fungsi dan rincian struktur data
dipisahkan dari gambaran konsepsual
perangkat lunak ?
 Apakah ada keseragaman kriteria yang
mendefinisikan kualitas teknik dari rancangan
perangkat lunak ?
M

 Usaha (biaya) untuk mengembangkan modul


perangkat lunak secara individual akan
berkurang dengan bertambahnya jumlah total
dari modul tersebut.
M

 Jumlah modul yang membesar berarti ukuran


modul secara individu mengecil.
 Sebaliknya, kenaikan jumlah modul
menyebabkan usaha (biaya) yang berhubungan
dengan antarmuka (interfacing) antara modul-
modul meningkat.
 Dengan optimasi akan diperoleh suatu jumlah
modul M yang memberikan biaya pengembangan
What is the "right" number of modules for a
specific software design ?
module development cost

module
integration
cost

optimal number number of modules


of modules
Perancangan dihadirkan pada tingkat
abstraksi
Requirement Systems Software
s Design Implementation
Analysis
Customer

Forms Spec
Order Product
Customer
ERD
O rder Product

Scheduled Schedu led


Delivery Delivery

Salesperson

Salesperson

Architecture
Update
Marketing

Authorize
Credit
Order
Entry
Tables
Bill

VB Code
Customer

VC++ Code
Schedule
Delivery

Inventory

Abstractions Abstractions Operations


about world about on system
Knowledge system
about
world
Abstraksi memungkinkan konsentrasi masalah
pada tingkat umum tanpa harus memikirkan
rincian tingkat rendah yang tidak relevan.
ABSTRAKSI
 Abstraksi adalah suatu perangkat yang sangat
penting dalam pengembangan perangkat lunak .
 Abstraksi memungkinkan perancang untuk
memusatkan suatu masalah pada tingkat
abstrak lebih umum tanpa harus tahu rincian-
rincian dari komponen yang diimplementasikan
pada tingkat lebih rendah yang tidak relevan .
 Artinya penggunaan abstraksi memungkinkan
perancang bekerja dengan konsep-konsep dan
istilah-istilah yang telah dikenal tanpa harus
mengubah suatu lingkungan masalah menjadi
suatu struktur yang tidak dikenal.
Perancangan harus menggambarkan masalah
abstraksi pada tingkat terendah:
 Abstraksi fungsional
 Abstraksi data.
 Abstraksi kontrol
Dua kategori abstraksi dalam perancangan

1. Abstraksi Fungsional
Dalam abstraksi fungsional suatu modul dicirikan
dari fungsi yang dibentuknya. Abstraksi ini
berhubungan dengan metodologi perancangan
struktural
Misalnya suatu modul untuk menghitung nilai
sinus dapat diberi abstrak yang digambarkan
sebagai fungsi sinus.
2. Abstraksi Data
Dalam abstraksi data, data diperlakukan seperti
suatu obyek dengan beberapa operasi yang
ditentukan sebelumnya untuk data-data
tersebut. Bentuk abstraksi ini merupakan dasar
metodologi perancangan berorientasi obyek.
 Suatu modul yang mengendalikan modul modul yang lain disebut
superodinate terhadap modul tersebut.
 Sedangkan suatu modul yang dikendalikan modul lain disebut
subordinate terhadap modul tersebut
Menurut struktur perangkat lunak, suatu modul
dapat dikategorikan sebagai:
 Modul berurutan (sequential module) yaitu diacu dan
dieksekusi tanpa adanya interupsi oleh perangkat
lunak aplikasi. Misalnya subprogram
konvensional, subroutine, functions atau procedures.
 Module bertambah (incremental module) yaitu dapat
diinterupsi sebelum menyelesaikan seluruh tugasnya
oleh perangkat lunak aplikasi dan sesudah itu
melanjutkan kembali dari titik yang terinterupsi
Sering disebut dengan coroutines.
 Modul paralel yang melaksanakan secara simultan
dengan modul lain dalam lingkungan multiprosesor
yang bekerja secara paralel.
Modul-modul paralel disebut conroutines
KUALITAS PERANCANGAN
(MODULE INDEPENDENCE )

Modul Mandiri dapat tercapai jika mengembangkan modul


dengan suatu fungsi tunggal dan tidak terlampau banyak
berinteraksi dengan modul-modul yang lain.

Dua kategori untuk mengukur kualitas kemandirian


yaitu:
 Keterkaitan harus rendah (Low Coupling).
adalah ukuran saling ketergantungan relatif
antara modul-modul atau interaksi diantara
modul kecil.
 Keterpaduan harus tinggi (High Cohesion).
adalah ukuran kekuatan fungsional relatif dari
suatu modul dimana interaksi internalnya sangat
Coupling & Cohesion

coupling
antara
module

cohesion
didalam
module
Bagaimana terjadinya interaksi antara modul-
modul ?
Jawab:

1. Mengaktifkan kode modul yang lain.


2. Melompat atau bercabang ke suatu tempat
lain.
3. Mengakses data bersama modul yang lain.
4. Data yang bisa dipergunakan bersama
5. Prosedur panggilan dengan suatu sakelar
sebagai parameter.
6. Prosedur panggilan dengan data murni sebagai
parameter.
7. Melewatkan arus data serial dari satu modul ke
modul lain.
COUPLING
 Coupling (keterkaitan) adalah ukuran
bagaimana modul-modul saling berhubungan
dan saling bergantungan.
 Modul yang tidak tergantung dari modul yang
lain mempunyai derajat coupling rendah.
Object-Oriented Design
Jenis Coupling dan Derajadnya

Jenis Coupling Jenjan Derajad Kualitas


g
Data coupling 1 Rendah Terbaik
Stamp coupling 2
Control coupling 3
External coupling 4
Common 5
coupling
6 Tinggi Terjelek
Content coupling
1. No direct coupling
Modul 1 dan modul 2 adalah subordinate
terhadap modul-modul yang berbeda.
Sehingga masing-masing tidak berhubungan
dan tidak ada penggandengan langsung yang
terjadi antara keduanya.
2. Data coupling
Dua buah modul dari sistem mempunyai data
coupling jika komunikasi dari modul-modul ini
dilakukan lewat suatu data. Data dapat berupa
sebuah item data tunggal atau elemen dari
suatu larik (array).
3. Stamp coupling
Dua buah modul dikatakan stamp coupling jika
kedua modul ini berkomunikasi lewat suatu
kelompok item data. Kelompok item data dapat
berupa suatu record yang terdiri dari beberapa
field atau larik yang terdiri dari beberapa elemen.
Module 1

Module 2

4. Control coupling
Control coupling ditandai dengan adanya jalur
kendali antara modul. Modul satu mengendalikan
aliran data di modul yang lain, kendali dilakukan
melalui flag yang mengontrol logika intern modul
yang lain.
5. External coupling
Tingkat coupling yang terjadi bila modul-
modul terikat pada lingkungan luar (external)
dari perangkat lunak.
6. Common coupling
Modul-modul dikatakan common coupling jika
modoul-modul tersebut menggunakan data
yang disimpan di area memori yang sama.
7. Content coupling
Content coupling terjadi jika suatu modul menggu-nakan
data atau mengendalikan informasi dari modul yang lain
tanpa berhubungan lewat suatu parameter.
Content coupling dapat juga terjadi jika percabangan
dilakukan ke tengah-tengah suatu modul yang lain
Isi Jenis Jenis
informasi komunika hubungan
si
Low Sederhana, Data Koneksi
coupling jelas normal
(terbaik)
Data coupling dengan
parameter
Stamp coupling
Control coupling
Common coupling
Content coupling

Rumit, Pathalogical,
High Tidak jelas Kontrol tidak dengan
coupling parameter
(terjelek)
Exercise: Classify the Couplings

p Numbe
In Out
r
1 Aircraft Status
1
type flag
q 2 List of
2 -
parts
3 4 Functio
3 -
r s n code
List of
4 -
5 6 parts
Part
t u Part
manu-
5 numbe
facture
p, t, u access the same r
r
database in update mode Part
Part
6 numbe
KEPADUAN (COHESION)
Cohesion adalah ukuran keterpaduan dimana hubungan
antara elemen-elemen dalam suatu modul jelas dan
terstruktur, sehingga modul dapat dipandang sebagai suatu
unit dengan fungsi tunggal (functionally cohesive).

Ada beberapa tingkat dari keterpaduan :


(1) Coincidental, (2) Logical, (3) Temporal, (4)
Procedural, (5) Communicational, (6) Sequential, (7)
Functional.
1. Coincidental cohesion jika modul terdiri dari beberapa
fungsi tetapi tidak terdapat hubungan yang berarti
antara elemen-elemen dari modul tersebut. Suatu
kejadian dimana secara kebetulan saja bahwa elemen-
elemen berada dalam tempat yang sama. Coincidental
adalah tingkat terendah dari kepaduan.
2. Suatu modul memiliki logical cohesion jika
terdiri dari beberapa fungsi yang mempunyai
tugas serupa atau melakukan fungsi-fungsi yang
masuk dalam kelas logika yang sama.
3. Temporal cohesion jika modul terdiri dari beberapa fungsi
dan suatu fungsi atau elemen-elemen dalam modul
membentuk fungsi-fungsi yang berhubungan dengan
waktu atau dieksekusi pada satu titik waktu tertentu.
4. Procedural cohesion yaitu modul terdiri dari beberapa
fungsi, walaupun elemen-elemen dalam modul kurang
berhubungan tetapi pemrosesannya harus
dilaksanakan dalam suatu urutan tertentu.
5. Communicational cohesion yaitu jika modul terdiri
dari beberapa fungsi dan elemen-elemen dalam
modul beroperasi dengan menggunakan arus
data yang sama.
6. Sequential cohesion jika keluaran dari suatu elemen
merupakan masukan untuk elemen yang lain secara
berurutan. Modul terdiri dari beberapa fungsi dimana elemen
dalam modul bertindak sebagai suatu himpunan urutan aksi-
aksi atau fungsi-fungsi sangat berikatan.
Compute Sort
square root the array

7. Functional cohesion yaitu bila seluruh elemen dari


modul terkait hanya melakukan suatu fungsi tunggal
yang terdefinisi dengan baik, tanpa tergantung pada
implementasi modul-modul yang lain.
Modul yang berisi beberapa fungsi bukan functional
cohesion.
UMUMNYA YANG BAIK ADALAH

 Low coupling
 High cohesion.

Bagaimana meminimalkan interaksi antara


modul (low coupling) dengan meningkatkan
interkasi internal di dalam modul itu sendiri
sehingga dapat melakukan sutu fungsi tunggal
yang terpadu (high cohesion).
Soal

Misal suatu modul untuk mendukung file ditulis


dalam bahasa Pascal seperti dibawah ini:
procedure file (file_ptr, file_name, op_name);
begin
case op_name of
“open”: membentuk aktivitas membuka file.
“close”: membentuk aktivitas menutup file.
“print”: mencetak file.
end case
end
Cohesion jenis apa yang terjadi pada modul ini ?
Bagaimana kita mengubah modul untuk menambah
cohesion.
 Procedural cohesion
 Agar menjadi functional cohesion modul
harus dibagi menjadi tiga modul:
1) procedure open_file (file_ptr, file_name);
begin
“open”: membentuk aktivitas membuka file.
end
2) procedure close_file (file_ptr, file_name);
begin
“close”: membentuk aktivitas menutup file.
end
3) procedure print_file (file_ptr, file_name);
begin
“print”: mencetak file
end
Buat struktur dan flowchart dari program dibawah
ini
program abc (input, output)
var x , y : integer;
procedure hitung1;
x := x + y;
y := y + 5;
end;
procedure hitung2;
x := x + 5;
y := y + x;
hitung1;
end;
begin
x := 0; y := 0;
hitung1;
hitung2;
end;
Jawab Flowchart Input

Struktur Informasi
Inisialisasi
x = 0, y = 0
abc

x=x+y
y=y+5
x, y
hitung1 hitung2
x=x+5
y=y+x
x=x+y
y=y+5

Output
b. Jelaskan jenis coupling apa yang terjadi
dan modifikasi program diatas untuk
memperbaiki struktur programnya
sehingga coupling menjadi lebih rendah.
c. Jenis Content coupling
d. Modifikasi menjadi data coupling dengan
menghilangkan pemanggilan modul
hitung 1 pada modul hitung 2
Otomatisasi Sistem Manual Terdefinisi Baik
DETAILED DESIGN TOOLS
 Graphical tools. Rincian prosedur digambarkan
dalam bentuk bangunan logika dalam bentuk
gambar-gambar khusus.
- Flowchart.
- Diagram Kotak (Box Diagram).
 Tabular tools. Rincian prosedur
direpresentasikan dalam bentuk tabel yang
menggambarkan aksi-aksi, kondisi-kondisi dan
alternatif-alternatif yang menghu-bungan
informasi masukan, pengolahan, dan keluaran .
- Tabel Keputusan (Decision Tables).
 Language tools. Rincian prosedur digambarkan
dalam suatu pseudocode yang sangat
menyerupai suatu bahasa pemrograman.
- Program Design Language (PDL)
Pertanyaan

Apa perbedaan antara arus informasi


(information flow) dengan struktur informasi
(information structure) ?.
Apakah ada sistem yang tidak memiliki
information flow ? Apakah ada sistem yang
tidak memiliki information structure?.
ANALISIS STRUKTUR
(Information Description)
Struktur Analisis adalah suatu arus informasi
dan teknik pemodelan isi (content). Informasi
diubah kedalam bentuk alirannya pada sistem
berbasis komputer.
1. Data Flow Diagrams.
2. Data Structure Representation.
3. Data Dictionary.
4. System Interface Description.
5. Internal Interfaces
Data Flow Diagram
(Diagram Aliran Data)
Data Flow Diagram adalah suatu teknik grafik
yang menggambarkan alur informasi dan
transformasi menggunakan dekomposisi fungsi
terhirarki dari suatu proses dalam suatu sistem.

 Apa sebagai masukan.


 Apa sebagai keluaran.
 Bagaimana terjadi proses
perubahan didalamnya
Simbol-simbol Diagram Aliran Data
 File eksternal

 Satuan

 Aliran data
Label

 Proses

 Penyimpan data
Aturan-aturan Diagram Aliran Data
 Aliran informasi dari sistem manual,
otomatis, hibrid, dapat digambarkan dengan
jelas.
 Setiap gagasan membutuhkan
penyempurnaan untuk memberikan
pengertian yang lengkap.
 Aliran data diberi tekanan lebih dari pada
aliran kendali.
 Satuan eksternal dan manusia tidak
dimodelkan dalam Diagram Aliran Data.
 Setiap panah diberi label.
 Panah yang membawa data, tidak punya
Contoh DFD
Konteks DFD
Hierarchy of DFDs
 Context Diagram (Level 0 DFD)
– Terminology not consistent
 High-level
DFD (Level 1) presents the
overview of the system
– shows major processes / functions / sub-
systems in the system, and has the
same number of external entities as in
the Context Diagram
 Lower-levelDFD expands each higher
level process into more detailed
processes
Level 0 DFD (Context Diagram)
 Level 0 DFD
– Shows system boundaries
– External entities that interact with
the system
– Major information flows between
entities and system
Defines the scope and boundary of
the system
Diagram Level 0
DIAGRAM KOTAK
Diagram kotak disusun untuk mengembangkan suatu
perangkat rancangan grafik yang tidak
membolehkan adanya pelanggaran konsutriksi
struktur
Diagran N-S charts (Nassi-Shneiderman
charts )
1. Domain fungsional didefinisikan dengan baik
dan terlihat jelas sebagai suatu representasi
piktorial.
2. Perpindahan kendali yang berubah-ubah
tidak dimungkinkan.
3. Batasan dari data lokal dan/atau global dapat
dengan mudah ditentukan.
4. Pengulangan dapat dengan mudah
DIAGRAM KOTAK

Berurut Bersyarat Seleksi

Berulang
DIAGRAM KOTAK
1. Elemen utama dari diagram adalah suatu kotak.
2. Untuk menggambarkan suatu urutan, dua atau lebih
kotak dihubungkan dari atas ke bawah.
3. Untuk menggambarkan if-then-else, suatu kotak
kondisional diikuti dengan suatu kotak bagian then
dan suatu kotak bagian else.
4. Pengulangan digambarkan dengan suatu pola
keliling yang melingkari proses (bagian do-while
atau bagian repeat-until) yang diulang.
5. Seleksi digambarkan menggunakan bentuk kotak
pilihan.
TABEL KEPUTUSAN
Tabel keputusan (decision tables) adalah suatu
perangkat yang menerjemahkan aksi-aksi dan
kondisi-kondisi dalam bentuk tabular
Garis tebal membagi tabel menjadi empat
bagian :
 Seperempat bagian kiri-atas berisi daftar dari
segala kondisi-kondisi.
 Seperempat bagian kiri-bawah berisi daftar
dari seluruh aksi-aksi yang mungkin
berdasarkan kombinasi dari kondisi diatas.
 Bagian kanan berbentuk matriks
menunjukkan kombinasi kondisi dan aksi-aksi
berhubungan yang akan terjadi untuk suatu
kombinasi tertentu.
 Setiap kolom matriks dapat dinterpretasikan
sebagai suatu aturan pengolahan (processing
rule).
Untuk mengembangkan tabel keputusan
dilakukan langkah-langkah berikut: :
 Daftar seluruh tindakan/aksi yang dapat
dihubungkan dengan suatu prosedur
tertentu.
 Daftar seluruh kondisi (atau keputusan yang
dibuat) selama pelaksanaan prosedur .
 Satukan sejumlah kondisi tertentu dengan
aksi-aksi tertentu yang menghapuskan
kombinasi-kombinasi yang tidak mungkin;
kemungkinan lain, kembangkan setiap
permutasi kondisi-kondisi yang mungkin.
 Tentukan aturan-aturan ( rules) dengan
menunjukkan aksi apa yang dapat terjadi
TABEL KEPUTUSAN
IPO CHARTS
IPO CHARTS
 Input-processing-output (IPO) charts adalah suatu
perancangan perangkat lunak dan teknik
dokumentasi yang dikembangkan oleh IBM.

 Ciri yang paling penting dari IPO chart adalah


kemampuannya untuk menggambarkan
hubungan antara data input/output dan
prosedur perangkat lunak
IPO CHARTS
IPO CHARTS
 Prosedur ditentukan dalam suatu kotak pengolah
pusat dan hubungannya dengan input, output dan
informasi database.
 Hal ini memungkinkan perancang secara eksplisit
menghubungkan arus informasi dengan arus
prosedural.
 Pengolahan (processing) secara khusus ditentukan
dengan suatu daftar langkah-langkah, tetapi dapat
diwakilkan juga dengan suatu flowchart, box diagram
atau bahasa perancangan.
PROGRAM DESIGN LANGUAGE
 Program design language (PDL) disebut juga
pseudocode adalah suatu bahasa
perancangan yang umum dipakai dengan
menggunakan perbendaha-raan kata dan
sintaks bahasa Inggris (bahasa Inggris
terstruktur).
 PDL terlihat sama dengan PL/1, PASCAL atau
ALGOL. Perbedaan antara PDL dengan bahasa
pemrograman tingkat tinggi diatas adalah
penggunaan teks narasi yang tertanaman
secara langsung didalam pernyataan-
pernyataan PDL.
Suatu bahasa perancangan harus memiliki sifat
sebagai berikut :
 Fixed syntax dari KEYWORDS yang diberikan
untuk seluruh struktur konstruksi, deklarasi
data dan karakteristik modularitas.
 Free syntax dari suatu bahasa alamiah yang
memberi-kan ciri-ciri pengolahan.
 Fasilitas deklarasi data, termasuk struktur
data sederhana (skalar dan array) dan
struktur data kompleks (linked atau
hirarchical).
 Definisi Subprogram dan teknik pemanggilan
yang mendukung berbagai model deskripsi
interface.
PROGRAM DESIGN LANGUAGE
Bahasa perancangan tidak tergantung pada bahasa
pemrograman, dimana bentuk dasar PDL meliputi:

• Deklarasi Data
• Teknik penstrukturan blok.
• Konstruksi Kondisi
• Konstruksi Pengulangan (Repetition)
• Definisi Subprogram
• Penggambaran Interface
• Konstruksi I/O
PROGRAM DESIGN LANGUAGE
Contoh: PDL untuk kendali pintu Lift (IEEE CSP).
Apa itu CASE ?
(Computer-Aided Software Engineering)

Sistem pererangkat lunak yang dibuat untuk


memberikan dukungan otomatis pada proses
kegiatan perangkat lunak seperti: analisis
kebutuhan, pemodelan sistem, debugging dan
pengujian.
 Upper-CASE
– Perangkat untuk mendukung proses kegiatan awal
dari analisis kebutuhan dan perancangan.
 Lower-CASE
– Perangkat untuk mendukung kegiatan akhir seperti
pemrograman, debugging and pengujian.
Siklus Hidup Pengembangan Sistem
Tradisional dengan Sistem CASE
 Perangkat CASE membantu mengkaji dan
merancang perangkat lunak, secara otomatis
membangkitkan kode-kode komputer sesuai
dengan model yang telah dibuat.
 CASE mewujudkan empat tahap pengembangan
perangkat lunak:
1. Analisis (gambaran apa yang akan dibangun, fase
pemodelan).
2. Disain (gambaran bagaimana membangunnya).
3. Implementasi (program untuk dijalankan, fase
pengkodean).
4. Test dan integrasi (meyakinkan semua berjalan
baik).