> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bawana.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Audience & Attribute

## A. Definisi

**Audience** adalah mekanisme pengelompokan user berdasarkan kriteria (*attribute*) tertentu untuk keperluan pemberian content, assignment, event, atau program. Audience digunakan sebagai dasar untuk:

* Menentukan target assignment
* Mengarahkan distribusi konten dan program pembelajaran
* Undangan event
* Penentuan target program

Audience dapat dibentuk berdasarkan kombinasi atribut seperti unit kerja, jabatan, level, atau atribut kustom lainnya yang disediakan oleh organisasi.

**Attribute** adalah kriteria yang didefinisikan oleh organisasi untuk menyimpan informasi khusus pada data pengguna. Attribute tidak menjalankan aksi apa pun secara langsung. Fungsinya attribute adalah sebagai data input yang digunakan untuk membentuk suatu Audience.

Nilai dari Attribute dapat diisi dan diperbarui oleh Admin, baik secara manual, melalui unggah data, maupun melalui integrasi sistem jika tersedia.

## B. Hubungan  Audience & Attribute

Di bawah ini adalah alur logika hubungan Audience & Attribute:

```text theme={null}
Attribute (data user)
        ↓
Audience (grouping logic)
        ↓
Assignment / Event / Program
```

Contoh nyata (sesuai dokumentasi):

* Admin membuat Custom Attribute: **Cabang**
* User diisi Cabang = Jakarta
* Admin membuat Audience: Cabang = Jakarta
* Assignment PLKJ diberikan ke Audience tersebut

## C. Tipe Audience

1. **Type Individual User**

* Admin memilih user satu per satu untuk dijadikan satu kelompok
* Cocok untuk:
  * Kelompok kecil
  * Event khusus
  * Program terbatas

**2. Type Attribute User**

* Audience dibentuk berdasarkan **Custom Attribute**
* Contoh logika:
  * Cabang = Jakarta
  * Level = Manager
  * Bahasa = Inggris

Audience jenis ini dinamis dan bisa berubah jika data user berubah.

**3. Type All-Users**

Audience yang diperuntukan bagi semua pengguna yang ada di perusahaan atau organisasi tersebut.

## D. Tipe Attribute dan Perilakunya

Custom Attribute memiliki tipe data yang menentukan cara sistem memprosesnya:

* **Char** (Teks bebas)\
  Contoh: Nama pasangan, hobi
* **Boolean** (Ya atau Tidak)\
  Contoh: Apakah Manager
* **Integer** (Angka berurutan)\
  Contoh: Grade, umur
* **Choice** (Pilihan tunggal)\
  Contoh: Agama, gender
* **Multiple Choice** (Pilihan jamak)\
  Contoh: Bahasa yang dikuasai
* **Date / Datetime** (Tanggal dan waktu)\
  Contoh: Tanggal masuk kerja, masa kontrak

## E. Contoh Penggunaan Attribute dan Audience

**Konteks Kasus**

Tim L\&D ingin memberikan **program Leadership Dasar** hanya kepada:

* Karyawan level Supervisor ke atas
* Yang bekerja di cabang Jakarta
* Dan belum pernah ikut pelatihan leadership sebelumnya

**1. Menyiapkan Custom Attribute (Data)**

Admin terlebih dahulu memastikan data yang dibutuhkan tersedia sebagai **Custom Attribute** pada data User. Custom Attribute yang digunakan:

* **Level Jabatan** (Choice)\
  Nilai contoh: Staff, Supervisor, Manager
* **Cabang** (Choice)\
  Nilai contoh: Jakarta, Bandung, Surabaya
* **Status Pelatihan Leadership** (Boolean)\
  Nilai: Sudah / Belum

Catatan: Pada tahap ini, **belum ada Assignment apa pun**. Sistem hanya menyimpan data.

**2. Mengisi Nilai Custom Attribute pada User**

Setiap user memiliki nilai attribute masing-masing, misalnya:

* Andi
  * Level Jabatan = Supervisor
  * Cabang = Jakarta
  * Status Pelatihan Leadership = Belum
* Rina
  * Level Jabatan = Staff
  * Cabang = Jakarta
  * Status Pelatihan Leadership = Belum
* Yahya
  * Level Jabatan = Manager
  * Cabang = Bandung
  * Status Pelatihan Leadership = Sudah

**3. Membuat Audience Berbasis Attribute (Logika)**

Admin kemudian membuat **Audience** dengan kriteria berikut:

* Level Jabatan = Supervisor OR Manager
* Cabang = Jakarta
* Status Pelatihan Leadership = Belum

Audience ini diberi nama:

> **Leadership Jakarta – First Time**

Catatan: Audience ini bersifat **dinamis**. Jika data user berubah, isi audience akan otomatis menyesuaikan.

**4. Sistem Melakukan Evaluasi Otomatis**

Sistem mengevaluasi seluruh user berdasarkan logika audience:

* Andi → **MASUK audience**
* Rina → Tidak masuk (Level tidak memenuhi)
* Yahya → Tidak masuk (Cabang dan status tidak memenuhi)

Admin **tidak perlu memilih user satu per satu**.

**5. Audience Digunakan untuk Eksekusi Program**

Audience yang sudah terbentuk digunakan sebagai target untuk:

* Assignment program Leadership Dasar
* Event kelas tatap muka
* Journey pembelajaran
* Modul tambahan seperti ILDP atau OJT (jika relevan)

Hanya user di dalam audience yang dapat:

* Melihat Assignment
* Mendapat notifikasi
* Mengikuti program

**6. Perubahan Data dan Dampaknya**

Jika kemudian:

* Andi menyelesaikan program leadership
* Admin mengubah Status Pelatihan Leadership = Sudah

Maka:

* Andi **keluar otomatis** dari audience
* Program tidak akan dikirim ulang

Sebaliknya, jika ada user baru yang:

* Level = Supervisor
* Cabang = Jakarta
* Status = Belum

User tersebut **otomatis masuk audience** tanpa tindakan manual.
