Pengoptimalan Algoritma Genetika dengan Multithreading untuk Pencarian Kalimat - Sari, Kartika; Ananda, Muharam Rizqi; Bahri, Muhammad Syamsul; Wulandari, Siti Oktavia; Prayuda, Herry (SISFOTENIKA, 2024)
Algoritma genetika sering digunakan untuk memecahkan masalah pencarian teks. Namun, kinerja waktu eksekusi algoritma genetika konvensional masih kurang efisien untuk pencarian teks berskala besar. Hal ini disebabkan proses evaluasi fitness yang dilakukan secara berulang pada setiap generasi. Penelitian ini berfokus pada peningkatan efisiensi waktu eksekusi algoritma genetika untuk pencarian teks dengan mengimplementasikan multithreading. Multithreading memungkinkan proses evaluasi fitness didistribusikan ke beberapa thread secara paralel. Pada penelitian ini dilakukan pengembangan sistem pencarian teks berbasis algoritma genetika dengan membandingkan kinerja waktu menggunakan Multithread dan Singlethread, implementasi multithreading digunakan untuk mendistribusikan evaluasi fitness, dan pengukuran kinerja waktu eksekusi. Pengujian sistem dilakukan dengan cara melakukan pencarian keyword dengan menggunakan 30 buah data uji dalam 3 (tiga) skenario pengujian, yaitu dengan menggunakan Single-thread, Multithreading 2 Core, dan Multithreading 4 core untuk kemudian akan dihitung dan dibandingkan waktu eksekusinya. Hasilnya menunjukkan perbedaan kinerja waktu antara algoritma genetika asli dengan singlethread dan yang dioptimalkan menggunakan Multithreading. Hasil pengujian didapatkan nilai waktu eksekusi sistem dengan Singlethread membutuhkan waktu rata-rata 21,66 detik per generasi. Sedangkan dengan menggunakan Multithread 2 core waktu eksekusi menjadi 21,24 detik, dan 4 core menjadi 11,48 detik. Implementasi multithreading meningkatkan kecepatan eksekusi hingga 50% karena proses fitness dievaluasi secara paralel. Algoritma dengan 4 core memberikan peningkatan kinerja waktu yang signifikan.