Files
LAB_LINGKUNGAN/lab_env_database_explanation.md
2025-04-24 10:25:31 +07:00

12 KiB

Struktur Database Sistem Aplikasi Laboratorium Lingkungan

Berikut adalah penjelasan struktur database yang dirancang untuk sistem aplikasi laboratorium lingkungan berdasarkan alur pelayanan yang ada pada diagram.

Gambaran Umum Alur Layanan

Alur laboratorium lingkungan melibatkan beberapa tahapan utama:

  1. Customer (internal/eksternal) mengajukan permintaan sampling dan analisis
  2. Admin Lab memproses permintaan, menyiapkan surat penawaran, quotation, dan registrasi
  3. Petugas Sampling menyiapkan rencana sampling dan peralatan
  4. Bagian Penerimaan Contoh Uji menerima dan mempreparasi sampel
  5. Bagian Analisis Laboratorium menganalisa sampel uji sesuai jenis sampel
  6. Bagian Verifikasi Hasil Uji melakukan verifikasi hasil uji

Struktur Tabel

1. Tabel Customers (Pelanggan)

Menyimpan data pelanggan baik internal maupun eksternal yang meminta layanan pengujian.

Field Tipe Data Keterangan
customer_id INT Primary Key, ID unik pelanggan
customer_name VARCHAR(100) Nama pelanggan
customer_type ENUM Tipe pelanggan: 'Internal' atau 'External'
contact_person VARCHAR(100) Nama kontak person
phone_number VARCHAR(20) Nomor telepon
email VARCHAR(100) Alamat email
address TEXT Alamat lengkap
company_name VARCHAR(100) Nama perusahaan/instansi
created_at TIMESTAMP Tanggal pembuatan record
updated_at TIMESTAMP Tanggal update terakhir

2. Tabel Sample Types (Jenis Sampel)

Menyimpan jenis-jenis sampel yang dapat dianalisis oleh laboratorium.

Field Tipe Data Keterangan
sample_type_id INT Primary Key, ID unik jenis sampel
type_name VARCHAR(100) Nama jenis sampel (contoh: Air Limbah, Air Permukaan, dll)
description TEXT Deskripsi jenis sampel
standard_method TEXT Metode standar untuk sampling dan analisis
created_at TIMESTAMP Tanggal pembuatan record

3. Tabel Analysis Parameters (Parameter Analisis)

Menyimpan parameter-parameter yang dapat dianalisis oleh laboratorium.

Field Tipe Data Keterangan
parameter_id INT Primary Key, ID unik parameter
parameter_name VARCHAR(100) Nama parameter (contoh: pH, BOD, COD, dll)
unit VARCHAR(50) Satuan parameter (mg/L, NTU, dll)
method VARCHAR(100) Metode analisis parameter
sample_type_id INT Foreign Key ke tabel sample_types
standard_value VARCHAR(100) Nilai baku mutu atau rentang standar
price DECIMAL(10,2) Harga analisis parameter
created_at TIMESTAMP Tanggal pembuatan record

4. Tabel Service Requests (Permintaan Layanan)

Menyimpan permintaan layanan dari pelanggan.

Field Tipe Data Keterangan
request_id INT Primary Key, ID unik permintaan
customer_id INT Foreign Key ke tabel customers
request_date TIMESTAMP Tanggal permintaan
request_type ENUM Tipe permintaan: 'Sampling and Analysis' atau 'Analysis Only'
project_name VARCHAR(200) Nama proyek
project_location TEXT Lokasi proyek
status ENUM Status permintaan (Draft, Submitted, Quotation Sent, Approved, dll)
admin_id INT ID admin yang menangani
quotation_number VARCHAR(50) Nomor quotation
quotation_date DATE Tanggal quotation
approved_date DATE Tanggal persetujuan
payment_proof VARCHAR(255) Bukti pembayaran DP
payment_date DATE Tanggal pembayaran
total_amount DECIMAL(12,2) Total biaya
notes TEXT Catatan tambahan
created_at TIMESTAMP Tanggal pembuatan record
updated_at TIMESTAMP Tanggal update terakhir

5. Tabel Request Parameters (Parameter yang Diminta)

Menyimpan parameter-parameter yang diminta untuk dianalisis dalam suatu permintaan.

Field Tipe Data Keterangan
request_parameter_id INT Primary Key, ID unik
request_id INT Foreign Key ke tabel service_requests
parameter_id INT Foreign Key ke tabel analysis_parameters
quantity INT Jumlah sampel untuk parameter
price_per_unit DECIMAL(10,2) Harga per unit
created_at TIMESTAMP Tanggal pembuatan record

6. Tabel Sampling Plans (Rencana Sampling)

Menyimpan rencana-rencana sampling.

Field Tipe Data Keterangan
plan_id INT Primary Key, ID unik rencana
request_id INT Foreign Key ke tabel service_requests
planned_date DATE Tanggal rencana sampling
location TEXT Lokasi sampling
coordinates VARCHAR(100) Koordinat GPS lokasi sampling
sampling_method TEXT Metode sampling yang digunakan
equipment_needed TEXT Peralatan yang dibutuhkan
sampling_officer_id INT ID petugas sampling
status ENUM Status rencana (Planned, Confirmed, Completed, Cancelled)
notes TEXT Catatan tambahan
created_at TIMESTAMP Tanggal pembuatan record
updated_at TIMESTAMP Tanggal update terakhir

7. Tabel Samples (Sampel)

Menyimpan data sampel yang diambil.

Field Tipe Data Keterangan
sample_id INT Primary Key, ID unik sampel
request_id INT Foreign Key ke tabel service_requests
plan_id INT Foreign Key ke tabel sampling_plans
sample_code VARCHAR(50) Kode unik sampel
sample_type_id INT Foreign Key ke tabel sample_types
sampling_date DATETIME Tanggal dan waktu pengambilan sampel
sampling_location TEXT Lokasi pengambilan sampel
sampling_officer_id INT ID petugas yang mengambil sampel
received_date DATETIME Tanggal dan waktu penerimaan sampel di lab
received_by INT ID petugas yang menerima sampel
sample_condition TEXT Kondisi sampel saat diterima
preparation_notes TEXT Catatan preparasi sampel
preservation_method TEXT Metode preservasi sampel
status ENUM Status sampel (Planned, Collected, Received, In Preparation, dll)
created_at TIMESTAMP Tanggal pembuatan record
updated_at TIMESTAMP Tanggal update terakhir

8. Tabel Analysis Results (Hasil Analisis)

Menyimpan hasil-hasil analisis laboratorium.

Field Tipe Data Keterangan
result_id INT Primary Key, ID unik hasil
sample_id INT Foreign Key ke tabel samples
parameter_id INT Foreign Key ke tabel analysis_parameters
analyst_id INT ID analis yang melakukan pengujian
analysis_date DATETIME Tanggal dan waktu analisis
result_value VARCHAR(100) Nilai hasil analisis
unit VARCHAR(50) Satuan hasil
method_used VARCHAR(100) Metode yang digunakan
is_within_standard BOOLEAN Apakah hasil dalam batas standar
notes TEXT Catatan analisis
status ENUM Status hasil (Planned, In Progress, Completed, Verified, Rejected)
verified_by INT ID petugas yang memverifikasi hasil
verification_date DATETIME Tanggal dan waktu verifikasi
created_at TIMESTAMP Tanggal pembuatan record
updated_at TIMESTAMP Tanggal update terakhir

9. Tabel Reports (Laporan)

Menyimpan laporan hasil uji.

Field Tipe Data Keterangan
report_id INT Primary Key, ID unik laporan
request_id INT Foreign Key ke tabel service_requests
report_number VARCHAR(50) Nomor laporan hasil uji
report_date DATE Tanggal laporan
prepared_by INT ID petugas yang menyiapkan laporan
verified_by INT ID petugas yang memverifikasi laporan
approved_by INT ID petugas yang menyetujui laporan
status ENUM Status laporan (Draft, Verified, Approved, Sent, Received)
file_path VARCHAR(255) Path ke file laporan
notes TEXT Catatan laporan
created_at TIMESTAMP Tanggal pembuatan record
updated_at TIMESTAMP Tanggal update terakhir

10. Tabel Users (Pengguna)

Menyimpan data pengguna sistem (staf laboratorium).

Field Tipe Data Keterangan
user_id INT Primary Key, ID unik pengguna
username VARCHAR(50) Username untuk login
password VARCHAR(255) Password terenkripsi
full_name VARCHAR(100) Nama lengkap pengguna
email VARCHAR(100) Email pengguna
role ENUM Peran pengguna (Admin, Sampling Officer, Lab Analyst, dll)
department VARCHAR(100) Departemen pengguna
is_active BOOLEAN Status aktif atau tidak
last_login DATETIME Waktu login terakhir
created_at TIMESTAMP Tanggal pembuatan record
updated_at TIMESTAMP Tanggal update terakhir

11. Tabel Activity Logs (Log Aktivitas)

Menyimpan log aktivitas pada sistem.

Field Tipe Data Keterangan
log_id INT Primary Key, ID unik log
user_id INT Foreign Key ke tabel users
action VARCHAR(255) Aksi yang dilakukan
table_name VARCHAR(100) Nama tabel yang berubah
record_id INT ID record yang berubah
details TEXT Detail perubahan
ip_address VARCHAR(45) Alamat IP
created_at TIMESTAMP Tanggal dan waktu log

Contoh Data Real

Berikut adalah contoh data nyata untuk beberapa tabel utama:

Contoh Data Customers

1, 'PT. Industri Tekstil Nusantara', 'External', 'Budi Santoso', '08123456789', 'budi@tekstilnusantara.com', 'Jl. Industri No. 123, Bandung', 'PT. Industri Tekstil Nusantara'
2, 'Dinas Lingkungan Hidup Kota', 'External', 'Siti Aminah', '08765432100', 'siti@dlh.kotabjb.go.id', 'Jl. Pemkot No. 45, Kota BJB', 'Dinas Lingkungan Hidup Kota BJB'
3, 'Departemen Produksi', 'Internal', 'Rudi Hartono', '08567891234', 'rudi@internal.lab.com', 'Gedung Utama Lt. 2, Lab Lingkungan', 'Lab Lingkungan'

Contoh Data Sample Types

1, 'Air Limbah', 'Sampel air limbah dari industri atau fasilitas', 'SNI 6989.59:2008'
2, 'Air Permukaan', 'Sampel air sungai, danau, atau badan air lainnya', 'SNI 6989.57:2008'
3, 'Air Tanah', 'Sampel air dari sumur atau mata air', 'SNI 6989.58:2008'

Contoh Data Analysis Parameters

1, 'pH', '-', 'SNI 06-6989.11-2004', 1, '6-9', 50000.00
2, 'TSS', 'mg/L', 'SNI 06-6989.3-2004', 1, '100', 75000.00
3, 'COD', 'mg/L', 'SNI 6989.73:2009', 1, '100', 125000.00
4, 'BOD', 'mg/L', 'SNI 6989.72:2009', 1, '30', 150000.00

Contoh Data Service Requests

1, 1, '2025-01-15 09:30:00', 'Sampling and Analysis', 'Pemantauan Limbah Triwulan I 2025', 'Pabrik Tekstil Bandung', 'Approved', 1, 'Q-2025-001', '2025-01-15', '2025-01-20', 'payment_proof_001.jpg', '2025-01-18', 2500000.00, 'Permintaan rutin triwulanan'

Contoh Data Sampling Plans

1, 1, '2025-01-25', 'Outlet IPAL PT. Industri Tekstil Nusantara', '-6.914744, 107.609810', 'Grab Sampling sesuai SNI 6989.59:2008', 'Botol sampling, pH meter, termometer, cool box', 2, 'Completed', 'Sampling dilakukan pada pagi hari'

Contoh Data Samples

1, 1, 1, 'ITN-2025-001', 1, '2025-01-25 10:15:00', 'Outlet IPAL PT. Industri Tekstil Nusantara', 2, '2025-01-25 15:30:00', 3, 'Baik, suhu 20°C', 'Sampel disaring untuk analisis TSS', 'Preservation with H2SO4 for COD', 'Analysis Complete'

Contoh Data Analysis Results

1, 1, 1, 3, '2025-01-26 09:00:00', '7.6', '-', 'SNI 06-6989.11-2004', TRUE, 'pH diukur in-situ dan di laboratorium', 'Verified', 4, '2025-01-27 10:00:00'
2, 1, 2, 3, '2025-01-26 11:00:00', '45', 'mg/L', 'SNI 06-6989.3-2004', TRUE, 'Sampel disaring dengan kertas saring', 'Verified', 4, '2025-01-27 10:00:00'

Kesesuaian dengan Alur Layanan

Struktur database ini dirancang untuk mendukung alur layanan laboratorium lingkungan seperti pada diagram:

  1. Customer (Internal dan eksternal)

    • Tabel customers menyimpan informasi pelanggan
    • Tabel service_requests menyimpan permintaan sampling dan analisis
  2. Admin Lab Ling

    • Tabel service_requests menyimpan data penawaran, quotation, order pelanggan
    • Tabel users menyimpan data admin yang bertanggung jawab
  3. Petugas Sampling

    • Tabel sampling_plans menyimpan rencana sampling
    • Tabel samples menyimpan data sampel yang diambil
  4. Bagian penerimaan contoh uji

    • Tabel samples menyimpan informasi penerimaan dan preparasi sampel
  5. Bagian Analisis Laboratorium

    • Tabel analysis_results menyimpan hasil analisa sampel uji
  6. Bagian Verifikasi Hasil Uji

    • Tabel analysis_results menyimpan data verifikasi hasil uji
    • Tabel reports menyimpan laporan hasil uji yang telah diverifikasi

Dengan struktur database ini, sistem dapat melacak seluruh alur dari permintaan pelanggan hingga penerbitan laporan hasil uji, sesuai dengan alur pelayanan pada diagram.