Melola Discovery

← Melola Discovery

Open access Jurnal SINTA 2

Simplifikasi Graf Pemanggilan Fungsi: Pendekatan Community Detection Untuk Mempermudah Pemahaman Struktur Kode

Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK) · Vol. 13 No. 2 (2026) · pp. 251–260

DOI
10.25126/jtiik.132
ISSN
2528-6579, 2355-7699
Published
2026-04-30
Publisher
Fakultas Ilmu Komputer, Universitas Brawijaya
Language
id
License
creativecommons.org/licenses/by-sa/4.0

Abstract

Bahasa Indonesia

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.

English

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.

Keywords

Collaboration network of the authors

9 authors · 24 co-authorship links

Hover or tap a name to highlight its co-authors. Double-click to open the author's page.

  • Bandung Institute of Technology
  • Affiliation unknown
  • Different organisations
  • Same organisation
  • Affiliation unknown
  • Thicker line = more joint articles · bigger circle = more articles
Show as table
Co-authorOrganisationJoint articles
Gusti Ayu Putri SaptawatiBandung Institute of Technology1
Muhammad Zuhri Catur CandraBandung Institute of Technology1

Affiliations come from OpenAlex; journal OAI-PMH metadata carries none. Authors without an OpenAlex ID are matched by name, which can merge or split people.

Metadata source: OAI-PMH (metadata jurnal) https://jtiik.ub.ac.id/index.php/jtiik/en/oai, first harvested 27 Okt 2026, last seen 27 Okt 2026.
Original metadata (oai_dc)
<oai_dc:dc xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/  http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
	<dc:title xml:lang="id">Simplifikasi Graf Pemanggilan Fungsi: Pendekatan Community Detection Untuk Mempermudah Pemahaman Struktur Kode</dc:title>
	<dc:title xml:lang="en">Simplifikasi Graf Pemanggilan Fungsi: Pendekatan Community Detection Untuk Mempermudah Pemahaman Struktur Kode</dc:title>
	<dc:creator xml:lang="en">Tioria Marlini Purba, Risa</dc:creator>
	<dc:creator xml:lang="en">Tonang, Ari Sandy Putra Ari </dc:creator>
	<dc:creator xml:lang="en">Karim, Abdulah </dc:creator>
	<dc:creator xml:lang="en">Soekidjo, Gusti Ayu Putri Saptawati </dc:creator>
	<dc:creator xml:lang="en">Muhamad, Koyimatu</dc:creator>
	<dc:creator xml:lang="en">Arifiansyah, Fitra </dc:creator>
	<dc:creator xml:lang="id">Purba, Risa Tioria Marlini</dc:creator>
	<dc:creator xml:lang="id">Tonang, Ari Sandy Putra Ari </dc:creator>
	<dc:creator xml:lang="id">Karim, Abdulah </dc:creator>
	<dc:creator xml:lang="id">Soekidjo, Gusti Ayu Putri Saptawati </dc:creator>
	<dc:creator xml:lang="id">Muhamad, Koyimatu</dc:creator>
	<dc:creator xml:lang="id">Arifiansyah, Fitra </dc:creator>
	<dc:subject xml:lang="en">function call graph</dc:subject>
	<dc:subject xml:lang="en"> community detection</dc:subject>
	<dc:subject xml:lang="en">Girvan-Newman algorithm</dc:subject>
	<dc:subject xml:lang="en"> graph simplification</dc:subject>
	<dc:subject xml:lang="en">software development</dc:subject>
	<dc:subject xml:lang="en">Python</dc:subject>
	<dc:subject xml:lang="id">graf pemanggilan fungsi</dc:subject>
	<dc:subject xml:lang="id">community detection</dc:subject>
	<dc:subject xml:lang="id"> algoritma Girvan-Newman</dc:subject>
	<dc:subject xml:lang="id"> peyederhanaan graf</dc:subject>
	<dc:subject xml:lang="id">Python</dc:subject>
	<dc:description xml:lang="id">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.</dc:description>
	<dc:description xml:lang="en">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.</dc:description>
	<dc:publisher xml:lang="en">Fakultas Ilmu Komputer, Universitas Brawijaya</dc:publisher>
	<dc:date>2026-04-30</dc:date>
	<dc:type>info:eu-repo/semantics/article</dc:type>
	<dc:type>info:eu-repo/semantics/publishedVersion</dc:type>
	<dc:format>application/pdf</dc:format>
	<dc:identifier>https://jtiik.ub.ac.id/index.php/jtiik/article/view/9597</dc:identifier>
	<dc:identifier>10.25126/jtiik.132</dc:identifier>
	<dc:source xml:lang="id">Jurnal Teknologi Informasi dan Ilmu Komputer; Vol 13 No 2: April 2026; 251-260</dc:source>
	<dc:source xml:lang="en">Jurnal Teknologi Informasi dan Ilmu Komputer; Vol. 13 No. 2: April 2026; 251-260</dc:source>
	<dc:source>2528-6579</dc:source>
	<dc:source>2355-7699</dc:source>
	<dc:source>10.25126/jtiik.132</dc:source>
	<dc:language>id</dc:language>
	<dc:relation>https://jtiik.ub.ac.id/index.php/jtiik/article/view/9597/1561</dc:relation>
	<dc:rights xml:lang="en">Copyright (c) 2026 Risa Tioria Marlini Purba, Ari Sandy Putra Ari Tonang, Abdulah Karim, Gusti Ayu Putri Saptawati Soekidjo, Koyimatu Muhamad, Fitra Arifiansyah</dc:rights>
	<dc:rights xml:lang="en">https://creativecommons.org/licenses/by-sa/4.0</dc:rights>
</oai_dc:dc>