EAS KPPL E_Alendra Rafif Athaillah_5025221297

 Nama: Alendra Rafif Athaillah

 NRP: 5025221297

 Kelas: KPPL - E


SOAL:

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

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

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

  6. 4. Studi Kasus
  7. 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.

Jawab:

1. FASE ANALISIS DAN DESAIN

  •  Fase Analisis

 Pada fase Analaisis, dilakukan pemahaman dan identifikasi kebutuhan dari pengguna dan pihak lainnya yang berkepentingan. Tujuannya adalah untuk mengumpulkan kebutuhan fungsional dan non-fungsional dari perangkat lunak.

Output:

Output dari fase ini dapat berupa Software Requirement Specification (SRS), yaitu dokumen yang berisi kebutuhan fungsional dan non-fungsional dari perangkat lunak

  • Fase Desain

Berdasarkan Requirement Specification yang sudah ada, kita akan membuat rancangan dari perangkat lunak tersebut dengan tahapan di bawah ini

Aktivitas:

  • Pemilihan Strategi Desain:
    • Memilih pendekatan desain yang sesuai berdasarkan kebutuhan sistem.(Top-Down, Bottom-Up, Hybrid)
  • Desain Arsitektur:
    • memilih arsitektur dan teknologi yang digunakan pada perangkat lunak (DataBase, Framework, dll)
  • Desain Elemen:
    • Mengubah sistem menjadi bentuk modul.
  • Desain Struktur Data:
    • Merancang struktur Data yang digunakan sistem
  • Desain Antarmuka Pengguna (UI/UX):
    • Merancang interaksi antara pengguna dan sistem serta antar komponen sistem.

Output:

  • Dokumen Desain Sistem: Berisi spesifikasi teknis dan arsitektur perangkat lunak.
  • Diagram Desain:
    • Diagram kelas (class diagram).
    • Diagram komponen (component diagram).
    • Diagram alur kerja (sequence diagram atau flowchart).
  • Prototype atau Mockup: Representasi visual antarmuka pengguna.
  • Desain Basis Data: Diagram Entity-Relationship (ERD) dan definisi skema database.

Hubungan dan Dukungan Output:

  • Output dari fase Analisis (seperti SRS) menjadi dasar untuk merancang sistem pada fase Desain.
  • Output dari fase Desain (seperti diagram dan prototipe) digunakan sebagai pedoman untuk membangun perangkat lunak sesuai dengan spesifikasi dan desain yang dibuat.

2.Lima Tahap Utama dalam Model Waterfall

Requirement Analysis:

  • Fungsi: Mengidentifikasi dan mendokumentasikan kebutuhan fungsional dan non-fungsional pada sistem
  • Hasil: Dokumen spesifikasi kebutuhan perangkat lunak.

Design:

  • Fungsi: Membuat desain  sistem berdasarkan spesifikasi kebutuhan. Termasuk desain data, antarmuka, dan algoritma.
  • Hasil: Dokumen desain sistem, diagram ERD, wireframe, dan prototipe.

Implementation :

  • Fungsi: Mengembangkan perangkat lunak berdasarkan dokumen desain. Kode program ditulis, diuji unit, dan diintegrasikan secara bertahap.
  • Hasil: Source Code dari perangkat lunak 
Testing :

        Fungsi: Melakukan pengujian perangkat lunak untuk memastikan semua fungsi bekerja sesuai
        dengan spesifikasi kebutuhan. Jenis pengujian meliputi pengujian unit, integrasi, sistem, dan             penerimaan.

Maintenance
    • Fungsi: Memperbaiki bug yang ditemukan setelah perangkat lunak dirilis, memperbarui perangkat lunak untuk adaptasi teknologi baru, atau menambahkan fitur minor.
    • Hasil: Patch, pembaruan perangkat lunak, atau versi baru perangkat lunak.
Kelebihan dan Kekurangan Metode Waterfall

    Model Waterfall memiliki kelebihan berupa struktur yang jelas, dokumentasi lengkap, dan cocok untuk proyek dengan persyaratan tetap, karena setiap tahap terdefinisi dengan baik. Namun, model ini kurang fleksibel terhadap perubahan, serta berisiko tinggi jika kebutuhan awal tidak akurat, sehingga kurang ideal untuk proyek kompleks atau dinamis.

3. 

Architectural Design

  • Definisi:
    Merupakan tahap perancangan tingkat tinggi yang mendefinisikan struktur utama sistem, termasuk komponen utama, hubungan antar komponen, dan pola arsitektur yang digunakan (misalnya MVC, microservices).
  • Fokus:
    • Menentukan bagaimana sistem dibagi menjadi modul atau subsistem.
    • Memilih teknologi, framework, atau platform yang digunakan.
    • Mengidentifikasi batasan sistem dan interaksi eksternal.
  • Output:
    Dokumen desain arsitektur, seperti diagram komponen, diagram alur data, dan diagram arsitektur sistem.

Detailed Design

  • Definisi:
    Merupakan tahap perancangan tingkat rendah yang memberikan spesifikasi rinci tentang implementasi setiap komponen yang didefinisikan pada tahap arsitektur.
  • Fokus:
    • Detail logika atau algoritma dalam modul.
    • Spesifikasi antarmuka antar modul.
    • Desain basis data, tabel, dan relasi.
    • Perancangan antarmuka pengguna (UI).
  • Output:
    Dokumen desain detail, seperti diagram kelas, flowchart, ERD, dan prototipe antarmuka.
Kedua desain ini saling melengkapi: Architectural Design memastikan struktur sistem yang kuat dan terukur, sementara Detailed Design memastikan semua komponen dirancang secara detail untuk memenuhi kebutuhan sistem. Kombinasi keduanya menghasilkan perangkat lunak yang stabil, efisien, dan sesuai dengan kebutuhan pengguna.

4. 

A. Tahap Analisis Kebutuhan

  • Kegiatan:
    • Mengidentifikasi kebutuhan fungsional:
      • Manajemen produk (CRUD).
      • Keranjang belanja dan pembayaran online
      • Otomasi pengiriman tautan unduhan setelah pembayaran.
      • Pelaporan penjualan dan manajemen pelanggan.
    • Mengidentifikasi kebutuhan non-fungsional:
      • Skalabilitas untuk menangani lonjakan transaksi.
      • Keamanan (enkripsi data, autentikasi pengguna).
      • Performa tinggi dengan waktu respons cepat.
      • Uptime Server dan Perangkat Lunak harus di atas 95%
  • Hasil: Dokumen spesifikasi kebutuhan perangkat lunak (SRS).

B. Tahap Desain

a. Desain Arsitektur

  • Menggunakan pola microservices untuk memungkinkan skalabilitas horizontal. Komponen utama:
    • Service Pengelolaan Produk: Mengelola katalog produk.
    • Service Transaksi: Menangani pembayaran dan pemrosesan pesanan.
    • Service Pengiriman Digital: Mengelola tautan unduhan produk.
    • Service Analytics: Menyediakan laporan penjualan dan analisis pengguna.
  • Infrastruktur berbasis cloud untuk mendukung auto-scaling, seperti AWS atau Google Cloud.
  • Basis data terdistribusi menggunakan NoSQL (mis. MongoDB) untuk produk dan SQL (mis. PostgreSQL atau Oracle) untuk transaksi.

b. Desain UI/UX

  • Membuat antarmuka pengguna yang intuitif sehingga  dapat digunakan dengan mudah

C. Tahap Implementasi

  • Menggunakan framework web modern seperti Laravel
  • Frontend dapat menggunakan React.js untuk interface yang responsif

D. Tahap Pengujian

a. Pengujian Fungsional

  • Memastikan semua fitur bekerja sesuai spesifikasi (manajemen produk, pembayaran, dll.).

b. Pengujian Performa

  • Menggunakan alat seperti Apache JMeter untuk menguji sistem di bawah traffic tinggi

c. Pengujian Keamanan

  • Melakukan penetration testing untuk mengidentifikasi celah keamanan.

d. Pengujian Pengguna

  • Melibatkan pengguna akhir untuk memberikan feedback tentang antarmuka dan pengalaman pengguna.

E. Tahap Pemeliharaan

  • Melakukan pembaruan berkala untuk meningkatkan fitur dan memperbaiki bug.
  • Skalabilitas dapat ditingkatkan berdasarkan kebutuhan bisnis.
  • membuat update fitur sesuai dengan kebutuhan pengguna dan admin

Mengapa Pendekatan Ini?

  1. Skalabilitas: Penggunaan arsitektur microservices memungkinkan sistem menangani lonjakan transaksi dengan menambah server untuk komponen tertentu.
  2. Efisiensi: Cloud computing mengurangi risiko downtime selama musim transaksi tinggi.




Comments