Computer Science

Membangun Detektor Plagiarisme Kode dengan Python, AST, dan Analisis Kemiripan

Bangun alat pemeriksa kemiripan kode Python dengan AST, normalisasi struktur program, dan metrik similarity tanpa layanan eksternal.

Diperbarui 27 Agu 2026id5 bagian · 20 pelajaran4 jam 30 menit
Belum ada ulasan
Level Intermediate
Kategori Computer Science
Perkiraan Durasi 4 jam 30 menit

Skill yang dibangun

Apa yang akan Anda pelajari

Menjelaskan kenapa perbandingan source code berbasis teks tidak cukup untuk mendeteksi kemiripan logika.

Membaca dan memproses Python AST untuk mengambil struktur program tanpa bergantung pada layanan eksternal.

Menormalisasi identifier, mengekstrak fitur struktur, dan menghitung skor kemiripan antarfile Python.

Membangun command-line tool yang runnable, menangani syntax error, membaca banyak file, dan melaporkan hasil analisis secara jelas.

Siapa Target Audiens Kursus Ini

Programmer Python tingkat intermediate, mahasiswa ilmu komputer, pengajar pemrograman, mentor coding, dan developer yang ingin membuat alat pemeriksa kemiripan source code tanpa bergantung pada layanan eksternal.

Project outcomes

Apa yang Akan Anda Buat

Kamu akan membangun aplikasi command-line Python untuk mendeteksi kemiripan antarfile source code. Tool ini membaca file Python, mem-parsing-nya dengan modul ast bawaan Python, menormalisasi struktur seperti nama variabel dan fungsi, menghitung similarity score, lalu menampilkan pasangan file yang paling mirip. Proyek ini juga mencakup validasi input, penanganan syntax error, dan pengujian dengan beberapa variasi kode yang logikanya sama tetapi bentuk teksnya berbeda.

Konten Kursus

Fondasi Deteksi Kemiripan Source Code

4 pelajaran | 165 menit
Memahami Plagiarisme Kode dan Target Detektor
30 menit
Membangun Baseline dengan Normalisasi Teks
40 menit
Menghitung Kemiripan dengan SequenceMatcher
45 menit
Guided Practice: Membuat CLI Pembanding Dua File
50 menit

Memahami dan Mengekstrak Python AST

4 pelajaran | 195 menit
Mengenal AST dan Hasil Parsing Python
45 menit
Menelusuri Node dengan ast.walk dan NodeVisitor
45 menit
Membuat AST Normalizer untuk Mengabaikan Nama Identifier
55 menit
Menghasilkan Representasi AST yang Stabil
50 menit

Analisis Kemiripan Berbasis Struktur

4 pelajaran | 210 menit
Membandingkan Kode Menggunakan AST Similarity
55 menit
Menggabungkan Text Similarity dan AST Similarity
50 menit
Membandingkan Banyak File Secara Efisien
60 menit
Menentukan Threshold dan Menganalisis False Positive
45 menit

Kualitas Tool, Pengujian, dan Penyajian Hasil

4 pelajaran | 200 menit
Mendesain Modul Detektor yang Mudah Diuji
50 menit
Menulis Unit Test untuk Pipeline AST
55 menit
Membuat Output JSON dan Laporan yang Bisa Ditindaklanjuti
50 menit
Hardening Tool: Performa, Batasan, dan Etika
45 menit

Proyek Akhir: Membangun Detektor Plagiarisme Kode Python

4 pelajaran | 315 menit
Perancangan dan Setup Proyek Detektor
60 menit
Implementasi Parser, AST Normalizer, dan Similarity Engine
90 menit
Integrasi Batch Scan dan Reporting CLI
75 menit
Pengujian, Benchmark, dan Presentasi Hasil
90 menit

Deskripsi Kursus

Punya dua file Python yang kelihatannya beda, tapi sebenarnya logikanya sama? Di kursus ini kamu akan membangun detektor kemiripan kode yang bisa mengenali pola tersebut. Kita mulai dari masalah paling dasar: kenapa membandingkan teks mentah sering menipu karena nama variabel, spasi, dan format kode bisa berbeda.

Kamu akan belajar memakai Python AST untuk membaca struktur program, menormalisasi kode, mengekstrak fitur, lalu menghitung skor kemiripan dengan pendekatan yang bisa dijelaskan. Setiap konsep dibangun pelan-pelan lewat contoh kode runnable, code breakdown, dan latihan kecil. Jadi bukan cuma copy-paste library, kamu ngerti apa yang terjadi saat kode diproses.

Di bagian praktik, kamu akan membuat command-line tool yang membandingkan beberapa file Python dan menampilkan pasangan kode dengan skor kemiripan tertinggi. Kita juga akan membahas false positive, batasan deteksi, error parsing, serta cara menghindari kesalahan umum saat memakai AST. Hasil akhirnya cocok dijadikan portfolio project atau fondasi untuk alat bantu akademik dan code review internal.

Rating & Ulasan

0 ratings