EAS - PPL A
EVALUASI AKHIR SEMESTER
PERANCANGAN PERANGKAT LUNAK
Model Bisnis - Hotel
Nama : Danno Denis Dhaifullah
NRP : 5025211027
Kelas : PPL - A
Deskripsi Model Binsis
Reservasi dan Pemesanan
- Sistem Pemesanan Online: Memungkinkan pelanggan untuk memesan kamar secara langsung melalui situs web atau aplikasi.
- Integrasi OTA (Online Travel Agencies): Menghubungkan hotel dengan platform seperti Booking.com, Expedia, dll.
- Manajemen Inventaris: Mengelola ketersediaan kamar secara real-time.
Manajemen Properti
- Check-in dan Check-out: Memproses kedatangan dan keberangkatan tamu.
- Penugasan Kamar: Menentukan kamar yang akan ditempati oleh tamu.
- Manajemen Housekeeping: Melacak dan mengatur jadwal pembersihan kamar.
- Pengelolaan Pemeliharaan: Memantau dan mengatur perbaikan dan pemeliharaan properti.
Layanan Pelanggan
- Sistem Pelayanan Tamu: Menyediakan layanan tambahan seperti pemesanan makanan, layanan laundry, dll.
- Manajemen Keluhan dan Umpan Balik: Mengelola keluhan dan umpan balik dari tamu untuk meningkatkan layanan.
- Loyalty Programs: Program untuk meningkatkan retensi pelanggan dan memberikan insentif kepada tamu setia.
Manajemen Keuangan
- Faktur dan Pembayaran: Mengelola proses penagihan dan pembayaran.
- Laporan Keuangan: Menghasilkan laporan keuangan untuk analisis bisnis.
- Manajemen Harga dan Diskon: Mengatur harga kamar dan promosi.
Manajemen Sumber Daya Manusia
- Jadwal Karyawan: Mengatur jadwal kerja staf.
- Pelacakan Kinerja: Memantau kinerja karyawan.
- Penggajian: Mengelola pembayaran gaji dan tunjangan.
Analisis dan Pelaporan
- Laporan Operasional: Melacak kinerja harian hotel.
- Analisis Tren: Mengidentifikasi tren pemesanan dan preferensi tamu.
- Strategi Pemasaran: Menyusun strategi pemasaran berdasarkan data dan analisis.
Kemananan dan Kepatuhan
- Keamanan Data: Melindungi data pelanggan dan transaksi keuangan.
- Kepatuhan Regulasi: Memastikan hotel mematuhi semua peraturan dan standar industri.
Perangkat Lunak yang Digunakan
Berdasarkan referensi yang diberikan, berikut adalah identifikasi perangkat lunak yang diperlukan untuk sistem manajemen hotel, beserta alasannya:
Reservation System (Sistem Reservasi)
- Alasan: Mengelola reservasi kamar secara online dan offline, termasuk pemesanan, pembatalan, dan modifikasi. Sistem ini penting untuk memastikan ketersediaan kamar dan mengelola inventaris.
- Contoh: Opera Reservation System, Cloudbeds
Property Management System (PMS)
- Alasan: Mengelola operasional harian hotel seperti check-in, check-out, penugasan kamar, dan housekeeping. PMS adalah pusat dari operasional hotel yang efisien.
- Contoh: Opera PMS, RoomRaccoon
Channel Manager
- Alasan: Menyinkronkan inventaris dan tarif kamar di berbagai platform OTA (Online Travel Agencies). Ini membantu menghindari overbooking dan memastikan tarif yang konsisten di semua saluran.
- Contoh: SiteMinder, RateGain
Booking Engine
- Alasan: Memungkinkan tamu untuk memesan kamar langsung melalui situs web hotel. Ini membantu meningkatkan pemesanan langsung dan mengurangi ketergantungan pada OTA.
- Contoh: BookingSuite, Bookassist
Customer Relationship Management (CRM)
- Alasan: Mengelola hubungan dengan tamu, termasuk komunikasi, umpan balik, dan kampanye pemasaran yang dipersonalisasi. CRM membantu dalam membangun loyalitas pelanggan.
- Contoh: Revinate, Salesforce
Revenue Management System (RMS)
- Alasan: Mengoptimalkan tarif kamar berdasarkan permintaan, kompetisi, dan data historis. RMS membantu memaksimalkan pendapatan melalui penetapan harga yang dinamis.
- Contoh: IDeaS Revenue Solutions, Duetto
Housekeeping Management
- Alasan: Mengelola tugas-tugas housekeeping, memastikan kamar bersih dan siap untuk tamu. Sistem ini juga membantu dalam pelacakan dan manajemen pemeliharaan.
- Contoh: RoomChecking, Optii Solutions
Point of Sale (POS) System
- Alasan: Mengelola transaksi di restoran, bar, dan layanan lainnya dalam hotel. POS system memungkinkan integrasi dengan PMS untuk penagihan yang mulus.
- Contoh: Toast, Square for Restaurants
Human Resources Management (HRM)
- Alasan: Mengelola jadwal karyawan, pelacakan kinerja, penggajian, dan kepatuhan regulasi. HRM memastikan bahwa staf hotel dikelola dengan baik dan operasional berjalan lancar.
- Contoh: BambooHR, Gusto
Business Intelligence and Reporting**
- Alasan: Alat ini membantu dalam analisis data dan pelaporan kinerja hotel. Ini memberikan wawasan yang mendalam tentang tren pemesanan, kinerja finansial, dan kepuasan tamu.
- Contoh: Tableau, Power BI
Security and Compliance**
- Alasan: Melindungi data pelanggan dan memastikan kepatuhan regulasi. Ini penting untuk menjaga kepercayaan pelanggan dan mematuhi standar keamanan data.
- Contoh: Okta, Symantec
Integrasi dan Middleware**
- Alasan: Mengintegrasikan berbagai sistem yang digunakan dalam hotel (PMS, CRM, RMS, dll.) agar dapat berkomunikasi dan berbagi data secara efisien.
- Contoh: Zapier, MuleSoft
Dengan menggunakan kombinasi perangkat lunak ini, hotel dapat meningkatkan efisiensi operasional, memberikan layanan yang lebih baik kepada tamu, dan memaksimalkan pendapatan. Pemilihan perangkat lunak yang tepat tergantung pada kebutuhan spesifik hotel, ukuran properti, dan anggaran yang tersedia.
Rancangan Perangkat Lunak
Spesifikasi Kebutuhan
Kebutuhan Fungsional
- Manajemen Reservasi Kamar
- Manajemen Check-In dan Check-Out
- Manajemen Layanan Tamu
- Pembayaran dan Faktur
- Manajemen Pengguna dan Akses
- Notifikasi dan Komunikasi
- Pelaporan dan Analitik
Kebutuhan Non Fungsional
- Keamanan
- Kinerja
- Skalabilitas
- Reliabilitas
- Usability
Estimasi Kapasitas Sistem
- Jumlah Pengguna Aktif Harian: 1000 - 5000 pengguna.
- Jumlah Transaksi Pemesanan Harian: 200 - 1000 transaksi.
- Data yang Disimpan: 1 TB - 5 TB untuk data reservasi, pengguna, dan log.
- Ketersediaan Layanan: 24/7 dengan downtime minimal.
High Level Design
Komponen Utama:
User Interface Layer
- Aplikasi web dan seluler untuk akses pengguna.
- Antarmuka khusus untuk staf dan administrator.
Application Layer
- Lapisan Layanan (Service Layer): Mengelola logika bisnis terkait pemesanan, pembayaran, dan pengelolaan layanan tamu.
- Gerbang API (API Gate): Menyediakan titik akhir untuk integrasi dengan layanan eksternal dan aplikasi pihak ketiga.
Data Layer
- Database Relasional: MySQL/PostgreSQL untuk menyimpan data reservasi dan pengguna.
- Database NoSQL: MongoDB untuk menyimpan data log dan analitik.
- Cache: Redis untuk mempercepat akses data.
Integration Layer
- Payment Gateway Integration: Stripe dan PayPal untuk pemrosesan pembayaran.
- Notification Service: Twilio dan SendGrid untuk komunikasi dan pemberitahuan.
Security Layer
- Authentication and Authorization: OAuth 2.0, JWT untuk otentikasi dan otorisasi.
- Data Encryption: SSL/TLS untuk enkripsi data.
Monitoring and Logging
- Monitoring Tools: Prometheus, Grafana untuk pemantauan kinerja sistem.
- Logging Mechanisms: ELK Stack (Elasticsearch, Logstash, Kibana) untuk analisis log dan pelacakan.
Low Level Design
Komponen Detail:
Booking Service
- Pencarian Kamar: Memanfaatkan indeks pencarian untuk mempercepat pencarian ketersediaan kamar.
- Pemesanan: Proses transaksi atomik untuk menjaga konsistensi data.
Payment Service
- Pembayaran: Integrasi dengan gateway pembayaran melalui API.
- Pengembalian Dana: Logika untuk pengembalian dana sesuai kebijakan pembatalan.
Notification Service
- Email Notification: Integrasi dengan SMTP server untuk pengiriman email.
- SMS Notification: Integrasi dengan Twilio untuk pengiriman SMS.
User Management Service
- Registrasi dan Otentikasi: Registrasi dengan verifikasi email dan otentikasi menggunakan OAuth
- Manajemen Profil: CRUD (Create, Read, Update, Delete) operasi untuk profil pengguna.
Use Case Diagram
Berikut adalah Aktor utama dalam sistem:
- Tamu (Guest): Tamu dapat mencari kamar yang tersedia dan melakukan pemesanan.
- Resepsionis (Receptionist): Bertanggung jawab untuk menambahkan dan mengubah informasi kamar, membuat reservasi, serta mengelola check-in dan check-out tamu.
- Sistem (System): Mengirim notifikasi terkait pemesanan kamar, pembatalan, dan informasi lainnya.
- Manajer (Manager): Bertanggung jawab untuk menambah pekerja baru.
- Petugas Kebersihan (Housekeeper): Menambahkan dan mengubah catatan kebersihan kamar.
- Pelayan (Server): Menambahkan dan mengubah catatan layanan kamar.
Berikut adalah use case utama dari Sistem Manajemen Hotel:
- Tambah/Hapus/Ubah Kamar (Add/Remove/Edit Room): Menambah, menghapus, atau mengubah informasi kamar dalam sistem.
- Cari Kamar (Search Room): Mencari kamar berdasarkan tipe dan ketersediaan.
- Daftar atau Batalkan Akun (Register or Cancel an Account):
- Menambahkan anggota baru atau membatalkan keanggotaan yang sudah ada.
- Pesan Kamar (Book Room): Untuk memesan kamar.
- Check-in (Check-in): Memproses check-in tamu sesuai dengan pemesanan mereka.
- Check-out (Check-out): Melacak akhir pemesanan dan mengembalikan kunci kamar.
- Tambah Biaya Kamar (Add Room Charge): Untuk menambahkan biaya layanan kamar ke tagihan pelanggan.
- Perbarui Catatan Kebersihan (Update Housekeeping Log): Menambahkan atau memperbarui catatan kebersihan kamar.
CLASS DIAGRAM
Berikut adalah kelas utama dari Sistem Manajemen Hotel:
Hotel dan HotelLocation
- Sistem akan mendukung beberapa titik lokasi hotel.
Room (Kamar)
- Kelas dasar sistem ini memiliki setiap kamar yang diidentifikasi secara unik dengan nomor kamar.
- Properti-properti termasuk Gaya Kamar, Harga Pemesanan, dan lain-lain.
Account (Akun)
- Kita akan memiliki berbagai jenis akun dalam sistem:
- Tamu (Guest): Untuk mencari dan memesan kamar.
- Resepsionis (Receptionist): Untuk mengelola kamar dan reservasi.
- Petugas Kebersihan (Housekeeper): Untuk mencatat kebersihan kamar.
- Pelayan (Server): Untuk mengelola layanan kamar.
- Kita akan memiliki berbagai jenis akun dalam sistem:
RoomBooking (Pemesanan Kamar)
- Bertanggung jawab untuk mengelola pemesanan pada setiap kamar.
Notification (Notifikasi)
- Mengurus pengiriman notifikasi kepada tamu yang menginap di hotel.
RoomHouseKeeping (Kebersihan Kamar)
- Mencatat seluruh catatan kebersihan pada kamar.
RoomCharge (Biaya Kamar)
- Menyimpan informasi rinci tentang berbagai jenis layanan kamar yang diminta oleh tamu.
Invoice (Faktur)
- Item faktur untuk setiap biaya terhadap kamar.
RoomKey (Kunci Kamar)
- Setiap kamar dapat dilengkapi dengan kartu kunci elektronik yang memiliki barcode dan diidentifikasi secara unik oleh ID kunci.
Desain Database
SQL Script
CREATE TABLE Address (
id_address SERIAL PRIMARY KEY,
street VARCHAR(255),
city VARCHAR(255),
state VARCHAR(255),
zip_code VARCHAR(10),
country VARCHAR(255)
);
CREATE TABLE Account (
id_account SERIAL PRIMARY KEY,
password VARCHAR(255),
status ENUM('ACTIVE', 'CLOSED', 'CANCELED', 'BLACKLISTED', 'BLOCKED') DEFAULT 'ACTIVE',
account_type ENUM('MEMBER', 'GUEST', 'MANAGER', 'RECEPTIONIST'),
name VARCHAR(255),
address_id INT,
email VARCHAR(255),
phone VARCHAR(20),
FOREIGN KEY (address_id) REFERENCES Address(id_address)
);
CREATE TABLE Hotel (
id_hotel SERIAL PRIMARY KEY,
name VARCHAR(255)
);
CREATE TABLE HotelLocation (
id_hotelLocation SERIAL PRIMARY KEY,
hotel_id INT,
name VARCHAR(255),
address_id INT,
FOREIGN KEY (hotel_id) REFERENCES Hotel(id_hotel),
FOREIGN KEY (address_id) REFERENCES Address(id_address)
);
CREATE TABLE Room (
id_room SERIAL PRIMARY KEY,
hotel_location_id INT,
room_number INT UNIQUE,
room_style ENUM('STANDARD', 'DELUXE', 'FAMILY_SUITE', 'BUSINESS_SUITE'),
status ENUM('AVAILABLE', 'RESERVED', 'OCCUPIED', 'NOT_AVAILABLE', 'BEING_SERVICED', 'OTHER'),
booking_price DECIMAL(10, 2),
is_smoking BOOLEAN,
FOREIGN KEY (hotel_location_id) REFERENCES HotelLocation(id_hotelLocation)
);
CREATE TABLE RoomKey (
id_roomKey SERIAL PRIMARY KEY,
key_id VARCHAR(255) UNIQUE,
barcode VARCHAR(255),
issued_at DATE DEFAULT CURRENT_DATE,
is_active BOOLEAN,
is_master BOOLEAN,
room_id INT,
FOREIGN KEY (room_id) REFERENCES Room(id_room)
);
CREATE TABLE RoomHouseKeeping (
id_roomHouseKeeping SERIAL PRIMARY KEY,
description TEXT,
start_datetime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
duration INTERVAL,
house_keeper_id INT,
room_id INT,
FOREIGN KEY (house_keeper_id) REFERENCES Account(id),
FOREIGN KEY (room_id) REFERENCES Room(id_roomKey)
);
CREATE TABLE RoomBooking (
id_roomBooking SERIAL PRIMARY KEY,
reservation_number VARCHAR(255) UNIQUE,
start_date DATE,
duration_in_days INT,
status ENUM('REQUESTED', 'PENDING', 'CONFIRMED', 'CHECKED_IN', 'CHECKED_OUT', 'CANCELLED', 'ABANDONED'),
checkin DATE,
checkout DATE,
guest_id INT,
room_id INT,
FOREIGN KEY (guest_id) REFERENCES Account(id),
FOREIGN KEY (room_id) REFERENCES Room(id_room)
);
CREATE TABLE Notification (
id_notification SERIAL PRIMARY KEY,
user_id INT,
message TEXT,
date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES Account(id_user)
);
CREATE TABLE RoomCharge (
id_roomCharge SERIAL PRIMARY KEY,
issue_at DATE DEFAULT CURRENT_DATE,
description TEXT,
amount DECIMAL(10, 2),
room_id INT,
FOREIGN KEY (room_id) REFERENCES Room(id_room)
);
CREATE TABLE Invoice (
id_invoice SERIAL PRIMARY KEY,
booking_id INT,
total_amount DECIMAL(10, 2),
FOREIGN KEY (booking_id) REFERENCES RoomBooking(id_roomBooking)
);
CREATE TABLE InvoiceItem (
id_invoiceItem SERIAL PRIMARY KEY,
invoice_id INT,
room_charge_id INT,
amount DECIMAL(10, 2),
FOREIGN KEY (invoice_id) REFERENCES Invoice(id),
FOREIGN KEY (room_charge_id) REFERENCES RoomCharge(id_roomCharge)
);








Comments
Post a Comment