Kalau kamu penasaran gimana caranya membuat aplikasi booking hotel dengan Laravel & MySQL, kamu datang ke tempat yang pas. Bayangin aja kamu bisa bikin aplikasi kayak Traveloka versi mini — lengkap dengan fitur pencarian kamar, booking, dan bahkan pembayaran online. Keren kan?
Laravel dan MySQL ini ibarat duo maut buat bikin aplikasi web. Laravel terkenal karena rapi, gampang dibaca, dan punya banyak fitur bawaan. Sedangkan MySQL, ya udah kayak sahabat lama yang tangguh dan bisa diandalkan buat urusan database. Nah, di artikel ini kita bakal ngebahas langkah demi langkah dari awal banget sampai aplikasi booking hotel kamu bisa jalan dengan lancar.
Siap? Yuk mulai!
Kenapa Harus Laravel dan MySQL Buat Aplikasi Booking Hotel?
Jadi gini, Laravel tuh semacam “alat ajaib” buat ngembangin web berbasis PHP. Framework ini punya struktur yang jelas, sintaks yang enak dibaca, dan banyak banget fitur yang ngebantu kamu fokus ke logika aplikasi tanpa ribet mikirin hal-hal teknis kecil.
Nah, MySQL di sisi lain, adalah sistem database yang udah terbukti cepat, stabil, dan gampang diintegrasiin sama Laravel. Cukup ubah beberapa baris di file .env, dan boom — koneksi database udah siap dipakai.
Dua teknologi ini bisa dibilang pasangan sempurna buat bikin aplikasi booking hotel:
-
Laravel = otak dan logika
-
MySQL = ingatan dan penyimpanan data
Kalau kamu ngerti keduanya, bikin sistem pemesanan hotel tuh rasanya kayak main puzzle — tinggal nyusun bagian-bagiannya aja.
Fitur Wajib di Aplikasi Booking Hotel
Sebelum kita mulai ngoding, yuk bahas dulu fitur apa aja yang harus ada di sebuah aplikasi booking hotel biar kelihatan keren dan berguna buat pengguna:
-
Login & Register
Supaya orang bisa pesan kamar, mereka harus punya akun dulu. Laravel udah nyiapin sistem autentikasi bawaan, jadi kamu tinggal pakai aja. -
Cari dan Filter Kamar Hotel
Ini fitur paling penting. Pengguna bisa nyari kamar berdasarkan kota, tanggal, harga, atau fasilitas tertentu. -
Halaman Detail Hotel
Tiap hotel harus punya halaman khusus yang nampilin info lengkap — mulai dari foto, deskripsi, sampai harga kamar per malam. -
Fitur Booking & Pembayaran
Pengguna pilih kamar, isi tanggal check-in dan check-out, terus langsung bisa bayar. Kalau mau lebih keren, tambahin sistem pembayaran online kayak Midtrans. -
Dashboard Admin
Nah ini buat si pemilik hotel atau admin sistem. Mereka bisa ngatur data hotel, kamar, dan lihat laporan booking.
Kalau fitur-fitur di atas udah jalan, berarti kamu udah punya aplikasi booking hotel yang lumayan solid.
Desain Database MySQL yang Simpel Tapi Kuat
Oke, sekarang kita ngomongin soal database.
Karena aplikasi booking hotel ini berhubungan dengan banyak data (user, hotel, kamar, transaksi, dan pembayaran), kamu harus nyusun tabelnya dengan rapi. Contoh struktur tabel yang bisa kamu buat:
-
users – buat nyimpen data pengguna
-
hotels – buat info hotel (nama, lokasi, deskripsi, gambar)
-
rooms – buat detail kamar (tipe, harga, kapasitas, stok)
-
bookings – buat data pemesanan
-
payments – buat data pembayaran
Relasinya juga gampang:
-
Satu hotel punya banyak kamar
-
Satu pengguna bisa punya banyak booking
-
Satu booking punya satu pembayaran
Dengan struktur begini, MySQL bisa nyimpen data secara efisien dan gampang diolah lewat Laravel.
Bikin Project Laravel Baru
Sekarang waktunya ngoding!
Pastikan kamu udah punya Composer dan XAMPP atau Laragon ya.
-
Buat project baru:
composer create-project laravel/laravel booking-hotel - Atur koneksi database di
.env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=booking_hotel
DB_USERNAME=root
DB_PASSWORD= - Jalankan migrasi bawaan Laravel:
php artisan migrate
Laravel bakal otomatis bikin tabel dasar kayak users, password_resets, dan lain-lain.
Nambahin Model dan Relasi Antar Tabel
Sekarang kita buat model untuk hotel dan kamar:
php artisan make:model Hotel -m
php artisan make:model Room -m
Isi file migrasi create_hotels_table.php:
Schema::create(‘hotels’, function (Blueprint $table) {
$table->id();
$table->string(‘name’);
$table->string(‘location’);
$table->text(‘description’)->nullable();
$table->string(‘image’)->nullable();
$table->timestamps();
});
Dan di create_rooms_table.php:
Schema::create(‘rooms’, function (Blueprint $table) {
$table->id();
$table->foreignId(‘hotel_id’)->constrained()->onDelete(‘cascade’);
$table->string(‘type’);
$table->decimal(‘price’, 10, 2);
$table->integer(‘capacity’);
$table->integer(‘available_rooms’)->default(0);
$table->timestamps();
});
Terus jalankan lagi:
php artisan migrate
Sekarang tabelnya udah jadi dan siap diisi data. Laravel bikin relasi antar model jadi gampang banget. Contohnya, kalau mau ambil semua kamar dari satu hotel: $hotel->rooms;
Menampilkan Data di Halaman Frontend
Laravel pakai Blade Template Engine, jadi tampilan HTML-nya bisa kamu atur dengan rapi.
Contoh controller buat nampilin daftar hotel:
public function index() {
$hotels = Hotel::with(‘rooms’)->get();
return view(‘hotels.index’, compact(‘hotels’));
}
Terus di hotels/index.blade.php:
@foreach ($hotels as $hotel)
<div class=”hotel-card”>
<h2>{{ $hotel->name }}</h2>
<p>{{ $hotel->location }}</p>
<p>{{ $hotel->description }}</p>
<a href=”{{ route(‘hotels.show’, $hotel->id) }}”>Lihat Detail</a>
</div>
@endforeach
Kamu bisa tambahin gaya pakai Tailwind CSS biar tampilannya bersih dan modern.
Fitur Booking Kamar Hotel
Sekarang bagian paling seru: bikin sistem booking.
Kamu bisa mulai dari form sederhana di halaman detail kamar. User tinggal pilih tanggal dan jumlah tamu, lalu klik “Pesan Sekarang”.
Contoh fungsi booking:
public function store(Request $request)
{
$booking = Booking::create([
‘user_id’ => auth()->id(),
‘room_id’ => $request->room_id,
‘check_in’ => $request->check_in,
‘check_out’ => $request->check_out,
‘status’ => ‘pending’,
‘total_price’ => $request->total_price
]);
return redirect()->route(‘booking.success’, $booking->id);
}
Sederhana, tapi udah bisa dipakai buat simpan transaksi booking ke database.
Tambah Pembayaran Online Biar Lebih Keren
Biar makin profesional, kamu bisa tambahin sistem pembayaran online. Di Indonesia, yang paling sering dipakai itu Midtrans dan Xendit.
Contohnya, pakai Midtrans:
composer require midtrans/midtrans-php
Terus atur API key-nya di .env, dan bikin controller PaymentController. Nanti user bisa bayar pakai transfer bank, e-wallet, atau kartu kredit.
Kalau udah, sistem booking hotel kamu udah siap buat dipakai secara real-time!
Dashboard Admin
Nah, bagian ini penting buat pengelola hotel. Dengan dashboard admin, kamu bisa:
Tambah, edit, hapus data hotel & kamar
Lihat daftar booking
Kelola pembayaran
Cek laporan pendapatan
Kalau kamu pengen cepet, bisa pakai package kayak Laravel Breeze, Jetstream, atau Filament Admin Panel. Tinggal setup sebentar, tampilan dashboard udah otomatis jadi.
Optimasi Aplikasi Biar Lebih Cepat dan Aman
Setelah aplikasi jalan, jangan lupa optimasi. Berikut beberapa tips ringan tapi penting:
Gunakan cache untuk data yang sering diakses.
Tambahkan auth middleware biar halaman tertentu cuma bisa diakses user yang login.
Aktifkan SSL untuk keamanan data transaksi.
Simpan gambar di storage folder biar file lebih teratur.
Buat sistem validasi input biar data yang masuk tetap bersih.
Dengan cara ini, aplikasi booking hotel kamu bakal lebih stabil, cepat, dan aman.
Deploy ke Server
Setelah semuanya siap, waktunya upload ke hosting.
Kamu bisa pilih hosting yang support Laravel seperti:
Hostinger
Niagahoster
Vultr / DigitalOcean (kalau mau pakai VPS)
Langkah umum:
Upload file ke server
Jalankan composer install
Ubah konfigurasi .env
Jalankan php artisan migrate –seed
Set permission folder storage
Dan… selamat! 🎉
Aplikasi booking hotel buatanmu udah bisa diakses publik!
Penutup
Nah, itulah panduan lengkap membuat aplikasi booking hotel dengan Laravel & MySQL.
Ternyata nggak serumit itu, kan?
Mulai dari desain database, setup project, bikin fitur booking, sampai sistem pembayaran online — semua bisa kamu lakukan dengan langkah-langkah sederhana asal sabar dan telaten.
Laravel dan MySQL ini emang pasangan yang cocok buat bikin aplikasi web yang kuat, stabil, dan gampang dikembangkan. Dan siapa tahu, dari project kecil ini nanti kamu bisa kembangkan jadi startup layanan booking hotel beneran! 😄
Untuk informasi lengkap dan diskusi pembuatan aplikasi, silahkan Hubungi Kami