Sabtu, 25 Februari 2023

Siklus Pengembangan Perangkat Lunak atau Software Development Life Cycle

Proses pengembangan perangkat lunak (software development process) adalah suatu struktur yang diterapkan pada pengembangan suatu produk perangkat lunak yang bertujuan untuk mengembangkan sistem dan memberikan panduan yang bertujuan untuk menyukseskan proyek pengembangan sistem melalui tahap demi tahap. Proses ini memiliki beberapa model yang masing-masing menjelaskan pendekatan terhadap berbagai tugas atau aktivitas yang terjadi selama proses. Contoh model proses pengembangan perangkat lunak antara lain adalah proses iteratif, extreme programming, serta proses air terjun (waterfall).

SDLC (Software Development Life Cycle)

SDLC atau Siklus Pengembangan Perangkat Lunak adalah proses yang menghasilkan perangkat lunak dengan kualitas tertinggi dan biaya terendah dalam waktu sesingkat mungkin. SDLC menyediakan aliran fase yang terstruktur dengan baik yang membantu organisasi untuk dengan cepat menghasilkan perangkat lunak berkualitas tinggi yang teruji dengan baik dan siap digunakan untuk produksi.

SDLC memiliki beberapa model seperti:

  • Linier Sequential Model (Waterfall)
  • Evolutionary Process Model (Prototyping dan Spiral Model)
  • Incremental Process Model (RAD)
  • Agile Model (Scrum)

Waterfall

Proses pengembangan perangkat lunak Waterfall (juga dikenal sebagai "model sekuensial linier" atau "model siklus hidup Klasik") adalah salah satu model tertua dan paling tradisional untuk membangun perangkat lunak. Dalam bentuknya yang paling dasar, Anda dapat menganggap metode Air Terjun mengikuti setiap langkah SDLC secara berurutan kita harus menyelesaikan setiap langkah secara berurutan sebelum melanjutkan. Namun, dalam sebagian besar aplikasi praktis, fase-fase tersebut sedikit tumpang tindih, dengan umpan balik dan informasi yang diteruskan di antara fase-fase tersebut.

Beberapa orang juga suka menyebut ini sebagai proses "digerakkan oleh rencana" karena untuk menyelesaikan sebuah proyek, pertama-tama Anda harus mengetahui semua yang perlu dilakukan dan dalam urutan apa. Karenanya nama "Air Terjun" karena setiap bagian mengalir ke bagian berikutnya.

Fase:

  • Perencanaan
  • Persyaratan
  • Desain sistem dan perangkat lunak
  • Penerapan
  • Pengujian
  • Penyebaran
  • Pemeliharaan/Pembaruan

Cocok untuk:

Karena strukturnya yang kaku dan waktu perencanaan awal yang besar, proses pengembangan perangkat lunak Waterfall bekerja paling baik ketika tujuan, persyaratan, dan kumpulan teknologi tidak mungkin berubah secara radikal selama proses pengembangan. Dalam istilah yang lebih praktis, proses Waterfall paling cocok untuk organisasi yang lebih besar (seperti lembaga pemerintah) yang memerlukan persetujuan dan dokumentasi pada semua persyaratan dan ruang lingkup sebelum proyek dimulai.

Tidak cocok untuk:

Jika menguji produk baru, memerlukan masukan pengguna di tengah jalan, atau ingin lebih dinamis dalam proses pengembangan, mengikuti proses pengembangan Waterfall mungkin tidak tepat. Meskipun mudah, kelemahan terbesar proses ini adalah kurangnya fleksibilitas.

Prototyping Model

Model prototyping adalah metode pengembangan sistem di mana prototipe dibangun, diuji dan kemudian dikerjakan ulang seperlunya sampai hasil yang dapat diterima tercapai dari mana sistem atau produk lengkap dapat dikembangkan. Model ini bekerja paling baik dalam skenario di mana tidak semua persyaratan proyek diketahui secara detail sebelumnya. Ini adalah proses coba-coba berulang yang terjadi antara pengembang dan pengguna.

Langkah-langkah model prototyping

Dalam kebanyakan kasus, langkah-langkah model prototyping adalah sebagai berikut:

  • Persyaratan sistem baru didefinisikan sedetail mungkin. Ini biasanya melibatkan wawancara sejumlah pengguna yang mewakili semua departemen atau aspek dari sistem yang ada.
  • Desain pendahuluan dan sederhana dibuat untuk sistem baru.
  • Prototipe pertama dari sistem baru dibangun dari desain awal. Ini biasanya merupakan sistem yang diperkecil, dan mewakili perkiraan karakteristik produk akhir.
  • Pengguna secara menyeluruh mengevaluasi prototipe pertama dan mencatat kekuatan dan kelemahannya, apa yang perlu ditambahkan dan apa yang harus dihilangkan. Pengembang mengumpulkan dan menganalisis komentar dari pengguna.
  • Prototipe pertama dimodifikasi, berdasarkan komentar yang diberikan oleh pengguna, dan prototipe kedua dari sistem baru dibangun.
  • Prototipe kedua dievaluasi dengan cara yang sama seperti prototipe pertama.
  • Langkah-langkah sebelumnya diulangi sebanyak yang diperlukan, sampai pengguna puas bahwa prototipe mewakili produk akhir yang diinginkan.
  • Sistem akhir dibangun, berdasarkan prototipe akhir.
  • Sistem akhir dievaluasi dan diuji secara menyeluruh. Pemeliharaan rutin dilakukan secara berkelanjutan untuk mencegah kegagalan skala besar dan untuk meminimalkan downtime.

RAD

Metode pengembangan perangkat lunak RAD (Rapid Application Development) adalah sebuah proses pengembangan perangkat lunak yang menekankan siklus pengembangan dengan waktu yang singkat. Definisi lain menyatakan bahwa metode pengembangan perangkat lunak RAD adalah metode yang menggunakan pendekatan beorientasi objek untuk pengembangan sistem yang meliputi pengembangan perangkat dan perangkat lunak.

4 Tahapan RAD yang Perlu Dilakukan:

1. Perencanaan Kebutuhan.

Tahapan ini merupakan tahap awal dalam suatu pengembangan sistem, dimana pada tahap ini dilakukan identifikasi masalah dan pengumpulan data yang diperoleh dari pengguna atau stakeholder pengguna yang bertujuan untuk mengidentifikasi maksud akhir atau tujuan dari sistem dan kebutuhan informasi yang diinginkan.

2. Desain Sistem.

Di dalam tahap desain sistem, keaktifan pengguna yang terlibat sangatlah penting untuk mencapai tujuan karena pada tahapan ini dilakukan proses desain dan proses perbaikan desain secara berulang-ulang apabila masih terdapat ketidaksesuaian desain terhadap kebutuhan pengguna yang telah diidentifikasi pada tahapan sebelumnya.

3. Proses pengembangan dan pengumpulan feedback.

Pada tahap ini desain sistem yang telah dibuat dan disepakati, diubah ke dalam bentuk aplikasi versi beta sampai dengan versi final. Pada tahapan ini juga programmer harus terus-menerus melakukan kegiatan pengembangan dan integerasi dengan bagian-bagian lainnya sambal terus mempertimbangkan feedback dari pengguna atau klien. Jika proses berjalan lancar maka dapat berlanjut ke tahapan berikutnya, sedangkan jika aplikasi yang dikembangkan belum menjawab kebutuhan, programmer akan kembali ke tahapan desain sistem.

4. Implementasi atau penyelesaian produk.

Tahapan ini merupakan tahapan dimana programmer menerapkan desain dari suatu sistem yang telah disetujui pada tahapan sebelumnya. Sebelum sistem diterapkan, terlebih dahulu dilakukan proses pengujian terhadap program untuk mendeteksi kesalahan yang ada pada sistem yang dikembangkan. Pada tahap ini biasa memberikan tanggapan akan sistem yang sudah dibuat dan mendapat persetujuan mengenai sistem tersebut.

Scrum

Scrum adalah kerangka kerja manajemen proyek yang gesit yang membantu tim menyusun dan mengelola pekerjaan mereka melalui serangkaian nilai, prinsip, dan praktik. Scrum mendorong tim untuk belajar melalui pengalaman, mengatur diri sendiri saat mengerjakan masalah, dan merenungkan kemenangan dan kekalahan mereka untuk terus meningkat.

Prinsip dan pelajaran Scrum dapat diterapkan pada semua jenis kerja tim. Inilah salah satu alasan scrum begitu populer. Sering dianggap sebagai kerangka kerja manajemen proyek yang gesit, scrum menjelaskan serangkaian rapat, alat, dan peran yang bekerja bersama untuk membantu tim menyusun dan mengelola pekerjaan mereka.

Kesimpulan

Software development process adalah suatu struktur yang diterapkan pada pengembangan suatu produk perangkat lunak yang bertujuan untuk mengembangkan sistem dan memberikan panduan yang bertujuan untuk menyukseskan proyek pengembangan sistem melalui tahap demi tahap.

RPL tidak sama dengan PL

SDLC (Software Development Life Cycle) memiliki beberapa model, yaitu:

  • Linier Sequential Model (Waterfall)
  • Evolutionary Process Model (Prototyping dan Spiral Model)
  • Incremental Process Model (RAD)
  • Agile Model (Scrum)


Source :

https://p2k.stekom.ac.id/ensiklopedia/Proses_pengembangan_perangkat_lunak

https://www.atlassian.com/agile/scrum

https://www.techtarget.com/searchcio/definition/Prototyping-Model

https://agus-hermanto.com/blog/detail/metode-pengembangan-rad-rapid-application-development

Kamis, 16 Februari 2023

Konsep Rekayasa Perangkat Ulang

Rekayasa Perangkat Lunak (RPL)

Rekayasa Perangkat Lunak adalah prinsip sekaligus teknik mendesain perangkat lunak yang mudah digunakan dan tepat guna. Jadi, RPL adalah bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembangan perangkat lunak dan manajemen kualitas. 

Dalam pengembangan perangkat lunak skala besar tidak bisa dikerjakan Oleh satu orang saja oleh karena itu diperlukan kerja sama tim yang baik agar pengembangan dapat berjalan lancar sesuai rencana oleh karena itu diperlukanlah teknik-teknik RPL. RPL diperlukan pada pengembangan perangkat lunak dengan skala besar dan sedang. Teknik-teknik RPL dalam pengembangan perangkat lunak secara garis besar yaitu:

  • Spesifikasi perangkat lunak
  • Pengembangan perangkat lunak
  • Validasi perangkat lunak
  • Evolusi perangkat lunak
Tujuan Rekayasa Perangkat Lunak tidak berbeda dengan bidang rekayasa yang lain. Bidang rekayasa akan selalu berusaha menghasilkan output yang kinerjanya tinggi waktu penyelesaian yang tepat dan Berbiaya rendah. Secara lebih khusus kita dapat menyatakan tujuan RPL adalah sebagai berikut:
  • Menghasilkan perangkat lunak yang kinerjanya tinggi, andal serta tepat waktu.
  • Memperoleh biaya produksi perangkat lunak yang rendah.
  • Menghasilkan perangkat lunak yang biaya perawatan rendah.
  • Menghasilkan perangkat lunak yang bisa bekerja di berbagai jenis platform.

Ruang Lingkup Rekayasa Perangkat Lunak: 


  • Software Requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak
  • Software desain mencakup proses penampilan arsitektur, komponen, antar muka, dan karakteristik lain dari perangkat lunak
  • Software construction berhubungan dengan detail pengembangan perangkat lunak, termasuk algoritma, pengkodean, pengujian dan pencarian kesalahan
  • Software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak
  • Software maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan
  • Software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu
  • Software engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak
  • Software engineering tools and methods mencakup kajian teoritis tentang alat bantu dan metode RPL
  • Software engineering process berhubungan dengan definisi, implementasi pengukuran, pengelolaan, perubahan dan perbaikan proses RPL
  • Software quality menitik beratkan pada kualitas dan daur hidup perangkat lunak

Proses Perangkat Lunak adalah sarangkaian kegiatan dan hasil-hasil relevan yang menghasilkan perangkat lunak sebagian besar dilakukan oleh perekayasa perangkat lunak. Ada 4 kegiatan pada proses perangkat lunak: 

  • Spesifikasi
Apa yang harus dilakukan oleh perangkat lunak dan batasan/kendala pengembangannya. Dengan tujuan untuk menetapkan layanan apa yang dituntut dari sistem dan batasan pada operasi serta pengembangan sistem.
  • Pengembangan
Adalah perancangan dan implementasi perangkat lunak, perangkat lunak yang memenuhi spesifikasi harus diproduksi.
  • Validasi
Perangkat lunak harus divalidasi untuk menjamin bahwa perangkat lunak bekerja sesuai dengan apa yang diinginkan oleh pelanggan
  • Evolusi 

Perangkat lunak harus berkembang untuk memenuhi kebutuhan pelanggan.

Perbedaan Software Engineering dengan Software Development

Software engineer memiliki tugas penting dalam monitoring proses pengembangan software. Sedangkan software developer lebih fokus dalam pembuatan program yang dapat bekerja dengan baik. Dengan kata lain, perbedaan utama dari software engineer dan software developer adalah software developer hanya berfokus pada satu area saja. Salah satunya adalah membangun kode. Sedangkan software engineer adalah orang yang merancang, merencanakan, dan mengimplementasikan prinsip engineering ke pengembangan software. Software engineer juga harus memantau keseluruhan proyek dan meng-handle area yang lebih luas. Perbedaan yang paling menonjol adalah software engineer fokus mengawasi, sedangkan developer fokus membangun program yang fungsional.

Ada 8 prinsip profesional software engineering yang di buat oleh ACM/ICEE-CS (Asosiasi Profesi), delapan prinsip tersebut adalah:

  • Public atau Masyarakat, artinya perekayasa perangkat lunak atau seorang insinyur software harus bertindak secara konsisten sesuai dengan kepentingan masyarakat.
  • Client and Employer atau Klien dan Atasan, artinya seorang perekayasa perangkat lunak harus melakukan yang terbaik bagi klien dan atasan mereka dan tetap konsisten dengan kepentingan masyarakat.
  • Product atau Produk, artinya perekayasa perangkat lunak akan menjamin bahwa produk mereka dan modifikasi yang mereka lakukan terhadapnya memenuhi standar profesional setinggi tingginya.
  • Judgment atau Penilaian, artinya perekayasa perangkat lunak akan mempertahankan integritas dan independensi penilaian profesional mereka.
  • Management atau Manajemen, artinya manajer dan perangkat lunak akan mengikuti dan mempromosikan pendekatan etis terhadap manajemen pengembangan dan pemeliharaan perangkat lunak.
  • Profession atau Profesi, artinya perekayasa perangkat lunak akan mementingkan integritas dan reputasi profesi konsisten dengan kepentingan masyarakat.
  • Collegues atau Kolega, artinya perekayasa perangkat lunak harus bersikap adil dan mendukung terhadap koleganya.
  • Self atau Diri Sendiri, artinya perekayasa perangkat lunak akan berpartisipasi dalam pembelajaran seumur hidup mengenai praktek profesi mereka dan akan mempromosikan pendekatan etis terhadap praktek profesi tersebut.


Kesimpulan

Rekayasa Perangkat Lunak adalah prinsip sekaligus teknik mendesain perangkat lunak yang mudah digunakan dan tepat guna. Jadi, RPL adalah bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembangan perangkat lunak dan manajemen kualitas.  RPL memiliki tujuan seperti, Menghasilkan perangkat lunak yang kinerjanya tinggi, andal serta tepat waktu, memperoleh biaya produksi perangkat lunak yang rendah, menghasilkan perangkat lunak yang biaya perawatan rendah, menghasilkan perangkat lunak yang bisa bekerja di berbagai jenis platform.

Software Engineering dengan Software Development adalah berbeda Software engineer memiliki tugas penting dalam monitoring proses pengembangan software. Sedangkan software developer lebih fokus dalam pembuatan program yang dapat bekerja dengan baik.


Resource :

https://repository.penerbitwidina.com/publications/410361/rekayasa-perangkat-lunak

https://www.markijar.com/2016/01/pengertian-tujuan-dan-ruang-lingkup.html

https://tophanakbar.wordpress.com/2014/08/13/ruang-lingkup-rpl/

https://www.gamelab.id/news/1817-jangan-sampai-tertukar-ini-perbedaan-software-engineer-dan-software-developer

https://proyeksoftware.blogspot.com/2016/10/software-engineering-code-of-ethics.html

Senin, 13 Februari 2023

MOTIVASI MENGIKUTI MATA KULIAH DASAR REKAYASA PERANGKAT LUNAK (DRPL) DAN MENGENAL PERANGKAT LUNAK

Motivasi Mengikuti Mata Kuliah Dasar Rekayasa Perangkat Lunak

Motivasi saya dalam mengikuti mata kuliah Dasar Rekayasa Perangkat Lunak adalah untuk mendalami mata kuliah DRPL ini dikarenakan ilmu dalam mata kuliah DRPL ini sangat diperlukan untuk Tugas Akhir saya.

Pengertian Perangkat Lunak (Software) Software merupakan sebuah data yang diprogram, disimpan, dan diformat secara digital dengan tujuan serta fungsi tertentu. Perangkat ini sendiri tak mempunyai bentuk fisik, dalam mencapai tujuan jalannya program, maka dirancang susunan-susunan logika dalam bahasa pemrograman yang dapat dipahami dan dijalankan oleh komputer. Jadi, software merupakan instruksi terprogram yang disimpan di dalam memori komputer digital dan berbentuk sebagai program yang cara penggunaanya yaitu dengan dieksekusi oleh prosesor.

Fungsi Perangkat Lunak (Software) Perangkat lunak atau software dibuat dengan fungsi utama untuk memudahkan pekerjaan. Sebagai contoh penjelasan fungsi lebih detailnya sebagai berikut :

-   Mengatur kerja hardware.

-   Menjalankan perintah tertentu pada sistem.

Membantu pekerjaan seperti menghitung, membuat dokumen, menyunting gambar, dan pekerjaan lainnya menjadi lebih efisien.

Dalam hal ini, pengembang atau developer akan terus mengembangkan software secara berkala guna memperbanyak fitur yang dapat dipakai oleh pengguna.

Klasifikasi Perangkat Lunak (Software) Secara umum, perangkat lunak atau software dapat diklasifikan berdasar fungsi dan lisensinya. Berdasarkan fungsinya, dapat dibagi menjadi dua yaitu System Software dan Application Software. Sedangkan berdasarkan lisensinya, dapat dibagi menjadi lebih banyak lagi. Beberapa lisensi software yang dikenal luas saat ini antara lain Commercial Software, Domain Public, Shareware, Rentalware, Freeware, Open Source, dan lainnya.

Perangkat Lunak (Software) berdasarkan Fungsinya

A.      System Software

Pengertian perangkat lunak sistem (System Software) adalah sebuah istilah generik pada sistem komputer sebagai pengontrol dan mangatur perangkat keras (hardware) pada lapisan pertama. dimana perangkat lunak atau software akan membantu untuk memanajemen, memproses dan megelola perangkat keras agar berjalan secara optimal. Ketika perangkat keras dinyalakan, maka perangkat lunak sistem akan memproses sumberdaya, menajemen proses dan menangani strukur data sebuah perangkat keras.

B.      Application Software

Application Software adalah perangkat lunak yang dirancang guna menjalankan tugas-tugas tertentu dalam Operating System yang terbagi lagi dalam general purpose dan specific purpose. Contoh dari general purpose adalah pengolah kata. Sedangkan, contoh dari specific purpose yang mana dibuat guna mengeksekusi tugas terbatas yaitu kalkulator.

Perangkat Lunak (Software) berdasarkan Lisensinya

A.      Commercial Software

Commercial Software adalah perangkat lunak yang memiliki hak cipta dengan konsep bisnis sehingga pengguna harus membeli sebelum menggunakannya. Sebagai contoh dari Commercial Software adalah Photoshop.

B.      Domain Public

Domain Public adalah perangkat lunak yang memberikan hak cipta kepada pengguna untuk yang dibuatnya pada perangkat lunak yang digunakan. Sebagai contoh dari Domain Public adalah MySQL dan Apache.

C.      Shareware

Shareware adalah perangkat lunak yang bisa didistribusikan salinannya. Pada awal pemakaian, perangkat lunak ini tidak dikenai biaya. Namun, untuk beberapa kurun waktu ataupun keleluasaan pengguna dalam mengakses fitur, pengguna akan dikenai biaya untuk lisensi. Dalam Shareware dikenal beberapa istilah seperti demo, trial, alpha, beta, stable, dan release. Sebagai contoh dari Shareware adalah Recuva.

D.     Rentalware

Rentalware adalah perangkat lunak yang harus disewa dalam kurun waktu tertentu untuk dapat digunakan. Sebagai contoh dari Rentalware adalah Netflix dan Canva.

E.      Freeware 

Freeware adalah software atau aplikasi yang diperoleh secara gratis yang dapat didownload dan digunakan tetapi mempunyai batasan hak pencipta. Meskipun gratis, pada dasarnya pembuatnya mempunyai kebijakan tertentu yang umumnya disertai syarat software tersebut tidak boleh dimodifikasi dalam bentuk apapun

F.      Open Source

Open source adalah suatu software atau kode pemrograman komputer yang dipublikasikan secara umum pada orang-orang, sehingga bisa digunakan, diperbaiki, dimodifikasi, atau disebarkan untuk keperluan pribadi atau hobi, perusahaan atau untuk komersil, tanpa harus membayar biaya sedikit pun.

Kesimpulan

1.  Perangkat lunak atau software dapat diartikan sebagai instruksi terprogram yang disimpan di dalam memori komputer digital dan berbentuk sebagai program yang cara penggunaanya yaitu dengan dieksekusi oleh prosesor.

2.  Fungsi dari perangkat lunak atau software utamanya untuk mengatur kerja hardware  dan   membantu pekerjaan manusia menjadi lebih efisien.

3. Perangkat Lunak dapat diklasifikasikan berdasarkan fungsi dan lisensinya, berdasarkan fungsinya yaitu, System Software dan Application Software. Sedangkan berdasarkan lisensinya yaitu, Commercial Software, Domain Public, Shareware, Rentalware, dan Freeware dan Open Source


Source :

https://www.gramedia.com/literasi/pengetian-software/

https://www.bakhel.com/2019/03/pengertian-perangkat-lunak-sistem-system-software-contohnya.html

http://nugrohosatyamahendra.blog.widyatama.ac.id/2019/03/10/pengertian-dan-perbedaan-system-software-application-software/

https://www.temukanpengertian.com/2013/06/pengertian-freeware.html

https://accurate.id/teknologi/open-source-adalah/



Analisis dan Design PL

Structured System Analisys and Design  (SSAD) atau Analisis dan Desain Sistem Terstruktur adalah salah satu metodologi dalam mengembangkan ...