Pada artikel kali ini,kita akan membahas mengenai alasan yang membuat software engineering itu penting. Pada umumnya, bidang ilmu software engineering digunakan dan diadopsi secara luas oleh berbagai perusahaan besar. Namun demikian pertanyaannya adalah apakah bidang ilmu ini hanya dapat digunakan oleh perusahaan besar? bagaimana jika anda adalah seorang programmer full-stack, single fighter developer atau bahkan sebuah start-up company dengan skala small-medium. Apakah anda membutuhkan pendekatan software-engineering di dalam pengembangan perangkat lunak? bukankah itu hanya membuang-buang waktu dan biaya? Mungkin dalam beberapa kondisi, anda bisa saja berpikir bahwa anda tidak membutuhkan pendekatan software engineering dalam membangun sebuah sistem dan mengasumsikan bahwa anda dapat membuat perangkat lunak dengan sangat mudah dalam waktu yang sangat singkat. Pada praktiknya, sebenarnya pendekatan apapun yang anda lakukan demi tercapainya tujuan boleh-boleh saja dilakukan. Bisa saja anda menggunakan pendekatan-pendekatan engineering lainnya dalam pembuatan perangkat lunak seperti misalnya menggunakan kanban system yang biasa digunakan pada proses manufaktur teknologi otomotif. Dalam beberapa mini-program pendekatan seperti ini mungkin sah-sah saja bahkan dalam beberapa kondisi, hal ini dapat membuat biaya produksi lebih minim dan waktu pengerjaan lebih singkat. Namun bagaimana jika suatu ketika anda mendapatkan sebuah projek yang harus dibangun dengan berjuta-juta kode program dan memiliki fitur yang begitu banyak. Apakah pendekatan-pendekatan engineering non-software engineering masih bisa menghandlenya? Jikapun mungkin, apakah pendekatan-pendekatan itu cukup reliable? Mari kita coba lihat dalam ilustrasi yang lebih sederhana, Bayangkan anda adalah seorang kontraktor dinas perhubungan daerah, dimana anda mendapatkan projek untuk membangun sebuah jalan tol yang menghubungkan dua kota sejauh 50Km. Tentunya terdapat banyak aspek yang harus anda penuhi dalam mensukseskan projek tersebut baik secara teknis maupun non-teknis. Tentunya anda tidak mungkin langsung membeli aspal dan membuat jalan bukan?. Hal pertama yang harus anda lakukan adalah melakukan perencanaan, berkoordinasi dengan stakeholder dan tim serta menguji hasil pekerjaan tersebut untuk menjamin tercapainya standar kualitas yang berlaku. Konsep pemikiran ini sama halnya dengan membuat sebuah perangkat lunak. Bagi para raksasa IT seperti Google, Microsoft, Facebook dan IBM, tentunya dalam membuat perangkat lunak anda harus membuat perencanaan yang matang, koordinasi antar tim dan stakeholder, menguji dan merawat perangkat lunak. Semua hal ini mungkin sekali dapat dilakukan dengan penerapan software engineering dalam setiap pekerjaan pengembangan. Jika anda terbiasa dengan pemikiran ini, maka membuat software baik skala kecil, menengah dan besar bukanlah suatu permasalahan untuk anda. Karena jika dikerjakan dengan teliti dan terstruktur perangkat besar pun akan dengan sangat mudah bisa diselesaikan. Marco Maiocchi dari University of Milan dalam jurnal Future Generation Computer Systems volume 7, menjelaskan bahwa setidaknya terdapat beberapa alasan mengapa software engineering itu sangat penting, diantaranya adalah: 1. Mengurangi Kompleksitas Software dengan skala besar dan kompleks sangat sulit untuk dikembangkan. Untuk mengatasi hal ini, Software Engineering dapat diterapkan sebagai sebuah solusi untuk mengurangi kompleksitas dari setiap projek dengan cara membagi sekumpulan masalah besar menjadi beberapa masalah yang lebih kecil. Dengan demikian, masalah-masalah dapat diselesaikan dengan solusi-solusi yang dikerjakan satu persatu. Dengan teknik ini setiap permasalahan kecil dapat diselesaikan secara independen satu sama lain. Pada akhirnya, setiap masalah yang telah berhasil diselesaikan akan dikombinasikan satu sama lain untuk menghasilkan sebuah solusi akhir. Teknik ini disebut Problem Decomposition. Fokus dari teknik ini adalah memfokuskan penyelesaian masalah pada masalah yang paling relevan untuk diselesaikan saat ini dengan cara mengabaikan masalah-masalah yang dianggap tidak relevan. Dengan pola pikir ini, diharapkan masalah-masalah besar dapat diselesaikan dengan lebih mudah. 2. Untuk meminimalisir biaya perangkat lunak Perangkat lunak membutuhkan banyak sekali kerja keras dan disisi lain seorang software engineer merupakan tenaga ahli dengan biaya yang mahal. Kebanyakan orang berfokus untuk membangun perangkat lunak dengan jutaan baris kode program. Namun di dalam software engineering, programmer harus merencanakan semuanya dan mereduksi segala hal yang dianggap tidak penting. Hasilnya, biaya produksi dari pengembangan perangkat lunak menjadi dapat dikurangi dibandingkan pengembangan perangkat lunak lainnya yang tidak menggunakan pendekatan software engineering. 3. Untuk mengurangi waktu Segala yang tidak dibuat berdasarkan “Perencanaan” selalu menghabiskan waktu lebih banyak. Dan jika kita membuat sebuah software yang memiliki lingkup besar maka anda harus menjalankan banyak kode program untuk membuat kode dapat berjalan dengan maksimal. Hal ini sangat menghabiskan waktu. Jika tidak ditangani dengan manajemen yang baik maka hal ini malah akan menghabiskan banyak waktu. 4. Mampu Menangani Projek Besar Projek besar tidak dibuat hanya dalam beberapa hari, dibutuhkan kesabaran, perencanaan dan manajemen untuk menjamin tercapainya tujuan. Andaikata terdapat sebuah projek yang harus diselesaikan dalam jangka waktu 5 tahun, dan terdapat 40 tugas yang harus dikerjakan dan dalam satu semester perusahaan harus menyelesaikan setidaknya 4 tugas. Maka perusahaan juga harus memiliki komitmen agar jangan sampai dalam satu semester ternyata tugas yang hanya bisa diselesaikan 1 dari 4 tugas yang harusnya selesai. Oleh sebab itu untuk dapat sesuai dengan waktu yang ditentukan dibutuhkan perencanaan, arahan, pengujian dan proses maintenance yang dijalankan dengan disiplin. 5. Menjamin Kehandalan Perangkat Lunak Software harus handal, handal berarti software yang dibangun haruslah bekerja sesuai dengan waktu yang telah ditetapkan. Dan jika terdapat kesalahan dalam pembuatan software maka perusahaan harus menyelesaikan permasalahan-permasalahan tersebut. Di dalam software engineering, terdapat teknik testing dan maintenance yang harus dilakukan untuk menjamin kehandalan perangkat lunak. 6. Menjamin Efektifitas Efektifitas akan terjadi jika perangkat lunak telah berhasil dibangun berdasarkan sebuah standar yang berlaku. Di dalam software engineering terdapat berbagai standar yang dapat dijadikan acuan dalam pembangunan sebuah software yang efektif seperti ISO 3535:1977 tentang desain formulir dan bagan, ISO 5806/1984 tentang tabel dan information processing, ISO 5807:1985 tentang dokumentasi dan konvensi data, dan lain-lain. 7. Produktivitas Dengan bantuan software engineering, setiap perusahaan dapat meningkatkan produktivitas. Setiap projek dapat dikurangi biayanya dan menghabiskan waktu pengerjaan yang lebih sedikit. Di dalam software engineering, produktivitas software dapat dihasilkan karena adanya sistem pengujian di dalam setiap bagian terkecil suatu proses. Jika tidak lolos uji, maka seorang developer harus memperbaikinya hingga akhirnya mencapai suatu standar yang berlaku. Belajar terkait perangkat lunak, MENARIK kan ? Nah, Program Studi S1 Rekayasa Perangkat Lunak (S1 Software Engineering) ST3 Telkom Purwokerto menyelenggarakan matakuliah-matakuliah terkini dan terkait dengan dunia Rekayasa Perangkat Lunak yang sangat menarik. Pada matakuliah tersebut kita langsung belajar best practices seperti proses, tools, teknik, dan bidang pengetahuan yang dibutuhkan untuk ilmu rekayasa
Read MoreTahukah kamu ? Big data adalah istilah yang menggambarkan volume data yang besar, baik data yang terstruktur maupun data yang tidak terstruktur. Pada era digital sekarang ini dapat dikatakan bahwa “data is new gold”. Maksudnya adalah data telah menjadi bagian yang sangat penting bagi peradaban manusia seperti halnya minyak bumi yang telah mendapat julukan black gold. Sebab dalam menjalankan aktifitas sehari-hari, manusia tidak lepas dari data. Hal ini bisa dilihat dari banyaknya jumlah manusia yang update status di facebook dan twitter tiap menit atau berapa jumlah transaksi yang dilakukan oleh start up digital seperti tokopedia atau bukalapak perhari. Industri atau organisasi manapun yang mengusai emas, dapat dipastikan kekayaan dan kekuasaan ada ditangannya. Begitu juga halnya dengan data. Namun demikian, seperti halnya emas, data mesti digali, diproses dan dianalisa dengan serentetan teknologi tertentu demi mendapatkan nilai yang berharga dari lautan data pada era digital sekarang ini. Lautan data tersebut kemudian dikenal dengan istilah Big Data, kumpulan data yang begitu besar dan kompleks yang tak memungkinkan lagi untuk dikelola dengan tools software tradisional. Tertarik dengan tools software pengelola big data? Nah, Program Studi S1 Rekayasa Perangkat Lunak (S1 Software Engineering) ST3 Telkom Purwokerto juga menyelenggarakan matakuliah untuk Big data. Pada kuliah ini kita akan diajarkan menggunakan perangkat lunak untuk melakukan proses pengolahan, penyimpanan dan analisis data dalam beragam bentuk atau format. Ini akan jadi bekal berharga Anda untuk menekuni karir sebagai Software Engineer dan/atau Technopreneur.
Read MoreTahukah kamu? Taukah apa itu kecerdasan? Kecerdasan merupakan istilah yang digunakan untuk menjelaskan sifat pikiran makhluk hidup seperti contoh kemampuan menalar, memecahkan masalah, berfikir semu dan lain sebagainya. Lalu bagaimana apabila sebuah istilah atau metode kecerdasan dapat kita terapkan pada aplikasi rekayasa perangkat lunak? Tentu saja aplikasi rekayasa perangkat lunak tersebut akan menjadi seperti makhluk hidup yang dapat berfikir dan akan menghasilkan perangkat lunak yang dapat membantu pekerjaan manusia sehari-hari. Saat ini, penggunaan metode kecerdasan sudah banyak digunakan dalam aplikasi rekayasa perangkat lunak dan menghasilkan program-program yang berguna dalam bidang ekonomi, kesehatan, video game, bahkan dalam bidang militer sekalipun. Sebagai contoh, aplikasi pada kesehatan untuk mendiagnosa penyakit suatu pasien, dengan menggunakan parameter keluhan dan tanda-tanda gejala dari pasien, suatu aplikasi rekayasa perangkat lunak yang telah diberikan metode kecerdasan dapat mengetahui jenis penyakit yang sedang pasien alami. Sehingga membuat seolah-olah aplikasi rekayasa perangkat lunak tersebut adalah seorang pemeriksa dan atau dokter. Belajar terkait perangkat lunak, MENARIK kan ? Nah, Program Studi S1 Rekayasa Perangkat Lunak (S1 Software Engineering) ST3 Telkom Purwokerto juga menyelenggarakan matakuliah-matakuliah terkini dan terkait dengan dunia Kecerdasan Buatan Rekayasa Perangkat Lunak. Pada matakuliah tersebut kita langsung belajar best practices seperti proses, tools, teknik, dan bidang pengetahuan yang dibutuhkan untuk ilmu kecerdasan buatan rekayasa perangkat lunak. Ini akan jadi bekal berharga Anda untuk menekuni karir sebagai Software Engineer dan/atau Technopreneur.
Read MorePada masa-masa awal pengembangan perangkat lunak, pemrograman dipandang sebagai seni, namun kini pengembangan perangkat lunak secara bertahap menjadi disiplin teknik. Namun, pengembang masih percaya pada beberapa mitos. Beberapa mitos pengembang umumnya seperti pernyataan bahwa pengembangan perangkat lunak dianggap lengkap saat kode dikirimkan. Faktanya, 50% sampai 70% dari semua upaya dikeluarkan setelah perangkat lunak dikirim ke pengguna. Mitos lainnya, sebagai contoh, keberhasilan sebuah proyek perangkat lunak bergantung pada kualitas produk yang dihasilkan. Faktanya, kualitas program bukan satu-satunya faktor yang membuat proyek berhasil, namun dokumentasi dan konfigurasi perangkat lunak juga berperan penting. Selain itu, ada juga yang beranggapan bahwa rekayasa perangkat lunak tidak memerlukan dokumentasi, hal ini dapat memperlambat proyek. Faktanya, rekayasa perangkat lunak harus mengutamakan kualitas pada setiap tingkat proyek perangkat lunak. Dokumentasi yang tepat akan meningkatkan kualitas sehingga mengurangi jumlah pengerjaan yang dilakukan berulang-ulang. Anggapan lainnya seperti satu-satunya produk yang dikirimkan setelah selesainya proyek adalah program kerja. Faktanya, capaian keberhasilan proyek mencakup tidak hanya program kerja tetapi juga dokumentasi untuk membimbing pengguna dalam menggunakan perangkat lunak. Pernyataan yang sering terjadi seperti kualitas perangkat lunak hanya bisa dinilai setelah program dijalankan. Faktanya, kualitas perangkat lunak dapat diukur selama tahap proses pengembangan dengan menerapkan beberapa mekanisme penjaminan kualitas. Salah satu mekanisme tersebut adalah formal technical review (FTR) yang dapat digunakan secara efektif selama setiap tahap pengembangan, untuk menemukan kesalahan tertentu. Belajar terkait perangkat lunak, MENARIK kan ? Nah, Program Studi S1 Rekayasa Perangkat Lunak (S1 Software Engineering) ST3 Telkom Purwokerto menyelenggarakan matakuliah-matakuliah terkait Rekayasa Kebutuhan Perangkat Lunak yang sangat menarik. Pada matakuliah tersebut kita langsung belajar best practices seperti proses, tools, teknik, dan bidang pengetahuan yang dibutuhkan untuk ilmu rekayasa perangkat lunak. Ini akan jadi bekal berharga Anda untuk menekuni karir sebagai Software Engineer dan/atau Technopreneur.
Read MoreTahukah kamu? Dalam kebanyakan kasus, pengguna cenderung percaya mitos tentang perangkat lunak karena manajer dan pengembang perangkat lunak tidak mencoba untuk memperbaiki kepercayaan yang salah kaprah. Mitos ini mengarah pada harapan palsu dan pada akhirnya menimbulkan ketidakpuasan di kalangan pengguna. Mitos pengguna tersebut, sebagai contoh, persyaratan singkat yang tercantum dalam proses awal sudah cukup untuk memulai pengembangan (develop), kemudian untuk persyaratan yang lebih rinci dapat ditambahkan pada tahap selanjutnya. Faktanya, memulai pengembangan dengan persyaratan yang tidak lengkap dan ambigu sering menyebabkan kegagalan perangkat lunak (software failure). Sebagai gantinya, deskripsi persyaratan yang lengkap dan formal sangat penting sebelum memulai pengembangan. Menambahkan persyaratan pada tahap selanjutnya seringkali membutuhkan proses pengulangan terhadap keseluruhan proses pengembangan. Mitos pengguna yang terjadi di lain hal, contohnya, perangkat lunak itu fleksibel maka perubahan kebutuhan perangkat lunak dapat ditambahkan selama tahap proses pengembangan. Faktanya, memasukkan permintaan perubahan (change requests) di awal dapat menekan biaya terhadap proses pengembangan lebih rendah daripada yang terjadi pada tahap selanjutnya. Ini karena menggabungkan perubahan nantinya mungkin memerlukan perancangan ulang dan sumber daya tambahan. Belajar terkait perangkat lunak, MENARIK kan ? Nah, Program Studi S1 Rekayasa Perangkat Lunak (S1 Software Engineering) ST3 Telkom Purwokerto juga menyelenggarakan matakuliah Rekayasa Kebutuhan Perangkat Lunak. Pada mata kuliah ini kita memperkenalkan proses, tools, teknik, dan bidang pengetahuan yang dibutuhkan untuk identifikasi dan mengelola kebutuhan perangkat lunak dengan sukses. Ini akan jadi bekal berharga Anda untuk menekuni karir sebagai Software Engineer dan/atau Technopreneur.
Read More