Latihan 1 dari materi Worker Threads di Node.js — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Simulasikan cara membagi kerja berat ke beberapa worker: jumlahkan 1 sampai 1.000 dalam 4 bagian, lalu gabungkan hasilnya. Simulator latihan gak punya worker_threads, jadi keempat bagian jalan bergantian.
Kode awal sudah punya totalIterations = 1000, workerCount = 4, chunkSize (250), let totalResult = 0;, dan dua baris terakhir yang mencetak Total result dan Verifikasi. Semuanya biarkan.
- Di TODO pertama, tulis
function computeSum(start, end) yang menjumlahkan semua angka dari start sampai end (end ikut dihitung) dengan perulangan dan sum += i, lalu mengembalikan hasilnya.
- Di TODO kedua, buat perulangan
for (let w = 0; w < workerCount; w++). Di dalamnya: start = w * chunkSize + 1, end = (w + 1) * chunkSize, hitung computeSum(start, end), cetak "Worker " + (w + 1) + ": sum(" + start + ".." + end + ") = " + hasil, lalu tambahkan ke totalResult dengan +=.
Output yang diharapkan:
Worker 1: sum(1..250) = 31375
Worker 2: sum(251..500) = 93875
Worker 3: sum(501..750) = 156375
Worker 4: sum(751..1000) = 218875
Total result: 500500
Verifikasi (n*(n+1)/2): 500500
Yang dinilai: output memuat Total result: 500500 dan Worker 1; kodenya memakai perulangan (for (, while (, Array.from atau .map() dan menjumlahkan dengan += atau reduce(; dan computeSum dicoba dengan rentang lain: computeSum(1,10) = 55, computeSum(5,5) = 5, computeSum(1,100) = 5050.