Console Methods — Debugging

Lebih dari console.log() Kebanyakan developer hanya menggunakan console.log(), padahal object console punya banyak method berguna lainnya. console.log() —…

console adalah object bawaan browser untuk mencetak sesuatu ke panel Console di DevTools. Kebanyakan orang cuma kenal console.log, padahal isinya lebih banyak. Bayangin console.log itu satu pulpen, dan object console itu satu kotak alat tulis: ada stabilo kuning dan merah (warn, error), penggaris buat tabel (table), map buat mengelompokkan kertas (group), stopwatch (time), dan alat hitung jepret (count). Semuanya mencetak ke tempat yang sama, tapi hasilnya jauh lebih gampang dibaca.

🧪 Tebakan cepat: console.table([{ name: "Ana", age: 25 }, { name: "Budi", age: 30 }]) menampilkan tabel. Kolomnya apa saja? Tebak dulu, jawabannya ada di bagian "console.table: array of object jadi tabel".

console.log: satu panggilan, satu baris

const data = [45, 23, 67, 12, 89, 34, 56, 78, 90, 11];

console.log(data.length);               // 10
console.log("min:", 11, "max:", 90);    // min: 11 max: 90
console.log("min:" + 11 + ",max:" + 90); // min:11,max:90

warn dan error: kasih level

console.warn("Data cuma 3 angka, rata-ratanya kurang mewakili");
console.error("Data kosong, gak ada yang bisa dihitung");

console.warn dicetak kuning dengan ikon segitiga, console.error merah dan ikut menampilkan jejak pemanggilnya (stack trace). Gunanya: di Console ada menu Default levels untuk menyaring per level. Pilih Errors saja, dan ratusan log biasa langsung hilang dari pandangan.

console.table: array of object jadi tabel

console.table([
  { name: "Ana", age: 25 },
  { name: "Budi", age: 30 }
]);
(index) name age
0 'Ana' 25
1 'Budi' 30

Kolomnya diambil dari nama property: name dan age, ditambah kolom (index) berisi nomor urut array. Itu jawaban tebakannya: bukan kolom Ana dan Budi, karena Ana dan Budi itu isinya, jadi baris. Untuk array of object (data dari API, misalnya), ini jauh lebih enak dibaca daripada console.log yang menampilkan (2) [{…}, {…}].

console.group: kelompokkan baris

console.group("analyzeArray");
console.log(10);
console.log("min:11,max:90");
console.log(50.5);
console.groupEnd();

Console menampilkan judul analyzeArray dengan segitiga, dan tiga baris di bawahnya menjorok ke dalam. Klik segitiganya untuk melipat. console.groupCollapsed sama, tapi mulai dalam keadaan terlipat. Setiap group harus ditutup groupEnd, kalau gak, semua log berikutnya ikut menjorok.

time dan count: ukur dan hitung

console.time("loop");
let sum = 0;
for (let i = 0; i < 10000; i++) sum += i;
console.timeEnd("loop"); // loop: 0.52 ms (angkanya beda tiap kali jalan)

console.count("klik"); // klik: 1
console.count("klik"); // klik: 2

Kalau kamu butuh durasinya sebagai angka (bukan cuma tulisan di Console), catat waktunya sendiri: Date.now() memberi waktu sekarang dalam milidetik.

const mulai = Date.now();
for (let i = 0; i < 10000; i++) sum += i;
const durasi = Date.now() - mulai;
console.log("time:" + durasi + "ms"); // time:0ms

performance.now() lebih teliti (ada angka di belakang koma), jadi bulatkan dulu dengan Math.round kalau butuh bilangan bulat.

Latihan: meringkas array angka

Dari data di atas, ini yang dihitung latihannya:

Yang dicari Cara Hasil
jumlah elemen arr.length 10
terkecil Math.min(...arr) 11
terbesar Math.max(...arr) 90
rata-rata total 505 dibagi 10 50,5
const count = arr.length;
const min = Math.min(...arr);
const max = Math.max(...arr);
const total = arr.reduce((acc, n) => acc + n, 0);
const avg = Math.round((total / count) * 100) / 100;

Tiga lagi: assert, dir, trace

⚠️ Jebakan yang sering ketemu

TL;DR: Object console punya alat untuk tiap kebutuhan: log (satu panggilan, satu baris), warn dan error (kuning dan merah, bisa disaring lewat Default levels), table (array of object jadi tabel dengan kolom (index) plus nama property, misalnya name dan age), group/groupEnd (mengelompokkan), time/timeEnd (stopwatch, label harus sama), count (menghitung panggilan), assert (cuma bicara kalau false), dir (semua property dan method sebuah DOM element), dan trace (siapa yang memanggil). Untuk durasi sebagai angka, pakai Date.now() sebelum dan sesudah. Rata-rata dua angka di belakang koma: Math.round(x * 100) / 100.

Yang akan kamu pelajari