EAS KPPL E
Nama: Valensio Arvin Putra Setiawan
Kelas: KPPL E
NRP: 5025231273
NRP: 5025231273
- 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.
- 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.
- 3. Jelaskan perbedaan antara architectural design dan detailed design. Mengapa kedua jenis desain tersebut diperlukan dalam proses pengembangan perangkat lunak?
- 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.
Jawaban:
Nomor 1:
Fase Analisis
Aktivitas yang Dilakukan:
-
Identifikasi Kebutuhan Bisnis:
- Memahami mengapa tools seperti WhatsApp tidak lagi memadai.
- Mengidentifikasi kebutuhan utama, seperti kemampuan menangani lonjakan transaksi, kemudahan penggunaan, dan otomatisasi proses transaksi.
-
Pengumpulan Kebutuhan:
- Melibatkan stakeholder untuk mengumpulkan kebutuhan sistem. Contoh kebutuhan:
- Fungsional:
- Pengguna dapat memilih, membeli, dan mengunduh produk digital.
- Sistem mendukung pembayaran online yang aman.
- Otomatisasi pembuatan invoice.
- Non-fungsional:
- Skalabilitas untuk menangani lonjakan transaksi musiman.
- Waktu respon cepat (di bawah 2 detik per transaksi).
- Fungsional:
- Melibatkan stakeholder untuk mengumpulkan kebutuhan sistem. Contoh kebutuhan:
-
Analisis Kebutuhan:
- Memisahkan kebutuhan fungsional dan non-fungsional.
- Membuat prioritas kebutuhan yang harus diimplementasikan terlebih dahulu.
Output Fase Analisis:
- Dokumen Spesifikasi Kebutuhan Perangkat Lunak (SRS):
- Berisi detail kebutuhan pengguna, fungsionalitas sistem, dan batasan teknis.
- Model Kebutuhan:
- Diagram Use Case untuk menunjukkan interaksi pengguna dengan sistem (contoh: memilih produk, melakukan pembayaran, mengunduh file).
Fase Desain
Aktivitas yang Dilakukan:
-
Desain Arsitektur Sistem:
- Memilih arsitektur berbasis layanan seperti microservices untuk mendukung skalabilitas.
- Mengintegrasikan layanan pembayaran, pengelolaan file digital, dan pelacakan transaksi.
-
Desain Antarmuka Pengguna (UI/UX):
- Membuat wireframe antarmuka untuk proses pemilihan produk, pembayaran, dan pengunduhan.
-
Desain Basis Data:
- Merancang basis data relasional atau NoSQL untuk menyimpan informasi produk, transaksi, dan pengguna.
- Memastikan desain mendukung sharding atau replication untuk skalabilitas.
-
Desain Keamanan:
- Menentukan langkah-langkah untuk mengamankan data pengguna dan transaksi, seperti enkripsi pembayaran dan otentikasi multi-faktor.
Output Fase Desain:
- Dokumen Desain Perangkat Lunak (SDD):
- Berisi spesifikasi arsitektur, diagram kelas, dan diagram aktivitas.
- Prototipe Antarmuka Pengguna:
- Representasi awal untuk memvalidasi pengalaman pengguna.
Fase Implementasi
Kaitannya dengan E-commerce:
- Membuat modul untuk transaksi, manajemen produk digital, dan laporan penjualan.
- Mengintegrasikan gateway pembayaran (misalnya: Stripe atau PayPal).
- Menggunakan teknologi seperti Node.js atau Spring Boot untuk layanan backend yang cepat dan efisien.
- Menerapkan CDN (Content Delivery Network) untuk mempercepat pengunduhan file digital.
Fase Pengujian
Aktivitas yang Dilakukan:
-
Pengujian Fungsional:
- Memastikan semua fitur seperti pemilihan produk, pembayaran, dan pengunduhan berjalan sesuai kebutuhan.
-
Pengujian Beban:
- Menguji sistem dalam kondisi lonjakan transaksi (misalnya Black Friday) menggunakan alat seperti JMeter.
-
Pengujian Keamanan:
- Melakukan penetrasi untuk mengidentifikasi potensi celah keamanan.
-
Pengujian Pengguna:
- Memvalidasi pengalaman pengguna dengan sistem e-commerce yang dibangun.
Output Fase Pengujian:
- Laporan pengujian yang mencakup hasil uji fungsional, beban, dan keamanan.
- Daftar perbaikan yang harus dilakukan sebelum peluncuran.
Nomor 2:
Lima Tahap Utama dalam Model Waterfall dan Kaitannya dengan Sistem E-commerce Nomor 4
1. Requirement Analysis (Analisis Kebutuhan):
1. Requirement Analysis (Analisis Kebutuhan):
- Fungsi: Mengumpulkan, menganalisis, dan mendokumentasikan kebutuhan pengguna dan sistem.
- Aktivitas: Mewawancarai pemilik bisnis untuk memahami masalah transaksi melalui WhatsApp, seperti keterbatasan dalam menangani lonjakan transaksi, Menentukan kebutuhan fungsional, seperti fitur katalog produk, pembayaran online, dan sistem pengunduhan file digital, Menentukan kebutuhan non-fungsional, seperti kemampuan menangani 10.000+ transaksi per hari pada musim ramai.
- Output: Dokumen Spesifikasi Kebutuhan Perangkat Lunak (SRS).
- Kaitannya dengan Sistem E-commerce: Dokumen SRS akan menjadi acuan dalam membangun sistem yang mampu menangani masalah utama seperti skalabilitas dan keamanan transaksi.
- Fungsi: Membuat rancangan teknis untuk sistem e-commerce.
- Aktivitas: Merancang arsitektur berbasis microservices untuk mendukung skalabilitas dan kecepatan proses; Mendesain database untuk menyimpan data produk, transaksi, dan pengguna; Membuat prototipe antarmuka pengguna untuk memudahkan pelanggan dalam memilih dan membeli produk digital.
- Output: Dokumen Desain Perangkat Lunak (SDD), termasuk diagram UML dan prototipe UI/UX.
- Kaitannya dengan Sistem E-commerce: Desain ini memastikan sistem dapat menangani kebutuhan perusahaan, termasuk fitur-fitur penting seperti katalog, integrasi pembayaran, dan pengunduhan file.
- Fungsi: Membangun sistem berdasarkan desain yang telah dibuat.
- Aktivitas: Mengembangkan modul seperti katalog produk, pembayaran online, dan sistem otomatisasi invoice; Mengintegrasikan sistem dengan gateway pembayaran seperti Stripe atau PayPal; Menggunakan teknologi modern seperti Node.js untuk backend dan React untuk frontend.
- Output: Sistem e-commerce dalam bentuk perangkat lunak yang dapat diujicobakan.
- Kaitannya dengan Sistem E-commerce: Tahap ini merealisasikan desain sistem menjadi aplikasi yang fungsional untuk menggantikan WhatsApp.
- Fungsi: Memastikan perangkat lunak bekerja sesuai kebutuhan dan bebas dari bug.
- Aktivitas: Pengujian Fungsional: Memastikan fitur seperti pembayaran, pengunduhan file, dan manajemen produk berjalan dengan benar; Pengujian Beban: Menguji sistem untuk memastikan dapat menangani lonjakan transaksi pada musim tertentu; Pengujian Keamanan: Melakukan tes penetrasi untuk melindungi data pengguna dan transaksi.
- Output: Laporan pengujian dan daftar perbaikan.
- Kaitannya dengan Sistem E-commerce: Pengujian memastikan aplikasi dapat menangani skenario transaksi sesungguhnya tanpa masalah.
- Fungsi: Meluncurkan perangkat lunak ke lingkungan produksi dan memberikan dukungan setelah peluncuran.
- Aktivitas: Menerapkan sistem ke server cloud yang mendukung skalabilitas, seperti AWS atau Google Cloud; Memberikan pelatihan kepada tim pengguna; Menyediakan pemeliharaan untuk menangani masalah atau pembaruan di masa mendatang.
- Output: Sistem e-commerce yang digunakan perusahaan dan didukung dengan pemeliharaan berkelanjutan.
- Kaitannya dengan Sistem E-commerce: Tahap ini memastikan sistem tetap berjalan optimal, terutama selama musim puncak transaksi.
- Struktur yang jelas: Setiap tahap memiliki tujuan dan output yang terdefinisi dengan baik, memastikan kebutuhan e-commerce tercakup sepenuhnya sejak awal.
- Dokumen lengkap: Dokumen SRS dan SDD memberikan panduan detail untuk seluruh tim pengembang.
- Cocok untuk kebutuhan tetap: Karena persyaratan sudah jelas (menangani lonjakan transaksi, mendukung pembayaran, dan pengunduhan produk digital), model ini dapat memastikan semua kebutuhan dipenuhi tanpa perubahan besar di tengah jalan.
- Pengendalian proyek yang baik: Dokumentasi dan proses berurutan memudahkan manajer proyek untuk memantau kemajuan.
- Kurang Fleksibel: Jika kebutuhan klien berubah selama pengembangan (misalnya menambahkan fitur baru), revisi menjadi mahal dan memakan waktu.
- Masalah Baru Terlambat Terdeteksi: Kesalahan dalam analisis kebutuhan mungkin baru terlihat pada tahap implementasi atau pengujian.
- Tidak Ideal untuk Lonjakan Teknologi: Jika ada teknologi baru yang relevan selama proyek, sulit untuk mengadopsinya di tengah jalan.
Nomor 3:
Perbedaan Antara Architectural Design dan Detailed Design
1. Architectural Design
1. Architectural Design
- Architectural design adalah tahap dalam desain perangkat lunak yang fokus pada struktur tingkat tinggi dari sistem. Desain ini mencakup pemilihan kerangka kerja, arsitektur sistem, dan cara komponen utama saling berinteraksi.
- Fokus:
- Struktur keseluruhan sistem (misalnya, berbasis monolit, microservices, atau client-server).
- Pembagian sistem menjadi komponen-komponen besar seperti modul transaksi, pembayaran, manajemen pengguna, dan katalog produk.
- Identifikasi teknologi yang akan digunakan (misalnya, Node.js untuk backend, React untuk frontend, dan PostgreSQL untuk basis data).
- Output:
- Diagram arsitektur, seperti Deployment Diagram dan Component Diagram.
- Panduan desain untuk pengembang yang mendetailkan bagaimana komponen utama bekerja bersama.
- Definisi: Detailed design adalah tahap yang berfokus pada rincian implementasi dari masing-masing komponen yang telah ditentukan dalam tahap architectural design.
- Fokus:
- Logika dan algoritma internal dari modul, seperti alur transaksi, validasi pembayaran, atau pengelolaan file digital.
- Pemrograman detail, termasuk struktur data, kelas, fungsi, dan antarmuka di setiap modul.
- Desain basis data yang mencakup skema tabel, relasi, dan query SQL.
- Output:
- Diagram UML tingkat rendah, seperti Class Diagram, Sequence Diagram, atau Activity Diagram.
- Pseudocode atau flowchart untuk fungsi atau algoritma spesifik.
- Architectural Design:
- Memberikan panduan besar tentang bagaimana sistem akan dibangun.
- Memastikan skalabilitas, keandalan, dan keamanan dengan memilih arsitektur yang tepat.
- Dalam konteks sistem e-commerce (Soal 4), architectural design memastikan sistem dapat menangani lonjakan transaksi musiman dengan memilih arsitektur seperti microservices yang dapat diskalakan dengan mudah.
- Detailed Design:
- Menyediakan rincian untuk pengembang dalam mengimplementasikan fitur-fitur sistem.
- Mengurangi ambiguitas selama pengembangan karena desain mendetail memberikan gambaran lengkap tentang bagaimana setiap modul akan berfungsi.
- Dalam konteks sistem e-commerce, detailed design memastikan bahwa setiap fungsi, seperti memproses pembayaran atau mengunduh file, diimplementasikan dengan efisien dan tanpa kesalahan.
- Sistem menggunakan arsitektur microservices agar setiap layanan (katalog, pembayaran, pengunduhan file) dapat diskalakan secara independen.
- Komunikasi antar layanan menggunakan REST API atau GraphQL.
- Penggunaan load balancer dan database sharding untuk menangani lonjakan transaksi.
- Modul pembayaran dirancang dengan logika detail untuk memvalidasi kartu kredit, menangani otentikasi 3D Secure, dan mengelola notifikasi sukses/gagal.
- Modul katalog mencakup detail seperti pengelompokan produk berdasarkan kategori dan sistem pencarian.
- Pengunduhan file dirancang dengan algoritma yang memastikan keamanan dan kecepatan.
Nomor 4:
Pendekatan yang digunakan adalah model Waterfall, karena:
- Kebutuhan sistem cukup tetap: menangani lonjakan transaksi, mendukung katalog produk digital, pembayaran online, dan pengunduhan file.
- Tahap-tahap pengembangan dapat dipecah secara sistematis.
Tahap Pengembangan
Requirement Analysis:
- Identifikasi kebutuhan utama, seperti fitur transaksi otomatis, katalog produk digital, dan skalabilitas.
- Output: Dokumen Spesifikasi Kebutuhan Perangkat Lunak (SRS).
System Design:
- Merancang arsitektur berbasis microservices untuk skalabilitas.
- Output: Dokumen Desain Perangkat Lunak (SDD) yang mencakup detail arsitektur dan modul.
Implementation:
- Mengembangkan fitur inti: katalog, pembayaran, manajemen pengguna, dan pengunduhan file.
- Teknologi: Node.js untuk backend, React untuk frontend, PostgreSQL/NoSQL untuk basis data.
Testing:
- Melakukan pengujian fungsional, beban, dan keamanan.
Deployment and Maintenance:
- Meluncurkan sistem di platform cloud seperti AWS atau Google Cloud.
Analysis Model
Berikut adalah analisis kebutuhan untuk sistem e-commerce:
Fungsi:
- Pengguna dapat mencari dan memilih produk digital.
- Sistem memproses pembayaran secara online.
- Pengguna dapat mengunduh file produk setelah pembayaran.
- Admin dapat mengelola produk digital dan memantau transaksi.
Diagram Alur:
- Requirement Analysis:
- System Design:
- Implementasi:
- Testing
- Deployment and Maintenance:
+--------------------------+
| Product |
+--------------------------+
| + productId: int |
| + name: string |
| + description: string |
| + price: float |
| + stock: int |
+--------------------------+
| + getDetails(): string |
| + updateStock(): void |
+--------------------------+
+--------------------------+
| User |
+--------------------------+
| + userId: int |
| + name: string |
| + email: string |
| + password: string |
+--------------------------+
| + register(): void |
| + login(): void |
| + browseCatalog(): void |
+--------------------------+
+--------------------------+
| Payment |
+--------------------------+
| + paymentId: int |
| + userId: int |
| + amount: float |
| + status: string |
+--------------------------+
| + processPayment(): bool |
| + generateInvoice(): void|
+--------------------------+
+--------------------------+
| Download |
+--------------------------+
| + downloadId: int |
| + userId: int |
| + productId: int |
| + downloadLink: string |
+--------------------------+
| + generateLink(): string |
| + trackDownload(): void |
+--------------------------+
.jpg)

.jpg)
.jpg)
.jpg)
Comments
Post a Comment