PBKK - Final Project Pemrograman Berbasis Kerangka Kerja



Final Project Pemrograman Berbasis Kerangka Kerja

1. Buatlah deskripsi studi kasus aplikasi ditinjau dari MVC!

Dalam pengembangan proyek terakhir, saya fokus membangun sebuah platform daring untuk reservasi kamar hotel secara efisien. Melalui aplikasi berbasis web menggunakan framework CodeIgniter, pengguna dapat dengan lancar memesan kamar hotel sesuai preferensi fasilitas dan sesuai dengan anggaran yang mereka miliki. Fitur pemilihan kamar yang dapat disesuaikan dengan kebutuhan pengguna menjadi perhatian utama dalam memastikan pengalaman reservasi yang optimal.

Jika ditinjau dalam MCVnya, deskripsi project ini dapat dilihat sebagai berikut:

Model:

Dalam sistem reservasi kamar hotel, model akan menjadi wadah untuk mengelola informasi terkait data kamar, data reservasi, informasi pelanggan, informasi pegawai dan transaksi yang terjadi. Ini mencakup logika yang mengatur interaksi dengan database, pengecekan harga kamar, proses pemesanan, dan pengelolaan informasi penting terkait reservasi.

View:

View dalam konteks ini akan menjadi antarmuka pengguna yang menampilkan informasi tentang detail kamar yang dapat dipesan, proses reservasi, pembayaran, data staff, dan data pemesanan. Tampilan ini akan menggunakan HTML, CSS, dan JavaScript untuk menyajikan informasi secara jelas dan menarik kepada pengguna.

Controller:

Controller bertanggung jawab atas logika bisnis aplikasi serta mengatur aliran informasi antara model dan view. Dalam konteks reservasi kamar hotel, controller akan menangani input dari pengguna terkait pemesanan kamar, memvalidasi informasi yang dimasukkan, mengarahkan permintaan reservasi ke model untuk diproses, serta mengkonfirmasi reservasi kepada pengguna. Selain itu, controller akan menangani interaksi terkait pemesanan, registrasi akun, dan juga login akun.

2. Buatlah rancangan umum arsitektur atau fitur yang ada dalam aplikasi!

Platform pemesanan kamar hotel ini menawarkan sejumlah fitur penting bagi pengguna. Pertama, pengguna memiliki kebebasan untuk memilih kamar sesuai keinginan mereka. Setiap jenis kamar dilengkapi dengan fasilitas yang berbeda, dan pengguna dapat melihat deskripsi singkat sebelum membuat keputusan pembelian.

Untuk pengelolaan yang lebih efektif, platform ini juga menyediakan fitur pantauan admin. Dashboard admin memantau data pegawai, dan data transaksi yang pernah terjadi di hotel. Hal ini memudahkan pengelolaan dan pemantauan seluruh inventaris kamar secara terorganisir. Tidak hanya itu, terdapat juga fitur ulasan yang memungkinkan pembeli atau pemesan kamar untuk memberikan feedback. Ini memungkinkan para pengguna untuk berbagi pengalaman, keluhan, atau saran yang akan didengar dan dipertimbangkan oleh pegawai hotel. Semua fitur ini dirancang untuk memberikan pengalaman pemesanan kamar hotel yang lebih menyeluruh dan memuaskan bagi pengguna.

3. Desain Database Final Project PBKK








Berikut merupakan rancangan code dari database final project ini

-- Created by Vertabelo (http://vertabelo.com)
-- Last modification date: 2023-12-16 18:35:28.159

-- tables
-- Table: Kamar
Create DATABASE hotel;
use hotel;
CREATE TABLE Kamar (
    ID_Kamar char(5)  NOT NULL,
    Nama_Kamar varchar(50)  NOT NULL,
    Harga_Kamar int  NOT NULL,
    Tagline_Kamar varchar(300)  NOT NULL,
    Gambar_kamar varchar(30)  NOT NULL,
    CONSTRAINT Kamar_pk PRIMARY KEY (ID_Kamar)
);

-- Table: Pelanggan
CREATE TABLE Pelanggan (
    NIK_Pelanggan char(16)  NOT NULL,
    Nama_Pelanggan varchar(200)  NOT NULL,
    Telp_Pelanggan varchar(13)  NOT NULL,
    CONSTRAINT Pelanggan_pk PRIMARY KEY (NIK_Pelanggan)
);

-- Table: Transaksi
CREATE TABLE Transaksi (
    ID_Transaksi int  NOT NULL AUTO_INCREMENT,
    Waktu_Transaksi datetime  NOT NULL,
    CheckIn_Transaksi date  NOT NULL,
    CheckOut_Transaksi date  NOT NULL,
    Pelanggan_NIK_Pelanggan char(16)  NOT NULL,
    Kamar_ID_Kamar char(5)  NOT NULL,
    CONSTRAINT Transaksi_pk PRIMARY KEY (ID_Transaksi)
);

-- Table: Ulasan
CREATE TABLE Ulasan (
    ID_Ulasan int  NOT NULL,
    Ulasan varchar(2000)  NOT NULL,
    Pelanggan_NIK_Pelanggan char(16)  NOT NULL,
    CONSTRAINT Ulasan_pk PRIMARY KEY (ID_Ulasan)
);

-- foreign keys
-- Reference: Transaksi_Kamar (table: Transaksi)
ALTER TABLE Transaksi ADD CONSTRAINT Transaksi_Kamar FOREIGN KEY Transaksi_Kamar (Kamar_ID_Kamar)
    REFERENCES Kamar (ID_Kamar);

-- Reference: Transaksi_Pelanggan (table: Transaksi)
ALTER TABLE Transaksi ADD CONSTRAINT Transaksi_Pelanggan FOREIGN KEY Transaksi_Pelanggan (Pelanggan_NIK_Pelanggan)
    REFERENCES Pelanggan (NIK_Pelanggan);

-- Reference: Ulasan_Pelanggan (table: Ulasan)
ALTER TABLE Ulasan ADD CONSTRAINT Ulasan_Pelanggan FOREIGN KEY Ulasan_Pelanggan (Pelanggan_NIK_Pelanggan)
    REFERENCES Pelanggan (NIK_Pelanggan);

INSERT INTO Kamar (ID_Kamar, Nama_Kamar, Harga_Kamar, Tagline_Kamar, Gambar_kamar)
VALUES 
('KMR01', 'Celestial Suite', 1000000, 'Experience celestial luxury at its finest level of comfort.', 'kamar1.jpg'),
('KMR02', 'Stellar Retreat', 1100000, 'Escape to a stellar retreat for an extraordinary stay.', 'kamar2.jpg'),
('KMR03', 'Galaxy Grandeur', 1200000, 'Discover galaxy-level grandeur in every lavish detail.', 'kamar3.jpg'),
('KMR04', 'Nebula Oasis', 1300000, 'Find peace and tranquility in our Nebula Oasis sanctuary.', 'kamar4.jpg'),
('KMR05', 'Astral Haven', 1400000, 'Relax and rejuvenate in the serenity of our Astral Haven abode.', 'kamar5.jpg');

INSERT INTO Pelanggan (NIK_Pelanggan, Nama_Pelanggan, Telp_Pelanggan)
VALUES 
('1234567890123456', 'John Doe', '081234567890'),
('2345678901234567', 'Jane Smith', '081234567891'),
('3456789012345678', 'David Johnson', '081234567892'),
('4567890123456789', 'Emily Williams', '081234567893'),
('5678901234567890', 'Michael Brown', '081234567894'),
('6789012345678901', 'Jessica Miller', '081234567895'),
('7890123456789012', 'Christopher Davis', '081234567896'),
('8901234567890123', 'Ashley Wilson', '081234567897'),
('9012345678901234', 'Matthew Moore', '081234567898'),
('0123456789012345', 'Amanda Taylor', '081234567899');

INSERT INTO Ulasan (ID_Ulasan, Ulasan, Pelanggan_NIK_Pelanggan)
VALUES 
(1, 'Great experience staying in the Celestial Suite. The service was exceptional!', '1234567890123456'),
(2, 'The Stellar Retreat is truly a peaceful escape. I loved every moment of my stay.', '2345678901234567'),
(3, 'Galaxy Grandeur exceeded my expectations. Elegant and comfortable.', '3456789012345678'),
(4, 'Nebula Oasis is a perfect retreat. The ambiance and amenities were outstanding.', '4567890123456789'),
(5, 'Astral Haven provided the relaxation I needed. The staff was friendly and helpful.', '5678901234567890'),
(6, 'The Junior Suite was a delightful surprise. Cozy and perfect for a private stay.', '6789012345678901'),
(7, 'Superb experience in the Deluxe Room. The view and comfort were top-notch.', '7890123456789012');

INSERT INTO Transaksi (Waktu_Transaksi, CheckIn_Transaksi, CheckOut_Transaksi, Pelanggan_NIK_Pelanggan, Kamar_ID_Kamar)
VALUES 
('2023-01-01 08:00:00', '2023-01-01', '2023-01-02', '1234567890123456', 'KMR01'),
('2023-01-03 09:30:00', '2023-01-03', '2023-01-05', '2345678901234567', 'KMR02'),
('2023-01-06 11:45:00', '2023-01-06', '2023-01-08', '3456789012345678', 'KMR03'),
('2023-01-09 13:20:00', '2023-01-09', '2023-01-11', '4567890123456789', 'KMR04'),
('2023-01-12 15:10:00', '2023-01-12', '2023-01-15', '5678901234567890', 'KMR05'),
('2023-01-16 16:55:00', '2023-01-16', '2023-01-18', '6789012345678901', 'KMR01'),
('2023-01-19 18:30:00', '2023-01-19', '2023-01-21', '7890123456789012', 'KMR02'),
('2023-01-22 20:15:00', '2023-01-22', '2023-01-25', '8901234567890123', 'KMR03'),
('2023-01-26 22:00:00', '2023-01-26', '2023-01-28', '9012345678901234', 'KMR04'),
('2023-01-29 23:45:00', '2023-01-29', '2023-01-31', '0123456789012345', 'KMR05');

4. Desain Front End Final Project PBKK


Order Page


Payment Page


Room Page


Admin Dashboard Page


Admin Dashboard Staff Page


Admin Dashboard Order Page


Login Page


Register Page



5. Tentukan Control Yang Akan Menghandle Logika Back End

Kontrol yang menghandle logika backend pada project ini melibatkan beberapa fungsi penting. Berikut ini beberapa kontrol yang akan saya atur:

1. Authentication, Controller ini berguna untuk operasi-operasi terkait dengan login dan register akun.
2. Hotel, Controller ini berguna untuk menunjukkan dan melakukan operasi guna menampilkan data kamar, data staff, data pemesanan dan juga data review dari pelanggan.
3. Order, Controller ini berguna untuk melakukan operasi guna melakukan pemesanan dalam website

Setiap kontrol ini akan memiliki fungsi-fungsi khusus yang bertanggung jawab atas operasi-operasi tertentu dalam backend aplikasi pemesanan kamar hotel, memastikan bahwa logika bisnis dijalankan dengan efisien dan sesuai dengan kebutuhan pengguna.


6. Implementasi Website



Comments

Popular posts from this blog

PBKK - Tugas Pertemuan 6

PBKK - Tugas Pertemuan 3