Belajar Entity Relationship Diagram: Studi kasus Sistem Reservasi Hotel

Hello, spirit of learning. Sistem Reservasi Hotel merupakan salah satu studi kasus yang cukup sering kita jumpai ketika kita melakukan perjalanan jauh. Dalam proses reservasi hotel mungkin kita sudah tau bagaimana cara kita melakukan hal tersebut. Pada kali ini kita akan membuat ERD untuk Sistem Reservasi Hotel dengan acuan kita sebagai pelanggan(customers) dalam mereservasi sebuah kamar hotel.

Entitas

Entitas yang kita perlukan disini kita harus mengetahui gambaran besar yang ada dalam pelaksanaannya. Kita sudah tahu dalam melakukan reservasi terdapat seorang pelanggan yang melakukan reservasi kamar hotel lalu melakukan pembayaran, dari hal tersebut juga kita mendapatkan entitas yang diperlukan sebagai berikut.

ERDSistemReservasiHotel_BuildWithAngga

Atribut

Setelah kita memiliki entitas Pelanggan, Kamar, Reservasi, dan Pembayaran. Kita tentu membutuhkan atribut yang diperlukan untuk terjadinya proses Reservasi Hotel.

  • Pelanggan
ERDSistemReservasiHotel_BuildWithAngga
  • Kamar
ERDSistemReservasiHotel_BuildWithAngga
  • Reservasi
ERDSistemReservasiHotel_BuildWithAngga
  • Pembayaran
ERDSistemReservasiHotel_BuildWithAngga

Hubungan antar Entitas

Dalam menghubungan antar Entitas yang kita miliki dengan atribut yang ada, kita bisa membagi ke hal apa saja yang akan terjadi dalam proses Reservasi Hotel.

  • Pelanggan dapat melakukan banyak Reservasi yang berarti setiap pelangga memungkinkan dapat melakukan lebih dari satu Reservasi
  • Setiap kamar dapat di reservasi berulang kali
  • setiap pembayaran berasal dari satu reservasi

Dengan beberapa hal diatas kita dapat membuat sebuah ERD seperti dibawah.

ERDSistemReservasiHotel_BuildWithAngga

Contoh penerapan dalam SQL

-- Tabel Pelanggan
CREATE TABLE Pelanggan (
    CustomerID INT PRIMARY KEY AUTO_INCREMENT,
    FullName VARCHAR(100) NOT NULL,
    Email VARCHAR(100) NOT NULL,
    PhoneNumber VARCHAR(15),
    Address TEXT
);

-- Tabel Kamar
CREATE TABLE Kamar (
    RoomID INT PRIMARY KEY AUTO_INCREMENT,
    RoomNumber VARCHAR(10) NOT NULL,
    RoomType VARCHAR(50),
    Price DECIMAL(10, 2),
    Status ENUM('Available', 'Booked') DEFAULT 'Available'
);

-- Tabel Reservasi
CREATE TABLE Reservasi (
    ReservationID INT PRIMARY KEY AUTO_INCREMENT,
    CustomerID INT,
    RoomID INT,
    CheckInDate DATE,
    CheckOutDate DATE,
    Status ENUM('Pending', 'Confirmed', 'Cancelled') DEFAULT 'Pending',
    FOREIGN KEY (CustomerID) REFERENCES Pelanggan(CustomerID),
    FOREIGN KEY (RoomID) REFERENCES Kamar(RoomID)
);

-- Tabel Pembayaran
CREATE TABLE Pembayaran (
    PaymentID INT PRIMARY KEY AUTO_INCREMENT,
    ReservationID INT,
    PaymentDate DATE,
    Amount DECIMAL(10, 2),
    PaymentMethod VARCHAR(50),
    FOREIGN KEY (ReservationID) REFERENCES Reservasi(ReservationID)
);

Kesimpulan

Sistem reservasi hotel yang efektif sangat penting untuk memberikan layanan terbaik di industri perhotelan. ERD (Entity Relationship Diagram) dapat membantu dalam desain database yang mencakup entitas utama seperti Pembayaran, Kamar, Reservasi, dan Pelanggan dengan hubungan dan atribut yang jelas. Setiap pelanggan dapat membuat beberapa reservasi, setiap kamar dapat dipesan dalam beberapa reservasi, dan setiap reservasi akan dikenakan biaya satu kali. Pembuatan tabel-tabel yang diperlukan dan pengelolaan data yang efektif dapat dilakukan dengan implementasi SQL yang sesuai. ERD ini memungkinkan sistem reservasi hotel berjalan dengan lebih efisien, sehingga pengalaman pelanggan dan operasional hotel menjadi lebih baik.

Kamu bisa mengikuti rekomendasi Kelas Online Learn Laravel 11: Bikin Website Booking Luxury Hotel | BuildWithAngga untuk mengasah pengetahuan kamu dalam pembuatan ERD dan mempelajari Laravel 11. Let’s get into it.