Title | Buku Ajar Rekayasa Perangkat Lunak |
---|---|
Author | Edwar Ali |
Pages | 205 |
File Size | 3.3 MB |
File Type | |
Total Downloads | 26 |
Total Views | 958 |
Powered by TCPDF (www.tcpdf.org) Rekayasa Perangkat Lunak Kata Pengantar Segala puji sudah sepantasnya dihaturkan kepada Allah SWT, karena dengan ridho-NYA penulisan buku ini dapat diwujudkan. Mata kuliah Rekayasa Perangkat Lunak atau dalam istilah lain sering disebut Software Engineering merupakan...
Powered by TCPDF (www.tcpdf.org)
Rekayasa Perangkat Lunak
Kata Pengantar
Segala puji sudah sepantasnya dihaturkan kepada Allah SWT, karena dengan ridho-NYA penulisan buku ini dapat diwujudkan. Mata kuliah Rekayasa Perangkat Lunak atau dalam istilah lain sering disebut Software Engineering merupakan salah satu mata kuliah kunci yang akan membentuk karakter, kemampuan/kompetensi dan kekuatan utama bagi mahasiswa pada program studi ilmu komputer. Lingkup materi untuk mata kuliah ini cukup luas dengan berbagai sasaran dan strategi dalam pembelajarannya. Namun dalam penulisan buku ajar ini telah diseleksi beberapa bagian penting sesuai dengan kebutuhan stake holder dan kondisi daerah secara khusus. Walaupun telah diambil beberapa bagian dari sumber-sumber yang digunakan, namun keterkaitan hal-hal yang ada dalam muatan proses rekayasa perangkat lunak tetap dijaga dalam buku ini. Atas keberhasilan penyusunan dan penerbitan buku ini tidak terlepas dari dukungan berbagai pihak. Oleh karena itu, penulis mengucapkan banyak terima kasih kepada: 1. Direktorat Belmawa Kemenristekdikti di Jakarta yang telah memberikan dukungan material dan moril selama ini. 2. Ketua Yayasan Komputasi Riau yang menaungi institusi STMIK Amik Riau 3. Ketua STMIK Amik Riau 4. Para rekan-rekan dosen dan karyawan di lingkungan STMIK Amik Riau 5. Pihak lain yang terlibat secara langsung maupun tidak dalam proses penulisan buku ini. Akhirnya penulis menyatakan bahwa buku ini masih jauh dari kesempurnaan. Penulis menerima masukan dan kritikan membangun demi pembaharuan pada terbitan berikutnya. Pekanbaru, Des 2018
Penulis
i
Rekayasa Perangkat Lunak
Daftar Isi
Kata Pengantar………………………………………………………………………………………. Daftar Isi………………………………………………………………………………………………. Daftar Gambar………………………………………………………………………………………. Pendahuluan…………………………………………………………………………………………. BAB I REKAYASA PERANGKAT LUNAK………………………………………………………. Defenisi Komputer………………………………………………………………………………. Sistem Komputer……………………………………………………………………………….. Perangkat Lunak……………………………………………………………………………...... Aplikasi Perangkat Lunak…………………………………………………………………….. Rekayasa Perangkat Lunak (RPL)…………………………………………………………… Lapisan (layer) dalam Rekayasa Perangkat Lunak……………………………………… Berbagai permasalahan dalam rekayasa perangkat lunak…………………………… BAB II MANAJEMEN PROYEK PERANGKAT LUNAK……………………………………… Tujuan Manajemen Proyek…………………………………………………………………… Proyek Perangkat Lunak……………………………………………………………………… Pentingnya Manajemen Proyek Perangkat Lunak………………………………………. Manajer Proyek Perangkat Lunak……………………………………………………...…. Aktifitas Manajemen Proyek Perangkat Lunak………………………………………….. Tool Manajemen Proyek Perangkat Lunak……………………………………………….. BAB III MODEL-MODEL PROSES PERANGKAT LUNAK…………………………………. Pandangan umum tentang Rekayasa Perangkat Lunak…………………………....... Model Proses Perangkat Lunak……………………………………………………………… A. MODEL SEKUENSIAL LINIER (WATERFALL) ………………………………………… B. MODEL PROTOTIPE……………………………………………………………………….. C. MODEL RAD……………………………………………………………………………….... D. MODEL SPIRAL…………………………………………………………………………….. BAB IV SOFTWARE DEVELOPMENT LIFE CYCLE………………………………………… Sejarah Software Development Life Cycle (SDLC) ……………………….…………….. Aktifitas dalam SDLC……………………….……………………….………………………… Communication……………………….……………………….……………………………….. Requirement Gathering……………………….……………………….……………………… Feasiblity Study……………………….……………………….……………………………….. System Analysis……………………….……………………….……………………………….. Software Design……………………….……………………….……………………….………. Coding……………………….……………………….……………………….…………………… Testing……………………….……………………….……………………….………………….. Integration……………………….……………………….………………………………………. Implementation……………………….……………………….………………………………… Operation and Maintenance……………………….……………………….………………… BAB V PERSYARATAN PERANGKAT LUNAK……………………………………………….. Rekayasa Kebutuhan……………….…………………………………….……………………. Proses Rekayasa Kebutuhan……………….…………………………………….………….. Requirements Elicitation Process……………….…………………………………………… Teknik Elisitasi Persyaratan……………….…………………………………….………….. Karakteristik Persyaratan Software……………….…………………………………….… Persyaratan Perangkat Lunak……………….…………………………………….………… Persyaratan Antarmuka Pengguna (user interface) ……………….……………………
ii
i ii v vi 1 1 1 4 6 9 14 15 18 19 20 20 22 23 27 34 34 35 36 39 43 45 49 49 51 50 50 54 60 61 61 61 62 62 62 63 64 64 66 67 70 71 72
Rekayasa Perangkat Lunak
Tips dalam menyusun SKPL……………….…………………………………….………….. Review Persyaratan Perangkat Lunak……………….…………………………………….. BAB VI DESAIN PERANGKAT LUNAK…………………………………………………………. Prinsip dalam desain perangkat lunak……………….…………………………………… Tingkatan Dalam Desain Perangkat Lunak……………….……………………………… Modularitas……………….…………………………………….……………………………….. Konkurensi……………….…………………………………….……………………………….. Kopling dan Kohesi……………….…………………………………….……………………… Verifikasi Desain……………….…………………………………….…………………………. Konsep Desain Perangkat Lunak……………….…………………………………………… BAB VII PERANGKAT LUNAK ANALISIS DAN TOOL DESAIN………………………….. A. Data Flow Diagram……………….…………………………………….…………………… B. Structure Chart……………….…………………………………….………………………. C. HIPO Diagram……………….…………………………………….………………………… D. Struktur English……………….…………………………………….……………………… E. Pseudo-Code……………….…………………………………….…………………………… F. Entity Relationship Diagram Model……………….…………………………………….. G. Data Dictionary (Kamus Data) ……………….…………………………………………. BAB VIII STRATEGI PERANCANGAN PERANGKAT LUNAK……………………………. A. Perancangan Terstruktur……………….…………………………………………………. B. Perancangan Berorientasi Fungsi……………….………………………………………. C. Perancangan Berbasis Objek (Object Oriented Design) ……………….…………… Proses Perancangan……………….…………………………………….…………………….. Pendekatan-Pendekatan Perancangan Perangkat Lunak……………….…………….. BAB IX PERANCANGAN ANTAR MUKA PEMAKAI (USER INTERFACE)……………… Prinsip Dalam Merancang User Interface……………….………………………………… Memilih Elemen Antarmuka……………….…………………………………………………. Komponen GUI pada Aplikasi Khusus……………….……………………………………. Aktifitas Perancangan User Interface……………….……………………………………… BAB X IMPLEMENTASI PERANGKAT LUNAK………………………………………………. Pemrograman Terstruktur……………….…………………………………………………… Pemrograman Berbasis Fungsi……………….……………………………………………… Gaya Pemrograman……………….…………………………………….……………………… Dokumentasi Perangkat Lunak……………….…………………………………………….. Tantangan Implementasi Perangkat Lunak……………….……………………………… Berbagai permasalahan perangkat lunak……………….………………………………… Fitur penting dalam pemrograman……………….………………………………………… BAB XI PENGUJIAN PERANGKAT LUNAK…………………………………………………… Rencana Pengujian Perangkat Lunak……………….…………………………………….. Validasi Perangkat Lunak……………….……………………………………………………. Verifikasi Perangkat Lunak……………….………………………………………………….. Pengujian Manual dan Otomatis……………….…………………………………………… Pendekatan dalam Pengujian……………….……………………………………………….. Jenis-Jenis Metode Pengujian……………….………………………………………………. Tingkatan Pengujian……………….…………………………………………………………… Dokumentasi Pengujian……………….………………………………………………………. Perbedaan Pengujian dengan Kontrol dan Jaminan Kualitas & Audit…………….. BAB XII PEMELIHARAAN PERANGKAT LUNAK……………………………………………. Mengapa Pemeliharaan Perlu di Lakukan ? ……………….……………………………. Bentuk-bentuk Pemeliharaan……………….………………………………………………. Permasalahan Selama Pemeliharaan……………….……………………………………… Aktifitas Pemeliharaan……………….………………………………………………………… Tool untuk pemeliharaan perangkat lunak……………….……………………………… iii
73 77 80 81 83 84 85 86 89 90 101 102 106 109 110 112 112 113 116 117 121 122 126 127 131 132 137 142 142 145 145 147 148 150 152 153 155 158 158 163 163 164 165 165 168 171 172 174 175 177 181 182 184
Rekayasa Perangkat Lunak
BAB XIII REKAYASA PERANGKAT LUNAK MASA DEPAN………………………………. Pondasi yang lemah……………….…………………………………………………………… Wujud Risiko……………….…………………………………….……………………………… Pusaran Kompleksitas……………….………………………………………………………… Peningkatan Total Biaya Kepemilikan……………….…………………………………….. Menguasai Inovasi Berbasis Perangkat Lunak……………….………………………….. Bidang Rekayasa Perangkat Lunak tidak akan pernah mati……………….………… DAFTAR PUSTAKA
iv
186 187 188 188 188 189 190
Rekayasa Perangkat Lunak
Daftar Gambar
Gambar 1.1: Elemen perangkat keras komputer………………………………………... Gambar 1.2: Ilustrasi perangkat lunak…………………...…………………...…………. Gambar 1.3: Elemen pembentuk sistem komputer…………………...……………….. Gambar 1.4 : Wilayah cakupan RPL…………………...…………………...…………….. Gambar 1.5: Lapisan dalam Rekayasa Perangkat Lunak…………………...………… Gambar 2.1 : Kendala dalam proyek perangkat lunak…………………...…………… Gambar 2.2: Aktifitas perencanaan proyek…………………...………………….......... Gambar 2.3: Gantt Chart…………………...…………………...…………………...……… Gambar 2.4: Contoh PERT…………………...…………………...………………….......... Gambar 3.1 : Model Sekuensial Linier (Waterfall Model) …………………...………… Gambar 3.2: Model Prototipe…………………...…………………...…………………....... Gambar 3.3 : Model RAD (Rapid Application Development) ………………….......... Gambar 3.4 : Model Spiral…………………...…………………...………………….......... Gambar 4.1 : Tahapan Software Development Life Cycle………………….............. Gambar 4.2: Bentuk-bentuk kelayakan…………………...………………….............. Gambar 5.1 : Proses elisitasi kebutuhan…………………...…………………............. Gambar 5.2: Kegiatan Wawancara…………………...…………………...……………….. Gambar 6.1. Bentuk ilustrasi konsep modularitas…………………...………………… Gambar 6.2: Model kinerja modulatitas…………………...…………………............... Gambar 6.3: Partisi Horizontal dan Vertikal…………………...…………………......... Gambar 7.1: Simbol-simbol DFD…………………...…………………...…………………. Gambar 7.2 : Elemen module…………………...…………………...…………………..... Gambar 7.3 : Elemen Kondisi…………………...…………………...…………………...... Gambar 7.4: Kondisi Jump…………………...…………………...…………………......... Gambar 7.5 : Aturan loop…………………...…………………...…………………........... Gambar 7.6: Pola aliran data…………………...…………………...…………………...... Gambar 7.7 : Kontrol Flow…………………...…………………...…………………......... Gambar 7.8 : Bentuk HIPO Chart…………………...…………………...………………… Gambar 7.9: Entity Relationship Diagram…………………...…………………............ Gambar 7.10: Notasi dalam kamus data…………………...…………………............. Gambar 8.1: Konsep Cohesion dan Coupling…………………...…………………....... Gambar 8.2: Ilustrasi Top-Down Design…………………...………………….............. Gambar 8.3: Ilustrasi Bottom-Up Design…………………...…………………............. Gambar 9.1: Bentuk tampilan user interface berbasis CLI…………………...……… Gambar 9.2: Elemen pada GUI…………………...…………………...…………………... Gambar 9.3: Tahap Perancangan dan Pengembangan GUI………………….......... Gambar 10.1:Fitur penting dalam program…………………...…………………......... Gambar 11.1: Langkah-langkah yang terlibat dalam melakukan pengujian …… Gambar 11.2: Ilustrasi proses blackbox testing…………………...…………………... Gambar 11.3: Ilustrasi White-Box Testing…………………...…………………........... Gambar 11.4: Ilustrasi Pengujian Unit…………………...…………………............... Gambar 12.1: Komposisi berbagai jenis pemeliaharaan (maintenance) …………… Gambar 12.2: Ilustrasi aktifitas pemeliharaan…………………...…………………...... Gambar 13.1: Gambaran umum teknologi ‘Cerdas’…………………...………………. Gambar 13.2: Peningkatan biaya kepemilikan…………………...…………………..... Gambar 13.3: Inovasi Berbasis Perangkat Lunak untuk Produk &Layanan Cerdas…………………...…………………...…………………...……………………………..
v
2 3 4 11 15 21 25 30 32 36 41 44 47 50 55 66 68 85 95 98 104 107 107 108 108 109 109 110 113 115 120 128 129 139 140 143 156 161 166 167 168 180 182 187 189 190
Powered by TCPDF (www.tcpdf.org)
Rekayasa Perangkat Lunak
BAB I REKAYASA PERANGKAT LUNAK
Tujuan :
1. Mengenalkan sistem komputer dan perangkat lunak 2. Mempelajari klasifikasi perangkat lunak 3. Mengenalkan rekayasa perangkat lunak dan aplikasinya
Indikator keberhasilan :
1. Agar mahasiswa mampu menjelaskan komponen sistem komputer 2. Agar mahasiswa mampu menjelaskan pengertian perangkat lunak dan contohnya 3. Agar mahasiswa mampu menyebutkan dan menjelaskan contoh jenis dan aplikasi perangkat lunak 4. Agar mahasiswa mampu memahami tujuan dari rekayasa perangkat lunak.
Materi :
Definisi Komputer Komputer
merupakan
suatu
kemampuan untuk menerima
perangkat
elektronika
yang
memiliki
dan mengolah data menjadi informasi,
menjalankan program yang tersimpan dalam memori, serta dapat bekerja secara otomatis berdasarkan perangkat aturan tertentu. Berdasarkan uraian di atas, maka dapat diuraikan bahwa setidaknya suatu komputer harus memenuhi kaidah-kaidah berikut ini: a. Komputer dapat melakukan pengolahan data b. Komputer dapat memberikan/menghasilkan informasi c. Komputer merupakan alat elektornik
1
Rekayasa Perangkat Lunak
d. Komputer dapat menerima input data (teks, angka, suara, signal, dll) e. Komputer menggunakan program yang tersimpan dalam memori komputer f. Komputer bekerja secara otomatis g. Komputer dapat menyimpan program dan data hasil olahannya.
Sistem Komputer Sebuah sistem komputer tersusun atas tiga elemen yang saling terkait satu sama lainnya, yaitu : 1. Hardware (Perangkat Keras), merupakan kumpulan segala piranti atau komponen dari sebuah komputer yang sifatnya bisa dilihat secara kasat mata dan bisa diraba secara langsung. Dengan kata lain hardware merupakan komponen yang memiliki bentuk nyata secara fisik. Beberapa komponen perangkat keras mudah dikenali, seperti casing komputer, keyboard, dan monitor. Namun, ada banyak jenis komponen perangkat keras yang lainnya untuk membentuk sebuah komputer.
Gambar 1.1: Elemen perangkat keras komputer
2
Rekayasa Perangkat Lunak
2. Software
(Perangkat
Lunak),
merupakan
suatu data yang
diprogram sedemikian rupa dan disimpan dalam bentuk digital yang tidak terlihat secara fisik tetapi tersimpan dalam media penyimpanan komputer. Software atau perangkat lunak dapat berupa program atau aktifitas menjalankan suatu perintah atau intruksi melalui fasilitas interaksi pada software (perangkat lunak) komputer sehingga sistem dapat beroperasi. Software juga dapat dikatakan sebagai penggerak dan pengendali hardware (perangkat keras).
Gambar 1.2: Ilustrasi perangkat lunak
Software dibuat dengan menggunakan bahasa pemrograman yang ditulis
atau
dibangun
oleh
programmer
yang
selanjutnya
dikompilasi dengan aplikasi kompiler sehingga menjadi sebuah kode yang nantinya akan dikenali oleh mesin hardware. 3. Brainware (Perangkat Manusia/Otak), merupakan orang yang menggunakan (user), memakai ataupun mengoperasikan perangkat komputer. Seperti contoh dari brainware yaitu programmer, operator (sebutan untuk orang yang menggunakan suatu sistem komputer untuk fungsi tertentu), serta menggunakan
perangkat
komputer.
orang yang sedang
Brainware
juga
dapat
3
Rekayasa Perangkat Lunak
didefenisikan
sebagai
manusia
yang
terlibat
dalam
mengoperasikan atau memakai serta mengatur sistem di dalam perangkat komputer. Dapat diartikan juga sebagai perangkat intelektual
yang
mengoperasikan
dan
juga
mengeksplorasi
kemampuan dari perangkat keras (hardware) maupun perangkat lunak (software).
Gambar 1.3: Elemen pembentuk sistem komputer
Perangkat Lunak Pada mata kuliah Rekayasa Perangkat Lunak (RPL) ini, sebelumnya kita harus mengerti dan memahami terlebih dahulu, apa yang dimaksud dengan perangkat lunak. Perangkat lunak saat ini telah menjadi kekuatan baru yang sangat menentukan dalam mendukung suatu aktifitas. Perangkat lunak
menjadi
mesin
yang
mengendalikan proses
pengambilan
4
Rekayasa Perangkat Lunak
keputusan di dalam dunia bisnis, berfungsi sebagai basis dari berbagai bentuk
pelayanan serta penelitian keilmuan modern. Saat ini perangkat
lunak memiliki dua peran. Di satu sisi produk,
dan di sisi lain sebagai
berfungsi
media
sebagai
sebuah
yang mengantarkan sebuah
produk.
Di masa lalu, perangkat
lunak bersifat sederhana
dan karenanya,
pengembangan perangkat lunak merupakan kegiatan yang juga sederhana. Namun, seiring meningkatnya teknologi dan peradaban manusia, perangkat lunak menjadi lebih kompleks dan proyek perangkat lunak tumbuh menjadi lebih besar. Pengembangan perangkat lunak sekarang mengharuskan kehadiran tim yang dapat mempersiapkan rencana dan desain secara terperinci, melakukan pengujian, mengembangkan antar muka pengguna yang intuitif, dan mengintegrasikan semua aktifitas ini ke dalam sistem. Pendekatan baru ini menyebabkan munculnya sebuah disiplin ilmu yang dikenal sebagai rekayasa perangkat lunak.
Sebenarnya, apa yang dimaksud dengan perangkat lunak?
Perangkat
lunak
(Software)
adalah:
(1)
Perintah/instruksi
(program
komputer) yang mana bila ia dieksekusi akan memberikan fungsi dan unjuk kerja seperti yang diinginkan. (2) Struktur data yang memungkinkan program
memanipulasi
data
dan
informasi
secara
proporsional.
(3)
Dokumen yang menggambarkan operasi dan kegunaan program.
Klasifikasi Perangkat Lunak :
1. Sistem Operasi (operating system), merupakan perangkat lunak yang berfungsi
untuk
mengoperasikan
komputer
serta
menyediakan
antarmuka dengan perangkat lunak lain atau dengan pengguna. Contoh perangkat lunak Sistem Operasi : MS DOS, MS Windows (dengan
berbagai
generasi), Macintosh, OS/2, UNIX (dengan
5
Rekayasa Perangkat Lunak
berbagai versi), LINUX (dengan berbagai distribusi), NetWare, dan sebagainya. Masing-masing sistem operasi memiliki perbedaan dalam lingkup/platform operasi, jumlah pemakai, metode interaksi pemakai, sifatnya (opensource/closesource) dan lisensi penggunaan. 2. Program
Utilitas (Utility),
merupakan
program
khusus
yang
berfungsi sebagai perangkat pemeliharaan suatu sistem komputer, seperti
anti
virus,
partisi
hardisk,
manajemen
sebagainya. Contoh produk program
utilitas
hardisk,
dan
: Norton Utilities,
PartitionMagic, McAfee, dan sebagainya 3. Program Aplikasi, merupakan program yang dikembangkan untuk memenuhi kebutuhan yang spesifik. Contoh : aplikasi akuntansi, aplikasi perbankan, aplikasi manufaktur, dan sebagainya. 4. Paket Pemrograman, merupakan program yang dikembangkan untuk kebutuhan umum, seperti : pengolah kata/text editor (misalnya: MSWord, Notepad, Latex, dll), pengolah angka / lembar kerja (misalnya: MS Excel, dll), presentasi (Misalnya: MS PowerPoint, dll), dan desain grafis (Misalnya: 3D, CorelDraw, PhotoShop, dan sebagainya) 5. Bahasa
Pemrograman,
merupakan sebuah instruksi standar yang
bertugas untuk memberikan instruksi kepada komputer. Sering disebut juga dengan bahasa komputer atau bahasa pemograman komputer. Bahasa pemrograman juga dapat dikatakan sebagai alat untuk menampung suatu
kumpulan dari aturan sintaks
dan
semantik yang khususnya dipakai untuk mendefinisikan sebuah program yang ada di komputer. Contoh bahasa pemrograman yang paling umum digunakan, yaitu : Java Script, PHP, HTML, C++, Python, dan sebagainya.
Aplikasi Perangkat Lunak Perangkat lunak dapat diaplikasikan ke berbagai situasi dan lingkungan di mana serangkaian langkah p...