Académique Documents
Professionnel Documents
Culture Documents
and Design
Romi Satria Wahono
romi@romisatriawahono.net
http://romisatriawahono.net
081586220090
Learning Design
Educational
Objectives
(Benjamin Bloom)
Criterion
Referenced
Instruction
(Robert Mager)
Cognitive
Competencies
Minimalism
(John Carroll)
Start Immediately
Minimize the
Reading
Affective
Performance
Error Recognition
Psychomotor
Evaluation
Self-Contained
Learning Design
Pretest dan Posttest
untuk Mengukur
Kompetensi Kognifif
Penugasan berbasis
Self-Contained Project
dan Literatur Review
Penyajian Materi
dengan Model
Minimalism berbasis
Konsep Amati-TiruModifikasi
Textbook
References
1. Alan Dennis et al, Systems Analysis and Design
with UML 4th Edition, John Wiley and Sons, 2013
2. Kenneth E. Kendall and Julie E Kendall, Systems
Analysis and Design 8th Edition, Prentice Hall, 20
10
3. Hassan Gomaa, Software Modeling and Design:
UML, Use Cases, Patterns, and Software Architec
tures, Cambridge University Press, 2011
4. Gary B. Shelly and Harry J. Rosenblatt, Systems A
nalysis and Design 9th Edition, Course Technolog
y, 2011
5. Howard Podeswa, UML for the IT Business Analy
st 2nd Edition, Course Technology, 2009
Pre-Test
1. Sebutkan tahapan pengembangan sistem atau syste
m development life cycle (SDLC)!
2. Sebutkan beberapa metodologi pengembangan siste
m yang anda ketahui!
3. Gambarkan requirement di bawah dengan use case d
SISTEM ELIBRARY
iagram!
Course Contents
1.Introduction
2.Project Planning
3.System Analysis
4.System Design
5.System Implementation
1. INTRODUCTIO
N
Learning Objectives
1. Understand the system analysis and design a
nd the term of analyst
2. Understand the system development life cycl
e and its four phases
3. Understand the evolution of system develop
ment methodologies
4. Be familier with the Unified Modeling Langua
ge (UML) version 2.0
5. Understand the characteristics of object-orie
nted paradigm
Key Ideas
More than half of all systems developme
nt projects Fail
(42% - Standish Group, 53% - General Accounting Off
ice)
Year
Outcome
Hudson Bay
(Canada)
2005
UK Inland Revenue
2004/
5
2004
2004
Hewlett-Packard
Co.
2004
AT&T Wireless
2004
Is it Possible?
Business
Analyst
System
Analyst
Programmer
Tester
Business Analyst
Focuses on business issues surrou
nding the system
The business value of the system
Improvements in business processes
New business processes needed with new
system
System Analyst
The systems analyst is a key person anal
yzing the business, identifying opportuni
ties for improvement, and designing info
rmation systems to implement these ide
as
Focuses on Information System (IS) Issue
s
How IS can improve business processes
Designs new information system
Ensures IS quality standards are maintained
Infrastructure Analyst
Focuses on interfaces between new
system & existing infrastructure
Makes sure new system follows organizationa
l standards
Identifies required infrastructure changes
Project Manager
Responsible for schedule and bud
get
Ensures promised benefits are deli
vered
Manages team members
Responsible for project plan and re
porting progress
Requires project management exp
erience
Systems Development
Life Cycle (SDLC)
Implementati
on
Analysis
Design
Project Phases
1. Planning : Why build the system?
2. Analysis :
m be?
Requirement gathering, business process modeli
ng
3. Design :
4. Implementation :
elivery
Planning
1. Identifying business value (System Req
uest)
Lower costs
Increase profits
2. Analyze feasibility
Technical Feasibility
Economic Feasibility
Organizational Feasibility
Analysis
1. Requirement gathering by answering t
he questions:
Design
1. Program Design (UML Diagrams)
(System Specification)
Implementation
Construction
New system is built and tested
Often testing is the longest part
Testing
Unit Testing
Integration Testing
System Testing
User Acceptance Test
Installation
Old system is turned off
New system is turned on
Product
Planning
System Proposal
Analysis
Design
System
Specification
Implementa
tion
Implementatio
n
(New System)
Design
(System
Specification)
Analysis
(System
Specification)
Systems Development
Methodologies
What Is a Methodology?
A formalized approach to implementing
the SDLC (series of steps and deliverabl
es)
Writing code without a well-thought-ou
t system request may work for small pro
grams, but rarely works for large ones
Major Methodologies
1. Structured Design
Waterfall method
Parallel development
2. RAD Development
Phased Development
Prototyping
Throw-away Prototyping
3. Agile Development
Extreme Programming (XP)
Scrum
Waterfall Method
Cons
Design must be
specified on paper
before programming
begins
Long time between
system proposal and
delivery of new
system
Rework is very hard
Parallel Development
Addresses problem of time gap betw
een proposal and delivery
General process:
1. Breaks project into parallel subproject
2. Integrates them at the end
Parallel Development
A series of versions
2. Prototyping
System prototyping
3. Throw-away prototyping
Design prototyping
Cons
Initial system is
intentionally incomplete
System requirements
expand as users see
versions
RAD: Prototyping
Analysis, Design, Implementation ar
e performed concurrently
Start with a "quick-and-dirty" protot
ype
Provides minimal functionality
RAD: Prototyping
RAD: Prototyping
Pros
Cons
Initial design
decisions have long
term staying power
Problems may
come to light late in
design, requiring
re-design
Agile Development
Just a few rules that are easy to learn an
d follow
Streamline the SDLC
Eliminate much of the modeling and documentation
Emphasize simple, iterative application developmen
t
Examples include:
Extreme Programming (XP)
Scrum
Dynamic Systems Development Model (DSDM)
3. User Feedback
4. Repeat
Sejarah UML
In the 90s many people Booch, Jacobson, Rumbaugh
creating OO diagramming languages
Three different ones created by Grady Boo
ch, Ivar Jacobson, James Rumbaugh
Joined forces with
Rational (company) to
create Unified Modeling
Langauge (UML)
Sejarah UML
2011
UML 2.4
Why Modeling?
Modeling captures essential parts of the system
(James Rumbaugh)
Business Process
Computer System
Notation:
Standard
Process:
CustomerOriented
Methodology
Tools:
Support
Standard and
Process
UML Tools
Rational Rose
Visual Paradigm
Enterprise Architect
Microsoft Visio
Star UML
Netbeans UML Plugin
UML Diagrams
Use-Case
Diagram
Statechart
Class Diagram Diagram
add file
DocumentList
Use Case 1
FileMgr
Actor A
Actor B
Document
add( )
delete( )
fetchDoc( )
sortByName( )
name : int
docid : int
numField : int
get( )
open( )
close( )
read( )
sortFileList( )
create( )
fillDocument( )
Use Case 2
FileList
fList
add( )
delete( )
Writing
Openning
close file
Use Case 3
close file
Closing
Reading
rep
Repository
(from Persistence)
File
read( )
Deployment
Diagram
GrpFile
name : char * = 0
readDoc( )
readFile( )
Collaboratio
n Diagram
read( )
open( )
create( )
fillFile( )
9: sortByName ( )
Repository
mainWnd : MainWnd
DocumentList
Windows95
Window95
FileManager
Windows95
2: fetchDoc( )
Document
gFile : GrpFile
4: create ( )
.EXE
8: fillFile ( )
Windows
NT
user : Clerk
Solaris
fileMgr : FileMgr
.EXE
GraphicFile
3: create ( )
Alpha
UNIX
.EXE
6: fillDocument ( )
File
FileList
Windows
NT
IBM
Mainframe
7: readFile ( )
5: readDoc ( )
document : Document
repository : Repository
mainWnd
user
fileMgr :
FileMgr
document :
Document
gFile
2: fetchDoc( )
repository
Component
Diagram
3: create ( )
4: create ( )
5: readDoc ( )
6: fi llDocument ( )
7: readFile ( )
8: fillFile ( )
9: sortByName ( )
Sequence
Diagram
Forward
and
Reverse
Engineerin
g
Target
Syste
m
UML 2.0
UML version 2.0 has 14 diagrams in
2 major groups:
1. Structure Diagrams
2. Behavior Diagrams
Class Diagram
Object Diagram
Package Diagram
Deployment Diagram
Component Diagram
Composite Structure Diagram
Structure Diagrams
1. Class Diagrams
Common vocabulary used by analyst and users
Represent things (employee, paycheck,)
Shows the relationships between classes
2. Object Diagrams
Similar to class diagrams
Instantiation of a class diagram
Relationships between objects
3. Package Diagrams
Group UML elements together to form higher leve
l constructs
Structure Diagrams
4. Deployment Diagrams
5. Component Diagrams
6. Composite Structure
Illustrates internal structure of a complex class
Activity Diagram
Sequence Diagram
Communication Diagram
Interaction Diagram
5. Timing Diagram
6. Behavior State Machine
7. Protocol State Machine
Behavior Diagrams
1. Activity Diagrams
2. Interaction Diagrams
3. Sequence Diagrams
4. Communication Diagrams
Behavior Diagrams
5.
6.
7.
8.
Interaction Diagrams
Overview of flow of control of a process
Timing Diagrams
Show how an object changes over time
State Machines
Examines behavior of one class
Models the different states and state transitions an
object can experience
Use-Case Diagrams
Shows interaction between the system and environ
ment
Captures business requirements
UML Problems
UML is modeling notation, it is not a devel
opment process or a methodology
UML driven development process?
2.
3.
Sequence Diagram (Buat untuk setiap use case dengan menggunakan pola Boundary-Co
ntrol-Entity)
2. System Design
1.
Program Design
1.
Class Diagram
ng dibangun)
2.
3.
Package Diagram
(Gabungan class yang sesuai, boleh menggunakan pola B-C-E)
Deployment Diagram (arsitektur software dari sistem yang dibangun)
ATM System
ATM System
Layar
Kotak Uang
Kotak Kartu
Kotak Kuitansi
Masukkan PIN:
Kotak Uang
Kotak Kartu
Kotak Kuitansi
Menu Utama
1. Melihat Saldo
2. Mentransfer Uang
3. Mengambil Uang
4. Logout
Kotak Uang
Kotak Kartu
Kotak Kuitansi
Kotak Kartu
Kotak Kuitansi
1. No Account Penerima:
Kotak Uang
Kotak Kartu
Kotak Kuitansi
Kotak Kartu
Kotak Kuitansi
Kotak Kartu
Kotak Kuitansi
Kotak Kartu
Kotak Kuitansi
Kotak Kartu
Kotak Kuitansi
Type of Class
1. Boundary Class
2. Control Class
3. Entity Class
Class Diagram
Data Model
Object-Oriented Par
adigm
Berorientasi Objek?
Attribute:
Topi, Baju, Jaket,
Tas Punggung,
Tangan, Kaki,
Mata
Behavior:
Cara Jalan ke
Depan
Cara Jalan Mundur
Cara Belok ke Kiri
Cara Memanjat
Berorientasi Objek?
Attribute (State):
Behavior:
Cara Menghidupkan Mesin
Cara Manjalankan Mobil
Cara Memundurkan Mobil
Attribute Variable(Member
Behavior Method(Fungsi)
gir
kecepatan
variabl
e
tampilkan kecepatan
ubah gir
metho
d
gir = 3
kecepatan = 10km/jam
instance
variable
tampilkan kecepatan ()
kecepatan = 10 km/jam
ubah gir (2)
gir = 5
instanc
e
method
Attribute
Variable yang mengitari class, dengan nilai dat
anya bisa ditentukan di object
Variable digunakan untuk menyimpan nilai yan
g nantinya akan digunakan pada program
Variable memiliki jenis (tipe), nama dan nilai
Name, age, dan weight adalah atribute (variab
el) dari class Person
Mobil.java
}
public class MobilBeraksi{
MobilBeraksi.java
public static void main(String[] args){
// Membuat object
Mobil mobilku = new Mobil();
/* memanggil atribut dan memberi nilai */
mobilku.warna = "Hitam";
mobilku.tahunProduksi = 2006;
System.out.println("Warna: " + mobilku.warna);
System.out.println("Tahun: " + mobilku.tahunProduksi);
}
}
Method
Method adalah urutan instruksi yang m
engakses data dari object
Method melakukan:
1. Manipulasi data
2. Perhitungan matematika
3. Memonitor kejadian dari suatu event
Method
Mobil2.java
void printMobil(){
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}
public class Mobil2Beraksi{
public static void main(String[] args){
Mobil2 mobilku = new Mobil2();
mobilku.warna = "Hitam";
mobilku.tahunProduksi = 2006;
mobilku.printMobil();
}
}
Mobil2Beraksi.java
Latihan
Buat class Handphone yang berisi empa
t method:
1. hidupkan()
2. lakukanPanggilan()
3. kirimSMS()
4. matikan()
.Isi masing-masing method dengan tampilan
status menggunakan System.out.println()
Parameter
Sepeda akan berguna apabila ada object lain yang
berinterasi dengan sepeda tersebut
Object software berinteraksi dan berkomunikasi de
ngan object lain dengan cara mengirimkan messag
e atau pesan
Pesan adalah suatu method, dan informasi dalam p
esan dikenal dengan nama parameter
1. You
object pengirim
2. YourBicycle
3. changeGears
dijalankan
4. lowerGear
method
object penerima
pesan berupa method yang
parameter yang dibutuhkan
(pesan) untuk dijalankan
Sepeda.java
public class Sepeda{
int gir;
// method (mutator) dengan parameter
void setGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
}
// method (accessor)
int getGir() {
return gir;
}
}
SepedaBeraksi.java
public class SepedaBeraksi{
public static void main(String[] args) {
// Membuat object
Sepeda sepedaku = new Sepeda();
// Memanggil method dan menunjuk nilai parameter
sepedaku.setGir(1); // menset nilai gir = 1
System.out.println(Gir saat ini: + sepedaku.getGir());
sepedaku.setGir(3); // menambahkan 3 pada posisi gir saat
ini (1)
System.out.printl
n(Gir saat ini: + sepedaku.getGir());
}
}
Variasi Tampilan
pertambahan(int a, int b){
System.out.println(a + + + b + = + (a+
b))
}
pertambahan(int a, int b){
System.out.println(Hasil = + (a+b))
}
pertambahan(int a, int b){
int hasil = a + b;
System.out.println(Hasil = + hasil)
}
Mobil.java
this.tahunProduksi = tahunProduksi;
}
public void info(){
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}
public class MobilKonstruktor{
MobilKonstruktor.java
public static void main(String[] args){
Mobil mobilku = new Mobil(Merah, 2003);
mobilku.info();
}
}
void isiData(String
aWarna,
int
aTahunProduksi){
void isiData(String
warna,
int
tahunProduksi){
warna = aWarna;
tahunProduksi =
aTahunProduksi;
this.warna = warna;
this.tahunProduksi =
tahunProduksi;
Latihan
1. Buat class Bank
Karakteristik Pemrogra
man Berorientasi Obje
k
Abstraction, Encapsulation,
Inheritance, Polymorphism
Abstraction
Cara kita melihat suatu sistem dalam bentu
k yang lebih sederhana, yaitu sebagai suat
u kumpulan subsistem (object) yang saling
berinteraksi.
Mobil adalah kumpulan sistem pengapian, siste
m kemudi, sistem pengereman
Encapsulation
Mekanisme menyembunyikan suatu proses dan
data dalam sistem untuk menghindari interferen
si, dan menyederhanakan penggunaan proses it
u sendiri
Tongkat transmisi (gigi) pada mobil
Tombol on/off/pengaturan suhu pada AC
Dalam
Class
yang
Sama
Dalam
Package
yang Sama
Dalam Dalam
SubCla Package
ss
Lain
private
tanpa
tanda
protected
public
Encapsulation
Enkapsulasi data juga dapat dilakukan deng
an cara:
1. mendeklarasikan instance variable sebagai priva
te
2. mendeklarasikan method yang sifatnya public u
ntuk mengakses variable tersebut
Sepeda.java
public class Sepeda{
int gir;
void setGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
}
int getGir() {
return gir;
}
}
SepedaBeraksi.java
public class SepedaBeraksi{
public static void main(String[] args) {
Sepeda sepedaku = new Sepeda();
sepedaku.setGir(1);
/* Variabel bisa diubah atau tidak sengaja diubah.
Hal ini berbahaya dan sering menimbulkan bug.
Berikan access modifier private pada instance variabl
e */
sepedaku.gir = 3;
System.out.println(Gir saat ini: + sepedaku.getGir());
}
}
Sepeda.java
public class Sepeda{
private int gir; // access modifier private pada instance va
riable
Inheritance (Pewarisan)
Suatu class dapat me
wariskan atribut dan
method kepada class
lain (subclass), serta
membentuk class hie
rarchy
Penting untuk Reusa
bility
Java Keyword:
extends
Sepeda.java
public class Sepeda{
private int gir;
void setGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
}
int getGir() {
return gir;
}
}
sg.setGir(3);
System.out.println(sg.getGir());
sg.setSadel(1);
System.out.println(sg.getSadel());
}
}
SepedaGunung.java
SepedaGunungBeraksi.java
Polymorphism
Kemampuan untuk memperlakukan o
bject yang memiliki perilaku (bentuk)
yang berbeda
Implementasi konsep polymorphism:
1. Overloading: Kemampuan untuk menggun
akan nama yang sama untuk beberapa met
hod yang berbeda parameter (tipe dan ata
u jumlah)
2. Overriding: Kemampuan subclass untuk m
enimpa method dari superclass, yaitu deng
an cara menggunakan nama dan paramete
Polymorphism Overloading
class Mobil {
String warna;
int tahunProduksi;
}
}
mobilku.info();
Mobil mobilmu = new Mobil();
mobilmu.info();
}
}
Polymorphism Overloading
class Lingkaran{
void gambarLingkaran(){
}
void gambarLingkaran(int diameter){
...
}
void gambarLingkaran(int diameter, int x, int y){
...
}
void gambarLingkaran(int diameter, int x, int y, int warna, S
tring namaLingkaran){
...
}
}
Polymorphism - Overriding
public class Sepeda{
protected int gir;
void setGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
}
int getGir() {
return gir;
}
}
Polymorphism - Overriding
public class SepedaGunung extends Se public class SepedaGunungBeraksi {
public static void main(String[] args) {
peda{
SepedaGunung sg=new SepedaGunung();
SepedaGunung.java
sg.setGir(2);
System.out.println(sg.getGir());
sg.setGir(3);
System.out.println(sg.getGir());
}
}
SepedaGunungBeraksi.java
3.
4.
5.
pertambahan(12,
Matematika.java
public class Matematika{
void pertambahan (int a, int b){
int hasil= a + b;
System.out.println(hasil: + hasil);
}
void pertambahan (double a, double b, double c){
int hasil= a + b + c;
System.out.println(hasil: + hasil);
}
...
}
Waterfall method
Parallel development
2. RAD development
Phased Development
Prototyping
Throw-away Prototyping
3. Agile development
Extreme Programming
Referensi
1. Alan Dennis et al, Systems Analysis and Design
with UML 4th Edition, John Wiley and Sons, 2013
2. Kenneth E. Kendall and Julie E Kendall, Systems
Analysis and Design 8th Edition, Prentice Hall, 20
10
3. Hassan Gomaa, Software Modeling and Design:
UML, Use Cases, Patterns, and Software Architec
tures, Cambridge University Press, 2011
4. Gary B. Shelly and Harry J. Rosenblatt, Systems A
nalysis and Design 9th Edition, Course Technolog
y, 2011
5. Howard Podeswa, UML for the IT Business Analy
st 2nd Edition, Thomson Course Technology, 200