Portofolio merupakan kumpulan aset investasi yang dimiliki oleh suatu perusahaan atau perorangan. Return yang maksimal dengan risk yang minimum adalah harapan bagi setiap investor. Namun dalam memprediksi pergerakan harga saham, kenaikan dan penurunan harga saham dari waktu ke waktu sulit ditebak. Oleh karena itu, machine learning digunakan untuk menjadi jalan keluar dalam mempelajari dan memprediksi data saham tersebut. Pada tugas akhir ini, model prediksi return saham menggunakan metode XGBoost dan Improved Firefly Algorithm. Hasil prediksi tersebut selanjutnya digunakan untuk pertimbangan membangun portofolio. Prediksi return saham yang lebih tinggi dari threshold akan masuk ke dalam portofolio. Dari saham yang sudah terseleksi, portofolio dibangun dengan menggunakan Equal Weight (EW). Portofolio dengan dan tanpa optimasi kemudian dibandingkan untuk mengetahui mean return, standar deviasi, dan Sharpe Ratio tertinggi. Hasil eksperimen menunjukkan bahwa kinerja portofolio 7 saham dengan mempertimbangkan prediksi memiliki hasil terbaik apabila dibandingkan dengan portofolio dengan tanpa mempertimbangkan prediksi dengan mean return 0.0029, standar deviasi 0.0158, dan Sharpe Ratio 0.1837.