# Proyek & Tim

Proyek dan divisi membantu kamu mengelompokkan pekerjaan dan mengatur siapa saja
yang terlibat. Di halaman ini kamu akan belajar membuat proyek, mengelola
anggota, serta memahami peran (role) tiap orang.

> Belum paham istilah seperti "Proyek" atau "Divisi"? Baca dulu
> [Memulai dengan Tasko](../getting-started.md). Tampilan aplikasi berbahasa
> Inggris — label aslinya ditulis dalam kurung.

> 💡 **Contoh nyata:** Sebuah agensi membuat proyek _"Kampanye Lebaran"_. Manajer
> berperan sebagai **Owner**, ketua tim sebagai **Person in Charge**, para
> desainer & copywriter sebagai **Member**, dan klien internal diundang sebagai
> **Viewer** agar bisa memantau tanpa mengubah apa pun.

---

## Dua Lapis Peran yang Perlu Dipahami Lebih Dulu

Ini bagian yang paling sering disalahpahami:

- **Peran divisi** menentukan *ruang kerja mana yang terlihat* — divisinya, tugas
  divisinya, template tugas berulangnya.
- **Peran proyek** menentukan *apa yang boleh dilakukan di dalam sebuah proyek*,
  sekaligus menentukan apakah proyek itu terlihat sama sekali.

**Keduanya tidak bertumpuk.** Menjadi Admin sebuah divisi tidak dengan sendirinya
membuka proyek di dalamnya: kalau kamu tidak dimasukkan sebagai anggota proyek,
proyeknya tidak terlihat dan tidak bisa dibuka. Sebaliknya, begitu seseorang
masuk ke sebuah proyek, yang berlaku adalah peran proyeknya — Admin divisi yang
bergabung sebagai *Member* tunduk pada aturan Member.

---

## Membuat Proyek Baru

Yang boleh membuat proyek: **Admin atau Supervisor** pada divisi tujuan. Peran
lain tidak melihat tombolnya.

1. Buka menu **Projects**.
2. Klik tombol **New Project**.
3. Isi detail proyek:
   - **Nama proyek** — wajib. Diubah jadi **HURUF BESAR** otomatis sambil kamu
     mengetik, jadi tidak perlu menekan Caps Lock. Proyek lama yang terlanjur
     bernama huruf kecil dibiarkan apa adanya.
   - **Deskripsi** — penjelasan singkat tujuan proyek.
   - **Tenggat (deadline)** — **wajib diisi**.
   - **Set Admin as Project Owner** — opsional; bila dicentang, admin divisi ikut
     menjadi pemilik proyek.
   - **Team Members** — opsional, anggota bisa langsung ditambahkan di sini.
4. Simpan.

Proyek baru muncul dengan status **Draft**, dan pembuatnya **otomatis menjadi
Owner**.

---

## Status Proyek

Status menunjukkan posisi proyek saat ini. Owner dan PIC bebas memindahkannya,
dengan dua penjagaan di bawah tabel.

| Status | Artinya |
|--------|---------|
| **Draft** | Proyek baru dibuat, belum digarap. |
| **To Do** | Sudah direncanakan, belum dimulai. |
| **Pending** | Menunggu sesuatu sebelum berjalan. |
| **In Progress** | Pekerjaan proyek sedang berlangsung. |
| **On Hold** | Proyek dijeda sementara. |
| **Completed** | Semua pekerjaan proyek tuntas. |
| **Cancelled** | Proyek tidak jadi dilanjutkan. |

Dua penjagaannya:

- **Completed ditolak** selama masih ada tugas atau sub-tugas yang belum selesai
  atau dibatalkan. Pesan errornya menyebut berapa yang menahan.
- **Kembali ke Draft atau To Do ditolak** bila sudah ada tugas yang pernah
  dikerjakan.

Ada juga dua perpindahan otomatis: seluruh tugas selesai/dibatalkan membuat
proyek menjadi *Completed*, dan satu tugas mulai dikerjakan membuat proyek
*Draft*/*To Do*/*Completed* menjadi *In Progress*.

### Completed & Cancelled membekukan isi proyek

Proyek yang sudah *Completed* atau *Cancelled* bersifat **baca-saja**: tugas di
dalamnya tidak bisa dibuat, diubah, dihapus, digerakkan statusnya, diunggahi
bukti, di-review, dikomentari, maupun diajukan perpanjangan tenggat.

Satu-satunya jalan keluar: **Owner** mengubah status proyeknya kembali. PIC tidak
bisa melakukannya, dan pembukaan ditolak selama tenggat proyek sudah lewat —
perbarui tenggatnya dulu ke masa depan.

### On Hold menggeser tenggat

Menjeda proyek menahan pekerjaan, tapi tidak menahan kalender. Karena itu, saat
proyek dilanjutkan lagi, **tenggat proyek dan seluruh tugas yang masih terbuka
digeser maju sepanjang durasi jeda** — jadi tidak ada yang mendadak terlambat
gara-gara keputusan menjeda.

Yang tidak ikut digeser: tugas yang sudah selesai/dibatalkan, tugas tanpa tenggat,
dan tugas yang baru dibuat di tengah jeda. Jeda yang kurang dari 24 jam tidak
menggeser apa pun.

---

## Melihat Jadwal Proyek (Gantt)

Tab **Gantt** menaruh seluruh tugas proyek di satu sumbu waktu. Gunanya untuk
melihat apa yang berjalan bersamaan, mana yang menumpuk di minggu yang sama, dan
mana yang sudah lewat tenggat — tanpa membuka tugasnya satu per satu.

Semua anggota proyek bisa membuka tab ini dan membaca isinya.

### Membaca bagannya

- **Batang** membentang dari tanggal mulai sampai tenggat sebuah tugas. Warnanya
  mengikuti status tugas, sama dengan warna di daftar tugas.
- **Belah ketupat** berarti tugas itu punya tenggat tapi **tanggal mulainya belum
  diisi**. Ia digambar sebagai satu titik di tanggal tenggat, bukan batang, karena
  durasinya memang belum pernah ditentukan.
- **Garis tepi merah** menandai tugas yang sudah lewat tenggat dan belum selesai.
- **Batang berbentuk kurung** adalah tugas yang punya sub-tugas. Bagian gelap di
  dalamnya menunjukkan berapa banyak sub-tugas yang sudah selesai.
- **Kolom abu-abu** adalah akhir pekan; **garis merah tipis** berlabel *Hari ini*
  menandai tanggal hari ini. Bagan otomatis membuka posisi itu saat pertama dibuka.
- Tugas **tanpa tenggat sama sekali** tidak muncul di bagan — tidak ada tempat
  untuk menaruhnya di sumbu waktu.
- **Klik batang atau nama tugasnya** untuk membuka detail tugas itu langsung dari
  bagan. Tab tidak berpindah, jadi kamu tetap berada di Gantt setelah menutupnya.

Di layar lebar, panel kiri juga menampilkan kolom **Mulai (Start)**,
**Tenggat (Due)**, dan **Durasi (Duration)**. Di kanan atas ada pilihan
**Harian (Day)** dan **Mingguan (Week)**. Bagan selalu dibuka **harian** berapa pun
panjang proyeknya, lengkap dengan nama hari di tiap kolom; pindah ke mingguan
kalau kamu ingin melihat rentang panjang sekaligus.

### Menghubungkan tugas yang harus berurutan

Yang berwenang: **Owner** dan **PIC**. Anggota lain tetap melihat panahnya, tapi
tidak melihat tombol untuk mengubahnya.

Kalau sebuah tugas baru boleh mulai setelah tugas lain selesai, hubungan itu bisa
dicatat di sini dan muncul sebagai panah di bagan.

Hubungan ini **hanya berlaku antar tugas induk.** Sub-tugas tidak ikut — ia memecah
pekerjaan induknya sendiri, bukan menunggu atau ditunggu tugas lain. Karena itu
baris sub-tugas tidak punya tombol **+**, dan sub-tugas juga tidak muncul di daftar
pilihan prasyarat.

1. Arahkan kursor ke baris **tugas induk** yang menunggu, lalu klik tombol **+**.
2. Di bagian **Tambah prasyarat**, cari tugas yang harus selesai lebih dulu.
3. Klik tugas itu — panahnya langsung muncul di bagan.
4. Untuk melepas, buka tombol yang sama lalu klik **×** pada daftar
   *Harus selesai lebih dulu*.

> **Penting:** panah ini **catatan, bukan penghalang.** Tasko tidak melarang
> siapa pun mengerjakan tugas yang prasyaratnya belum selesai, dan tidak menggeser
> tanggal secara otomatis kalau tugas pendahulunya mundur. Gunanya menyepakati
> urutan kerja, bukan menegakkannya.

**Tips:**

- Tugas hanya bisa dihubungkan dengan tugas di **proyek yang sama**.
- Hubungan melingkar ditolak: kalau A menunggu B, kamu tidak bisa membuat B
  menunggu A — baik langsung maupun lewat rantai tugas lain.
- Angka kecil di sebelah nama tugas menunjukkan berapa tugas yang menahannya.

---

## Mengelola Anggota Proyek

Yang berwenang: **Owner** dan **PIC**. PIC boleh melakukan semuanya kecuali
menyentuh anggota berperan Owner.

### Menambahkan anggota

1. Buka proyek yang ingin diatur.
2. Masuk ke bagian anggota/tim proyek.
3. Klik tambah anggota.
4. Pilih orang yang ingin ditambahkan dan tentukan **perannya**.
5. Simpan.

Kandidat yang bisa dipilih adalah: anggota divisi pemilik proyek, anggota divisi
yang sudah terwakili di proyek ini, dan admin divisi mana pun. Aturan yang sama
ditegakkan di server, bukan sekadar disaring di dropdown.

> **Proyek boleh beranggotakan orang lintas divisi.** Caranya lewat "handshake":
> undang dulu admin divisi lain (umumnya sebagai PIC), setelah itu ia bisa
> menarik anggota divisinya sendiri ke proyek tersebut.

### Mengubah peran anggota

1. Pada daftar anggota, pilih anggota yang ingin diubah.
2. Pilih peran baru, lalu simpan.

Peran **Owner tidak bisa diberikan lewat menu mana pun** — kepemilikan hanya
lahir saat proyek dibuat (atau lewat opsi *Set Admin as Project Owner*).

### Mengeluarkan anggota

1. Pada daftar anggota, pilih opsi keluarkan di anggota terkait.
2. Konfirmasi tindakan.

Owner **terakhir** tidak bisa diturunkan atau dikeluarkan, supaya proyek tidak
pernah kehilangan pengelolanya.

---

## Peran (Role) di Proyek

| Peran | Kemampuan |
|-------|-----------|
| **Owner** | Akses penuh. Satu-satunya yang boleh menghapus proyek, mengubah status proyek terminal, dan menyentuh anggota berperan Owner. |
| **Person in Charge (PIC)** | Mengelola eksekusi harian: buat & tugaskan tugas, setujui review, putuskan perpanjangan tenggat, ubah status proyek, ubah identitas proyek, duplikat proyek, dan kelola anggota (kecuali Owner). |
| **Member** | Mengerjakan tugas yang ditugaskan, mengunggah bukti, berdiskusi, dan mengajukan perpanjangan tenggat. Tidak membuat tugas dan tidak menyetujui apa pun. |
| **Viewer** | Pemantau murni: membaca saja. **Tidak bisa berkomentar dan tidak bisa ditugaskan tugas.** |

Ringkasnya:

| Aksi di dalam proyek | Owner | PIC | Member | Viewer |
|----------------------|:-----:|:---:|:------:|:------:|
| Baca proyek & tugas | ● | ● | ● | ● |
| Ubah nama/deskripsi/tenggat proyek | ● | ● | ○ | ○ |
| Ubah status proyek | ● | ● | ○ | ○ |
| Duplikat proyek | ● | ● | ○ | ○ |
| Hapus proyek | ● | ○ | ○ | ○ |
| Kelola anggota | ● | ◐ | ○ | ○ |
| Buat/hapus tugas & tentukan pelaksana | ● | ● | ○ | ○ |
| Ditugaskan tugas & mengunggah bukti | ◐ | ◐ | ◐ | ○ |
| Setujui review & putuskan perpanjangan | ● | ● | ○ | ○ |
| Berkomentar | ● | ● | ● | ○ |

**●** penuh · **◐** bersyarat · **○** tidak ada akses

> **Owner dan PIC boleh merangkap pelaksana.** Yang tertutup dari penugasan hanya
> Viewer. Konsekuensinya diterima secara sadar: seorang PIC bisa menugaskan tugas
> kepada dirinya sendiri lalu menyetujuinya sendiri.

---

## Menduplikat Proyek

Berguna saat pekerjaan berulang tiap periode — kampanye bulanan, audit triwulan — dan
strukturnya ingin dipakai lagi. Yang boleh: **Owner dan PIC**.

1. Buka proyek yang ingin disalin, lalu pilih opsi duplikat.
2. Isi **New Project Name**.
3. Tentukan dua pilihan salinan:
   - **Salin anggota** — bawaan **aktif**. Bila dimatikan, kamu menjadi satu-satunya
     anggota proyek baru, dengan peran Owner.
   - **Salin pelaksana tugas** — bawaan **nonaktif**. Bila dimatikan, tugas salinan lahir
     tanpa assignee sehingga bisa dibagi ulang.
4. Simpan.

Yang perlu diketahui soal hasilnya:

- Proyek baru selalu berstatus **Pending**, apa pun status proyek asalnya.
- **Kamu menjadi pembuat sekaligus Owner** proyek baru, bukan pembuat proyek asal.
- Seluruh tugas ikut tersalin beserta susunan sub-tugasnya, dengan **kode tugas baru** dan
  status yang di-reset — jadi salinannya bersih, bukan lanjutan pekerjaan lama.
- Bukti, komentar, dan riwayat review **tidak** ikut tersalin.

---

## Divisi & Peran di Divisi

**Divisi** mengelompokkan anggota tim (misalnya: Divisi Marketing, Divisi
Operasional). Setiap proyek selalu dimiliki tepat satu divisi.

| Peran | Kemampuan |
|-------|-----------|
| **Admin** | Pemilik operasional divisi: membuat proyek di divisinya, mengelola tugas divisi dan template tugas berulang, serta me-review tugas divisi. |
| **Supervisor** | Sama persis dengan Admin — bedanya hanya label organisasi, bukan hak akses. |
| **Member** | Mengerjakan tugas divisi yang ditugaskan kepadanya. |
| **Viewer** | Melihat saja; tidak berkomentar dan tidak bisa ditugaskan tugas. |

Beberapa hal yang perlu diketahui:

- **Keanggotaan divisi hanya diatur super admin.** Halaman *Members* di dalam
  divisi bersifat baca-saja — Admin divisi sekalipun tidak menambah, mengeluarkan,
  atau mengubah peran anggota.
- **Divisi dibuat dan diubah super admin**, lengkap dengan **prefix** yang menjadi
  awalan kode tugas (mis. `SK-000012`). Prefix terkunci begitu divisi punya tugas.
- **Daftar divisi terbuka untuk semua orang** — ini disengaja sebagai direktori
  kantor. Yang terbuka hanya nama, deskripsi, dan daftar anggotanya; isi divisi
  (tugas, proyek, anggota, tugas berulang) tetap butuh keanggotaan.
- **Anggota tidak bisa dilepas dari divisi** selama ia masih memegang tugas
  terbuka atau masih menjadi pelaksana sebuah template tugas berulang di sana.
  Pindahkan pekerjaannya dulu.

---

## Menghapus & Memulihkan Proyek

- Menghapus proyek adalah wewenang **Owner** saja, dan sifatnya *soft delete* —
  proyeknya masuk arsip, tugasnya tidak ikut hilang.
- Super admin bisa **memulihkan** atau **menghapus permanen** dari halaman
  *Archives*.
- Proyek terhapus **dibersihkan permanen otomatis setelah 30 hari**.

---

## Pertanyaan Umum

**Apa beda Proyek dan Divisi?**
Proyek mengelompokkan **pekerjaan** menuju satu tujuan. Divisi mengelompokkan
**orang** ke dalam tim. Satu divisi bisa mengerjakan banyak proyek.

**Bisakah satu orang punya peran berbeda di proyek dan divisi?**
Bisa. Peran di proyek dan di divisi diatur terpisah, dan di dalam proyek yang
berlaku adalah peran proyeknya.

**Saya Admin divisi, kenapa tidak bisa membuka proyek di divisi saya sendiri?**
Karena kamu belum menjadi anggota proyek itu. Peran divisi tidak membuka proyek —
minta Owner/PIC menambahkanmu, atau centang *Set Admin as Project Owner* saat
proyek dibuat.

**Kenapa tombol di proyek saya hilang semua?**
Kemungkinan besar proyeknya sudah *Completed* atau *Cancelled* sehingga isinya
dibekukan. Owner bisa membukanya kembali lewat perubahan status.

**Kenapa tugas saya tidak muncul di tab Gantt?**
Kemungkinan besar tugas itu belum punya tenggat. Bagan menempatkan tugas
berdasarkan tanggal, jadi tugas tanpa tenggat tidak punya posisi di sana. Kalau
tenggatnya sudah ada tapi tanggal mulainya kosong, tugasnya tetap muncul — sebagai
belah ketupat di tanggal tenggat.

**Saya sudah membuat panah urutan, kenapa tugasnya tetap bisa dikerjakan duluan?**
Memang begitu perilakunya. Panah di Gantt mencatat urutan yang disepakati, bukan
mengunci pekerjaan. Tidak ada status yang diblokir karenanya.

**Kenapa saya tidak melihat tombol + di tab Gantt?**
Tombol itu hanya untuk Owner dan PIC proyek. Peran lain tetap bisa membaca bagan
beserta panahnya. Kalau kamu Owner atau PIC tapi tombolnya tetap tidak muncul di
baris tertentu, baris itu **sub-tugas** — prasyarat hanya berlaku antar tugas induk.

**Kenapa anggota tidak bisa saya keluarkan dari divisi?**
Ia masih memegang tugas terbuka atau masih terdaftar sebagai pelaksana template
tugas berulang di divisi itu. Pesan penolakannya menyebut mana yang menahan.
