Pernah nggak Anda terjebak dengan file CSV raksasa yang membuat komputer tiba-tiba “hang” dan memunculkan pesan error OOM (Out of Memory)?
Saya baru saja mengalaminya saat mencoba mengolah sekitar 600 ribu baris data. Rencana awal saya sederhana: unduh, muat semua ke Python, lalu olah. Tapi kenyataannya, RAM server langsung menyerah karena beban data yang terlalu masif untuk dimuat sekaligus.
Menariknya, saya bukan seorang ahli Python. Solusi yang saya temukan bukan dari hasil begadang belajar dokumentasi, melainkan hasil dari “Vibe Coding” bersama GLM-5.
Dulu, kode saya bekerja seperti orang yang mencoba menelan satu loyang pizza sekaligus (Metode Load-All). Tentu saja keseleg!
Dengan Streaming Aggregation, logikanya diubah total:
- Makan Sesuap demi Sesuap: Data dibaca baris demi baris. Begitu satu baris selesai diproses dan poin pentingnya dicatat, baris itu langsung “dibuang” dari memori.
- Memory-Friendly: Karena hanya satu baris yang ada di RAM pada satu waktu, beban kerja menjadi sangat ringan. Memproses 600 ribu baris terasa seperti memproses 6 baris saja.
- Logika Kondisional yang Cerdas: Saya juga menyisipkan filter di tengah jalan. Data yang tidak relevan langsung dilewati sebelum sempat membebani hasil akhir.
Alih-alih menyarankan library besar dan berat yang populer di Google, GLM-5 memberikan kode Python yang sangat sederhana (basic). Ternyata, kode standar Python justru memiliki performa terbaik untuk kasus ini karena tidak memiliki “overhead” atau beban tambahan yang sering ada pada library pihak ketiga.
Inilah yang disebut dengan cara “Pythonic”: Sederhana, bersih, dan sangat efisien.
Pengalaman ini membuktikan bahwa di era AI, kita tidak harus menjadi kamus berjalan untuk bahasa pemrograman. Yang paling penting adalah insting arsitektur, tahu kapan harus berhenti memuat semua data dan mulai menggunakan aliran (stream).
