Proses Pembuatan Work Order
This commit is contained in:
461
Proses Pembuatan Work Order
Normal file
461
Proses Pembuatan Work Order
Normal file
@@ -0,0 +1,461 @@
|
||||
# Proses Pembuatan Work Order (Berbasis Parameter Pengujian)
|
||||
|
||||
## Database Schema
|
||||
|
||||
### Tabel Bahan Uji
|
||||
```sql
|
||||
CREATE TABLE tabel_bahan_uji (
|
||||
bahan_uji_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
nama_bahan_uji VARCHAR(50) NOT NULL,
|
||||
kode_bahan_uji CHAR(4) NOT NULL,
|
||||
bidang_pengujian VARCHAR(20),
|
||||
UNIQUE (nama_bahan_uji)
|
||||
);
|
||||
```
|
||||
|
||||
Contoh Data:
|
||||
| bahan_uji_id | nama_bahan_uji | kode_bahan_uji | bidang_pengujian |
|
||||
|--------------|--------------------------|----------------|------------------|
|
||||
| 1 | Udara lingkungan kerja | UL | KIMIA |
|
||||
| 2 | Lingkungan kerja | LK | FISIK |
|
||||
| 3 | Intensitas kebisingan | IK | KIMIA |
|
||||
| 4 | Air Minum, Hygiene, Limbah | AMHL | KIMIA |
|
||||
| 5 | Air Minum | AM | KIMIA/BIOLOGI |
|
||||
| 6 | Limbah domestik | LD | KIMIA/BIOLOGI |
|
||||
| 7 | IPAL OUTLET | IO | BIOLOGI |
|
||||
|
||||
### Tabel Parameter Pengujian
|
||||
```sql
|
||||
CREATE TABLE tabel_parameter_pengujian (
|
||||
parameter_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
bahan_uji_id INT NOT NULL,
|
||||
nama_parameter VARCHAR(100) NOT NULL,
|
||||
metode VARCHAR(50),
|
||||
peraturan VARCHAR(50),
|
||||
diukur_di_tkp BOOLEAN DEFAULT FALSE,
|
||||
jumlah_botol INT DEFAULT 0,
|
||||
volume_sampel VARCHAR(10) DEFAULT NULL,
|
||||
pengawetan VARCHAR(50) DEFAULT NULL,
|
||||
botol_kelompok VARCHAR(20) DEFAULT NULL,
|
||||
FOREIGN KEY (bahan_uji_id) REFERENCES tabel_bahan_uji(bahan_uji_id)
|
||||
);
|
||||
```
|
||||
|
||||
Contoh Data:
|
||||
| parameter_id | bahan_uji_id | nama_parameter | metode | peraturan | diukur_di_tkp | jumlah_botol | volume_sampel | pengawetan | botol_kelompok |
|
||||
|--------------|--------------|----------------|--------|-----------|---------------|--------------|---------------|------------|----------------|
|
||||
| 1 | 1 | Debu Total | SNI 16-7058-2004 | Permenkes No.2 Tahun 2023 | FALSE | 1 | 1000-2000 L udara | NULL | Filter Udara |
|
||||
| 12 | 5 | Nitrat (NO3 terlarut) | SNI/APHA | Permenkes No.2 Tahun 2023 | FALSE | 1 | 500 mL | Asam Nitrat | Kimia |
|
||||
| 24 | 5 | E. Coli | SNI/APHA | Permenkes No.2 Tahun 2023 | FALSE | 1 | 500 mL | Disimpan dengan es | Biologi |
|
||||
| 25 | 5 | Total Coliform | SNI/APHA | Permenkes No.2 Tahun 2023 | FALSE | 1 | 500 mL | Disimpan dengan es | Biologi |
|
||||
| 27 | 6 | pH | SNI-6989.11-2019 | Permen LHK No.P.68/2016 | TRUE | 0 | NULL | NULL | NULL |
|
||||
| 28 | 6 | BOD | APHA 5210 B-2017 | Permen LHK No.P.68/2016 | FALSE | 1 | 500 mL | Botol Gelap | BOD |
|
||||
| 34 | 6 | Total Coliform | SNI | Permen LHK No.P.68/2016 | FALSE | 1 | 500 mL | Disimpan dengan es | Biologi |
|
||||
|
||||
## Penjelasan Kolom Penting
|
||||
|
||||
### botol_kelompok
|
||||
Kolom ini digunakan untuk mengelompokkan parameter yang bisa menggunakan botol yang sama:
|
||||
- **"Kimia"**: Parameter kimia seperti Nitrat, Nitrit, dll., bisa dikumpulkan dalam 1 botol.
|
||||
- **"Biologi"**: Parameter seperti E. Coli, Total Coliform, memerlukan botol steril terpisah.
|
||||
- **"BOD"**: Memerlukan botol gelap sendiri.
|
||||
- **"Filter Udara"**: Untuk Debu Total (khusus udara).
|
||||
|
||||
### jumlah_botol
|
||||
Jumlah botol per parameter. Namun, jika beberapa parameter bisa digabung dalam 1 botol (berdasarkan botol_kelompok), total botol per titik akan lebih sedikit.
|
||||
|
||||
### pengawetan
|
||||
Cara pengawetan untuk setiap parameter (misalnya asam nitrat, es, botol gelap).
|
||||
|
||||
## Tabel Tugas Work Order
|
||||
|
||||
### tabel_tugas
|
||||
```sql
|
||||
CREATE TABLE tabel_tugas (
|
||||
tugas_id VARCHAR(20) PRIMARY KEY,
|
||||
lokasi VARCHAR(100) NOT NULL,
|
||||
tanggal_tugas DATE NOT NULL,
|
||||
status VARCHAR(20) DEFAULT 'Direncanakan',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
created_by VARCHAR(50)
|
||||
);
|
||||
```
|
||||
|
||||
Contoh Data:
|
||||
| tugas_id | lokasi | tanggal_tugas | status | created_at | created_by |
|
||||
|----------|--------|---------------|--------|------------|------------|
|
||||
| WO-2025-016 | Sungai Citarum | 2025-05-16 | Direncanakan | 2025-05-16 09:20:00 | Supervisor_001 |
|
||||
|
||||
### tabel_titik_sampel
|
||||
```sql
|
||||
CREATE TABLE tabel_titik_sampel (
|
||||
titik_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
tugas_id VARCHAR(20) NOT NULL,
|
||||
kode_sampel VARCHAR(50) NOT NULL,
|
||||
bahan_uji_id INT NOT NULL,
|
||||
deskripsi_lokasi TEXT,
|
||||
waktu_pengambilan TIMESTAMP NULL,
|
||||
petugas VARCHAR(50),
|
||||
FOREIGN KEY (tugas_id) REFERENCES tabel_tugas(tugas_id),
|
||||
FOREIGN KEY (bahan_uji_id) REFERENCES tabel_bahan_uji(bahan_uji_id)
|
||||
);
|
||||
```
|
||||
|
||||
Contoh Data:
|
||||
| titik_id | tugas_id | kode_sampel | bahan_uji_id | deskripsi_lokasi | waktu_pengambilan | petugas |
|
||||
|----------|----------|-------------|--------------|------------------|-------------------|---------|
|
||||
| 1 | WO-2025-016 | WO-2025-016-T1 | 5 | Hulu Sungai Citarum | NULL | NULL |
|
||||
| 2 | WO-2025-016 | WO-2025-016-T2 | 6 | Outlet Pabrik Tekstil | NULL | NULL |
|
||||
|
||||
### tabel_botol_sampel
|
||||
```sql
|
||||
CREATE TABLE tabel_botol_sampel (
|
||||
botol_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
titik_id INT NOT NULL,
|
||||
barcode VARCHAR(100) NOT NULL,
|
||||
botol_nomor VARCHAR(10) NOT NULL,
|
||||
botol_kelompok VARCHAR(20) NOT NULL,
|
||||
status VARCHAR(20) DEFAULT 'Belum diambil',
|
||||
parameter_sampel JSON,
|
||||
FOREIGN KEY (titik_id) REFERENCES tabel_titik_sampel(titik_id)
|
||||
);
|
||||
```
|
||||
|
||||
Contoh Data:
|
||||
| botol_id | titik_id | barcode | botol_nomor | botol_kelompok | status | parameter_sampel |
|
||||
|----------|----------|---------|-------------|----------------|--------|------------------|
|
||||
| 1 | 1 | WO-2025-016-20250516-AM-T1-01 | 01 | Kimia | Sampel diambil | {"Nitrat (NO3 terlarut)": {"status": "Sampel diambil", "hasil": null}} |
|
||||
| 2 | 1 | WO-2025-016-20250516-AM-T1-02 | 02 | Biologi | Sampel diambil | {"E. Coli": {"status": "Sampel diambil", "hasil": null}} |
|
||||
| 3 | 2 | WO-2025-016-20250516-LD-T2-01 | 01 | BOD | Sampel diambil | {"BOD": {"status": "Sampel diambil", "hasil": null}} |
|
||||
| 4 | 2 | WO-2025-016-20250516-LD-T2-02 | 02 | Biologi | Sampel diambil | {"Total Coliform": {"status": "Sampel diambil", "hasil": null}} |
|
||||
|
||||
### tabel_parameter_tkp
|
||||
```sql
|
||||
CREATE TABLE tabel_parameter_tkp (
|
||||
pengukuran_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
titik_id INT NOT NULL,
|
||||
parameter_id INT NOT NULL,
|
||||
nilai VARCHAR(50),
|
||||
satuan VARCHAR(20),
|
||||
waktu_pengukuran TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
petugas VARCHAR(50),
|
||||
FOREIGN KEY (titik_id) REFERENCES tabel_titik_sampel(titik_id),
|
||||
FOREIGN KEY (parameter_id) REFERENCES tabel_parameter_pengujian(parameter_id)
|
||||
);
|
||||
```
|
||||
|
||||
Contoh Data:
|
||||
| pengukuran_id | titik_id | parameter_id | nilai | satuan | waktu_pengukuran | petugas |
|
||||
|---------------|----------|--------------|-------|--------|------------------|---------|
|
||||
| 1 | 2 | 27 | 7.2 | - | 2025-05-16 13:45:00 | Petugas_002 |
|
||||
|
||||
## Alur Proses Pembuatan Work Order
|
||||
|
||||
### Langkah 1: Inisiasi oleh Supervisor
|
||||
**Waktu**: 09:20 AM WIB, Jumat, 16 Mei 2025.
|
||||
|
||||
**Tugas**:
|
||||
- Supervisor membuka aplikasi untuk membuat work order baru.
|
||||
- Input detail dasar:
|
||||
- Tugas ID: "WO-2025-016" (otomatis).
|
||||
- Lokasi: "Sungai Citarum".
|
||||
- Tanggal Tugas: 16 Mei 2025.
|
||||
- Jumlah Titik Sampel: 2 (T1 dan T2).
|
||||
|
||||
### Langkah 2: Pilih Bahan Uji dan Parameter untuk Setiap Titik
|
||||
**Tugas**:
|
||||
- Untuk Titik 1 (T1):
|
||||
- Pilih Bahan Uji: "Air Minum".
|
||||
- Aplikasi menampilkan daftar parameter dari masterdata:
|
||||
- Nitrat (NO3 terlarut), E. Coli, Total Coliform, dll.
|
||||
- Supervisor memilih parameter yang dipesan klien: Nitrat, E. Coli.
|
||||
- Untuk Titik 2 (T2):
|
||||
- Pilih Bahan Uji: "Limbah Domestik".
|
||||
- Supervisor memilih parameter: pH, BOD, Total Coliform.
|
||||
|
||||
**Hasil**:
|
||||
- T1: Nitrat (Kimia, 1 botol), E. Coli (Biologi, 1 botol) → 2 botol.
|
||||
- T2: pH (di TKP, 0 botol), BOD (BOD, 1 botol), Total Coliform (Biologi, 1 botol) → 2 botol.
|
||||
|
||||
### Langkah 3: Sistem Menghitung Total Botol dan Generate Barcode
|
||||
**Tugas**:
|
||||
- Sistem mengelompokkan parameter berdasarkan botol_kelompok:
|
||||
- T1: Nitrat (Kimia) → Botol 1, E. Coli (Biologi) → Botol 2.
|
||||
- T2: BOD (BOD) → Botol 1, Total Coliform (Biologi) → Botol 2.
|
||||
- Total botol: 2 (T1) + 2 (T2) = 4 botol.
|
||||
- Generate barcode:
|
||||
- T1:
|
||||
- Botol 1: WO-2025-016-20250516-AM-T1-01 (Nitrat).
|
||||
- Botol 2: WO-2025-016-20250516-AM-T1-02 (E. Coli).
|
||||
- T2:
|
||||
- Botol 1: WO-2025-016-20250516-LD-T2-01 (BOD).
|
||||
- Botol 2: WO-2025-016-20250516-LD-T2-02 (Total Coliform).
|
||||
|
||||
**Format Barcode**: `[WO-ID]-[YYYYMMDD]-[KODE_BAHAN_UJI]-[KODE_TITIK]-[NOMOR_BOTOL]`
|
||||
|
||||
### Langkah 4: Persiapan Peralatan dan Botol
|
||||
**Tugas**:
|
||||
- Sistem menampilkan kebutuhan:
|
||||
- T1: Botol 1 (Kimia, 500 mL, asam nitrat), Botol 2 (Biologi, 500 mL, es).
|
||||
- T2: Botol 1 (BOD, 500 mL, botol gelap), Botol 2 (Biologi, 500 mL, es).
|
||||
- Supervisor menyiapkan:
|
||||
- 4 botol berlabel barcode.
|
||||
- Alat ukur: pH meter (untuk T2).
|
||||
- Pengawet: asam nitrat, es, botol gelap.
|
||||
|
||||
**Hasil**:
|
||||
- Paket tugas: 4 botol, alat ukur, pengawet.
|
||||
|
||||
### Langkah 5: Simpan Work Order ke Database
|
||||
**Tugas**:
|
||||
- Simpan ke database:
|
||||
- tabel_tugas: Tugas ID, lokasi, tanggal.
|
||||
- tabel_titik_sampel: Detail titik (T1, T2).
|
||||
- tabel_botol_sampel: Barcode, parameter yang terkait.
|
||||
|
||||
### Langkah 6: Penyerahan Work Order ke Petugas
|
||||
**Tugas**:
|
||||
- Supervisor menyerahkan paket tugas:
|
||||
- 4 botol berlabel.
|
||||
- Alat ukur dan pengawet.
|
||||
- Petugas memverifikasi dan berangkat ke lapangan.
|
||||
|
||||
### Langkah 7: Eksekusi di Lapangan
|
||||
**Tugas**:
|
||||
- Petugas tiba di lokasi dan melakukan pengukuran parameter di TKP:
|
||||
- T2: Mengukur pH dengan pH meter, mencatat hasilnya.
|
||||
- Mengambil sampel untuk parameter lain:
|
||||
- T1: Nitrat (botol 1), E. Coli (botol 2).
|
||||
- T2: BOD (botol 1), Total Coliform (botol 2).
|
||||
- Mengisi metadata:
|
||||
- Waktu pengambilan
|
||||
- Kondisi cuaca
|
||||
- Koordinat GPS
|
||||
|
||||
### Langkah 8: Pengiriman Sampel ke Laboratorium
|
||||
**Tugas**:
|
||||
- Petugas mengirimkan sampel ke laboratorium:
|
||||
- 4 botol berlabel barcode dengan pengawetan yang sesuai.
|
||||
- Form metadata pengambilan sampel.
|
||||
|
||||
### Langkah 9: Penerimaan Sampel di Laboratorium
|
||||
**Tugas**:
|
||||
- Staf Lab memverifikasi sampel yang diterima:
|
||||
- Scan barcode untuk konfirmasi.
|
||||
- Cek integritas sampel dan kondisi pengawetan.
|
||||
- Update status di sistem: "Sampel diterima lab".
|
||||
|
||||
### Langkah 10: Analisis dan Pelaporan
|
||||
**Tugas**:
|
||||
- Lab melakukan analisis terhadap sampel:
|
||||
- T1: Nitrat, E. Coli.
|
||||
- T2: BOD, Total Coliform.
|
||||
- Hasil diinput ke dalam sistem:
|
||||
- Update status parameter di tabel_botol_sampel.
|
||||
- Generate laporan hasil analisis.
|
||||
|
||||
## Contoh Data Detail untuk Work Order WO-2025-016
|
||||
|
||||
### 1. Data Detail Tugas
|
||||
```json
|
||||
{
|
||||
"tugas_id": "WO-2025-016",
|
||||
"lokasi": "Sungai Citarum",
|
||||
"tanggal_tugas": "2025-05-16",
|
||||
"jumlah_titik": 2,
|
||||
"total_sampel": 4,
|
||||
"status": "Direncanakan",
|
||||
"created_at": "2025-05-16 09:20:00",
|
||||
"created_by": "Supervisor_001"
|
||||
}
|
||||
```
|
||||
|
||||
### 2. Data Detail Titik Sampel
|
||||
```json
|
||||
[
|
||||
{
|
||||
"titik_id": 1,
|
||||
"tugas_id": "WO-2025-016",
|
||||
"kode_sampel": "WO-2025-016-T1",
|
||||
"bahan_uji": {
|
||||
"id": 5,
|
||||
"nama": "Air Minum",
|
||||
"kode": "AM"
|
||||
},
|
||||
"deskripsi_lokasi": "Hulu Sungai Citarum",
|
||||
"parameter": [
|
||||
{
|
||||
"id": 12,
|
||||
"nama": "Nitrat (NO3 terlarut)",
|
||||
"botol_kelompok": "Kimia",
|
||||
"diukur_di_tkp": false
|
||||
},
|
||||
{
|
||||
"id": 24,
|
||||
"nama": "E. Coli",
|
||||
"botol_kelompok": "Biologi",
|
||||
"diukur_di_tkp": false
|
||||
}
|
||||
],
|
||||
"botol": [
|
||||
{
|
||||
"botol_id": 1,
|
||||
"barcode": "WO-2025-016-20250516-AM-T1-01",
|
||||
"botol_nomor": "01",
|
||||
"botol_kelompok": "Kimia",
|
||||
"volume": "500 mL",
|
||||
"pengawetan": "Asam Nitrat",
|
||||
"parameter": ["Nitrat (NO3 terlarut)"]
|
||||
},
|
||||
{
|
||||
"botol_id": 2,
|
||||
"barcode": "WO-2025-016-20250516-AM-T1-02",
|
||||
"botol_nomor": "02",
|
||||
"botol_kelompok": "Biologi",
|
||||
"volume": "500 mL",
|
||||
"pengawetan": "Disimpan dengan es",
|
||||
"parameter": ["E. Coli"]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"titik_id": 2,
|
||||
"tugas_id": "WO-2025-016",
|
||||
"kode_sampel": "WO-2025-016-T2",
|
||||
"bahan_uji": {
|
||||
"id": 6,
|
||||
"nama": "Limbah Domestik",
|
||||
"kode": "LD"
|
||||
},
|
||||
"deskripsi_lokasi": "Outlet Pabrik Tekstil",
|
||||
"parameter": [
|
||||
{
|
||||
"id": 27,
|
||||
"nama": "pH",
|
||||
"botol_kelompok": null,
|
||||
"diukur_di_tkp": true
|
||||
},
|
||||
{
|
||||
"id": 28,
|
||||
"nama": "BOD",
|
||||
"botol_kelompok": "BOD",
|
||||
"diukur_di_tkp": false
|
||||
},
|
||||
{
|
||||
"id": 34,
|
||||
"nama": "Total Coliform",
|
||||
"botol_kelompok": "Biologi",
|
||||
"diukur_di_tkp": false
|
||||
}
|
||||
],
|
||||
"botol": [
|
||||
{
|
||||
"botol_id": 3,
|
||||
"barcode": "WO-2025-016-20250516-LD-T2-01",
|
||||
"botol_nomor": "01",
|
||||
"botol_kelompok": "BOD",
|
||||
"volume": "500 mL",
|
||||
"pengawetan": "Botol Gelap",
|
||||
"parameter": ["BOD"]
|
||||
},
|
||||
{
|
||||
"botol_id": 4,
|
||||
"barcode": "WO-2025-016-20250516-LD-T2-02",
|
||||
"botol_nomor": "02",
|
||||
"botol_kelompok": "Biologi",
|
||||
"volume": "500 mL",
|
||||
"pengawetan": "Disimpan dengan es",
|
||||
"parameter": ["Total Coliform"]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
### 3. Data Hasil Pengukuran TKP
|
||||
```json
|
||||
[
|
||||
{
|
||||
"pengukuran_id": 1,
|
||||
"titik_id": 2,
|
||||
"parameter_id": 27,
|
||||
"parameter_nama": "pH",
|
||||
"nilai": "7.2",
|
||||
"satuan": "-",
|
||||
"waktu_pengukuran": "2025-05-16 13:45:00",
|
||||
"petugas": "Petugas_002",
|
||||
"keterangan": "Kondisi cuaca cerah"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
### 4. Data Hasil Analisis Laboratorium
|
||||
```json
|
||||
[
|
||||
{
|
||||
"analisis_id": 1,
|
||||
"botol_id": 1,
|
||||
"parameter_id": 12,
|
||||
"parameter_nama": "Nitrat (NO3 terlarut)",
|
||||
"hasil": "3.2",
|
||||
"satuan": "mg/L",
|
||||
"metode": "SNI/APHA",
|
||||
"waktu_analisis": "2025-05-17 10:30:00",
|
||||
"analis": "Lab_001",
|
||||
"status": "Selesai",
|
||||
"keterangan": "Di bawah baku mutu"
|
||||
},
|
||||
{
|
||||
"analisis_id": 2,
|
||||
"botol_id": 2,
|
||||
"parameter_id": 24,
|
||||
"parameter_nama": "E. Coli",
|
||||
"hasil": "0",
|
||||
"satuan": "MPN/100mL",
|
||||
"metode": "SNI/APHA",
|
||||
"waktu_analisis": "2025-05-17 14:20:00",
|
||||
"analis": "Lab_002",
|
||||
"status": "Selesai",
|
||||
"keterangan": "Tidak terdeteksi"
|
||||
},
|
||||
{
|
||||
"analisis_id": 3,
|
||||
"botol_id": 3,
|
||||
"parameter_id": 28,
|
||||
"parameter_nama": "BOD",
|
||||
"hasil": "125",
|
||||
"satuan": "mg/L",
|
||||
"metode": "APHA 5210 B-2017",
|
||||
"waktu_analisis": "2025-05-22 09:15:00",
|
||||
"analis": "Lab_003",
|
||||
"status": "Selesai",
|
||||
"keterangan": "Melebihi baku mutu"
|
||||
},
|
||||
{
|
||||
"analisis_id": 4,
|
||||
"botol_id": 4,
|
||||
"parameter_id": 34,
|
||||
"parameter_nama": "Total Coliform",
|
||||
"hasil": "1600",
|
||||
"satuan": "MPN/100mL",
|
||||
"metode": "SNI",
|
||||
"waktu_analisis": "2025-05-18 11:40:00",
|
||||
"analis": "Lab_002",
|
||||
"status": "Selesai",
|
||||
"keterangan": "Melebihi baku mutu"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
## Proses Cetak Laporan
|
||||
|
||||
Setelah semua analisis selesai, sistem dapat mencetak laporan hasil pengujian yang mencakup:
|
||||
|
||||
1. Informasi Work Order
|
||||
2. Informasi Titik Sampel
|
||||
3. Hasil Pengukuran di TKP
|
||||
4. Hasil Analisis Laboratorium
|
||||
5. Perbandingan dengan Baku Mutu
|
||||
6. Tanda Tangan Penanggung Jawab
|
||||
|
||||
Dengan format barcode yang telah ditentukan, sistem dapat dengan mudah melacak sampel dari pengambilan hingga pelaporan hasil.
|
||||
Reference in New Issue
Block a user