Anda di halaman 1dari 23

MAKALAH KELOMPOK 1 BAB 1

REKAYASA PERANGKAT LUNAK

DISUSUN

FILINIA GUSTI _ 20343060

LUCHY RAHMADANI _ 20343067

SILVIA FEBRI NINGSIH _ 20343072

PRODI TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS NEGERI PADANG (PESSEL)

2020
DAFTAR ISI

Cover

Daftar Isi

Kata Pengantar

Isi

Rangkuman
KATA PENGANTAR

Puji syukur penulis ucapkan kehadirat Allah SWT atas segala rahmat-Nya sehingga
makalah ini dapat tersusun sampai dengan selesai. Tidak lupa penulis mengucapkan terima
kasih terhadap bantuan dari pihak yang telah berkontribusi dengan memberikan sumbangan
baik pikiran maupun materinya. Penulis sangat berharap semoga makalah ini dapat menambah
pengetahuan dan pengalaman bagi pembaca. Bahkan kami berharap lebih jauh lagi agar
makalah ini bisa pembaca praktekkan dalam kehidupan sehari-hari.

Bagi kami sebagai penyusun merasa bahwa masih banyak kekurangan dalam
penyusunan makalah ini karena keterbatasan pengetahuan dan pengalaman Kami. Untuk itu
kami sangat mengharapkan kritik dan saran yang membangun dari pembaca demi
kesempurnaan makalah ini.
ISI

1.1 Karakteristik Perangkat Lunak

Setiap orang pasti memiliki penilaian yang berbeda mengenai perangkat lunak. Hal itu
berkaitan dengan bagaimana cara seseorang terlibat atau mengenal perangkat lunak. Contohnya
ialah, bagaimana keinginan si pengguna mengenai kebutuhannya dalam perangkat lunak
tersebut. Atau seorang developer (pengembang) yang terlibat dengan pengkodean, pemeliharaan,
perancangan, dan mengevaluasi  suatu perangkat lunak yaitu dengan cara melihat bagaimana
karakteristik dari perangkat lunak itu sebelum di kirim ke orang lain/pengguna lain.

Sebuah sistem dari komputer mempunyai beberapa lapisan, dimana suatu perangkat lunak
terletak pada lapisan kedua dan lapisan ketiga. Pada lapisan keduanya terdapat compiler, Sistem
Operasi, editor serta intepreter. Pada lapisan ketiga terdapat suatu Perangkat Lunak Aplikasi.
Fungsi dari suatu Perangkat Lunak Sistem ialah untuk mengatur operasi sistem. Dimana pada
perangkat lunak tersebut terdapat yang namanya suatu “Sistem Operasi” yang dapat
menghubungkan suatu perangkat keras dengan pengguna komputer. Fungsinya ialah agar si
pengguna tidak sulit atau tidak repot dalam pemrograman dari komputer itu sendiri. Karakteristik
dari perangkat lunak dapat digolongkan kedalam beberapa kelompok yaitu:

A.karakteristik berdasarkan fungsi

Karakteristik dari perangkat lunak berdasarkan fungsinya ialah:

1. Functionality, artinya mengacu terhadap tingkat kinerja dari perangkat lunak tersebut


pada tujuan yang telah ditetapkan.
2. Reliability, yaitu berhubungan dengan kemampuan dari perangkat lunak dalam
menyediakan fungsionalitas seperti yang diinginkan, atau dalam kondisi tertentu.
3. Usability, yaitu kemampuan dari perangkat lunak sampai sejauh mana bisa untuk
digunakan dengan baik dan mudah.
4. Efficiency, yaitu bagaimana kemampuan dari perangkat lunak dalam
menggunakan/mengaplikasikan  sumber daya sistem dengan cara yang efisien serta cara
yang efektif untuk dipakai.
5. Maintainability, yaitu bagaimana kemampuan dari perangkat lunak tersebut dalam
“kemudahan untuk modifikasi” misalnya untuk memperbaiki kinerja, memperbaiki
kesalahan dan memperluas fungsi sari perangkat lunak.
6. Portability, yaitu mengacu terhadap kemudahan dari software developer (pengembangan
dari perangkat lunak). Artinya manakah software developer yang bisa mentransfer suatu
perangkat lunak.
7. Robustness, yaitu jika perangkat memiliki data yang tidak valid, sejauh manakah
kemapuan dari perangkat lunak tersebut.
8. Integrity, yaitu berhubungan dengan kemampuan dari perangkat lunak dalam hal akses
data yang tidak sah dan juga data yang bisa dicegah.

B.Berdasarkan Perbedaannya dengan Hardware

Karakteristik dari perangkat lunak ditinjau dari perbedaannya dengan perangkat keras, ialah
sebagai berikut:

1. Perangkat lunak memiliki keunikan yaitu tidak diproduksi secara masal, namun tetap
dikembangkan. Berbeda dengan perangkat keras. Dimana perangkat lunak yang dibuat
hanya satu, bukan diproduksi dalam jumlah yang banyak seperti perangkat keras.
2. Perangkat lunak tidak mengenal “kata usang”. Perangkat keras bertolak belakang dengan
perangkat lunak dalam hal ini karena Perangkat keras lebih mudah usang jika digunakan
dalam periode yang lama. Misalnya jika membeli sebuag Gadge yang memiliki Processor
Snapdragon 835, ROM 64 GB, RAM 16 GB Kamera 32 MB, semakin lama gadge
tersebut akan usang, tandanya yaitu performansinya akan menurun, serta harganya juga
semakin lama akan turun/murah.
3. Beberapa dari perangkat lunak ada yang dikembangkan dengan cara “pesanan (custom)”,
sedangkan pengembangan dengan “Component-Based Assembly” digunakan dalam
perangkat keras.
C. Berdasarkan Sifat

Karakteristik dari perangkat lunak berdasarkan sifatnya ialah:

1. software engineering merupakan cara yang digunakan dalam membuat perangkat lunak,


bukan diproduksi dengan cara pabrikan atau manufaktur. Sehingga bisa dikatakan suatu
produksi yang cukup unik karena tidak memiliki seri produksi.
2. Jika perangkat lunak mempunyai kekurangan/cacat, maka dapat diperbaiki,
dikembangkan dan diperbaharui secara kontinyu sehingga tidak pernah usang atau wear
out. Jika pengguna dari sistem perangkat lunak menginginkan sistem sesuai keinginannya
maka perangkat lunak bisa di bentuk sesui keinginanya.
3. Perangkat lunak biasanya akan diperbaiki sesuai kebutuhan dari penggunanya.
Sedangkan barang dari pabrik bersifat final dan permanen saat di produksi.
4. Bersifat invisible (tidak terlihat).
5. Fleksible, yaitu jika ada yang kekurangan dapat dikembangkan/dimodifikasi.
6. Secara umum dapat dihubungkan ke sisitem komputer.

D. Berdasarkan Buku Ian Sommerville

1. Maintanability, yaitu dapat dirawat. Dimana perangkat lunak harus bisa memenuhi


perubahan dari kebutuhan user.
2. Dependability, yaitu perangkat lunak harus bersifat dapat dipercya.
3. Efisiensi, yaitu dalam hal penggunaan resource (penyimpanan) harus efisien.
4. Usability, yaitu penggunaan dari perangkat lunak harus bisa sesuai dengan yang telah
direncanakan/yang dibuat.
1.1.1 Definisi Perangkat Lunak

Pengertian perangkat lunak menurut Al Bahra bin Ladjamudin (2006:3) menjelaskan


bahwa perangkat lunak adalah objek tertentu yang dapat dijalankan seperti kode sumber, kode
objek atau sebuah program yang lengkap. Produk perangkat lunak memiliki pengertian perangkat
lunak yang ditambahkan dengan semua item dan pelayanan pendukung yang secara keseluruhan
dapat memenuhi kebutuhan pemakai. Produk perangkat lunak memiliki banyak bagian yang
meliputi manual, referensi, tutorial, intruksi instalasi, data sampel, pelayanan pendidikan,
pelayanan pendukung teknis dan sebagainya. Semua yang dihasilkan oleh proyek perangkat
lunak adalah produk kerja (work product).

1. Pengertian perangkat lunak menurut Wiwit Siswoutomo.

Menurut Wiwit menyebutkan software atau perangkat lunak merupakan suatu nyawa dari
komputer atau hardware. Maka sebab itulah, tanpa adanya software maka komputer hanyalah
sebuah hardware atau perangkat keras yang mati dan tidak dapat digunakan (tidak ada
manfaatnya).

2. Pengertian perangkat lunak menurut Imam Prayogo Pujiono.

Imam Prayogo Pujiono berpendapat bahwa perangkat lunak merupakan suatu program di
dalam komputer yang disusun sedemikian rupa. Yang apabila dijalankan akan memberikan
perintah ke komputer atau hardware atau software lain dalam rangka menyelesaikan suatu tugas,
pekerjaan, dan juga tuntutan tertentu seperti yang diinginkan oleh user.

3. Pengertian perangkat lunak menurut Sunarto.

Software adalah nyawa dari sebuah komputer sehingga singkatnya apabila komputer
tidak bisa digunakan jika tidak dilengkapi dengan software

.
4. Pengertian perangkat lunak menurut Roger S. Pressman.

Roger S. Pressman (2002), Pressman menyebutkan bahwa perangkat lunak atau software
merupakan suatu perintah program yang teradapat di dalam sebuah komputer. Ketika dieksekusi
oleh usernya akan memberikan sejumlah fungsi sekaligus menampilkan informasi yang
diinginkan oleh usernya. Hal ini menjelaskan jika software atau perangkat lunak ini memiliki
fungsi untuk memberikan perintah komputer.

1.1.2 Ranah Aplikasi Perangkat Lunak

Saat ini, terdapat 7 kategori utama dari perangkat lunak computer

 Perangkat Lunak Sistem : sekumpulan program yang ditulis untuk melayani program -
program lain (contoh = perangkat lunak untuk melakukan komplikasi [compiler] ,
editor, dan utilitas – utilitas pengaturan berkas) yang melakukan pemprosesan struktur –
struktur informasi yang kompleks namun umumnya bersifat terbatas.
 Perangkat Lunak Aplikasi : program – program mandiri yang menjawab kebutuhan
bisnis yang terinci. aplikasi – aplikasi dalam bidang ini melakukan pemprosesan data
bisnis atau data teknis yang mendukung berjalannya operasi – operasi bisnis atau
pengaturan/pengambilan keputusan teknis.
 Perangkat Lunak Rekayasa/ilmiah : telah lama memiliki algoritma yang penuh dengan
kalkulasi data numerik. aplikasi dalam kategori ini beragam mulai dari aplikasi – aplikasi
yang dikembangkan pada otomotif hingga dinamika orbit pada pesawat ulang – alik, dan
dari biologi molekul hingga ini semakin bergeser menjauh dari algoritma numerik
konvensional.
 Perangkat Lunak yang Tertanam : berada dalam suatu produk atau sistem dan
digunakan untuk menjalankan dan mengendalikan fitur – fitur dan fungsi – fungsi bagi
pengguna akhir dan bagi sistem itu sendiri (contoh = kontrol tombol – tombol pada
pemanggang gelombang mikro).
 Perangkat Lunak Lini Produk : dirancang untuk menyediakan kemampuan khusus
untuk digunakan oleh pelanggan yang berbeda – beda (contoh = produk – produk kendali
inventariasi).
 Aplikasi Web : kategori perangkat lunak yang berpusat pada jaringan komputer ini
menyajikan sederetan luas aplikasi – aplikasi .
 Perangkat Lunak Kecerdasan Buatan : menggunakan algoritma non-numerik untuk
memecahkan permasalahan permasalahan rumit yang tidak bisa diselesaikan dengan
komputasi atau analisis permasalahan secara langsung. aplikasi – aplikasi yang berada
didalam kategori ini menyertakan di dalamnya robotika, sistem pakar, pengenalan. pola
(gambar dan suara), jaringan syaraf buatan/tiruan, dan permainan game.

Tantangan
 Open-wolrd Computing : pertumbuhan jaringan nirkabel yang cepat dapat segera
mengarah pada komputasi terdistribusi dan benar – benar bersifat sangat bermanfaat.
tantangan rekayasawan perangkat lunak nantinya harus mengembangkan sistem dan
perangkat lunak aplikasi yang akan memungkinkan perangkat2 bergerak.
 Netsourcing : WWW secara cepat menjadi sebuah mesin komputasi dan juga sebuah
penyedia isi. tantangan bagi rekayasawan adalah merancang aplikasi2 yang sederhana.
 Open Source : suatu tren yang sedang berkembang dan membuka jalan bagi distribusi
kode – kode program bagi aplikasi aplikasi sistem (contoh = sistem operasi).

1.1.3 Perangkat Lunak Warisan

Tantangan Warisan (Legacy) yaitu Tantangan memelihara dan meng-update PL


sedemikian sehingga biaya yg berlebihan dapat dihindari dan layanan bisnis yg penting tetap
dilakukan.

Alasan-alasan kenapa sistem aplikasi warisan sering berubah-ubah ?


 perangkat lunak warisan harus didiadaptasikan sedemikian rupa, sehingga memenuhi
kebutuhan2 teknologi atau komputasi yang baru
 perangkat lunak warisan harus diperluas sedemikian rupa agar ia dapat saling
mengoprasikan dengan sistem atau perangkat lunak atau basis data modern lainnya
 perangkat lunak harus dirancang ulang sehingga ia dapat hidup dalam lingkungan
pengoprasian jaringan komputerperangkat lunak warisan harus ditingkatkan kinerjanya
supaya dapat menjalankan kebutuhan-kebutuhan bisnis baru.

1.2 Karakteristik Khas dari Aplikasi-aplikasi Web


Aplikasi berbasis web adalah aplikasi yang dikembangkan menggunakan bahasa HTML,
PHP, CSS, JS yang membutuhkan web server dan browser untuk menjalankannya seperti
Chrome, Firefox atau Opera. Aplikasi Web dapat berjalan pada jaringan internet maupun
intranet (Jaringan LAN), Data terpusat dan kemudahan dalam akses adalah ciri utama yang
membuat Aplikasi Web lebih banyak diminati dan lebih mudah diimplementasikan pada
berbagai bidang kehidupan.
Aplikasi berbasis web mulai populer seiring dengan jumlah pengguna internet aktif di
seluruh dunia. Selain mudah untuk diakses perangkat website juga tidak membutuhkan sumber
daya yang besar dari sisi perangkat keras atau lunak. Dari setiap kalangan -pun dapat
menggunakan sebuah aplikasi website. Pada artikel kali ini, kami akan membahas lebih dalam
mengenai aplikasi berbasis web, serta keunggulan yang dimilikinya daripada aplikasi berbasis
desktop. Karena saat ini, perangkat desktop sudah mulai tergantikan dengan posisi website yang
lebih ramah pengguna dan lebih dikenal masyarakat luas. Sehingga banyak bermunculan web
programmer dan startup baru di bidang software house untuk pengembangan website. Situs web
pertama yang muncul di dunia maya sekaligus menandai dimulainya era World Wide Web alias
‘www’ dibuat oleh Sir Timothy John “Tim” Berners-Lee pada 6 Agustus 1991.

Sifat-sifat yang ditemui pada sebagian besar aplikasi-aplikasi web ?


 Kepadatan Jaringan
Aplikasi-aplikasi berada pada suau jaringan komputer dan harus melayani kebutuhan
komunitas atau klien yang beragam. jaringan komputer tersebut dapat memungkinkan
akses dan komunikasi secara global (internet) maupun komunikasi dan akses yang lebih
terbatas (internet dalam suatu perusahaan)
 Keserempakan
Pengguna aplikasi web menggunakan secara serempak, dalam banyak kasus, pola
penggunaan aplikasi-aplikasi web diantara para pengguna terakhir akan sangat bervariasi
Jumlah Pengguna Yang Tidak Dapat Diprediksi Semakin bagus website semakin banyak
pegunjung, seratus pengguna mungkin muncul pada hari senin; 10.000 pengguna
mungkin menggunakan sistem pada hari kamis
 Kinerja
Jika seorang pengguna harus menunggu terlalu lama (untuk akses) pengguna yang
bersangsangkutan bisa saja memutuskan pergi ketempat lain
 Ketersediaan
Pengguna menuntut akses 24 jam setiap harinya. para pengguna di Australia atau Asia
mungkin menuntut akses selama masa-masa ketika aplikasi perangkat lunak lama di
Amerika Utara mungkin dibuat tidak aktif (offline) untuk dilakukan perawatan
terhadapnya
 Digerakan Oleh Data
Fungsi utama dari banyak aplikasi-aplikasi web adalah menggunakan hypermedia untuk
menyajikan isi teks, grafis, suara(Audio) dan video kepada pengguna akhir. Aplikasi web
pada umumnya digunakan untuk mengakses informasi yang ada dalam sistem basis data
yang bukan merupakan bagian integral dari lingkungan berbasis web
 Peka Terhadap Isi
Kualitas dan karakter keindahan isi adalah penentu penting dari kualitas sebuah aplikasi
web
 Kesegeraaan
Meskipun kesegeraan-kebutuhan, merupakan suatu karakter dari banyak ranah aplikasi,
aplikasi web sering menunjukan kedisiplinan waktu untuk merilis produk ke pasar dalam
waktu beberapa hari atau beberapa minggu
 Keamanan
Untuk melindungi isi yang peka dan menyajikan modus-modus yang aman dari transmisi
data, tindakan-tindakan pengamanan yang kuat harus diterapkan melalui infrastruktur
jaringan komputer yang mendukung aplikas-aplikasi web dan harus diterapkan juga pada
infrastruktur didalam aplikasi-aplikasi web itu sendiri
 Estetika
Suatu bagian yang tak disangkal dari aplikasi-aplikasi web adalah tampilan dan
nuansanya. estetika/keindahan banyak berkaitan dengan kesuksesan juga dengan
rancangan-rancangan teknis untuk aplikasi web tersebutEvolusi Yang
Berkesinambungan
Tidak seperti perangkat-perangkat lunak aplikasi konvensional yang umumnya
berevolusi, aplikasi-aplikasi web berevolusi secara berkesinambungan, diperbarui terus
menerus.
1.3 Rekayasa Perangkat Lunak

Kenyataan Sederhana Tentang Perangkat Lunak :

Perangkat lunak telah menjadi menyatu secara maya dengan setiap aspek dalam
kehidupan sehari-hari. Jumlah orang yang memiliki ketertankan pada fitur-fitur dan fungsi-
fungsi yang disediakan oleh aplikasi tertentu telah bertambah dengan drastis. Ketika sebuah
aplikasi baru atau sistem yang tertanam harus dibangun. Maka usaha terpadu harus dilakukan
agar memahami masalahnya sebelum solusi perangkat lunak dikembangkan.

Kebutuhan teknologi informasi yang dituntut oleh individu-individu, bisnis bisnis,


dan pemerintah-pemerintah bertambah kompleks dari tahun ke tahun. Perangkat lunak
canggih yang pernah dijalankan dalam lingkungan komputasi yang mandiri dan dapat diprediksi
sekarang menyatu dalam setiap benda, mulai dari benda elektronik, peralatan medis, hingga
sistem persenjataan. Kompleksitas dari produk-produk dan sistem-sistem berbasis komputer ini
menuntut perhatian yang terinci pada interaksi antar semua elemen sistem.

Perangkat lunak harus berkualitas tinggi. Individu-individu, bisnis-bisnis, dan


pemerintah-pemerintah semakin mengandalkan perangkat lunak untuk mengambil keputusan
taktis dan strategis juga untuk pengoperasian sehari-hari dan kendali. Kalau saja sebuah
perangkat lunak mengalami kegagalan, orang-orang dan perusahaan-perusahaan besar dapat
mengalami kegagalan-kegagalan mulai dari kegagalan yang kecil hingga kegagalan yang besar.

perangkat lunak harus bersifat dapat dirawat/dipelihara. Ketika nilai aplikasi tertentu
bertambah, kemungkinan basis pengguna dan panjangnya usia dari perangkat lunak tersebut juga
akan bertambah. Ketika basis pengguna dan waktu pemakaiannya bertambah, tuntutan adaptasi
dan peningkatan mutu akan bertambah pula.

Pengertian Rekayasa Perangkat Lunak

1. 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.”

2. 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.”
3. Kemudian pada tahun 1993, IEEE mengembangkan definisi yang lebih
komprehensif yaitu sebagai berikut :

Rekayasa perangkat lunak adalah : (1) Aplikasi dari sebuah pendekatan kuantifiabel,
disiplin, dan sistematis terhadap pengembangan, operasi, dan pemeliharaan perangkat lunak;
yaitu aplikasi dan rekayasa perangkat lunak; (2) Studi tentang pendekatan-pendekatan tentang
(1).

1.4 Proses Perangkat Lunak


Dalam konteks rekayasa perangkat lunak, suatu proses sesungguhnya bukanlah merupakan
suatu resep yang kaku seputar bagaimana mengembangkan/ membangun perangkat lunak
komputer. Terlebih, rekayasa perangkat lunak merupakan pendekatan adaptif yang
memungkinkan orang mengerjakan sesuatu (tim perangkat lunak) untuk memilih serangkaian
aksi dan tugas. Tujuannya selalu menyampaikan perangkat lunak secara tepat waktu dan dengan
kualitas yang cukup bagus sehingga memuaskan mereka yang telah memberikan dukungan atas
pembuatannya dan memuaskan mereka yang akan menggunakannya.

Suatu kerangka kerja proses membangun dasar bagi proses rekayasa perangkat lunak yang
lengkap dengan cara mengidentifikasikan sejumlah kecil aktivitas kerangka kerja yang cocok
bagi semua proyek rekayasa perangkat lunak, tanpa memperhatikan ukurannya maupun
kompleksitasnya. Selain itu, kerangka kerja proses mencakup sekumpulan aktivitas yang
berperan sebagai penyangga dan cocok dengan keseluruhan proses perangkat lunak. Kerangka
kerja proses yang umum bagi rekayasa perangkat lunak terdiri atas lima aktivitas berikut ini:

1.Komunikasi. Sebelum pekerjaan teknis apa pun dapat dimulai, sangatlah penting untuk
berkomunikasi dan berkolaborasi dengan pelanggan (dan para pemangku kepentingan
[stakeholder" yang lain). Maksudnya adalah untuk memahami tujuan-tujuan stakeholder atas
proyek perangkat lunak yang sedang dikembangkan dan mengumpulkan kebutuhan-kebutuhan
yang akan membantu mengartikan fitur-fitur perangkat lunak beserta fungsi-fungsinya.

2. Perencanaan. Alur yang rumit dapat disederhanakan jika terdapat suatu peta. Suatu proyek
perangkat lunak pada dasarnya merupakan suatu alur yang rumit, dan kegiatan perencanaan
perangkat lunak tersebut menciptakan suatu "peta" yang membantu membimbing tim perangkat
lunak ketika mereka melakukan suatu perjalanan. Peta perangkat lunak tersebut-yang disebut
sebagai rencana proyek perangkat lunak-mengartikan kerja rekayasa perangkat lunak dengan
menggambarkan tugas-tugas teknis yang harus dilakukan, risiko-risiko yang mungkin muncul,
sumber daya yang akan dibutuhkan, produk-produk kerja yang harus dihasilkan, dan jadwal
jadwal kerja.
3.Pemodelan. sketsa pemodelan dibuat dengan tujuan untuk menjadikan paham akan gambaran
besarnya seperti apa nantinya tampilannya secara arsitektur, bagaimana bagian-bagian
pembentuk memiliki kecocokan, dan masih banyak lagi karakteristik yang lain. Sketsa-sketsa
tersebut menjadi lebih rinci supaya lebih memahami masalah sesungguhnya dan lebih
memahami bagaimana nar tersebut. Seorang rekayasawan perangkat lunak melakukan hal yang
sama dalam memecahkan masalah tersebut.

4. Konstruksi. Kegiatan ini menggabungkan pembentukan kode (code generation) (bisa secara
manual maupun secara otomatis) dan pengujian yang sangat dibutuhkan untuk menemukan
kekeliruan-kekeliruan/kesalahan-kesalahan dalam kode program komputer yang dihasilkan
sebelumnya.

5. Penyerahan perangkat lunak ke pelanggan/pengguna (deployment). Perangkat lunak


disajikan kepada pelanggan yang kemudian akan mengevaluasi produk yang disajikan dan akan
memberikan umpan balik berdasarkan evaluasi tersebut.

Lima aktivitas kerangka kerja yang umum ini dapat digunakan selama masa
pengembangan program-program kecil dan sederhana, selama pembuatan aplikasi web yang
besar, dan pada saat dilakukannya rekayasa sistem-sistem berbasis komputer yang kompleks dan
besar. Rincian dari proses perangkat lunak bisa cukup berbeda pada setiap kasus nyata, namun
aktivitas-aktivitas kerangka kerja pada dasarnya tetap sama.

Bagi banyak proyek perangkat lunak, aktivitas-aktivitas kerangka kerja diterap kan secara
berulang-ulang saat suatu proyek berjalan. Aktivitas-aktivitas tersebut, yakni komunikasi,
perencanaan, pemodelan, konstruksi, dan pengoperasian diaplikasikan berulang-ulang
melalui sejumlah pengulangan proyek. Masing-masing iterasi proyek perangkat lunak
menghasilkan suatu peningkatan perangkat lunak yang memberikan kepada para stakeholder
sekumpulan dari seluruh fitur dan fungsionalitas perangkat lunak. Ketika masing-masing
peningkatan perangkat lunak dihasilkan maka perangkat lunak menjadi semakin lengkap.

Aktivitas-aktivitas kerangka kerja proses rekayasa perangkat lunak disempurnakan oleh


sejumlah aktivitas-aktivitas yang bertindak sebagai penyangga secara umum, kegiatan-kegiatan
penyangga diaplikasikan melalui suatu proyek perangkat lunak dan membantu tim perangkat
lunak untuk mengatur dan mengendalikan kemajuan, kualitas, perubahan, dan risiko. Kegiatan-
kegiatan penyangga pada umumnya mencakup hal-hal berikut ini:

Penelusuran dan kendali proyek perangkat lunak - memungkinkan tim perangkat lunak
melakukan penilaian terhadap kemajuan proyek perangkat lunak yang sedang berjalan terhadap
rencana proyek yang telah ditetapkan sebelumnya dan mengambil tindakan-tindakan yang perlu
dilakukan untuk mempertahankan jadwal.

Manajemen risiko - menilai risiko-risiko yang mungkin berpengaruh pada hasil akhir proyek
perangkat lunak atau kualitas produk yang dihasilkannya.
Penjaminan kualitas perangkat lunak - memperjelas dan melakukan kegiatan-kegiatan yang
diperlukan untuk memastikan kualitas perangkat lunak.

Ulasan/tinjauan teknis - menilai produk-produk hasil karya rekayasa perangkat lunak sebagai
usaha untuk menemukan dan menyingkirkan kekeliruan-kekeliruan/kesalahan-kesalahan
sebelum tersebar/menjalar pada aktivitas berikutnya.

Pengukuran - menjelaskan dan mengumpulkan tolok ukur proses-proses, proyek, dan produk
produk yang akan membantu tim perangkat lunak dalam menyampaikan perangkat lunak yang
memenuhi kebutuhan-kebutuhan para stakeholder; dapat digunakan sejalan dengan kerangka
kerja dan aktivitas penyangga yang lainnya.

Manajemen konfigurasi perangkat lunak - mengatur efek perubahan di seluruh proses


perangkat lunak.

Manajemen penggunaan-ulang-menjelaskan kriteria bagi penggunaan - ulang produk


produk kerja perangkat lunak (termasuk di dalamnya komponen-komponen perangkat lunak) dan
membangun mekanisme untuk mencapai terbentuknya komponen-komponen yang dapat
digunakan-ulang.

Persiapan produk kerja dan produksi - mencakup di dalamnya aktivitas yang diperlukan
dalam menciptakan produk-produk kerja seperti model-model, dokumen-dokumen, catatan-
catatan (log), form-form, dan daftar-daftar.

Oleh karena itu, suatu proses yang diadopsi untuk suatu proyek perangkat lunak mungkin
sangat berbeda dari yang diadopsi untuk proyek-proyek perangkat lunak yang lainnya. Di antara
perbedaan-perbedaan yang ada tersebut mencakup di dalamnya apa yang tertera pada poin-poin
berikut ini :

 Keseluruhan aliran aktivitas, tindakan, tugas dan saling ketergantungan diantara


mereka.
 Tingkat dimana tindakan dan tugas didefinisikan dalam masing-masing aktivitas
kerangka kerja.
 Tingkat dimana produk-produk kerja diidentifikasi dan dibutuhkan.
 Sikap dimana aktivitas penjaminan kualitas diterapkan.
 Sikap dimana aktivitas pengendali dan penjejak proyek diterapkan.
 Keseluruhan tingkat rincian dan desakan yang mendeskripsikan proses tersebut.
 Tingkat dimana pelanggan dan para stakeholder lainnya akan dilibatkan dalam
proyek.
 Tingkat kemandirian yang diberikan bagi tim perangkat lunak.
 Tingkat dimana pengaturan tim dan peran dijalankan dengan kaku.
1.5 Praktik Rekayasa Peragkat Lunak

1.5.1 Esensi Praktik

George Poyla [Pol45] membuat gambaran garis besar esensi pemecahan masalah dan selanjutnya
menghasilkan esensi praktik rekayasa perangkat lunak:

1. Pahami permasalahannya (komunikasi dan analisa).


2. Rancang solusinya (pemodelan dan rancangan perangkat lunak).
3. Laksanakan rancangannya (pengaktifan kegiatan penulisan kode).
4.Periksa ketepatan hasilnya (pengujian dan penjaminan kualitas).

Dalam konteks rekayasa perangkat lunak, langkah-langkah dasar berikut mengarah pada
serangkaian pertanyaan penting berikut ini [diadaptasi dari Pol45]:

Pahami permasalahannya. Sebagai progammer terkadang mendengar sejenak dan kemudian


berpikir secara cepat dan langsung memutuskan “ Oya, aku paham, mari kita cari
pemecahannya”. Sayangnya, pemahaman tidak selalu semudah itu. Sepatutnya ambil waktu
sejenak untuk menjawab beberapa pertanyaan sederhana berikut:

 Siapa saja yang terkait dalam pemecahan masalah? Yaitu, siapa sajakah yang menjadi
stakeholder? atau jalan keluar jalur yang lebih baik, namun dengan rencana tersebut
memungkinkan programmer terus berjalan tanpa tersesat.

Periksa hasilnya. Hasil yang diperoleh belum tentu sudah sempurna, maka dapat dilakukan
sejumlah langkah-langkah pengujian untuk mencari tahu sebanyak mungkin kekeliruan /
kesalahan yang ada pada kode-kode program.

1.5.2 Prinsip-prinsip Umum

Davis Hooker [H0096] telah menyatakan tujuh prinsip yang menekankan pada praktik
rekayasa perangkat lunak sebagai suatu keseluruhan. Prinsip-prinsip tersebut akan dinyatakan
kembali dalam paragraf-paragraf berikut :

Alasan keberadaan perangkat lunak Suatu sistem perangkat lunak ada karena satu
alasan: memberikan nilai tertentu bagi para penggunanya. Semua keputusan harus dibuat dengan
alasan tersebut. Sebelum merinci kebutuhan sistem, sebelum mencatat suatu bagian
fungsionalitas sistem, sebelum menentukan platform perangkat keras atau proses pengembangan.

Tetap Sederhana Perancangan perangkat-perangkat lunak bukanlah suatu proses yang


bersifat samar. Ada banyak faktor yang dipertimbangkan dalam upaya kita melakukan
perancangan perangkat-perangkat lunak. Seluruh rancangan pada dasarnya harus sesederhana
mungkin, namun tidak terlalu sederhana sehingga mengabaikan hal-hal yang perlu dicantumkan.
Hal tersebut mendukung terbentuknya sistem-sistem yang lebih mudah dipahami dan dirawat.
Seringkali prosesnya menuntut pemikiran dan kerja melalui pengulangan-pengulangan yang
bertujuan untuk melakukan penyederhanaan lebih lanjut. Hasilnya adalah perangkat lunak yang
lebih mudah dirawat dan memiliki kecenderungan akan adanya jumlah kesalahan yang
kecil/sedikit.

Pertahankan Visi. Visi yang jelas penting bagi keberhasilan suatu proyek perangkat lunak.
Tanpa visi yang jelas, suatu proyek perangkat lunak hampir pasti akan berakhir menjadi "dua
atau lebih pemikiran" yang berbeda mengenai dirinya. Tanpa integritas konseptual, suatu
sistem/perangkat lunak terancam akan menjadi suatu hasil tambal sulam dari rancangan-
rancangan yang saling tidak cocok satu sama lain, yang direkatkan oleh jenis-jenis baut yang
keliru.... Kompromi secara membabi-buta dengan visi arsitektural dari suatu sistem/perangkat
lunak akan melemahkan dan akhirnya merusak sistem-sistem/perangkat-perangkat lunak, bahkan
yang telah dirancang dengan baik. Memiliki seorang arsitek yang hebat dan yang dapat
mempertahankan. visi dan mendorong pelaksanaannya dapat memastikan keberhasilan suatu
proyek perangkat lunak.

Produk yang Dibuat, Akan Digunakan oleh Konsumen/ Pelanggan. Jarang ada suatu
sistem perangkat lunak yang tangguh dibangun dan digunakan secara terpisah. Ada beberapa
cara orang untuk menggunakannya, merawatnya, mendokumentasikannya, atau sebaliknya
perangkat lunak diharapkan dapat dipahami dengan cara sedemikian rupa bergantung pada
kemampuan seseorang untuk memahaminya. Jadi, selalu lakukan spesifikasi, lakukan
perancangan. Jumlah pengguna Untuk setiap hasil pengembangan perangkat lunak biasanya
besar.

Membuka Diri Terhadap Masa Depan. Suatu sistem/perangkat lunak yang berumur
panjang memiliki nilai lebih. Dalam lingkungan komputasi saat ini, di mana spesifikasi bisa
berubah kapan saja dan platform perangkat keras akan menjadi usang setelah berumur beberapa
bulan, masa hidup perangkat lunak biasanya diukur hanya dalam hitungan bulan, bukan tahun.
Namun, sistem/perangkat lunak yang benar-benar "kuat" harus mampu bertahan jauh lebih lama.
Supaya berhasil, sistem/perangkat lunak ini harus siap beradaptasi dengan perubahan-perubahan
tersebut dan perubahan-perubahan lainnya. Sistem/perangkat lunak yang berhasil adalah
sistem/perangkat lunak yang telah dirancang dengan prinsip tersebut dari awal.

Rancanglah Selangkah ke Depan Sehingga Dapat Digunakan Kembali Penggunaan


Ulang pada dasarnya akan menghemat waktu dan tenaga yang diperlukan untuk
mengembangkan perangkat lunak. Pencapaian tingkat tinggi dari penggunaan-ulang ini bisa
dikatakan paling sulit untuk dicapai dalam mengembangkan sistem/perangkat lunak.
Penggunaan-ulang kode kode program dan penggunaan-ulang hasil-hasil rancangan telah
dinyatakan sebagai keuntungan utama dari penggunaan teknologi berorientasi objek. Namun,
semua hal yang menguntungkan ini tidak berjalan secara otomatis. Untuk meningkatkan
kemungkinan penggunaan-ulang yang disediakan oleh teknologi pemrograman berorientasi
obyek (atau yang konvensional) pada dasarnya memerlukan pemikiran dan perencanaan yang
matang sebelumnya.

Pikirlah. Prinsip terakhir ini mungkin adalah prinsip yang paling sering diabaikan.
Menempatkan pikiran yang jelas dan bulat sebelum bertindak hampir selalu membuahkan hasil
yang lebih baik.
1.6 Mitos-mitos Perangkat Lunak

Mitos perangkat lunak memiliki sejumlah atribut yang membuat mereka tersembunyi dan
berbahaya. Contohnya mitos itu muncul sebagai sebuah pernyataan yang masuk akal tentang
kenyataan(kadang berisi unsur kebenaran), pernyataan yang berisi perasaan intuituf, dan sering
disebarluaskan oleh para praktisi profesional yang "mengerti tentang nilai".
Mitos perangkat lunak terbagi dalam 3 pihak pengguna, yaitu :

1. Mitos Manajemen

Manajer yang bertanggung jawab terhadap masalah perangkat lunak, seperti para manajer
yang kebanyakan disiplin, sering mengalami tekanan karena masalah pengaturan keuangan,
menjaga jadwal agar tidak kacau dan peningkatan kualitas

2. Mitos Pelanggan
Pelanggan yang memesan perangkat lunak komputer mungkin orang yang duduk di meja
sebelah, sekelompok teknisi yang ada di tingkat bawah, bagian pemasaran, atau perusahaan
lain yang memesan perangkat lunak dengan cara kontrak. Dalam beberapa kasus, pelanggan
mempercayai mitos tentang tentang perangkat lunak karena manajer dan para pelaksana yang
bertanggung jawab atas masalah perangkat lunak hanya bekerja sedikit saja untuk
memperbaiki kesalahan informasi. Mitos ini membawa ke arah pengharapan yang salah (oleh
pelanggan) dan ketidakpuasan pengembanga

3. Mitos Para Praktisi


Mitos yang masih dipercaya oleh praktisi perangkat lunak yang sudah dihapus oleh beberapa
dekade budaya pemrograman. Seperti yang sudah ditulis sebelumnya dalam bab ini, sel ma masa
awal perangkat lunak, pemrograman dilihat sebagai karya seni. Cara dan kebiasaan lama tetap
sukar lenyap. Contoh:

1.7 Bagaimana Proyek Perangkat Lunak Dimulai ?


PERENCANAAN PROYEK PERANGKAT LUNAK

Perencanaan Proyek (Project Planning) merupakan awal dari serangkaian aktivitas secara
kolektif dari sebuah proses Manajemen Proyek Perangkat Lunak. Proses manajemen
proyek perangkat lunak dimulai dengan kegiatan project planning (perencanaan proyek).
Yangpertama dari aktifitas ini adalah estimation (perkiraan). Estimasi menjadi dasar bagi
semua aktivitas perencanaan proyek yang lain dan perencanaan proyek memberikan sebuah
peta jalan bagi suksesnya rekayasa perangkat lunak, maka tanpa estimasi kita tidakdapat
berjalan dengan baikTahap perencanaan Perangkat Lunak bertujuan untuk menyediakan
sebuah kerangka kerja sehingga manajer dapat membuat estimasi mengenai sumber daya, biaya,
dan jadwal. Aktivitas PerencanaanPerangkat Lunak Aktivitas-aktivitas yang dilakukan pada
tahap perencanaan Perangkat Lunak:

•Menentukan ruang lingkup Perangkat Lunak yang meliputi fungsi, kinerja, batasan, interface,
dan reliabilitas.

•Mengestimasi sumber daya yang diperlukan.

•Menentukan ukuran dari proyek Perangkat Lunak.

•Studi kelayakan: teknis, ekonomis, legal,operasional danschedule.


-Kebutuhan-Kebutuhan Perangkat Lunak-Kebutuhan fungsional: menyajikan suatu pelayanan,
operasi dan transformasi data dsb kepada user.

-Kebutuhan non-fungsional: menentukan batasan-batasan dimana PL harus dioperasikan.

-Antar-muka pemakai. Antar-muka eksternal/ sistem dengan sistem lain.-Perangkat keras


(hardware).-Database.-Penanganan kesalahan (error handling).-Implementasi rancangan,
petunjuk dan panduan pengujian.

TUJUAN PERENCANAAN PROYEKPERANGKAT LUNAK

Tujuan perencanaan proyek perangkat lunak adalah untuk menyediakan sebuah


kerangka kerja yang memungkinkan manajer membuat estimasi yang dapat
dipertanggungjawabkan mengenai sumber daya, biaya dan jadwal.

RUANG LINGKUP PERANGKAT LUNAK

Penentuan ruang lingkup perangkat lunak merupakan aktivitas pertama dalam


perencanaan proyek perangkat lunak. Ruang lingkup perangkat lunak menggabarkan fungsi,
kinerja, batasan, interface dan reliabilitas. Fungsi yang digambarkan dalam statmen ruang
lingkup dievaluasi dan disaring untuk memberikan awalan yang lebih detail pada saat
estimasi dimulai. Pertimbangan kinerja melingkupi pemrosesan dan kebutuhan waktu respon.
Batasan ini mengidentifikasi dari batas yang ditempatkan pada perangkat lunak oleh
perangkat keras eksternal, memori, atau sistem informasi yang ada.Teknik yang banyak
dipakai secara umum untuk menjembatani jurang komunikasi antara pelanggan dan
pengembang serta untuk memulai proses komunikasi adalah dengan melakukan pertemuan
atau wawancara pendahuluan. Gause & weinberg mengusulkan bahwa analis harus memulai
dengan mengajukan pertanyaan-pertanyaan bebas konteks, yaitu serangkaian pertanyaan
yang akan membawa pada pemahaman mendasar terhadap masalah, orang yang
menginginkan suatu solusi, sifat solusi yang diharapkan, dan efektivitas pertemuan itu.
Bagian Question dan Answer hanya akan digunakan untuk pertemuan pertama yang
kemudian diganti dengan format pertemuan yang mengkombinasikan elemen-elemen
penyelesaian masalah, negoisasi, dan spesifikasi. Sejumlah peneliti lepas mengembangkan
pedekatan yang berorientasi pada tim terhadap pengumpulan kebutuhan yang dapat
deiterapkan untuk membangun ruang lingkup sebuah proyek, yang disebut teknik spesifikasi
aplikasi yang teraplikasi (FAST).
SUMBER DAYAYANG DIBUTUHKAN

Mengestimasi sumber daya yang dibutuhkan untuk menyelesaikan usaha


pengembangan perangkat lunak yang meliputi manusia, komponen perangkat lunak, dan
peranti perangkat keras/perangkat lunak. Piramida di atas memperlihatkan sumber daya
pengembangan sebagai sebuah piramid. Peranti perangkat keras dan perangkat lunak berada
pada fondasi dari piramida di atas dan menyediakan infrastruktur untuk mendukung usaha
pengembangan(lingkungan pengembang):

1. Sumber daya manusia

2. Sumber daya perangkat lunak reusable

3. Sumber daya lingkungan

Memerlukan akses ke SEE, maka perencana proyek harus menentukan jendela


waktu yang dibutuhkan bagi perangkat keras dan perangkat lunak serta membuktikan
bahwa sember-sumberdaya tersebut dapat diperoleh.Pada saat sebuah sistem berbasis
komputer akan direkayasa, tim perangkat lunak mungkin membutuhkan akses ke elemen
perangkat keras yang sedang dikembangkan oleh tim rekayasa yang lain.

ESTIMASI PROYEK PERANGKAT LUNAK

Estimasi sumber daya, biaya dan jadwal untuk usaha pengembangan perangkat lunak
membutuhkan pengalaman, mengakses informasi historis yang baik, dan keberanian untuk
melakukan pengukuran kuantitatif bila hanya data kualitatif saja yang ada. Estimasi
membawa resiko yang inheren dan resiko inilah yang membawa kepada ketidakpastian.
Dibawah ini merupakan faktor-faktor yang mempengaruhi estimasi.

a). Project Complexity (Kompleksitas Proyek)Kompleksitas Proyek berpengaruh kuat


terhadap ketidapastian yang inheren dalam perencanaan. Tetapi kompleksitas merupakan
pengukuran relatif yang dipengaruhi oleh kebiasaan dengan usaha yang sudah dilakukan pada
masa sebelumnya.

b). Project Size (Ukuran Proyek)Bila ukuran bertambah maka ketergantungan diantara
berbagai elemen perangkat lunak akan meningkat dengan cepat. Dekomposisi masalah
sebagai suatu pendekatan yang sangat penting dalam proses estimasi menjadi lebih sulit
karena lagi karena elemen-elemen yang akan didekomposisimasih sangat berat.

.c)Structural Uncertainty (Ketidakpastian Struktural)Bila metrik perangkat lunak yang


komprehensif dapat diperoleh pada proyek yang telah lalu, maka estimasi dapat dilakukan
dengan kepastian yang lebih tinggi.jadwal dapat dibuat untuk menhindari kesulitan-
kesuliatan yang terjadi di masa lalu, dan resiko keseluruhan dapat dikurangi.
RANGKUMAN

Perangkat lunak adalah elemen kunci dalam evolusi sistem dan produk berbasis komputer
dan sala satu teknologi yang paling penting di panggung dunia. Selama lebih dari 50 tahun
terakhir, perangkat lunak telah berkembang lebih jauh dari sekadar pemecahan masalah khusus
dan alat analisis informasi untuk industri. Namun, kita masih memiliki kesulitan
mengembangkan perangkat lunak berkualitas tinggi secara tepat waktu dan sesuai anggaran.

Perangkat lunak-program, data, dan informasi deskriptif-menunjukkan beragam area


teknologi dan aplikasi. Perangkat lunak warisan terus menyajikan tantangan-tantangan khusus
untuk mereka yang harus memeliharanya.

Sistem dan aplikasi berbasis Web telah berevolusi dari kumpulan sederhana dari isi informasi
menuju sistem yang canggih yang menyajikan fungsionalitas dan isi multimedia masa kini yang
kompleks. Meskipun aplikasi-aplikasi Web memiliki fitur dan kebutuhan yang unik,
sesungguhnya mereka tetaplah merupakan perangkat lunak biasa.

Rekayasa perangkat lunak mencakup proses, metode, dan alat-alat yang memungkinkan
sistem berbasis komputer yang kompleks dibangun secara tepat waktu dan berkualitas. Proses
perangkat lunak mencakup lima kegiatan kerangka kerja-komunikasi, perencanaan, pemodelan,
konstruksi, dan penyerahan perangkat lunak ke pelanggan/pengguna (deployment)-yang berlaku
untuk semua proyek perangkat lunak. Praktik rekayasa perangkat lunak adalah kegiatan
pemecahan masalah yang mengikuti serangkaian prinsip inti.

Serangkaian mitos perangkat lunak terus menyesatkan manajer dan praktisi, bahkan seiring
dengan tumbuhnya pengetahuan umum tentang perangkat lunak dan teknologi yang dibutuhkan
untuk membangunnya. Ketika Anda mempelajari lebih lanjut tentang rekayasa perangkat lunak,
Anda akan mulai memahami mengapa mitos-mitos tersebut harus disingkirkan kapan pun kita
menemukannya.

Anda mungkin juga menyukai