Files
LAB_LINGKUNGAN/Proses Pembuatan Work Order.md

15 KiB

Proses Pembuatan Work Order (Berbasis Parameter Pengujian)

Database Schema

Tabel Bahan Uji

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

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

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

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

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

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

{
  "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

[
  {
    "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

[
  {
    "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

[
  {
    "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.