E2 — Penganalisis Log (Filter dan Penghitung Sederhana)
Uraikan array baris log di memori, filter berdasarkan tingkat/kata kunci, dan hitung peristiwa dengan Map. Buat tetap kecil dan mudah dibaca
E2 — Penganalisis Log (Filter dan Penghitung Sederhana) adalah pelajaran JavaScript Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar JavaScript Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus JavaScript Academy mencakup 3 pelajaran total.
Yang akan kita bangun
Tujuan: Analisis catatan dalam memori.
- Representasikan baris sebagai string kecil
- Saring berdasarkan level atau keyword
- Hitung dengan Map
- Jaga agar fungsi tetap singkat dan jelas

Data + pengurai
Buat bentuk sederhana untuk setiap baris: time, level, dan teks. Ini cukup untuk penyaring dan penghitung.
// Simulated log lines (time level message)
const LINES = [
"10:00 INFO Start app",
"10:01 WARN Low memory",
"10:02 INFO User login /home",
"10:03 ERROR DB timeout",
"10:04 INFO User login /products",
"10:05 ERROR Network fail",
"10:06 WARN Retry request"
];
// Tiny parser: returns { time, level, text }
function parseLine(line) {
// split on spaces, compact, then rebuild pieces
const parts = line.trim().split(/\\s+/);
if (parts.length < 3) return null;
const time = parts[0];
const level = parts[1];
const text = parts.slice(2).join(" ");
return { time: time, level: level, text: text };
}
console.log("parsed:", parseLine(LINES[2]));
Dasar-dasar penyaringan
Tulis fungsi penyaring kecil untuk setiap pertanyaan umum. Kode yang singkat dan mudah dibaca lebih baik daripada kode yang cerdik.
// Filter by level or by keyword (case-sensitive for simplicity)
function filterByLevel(lines, want) {
const out = [];
for (const line of lines) {
const p = parseLine(line);
if (p && p.level === want) out.push(p);
}
return out;
}
function filterByKeyword(lines, word) {
const out = [];
for (const line of lines) {
const p = parseLine(line);
if (p && p.text.indexOf(word) !== -1) out.push(p);
}
return out;
}
console.log("ERRORs:", filterByLevel(LINES, "ERROR").length);
console.log("login :", filterByKeyword(LINES, "login").length);
Penghitung dengan Map
Gunakan Map untuk penghitung: pembaruan cepat dan pembacaan yang mudah untuk setiap kunci.
// Count how many lines per level
function countByLevel(lines) {
const counts = new Map();
for (const line of lines) {
const p = parseLine(line);
if (!p) continue;
const old = counts.get(p.level) || 0;
counts.set(p.level, old + 1);
}
return counts;
}
const c = countByLevel(LINES);
console.log("INFO :", c.get("INFO"));
console.log("WARN :", c.get("WARN"));
console.log("ERROR:", c.get("ERROR"));
Contoh N teratas
Lakukan ekstraksi string kecil dan urutkan dengan Map penghitung. Jaga agar aturan penguraian tetap sederhana.
// Extract a path after "User login " and rank by frequency
function topLoginPaths(lines, k) {
const freq = new Map();
for (const line of lines) {
const p = parseLine(line);
if (!p) continue;
const mark = "User login ";
const idx = p.text.indexOf(mark);
if (idx !== -1) {
const path = p.text.slice(idx + mark.length).trim();
const old = freq.get(path) || 0;
freq.set(path, old + 1);
}
}
// turn into array and sort descending by count
const arr = Array.from(freq.entries());
arr.sort(function (a, b) { return b[1] - a[1]; });
return arr.slice(0, k);
}
console.log("top paths:", topLoginPaths(LINES, 3));
Panduan bagi pemula
Kiat:
- Buat pengurai kecil terlebih dahulu.
- Tulis pembantu penyaring kecil untuk setiap pertanyaan.
- Hitung dengan Map.
- Utamakan string sederhana dan perulangan yang jelas bagi pemula.

Kuis penghitungan dengan Map
Pemeriksaan singkat: Struktur penghitungan.

Ringkasan
Ringkasan: Uraikan menjadi bentuk kecil, saring berdasarkan level/keyword, dan hitung dengan Map. Jaga setiap pembantu tetap singkat dan mudah dipahami.

Pertanyaan yang Sering Diajukan
Apakah pelajaran “E2 — Penganalisis Log (Filter dan Penghitung Sederhana)” gratis?
Ya — teks lengkap “E2 — Penganalisis Log (Filter dan Penghitung Sederhana)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus JavaScript Academy, upgrade ke CoddyKit PRO. Kursus JavaScript Academy mencakup 3 pelajaran total.
Apa yang akan aku pelajari di “E2 — Penganalisis Log (Filter dan Penghitung Sederhana)”?
Uraikan array baris log di memori, filter berdasarkan tingkat/kata kunci, dan hitung peristiwa dengan Map. Buat tetap kecil dan mudah dibaca Kamu berlatih JavaScript Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai JavaScript Academy?
Tidak diperlukan pengalaman sebelumnya. JavaScript Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 3.
Berapa lama pelajaran “E2 — Penganalisis Log (Filter dan Penghitung Sederhana)” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran JavaScript Academy ini?
Ya. Setiap pelajaran JavaScript Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- E1 — Evaluator Ekspresi (bagian 1: + dan - LTR)
- E2 — Penganalisis Log (Filter dan Penghitung Sederhana)
- E3 — Kumpulan/Antrean Promise (Konkurensi async)