Expert System untuk Rekomendasi Pemilihan Bahasa Pemrograman bagi Pemula Menggunakan Algoritma Decision Tree - Manza, Yuke; Wayahdi, M. Rhifky (Universitas Islam Negeri K.H. Abdurrahman Wahid Pekalongan, 2025)
This study develops an expert system based on the Decision Tree algorithm to recommend suitable programming languages for beginners, addressing the challenge of selecting the right language amid the abundance of options and diverse learning goals. This topic is significant because choosing the appropriate language can accelerate the learning process and improve the effectiveness of programming education. The research methodology includes the creation of a synthetic dataset comprising 1,500 entries, with the addition of 5% noise. This noise is introduced to simulate real-world data imperfections and to test the model's robustness against unclean or imperfect data. The next stages involve data preprocessing through encoding and normalization, followed by modeling using the Decision Tree algorithm with hyperparameter optimization to enhance model performance. Evaluation results show an accuracy of 95%, with learning goals (38% contribution) and platform preference (35%) emerging as the most influential factors in decision-making. A 10-fold cross-validation produced an average error of 0.046, indicating model stability across various data subsets. Feature importance analysis revealed that the model logically prioritizes technical relevance, for example, by ranking learning goals and platform preference above demographic features, as these are more directly related to the context and practical use of programming languages. The implemented system successfully provided relevant recommendations, such as Python for Data Science and JavaScript for Web Development. This study concludes that the Decision Tree algorithm is effective for recommendation systems based on user profiles, although data enhancement is needed for minority classes such as Java. These findings contribute to the development of more personalized and adaptive programming learning support tools.