• Tidak ada hasil yang ditemukan

REKAYASA PERANGKAT LUNAK 1

N/A
N/A
Protected

Academic year: 2022

Membagikan "REKAYASA PERANGKAT LUNAK 1"

Copied!
189
0
0

Teks penuh

(1)

MODUL MATA KULIAH

REKAYASA

PERANGKAT LUNAK 1

KP342 - 3 SKS

N

FAKULTAS TEKNOLOGI INFORMASI U N I V E R S I T AS BUDI LUH UR

J AK AR T A VERSI 1.0

TIM PENYUSUN

Noni Juliasari, M.Kom

Bima Cahya Putra, M.Kom

Basuki Hari Prasetyo, M.Kom

(2)

UNIVERSITAS BUDI LUHUR

Fakultas : Teknologi Informasi Diterbitkan : Januari 2022

Revisi ke : 1.0

PENGESAHAN

Rektor

Universitas Budi Luhur

Dekan

Fakultas Teknologi Informasi

(Dr. Ir. Wendi Usino, M.Sc., M.M.) (Dr. Deni Mahdiana, S.Kom, M.M, M.Kom)

(3)

Kata Pengantar

Puji syukur dan hormat, kami haturkan kehadirat Allah SWT, karena atas perkenan-Nya, sehingga kami dapat menyelesaikan Modul matakuliah Rekayasa Perangkat Lunak ini.

Penghargaan tertinggi dan ucapan terima kasih yang sebesar besarnya kepada seluruh sivitas akademika Fakultas Teknologi Universitas Budi Luhur, yang telah memberikan bantuan serta dukungan dalam menyusun Modul matakuliah ini.

Tim penyusun telah menyusun Modul Matakuliah ini semaksimal mungkin, namun kami menyadari bahwa penyusun tentunya tidak lepas dari salah dan khilaf semata. Tim penyusun sangat terbuka untuk berbagai masukan, ide dan saran dari berbagai pihak agar modul matakuliah ini bisa lebih baik lagi.

Besar harapan kami Modul matakuliah ini dapat bermanfaat sebagai bahan Ajar bagi mahasiswa di Fakultas Teknologi Informasi Universitas Budi Luhur.

Jakarta, Januari 2022

Tim Penyusun

(4)

Daftar Isi

1. PENDAHULUAN ... 11

1.1. Pengantar ... 11

1.2. Sejarah Rekayasa Perangkat Lunak ... 11

1.3. Definisi Rekayasa Perangkat Lunak ... 12

1.4. Ruang Lingkup Rekayasa Perangkat Lunak ... 14

1.5. Rekayasa Perangkat Lunak vs Rekayasa Sistem ... 16

1.6. Rekayasa Perangkat Lunak vs Ilmu Komputer ... 17

1.7. Kaitan nilai kebudiluhuran dalam mata kuliah ... 18

2. PERANGKAT LUNAK ... 22

1.1. Definisi Perangkat Lunak ... 22

1.2. Evolusi Perangkat Lunak ... 23

1.3. Jenis Perangkat Lunak ... 26

1.3.1. Jenis-jenis dari perangkat lunak berdasarkan domainnya ... 26

1.3.2. Jenis perangkat lunak juga dapat dibedakan berdasarkan fungsinya ... 28

1.3.3. Jenis perangkat lunak menurut target pasar ... 28

1.3.4. Jenis perangkat lunak berdasarkan distribusinya ... 29

3. SEJARAH DAN KONSEP RPL ... 34

1.1. Permasalahan seputar pengembangan Perangkat Lunak ... 34

1.2. Urgensi dan Konsep Rekayasa Perangkat Lunak ... 35

1.3. Aktifitas Dasar Pada Rekayasa Perangkat Lunak ... 39

4. KARAKTERISTIK DAN MITOS PERANGKAT LUNAK ... 45

1.1. Karakteristik Perangkat Lunak ... 45

1.1.1. Peranan ganda perangkat lunak ... 45

1.1.2. Karakteristik Perangkat Lunak ... 45

1.1.3. Perbedaan perangkat keras dan perangkat lunak ... 46

1.2. Karakteristik Perangkat Lunak yang baik ... 47

1.3. Mitos Pengembangan Perangkat Lunak ... 48

1.3.1. Mitos di sisi manajemen ... 48

1.3.2. Mitos di sisi pelanggan (Customer) ... 49

1.3.3. Mitos Praktisi ... 50

5. SOFTWARE PROCESS ... 56

1.1. Definisi ... 56

1.2. Framework Software Process ... 58

1.2.1. Framework Activities ... 59

1.2.2. Umbrella Activities ... 60

1.2.3. Process Flow ... 61

1.2.4. Process Pattern ... 63

1.3. Karakteristik Software Process Yang Baik ... 63

(5)

6. REQUIREMENT ENGINEERING ... 68

1.1. Pengantar ... 68

1.2. Definisi Rekayasa Kebutuhan PL ... 71

1.3. Kebutuhan Perangkat Lunak ... 74

1.3.1. Definisi Kebutuhan ... 74

1.3.2. Jenis Kebutuhan Perangkat Lunak... 74

1.4. Dokumentasi Software Requirement Specification ... 76

7. TEKNIK REKAYASA KEBUTUHAN ... 83

1.1. Pengantar ... 83

1.2. Elisitasi(Pengumpulan) Kebutuhan ... 83

1.2.1. Tujuan Elisitasi ... 83

1.2.2. Masalah dalam elisitasi ... 83

1.2.3. Langkah-Langakah Elisitasi ... 84

1.2.4. Model Elisitasi Kebutuhan ... 84

1.2.5. Teknik Elisitasi Kebutuhan ... 85

1.3. Analisis Kebutuhan ... 89

1.3.1. Tujuan analisis kebutuhan ... 89

1.3.2. Prinsip analisis kebutuhan ... 90

1.3.3. Tahapan analisis kebutuhan (Sommerville, 2004) : ... 90

1.3.4. Teknik analisis kebutuhan ... 92

UJIAN TENGAH SEMESTER ... 95

9. ACTIVITY DIAGRAM ... 98

1.1. Pengantar ... 98

1.2. Fungsi Activity Diagram ... 98

1.3. Simbol-simbol pada Activity Diagram ... 99

1.4. Petunjuk Membuat Diagram Aktivitas ... 103

10. STUDI KASUS ACTIVITY DIAGRAM ... 112

1.1. Studi Kasus Sistem Persediaan Obat ... 112

Buatlah Activity Diagram Sistem Persediaan Obat yang mempunyai urutan proses bisnis sebagai berikut :... 112

Pembahasan : ... 113

Activity Diagram Obat Masuk ... 113

Activity Diagram Obat Keluar ... 113

1.2. Studi Kasus Activity Diagram Apotik ... 114

Pembahasan : ... 114

1.3. Studi Kasus Activity Diagram Pemesanan ... 115

Pembahasan: ... 115

1.4. Studi Kasus Activity Diagram Suplier ... 116

1.5. Studi Kasus Activity Diagram Cetak Laporan ... 117

1.6. Studi Kasus Activity Diagram Perpustakaan ... 118

11. USECASE DIAGRAM ... 123

1.1. Pengantar ... 123

(6)

1.2. Aktor ... 124

1.3. Usecase ... 126

1.4. Association ... 126

1.4.1. Association antara actor dan use case ... 127

1.4.2. Association antara use case ... 127

1.5. Generalization/Inheritance antara use case ... 130

1.1. Studi Kasus ... 142

1.2. Penyelesaian Studi Kasus menjadi sebuah Use Case Diagram ... 143

13. CLASS DIAGRAM ... 156

1.1. Pengantar ... 156

1.2. Simbol Class Diagram ... 156

1.3. Object ... 157

1.3.1. Karakteristik Object ... 158

1.3.2. Cara menemukan Object ... 158

1.4. Candidate Class ... 158

1.5. Class ... 159

1.6. Attribute ... 161

1.7. Methods / Operasi ... 161

1.8. Visibility / Sifat Class ... 161

1.9. Stereotype Class ... 162

1.10. Relationship ... 162

1.11. Asosiasi ... 163

1.12. Aggregation ... 163

1.13. Multiplicity ... 164

1.14. Dependency ... 166

1.15. Inheritance ... 166

1.16. Generalization ... 167

14. STUDI KASUS CLASS DIAGRAM ... 171

1.1. STUDI KASUS 1 : Penyewaan Mobil. ... 171

1.2. Studi Kasus 2 : Sistem Kepegawaian ... 173

15. PRESENTASI TUGAS KELOMPOK ... 182

1.1. Ruang Lingkup Tugas ... 182

1.2. Konsep Penilaian ... 188

(7)

MATERI

Pertemuan Topik Capaian Pembelajaran

1 Pengantar perkuliahan dan materi kebudiluhuran

1. Mahasiswa mampu memahami sistem perkuliahan dan 9 Nilai Kebudiluhuran

2. Mahasiswa mengetahui perangkat lunak dan perkembangannya

2 Perangkat Lunak Mahasiswa mengetahui

perangkat lunak dan perkembangannya

3 Konsep RPL Memahami sejarah dan

konsep rekayasa perangkat lunak

4 Karakteristik Perangkat Lunak dan mitos pengembangannya

1. Mahasiswa mengetahui mitos seputar

pengembangan perangkat lunak

2. Mahasiswa memahami peranan perangkat lunak serta karakteristik dari produk perangkat lunak yang baik

5 Software Process Mahasiswa mengetahui dan

mampu memahami proses dalam pengembangan perangkat lunak

6 Rekayasa Kebutuhan Mahasiswa mampu

memahami kebutuhan perangkat lunak dan mampu mendokumentasikan

7 Teknik Analisa Kebutuhan Mahasiswa mampu

memahami berbagai teknik untuk melakukan

pengumpulan kebutuhan perangkat lunak dan menganalisanya 8 Ujian Tengah Semester (UTS)

9 Diagram Aktifitas Mahasiswa mampu

memodelkan proses bisnis dan alur aktifitas dalam bentuk diagram aktifitas 10 Studi Kasus Diagram Aktifitas Mahasiswa mampu

menggunakan activity

diagram dalam memecahkan suatu studi kasus

11 Usecase Diagram Mahasiswa mampu

memodelkan kebutuhan sistem dalam bentuk usecase diagram

12 Studi Kasus Diagram Usecase Mahasiswa mampu menggunakan usecase

(8)

diagram dalam memecahkan suatu studi kasus

13 Class DIagram Mahasiswa mampu

memodelkan class diagram 14 Studi Kasus Class Diagram Mahasiswa mampu

menggunakan class diagram dalam memecahkan suatu studi kasus

15 Presentasi Tugas Kelompok Mahasiswa mampu

memaparkan hasil pengerjaan tugas kelompoknya dengan memasukkan kriteria nilai kebudiluhuran dalam

penilaian presentasi kelompok 16 Ujian Akhir Semester (UAS)

(9)

UNIVERSITAS BUDI LUHUR

FAKULTAS TEKNOLOGI INFORMASI

PERTEMUAN 1 PENDAHULUAN

Capaian Pembelajaran : 1. Mahasiswa mampu memahami sistem perkuliahan dan 9 Nilai Kebudiluhuran 2. Mahasiswa mengetahui perangkat lunak

dan perkembangannya

Sub Pokok Bahasan : 1.1. Penjelasan ruang lingkup perkuliahan (RPS)

1.2. Penjelasan kontrak perkuliahan dan tata tertib

1.3. Penjelasan 9 Nilai Kebudiluhuran 1.4. Pengantar Rekayasa Perangkat Lunak

dan Cakupannya

Daftar Pustaka : 1. Kung, David C., 2014. Object Oriented Software Engineering: An Agile

Methodology, McGraw-Hill

2. Pressman, Roger S. 2010. Software Engineering : A Practitioner's

Approach,7th, McGraw-Hill

3. Schach, Stephen R. 2010. Object Oriented and Classical Software Engineering, 8th, McGraw-Hill 4. Sommerville, Ian. 2010. Software

Engineering, 9th, Pearson Education

(10)

5. Software Engineering Body of Knowledge

(SWEBOK). 2004

(11)

1. PENDAHULUAN

1.1. Pengantar

Dalam dunia teknologi informasi, kadang kita mendengar istilah tentang software atau perangkat lunak komputer. Dikatakan bahwa, keberadaaan hardware atau perangkat keras komputer tanpa ditunjang oleh perangkat lunak maka komputer tidak dapat digunakan, begitupun sebaliknya. Nama lain dari perangkat lunak komputer adalah software. Istilah “Software” pertama kali dicetuskan dalam versi cetak oleh John W.

Tukey melalui tulisannya berjudul The Teaching of Concrete Mathematics di jurnal The American Mathematical Monthly, vol. 65, No. 1 bulan Januari 1958 hlm. 1-9.

Selanjutnya istilah ini sering digunakan sebagai software aplikasi. Dimana perangkat lunak (software) ini kemudian menjelma menjadi bagian penting dalam sisi kehidupan manusia terutama dalam kaitan pemrosesan dengan bantuan mesin (sumber daya) komputer.

1.2. Sejarah Rekayasa Perangkat Lunak

Rekayasa perangkat lunak telah berkembang sejak pertama kali diciptakan pada tahun 1940-an hingga kini. Fokus utama pengembangannya adalah untuk mengembangkan praktek dan teknologi untuk meningkatkan produktivitas para praktisi pengembang perangkat lunak dan kualitas aplikasi yang dapat digunakan oleh pemakai.

1945 - 1965: Awal

Istilah software engineering digunakan pertama kali pada akhir 1950-an dan awal 1960-an. Saat itu, masih terdapat debat tajam mengenai aspek engineering dari pengembangan perangkat lunak.

Pada tahun 1968 dan 1969, komite sains NATO mensponsori dua konferensi tentang rekayasa perangkat lunak, yang memberikan dampak kuat terhadap perkembangan rekayasa perangkat lunak. Banyak yang menganggap bahwa dua konferensi inilah yang menandai awal resmi profesi rekayasa perangkat lunak.

1965 - 1985: krisis perangkat lunak

Pada tahun 1960-an hingga 1980-an, banyak masalah yang ditemukan para praktisi

(12)

pengembangan perangkat lunak. Banyak projek yang gagal, hingga masa ini disebut sebagai krisis perangkat lunak. Kasus kegagalan pengembangan perangkat lunak terjadi mulai dari projek yang melebihi anggaran, hingga kasus yang mengakibatkan kerusakan fisik dan kematian. Salah satu kasus yang terkenal antara lain meledaknya roket Ariane akibat kegagalan perangkat lunak.

1985 - kini: tidak ada senjata pamungkas

Selama bertahun-tahun, para peneliti memfokuskan usahanya untuk menemukan teknik jitu untuk memecahkan masalah krisis perangkat lunak. Berbagai teknik, metode, alat, proses diciptakan dan diklaim sebagai senjata pamungkas untuk memecahkan kasus ini. Mulai dari pemrograman terstruktur, pemrograman berorientasi object, perangkat pembantu pengembangan perangkat lunak (CASE tools), berbagai standar, UML hingga metode formal diagung-agungkan sebagai senjata pamungkas untuk menghasilkan software yang benar, sesuai anggaran dan tepat waktu.

Pada tahun 1987, Fred Brooks menulis artikel No Silver Bullet, yang berproposisi bahwa tidak ada satu teknologi atau praktek yang sanggup mencapai 10 kali lipat perbaikan dalam produktivitas pengembangan perangkat lunak dalam tempo 10 tahun. Sebagian berpendapat, no silver bullet berarti profesi rekayasa perangkat lunak dianggap telah gagal. Namun sebagian yang lain justru beranggapan, hal ini menandakan bahwa bidang profesi rekayasa perangkat lunak telah cukup matang, karena dalam bidang profesi lainnya pun, tidak ada teknik pamungkas yang dapat digunakan dalam berbagai kondisi

1.3. Definisi Rekayasa Perangkat Lunak

Istilah software engineering digunakan pertama kali pada akhir 1950-an dan awal 1960-an. Saat itu, masih terdapat perdebatan tajam mengenai aspek engineering dari pengembangan perangkat lunak. Pada tahun 1968 dan 1969, komite sains NATO mensponsori dua konferensi tentang rekayasa perangkat lunak, yang memberikan dampak kuat terhadap pengembangan rekayasa perangkat lunak. Banyak yang menganggap dua konferensi inilah yang menandai awal resmi profesi rekayasa

(13)

perangkat lunak.

Pada tahun 1960-an hingga 1980-an, banyak masalah yang ditemukan para praktisi pengembangan perangkat lunak. Banyak project yang gagal, hingga masa ini disebut sebagai krisis perangkat lunak. Kasus kegagalan pengembangan perangkat lunak terjadi mulai dari project yang melebihi anggaran, hingga kasus yang mengakibatkan kerusakan fisik dan kematian. Salah satu kasus yang terkenal antara lain meledaknya roket Ariane akibat kegagalan perangkat lunak. Selama bertahun-tahun, para peneliti memfokuskan usahanya untuk menemukan teknik jitu untuk memecahkan masalah krisis perangkat lunak.

Pada tahun 1969 Fritz Bauer memberikan definisi rekayasa perangkat lunak adalah sebagai berikut :

“The establishment and use of sound engineering principles in order to obtain economically software that is reliable and work efficiently on real machines.”

Hampir setiap pembaca tergoda untuk menambah sendiri definisi tersebut, karena definisi tersebut hanya menyinggung sedikit saja tentang aspek teknis dan kualitas perangkat lunak, dan tidak secara langsung menyinggung kebutuhan dan kepuasan pelanggan, mengabaikan pencamtuman pentingnya pengukuran dan matriks, tidak menyinggung pentingnya sebuah proses. Apakah sound enginnering application yang dapat diaplikasikan kepada pengembangan komputer? Bagaimana kita secara ekonomis membangun perangkat lunak sehingga menjadi dapat diandalkan dan reliable? Apakah yang dibutuhkan untuk menciptakan program komputer yang bekerja secara efisien pada lebih dari satu mesin riril yang berbeda? Pertanyaan-pertanyaan ini masih terus menjadi tantangan bagi pengembangan perangkat lunak.

Pada tahun 1985 Richard Fairly mendefinisikan rekayasa perangkat lunak sebagai berikut :

“The technological and managerial dicipline concernment with systematic production and maintenance of software products that are

developed and modified on time and within cost estimates.”

(14)

Definisi ini sudah menyinggung aspek teknis pengembangan perangkat lunak, pengelolaan tim yang terlibat dalam pengembangan tersebut, pemeliharaan perangkat lunak yang telah dikembangkan, serta waktu serta biaya pengembangan.

Kemudian pada tahun 1993, IEEE mengembangkan definisi yang lebih komprehensif yaitu sebagai berikut : (1) Aplikasi dari sebuah pendekatan kuantifiabel, disiplin, dan sistematis terhadap pengembangan, operasi, dan pemeliharaan perangkat lunak; yaitu aplikasi dan rekayasa perangkat lunak.

Definisi lain dari perangkat lunak adalah suatu disiplin yang mengintegrasikan proses/prosedur, metode, dan perangkat tools untuk pembangunan perangkat lunak komputer (Pressman, 97).

1.4. Ruang Lingkup Rekayasa Perangkat Lunak

Sesuai dengan definisi yang telah disampaikan sebelumnya, maka ruang lingkup RPL dapat digambarkan sebagai berikut:

Gambar 1. Ruang lingkup Rekayasa Perangkat Lunak

 Software Requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak

(15)

 Software Design mencakup proses penampilan arsitektur, komponen, antar muka, dan karakteristik lain dari perangkat lunak

 Software Construction berhubungan dengan detail pengembangan perangkat lunak, termasuk algoritma, pengkodean, pengujian dan pencarian kesalahan

 Software Testing meliputi pengujian pada keseluruhan perilaku perangkat lunak

 Software Maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan

 Software Configuration Management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu

 Software Engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak

 Software Engineering Tools And Methods mencakup kajian teoritis tentang alat bantu dan metode RPL

 Software Engineering Process berhubungan dengan definisi, implementasi pengukuran, pengelolaan, perubahan dan perbaikan proses RPL

 Software Quality menitik beratkan pada kualitas dan daur hidup perangkat lunak

Rekayasa perangkat lunak merupakan suatu kegiatan untuk menghasilkan suatu produk, sehingga harus berada pada satu komitmen dasar menuju kualitas, seperti diperlihatkan pada gambar 2. Untuk itu fokus kualitas menjadi batu landasanya. Lingkup kedua adalah proses. Proses-proses rekayasa perangkat lunak adalah perekat yang menjaga bentangan teknologi secara bersama-sama dan memungkinkan perkembangan perangkat lunak yang tepat waktu dan rasional.

Proses-proses tersebut membatasi kerangka kerja untuk serangkaian area proses kunci yang harus dibangun demi keefektifan penyampaian teknologi pengembangan perangkat lunak. Area proses kunci ini membentuk dasar bagi kontrol manajemen proyek pengembangan perangkat lunak serta membangun kontek dimana metode teknis diaplikasikan sehingga sebuah produk yang berkualitas bisa dihasilkan.

(16)

Gambar 2. Ruang Lingkup Rekayasa Perangkat Lunak

Lingkup berikutnya adalah metodologi, yaitu sekumpulan metode untuk melaksanakan setiap tahap pengembangan perangkat lunak, yang meliputi : perencanaan dan estimasi proyek, analisa kebutuhan, prosedur algoritma dan arsitektur program, menulis program (coding), pengujian (testing), dan pemeli- haraan (maintenance). Terakhir adalah perangkat bantu (tools). Perangkat bantu yang dimaksus adalah suatu perangkat, baik lunak atau keras, otomatis maupun semi-otomatis yang bisa digunakan untuk proses pengembangan perangkat lunak.

Tools untuk rekayasa perangkat lunak disebut computer-aided sofware engineering (CASE). CASE ini terus dikembangkan untuk menciptakan lingkungan rekayasa perangkat lunak sehingga analog dengan CAD/CAE (computer-aided design/engineering) pada pengembangan perangkat keras.

1.5. Rekayasa Perangkat Lunak vs Rekayasa Sistem

Rekayasa sistem adalah kumpulan konsep, pendekatan dan metodologi, serta alat- alat bantu (tools) untuk merancang dan menginstalasi sebuah kompleks sistem.

Kompleksitas sistem bisa diakibatkan karena 2 hal yaitu kompleksitas dinamis dan kompleksitas detail. Kompleksitas detail ketika komponen atau sub-sistem yang dirancang tidak hanya banyak tetapi ditambah pula dengan multi-sourcing (multi suplier), multi standard, multi criteria dan lainnya.

Dalam lingkup pengembangan perangkat lunak, rekayasa Sistem adalah kegiatan untuk menentukan spesifikasi, perancangan, pengimplementasian, penyebaran, dan

(17)

pemeliharaan sistem sebagai satu kesatuan. Sehingga, rekayasa sistem atau lebih tepatnya, rekayasa sistem berbasis komputer berhubungan dengan semua aspek pengembangan dan evolusi sistem kompleks dimana perangkat lunak memainkan peran utama. Rekayasa sistem merupakan disiplin yang lebih tua dibandingkan dengan rekayasa perangkat lunak. Orang telah melakukan spesifikasi dan perakitan sistem industri secara kompleks seperti kereta api dan pabrik kimia selama lebih dari 100 tahun. Akan tetapi, seiring dengan bertambahnya persentase perangkat lunak pada sistem, maka teknik rekayasa perangkat lunak seperti pemodelan use – case, manajemen konfigurasi, dan lain sebagainya sering dipergunakan dalam proses rekayasa sistem

Sommerville mendefinisikan sistem sebagai sekumpulan komponen yang saling berhubungan dan bekerja sama untuk mencapai tujuan. Definisi umum ini mencakup banyak jenis sistem. Sebagai contoh, sistem yang sederhana seperti sistem pencatatan skor mungkin hanya terdiri dari 2 atau 3 modul perangkat lunak.

Sebaliknya, sistem kontrol lalu lintas dapat terdiri dari ratusan perangkat lunak dan keran, ditambah manusia sebagai pemakainya, yang membuat keputusan berdasarkan informasi dari sistem

Rekayasa sistem berkaitan dengan semua aspek dalam pembangunan sistem berbasis komputer termasuk hardware, rekayasa PL dan proses. RPL adalah bagian dari rekayasa sistem yang meliputi pembangunan PL, infrastruktur, kontrol, aplikasi dan database pada sistem.

1.6. Rekayasa Perangkat Lunak vs Ilmu Komputer

Software engineering adalah bagaimana merancang dan membangun sebuah perangkat lunak serta perawatan dan pengembangannya sesuai kebutuhan manusia, Computer Science adalah bagaimana ilmu dan teknologi komputer itu dieksplorasi pemanfaatannya untuk kebutuhan manusia sedangkan systen engineering bertujuan untuk menghasilkan sistem yang memenuhi kebutuhan pelanggan, meningkatkan probabilitas keberhasilan sistem, mengurangi risiko dan mengurangi total biaya siklus- hidup.

(18)

1.7. Kaitan nilai kebudiluhuran dalam mata kuliah

Nilai kebudiluhuran merupakan falsafah nilai-nilai etika dan moral yang dikembangkan oleh Universitas Budi Luhur dalam rangka mencapai visinya untuk mencetak generasi yang cerdas berbudi luhur. Dalam konteks transfer nilai-nilai kebudiluhuran ini ke dalam mata kuliah, terdapat 9 nilai yang harus diinternalisasikan ke dalam proses pembelajaran mata kuliah, antara lain :

1) Sabar Mensyukuri

Sabar Mensyukuri merupakan sikap menahan diri atau menerima, yang berarti tidak ada upaya untuk mengelak dengan perasaan senang saat menerima anugerah, baik berupa kesenangan atau kesedihan dengan dasar bahwa segala sesuatu yang baik atau buruk merupakan buah dari perbuatan yang sudah kita lakukan. Misal pada saat ada masalah tidak marah, tidak mudah putus asa.

Syukuri apa saja yang kita terima dan terus berusaha. Berserah dan mendekatkan diri kepada Tuhan.

2) Cinta Kasih

Cinta Kasih merupakan perasaan suka yang mendalam yang diwujudkan secara nyata dalam bentuk kepedulian terhadap sesama manusia, hewan, tumbuhan, dan lingkungan atau alam sekitarnya.

3) Suka menolong

Suka Menolong merupakan tindakan untuk meringankan beban atau penderitaan orang lain, tidak terbatas pada pemberian materi atau benda saja, tetapi bisa juga sesuatu yang non materil. Suka menolong bukan berarti asal menolong, namun pertolongan tersebut harus menimbulkan rasa senang bagi orang yang ditolong ataupun yang menolong.

4) Jujur

Jujur merupakan sikap atau sifat seseorang yang menyatakan sesuatu dengan sesungguhnya dan apa adanya, tidak ditambahi atau dikurangi, sesuai dengan fakta dan obyektif sehingga dapat dipercaya semua ucapannya.

5) Tanggungjawab

Tanggung Jawab merupakan kesadaran manusia akan tingkah laku atau perbuatan baik yang disengaja atau tidak disengaja.

(19)

6) Rendah Hati

Rendah Hati merupakan sifat pribadi seseorang yang dapat memposisikan sama antara dirinya dengan orang lain, merasa tidak lebih pintar, baik, mahir, serta tidak merasa lebih tinggi atau mulia dan juga dapat menghargai orang lain.

7) Toleransi

Toleransi merupakan suatu sikap atau perilaku seseorang menerima pihak lain dan menghargai perbedaan atau tindakan orang lain. Toleransi dapat dilihat dari berbagai aspek, selama itu tidak melanggar unsur SARA sikap toleransi sangat dibutuhkan.

8) Kerjasama

Kerja Sama merupakan kegiatan yang dilakukan dengan orang lain, dengan cara menyatukan kekuatan untuk mencapai satu tujuan yang diinginkan bersama.

9) Sopan santun

Kerja Sama merupakan kegiatan yang dilakukan dengan orang lain, dengan cara menyatukan kekuatan untuk mencapai satu tujuan yang diinginkan bersama.

Internalisasi nilai-nilai kebudiluhuran ini jelas sangat dibutuhkan dalam proses pengembangan perangkat lunak. Karena memproduksi perangkat lunak yang sejatinya dimaksudkan untuk memberi solusi dari permasalahan individu atau organisasi, pasti akan selalu berhadapan dengan kondisi-kondisi yang boleh jadi tidak mudah. Pun pada saat kita bekerja dalam tim pengembangan perangkat lunak dibutuhkan sikap kepedulian untuk saling memotivasi keberhasilan dari capaian yang dituju. Dan selama proses tersebut nilai-nilai kebudiluhuran tersebut akan sangat bermanfaat untuk menunjang keberhasilan kinerja tim seperti kerjasama, toleransi, cinta kasih, saling menolong dan lain-lain tersebut.

Rangkuman

Dari pembahasan pada bab 1 ini kita sudah mengetahui bahwa keberadaan perangkat lunak saat ini sudah semakin menjamur dan eksistensinya sangat dibutuhkan sejalan dengan kemajuan alat komputasi serta tuntutan pemrosesan yang cepat dan akurat di segala sisi. Sejalan dengan hal tersebut, maka perkembangan industri perangkat lunak juga akan semakin melahirkan berbagai jenis produk untuk menjawab berbagai kebutuhan fungsi yang dibutuhkan manusia saat ini.

(20)

Latihan

1. Tuliskanlah dengan contoh penerapan setiap nilai-nilai kebudiluhuran dalam implementasi rekayasa perangkat lunak!

(21)

UNIVERSITAS BUDI LUHUR

FAKULTAS TEKNOLOGI INFORMASI

PERTEMUAN 2

PERANGKAT LUNAK

Capaian Pembelajaran : Mahasiswa mengetahui perangkat lunak dan perkembangannya

Sub Pokok Bahasan : 1.1. Definisi dan perkembangan perangkat lunak

1.2. Jenis-jenis produk perangkat lunak Daftar Pustaka : 1. Kung, David C., 2014. Object Oriented

Software Engineering: An Agile Methodology, McGraw-Hill

2. Pressman, Roger S. 2010. Software Engineering : A Practitioner's

Approach,7th, McGraw-Hill

3. Schach, Stephen R. 2010. Object Oriented and Classical Software Engineering, 8th, McGraw-Hill 4. Sommerville, Ian. 2010. Software

Engineering, 9th, Pearson Education 5. Software Engineering Body of Knowledge

(SWEBOK). 2004

(22)

2. PERANGKAT LUNAK

Saat ini, industri perangkat lunak besar telah menjadi faktor dominan di ekonomi dari dunia industri. Sebuah software atau perangkat lunak merupakan jembatan penghubung yang menghubungkan antara pengguna dengan hardware sehingga dapat melakukan suatu perintah tertentu. Jadi, tanpa adanya software maka komputer hanyalah sebuah mesin yang tidak bisa menjalankan perintah apapun dari user. Tim spesialis perangkat lunak, masing-masing berfokus pada satu bagian dari teknologi yang dibutuhkan untuk memberikan aplikasi yang kompleks, menggantikan programmer dari era sebelumnya.

Rekayasa perangkat lunak adalah pendekatan yang sistematis terhadap pengembangan, pengoperasian, pemeliharaan dan penyelesaian produk (retirement) perangkat lunak. Rekayasa Perangkat Lunak merupakan penerapan sains dan matematika dimana kemampuan peralatan komputer berguna bagi manusia melalui program komputer, prosedur, dan dokumentasi terkait. Tujuan dasar rekayasa perangkat lunak adalah untuk mengembangkan metode dan prosedur pengembangan perangkat lunak yang dapat meningkatkan sistem yang besar dan dapat digunakan secara konsisten untuk menghasilkan perangkat lunak berkualitas tinggi dengan biaya rendah dan dengan siklus waktu yang kecil.

1.1. Definisi Perangkat Lunak

• Perangkat Lunak adalah (1) Instruksi-instruksi (program komputer) yang ketika dijalankan menyediakan fitur-fitur, fungsi-fungsi, dan kinerja-kinerja yang dikehendaki, (2) struktur data yang memungkinkan program-program memanipulasi informasi, dan (3) informasi deskriptif pada salinan tercetak dan bentuk-bentuk maya yang menggambarkan pengoperasian dan penggunaan program-program (Roger S.Pressman, 2010).

• Menurut definisi IEEE Institute of Electrical Enggineers, Perangkat lunak adalah Program komputer, prosedur, dan dokumentasi yang menyertai serta data yang digunakan untuk mengoprasikan sistem komputer (IEEE Standard Glossary of Software Engineering Therminology, 1990).

(23)

• Definisi IEEE tersebut hampir identik dengan definisi ISO. Perangkat lunak terdiri dari 4 komponen (ISO, 1997, Sec. 3.11 an ISO/IEC 9000-3 Sec. 3.14), yaitu : 1. Program Komputer

2. Prosedur 3. Dokumentasi

4. Data yang diperlukan agar perangkat lunak beroperasi

1.2. Evolusi Perangkat Lunak

Perkembangan perangkat lunak dapat dibagi menjadi 4 tahap yaitu tahap pertama dimulai pada awal tahun 1950-an sampai pertengahan tahun 1960-an, tahap kedua dimulai pada pertengahan tahun 1960-an sampai awal tahun 1970-an, tahap ketiga dimulai pertengahan tahun 1970-an sampai awal tahun 1990-an dan tahap keempat dimulai pada tahun 1990-an sampai tahun 2000..

Tabel 1. Evolusi Perangkat Lunak

Era awal Era Kedua Era Ketiga Era Keempat

Tahun 1950 – pertengahan 1960

Pertengahan tahun 1960 – 1970

Pertengahan tahun 1970 – 1980

Tahun 1990 – 2000

• Orientasi batch

• Distribusi terbatas

• Perangkat lunak kustomisasi

• Multiuser/

multitasking

• Realtime

• Database

• Perangkat lunak menjadi produk

• Sistem terdistribusi

• Embedded inteligence

• Perangkat keras biaya rendah

• Sistem desktop bertenaga kuat

• Teknologi berorientasi obyek

• Sistem pakar

• Jaringan syaraf tiruan

• Komputasi paralel

• Komputer Jaringan

(24)

Perkembangan perangkat lunak bisa dilihat pada tabel 1. Pada masa awal era komputer, penggunaan komputer saat itu masih dilakukan secara langsung, sebuah program untuk sebuah mesin untuk tujuan tertentu. Pada era ini,perangkat lunak merupakan satu kesatuan dengan perangkat kerasnya. Penggunaan komputer dilakukan secara langsung dan hasil yang selesai dikerjakan komputer berupa print out. Pemrosesan dilakukan dengan mekanisme batch procesing, dimana model pengolahan data, dengan menghimpun data terlebih dahulu, dan diatur pengelompokkan datanya dalam kelompok-kelompok yang disebut batch. Tiap batch ditandai dengan identitas tertentu, serta informasi mengenai data-data yang terdapat dalam batch tersebut. Setelah data-data tersebut terkumpul dalam jumlah tertentu, data-data tersebut akan langsung diproses. Pada masa itu perangkat lunak dirancang secara khusus untuk aplikasi tertentu saja dan hanya memiliki areal distribusi yang terbatas. Produk perangkat lunak yang dijual kepada pelanggan atau masyarakat masih langka. Kebanyakan dikembangkan dan digunakan oleh orang atau organisasi yang sama, dibuat untuk dipakai sendiri.

Era kedua evolusi sistem komputer antar pertengahan tahun 1960 dan 1970-an.

Komputer sudah banyak digunakan dan terjangkau oleh kalangan industri dan perusahaan yang membawa pengaruh terhadap perkembangan perangkat lunak.

Kemampuan multitasking (banyak program) dan multi user (banyak pengguna) sudah dikenal juga sistem basis data. Sistem multiprogram dan multiuser memperkenalkan konsep baru interaksi manusia dan mesin. Teknik interaktif membuka sebuah dunia aplikasi yang baru serta tingkat kecanggihan perangkat lunak dan perangkat keras yang baru pula. Sistem real-time mampu melakukan pengontrolan dalam menghasilkan output tidak lagi dalam skala menit, melainkan detik. Kemajuan dalam penyimpanan on-line membawa ke generasi pertama sistem memanajemen database. Pada era kedua ini juga ditandai dengan kehadiran software-house.

Produk perangkat lunak didistribusikan ke pasar yang lebih luas dan multidisiplin.

Program mainframe dan minikomputer didistribusikan kepada masyarakat luas.

Pengusaha, pemerintah, industri, serta akademisi masing-masing mengembangkan paket perangkat lunak paling mewah dengan mengeruk banyak uang.

(25)

Perangkat lunak pada era ketiga sudah berkembang untuk memenuhi kebutuhan individu. Harga perangkat lunak juga sudah terjangkau oleh individu. Perangkat lunak dapat dibedakan menjadi perangkat lunak sistem yang menangani perangkat internal dan perangkat lunak aplikasi yang digunakan secara langsung oleh penggunannya untuk keperluan tertentu. Otomatisasi yang ada di dalam perangkat lunak mengarah ke suatu jenis kecerdasan buatan. Oleh sebab itu, perangkat lunak pada era ini mengalami perkembangan proses berikut :

1) Sistem mulai tersebar ke beberapa kalangan masyarakat.

2) Software mengalami kecerdasan yang mempermudah penggunaannya.

3) Harga setiap software mulai terjangkau oleh individu.

Pada era keempat, perangkat lunak sudah terdapat di mana-mana, mendominasi dari perkembangan perangkat keras. Tidak hanya pada sebuah superkomputer dengan 25 prosesornya, sebuah komputer genggampun telah di lengkapi dengan perangkat lunak yang dapat di sinkronkan dengan PC. Tidak hanya komputer, bahkan peralatan seperti telepon, TV, hingga ke mesin cuci, AC dan microwave, telah ditanamkan perangkat lunak untuk mengatur operasi peralatan itu. Hebatnya lagi adalah setiap peralatan itu akan mengarah pada suatu saat kelak akan dapat saling terhubung.

Pembuatan sebuah perangkat lunak bukan lagi pekerjaan segelentir orang, tetapi telah menjadi pekerjaan banyak orang, dengan beberapa tahapan proses yang melibatkan berbagai disiplin ilmu dalam perancangannya. Tingkat kecerdasan yang di tunjukkan oleh perangkat lunak pun semakin meningkat, selain permasalahan teknis, perangkat lunak sekarang mulai bisa mengenal suara dan gambar. Kecerdasan perangkat lunak pada era ini membuat proses perkembangannya semakin luas menjadi :

1) Sistem Desktop 2) Teknologi Objek 3) Sistem Pakar

4) Pemrosesan Paralel 5) Jaringan Komputer

(26)

1.3. Jenis Perangkat Lunak

1.3.1. Jenis-jenis dari perangkat lunak berdasarkan domainnya antara lain : 1) System Software

Perangkat lunak sistem. Sekumpulan program untuk melayani program- program. Penggunaannya biasanya untuk operasional fungsi komputer secara bersama yang memerlukan penjadwalan, resources sharing serta manajemen proses.

Yang termasuk system software antara lain : a. Sistem Operasi

Fungsi dari sistem operasi adalah sebagai penghubung dan pengelola perangkat keras dengan perangkat lunak untuk menjalankan fungsinya.

Contoh sistem operasi pada komputer antara lain : Windows, Linux, Unix, Macintosh. Sementara contoh sistem operasi pada smartphone misalnya : Android, IOS, Blackberry

b. Kompiler

Program komputer yang berguna untuk menerjemahkan program komputer yang ditulis dalam bahasa pemrograman tertentu menjadi program yang ditulis dalam bahasa pemrograman lain. Kompiler menerima masukan berupa kode sumber dan menghasilkan bahasa tingkat rendah. Misalnya kompilator semacam bahasa Pascal, C++, BASIC, FORTRAN, Visual Basic, Visual C#, Java, xBase, atau COBOL.

c. Program Utility

Fungsi dari utility untuk membantu menganalisis, mengkonfigurasi, mengoptimalkan atau mempertahankan komputer. Misalnya :

• Disk defragmenter : Sebuah program untuk membantu merpaihkan penempatan data di dalam harddisk, setelah rapih efeknya adalah kecepatan dalam mencari data lebih efisien karena tidak berpencar lagi.

Dengan kata lain kita bisa artikan bahwa Disk Defragmenter ini sangat berguna untuk menyusun kembali urutan – urutan sector (pecahan atau bagian) dari file atau folder sehingga memudahkan untuk membaca file atau folder tersebut.

• Uninstaller : untuk menghapus program yang sudah pernah terpasang pada komputer

(27)

• Disk Scanner : untuk mendeteksi dan mengkoreksi masalah pada hard disk atau floppy disk dan Mencari atau menghapus file-file yang tidak digunakan. Untuk memeriksa hardisk dan mencari kemungkinan ada nya error pada setiap permukaan piring hardisk dan kemudain memperbaikinya secara otomatis.

d. Driver

Fungsi dari driver adalah sebagai pengendali komponen atau perangkat keras yang terpasang pada komputer. Misalnya driver soundcard untuk mengatur agar fungsi audio pada komputer berjalan, driver VGA card untuk mengatur fungsi tampilan layar, dan lain-lain.

2) Real Time Software

Program-program untuk mengontrol/menganalisis/memonitor kejadian dunia nyata pada saat terjadinya. Misalnya program untuk mengontrol mesin industri.

3) Business Software

Perangkat lunak untuk pemrosesan informasi di dunia bisnis, mulai dari payroll, account payable, inventory, post system, sampai perangkat lunak sistem informasi manajemen yang bisa mengakses satu atau lebih database.

4) Engineering & Scientific Software

Perangkat lunak yang jangkauan aplikasinya meliputi, astronomi, vulkanologi, kedokteran, analisis otomotif, biologi, mesin-mesin pabrik, sampai pada perangkat bantu dalam perancangan (computer aided design) untuk konstuksi bangunan, komponen elektronik, rancangan mesin, simulasi sitem, dan lain- lain.

5) Embedded Software

Program yang disertakan dalam suatu perangkat dan berfungsi untuk mengontrol hasil serta sistem perangkat tersebut. Contoh : key pad control untuk microwave, fungsi digital pada automobil pengontrol bahan bakar,

(28)

penampilan dash board, sistem rem, dan lain-lain.

6) Personal Computer Software

Perangkat lunak yang bisa dijalankan pada komputer personal. Contoh : pengolah kata, multimedia, hiburan, manajemen database, aplikasi keuangan bisnis, dan lain-lain.

7) Artificial Intelligence Software

Perangkat lunak yang dibangun dengan penerapan konsep keilmuan kecerdasan.

Misalnya sistem pakar atau disebut juga sistem berbasis pengetahuan.

Program yang digunakan untuk menggerakkan/mengontrol robot, permainan game, pengolah gambar dan pola (image dan voice).

1.3.2. Jenis perangkat lunak juga dapat dibedakan berdasarkan fungsinya, antara lain:

1) Perangkat Lunak komunikasi seperti social media (twitter, facebook, whatsapp, dan lain-lain)

2) Perangkat lunak multimedia, seperti pengolah gambar/foto dan pengolah video 3) Perangkat lunak disain grafis, seperti Adobe Photoshop, Adobe Illustrator dan

Corel draw

4) Perangkat lunak keamanan seperti antivirus/antispyware, misal SMADAV, NOD32, Kaspersky

5) Perangkat lunak pengelola jaringan 6) Dan lain-lain

1.3.3. Sedangkan menurut target pasar, perangkat lunak dapat dibedakan menjadi dua (Sommerville, 2015) :

1) Perangkat Lunak Generik

Merupakan perangkat lunak yang didesain dengan kebutuhan standar dari berbagai kalangan pengguna, diproduksi oleh perusahaan pengembang dan dijual bebas pada pasar terbuka.

(29)

2) Perangkat Lunak Bespoke/Customize

Merupakan perangkat lunak yang didesain dengan memperhatikan kebutuhan khusus dari pelanggan tertentu, sehingga sifat dari fungsi yang disajikan adalah unik dan berbeda dari perangkat lunak sejenis yang beredar.

1.3.4. Jenis perangkat lunak berdasarkan distribusinya 1) Opensource

Software yang source codenya terbuka dan didistribusikan dalam suatu format lisensi yang memungkinkan pihak lain secara bebas memperbanyak dan memodifikasi source code di dalamnya. Hak cipta tetap ada, tapi lisensi memungkinkan orang lain bebas untuk menggunakan dan memodifikasi software tersebut. Contohnya : GNU General Public License (GPL), Apache License, BSD license, MIT License, Mozilla Public License.

2) Proprietary

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!

a) Free software

Pada awalnya anda harus membeli perangkat lunak ini. Namun, anda bebas untuk melakukan penggandaan, modifikasi bahkan distribusinya. Jadi pengertian gratisnya tidak hanya pada beberapa komponen tersebut. Inilah yang membedakannya dengan freeware

b) Freeware

Perangkat lunak ini bersifat gratis, jadi tidak harus membelinya seperti software berbayar. Bahkan anda bisa menggunakannya tanpa batasan waktu.

Jadi bisa digunakan tanpa berbayar sampai kapan pun. Biasanya pengembang software ini mendedikasikannya untuk komunitas tertentu. Tetapi hak cipta tetap dipertahankannya, sehingga tetap bisa juga melakukan berbagai pengembangan selanjutnya. Contoh produk dari freeware ini adalah Google

(30)

Chrome, Mozilla Firefox, dan sebagainya.

c) Shareware

Perangkat lunak ini juga bisa digunakan secara gratis. Sayangnya ada batasan waktu untuk penggunaannya. Inilah perbedaannya dengan freeware, yang bisa dimanfaatkan selamanya tanpa ada waktu kadaluarsanya.

Shareware merupakan program khusus yang didistribusikan sebagai software versi evaluasi atau demonstrasi. Oleh karena itu, pengembangnya membatasi fungsi atau fitur yang bisa digunakan penggunanya. Jadi pengembangkan akan membatasi waktu pemakaiannya, semisal hanya satu bulan saja. Nah, bila anda ingin menikmati seluruh fiturnya, maka harus membelinya terlebih dahulu.

Cara ini dimanfaatkan sebagai pengujian produk, sehingga anda bisa mengetahui beragam kelebihan dan fungsi yang ditawarkannya. Shareware ini biasanya dimanfaatkan oleh perusahaan pengembang anti virus. Itulah kenapa anda sering mendapatkan uji coba penggunaan antivirus secara gratis, tapi hanya dalam tempo waktu tertentu saja.

Sesudah itu tertarik dengan antivirusnya dengan segala fiturnya, maka anda harus membayar dalam jumlah tertentu. Itulah kenapa shareware juga dikenal juga dengan istilah trialware.

(31)

Rangkuman

Dari pembahasan pada bab 1 ini kita sudah mengetahui bahwa keberadaan perangkat lunak saat ini sudah semakin menjamur dan eksistensinya sangat dibutuhkan sejalan dengan kemajuan alat komputasi serta tuntutan pemrosesan yang cepat dan akurat di segala sisi. Sejalan dengan hal tersebut, maka perkembangan industri perangkat lunak juga akan semakin melahirkan berbagai jenis produk untuk menjawab berbagai kebutuhan fungsi yang dibutuhkan manusia saat ini.

Latihan

1. Sebutkan dan jelaskan pengertian dari perangkat lunak!.

2. Sebutkan dokumentasi apa saja yang disertakan pada produk perangkat lunak!

3. Sebutkan perbedaan antara produk perangkat lunak opensource dan proprietary!.

(32)

UNIVERSITAS BUDI LUHUR

FAKULTAS TEKNOLOGI INFORMASI

PERTEMUAN 3 KONSEP RPL

Capaian

Pembelajaran : Memahami sejarah dan konsep dasar rekayasa perangkat lunak

Sub Pokok

Bahasan : 1.1. Permasalahan seputar pengembangan perangkat lunak

1.2. Urgensi dan konsep rekayasa perangkat lunak 1.3. 7 Aktifitas dasar rekayasa perangkat lunak :

 Requirements

 Specification

 Design

 Code

 Verification & Validation

 Debug

 Maintenance Daftar

Pustaka

: 1. Kung, David C., 2014. Object Oriented Software Engineering: An Agile Methodology, McGraw-Hill 2. Pressman, Roger S. 2010. Software Engineering : A

Practitioner's Approach,7th, McGraw-Hill

3. Schach, Stephen R. 2010. Object Oriented and Classical Software Engineering , 8th, McGraw-Hill 4. Sommerville, Ian. 2010. Software Engineering ,

9th, Pearson Education

(33)

5. Software Engineering Body of Knowledge (SWEBOK). 2004

6. Andri Kristianto, Rekayasa Perangkat Lunak (Konsep Dasar), Gava Media Yogyakarta, 2004 7. https://www.iso.org/committee/45086/x/catalogue/

Maiocchi, M. (1991). Software Engineering . Future

Generation Computer Systems, 7, 23-29.

(34)

3. SEJARAH DAN KONSEP RPL

1.1. Permasalahan seputar pengembangan Perangkat Lunak

Dalam proses pengembangan perangkat lunak yang ada, sebagian besarnya dinyatakan mengalami kegagalan. Beberapa permasalahan yang menjadi faktor penyebab kegagalan proyek pengembangan perangkat lunak antara lain :

1) Produk akhir tidak mampu memenuhi kebutuhan pelanggan secara penuh

Tujuan utama dalam pengembangan perangkat lunak adalah menjadikan produk yang akan menyelesaikan permasalahan serta memenuhi kebutuhan pelanggan.

Namun seringkali kegagalan pengembangan perangkat lunak terjadi karena kedangkalan dalam menganalisa masalah yang akan dituntaskan serta kebutuhan yang diinginkan. Sehingga muncul kekecewaan dari pelanggan saat produk akhir perangkat lunak mereka terima, fungsionalitas yang ada tidak sesuai dengan harapan mereka.

2) Sulit untuk dikembangkan atau diimprovisasi

Keberhasilan dari produk perangkat lunak tidak hanya dilihat dari program yang bisa “jalan” saja, namun juga dari bagaimana produk tersebut memiliki kemampuan untuk dapat dikembangkan atau diubah di kemudian hari sesuai tuntutan perubahan kebutuhan. Fleksibilitas kemampuan perangkat lunak untuk dimodifikasi ini sangatlah ditunjang dengan rancangan yang baik pula.

3) Dokumentasi yang tidak lengkap

Keberadaan dokumentasi dalam pengembangan perangkat lunak sangat penting.

Dokumentasi akan menjadi catatan rekam jejak yang memudahkan pengembangan perangkat lunak di kemudian hari, entah karena perubahan kebutuhan pengguna atau perkembangan teknologi. Tanpa dokumentasi yang baik, penerus pengembangan sistem tersebut akan mengalami kesulitan untuk menelusuri history kebutuhan pengguna yang telah lalu. Dokumentasi juga dapat menjadi alat pertanggungjawaban bagi pengembang untuk menghadapi tuntutan fungsionalitas produk dari pengguna yang tidak sesuai dengan apa yang telah disepakati di awal.

4) Kualitas yang buruk

Keterbatasan waktu pengembangan serta resiko yang mungkin dihadapi selama

(35)

pengembangan perangkat lunak dapat mengakibatkan produk akhir yang di deliver kepada pengguna masih memiliki kekurangan/cacat. Selain itu, analisa masalah serta penelusuran kebutuhan yang tidak sesuai dengan harapan pengguna juga dapat mengakibatkan ketidaklengkapan atau ketidakbenaran fungsionalitas, sehingga kualitas dari produk akhirnya dinilai buruk oleh pelanggan.

5) Melebihi alokasi waktu dan biaya yang direncanakan

Estimasi kebutuhan sumber daya waktu dan biaya yang dialokasikan untuk pengembangan seringkali tidak terkelola dengan baik sehingga penyelesaian produk seringkali terlambat dan juga melebihi anggaran yang sudah ditetapkan.

Beberapa permasalahan yang seringkali menjadi faktor kegagalan pengembangan perangkat lunak kemudian dikenal dengan software crisis. Tanda-tanda yang paling terlihat dari software crisis ini adalah keterlambatan pengiriman perangkat lunak ke pelanggan, over budget/melebihi anggaran, perangkat lunak tidak memenuhi persyaratan yang ditentukan/tidak sesuai kebutuhan pelanggan hingga sampai membahayakan, dan dokumentasi yang tidak memadai.

Beberapa penyebab terjadinya Software Crisis diantaranya adalah komputer/hardware yang semakin canggih, kebutuhan perangkat lunak yang semakin besar dan kompleks, sehingga cara- cara konvensional tidak cukup efektif (secara biaya, waktu, dan kualitas). Oleh karena itu, diperlukan ilmu Rekayasa Perangkat Lunak (Software Engineering) yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal spesifikasi, desain, konstruksi, testing sampai pemeliharaan setelah digunakan.

1.2. Urgensi dan Konsep Rekayasa Perangkat Lunak

Dari semua permasalahan yang ditemukan saat pengembangan perangkat lunak tersebut, dapat disimpulkan bahwa membangun produk perangkat lunak tidak hanya cukup mengandalkan kemampuan programming tapi dibutuhkan konsep dan teknik rekayasa perangkat lunak.

(36)

Tujuan dari rekayasa perangkat lunak dapat diuraikan sebagai berikut : 1) Menghasilkan sebuah perangkat lunak yang berkualitas.

Yang dimaksud dengan berkualitas dapat dilihat dari tiga sisi, sisi sponsor (individu atau organisasi yang telah mengeluarkan biaya dalam pembangunan perangkat lunak), sisi pemakai (siapapun yang menggunakan perangkat lunak tersebut), sisi maintainer / modifier (yang memelihara dan memodifikasi perangkat lunak tersebut).

 Sisi Sponsor :

Tujuan utama sponsor adalah menghasilkan dan atau menghemat uang.

Sponsor ingin menggunakan perangkat lunak tersebut untuk meningkatkan produktivitas organisasi. Sponsor mengharapkan untuk dapat menghasilkan sebuah layanan dengan biaya yang rendah tetapi masuk akal. Karena itu sistem yang dibuat harus handal, fleksibel dan efisien. Selain itu biaya dari pemeliharaan, modifikasi dan peningkatan dari sistem tersebut harus serendah mungkin.

 Sisi Pemakai :

Bagi pemakai perangkat lunak adalah alat untuk membantu menyelesaikan tugas-tugasnya. Karena itu perangkat lunak harus menyediakan fungsi-fungsi yang dibutuhkan oleh pemakai. Perangkat lunak juga harus handal dan efisien, perangkat lunak harus dapat menghasilkan output yang konsisten. Selain itu pemakai harus merasa perangkat lunak yang dibuat mudah untuk dipelajari, mudah digunakan dan mudah untuk diingat.

 Sisi Maintainer/modifier :

Yang diinginkan oleh maintainer/modifier adalah perangkat lunak tersebut memiliki sangat sedikit error pada saat penginstallan pertama (catatan : sangat kecil kemungkinannya untuk menghasilkan perangkat lunak yang 100

% bebas dari bug). Selain itu perangkat lunak tersebut harus terdokumentasi dengan baik. Source code juga harus mudah dibaca, terstruktur dan dirancang dengan baik dan bersifat modular.

2) Menghasilkan perangkat lunak dengan biaya yang efisien dan mampu di deliver ke pengguna tepat waktu.

(37)

Dengan mempelajari prinsip rekayasa dalam pengembangan perangkat lunak, diharapkan pengembang mampu mengelola sumber daya waktu dan biaya dengan baik sehingga realisasi pengembangan sesuai dengan estimasi yang sudah ditetapkan.

3) Menghasilkan perangkat lunak yang benar dan tepat serta bermanfaat bagi pengguna

Dengan mempelajari rekayasa perangkat lunak ini diharapkan mampu mengembangkan sebuah perangkat lunak yang berguna dan juga bermanfaat bagi usernya. Sebuah perangkat lunak tentu saja tidak akan digunakan oleh user apabila tidak memiliki fungsi yang spesifik. Karena itu dengan mempelajari rekayasa perangkat lunak, akan membuat seseorang menjadi lebih paham mengenai pengembangan perangkat lunak yang fungsional.

4) Agar mampu melakukan perawatan terhadap produk perangkat lunak serta mampu menjadikan perangkat lunak yang sudah ada menjadi lebih baik lagi

Fungsi dari mereka yang mempelajari rekayasa perangkat lunak tidak hanya terpaku pada pembuatan dan juga pengembangan dari sistem perangkat lunak yang ada, namun juga berada pada level maintenance atau perawatan dari sebuah perangkat lunak yang ada. Setiap perangkat lunak tentu saja membutuhkan maintenance, terutam aketika perangkat lunak tersebut mengalami suatu gangguan atau kendala. Ada kalanya juga perangkat lunak yang sudah ada terkadang membutuhkan pembaruan, karena fungsinya yang mungkin sudah berkurang. Karena itu, dengan mempelajari rekayasa perangkat lunak seseorang akan mampu mengembangkan perangkat lunak yang sudah ada sebelumnya agar kemudian menjadi sebuah sistem perangkat lunak yang dapat berguna dan menjadi lebih baik lagi di kalangan user.

Marco Maiocchi dari University of Milan dalam jurnal Future Generation Computer Systems volume 7, menjelaskan bahwa setidaknya terdapat beberapa alasan mengapa software engineering itu sangat penting, diantaranya adalah:

1) Mengurangi Kompleksitas

Software dengan skala besar dan kompleks sangat sulit untuk dikembangkan.

Untuk mengatasi hal ini, Software Engineering dapat diterapkan sebagai sebuah

(38)

solusi untuk mengurangi kompleksitas dari setiap projek dengan cara membagi sekumpulan masalah besar menjadi beberapa masalah yang lebih kecil. Dengan demikian, masalah-masalah dapat diselesaikan dengan solusi-solusi yang dikerjakan satu persatu. Dengan teknik ini setiap permasalahan kecil dapat diselesaikan secara independen satu sama lain. Pada akhirnya, setiap masalah yang telah berhasil diselesaikan akan dikombinasikan satu sama lain untuk menghasilkan sebuah solusi akhir. Teknik ini disebut Problem Decomposition.

Fokus dari teknik ini adalah memfokuskan penyelesaian masalah pada masalah yang paling relevan untuk diselesaikan saat ini dengan cara mengabaikan masalah-masalah yang dianggap tidak relevan. Dengan pola pikir ini, diharapkan masalah-masalah besar dapat diselesaikan dengan lebih mudah.

2) Untuk meminimalisir biaya perangkat lunak

Perangkat lunak membutuhkan banyak sekali kerja keras dan disisi lain seorang software engineer merupakan tenaga ahli dengan biaya yang mahal. Kebanyakan orang berfokus untuk membangun perangkat lunak dengan jutaan baris kode program. Namun di dalam software engineering, programmer harus merencanakan semuanya dan mereduksi segala hal yang dianggap tidak penting.

Hasilnya, biaya produksi dari pengembangan perangkat lunak menjadi dapat dikurangi dibandingkan pengembangan perangkat lunak lainnya yang tidak menggunakan pendekatan software engineering.

3) Untuk mengurangi waktu

Segala yang tidak dibuat berdasarkan “Perencanaan” selalu menghabiskan waktu lebih banyak. Dan jika kita membuat sebuah software yang memiliki lingkup besar maka anda harus menjalankan banyak kode program untuk membuat kode dapat berjalan dengan maksimal. Hal ini sangat menghabiskan waktu. Jika tidak ditangani dengan manajemen yang baik maka hal ini malah akan menghabiskan banyak waktu.

4) Mampu Menangani Proyek Besar

Projek besar tidak dibuat hanya dalam beberapa hari, dibutuhkan kesabaran, perencanaan dan manajemen untuk menjamin tercapainya tujuan. Andaikata terdapat sebuah projek yang harus diselesaikan dalam jangka waktu 5 tahun, dan terdapat 40 tugas yang harus dikerjakan dan dalam satu semester perusahaan

(39)

harus menyelesaikan setidaknya 4 tugas. Maka perusahaan juga harus memiliki komitmen agar jangan sampai dalam satu semester ternyata tugas yang hanya bisa diselesaikan 1 dari 4 tugas yang harusnya selesai. Oleh sebab itu untuk dapat sesuai dengan waktu yang ditentukan dibutuhkan perencanaan, arahan, pengujian dan proses maintenance yang dijalankan dengan disiplin.

5) Menjamin Kehandalan Perangkat Lunak

Software harus handal, handal berarti software yang dibangun haruslah bekerja sesuai dengan waktu yang telah ditetapkan. Dan jika terdapat kesalahan dalam pembuatan software maka perusahaan harus menyelesaikan permasalahan- permasalahan tersebut. Di dalam software engineering, terdapat teknik testing dan maintenance yang harus dilakukan untuk menjamin kehandalan perangkat lunak.

6) Menjamin Efektifitas

Efektifitas akan terjadi jika perangkat lunak telah berhasil dibangun berdasarkan sebuah standar yang berlaku. Di dalam software engineering terdapat berbagai standar yang dapat dijadikan acuan dalam pembangunan sebuah software yang efektif seperti ISO 3535:1977 tentang desain formulir dan bagan, ISO 5806/1984 tentang tabel dan information processing, ISO 5807:1985 tentang dokumentasi dan konvensi data, dan lain-lain.

7) Produktivitas

Dengan bantuan software engineering, setiap perusahaan dapat meningkatkan produktivitas. Setiap projek dapat dikurangi biayanya dan menghabiskan waktu pengerjaan yang lebih sedikit. Di dalam software engineering, produktivitas software dapat dihasilkan karena adanya sistem pengujian di dalam setiap bagian terkecil suatu proses. Jika tidak lolos uji, maka seorang developer harus memperbaikinya hingga akhirnya mencapai suatu standar yang berlaku.

1.3. Aktifitas Dasar Pada Rekayasa Perangkat Lunak

SDLC (Systems Development Life Cycle, Siklus Hidup Pengembangan Sistem) atau Systems Life Cycle (Siklus Hidup Sistem), dalam rekayasa sistem dan rekayasa perangkat lunak, adalah proses pembuatan dan pengubahan sistem serta model dan metodologi yang digunakan untuk mengembangkan sistem-sistem tersebut. Konsep

(40)

ini umumnya merujuk pada sistem komputer atau informasi. SDLC juga merupakan pola yang diambil untuk mengembangkan sistem perangkat lunak. Dalam rekayasa perangkat lunak, konsep SDLC mendasari berbagai jenis metodologi pengembangan perangkat lunak. Metodologi-metodologi ini membentuk suatu kerangka kerja untuk perencanaan dan pengendalian pembuatan sistem informasi, yaitu proses pengembangan perangkat lunak.

Aktifitas dasar dalam SDLC antara lain sebagai berikut : 1) Requirement

Tahapan dimana kebutuhan customer (user) dikumpulkan, ditangkap secara menyeluruh dan global untuk menjadi masukan buat rekayasa kebutuhan.

 Mendeteksi tujuan (visi) dari pembuatan produk perangkat lunak : untuk apa sistem dibuat dan tujuan pembuatan sistem.

 Mendata kebutuhan mengenai kemampuan (unjuk kerja) sistem yang diinginkan pengguna (customer)

2) Specification

Pada tahapan ini kebutuhan yang sudah dikumpulkan pada tahapan requirement kemudian dianalisis dan dispesifikasikan agar diperoleh kebutuhan yang jelas, detil dan lengkap.

3) Design

Tahap ini melakukan rancangan design sistem. Tahap ini memberikan rincian kinerja program dan interaksi antara user dengan program tersebut.

4) Code

Tahap ini adalah spesifikasi design yang telah dibuat untuk diterjemahkan ke dalam program / instruksi yang ditulis dalam bahasa pemrograman.

5) Test

Tahap ini semua program digabungkan dan diuji sebagai satu sistem yang lengkap untuk menjamin sumua berkerja dan memenuhi kebutuhan penanganan masalah yang dihadapi. Pada tahapan ini dilakukan verifikasi dan validasi terhadap requirement dan specification yang sudah ditangkap

6) Debug

Apabila pada tahapan testing ditemukan beberapa kesalahan, maka pada tahapan

(41)

ini dilakukan perbaikan sebelum produk diujicoba di lingkungan pengguna 7) Maintenance

Tahapan akhir dari pengembangan perangkat lunak adalah kegiatan perawatan atau pemeliharaan system.

Rangkuman

Rekayasa perangkat lunak telah berkembang sejak pertama kali diciptakan pada tahun 1940-an hingga kini. Focus utama pengembangannya adalah untuk mengembangkan praktek dan teknologi untuk meningkatkan produktivitas para praktisi pengembang perangkat lunak dan kualitas aplikasi yang dapat digunakan oleh pemakai.

Latihan

Pilihlah jawaban yang menurut Anda benar dari pilihan jawaban yang diberikan 1. Apa yang dimaksud dengan rekayasa perangkat lunak/software engineering?

a. Pengembangan perangkat lunak secara tim(kelompok) b. Pengembangan perangkat lunak secara perorangan

c. Pengambangan perangkat lunak dengan menggunakan CASE d. Pengembangan perangkat lunak secara cepat

2. Apa yang dimaksud dengan rekayasa perangkat lunak/software engineering?

a. Pengembangan PL dengan memanfaatkan metode daur hidup pengembangan sistem

b. Pengembangan PL dengan memanfaatkan prinspi-prinsip rekayasa dalam pengembangan sistem

c. Pengembangan PL dengan memanfaatkan CASE d. Pengembangan PL secara cepat

3. Apa yang dimaksud dengan rekayasa perangkat lunak/software engineering?

a. Pengembangan PL dengan memanfaatkan prinsip-prinsip rekayasa b. Pengembangan PL dengan memanfaatkan prinsip-prinsip PL

c. Pengembangan PL dengan memanfaatkan prinsip-prinsip prototipe d. Pengembangan sistem dengan memanfaatkan prinsip-prinsip prototipe 4. Apa tujuan rekayasa perangkat lunak?

a. Menghasilkan PL yang baik walaupun mahal

(42)

b. Menghasilkan PL yang efektif

c. Menghasilkan PL yang baik dan murah d. Menghasilkan PL yang efisien

5. Diantara berikut ini, mana yang tidak termasuk dalam ruang lingkup atau tujuan rekayasa perangkat lunak?

a. Menghasilkan PL yang bebas dari kesalahan dan sesuai kebutuhan user b. Menghasilkan PL yang dapat dibuat tepat waktu

c. Menghasilkan PL on budget (tepat dengan anggaran biaya yang sudah direncanakan)

d. Menghasilkan PL yang kompleks dan memiliki fitur-fitur menarik 6. Pernyataan yang benar pada tahapan dasar pada Debug adalah…

a. Mencari, menemukan dan memperbaiki kesalahan yang ada di dalam program b. Mencari dan menemukan kesalahan yang ada di dalam program

c. Mencari dan memperbaiki kesalahan yang ada di dalam program

d. Mencari, menemukan, menyelidiki dan memperbaiki kesalah yang ada di dalam program

7. Pada tahapan apa kita dapat membuat program?

a. Test b. Code c. Design d. Debug

8. Validasi adalah pengujian…

a. Statis dari sebuah program b. Yang dilakukan manusia

c. Dengan mengeksekusi / menjalankan program d. Yang melibatkan programmer, user dan tester

9. Pilihlah jawaban yang bukan termasuk user dan dokumentasi sistem…

a. Install b. Design c. Debug d. Maintain

(43)

10. Pada requirements testing yang diuji adalah…

a. Kebutuhan system b. Output system c. Proses Input system d. Fungsionalitas system

(44)

UNIVERSITAS BUDI LUHUR

FAKULTAS TEKNOLOGI INFORMASI

PERTEMUAN 4

KARAKTERISTIK DAN MITOS PERANGKAT LUNAK

Capaian Pembelajaran : 1. Mahasiswa mengetahui mitos seputar pengembangan perangkat lunak

2. Mahasiswa memahami peranan perangkat lunak serta karakteristik dari produk

perangkat lunak yang baik

Sub Pokok Bahasan : 1.1. Mitos seputar pengembangan perangkat lunak

1.2. Peranan ganda perangkat lunak

1.3. Karakteristik perangkat lunak yang baik Daftar Pustaka : 1. Kung, David C., 2014. Object Oriented

Software Engineering: An Agile Methodology, McGraw-Hill

2. Pressman, Roger S. 2010. Software Engineering : A Practitioner's

Approach,7th, McGraw-Hill

3. Schach, Stephen R. 2010. Object Oriented and Classical Software Engineering, 8th, McGraw-Hill 4. Sommerville, Ian. 2010. Software

Engineering, 9th, Pearson Education 5. Software Engineering Body of Knowledge

(SWEBOK). 2004

(45)

4. KARAKTERISTIK DAN MITOS PERANGKAT LUNAK

1.1. Karakteristik Perangkat Lunak 1.1.1. Peranan ganda perangkat lunak

Perangkat lunak memiliki peranan ganda, yaitu :

 perangkat lunak adalah sebuah produk

 menyajikan potensi komputasi

 menghasilkan, mengola, memperoleh, modifikasi, merapikan / mengirimkan informasi

 perangkat lunak adalah alat untuk menyajikan sebuah produk

 mendukung / menyediakan langsung fungsi sistem

 mengendalikan program lain (misalnya sistem operasi)

 mempengaruhi komunikasi (misalnya perangkat lunak jaringan)

 membantu membangun perangkat lain (misalnya tool perangkat lunak)

1.1.2. Karakteristik Perangkat Lunak

Berikut ini adalah karakteristik dari perangkat lunak (Roger S.Pressman, 2001)

 Perangkat lunak dibangun dan dikembangkan, tidak dibuat dalam bentuk yang klasik (pabrikasi). Biaya untuk perangkat lunak dikonsentrasikan kepada pengembangan. Hal ini berarti proyek perangkat lunak tidak dapat diatur seperti pengaturan proyek-proyek pemanufakturan.

 Perangkat lunak tidak pernah usang. Perangkat lunak tidak rentan terhadap pengaruh lingkungan yang merusak yang menyebabkan perangkat keras menjadi usang. Selama hidupnya, perangkat lunak mengalami perubahan (pemeliharaan). Aspek lain dari keusangan menggambarkan perbedaan antara perangkat keras dan perangkat lunak. Bila komponen suatu perangkat keras telah usang, komponen dapat diganti dengan suku cadangnya. Namun tidak ada suku cadang bagi perangkat lunak. Setiap kegagalan perangkat lunak menggambarkan kesalahan dalam perancangan atau proses di mana rancangan diterjemahkan ke dalam kode mesin yang dapat dieksekusi.

 Sebagian besar perangkat lunak dibuat secara custom-built, serta tidak dapat dirakit dari komponen yang sudah ada. Perhatikan bagaimana perangkat keras

(46)

untuk produksi berbasis mikroprosesor dirancang dan dibuat. Setelah masing- masing komponen diseleksi, perangkat keras dapat dipesan secara terpisah.

Sementara pada perangkat lunak, tidak katalog komponen perangkat lunak.

Memang memungkinkan untuk memesan perangkat lunak secara terpisah, tetapi tetap merupakan satu kesatuan yang lengkap, bukan sebagai komponen yang dapat dipasangkan ke dalam program-program yang baru.

 Zero Tolerance

Maknanya perangkat lunak itu akan terus dapat digunakan/bermanfaat walaupun proses pengembangannya dinyatakan telah selesai atau sudah tidak melakukan peningkatan versi dan update. Contoh OS windows XP sudah tutup versi di bulan april 2014, namun masih akan tetap ada saja pengguna yang menggunakan versi OS tersebut meski telah tutup versi.

1.1.3. Perbedaan perangkat keras dan perangkat lunak

• Manufacture vs development

Perangkat keras dihasilkan dari serangkaian proses manufaktur, sekali produk perangkat keras diproduksi maka akan sulit atau bahkan tidak mungkin untuk dimodifikasi di kemudian hari. Bila pada produksi manufaktur sang produk apabila sudah di pasarkan maka pihak produsen tidak lagi perlu memelihara produknya. Sementara produk perangkat lunak dibuat dari serangkaian proses pengembangan yang dimungkinkan secara rutin mengalami proses perubahan dan peningkatan.

Dalam pembuatan perangkat keras, jika banyak orang yang terlibat maka akan lebih cepat membantu terselesaikannya pekerjaan, tetapi hal yang berbeda terjadi pada proses rekayasa perangkat lunak. Proses pembuatan perangkat lunak hanya lebih banyak terkonsentrasi pada proses disain daripada

produksinya.

• Failure

Ketika komponen perangkat keras aus, dapat diganti dengan suku cadang.

Namun tidak ada suku cadang bagi perangkat lunak. Setiap kegagalan perangkat lunak menunjukkan kesalahan dalam desain atau dalam proses melalui mana desain diterjemahkan ke dalam kode yang dapat dieksekusi mesin. Karena itulah,

Referensi

Dokumen terkait

Di dalam mata kuliah ini akan dibahas masalah Produk perangkat lunak, Proses perangkat lunak, Konsep Manajemen proyek, Metriks proses pembuatan dan proyek perangkat

Di dalam mata kuliah ini akan dibahas masalah Produk perangkat lunak, Proses perangkat lunak, Konsep Manajemen proyek, Metriks proses pembuatan dan proyek perangkat

 Rekayasa perangkat lunak merupakan suatu proses rancang bangun perangkat lunak yang menggunakan kaidah ‐ kaidah ilmu, seperti prinsip, konsep, dan metode sehingga dihasilkan

 Requirements engineering adalah fase terdepan dari proses rekayasa perangkat lunak (software.. engineering), dimana

rekayasa perangkat lunak sebagai penerapan suatu pendekatan yang sistematis, disiplin dan terkuantifikasi atas pengembangan,. penggunaan dan pemeliharaan perangkat lunak, serta

Perbedaan antara rekayasa perangkat lunak dengan rekayasa sistem adalah apabila rekayasa sistem itu merupakan sebuah kumpulan komponen, konsep, serta alat bantu untuk merancang

Analisis kebutuhan merupakan satu di antara banyak aktivitas kritis pada proses rekayasa kebutuhan perangkat lunak untuk memahami ranah permasalahan dari sistem

KOMPETENSI YANG DIHARAPKAN DICAPAI OLEH PESERTA • Setelah mengikuti kuliah ini mahasiswa diharapkan: – Memahami pentingnya rekayasa perangkat lunak – Mengenal berbagai macam sistem