Belajar Entity Relationship Diagram: Studi kasus Sistem Reservasi Maskapai Penerbangan

Hello, spirit of learning. Mungkin kita tidak asing dalam terlibat dengan Sistem Reservasi karena sebelumnya kita sudah pernah membahas mengenai Sistem Reservasi Hotel. Tidak jauh berbeda dengan yang sebelumnya namun kali ini kita akan membedah lebih dalam pada bagian atribut untuk mengasah kemampuan kita dalam membuat suatu Entity Relationship Diagram.

Entitas

Pada bagian entitas disini tentu sedikit berbeda dengan adanya hal lain yang terdapat dalam maskapai penerbangan itu sendiri. Jadi entitas yang dibutuhkan terdiri dari Pelanggan, Penerbangan, Reservasi, Kursi, dan Pembayaran.

ERDSistemReservasiMaskapaiPenerbangan_BuildWithAngga

Atribut

Dalam pembuatan atribut selalu ingat bahwa atribut dapat mempengaruhi Hubungan antar Entitas setelahnya dan ini juga akan berdampak pada database yang akan dibuat. Kita tidak akan membahas mengenai jenis atribut namun kita harus mengingat 2 jenis atribut yang sering digunakan yakni Atribut Kunci(Key), Atribut Gabungan(Tunggal dan Multivalue). Pada pembuatan ERD biasanya kita bisa menandakan Key dengan menambahkan “id” dibelakang setiap nama atribut (nama atribut_id). Key sendiri biasanya dibedakan menjadi 2, Kunci Utama (Primary Key) sebagai penanda kunci atribut pada entitas tersebut dan Kunci Tamu (Foreign Key) sebagai penanda kunci atribut pada entitas lain yang akan berhubungan.

  • Pelanggan
ERDSistemReservasiMaskapaiPenerbangan_BuildWithAngga
  • Penerbangan
ERDSistemReservasiMaskapaiPenerbangan_BuildWithAngga
  • Reservasi
ERDSistemReservasiMaskapaiPenerbangan_BuildWithAngga
  • Kursi
ERDSistemReservasiMaskapaiPenerbangan_BuildWithAngga
  • Pembayaran
ERDSistemReservasiMaskapaiPenerbangan_BuildWithAngga

Hubungan antar Entitas

Seperti yang kita tahu dalam studi kasus sebelumnya mengenai sistem reservasi tentu dalam reservasi terdapat pelanggan dan hal yang akan direservasi. Dalam konteks kali ini Reservasi ditujukan untuk Kursi Maskapai yang akan kita gunakan. Beberapa hal yang dapat kita jadikan poin dalam Hubungan antar Entitas:

  • Pelanggan dapat melakukan banyak reservasi
  • Setiap penerbangan terdapat banyak kursi dari banyaknya reservasi
  • Setiap reservasi terdapat satu pembayaran
ERDSistemReservasiMaskapaiPenerbangan_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 Penerbangan
CREATE TABLE Penerbangan (
    FlightID INT PRIMARY KEY AUTO_INCREMENT,
    FlightNumber VARCHAR(20) NOT NULL,
    DepartureAirport VARCHAR(100),
    ArrivalAirport VARCHAR(100),
    DepartureTime DATETIME,
    ArrivalTime DATETIME
);

-- Tabel Reservasi
CREATE TABLE Reservasi (
    ReservationID INT PRIMARY KEY AUTO_INCREMENT,
    CustomerID INT,
    FlightID INT,
    ReservationDate DATE,
    Status ENUM('Confirmed', 'Cancelled') DEFAULT 'Confirmed',
    FOREIGN KEY (CustomerID) REFERENCES Pelanggan(CustomerID),
    FOREIGN KEY (FlightID) REFERENCES Penerbangan(FlightID)
);

-- Tabel Kursi
CREATE TABLE Kursi (
    SeatID INT PRIMARY KEY AUTO_INCREMENT,
    FlightID INT,
    SeatNumber VARCHAR(10) NOT NULL,
    Class ENUM('Economy', 'Business', 'First') DEFAULT 'Economy',
    Availability ENUM('Available', 'Booked') DEFAULT 'Available',
    FOREIGN KEY (FlightID) REFERENCES Penerbangan(FlightID)
);

-- 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

Entity Relationship Diagram yang dirancang untuk Sistem Reservasi Maskapai Penerbangan mencakup entitas utama seperti penerbangan, reservasi, kursi, pembayaran, dan pelanggan, masing-masing dengan hubungan dan atribut yang jelas. Pengelolaan informasi yang efektif tentang pelanggan, penerbangan, reservasi, ketersediaan kursi, dan pembayaran. Pembuatan tabel-tabel yang diperlukan dan penghubung data yang baik dapat dipastikan melalui implementasi SQL yang tepat. Maskapai mendapat manfaat dari sistem reservasi yang efektif untuk mengelola pemesanan, memantau ketersediaan kursi, dan memproses pembayaran. Pada akhirnya, ini menghasilkan operasi yang lebih efisien dan kepuasan pelanggan yang lebih tinggi. Selalu ingat setiap atribut memiliki potensi untuk mempengaruhi hubungan antar entitas, yang akan berdampak pada database yang sedang dikembangkan. Atribut kunci dan atribut gabungan (tunggal dan multivalue) adalah dua kategori atribut yang perlu diingat. Ketika membuat ERD, kita bisa menambahkan "id" di akhir setiap nama atribut (attribute_name_id) untuk mengindikasikan sebuah kunci. Secara umum, ada dua jenis kunci: Primary Key, yang berfungsi sebagai pengenal kunci atribut entitas, dan Foreign Key, yang berfungsi sebagai pengenal kunci atribut entitas dalam entitas yang terhubung.

Jika kamu tertarik dalam pembuatan project yang serupa dengan studi kasus Sistem Reservasi Maskapai Penerbangan, kamu bisa mengikuti rekomendasi Kelas Online Learn UI/UX Design & Laravel 11:Website Booking Travel Online | BuildWithAngga, kamu juga akan belajar bagaimana membuat project menggunakan Laravel 11.