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:

Kalau semua karakter ini langsung dipakai sebagai URL tanpa pengolahan, bisa menimbulkan masalah:

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:

Dengan cara ini, slug hotel akan jadi rapi, konsisten, dan siap digunakan sebagai bagian URL.

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

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:

Dengan begini, pengguna tidak akan salah masuk ke halaman hotel yang berbeda hanya karena slug sama.

Langkah-Langkah Migrasi Slug pada Database Lama

  1. Buat backup database Anda terlebih dahulu, supaya data tetap aman.
  2. Pastikan semua data nama hotel sudah lengkap dan valid.
  3. Jalankan script SQL atau PHP sesuai kebutuhan, untuk mengisi/mengupdate kolom slug di tabel hotel.
  4. Lakukan pengecekan manual pada beberapa data untuk memastikan hasil transliterate sudah benar.
  5. Perbarui routing website Anda agar mengarah ke slug, bukan ID numerik lagi.
  6. 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 :