romi-sad-01-introduction

Transcription

romi-sad-01-introduction
Systems Analysis
and Design
Romi Satria Wahono
romi@romisatriawahono.net
http://romisatriawahono.net/sad
WA/SMS: +6281586220090
1
Romi Satria Wahono
•
•
•
•
•
•
•
•
SD Sompok Semarang (1987)
SMPN 8 Semarang (1990)
SMA Taruna Nusantara Magelang (1993)
B.Eng, M.Eng and Ph.D in Software Engineering from
Saitama University Japan (1994-2004)
Universiti Teknikal Malaysia Melaka (2014)
Research Interests: Software Engineering,
Intelligent Systems
Founder dan Koordinator IlmuKomputer.Com
Peneliti LIPI (2004-2007)
Founder dan CEO PT Brainmatics Cipta Informatika
2
Learning Design
Pretest dan Posttest untuk
Mengukur Kompetensi Kognifif
Penugasan berbasis SelfContained Project dan
Literatur Review
Penyajian Materi dengan
Model Minimalism berbasis
Konsep Amati-Tiru-Modifikasi
Latihan Secara Iteratif untuk
Meningkatkan Kompetensi Kognitif
dan Psikomotorik
3
Textbook
4
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, 2010
3. Hassan Gomaa, Software Modeling and Design: UML,
Use Cases, Patterns, and Software Architectures,
Cambridge University Press, 2011
4. Gary B. Shelly and Harry J. Rosenblatt, Systems Analysis
and Design 9th Edition, Course Technology, 2011
5. Howard Podeswa, UML for the IT Business Analyst 2nd
Edition, Course Technology, 2009
6. Jeffrey A. Hoffer et al, Modern Systems Analysis and
Design 6th Edition, Prentice Hall, 2010
5
Pre-Test
1. Sebutkan tahapan pengembangan sistem atau system
development life cycle (SDLC)!
2. Sebutkan beberapa metodologi pengembangan sistem yang
anda ketahui!
3. Gambarkan requirement di bawah dengan use case
diagram!
SISTEM ELIBRARY
• Sistem elibrary memungkinkan pengguna untuk melakukan registrasi
dan login
• Setelah menjadi member, pengguna dapat memodifikasi profile, serta
mencari dan mendownload koleksi buku elibrary
• Admin sistem elibrary melakukan approval terhadap registrasi dan
menampilkan laporan aktifitas pengguna secara individual maupun total
4. Buat program yang menampilkan tulisan "Halo Jakarta" di
layar monitor, dengan bahasa pemrograman yang anda
kuasai!
6
Course Contents
1. Introduction
2. Project Planning
3. System Analysis
4. System Design
5. System Implementation
7
1. Introduction
8
Learning Objectives
1. Understand the system analysis and design and
the term of analyst
2. Understand the system development life cycle and
its four phases
3. Understand the evolution of system development
methodologies
4. Be familier with the Unified Modeling Language
(UML) version 2.0
5. Understand the characteristics of object-oriented
paradigm
9
Key Ideas
• More than half of all systems development
projects Fail
(42% - Standish Group, 53% - General Accounting Office)
• Canceled before completion
• System is never used once finished
• Doesn't provide the expected benefits
• Most of the ones that don't fail:
• Are delivered late
• Are over budget
• Don't provide the features promised
10
Recent Significant IT Failures
Company
Year
Outcome
Hudson Bay (Canada)
2005
Inventory system problems lead to $33.3
million loss
UK Inland Revenue
2004/5
$3.45 billion tax-credit overpayment caused
by software errors
Avis Europe PLC (UK)
2004
Enterprise resource planning (ERP) system
cancelled after $54.5 million spent
Ford Motor Co.
2004
Purchasing system abandoned after
deployment costing approximately $400 M
Hewlett-Packard Co.
2004
ERP system problems contribute to $160
million loss
AT&T Wireless
2004
Customer relations management (CRM)
system upgrade problems lead to $100M loss
11
12
Is it Possible?
13
Systems Analyst and Its Roles
14
Analyst Related Role
1.
2.
3.
4.
5.
Business analyst
System analyst
Infrastructure analyst
Change management analyst
Project manager
15
Role in System Development
Project Manager
Business
Analyst
System
Analyst
Programmer
16
Tester
Business Analyst
• Focuses on business issues surrounding
the system
• The business value of the system
• Improvements in business processes
• New business processes needed with new system
• Requires business skills and professional
training
17
System Analyst
• The systems analyst is a key person analyzing the
business, identifying opportunities for
improvement, and designing information systems
to implement these ideas
• Focuses on Information System (IS) Issues
• How IS can improve business processes
• Designs new information system
• Ensures IS quality standards are maintained
• Requires training & experience in design analysis,
programming, business (to lesser degree)
18
Infrastructure Analyst
• Focuses on interfaces between new
system & existing infrastructure
• Makes sure new system follows organizational
standards
• Identifies required infrastructure changes
• Requires experience in network &
database administration
• Requires knowledge of hardware systems
19
Change Management Analyst
• Focuses on system installation
• Documentation & support for users
• Coordinate training of users
• Strategies to overcome resistance
• Requires experience in organizational
behavior
• Requires experience in change
management
20
Project Manager
• Responsible for schedule and budget
• Ensures promised benefits are delivered
• Manages team members
• Responsible for project plan and
reporting progress
• Requires project management
experience
21
22
Systems Development Life
Cycle (SDLC)
23
Systems Development Life Cycle (SDLC)
Planning
Implementation
Analysis
Design
24
Project Phases
1. Planning: Why build the system?
•
System request, feasibility analysis, project size
estimation
2. Analysis: Who, what, when, where will the system be?
•
Requirement gathering, business process modeling
3. Design: How will the system work?
•
Program design, user interface design, data design
4. Implementation: System construction and delivery
•
System construction, testing, documentation and
installation
25
Planning
1. Identifying business value (System Request)
•
•
Lower costs
Increase profits
2. Analyze feasibility
•
•
•
Technical Feasibility
Economic Feasibility
Organizational Feasibility
3. Estimating the size of project
(System Proposal)
26
Analysis
1. Requirement gathering by answering the
questions:
•
•
•
Who will use the system?
What will the system do?
When will it be used?
2. Investigate the current system
3. Identify possible improvements
4. Develop a concept for new system
(Business Process Model)
27
Design
1. Program Design (UML Diagrams)
•
•
What programs need to be written
Exactly what each program will do
2. User Interface Design
•
•
How users interact with system
Forms / reports used by the system
3. Data Design (ER Diagrams)
•
•
•
What data is to be stored
What format the data will be in
Where the data will be stored
(System Specification)
28
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
29
Processes and Deliverables
Process
Product
Planning
System Proposal
Analysis
Design
System Specification
Implementation
New System with
Testing/Maintenance Plan
30
SDLC and Deliverables
Planning
(System Proposal)
Implementation
Analysis
(New System)
(System Specification)
Design
(System Specification)
31
Systems Development
Methodologies
32
What Is a Methodology?
A formalized approach to
implementing the SDLC (series of steps
and deliverables)
33
Major Methodologies
1. Structured Design
• Waterfall method
• Parallel development
2. Rapid Application Development
• Phased Development
• Prototyping
• Throw-away Prototyping
3. Agile Development
• Extreme Programming (XP)
• Scrum
• Lean Development
34
Structured Design Methodology
• Projects move methodically from one to
the next step
• Generally, a step is finished before the
next one begins
35
Waterfall Method
36
Pros - Cons of the Waterfall Method
Pros
Cons
Design must be
specified on paper
before programming
begins
Identifies systems
requirements long
before programming
Begins, it minimizes
change to the
requirements as the
project proceed
(mature)
Long time between
system proposal and
delivery of new
system
Rework is very hard
37
Parallel Development
• Addresses problem of time gap
between proposal and delivery
• General process:
1.
2.
Breaks project into parallel subproject
Integrates them at the end
38
Parallel Development
39
Rapid Application Development
1. Phased development
•
A series of versions
2. Prototyping
•
System prototyping
3. Throw-away prototyping
•
Design prototyping
40
Rapid Application Development
Critical elements to speed up the SDLC:
• CASE tools
• Visual programming languages
• Code generators
41
RAD: Phased Development
• Break overall system into a series of
versions
• Each version has Analysis, Design, and
Implementation
• Output from on version is the input to
the next
• Incorporate ideas, issues, lessons
learned in one version into the next
version
42
43
RAD: Phased Development
Pros
Cons
Gets useful system
to users quickly
Initial system is
intentionally incomplete
Most important
functions tested most
System requirements
expand as users see
versions
44
RAD: Prototyping
• Analysis, Design, Implementation are
performed concurrently
• Start with a "quick-and-dirty" prototype
• Provides minimal functionality
• Repeat process, refining the prototype
each time
• Stop when prototype is a working system
45
RAD: Prototyping
46
RAD: Prototyping
Pros
Cons
Gets working system
to users quickly
Fast paced. Hard to
conduct careful,
methodical analysis
Reassures users that
the project is
progressing
Initial design
decisions have long
term staying power
Quickly refines true
requirements
Problems may
come to light late in
design, requiring
re-design
47
RAD: Throw-Away Prototyping
• Use prototypes only to understand
requirements
• Example: use html to show UI
• Prototype is not a working design
• Once requirements are understood, the
prototypes are thrown away
• The system is then built using SDLC
48
RAD: Throw-Away Prototyping
49
Agile Development
• Just a few rules that are easy to learn and
follow
• Streamline the SDLC
• Eliminate much of the modeling and documentation
• Emphasize simple, iterative application development
• Examples include:
• Extreme Programming (XP)
• Scrum
• Dynamic Systems Development Model (DSDM)
50
Extreme Programming (XP)
“Core Values” of XP
1.
2.
3.
4.
Communication – All to All  Pair Programming
Simplicity – KISS, refactoring
Feedback – Embrace Change
Courage – Quality First, test and efficient coding
51
Extreme Programming (XP)
52
Scrum
• Together with a user, the project members form
a Scrum Team consisting of 5–9 people
• During discussions with the Product Owner, the
goal of the Sprint is determined and the
prioritized functionality is broken down into
detailed tasks
• The team is self-organized and the members
have a joint responsibility for the results
• Each Sprint enhances the product’s market value
and adds new functions and improvements that
can be delivered to the customer
53
Scrum
54
Scrum
55
Scrum
56
Scrum
57
58
XP vs Scrum vs Lean
• XP deals with how to work with
programming
• Scrum deals with how the project is
organized and planned
• Lean Development deals with which
comprehensive principles should apply for
the entire development organization
59
Selecting the Appropriate Methodology
1.
2.
3.
4.
5.
6.
Clarity of User Requirements
Familiarity with Technology
System Complexity
System Reliability
Short Time Schedules
Schedule Visibility
60
Selecting the Appropriate Methodology
61
Exercise: Selecting Methodology
Suppose you are an analyst for the Roanoke Software
Consulting Company (RSCC), a large consulting firm
with offices around the world. The company wants to
build a new knowledge management system that can
identify and track the expertise of individual
consultants anywhere in the world based on their
education and the various consulting projects on which
they have worked. Assume that this is a new idea that
never done before been attempted in RSCC or
elsewhere. RSCC has an international network, but the
offices in each country may use somewhat different
hardware and software. RSCC management wants the
system up and running within a year.
62
Object-Oriented Paradigm
63
Konsep Dasar Pemrograman
Berorientasi Objek
Class , Object, Method, Attribute
64
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
65
Berorientasi Objek?
Attribute (State):
Ban, Stir, Pedal Rem, Pedal Gas,
Warna, Tahun Produksi
Behavior:
Cara Menghidupkan Mesin
Cara Manjalankan Mobil
Cara Memundurkan Mobil
Attribute  Variable(Member)
Behavior  Method(Fungsi)
66
Perbedaan Class dan Object
• Class: konsep dan deskripsi dari sesuatu
• Class mendeklarasikan method yang dapat digunakan
(dipanggil) oleh object
• Object: instance dari class, bentuk (contoh)
nyata dari class
• Object memiliki sifat independen dan dapat digunakan
untuk memanggil method
• Contoh Class dan Object:
• Class: mobil
• Object: mobilnya pak Joko, mobilku, mobil berwarna
merah
67
Perbedaan Class dan Object
• Class seperti cetakan kue, dimana kue yg
dihasilkan dari cetakan kue itu adalah object
• Warna kue bisa bermacam-macam meskipun
berasal dari cetakan yang sama (object
memiliki sifat independen)
68
Class = Method + Variable
Class Sepeda
gir
variable
kecepatan
tampilkan kecepatan
method
ubah gir
69
Object = Method + Variable Bernilai
Object Sepedaku
gir = 3
instance
variable
kecepatan = 10km/jam
tampilkan kecepatan ()
kecepatan = 10 km/jam
ubah gir (2)
gir = 5
70
instance
method
Attribute
• Variable yang mengitari class, dengan nilai datanya
bisa ditentukan di object
• Variable digunakan untuk menyimpan nilai yang
nantinya akan digunakan pada program
• Variable memiliki jenis (tipe), nama dan nilai
• Name, age, dan weight adalah atribute (variabel)
dari class Person
71
Membuat Class, Object dan Memanggil Atribut
public class Mobil {
Mobil.java
String warna;
int tahunProduksi;
}
public class MobilBeraksi{
public static void main(String[] args){
// Membuat object
Mobil mobilku = new Mobil();
MobilBeraksi.java
/* memanggil atribut dan memberi nilai */
mobilku.warna = "Hitam";
mobilku.tahunProduksi = 2006;
System.out.println("Warna: " + mobilku.warna);
System.out.println("Tahun: " + mobilku.tahunProduksi);
}
}
72
Method
• Method adalah urutan instruksi yang
mengakses data dari object
• Method melakukan:
1. Manipulasi data
2. Perhitungan matematika
3. Memonitor kejadian dari suatu event
83
Method
84
Membuat dan Memanggil Method
public class Mobil2{
String warna;
Mobil2.java
int tahunProduksi;
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();
Mobil2Beraksi.java
mobilku.warna = "Hitam";
mobilku.tahunProduksi = 2006;
mobilku.printMobil();
}
}
85
Latihan
• Buat class Handphone yang berisi empat
method:
1. hidupkan()
2. lakukanPanggilan()
3. kirimSMS()
4. matikan()
• Isi masing-masing method dengan tampilan status
menggunakan System.out.println()
• Buat class HandphoneBeraksi, dan panggil
method-method diatas dalam class tersebut
86
Latihan: Hasil Tampilan
Handphone hidup …
Kring, kring, kring … panggilan dilakukan
Dung, dung … sms berhasil terkirim
Handphone mati …
87
Jenis Method: Mutator dan Accessor
88
Parameter
• Sepeda akan berguna apabila ada object lain yang
berinterasi dengan sepeda tersebut
• Object software berinteraksi dan berkomunikasi dengan
object lain dengan cara mengirimkan message atau pesan
• Pesan adalah suatu method, dan informasi dalam pesan
dikenal dengan nama parameter
89
Pengiriman Pesan dan Parameter
1. You
 object pengirim
2. YourBicycle
 object penerima
3. changeGears
 pesan berupa method yang dijalankan
4. lowerGear
parameter yang dibutuhkan method
(pesan) untuk dijalankan
90
91
Sepeda.java
public class Sepeda{
int gir;
// method (mutator) dengan parameter
void setGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
}
// method (accessor)
int getGir() {
return gir;
}
}
92
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.println(“Gir saat ini: “ + sepedaku.getGir());
}
}
93
Latihan: Class Matematika dan Parameter
• Buat Class bernama Matematika, yang berisi method
dengan dua parameter:
•
•
•
•
pertambahan(int a, int b)
pengurangan(int a, int b)
perkalian(int a, int b)
pembagian(int a, int b)
• Buat Class bernama MatematikaBeraksi, yang
mengeksekusi method dan menampilkan:
•
•
•
•
Pertambahan: 20 + 20 = 40
Pengurangan: 10-5 = 5
Perkalian: 10*20 = 200
Pembagian: 21/2 = 10
94
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)
}
95
Konstruktor -1• Method yang digunakan untuk memberi nilai
awal pada saat object diciptakan
• Dipanggil secara otomatis ketika new
digunakan untuk membuat instan class
• Sifat konstruktor:
• Nama konstruktor sama dengan nama class
• Tidak memiliki nilai balik dan tidak boleh ada
kata kunci void
96
Konstruktor -2public class Mobil {
String warna;
Mobil.java
int tahunProduksi;
public Mobil(String warna, int tahunProduksi){
this.warna = warna;
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();
}
97
}
Kata Kunci this
Digunakan pada pembuatan class dan digunakan
untuk menyatakan object sekarang
public class Mobil{
String warna;
int tahunProduksi;
public class Mobil{
String warna;
int tahunProduksi;
void isiData(String aWarna,
int aTahunProduksi){
void isiData(String warna,
int tahunProduksi){
warna = aWarna;
tahunProduksi = aTahunProduksi;
this.warna = warna;
this.tahunProduksi = tahunProduksi;
}
}
98
Latihan
1. Buat class Bank
•
•
Buat konstruktor class Bank dengan parameter: saldo
Buat method: simpanUang, ambilUang, dan getSaldo
2. Buat class BankBeraksi, tetapkan saldo awal lewat
konstruktur Rp. 100000, jalankan 3 method di atas,
dan tampilkan proses sebagai berikut:
Selamat Datang di Bank ABC
Saldo awal: Rp. 100000
Simpan uang: Rp. 500000
Saldo saat ini: Rp. 600000
Ambil uang: Rp. 150000
Saldo saat ini: Rp. 450000
99
Karakteristik Pemrograman
Berorientasi Objek
Abstraction, Encapsulation, Inheritance, Polymorphism
100
Abstraction
• Cara kita melihat suatu sistem dalam bentuk yang
lebih sederhana, yaitu sebagai suatu kumpulan
subsistem (object) yang saling berinteraksi.
• Mobil adalah kumpulan sistem pengapian, sistem kemudi,
sistem pengereman
• Alat meng-abstraksikan sesuatu adalah class
• Object bersifat modularity. Object dapat ditulis dan
dimaintain terpisah (independen) dari object lain
101
102
103
Encapsulation
• Mekanisme menyembunyikan suatu proses dan data
dalam sistem untuk menghindari interferensi, dan
menyederhanakan penggunaan proses itu sendiri
• Tongkat transmisi (gigi) pada mobil
• Tombol on/off/pengaturan suhu pada AC
• Class access level (public, protected, privat) adalah
implementasi dari konsep encapsulation
• Enkapsulasi data dapat dilakukan dengan cara:
1. mendeklarasikan instance variable sebagai private
2. mendeklarasikan method yang sifatnya public untuk
mengakses variable tersebut
104
105
Encapsulation dan Access Modifier
Modifier
Dalam
Dalam Class
Package yang
yang Sama
Sama
Dalam
Dalam
SubClass Package Lain
private

tanpa
tanda


protected



public



106

Encapsulation
Enkapsulasi data juga dapat dilakukan dengan cara:
1. mendeklarasikan instance variable sebagai private
2. mendeklarasikan method yang sifatnya public untuk
mengakses variable tersebut
107
Sepeda.java
public class Sepeda{
int gir;
void setGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
}
int getGir() {
return gir;
}
}
108
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 variable */
sepedaku.gir = 3;
System.out.println(“Gir saat ini: “ + sepedaku.getGir());
}
}
109
Sepeda.java
public class Sepeda{
private int gir; // access modifier private pada instance variable
void setGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
}
int getGir() {
return gir;
}
}
110
Inheritance (Pewarisan)
• Suatu class dapat
mewariskan atribut dan
method kepada class
lain (subclass), serta
membentuk class
hierarchy
• Penting untuk
Reusability
• Java Keyword:
extends
111
Sepeda.java
public class Sepeda{
private int gir;
void setGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
}
int getGir() {
return gir;
}
}
112
Class SepedaGunung Mewarisi Class Sepeda
public class SepedaGunung extends Sepeda{
public class SepedaGunungBeraksi {
public static void main(String[] args) {
private int sadel;
SepedaGunung sg=new SepedaGunung();
void setSadel (int jumlah) {
sg.setGir(3);
System.out.println(sg.getGir());
sadel = getGir() - jumlah;
}
sg.setSadel(1);
System.out.println(sg.getSadel());
}
int getSadel(){
return sadel;
}
}
}
SepedaGunung.java
SepedaGunungBeraksi.java
113
Latihan: Inheritance Matematika
1. Buat class MatematikaCanggih yang merupakan
inherit dari class Matematika
1. Tambahkan method modulus(int a, int b) yang
menghitung modulus dari a dan b
2. Operator modulus adalah %
2. Buat class MatematikaCanggihBeraksi yang
memanggil method pertambahan, perkalian dan
modulus
114
Polymorphism
• Kemampuan untuk memperlakukan object
yang memiliki perilaku (bentuk) yang
berbeda
• Implementasi konsep polymorphism:
1. Overloading: Kemampuan untuk menggunakan
nama yang sama untuk beberapa method yang
berbeda parameter (tipe dan atau jumlah)
2. Overriding: Kemampuan subclass untuk menimpa
method dari superclass, yaitu dengan cara
menggunakan nama dan parameter yang sama
pada method
115
Polymorphism – Overloading
class Mobil {
public class MobilKonstruktor{
public static void main(String[] args){
String warna;
Mobil mobilku = new Mobil(“Merah”, 2003);
int tahunProduksi;
mobilku.info();
public Mobil(String warna, int tahunProduksi){
Mobil mobilmu = new Mobil();
mobilmu.info();
}
this.warna = warna;
this.tahunProduksi = tahunProduksi;
}
}
public Mobil(){
}
void info(){
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}
116
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, String
namaLingkaran){
...
}
}
117
Polymorphism - Overriding
public class Sepeda{
protected int gir;
void setGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
}
int getGir() {
return gir;
}
}
118
Polymorphism - Overriding
public class SepedaGunung extends Sepeda{
public class SepedaGunungBeraksi {
public static void main(String[] args) {
void setGir(int pertambahanGir) {
SepedaGunung sg=new SepedaGunung();
super.setGir(pertambahanGir);
sg.setGir(2);
System.out.println(sg.getGir());
gir = 2*getGir();
}
}
sg.setGir(3);
System.out.println(sg.getGir());
}
}
SepedaGunung.java
SepedaGunungBeraksi.java
119
Latihan: Overloading pada Matematika
1.
2.
3.
4.
5.
Kembangkan class Matematika, MatematikaCanggih
dan MatematikaBeraksi
Lakukan overloading pada Method yang ada
(pertambahan, pengurangan, perkalian, pembagian,
modulus)
Tambahkan method baru bertipe data double
(pecahan) dan memiliki 3 parameter: double a, double
b, double c
Uji di kelas MatematikaBeraksi dengan parameter
pecahan: 12.5, 28.7, 14.2
Misalnya:
pertambahan(12.5, 28.7, 14.2)
pertambahan(23, 34)
120
pertambahan(12, 28, 14)
pertambahan(3.4, 4.9)
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);
}
...
}
121
Summary -1• The systems analyst is a key person analyzing
the business, identifying opportunities for
improvement, and designing information
systems to implement these ideas
• There are five major team roles:
• Business analyst
• Systems analyst
• Infrastructure analyst
• Change management analyst
• Project manager
122
Summary -2• The Systems Development Lifecycle consists
of four stages: Planning, Analysis, Design, and
Implementation
• The major development methodologies:
1. Structured design
•
•
Waterfall method
Parallel development
2. RAD development
•
•
•
Phased Development
Prototyping
Throw-away Prototyping
3. Agile development
• Extreme Programming
123
Summary -3• UML is the standard language for visualizing,
specifying, constructing, and documenting the
artifacts of a software-intensive system
• UML version 2.0 has 14 diagrams in 2 groups:
1. Structure Diagrams
2. Behavior Diagrams
• UML concepts are based on objectoriented paradigm
124
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, 2010
3. Hassan Gomaa, Software Modeling and Design: UML,
Use Cases, Patterns, and Software Architectures,
Cambridge University Press, 2011
4. Gary B. Shelly and Harry J. Rosenblatt, Systems Analysis
and Design 9th Edition, Course Technology, 2011
5. Howard Podeswa, UML for the IT Business Analyst 2nd
Edition, Thomson Course Technology, 2009
6. Jeffrey A. Hoffer et al, Modern Systems Analysis and
Design 6th Edition, Prentice Hall, 2012
125