Simplifikasi Graf Pemanggilan Fungsi: Pendekatan Community Detection Untuk Mempermudah Pemahaman Struktur Kode - Tioria Marlini Purba, Risa; Tonang, Ari Sandy Putra Ari; Karim, Abdulah; Soekidjo, Gusti Ayu Putri Saptawati; Muhamad, Koyimatu; Arifiansyah, Fitra; Purba, Risa Tioria Marlini (Jurnal Teknologi Informasi dan Ilmu Komputer, 2026)
Dalam pengembangan perangkat lunak skala besar, pemahaman terhadap struktur kode sangat penting untuk menganalisis interaksi antar-fungsi dalam kode sumber. Graf pemanggilan fungsi (function call graph) merupakan kakas yang efektif untuk memetakan hubungan antar-fungsi, yang membantu pengembang dalam menelusuri jalur eksekusi dan memahami pola struktur kode modular yang kompleks. Namun, pada kode sumber yang rumit, graf pemanggilan fungsi sering kali menjadi sangat besar dan sulit diinterpretasi karena banyaknya node dan edge yang terlibat. Untuk mengatasi masalah ini, teknik simplifikasi graf melalui community detection diterapkan sebagai solusi untuk mengelompokkan fungsi-fungsi yang saling terkait dalam cluster, sehingga menghasilkan visualisasi yang lebih terstruktur dan mudah dipahami. Penelitian ini bertujuan untuk mengembangkan kakas berbasis Python yang mampu menyederhanakan graf pemanggilan fungsi menggunakan algoritma Girvan-Newman. Kakas ini memanfaatkan pustaka networkx untuk membentuk graf dan menerapkan deteksi komunitas, ast untuk parsing kode, serta matplotlib dan streamlit untuk visualisasi dan interaksi pengguna. Hasil eksperimen pada 10 program dengan ukuran 10-85 baris kode menunjukkan bahwa metode community detection mampu mereduksi jumlah node dan edge dalam graf pemanggilan fungsi hingga 60%, dengan skor modularitas tertinggi 0.6605. Evaluasi dengan 25 pengembang perangkat lunak menunjukkan tingkat kepuasan 80% dalam hal kemudahan penggunaan dan peningkatan produktivitas analisis kode.   Abstract In large-scale software development, understanding the code structure is crucial for analyzing the interactions between functions in the source code. A function call graph is an effective tool for mapping the relationships between functions, assisting developers in tracing execution paths and understanding object-oriented complex code structures. However, in complex source code, the function call graph often becomes very large and complicated to interpret due to the many nodes and edges involved. To address this issue, graph simplification techniques, such as community detection, are applied as a solution to group related functions into clusters, thereby producing a more structured and easier-to-understand visualization. This study aims to develop a Python-based tool that simplifies function call graphs using the Girvan-Newman algorithm. The tool utilizes the networkx library to construct graphs and apply community detection, ast for code parsing, and matplotlib and streamlit for visualization and user interaction. The results of experiments on 10 programs, ranging in size from 10 to 85 LOC, showed that the community detection method was able to reduce the number of nodes and edges in the function invocation graph by up to 60%, achieving the highest modularity score of 0.6605. An evaluation of 25 software developers revealed an 80% satisfaction rate in terms of ease of use and increased productivity in code analysis.