3/20/2019
1
Teknik Informatika S1
Disusun Oleh:
Umi Rosyidah
Teknik Informatika UDINUS
08179580076
Pengenalan RPL
Rekayasa Perangkat Lunak
SILABUS MATA KULIAH
8. Pembahasan UTS + Tugas SKPL
9. Presentasi SKPL
10. Design Engineering + Tugas DPPL
11. Presentasi DPPL
12. Software Testing + Quiz
13. Present Tugas Besar
14. Present Tugas Besar
1. Pendahuluan
2. Pengenalan RPL 3. Software Process (1)
4. Software Process (2)
5. Requirement Engineering + Quiz
6. Analysis Modeling (1)
7. Analysis Modeling (2)
Pengertian Perangkat Lunak (Software)
?
Pengertian Perangkat Lunak (Software)
“Program Komputer dan dokumentasi (User manual,
dokumen kebutuhan, dokumen perancangan) yang
berhubungan dengan program tersebut”.
Pengertian Perangkat Lunak (Software)
(1) Perintah (program komputer) yang bila dieksekusi
memberikan fungsi dan unjuk kerja seperti yang
diinginkan
(2) Struktur data yang memungkinkan program memanipulasi
informasi secara proporsional, dan
(3) Dokumen yang menggambarkan operasi dan kegunaan
program.
Jenis Perangkat Lunak
(Berdasarkan target Market)
1. Generic/ Public Software
2. Custom/ Private Software
(Ian Sommerville, Software Engineering 8 Ed., 2006)
3/20/2019
2
Jenis Perangkat Lunak (Berdasarkan target Market)
1. Generic/ Public Software
???
Jenis Perangkat Lunak (Berdasarkan target Market)
1. Generic/ Public Software
Perangkat lunak standar yang diproduksi oleh
perusahaan pengembang dan dijual pada pasar terbuka
ke siapapun yang bisa membelinya (Shrink-wrapped).
Jenis Perangkat Lunak (Berdasarkan target Market)
1. Generic/ Public Software
Perangkat lunak standar yang diproduksi oleh
perusahaan pengembang dan dijual pada pasar terbuka
ke siapapun yang bisa membelinya (Shrink-wrapped).
• Pengguna umum
• Kebutuhan luas
• Lingkungan pengguna tidak terbatas
Jenis Perangkat Lunak (Berdasarkan target Market)
1. Generic/ Public Software
Perangkat lunak standar yang diproduksi oleh perusahaan
pengembang dan dijual pada pasar terbuka ke siapapun yang
bisa membelinya (Shrink-wrapped).
• Pengguna umum
• Kebutuhan luas
• Lingkungan pengguna tidak terbatas
Contoh: ???
Jenis Perangkat Lunak (Berdasarkan target Market)
1. Generic/ Public Software
Perangkat lunak standar yang diproduksi oleh perusahaan
pengembang dan dijual pada pasar terbuka ke siapapun yang
bisa membelinya (Shrink-wrapped).
• Pengguna umum
• Kebutuhan luas
• Lingkungan pengguna tidak terbatas
Contoh: Microsoft Office, Windows, dll.
Jenis Perangkat Lunak
2. Custom/ Private Software
?
3/20/2019
3
Jenis Perangkat Lunak
2. Custom/ Private Software
Perangkat lunak yang dikembangkan khusus dan
disesuaikan dengan kebutuhan pelanggan
Jenis Perangkat Lunak
2. Custom/ Private Software
Perangkat lunak yang dikembangkan khusus dan
disesuaikan dengan kebutuhan pelanggan
• Pengguna khusus
• Kebutuhan sempit
• Lingkungan pengguna terbatas
Jenis Perangkat Lunak
2. Custom/ Private Software
Perangkat lunak yang dikembangkan khusus dan
disesuaikan dengan kebutuhan pelanggan
• Pengguna khusus
• Kebutuhan sempit
• Lingkungan pengguna terbatas
Contoh: ???
Jenis Perangkat Lunak
2. Custom/ Private Software
Perangkat lunak yang dikembangkan khusus dan disesuaikan
dengan kebutuhan pelanggan
• Pengguna khusus
• Kebutuhan sempit
• Lingkungan pengguna terbatas
Contoh: Software Kasir di Supermarket ABC,
Software penggajian di perusahaan XYZ
Jenis Perangkat Lunak (Berdasarkan Lisensi)
1. Proprietary Software
2. Open Source Software
Proprietary Software
• Software yang source codenya tertutup dan
didistribusikan dengan suatu format lisensi yang
membatasi pihak lain untuk menggunakan, memperbanyak
dan memodifikasi.
3/20/2019
4
Proprietary Software
• Software yang source codenya tertutup dan
didistribusikan dengan suatu format lisensi yang
membatasi pihak lain untuk menggunakan,
memperbanyak dan memodifikasi
• Lisensi proprietary software memungkinkan orang lain
menggunakan software yang kita buat dengan diikuti
penyerahan royalti (uang) ke pemilik hak ciptanya
Proprietary Software
• Software yang source codenya tertutup dan
didistribusikan dengan suatu format lisensi yang
membatasi pihak lain untuk menggunakan, memperbanyak
dan memodifikasi
• Lisensi proprietary software memungkinkan orang lain
menggunakan software yang kita buat dengan diikuti
penyerahan royalti (uang) ke pemilik hak ciptanya
• Shareware dan Freeware adalah proprietary software.
Free for use belum tentu free for (redistribute) atau
free for modify!
Open Source Software
• Software yang source codenya terbuka dan
didistribusikan dalam suatu format lisensi yang
memungkinkan pihak lain secara bebas memperbanyak
dan memodifikasi source code didalamnya
Open Source Software
• Software yang source codenya terbuka dan
didistribusikan dalam suatu format lisensi yang
memungkinkan pihak lain secara bebas memperbanyak
dan memodifikasi source code didalamnya
• Hak cipta tetap ada, tapi lisensi memungkinkan orang
lain bebas untuk menggunakan dan memodifikasi
software tersebut
Open Source Software
• Software yang source codenya terbuka dan didistribusikan
dalam suatu format lisensi yang memungkinkan pihak lain secara
bebas memperbanyak dan memodifikasi source code didalamnya
• Hak cipta tetap ada, tapi lisensi memungkinkan orang lain bebas
untuk menggunakan dan memodifikasi software tersebut
• Macam-macam lisensi open source software:
o GNU General Public License (GPL)
o Apache License
o BSD license
o MIT License
o Mozilla Public License
Peranan Perangkat Lunak
1. Menggantikan peran manusia: Dengan otomasi
terhadap suatu tugas atau proses
2. Memperkuat peran manusia: Dengan membantu
manusia mengerjakan suatu tugas atau proses
dengan lebih baik dan tertata
3/20/2019
5
Peranan Perangkat Lunak
3. Restrukturisasi Peran Manusia: Dengan melakukan
perubahan-perubahan terhadap sekumpulan tugas atau
proses
4. Hiburan dan Permainan: Dengan menyajikan aplikasi
interaktif hiburan yang semakin dekat dengan
kenyataan
Pengertian Rekayasa Perangkat Lunak
Disiplin ilmu yang membahas semua aspek produksi
perangkat lunak, mulai dari tahap awal spesifikasi, desain,
konstruksi, testing sampai pemeliharaan setelah digunakan.
Mengapa Rekayasa Perangkat Lunak
• Terminologi rekayasa perangkat lunak (software
engineering) pertama kali digunakan pada conference
tentang software crisis tahun 1968
Mengapa Rekayasa Perangkat Lunak
• Terminologi rekayasa perangkat lunak (software
engineering) pertama kali digunakan pada conference
tentang software crisis tahun 1968
• Krisis perangkat lunak merupakan akibat langsung dari
lahirnya komputer generasi ke 3 yang canggih pada waktu
itu
Mengapa Rekayasa Perangkat Lunak
• Terminologi rekayasa perangkat lunak (software
engineering) pertama kali digunakan pada conference
tentang software crisis tahun 1968
• Krisis perangkat lunak merupakan akibat langsung dari
lahirnya komputer generasi ke 3 yang canggih pada waktu
itu
• Perangkat lunak yang dihasilkan menjadi menjadi beberapa
kali lebih besar dan kompleks
Mengapa Rekayasa Perangkat Lunak
• Pendekatan informal tidak cukup efektif (biaya, waktu
dan kualitas) dalam pengembangan perangkat lunak
• Biaya hardware jatuh dan biaya perangkat lunak naik
cepat
3/20/2019
6
Perbedaan Software Engineering dan
Computer Science
• Software engineering fokus kepada praktek pembangunan
dan penggunaan perangkat lunak.
Perbedaan Software Engineering dan
Computer Science
• Software engineering fokus kepada praktek pembangunan
dan penggunaan perangkat lunak.
• Computer science fokus kepada teori dan dasar-dasarnya.
Perbedaan Software Engineering dan
System Engineering
Software engineering adalah bagian dari proses yang
berfokus kepada pembangunan infrastruktur perangkat
lunak, kontrol, aplikasi, dan database di dalam sistem.
Perbedaan Software Engineering dan
System Engineering
Software engineering adalah bagian dari proses yang
berfokus kepada pembangunan infrastruktur perangkat
lunak, kontrol, aplikasi, dan database di dalam sistem.
System engineering fokus kepada semua aspek
pembangunan berbasis komputer termasuk hardware,
software, dan proses rekayasa.
Pembangunan Perangkat Lunak
Maintenance
System Design
Requirements Analysis and Definition
Program Design
Program Implementation
Unit Testing
Integration Testing
System Testing
System Delivery
SO
FT
WA
RE
DE
VE
LO
PM
EN
T S
TE
PS
DE
VE
LO
PE
R R
OL
ES
ANALYST
DESIGNER
PROGRAMMER
TESTER
TRAINER
5 Masalah Pembangunan Perangkat Lunak
1. Poor Requirements - if requirements are unclear, incomplete, too
general, and not testable, there may be problems.
2. Unrealistic Schedule - if too much work is crammed in too little
time, problems are inevitable.
3. Inadequate Testing - no one will know whether or not the
software is any good until customers complain or systems crash.
4. Featuritis - requests to add on new features after development
goals are agreed on.
5. Miscommunication - if developers don't know what's needed or
customer's have erroneous expectations, problems can be
expected.
3/20/2019
7
Solusi Masalah Pembangunan Perangkat Lunak
1. Solid Requirements - clear, complete, detailed, cohesive,
attainable, testable requirements that are agreed to by all
players.
2. Realistic Schedules - allow adequate time for planning, design,
testing, bug fixing, re-testing, changes, and documentation;
personnel should be able to complete the project without burning
out.
3. Adequate Testing - start testing early on, re-test after fixes or
changes, plan for adequate time for testing and bug-fixing.
4. Stick to Initial Requirements where Feasible - be prepared to
defend against excessive changes and additions once development
has begun, and be prepared to explain consequences.
Solusi Masalah Pembangunan Perangkat Lunak
5. Communication - require walkthroughs and inspections
when appropriate; make extensive use of group
communication tools - groupware, wiki's, bug-tracking tools
and change management tools, intranet capabilities, etc.;
ensure that information/documentation is available and
up-to-date - preferably electronic, not paper; promote
teamwork and cooperation; use prototypes and/or
continuous communication with end-users if possible to
clarify expectations.
What are the attributes of good software?
• Maintainability (dapat dipelihara)
o Software bisa menangani perubahan spek kebutuhan
• Dependability (dapat diandalkan)
o Aman, selamat, tidak menyebabkan keruksakan fisik
• Efficiency (Efisien)
o Software mampu mengoptimalkan resource
• Acceptability (Kemampupakaian)
o Software bisa diterima user sebagaimana rancangan.
Mudah dimengerti, digunakan and compatible dengan
sistem yang lain
* Software Engineering 7th ed, Ian Sommerville
What are the key challenges facing software
engineering?
• Heterogeneity
o Mengembangkan teknik untuk membangun perangkat lunak yang dapat mengatasi platform heterogen dan lingkungan eksekusi;
• Delivery
o Mengembangkan teknik yang mengarah pada pengiriman lebih cepat dari perangkat lunak;
• Trust
o Mengembangkan teknik yang menunjukkan perangkat lunak yang dapat dipercaya oleh para penggunanya.
* Software Engineering 7th ed, Ian Sommerville
Professional and ethical responsibility
• Software engineering melibatkan tanggung jawab yang
lebih luas dari sekedar penerapan keterampilan teknis.
• Software engineer harus bertindak dengan cara yang
jujur dan etis, bertanggung jawab jika mereka ingin
dihormati sebagai profesional.
• Perilaku etis lebih dari sekedar penegakan hukum.
* Software Engineering 7th ed, Ian Sommerville
Issues of professional responsibility
• Confidentiality (Kerahasiaan)
o Engineers biasanya harus menghormati kerahasiaan
majikan atau klien mereka terlepas dari apakah
perjanjian kerahasiaan resmi telah ditandatangani atau
tidak.
• Competence (Kompetensi)
o Engineers harus menggambarkan tingkat kompetensi
mereka. Mereka seharusnya tidak menerima pekerjaan
yang diluar dari kompetensi mereka.
* Software Engineering 7th ed, Ian Sommerville
3/20/2019
8
Issues of professional responsibility
o Intellectual property rights (Hak kekayaan intelektual)
o Engineers harus menyadari hukum lokal yang mengatur
penggunaan kekayaan intelektual seperti paten, hak cipta, dll.
Mereka harus berhati-hati untuk memastikan bahwa
kekayaan intelektual pengusaha dan klien dilindungi.
o Computer misuse (penyalahgunaan komputer)
o Software engineers tidak harus menggunakan keterampilan
teknis mereka untuk menyalahgunakan komputer orang lain.
Penyalahgunaan komputer berkisar dari yang relatif sepele
(bermain game pada mesin client) dan yang sangat serius
(penyebaran virus).
* Software Engineering 7th ed, Ian Sommerville
Target Profesi
1. Computer Engineering (CE)
1. Indonesia: Jurusan Sistem Komputer atau Teknik
Komputer
2. Target: Lulusan mampu mendesain dan
mengimplementasikan sistem yang terintegrasi baik
software maupun hardware
2. Computer Science (CS)
1. Indonesia: Jurusan Ilmu Komputer
2. Target: Lulusan memiliki kemampuan yang cukup luas
dimulai dari penguasaan teori (konsep) dan pengembangan
software
Target Profesi
3. Information System (IS)
1. Indonesia: Jurusan Sistem Informasi
2. Target: Lulusan mampu menganalisa kebutuhan
(requirement) dan proses bisnis (business process), serta
mendesain sistem berdasarkan tujuan dari organisasi
4. Information Technology (IT)
1. Indonesia: Tidak ada (masuk ke jurusan teknik
informatika)
2. Target: Lulusan mampu merencanakan,
mengimplementasikan, mengkonfigurasi dan memaintain
infrastruktur teknologi informasi dalam organisasi
Target Profesi
5. Software Engineering (SE)
1. Indonesia: Tidak ada (masuk ke Jurusan Teknik
Informatika)
2. Lulusan mampu mengelola aktifitas pengembangan
software berskala besar dalam tiap tahapannya
(software development life cycle)
TERIMA KASIH
TUGAS BESAR 1. Bentuk kelompok dengan 2/3 orang
2. Cari 1 topik yang berbeda antara 1 kelompok dengan kelompok lainnya ( jika ada 2
kelompok yang sama temanya, maka nilai di bagi 2)
3. Jika ditemukan ada indikasi plagiarisme program maupun laporan maka nilai MK
ini E
Deskripsi Tugas Besar
1. Merancang software sederhana dengan default software(tambah, edit, hapus
data). Contoh: Program penggajian, program perpustakaan, program rental, dll.
2. Aplikasi berbasis dekstop atau mobile (Aplikasi web tidak diperbolehkan)
3. Menggunakan bahasa pemrograman VB, Java, Delphi, ….
4. Laporan dan presentasi setelah UTS, tapi boleh dicicil dan didiskusikan dari
sekarang
5. Membuat laporan mulai dari analisis, design, proses coding, dan proses testing (
template SKPL dan DPPL)
6. Presentasi (Demo Program)
Top Related