Meluruskan Salah Kaprah Rekayasa Perangkat Lunak
Rekayasa Perangkat Lunak (Software Engineering), sedikit mengalami pergeseran makna di realita dunia industri, bisnis, pendidikan maupun kurikulum Teknologi Informasi (TI) di tanah air. Di industri, para tester, debugger dan programmer sering salah kaprah menyandang gelar Software Engineer. SMK di Indonesia juga latah dengan membuka jurusan Rekayasa Perangkat Lunak, meskipun secara kurikulum hanya mengajari bahasa C atau Pascal (mungkin lebih pas disebut jurusan pemrograman komputer) 😉 Tulisan ini berusaha meluruskan salah kaprah yang terjadi tentang Rekayasa Perangkat Lunak (Software Engineering) berdasarkan kesepakatan, acuan, dan standard yang ada di dunia internasional.
Sejarah munculnya Rekayasa Perangkat Lunak sebenarnya dilatarbelakangi oleh adanya krisis perangkat lunak (software crisis) di era tahun 1960-an. Krisis perangkat lunak merupakan akibat langsung dari lahirnya komputer generasi ke 3 yang canggih, ditandai dengan penggunaan Integrated Circuit (IC) untuk komputer. Performansi hardware yang meningkat, membuat adanya kebutuhan untuk memproduksi perangkat lunak yang lebih baik. Akibatnya perangkat lunak yang dihasilkan menjadi menjadi beberapa kali lebih besar dan kompleks. Pendekatan informal yang digunakan pada waktu itu dalam pengembangan perangkat lunak, menjadi tidak cukup efektif (secara cost, waktu dan kualitas). Biaya hardware mulai jatuh dan biaya perangkat lunak menjadi naik cepat. Karena itulah muncul pemikiran untuk menggunakan pendekatan engineering yang lebih pasti, efektif, standard dan terukur dalam pengembangan perangkat lunak.
Dari berbagai literatur, kita dapat menyimpulkan bahwa Rekayasa Perangkat Lunak adalah:
Suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal requirement capturing (analisa kebutuhan pengguna), specification (menentukan spesifikasi dari kebutuhan pengguna), desain, coding, testing sampai pemeliharaan sistem setelah digunakan.
Kalimat “seluruh aspek produksi perangkat lunak” membawa implikasi bahwa bahwa Rekayasa Perangkat Lunak tidak hanya berhubungan dengan masalah teknis pengembangan perangkat lunak tetapi juga kegiatan strategis seperti manajemen proyek perangkat lunak, penentuan metode dan proses pengembangan, serta aspek teoritis, yang kesemuanya untuk mendukung terjadinya produksi perangkat lunak.
Kemudian tidak boleh dilupakan bahwa secara definisi perangkat lunak tidak hanya untuk program komputer, tetapi juga termasuk dokumentasi dan konfigurasi data yang berhubungan yang diperlukan untuk membuat program beroperasi dengan benar. Dengan definisi ini otomatis keluaran (output) produksi perangkat lunak disamping program komputer juga dokumentasi lengkap berhubungan dengannya. Ini yang kadang kurang dipahami oleh pengembang, sehingga menganggap cukup memberikan program yang jalan (running program) ke pengguna (customer).
Rekayasa Perangkat Lunak bukan merupakan cabang ilmu Computer Science yang mempelajari tentang technical coding. Ini yang sering salah kaprah dipahami, sehingga pelajar, mahasiswa atau bahkan calon dosen 😉 shock ketika dihadapkan dengan buku-buku textbook Rekayasa Perangkat Lunak yang selalu tebal dengan penjelasan sangat luas tentang bagaimana perangkat lunak diproduksi, dari aspek requirement capturing, desain, arsitektur, testing, kualitas software, sampai people/cost management. Dan ini adalah suatu kesepakatan yang sudah diterima umum tentang Rekayasa Perangkat Lunak, sejak jaman Roger S Pressman menulis buku “Software Engineering: A Practitioner’s Approach”, sampai Ian Sommerville yang kemudian datang dengan buku “Software Engineering” yang sudah sampai edisi ke 7, maupun pendatang baru semacam Hans Van Vliet, Shari Lawrence Pfleeger maupun James F Peters.
Terus bagaimana kalau kita ingin memperdalam masalah technical coding dan programming? Ada dua cabang ilmu lain yang membahas lebih dalam masalah ini, yaitu: Algoritma dan Struktur Data, dan Bahasa Pemrograman.
Kok bisa begitu, dasarnya darimana? Jadi pada hakekatnya, sebagai sebuah disiplin ilmu, Computer Science itu juga memiliki definisi, ruang lingkup, klasifikasi dan kategorisasinya. Klasifikasi yang paling terkenal dikeluarkan Task Force yang dibentuk oleh IEEE (Institute of Electrical and Electronics Engineers) dan ACM (Association for Computing Machinary (http://acm.org)) yang dipimpin oleh Peter J Denning, yang kemudian terkenal dengan sebutan Matriks Denning. Sangat jelas bahwa Matriks Denning memisahkan antara cabang ilmu Software Engineering dengan Algoritma dan Struktur Data, serta Bahasa Pemrograman. Itulah di paragraf awal saya sebut bahwa lebih tepat SMK, akademi atau universitas menggunakan nama jurusan (atau mata kuliah): Pemrograman Komputer, Algoritma dan Struktur Data, atau Bahasa Pemrograman, kalau memang materinya hanya mempelajari masalah bahasa pemrograman secara teknis.
Nah terus pertanyaan kembali muncul, jadi sebenarnya apa yang menjadi ruang lingkup ilmu Software Engineering itu apa? Pertanyaan ini merupakan pertanyaan banyak orang, semakin banyak peneliti dan praktisi menulis maka semakin bervariasi pemahaman yang muncul, semakin banyak buku yang terbit semakin membingungkan pelajar dan mahasiswa dalam memahami secara komprehensif apa itu Rekayasa Perangkat Lunak.
Kegelisahan ini dijawab tuntas oleh IEEE Computer Society (http://computer.org) dengan membentuk tim di tahun 1998 dimana tim tersebut mulai menyusun pemahaman standard (body of knowledge) tentang bidang ilmu Software Engineering, yang kemudian terkenal dengan sebutan SWEBOK (Software Engineering Body of Knowledge). Sudah ada dua versi SWEBOK ini, yaitu yang diterbitkan tahun 1999 dan terakhir tahun 2004.
Tiada gading yang tak retak kata orang bijak, project IEEE Computer Society tentang SWEBOK ini sebenarnya juga banyak dikritik oleh pakar yang lain. Paling tidak dua tokoh besar dunia Software Engineering yaitu Cem Kaner and Grady Booch tidak terlalu setuju dengan materi yang ada di dalam SWEBOK, bahkan menyebutnya sebagai sebuah guide yang misguided 😉 Terlepas dari hal itu, boleh dikatakan SWEBOK cukup bisa diterima banyak pihak.
Selain SWEBOK, sebenarnya ada project lain yang mirip dalam usaha menyusun pemahaman standard dalam bidang Software Engineering, yaitu CCSE (Computing Curriculum Software Engineering). Project ini juga disponsori oleh IEEE Computer Society dan ACM , hanya orientasinya sedikit berbeda, yaitu untuk membentuk kurikulum standard berhubungan dengan bidang ilmu Software Engineering. Hal ini berbeda dengan orientasi SWEBOK yang lebih umum melingkupi dunia akademisi dan praktisi.
Catatan: Edisi lengkap dari tulisan ini dapat dibaca di majalah SDA Magazine edisi Juni 2006.
REFERENSI
[1] Guide to the Software Engineering Body of Knowledge 2004 Version (SWEBOK), A Project of the IEEE Computer Society Professional Practices Committee, http://www.swebok.org, 2004.
[2] IEEE Standard Glossary of Software Engineering Technology, IEEE Std 610.12-1990, Institute of Electrical and Electronics Engineers, New York, 1990.
[3] Hans Van Vliet, Software Engineering – Principles and Practice, John Wiley & Sons, 2000.
[4] Peter J Denning, Computer Science: the Discipline, In Encyclopedia of Computer Science (A. Ralston and D. Hemmendinger, Eds), 1999.
[5] James F. Peters and Witold Pedrycz, Software Engineering: An Engineering Approach, John Wiley & Sons, 2000.
[6] Roger S. Pressman, Software Engineering: A Practitioner’s Approach Fifth Edition, McGraw-Hill, 2004.
[7] Ian Sommerville, Software Engineering 7th Edition, Addison-Wesley, 2004.
Wah ini berhubungan banget sama isu yang beredar di jurusan saya. Kebetulan saya kuliah di jurusan IS ITS Surabaya. Isu mengenai pengurangan porsi matakuliah yang berhubugnan dengan koding, bahkan nearly zero coding. Saya juga tidak tahu apakah ada perubahan pada kurikulum namun yang pasti di jurusan saya baru saja ada pergantian kepemimpinan, entah karena perubahan kurikulum ato karena dirubah sama pemimpin yang baru, saya juga tidak tahu proses pembentukan kurikulum di universitas, apakah bisa sembarangan dirubah oleh pemimpin jurusan atau harus atas pertimbangan para guru besar Institusi. (ini baru Isu namun sudah menjadi pembicaraan beberapa dosen secara internal)
*Pak Romi : saya telah menyampaikan pertanyaan saya yang berhubungan dengan ini kepada bapak di https://romisatriawahono.net/2007/08/03/tips-dan-trik-memilih-jurusan-komputer/#comment-62842
dan saya setuju pendapat bapak.
*rdblack7 : di ITS surabaya juga ada NIIT kalo gak salah ada 1-2 tahun yang lalu. Blum pernah tau lebih banyak lagi.
#Faizal: Kalau nggak ngerti coding, pasti nggak akan bisa melakukan analisa sistem yang akan dibangun. Logika computing dilatih dari baris-baris code yang dibangun.
Ooo ternyata gitu tha,,,, saya adalah seorang pelajar yang juga kebetulan jurusanya adalah Rekayasa perangkat Lunak…. tapi saya baru ngerti gitu tha Rekayasa Perangkat Lunak itu …Makasih pada penulis deh atas penjelasanya diatas…..moga-moga ini bisa menambah pengetahuan bagi para pmbacanya… thank
aau,,
jd slma ini aku ikut terlibat dalam salah kaprah ya,,
karena aku sekolah di smk jurusan RPL,,
jd terima kasih atas pembahasannya,,
bagus sekali,,
Mas Saya Mahasiswi UPI “YPTK” Padang Sumbar…
Mau nanya nich Mas..Jurnal Rekayasa Perangkat Lunak itu seperti apa sich Mas samplenya…….??Pengaplikasiaanya apa – apa saja sich Mas..?Mohon di Balaz Segera Yach Mas..?
Soalnya Saya Mau sidang nich Mas…..Penting Banget
assalamu’alaikum
mas Romi, keren banget blognya…kayak makna!!! kayaknya kudu getol kesini neh, biar tambah nyaho.sukses ya!
pak romi saya mahasiswa di udinus smg mau nanya
saya kok gak bisa ngerti tentang generatif software
yang berkaitan atau merupakan salah satu pengembangan dari software reuse….. mungkin pak romi bisa maringi pencerahan kepada saya yg masih harus banyak belajar ini.
“” blognya keren abis .. salut”
Mnrt saya dunia RPL,,sgt ssh!!
krn sy mmpljr itu d’sekolah..
Smpi skrg sy bgg,,krn sy tdk th mau d’bawa kmn jurusan Rekayasa Perangkat Lunak Itu..
salam kenal,, mas romy
saya mahasiswa dari medan, stimik sisisngamangaraja
saya sedanga mempelajari rekayasa peramgkat lunak… tapi saya samgat binging dan tidak tahu sama sekali bagaimana cara penghitungan bigq misalnya
penggunaan 0(n), 0(log n), 0 (n 2)
mohon bantuannya mas, karena sya tidak bisa mempelajari topik bereikutnya sebelum topik tersebut saya kuasi
terimakasi saya tunggu jawaban ,mas ke emai saya
mas,tulisannya blh ya buat referensi tugas akhir saya…trimakasih!!
saya bingung RPL… mungkin karena tidak mendengarkan di kelas. saya bingung ketika perancangan sudah sampai jadi di class diagram, terus…, codingnya gimana ya? sepertinya rancangan saya itu kurang mendetail, karena saya jadi bingung waktu mau implementasi…, temen-temen saya juga ga ngerti apa yang saya bikin, hehehe, itu yang desain pakai OOAD.
yang pakai terstruktur (DAD dkk) juga sama hancurnya sih… ( aduh, apa saya gak bakat ya).
Sebenarnya yang bener tuh gimana sih, apa mas romi punya contoh desain software yang benar dari awal analisa kebutuhan sampai selesai implementasi (kalau bisa ada kodingnya juga). terus saya memang masih belum pengalaman sih, bagai mana seorang programmer membaca desain tersebut.
Saya pernah bekerja secara tim, kami rancang softwarenya (website) bersama, kemudian untuk codingnya kami bagi perbagian, saat itu saya pakai PHP terstruktur.
tapi ternyata cara coding ku dan teman saya berbeda, sehingga programnya tidak nyambung, akhirnya saya yang harus mengedit code nya, terus terang capek… hehehe..
saya tidak mau itu terulang lagi, bagaimana caranya?????????
satu lagi mas, ada gak ya free ebook mengenai RPL, UML, dan lain-lainnya yang lengkap. bahasa inggris juga tidak apa-apa. maklum saya tidak mampu kalau beli buku hehehe…, apalagi kalau akhirnya bukunya gak kebaca, atau salah beli buku…
ass… mas, saya anggota baru nee…;D
mau ikutan gabung diskusi, soalnya kayaknya rame ne…hehehe
mas romi, saya ada tugas tentang software engineering, bisa ga ditampilin contoh-contoh perusahaan pembuatan software pada berbagai era???
terima kasih…
ass…mas, saya naman mw jd anggta new ne.mas saya juga ada tugas ne bwt program web..saya waktu ada seminar di Tasikmalaya di Kmps UNSIL..Saya tidak paham bener tntng multimedia,tpi saya bnyk brtrmaksh kpd mas telah mmbrkan ilmu bwt saya…mas tolong donk beri saran tenntang web. trma ksh….
benar memang kenyataan dilapangan berbicara demikian,seharusnya kita lebih bijak dalam menyikapi masalah ini,supaya tidak terbiasa dengan salah kaprah
Pengalaman saya sewaktu masuk kuliah IT lumayan kaget, saya baru tau klo kuliah di IT itu diajarkan untuk membuat sebuah sistem ato program. Saya tidak pernah mendapatkan gambaran tentang kuliah IT sewaktu SMA,
saya termasuk orang yg agak ketinggalan soal komputer.
Saya pertama kali dapet pelajaran komputer sewaktu SMP.
krn komputer sekolah masih jadul (windows aja lom ada).
maka saya belajar Lotus 123. Menginjak SMA, pelajaran komputer hanya saya dapat kelas 3 SMA, yaitu cuma MS Office. Saya sekolah di sebuah sekolah negeri di bekasi.
Sewaktu saya kuliah, saya cukup kaget saat menanyakan teman2 saya yg sekolah di beberapa sekolah international di JKT, dan sekolah kristen. Mereka sudah mendapatkan pelajaran pemograman sewaktu SMA, minimal VB. Hasilnya teman2 saya yg sudah pernah belajar pemograman, sangat terlihat sekali unggul saat praktikum pemograman.
Kayanya perlu ada pembenahan terhadap kurikulum SMA deh, Soalnya ilmu2 yg akan menjadi bekal kita kuliah tidak didapat di SMA. SMA terlalu teoritis. Kurikulum kuliah juga bgitu, masih terlalu teoritis.
Ujung2nya orang IT harus tetep Otodidak, walaupun kalian lulus IT.sewaktu kuliah saya hanya mendapat bahasa pemograman C++, Java, dan Pascal. Sangat kurang sekali untuk bersaing di pasar kerja. Saya bekerja sebagai PHP programer skr. ilmu php saya pelajari 100% otodidak. Memang seh tiap kampus beda2 kurikulumnya. tp mnurut saya. mahasiswa mestinya dicekokin ma seluruh bahasa pemograman di butuhin di pasar kerja. jadi walaupun saat kuliah kita hanya ngerti stengah2, kita ga perlu belajar susah payah dari awal lg, krn dasarnya sudah ngerti.
yah..memang begitulah pendidikan IT di Indonesia, kalau mau maju harus terus belajar secara otodidak. Seharusnya sejak SMA, setiap mata pelajaran harus lebih dikerucutkan lagi, jadi setiap siswa SMA sudah tahu kalau mau masuk ke fakultas tertentu dia harus menguasai apa saja. Makasih pak buat informasinya, sukses 🙂
setidaknya mnusia jadi terbantu oleh perngkat lunak …..dan perlu dkthiui pemanfaatanya harus sesuai >>> tanks wat mass romy atas ilmunya,,,,,tugas akhir jadi kebantu????
bravo mass romy….
Semakin luas aja mas, emang dasarnya teknologi semakin maju. Gak bisa dihindari yang kayak ginian.
Mungkin ini bisa jadi pertimbangan?
h**p://www.developerdotstar.com/mag/articles/reeves_design_main.html
salamualaikum mas romi, saya mo tanya kalo materi untuk matakuliah rekayasa sistem informasi apa saja materinya ya pak, karena ada matakulaih RPL dan ada Rekayasa sistem informasi. makasih ya pak
mas saya mu tanya..
sebenarnya apa perbedaan rekayasa web dengan rekayasa perangkat lunak?? apakah untuk membuat aplikasi web masih bisa menggunakan model dari RPL atau harus menggunakan model dari rekayasa web..
makasih atas waktunya..
wah waktu kemaren kuliah RPL di Fasilkom UI (saya jurusan ilkomp :D), belajarnya pake pressman sama sommerville…
tapi kenapa matkul RPL ada juga di kurikulum comp.sci / Inf.Sys ?
ka, saya minta tolong ka, ujur saja yah ka, saya kan ngegunain windows 7 yang bajakan, ka gimana sih caranya supaya ngilangin tampiulan windows not genuine di dextop komputer saya,, ka terus gimana sih tips supaya p[as dipake internetan komputer saya ga ngeheng akibat windows yang bajakan,, tolong di pos segera ya ka,,, kirim ke e-mail saya,,,
mantap artikelnya mas,sekarang saya menjadi paham mengenai salah kaprah tentang rekayasa perangkat lunak.
bravo dan maju terus mas romy
Lagi-lagi hal yang membuat malu menimpa negara kita lagi. Inginnya sih mengikuti tren eh tidak tahunya malah latah. Sukanya menelan bulat-bulat informasi yang masih kabur.
pak
tulisan di bagan’a
kurang jelas…
Harus lebih teliti lagi jangan salah kaprah…
Artikelnya sangat bagus tetapi bagan gambarnya tidak jelas…
mantapppppppppp……….
pak saya ingin bertanya apakah jurusan teknik komputer D3 bisa melanjutkan S1 ke jurusan ilmu komputer.??? dan kemana saja jurusan teknik komputer dapat melanjutkan jurusannya.???
pak, file yang di lectures itu formatnya .xml,
bagaimana membuka nya pak?
terimakasih sebelumnya
pptx itu mas
waduh,
begitu ya pak.
saya kemarin donlot materi-materi yang ada di lectures,
tapi setelah file nya saya extrak semua filenya berformat .xml.
sayang banget pak padahal udah donlot banyak-banyak tapi file nya ga bs di buka.
diubah ke format pptx juga ga bisa.
kenapa ya bisa seperti itu pak?
Saya pribadi menyadari hal ini, dan mengalaminya dalam dunia pembelajaran siswa SMK yang saya ajar (RPL). Terlalu banyak yang harus dipelajari, terlalu banyak kompetensi dasar yang harus dipenuhi (untuk mengejar UN), sementara waktu tidak mencukupi (baca: kurikulum gak klop).
assalamualaikum
mas Romi, keren banget blognyakayak makna!!! kayaknya kudu getol kesini neh, biar tambah nyaho.sukses ya!
terkadang kami pun di bingungkan dengan silabus RPL tingkat SMK , yang jika di perhatikan tingkatan pembelajarannya mirip dengan mahasiswa.
apalagi sekarang muncul kurikulum 2013.
mungkin para “pembesar” dunia pendidikan hanya melihat sisi “performance” nya saja.
terimakasih buat pak romi
Saya tertarik dengan tulisan anda mengenai MELURUSKAN SALAH KAPRAH REKAYASA PERANGKAT LUNAK.
software adalah perangkat lunak yang berfungsi untuk mengatur kerja hardware.
Saya juga mempunyai tulisan yang sejenis mengenai Rekayasa Sistem yang bisa anda kunjungi di Rekayasa Sistem
Mantap sekali informasinya.. 🙂
mas spesifikasi dalam rekayasa sistem informasi ini apa2 aja sih mas,,,,
Saya tertarik dengan tulisan anda mengenai Dunia Tekhnik, menurut saya bidang studi teknik merupakan bidang studi yang sangat menarik
juga banyak hal yang bisa dipelajari di dunia teknik.
Saya juga mempunyai tulisan yang sejenis
mengenai bidang teknik yang bisa anda kunjungi di Lembaga Teknik
saya siswa SMK jurusan RPL, berencana melanjutkan kuliah. Mana yang harus saya ambil? Teknik Informatika atau Sistem Informatika?
Mohon bantuannya.
Wah,sistem pendidikan di indonesia benar2 perlu diperbaiki,nggak cuma it aja kan(mainstream nih sebenarnya yang sya tulis),terserah lah semoga suatu saat sya bisa memperbaiki sistem pendidikan indonesia,klw perlu jadi mendik.amiiin