Penggunaan Software Metrics Dan Abstract Syntax Tree Untuk Mendeteksi Code Smell Pada Bahasa Pemrograman Python

Authors

  • Hamzan Wadi Politeknik Negeri Bengkalis
  • Kasmawi Politeknik Negeri Bengkalis
  • Muhammad Asep Subandri Politeknik Negeri Bengkalis

DOI:

https://doi.org/10.58794/jekin.v5i1.900

Keywords:

Abstract Syntax Tree (AST), Code Smell, Python, Software Metrics

Abstract

Code smell adalah kelemahan desain atau praktik buruk dalam kode program yang merugikan proyek pengembangan perangkat lunak. Hal ini dapat menyebabkan penurunan kualitas kode, meningkatkan kompleksitas proyek, hambatan dalam pemeliharaan kode, dan risiko kesalahan. Penelitian ini bertujuan untuk mengembangkan aplikasi deteksi code smell pada bahasa pemrograman Python. Metode yang digunakan adalah software metrics yang diimplementasikan pada struktur Abstract Syntax Tree (AST). Sistem ini mengonversi program Python menjadi AST, mengembangkan logika deteksi code smell dengan pendekatan software metrics, dan diuji menggunakan blackbox testing. Hasil penelitian menunjukkan bahwa sistem mampu mendeteksi jenis code smell seperti long method, lazy class, feature envy, dan kompleksitas kode. Pengujian blackbox membuktikan bahwa fungsionalitas sistem berjalan dengan baik dan sesuai harapan.

Downloads

Download data is not yet available.

References

M. Fowler, Refactoring Improving the Design of Existing Code, 2nd ed. Addison–Wesley, 2019.

S. F. Sujadi, “Evaluasi Deteksi Smell Code dan Anti Pattern pada Aplikasi Berbasis Java,” J. Tek. Inform. dan Sist. Inf., vol. 5, no. 3, 2020, doi: 10.28932/jutisi.v5i3.1981.

B. A. Sanusi, S. O. Olabiyisi, A. O. Afolabi, and ..., “Development of an Enhanced Automated Software Complexity Measurement System,” J. Adv. …, vol. 1, no. 3, pp. 1–11, 2020, [Online]. Available: https://www.researchgate.net/profile/Adeolu-Afolabi/publication/338716707_Development_of_an_Enhanced_Automated_Software_Complexity_Measurement_Sys/links/5e4290ee458515072d91bbdf/Development-of-an-Enhanced-Automated-Software-Complexity-Measurement-Sys.pdf

P. Jansen, R. Goud, and M. Wener, “The Python Programming Language,” TIOBE The Software Quality Company, 2021. https://www.tiobe.com/tiobe-index/python/ (accessed Jul. 22, 2024).

A. Kovačević et al., “Automatic detection of Long Method and God Class code smells through neural source code embeddings,” Expert Syst. Appl., vol. 204, no. July 2021, 2022, doi: 10.1016/j.eswa.2022.117607.

U. Sa’adah et al., “Tool Refactoring Otomatis untuk Menangani Lazy Class Code Smell dengan Pendekatan Software Metrics,” J. Teknol. Inf. dan Ilmu Komput., vol. 9, no. 4, p. 743, 2022, doi: 10.25126/jtiik.2022934646.

K. Azwega, A. Hendra Brata, E. Muhammad, and A. Jonemaro, “Pengembangan Sistem Deteksi God Class dan Brain Class Code Smell,” 2020. [Online]. Available: http://j-ptiik.ub.ac.id

R. Gupta and S. Kumar Singh, “A Novel Metric based Detection of Temporary Field Code Smell and its Empirical Analysis,” J. King Saud Univ. - Comput. Inf. Sci., vol. 34, no. 10, pp. 9478–9500, Nov. 2022, doi: 10.1016/j.jksuci.2021.11.005.

D. Juliet Thessalonica, H. Khanna Nehemiah, S. Sreejith, and A. Kannan, “Intelligent Mining of Association Rules Based on Nanopatterns for Code Smells Detection,” Sci. Program., vol. 2023, 2023, doi: 10.1155/2023/2973250.

A. Hamdy and M. Tazy, “Deep hybrid features for code smells detection,” J. Theor. Appl. Inf. Technol., vol. 98, no. 14, pp. 2684–2696, 2020.

S. Ouali, “Generating Software Product Line Model by Resolving Code Smells in the Products’ Source Code,” Int. J. Softw. Eng. Appl., vol. 12, no. 1, pp. 1–10, 2021, doi: 10.5121/ijsea.2021.12101.

“Abstract Syntax Trees,” Python Software Foundation, 2024. https://docs.python.org/3/library/ast.html (accessed Jul. 25, 2024).

D. Thain, Introduction to compilers and language design, 2nd ed. notre dame: Independently published (June 18, 2020), 2022.

Downloads

Published

2025-01-06

Issue

Section

Articles