UBUB

Jurnal Teknologi Informasi dan Ilmu KomputerJurnal Teknologi Informasi dan Ilmu Komputer

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.

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 dan kode, mengidentifikasi modul penting, dan mempercepat proses pengembangan perangkat lunak.

Untuk penelitian lanjutan, dapat dipertimbangkan pengembangan kakas yang lebih canggih dengan mengintegrasikan algoritma community detection lainnya, seperti Louvain atau k-core, untuk meningkatkan performa pada graf berskala besar. Selain itu, optimasi kakas ini untuk bekerja dengan bahasa pemrograman lain serta memperluas fungsionalitas UI interaktif dapat 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 pengembang.

Read online
File size706.22 KB
Pages10
DMCAReport

Related /

ads-block-test