Final Project Pemrograman Berbasis Kerangka Kerja
Nama : Mavaldi Rizqy Hazdi
NRP : 5025211086
Kelas : PBKK A
Deskribsi studi kasus aplikasi ditinjau dari MVC
Aplikasi toko buku online merupakan platform yang
memungkinkan pengguna untuk menjelajahi, mencari, dan membeli buku secara
digital. Studi kasus ini bertujuan untuk mengembangkan aplikasi toko buku
online dengan menerapkan arsitektur Model-View-Controller (MVC) guna mencapai
seperangkat tujuan tertentu.
- Model:
Manajemen Data Buku
- Model
dalam aplikasi ini akan bertanggung jawab atas manajemen data buku. Ini
mencakup informasi seperti judul, penulis, sinopsis, dan harga. Model
juga bertanggung jawab atas kategori buku, stok, dan detail lainnya yang
terkait dengan buku yang dijual di toko.
- View:
Antarmuka Pengguna yang Responsif
- View
merujuk pada antarmuka pengguna (UI) aplikasi. Desain antarmuka pengguna
harus responsif dan mudah dinavigasi. Pengguna harus dapat dengan mudah
menemukan buku, melihat deskripsi, dan menyelesaikan proses pembelian
dengan nyaman. Hal ini mencakup halaman beranda, halaman kategori,
halaman detail buku, dan keranjang belanja.
- Controller:
Pengelolaan Logika Aplikasi
- Controller
bertanggung jawab atas logika bisnis aplikasi. Ini mencakup pengelolaan
input pengguna, pengelolaan sesi, dan koordinasi antara model dan view.
Contohnya, ketika pengguna menambahkan buku ke keranjang, controller akan
memproses informasi tersebut, memperbarui model, dan menginformasikan
view untuk menampilkan perubahan yang diperlukan.
- Fungsionalitas
Utama Aplikasi:
- Pencarian
Buku: Pengguna dapat mencari buku berdasarkan judul, penulis, atau
kategori.
- Detail
Buku: Halaman detail buku memberikan informasi lengkap tentang suatu
buku, termasuk sinopsis, harga, dan ulasan.
- Keranjang
Belanja: Pengguna dapat menambahkan atau menghapus buku dari keranjang
belanja, dan melihat ringkasan pembelian mereka.
- Proses
Pembayaran: Sistem pembayaran yang aman dan mudah digunakan untuk
menyelesaikan pembelian.
- Riwayat
Pembelian: Pengguna dapat melihat riwayat pembelian mereka dan status
pengiriman.
- Keamanan:
- Implementasi
tindakan keamanan seperti enkripsi data pengguna, perlindungan terhadap
serangan SQL injection, dan keamanan transaksi pembayaran.
- Pengujian:
- Pengembangan
aplikasi melibatkan pengujian menyeluruh, termasuk pengujian fungsional,
pengujian integrasi, dan pengujian keamanan.
- Skalabilitas:
- Merancang
aplikasi dengan mempertimbangkan faktor skalabilitas agar dapat menangani
pertumbuhan pengguna dan peningkatan jumlah buku yang ditawarkan.
Studi kasus ini bertujuan untuk memberikan gambaran tentang
bagaimana implementasi MVC dapat meningkatkan kualitas, keamanan, dan
fleksibilitas pengembangan aplikasi toko buku online.
Rancangan Umum Arsitektur dan Fitur Aplikasi Toko Buku
Online:
1. Arsitektur Aplikasi:
- Aplikasi
dikembangkan menggunakan arsitektur Model-View-Controller (MVC) untuk
memisahkan logika bisnis, antarmuka pengguna, dan manajemen data.
- Pengguna
berinteraksi dengan antarmuka pengguna (View), yang mengirim permintaan ke
Controller.
- Controller
memproses permintaan, berinteraksi dengan Model untuk mendapatkan atau
memperbarui data, dan memperbarui View sesuai dengan hasilnya.
2. Fitur-Fitur Utama:
a. Halaman Beranda:
- Menampilkan
buku-buku terbaru, terlaris, atau yang sedang diskon.
- Penelusuran
cepat dan navigasi kategori.
b. Pencarian Buku:
- Kotak
pencarian dengan saran otomatis.
- Hasil
pencarian yang relevan dan filter pencarian.
c. Kategori Buku:
- Kategori
buku yang dapat dijelajahi pengguna.
- Subkategori
untuk meningkatkan kejelasan dan navigasi.
d. Halaman Detail Buku:
- Gambar
buku, judul, penulis, sinopsis, dan informasi lainnya.
- Tombol
"Tambah ke Keranjang" dan opsi untuk memberikan ulasan.
e. Keranjang Belanja:
- Daftar
buku yang telah ditambahkan.
- Kemampuan
untuk mengubah jumlah buku atau menghapus dari keranjang.
- Total
belanja dan tombol "Checkout".
f. Proses Pembayaran:
- Formulir
pembayaran dengan pilihan kartu kredit, transfer bank, atau metode
pembayaran lainnya.
- Konfirmasi
pesanan dan email pemberitahuan.
g. Riwayat Pembelian:
- Daftar
pesanan sebelumnya dan status pengiriman.
- Tautan
untuk melacak pengiriman.
h. Manajemen Akun Pengguna:
- Pendaftaran
pengguna dan login.
- Profil
pengguna dengan riwayat pembelian dan pengaturan akun.
i. Keamanan:
- Enkripsi
data pengguna dan transaksi.
- Perlindungan
terhadap serangan SQL injection dan tindakan keamanan lainnya.
j. Pengelolaan Stok:
- Pembaruan
otomatis stok buku setelah pembelian.
- Pemberitahuan
otomatis jika stok hampir habis.
k. Sistem Rekomendasi:
- Rekomendasi
buku berdasarkan riwayat pembelian atau preferensi pengguna.
l. Pengaturan Bahasa dan Mata Uang:
- Kemampuan
untuk mengubah bahasa antarmuka dan mata uang yang digunakan.
m. Responsif dan Optimal pada Berbagai Perangkat:
- Desain
responsif untuk pengalaman pengguna yang baik pada perangkat seluler,
tablet, dan desktop.
3. Integrasi Eksternal:
- Integrasi
dengan penyedia pembayaran untuk pemrosesan transaksi.
- Integrasi
dengan layanan pengiriman untuk pelacakan pengiriman.
4. Skalabilitas dan Performa:
- Desain
yang memungkinkan penanganan lalu lintas pengguna yang tinggi.
- Pemantauan
kinerja dan peningkatan berkelanjutan.
Rancangan ini memberikan kerangka dasar untuk pengembangan
aplikasi toko buku online yang komprehensif dan fungsional, dengan fokus pada
pengalaman pengguna yang baik, keamanan, dan skalabilitas.
Rancangan Database
CREATE TABLE Buku (
book_id INT PRIMARY KEY,
judul VARCHAR(255),
penulis VARCHAR(255),
sinopsis TEXT,
harga DECIMAL(10, 2),
stok INT
);
CREATE TABLE Kategori (
category_id INT PRIMARY KEY,
nama_kategori VARCHAR(255)
);
CREATE TABLE Buku_Kategori (
book_id INT,
category_id INT,
PRIMARY KEY (book_id, category_id),
FOREIGN KEY (book_id) REFERENCES Buku(book_id),
FOREIGN KEY (category_id) REFERENCES Kategori(category_id)
);
CREATE TABLE Pengguna (
user_id INT PRIMARY KEY,
nama_pengguna VARCHAR(255),
kata_sandi VARCHAR(255),
email VARCHAR(255)
);
CREATE TABLE Transaksi (
transaction_id INT PRIMARY KEY,
user_id INT,
tanggal_transaksi DATETIME,
total_harga DECIMAL(10, 2),
FOREIGN KEY (user_id) REFERENCES Pengguna(user_id)
);
CREATE TABLE Detail_Transaksi (
transaction_id INT,
book_id INT,
jumlah INT,
harga_satuan DECIMAL(10, 2),
PRIMARY KEY (transaction_id, book_id),
FOREIGN KEY (transaction_id) REFERENCES Transaksi(transaction_id),
FOREIGN KEY (book_id) REFERENCES Buku(book_id)
);
CREATE TABLE Ulasan (
review_id INT PRIMARY KEY,
book_id INT,
user_id INT,
ulasan TEXT,
peringkat INT,
FOREIGN KEY (book_id) REFERENCES Buku(book_id),
FOREIGN KEY (user_id) REFERENCES Pengguna(user_id)
);
Dalam arsitektur MVC (Model-View-Controller), kontrol
(controller) bertanggung jawab atas logika back end atau logika bisnis
aplikasi. Controller mengelola permintaan dari pengguna, memprosesnya, dan
berinteraksi dengan model dan view untuk menyampaikan respon. Berikut adalah
daftar fungsi-fungsi yang bisa diemban oleh kontrol pada aplikasi toko buku
online:
- Pencarian
Buku:
- Menerima
permintaan pencarian dari view.
- Mengelola
pencarian dalam model (database).
- Mengirim
hasil pencarian ke view untuk ditampilkan kepada pengguna.
- Penanganan
Kategori:
- Menanggapi
permintaan untuk menampilkan buku berdasarkan kategori.
- Berinteraksi
dengan model untuk mengambil buku-buku dalam kategori tertentu.
- Mengirim
hasil ke view untuk ditampilkan.
- Detail
Buku:
- Menanggapi
permintaan untuk melihat detail suatu buku.
- Berkomunikasi
dengan model untuk mendapatkan informasi detail buku.
- Mengirim
informasi tersebut ke view untuk ditampilkan.
- Keranjang
Belanja:
- Menanggapi
permintaan untuk menambah, menghapus, atau memperbarui buku dalam
keranjang belanja.
- Mengelola
perubahan keranjang dalam model.
- Mengirim
status terkini keranjang belanja ke view.
- Proses
Pembayaran:
- Menanggapi
permintaan pembayaran dan informasi pembayaran dari view.
- Memvalidasi
informasi pembayaran.
- Mengelola
transaksi dan pembaruan stok buku dalam model.
- Memberikan
konfirmasi transaksi ke view.
- Manajemen
Akun Pengguna:
- Menanggapi
permintaan pendaftaran dan login.
- Mengelola
otentikasi dan otorisasi pengguna.
- Memberikan
akses ke halaman profil pengguna.
- Menanggapi
permintaan perubahan informasi pengguna.
- Ulasan
Buku:
- Menerima
ulasan dan peringkat buku dari pengguna.
- Memvalidasi
ulasan dan peringkat.
- Menyimpan
ulasan dan peringkat dalam model.
- Integrasi
Eksternal:
- Berinteraksi
dengan layanan pembayaran eksternal untuk pemrosesan transaksi.
- Berkomunikasi
dengan layanan pengiriman untuk mengatur pengiriman.
- Keamanan:
- Memastikan
bahwa permintaan dari pengguna dan data yang diterima aman.
- Menanggapi
ancaman keamanan seperti serangan SQL injection atau serangan keamanan
web lainnya.
- Sistem
Rekomendasi:
- Menanggapi
permintaan rekomendasi buku berdasarkan riwayat pembelian atau preferensi
pengguna.
- Mengambil
rekomendasi dari model.
- Pengaturan
Bahasa dan Mata Uang:
- Menanggapi
perubahan bahasa dan mata uang yang diinginkan oleh pengguna.
- Mengelola
preferensi tersebut dalam model.
- Pemantauan
Kinerja:
- Melakukan
pemantauan kinerja aplikasi dan menerapkan perbaikan jika diperlukan.
- Menanggapi
peningkatan beban pengguna dan melakukan tindakan untuk meningkatkan
performa aplikasi.
Komentar
Posting Komentar