Downtime forklift itu mahal—bukan cuma karena unit berhenti, tapi karena efek dominonya: material flow tersendat, WIP menumpuk, dan jadwal produksi geser. Di tengah tren layanan purna-jual dan aftermarket yang terus tumbuh, banyak tim maintenance mulai mengandalkan workflow yang lebih rapi, data-driven, dan bisa di-automate (lihat konteks pasar pada artikel forklift aftermarket services market). Di artikel ini, saya akan tunjukkan cara menyusun sistem yang simpel tapi “terasa enterprise” untuk preventive maintenance forklift industri—cukup dengan Google Sheets + Apps Script.
Pendekatan ini sejalan dengan praktik manajemen perawatan yang dibahas dalam kajian preventive maintenance: perawatan terjadwal dan terdokumentasi membantu menekan risiko kerusakan, meningkatkan keandalan, dan mengefisienkan biaya. Kenapa tema ini saya angkat? Karena banyak pabrik sudah punya teknisi hebat, tapi masih “kalah” oleh administrasi—jadwal terlewat, bukti kerja tercecer, dan follow-up tidak konsisten. Kita akan rapikan itu dengan sistem yang bisa dipakai besok pagi.
“Kalau preventive maintenance terasa ribet, biasanya yang ribet bukan maintenance-nya—melainkan cara kita menyimpan dan mengalirkan informasinya.”
Artikel ini fokus pada workflow + data hygiene + otomatisasi yang realistis di lantai pabrik.
1. Gambaran Sistem: Dari Jadwal ke Notifikasi yang Bisa Dipertanggungjawabkan
Sebelum masuk teknis, mari sepakati dulu bentuk sistemnya. Targetnya bukan “software canggih”, tapi alur kerja yang konsisten: aset → jadwal → eksekusi → bukti → evaluasi. Dengan alur ini, preventive maintenance forklift industri jadi kebiasaan operasional, bukan proyek musiman.
Workflow singkat (high-level)
- Asset Register: daftar forklift/alat berat + metadata kritikal.
- PM Plan: jadwal pekerjaan (harian/mingguan/bulanan/jam operasi).
- WO Log (Work Order): pencatatan eksekusi (tanggal, teknisi, temuan, tindakan, sparepart, downtime).
- K3 Gate: checklist safety wajib sebelum/selama pekerjaan.
- Automation: reminder otomatis + escalation jika overdue.
Tabel struktur data (template Google Sheets)
| Sheet | Tujuan | Kolom kunci | Catatan praktis |
|---|---|---|---|
Assets |
sumber data aset | AssetID, Tipe, Merek/Model, Lokasi, Kapasitas, Jam Operasi, Status | AssetID dibuat konsisten (mis. FL-PL2-001) |
PM_Plan |
daftar jadwal PM | AssetID, Interval, TaskSet, DueDate/NextDue, PIC, SLA | Interval bisa berbasis waktu atau jam operasi |
WO_Log |
histori pekerjaan | WO_ID, AssetID, Tanggal, TaskSet, Temuan, Tindakan, Downtime, FotoURL | Foto bisa link Drive/WhatsApp export |
K3_Checklist |
kontrol keselamatan | WO_ID, APD, Lockout/Tagout, Area Aman, Izin Kerja | jadikan gating: WO tidak “complete” tanpa K3 |
Config |
parameter | Email/WA gateway, EscalationDays, JamKirim | biar script tidak hardcode |
Tip: Untuk tim lapangan, batasi input manual. Gunakan dropdown, checkbox, dan template kalimat temuan/tindakan.
2. Checklist K3 yang Nyata Dipakai (Bukan Sekadar Dokumen)
Sistem PM yang bagus selalu punya “safety default”. Pada preventive maintenance forklift industri, K3 bukan tempelan—karena forklift, battery, hidrolik, dan lifting system punya risiko yang nyata.
Checklist K3 minimal (bisa jadi checkbox)
- APD lengkap (helm, sepatu safety, sarung tangan, kacamata)
- Area aman & signage (cone/barrier, jalur pejalan kaki jelas)
- Lockout/Tagout (jika perlu, khususnya pada pekerjaan listrik/hidrolik)
- Battery safety (untuk forklift elektrik: ventilasi, acid spill kit)
- Test run aman (tanpa beban dulu, cek rem/steering/klakson)
- Dokumentasi (foto sebelum-sesudah bila ada temuan kritikal)
Cara bikin checklist “dipakai”
- Jadikan checklist sebagai syarat WO selesai.
- Minimal 1 foto bukti untuk pekerjaan tertentu (mis. brake check).
- Overdue WO otomatis naik level (escalation) → ini mendorong disiplin tanpa perlu marah-marah.
3. Menentukan Interval PM: Time-Based vs Usage-Based
Salah satu alasan preventive maintenance forklift industri gagal adalah interval yang tidak nyambung dengan realitas operasi. Ada unit yang “jarang jalan” tapi jadwalnya rapat, dan sebaliknya.
Time-based (mudah)
Cocok untuk:
- inspeksi visual harian,
- cleaning,
- grease points mingguan,
- check baterai/cairan bulanan.
Usage-based (lebih akurat)
Cocok untuk:
- servis berkala berdasarkan jam operasi,
- penggantian komponen yang wear-based.
Praktik lapangan: kalau Anda belum punya meter reading yang rapi, mulai dari time-based dulu, lalu upgrade ke usage-based setelah 4–8 minggu data terkumpul.
Untuk metrik keandalan yang relevan, DEV punya artikel ringkas tentang MTTR/MTBF yang bisa jadi bahasa bersama antara tim maintenance dan manajemen: System Reliability Metrics: MTTR, MTBF, MTTD, MTTF.
4. Otomasi Notifikasi dengan Google Sheets + Apps Script
Di bagian ini kita bikin “mesin pengingat” yang menjaga preventive maintenance forklift industri tetap jalan walau orangnya sibuk. Automasi ini sederhana: scan DueDate, kirim reminder, dan escalate jika lewat tempo.
Desain notifikasi (yang tidak bikin orang kebal)
- T-3 hari: reminder halus ke PIC.
- H-0: reminder tegas + summary.
- Overdue +2 hari: escalate ke supervisor.
- Overdue +7 hari: escalation level 2 (opsional).
DEV internal link yang relevan (trigger)
Kalau Anda baru main Apps Script, baca dulu konsep trigger dari artikel official ini: Automate Your Google Workspace with Apps Script Triggers.
Struktur kolom minimal di PM_Plan
AssetIDTaskSetPIC_Email-
NextDue(tanggal) -
Status(OPEN,DONE,OVERDUE) -
LastNotified(timestamp)
Contoh Apps Script (email reminder)
/**
* PM Reminder Engine
* - Scan PM_Plan
* - Send reminder emails based on NextDue
* - Escalate overdue
*/
function sendPMReminders() {
const ss = SpreadsheetApp.getActive();
const sheet = ss.getSheetByName('PM_Plan');
const config = ss.getSheetByName('Config');
const escalationDays = Number(config.getRange('B2').getValue() || 2);
const supervisorEmail = String(config.getRange('B3').getValue() || '').trim();
const values = sheet.getDataRange().getValues();
const header = values.shift();
const idx = (name) => header.indexOf(name);
const iAsset = idx('AssetID');
const iTask = idx('TaskSet');
const iPic = idx('PIC_Email');
const iDue = idx('NextDue');
const iStat = idx('Status');
const iLast = idx('LastNotified');
const today = new Date();
today.setHours(0,0,0,0);
const isSameDay = (a, b) => a && b && a.toDateString() === b.toDateString();
for (let r = 0; r < values.length; r++) {
const row = values[r];
const assetId = String(row[iAsset] || '').trim();
const taskSet = String(row[iTask] || '').trim();
const pic = String(row[iPic] || '').trim();
const due = row[iDue] instanceof Date ? row[iDue] : null;
const status = String(row[iStat] || 'OPEN').trim();
const lastNotified = row[iLast] instanceof Date ? row[iLast] : null;
if (!assetId || !pic || !due) continue;
const dueDate = new Date(due);
dueDate.setHours(0,0,0,0);
const diffDays = Math.floor((dueDate - today) / (24*3600*1000));
const overdueDays = Math.floor((today - dueDate) / (24*3600*1000));
// Avoid spamming: notify max once per day per row
if (lastNotified && isSameDay(lastNotified, today)) continue;
// Update status
let newStatus = status;
if (overdueDays > 0) newStatus = 'OVERDUE';
// Reminder rules
let subject = '';
let body = '';
let to = pic;
if (diffDays === 3) {
subject = `[PM] Reminder H-3: ${assetId} - ${taskSet}`;
} else if (diffDays === 0) {
subject = `[PM] Due Today: ${assetId} - ${taskSet}`;
} else if (overdueDays >= escalationDays && supervisorEmail) {
subject = `[PM] OVERDUE ${overdueDays} hari: ${assetId} - ${taskSet}`;
to = `${pic},${supervisorEmail}`;
} else {
// Not in any rule
if (newStatus !== status) {
sheet.getRange(r + 2, iStat + 1).setValue(newStatus);
}
continue;
}
body = [
`Halo,`,
``,
`Work Order Preventive Maintenance perlu ditindaklanjuti:`,
`- Asset: ${assetId}`,
`- TaskSet: ${taskSet}`,
`- NextDue: ${dueDate.toDateString()}`,
``,
`Mohon update WO_Log setelah pekerjaan selesai (termasuk checklist K3 & bukti).`,
``,
`Terima kasih.`
].join('\n');
MailApp.sendEmail({ to, subject, body });
// Write back status & lastNotified
sheet.getRange(r + 2, iStat + 1).setValue(newStatus);
sheet.getRange(r + 2, iLast + 1).setValue(new Date());
}
}
Cara pasang trigger (time-driven)
- Buka Google Sheets → Extensions → Apps Script.
- Paste kode, simpan.
- Klik Triggers (ikon jam).
- Tambah trigger untuk
sendPMReminders. - Pilih Time-driven → harian → jam yang masuk akal (mis. sebelum shift mulai).
5. How-To: Implementasi dalam 1 Hari (Tanpa Mengganggu Operasi)
Bagian ini saya susun seperti runbook. Tujuannya: preventive maintenance forklift industri bisa mulai jalan tanpa nunggu “sistem sempurna”.
Step-by-step (runbook)
Step 1 — Buat Asset Register yang bisa diaudit
- Standarkan
AssetID. - Isi minimal: tipe, kapasitas, lokasi, jam operasi (kalau ada).
Step 2 — Definisikan TaskSet (paket pekerjaan)
Contoh TaskSet:
DAILY_CHECKWEEKLY_GREASEMONTHLY_SAFETY250H_SERVICE
Step 3 — Buat PM Plan untuk 2 minggu ke depan
- Jangan langsung 1 tahun.
- Mulai dari yang paling kritikal: safety + unit dengan utilisasi tinggi.
Step 4 — Jalankan pilot (1 area / 3–5 unit)
- 1 minggu pertama: fokus disiplin input WO + K3.
Step 5 — Pasang automasi reminder
- Notifikasi harus membantu, bukan mengganggu.
- Mulai dari email dulu; integrasi WA bisa belakangan.
Step 6 — Review mingguan: 30 menit, tapi rutin
- 3 angka yang dilihat: jumlah WO selesai, WO overdue, penyebab dominan.
Mini-dashboard yang “cukup”
| KPI | Cara hitung cepat | Tujuan |
|---|---|---|
| Completion Rate | DONE / total WO minggu ini | disiplin eksekusi |
| Overdue Aging | rata-rata hari overdue | kendalikan backlog |
| Top Findings | pivot temuan terbanyak | fokus akar masalah |
6. FAQ (Yang Sering Ditanya di Lapangan)
Apakah Google Sheets aman untuk data maintenance?
Bisa aman kalau aksesnya diatur (role-based), audit trail dijaga, dan file tidak dibagikan sembarangan. Untuk kebutuhan lebih ketat, Anda bisa migrasi setelah pola kerja stabil.
Kami sudah punya CMMS, tetap perlu ini?
Kalau CMMS Anda belum dipakai disiplin, template ini bisa jadi “jembatan adopsi”: memperbaiki kebiasaan input data sebelum masuk sistem yang lebih kompleks.
Bagaimana kalau PM berbasis jam operasi?
Mulai dengan time-based dulu, lalu tambahkan kolom HourMeter dan jadikan NextDue dihitung dari jam operasi. Kuncinya: konsisten membaca meter.
Apakah ini cocok untuk alat berat selain forklift?
Ya. Prinsipnya sama: asset register, plan, WO, K3 gating, reminder.
Di mana saya bisa minta bantuan implementasi di pabrik?
Kalau Anda butuh partner yang bisa bantu dari sisi operasional—mulai dari rental & maintenance forklift, engineering support, sampai pekerjaan M&E—lihat profil layanan kami di PT MSJ Group Indonesia – Plant 2 (KITB Batang).
Workflow yang Lebih Rapi, Downtime yang Lebih Terkendali
Sebagai penutup, saya pinjam quote yang sering dipakai di dunia reliability engineering: “Everything fails, all the time.” — Werner Vogels. Artinya (dalam bahasa Indonesia): “Segala sesuatu bisa gagal, setiap saat.” Werner Vogels adalah Chief Technology Officer Amazon yang banyak membentuk cara kita berpikir tentang sistem yang andal dan siap menghadapi kegagalan. Dalam konteks preventive maintenance forklift industri, pesan itu relevan: bukan soal “menghindari gagal selamanya”, tetapi mendesain kebiasaan yang membuat kegagalan lebih jarang, lebih cepat terdeteksi, dan lebih cepat ditangani.
Kalau Anda ingin memulai, ambil versi paling minimal: asset register + PM plan 2 minggu + WO log + reminder harian. Dari situ, Anda akan punya data untuk menaikkan level (usage-based, dashboard, integrasi sensor). Pada akhirnya, preventive maintenance forklift industri yang konsisten bukan cuma menurunkan downtime—tapi juga menaikkan budaya keselamatan dan kualitas kerja di lantai pabrik.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Article",
"headline": "Membangun Sistem Preventive Maintenance untuk Forklift & Alat Berat: Workflow, Checklist K3, dan Otomasi Notifikasi",
"inLanguage": "id-ID",
"about": [
"preventive maintenance",
"forklift",
"industrial maintenance",
"K3",
"Google Apps Script",
"Google Sheets"
],
"author": {
"@type": "Organization",
"name": "PT MSJ Group Indonesia - Plant 2",
"url": "https://www.mitrasetiagroup.com/"
},
"publisher": {
"@type": "Organization",
"name": "PT MSJ Group Indonesia - Plant 2",
"url": "https://www.mitrasetiagroup.com/"
},
"isAccessibleForFree": true
},
{
"@type": "HowTo",
"name": "Implementasi preventive maintenance forklift industri dengan Google Sheets + Apps Script",
"inLanguage": "id-ID",
"totalTime": "PT8H",
"supply": [
{"@type": "HowToSupply", "name": "Google Sheets"},
{"@type": "HowToSupply", "name": "Google Apps Script"}
],
"tool": [
{"@type": "HowToTool", "name": "Akun Google Workspace"}
],
"step": [
{
"@type": "HowToStep",
"name": "Buat Asset Register",
"text": "Buat sheet Assets berisi AssetID, tipe, lokasi, kapasitas, jam operasi, dan status. Standarkan AssetID agar mudah diaudit."
},
{
"@type": "HowToStep",
"name": "Definisikan TaskSet",
"text": "Susun paket pekerjaan (DAILY_CHECK, WEEKLY_GREASE, MONTHLY_SAFETY, 250H_SERVICE) agar teknisi tidak menulis ulang berulang-ulang."
},
{
"@type": "HowToStep",
"name": "Susun PM Plan",
"text": "Buat PM_Plan untuk 2 minggu ke depan: AssetID, TaskSet, PIC_Email, NextDue, Status, LastNotified."
},
{
"@type": "HowToStep",
"name": "Buat Work Order Log + K3 Gate",
"text": "Siapkan WO_Log dan K3_Checklist. Pastikan WO tidak dinyatakan selesai tanpa checklist K3."
},
{
"@type": "HowToStep",
"name": "Pasang Automasi Reminder",
"text": "Tambahkan Apps Script untuk memindai NextDue, kirim reminder H-3/H-0, dan escalation saat overdue. Pasang trigger harian."
},
{
"@type": "HowToStep",
"name": "Review Mingguan",
"text": "Review 30 menit tiap minggu: completion rate, overdue aging, dan temuan dominan untuk perbaikan berkelanjutan."
}
]
},
{
"@type": "FAQPage",
"inLanguage": "id-ID",
"mainEntity": [
{
"@type": "Question",
"name": "Apakah Google Sheets aman untuk data maintenance?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Relatif aman bila akses dibatasi sesuai peran, audit trail dijaga, dan file tidak dibagikan sembarangan. Setelah disiplin data terbentuk, sistem dapat dimigrasikan ke CMMS bila dibutuhkan."
}
},
{
"@type": "Question",
"name": "Apakah ini cocok untuk alat berat selain forklift?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Cocok. Prinsipnya sama: asset register, PM plan, work order log, checklist K3, dan reminder otomatis."
}
},
{
"@type": "Question",
"name": "Bagaimana jika interval PM berbasis jam operasi?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Mulai dengan time-based, lalu tambahkan pencatatan hour meter yang konsisten. Setelah data stabil, NextDue dapat dihitung dari jam operasi untuk akurasi lebih baik."
}
}
]
}
]
}
Top comments (0)