Slug Generator

Ubah teks apa pun menjadi slug yang ramah URL dan bersih

Coba contoh
Pemisah

Teks masukan

Slug

Berjalan lokal · Aman untuk menempel rahasia
Slug akan muncul di sini…

Apa Itu URL Slug?

URL slug adalah bagian dari alamat web yang mengidentifikasi halaman tertentu dalam bentuk yang mudah dibaca manusia. Dalam URL https://example.com/blog/postingan-pertama-saya, slugnya adalah postingan-pertama-saya. Slug generator mengubah judul atau deskripsi halaman menjadi string yang hanya mengandung huruf kecil, angka, dan tanda hubung (atau pemisah lain yang dipilih). Proses ini menghapus spasi, mengikis aksen dan diakritik, membuang karakter khusus, serta menormalkan spasi menjadi pemisah tunggal.

Pembuatan slug adalah langkah standar dalam sistem manajemen konten, generator situs statis, platform blog, dan aplikasi apa pun yang menghasilkan URL dari masukan pengguna. WordPress, Ghost, Hugo, Next.js, dan Django semuanya menyertakan logika pembuatan slug karena URL yang mudah dibaca meningkatkan kegunaan sekaligus optimasi mesin pencari. Slug yang terbentuk dengan baik memberi tahu pengguna apa yang terkandung dalam sebuah halaman sebelum mereka mengeklik tautan.

Istilah "slug" berasal dari dunia penerbitan surat kabar, di mana ia merujuk pada label singkat yang digunakan untuk mengidentifikasi sebuah berita selama proses produksi. Dalam pengembangan web, slug menjalankan fungsi yang sama: ia adalah pengenal yang ringkas, unik, dan aman untuk URL yang diturunkan dari judul atau nama yang lebih panjang. Karena slug dibuat secara terprogram, slug generator yang andal memastikan konsistensi di setiap halaman dan lokal.

Mengapa Menggunakan Slug Generator Ini?

Membuat URL slug secara manual rentan terhadap kesalahan. Lupa mengikis aksen, meninggalkan tanda hubung ganda, atau melewatkan kasus tepi dengan masukan Unicode dapat menghasilkan URL yang rusak atau tidak rapi. Alat ini menangani masalah tersebut secara otomatis.

Konversi Instan
Tempel atau ketik teks apa pun dan lihat slug diperbarui secara langsung. Tidak ada pengiriman formulir, tidak ada muat ulang halaman. Berguna saat Anda memerlukan slug untuk sekumpulan judul artikel atau nama produk sekaligus.
🔒
Pemrosesan yang Mengutamakan Privasi
Semua pembuatan slug berjalan di browser Anda. Teks Anda tidak pernah meninggalkan halaman, sehingga Anda dapat mengonversi judul draf, nama proyek internal, atau nama produk yang belum dirilis dengan aman.
⚙️
Keluaran yang Dapat Dikonfigurasi
Pilih antara pemisah tanda hubung, garis bawah, atau titik. Aktifkan atau nonaktifkan huruf kecil. Ini mencakup konvensi slug yang paling umum di berbagai kerangka kerja dan CMS.
🌐
Penanganan Unicode dan Aksen
Generator menerapkan normalisasi NFD untuk mengikis diakritik dari karakter beraksen. Café menjadi cafe, naïve menjadi naive. Karakter non-Latin yang tidak dapat ditransliterasi dihapus dengan bersih.

Kasus Penggunaan Slug Generator

Frontend Developer — Perencanaan Rute
Buat slug yang konsisten untuk rute halaman di React Router, Next.js, atau Nuxt sebelum menghubungkan segmen rute dinamis. Verifikasi bahwa judul dengan karakter khusus menghasilkan jalur yang bersih.
Backend Engineer — Pengenal Database
Buat slug yang aman untuk URL pada rekaman database yang memerlukan pengenal yang mudah dibaca. Slug bekerja baik sebagai kunci sekunder bersama ID numerik untuk endpoint REST API seperti /api/products/wireless-headphones.
DevOps — Penamaan Berkas Konfigurasi
Ubah nama layanan atau label lingkungan menjadi string yang aman untuk sistem berkas pada berkas konfigurasi, tag Docker image, atau nama resource Kubernetes di mana karakter khusus tidak diizinkan.
QA Engineer — Pembuatan Data Uji
Buat varian slug dengan cepat dari judul kasus uji untuk memverifikasi perutean URL, aturan pengalihan, dan perilaku tag kanonik di berbagai lingkungan staging.
Data Engineer — Normalisasi Kolom
Normalkan header kolom yang berantakan dari impor CSV atau Excel menjadi pengenal snake_case atau kebab-case yang konsisten untuk digunakan dalam skema database atau alur data.
Mahasiswa — Proyek CMS dan Blog
Pelajari cara kerja pembuatan slug saat membangun blog dengan WordPress, Jekyll, atau CMS kustom. Gunakan alat ini untuk membandingkan slug manual Anda dengan implementasi referensi.

Aturan Pembuatan Slug dan Penanganan Karakter

Pembuatan slug mengikuti urutan transformasi yang dapat diprediksi. Memahami setiap langkah membantu Anda men-debug keluaran yang tidak terduga atau membangun fungsi slugify Anda sendiri.

  1. 1. Normalisasi Unicode (NFD)
    Uraikan karakter gabungan menjadi karakter dasar + tanda penggabungan. Misalnya, é (U+00E9) menjadi e + tanda aksen akut penggabungan (U+0301). Ini membuat diakritik dapat dihapus pada langkah berikutnya.
  2. 2. Hapus Diakritik
    Hapus semua karakter dalam blok Unicode Combining Diacritical Marks (U+0300–U+036F). Setelah langkah ini, café menjadi cafe dan Ñ menjadi N.
  3. 3. Hapus Karakter Khusus
    Ganti karakter yang bukan huruf, angka, spasi, atau tanda hubung dengan spasi. Ini membuang tanda baca, simbol, dan karakter yang tidak memiliki padanan ASCII.
  4. 4. Pangkas dan Ratakan Spasi
    Hapus spasi di awal dan akhir, lalu ratakan semua rangkaian spasi, garis bawah, atau tanda hubung yang berurutan menjadi satu pemisah yang dipilih.
  5. 5. Terapkan Huruf dan Pemisah
    Ubah ke huruf kecil (opsional) dan gabungkan kata dengan karakter pemisah yang dipilih: tanda hubung (-), garis bawah (_), atau titik (.).

Referensi Transformasi Karakter

Tabel di bawah ini menunjukkan cara karakter umum ditangani selama pembuatan slug:

MasukanKeluaranAturan yang Diterapkan
Hello Worldhello-worldLowercase + space → hyphen
Café au Laitcafe-au-laitNFD normalization strips é → e
naïve résuménaive-resumeMultiple diacritics removed
Price: $9.99!price-9-99Symbols ($, !, :) removed
too many too-manyWhitespace trimmed and collapsed
one--two___threeone-two-threeMixed separators collapsed
Привет мирprivet-mirCyrillic (if transliteration) or removed
file_name.txtfile-name-txtDots and underscores replaced
React & Vuereact-vueAmpersand removed
2026-03-302026-03-30Digits and hyphens preserved

Contoh Kode

Pembuatan slug dalam bahasa dan kerangka kerja populer. Setiap contoh menangani normalisasi Unicode, penghapusan diakritik, dan penyisipan pemisah.

JavaScript
function slugify(text, separator = '-') {
  return text
    .normalize('NFD')                   // decompose accented chars
    .replace(/[\u0300-\u036f]/g, '')    // strip diacritics
    .toLowerCase()
    .replace(/[^\w\s-]/g, ' ')          // drop special chars
    .trim()
    .replace(/[\s_-]+/g, separator)     // collapse whitespace → separator

  // slugify('Café au Lait')      → "cafe-au-lait"
  // slugify('Hello World', '_')  → "hello_world"
}

// Node.js alternative using the `slugify` npm package:
// npm install slugify
// const slugify = require('slugify')
// slugify('Hello World', { lower: true, strict: true }) → "hello-world"
Python
import re
import unicodedata

def slugify(text: str, separator: str = '-') -> str:
    """Convert text to a URL-safe slug."""
    text = unicodedata.normalize('NFD', text)
    text = text.encode('ascii', 'ignore').decode('ascii')  # strip non-ASCII
    text = text.lower()
    text = re.sub(r'[^\w\s-]', ' ', text)
    text = text.strip()
    text = re.sub(r'[\s_-]+', separator, text)
    return text

# slugify('Café au Lait')      → "cafe-au-lait"
# slugify('Hello World', '_')  → "hello_world"

# Alternative: python-slugify (pip install python-slugify)
# from slugify import slugify
# slugify('Café au Lait')  → "cafe-au-lait"
Go
package main

import (
	"regexp"
	"strings"
	"unicode"

	"golang.org/x/text/unicode/norm"
	"golang.org/x/text/transform"
	"golang.org/x/text/runes"
)

func slugify(text string) string {
	// NFD normalize and strip diacritics
	t := transform.Chain(norm.NFD, runes.Remove(runes.In(unicode.Mn)), norm.NFC)
	result, _, _ := transform.String(t, text)

	result = strings.ToLower(result)
	re := regexp.MustCompile(`[^\w\s-]+`)
	result = re.ReplaceAllString(result, " ")
	result = strings.TrimSpace(result)
	re = regexp.MustCompile(`[\s_-]+`)
	result = re.ReplaceAllString(result, "-")
	return result
}

// slugify("Café au Lait") → "cafe-au-lait"
// slugify("Hello World")  → "hello-world"
PHP
function slugify(string $text, string $separator = '-'): string {
    // Transliterate non-ASCII characters
    $text = transliterator_transliterate(
        'Any-Latin; Latin-ASCII; Lower()', $text
    );
    // Remove anything that is not a word char, space, or hyphen
    $text = preg_replace('/[^\w\s-]/', ' ', $text);
    $text = trim($text);
    $text = preg_replace('/[\s_-]+/', $separator, $text);
    return $text;
}

// slugify('Café au Lait')      → "cafe-au-lait"
// slugify('Hello World', '_')  → "hello_world"

Pertanyaan yang Sering Diajukan

Apa perbedaan antara slug dan jalur URL?
Jalur URL adalah segmen lengkap setelah domain, seperti /blog/2026/postingan-saya. Slug adalah bagian yang mudah dibaca manusia yang mengidentifikasi resource tertentu dalam jalur tersebut, biasanya segmen terakhir: postingan-saya. Slug sering diturunkan dari judul, sementara bagian jalur lainnya mencerminkan struktur perutean situs.
Bagaimana pembuatan slug menangani aksara non-Latin seperti aksara Tionghoa atau Arab?
Slug generator standar yang menggunakan normalisasi NFD dan penghapusan diakritik tidak dapat mentransliterasi aksara non-Latin. Karakter seperti hanzi Tionghoa atau huruf Arab tidak memiliki padanan ASCII, sehingga dihapus selama langkah pembersihan karakter khusus. Untuk mempertahankan konten non-Latin dalam slug, Anda memerlukan pustaka transliterasi seperti limax (JavaScript), python-slugify dengan backend unidecode, atau tabel pemetaan kustom.
Haruskah saya menggunakan tanda hubung atau garis bawah dalam URL slug?
Google memperlakukan tanda hubung sebagai pemisah kata tetapi memperlakukan garis bawah sebagai penggabung kata. Slug my-first-post dibaca sebagai tiga kata (my, first, post), sementara my_first_post dibaca sebagai satu token. Untuk keperluan SEO, tanda hubung adalah pilihan standar untuk URL slug. Garis bawah umum digunakan dalam nama berkas, kolom database, dan pengenal pemrograman di mana mereka berfungsi sebagai penghubung yang aman untuk variabel.
Berapa panjang ideal sebuah URL slug?
Google menampilkan sekitar 60 karakter URL dalam hasil pencarian sebelum memotongnya. Slug yang lebih pendek lebih mudah dibaca, dibagikan, dan diketik. Targetkan 3 hingga 6 kata. Hapus kata-kata penghubung (the, a, an, and, or, in) ketika tidak mengubah makna: how-to-build-nextjs-app lebih baik dari how-to-build-a-next-js-app-in-2026.
Apakah pembuatan slug sama dengan pengkodean URL?
Tidak. Pengkodean URL (percent-encoding) mengganti karakter yang tidak aman dengan triplet tanda persen seperti %20 untuk spasi. Pembuatan slug menghapus atau mengganti karakter yang tidak aman sepenuhnya, menghasilkan string bersih tanpa artefak pengkodean. Slug tidak pernah mengandung tanda persen, spasi, atau karakter khusus. Pengkodean URL mempertahankan konten asli; pembuatan slug mengubahnya menjadi sesuatu yang baru.
Bisakah dua judul berbeda menghasilkan slug yang sama?
Ya. Judul yang hanya berbeda dalam tanda baca, aksen, atau huruf besar sering kali menghasilkan slug yang sama. Misalnya, Résumé Tips dan Resume Tips keduanya menghasilkan resume-tips. Dalam konteks CMS atau database, Anda perlu pemeriksaan keunikan yang menambahkan sufiks numerik (resume-tips-2) saat terjadi tabrakan.
Bagaimana cara membuat slug di WordPress atau Django?
WordPress membuat slug secara otomatis dari judul postingan menggunakan sanitize_title(). Anda dapat mengedit slug di editor postingan. Django menyediakan fungsi slugify() dalam django.utils.text, yang menangani masukan ASCII dengan baik. Untuk dukungan Unicode, berikan allow_unicode=True. Kedua platform menyimpan slug dalam database bersama judul lengkapnya.