Lewati ke konten
πŸ› οΈToolsShed

Syllable Counter

Hitung suku kata dalam kata dan teks, analisis metrik keterbacaan, dan periksa pola stres.

Tentang alat ini

Penghitung Suku Kata adalah alat ringan yang dirancang untuk menganalisis struktur ritmis teks dengan menghitung suku kata dalam kata-kata dan mengukur kompleksitas teks melalui metrik keterbacaan. Memahami distribusi suku kata membantu penulis, penyair, dan pelajar bahasa mengenali bagaimana alur teks dan apakah konten sesuai dengan audiens yang dituju. Tidak seperti sistem berbasis kamus yang memerlukan pencarian server, alat ini bekerja secara instan di browser Anda menggunakan heuristik kelompok vokal yang menangani pola bahasa Inggris yang umum.

Untuk menggunakan alat ini, cukup tempel atau ketik teks Anda ke bidang input dan klik Analisis. Alat ini menampilkan jumlah suku kata total, jumlah kata, rata-rata suku kata per kata, dan klasifikasi keterbacaan mulai dari sederhana (di bawah 1,5 suku kata per kata) hingga kompleks (lebih dari 2,5). Analisis kata per kata menunjukkan penghitungan suku kata individual, membantu Anda mengidentifikasi kata mana yang paling berkontribusi pada kepadatan teks. Ini sangat berguna bagi penyair yang menyempurnakan meter, penulis yang menyesuaikan konten untuk kesesuaian tingkat kelas, atau penulis lirik yang menyesuaikan lirik dengan irama melodi.

Penghitung menerapkan koreksi untuk huruf senyap (seperti 'e' akhir dalam "cake") dan menangani pola bahasa Inggris umum seperti akhiran -le. Untuk akurasi tertinggi dengan nama diri yang tidak biasa atau terminologi khusus, periksa silang hasil dengan panduan pengucapan. Alat ini dioptimalkan untuk bahasa Inggris; bahasa lain memiliki aturan silabifikasi yang berbeda dan mungkin hanya menghasilkan hasil perkiraan pada kasus terbaik.

Pertanyaan yang Sering Diajukan

Implementasi Kode

import re

def count_syllables(word: str) -> int:
    word = word.lower().strip(".,!?;:'"")
    if not word:
        return 0
    # Special case: silent 'e' at end
    if word.endswith('e') and len(word) > 2:
        word = word[:-1]
    # Count vowel groups
    vowels = "aeiouy"
    count = 0
    prev_was_vowel = False
    for char in word:
        is_vowel = char in vowels
        if is_vowel and not prev_was_vowel:
            count += 1
        prev_was_vowel = is_vowel
    return max(1, count)

def count_syllables_in_text(text: str) -> dict:
    words = re.findall(r"[a-zA-Z']+", text)
    total = sum(count_syllables(w) for w in words)
    return {
        "words": len(words),
        "syllables": total,
        "avg_per_word": round(total / len(words), 2) if words else 0
    }

text = "The quick brown fox jumps over the lazy dog"
result = count_syllables_in_text(text)
print(f"Words: {result['words']}")
print(f"Syllables: {result['syllables']}")
print(f"Avg per word: {result['avg_per_word']}")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.