Menu
CoddyTech

Statistik Lanjutan

Termasuk bagian Logika & Alur dalam perjalanan Java di Coddy. Pelajaran 53 dari 59.

Sekarang kita akan menambahkan statistik lanjutan menggunakan method HashMap untuk menemukan kata yang paling sering dan paling jarang muncul, serta menghitung persentase.

challenge icon

Tantangan

Mudah

Tingkatkan program agar menampilkan:

  1. Jumlah total kata
  2. Jumlah kata unik
  3. Setiap kata beserta jumlah kemunculan dan persentasenya dari total, satu baris untuk setiap kata, dalam urutan alfabetis (TreeMap menjaga kuncinya tetap terurut; jika kamu menggunakan HashMap, urutkan kuncinya sebelum mencetaknya)

Contoh:

Input:

Coddy!

Expected Output:

Total words: 1
Unique words: 1
Word statistics:
coddy: 1 (100.00%)

Coba sendiri

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String text = scanner.nextLine();
        
        String[] sentences = text.split("\\.");
        String[][] textArray = new String[sentences.length][];
        HashMap<String, Integer> wordCount = new HashMap<>();
        
        for (int i = 0; i < sentences.length; i++) {
            textArray[i] = sentences[i].trim().split(" ");
            for (int j = 0; j < textArray[i].length; j++) {
                if (!textArray[i][j].isEmpty()) {
                    String word = textArray[i][j]
                        .replaceAll("[^a-zA-Z ]", "")
                        .toLowerCase();
                    wordCount.put(word, wordCount.getOrDefault(word, 0) + 1);
                }
            }
        }
        
        System.out.println("Word counts:");
        for (Map.Entry<String, Integer> entry : wordCount.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika & Alur

Latihan sendiri: Compiler Java online