import java.util.List;

record Tahap(String nama, int halaman) {}

public class RencanaBelajar {

    public static void main(String[] args) {
        // Jumlah halaman per tahap dihitung dari struktur Course Java.
        List<Tahap> tahap = List.of(
                new Tahap("Fondasi bahasa", 98),
                new Tahap("OOP dan koleksi", 117),
                new Tahap("Data dan jaringan", 83),
                new Tahap("Perangkat profesional", 113),
                new Tahap("Domain lanjutan", 138),
                new Tahap("Proyek terbimbing", 8),
                new Tahap("Sumber belajar", 10));

        int total = tahap.stream().mapToInt(Tahap::halaman).sum();

        System.out.printf("%-22s%8s%n", "Tahap", "Halaman");
        tahap.forEach(t -> System.out.printf("%-22s%8d%n", t.nama(), t.halaman()));
        System.out.printf("%-22s%8d%n", "TOTAL", total);
        System.out.println();

        // Jalur cepat: fondasi + OOP penuh, satu proyek, tiga halaman rujukan inti.
        int jalurCepat = 98 + 117 + 8 + 3;

        System.out.println("Jalur cepat       : " + jalurCepat + " halaman");
        System.out.println("  tempo 18/minggu : " + Math.ceilDiv(jalurCepat, 18)
                + " minggu (sekitar 3 bulan)");
        System.out.println("Jalur menyeluruh  : " + total + " halaman");
        System.out.println("  tempo 10/minggu : " + Math.ceilDiv(total, 10)
                + " minggu (sekitar 13 bulan)");
    }
}
