EAS - KPPL (E) - Farrel Akmalazmi Nugraha - 5025221138

Nama : Farrel Akmalazmi Nugraha

Kelas : KPPL E

NRP : 5025221138

EAS KPPL E


1. Dalam Pengembangan Perangkat Lunak ada fase Analisis dan Desain. 
  •    Terangkan aktivitas yang dilakukan dalam fase Analisis dan Desain
  •    Apa Output dari aktivitas tersebut untuk mendukung pengembangan perangkat lunak.

Fase Analisis:
  • Mengumpulkan kebutuhan pengguna dan pemangku kepentingan.
  • Memahami proses bisnis dan masalah yang ada.
  • Mendefinisikan kebutuhan fungsional dan non-fungsional perangkat lunak.
  • Membuat dokumen spesifikasi kebutuhan perangkat lunak (Software Requirements Specification atau SRS).

Fase Desain:
  1. Merancang arsitektur perangkat lunak untuk memastikan sistem stabil dan memenuhi kebutuhan.
  2. Membuat desain modular, termasuk diagram alur data (Data Flow Diagram) atau diagram UML.
  3. Menentukan desain antarmuka pengguna (User Interface).
  4. Membuat rencana desain basis data.

Output dari aktivitas tersebut:

  • Fase Analisis: Dokumen Spesifikasi Kebutuhan Perangkat Lunak (SRS).
  • Fase Desain: Diagram arsitektur, diagram desain detail (UML, DFD, ERD), dan prototipe antarmuka.

2. Dalam model Waterfall, setiap tahap memiliki fungsi spesifik. Jelaskan lima tahap utama dalam model ini, serta sebutkan kelebihan dan kekurangan dari model tersebut dalam konteks proyek besar yang memiliki persyaratan tetap.

Lima tahap utama dalam model Waterfall:
  • Requirement Analysis: Mengumpulkan dan mendokumentasikan kebutuhan pengguna.
  • System Design: Merancang arsitektur perangkat lunak berdasarkan kebutuhan.
  • Implementation (Coding): Menulis kode untuk membangun perangkat lunak sesuai desain.
  • Testing: Menguji perangkat lunak untuk memastikan bahwa semua fungsi berjalan sesuai kebutuhan.
  • Deployment and Maintenance: Meluncurkan perangkat lunak dan memberikan dukungan teknis.

Kelebihan:
  • Proses yang terstruktur dan mudah dimengerti.
  • Cocok untuk proyek dengan persyaratan tetap.
  • Tahap-tahap yang jelas membantu manajemen proyek.

Kekurangan:
  • Kurang fleksibel terhadap perubahan kebutuhan.
  • Tidak cocok untuk proyek yang kompleks atau dengan tingkat ketidakpastian tinggi.
  • Masalah biasanya ditemukan di tahap akhir, yang membuat perbaikan lebih sulit dan mahal.

3.  Jelaskan perbedaan antara architectural design dan detailed design. Mengapa kedua jenis desain tersebut diperlukan dalam proses pengembangan perangkat lunak?

Architectural Design:
  • Fokus pada struktur tingkat tinggi dari perangkat lunak.
  • Menentukan komponen utama, bagaimana komponen tersebut berinteraksi, dan lingkungan eksekusi.
  • Contoh: Diagram arsitektur, diagram komponen, dan desain sistem berskala besar.

Detailed Design:
  • Fokus pada rincian setiap komponen yang telah didefinisikan dalam arsitektur.
  • Menyediakan deskripsi yang cukup untuk implementasi (coding).
  • Contoh: Diagram kelas, diagram basis data, dan algoritma spesifik.

Mengapa kedua jenis desain diperlukan?
  • Architectural Design membantu memastikan perangkat lunak memiliki struktur yang stabil dan dapat diskalakan.
  • Detailed Design memberikan panduan rinci kepada pengembang sehingga setiap bagian sistem dapat diimplementasikan dengan benar.

4. Studi Kasus
Sebuah perusahaan membutuhkan sistem e-commerce untuk menjual produk digital seperti foto, video, desain poster, ebook. Saat ini transaksi dihandle dengan WhatsApp. Namun seiring dengan perkembangan bisnis tools tersebut tidak mampu menangani lonjakan transaksi. Buatkan sistem / aplikasi yang mampu menangani lonjakan transaksi pada musim tertentu. Jelaskan pendekatan rekayasa perangkat lunak yang akan Anda gunakan untuk merancang, membangun, dan menguji sistem tersebut agar memenuhi kebutuhan klien.

Contoh UI/UX Website ecommerce untuk penjualan ebook yang telah saya buat, disini saya menggunakan Laravel :

Home Page :


Admin Page : 




Cart Page :


Checkout Page :





Fase Pengumpulan Kebutuhan:
  • Mengidentifikasi kebutuhan spesifik perusahaan, termasuk lonjakan transaksi, keamanan, metode pembayaran, dan jenis produk yang dijual.
  • Melibatkan pemangku kepentingan utama untuk memastikan solusi yang sesuai dengan kebutuhan.

Fase Perancangan:
  • Menggunakan pendekatan Microservices Architecture untuk memastikan skalabilitas dan fleksibilitas.
  • Desain basis data NoSQL untuk menangani beban transaksi yang tinggi.
  • Implementasi mekanisme caching untuk mempercepat akses data.

Fase Pembangunan:
  • Memanfaatkan framework seperti Laravel atau Django untuk membangun backend.
  • Penggunaan frontend framework seperti React atau Vue.js untuk tampilan yang dinamis.
  • Mengintegrasikan layanan pembayaran (seperti PayPal atau Stripe).

Fase Pengujian:
  • Melakukan load testing untuk memastikan sistem dapat menangani lonjakan transaksi.
  • Menguji keamanan untuk melindungi data pelanggan.
  • Melakukan pengujian kompatibilitas di berbagai perangkat.

Fase Implementasi dan Pemeliharaan:
  • Meluncurkan sistem secara bertahap.
  • Memberikan dukungan teknis dan pembaruan berkala.

Output: Sistem e-commerce yang skalabel, aman, dan mampu menangani lonjakan transaksi.




Komentar