FINAL PROJECT EAS PBKK A

 Nama : Meyroja Jovancha Firoos

 NRP   : 5025211204


1.  Judul Studi Kasus: Aplikasi Pemesanan Tiket Bus dengan Pendekatan Model-View-Controller (MVC)

Studi kasus ini membahas implementasi arsitektur Model-View-Controller (MVC) dalam sebuah aplikasi pemesanan tiket bus. Dengan menggunakan pendekatan MVC, aplikasi dapat memisahkan tugas-tugas utama untuk mencapai fleksibilitas, pemeliharaan yang mudah, dan skalabilitas. Model bertanggung jawab atas manajemen data tiket dan pengguna, View menangani antarmuka pengguna yang intuitif, sementara Controller mengelola logika bisnis dan navigasi. Fungsionalitas meliputi pencarian rute, pemilihan kursi, pemesanan tiket, dan manajemen akun pengguna. Implementasi MVC bertujuan untuk meningkatkan pengembangan aplikasi dengan memisahkan tanggung jawab masing-masing komponen, memungkinkan pemeliharaan yang efisien, dan memastikan pengalaman pengguna yang baik.


2. Rancangan Umum Arsitektur Aplikasi Pemesanan Tiket Bus :

  • Antarmuka Pengguna (UI):
    • Pencarian Rute: Pengguna dapat mencari rute bus berdasarkan lokasi asal, tujuan, dan tanggal perjalanan.
    • Pemilihan Kursi: Tampilan interaktif memungkinkan pengguna memilih kursi yang diinginkan.
    • Formulir Pemesanan: Pengguna dapat mengisi informasi penumpang, memilih jenis tiket, dan melakukan pembayaran.
  • Model:
    • Manajemen Data Tiket: Logika bisnis yang menangani data tiket, termasuk penyimpanan informasi tiket, validasi pesanan, dan pemrosesan transaksi.
    • Manajemen Pengguna: Menangani informasi akun pengguna, riwayat pemesanan, dan preferensi perjalanan.
  • Controller:
    • Routing: Mengatur aliran navigasi antara halaman-halaman aplikasi.
    • Validasi Input: Memastikan data yang dimasukkan oleh pengguna sesuai dengan aturan yang telah ditentukan.
    • Logika Bisnis Pemesanan: Proses pemesanan tiket, menghitung harga, dan mengonfirmasi ketersediaan kursi.
    • Manajemen Session: Menangani informasi sesi pengguna, termasuk login dan status transaksi.
  • Manajemen Basis Data:
    • Database Tiket: Menyimpan informasi rute, jadwal, harga, dan ketersediaan kursi.
    • Database Pengguna: Menyimpan data akun pengguna, riwayat pemesanan, dan preferensi.
  • Sistem Notifikasi:
    • Konfirmasi Pemesanan: Mengirim notifikasi kepada pengguna setelah berhasil memesan tiket.
    • Pemberitahuan Perubahan: Memberitahu pengguna tentang perubahan jadwal atau pembatalan perjalanan.
  • Pengelolaan Keamanan:
    • Otentikasi Pengguna: Proses login dan pengelolaan sesi untuk keamanan akun pengguna.
    • Pengamanan Transaksi: Memastikan keamanan selama proses pembayaran dan penyimpanan informasi sensitif.
  • Modul Pelacakan Perjalanan:
    • Informasi Perjalanan Real-time: Menyediakan pembaruan waktu nyata tentang status perjalanan dan estimasi kedatangan.
  • Dashboard Administrator:
    • Manajemen Konten: Administrator dapat mengelola informasi rute, harga, dan jadwal perjalanan.
    • Pemantauan Transaksi: Melihat dan mengelola riwayat transaksi serta pembaruan status tiket.
  • Integrasi Pembayaran:
    • Gateway Pembayaran: Integrasi dengan penyedia pembayaran untuk memproses transaksi secara aman.
  • Lapisan API (Application Programming Interface):
    • Interaksi dengan Pihak Ketiga: Memungkinkan integrasi dengan layanan pihak ketiga, seperti penyedia layanan transportasi lainnya.

3. skema desain database untuk aplikasi tersebut:

  • Tabel: Rute
    • id_rute (Primary Key): Kunci unik untuk setiap rute.
    • lokasi_asal: Lokasi keberangkatan.
    • lokasi_tujuan: Lokasi tujuan.
    • jarak: Jarak perjalanan.
  • Tabel: Jadwal_Perjalanan
    • id_jadwal (Primary Key): Kunci unik untuk setiap jadwal perjalanan.
    • id_rute (Foreign Key): Merujuk ke id_rute pada tabel Rute.
    • tanggal_keberangkatan: Tanggal dan waktu keberangkatan.
    • harga: Harga tiket.
  • Tabel: Pengguna
    • id_pengguna (Primary Key): Kunci unik untuk setiap pengguna.
    • nama_pengguna: Nama pengguna unik untuk login.
    • kata_sandi: Kata sandi pengguna.
    • nama_lengkap: Nama lengkap pengguna.
    • email: Alamat email pengguna.
  • Tabel: Tiket
    • id_tiket (Primary Key): Kunci unik untuk setiap tiket.
    • id_jadwal (Foreign Key): Merujuk ke id_jadwal pada tabel Jadwal_Perjalanan.
    • id_pengguna (Foreign Key): Merujuk ke id_pengguna pada tabel Pengguna.
    • nomor_kursi: Nomor kursi yang dipilih.
    • status_pembayaran: Status pembayaran tiket.
  • Tabel: Riwayat_Pemesanan
    • id_riwayat (Primary Key): Kunci unik untuk setiap riwayat pemesanan.
    • id_tiket (Foreign Key): Merujuk ke id_tiket pada tabel Tiket.
    • tanggal_pemesanan: Tanggal dan waktu pemesanan.

4.  





5. Berikut adalah beberapa kontrol yang mungkin terlibat dalam mengelola logika backend aplikasi pemesanan tiket bus:
  • Route Search Controller :
    • Mengolah permintaan pencarian rute dari pengguna.
    • Mengambil data rute dan jadwal perjalanan terkait dari model.
    • Mengirimkan hasil pencarian ke antarmuka pengguna.
  • Ticket Booking Controller :
    • Menangani proses pemesanan tiket, termasuk validasi data pengguna.
    • Memproses pemilihan kursi, jenis tiket, dan pembayaran.
    • Mengelola status pembayaran dan ketersediaan kursi.
  • Pengelola Akun Pengguna User Account Controller :
    • Mengelola pembuatan dan pemeliharaan akun pengguna.
    • Memproses informasi profil, riwayat pemesanan, dan preferensi pengguna.
    • Menangani otentikasi pengguna dan manajemen sesi.
  •  Notification Controller :
    • Mengirim notifikasi kepada pengguna terkait konfirmasi pemesanan, perubahan jadwal, atau informasi penting lainnya.
    • Menangani pengelolaan notifikasi yang akan dikirimkan melalui email, pesan teks, atau medium komunikasi lainnya.
  • Payment Controller :
    • Berinteraksi dengan gateway pembayaran untuk memproses transaksi pembayaran secara aman.
    • Memastikan integrasi yang benar dengan layanan pembayaran pihak ketiga.
  • Admin Management Controller :
    • Memfasilitasi tindakan administratif oleh administrator, seperti manajemen rute, penjadwalan perjalanan, dan pemantauan transaksi.
    • Menangani operasi yang membutuhkan otoritas administratif.
  • Security Controller :
    • Menangani aspek keamanan aplikasi, termasuk otentikasi, otorisasi, dan perlindungan terhadap serangan keamanan.
  • Logging Controller :
    • Merekam aktivitas sistem dan log kejadian penting untuk pemantauan, analisis, dan pemecahan masalah.
  • Pengelola Layanan Eksternal (External Service Controller):
    • Berinteraksi dengan layanan eksternal, seperti sistem pelacakan perjalanan atau API penyedia layanan transportasi lainnya.
  • Integration Controller :
    • Menangani integrasi dengan komponen eksternal, seperti sistem pembayaran, untuk memastikan aliran data yang lancar dan konsisten.


Github :

https://github.com/joyazovancha/BusTicket-CI 




Komentar

Postingan populer dari blog ini

PBKK A - Tugas 7

Quiz PBKK A - Quiz 1