Latihan 1: Arsitektur & Best Practices — Node.js

Latihan 1 dari materi Arsitektur & Best Practices di Node.js — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Pisahkan logika data dari handler dengan pola controller + service.

Kode awal sudah punya array users (Budi id 1, Siti id 2, Andi id 3), userService.getAll() yang mengembalikan semua user, userController.list() yang mencetak GET /users -> 3 users ditemukan, dan tiga panggilan di bawah: userController.list(), userController.detail(2), userController.detail(99). Semuanya biarkan.

  1. Lengkapi userService.getById(id): cari dengan users.find((u) => u.id === id) dan kembalikan hasilnya, atau null kalau gak ada. Service cuma mencari dan mengembalikan, gak mencetak apa pun.
  2. Lengkapi userController.detail(id): kalau user ketemu, cetak "GET /users/" + id + " -> " + JSON.stringify(user); kalau gak, cetak "GET /users/" + id + " -> 404 Not Found".

Output yang diharapkan:

GET /users -> 3 users ditemukan
GET /users/2 -> {"id":2,"name":"Siti"}
GET /users/99 -> 404 Not Found

Yang dinilai: output memuat Siti dan 404 Not Found, kodenya menulis 404 dan memanggil users.find( (atau filter/findIndex), dan userService benar-benar mencari: getById(3).name adalah Andi, getById(7) gak mengembalikan apa pun, dan getAll().length tetap 3.

Hint