Pengaruh Refactoring Extract Method terhadap Pengembangan Aplikasi menggunakan Test Driven Development
Abstract
Abstrak — Tingginya kompleksitas dan rendahnya maintainability pada kode menyebabkan maintain sebuah program sulit untuk dilakukan. Maintainability dan readability saling berkaitan karena rendahnya maintainability menyebabkan kode sulit untuk dibaca dan dimodifikasi. Menurunkan kompleksitas, meningkatkan maintainability, dan meningkatkan readability merupakan tujuan refactoring pada test driven development. Refactoring dengan extract method dipilih karena dapat meningkatkan readability dan mengurangi duplikasi pada kode. Pengembangan website pada penelitian ini menggunakan paradigma pemrograman functional programming dan mengalami permasalahan long method. Metode refactoring ini dapat menghilangkan long method pada paradigma pemrograman functional programming sehingga sesuai diterapkan pada penelitian ini. Test driven development merupakan pengembangan perangkat lunak yang didasari oleh pembuatan program pengujian iteratif otomatis kecil, penulisan kode untuk lolos testing, dan refactoring code. Penelitian ini membuat website penilaian e-learning readiness Hung model berdasarkan requirement dari kaprodi S1 PJJ Informatika menggunakan test driven development. Pengembangan website ini dikerjakan oleh satu tim dan memiliki anggaran yang kecil. Oleh karena itu, penelitian ini sesuai dengan metode pengembangan perangkat lunak test driven development yang memungkinkan pengembangan perangkat lunak dengan satu tim dan anggaran yang kecil. Website ini diteliti dan dianalisis terkait pengaruh extract method terhadap cyclomatic complexity, halstead volume, maintainability index, dan code readability prediction pada pengembangan menggunakan test driven development.
Kata kunci — test driven development, extract method, cyclomatic complexity, halstead volume, maintainability index, code readability prediction
References
Mosa, A. A., Mohd. Naz’ri bin Mahrin, & Ibrrahim, R. 2016. Technological Aspects of E-Learning Readiness in Higher Education: A Review of the Literature. Comput. Inf. Sci., 9(1), 113–127.
Rohayani, A. H. 2015. A literature review: Readiness factors to measuring e-learning readiness in higher education. Procedia Computer Science, 59, 230–234. Elsevier
Gunawan, A. C., Herdiani, A., and G. A. A. Wisudiawan. 2021. Perancangan Sistem dan Analisis eLearning Readiness Mahasiswa Studi Kasus: Mahasiswa S1 PJJ Informatika Universitas Telkom. Bandung. Universitas Telkom
Al-Saqqa, S., Sawalha, S., & AbdelNabi, H. 2020. Agile software development: Methodologies and trends. International Journal of Interactive Mobile Technologies, 14(11).
Anwer, F., Aftab, S., Waheed, U., & Muhammad, S. S. 2017. Agile software development models tdd, fdd, dsdm, and crystal methods: A survey. International Journal of Multidisciplinary Sciences and Engineering, 8(2), 1–10.
Mariani, T., & Vergilio, S. R. 2017. A systematic review on search-based refactoring. Information and Software Technology, 83, 14–34. Elsevier
Agnihotri, M., & Chug, A. 2020. A systematic literature survey of software metrics, code smells and refactoring techniques. Journal of Information Processing Systems, 16(4), 915–934. Korea Information Processing Society
Hermans, F., & Aivaloglou, E. 2016. Do code smells hamper novice programming? A controlled experiment on Scratch programs. 2016 IEEE 24th International Conference on Program Comprehension (ICPC), 1–10. IEEE
Compeau, D. R., & Higgins, C. A. 1995. Computer self-efficacy: Development of a measure and initial test. MIS Quarterly, 189–211. JSTOR
Loyens, S. M., Magda, J., & Rikers, R. M. 2008. Self-directed learning in problem-based learning and its relationships with self-regulated learning. Educational Psychology Review, 20, 411–427. Springer
Shyu, H.-Y., & Brown, S. W. 1992. Learner control versus program control in interactive videodisc instruction: What are the effects in procedural learning. International Journal of Instructional Media, 19(2), 85- 95.
Chung, E., Noor, N. M., & Mathew, V. N. 2020. Are you ready? An assessment of online learning readiness among university students. International Journal of Academic Research in Progressive Education and Development, 9(1), 301–317.
Pervez, M. U., Eman, L., & Abbas, B. D. 2022. Test Driven Development: A Review. Nov.
Bissi, W., Neto, A. G. S. S., & Emer, M. C. F. P. 2016. The effects of test driven development on internal quality, external quality and productivity: A systematic review. Information and Software Technology, 74, 45– 54. Elsevier
Debbarma, M. K., Debbarma, S., Debbarma, N., Chakma, K., & Jamatia, A. 2013. A review and analysis of software complexity metrics in structural testing. International Journal of Computer and Communication Engineering, 2(2), 129–133. IACSIT Press
Abd Jader, M. N., & Mahmood, R. Z. 2018. Calculating McCabe's Cyclomatic Complexity Metric and Its Effect on the Quality Aspects of Software. IJIRCT
Subandri, M. A., & Sarno, R. 2017. Cyclomatic complexity for determining product complexity level in COCOMO II. Procedia Computer Science, 124, 478– 486. Elsevier
Laird, L. M., & Brennan, M. C. 2006. Software measurement and estimation: A practical approach. John Wiley & Sons. John Wiley & Sons
Thirumalai, C., Shridharshan, R. R., & Reynold, L. R. 2017. An assessment of halstead and COCOMO model for effort estimation. 2017 Innovations in Power and Advanced Computing Technologies (i-PACT), 1–4. IEEE
Atmaja, R. G., Priyambadha, B., & Pradana, F. 2019. Pembangunan Kakas Bantu Untuk Mengukur Maintainability Index Pada Perangkat Lunak Berdasarkan Nilai Halstead Metrics dan McCabe’s Cyclomatic Complexity: English. Jurnal Pengembangan Teknologi Informasi Dan Ilmu Komputer, 3(3), 2167– 2172. Universitas Brawijaya
Batool, A., Bashir, M. B., Babar, M., Sohail, A., & Ejaz, N. 2021. Effect or Program Constructs on Code Readability and Predicting Code Readability Using Statistical Modeling. Foundations of Computing and Decision Sciences, 46(2), 127–145