Latihan 1: Builder Pattern — Design Patterns

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

Lengkapi class URLBuilder supaya bisa merakit alamat URL lewat rantai pemanggilan (fluent API).

  1. Di constructor, isi nilai awal: protokol "https", host dan path kosong, dan array kosong untuk query.
  2. protocol(p), host(h), dan path(p) menyimpan nilainya, lalu return this.
  3. query(k, v) boleh dipanggil berkali-kali: tiap panggilan menambah satu pasangan, lalu return this.
  4. build() mengembalikan <protocol>://<host><path>. Kalau ada query, tambahkan ? lalu pasangan k=v yang digabung dengan &. Kalau gak ada query, tanda tanyanya gak ditulis.

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

  1. https://api.example.com/users
  2. https://example.com/search?q=laravel&page=2
  3. http://localhost/

Yang juga dinilai: new URLBuilder().host("toko.id").path("/cart").query("id", 7).query("v", "x").build() harus menghasilkan https://toko.id/cart?id=7&v=x.

Hint