Menghitung Jumlah Kata Menggunakan JavaScript

Menghitung Jumlah Kata Menggunakan JavaScript

Menghitung jumlah kata menggunakan JavaScript adalah kebutuhan umum saat kalian membuat fitur analisis teks, validasi form, sampai limit caption di web.

Halo teman-teman, semoga kreatifitas koding kalian lancar! Pada artikel ini kodelyly.com akan membahas cara praktis, akurat, dan efisien untuk menghitung jumlah kata, lengkap dengan contoh fungsi serta implementasi di HTML.

Menghitung Jumlah Kata Menggunakan JavaScript

Cara paling sederhana adalah memanfaatkan trim() lalu memecah string berdasarkan spasi berurutan. Ini cepat dan cukup akurat untuk banyak kasus.

function countWordsSimple(text) {
  const t = text.trim();
  if (!t) return 0;
  // Pisahkan berdasarkan satu atau lebih whitespace (spasi, tab, baris baru)
  return t.split(/\s+/).length;
}

Namun, pendekatan ini masih menghitung token yang bukan kata jika ada simbol yang berdempetan. Untuk akurasi lebih baik, gunakan regex yang menargetkan “kata” berdasarkan karakter huruf/angka.

// Menggunakan Unicode Property Escapes (butuh browser modern)
function countWordsRegex(text) {
  const words = text.match(/\p{L}[\p{L}\p{M}\p{N}'’]*/gu);
  return words ? words.length : 0;
}

Penjelasan singkat: \p{L} untuk huruf, \p{M} tanda diakritik, \p{N} angka; '’ mengakomodasi apostrof/penyingkat.

Menangani Spasi Ganda Dan Tanda Baca

Jika input sering berisi spasi ganda, baris baru, atau tanda baca berturut-turut (misal teks hasil paste), gunakan pembersihan ringan sebelum menghitung.

function normalizeText(text) {
  return text
    .replace(/[\u0000-\u001F\u007F]/g, " ") // kontrol -> spasi
    .replace(/[\s\u00A0]+/g, " ")            // semua whitespace -> satu spasi
    .trim();
}

function countWordsRobust(text) {
  const t = normalizeText(text);
  if (!t) return 0;
  const words = t.match(/\p{L}[\p{L}\p{M}\p{N}'’]*/gu);
  return words ? words.length : 0;
}

Jika perlu dukungan browser lama tanpa Unicode Property Escapes, kompromi aman adalah t.match(/[A-Za-z0-9À-ÖØ-öø-ÿ]+/g).

Contoh Implementasi Di HTML

Contoh mini app yang menghitung kata saat kalian mengetik.

<!doctype html>
<html lang="id">
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>Menghitung Jumlah Kata – Kodelyly</title>
  <style>
    body{font-family:system-ui,Segoe UI,Roboto,Arial,sans-serif;max-width:720px;margin:40px auto;padding:0 16px}
    textarea{width:100%;min-height:160px;padding:12px;border:1px solid #ddd;border-radius:12px}
    .card{margin-top:12px;padding:12px;border:1px solid #eee;border-radius:12px}
    .muted{opacity:.75}
  </style>
  <body>
    <h1>Menghitung Jumlah Kata Menggunakan JavaScript – kodelyly.com</h1>
    <textarea id="input" placeholder="Tulis teks kalian di sini..."></textarea>
    <div class="card">
      <div><strong>Kata:</strong> <span id="words">0</span></div>
      <div class="muted">Karakter (tanpa spasi): <span id="chars">0</span></div>
    </div>
    <script>
      function countWords(text){
        const t = text
          .replace(/[\u0000-\u001F\u007F]/g, ' ')
          .replace(/[\s\u00A0]+/g, ' ')
          .trim();
        if(!t) return 0;
        const m = t.match(/\p{L}[\p{L}\p{M}\p{N}'’]*/gu);
        return m ? m.length : 0;
      }
      const el = document.getElementById('input');
      const outWords = document.getElementById('words');
      const outChars = document.getElementById('chars');
      el.addEventListener('input', () => {
        outWords.textContent = countWords(el.value);
        outChars.textContent = el.value.replace(/\s+/g,'').length;
      });
    </script>
  </body>
</html>

Perbandingan Metode

MetodeKelebihanKekuranganCocok Untuk
split(/\s+/)Sangat cepat, sederhanaKurang akurat pada teks penuh simbolDraft cepat, demo
Regex UnicodeAkurasi tinggi lintas bahasaButuh dukungan browser modernProduksi modern
Regex Latin lebarKompatibel lebih luasKurang akurat untuk bahasa non-LatinSitus yang targetnya Latin

Tips SEO & Performa

Gunakan debounce saat menghitung pada event input (misal 150 ms) agar UX tetap mulus pada teks panjang. Tambahkan aria-live untuk hasil hitung agar ramah pembaca layar. Sertakan judul, meta description, dan heading yang memuat kata kunci utama.

Kesimpulan

Menghitung jumlah kata menggunakan JavaScript bisa dilakukan sederhana dengan split, atau lebih akurat memakai regex Unicode. Pilih metode sesuai kebutuhan proyek kalian, dan terapkan normalisasi agar hasil konsisten di berbagai variasi teks. Sekian artikel dari kodelyly.com, semoga bermanfaat dan selamat bereksperimen!

About the Author

BUKA KOMENTAR (0)
Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.