DISUSUN
FAKULTAS TEKNIK
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
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:
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
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).
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.
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.
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).
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.
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.
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).
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.
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.
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.
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 :
George Poyla [Pol45] membuat gambaran garis besar esensi pemecahan masalah dan selanjutnya
menghasilkan esensi praktik rekayasa perangkat lunak:
Dalam konteks rekayasa perangkat lunak, langkah-langkah dasar berikut mengarah pada
serangkaian pertanyaan penting berikut ini [diadaptasi dari Pol45]:
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.
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.
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.
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
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.
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.
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.
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.
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.