> For the complete documentation index, see [llms.txt](https://docs.diro.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.diro.app/mulai/contoh-penerapan.md).

# Resep Setup per Jenis Bisnis

Cara tercepat memahami DIRO adalah menemukan bisnis yang bentuknya paling mirip dengan Anda, lalu meniru strukturnya.

Setiap resep di bawah menjawab lima hal yang sama: **kategori**, **layanan**, **resource dan mode kapasitasnya**, **bentuk jadwal**, dan **paket**.

## Pertanyaan yang menentukan segalanya

Sebelum masuk ke resep, jawab satu pertanyaan ini. Jawabannya menentukan mode kapasitas, dan salah di sini adalah kesalahan konfigurasi paling mahal di DIRO.

```mermaid
flowchart TD
  Q{"Pada satu waktu,<br/>satu penyedia layanan melayani<br/>berapa pelanggan?"}
  Q -->|"Banyak sekaligus<br/>kelas, workshop, tur"| S["Mode Shared<br/>kapasitas dari angka<br/>di slot jadwal"]
  Q -->|"Satu<br/>terapis, kursi, meja, lapangan"| P["Mode Per item<br/>kapasitas dari jumlah<br/>item aktif"]
```

## Ringkasan semua resep

| Jenis bisnis                  | Kelompok resource                | Mode kapasitas | Bentuk jadwal                  |
| ----------------------------- | -------------------------------- | -------------- | ------------------------------ |
| Studio yoga / pilates         | `Instruktur`                     | Shared         | Slot kelas tetap, mingguan     |
| Salon / barbershop            | `Stylist`                        | Per item       | Jam buka terbuka               |
| Klinik / spa refleksi         | `Terapis` (+ `Ruang` bila perlu) | Per item       | Jam buka terbuka               |
| Mahjong / board game / padel  | `Meja` atau `Lapangan`           | Per item       | Jam buka terbuka, sewa per jam |
| Gym / personal trainer        | `Pelatih`                        | Per item       | Jam buka terbuka               |
| Workshop / kelas sekali jalan | — (pakai menu Acara)             | —              | Tanggal tunggal                |

***

## Studio yoga & pilates

Kelas berjadwal tetap. Satu instruktur memimpin seluruh peserta.

**Kategori.** Pisahkan **Yoga** dan **Pilates** kalau harganya berbeda dan Anda menjual paket. Kalau digabung dalam satu kolam paket, kredit kelas murah bisa dipakai untuk kelas mahal.

**Layanan.** Satu layanan per jenis kelas: Basic Yoga, Vinyasa, Hatha Flow, Inversion, Mat Pilates. Semua durasi sama (90 menit), kapasitas per slot sama (20).

**Resource.** Satu kelompok `Instruktur` berisi tiap instruktur sebagai item. Mode **Shared**.

{% hint style="danger" %}
Kalau modenya dipasang **Per item**, kelas berkapasitas 20 jadi terbatas sebanyak jumlah instruktur. Empat instruktur berarti kelas penuh di orang keempat — dan gejalanya terlihat seperti "kelas laris", bukan seperti salah setting.
{% endhint %}

**Jadwal.** Jadwal mingguan berulang. Tiap slot punya jam tetap, kapasitas 20, dan mencantumkan **siapa yang mengajar**. Instruktur yang tidak mengajar di slot itu ditandai tidak aktif pada slot tersebut — kalau semua dibiarkan aktif, pelanggan melihat seluruh daftar instruktur di setiap kelas.

**Paket.** Membership berbasis kunjungan, masa berlaku 30 hari: 4 kelas, 8 kelas, 12 kelas — satu set per kategori.

**Peserta tambahan.** Aktifkan input peserta tambahan agar satu booking bisa membawa teman, dengan harga per orang dan **ikut mengurangi kapasitas** slot.

***

## Salon & barbershop

Satu stylist melayani satu pelanggan. Tidak ada jadwal kelas — pelanggan memilih jam dalam rentang buka.

**Kategori.** Potong Rambut, Pewarnaan, Perawatan, Styling.

**Layanan.** Durasi berbeda-beda per layanan, kapasitas per slot **1**. Untuk layanan yang punya beberapa tingkat, pakai **pilihan durasi** — misalnya Creambath 60 menit dan 90 menit dengan harga masing-masing.

**Resource.** Satu kelompok `Stylist` berisi tiap orang. Mode **Per item**.

Kalau yang membatasi bukan orangnya melainkan kursinya, buat kelompok kedua `Kursi` berisi tiap kursi sebagai item, juga Per item. Pelanggan tetap memilih stylist; sistem yang menjaga agar jumlah booking bersamaan tidak melebihi jumlah kursi.

**Jadwal.** Satu slot panjang per hari mengikuti jam buka, misalnya 10.00–20.00. Tambahkan **waktu terkunci** untuk istirahat. Durasi layanan yang memecah rentang itu jadi pilihan jam.

**Harga per stylist.** Senior lebih mahal dari junior — atur di kolom harga per provider pada slot jadwal.

**Add-on.** Hair mask, vitamin, hair tonic. Daftarkan sebagai **Item Tambahan**, bukan resource.

***

## Klinik & spa refleksi

Mirip salon, tapi biasanya ruangan ikut membatasi.

**Kategori.** Pijat, Refleksi, Perawatan Tubuh, Perawatan Wajah.

**Layanan.** Perawatan dengan beberapa tingkat durasi: 60 menit, 90 menit, 120 menit, masing-masing dengan harganya sendiri. Kapasitas per slot **1**.

**Resource.** Dua kelompok, keduanya mode **Per item**:

* `Terapis` — tiap terapis satu item, dengan jadwal shift masing-masing.
* `Ruang Treatment` — tiap ruangan satu item.

Dengan dua kelompok ini, slot hanya muncul kalau **ada terapis yang bertugas dan ada ruangan yang kosong**.

**Jadwal shift.** Ketersediaan tiap terapis diatur di item resource-nya, bukan di jadwal layanan. Shift pagi, tengah, siang — masing-masing punya rentang jamnya sendiri.

**Add-on.** Masker premium, celana sekali pakai, air minum, teh. **Item Tambahan**, bukan resource.

{% hint style="warning" %}
Jangan buat dua kelompok resource berisi orang yang sama — misalnya `Terapis` dan `Praktisi`. Storefront menampilkan satu filter per kelompok, jadi pelanggan melihat dua daftar identik. Kalau terlanjur ada, gabungkan dan **nonaktifkan** yang lama, jangan dihapus.
{% endhint %}

**Multi-cabang.** Kalau tiap cabang punya menu berbeda, buat layanannya masing-masing dan hubungkan ke cabang yang sesuai. Layanan tidak harus sama di semua lokasi.

***

## Mahjong, board game & lapangan olahraga

Yang disewakan bukan orang, melainkan **tempat**. Pelanggan menyewa satu meja atau satu lapangan untuk sekian jam.

**Kategori.** Sewa Meja, Sewa Lapangan, atau per jenis permainan.

**Layanan.** Satu layanan per jenis tempat — misalnya "Meja Mahjong" atau "Lapangan Padel Indoor". Kapasitas per slot **1** (satu meja untuk satu rombongan).

Durasi dibuat sebagai **pilihan durasi**: 1 jam, 2 jam, 3 jam, dengan harga masing-masing. Ini yang membuat pelanggan bisa memilih lama sewa saat booking.

**Resource.** Satu kelompok `Meja` (atau `Lapangan`) berisi **tiap unit sebagai item terpisah** — Meja 1, Meja 2, Meja 3, Meja 4. Mode **Per item**.

{% hint style="info" %}
Enam meja berarti **enam item resource**, bukan satu item bernama "Meja" dengan angka 6. Jumlah item itulah kapasitas Anda per jam.
{% endhint %}

**Jumlah pemain.** Kalau harga tergantung berapa orang yang datang, aktifkan input peserta tambahan dengan harga per orang. Kalau harganya flat per meja, biarkan mati.

**Jadwal.** Satu slot panjang mengikuti jam buka, misalnya 10.00–23.00. Pilihan durasi yang memecahnya. Kalau ada tarif berbeda untuk jam sibuk, buat slot terpisah dengan **harga override** — misalnya 10.00–17.00 tarif normal dan 17.00–23.00 tarif prime time.

**Add-on.** Minuman, camilan, sewa alat. **Item Tambahan**.

**Paket.** Voucher membership berbasis jam atau kunjungan — misalnya 10 jam main, berlaku 60 hari.

***

## Gym & personal trainer

**Kategori.** Kelas Grup, Personal Training.

Dua kategori ini punya **mode kapasitas berbeda**, jadi harus terpisah:

* **Kelas grup** — kelompok `Instruktur`, mode **Shared**, kapasitas dari jadwal. Persis seperti resep studio yoga.
* **Personal training** — kelompok `Pelatih`, mode **Per item**, kapasitas 1 per slot.

{% hint style="info" %}
Satu bisnis boleh punya lebih dari satu kelompok resource dengan mode berbeda. Yang tidak boleh adalah dua kelompok berisi orang yang sama.
{% endhint %}

**Paket.** Membership berbasis kunjungan untuk kelas, dan paket sesi untuk personal training — dijual terpisah agar kreditnya tidak tertukar.

***

## Workshop & kelas sekali jalan

Untuk acara dengan tanggal tunggal dan kuota sendiri, jangan buat layanan — pakai **Data Master → Acara**.

Event punya tanggal, jam, kuota, jenis tiket, dan **halaman berbagi sendiri** yang bisa disebar tanpa mengarahkan orang ke katalog layanan Anda.

Gunakan event untuk: workshop, retreat, kelas tamu, trip, dan acara komunitas.

Gunakan layanan untuk: apa pun yang berulang dan bisa dibooking kapan saja.

***

## Kalau bisnis Anda tidak ada di daftar ini

Jawab tiga pertanyaan berurutan:

1. **Apa yang habis lebih dulu ketika booking masuk?** Orang, ruangan, meja, atau kursi. Itulah yang harus jadi kelompok resource Anda, dengan tiap unit sebagai item terpisah.
2. **Satu unit itu melayani satu pelanggan atau banyak sekaligus?** Satu → **Per item**. Banyak → **Shared**.
3. **Jadwalnya tetap atau terbuka?** Kelas dengan jam pasti → slot tetap di jadwal mingguan. Layanan yang bisa kapan saja → satu slot panjang mengikuti jam buka, dipecah oleh durasi layanan.

Setelah tiga jawaban itu, sisanya mengikuti. Detail tiap konsep ada di [Resource: Provider & Ruangan](/operasional/resource.md) dan [Mengatur Jadwal Layanan](/operasional/jadwal-layanan.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.diro.app/mulai/contoh-penerapan.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
