SlideShare a Scribd company logo
1 of 42
Download to read offline
Pertemuan 2
Object Oriented
Programming
Concept
Pemrograman Mobile
Outline 1. Siklus Pengembangan Software
2. Konsep Pemrograman dan Paradigmanya
3. Teknologi Dart dan Perangkat Pemrograman
4. Konsep Dasar Pemrograman Berorientasi Objek
5. Karakteristik Pemrograman Berorientasi Objek
Siklus
Pengembangan
Software
3
50% lebih project teknologi informasi gagal
(42% - Standish Group, 53% - General Accounting Office)
• Dibatalkan sebelum selesai
• Selesai tapi tidak pernah dipakai
• Tidak bermanfaat bagi pengguna
• Tidak sesuai dengan keinginan pengguna
4
Kegagalan Project Software
Karakteristik Software Hardware
Kompleksitas Tingkat kompleksitas dari
produk software tinggi,
dengan kemungkinan
perubahan parameter dan
fungsi yang sangat beragam
Tingkat kompleksitas produk
lain rendah, dengan
kemungkinan perubahan
parameter dan fungsi tidak
beragam
Sumber Daya
Manusia
Kuantitas SDM Tidak
berhubungan dengan
Kualitas dan Kecepatan
Kerja
Kuantitas SDM berhubungan
dengan Kualitas dan
Kecepatan Kerja
Visibilitas
Produk
Produk tidak terlihat dengan
kasat mata, termasuk bila
ada cacat (defect) dari
produk
Produk terlihat dengan
kasat mata, termasuk bila
ada cacat (defect) dari
produk
5
Keunikan dari Software
• Repeatable observations can often be stated as a law
• Using this law, we can then make predictions about further
observations
• A law tells us how things occur, but not why. Theories explain why it is
true and order our observations
Observations, Laws and Theories
(Endres & Rombach, 2003)
6
Adding manpower to a late
project makes it later
7
(Endres, 2003)
Brooks’ Law (1975)
•Just because a woman can make a baby in nine
months, it does not follow that nine women can
make a baby in one month
8
Brooks’ Law (1975)
Building software will always be
hard, inherently no silver bullet
(Brooks, 1987)
9
Software Engineering Problem
23
Tantangan Pengembangan Software
11
Requirement deficiencies are the
prime source of project failures
12
(Endres, 2003) [L1]
Glass’ Law (1998)
1. The "Yes, But" syndrome
• Stems from human nature and the users' inability
to experience the software as they might a
physical device
2. The “Undiscovered Ruins”
• Searching for requirements is like searching for
"Undiscovered Ruins“
• The more you find, the more you know remain
1. The "User and the Developer" syndrome
• Reflects the profound differences between these
two, making communication difficult
13
Tantangan di Requirement Gathering
process meets specified
2. The degree to which a
system, component, or
process meets customer
or user needs or
Software Berkualitas?
Software quality is (IEEE, 1991):
1. The degree to which a
system, component, or
14
• Alan Turing dengan komputer yang dibuat berhasil
mendekripsi pesan enigma dengan cepat
• Dilakukan manusia puluhan atau ratusan tahun,
dengan komputer hanya 3-4 jam
• Menyelesaikan perang yang harusnya bisa terjadi
puluhan tahun, menjadi hanya 3 tahun, dan
menghemat miliaran USD
• Komputer adalah alat untuk efisiensi, untuk
mengurangi cost, mempercepat waktu,
meningkatkan income
• Investasi pengadaan komputer dan software harus bisa
meningkatkan Return on Investment (ROI),
mempercepat Break Event Point (BEP) pada organisasi
15
Komputer Datang untuk Efisiensi!
1. KTP Manual
2. KTP Berbasis Komputer
3. KTP-EL
Software Sistem Kita Berkualitas?
3 Hari
3 Minggu!
1 T
ahun!
16
1. How to Write a Code
(Coder or Programmer)
• Menguasai Bahasa Pemrograman
2. How to Develop a Software
(Software Engineer)
• Menguasai Metodologi
Pengembangan Software
3. How to Manage Software
(Enterprise Architect)
• Menguasai Manajemen Software
Software Development Evolution
17
18
FIFGROUP Digital Application Form (DAF) Web Application
FIFGROUP Digital Application Form (DAF) Web Application
Application
Architecture
FIFAPPS
19
20
21
22
23
1. User/Product Owner membawa permintaan
kebutuhan (perubahan) software (System Request)
ke System Analyst
2. System Analyst membuat analisis kelayakan
(Feasibility Analysis) dari System Request tersebut
3. Setelah dinyatakan layak, System Analyst melakukan
analysis dan design, dan hasilnya adalah System
Specification
• Business Analyst membantu System Analyst memahami
proses bisnis dari software yang akan dibangun
4. System Specification diserahkan oleh System Anayst
ke Programmer untuk dilakukan Konstruksi (Coding)
5. Hasil Konstruksi berupa Kode Program diserahkan
ke Software Tester untuk dilakukan Pengujian
(Unit, Integration, System, User Acceptance Testing)
6. Instalasi (delivery) software dan manajemen
perubahan
• Software = Kode Program + Dokumentasi (Pengembangan
dan Penggunaan)
7. Siklus kembali ke 1 apabila ada permintaan
perubahan (Permintaan Perubahan Software)
Siklus Pengembangan Software:
Alur, Peran, dan Tahapan (Deliverable) (Tilley, 2012) (Dennis, 2016) (Valacich, 2017)
Planning
(System Proposal)
Analysis and Design
(System Specification)
Implementation
(Software)
Maintenance
(Updated Software)
24
41
Testing can show the presence
but not the absence of errors
(Endres, 2003)
Dijkstra Law
A system that is used will
be changed
(Endres, 2003)
Lehman 1 Law
1. Structured Design
(Prescriptive) (1967- )
• Waterfall method
• Parallel development
2. Rapid Application Development
(Iterative) (1985-)
• Phased Development
• Prototyping
3. Agile Development
(Adaptive) (1995-)
• Extreme Programming (XP)
• Scrum
Major Software Development Methodologies
Compiled from (Dennis, Wixom and Tegarden, 2016)
44
More
Prescriptive/
Documentation
More
Adaptive/
Communication
Konsep
Pemrograman dan
Paradigmanya
29
•Penting!
•Tapi lebih penting lagi kemampuan
membaca kebutuhan riil masyarakat
dan kemampuan analisis kelayakan dari
software yang kita kembangkan
•Mendidik programmer lebih mudah
daripada system analyst, software
engineer atau enterprise architect
30
Kemampuan Coding?
It takes 5000 hours to turn a
novice into an expert
31
(Endres, 2003)
Norman’s Law (1993)
• Komputer bekerja seperti switching dan
hanya mengenali 0 dan 1
• Manusia tidak (paham) berbicara dengan
bahasa 0 dan 1
• Perlu bahasa pemrograman yang dapat
menjadi perantara percakapan antara
komputer dan manusia
• Bahasa pemrograman diubah ke dalam
bahasa yang dipahami oleh komputer dengan
menggunakan interpreter atau kompiler
32
Bahasa Pemrograman?
Compiler or Interpreter?
1. Compiler:
Mengkompilasi source code
menjadi bentuk file yang bisa
dieksekusi
2. Interpreter:
Mengkompilasi dan menjalankan
source code secara langsung
33
C Language (Compiler)
#include <stdio.h>
main()
{
printf(“Hallo”);
}
C Program
C Compiler
000101000011
001010000100
010010010101
010101010010
Machine language program
(executable “.exe” file)
34
51
PHP Language (Intepreter)
Client
Web Server
File System
Database
Mail Server
Java Language (Compiler + Intepreter)
36
Dart Language (Just in Time)
37
• Compiler: Penerapan aplikasi android berbasis
*.APK pada aplikasi android
• Interpreter: Penerapan Debuging Dart pada Debug
Console di VS Code
Dart Language (Just in Time)
38
Tingkat Bahasa Pemrograman
39
Tingkat Bahasa
Pemrograman
• Bahasa Pemrograman Tingkat Rendah
(Assembler)
• Bahasa Pemrograman Tingkat Sedang
(C, Pascal, Fortran)
• Bahasa PemrogramanTingkat Tinggi
(Java, C++, C#, Dart)
40
Paradigma Pemrograman
• Sudut pandang dan style pemrograman
berhubungan denganbagaimana sebuah masalah
diformulasikan dalam bahasa pemrograman
• Functional Programming: Urutan fungsi secara
sekuensial, yang berkutat pada fungsi matematis
(Scheme, Lisp, csscript)
• Procedural Programming:
Pemecahan masalah berdasarkan urutaninstruksi
yangterkumpul dalam unit pemrograman bernama
fungsi (C, Pascal, PHP)
• Object-Oriented Programming: Koleksi object
yang saling berinteraksi. Class adalah unit
pemrograman terkecil (Java, C#, C++, Dart)
41
Terima Kasih

More Related Content

Similar to OPTIMIZED OOP CONCEPT

Pertemuan ke 1 (perangkat lunak)
Pertemuan ke 1 (perangkat lunak)Pertemuan ke 1 (perangkat lunak)
Pertemuan ke 1 (perangkat lunak)gleebelle
 
Modul rekayasa-perangkat-lunak
Modul rekayasa-perangkat-lunakModul rekayasa-perangkat-lunak
Modul rekayasa-perangkat-lunakNita Resta Dewi
 
02 software engineering
02 software engineering02 software engineering
02 software engineeringRian Rian
 
Perancangan perangkat lunak
Perancangan perangkat lunakPerancangan perangkat lunak
Perancangan perangkat lunakSahrul Sindriana
 
RPL 2 - Rekayasa Perangkat Lunak_Depi.pptx
RPL 2 - Rekayasa Perangkat Lunak_Depi.pptxRPL 2 - Rekayasa Perangkat Lunak_Depi.pptx
RPL 2 - Rekayasa Perangkat Lunak_Depi.pptxdiandra63
 
Materi knm,nmjnm,,,mbnkjbmnmm,n,m1 RPL.pdf
Materi knm,nmjnm,,,mbnkjbmnmm,n,m1 RPL.pdfMateri knm,nmjnm,,,mbnkjbmnmm,n,m1 RPL.pdf
Materi knm,nmjnm,,,mbnkjbmnmm,n,m1 RPL.pdfmerinovamarito7
 
Rekayasa perangkat lunak
Rekayasa perangkat lunakRekayasa perangkat lunak
Rekayasa perangkat lunakWandi Parlente
 
rekayasa perangkat lunak
rekayasa perangkat lunakrekayasa perangkat lunak
rekayasa perangkat lunakWandi Parlente
 
Pengembangan Perangkat Lunak & Gim .ppt
Pengembangan Perangkat Lunak & Gim  .pptPengembangan Perangkat Lunak & Gim  .ppt
Pengembangan Perangkat Lunak & Gim .pptAzaAkbar
 
Pengenalan Rekayasa Perangkat Lunak 1.ppt
Pengenalan Rekayasa Perangkat Lunak 1.pptPengenalan Rekayasa Perangkat Lunak 1.ppt
Pengenalan Rekayasa Perangkat Lunak 1.pptwisnumandaya
 
KU1: Mampu mengkomunikasikan ide dan solusi secara efektif dalam pengembangan...
KU1: Mampu mengkomunikasikan ide dan solusi secara efektif dalam pengembangan...KU1: Mampu mengkomunikasikan ide dan solusi secara efektif dalam pengembangan...
KU1: Mampu mengkomunikasikan ide dan solusi secara efektif dalam pengembangan...DadangDiding1
 
Materi Pengantar Teknologi Informasi Pertemuan Ke-7
Materi Pengantar Teknologi Informasi Pertemuan Ke-7Materi Pengantar Teknologi Informasi Pertemuan Ke-7
Materi Pengantar Teknologi Informasi Pertemuan Ke-7Dedy Wijaya
 
Pti pertemuan ke 07
Pti pertemuan ke 07Pti pertemuan ke 07
Pti pertemuan ke 07Dedy Wijaya
 
Rpl 2- sw process model
Rpl 2- sw process modelRpl 2- sw process model
Rpl 2- sw process modelf' yagami
 
Rpl 1-introduction
Rpl 1-introductionRpl 1-introduction
Rpl 1-introductionf' yagami
 

Similar to OPTIMIZED OOP CONCEPT (20)

Pertemuan ke 1 (perangkat lunak)
Pertemuan ke 1 (perangkat lunak)Pertemuan ke 1 (perangkat lunak)
Pertemuan ke 1 (perangkat lunak)
 
Modul rekayasa-perangkat-lunak
Modul rekayasa-perangkat-lunakModul rekayasa-perangkat-lunak
Modul rekayasa-perangkat-lunak
 
02 software engineering
02 software engineering02 software engineering
02 software engineering
 
Perancangan perangkat lunak
Perancangan perangkat lunakPerancangan perangkat lunak
Perancangan perangkat lunak
 
Rpl upload #2
Rpl upload #2Rpl upload #2
Rpl upload #2
 
Pengenalan RPL
Pengenalan RPLPengenalan RPL
Pengenalan RPL
 
RPL 2 - Rekayasa Perangkat Lunak_Depi.pptx
RPL 2 - Rekayasa Perangkat Lunak_Depi.pptxRPL 2 - Rekayasa Perangkat Lunak_Depi.pptx
RPL 2 - Rekayasa Perangkat Lunak_Depi.pptx
 
Perkuliahan 1 RPL
Perkuliahan 1 RPLPerkuliahan 1 RPL
Perkuliahan 1 RPL
 
Materi knm,nmjnm,,,mbnkjbmnmm,n,m1 RPL.pdf
Materi knm,nmjnm,,,mbnkjbmnmm,n,m1 RPL.pdfMateri knm,nmjnm,,,mbnkjbmnmm,n,m1 RPL.pdf
Materi knm,nmjnm,,,mbnkjbmnmm,n,m1 RPL.pdf
 
Rekayasa perangkat lunak
Rekayasa perangkat lunakRekayasa perangkat lunak
Rekayasa perangkat lunak
 
rekayasa perangkat lunak
rekayasa perangkat lunakrekayasa perangkat lunak
rekayasa perangkat lunak
 
Pengembangan Perangkat Lunak & Gim .ppt
Pengembangan Perangkat Lunak & Gim  .pptPengembangan Perangkat Lunak & Gim  .ppt
Pengembangan Perangkat Lunak & Gim .ppt
 
Pengenalan Rekayasa Perangkat Lunak 1.ppt
Pengenalan Rekayasa Perangkat Lunak 1.pptPengenalan Rekayasa Perangkat Lunak 1.ppt
Pengenalan Rekayasa Perangkat Lunak 1.ppt
 
KU1: Mampu mengkomunikasikan ide dan solusi secara efektif dalam pengembangan...
KU1: Mampu mengkomunikasikan ide dan solusi secara efektif dalam pengembangan...KU1: Mampu mengkomunikasikan ide dan solusi secara efektif dalam pengembangan...
KU1: Mampu mengkomunikasikan ide dan solusi secara efektif dalam pengembangan...
 
RPL.ppt
RPL.pptRPL.ppt
RPL.ppt
 
Materi Pengantar Teknologi Informasi Pertemuan Ke-7
Materi Pengantar Teknologi Informasi Pertemuan Ke-7Materi Pengantar Teknologi Informasi Pertemuan Ke-7
Materi Pengantar Teknologi Informasi Pertemuan Ke-7
 
Pti pertemuan ke 07
Pti pertemuan ke 07Pti pertemuan ke 07
Pti pertemuan ke 07
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Rpl 2- sw process model
Rpl 2- sw process modelRpl 2- sw process model
Rpl 2- sw process model
 
Rpl 1-introduction
Rpl 1-introductionRpl 1-introduction
Rpl 1-introduction
 

Recently uploaded

001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptxMuhararAhmad
 
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptxPembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptxmuhammadrizky331164
 
Slide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open StudioSlide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open Studiossuser52d6bf
 
05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.ppt05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.pptSonyGobang1
 
MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++FujiAdam
 
2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx
2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx
2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptxAnnisaNurHasanah27
 
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptxAnnisaNurHasanah27
 
Strategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaStrategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaRenaYunita2
 
rekayasa struktur beton prategang - 2_compressed (1).pdf
rekayasa struktur beton prategang - 2_compressed (1).pdfrekayasa struktur beton prategang - 2_compressed (1).pdf
rekayasa struktur beton prategang - 2_compressed (1).pdfssuser40d8e3
 

Recently uploaded (9)

001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
 
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptxPembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
 
Slide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open StudioSlide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open Studio
 
05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.ppt05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.ppt
 
MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++
 
2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx
2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx
2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx
 
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
 
Strategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaStrategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di Indonesia
 
rekayasa struktur beton prategang - 2_compressed (1).pdf
rekayasa struktur beton prategang - 2_compressed (1).pdfrekayasa struktur beton prategang - 2_compressed (1).pdf
rekayasa struktur beton prategang - 2_compressed (1).pdf
 

OPTIMIZED OOP CONCEPT

  • 2. Outline 1. Siklus Pengembangan Software 2. Konsep Pemrograman dan Paradigmanya 3. Teknologi Dart dan Perangkat Pemrograman 4. Konsep Dasar Pemrograman Berorientasi Objek 5. Karakteristik Pemrograman Berorientasi Objek
  • 4. 50% lebih project teknologi informasi gagal (42% - Standish Group, 53% - General Accounting Office) • Dibatalkan sebelum selesai • Selesai tapi tidak pernah dipakai • Tidak bermanfaat bagi pengguna • Tidak sesuai dengan keinginan pengguna 4 Kegagalan Project Software
  • 5. Karakteristik Software Hardware Kompleksitas Tingkat kompleksitas dari produk software tinggi, dengan kemungkinan perubahan parameter dan fungsi yang sangat beragam Tingkat kompleksitas produk lain rendah, dengan kemungkinan perubahan parameter dan fungsi tidak beragam Sumber Daya Manusia Kuantitas SDM Tidak berhubungan dengan Kualitas dan Kecepatan Kerja Kuantitas SDM berhubungan dengan Kualitas dan Kecepatan Kerja Visibilitas Produk Produk tidak terlihat dengan kasat mata, termasuk bila ada cacat (defect) dari produk Produk terlihat dengan kasat mata, termasuk bila ada cacat (defect) dari produk 5 Keunikan dari Software
  • 6. • Repeatable observations can often be stated as a law • Using this law, we can then make predictions about further observations • A law tells us how things occur, but not why. Theories explain why it is true and order our observations Observations, Laws and Theories (Endres & Rombach, 2003) 6
  • 7. Adding manpower to a late project makes it later 7 (Endres, 2003) Brooks’ Law (1975)
  • 8. •Just because a woman can make a baby in nine months, it does not follow that nine women can make a baby in one month 8 Brooks’ Law (1975)
  • 9. Building software will always be hard, inherently no silver bullet (Brooks, 1987) 9 Software Engineering Problem
  • 10. 23
  • 12. Requirement deficiencies are the prime source of project failures 12 (Endres, 2003) [L1] Glass’ Law (1998)
  • 13. 1. The "Yes, But" syndrome • Stems from human nature and the users' inability to experience the software as they might a physical device 2. The “Undiscovered Ruins” • Searching for requirements is like searching for "Undiscovered Ruins“ • The more you find, the more you know remain 1. The "User and the Developer" syndrome • Reflects the profound differences between these two, making communication difficult 13 Tantangan di Requirement Gathering
  • 14. process meets specified 2. The degree to which a system, component, or process meets customer or user needs or Software Berkualitas? Software quality is (IEEE, 1991): 1. The degree to which a system, component, or 14
  • 15. • Alan Turing dengan komputer yang dibuat berhasil mendekripsi pesan enigma dengan cepat • Dilakukan manusia puluhan atau ratusan tahun, dengan komputer hanya 3-4 jam • Menyelesaikan perang yang harusnya bisa terjadi puluhan tahun, menjadi hanya 3 tahun, dan menghemat miliaran USD • Komputer adalah alat untuk efisiensi, untuk mengurangi cost, mempercepat waktu, meningkatkan income • Investasi pengadaan komputer dan software harus bisa meningkatkan Return on Investment (ROI), mempercepat Break Event Point (BEP) pada organisasi 15 Komputer Datang untuk Efisiensi!
  • 16. 1. KTP Manual 2. KTP Berbasis Komputer 3. KTP-EL Software Sistem Kita Berkualitas? 3 Hari 3 Minggu! 1 T ahun! 16
  • 17. 1. How to Write a Code (Coder or Programmer) • Menguasai Bahasa Pemrograman 2. How to Develop a Software (Software Engineer) • Menguasai Metodologi Pengembangan Software 3. How to Manage Software (Enterprise Architect) • Menguasai Manajemen Software Software Development Evolution 17
  • 18. 18
  • 19. FIFGROUP Digital Application Form (DAF) Web Application FIFGROUP Digital Application Form (DAF) Web Application Application Architecture FIFAPPS 19
  • 20. 20
  • 21. 21
  • 22. 22
  • 23. 23
  • 24. 1. User/Product Owner membawa permintaan kebutuhan (perubahan) software (System Request) ke System Analyst 2. System Analyst membuat analisis kelayakan (Feasibility Analysis) dari System Request tersebut 3. Setelah dinyatakan layak, System Analyst melakukan analysis dan design, dan hasilnya adalah System Specification • Business Analyst membantu System Analyst memahami proses bisnis dari software yang akan dibangun 4. System Specification diserahkan oleh System Anayst ke Programmer untuk dilakukan Konstruksi (Coding) 5. Hasil Konstruksi berupa Kode Program diserahkan ke Software Tester untuk dilakukan Pengujian (Unit, Integration, System, User Acceptance Testing) 6. Instalasi (delivery) software dan manajemen perubahan • Software = Kode Program + Dokumentasi (Pengembangan dan Penggunaan) 7. Siklus kembali ke 1 apabila ada permintaan perubahan (Permintaan Perubahan Software) Siklus Pengembangan Software: Alur, Peran, dan Tahapan (Deliverable) (Tilley, 2012) (Dennis, 2016) (Valacich, 2017) Planning (System Proposal) Analysis and Design (System Specification) Implementation (Software) Maintenance (Updated Software) 24
  • 25. 41
  • 26. Testing can show the presence but not the absence of errors (Endres, 2003) Dijkstra Law
  • 27. A system that is used will be changed (Endres, 2003) Lehman 1 Law
  • 28. 1. Structured Design (Prescriptive) (1967- ) • Waterfall method • Parallel development 2. Rapid Application Development (Iterative) (1985-) • Phased Development • Prototyping 3. Agile Development (Adaptive) (1995-) • Extreme Programming (XP) • Scrum Major Software Development Methodologies Compiled from (Dennis, Wixom and Tegarden, 2016) 44 More Prescriptive/ Documentation More Adaptive/ Communication
  • 30. •Penting! •Tapi lebih penting lagi kemampuan membaca kebutuhan riil masyarakat dan kemampuan analisis kelayakan dari software yang kita kembangkan •Mendidik programmer lebih mudah daripada system analyst, software engineer atau enterprise architect 30 Kemampuan Coding?
  • 31. It takes 5000 hours to turn a novice into an expert 31 (Endres, 2003) Norman’s Law (1993)
  • 32. • Komputer bekerja seperti switching dan hanya mengenali 0 dan 1 • Manusia tidak (paham) berbicara dengan bahasa 0 dan 1 • Perlu bahasa pemrograman yang dapat menjadi perantara percakapan antara komputer dan manusia • Bahasa pemrograman diubah ke dalam bahasa yang dipahami oleh komputer dengan menggunakan interpreter atau kompiler 32 Bahasa Pemrograman?
  • 33. Compiler or Interpreter? 1. Compiler: Mengkompilasi source code menjadi bentuk file yang bisa dieksekusi 2. Interpreter: Mengkompilasi dan menjalankan source code secara langsung 33
  • 34. C Language (Compiler) #include <stdio.h> main() { printf(“Hallo”); } C Program C Compiler 000101000011 001010000100 010010010101 010101010010 Machine language program (executable “.exe” file) 34
  • 35. 51 PHP Language (Intepreter) Client Web Server File System Database Mail Server
  • 36. Java Language (Compiler + Intepreter) 36
  • 37. Dart Language (Just in Time) 37
  • 38. • Compiler: Penerapan aplikasi android berbasis *.APK pada aplikasi android • Interpreter: Penerapan Debuging Dart pada Debug Console di VS Code Dart Language (Just in Time) 38
  • 40. Tingkat Bahasa Pemrograman • Bahasa Pemrograman Tingkat Rendah (Assembler) • Bahasa Pemrograman Tingkat Sedang (C, Pascal, Fortran) • Bahasa PemrogramanTingkat Tinggi (Java, C++, C#, Dart) 40
  • 41. Paradigma Pemrograman • Sudut pandang dan style pemrograman berhubungan denganbagaimana sebuah masalah diformulasikan dalam bahasa pemrograman • Functional Programming: Urutan fungsi secara sekuensial, yang berkutat pada fungsi matematis (Scheme, Lisp, csscript) • Procedural Programming: Pemecahan masalah berdasarkan urutaninstruksi yangterkumpul dalam unit pemrograman bernama fungsi (C, Pascal, PHP) • Object-Oriented Programming: Koleksi object yang saling berinteraksi. Class adalah unit pemrograman terkecil (Java, C#, C++, Dart) 41