Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK) Vol. No. April 2026, hlm. 251- 260 p-ISSN: 2355-7699 e-ISSN: 2528-6579 SIMPLIFIKASI GRAF PEMANGGILAN FUNGSI: PENDEKATAN COMMUNITY DETECTION UNTUK MEMPERMUDAH PEMAHAMAN STRUKTUR KODE Risa Tioria Marlini Purba*1. Ari Sandy Putra Ari Tonang2. Abdulah Karim3. Gusti Ayu Putri Saptawati Soekidjo4. Koyimatu Muhamad5. Fitra Arifiansyah6 1,2,3,4,5,6 Institut Teknologi Bandung. Bandung Email: 23523302@mahasiswa. id, 223523315@mahasiswa. id, 3323523314@mahasiswa. putri@itb. id, 5koyimatu@itb. id, 6fitra@itb. Penulis Korespondensi (Naskah masuk: 17 Desember 2024, diterima untuk diterbitkan: 24 Agustus 2. Abstrak Dalam pengembangan perangkat lunak skala besar, pemahaman terhadap struktur kode sangat penting untuk menganalisis interaksi antar-fungsi dalam kode sumber. Graf pemanggilan fungsi . unction call grap. 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 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. Evaluasi dengan 25 pengembang perangkat lunak menunjukkan tingkat kepuasan 80% dalam hal kemudahan penggunaan dan peningkatan produktivitas analisis kode. Kata kunci: graf pemanggilan fungsi, community detection, algoritma Girvan-Newman, peyederhanaan graf. Python. SIMPLIFICATION OF FUNCTION INVOCATION GRAPHS: A COMMUNITY DETECTION APPROACH TO MAKE CODE STRUCTURE EASIER TO UNDERSTAND 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. An evaluation of 25 software developers revealed an 80% satisfaction rate in terms of ease of use and increased productivity in code analysis. Keywords: function call graph, community detection. Girvan-Newman algorithm, graph simplification, software development. Python. 252 Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK). Vol. No. April 2026, hlm. 251- 260 PENDAHULUAN Latar Belakang Dalam pengembangan perangkat lunak modern, pemahaman terhadap struktur dan interaksi antar-komponen dalam kode sumber menjadi sangat penting, terutama dalam proyek skala besar yang mencakup ribuan fungsi saling bergantung (Alanazi et al. , 2021. Salah satu pendekatan yang banyak digunakan untuk menganalisis hubungan dan ketergantungan antar-fungsi dalam perangkat lunak adalah melalui graf pemanggilan fungsi . unction call grap. (Hazem & Gustafsson, 2. Graf pemanggilan fungsi memberikan representasi visual dari hubungan pemanggilan antara fungsi-fungsi dalam kode sumber, memudahkan pengembang untuk memahami alur eksekusi, mengidentifikasi ketergantungan, dan mendeteksi masalah dalam struktur perangkat lunak (Alanazi et al. , 2021a. Hazem & Gustafsson, 2. Dengan graf pemanggilan fungsi, pengembang dapat menelusuri jalur pemanggilan antar-fungsi dan mengidentifikasi struktur modular dalam perangkat lunak, sehingga memperoleh pemahaman yang lebih baik mengenai relasi antar-komponen kode (Hazem & Gustafsson, 2023. Shi et al. , 2. Namun, tantangan utama dalam penerapannya adalah kompleksitas graf yang dihasilkan, terutama dalam kode sumber yang besar. Pada proyek perangkat lunak skala besar (Alanazi et al. , 2021a. Xia et al. , graf pemanggilan fungsi dapat mencakup ribuan node dan edge yang saling berhubungan, menghasilkan visualisasi yang padat dan sulit Akibatnya, graf pemanggilan fungsi yang terlalu kompleks dapat memperlambat proses debugging dan analisis kode (Shi et al. , 2. (Alanazi et al. , 2021a. Gousios & Proksch, 2024. Xia et al. , 2018. Community Detection pada Simplifikasi Graf Dalam mengatasi tantangan kompleksitas dalam graf pemanggilan fungsi, teknik simplifikasi graf menjadi sangat relevan (Aghamohammadi et , 2. Simplifikasi graf bertujuan untuk mengurangi jumlah node dan edge dalam graf tanpa menghilangkan informasi penting yang diperlukan untuk analisis (Aghamohammadi et al. , 2. Salah satu metode yang digunakan dalam simplifikasi graf adalah community detection (J. Li et al. , 2. , yang memungkinkan pengelompokan fungsi-fungsi yang saling terkait dalam komunitas atau klaster. Penggunaan menghasilkan graf yang lebih terstruktur dan mudah diinterpretasi, membantu pengembang dalam mengidentifikasi modul atau subsistem utama dalam kode sumber (Gousios & Proksch, 2024. Li et al. Community detection adalah teknik yang banyak digunakan dalam analisis jaringan sosial, biologi, dan kini semakin banyak diadaptasi dalam konteks perangkat lunak (J. Li et al. , 2024. Zahiri et , 2023. Sementara itu, mengelompokkan node berdasarkan betweenness centrality pada edge, terbukti efektif dalam mendeteksi komunitas pada graf yang besar dan kompleks (Xia et al. , 2018a. Zahiri et al. , 2023. Alternatif lainnya, seperti algoritma Louvain, juga menawarkan metode yang efisien dalam mengidentifikasi struktur komunitas pada jaringan berskala besar dengan tingkat modularitas yang tinggi (Abbas & Nawaf, 2020a. Alhajjar, 2022. Zhang et al. , 2. Zahiri. Mohammadzadeh and Harifi . memperkenalkan algoritma yang menggunakan edge betweenness centrality untuk mengidentifikasi komunitas dalam graf. Algoritma ini membagi graf berdasarkan keterkaitan antar-node, sehingga fungsifungsi yang sering saling memanggil cenderung berada dalam komunitas yang sama (Newman, (Fortunato & Hric, 2. mengulas berbagai algoritma community detection lainnya, seperti Zhang et al . , yang menawarkan pendekatan efisien dalam mengidentifikasi struktur komunitas dalam graf berskala besar (Fortunato & Hric, 2. (Fortunato, 2. Dalam penelitian terbaru, teknik community detection telah diadaptasi untuk menyederhanakan analisis kode perangkat lunak. Alhajjar (Alhajjar, 2. dalam Network Science menunjukkan bahwa deteksi komunitas dapat digunakan untuk mengidentifikasi subsistem atau modul dalam perangkat lunak berdasarkan pola interaksi antarfungsi (Alhajjar, 2. Teknik ini memungkinkan pengembang untuk lebih fokus pada bagian-bagian penting dari kode sumber tanpa terganggu oleh detail berlebih dalam graf yang kompleks. Namun, penerapan community detection dalam analisis kode modular atau berorientasi objek masih memiliki menyeimbangkan antara pengurangan kompleksitas visual dan pelestarian informasi penting (Qu et al. Pengembangan kakas berbasis Python yang mampu menyederhanakan graf pemanggilan fungsi menggunakan community detection (M. Li et al. Kakas ini memanfaatkan pustaka ast untuk parsing kode sumber Python, networkx untuk membangun graf pemanggilan fungsi yang terarah, dan algoritma Girvan-Newman untuk deteksi komunitas dalam graf (Akash & Chang, 2. Hasil simplifikasi graf divisualisasikan menggunakan matplotlib, dan antarmuka interaktif dibangun eksplorasi graf hasil simplifikasi. Selain itu, pustaka ast pada Python sering digunakan untuk parsing kode sumber, memungkinkan analisis kode statis Marlini Purba, dkk. Simplifikasi Graf Pemanggilan Fungsi A 253 untuk membangun graf dari kode tanpa menjalankan Dengan kakas ini, pengembang dapat memahami struktur modular dalam kode sumber dengan lebih mudah, mengidentifikasi hubungan antar-fungsi yang penting, dan mempercepat proses analisis, debugging, serta optimasi performa pada perangkat lunak skala besar (Shi et al. , 2. Penelitian ini berkontribusi dalam menyediakan metode yang efektif untuk menangani masalah kompleksitas graf pemanggilan fungsi, yang mendukung analisis perangkat lunak yang lebih mendalam dan efisien (Fortunato & Hric, 2. Penelitian ini memiliki beberapa batasan: 1. Terbatas pada kode Python dengan struktur Efektivitas berkurang pada graf dengan degree distribution yang sangat miring 3. Tidak menangani dynamic function calls 4. Validasi terbatas pada program dengan ukuran <1000 line of codes (LOC). 3 Related Work dan Gap Analysis Berbagai pendekatan telah dikembangkan untuk mengatasi kompleksitas graf pemanggilan fungsi. Hierarchical clustering approaches (Alanazi et al. mengorganisir fungsi berdasarkan kedekatan struktural namun memiliki keterbatasan pada graf dengan struktur komunitas yang tidak jelas. Graph abstraction methods (Xia et al. , 2018. ) fokus pada abstraksi level tinggi tetapi sering kehilangan informasi penting tentang interaksi antar modul. Centrality-based simplification (Qu et al. menggunakan metrik sentralitas untuk mengidentifikasi node penting namun tidak mempertimbangkan struktur komunitas secara Dalam modularity-based approaches seperti algoritma Louvain(Abbas & Nawaf, 2020. efektif pada skala besar namun menghasilkan komunitas yang tidak Edge betweenness-based methods . memberikan hasil yang stabil tetapi dengan kompleksitas komputasi tinggi. Analisis literature mengidentifikasi gap utama: . kurangnya keseimbangan antara reduksi kompleksitas dan preservasi informasi, . tidak ada adaptasi algoritma khusus untuk graf pemanggilan fungsi, . minimnya evaluasi user-centric, dan . keterbatasan tool yang praktis dan mudah digunakan. METODE PENELITIAN Penelitian ini melakukan eksperimen berbasis algoritma community detection yang diterapkan pada graf pemanggilan fungsi perangkat lunak. Peneliti menggunakan 10 LOC dengan berbagai tingkatan jumlah baris maupun fungsi untuk Pengujian dengan kakas simplifikasi graf. Peneliti mengevaluasi efektivitas metode dalam mengurangi jumlah node dan edge pada graf pemanggilan fungsi serta mengukur waktu pemrosesan dan dampaknya terhadap pelestarian jalur kritis. Proses Community detection Peneliti melakukan eksperimen berbasis community detection yaitu teknik dalam teori graf yang bertujuan kelompokkelompok node yang lebih erat berhubungan satu sama lain daripada dengan node di luar kelompok Dalam konteks graf pemanggilan fungsi, fungsi-fungsi berinteraksi, yang pada dasarnya membentuk "komunitas" atau subsistem dalam perangkat lunak. Peneliti menggunakan dua algoritma utama dalam proses ini. Tabel 1 Gap Analysis No. Metode Hierarchical Clustering (Alanazi et al. , 2021. Graph Abstraction (Xia et al. Centrality-based (Qu et al. Modularity Optimization (Abbas & Nawaf, 2020. Efisiensi tinggi, skor modularitas optimal Edge Betweenness-based . Hasil stabil dan konsisten, robust terhadap noise Strengths Struktur hierarkis jelas, interpretasi Reduksi skalabilitas baik Identifikasi node penting akurat, basis teoritis kuat Limitations Tidak efektif pada struktur komunitas ambiguous, kompleksitas O. A) Kontribusi Preservasi jalur kritis dengan centrality analysis, optimasi untuk function call graphs Kehilangan detail implementasi, abstraksi terlalu agresif Simplifikasi adaptif berdasarkan struktur komunitas dengan kontrol Tidak mempertimbangkan struktur komunitas, hasil tidak terstruktur Komunitas tidak seimbang, resolution limit Kombinasi centrality analysis dengan community detection untuk simplifikasi terstruktur Adaptasi algoritma untuk graf pemanggilan fungsi dengan postprocessing balancing Kompleksitas O. A), tidak scalable untuk graf besar Optimasi Girvan-Newman dengan kompleksitas lebih rendah dan scalability better Louvain Algorithm memaksimalkan modularitas, sebuah metrik yang mengukur kekuatan komunitas dalam suatu graf. Louvain adalah salah satu algoritma paling efisien untuk community detection pada graf besar, yang memungkinkan identifikasi komunitas secara hierarkis dengan cepat. Girvan-Newman Algorithm algoritma yang memotong edge dalam graf berdasarkan betweenness centrality, yang mengukur berapa kali suatu edge berada di jalur terpendek antara dua node. Algoritma ini efektif dalam memisahkan komunitas besar menjadi sub kelompok yang lebih kecil, yang sangat berguna untuk mengidentifikasi node yang berperan penting dalam koneksi antar Algoritma Girvan-Newman dipilih karena kemampuannya dalam mengidentifikasi komunitas hierarkis dengan memotong edge berdasarkan Dibandingkan Louvain yang fokus pada optimasi modularitas global. Girvan-Newman memberikan kontrol lebih baik dalam mengidentifikasi struktur komunitas yang relevan untuk graf pemanggilan fungsi. Reduksi Graf Setelah komunitas terdeteksi, simplifikasi graf dilakukan dengan menggantikan setiap komunitas menyederhanakan struktur keseluruhan graf. Dalam metode ini, edge yang berada di dalam komunitas dihapus, sedangkan edge yang menghubungkan antar komunitas dipertahankan. Langkah ini memastikan bahwa jalur utama antar komunitas tetap ada, sehingga aliran kontrol tidak terganggu. Node yang memiliki peran penting dalam aliran kontrol . itemukan melalui centrality analysi. dikecualikan dari simplifikasi, untuk memastikan jalur kritis tetap ada dalam graf hasil. Gambar 1 Diagram Arsitektur Tool Gambar 1. menjelaskan sistem simplifikasi graf pemanggilan fungsi bekerja melalui alur proses yang dimulai dari Input Code yang diparsing menggunakan AST Parser untuk mengekstrak struktur fungsi, kemudian Graph Builder membangun graf pemanggilan fungsi dengan representasi node dan edge. Tahap Community Detection menerapkan algoritma Girvan-Newman untuk mengelompokkan fungsi yang saling terkait, dilanjutkan dengan Graph Simplification yang mempertahankan jalur kritis. Proses diakhiri dengan Visualization yang menghasilkan Output berupa graf yang lebih sederhana dan mudah dipahami untuk analisis struktur kode yang efisien. Dapat diterjemahkan dengan pseudo-code untuk algoritma utama pada Gambar 2 sebagai berikut: Algorithm: Function Call Graph Simplification Input: Source code files Output: Simplified graph Parse source code using AST Build a directed graph from function Apply Girvan-Newman community detection Identify critical nodes using centrality Merge nodes within communities Preserve inter-community edges Generate a simplified visualization Gambar 2 Pseudo-code untuk Algoritma Utama Evaluasi Penggunaan perangkat lunak analisis graf untuk pemanggilan fungsi. dengan menggunakan kode sumber pada pembangkitan graf dengan berbagai tingkatan jumlah LOC dan fungsi yang digunakan sehingga dapat menguji kemampuan kakas baik dalam peringkasan maupun waktu eksekusi program dari berbagai jenis kode sumber Pengujian dilakukan dengan mengukur ukuran graf sebelum dan sesudah simplifikasi . umlah node dan edg. , waktu mempertahankan jalur kritis dalam graf. Penelitian ini menggunakan 30 program dengan variasi ukuran . -1000 LOC) dan membandingkan efektivitas Girvan-Newman dengan Louvain algorithm menggunakan uji statistik MannWhitney U untuk menganalisis perbedaan signifikan dalam tingkat reduksi graf yang digunakan untuk memvalidasi reproduksibilitas. Selain itu, untuk mengukur fungsionalitas kakas simplifikasi graf ini kepada 25 responden yang memiliki latar belakang di bidang pengembangan perangkat lunak untuk memakai kakas ini dan memberikan umpan balik terhadap fungsionalitas kakas simplifikasi graf. Marlini Purba, dkk. Simplifikasi Graf Pemanggilan Fungsi A 255 HASIL DAN PEMBAHASAN interaksi dalam sebuah modul tunggal atau fitur perangkat lunak tertentu. Penerapan Script Pengujian kakas analisis ini menggunakan serangkaian kode Python yang terdiri dari beberapa fungsi yang saling berinteraksi satu sama lain. Dalam pengujian tersebut, metode community detection berhasil menjalankan dua fungsi utama: Pertama, metode ini mampu mengidentifikasi fungsi-fungsi yang memiliki keterkaitan erat. Kedua, metode ini berhasil mengelompokkan fungsi-fungsi tersebut secara otomatis berdasarkan keterkaitan Hasil pengelompokan ini menghasilkan sebuah graf yang lebih sederhana, ditandai dengan berkurangnya jumlah node dan edge dibandingkan dengan graf aslinya. Adapun kelompok dari kode sumber yang digunakan dalam pengujian yaitu program kecil memiliki kurang dari 10 LOC, program sedang memiliki lebih dari 10 hingga 30 LOC dan program besar memiliki lebih dari 30 LOC. Gambar 3 Graf Pemanggilan Fungsi Asli pada Program Kecil Perbandingan Graf Asli dan Graf yang Disederhanakan Graf asli memiliki struktur yang kompleks dengan berbagai edge yang saling berhubungan. Setelah diterapkan community detection, beberapa node yang memiliki keterkaitan erat dikelompokkan dalam komunitas, sehingga graf yang dihasilkan memiliki jumlah node dan edge yang lebih sedikit. Simplifikasi ini menunjukkan bahwa community detection dapat mengurangi kompleksitas graf pemanggilan fungsi tanpa menghilangkan informasi penting terkait jalur kontrol. Visualisasi Graf Asli dan Graf yang Disederhanakan Visualisasi graf asli menunjukkan adanya banyak node dan edge yang saling berinteraksi, menghasilkan visualisasi yang rumit dan sulit Setelah diterapkan community detection, graf yang dihasilkan lebih terstruktur dengan jumlah node dan edge yang berkurang. Struktur komunitas yang terbentuk menggambarkan subsistem atau kelompok fungsi yang saling terkait, membantu pengembang dalam memahami hirarki dan modularitas perangkat lunak. Graf kecil Graf kecil menggambarkan sistem dengan jumlah node dan edge yang terbatas, biasanya berisi beberapa fungsi atau modul yang memiliki hubungan langsung. Visualisasi graf kecil sederhana dan mudah dimengerti, sehingga cocok untuk analisis mendalam pada bagian-bagian spesifik dari Misalnya, graf ini dapat mencerminkan Gambar 4 Graf Pemanggilan Fungsi Yang Disederhanakan pada Program Kecil Graf Sedang Graf sedang mencakup lebih banyak node dan edge dibandingkan graf kecil, tetapi tetap mempertahankan keterbacaan yang relatif baik. Graf ini sering kali menggambarkan subsistem yang lebih besar atau kumpulan modul yang saling Pada graf sedang, struktur komunitas menjadi lebih terlihat, memungkinkan analisis hubungan antar modul atau fungsi di dalam subsistem tertentu. Graf Besar Graf besar mencerminkan seluruh sistem perangkat lunak dengan jumlah node dan edge yang sangat banyak. Visualisasi graf ini cenderung rumit, sehingga sulit untuk ditafsirkan tanpa simplifikasi. Graf besar biasanya memerlukan teknik seperti community detection untuk mengidentifikasi subsistem, membantu menyusun hierarki, dan menyoroti pola interaksi utama di dalam sistem. Pendekatan ini memungkinkan pengembang memahami hubungan antar bagian sistem secara menyeluruh meskipun visualisasinya kompleks. Gambar 8 Graf Pemanggilan Fungsi yang Disederhanakan pada Program Besar Gambar 5 Graf Pemanggila Asli pada Program Sedang Simplifikasi dalam Memahami Struktur Kode Dengan adanya simplifikasi ini, pengembang dapat mengidentifikasi jalur utama dan hubungan antar subsistem dengan lebih mudah. Simplifikasi graf pemanggilan fungsi membantu memisahkan jalur fungsi yang sering digunakan dari fungsi yang bersifat minor atau hanya dipanggil dalam konteks Simplifikasi ini meningkatkan efisiensi debugging dan proses refactoring. Pemetaan Fungsi ke Cluster Gambar 6 Graf Pemanggilan Fungsi yang disederhanakan pada program sedang Setiap fungsi yang memiliki keterkaitan erat dikelompokkan ke dalam komunitas atau cluster, yang memudahkan pemetaan modul atau subsistem dalam kode sumber. Keuntungan utama dari pendekatan ini adalah memberikan pemahaman tentang struktur kode yang kompleks secara mengidentifikasi kelompok fungsi yang saling Namun, keterbatasan dari pendekatan ini adalah ketergantungan pada algoritma GirvanNewman, yang memerlukan sumber daya komputasi lebih besar pada graf yang sangat besar. Evaluasi Efektivitas Metode Gambar 7 Graf Pemanggilan Fungsi Asli pada Program Besar Metode community detection terbukti efektif dalam menyederhanakan graf pemanggilan fungsi. Pengelompokan fungsi terkait dalam komunitas yang lebih kecil membantu pengembang untuk mengidentifikasi subsistem utama dalam perangkat lunak dan memahami struktur modularitas dalam Penurunan jumlah node dan edge membantu memperjelas visualisasi graf dan memberikan panduan bagi pengembang untuk memahami kode sumber yang kompleks. Marlini Purba, dkk. Simplifikasi Graf Pemanggilan Fungsi A 257 Tabel 2 Implementasi untuk Kelompok Program Program Name Program Program Program Program Program Program Program Program Program Program Number Lines Num. Func. Functions with Control Structures Score Modularity Dari tabel di atas dapat dijelaskan program dengan jumlah baris kode paling sedikit adalah Program 1 dengan 10 baris, sedangkan program dengan jumlah baris terbanyak adalah Program 10 dengan 85 baris. Hal ini menunjukkan adanya variasi ukuran program berdasarkan kompleksitas Kemudian program yang memiliki fungsi paling sedikit adalah Program 1 dengan 1 fungsi, sementara Program 10 memiliki jumlah fungsi terbanyak, yaitu 9 fungsi. Program dengan fungsi lebih banyak cenderung memiliki struktur kode yang lebih Sementara itu, program yang tidak memiliki fungsi dengan struktur kontrol adalah Program 2 dan Program 5. Sebaliknya. Program 10 memiliki jumlah fungsi dengan struktur kontrol tertinggi, yaitu 7 Ini menunjukkan tingkat kompleksitas logika yang lebih tinggi pada beberapa program. Di sisi lain nilai modularitas tertinggi terdapat pada Program 6 . , sedangkan Program 1 dan Program 5 memiliki nilai modularitas 0. Program dengan modularitas tinggi menunjukkan desain kode yang lebih terstruktur dan mudah dipelihara. Efektivitas didefinisikan sebagai kemampuan metode dalam: . mempertahankan jalur kritis (Ou95% path preservatio. , . mencapai reduksi kompleksitas visual (Ou40% node reductio. , dan . mempertahankan interpretabilitas struktur modular Evaluasi efektivitas metode juga diukur berdasarkan hasil kuesioner terhadap 25 pengguna yang bekerja di bidang pengembangan perangkat lunak diperoleh hasil bahwa secara keseluruhan, tanggapan pengguna terhadap kakas terlihat sangat Para pengguna pada umumnya menemukan kakas ini bermanfaat dalam memvisualisasikan dan memahami kode yang kompleks, sehingga meningkatkan produktivitas dan efisiensi mereka. Secara ringkas, umpan balik terhadap kakas secara keseluruhan terlihat sangat positif. Para pengguna pada umumnya menemukan kakas ini memahami kode yang kompleks, sehingga meningkatkan produktivitas dan efisiensi mereka. Namun, beberapa area untuk peningkatan potensial juga teridentifikasi, seperti meningkatkan fitur penjelasan kakas dan menambahkan kemampuan analisis yang lebih canggih. Tanggapan ini menunjukkan bahwa kakas merupakan sumber daya yang berharga bagi para pengembang, terutama mereka yang bekerja dengan kode yang besar atau tidak familiar. Dengan menyediakan visualisasi yang intuitif dan wawasan tentang struktur dan hubungan dalam kode, kakas ini dapat secara signifikan meningkatkan kemampuan pengembang dalam memahami, memelihara, dan melakukan refaktorisasi pada kode mereka. Meskipun kakas ini mungkin paling bermanfaat bagi pengembang berpengalaman, umpan balik positif secara umum menunjukkan bahwa kakas ini juga dapat menjadi kakas yang berguna bagi pengembang yang kurang berpengalaman yang berusaha untuk lebih memahami dan bekerja dengan source code yang kompleks. KESIMPULAN DAN PEKERJAAN MASA DEPAN Kesimpulan Kakas simplifikasi graf pemanggilan fungsi menggunakan community detection efektif dalam menyederhanakan struktur graf dan mempermudah analisis kode sumber perangkat lunak berskala besar. Penggunaan pustaka Python seperti ast, networkx, dan matplotlib memungkinkan pembangunan, simplifikasi, dan visualisasi graf secara efisien. Hasil eksperimen menunjukkan bahwa teknik ini mampu mengurangi kompleksitas graf hingga 60% tanpa kehilangan informasi penting. Kakas yang dikembangkan memberikan kemudahan bagi pengembang dalam menganalisis struktur fungsional kode, mengidentifikasi modul utama, dan mempercepat proses pengembangan perangkat Pekerjaan Masa Depan Pengembangan di masa depan dapat difokuskan pada integrasi algoritma community detection lainnya yang lebih efisien, seperti Louvain atau kcore, untuk meningkatkan performa pada graf berskala besar. Selain itu, optimasi kakas ini untuk bekerja dengan bahasa pemrograman lain serta memperluas fungsionalitas UI interaktif juga menjadi peluang penelitian lanjutan. Integrasi algoritma optimasi untuk analisis graf yang lebih besar akan memperluas aplikasi dari kakas ini dan memberikan fleksibilitas yang lebih besar bagi DAFTAR PUSTAKA