Rangkuman: Penghitung Frekuensi Kata
Termasuk bagian Logika dan Alur dalam perjalanan C di Coddy. Pelajaran 63 dari 63.
Tantangan
MudahBuat program C yang menerapkan penghitung frekuensi kata untuk menganalisis input teks. Programmu harus:
- Tulis fungsi bernama
countWordOccurrencesyang:- Menerima dua parameter
char*:sentencedantargetWord - Mengembalikan integer yang menunjukkan berapa kali kata target muncul dalam kalimat
- Menggunakan perulangan untuk memproses kalimat karakter demi karakter
- Mengidentifikasi batas kata dengan menggunakan spasi sebagai pemisah
- Mengekstrak setiap kata dari kalimat dan membandingkannya dengan kata target menggunakan
strcmp() - Menghitung kecocokan persis dengan perbandingan peka huruf besar-kecil
- Menerima dua parameter
- Tulis fungsi bernama
extractWordyang:- Menerima kalimat
char*, integerstartIndex, dan parameter katachar* - Mengembalikan integer yang menunjukkan indeks setelah kata yang diekstrak
- Mengekstrak satu kata mulai dari
startIndexhingga ditemukan spasi atau terminator null - Menyimpan kata yang diekstrak dalam parameter
word - Menambahkan terminator null untuk melengkapi kata yang diekstrak
- Menerima kalimat
- Tulis fungsi bernama
analyzeTextyang:- Menerima parameter kalimat
char* - Mengembalikan integer yang menunjukkan jumlah total kata dalam kalimat
- Menghitung kata dengan mengidentifikasi spasi sebagai pemisah
- Menangani beberapa spasi berurutan dengan benar, yaitu menganggapnya sebagai satu pemisah
- Menerima parameter kalimat
- Di fungsi main:
- Deklarasikan array karakter
inputSentenceberukuran 200 - Deklarasikan array karakter
searchWordberukuran 50 - Baca kalimat dari input, yang dapat berisi beberapa kata yang dipisahkan oleh spasi
- Baca kata target yang akan dicari
- Panggil fungsi
analyzeTextdan cetak jumlah total kata dengan format persis ini:Total words: [count] - Panggil fungsi
countWordOccurrencesdan cetak hasilnya dengan format persis ini:Occurrences of '[searchWord]': [count] - Hitung dan cetak frekuensi kata sebagai persentase dengan tepat 1 angka desimal menggunakan format persis ini:
Frequency: [percentage]% - Tentukan dan cetak kategori frekuensi:
- Jika frekuensinya 0.0%: cetak
Category: Not found - Jika frekuensinya lebih besar dari 0.0% tetapi kurang dari 20.0%: cetak
Category: Rare - Jika frekuensinya antara 20.0% dan 50.0%, termasuk kedua batas: cetak
Category: Common - Jika frekuensinya lebih besar dari 50.0%: cetak
Category: Frequent
- Jika frekuensinya 0.0%: cetak
- Deklarasikan array karakter
Tantangan ini menguji penguasaanmu dalam manipulasi string, tokenisasi, dan pemrosesan teks. Kamu akan berlatih memecah kalimat menjadi kata-kata, membandingkan string untuk menemukan kecocokan persis, dan membuat beberapa fungsi yang bekerja sama untuk menganalisis data teks. Program ini menunjukkan teknik pemrosesan teks dunia nyata yang penting untuk banyak aplikasi C.
Coba sendiri
#include <stdio.h>
#include <string.h>
// TODO: Tulis fungsi extractWord di sini
// TODO: Tulis fungsi countWordOccurrences di sini
// TODO: Tulis fungsi analyzeText di sini
int main() {
char inputSentence[200];
char searchWord[50];
// Baca kalimat input
fgets(inputSentence, sizeof(inputSentence), stdin);
// Hapus karakter baris baru jika ada
inputSentence[strcspn(inputSentence, "\n")] = '\0';
// Baca kata yang dicari
scanf("%s", searchWord);
// TODO: Tulis kodemu di bawah ini
// Panggil fungsi analyzeText dan simpan jumlah total kata
// Panggil fungsi countWordOccurrences dan simpan jumlah kemunculan
// Hitung persentase frekuensi
// Tentukan kategori frekuensi
// Tampilkan hasil dalam format yang diminta
// printf("Total words: %d\n", totalWords);
// printf("Occurrences of '%s': %d\n", searchWord, occurrences);
// printf("Frequency: %.1f%%\n", frequency);
// printf("Category: %s\n", category);
return 0;
}Semua pelajaran di Logika dan Alur
1Dasar-Dasar Pointer
Apa Itu Pointer?Mendeklarasikan PointerOperator Address-Of (&)Operator Dereference (*)Pointer NULLRekap: Dasar-Dasar Pointer4Proyek: Utilitas Teks Sederhana
Gambaran Umum ProyekMenghitung Karakter2Pointer dan array
Nama array sebagai pointerElemen array dan pointerAritmetika pointerMembandingkan pointerRangkuman: Menelusuri array dengan pointer5Pointer dan Fungsi
Penerusan dengan NilaiMeneruskan Pointer ke FungsiMengubah Variabel melalui PointerContoh Klasik: SwapMeneruskan Array ke FungsiRingkasan: Argumen Pointer Fungsi8Struct dan Pointer
Pointer ke StructOperator Panah (->)Mengirim Struct berdasarkan NilaiMengirim Pointer StructAlokasi Dinamis StructUlasan: Memodifikasi Struct dengan Pointer11Tantangan Rangkuman Akhir
Rangkuman: Penggabungan string DinamisRangkuman: array berisi structRangkuman: Penghitung Frekuensi Kata3Array char dan String
String sebagai array charPenanda akhir nullInput String dengan scanfMenggunakan strlen()Menggunakan strcpy()Menggunakan strcat()Menggunakan strcmp()Ulasan: Fungsi String DasarLatihan sendiri: Compiler C online