Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>JavaScript Logic AnalysisNew to Visual Studio Code? Get it now.
JavaScript Logic Analysis

JavaScript Logic Analysis

Nizaral

|
3 installs
| (0) | Free
Static analysis extension for Visual Studio Code that evaluates the logic quality of JavaScript code.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

LogicScope JS

Analisis statis untuk kualitas logika kode JavaScript — bukan sekadar gaya penulisan.

LogicScope JS membaca kode Anda melalui Abstract Syntax Tree (AST), mendeteksi 31 pola kesalahan logika dan kompleksitas, lalu merangkumnya menjadi satu skor kualitas 0–100 yang bisa Anda pantau saat mengetik.

Setiap temuan tidak hanya memberi tahu apa yang salah, tetapi juga mengapa itu bermasalah dan bagaimana memperbaikinya.


Kenapa LogicScope JS?

Linter umumnya menjawab "aturan mana yang dilanggar?". LogicScope JS menjawab "seberapa sehat logika kode ini?".

Linter umum LogicScope JS
Keluaran Daftar pelanggaran Daftar pelanggaran + skor kualitas
Pesan Satu baris Masalah → Penyebab → Saran → Pratinjau perbaikan
Perbaikan Semua atau tidak sama sekali Dipilih satu per satu, dikelompokkan menurut risiko
Konfigurasi Perlu berkas konfigurasi Langsung jalan tanpa setup

Instalasi

  1. Buka Visual Studio Code
  2. Tekan Ctrl+Shift+X untuk membuka panel Extensions
  3. Cari LogicScope JS
  4. Klik Install

Tidak ada konfigurasi tambahan yang diperlukan.


Memulai dalam 30 Detik

1. Buka berkas JavaScript
Berkas berekstensi .js atau .jsx.

2. Klik ikon LogicScope JS di Activity Bar
Ikon kaca pembesar di sisi kiri layar.

3. Tekan tombol ANALYSIS CORRECTION
Panel akan menampilkan skor kualitas beserta seluruh temuan.

4. Telusuri temuan
Klik teks Ln 12, Col 5 pada temuan mana pun untuk melompat ke lokasinya di editor.

5. Terapkan perbaikan
Centang perbaikan yang diinginkan, lalu tekan REPAIR CODE. Skor akan langsung diperbarui.

Setelah langkah ketiga, analisis berjalan otomatis setiap kali Anda mengetik. Tidak perlu menekan tombol lagi.


Mengenal Panel Analisis

┌────────────────────────────────┐
│ contoh.js            10:42:31  │  ← nama berkas & waktu analisis
│                                │
│ 49 /100 · Kurang               │  ← skor kualitas logika
│ ▓▓▓▓▓▓▓▓▓░░░░░░░░░░            │
│                                │
│  4       2        3            │
│ Error  Warning  Saran          │  ← rekap tingkat keparahan
│                                │
│ TEMUAN (9)                     │
│ ┌────────────────────────────┐ │
│ │ ☑ Pilih semua (6)          │ │  ← seleksi perbaikan massal
│ │ [✔ Hanya aman] [Bersihkan] │ │
│ └────────────────────────────┘ │
│                                │
│ ☑ ❌ LS001 · constant-condition│
│    Kondisi selalu bernilai...  │  ← MASALAH
│    Ln 8, Col 3   [Logika]      │
│    Ekspresi kondisi berupa...  │  ← PENYEBAB
│    💡 Ganti dengan kondisi...  │  ← SARAN
│    ✔ Aman diterapkan otomatis  │
│    ┌──────────────────────┐    │
│    │ total = total + 1000;│    │  ← PRATINJAU PERBAIKAN
│    └──────────────────────┘    │
│                                │
│ ─────────────────────────────  │
│ 🔍 ANALYSIS CORRECTION         │
│ 🔧 REPAIR CODE (3)             │
│ ● LIVE      3 dipilih · aman   │
└────────────────────────────────┘

Memahami Skor Kualitas

Skor dimulai dari 100 dan dikurangi berdasarkan temuan yang ditemukan:

Penalti = (Error × 10) + (Warning × 4) + (Saran × 1)
Skor    = 100 − Penalti   (minimum 0)
Skor Predikat Artinya
90–100 Sangat Baik Nyaris tanpa masalah logika
75–89 Baik Beberapa hal kecil perlu dirapikan
60–74 Cukup Ada masalah yang sebaiknya ditangani
40–59 Kurang Beberapa kesalahan logika perlu diperbaiki
0–39 Perlu Refactor Kualitas logika bermasalah serius

Bobot mencerminkan kepastian, bukan besarnya dampak. Temuan Error hampir pasti merupakan bug, sedangkan Saran adalah praktik yang lebih baik.


Tiga Jenis Perbaikan

Ini pembeda utama LogicScope JS. Tidak semua perbaikan sama amannya, jadi setiap usulan diberi klasifikasi risiko:

Tampilan Klasifikasi Arti
☑ Aman Tidak mengubah perilaku program. Tercentang otomatis.
☐ Usulan Perbaikan benar, tetapi mengubah perilaku atau berpotensi menutupi bug asli. Perlu Anda tinjau.
(tanpa kotak) Manual Perbaikan memerlukan keputusan desain yang tidak bisa disimpulkan otomatis.

Contoh klasifikasi Usulan: mengganti == menjadi === memang benar, tetapi bisa mengubah hasil perbandingan jika kode lama mengandalkan konversi tipe. Karena itu tidak diterapkan tanpa persetujuan Anda.

Contoh klasifikasi Manual: pada if (a.stok === a.stok), LogicScope JS tahu perbandingan ini selalu bernilai true — tetapi tidak tahu operand mana yang seharusnya ditulis. Hanya Anda yang tahu.


Daftar Aturan Deteksi

🔴 Logika (13 aturan)

Kode Aturan Contoh yang terdeteksi
LS001 constant-condition if (true) { ... }
LS002 assignment-in-condition if (status = cek())
LS003 duplicate-condition if (a) ... else if (a) ...
LS005 loose-equality harga == "0"
LS012 nan-comparison nilai === NaN
LS013 self-comparison a.stok === a.stok
LS014 duplicate-object-key { kurir: "a", kurir: "b" }
LS015 identical-branches if (x) { f() } else { f() }
LS021 duplicate-case case 1: ... case 1: ...
LS022 self-assign o.stok = o.stok
LS023 duplicate-params function f(a, b, a)
LS028 return-assign return total = 100
LS029 sparse-array [1, , 3]
LS030 unsafe-negation if (!kunci in objek)

🟡 Kompleksitas (6 aturan)

Kode Aturan Ambang
LS006 deep-nesting Lebih dari 3 tingkat
LS007 high-complexity Cyclomatic complexity di atas 10
LS008 too-many-params Lebih dari 3 parameter
LS017 long-function Lebih dari 50 baris
LS020 nested-ternary Ternary di dalam ternary
LS026 function-in-loop Fungsi dideklarasikan di dalam perulangan
LS027 await-in-loop await dijalankan berurutan dalam perulangan

🔵 Alur Kendali (4 aturan)

Kode Aturan Contoh yang terdeteksi
LS004 unreachable-code Kode setelah return
LS009 empty-block catch (e) { }
LS018 switch-fallthrough case tanpa break
LS019 else-after-return else setelah cabang yang selalu return

⚪ Gaya Penulisan (5 aturan)

Kode Aturan Contoh yang terdeteksi
LS010 no-var var nama = ...
LS011 no-console console.log(...) tertinggal
LS016 boolean-comparison akun.aktif === true
LS024 lonely-if else { if (...) { ... } }
LS025 debugger-statement debugger; tertinggal

⚫ Sintaks (1 aturan)

Kode Aturan Keterangan
LS000 syntax-error Kode gagal diurai; analisis aturan lain dihentikan

Analisis Real-Time

Setelah analisis pertama dijalankan, LogicScope JS memantau perubahan kode secara otomatis.

  • Indikator hijau berdenyut pada panel dan status bar menandakan mode ini aktif
  • Analisis berjalan 500 ms setelah Anda berhenti mengetik, bukan setiap ketukan tombol
  • Klik indikator pada status bar untuk menyalakan atau mematikannya

Kalau sedang bekerja pada berkas sangat besar dan terasa berat, matikan mode ini atau naikkan nilai jeda pada pengaturan.


Perintah

Dapat diakses melalui Command Palette (Ctrl+Shift+P):

Perintah Fungsi
LogicScope JS: Analysis Correction Menjalankan analisis pada berkas aktif
LogicScope JS: Repair Code Menerapkan seluruh perbaikan berklasifikasi aman
LogicScope JS: Aktifkan / Nonaktifkan Analisis Real-time Mengubah mode pemantauan otomatis
LogicScope JS: Tampilkan Laporan Lengkap Membuka laporan teks lengkap di Output Channel

Perbaikan juga tersedia lewat Quick Fix — arahkan kursor ke baris bermasalah lalu tekan Ctrl+.


Pengaturan

Pengaturan Bawaan Keterangan
logicscope-js.liveAnalysis true Analisis otomatis saat kode berubah
logicscope-js.analysisDelay 500 Jeda sebelum analisis dijalankan (milidetik, 100–5000)
logicscope-js.analyzeOnOpen true Analisis otomatis saat berkas dibuka

Pertanyaan Umum

Apakah kode saya dikirim ke server?
Tidak. Seluruh analisis berjalan sepenuhnya di komputer Anda, tanpa koneksi internet dan tanpa mengirim data ke mana pun.

Apakah bisa dipakai bersamaan dengan ESLint?
Bisa. Keduanya menggunakan sistem Diagnostic bawaan VS Code, sehingga temuan tampil berdampingan tanpa saling mengganggu.

Kenapa sebagian temuan tidak punya tombol perbaikan?
Karena perbaikannya memerlukan keputusan yang hanya Anda yang tahu jawabannya. Memaksakan perbaikan otomatis pada kasus seperti itu justru berisiko menyembunyikan bug alih-alih memperbaikinya.

Apakah mendukung TypeScript?
Belum. Saat ini hanya JavaScript (.js) dan JSX (.jsx).

Saat mengetik muncul error sintaks sesaat, apakah normal?
Ya. Kode yang sedang diketik sering belum lengkap, sehingga LS000 muncul sebentar lalu hilang sendiri. Naikkan analysisDelay bila terasa mengganggu.


Keterbatasan

LogicScope JS melakukan analisis berbasis AST tanpa data-flow analysis, type inference, maupun symbol table. Konsekuensinya:

  • Konstanta tidak dilacak lintas baris — const AKTIF = true; if (AKTIF) tidak terdeteksi sebagai kondisi tetap
  • Analisis keterjangkauan hanya berlaku dalam satu blok, belum lintas blok
  • Aturan loose-equality tidak memeriksa tipe operand, sehingga bisa memberi peringatan pada perbandingan yang sebenarnya aman

Keterbatasan ini disampaikan secara terbuka agar Anda tahu persis apa yang bisa dan tidak bisa diandalkan dari alat ini.


Lisensi

MIT — lihat berkas LICENSE.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft