Cara Membaca Error dan Log — Di Mana Melihat dan Apa yang Dilaporkan

Artikel ini adalah bagian dari kursus Dasar-Dasar Teknologi Informasi, yang membangun dari nol pengetahuan TI praktis yang minimal kamu butuhkan untuk memprogram dan melakukan vibe coding.
Tempat yang kamu lihat terbagi menjadi tiga: pesan error, stack trace, dan log. Diagram menunjukkan di mana harus melihat dan apa yang perlu kamu sampaikan kepada orang yang menjawab agar masalahnya bisa diperbaiki.

Artikel ini membahas cara membaca pesan error dan log.

Teks yang muncul saat eksekusi berhenti dan catatan yang tertinggal selama program berjalan adalah dua hal yang berbeda.

Dari satu kejadian "error muncul", tempat yang kamu lihat terbagi menjadi tiga.

Dari "error muncul", tempat yang dilihat terbagi menjadi tiga
ErrormunculPesanerrorStacktraceLogserverApa yang terjadilalu berhentiFile mana danbaris ke berapaKapan dan padaaksi apa terjadiPerkirakan darinama jenisnyaBuka baris ituBaca baris sekitar
Satu kejadian di kiri menyebar menjadi tiga di tengah. Kolom ketiga adalah apa yang bisa kamu ketahui dari masing-masing, dan paling kanan adalah apa yang kamu lakukan berikutnya.

Dua yang di atas adalah teks yang muncul saat eksekusi berhenti; yang paling bawah adalah catatan yang tertinggal selama program berjalan.

Saat eksekusi berhenti, muncul pesan error dan stack trace

Ketika terjadi error (eksekusi berhenti karena instruksi tidak dapat dilanjutkan), runtime menuliskan apa yang terjadi sebagai teks.

Teks ini terbagi menjadi dua bagian yang perannya berbeda.

Ketika kamu menjalankan app.js dari aplikasi reservasi my-app dengan node app.js, teks berikut muncul di titik program berhenti.

/Users/you/my-app/app.js:5
  return items.price * items.count;
               ^

TypeError: Cannot read properties of undefined (reading 'price')
    at keisan (/Users/you/my-app/app.js:5:16)
    at goukei (/Users/you/my-app/app.js:9:10)
    at Object.<anonymous> (/Users/you/my-app/app.js:13:13)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)

Satu baris yang diawali TypeError adalah pesan error, dan empat baris di bawahnya yang diawali at adalah stack trace.

Satu baris pesan error itu pun terbagi menjadi tiga: jenis, penjelasan, dan sasaran.

Teks yang tampil di layar saat eksekusi berhenti
Seluruh teks yang tampil di layar
Pesan error — apa yang terjadi
TypeError
  • Jenis error — nama untuk kategori masalah
  • Tempat yang pertama dilihat tergantung namanya
Cannot read properties of undefined
  • Penjelasan — apa yang tidak bisa dilakukan
  • Ada nilai yang menjadi undefined
(reading 'price')
  • Sasaran — nilai atau nama mana yang gagal
  • Gagal saat mencoba membaca price
Stack trace — di mana berhentinya
  • Deretan baris yang diawali at
  • Baris di app.js yang kamu tulis
  • Baris di dalam library dan runtime
Kotak terluar adalah seluruh teks yang tampil di layar, dan dua di dalamnya adalah bagian-bagiannya. Pesan error sendiri terbagi lagi menjadi tiga.

Bagian paling dalam, yaitu jenis error (error type, nama yang disediakan runtime untuk menunjukkan kategori masalah), menentukan tempat yang pertama kamu lihat sesuai namanya.

Tiga jenis error yang sering muncul dan tempat yang pertama dibuka
TypeErrorJenis nilaitidak cocokBaris sebelumnyayang mengisi nilaiReferenceErrorNama itu tidakada di mana punEjaan nama danbaris definisinyaSyntaxErrorSintaksnya tidakterbacaSimbol di sekitarbaris tersebut
Kiri adalah nama jenisnya, tengah adalah apa yang tidak bisa dilakukan, dan kanan adalah tempat yang pertama dibuka. Begitu kamu tahu namanya, kamu tahu ke mana harus melihat berikutnya.

Teks yang muncul: apa yang terjadi dan di mana

Teks merah di layar terdiri dari dua hal: pesan error yang menyatakan secara singkat apa yang terjadi, dan stack trace yang mendaftar di mana eksekusi berhenti.

Baca pesan error sebagai tiga bagian — jenis, penjelasan, dan sasaran — dan begitu kamu tahu nama jenisnya, kamu bisa memperkirakan tempat yang harus dibuka berikutnya.

Stack trace adalah deretan tempat yang dilewati sampai berhenti

Program terbagi menjadi unit-unit pemrosesan, dan satu unit memanggil unit lain sambil berjalan.

Setiap baris yang berderet adalah unit pemrosesan yang masih berjalan saat program berhenti.

Semakin ke atas semakin ke dalam, semakin ke bawah semakin ke luar.

Baris yang berderetPemrosesan yang berjalanApa yang dilakukan di sanaTempat yang dilihat berikutnya
at keisankeisanMencoba membaca items.priceIni baris tempat berhentinya
at goukeigoukeiMemanggil keisandata.cart yang diteruskan
at Object.<anonymous>Baris paling luarMemanggil goukeiNilai yang diteruskan di sini adalah sumbernya

Baris keisan adalah tempat berhentinya, tetapi yang ada di sana hanyalah ekspresi yang memakai nilai yang diterima.

Menelusuri nilai yang diteruskan membawa kamu ke baris 13, baris paling luar.

Karena yang diteruskan di sana tidak memuat price, eksekusi berhenti ketika keisan mencoba membacanya.

Baris-baris yang berderet juga menampilkan nama file selain app.js yang kamu tulis.

Mulailah dengan membuka baris untuk file yang kamu tulis sendiri.

Urutan dan kata yang dipakai berbeda-beda menurut runtime.

Python menulis File alih-alih at, dan menyebut seluruh deretan itu traceback (sebutan lain untuk stack trace).

Isi yang sama berderet dengan arah berlawanan di Node.js dan Python
Teks saatberhentiNode.jsat keisan(app.js:5)Baris berhentiada paling atasPythonFile "app.py",line 5Baris berhentiada paling bawah
Kiri adalah teks yang muncul saat eksekusi berhenti. Node.js di atas, Python di bawah. Cara penulisan dan arah deretannya berbeda, tetapi pada keduanya kamu membuka baris untuk file kamu sendiri lebih dulu.

Baris yang berderet adalah panggilan dari dalam ke luar

Stack trace adalah deretan tempat eksekusi berhenti dan tempat-tempat yang dilewati untuk sampai ke sana.

Satu baris adalah satu unit pemrosesan dan semakin ke atas semakin ke dalam letaknya; cara penulisan dan arah deretannya berbeda menurut runtime, tetapi pada semuanya kamu mulai membaca dari baris yang menampilkan nama file yang kamu tulis.

Log adalah catatan kejadian selama program berjalan beserta waktunya

Teks yang dibahas sejauh ini hanya bisa kamu baca di layar ketika program dijalankan di komputer kamu.

Di server publik teks itu tidak ditampilkan di layar pengguna, karena menampilkannya memberi petunjuk bagi penyerang.

Satu kegagalanSaat dijalankan di komputer kamuSetelah dipublikasikan
Jenis errorBaris TypeError:Baris ERROR di log
Tempat berhentinyaBaris yang diawali atBaris at yang tersimpan di log
Waktu kejadianTepat setelah kamu mengetik perintahWaktu di awal baris
Layar yang dilihat penggunaTeks lengkap di layar yang samaHanya pemberitahuan singkat

Yang muncul di kolom kanan adalah log (catatan kejadian selama program berjalan, yang dituliskan beserta waktunya).

Bukan hanya error: request yang masuk dan pemrosesan yang berhasil pun berderet satu baris demi satu baris, sesuai urutan kejadiannya.

Setelah menerima laporan bahwa reservasi tidak bisa disimpan, kamu membuka log my-app.

Di sekitar waktu itu, tiga baris berikut berderet.

2026-09-03 10:12:04  INFO   pendaftaran reservasi diterima id=182
2026-09-03 10:12:05  ERROR  gagal menyimpan reservasi id=182
2026-09-03 10:12:05  ERROR  koneksi ke database timeout

Di dalam satu baris pun, isinya tersusun dalam urutan tetap: waktu, level log, lalu isi.

Isi dari satu baris log
Satu baris log
2026-09-03 10:12:05
  • Kapan terjadinya
  • Waktu yang kamu sertakan saat bertanya diambil dari sini
ERROR
  • Seberapa berat kejadiannya
  • Kategori ini disebut level log
gagal menyimpan reservasi id=182
  • Apa yang terjadi
  • Petunjuk seperti id=182 juga bisa ditulis di sini
Baris kedua dipotong menjadi tiga. Dari atas berturut-turut: kapan, seberapa berat, dan apa yang terjadi.

Level log (log level, kategori yang menunjukkan seberapa berat kejadian pada baris itu) di bagian tengah membuat kamu bisa mengambil dan membaca hanya baris yang berat.

Level log berurutan dari catatan ringan ke catatan berat
DEBUGINFOWARNERRORPengaturan dimuatport=3000Pendaftaranreservasi diterimaPenyimpananmemakan 3 detikGagal menyimpanreservasiSaat memeriksanilai di komputerSaat menelusurialur yang berjalanSaat mencari tandasebelum kegagalanSaat mencari sebabberhentinya
Semakin ke bawah semakin berat. Kiri adalah nama levelnya, tengah adalah baris yang benar-benar muncul di log my-app, dan kanan adalah saat kamu membaca baris itu.

Nama dan jumlah kategorinya berbeda-beda menurut library, tetapi ada yang sama: urutannya dari catatan ringan ke catatan berat, dan pengaturan menentukan mulai dari level mana ke atas yang disimpan.

Log server dituliskan ke sebuah file, atau dikirim ke layanan pengumpul log untuk disimpan.

Cara membaca bagian akhirnya saja dibahas di Melihat isi file — cat / head / tail / wc.

Tempat yang kamu lihat ditentukan oleh sisi mana yang berhenti.

Kalau berhenti di kotak sebelah kiri, lihat console browser; kalau berhenti di kotak sebelah kanan, lihat log server.

Setelah dipublikasikan, yang dibaca adalah log

Teks yang di komputer kamu muncul di layar, setelah dipublikasikan tersimpan di log server.

Satu baris log tersusun berurutan waktu, level log, lalu isi, jadi begitu kamu menemukan baris ERROR, baca baris di sekitarnya untuk melihat apa yang sedang terjadi.

Saat bertanya, sampaikan 4 hal: teks lengkap, langkah reproduksi, lingkungan, dan waktu

Kalau kamu hanya menyampaikan "error muncul", orang yang menjawab harus mulai dengan bertanya balik.

Mereka tidak bisa melihat komputer kamu, jadi yang menentukan adalah apakah mereka bisa membuat keadaan yang sama di komputer mereka sendiri.

Apa yang bisa dilakukan kalau keempat hal itu lengkap
Teks lengkap(tanpa dipotong)Waktu kejadian(mempersempit log)Langkah reproduksi(urutan aksinya)Tempat menjalankan(lokal / publik)Kegagalan samabisa ditemukanAksi yang samabisa diulangPenjawab bisameniru keadaannya
Empat hal di kiri adalah yang kamu lampirkan pada pertanyaan. Dua yang di atas dan dua yang di bawah masing-masing bergabung, dan dengan keduanya orang yang menjawab bisa membuat keadaan yang sama lagi.

Hal kedua, langkah reproduksi (steps to reproduce, urutan aksi untuk membuat keadaan yang sama sekali lagi), adalah yang pertama diminta orang yang menjawab.

Susun berurutan di layar mana kamu berada, apa yang kamu ketik, dan apa yang kamu tekan, lalu tambahkan juga apakah hal itu terjadi setiap kali.

Tempelkan keempatnya sebagai satu blok, bukan dikirim terpisah-pisah.

Sebelum menempelkan, pastikan tidak ada nama host tujuan koneksi atau API key yang ikut tercampur.

Satu blok yang kamu tempelkan ke pertanyaan
Isi pertanyaan
Teks lengkap yang muncul
  • Dari baris TypeError sampai baris at
  • Jangan potong hanya baris terakhirnya
Langkah reproduksi
  • Memilih 12/24 18:00 di layar reservasi
  • Menekan tombol daftar
Tempat menjalankannya
  • my-app di komputer kamu, atau server publik
  • Satu baris yang dipakai menjalankannya, misalnya node app.js
Waktu kejadian
  • 2026-09-03 10:12:05
  • Menentukan bagian log mana yang dilihat
Tempelkan keempatnya di satu tempat. Menempelkannya sebagai teks, bukan sebagai foto layar, membuat penerimanya bisa mencari kata di dalamnya.

Kadang program tidak berjalan seperti yang kamu harapkan padahal tidak ada teks error yang muncul.

Layar tetap kosong dan tidak terjadi apa-apa, atau hasilnya keluar tetapi nilainya salah.

Dalam kasus seperti ini, cari di bagian mana log berhenti mencatat.

Dengan 4 hal itu, orang lain bisa membuat keadaan yang sama

Yang kamu sampaikan ada empat: teks lengkap yang muncul, langkah reproduksi, tempat kamu menjalankannya, dan waktu kejadiannya.

Semuanya diperlukan orang yang menjawab untuk membuat keadaan yang sama sekali lagi, jadi tempelkan teksnya apa adanya tanpa dipotong, dan sebelum menempelkan, cukup pastikan tidak ada nilai rahasia yang ikut tercampur.

QUIZ

Cek Pemahaman

Jawab setiap pertanyaan satu per satu.

Soal 1Di antara teks yang muncul saat eksekusi berhenti, mana yang menunjukkan tempat berhentinya?

Soal 2Ketika error terjadi di server publik, di mana kamu bisa membaca isi rincinya?

Soal 3Ketika kamu bertanya tentang sebuah error, informasi mana yang diperlukan orang yang menjawab untuk membuat keadaan yang sama?