@startuml
|client|
start
:permohonan \njadwal;
|pic kegiatan|
repeat
:membuat \njadwal;
:membuat \npenawaran;
|client|
repeat while (setuju?) is (tidak) not (ya)
|pic kegiatan|
:membuat \ninvoice;
|client|
repeat
:membayar;
|pic kegiatan|
:cek bukti \nbayar;
repeat while (valid) is (tidak) not (ya)
:membuat kegiatan;
fork
repeat
:konfirmasi \nasesor;
|asesor|
repeat while (bersedia?) is (tidak) not (ya)
fork again
|pic kegiatan|
repeat
:konfirmasi \nadmin;
|admin|
repeat while (bersedia?) is (tidak) not (ya)
repeat
:membuat \nanggaran;
|pic kegiatan|
repeat while (setuju?) is (tidak) not (ya)
|keuangan|
:transfer dana \nke admin;
|pic kegiatan|
end fork;
|admin|
fork
|asesor|
:melaksanakan \nkegiatan;
:membuat laporan \nkegiatan;
fork again
|admin|
:melaksanakan \nkegiatan;
:membuat laporan \nkegiatan;
end fork
if (dana cukup \natau sisa) then (ya)
:kembalikan \nke keuangan;
else (tidak)
:request \ntambahan;
|keuangan|
:mengirim \ntambahan;
endif
|admin|
:kembalikan \nke asesor;
stop
@enduml