Cara Membuat Slug Otomatis dengan PHP dan Perintah Mysql Langsung
Di era digital saat ini, kemudahan pencarian dan penemuan informasi di internet sangat bergantung pada bagaimana kita menata alamat URL pada website. Salah satu kunci agar website booking hotel mudah diakses, ramah mesin pencari (SEO), dan enak dibaca manusia adalah penggunaan slug. Slug adalah bagian akhir dari URL yang biasanya berupa kata-kata pendek, deskriptif, dan mudah diingat. Tapi, bagaimana jika nama hotel di database Anda mengandung huruf Prancis seperti é atau à, huruf Jerman seperti ü dan ß, bahkan karakter Spanyol seperti ñ? Nah, di artikel ini kita akan membahas tuntas cara membuat slug otomatis yang bersih dan SEO-friendly dari nama hotel yang penuh karakter unik tersebut.
Mengapa Slug itu Penting untuk Website Hotel?
Coba bayangkan Anda mencari hotel di sebuah kota lewat Google. Anda pasti akan lebih tertarik mengklik link seperti https://bookingku.com/hotel/grand-palace-paris dibanding https://bookingku.com/hotel/8991. Slug yang rapi memudahkan pengunjung mengingat dan membagikan alamat website. Selain itu, search engine seperti Google juga memprioritaskan halaman dengan slug yang deskriptif dan sesuai isi konten. Dengan kata lain, slug yang baik bisa meningkatkan trafik ke website Anda dan memperbesar peluang transaksi!
Tantangan Slug pada Nama Hotel Internasional
Indonesia memang kaya hotel lokal, tapi jika Anda mengelola database hotel internasional, siap-siap menghadapi nama hotel yang sangat beragam. Tak hanya menggunakan abjad A-Z, kadang nama hotel menggunakan aksen (accent), tanda baca khusus, atau huruf yang tidak ada di alfabet latin standar. Contohnya:
- Hôtel de l’Étoile (Prancis)
- Schönes Übernachtungshaus (Jerman)
- Residència Universitària (Spanyol/Katalan)
- São João Palace (Portugis)
- Österreicher Hof (Jerman)
- Cœur d'Or (Prancis)
- El Niño Hostal (Spanyol)
Kalau semua karakter ini langsung dipakai sebagai URL tanpa pengolahan, bisa menimbulkan masalah:
- URL jadi aneh atau sulit dibaca
- Beberapa browser atau server tidak mengenali karakter tertentu
- Mesin pencari gagal memahami isi URL
- Tautan bisa rusak saat dibagikan ke aplikasi chatting atau sosial media
Apa Itu Transliterate dan Mengapa Dibutuhkan?
Transliterate adalah proses mengubah karakter dari satu sistem penulisan ke bentuk lain yang setara atau mirip, dalam kasus ini dari karakter unik ke huruf latin standar. Contoh sederhananya: é menjadi e, ö menjadi o, ü menjadi u, ñ menjadi n, dan ß menjadi ss. Tujuannya agar slug tetap readable, bisa diketik di semua keyboard, dan tidak memicu error saat dibuka di browser mana pun.
Proses ini sangat penting jika website Anda punya audiens internasional atau data yang bersumber dari berbagai negara. Tanpa transliterate, Anda bisa kehilangan potensi pengunjung hanya karena URL rusak atau membingungkan.
Cara Membuat Slug Otomatis dari Nama Hotel
Ada dua cara utama untuk membuat slug secara otomatis di database, yaitu langsung di MySQL (jika versi 8 ke atas), atau lewat kode aplikasi (misal PHP). Keduanya punya keunggulan sendiri-sendiri, dan bisa dipilih sesuai kebutuhan proyek.
1. Membuat Slug Otomatis Menggunakan MySQL 8.0+
Jika Anda menggunakan MySQL versi terbaru, transliterate bisa dilakukan secara langsung dengan fungsi CONVERT(... USING ascii)
dan REGEXP_REPLACE
. Berikut contoh query SQL-nya:
UPDATE hotel_fr
SET slug = LOWER(
TRIM(BOTH '-' FROM
REGEXP_REPLACE(
REGEXP_REPLACE(
CONVERT(nama USING ascii),
'[^A-Za-z0-9]+', '-'
),
'-+', '-'
)
)
)
WHERE nama IS NOT NULL;
Penjelasan singkatnya, query di atas:
- Mengubah semua karakter unik (seperti é, ü, ß, ñ, ç, dll) ke padanan huruf latin sederhana
- Semua karakter non-alfanumerik (spasi, tanda baca, simbol) diganti dengan strip (-)
- Strip yang berurutan jadi satu strip saja
- Strip di awal dan akhir dihapus
- Slug diubah ke huruf kecil semua
2. Membuat Slug Otomatis Menggunakan PHP (atau Bahasa Lain)
Kadang, kebutuhan transliterate lebih rumit, misal: ingin menghapus kata tertentu, membatasi panjang slug, atau menambahkan logika khusus. Maka proses pembuatan slug bisa dilakukan lewat script di aplikasi, seperti PHP, Python, atau Node.js. Berikut contoh fungsi di PHP:
function slugify(string $text): string {
// Transliterate UTF-8 ke ASCII
$text = iconv('UTF-8', 'ASCII//TRANSLIT', $text);
// Ganti non-alnum dengan strip
$text = preg_replace('/[^A-Za-z0-9]+/', '-', $text);
// Gabung strip ganda
$text = preg_replace('/-+/', '-', $text);
// Hilangkan strip di pinggir dan kecilkan
return strtolower(trim($text, '-'));
}
Fungsi ini bisa digunakan setiap kali ada hotel baru, atau untuk batch processing seluruh database. Keunggulannya, Anda bisa menyesuaikan aturan sesuai kebutuhan bisnis Anda. Misal, jika slug ingin dibatasi maksimal 50 karakter:
$slug = substr(slugify($nama_hotel), 0, 50);
Selain itu, jika ditemukan slug yang sama pada beberapa hotel, Anda bisa menambah penanda unik, seperti ID hotel, supaya URL tidak bentrok:
if (slug_sudah_ada($slug)) {
$slug .= '-' . $id_hotel;
}
Tips dan Trik Membuat Slug yang Sempurna
- Gunakan huruf kecil. Semua slug sebaiknya lowercase agar konsisten dan tidak membingungkan pengguna atau mesin pencari.
- Ganti spasi dan karakter aneh dengan strip. Misalnya "Hotel Étoile du Nord" jadi "hotel-etoile-du-nord".
- Hapus strip ganda dan strip di pinggir. URL yang rapi lebih mudah diingat dan dibagikan.
- Transliterate karakter non-latin. Sangat penting jika data berasal dari berbagai bahasa.
- Pastikan slug unik. Tambahkan angka atau ID jika perlu, agar tidak ada dua slug sama di database.
- Batasi panjang slug. Slug terlalu panjang bisa dipotong di hasil pencarian atau menyulitkan pengguna.
- Hindari kata-kata kosong/tidak penting (stopwords). Jika perlu, hapus kata-kata seperti "the", "of", "and" pada slug versi Inggris atau padanan di bahasa lain.
Studi Kasus dan Contoh Hasil Slug
Berikut beberapa contoh nama hotel beserta hasil slug setelah transliterate dan formatting:
Nama Hotel Asli | Hasil Slug |
---|---|
Hôtel de l’Étoile | hotel-de-letoile |
Schönes Übernachtungshaus | schones-ubernachtungshaus |
Residència Universitària | residencia-universitaria |
São João Palace | sao-joao-palace |
Cœur d'Or | coeur-d-or |
El Niño Hostal | el-nino-hostal |
Österreicher Hof | osterreicher-hof |
Fußgängerzone Inn | fussgangerzone-inn |
Bagaimana Cara Menangani Slug Duplikat?
Kadang, bisa saja dua hotel punya nama yang mirip atau bahkan sama persis, apalagi di kota berbeda. Untuk memastikan setiap slug tetap unik, ada beberapa strategi yang bisa diterapkan:
- Tambahkan ID hotel di akhir slug, contoh:
hotel-de-letoile-1542
- Masukkan nama kota atau wilayah jika perlu, misal:
hotel-de-letoile-paris
- Gunakan sistem pengecekan otomatis sebelum insert/update slug di database
Langkah-Langkah Migrasi Slug pada Database Lama
- Buat backup database Anda terlebih dahulu, supaya data tetap aman.
- Pastikan semua data
nama
hotel sudah lengkap dan valid. - Jalankan script SQL atau PHP sesuai kebutuhan, untuk mengisi/mengupdate kolom
slug
di tabel hotel. - Lakukan pengecekan manual pada beberapa data untuk memastikan hasil transliterate sudah benar.
- Perbarui routing website Anda agar mengarah ke slug, bukan ID numerik lagi.
- Jika ada URL lama yang masih menggunakan ID, buat sistem redirect (301) ke URL baru berbasis slug agar tidak kehilangan ranking SEO.
Membuat slug otomatis dari nama hotel multibahasa memang terlihat sepele, tapi dampaknya besar sekali untuk kualitas website, kemudahan pengguna, dan performa SEO. Dengan memanfaatkan fitur transliterate, baik dari MySQL modern maupun script aplikasi, kita bisa memastikan semua nama hotel — seunik apapun — tetap punya URL yang cantik, mudah diingat, dan tanpa masalah karakter aneh.
Jika Anda serius membangun platform booking hotel berskala besar atau internasional, jangan anggap remeh bagian kecil bernama slug ini. Investasi waktu untuk membuat sistem slug yang baik akan menghemat banyak masalah di masa depan. Semoga tips dan penjelasan di artikel ini membantu Anda membangun website hotel yang lebih profesional dan user-friendly!
Baca Juga :