Sistem Manajemen Pemeriksaan

1. Pendahuluan

1.1 Tujuan

Dokumen ini menjelaskan spesifikasi sistem untuk Sistem Manajemen Pemeriksaan, termasuk fitur utama, arsitektur sistem, desain basis data, antarmuka pengguna, dan kemampuan untuk digunakan secara offline.

1.2 Ruang Lingkup

Sistem ini akan digunakan oleh tim internal audit dalam sebuah perusahaan untuk mengelola proses pemeriksaan, termasuk perencanaan, pelaksanaan, pelaporan, pemantauan tindakan lanjutan, manajemen risiko, dan kemampuan bekerja secara offline.

1.3 Definisi, Akronim, dan Singkatan

SMP: Sistem Manajemen Pemeriksaan
User: Pengguna
Audit Plan: Rencana Pemeriksaan
Audit Assignment: Surat Tugas Pemeriksaan
Audit Procedure: Prosedur Pemeriksaan
Audit Evidence: Bukti Pemeriksaan
Audit Finding: Temuan Pemeriksaan
Audit Recommendation: Rekomendasi Pemeriksaan
Risk Management: Manajemen Risiko
Follow-Up Action: Tindakan Lanjutan

2. Kebutuhan Sistem

2.1 Pengguna dan Peran

Member Auditor: Melakukan tugas pemeriksaan dan mengelola kertas kerja pemeriksaan.
Audit Team Leader: Memimpin tim pemeriksaan dan memastikan tugas berjalan sesuai rencana.
Supervisor: Mengawasi dan meninjau pekerjaan tim pemeriksaan.
Person in Charge: Bertanggung jawab atas keseluruhan proses pemeriksaan.
Auditee: Mengunggah dokumen yang diminta oleh auditor.
Office Head: Menyetujui rencana pemeriksaan dan surat tugas pemeriksaan.
Admin: Mengelola pengguna dan sistem.
Risk Manager: Mengelola risiko yang diidentifikasi selama proses pemeriksaan.

2.2 Fitur Utama

Pengajuan dan persetujuan rencana pemeriksaan tahunan.
Pembuatan surat tugas pemeriksaan.
Pengembangan program prosedur pemeriksaan.
Pelaksanaan prosedur pemeriksaan dan pengumpulan bukti.
Pencatatan temuan pemeriksaan dan pembuatan laporan.
Pemantauan pelaksanaan rekomendasi pemeriksaan.
Manajemen risiko.
Modul kertas kerja pemeriksaan (wawancara, inspeksi, review dokumen, pengamatan, survey).
Pengelolaan bukti pemeriksaan (gambar, video, rekaman, file/dokumen).
Kemampuan bekerja secara offline.

3. Desain Sistem

3.1 Arsitektur Sistem

Sistem ini menggunakan arsitektur berbasis layanan (microservices) yang memungkinkan skalabilitas dan pemeliharaan yang lebih mudah. Untuk mendukung kemampuan offline, sistem akan menggunakan teknologi penyimpanan lokal seperti IndexedDB atau SQLite di sisi klien. Komponen utama meliputi:
Front-End: Aplikasi web berbasis HTML, CSS, dan JavaScript, dengan dukungan untuk PWA (Progressive Web App) agar dapat bekerja secara offline.
Back-End: API berbasis REST yang dikembangkan dengan framework seperti Node.js atau Django.
Database: MySQL atau PostgreSQL untuk menyimpan data sistem.

3.2 Desain Basis Data

Tabel Pengguna (Users)

sql
Copy code
CREATE TABLE Users (
user_id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE,
password_hash VARCHAR(255) NOT NULL,
role ENUM('Member Auditor', 'Audit Team Leader', 'Supervisor', 'Person in Charge', 'Auditee', 'Office Head', 'Admin', 'Risk Manager') NOT NULL,
full_name VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
phone_number VARCHAR(20)
);

Tabel Rencana Pemeriksaan (AuditPlans)

sql
Copy code
CREATE TABLE AuditPlans (
plan_id INT PRIMARY KEY AUTO_INCREMENT,
plan_name VARCHAR(100) NOT NULL,
audit_type VARCHAR(50),
audit_objective TEXT,
auditee_id INT,
planned_start_date DATE,
planned_end_date DATE,
created_by INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
status ENUM('Pending', 'Approved', 'Rejected') DEFAULT 'Pending',
FOREIGN KEY (auditee_id) REFERENCES Users(user_id),
FOREIGN KEY (created_by) REFERENCES Users(user_id)
);

Tabel Surat Tugas Pemeriksaan (AuditAssignmentLetters)

sql
Copy code
CREATE TABLE AuditAssignmentLetters (
assignment_id INT PRIMARY KEY AUTO_INCREMENT,
plan_id INT,
assignment_name VARCHAR(100) NOT NULL,
audit_type VARCHAR(50),
audit_objective TEXT,
audit_object TEXT,
auditee_id INT,
assigned_to INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
status ENUM('Assigned', 'Completed') DEFAULT 'Assigned',
FOREIGN KEY (plan_id) REFERENCES AuditPlans(plan_id),
FOREIGN KEY (auditee_id) REFERENCES Users(user_id),
FOREIGN KEY (assigned_to) REFERENCES Users(user_id)
);

Tabel Program Prosedur Pemeriksaan (AuditProcedures)

sql
Copy code
CREATE TABLE AuditProcedures (
procedure_id INT PRIMARY KEY AUTO_INCREMENT,
plan_id INT,
procedure_name VARCHAR(100) NOT NULL,
description TEXT,
assigned_to INT,
working_paper_type ENUM('Interview', 'Inspection', 'Document Review', 'Observation', 'Survey'),
stage ENUM('Program Development', 'Approval', 'Assignment'),
approval_status ENUM('Pending', 'Approved', 'Rejected') DEFAULT 'Pending',
allocation_date DATE,
created_by INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (plan_id) REFERENCES AuditPlans(plan_id),
FOREIGN KEY (assigned_to) REFERENCES Users(user_id),
FOREIGN KEY (created_by) REFERENCES Users(user_id)
);

Tabel Kertas Kerja Pemeriksaan (AuditWorkingPapers)

sql
Copy code
CREATE TABLE AuditWorkingPapers (
paper_id INT PRIMARY KEY AUTO_INCREMENT,
procedure_id INT,
paper_type ENUM('Interview', 'Inspection', 'Document Review', 'Observation', 'Survey') NOT NULL,
content TEXT,
created_by INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (procedure_id) REFERENCES AuditProcedures(procedure_id),
FOREIGN KEY (created_by) REFERENCES Users(user_id)
);

Tabel Bukti Pemeriksaan (AuditEvidence)

sql
Copy code
CREATE TABLE AuditEvidence (
evidence_id INT PRIMARY KEY AUTO_INCREMENT,
procedure_id INT,
evidence_type ENUM('Image', 'Video', 'Recording', 'Document') NOT NULL,
file_path VARCHAR(255) NOT NULL,
uploaded_by INT,
uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (procedure_id) REFERENCES AuditProcedures(procedure_id),
FOREIGN KEY (uploaded_by) REFERENCES Users(user_id)
);

Tabel Temuan Pemeriksaan (AuditFindings)

sql
Copy code
CREATE TABLE AuditFindings (
finding_id INT PRIMARY KEY AUTO_INCREMENT,
procedure_id INT,
finding_description TEXT NOT NULL,
severity ENUM('Low', 'Medium', 'High') NOT NULL,
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.