teknik informatika s1 -...

8
3/20/2019 1 Teknik Informatika S1 Disusun Oleh: Umi Rosyidah Teknik Informatika UDINUS [email protected]. 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)

Upload: truongdat

Post on 30-Apr-2019

231 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Teknik Informatika S1 - dinus.ac.iddinus.ac.id/repository/docs/ajar/2._Pengenalan_RPL_-_Rekayasa...(1) Perintah (program komputer) yang bila dieksekusi memberikan fungsi dan unjuk

3/20/2019

1

Teknik Informatika S1

Disusun Oleh:

Umi Rosyidah

Teknik Informatika UDINUS

[email protected].

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)

Page 2: Teknik Informatika S1 - dinus.ac.iddinus.ac.id/repository/docs/ajar/2._Pengenalan_RPL_-_Rekayasa...(1) Perintah (program komputer) yang bila dieksekusi memberikan fungsi dan unjuk

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

?

Page 3: Teknik Informatika S1 - dinus.ac.iddinus.ac.id/repository/docs/ajar/2._Pengenalan_RPL_-_Rekayasa...(1) Perintah (program komputer) yang bila dieksekusi memberikan fungsi dan unjuk

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.

Page 4: Teknik Informatika S1 - dinus.ac.iddinus.ac.id/repository/docs/ajar/2._Pengenalan_RPL_-_Rekayasa...(1) Perintah (program komputer) yang bila dieksekusi memberikan fungsi dan unjuk

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

Page 5: Teknik Informatika S1 - dinus.ac.iddinus.ac.id/repository/docs/ajar/2._Pengenalan_RPL_-_Rekayasa...(1) Perintah (program komputer) yang bila dieksekusi memberikan fungsi dan unjuk

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

Page 6: Teknik Informatika S1 - dinus.ac.iddinus.ac.id/repository/docs/ajar/2._Pengenalan_RPL_-_Rekayasa...(1) Perintah (program komputer) yang bila dieksekusi memberikan fungsi dan unjuk

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.

Page 7: Teknik Informatika S1 - dinus.ac.iddinus.ac.id/repository/docs/ajar/2._Pengenalan_RPL_-_Rekayasa...(1) Perintah (program komputer) yang bila dieksekusi memberikan fungsi dan unjuk

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

Page 8: Teknik Informatika S1 - dinus.ac.iddinus.ac.id/repository/docs/ajar/2._Pengenalan_RPL_-_Rekayasa...(1) Perintah (program komputer) yang bila dieksekusi memberikan fungsi dan unjuk

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)