Soal 1Di antara teks yang muncul saat eksekusi berhenti, mana yang menunjukkan tempat berhentinya?
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.
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.
- Jenis error — nama untuk kategori masalah
- Tempat yang pertama dilihat tergantung namanya
- Penjelasan — apa yang tidak bisa dilakukan
- Ada nilai yang menjadi undefined
- Sasaran — nilai atau nama mana yang gagal
- Gagal saat mencoba membaca price
- Deretan baris yang diawali at
- Baris di app.js yang kamu tulis
- Baris di dalam library dan runtime
Bagian paling dalam, yaitu jenis error (error type, nama yang disediakan runtime untuk menunjukkan kategori masalah), menentukan tempat yang pertama kamu lihat sesuai namanya.
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 berderet | Pemrosesan yang berjalan | Apa yang dilakukan di sana | Tempat yang dilihat berikutnya |
|---|---|---|---|
| at keisan | keisan | Mencoba membaca items.price | Ini baris tempat berhentinya |
| at goukei | goukei | Memanggil keisan | data.cart yang diteruskan |
| at Object.<anonymous> | Baris paling luar | Memanggil goukei | Nilai 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).
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 kegagalan | Saat dijalankan di komputer kamu | Setelah dipublikasikan |
|---|---|---|
| Jenis error | Baris TypeError: | Baris ERROR di log |
| Tempat berhentinya | Baris yang diawali at | Baris at yang tersimpan di log |
| Waktu kejadian | Tepat setelah kamu mengetik perintah | Waktu di awal baris |
| Layar yang dilihat pengguna | Teks lengkap di layar yang sama | Hanya 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.
- Kapan terjadinya
- Waktu yang kamu sertakan saat bertanya diambil dari sini
- Seberapa berat kejadiannya
- Kategori ini disebut level log
- Apa yang terjadi
- Petunjuk seperti id=182 juga bisa ditulis di sini
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.
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.
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.
- Dari baris TypeError sampai baris at
- Jangan potong hanya baris terakhirnya
- Memilih 12/24 18:00 di layar reservasi
- Menekan tombol daftar
- my-app di komputer kamu, atau server publik
- Satu baris yang dipakai menjalankannya, misalnya node app.js
- 2026-09-03 10:12:05
- Menentukan bagian log mana yang dilihat
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.
Cek Pemahaman
Jawab setiap pertanyaan satu per satu.
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?