Belajar Entity Relationship Diagram: Studi kasus Layanan Pesan Antar Makanan Online

Hello, spirit of learning. Dengan kemajuan teknologi saat ini, kita dimudahkan dalam melakukan pemesanan makanan secara online. Tentu banyak dari kita sudah terbiasa dengan layanan yang disediakan oleh banyaknya aplikasi yang sudah kita unduh untuk melakukan hal tersebut. Mari kita bedah bagaimana Layanan Pesan Antar Makanan Online ini dapat berjalan.

Entitas

Ada beberapa hal yang perlu kita garis bawahi untuk gambaran besar entitas yang diperlukan yakni pelanggan, restoran, makanan yang disediakan oleh restoran, pesanan pelanggan, dan juga pembayaran. Kita bisa lihat dibawah pada entitas yang dapat kita buat untuk memenuhi Layanan Pesan Antar Makanan Online.

ERDLayananPesanAntarMakanan_BuildWithAngga

Atribut

Bedasarkan entitas yang kita miliki kita harus mengetahui data apa saja yang diperlukan untuk setiap entitas, pada atribut juga kita harus mengetahui beberapa hal dimana setiap data yang diperlukan akan berdampak pada Hubungan antar Entitas nantinya.

  • Pelanggan
ERDLayananPesanAntarMakanan_BuildWithAngga
  • Restoran
ERDLayananPesanAntarMakanan_BuildWithAngga
  • Makanan
ERDLayananPesanAntarMakanan_BuildWithAngga
  • Pesanan
ERDLayananPesanAntarMakanan_BuildWithAngga
  • Detail Pesanan
ERDLayananPesanAntarMakanan_BuildWithAngga
  • Pembayaran
ERDLayananPesanAntarMakanan_BuildWithAngga

Hubungan antar Entitas

Setelah mempunyai atribut dari setiap Entitas yang diperlukan kita dapat menjabarkan gambaran dari hubungan entitas dimana:

  • Setiap pelanggan dapat membuat banyak pesanan.
  • Setiap restoran dapat menyediakan banyak makanan.
  • Setiap pesanan dapat memiliki banyak detail pesanan.
  • Setiap detail pesanan terhubung dengan satu makanan.
  • Setiap pesanan memiliki satu pembayaran.

Dengan gambaran tersebut juga kita dapat mengimplementasikan kedalam ERD untuk setiap Relationship-nya.

ERDLayananPesanAntarMakanan_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 Restoran
CREATE TABLE Restoran (
    RestaurantID INT PRIMARY KEY AUTO_INCREMENT,
    RestaurantName VARCHAR(100) NOT NULL,
    Address TEXT,
    PhoneNumber VARCHAR(15)
);

-- Tabel Makanan
CREATE TABLE Makanan (
    FoodID INT PRIMARY KEY AUTO_INCREMENT,
    RestaurantID INT,
    FoodName VARCHAR(100) NOT NULL,
    Price DECIMAL(10, 2),
    Description TEXT,
    FOREIGN KEY (RestaurantID) REFERENCES Restoran(RestaurantID)
);

-- Tabel Pesanan
CREATE TABLE Pesanan (
    OrderID INT PRIMARY KEY AUTO_INCREMENT,
    CustomerID INT,
    OrderDate DATE,
    TotalAmount DECIMAL(10, 2),
    Status ENUM('Pending', 'Completed', 'Cancelled') DEFAULT 'Pending',
    FOREIGN KEY (CustomerID) REFERENCES Pelanggan(CustomerID)
);

-- Tabel Detail Pesanan
CREATE TABLE DetailPesanan (
    OrderDetailID INT PRIMARY KEY AUTO_INCREMENT,
    OrderID INT,
    FoodID INT,
    Quantity INT,
    SubTotal DECIMAL(10, 2),
    FOREIGN KEY (OrderID) REFERENCES Pesanan(OrderID),
    FOREIGN KEY (FoodID) REFERENCES Makanan(FoodID)
);

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

Kesimpulan

Langkah penting untuk memastikan sistem yang efisien dalam mengelola informasi pelanggan, restoran, makanan, pesanan, dan pembayaran adalah merancang ERD untuk layanan pesan antar makanan online. Pelanggan, restoran, makanan, pesanan, detail pesanan, dan pembayaran adalah entitas utama yang diidentifikasi, masing-masing dengan atribut dan hubungan yang terkait. Tabel-tabel ini dibuat dan dihubungkan dengan baik, yang memungkinkan pengelolaan data yang efisien, dengan implementasi SQL yang sesuai. ERD ini memungkinkan sistem berjalan dengan efisien, mendukung operasi harian, dan meningkatkan pengalaman pelanggan saat memesan makanan secara online.

Kamu bisa melihat rekomendasi Kelas Online Web Development Laravel 11, Filament, MySQL: Sewa Barang App | BuildWithAngga untuk mengasah skill kamu dalam membuat sebuah ERD dengan langsung mencobanya dalam sebuah project.