Minggu, 12 Maret 2023

Analisis dan Design PL

Structured System Analisys and Design (SSAD) atau Analisis dan Desain Sistem Terstruktur adalah salah satu metodologi dalam mengembangkan sistem maupun perangkat lunak. Metodologi ini digunakan dalam menjalankan 3 fase di SDLC yaitu fase analisis, desain dan implementasi sebuah sistem dan perangkat lunak. SSAD berorientasi pada data dan proses.

Analisis dan desain perangkat lunak terstruktur memiliki beberapa karakteristik penting, yaitu :

1. Berdasarkan modul

Dalam metodologi ini semua proses di bagi menjadi modul-modul yang independen atau dapat berdiri sendiri sehingga setiap modul dapat digunakan kembali di projek lain. Setiap modul mengandung proses-proses yang mengolah data lebih detail. Antara setiap proses itu memiliki keterikatan sehingga di kelompokkan kedalam modul.

2. Pendekatan Top-Down

Pendekatan Top-Down memiliki arti bahwa dalam perancangannya sistem di definisikan lebih dahulu secara umum lalu turun ke level ke yang lebih spesifik. Pendekatan ini sering di lakukan dengan menggunakan Diagram Arus Data atau Data Flow Diagram(DFD).

3. Iterasi

Perancangan dan implementasi sistem di lakukan secara iterasi yaitu berulang ulang kali sehingga kesalahan kesalahan dari iterasi sebelumnya dapat di perbaiki. Contoh metode iterasi adalah metode spiral.

4. Paralel

Karena setiap modul dapat bekerja secara independen maka dalam pengembangannya dapat dilakukan secara terpisah. Pengembangan secara terpisah dapat mempercepat proses pembuatan sistem ini sehingga sumberdaya yang dikeluarkan menjadi lebih sedikit. 


Object Oriented Analysis Design (OOAD) atau Analisis dan Desain Berorientasi Objek adalah cara baru dalam memikirkan suatu masalah dengan menggunakan model yang dibuat menurut konsep sekitar dunia nyata. Dasar pembuatan adalah objek, yang merupakan kombinasi antara struktur data dan perilaku dalam satu entitas. Pengertian “berorientasi objek” berarti bahwa kita mengorganisasi perangkat lunak sebagai kumpulan dari objek tertentu yang memiliki struktur data dan perilakunya.

Konsep OOAD mencakup analisis dan desain sebuah sistem dengan pendekatan objek, yaitu analisis berorientasi objek (OOA) dan desain berorientasi objek (OOD). 

OOA adalah metode analisis yang memeriksa requirement (syarat/keperluan) yang harus dipenuhi sebuah sistem) dari sudut pandang kelas-kelas dan objek-objek yang ditemui dalam ruang lingkup perusahaan. Hasil OOA adalah deskripsi dari apa sistem secara fungsional diperlukan untuk melakukan, dalam bentuk sebuah model konseptual. Itu biasanya akan disajikan sebagai seperangkat menggunakan kasus, satu atau lebih UML diagram kelas, dan sejumlah diagram interaksi.

OOD adalah metode untuk mengarahkan arsitektur software yang didasarkan pada manipulasi objek-objek sistem atau subsistem. OOD mengubah model konseptual yang dihasilkan dalam analisis berorientasi objek memperhitungkan kendala yang dipaksakan oleh arsitektur yang dipilih dan setiap non-fungsional – teknologi atau lingkungan – kendala, seperti transaksi throughput, response time, run , lingkungan pengembangan, atau bahasa pemrograman.

Karakteritik Metodologi Berorientasi Objek

Metodologi pengembangan sistem berorientasi objek mempunyai tiga karakteristik utama :


1. Encapsulation (Pengkapsulan)

  • Encapsulation merupakan dasar untuk pembatasan ruang lingkup program terhadap data yang diproses. 
  • Data dan prosedur atau fungsi dikemas bersama-sama dalam suatu objek, sehingga prosedur atau fungsi lain dari luar tidak dapat mengaksesnya. 
  • Data terlindung dari prosedur atau objek lain, kecuali prosedur yang berada dalam objek itu sendiri.

2. Inheritance (Pewarisan)

  • Inheritance adalah teknik yang menyatakan bahwa anak dari objek akan mewarisi data/atribut dan metode dari induknya langsung. 
  • Atribut dan metode dari objek dari objek induk diturunkan kepada anak objek, demikian seterusnya. 
  • Inheritance mempunyai arti bahwa atribut dan operasi yang dimiliki bersama di anatara kelas yang mempunyai hubungan secara hirarki. 
  • Suatu kelas dapat ditentukan secara umum, kemudian ditentukan spesifik menjadi subkelas. Setiap subkelas mempunyai hubungan atau mewarisi semua sifat yang dimiliki oleh kelas induknya, dan ditambah dengan sifat unik yang dimilikinya. 
  • Kelas Objek dapat didefinisikan atribut dan service dari kelas Objek lainnya. Inheritance menggambarkan generalisasi sebuah kelas.

3. Polymorphism (Polimorfisme)

  • Polimorfisme yaitu konsep yang menyatakan bahwa seuatu yang sama dapat mempunyai bentuk dan perilaku berbeda.
  • Polimorfisme mempunyai arti bahwa operasi yang sama mungkin mempunyai perbedaan dalam kelas yang berbeda.
  • Kemampuan objek-objek yang berbeda untuk melakukan metode yang pantas dalam merespon message yang sama.
  • Seleksi dari metode yang sesuai bergantung pada kelas yang seharusnya menciptakan Objek


Source:

https://medium.com/@agungtuahananda/analisis-dan-desain-sistem-terstruktur-1722b4b51a64

https://peterdraw.wordpress.com/2011/10/30/konsep-ooad-object-oriented-analysis-design/

Minggu, 05 Maret 2023

Rekayasa Kebutuhan

Rekayasa Kebutuhan

Software requirements adalah deskripsi fitur dan fungsi dari sistem target. Persyaratan menyampaikan harapan pengguna dari produk perangkat lunak. Persyaratan dapat jelas atau tersembunyi, diketahui atau tidak diketahui, diharapkan atau tidak diharapkan dari sudut pandang klien. Rekayasa kebutuhan yang baik akan menjadi pondasi membangun high quality software dan sesuai dengan user expectation (keinginan pengguna).

User Requirement

User requirement adalah requirement yang berperan dalam menjalankan dalam sebuah sistem yang dibuat. Dan dapat dikatakan tanpa adanya user requirements ini maka sebuah sistem tidak akan berguna untuk diterapkan dalam suatu organisasi karena sebuah sistem tidak bisa berjalan sesuai dengan fungsi-fungsi yang telah dibuat. Karena suatu proses yang telah digambarkan dalam suatu business requirement menunjukkan peran awal yang harus ada dalam sebuah sistem adalah adanya entity atau bisa disebut seorang stakeholder atau seorang user. Yang harus diketahui user masih mengandung arti luas karena setiap sistem dalam sebuah organisasi, lingkungan memiliki peran yang spesifik. Misal dalam sebuah sistem aplikasi akuntansi terdapat beberapa user yang terlibat antara lain karyawan accounting, manager accounting dan director accounting. Begitu juga dalam sebuah game RPG misalnya disana terdapat beberapa peran dari gamer ada yang bertindak sebagai hero, assasin dan lain-lain. Jadi ketika membuat suatu business requirement atau dokumentasi gunakan nama-nama user atau stakeholder yang lebih spesifik berperan dalam aplikasi yang akan dikembangkan.

System Requirement

System Requirement merupakan penjelasan dari user requirement atau detail dari user requirement dengan kata lain spesifikasi yang dibutuhkan untuk menggunakan suatu perangkat keras atau lunak, seperti kapasitas RAM, versi sistem operasi, kecepatan prosesor, dan sebagainya.

Fungsional Requirement dan Non Fungsional Requirement 

Persyaratan fungsional dan non-fungsional menggambarkan karakteristik khusus yang harus dimiliki suatu produk untuk memenuhi kebutuhan pemangku kepentingan dan bisnis itu sendiri. Tapi, seperti yang bisa Anda ketahui dari namanya, mereka fokus pada hal yang berbeda.

Persyaratan fungsional menentukan apa yang harus dilakukan oleh produk perangkat lunak: fitur dan fungsinya. Contoh persyaratan fungsional untuk messenger adalah seperti, "Pengguna harus dapat mengedit pesan setelah dikirim untuk memperbaiki kesalahan."

Persyaratan non-fungsional menentukan atribut kualitas sistem, oleh karena itu nama keduanya adalah atribut kualitas. Melanjutkan contoh platform perpesanan kami, persyaratan non-fungsional dapat berupa kecepatan sistem harus melakukan pengeditan untuk memenuhi harapan pengguna, “Pesan harus diperbarui untuk semua pengguna dalam obrolan dalam waktu 0,1 detik, mengingat semua pengguna sedang online dan memiliki koneksi LTE atau lebih baik.”

Analisis Kebutuhan

Analisa kebutuhan adalah suatu proses untuk mendapatkan informasi, mode, spesifikasi tentang perangkat lunak yang diinginkan klien/pengguna. Kedua belah pihak, yaitu klien dan pembuat perangkat lunak terlibat aktif dalam tahap ini. Informasi dari klien yang akan menjadi acuan untuk melakukan desain perangkat lunak.

Ada tiga faktor yang harus dipenuhi ketika melakukan analisis kebutuhan ini, yaitu lengkap, detail, dan benar. Lengkap artinya semua yang diharapkan oleh klien telah didapatkan oleh pihak yang melakukan analisis. Detail maksudnya adalah berhasil mengumpulkan informasi yang terperinci. Semua data dari analisis kebutuhan ini haruslah benar, sesuai apa yang dimaksud oleh klien, bukan benar menurut apa yang dipikirkan oleh pihak analisis.

Analisis kebutuhan yang dilakukan terhadap perangkat lunak akan menghasilkan spesifikasi perangkat lunak tersebut. Analisa kebutuhan ini terdiri dari lima langkah pokok:
  • Identifikasi Masalah
  • Evaluasi dan sintesis
  • Pemodelan
  • Spesifikasi
  • Review
Kesimpulan

Software requirements adalah deskripsi fitur dan fungsi dari sistem target. Persyaratan menyampaikan harapan pengguna dari produk perangkat lunak. Software requirements terdiri dari 4 yaitu: User Requirement, System Requirement, Functional Requirement dan Non Functional Requirement.

Analisa kebutuhan adalah suatu proses untuk mendapatkan informasi, mode, spesifikasi tentang perangkat lunak yang diinginkan klien/pengguna. Kedua belah pihak, yaitu klien dan pembuat perangkat lunak terlibat aktif dalam tahap ini. Analisis kebutuhan yang dilakukan terhadap perangkat lunak akan menghasilkan spesifikasi perangkat lunak tersebut. Analisa kebutuhan ini terdiri dari lima langkah pokok yaitu: Identifikasi Masalah, Evaluasi dan sintesis, Pemodelan, Spesifikasi, Review



Source :
http://greskit.com/2019/10/10/tipe-tipe-requirement-engineering-bagian-i/
http://lea.si.fti.unand.ac.id/2014/04/requirement-system-perancangan-system-part-i/
https://www.altexsoft.com/blog/non-functional-requirements/

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/



Jumat, 12 November 2021

Project Risk Management

Project Risk Management adalah sebuah Manajemen atau cara mengatur bagaimana mengidentifikasi, analisa dan respon sebuah resiko dalam sebuah proyek, Manajemen resiko dapat membantu kesuksesan proyek dengan cara membantu memilih proyek yang baik, menentukan scope proyek dan membuat estimasi yang real. Tujuan utama dari manajamen resiko adalah untuk meminimalkan resiko negatif dan memperbesar resiko positif.

  • Resiko negatif merupakan peluang suatu kejadian dapat berpotensi menurunkan keberhasilan dari pencapaian tujuan organisasi (Imam, 2020). Jadi dengan mengetahui resiko negatif, kita bisa mencari potensial masalah yang mungkin muncul dalam proyek dan cara menghindarinya sehingga dengan adanya manajemen resiko negatif, suatu proyek seperti memiliki sebuah investasi untuk kedepannya.
  • Resiko Positif merupakan konsep baru, peluang kejadian akan memberikan peluang untuk meningkatkan keberhasilan pencapaian tujuan organisasi (Imam, 2020).
  • Resiko Utility adalah jumlah kepuasan atau kesenangan yang dapat diterima dari hasil mengatasi resiko 

Ada beberapa tahap untuk melakukan Manajemen Resiko Proyek :

1. Plan Manajemen Resiko 
Risk management plan adalah komponen dari project management plan yang menjelaskan bagaimana aktivitas manajemen risiko di atur dan dilaksanakan. Risk management plan adalah sebuah dokumen yang dibuat oleh project manager untuk meramalkan risiko, melakukan estimasi dari dampak risiko, dan mendefinisikan respon yang akan dilakukan untuk menangani risiko tersebut (Trilestari, Adelia Ayu, 2018).

Rencana manajemen risiko terdiri dari: 

Metodologi Mendefinisikan pendekatan, alat, dan sumber data yang  digunakan untuk melakukan manajemen risiko dalam proyek 

Peran dan Tanggung Jawab Mendefinisikan pemimpin, dukungan, dan tim manajemen risiko untuk setiap aktivitas  dalam rencana manajemen risiko dan labih mendetailkan tanggung jawabnya.

Perencaan Biaya Perkirakan biaya yang terkait dengan pelaksanaan manajemen risiko. 

Timing (Perencanaan Waktu) Mendefinisikan kapan dan seberapa sering proses manajemen risiko harus dilakukan selama siklus hidup proyek. 

Kategori risiko Mengklasifikasikan kemungkinan penyebab dari risiko yang terjadi. Di sinilah pendekatan Risk Breakdown Structure (RBS) berguna. RBS  membantu  mengidentifikasi potensi risiko  dari berbagai sumber daya yang tersedia. 

Definisi Probabilitas Risiko dan Dampaknya Mendefinisikan probabilitas risiko yang terjadi dalam proyek dan tingkat yang tepat dari  dampak yang dihasilkan. Misalnya, jika biaya proyek lebih dari 40% lebih tinggi dari yang direncanakan, atau jika keluaran proyek tidak tersedia, risiko dapat berdampak signifikan. 

Probability and Impact Matrix Matriks ini merupakan kisi-kisi yang menunjukkan kemungkinan setiap risiko dan dampaknya jika  risiko tersebut terjadi. Risiko  diprioritaskan berdasarkan besarnya dampak yang telah terjadi. 

Revised Stakeholder Tolerance Toleransi pemangku kepentingan untuk risiko yang mungkin berubah juga harus dimasukkan dalam rencana manajemen risiko. 

Format Laporan Format laporan mendefinisikan bagaimana hasil dari proses manajemen risiko  didokumentasikan, dianalisis dan dikomunikasikan. Bagian ini menjelaskan isi dan format  register risiko dan laporan risiko lainnya. 

Tracking Daftar bagaimana aktivitas risiko disimpan  dan  proses manajemen risiko diaudit untuk kepentingan proyek.

2. Identifikasi Risiko
Sebuah proses untuk mengetahui apa saja yang menghambat atau mendukung proyek

Tool yang digunakan : 

- Brainstroming 
Menurut Kurniawan, Andre (2021)  Brainstorming adalah metode yang sangat umum untuk menemukan ide-ide baru, yang didasarkan pada spontanitas dan kreativitas. Konsep dasar dari brainstorming adalah melatih otak manusia untuk memicu munculnya ide dan kemudian meletakkan ide-ide tersebut di atas kertas.

- Teknik Delphi 
Teknik Delphi dilakukan dalam upaya memperoleh pandangan atau pendapat  yang  terkuat untuk mencari solusi potensial terhadap persoalan pokok satu kebijakan dari para ahli terhadap satu permasalahan yang sama. Proses Delphi menekankan serangkaian  iterasi (pengulangan) dalam pengumpulan informasi untuk mendapatkan umpan balik dari para peserta Delphi.

- Interviewing 
Teknik untuk mencari fakta dengan cara mengumpulkan informasi face to face, by phone, atau diskusi 

- SWOT
SWOT adalah singkatan dari Strengths (kekuatan), Weaknesses (kelemahan), Opportunities (peluang), dan Threats (ancaman). Analisis SWOT mengatur kekuatan, kelemahan, peluang, dan ancaman utama Anda ke dalam daftar yang terorganisir dan biasanya disajikan dalam bilah kisi-kisi yang sederhana. Strengths (kekuatan) dan Weaknesses (kelemahan) adalah berasal dari internal perusahaan Anda. hal-hal yang dapat Anda kontrol dan dapat berubah. Contohnya termasuk siapa yang ada di tim Anda, paten dan properti intelektual Anda, dan lokasi Anda.

Opportunities (peluang) dan Threats (ancaman) adalah hal eksternal yang mempengaruhi bisnis atau hal-hal yang terjadi di luar perusahaan Anda pada pasar yang lebih besar. Anda dapat memanfaatkan peluang dan melindungi dari ancaman, tetapi Anda tidak dapat mengubahnya. Contohnya termasuk pesaing, harga bahan baku, dan tren belanja pelanggan. 

3. Analisa Risiko Kualitatif
Menghitung risiko dan impact-nya untuk menentukan prioritas dan besarnya 

Tool dan teknik yang digunakan : 

- Probability/impact matriks

Matriks Probabilitas dan Dampak adalah  alat untuk membantu tim proyek memprioritaskan risiko. Matriks ini membantu mengidentifikasi risiko yang memerlukan perhatian segera. Matriks ini dapat disesuaikan sesuai dengan kebutuhan proyek. Banyak perusahaan memiliki kriteria matriks mereka sendiri yang memungkinkan manajer proyek untuk memodifikasi template. Matriks berbasis standar memungkinkan daftar untuk  digunakan kembali di proyek lain. Matriks Probabilitas dan Dampak menggunakan kombinasi penilaian antara potensi risiko dan dampak untuk memprioritaskan seberapa mudah pengelolaan risiko. Sangat penting untuk memahami prioritas setiap risiko sehingga tim proyek dapat menilai urgensi setiap risiko dengan lebih baik. 

- The Top Ten Risk Item Tracking 

The Top Ten Risk Item Tracking  adalah alat analisis risiko kualitatif yang membantu mengidentifikasi risiko dan mempertahankan kesadaran akan risiko sepanjang umur proyek.

- Expert judgment  
Expert judgment adalah salah satu alat dan teknik yang digunakan dalam perencanaan manajemen risiko untuk menilai masukan dan proses yang bertujuan untuk membuat piagam proyek. Evaluasi ahli dianggap sebagai manfaat organisasi karena memberikan masukan untuk merencanakan dan mengutip proyek-proyek penting. Aktivitas. 

Untuk memastikan rencana  manajemen risiko yang komprehensif, Anda harus mempertimbangkan kelompok atau individu dengan pelatihan atau keahlian khusus di bidang subjek tertentu.

4. Analisa Risiko Kuantitatif 
Sering mengikuti analisis risiko kualitatif, namu keduanya bisa dilakukan bersama-sama

Teknik utama :

- Decision tree analysis 

Decision tree analysis  adalah representasi grafis dari berbagai alternatif solusi yang tersedia untuk memecahkan masalah. Cara mengilustrasikan seringkali terbukti menjadi penentu ketika membuat pilihan. Sebuah Analisis Pohon Keputusan dibuat dengan menjawab sejumlah pertanyaan yang dilanjutkan setelah setiap jawaban afirmatif atau negatif sampai pilihan akhir dapat dibuat. 

- Simulation 

- Sensitivity analysis 

Sensitivity analysis  menentukan bagaimana nilai yang berbeda dari variabel independen mempengaruhi variabel dependen tertentu di bawah serangkaian asumsi tertentu. Dengan kata lain, Sensitivity analysis mempelajari bagaimana berbagai sumber ketidakpastian dalam model matematika berkontribusi pada ketidakpastian model secara keseluruhan. Teknik ini digunakan dalam batas-batas tertentu yang bergantung pada satu atau lebih variabel input. 

5. Monitoring dan Kontrol Risiko 
Melibatkan melaksanakan proses manajemen risiko untuk merespon kejadian resiko 

Output utama pemantauan risiko dan pengendalian adalah : 

- Requested changes 
- Recomended corrective and preventive actions 
- Updates to the risk register risk register, project management plan, and organizational process assets 


 

 




Source : 

https://sis.binus.ac.id/2017/12/18/langkah-langkah-dalam-proses-manajemen-risiko/

https://www.menpan.go.id/site/berita-terkini/risiko-negatif-dan-positif-dalam-manajemen-risiko-spbe

https://www.dictio.id/t/apakah-yang-dimaksud-dengan-perencanaan-manajemen-risiko-atau-risk-management-plan/17309

https://www.merdeka.com/jabar/brainstorming-adalah-metode-pengumpulan-gagasan-ini-manfaatnya-bagi-organisasi-kln.html

Jumat, 10 September 2021

Project Life Cycle (PLC)

Project Life Cycle 

Project life cycle berfungsi untuk menentukan awal dan akhir kegiatan proyek, untuk
mengidentifikasi peluang yang akan dicapai, dan merumuskan apakah suatu proyek harus
dilaksanakan. Siklus hidup proyek umumnya melibatkan beberapa bentuk transfer teknologi atau
desain material yang dibutuhkan, desain implementasi dan pemeliharaan (W.R. Ducan, 1996).


Tahap Project Life Cycle 

  • Inisiasi

Inisiasi Proyek adalah tahap awal inisiasi atau konsep proyek. Pada tahap ini owner harus memilih proses untuk desain dan konstruksi. Ada banyak proses pemilihan, masing-masing memiliki kelebihan dan kekurangan. Proses yang dipilih mempengaruhi pembiayaan, pemilihan anggota tim, dan biaya proyek, kualitas, dan waktu.

  • Planning 

Tahap perencanaan merupakan tahap terpenting yang memakan banyak waktu dan tenaga sesuai dengan ukuran proyek. Konsultan perencana menerjemahkan konsep yang diinginkan oleh pemilik ke dalam gambar dan mengusulkan spesifikasi komponen dan bahan bangunan. 

  • Executing 

Tahap konstruksi atau pelaksanaan biasanya dilakukan bersamaan dengan tahap kontrol. Tahapan ini merupakan tahapan pelaksanaan proyek, mulai dari belanja material, alat, dan tenaga kerja untuk proses konstruksi yang mengacu pada output dari tahap perencanaan. Kontraktor melakukan pekerjaan berdasarkan perencanaan yang disetujui oleh pemilik dan menyediakan saran kepada pemilik dan konsultan jika ada gambar rencana dan jenis bahan / komponen yang tidak sesuai atau tidak tersedia di lapangan. 

  • Closure

Tahap penutupan atau penyelesaian proyek adalah tahap akhir dari sebuah proyek, tahap ini terdiri dari serah terima dan masa pemeliharaan, serah terima umumnya dibagi menjadi dua tahap, yaitu tahap pertama setelah pekerjaan konstruksi selesai dan siap digunakan dan kemudian setelah selesai kegiatan.

 

Metodologi Pengembangan Perangkat Lunak 

      • Metode Waterfall

      Menurut Pressman, R.S. (2002) metode waterfall merupakan model pengembangan sistem informasi yang sistematik dan sekuensial. Metode Waterfall memiliki tahapan-tahapan sebagai berikut :

      • Requirements analysis and definition
      • System and software design
      • Implementation and unit testing
      • Integration and system testing

      Operation and maintenance

      • Metode Agile

      Menurut Muslim, Much Aziz dan Nur Astri Retno (2014) metode agile adalah metodologi pengembangan perangkat lunak yang didasarkan pada prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Langkah-langkah yang digunakan dalam metode agile yaitu perencanaan, implementasi, pengujian (test), dokumentasi, deployment dan pemeliharaan.


      Kesimpulan  

      Project Life Cycle (PLC) merupakan kegiatan untuk menentukan awal dan akhir kegiatan suatu poyek, menentukan peluang yang akan dicapa dan menentukan apakah suatu proyek harus dilaksanakan atau tidak.  PLC memiliki 4 tahap yaitu inisiasi, planning, executing dan closure. 

      Dalam pengembangan perangkat lunak terdapat beberapa meotode antara lain waterfall dan agile.




      source :

      Pressman, R.S. 2002. Rekayasa Perangkat Lunak: Pendekatan
      Praktisi(Buku Dua). Yogyakarta: Penerbit Andi.

      Muslim, Much Aziz, and Nur Astri Retno. "Implementasi Cloud Computing Menggunakan Metode Pengembangan Sistem Agile." Scientific Journal of Informatics 1.1 (2014): 29-37.

      W.R. Ducan, Project Management Institute, four Campus Boulevard, Newtown
      Square, pp. 19073-3299 (1996)

      Analisis dan Design PL

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