@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