Mohon tunggu...
Muhammad Aksal Prasdion Aditya
Muhammad Aksal Prasdion Aditya Mohon Tunggu... Mahasiswa - Universitas Halu Oleo

F1G123023 - Menyediakan konten seputar teknologi informasi.

Selanjutnya

Tutup

Ilmu Alam & Tekno

Merancang ERD, EERD, dan Membuat Aplikasi Manajemen Reservasi Restoran Menggunakan Yii Framework

30 Desember 2024   20:04 Diperbarui: 30 Desember 2024   20:39 52
+
Laporkan Konten
Laporkan Akun
Kompasiana adalah platform blog. Konten ini menjadi tanggung jawab bloger dan tidak mewakili pandangan redaksi Kompas.
Lihat foto
Gambar 2 (Dok. Pribadi)

A. Studi Kasus

Sebuah restoran modern ingin meningkatkan efisiensi operasional dengan membangun sistem manajemen berbasis data untuk mempermudah proses reservasi meja, manajemen pelanggan, tugas staff, dan pencatatan pembayaran. Sistem ini diharapkan dapat mencatat data reservasi secara akurat, mengelola alokasi meja, serta memonitor pembayaran secara real-time. 

B. Rancangan ERD

Rancangan ERD dibuat menggunak aplikasi yEd yang dapat dilihat pada gambar 1 berikut:

Berikut adalah penjelasan mengenai relasi antara entitas Pelanggan, Staff, Reservasi, Meja, dan Pembayaran dalam sebuah sistem manajemen restoran, misalnya:

1. Entitas dan Relasi

a. Pelanggan

Atribut utama: ID_Pelanggan, Nama, Kontak, Email.
Pelanggan dapat melakukan reservasi.
Relasi: Satu pelanggan dapat membuat satu atau lebih reservasi, tetapi satu reservasi hanya dapat dilakukan oleh satu pelanggan. (One-to-Many).

b. Staff

Atribut utama: ID_Staff, Nama, Posisi.
Staff bertugas mengelola reservasi dan memastikan pembayaran selesai.
Relasi:
Satu reservasi dapat dikelola oleh satu atau lebih staff (misalnya: pelayan dan manajer). (One-to-Many).
Dalam implementasi, hubungan ini dapat menggunakan entitas penghubung seperti "Tugas_Staff" untuk mendetailkan tugas setiap staff dalam setiap reservasi.

c. Reservasi

Atribut utama: ID_Reservasi, Tanggal, Waktu, Status.
Relasi:
Reservasi dibuat oleh pelanggan (hubungan dengan entitas Pelanggan).
Reservasi juga berhubungan dengan entitas Meja, di mana satu reservasi dapat mencakup satu atau lebih meja yang dicadangkan. (Many-to-Many).
Reservasi dapat menghasilkan pembayaran (hubungan dengan entitas Pembayaran). Satu reservasi biasanya menghasilkan satu pembayaran. (One-to-One).

d. Meja

Atribut utama: ID_Meja, Kapasitas, Status.
Meja adalah bagian dari reservasi.
Relasi:
Satu meja dapat dicadangkan untuk banyak reservasi (misalnya, pada waktu berbeda). (One-to-Many).
Hubungan ini sering diimplementasikan menggunakan entitas penghubung seperti "Detail_Reservasi".

e. Pembayaran

Atribut utama: ID_Pembayaran, Metode, Jumlah.
Pembayaran adalah hasil akhir dari proses reservasi.
Relasi:
Satu reservasi menghasilkan satu pembayaran, tetapi pembayaran harus terkait dengan pelanggan yang melakukan reservasi. (One-to-One).
Pembayaran juga dapat dicatat oleh staff tertentu, terutama jika ada proses manual. (One-to-Many atau Many-to-Many).

C. Perancangan EERD

Berikut adalah perancangan EERD menggunakan MySQL Workbench yang dapat dilihat pada gambar 2 berikut:

Gambar 2 (Dok. Pribadi)
Gambar 2 (Dok. Pribadi)

Deskripsi EERD:

a. Atribut Pelanggan:

id_pelanggan : INT(11), NOT NULL, digunakan sebagai kunci utama.
nama : VARCHAR(45), NULL, menyimpan nama pelanggan.
telp : VARCHAR(45), NULL, menyimpan nomor telepon pelanggan.
Deskripsi: Tabel ini menyimpan informasi pelanggan yang melakukan reservasi.

b. Atribut Staff:

id_staff : INT(11), NOT NULL, digunakan sebagai kunci utama.
nama : VARCHAR(45), NULL, menyimpan nama staff.
peran : VARCHAR(45), NULL, menyimpan peran atau posisi kerja staff.
Deskripsi: Tabel ini mencatat informasi mengenai staff restoran.

c. Atribut Meja:

id_meja : INT(11), NOT NULL, digunakan sebagai kunci utama.
kapasitas : INT(11), NULL, menyimpan kapasitas meja (jumlah kursi).
status : ENUM('kosong', 'terisi'), NULL, menyimpan status meja.
Deskripsi: Tabel ini mengelola informasi mengenai meja yang tersedia.

d. Atribut Reservasi:
id_reservasi : INT(11), NOT NULL, digunakan sebagai kunci utama.
waktu_reservasi : DATE, NULL, menyimpan tanggal reservasi.
slot_reservasi : VARCHAR(45), NULL, menyimpan slot waktu reservasi.
status : ENUM('dikonfirmasi', 'dibatalkan', 'selesai'), NULL, menyimpan status reservasi.
meja_id_meja : INT(11), NOT NULL, foreign key ke id_meja di tabel Meja.
pelanggan_id_pelanggan : INT(11), NOT NULL, foreign key ke id_pelanggan di tabel Pelanggan.
staff_id_staff1 : INT(11), NOT NULL, foreign key ke id_staff di tabel Staff.
Deskripsi: Tabel ini mengelola data reservasi dari pelanggan.

e. Atribut Pembayaran:

id_pembayaran : INT(11), NOT NULL, digunakan sebagai kunci utama.
jumlah : INT(11), NULL, menyimpan jumlah pembayaran.
metode_pembayaran : VARCHAR(45), NULL, menyimpan metode pembayaran (contoh: tunai, kartu).
reservasi_id_reservasi1 : INT(11), NOT NULL, foreign key ke id_reservasi di tabel Reservasi.
Deskripsi: Tabel ini mencatat informasi pembayaran yang terkait dengan reservasi pelanggan.

Relasi Antar-Tabel:

  • Relasi Pelanggan - Reservasi: pelanggan_id_pelanggan di tabel Reservasi adalah foreign key yang menghubungkan ke id_pelanggan di tabel Pelanggan.
  • Relasi Staff - Reservasi: staff_id_staff1 di tabel Reservasi adalah foreign key yang menghubungkan ke id_staff di tabel Staff.
  • Relasi Meja - Reservasi: meja_id_meja di tabel Reservasi adalah foreign key yang menghubungkan ke id_meja di tabel Meja.
  • Relasi Reservasi - Pembayaran: reservasi_id_reservasi1 di tabel Pembayaran adalah foreign key yang menghubungkan ke id_reservasi di tabel Reservasi.

D. Pembuatan Aplikasi

Setelah perancangan ERD dan EERD selesai, tahap berikutnya adalah mengimplementasikan desain tersebut ke dalam aplikasi berbasis web. Untuk proses ini, digunakan Yii Framework, salah satu framework PHP yang terkenal karena kemampuannya mempermudah pengembangan aplikasi melalui fitur bawaan seperti CRUD (Create, Read, Update, Delete).

Yii Framework menawarkan fitur scaffolding yang memungkinkan pengembang menghasilkan kode dasar dengan cepat untuk mengelola setiap entitas yang telah dirancang dalam ERD. Fitur ini sangat berguna dalam mempercepat proses pengembangan, terutama untuk aplikasi yang memiliki banyak entitas dan relasi antar tabel, seperti aplikasi manajemen reservasi restoran.

Berikut adalah langkah-langkah yang diperlukan untuk membuat CRUD bagi setiap entitas, mulai dari instalasi hingga pengelolaan data dalam modul yang relevan.

Setelah menyelesaikan perancangan ERD, langkah selanjutnya adalah mengembangkan aplikasi berbasis Yii Framework. Berikut adalah panduan pembuatan CRUD untuk entitas dalam aplikasi restoran ini.

Langkah 1: Instalasi Yii Framework

Langkah awal adalah menginstal Yii Framework jika belum tersedia di sistem. Anda dapat mengunduhnya melalui Composer dengan perintah berikut:

composer create-project --prefer-dist yiisoft/yii2-app-advanced restoran

Setelah instalasi selesai, masuk ke direktori proyek dengan perintah berikut:

cd restoran

Langkah 2: Membuat Model Menggunakan Gii

Setelah aplikasi terinstal, langkah berikutnya adalah membuat model untuk setiap tabel database menggunakan Gii, alat generator bawaan Yii Framework yang dapat menghasilkan model, controller, dan view secara otomatis.

Sebagai contoh, untuk membuat model Reservasi:

  1. Akses URL Gii di browser: http://localhost/restoran/index.php?r=gii.
  2. Pilih opsi "Model Generator" dan masukkan nama tabel serta nama kelas model, misalnya "Reservasi" untuk tabel reservasi.
  3. Klik "Preview", lalu pilih "Generate" untuk membuat model.
  4. Ulangi proses ini untuk tabel lain, seperti meja, menu, pelanggan, pembayaran, dan staff.

Langkah 3: Membuat CRUD Menggunakan Gii

Setelah model dibuat, Anda dapat melanjutkan dengan membuat CRUD (Create, Read, Update, Delete) untuk setiap entitas menggunakan Gii.

Langkah-langkahnya:

  1. Akses URL Gii di browser: http://localhost/restoran/index.php?r=gii/crud.
  2. Pilih model yang telah dibuat (misalnya Reservasi) dan tentukan nama controller, seperti ReservasiController.
  3. Klik "Preview", lalu pilih "Generate".
  4. Proses ini akan menghasilkan controller dan view untuk fitur CRUD Reservasi. Ulangi langkah ini untuk entitas lainnya, seperti meja, menu, pelanggan, pembayaran, dan staff.

Langkah 4: Menambahkan Menu Navigasi di Dashboard

Agar pengguna dapat dengan mudah mengakses berbagai fitur, tambahkan menu navigasi pada dashboard di file views/layouts/main.php.

Langkah 5: Menjalankan Aplikasi

Untuk menjalankan aplikasi, gunakan perintah berikut:

php yii serve

Setelah itu, aplikasi dapat diakses melalui browser di alamat: http://localhost:8080.

Kesimpulan

Artikel ini membahas cara membangun aplikasi manajemen reservasi restoran berbasis web menggunakan Yii Framework. Dimulai dari merancang ERD, pembuatan model, controller, dan view menggunakan alat generator Gii, hingga menambahkan menu navigasi pada dashboard. Dengan langkah-langkah ini, Anda dapat membangun aplikasi yang memudahkan pengelolaan reservasi meja, menu, pelanggan, pembayaran, dan staff di restoran.

Untuk video tutorial-nya dapat dilihat pada link YouTube berikut:


Baca konten-konten menarik Kompasiana langsung dari smartphone kamu. Follow channel WhatsApp Kompasiana sekarang di sini: https://whatsapp.com/channel/0029VaYjYaL4Spk7WflFYJ2H

HALAMAN :
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
Mohon tunggu...

Lihat Konten Ilmu Alam & Tekno Selengkapnya
Lihat Ilmu Alam & Tekno Selengkapnya
Beri Komentar
Berkomentarlah secara bijaksana dan bertanggung jawab. Komentar sepenuhnya menjadi tanggung jawab komentator seperti diatur dalam UU ITE

Belum ada komentar. Jadilah yang pertama untuk memberikan komentar!
LAPORKAN KONTEN
Alasan
Laporkan Konten
Laporkan Akun