Sistem Design aplikasi Bioskop
Sistem Design Aplikasi Bioskop
Muhamad Faiz Fernanda (5025211186)
Tsaqif Deniar Bhakti (5025211151)
Requirements Design aplikasi Bioskop
Functional Requirement
Signup & Login
Sistem harus mengizinkan pelanggan untuk mendaftar, masuk, dan mengautentikasi identitas mereka dengan aman.
Booking area
Ini harus menyediakan fungsionalitas untuk mengelola tempat nonton yang tersedia, seperti pembaruan waktu nyata
mengenai ketersediaan tempat.
Pembelian Tiket
user dapat memesan tempat terlebih dahulu melalui platform online
Layanan Pembayaran :
Menerapkan sistem pembayaran yang stabil bagi pelanggan untuk membayar pelayanan pesan tiket
Bentuk 2D area nonton :
Menyediakan bentuk 2D area dalam theater agar user dapat memilih tempat yang di inginkan
Non Functional Requirement
- Latensi
Sistem harus segera merespons permintaan pengguna, dengan latensi rendah sepanjang jam sibuk.
Integitas Data :
Pastikan ketersediaan berlebihan, waktu henti minimal, dan integritas data.
Traffic :
Sistem harus menangani semakin banyak pengguna dan transaksi tanpa mengurangi kinerja
Fitur Keamanan :
Menerapkan fitur keamanan yang kuat untuk melindungi data pengguna, transaksi, dan
sistem umum dari akses tidak sah.
Usecase Diagram Sistem Kasir Bioskop
Low Level Design
Data Schema:
Tabel User: id_user (PK), username, email, password_hash, role.
Tabel Film: id_film (PK), judul, genre, durasi.
Tabel Bioskop: id_bioskop (PK), nama, lokasi.
Tabel Jadwal_Pemutaran: id_jadwal (PK), id_film (FK), id_bioskop (FK), waktu, harga.
Tabel Transaksi: id_transaksi (PK), id_user (FK), id_jadwal (FK), jumlah_tiket, total_pembayaran, waktu_transaksi,
Database Design:
Database akan menggunakan manajemen basis data relasional (RDBMS) seperti MySQL atau PostgreSQL.
Setiap tabel akan memiliki kunci primer (PK) dan kunci asing (FK) yang sesuai untuk menjaga integritas referensial.
Index akan diterapkan pada kolom-kolom yang sering digunakan dalam pencarian atau pengurutan, seperti id_transaksi atau waktu_transaksi.
Algoritma:
Algoritma pembelian tiket akan memeriksa ketersediaan kursi berdasarkan kapasitas teater dan kursi yang telah dipesan sebelumnya.
Algoritma penjadwalan akan mempertimbangkan waktu pemutaran yang tersedia, kapasitas teater, dan preferensi pengguna untuk menentukan jadwal yang optimal.
Algoritma pembayaran akan memvalidasi informasi pembayaran, menghitung total pembayaran, dan menandai transaksi sebagai selesai setelah pembayaran berhasil.
Data Flow Diagrams:
DFD Level 0:
Input: Informasi pembelian tiket dari pengguna.
Proses: Validasi, pemrosesan pembayaran, pembaruan database.
Output: Konfirmasi pembelian kepada pengguna.
DFD Level 1 :
Input: Detail film yang dipilih dan jadwal pemutaran.
Proses: Pengecekan ketersediaan kursi, penghitungan total pembayaran.
Output: Rincian pembelian kepada pengguna, pembaruan database transaksi.
DFD Level 2 :
Input: Informasi pembayaran pengguna.
Proses: Validasi pembayaran, pembuatan tiket elektronik.
Output: Konfirmasi pembayaran kepada pengguna, pembaruan database transaksi.
High Level Design untuk Kasir Bioskop
High Level Design
Arsitektur Sistem
Arsitektur Sistem Pemesanan Tiket Bioskop terdiri dari:
Layer Presentasi: Antarmuka pengguna untuk pemilihan film, reservasi kursi, dan proses pembayaran.
Layer Logika Bisnis: Memproses permintaan pengguna, memvalidasi input, menghitung harga tiket, dan mengelola transaksi.
Layer Data: Menyimpan informasi film, jadwal penayangan, ketersediaan kursi, dan catatan transaksi.
Interaksi Modul:
Antarmuka Pengguna: Berinteraksi dengan server untuk menampilkan daftar film, pilihan jadwal, ketersediaan kursi, dan opsi pembayaran.
Logika Bisnis: Menerima input pengguna, memvalidasi, mereservasi kursi, menghitung harga tiket, dan mengelola proses pembayaran.
Manajemen Data: Menyediakan data yang diperlukan ke layer logika bisnis, memperbarui ketersediaan kursi, dan mencatat transaksi.
Desain Antarmuka Pengguna:
Desain antarmuka pengguna berfokus pada kesederhanaan, intuitivitas, dan responsivitas.
Fungsi utama termasuk pemilihan film, penelusuran jadwal, pemilihan kursi, proses pembayaran, dan konfirmasi pesanan.
Menekankan pengalaman tanpa hambatan dari pemilihan film hingga pembelian tiket.
Antarmuka Eksternal:
Integrasi dengan Bioskop: Mengambil daftar film, jadwal penayangan, dan ketersediaan kursi dari sistem bioskop.
Integrasi Payment Gateway: Memfasilitasi proses pembayaran yang aman melalui berbagai metode pembayaran.
Komunikasi dengan API Eksternal: Berinteraksi dengan sistem eksternal untuk fungsionalitas tambahan seperti penawaran promosi atau program loyalitas.
Data Base Sistem Kasir Bioskop
User Table
user_id (PK): Unique identifier for every user.
username: User’s username for identity.
email_address: User’s e-mail for communication.
password: Securely hashed user password.
created_date: Registration date of the user.
Cinema Table
cinema_id (PK): Unique identifier for every cinema.
name: Name of the cinema.
location: Physical location of the cinema.
capacity: Maximum capacity of the cinema in terms of seats.
Film Table
film_id (PK): Unique identifier for every film.
title: Title of the film.
genre: Genre of the film.
duration: Duration of the film in minutes.
release_date: Release date of the film.
Screen Table
screen_id (PK): Unique identifier for every screen.
cinema_id (FK): Id of the cinema where the screen is located.
name: Name or identifier of the screen (e.g., Screen 1, IMAX).
size: Size of the screen (e.g., dimensions in meters).
technology: Technology used in the screen (e.g., digital, 3D, IMAX).
Theater Table
theater_id (PK): Unique identifier for every theater.
cinema_id (FK): Id of the cinema where the theater is located.
name: Name or identifier of the theater (e.g., Theater 1, Auditorium A).
capacity: Maximum capacity of the theater in terms of seats.
features: Additional features or amenities available in the theater (e.g., Dolby Atmos sound system, stadium seating).
Type Seat Table
type_seat_id (PK): Unique identifier for every type of seat.
name: Name or description of the type of seat (e.g., standard, VIP, recliner).
additional_info: Additional information about the type of seat (e.g., legroom, amenities).
Seats Table:
seat_id (PK): Unique identifier for every seat.
cinema_id (FK): Id of the cinema where the seat is located.
type_seat_id (FK): Id of the type of seat.
availability_status: Indicates whether the seat is available or occupied.
location: Physical location of the seat in the theater (e.g., row number, seat number).
price: Price of the seat (if applicable).
Reservation Table:
Reservation_id (PK): Unique identifier for each reservation.
user_id (FK): Id of the user making the reservation.
film_id (FK): Id of the film being reserved.
cinema_id (FK): Id of the cinema where the film is being reserved.
screen_id (FK): Id of the screen where the film is being reserved.
theater_id (FK): Id of the theater where the film is being reserved.
reservation_time: Date and time of the reservation.
quantity: Number of tickets reserved.
Komentar
Posting Komentar