Latar Belakang
Prinsip pengembangan sebuah
perangkat lunak terbagi menjadi dua yaitu untuk tujuan pendidikan dan untuk
tujuan industri (Mills, 1980). Terdapat perbedaan yang mendasar dari kedua prinsip
tersebut jika dilihat dari segi pengelaman, level usia, kemampuan maupun latar
belakang. Khusus untuk tujuan pendidikan perangkat lunak sudah seharusnya
seorang pengembang memiliki kemampuan yang meliputi semua tahapan (Subhiyakto,
Kamalrudin, Sidek, & S. Ahmad, 2014).
Dalam dunia pendidikan perangkat lunak terdapat beberapa tahapan
pengembangan yang lebih dikenal dengan istilah SDLC (Software Development Life
Cycle), yang mencakup tahap perencanaan, analisis, perancangan, dan
implementasi. Lebih fokus pada tahap analisis, ketika seorang pengembang
melakukan proses analisis, maka dilakukan tahapan pemodelan menggunakan
berbagai macam diagram. Pemodelan kebutuhan perangkat lunak yang di lakukan
terbagi menjadi dua jenis, yakni pemodelan terstruktur dan pemodelan berorientasi
objek. Perbedaan mendasar dari pemodelan tersebut dapat dilihat dari perangkat
lunak yang dibangun.
Pemodelan terstruktur, digunakan untuk perangkat lunak yang
menggunakan modul -modul, sedangkan pemodelan berorientasiobjek didasarkan pada
class dan objek yang ada pada sebuah perangkat lunak. Jika pada pemodelan
terstruktur menggunakan DFD (Data Flow Diagram) untuk menggambarkan prosesnya
dan ERD (Entity Relationship Diagram) untuk menggambarkan relasi datanya, maka
untuk pemodelan berorientasi objek menggunakan pemodelan dengan UML (Unified
Modeling Language). UML telah menjadi standar pemodelan berorientasi objek (He,
2000). Dalam UML terdapat beberapa diagram, yang familiar diantaranya adalah
use case diagram, class diagram, activity diagram, sequence diagram. Sedangkan
untuk melakukan pemodelan itu sendiri, pengembang biasanya memerlukan alat
bantu berupa aplikasi pemodelan seperti Rational Rose, StarUML, ArgoUML,
Enterprise Architect, dan berbagai alat pemodelan lainnya.
Tahapan / Fase – Fase dalam
SDLC
1.
Perencanaan
Sistem (Systems Planning)
Lebih menekankan pada
aspek studi kelayakan pengembangan sistem (feasibility study).
Aktivitas-aktivitas yang ada meliputi :
·
Pembentukan dan
konsolidasi tim pengembang.
·
Mendefinisikan tujuan
dan ruang lingkup pengembangan.
·
Mengidentifikasi apakah
masalah-masalah yang ada bisa diselesaikan melalui pengembangan sistem.
·
Menentukan dan evaluasi
strategi yang akan digunakan dalam pengembangan sistem.
·
Penentuan prioritas
teknologi dan pemilihan aplikasi.
2. Analisis Sistem (Systems
Analysis)
Pada tahap ini, sistem
akan dianalisis bagaimana akan dijalankan nantinya. Hasil analisis berupa
kelebihan dan kekurangan sistem, fungsi sistem, hingga pembaharuan yang dapat
diterapkan. Bagian ini termasuk dalam bagian perencanaan. Bagian lain yang
termasuk dalam perencanaan ialah alokasi sumber daya, perencanaan kapasitas,
penjadwalan proyek, estimasi biaya, dan penetapan. Dengan demikian, hasil dari
tahap perencanaan ialah rencana proyek, jadwal, estimasi biaya, dan ketentuan.
Idealnya manajer proyek dan pengembang dapat bekerja maksimal pada tahap ini.
Analisa sistem adalah
tahap di mana dilakukan beberapa aktivitas berikut:
·
Melakukan studi literatur
untuk menemukan suatu kasus yang bisa ditangani oleh sistem.
·
Brainstorming dalam tim
pengembang mengenai kasus mana yang paling tepat dimodelkan dengan sistem.
·
Mengklasifikasikan
masalah, peluang, dan solusi yang mungkin diterapkan untuk kasus tersebut.
·
Analisa kebutuhan pada
sistem dan membuat Batasan-batasan sistem.
·
Mendefinisikan kebutuhan
sistem.
3. Perancangan Sistem (Systems
Design)
Tahapan ini akan
menghasilkan prototype dan beberapa output lain meliputi dokumen berisi desain,
pola, dan komponen yang diperlukan untuk mewujudkan proyek tersebut. Setelah
spesifikasi, kemudian dilakukan perancangan sistem sebagai tahapan
kelanjutannya. Tahap ini ialah tahap di mana seluruh hasil analisis dan
pembahasan tentang spesifikasi sistem diterapkan menjadi rancangan atau cetak
biru sebuah sistem. Tahap ini disebut sebagai cetak biru, di mana sistem sudah
siap untuk dikembangkan mulai dari implementasi, analisis sistem, hingga tenaga
pendukung sistem yang akan dikembangkan.
Pada tahap ini, features
dan operasi-operasi pada sistem dideskripsikan secara detail.
Aktivitas-aktivitas yang dilakukan adalah:
·
Menganalisa interaksi
obyek dan fungsi pada sistem.
·
Menganalisa data dan
membuat skema database.
·
Merancang user
interface.
Implementasi Sistem (Systems Implementation)
Tahap berikutnya adalah implementasi yaitu
mengimplementasikan rancangan dari tahap-tahap sebelumnya dan melakukan uji
coba. Dalam implementasi, dilakukan aktivitas-aktivitas sebagai berikut:
·
Pembuatan database
sesuai skema rancangan.
·
Pembuatan aplikasi
berdasarkan desain sistem.
·
Pengujian dan perbaikan
aplikasi (debugging).
Pemeliharaan Sistem (Systems Maintenance)
Dilakukan oleh admin yang ditunjuk untuk menjaga
sistem tetap mampu beroperasi secara benar melalui kemampuan sistem dalam
mengadaptasikan diri sesuai dengan kebutuhan.
Manfaat:
- Agar seseorang dapat
mengembangkan perangkat lunak yang bermanfaat bagi user
Tujuan dan juga fungsi yang pertama adalah agar
seseorang yang mempelajari materi ini 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 materi ini akan
membuat seseorang menjadi lebih paham mengenai pengembangan perangkat lunak
yang fungsional. Contohnya, perangkat lunak jaringan komputer yang
digunakan dalam mengkoneksikan komputer pada internet.
- Agar seseorang mampu
mengembangkan perangkat lunak yang sudah ada menjadi lebih baik lagi
Perangkat lunak yang sudah ada terkadang
membutuhkan pembaruan, karena fungsinya yang mungkin sudah berkurang. Karena
itu, dengan mempelajari materi ini 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.
- Menciptakan sebuah perangkat
lunak yang ramah dan user friendly
Sistem perangkat lunak yang user friendly adalah
sebuah sistem yang didambakan oleh setiap user. Paling tidak, sebauh sistem
perangkat lunak yang user friendly membutuhkan tampilan atau interface yang menarik, fungsionalitas,
hingga kemudahan dalam penggunaannya.
Mereka yang mempelajari sistem rekayasa
perangkat lunak ini tentu saja paham betul dengan hal ini, sehingga dapat
membantu mereka mengembangkan sebuah sistem perangkat lunak yang user friendly,
dan pastinya mudah untuk digunakan oleh banyak kalangan user.
- Agar sebuah sistem perangkat
lunak bisa diintegrasikan dengan peralatan mekanikal yang ada, sehingga
menjadi lebih bermanfaat
Beberapa peralatan mekanikal, seperti robotic
membutuhkan integrasi dengan perangkat lunak agar bisa bekerja dengan baik dan
juga optimal. Mereka yang mempelajari mengenai rekayasa peangkat lunak tentu
saja sudah sangat paham dengan hal ini. Dengan kemampuan yang dipelajari dalam
rekayasa perangkat lunak, maka sebuah sistem perangkat lunak dapat
diintegrasikan ke dalam sebuah peralatan mekanikal, sehingga dapat mendukung
kegiatan operasional dari peralatan tersebut.
- Agar seseorang mampu untuk
melakukan perawatan dan maintanence dari perangkat lunak yang sudah ada
Funsi 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. Karena itu, pembelajaran mengenai rekayasa
perangkat lunak sangatlah dibutuhkan, untuk kepentingan perawatan dan juga
maintenance dari perangkat lunak tersebut.
Kasus Kegagalan Perangkat Lunak
Akan tetapi banyak juga terjadi kegagalan suatu perangkat lunak
bahkan menimbulkan kerusakan dan kematian, seperti pada kasus-kasus berikut
- Pada tahun 1988 kapal perang
USS Vincennes menempak jatuh pesawat komersil Airbus 320 yang disebabkan
oleh output program pelacakan yang ditampilkan tidak jelas.
- Kesalahan diagnosa pada
perangkat lunak medis yang menyebabkan kematian.
- Sistem peringatan radar kapal
yang mengidentifikasi roket Excocet sebagai teman yang mengakibatkan kapal
The British Destroyer tenggelam.
- Therac 25 merupakan perangkat
terapi radiasi medis yang bekerja dengan sistem terkomputerisasi. Pada
tahun 1985 hingga 1987 terdapat 6 kali kecelakaan akibat overdosis radiasi
yang dihasilkan oleh alat tersebut hingga mengakibatkan kematian dan luka
serius. Sistem keamanan dari Therac25 ini lebih mengandalkan perangkat
lunak bukan pada perangkat keras sementara pengujian keamanan yang
dilakukan lebih ke arah perangkat keras dan tidak ke perangkat lunak
sehingga mengakibatkan kesalahan perangkat lunak terutama system
engneering.
- Pada tahun 2003, dimana listrik
mati di amerika timur dan sebagian kanada selama lebih dari sehari
sebenarnya listrik sudah dapat menyala dalam dua jam namun dikarenakan
fungsi alarm dalam software manajemen listrik tidak bekerja.
- Pada tahun 1962, roket milik
eropa terpaksa diledakan setelah tiga menit lepas landas karena komputer
pengendali mengatakan bahwa roket dalam keadaan tidak terkendali, oleh
karena itu untuk menghindari resiko yang lebih besar maka roket tersebut
diledakan secara paka. Padahal sebetulnya roket tersebut baik-baik saja.
Kesalahan komputer dalam memberikan informasi diakibatkan kesalahan
program perangkat lunak yang digunakan. Diketahui kesalahan program
disebabkan programmer lupa memasukan tanda bar di atas simbol tertentu
unuk menunjukan nilai rata-rata.
- Pada tahun 1996, roket Arienne
5 keluar jalur dan meledak hanya 40 detik setelah diluncurkan. Penyebabnya
dimana terjadi overflow saat mengkonversi sebuah nilai floating 64 bt yang
berkaitan dengan kecepatan horisontal roket 16 bit. Angkanya lebih besar
32,767 nilai integer yang bia diimpan di 16 bit sehingga mengakibatkan
konveri gagal.
- Pada tahun 1991, militer
Amerika gagal dalam mengantisipasi roket Irak sehingga menghantam barak
tentara. Hal ini disebabkan pada kesalahan perhitungan waktu sejak booting
yang berakibat pada kesalahan aritmetik komputer sehingga waktu yang
terukur di alat lebih lama dibandingkan dengan kenyataanya.
Penyebab Kegagalan Perangkat Lunak
Dari
beberapa kasus tersebut dan penyebab kegagalan sebuah perangkat lunak
disebabkan oleh beberapa faktor dan hal, diantaranya
- Analisa sistem yang kurang baik
merupakan penyebab kegagalan yang sering terjadi, dimana perangkat lunak
umumnya tidak bisa memenuhi fungsi dan tugasnya. Salah satu penyebabnya
dimana pengguna kurang terbuka dalam menyatakan kebutuhan sehingga
menyulitkan pengembang perangkat lunak untuk menterjemahkan dalam suatu
model.
- Perencanaan yang Buruk termasuk
penjadwalan pekerjaan tidak sempurma. Pimpinan proyek termasuk manajer menganggap
tidak perlu adanya perencanaan yang matang atau rencana dibuat sembali
proyek jalan. Perencaan jadwal kerja yang buruk bisa mengakibatkan tidak
ada target yang harus dicapai pada waktu tertentu sehingga waktu yang
dibutuhkan untuk pengembnagnan perangkat lunak menjadi molor dari deadline
yang ditetapkan.
- Perencanaan finansial yang
buruk sehingga mengakibatkan ketidakmampuan memprediksi harga dan
perubahan.
- Arsitektur perangkat lunak
kurang bagus, arsitektur perangkat lunak harus mempunyai kemampuan
beradaptasi dengan rencana jangka panjang maupun perubahan-perubahan yang
dibutuhkan.
- Terlambat mengetahui
tanda-tanda kegagalan perangkat lunak, sinyak kegagalan terkadang teah
mucul dari awal hanya saj tidak satupun yang memahaminya atau tidak
diperbaiki, sehingga ketika tanda-tanda tersebut semakin jelas dan
membesar, proyek sulit diselamatkan lagi dan membutuhkan waktu yang lebih
banyak lagi.
- Kegagalan komunikasi dan
konflik antar stakeholder, kegagalan komunikasi bisa terjadi baik antar
pengembang perangkat lunak ataupun antar stakeholder.
§ Alamat
web Program studi, Fakultas, Universitas : http://ti.ftik.teknokrat.ac.id, http://ftik.teknokrat.ac.id, www.teknokrat.ac.id
§ Nama
Mahasiswa : NADIYA SAFITRI
§ NPM : 19316014
§ Kelas
: Tk19B
Tidak ada komentar:
Posting Komentar