Minggu, 12 Maret 2023

Analisis dan Desain PL

 


Sumber : id.pngtree.com
Analisis Perangkat Lunak atau analisis kebutuhan merupakan langkah yang paling awal untuk menentukan rancangan dari perangkat lunak yang akan dihasilkan dan dikembangkan. Perangkat lunak yang sesuai dengan kebutuhan pengguna yang berhasil berdasarkan analisis kebutuhan yang telah dilakukan. Sementara itu, Desain Perangkat Lunak dapat didefinisikan sebagai proses penerapan berbagai macam teknik dan prinsip dengan memiliki tujuan tertentu dalam proses pengembangan perangkat lunak. Desain Perangkat Lunak ini juga  merupakan tahap pertama  dalam proses pengembangan sebuah perangkat lunak. Didalam Analisis dan Desain Perangkat Lunak mencakup juga dua metodologi yang digunakan, yaitu SSAD dan OOAD.

1.  SSAD (Structured Analysis and Desain)

Sumber : pinterest.com

    SSAD merupakan pendekatan terstruktur dengan menggunakan sebuah proses untuk menyelesaikan suatu masalah berdasarkan urutan langkah-langkah perintah secara sistematis, logis, dan tersusun dalam bentuk program yang disertai algoritma yang mudah dipahami. Metode ini mulai diperkenalkan pada tahun 1970 yang merupakan turunan dari pemrograman terstruktur dan bahkan sampai sekarang masih terus dikembangkan dan diperbaiki. Dalam metode ini sangat berpegang pada prinsip; Jika sebuah proses sistem telah selesai dan sesuai dengan langkah yang ada maka proses selanjutnya tidak dapat dilakukan dan akan kembali ke urutan sebelumnya karena metode ini tidak menggunakan proses yang berulang/Looping. Dalam SSAD menggunakan beberapa tools seperti; DFD (Data Flow Diagram), Kamus Data Entity, Relationship Diagra (ERD), serta State Transition Diagram (STD). Selain itu, SSAD juga memiliki Kelebihan dan Kekurangan sebagai, berikut:
  • Kelebihan 
    • Milestone diperlihatkan dengan jelas yang memudahkan dalam memanajemen proyek
    • SSAD merupakan pendekatan visual, sehingga membuat metode ini lebih mudah dimengerti dan dipahami oleh pengguna. 
    • Penggunaan analisis grafis dan tools seperti DFD membuat SSAD menjadi lebih bagus untuk digunakan.
    • SSAD merupakan metode yang banyak diketahui secara umum pada berbagai industri.
    • SSAD telah diterapkan sejak lama sehingga  metode ini sudah layak untuk digunakan.
    • SSAD memungkinkan untuk melakukan validasi antara berbagai kebutuhan.
    • SSAD relatif simple dan mudah dipahami.
  • Kekurangan
    • SSAD berorientasi kepada proses, sehingga mengabaikan kebutuhan non-fungsional.
    • Prinsip dasar SSAD adalah pengembangan dengan sistem non-iterative(waterfall), tetapi kebutuhannya akan berubah disetiap prosesnya.
    • Interaksi antara analisis dan pengguna tidak komprehensif, karena sistem telah didefinisikan dari awal, sehingga tidak adaptif lagi terhadap perubahan yang terjadi.
    • SSAD sulit dalam menghentikan dekomposisi dan membuat nilai dalam sistem.
    • Meskipun menggunakan desain yang logic dan tools DFD, hal tersebut tidak cukup untuk digunakan sebagai perantara komunikasi dengan pengguna, sehingga pengguna sulit untuk melakukan evaluasi.

2. OOAD (Object Oriented Analysis and Desain) 

            OOAD adalah suatu pendekatan berorientasi rekayasa perangkat lunak dari sebuah sistem yang mencakup beberapa objek yang saling berinteraksi dan setiap objek memiliki entitas masing-masing untuk melihat permasalahan dalam sistem. Pendekatan berorientasi merupakan paradigma pemrograman yang lebih utama kepada objek didunia nyata. OOAD mempunyai beberapa tools seperti; Rational Unified Process (RUP), Fusion, STS Development Method 3 (ADM3), Rumbaugh's object Modelling Technique (OMT) dan Object-Oriented sytem Analysis (OOA). OOAD juga memiliki Kelebihan dan Kekurangan sebagai, berikut:
  • Kelebihan
    • OOAD Lebih mudah digunakan dalam pembangunan sistem.
    • Jika dibandingkan dengan SSAD, penggunaan OOAD lebih tinggi dalam hal waktu pengembangan, tingkat organisasi, ketahanan, ketangguhan dan penggunaan kembali kode pemrograman.
    • OOAD memungkinkan adanya standarisasi objek yang akan memudahkan dalam memahami desain dan mengurangi resiko pelaksanaan proyek.
    • Memungkinkan adanya perubahan dan perkembangan terhadap kepercayaan diri yang tinggi terhadap kebenaran software yang membantu untuk mengurangi resiko pada pembangunan sistem yang kompleks.
    • Analis dan programmer tidak dibatasi dengan batasan implementasi sistem.
    • Tidak adanya jarak antara fase desain dan analisis.
  • Kekurangan 
    • OOAD berfokus pada coding.
    • OOAD tidak menekankan pada kinerja team.
    • Desain OOAD pada sistem akan sangat simple.
    • OOAD tidak mudah dalam mendefinisikan class dan objek yang akan dibutuhkan sistem.
    • Dalam pemrograman OOAD lebih sering digunakan untuk melakukan analisis terhadap metode fungsional sistem padahal dalam OOAD tidak menerapkan metode tersebut.
    • OOAD adalah jenis sistem manajemen yang baru dengan menggunakan metode yang berbeda dengan metode analisis terstruktur, yang akan mengakibatkan team developer akan butuh waktu yang sangat lama untuk menyesuaikan pada sistem OOAD.

Pendekatan Terstruktur VS Pendekatan Objek
Pendekatan Terstruktur, Dekomposisi penyelesaian masalah dengan menerapkan fungsi/proses secara hirarki, mulai dari konteks sampai proses paling kecil. 

Pendekatan Objek, Dekomposisi penyelesaian masalah yang dilakukan sesuai dengan objek-objek yang sudah ada dalam sistem. 

Informasi Tambahan Materi YouTube


1. Mengenal DFD 

      DFD merupakan salah satu jenis diagram pemodelan yang sering digunakan pada saat membangun sebuah sistem informasi. DFD merupakan sebuah diagram yang digunakan untuk menggambarkan aliran data pada satu atau beberapa proses yang ada pada sebuah sistem. DFD sering digunakan pada dua fase, yaitu analisis dan fase perancangan. 
  DFD digunakan Ketika menggunakan perancangan terstruktur atau pendekatan terstruktur. Sedangkan, jika menggunakan pendekatan berorientasi objek disarankan untuk menggunakan diagram yang tercakup didalam UML. 
      DFD dapat digunakan untuk memodelkan sistem yang sedang berjalan saat ini maupun sistem yang akan dikembangkan selanjutnya berfokus pada pergerakan data diantara external entity proses dan Proses dengan datastore. Maka dari itu, DFD menerapkan sistem dekomposisi proses. Dekomposisi proses adalah sebuah mekanisme mendetailkan dari sebuah suatu level yang dimulai dari level yang ke 0 atau yang terendah atau paling dasar kemudian berkembang ke level 1, level 2 sampai seterusnya untuk proses yang lebih detail. Berikut beberapa elemen-elemen DFD sebagai berikut:
  1. Terminator atau External Entity berbentuk persegi panjang (), Terminator merupakan pihak-pihak yang berinteraksi dengan sistem berupa orang maupun sistem lain, dan Terminator tidak dapat memproses langsung data serta keterangan yang ada di dalam sebuah Terminator harus dituliskan dengan kata benda. 
  2. Data flow dilambangkan dengan garis panah (), yang menggambarkan sebuah aliran data dan bisa menghubungkan antara Terminator, proses maupun storage. 
  3. Proses dilambangkan dengan lingkaran (O), yang menjelaskan mengenai aktivitas sistem dan ditulis dengan kata kerja lalu akan memproses data.
  4. Storage dilambangkan dengan dua garis seperti simbol sama dengan (=) dan digunakan sebagai tempat penyimpanan data. Ketika ada panah masuk ke dalam storage tersebut atau data flow in artinya data akan diubah. Sedangkan ketika ada panah ke atas keluar berarti dataflow Storage didalam data akan dibaca. 
Contoh:
Level 0


Level 1




2. Entity Relationship Diagram (ERD) dan Perancangan ERD

      ERD adalah suatu model untuk menjelaskan hubungan antara data dalam basis data berdasarkan objek-objek dasar data yang saling berhubungan. ERD juga merupakan teknik yang digunakan untuk memodelkan kebutuhan data dari suatu sistem, hal ini biasanya ditangani oleh System Analys pada tahapan analisis persyaratan pengembangan sistem.
        Entitas/Entity merupakan sebuah benda/objek yang yang nyata dan dapat dibedakan dengan objek lainnya. Entitas memiliki Atribut yang dapat menjelaskan karakter dari objek sebuah entitas. Entitas terbagi menjadi 2 yaitu:
  1. Entitas Kuat (Strong Entity), entitas yang tidak memiliki ketergantungan terhadap entitas lain.       
  2. Entitas Lemah (Weak Entity), entitas yang keberadaannya bergantung dengan entitas lain. 
Sementara itu Apa yang dimaksud dengan atribut? 
Atribut adalah karakteristik yang menyediakan secara detail mengenai entity/relationship sehingga dapat dibedakan dengan yang lain. Contoh; sebuah entitas hotel yang memiliki atribut didalamnya seperti lobby, kamar, ballroom, kolam renang dll. Atribut juga memiliki beberapa jenis, yaitu:
    • Simple Atribut (atribut sederhana) adalah atribut yang tidak dapat dibagi dan menjadi atribut dasar. Contoh, pada sebuah entitas barang memiliki harga dan ukuran. Harga dan ukuran itulah yang termasuk atribut dari entitas barang.
    • Composite Atribut, merupakan atribut yang terdiri dari beberapa atribut yang lebih mendasar. Contoh, terdapat entitas staff dengan atribut nama. Didalam atribut namalah  terdapat Nama depan, Nama tengah, dan Nama belakang yang merupakan pecahan lebih dasar dari atribut nama.
    • Single Values Atribut, merupakan atribut yang memiliki nilai/value tunggal. Contoh, sebuah atribut Rumah memiliki nomor A105. 
    • Multivalues Atribut, merupakan atribut yang memiliki nilai lebih dari satu. Contoh, seorang aktor yang tidak hanya bisa akting saja tetapi juga bisa memasak, menyanyi dan menari.
    • Mandatory Atribut, merupakan Atribut yang haris diisi dan nilainya tidak boleh kosong dan biasanya atribut ini merupakan atribut kunci dalam suatu entitas. Contoh, setiap mahasiswa harus memiliki NIM atau Setiap barang yang ingin dijual harus memiliki harga.
    • Derived Atribut, merupakan atribut yang akan menghasilkan atribut lainnya atau bisa disebut atribut turunan. Contoh, disebuah perpustakan mahasiswa dapat meminjam buku dengan waktu yang sudah ditentukan kapan meminjam dan kapan harus mengembalikan, jangka waktu itulah yang menjadi atribut turunan.
3. Kamus Data

       Kamus Data adalah hasil referensi mendata yang telah disusun analis dan dijadikan panduan untuk melakukan analisis dan perancangan. Kamus Data digunakan untuk menyimpan makna dan asal data, hubungan dengan antar data, format data, dll. Berikut Kebutuhan dari Kamus Data:
  1. Kamus data dapat menghilangkan dan menjaga dari redundansi data yang membingungkan atau ambiguitas.
  2. Kamus Data digunakan untuk memvalidasi diagram aliran data mengenai kelengkapan dan keakuratan.
  3. Kamus Data merupakan titik awal untuk mengembangkan antarmuka dan laporan-laporan.
  4. Kamus Data menentukan muatan data yang disimpan dalam file.
  5. Kamus Data digunakan untuk mengembangkan logika pada proses DFD.
  6. Kamus Data membantu menjaga perancangan programmer agar sinkron ketika digunakan.
  7. Kamus Data menyediaka dokumentasi untuk sistem basis data yang lengkap dalam satu tempat.
 


Kesimpulan
  • Analisis Perangkat Lunak atau analisis kebutuhan merupakan langkah yang paling awal untuk menentukan rancangan dari perangkat lunak yang akan dihasilkan dan dikembangkan.  
  • Desain Perangkat Lunak dapat didefinisikan sebagai proses penerapan berbagai macam teknik dan prinsip dengan memiliki tujuan tertentu dalam proses pengembangan perangkat lunak.
  • Didalam Analisis dan Desain Perangkat Lunak memiliki juga dua metodologi yang digunakan, yaitu SSAD dan OOAD.
  • SSAD merupakan pendekatan terstruktur dengan menggunakan sebuah proses untuk menyelesaikan suatu masalah berdasarkan urutan langkah-langkah perintah secara sistematis, logis, dan tersusun dalam bentuk program yang disertai algoritma yang mudah dipahami.
  • SSAD menggunakan beberapa tools seperti; DFD (Data Flow Diagram), Kamus Data Entity, Relationship Diagra (ERD), serta State Transition Diagram (STD).
  • OOAD adalah suatu pendekatan berorientasi rekayasa perangkat lunak dari sebuah sistem yang mencakup beberapa objek yang saling berinteraksi dan setiap objek memiliki entitas masing-masing untuk melihat permasalahan dalam sistem.
  • Tools dari OOAD yaitu; Rational Unified Process (RUP), Fusion, STS Development Method 3 (ADM3), Rumbaugh's object Modelling Technique (OMT) dan Object-Oriented sytem Analysis (OOA).
  • Pendekatan Terstruktur VS Pendekatan Objek:
    Pendekatan Terstruktur, Dekomposisi penyelesaian masalah dengan menerapkan fungsi/proses secara hirarki, mulai dari konteks sampai proses paling kecil. Sedangkan Pendekatan Objek, Dekomposisi penyelesaian masalah yang dilakukan sesuai dengan objek-objek yang sudah ada dalam sistem. 

Daftar Pustaka:

Minggu, 05 Maret 2023

Rekayasa Kebutuhan

Rekayasa Kebutuhan(Requirement Engineering) adalah proses pembentukan program-program yang customer inginkan dari berjalannya sebuah sistem tersebut. Rekayasa Kebutuhan juga merupakan bagian terpenting yang harus ada dalam kegiatan rekayasa perangkat lunak. Serta memiliki peran yang sangat penting dalam menentukan keberhasilan atau berjalannya suatu proses perangkat lunak. Dalam Rekayasa Kebutuhan ini sangat sangat membantu para ahli perangkat lunak untuk memahami lebih banyak masalah dan cara penyelesaian dari suatu perangkat lunak. Penggunaan pertama dari istilah Requirement Engineering ini pada tahun 1964 dalam buku yang berjudul "Maintenance, Maintainability, and System Requirements Engineering", tetapi tidak digunakan secara umum sampai akhir 1990-an dengan penerbitan IEEE Computer Society pada tahun 1997, serta pembentukan seri konferensi mengenai rekayasa persyaratan ini telah berkembang menjadi Konferensi Teknik Persyaratan InternasionalAdapun tahapan dari sebuah rekayasa kebutuhan antara lain :

  1. RE elicitation, menganalisa kebutuhan-kebutuhan dari customer terkait proyek yang akan dibuat.
  2. RE analysis, suatu kebutuhan yang telah terpenuhi dan sesuai standar pada tahapan RE Elicitatio untuk menjadi produk software yang sudah layak untuk diproduksi.
  3. RE documentation, hasil dokumentasi dari proses-proses rekayasa kebutuhan agar dapat dijadikan sebuah hasil dari dasar pengembangan software secara detail yang mencakup seperti tim proyek, jadwal proyek, proses promosi, progress proyek, gambaran sebuah proyek.
  4. RE verification dan validation, analisis dari beberapa orang mengenai proses gathering requirement dan terdokumentasi dengan baik.



sumber : greskit.com

Software Requirement merupakan kebutuhan dan kendala yang telah diletakkan pada produk perangkat lunak dan memberikan kontribusi kepada beberapa masalah yang ada didunia nyata. Menurut IEEE Software Requirement adalah kondisi atau kemampuan yang dibutuhkan oleh pengguna untuk memecahkan masalah agar tercapainya suatu tujuan yang harus terpenuhi dan dimiliki oleh suatu sistem atau komponen sistem untuk memenuhi spesifikasi standar kontrak dan dokumen lain yang diberlakukan secara resmi. Serta Software Engineering akan membuat model analisis untuk memberikan informasi mengenai perangkat lunak seperti apa saja yang memenuhi persyaratan dalam perangkat lunak. Dan model tersebut berfungsi untuk mengetahui kendala yang ada dalam perangkat lunak tersebut. Dalam Software Requirement memiliki beberapa tahap yaitu:

  • User Requirement, memiliki statement dalam bentuk apapun mengenai layanan dari sistem yang diproduksi dan mengetahui batasan operasionalnya. Contoh; sebuah instansi mampu memanajemen semua laporan mengenai seluruh informasi setiap bulannya.
  • System Requirement, informasi secara detail mengenai fungsional, layanan, dan batasan operasional dari sebuah sistem secara otomatis. Contoh; adanya proses dari suatu sistem dari sebuah klinik untuk memproses seluruh laporan secara mendalam mengenai nama dan harga obat, jumlah resep yang telah dibuat, dosis setiap obat yang diberikan kepasien,  jumlah pasien serta jam operasional.
  • Fuctional Requierement, suatu sistem yang diterapkan mengenai pengembangan untuk mencapai tujuan pengguna serta mendefinisika sebuah perilaku sistem dasar dalam kondisi tertentu. Contoh; pemesanan barang disebuah e-commers dengan mencantumkan email dan nomor telepon agar dapat terverifikasi dan memudahkan setiap kali ada berubahan/pembatalan dalam pemesanan barang tersebut.
  • Non-functional requirements, serangkaian spesifikasi yang mampu menggambarkan kemampuan dan berbagai kendala sebuah operasi sistem dan upaya untuk meningkatkan fungsionalitasnya. Contoh; kecepatan pada saat pengeditan vidio untuk mengubah vidio 1 dengan vidio selanjutnya dalam waktu 0,3 detik sampai perpindahan vidio berikutnya tetapi tetap mempertahankan kejernihan dan tampilan dari vidio yang telah diedit.

Analisis Kebutuhan, pada tahap ini seorang engginer perangkat lunak bekerja sama dengan customer untuk memahami dan smengevaluasi seluruh domain sistem serta layanan yang harus dimiliki dan diberikan, agar dapat menentukan kinerja sistem, batasan sistem, dan lain-lainnya. Dalam hal ini ada beberapa tahap yang diperlukan seperti; 

    • Identifikasi kebutuhan, adanya interaksi untuk mengidentifikasi adanya kebutuhan dari masing-masing sistem.
    • Klasifikasi dan penataan kebutuhan, mengidentifikasi semua kebutuhan sesuai keterkaitannya sesuai pengelompokan kebutuhannya.
    • Prioritas kebutuhan, mengutamakan adanya keterkaitan/solusi antara sistem.
    • Spesifikasi kebutuhan, menghasilkan sebuah dokumen secara formal maupun informal.

Kesimpulan:

  1. Rekayasa Kebutuhan(Requirement Engineering) adalah proses pembentukan program-program yang customer inginkan dari berjalannya sebuah sistem tersebut.
  2. Beberapa tahapan dari sebuah rekayasa kebutuhan seperti; RE elicitation, RE analysis, RE documentation dan RE verification dan validation.
  3. Software Requirement merupakan kebutuhan dan kendala yang telah diletakkan pada produk perangkat lunak dan memberikan kontribusi kepada beberapa masalah yang ada didunia nyata.
  4. Sebuah Software Engineering akan membuat model analisis untuk memberikan informasi mengenai perangkat lunak seperti apa saja yang memenuhi persyaratan dalam perangkat lunak serta model tersebut berfungsi untuk mengetahui kendala yang ada dalam perangkat lunak tersebut.
  5. Software Requirement memiliki beberapa tahapan seperti; User Requirement, System RequirementFuctional Requierement dan Non-functional requirements.
  6. Dalam analisis kebutuhan ada hal yang harus diperlukan seperti; 
    • Identifikasi kebutuhan, adanya interaksi untuk mengidentifikasi adanya kebutuhan dari masing-masing sistem.
    • Klasifikasi dan penataan kebutuhan,, mengidentifikasi semua kebutuhan sesuai keterkaitannya sesuai pengelompokan kebutuhannya.
    • Prioritas kebutuhan, mengutamakan adanya keterkaitan/solusi antara sistem.
    • Spesifikasi kebutuhan, menghasilkan sebuah dokumen secara formal maupun informal.

Daftar Pustaka:

  1. Non-functional Requirements: Examples, Types, Approaches | AltexSofthttps://www.altexsoft.com/blog/non-functional-requirements/.
  2. Software requirements - Wikipediahttps://en.wikipedia.org/wiki/Software_requirements.
  3. SoftwareRequirements (tutorialspoint.com)https://www.tutorialspoint.com/software_engineering/software_requirements.htm.
  4. Requirements Analysis in Software Engineering - Computer Notes (ecomputernotes.com)https://ecomputernotes.com/software-engineering/requirementsanalysis.
  5. Bab3RekayasaKebutuhan(unikom.ac.id)https://repository.unikom.ac.id/48155/1/Bab%203%20-%20Rekayasa%20Kebutuhan.pdf.
  6. mengenal rekayasa kebutuhan (greskit.com)http://greskit.com/2021/09/22/mengenal-rekayasa-kebutuhan/.

Sabtu, 25 Februari 2023

Siklus Pengembangan Perangkat Lunak atau Software Development Life Cycle (SDLC)

 

sumber : roberthalf.co
   Software Development (Pengembangan PL), adalah suatu struktur yang memiliki tujuan untuk memenuhi kebutuhan pengguna yang telah dibuat dan dikembangkan melalui tahap demi tahap sehingga menjadi suatu produk perangkat lunak. Software development disesuaikan dengan adanya kebutuhan pengembangan produk atau tampilan aplikasi yang sesuai dengan permintaan klien. 
    Software Development life cycle (SDLC) merupakan proses yang dilakukan untuk membuat perangkat lunak dengan mementingkan kualitas tertinggi dan biaya yang murah dengan waktu singkat. SDLC berguna untuk mengembangkan suatu software dengan proses pengubahan dan pembuatan sistem, model, serta metodelogi yang digunakan. Dilihat dari fungsinya SDLC berupakan gambaran terbaik bagi suatu tim untuk mengembangkan dan menjalankan program/sistem secara teratur dan bersusun tanpa adanya proses pengulangan. Dikutip dari Exoft SDLC juga memiliki manfaat sebagai berikut:
    • Dapat mengontrol manajemen yang baik terhadap seluruh proyek yang dilakukan
    • Tranparansi dan visibilitas
    • Memiliki persyaratan dan mengelolaan yang jelas
    • Hasil sudah dapat diprediksi
    • Mempunyai visi dan misi yang sama terhadap pihak lain yang terlibat

Lalu, bagaimana cara kerja/proses SDLC? Berikut beberapa prosesnya, seperti:
  1. Analisis dan definisi kebutuhanberfungsi untuk merencanakan rancangan pembuatan software atau aplikasi. Mulai dari perencanaan alokasi sumber daya, biaya, waktu pengerjaan, kebutuhan tim, dan lain-lainnya. Yang terpenting harus memahami tentang software yang akan dirancang.
  2. Perancangan sistemPada tahap ini, pengembang akan merancang seluruh sistem dan alur algoritma dengan baik. Tidak hanya itu dalam proses ini, pembuatan desain awal tampilan baik itu warna, huruf, maupun desain-desain lainnya sangat diperhatikan agar dapat diimplementasikan dengan sempurna. Bahkan dalam memilih teknologi dan framework, seperti kecepatan, fitur, dan sistem operasi merupakan termasuk dalam proses ini. 
  3. Implementasi dan pengujian unitDalam tahap ini masuk pada penulisan kode dengan menggunakan bahasa pemrograman tertentu. Seperti dalam pembuatan website akan menggunakan bahasa pemrograman seperti C++, HTML, dan JavaScript.
  4. Integrasi dan penguji sistem, pada tahap pengujian atau testing ini dijalankannya program yang telah di buat untuk mengecek adanya berbagai kesalahan seperti bug, error ataupun permasalahan lain yang dapat muncul dari software tersebut.
  5. Penyebaran sistem, dalam proses ini software atau perangkat lunak telah berhasil dibuat dan sudah siap untuk diserahkan kepada klien. 
  6. Opersi dan pemeliharaanPada tahap ini dapat dilakukannya penambahan/pembaharuan fitur serta pemeliharaan pada suatu produk perangkat lunak apabila adanya perubahan-perubahan yang disebabkan oleh perkembangan fungsional.
Tidak hanya itu dalam proses pengembangan software, terdapat beberapa model SDLC yang sering digunakan, diantaranya:
  • Waterfall
    

        Model waterfall/berurutan ini banyak digunakan dalam proses pengembangan perangkat lunak yang telah terbagi menjadi fase dan hasilnya sudah ditentukan sebelumnya. Model ini merupakan model yang sangat dapat dimengerti dan mudah diterapkan. Waterfall berarti air terjun, seperti itulah konsep dasar dalam model ini, semua tahapan harus diproses satu per satu dalam urutan yang telah disusun. Tetapi model ini hanya dapat digunakan untuk proyek berskala kecil dengan hasil yang sudah jelas. Berikut beberapa kelebihan dari Waterfall model:
    • Sistem rangkaian yang jelas
    • Hasil dokumentasi baik
    • Memakan sedikit biaya
    • Dapat memproses secara satu persatu
    • Mudah dalam menentuhan hasil dari suatu sistem

  • Agile
sumber : harver.com

        Model Agile, merupakan pengembangan software dengan proses yang simple namun dapat menghasilkan produk akhir yang berkualitas tinggi. Model ini akan menggunakan urutan kerja sedikit demi sedikit secara teratur dan berulang.Tujuan dari Agile sendiri, yaitu: 
    • High-value & working app system
    • Iterative, Incremental, Evolution
    • Cost control & value
    • High-quality product
    • Flexibel & risk management
Model SDLC ini membutuhkan tim pengembang yang dapat beradaptasi dengan cepat terhadap perubahan dan cocok untuk pengembangan proyek berskala besar. Beberapa kelebihan dari model ini seperti:
    • Membutuhkan waktu yang cepat dan tidak memerlukan resources yang begitu besar dalam proses pengembangannya
    • Klien dapat memberikan tanggapan/feedback kepada tim dalam proses pembuatan program
    • Apapun permasalahan/perubahan yang terjadi dapat ditangani dengan cepat

  • Big bang

            Model Big Bang adalah model yang  tidak mengikuti proses tertentu. Pengembangannya hanya dilakukan dengan upaya Biasanya Model digunakan untuk pengembangan perangkat lunak berskala kecil seperti model waterfall. Kelebihan dari model ini, yaitu:
    • Merupakan model yang sangat sederhana
    • hanya memerlukan sedikit perencanaan
    • memberikan fleksibilitas kepada developer
    • sangat mudah dikelola dan sedikit tenaga yang diperlukan

Kesimpulan: 
  • Software Development life cycle (SDLC) merupakan proses yang dilakukan untuk membuat perangkat lunak dengan mementingkan kualitas tertinggi dan biaya yang murah dengan waktu singkat.
  • SDLC berguna untuk mengembangkan suatu software dengan proses pengubahan dan pembuatan sistem, model, serta metodelogi yang digunakan.
  • Proses SDLC seperti; Analisis, Perancangan sistem, Impelentasi, Pengujian sistem, Penyebaran sistem dan pemeliharaan.
  • Manfaat SDLC(dapat mengontrol manajemen dengan baik, tranparan serta memiliki persyaratan yang jelas).
  • Model-model dari SDLC, yaitu; Waterfall, Prototype, Rapid Application Development(RAD), Agile, Big bang, Iteratif, Spiral, V-Shaped, Incremental serta Interactive.

Daftar Pustaka:






Sabtu, 18 Februari 2023

Konsep Rekayasa Perangkat Lunak

 


Menurut IEEE(1993) Perangkat Lunak adalah program komputer, prosedur, aturan, dokumentasi yang berkaitan, serta data yang saling berhubungan dalam satu sistem komputer. 

Apa Rekayasa Perangkat Lunak(Software Engineering)?

Roger R. Pressman mengatakan bahwa, Rekayasa Perangkat Lunak (RPL) adalah perubahan perangkat lunak itu sendiri guna mengembangkan, memelihara dan membangun kembali prinsip rekayasa untuk menghasilkan perangkat lunak yang dapat bekerja lebih efisien dan efektif bagi pengguna.

Rekayasa Perangkat Lunak memiliki konsep dasar yang menjadi poin penting, yaitu sebagai berikut:

  1. Rekayasa Perangkat Lunak memiliki penerapan pendekatan yang sistematis, disiplin dan dapat diukur berdasarkan pengembangan, penilaian, implementasi, pengujian , operasi,  pemeliharaan perangkat lunak serta rekayasa ulang perangkat lunak tersebut.
  2. Rekayasa Perangkat Lunak dapat berkaitan dengan semua aspek produksi perangkat lunak dari tahapan awal spesifikasi sistem hingga pemeliharaan sistem ketikan mulai digunakan.
  3. Rekayasa Perangkat Lunak diperlukan dalam pengembangan Perangkat Lunak skala besar maupun kecil, sehingga didalam pengembangan tersebut memerlukan sebuah tim yang baik dengan menerapkan teknik-teknik rekayasa agar pengembangan dapat berjalan sesuai rencana.
  4. Rekayasa Perangkat Lunak memiliki teknik-teknik yang harus diterapkan pada pengembangan Perangkat Lunak yaitu meliputi; Spesifikasi, Pengembangan, Validasi dan Evolusi.

Secara khusus, tujuan Rekayasa Perangkat lunak adalah biaya produksi dan perawatan perangkat lunak yang lebih rendah, menghasilkan perangkat lunak yang mampu bekerja pada semua jenis platform dengan baik, menciptakan user friendly yang memiliki tampilan menarik, mendapatkan 
kegiatan yang sistematis termasuk biaya, adanya perawatan/maintenance pada perangkat lunak tersebut, dan kualitas pekerjaan, serta mampu menghasilkan perangkat lunak yang kinerjanya handal dan tepat waktu. Rekayasa Perangkat Lunak atau RPL ini bisa diterapkan dalam kehidupan sehari-hari maupun dalam sebuah perusahaan, seperti pembuatan aplikasi yang mampu menghitung berapa banya orang yang berjalan kaki, menggunakan kendaraan pribadi, dan menggunaka kendaraan umum, serta aplikasi yang dapat menyimpan data/gambar langsung ke drive pribadi.

Dalam pengembangan Rekayasa Perangkat Lunak mencakup beberapa hal penting, sebagai berikut:

  1. Proses, step by step yang dilakukan dari semua aspek teknis yang dibutuhkan untuk pengembangan perangkat lunak dari awal(spesifikasi) sampai tahapan akhir(evolusi).
  2. Produk, suatu hasil Perangkat Lunak yang sudah dikembangkan secara optimal dan sudah siap digunakan oleh pengguna.
  3. Manajemen, melakukan pengelolaan kerika membangun Perangkat Lunak dan mencakup juga beberapa point penting yang perlu diperhatikan seperti; resourch, time, budget, human, supplier, risk, dan lain-lainnya.
Pada serangkaian proses perangkat lunak terdapat kegiatan-kegiatan yang relevan dalam menghasilakan sebuah perangkat lunak yaitu:
  • Mulai dari tahap Spesifikasi, perangkat lunak membuat fungsionalitasnya dengan batasan-batasan tertentu.
  •  Pengembangan, memberikan panduan agar pengembangan berhasil dijalankan dengan mengikuti model prosesnya berdasarkan metode-metode seperti;
    • Metode SDLC(System Development Life Circle), 
      • Analisis dan definisi kebutuhan,
      • Perancangan sistem,
      • Implementasi dan pengujian unit,
      • Integrasi dan penguji sistem,
      • Penyebaran sistem serta 
      • Opersi dan pemeliharaan.
sumber: atories.com
    • Metode Prototyping, tahapan pengembangan yang dilakukan berdasarkan identifikasi kebutuhan pemakai dan pengembang pengguna, berikut tahapannya:
      • Pengumpulan kebutuhan,
      • Quick desain,
      • Pembangunan prototype,
      • Evaluasi pelanggan(user).
    • Metodelogi (waterfall), melakukan pendekatan secara sistematis dan berurutan makanya disebut waterfall karena harus menyelesaikan tahapan sebelumnya agar bisa lanjut ketahapan berikutnya.

sumber : airbrake
  • Validasi yaitu perangkat lunak tersebut harus dapat memenuhi semua keinginan pengguna dengan sesuai dan semestinya. Meskipun kemungkinan adanya terjadi ketidak sesuaian dengan keinginan pengguna tetapi inilah gunanya tahapan validasi agar semua diusahakan dapat berjalan dengan sesuai.
  • Sampai tahap terakhir Evolusi, pada tahap ini perangkat lunak dapat berkembang dan berjalan dengan baik agar memenuhi semua kebutuhan pengguna.
Sementara itu Apa Perbedaan Software Engineering (RPL) dan Software Development (Pengembangan PL)?
Pastinya terdapat banyak perbedaan dari 2 hal ini. Software Engineering (Rekayasa Perangkat Lunak) suatu proses yang lebih berfokus pada merancang, menguji, dan memelihara infrastruktur Perangkat Lunak yang memiliki skala besar didalam sistem agar  kontrol sehingga membutuhkan sebuah tim. Sedangkan Software Development (Perkembangan PL)  hanya berfokus pada satu hal berskala kecil sehingga hanya memerlukan 1 orang saja cukup untuk menghandle suatu perangkat lunak. Maka dari itulah Software Enginering (RPL) ≠ Software Development (Pengembangan PL)

Menurut ACM/ICEE-CS terdapat 8 prinsip profesional Software Engineering yang perlu dimiliki dan diterapkan, yaitu:
  1. Public (Masyarakat), seorang Software Engineer harus bertindak konsisten dengan mengepentingkan kepentingan masyarakat.
  2. Client and Employer, seorang Software Engineer harus melakukan yang terbaik bagi klien dan atasan mereka serta tetap konsisten terhadap kepentingan masyarakat.
  3. Product (Produk), seorang Software Engineer haru smenjamin bahwa produk yang mereka buat dan modifikasi memenuhi standar profesional setinggi-tingginya.
  4. Judgement (penilaian), seorang Software Engineer harus mempertahankan/menjaga integritas dan independensi penilaian profesional mereka.
  5. Management (Manajemen), manejer dan PL harus bisa mengikuti dan mempromosikan pendekatan etis untuk manajemen sebuah pengembangan PL dan pemeliharaannya.
  6. Profession (Profesi), seorang Software Engineer harus mengepentingkan integritas dan reputasi profesi yang konsisten terhadap kepentingan masyarakat.
  7. Collegues (Kolega), seorang Software Engineer harus bersikap adil dan mendukung kolega/rekan kerja mereka.
  8. Self (Diri sendiri), seorang Software Engineer harus berpartisipasi dalam pembelajaran seumur hidup menegnai paraktek profesi mereka dan harus mempromosikan pendekatan etika terhadap praktek profesi tersebut.

Kesimpulan:
  • Perangkat Lunak adalah program komputer, prosedur, aturan, dokumentasi yang berkaitan, serta data yang saling berhubungan dalam satu sistem komputer. 
  • Roger R. Pressman mengatakan bahwa, Rekayasa Perangkat Lunak (RPL) adalah perubahan perangkat lunak itu sendiri guna mengembangkan, memelihara dan membangun kembali prinsip rekayasa untuk menghasilkan perangkat lunak yang dapat bekerja lebih efisien dan efektif bagi pengguna.
  • Tujuan Rekayasa Perangkat lunak adalah biaya produksi dan perawatan perangkat lunak yang lebih rendah, menghasilkan perangkat lunak yang mampu bekerja pada semua jenis platform dengan baik, dan kualitas pekerjaan, serta mampu menghasilkan perangkat lunak yang kinerjanya handal dan tepat waktu.
  • 3 Hal yang mencakup kedalam pengembangan RPL, yaitu Proses, Produk dan Manajemen.
  • Rangkaian yang meliputi proses perangkaian Perangkat Lunak, yaitu Spesifikasi, Pengembangan, Validasi dan Evolusi.
  • Penjelasan nyata bahwa Software Enginering (RPL) ≠ Software Development (Pengembangan PL)
  •  8 prinsip profesional Software Engineering , yaitu Public, Client, Product, Judgement, Management, Profession, Collagues dan Self.

Daftar Pustaka:

Senin, 13 Februari 2023

Mengenal Perangkat Lunak

 

  •  Apa itu software/perangkat lunak?

    Perangkat lunak (Software) merupakan suatu program inti yang ada dalam komputer sebagai jembatan antara pengguna dengan perangkat keras (hardware). Sehingga komputer tidak dapat berjalan tanpa adanya sortware didalamnya. Software juga dapat didefinisikan sebagai sebuah aplikasi yang disusun dari sekumpulan kode-kode bahasa pemrograman seperti pascal, phyton, c++, html, Java dan masih banyak lagi bahasa pemrograman lainnya. 

    Atau dapat juga didefinisikan software adalah suatu data yang dikumpulkan dan disimpan dalam satu program yang tak terlihat kemudian terformat secara rapi dan tersusun didalam sebuah komputer, agar memudahkan manusia(sebagai pengguna) untuk mengolah/membuat dokumen, menyimpan file, dan lain-lain.

    Sementara itu, siapakah yang membuat software? Jawabannya adalah tentu saja manusia itu sendiri atau disebut Programmer yang membuatnya dengan menggunakan bahasa-bahasa pemrograman seperti yang telah disebutkan diatas sehingga software tersebut dapat berjalan lancar dan sesuai didalam hardware tersebut. Terdapat beberapa jenis software yaitu; 

  1. Sistem operasi (Microsoft Windows, UNIX, LINUX)
  2. Program aplikasi (Microsoft office, notepad, paint, dll)
  3. Program bantu (Antivirus protection, Clipboard Managers, Storage Device Management, System Monitors dll)
Sedangkan berdasarkan distrubusinya software juga memililiki beberapa jenis yaitu:
  1. Adware (adanya iklan online secara otomatis didalam komputer)
  2. Firmware (hanya dapat dideteksi dengan sistem baca)
  3. Malware (dirancang untuk membuat virus didalam komputer)
  4. Freeware (dapat digunakan oleh siapapun tanpa ada batasan tertentu)
  5. Opensource (bisa mengakses hanya dengan kode)
  6. Shareware (dapat digunakan segaca gratis dengan waktu yang terbatas)
  7. Spyware (memantau aktivitas pengguna komputer)

sumber 1 : https://www.mas-software.com/blog/pengertian-software-dan-jenisnya
sumber 2 : https://www.gramedia.com/literasi/contoh-software/amp

  • Motivasi Mengikuti Perkuliahan DRPL
  1. Merupakan salah satu mata kuliah wajib yang berhubungan dengan semester selanjutnya 
  2. Agar mengetahui lebih detail mengenai berbagai macam software dan hardware
  3. Salah satu dasar yang harus diketahui didalam jurusan informatika

  • Kesimpulan
    Dari materi ini yang dapat saya pahami yaitu mengenai software yang merupakan salah satu program inti yang memiliki peran utama agar dapat berjalannya suatu hardware. Layak nya pertunjukan wayang kulit yang tidak akan bergerak tanpa adanya peran utama dari manusia itu sendiri sebagai penggeraknya. Dan sebenarnya ada ribuan bahasa pemrograman yang dapat kita ketahui tetapi menurut saya yang lebih umum dan biasa digunakan untuk membuat suatu program mungkin C++, html, java dan php. 
    Dimateri ini juga terdapat jenis-jenis software seperti: Sistem operasi, Program aplikasi dan Program bantu. Didalam 3 jenis software sudah mencakup beberapa contoh nyata yang ada didalam hardware seperti: Windows, Microsoft office, Antivirus protection dan lain-lainnya. 

Analisis dan Desain PL

  Sumber :  id.pngtree.com A nalisis Perangkat Lunak atau analisis kebutuhan merupakan langkah yang paling awal untuk menentukan rancangan d...