Final Project Pemrograman Berbasis Kerangka Kerja

Nama : Mavaldi Rizqy Hazdi

NRP : 5025211086

Kelas : PBKK A


Referensi Paper : https://www.researchgate.net/profile/Mohammed-Abdala/publication/260907838_Online_E-Book_Store_Website_Design/links/0deec532a180a27196000000/Online-E-Book-Store-Website-Design.pdf


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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Keamanan:
    • Implementasi tindakan keamanan seperti enkripsi data pengguna, perlindungan terhadap serangan SQL injection, dan keamanan transaksi pembayaran.
  6. Pengujian:
    • Pengembangan aplikasi melibatkan pengujian menyeluruh, termasuk pengujian fungsional, pengujian integrasi, dan pengujian keamanan.
  7. 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


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.

Top of Form

 

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)
)
;

 

Desain Front-End












Control yang menghandle logika Back-End

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:

  1. Pencarian Buku:
    • Menerima permintaan pencarian dari view.
    • Mengelola pencarian dalam model (database).
    • Mengirim hasil pencarian ke view untuk ditampilkan kepada pengguna.
  2. 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.
  3. Detail Buku:
    • Menanggapi permintaan untuk melihat detail suatu buku.
    • Berkomunikasi dengan model untuk mendapatkan informasi detail buku.
    • Mengirim informasi tersebut ke view untuk ditampilkan.
  4. 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.
  5. 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.
  6. Manajemen Akun Pengguna:
    • Menanggapi permintaan pendaftaran dan login.
    • Mengelola otentikasi dan otorisasi pengguna.
    • Memberikan akses ke halaman profil pengguna.
    • Menanggapi permintaan perubahan informasi pengguna.
  7. Ulasan Buku:
    • Menerima ulasan dan peringkat buku dari pengguna.
    • Memvalidasi ulasan dan peringkat.
    • Menyimpan ulasan dan peringkat dalam model.
  8. Integrasi Eksternal:
    • Berinteraksi dengan layanan pembayaran eksternal untuk pemrosesan transaksi.
    • Berkomunikasi dengan layanan pengiriman untuk mengatur pengiriman.
  9. Keamanan:
    • Memastikan bahwa permintaan dari pengguna dan data yang diterima aman.
    • Menanggapi ancaman keamanan seperti serangan SQL injection atau serangan keamanan web lainnya.
  10. Sistem Rekomendasi:
  • Menanggapi permintaan rekomendasi buku berdasarkan riwayat pembelian atau preferensi pengguna.
  • Mengambil rekomendasi dari model.
  1. Pengaturan Bahasa dan Mata Uang:
  • Menanggapi perubahan bahasa dan mata uang yang diinginkan oleh pengguna.
  • Mengelola preferensi tersebut dalam model.
  1. Pemantauan Kinerja:
  • Melakukan pemantauan kinerja aplikasi dan menerapkan perbaikan jika diperlukan.
  • Menanggapi peningkatan beban pengguna dan melakukan tindakan untuk meningkatkan performa aplikasi.

Implementasi dan video presentasi


Link Github : Github














 


Komentar

Postingan populer dari blog ini

Tugas PPB - Membuat Aplikasi Sederhana Menggunakan Jetpack Compose

ETS PPB - Aplikasi Galeri (MyGallery)

QUIZ 1 Pemrograman Web B