diff --git a/ProblemSet2Raphael5803025007.md b/ProblemSet2Raphael5803025007.md new file mode 100644 index 0000000..893773b --- /dev/null +++ b/ProblemSet2Raphael5803025007.md @@ -0,0 +1,121 @@ +Problem Set 2: Composing Concepts +1. Concept Questions +Contexts + Fungsi Context: Concept NonceGeneration menggunakan Context untuk mengisolasi namespace (ruang nama) pembuatan string unik. Hal ini menjamin bahwa sebuah nonce unik di dalam konteks tertentu, tanpa mengharuskan nilai nonce tersebut unik secara global di seluruh sistem. + Penerapan pada Aplikasi: Dalam aplikasi pemendek URL, sebuah Context mewakili basis domain (shortUrlBase), seperti "tinyurl.com", "bit.ly", atau domain kustom milik pengguna. Dengan demikian, nonce (suffix) yang sama dapat digunakan pada domain basis yang berbeda tanpa menimbulkan bentrok data (collision). +Storing Used Strings + Alasan Penyimpanan Set: Di tingkat spesifikasi konsep abstrak, menyimpan set string terpakai (used set of Strings) diperlukan untuk memodelkan status keunikan secara eksplisit dan menjamin invariant bahwa aksi generate tidak akan pernah mengembalikan string yang sudah pernah dipakai sebelumnya. + Hubungan dengan Counter (Abstraction Function): +Jika implementasi menggunakan counter integer C untuk setiap konteks yang nilainya ditingkatkan setiap kali aksi generate dipanggil, lalu dikonversi menjadi string unik melalui fungsi encoding f(n) (misalnya base62 encoding): + Abstraction Function (AF): Memetakan status counter C pada level implementasi ke set string terpakai (used) pada level spesifikasi: +AF(C)={f(i)∣0≤i