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...