Analisis Performa SetState dan State Management BLoC pada Flutter (Studi Kasus Aplikasi Pictotext)
Abstract
Pictotext adalah aplikasi seluler yang dibuat dengan kerangka kerja Flutter
dan saat ini tersedia di aplikasi Android. Saat ini, Pictotext mengatur state dalam
aplikasi dengan menggunakan SetState, sehingga dalam menampilkan perubahan,
perlu dilakukan rendering seluruh widget. BLoC adalah salah satu state
management yang menggunakan paradigma pemrograman reaktif sehingga
perubahan data dapat dilakukan pada sebagian widget. Berdasarkan hal tersebut
peneliti ingin mengetahui performa CPU, memori, dan load time pada
implementasi SetState dan state management BLoC pada aplikasi Flutter dengan
studi kasus aplikasi Pictotext
Penelitian ini akan menerapkan state management BLoC pada aplikasi
Pictotext. Selain itu, penelitian ini akan mengukur performa waktu muat halaman,
CPU, dan memori aplikasi dengan implementasi SetState dan state management
BLoC . Selanjutnya, hasil pengujian implementasi SetState dan state management
BLoC dianalisis efisiensinya.
Hasil penelitian menunjukkan bahwa implementasi BLoC terhadap
setState pada aplikasi Pictotext memberikan dampak yang beragam terhadap
kinerja. Pada tugas pengenalan 1.000 gambar, implementasi BLoC terhadap
setState menyebabkan penurunan efisiensi performa CPU 4% dan memori 0,8%,
namun efisiensi rata-rata load time justru meningkat sebesar 11%. Pada tugas
menampilkan hasil pengenalan teks secara penuh pada hasil 1 gambar,
implementasi BLoC terhadap setState memberikan peningkatan efisiensi CPU
37%, rata-rata load time 37%, dan memori 37%. Pada tugas penyimpanan hasil
editing hasil pengenalan teks pada 1 gambar, implementasi BLoC terhadap
setState memberikan peningkatan efisiensi kinerja CPU 87% dan rata-rata load
time sebesar 14%, namun tidak berpengaruh terhadap kinerja memori. Dari hasil
tersebut dapat disimpulkan bahwa implementasi BLoC terhadap setState pada
CPU mengalami peningkatan performa jika perubahan tampilan melibatkan
sedikit widget, memori tidak terlalu berpengaruh, dan load time mengalami
peningkatan pada semua tugas.