+
+
+
+ Buat akun baru
+
+
+ Kelola bisnis Anda dengan mudah dan efisien bersama platform kami.
+
+
+
+
+
+
+
+ Dengan mendaftar, Anda menyetujui
+
+ Ketentuan Layanan
+
+ dan
+
+ Kebijakan Privasi
+ .
+
+
+
diff --git a/docs/history/2026-07-23-register-form-functionality.md b/docs/history/2026-07-23-register-form-functionality.md
new file mode 100644
index 0000000..c688b60
--- /dev/null
+++ b/docs/history/2026-07-23-register-form-functionality.md
@@ -0,0 +1,51 @@
+# Register Form Functionality - Session 1
+
+**Tanggal:** 2026-07-23
+**Status:** Selesai
+
+## Tujuan
+
+Menambahkan fungsionalitas register pada `web2/app/components/RegisterForm.vue` dengan referensi dari `web/app/pages/auth/register.vue`, menggunakan UI dari `web2/app/components/LoginForm.vue`.
+
+## Yang Dikerjakan
+
+### 1. Buat `app/components/RegisterForm.vue`
+- Validasi form dengan Zod (`full_name`, `email`, `username`, `password`, `password_confirmation`).
+- Validasi `password_confirmation` harus cocok dengan `password` menggunakan `.refine()`.
+- Submit handler: `POST /auth/register` via `$fetch`.
+- Google register handler: `useGoogleAuth().signInWithGoogle()`.
+- Loading state pada tombol Daftar dan tombol Google.
+- Error handling: field-level errors + toast notification (success/error).
+- Navigasi: `` untuk "Masuk", "Ketentuan Layanan", "Kebijakan Privasi".
+
+### 2. Buat `app/pages/auth/register/index.vue`
+- Page wrapper yang merender ``.
+- Layout mirip dengan login page.
+
+## File yang Dibuat
+
+| File | Aksi |
+|------|------|
+| `app/components/RegisterForm.vue` | Dibuat |
+| `app/pages/auth/register/index.vue` | Dibuat |
+
+## API yang Digunakan
+
+- `POST /v1/auth/register` - Body: `{ full_name, email, username, password, password_confirmation }`
+- `POST /v1/auth/google-login` - Body: `{ credential }` (Google JWT)
+
+## Fields Form
+
+| Field | Type | Validasi |
+|-------|------|----------|
+| `full_name` | text | wajib, max 200 karakter |
+| `email` | email | wajib, format email, max 100 karakter |
+| `username` | text | wajib, max 20 karakter |
+| `password` | password | wajib, min 8 karakter |
+| `password_confirmation` | password | wajib, harus cocok dengan password |
+
+## Error Handling
+
+- Field-level errors dari API response (`error.data.detail`)
+- Toast notification untuk error umum
+- Validasi client-side sebelum submit