Latihan 1: Factory Pattern — Design Patterns

Latihan 1 dari materi Factory Pattern di Design Patterns — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Lengkapi function createShape(type, size) supaya mengembalikan object berisi type, area (luasnya), dan method describe().

  1. "circle": lingkaran berjari-jari size. Luasnya Math.PI * size * size, dibulatkan ke 2 desimal dengan toFixed(2).
  2. "square": persegi bersisi size. Luasnya size * size.
  3. "triangle": segitiga siku-siku yang kedua sisi tegaknya sepanjang size. Luasnya size * size / 2.
  4. Tipe lain: lempar new Error("Unknown shape").
  5. Tiap object punya describe() yang mengembalikan "<type> with area <area>".

Kode di bawah function sudah ada di starter dan tetap. Console harus mencetak empat baris ini, berurutan:

  1. circle with area 78.54
  2. square with area 16
  3. triangle with area 18
  4. Unknown shape (dicetak oleh catch)

Yang juga dinilai: createShape("hexagon", 3) harus melempar error dengan pesan Unknown shape, dan createShape("square", 7).describe() + "|" + createShape("triangle", 10).area harus menghasilkan square with area 49|50.

Hint