Analisis Kompleksitas Kode
Analisis kompleksitas kode sumber untuk mendeteksi pola obfuskasi dan menilai kualitas kode. Ukur kompleksitas siklomatik, kedalaman bersarang, panjang fungsi, kualitas pengenal, dan entropi Shannon. Dapatkan skor keterbacaan (A-F) dengan indikator obfuskasi bertanda tingkat keparahan. 100% privat - semua pemrosesan terjadi di browser Anda.
Code Complexity Analyzer
Paste source code above or choose a quick example to analyze its complexity
100% Private: All code complexity analysis happens entirely in your browser. Your source code is never sent to any server. No data leaves your device.
Analisis Kompleksitas Kode
[ ]
Tempel kode sumber di atas atau pilih contoh cepat untuk menganalisis kompleksitasnya
100% Privat: semua analisis kompleksitas kode terjadi sepenuhnya di browser Anda. Kode sumber Anda tidak pernah dikirim ke server mana pun. Tidak ada data yang meninggalkan perangkat Anda.
- Disalin!: Laporan analisis disalin ke papan klip.
- Gagal menyalin: Tidak dapat menyalin ke papan klip.
Mengapa Menggunakan Analisis Kompleksitas Kode Kami?
- Penilaian Kompleksitas Siklomatik: Hitung kompleksitas siklomatik dengan menghitung titik keputusan dalam kode Anda - if/else, perulangan for/while, kasus switch, blok catch, operator ternary, dan operator logis. Skor lebih tinggi menunjukkan kode yang lebih sulit diuji dan dipelihara serta mungkin sengaja diobfuskasi.
- Analisis Kedalaman Bersarang: Analisis kedalaman bersarang maksimum dan rata-rata di seluruh basis kode Anda. Struktur yang sangat bersarang (5+ tingkat) adalah ciri khas kode terobfuskasi atau dihasilkan mesin. Analisis kami melacak bersarang berbasis kurung maupun berbasis indentasi untuk semua bahasa.
- Deteksi Pola Obfuskasi: Secara otomatis mendeteksi tanda bahaya: pengenal pendek (rata-rata < 5 karakter), nama variabel mirip hex (format _0x), fungsi yang tidak wajar panjangnya (100+ baris), entropi sangat tinggi, komentar minim, dan bersarang berlebihan. Setiap tanda menyertakan peringkat keparahan dan penjelasan yang dapat ditindaklanjuti.
- Pemrosesan Browser 100% Privat: Semua analisis kompleksitas kode terjadi secara lokal di browser Anda menggunakan JavaScript murni. Kode sumber Anda tidak pernah meninggalkan perangkat Anda - tanpa unggahan ke server, tanpa pencatatan data, tanpa kekhawatiran privasi. 100% gratis dan tanpa pendaftaran.
Kasus Penggunaan Umum Analisis Kompleksitas Kode
- Tinjauan Keamanan Kode: Tandai kode yang berpotensi berbahaya atau terobfuskasi dalam pull request dan kiriman kode. Lonjakan kompleksitas, pengenal yang mencurigakan pendek, dan pola entropi abnormal membantu peninjau keamanan mengidentifikasi kode yang perlu diperiksa lebih teliti sebelum penerapan.
- Audit Kualitas Kode: Evaluasi kesehatan basis kode dengan mengukur kompleksitas siklomatik, kedalaman bersarang, dan panjang fungsi di proyek Anda. Identifikasi fungsi yang melampaui ambang kemudahan pemeliharaan dan prioritaskan upaya refaktorisasi berdasarkan data kompleksitas kuantitatif.
- Analisis Malware & Muatan Berbahaya: Analisis skrip mencurigakan untuk indikator obfuskasi sebelum menjalankannya di sandbox. Entropi sangat tinggi, fungsi minifikasi satu baris, nama variabel mirip hex, dan komentar hampir nol adalah tanda umum muatan berbahaya.
- Pendidikan Pemrograman: Bantu siswa memahami konsep kompleksitas kode dengan memvisualisasikan kompleksitas siklomatik, kedalaman bersarang, dan metrik kualitas pengenal. Bandingkan kode berstruktur baik dengan contoh terobfuskasi secara berdampingan dengan analisis kuantitatif.
- Evaluasi Pustaka Pihak Ketiga: Evaluasi paket sumber terbuka dan dependensi yang disertakan untuk obfuskasi sebelum mengintegrasikannya ke proyek Anda. Analisis kompleksitas otomatis membantu menampilkan kode mencurigakan yang mungkin terlewat oleh tinjauan manual pada basis kode besar.
- Prioritas Refaktorisasi: Identifikasi fungsi paling kompleks dalam basis kode Anda untuk memprioritaskan upaya refaktorisasi. Fungsi dengan kompleksitas siklomatik di atas 15, kedalaman bersarang di atas 5, atau panjang di atas 50 baris adalah kandidat utama untuk penyederhanaan dan pengujian yang lebih baik.
Apa itu Analisis Kompleksitas Kode?
Analisis kompleksitas kode adalah proses mengukur seberapa kompleks suatu bagian kode sumber menggunakan metrik kuantitatif. Proses ini melampaui penghitungan baris sederhana untuk mengevaluasi karakteristik struktural seperti jumlah jalur independen di dalam kode (kompleksitas siklomatik), seberapa dalam blok bersarang, seberapa panjang fungsi, dan seberapa bermakna nama pengenal. Dalam konteks deteksi obfuskasi, analisis kompleksitas adalah alat yang ampuh karena kode terobfuskasi biasanya menunjukkan nilai ekstrem pada beberapa metrik sekaligus - pengenal sangat pendek, aliran kendali bersarang dalam, dan kompleksitas siklomatik yang tidak wajar tinggi yang membuat kode sulit dipahami. Analisis kami membandingkan metrik ini dengan ambang yang sudah mapan dan menandai pola mencurigakan secara otomatis.
Cara Kerja Analisis Kompleksitas Kode Kami
- Uraikan: Tempel kode sumber Anda dan pilih bahasa yang sesuai. Analisis mengurai kode untuk mengidentifikasi fungsi, struktur aliran kendali, pengenal, komentar, dan token - tidak diperlukan kompilasi sebenarnya.
- Ukur: Mesin menghitung enam metrik kunci: kompleksitas siklomatik (menghitung titik keputusan), kedalaman bersarang (maksimum dan rata-rata), panjang fungsi (maks., min., rata-rata), analisis panjang pengenal (rata-rata dan nilai ekstrem), rasio komentar terhadap kode, dan entropi Shannon dari distribusi karakter.
- Tandai & Skor: Setiap metrik dibandingkan dengan ambang obfuskasi untuk menghasilkan tanda bertarget dengan peringkat keparahan. Skor keterbacaan keseluruhan (0-100) dan nilai huruf (A-F) merangkum transparansi kode secara sekilas.
Metrik Kompleksitas Kunci Dijelaskan
- Kompleksitas Siklomatik: Menghitung jumlah jalur yang independen secara linear di dalam kode. Setiap if, else, for, while, case, catch, &&, dan || menambah satu jalur. Nilai di bawah 10 dianggap sehat; di atas 15 mencurigakan; di atas 30 sangat menunjukkan obfuskasi.
- Kedalaman Bersarang: Mengukur seberapa banyak tingkat blok kode bersarang. 3-4 tingkat normal untuk logika kompleks. 5-7 mencurigakan. Di atas 8 tingkat hampir pasti terobfuskasi atau dihasilkan mesin.
- Panjang Pengenal: Kode terobfuskasi menggunakan pengenal sangat pendek (a, b, _0x). Panjang rata-rata di bawah 5 karakter tanpa pengenal panjang adalah sinyal obfuskasi yang kuat. Kode yang ditulis dengan baik rata-rata 6-12 karakter per pengenal.
- Entropi Token: Entropi Shannon mengukur keacakan distribusi karakter. Kode alami memiliki entropi sekitar 4,0-4,8 bit/karakter. Kode terobfuskasi atau terkode sering melebihi 5,0 bit/karakter karena string hex dan token teracak.
Privasi, Keamanan & Ketersediaan
100% privat: semua analisis kode, perhitungan metrik, dan pembuatan tanda terjadi sepenuhnya di browser Anda menggunakan JavaScript murni. Kode sumber Anda tidak pernah meninggalkan perangkat Anda - tanpa unggahan ke server, tanpa pencatatan data, tanpa pelacakan analitik.
Sepenuhnya gratis: analisis kompleksitas kode kami sudah dan akan selalu gratis digunakan. Tanpa pendaftaran, tanpa batas penggunaan, tanpa batasan ukuran file. Gunakan tanpa batas untuk proyek apa pun - komersial, pribadi, atau pendidikan.
Pertanyaan yang Sering Diajukan
Analisis kompleksitas kode adalah proses mengukur kode sumber menggunakan metrik kuantitatif seperti kompleksitas siklomatik, kedalaman bersarang, panjang fungsi, dan kualitas pengenal. Metrik ini membantu menilai kemudahan pemeliharaan, mengidentifikasi potensi bug, dan mendeteksi pola obfuskasi.
Kompleksitas siklomatik menghitung jumlah jalur yang independen secara linear di dalam kode. Setiap if/else, for, while, case, catch, operator ternary, dan AND/OR logis menambah satu jalur. Nilai di bawah 10 sehat, di atas 15 mencurigakan, dan di atas 30 sangat menunjukkan obfuskasi.
Kedalaman bersarang 3-4 adalah normal, 5-7 mencurigakan, dan di atas 8 hampir pasti kode terobfuskasi atau dihasilkan mesin. Bersarang yang sangat dalam adalah ciri khas alat obfuskasi otomatis.
Kode terobfuskasi menggunakan pengenal yang sangat pendek dan tak bermakna (a, b, _0x). Panjang pengenal rata-rata di bawah 5 karakter tanpa nama bermakna adalah sinyal obfuskasi yang kuat. Kode yang ditulis dengan baik rata-rata 6-12 karakter per pengenal.
Entropi Shannon mengukur keacakan karakter. Kode tipikal memiliki 4,0-4,8 bit/karakter. Kode terobfuskasi atau terkode sering melebihi 5,0 bit/karakter karena string hex dan token teracak, sehingga entropi menjadi indikator obfuskasi yang kuat.
Tidak ada satu alat pun yang mendeteksi semua obfuskasi. Analisis kami berfokus pada indikator struktural - kompleksitas, bersarang, penamaan, dan entropi. Alat ini efektif terhadap minifikasi, penggantian nama variabel, dan perataan aliran kendali, tetapi obfuskasi saat runtime atau kriptografis mungkin memerlukan analisis dinamis.
Tentu saja. Semua penguraian, perhitungan metrik, pembuatan tanda, dan penilaian terjadi sepenuhnya di browser Anda. Kode sumber Anda tidak pernah meninggalkan perangkat Anda. Tidak ada data yang diunggah ke server mana pun - pemrosesan 100% privat dan lokal di browser.
Analisis mendukung JavaScript/TypeScript, Python, Java, C#, C, C++, Go, dan Rust melalui empat mode bahasa. Setiap mode menyesuaikan penguraian untuk sintaks khusus bahasa seperti titik dua Python atau blok yang dibatasi kurung kurawal.
Ya, 100% gratis tanpa biaya tersembunyi. Tanpa pendaftaran, tanpa batas penggunaan, tanpa batasan ukuran file, dan tanpa iklan. Gunakan tanpa batas untuk proyek apa pun - komersial, pribadi, atau pendidikan.