Johan Sneirap telah merilis library sumber terbuka bernama sorted-collections yang menyediakan struktur data terurut otomatis untuk ekosistem TypeScript. Rilis perdana ini menjawab kebutuhan akan kontainer seperti SortedList, SortedSet, dan SortedMap yang mempertahankan urutan elemen tanpa intervensi manual saat penyisipan.
Ketiga kelas tersebut menjanjikan kompleksitas penyisipan O(log n) serta akses posisi O(√n) melalui dekomposisi akar kuadrat ke dalam bucket. Paket tersebut berukuran sekitar 2KB gzip, tanpa ketergantungan runtime, dan mendukung modul ESM maupun CJS lengkap dengan tipe TypeScript.
JavaScript memang menyertakan Array, Set, dan Map, namun tidak ada yang menjaga elemen tetap terurut seiring penambahan data. Selama ini, pengembang aplikasi leaderboard atau buku pesanan (order book) kerap menambahkan item ke array lalu memanggil metode .sort() setelah setiap insert.
Cara tersebut berfungsi untuk skala kecil, tetapi menjadi hukuman performa saat data sudah 99,9% terurut dan tetap dikenai biaya O(n log n) berulang kali. Python telah memecahkan masalah serupa bertahun-tahun lalu lewat pustaka sortedcontainers yang memakai rancangan "list of lists" alih-alih pohon seimbang.
Pengembang sorted-collections mengadopsi inspirasi tersebut ke TypeScript dengan menyimpan data dalam banyak array kecil berurutan yang disebut bucket. Setiap bucket memiliki indeks nilai maksimum di atasnya, sehingga lokasi bucket tepat sasaran melalui pencarian biner dan operasi hanya menyentuh segmen memori kecil tersebut.
Di Indonesia, komunitas pengguna JavaScript dan TypeScript tumbuh pesat, terutama di startup fintech, platform game, dan layanan real-time. Kehadiran kontainer terurut native di TypeScript memungkinkan engineer lokal membangun sistem pemeringkatan atau pencocokan harga tanpa harus mencampuradukkan bahasa lain seperti Python hanya untuk efisiensi struktur data.
Dampaknya cukup nyata bagi penghematan biaya komputasi cloud. Server Node.js yang menangani jutaan event dapat memangkas latensi jika tidak lagi menjalankan pengurutan ulang penuh. Sebelumnya, banyak tim di Jakarta atau Bandung memilih solusi Rust atau Go untuk kebutuhan ini, namun kini dapat dipertahankan di satu basis kode.
Hasil uji kinerja yang dipublikasikan menunjukkan konstruksi massal jauh lebih unggul ketimbang penyisipan elemen per elemen pada skala besar. Pada satu juta entri, SortedMap mencetak 3 operasi per detik berbanding 1 pada metode per elemen, sementara SortedSet mulai memimpin dari 100.000 elemen dan SortedList baru menang jelas di level juta.
"Setiap angka dalam rilis ini berasal dari skrip benchmark di repositori dengan seed tetap, sehingga siapa pun dapat mereproduksinya dalam satu perintah," ujar Johan Sneirap. Ia terbuka menerima laporan bug apabila perangkat keras pengguna menunjukkan cerita berbeda, sekaligus mengundang pull request untuk skenario benchmark yang belum tercakup.
Pengembang dengan jelas membatasi cakupan penggunaan. Dataset kecil atau data yang hanya diurutkan sekali lalu tidak pernah diubah tetap lebih baik menggunakan array biasa beserta .sort(). Keuntungan sorted-collections baru terasa saat insert dan query dilakukan terus-menerus terhadap kumpulan data yang terus bertambah.
Langkah ke depan, pustaka yang baru memasuki rilis publik pertama ini siap menerima kontribusi dari komunitas open source. Tidak tertutup kemungkinan integrasi dengan framework populer di Indonesia seperti AdonisJS atau NestJS melalui plugin tambahan guna mempermudah pembuatan API terurut.
Tren aplikasi waktu nyata dan analitik edge akan meningkatkan permintaan akan struktur data efisien di sisi klien maupun server. Inovasi seperti sorted-collections berpotensi menjadi standar baru bagi pengembang TypeScript yang mengutamakan performa tanpa mengorbankan keringkasan kode.