SlideShare a Scribd company logo
1 of 42
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
FIFGROUPDigital 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 Pemrograman Tingkat Tinggi
(Java, C++, C#, Dart)
40
Paradigma Pemrograman
• Sudut pandang dan style pemrograman
berhubungan dengan bagaimanasebuah masalah
diformulasikan dalam bahasa pemrograman
• Functional Programming: Urutan fungsi secara
sekuensial, yang berkutat pada fungsi matematis
(Scheme, Lisp, csscript)
• Procedural Programming:
Pemecahan masalah berdasarkan urutan instruksi
yangterkumpul dalam unit pemrograman bernama
fungsi (C, Pascal, PHP)
• Object-Oriented Programming: Koleksi object
yang salingberinteraksi. Class adalahunit
pemrograman terkecil (Java, C#, C++, Dart)
41
Terima Kasih

More Related Content

Similar to OPTIMIZED TITLE FOR MOBILE PROGRAMMING CONCEPT DOCUMENT

pengenalan_rekayasa_perangkat_lunak.ppt
pengenalan_rekayasa_perangkat_lunak.pptpengenalan_rekayasa_perangkat_lunak.ppt
pengenalan_rekayasa_perangkat_lunak.pptAgiHusni
 
02 software engineering
02 software engineering02 software engineering
02 software engineeringRian Rian
 
Pertemuan ke 1 (perangkat lunak)
Pertemuan ke 1 (perangkat lunak)Pertemuan ke 1 (perangkat lunak)
Pertemuan ke 1 (perangkat lunak)gleebelle
 
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
 
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
 
Perancangan perangkat lunak
Perancangan perangkat lunakPerancangan perangkat lunak
Perancangan perangkat lunakSahrul Sindriana
 
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
 
Pengembangan Perangkat Lunak & Gim .ppt
Pengembangan Perangkat Lunak & Gim  .pptPengembangan Perangkat Lunak & Gim  .ppt
Pengembangan Perangkat Lunak & Gim .pptAzaAkbar
 
Rekayasa perangkat lunak
Rekayasa perangkat lunakRekayasa perangkat lunak
Rekayasa perangkat lunakWandi Parlente
 
rekayasa perangkat lunak
rekayasa perangkat lunakrekayasa perangkat lunak
rekayasa perangkat lunakWandi Parlente
 

Similar to OPTIMIZED TITLE FOR MOBILE PROGRAMMING CONCEPT DOCUMENT (20)

pengenalan_rekayasa_perangkat_lunak.ppt
pengenalan_rekayasa_perangkat_lunak.pptpengenalan_rekayasa_perangkat_lunak.ppt
pengenalan_rekayasa_perangkat_lunak.ppt
 
02 software engineering
02 software engineering02 software engineering
02 software engineering
 
Pertemuan ke 1 (perangkat lunak)
Pertemuan ke 1 (perangkat lunak)Pertemuan ke 1 (perangkat lunak)
Pertemuan ke 1 (perangkat lunak)
 
Rpl upload #2
Rpl upload #2Rpl upload #2
Rpl upload #2
 
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
 
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
 
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
 
Pengenalan RPL
Pengenalan RPLPengenalan RPL
Pengenalan RPL
 
Perkuliahan 1 RPL
Perkuliahan 1 RPLPerkuliahan 1 RPL
Perkuliahan 1 RPL
 
Perancangan perangkat lunak
Perancangan perangkat lunakPerancangan perangkat lunak
Perancangan perangkat lunak
 
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
 
Pengembangan Perangkat Lunak & Gim .ppt
Pengembangan Perangkat Lunak & Gim  .pptPengembangan Perangkat Lunak & Gim  .ppt
Pengembangan Perangkat Lunak & Gim .ppt
 
Rekayasa perangkat lunak
Rekayasa perangkat lunakRekayasa perangkat lunak
Rekayasa perangkat lunak
 
rekayasa perangkat lunak
rekayasa perangkat lunakrekayasa perangkat lunak
rekayasa perangkat lunak
 
Chapter 5
Chapter 5Chapter 5
Chapter 5
 
materi 2..pptx
materi 2..pptxmateri 2..pptx
materi 2..pptx
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 

Recently uploaded

Geologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdfGeologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdfAuliaAulia63
 
Manajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
Manajemen Lalu Lintas Baru Di Jalan Selamet RiyadiManajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
Manajemen Lalu Lintas Baru Di Jalan Selamet RiyadiCristianoRonaldo185977
 
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptxUKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptxzidanlbs25
 
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptxMATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptxrikosyahputra0173
 
Menggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptxMenggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptxImahMagwa
 
pertemuan-3-distribusi pada-frekuensi.ppt
pertemuan-3-distribusi pada-frekuensi.pptpertemuan-3-distribusi pada-frekuensi.ppt
pertemuan-3-distribusi pada-frekuensi.pptAhmadSyajili
 
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxMARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxmariaboisala21
 

Recently uploaded (7)

Geologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdfGeologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdf
 
Manajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
Manajemen Lalu Lintas Baru Di Jalan Selamet RiyadiManajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
Manajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
 
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptxUKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
 
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptxMATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
 
Menggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptxMenggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptx
 
pertemuan-3-distribusi pada-frekuensi.ppt
pertemuan-3-distribusi pada-frekuensi.pptpertemuan-3-distribusi pada-frekuensi.ppt
pertemuan-3-distribusi pada-frekuensi.ppt
 
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxMARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
 

OPTIMIZED TITLE FOR MOBILE PROGRAMMING CONCEPT DOCUMENT

  • 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. FIFGROUPDigital 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 Pemrograman Tingkat Tinggi (Java, C++, C#, Dart) 40
  • 41. Paradigma Pemrograman • Sudut pandang dan style pemrograman berhubungan dengan bagaimanasebuah masalah diformulasikan dalam bahasa pemrograman • Functional Programming: Urutan fungsi secara sekuensial, yang berkutat pada fungsi matematis (Scheme, Lisp, csscript) • Procedural Programming: Pemecahan masalah berdasarkan urutan instruksi yangterkumpul dalam unit pemrograman bernama fungsi (C, Pascal, PHP) • Object-Oriented Programming: Koleksi object yang salingberinteraksi. Class adalahunit pemrograman terkecil (Java, C#, C++, Dart) 41