π’ Inaportnet Analytics β Platform Analisis Operasional & Deteksi Risiko Fraud Pelabuhan Indonesia 2025
Platform analitik data dan Early Warning System (EWS) terintegrasi untuk mengevaluasi kinerja operasional layanan kapal Persetujuan Kedatangan Kapal (PKK) pada 259 pelabuhan di seluruh Indonesia selama periode 2025.
Proyek ini menggabungkan evaluasi kepatuhan Service Level Agreement (SLA), klasifikasi efisiensi 4-kuadran, kontrol kualitas data (Data Quality Control), serta kerangka kerja deteksi anomali multi-lapis: Composite Fraud Risk Screening Index (CFRSI) guna mendukung tata kelola anti-fraud kemaritiman berbasis data.
Data dikumpulkan melalui web scraping otomatis dari portal resmi Kementerian Perhubungan Republik Indonesia: π Portal Monitoring Inaportnet Dephub
- Struktur Repositori
- Landasan Riset & Kerangka Kerja CFRSI
- Fitur Utama Dashboard (v3.0)
- Panduan Instalasi & Persiapan Lingkungan
- Panduan Penggunaan Dashboard (Langkah demi Langkah)
- Menjalankan Skrip Pipeline Riset (Standalone)
- Konfigurasi Database (Dual-Mode)
- Tech Stack & Dependensi
- Authors & Kontributor
inaportnetAnalytics/
β
βββ data/ # Data referensi master pelabuhan
β βββ port_code.xlsx # Pemetaan kode dan nama pelabuhan se-Indonesia
β
βββ scripts/ # Pipeline riset ilmiah (Standalone Scripts)
β βββ 00_data_collection.py # Script scraper mandiri
β βββ 01_data_preprocessing.py # Pembersihan data & ekstraksi durasi
β βββ 02_descriptive_stats.py # Analisis statistik deskriptif
β βββ 03_port_performance_calculation.py # Komputasi metrik performa & SLA
β βββ 04_quadrant_analysis.py # Klasifikasi 4-kuadran (Winsorized Min-Max)
β βββ 05_fraud_risk_analysis.py # Engine CFRSI (Rule, OLS Z-Score, Isolation Forest)
β βββ port_classification.py # Modul analisis klasifikasi pelabuhan
β βββ service_level.py # Modul kalkulasi kepatuhan SLA
β βββ service_performance.py # Modul agregasi performa operasional
β βββ traffic_analysis.py # Modul eksplorasi lalu lintas kapal
β βββ workload_capacity.py # Analisis beban kerja harian
β
βββ outputs/ # Visualisasi & chart hasil analisis statis (PNG)
β
βββ papers/ # Literatur akademik, publikasi, dan presentasi
β βββ Inaportnet-update.pdf # Paper CFRSI (Wijaya & Setyawan, 2026)
β βββ PPT - paper NAFC 2026 - Rifki Eka.pptx # Materi presentasi konferensi NAFC 2026
β βββ ... # Laporan pendukung dan studi terkait
β
βββ inaportnetDashboard/ # Aplikasi Web Dashboard Interaktif (Streamlit)
β βββ app.py # Halaman Beranda (Executive KPI, status DB, navigasi)
β βββ requirements.txt # Daftar pustaka dependensi Python
β βββ supabase_schema.sql # Skema tabel PostgreSQL Supabase Cloud
β β
β βββ .streamlit/
β β βββ config.toml # Konfigurasi tema & limit upload (500 MB)
β β βββ secrets.toml # Kredensial Supabase (opsional, bisa via UI)
β β
β βββ modules/ # Modul inti backend aplikasi
β β βββ database.py # Dual-mode storage (SQLite lokal & Supabase Cloud)
β β βββ scraper.py # Scraper anti-deteksi (2-stage: list + detail)
β β βββ preprocessing.py # Pipeline datetime parsing, durasi, & time features
β β βββ analysis.py # Engine analitik, CPI, Winsorized, dan CFRSI
β β βββ visualization.py # Builder grafik interaktif Plotly
β β βββ theme.py # Selector tema (Light / Dark mode)
β β
β βββ pages/ # Halaman antarmuka Streamlit
β β βββ 1_π_Data_Collection.py # Scraping, upload, QC data, scan folder data
β β βββ 2_ποΈ_Database_Viewer.py # (Arsip/Internal inspector database)
β β βββ 3_π¦_Traffic_Overview.py # Volume nasional, share, dan tren multi-dimensi
β β βββ 4_π_Service_Performance.py # Kepatuhan SLA, histogram respons, top bottleneck
β β βββ 5_πΊοΈ_Port_Classification.py # Matriks 4-kuadran, 4 sub-indeks CPI, pemeringkatan
β β βββ 6_π‘οΈ_Fraud_Risk_Screening.py # Model CFRSI, deteksi anomali 3 lapis, ekspor audit
β β
β βββ data/ # Penyimpanan data lokal dashboard
β βββ inaportnet_local.db # Basis data SQLite lokal (terintegrasi otomatis)
β βββ df_redflag_ml.parquet # Dataset teranotasi Red Flag & hasil komputasi ML
β βββ port_code.xlsx # Salinan referensi kode pelabuhan
β
βββ workflow.md # Dokumentasi teknis alur arsitektur data & Mermaid
βββ README.md # Dokumentasi utama proyek
Dashboard ini mengimplementasikan model riset yang telah dipublikasikan pada:
"Toward Data-Driven Anti-Fraud Governance: Anomaly Detection and Composite Fraud Risk Scoring for Port-Level Oversight in Digital Maritime Services" Rifki Wijaya & Eka C. Setyawan (2026)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β COMPOSITE FRAUD RISK SCREENING INDEX (CFRSI) β
βββββββββββββββββββββββββ¬ββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββ€
β 1. RULE-BASED β 2. STATISTICAL β 3. MACHINE LEARNING β
β SUB-INDEX β SUB-INDEX β SUB-INDEX β
βββββββββββββββββββββββββΌββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββ€
β β’ Quick Approval β β’ Regresi OLS Waktu vs β β’ Unsupervised β
β (< 10 detik) β Volume, GT, Hari, Jamβ Isolation Forest β
β β’ Long Duration β β’ Modified Z-Score β β’ 100 Trees, 256 Samples β
β (> 8 jam) β Residual (|Z| β₯ 3.5) β β’ 7% Contamination Target β
β β’ Low Oversight β β’ Deteksi persetujuan β β’ Deteksi anomali β
β (00.00 - 04.00) β abnormal ekstrem β multidimensi non-linear β
β β’ GT Manipulation β β β
β β’ Same Vessel < 2 jamβ β β
βββββββββββββββββββββββββ΄ββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββ
β
βΌ
Normalisasi Winsorized Min-Max [0.10, 1.00] & Equal Weighting
β
βΌ
5-Tier Ordinal Risk Classification: Sangat Rendah βββΊ Sangat Tinggi
β
βΌ
Implementasi 4 Pilar Strategi Anti-Fraud (OJK / Kemenhub)
- Quick Approval (< 10 detik): Berdasarkan PM 93/2013, petugas wajib memverifikasi kelaiklautan dan kelengkapan dokumen. Persetujuan dalam hitungan detik mengindikasikan risiko rubber-stamping tanpa pemeriksaan substantif.
- Long Duration (> 8 jam): Persetujuan yang melampaui jam kerja normal memicu risiko hambatan birokrasi sengaja atau potensi permintaan imbalan (rent-seeking).
- Low Oversight (00.00 β 04.00): Pengajuan dan persetujuan di dini hari dengan supervisi minim rentan digunakan untuk menghindari pemantauan berjenjang.
- GT Manipulation: Anomali deviasi tonase kotor (Gross Tonnage) kapal berisiko mengindikasikan upaya pengecilan ukuran kapal guna menurunkan tarif PNBP labuh/tambat.
- Same Vessel in 2 Ports (< 2 jam): Berdasarkan PP 61/2009, kapal fisik yang sama tercatat selesai diproses di dua pelabuhan berbeda dalam waktu kurang dari 2 jam tidak masuk akal secara operasional navigasi maritim.
- 2-Stage Web Scraping: Mengambil daftar transaksi PKK per pelabuhan/jenis angkutan, dilanjutkan penarikan rincian stempel waktu submission dan response.
- Anti-Deteksi: Rotasi User-Agent, jeda waktu acak (0.8β3.0 detik), mekanisme exponential backoff retry, serta persistensi sesi cookie.
- Kendali Scraping Interaktif: Tombol Jeda (Pause), Lanjut (Resume), dan Hentikan (Stop) lengkap dengan indikator waktu berjalan, estimasi ETA, dan penghitung galat.
- Penyimpanan Otomatis ke
./data/: Setiap file yang diunggah (CSV/Excel/Parquet) secara otomatis dicadangkan sebagai file fisik di folder./data/untuk keperluan jejak audit (audit trail). - Pemindai Berkas Lokal: Menampilkan inventaris file di folder
./data/lengkap dengan ukuran dan waktu modifikasi terakhir. - Data Quality Control (QC) Inspector:
- Deteksi transaksi galat (stempel waktu tidak valid atau durasi negatif).
- Deteksi data null pada kolom-kolom kritis (
submission,response,port_code,pkk_number,vessel_name). - Deteksi dan penyaringan nomor PKK duplikat.
- Tombol inspeksi tabel dan pengunduhan file CSV untuk data error, null, atau duplikat.
- KPI Nasional: Volume agregat PKK, jumlah pelabuhan aktif, rata-rata transaksi, bulan puncak (peak month), hari tersibuk, dan jam tersibuk.
- Volume Share: Visualisasi grafik donat persentase kontribusi muatan kapal antar pelabuhan.
- Tren Multi-Dimensi: Pola transaksi berbasis Kuartal (Q1βQ4), Bulan (JanβDes), Hari dalam seminggu, dan Jam harian (dengan penanda zona jam operasional 08.00β17.00).
- Filter Fleksibel: Pemilahan data per pelabuhan spesifik atau agregat nasional.
-
Kepatuhan SLA Dinamis: Slider ambang batas SLA interaktif (default:
$\le 30$ menit sesuai standar pelayanan kepelabuhanan). -
Distribusi Waktu Persetujuan: Histogram dan pie chart dalam 7 interval durasi (
<30 mnt,30-60 mnt,1-2 jam,2-6 jam,6-12 jam,12-24 jam,>24 jam). - Analisis Bottleneck: Identifikasi peringkat Top 10 pelabuhan dengan rata-rata waktu persetujuan terlama.
-
Matriks 4-Kuadran: Pemetaan kuadran berbasis Volume Pelayanan vs Waktu Persetujuan:
- Kuadran I (Benchmark / Prima): Volume tinggi, waktu pemrosesan sangat cepat.
- Kuadran II (Efisien / Potensial): Volume rendah/sedang, operasional sangat cepat.
- Kuadran III (Berkembang / Perlu Pembinaan): Volume rendah, durasi layanan lambat.
- Kuadran IV (Padat / Perhatian Khusus): Volume padat, durasi layanan lambat (congested).
-
Composite Performance Index (CPI): Agregasi 4 sub-indeks dengan normalisasi Winsorized Min-Max (
$P_5 - P_{95}$ ): Kepatuhan ($I_{\text{comp}}$ ), Efisiensi ($I_{\text{eff}}$ ), Konsistensi ($I_{\text{cons}}$ ), dan Ketahanan ($I_{\text{rob}}$ ).
- Tampilan Metrik Utama: Total PKK dievaluasi, % Red Flag, % Outlier Statistik, % Anomali ML, dan jumlah pelabuhan berkategori risiko tinggi.
- Top-N CFRSI Ranking: Visualisasi bar chart pelabuhan paling berisiko beserta perbandingan 3 sub-indeks penyusunnya.
- Filter Kategori Risiko: Penyaringan tabel interaktif berdasarkan 5 tingkat risiko (Sangat Rendah hingga Sangat Tinggi).
- Unduh Data Hasil Audit: Tombol langsung untuk mengekspor data transaksi outlier statistik dan anomali multidimensi Machine Learning ke format CSV.
- Simulasi / Demo Cepat: Tombol Generate Benchmark Dataset (257 Pelabuhan) untuk mencoba fitur analisis tanpa memerlukan data riil awal.
- Integrasi 4 Pilar Anti-Fraud: Pedoman tata kelola operasional (Pencegahan, Deteksi, Investigasi, Evaluasi) sesuai rekomendasi OJK 2024 / Ditjen Hubla.
- SQLite Lokal (Default): Otomatis diinisialisasi pada
./data/inaportnet_local.dbtanpa setup tambahan. - Supabase Cloud (PostgreSQL): Sinkronisasi data terpusat ke cloud dengan konfigurasi instan via GUI modal dashboard atau
secrets.toml. - Ekspor Format Lengkap: Dukungan unduh basis data ke CSV, Excel multi-sheet, JSON, dan SQL Dump.
- Sistem Operasi: Windows 10/11, macOS, atau Linux
- Python: Versi
3.10,3.11,3.12, atau yang lebih baru - Git: Untuk kloning repositori
Buka terminal (PowerShell, Command Prompt, atau Bash), lalu jalankan:
git clone https://github.com/ekacs/inaportnetAnalytics.git
cd inaportnetAnalyticsSangat disarankan menggunakan virtual environment agar dependensi proyek terisolasi:
python -m venv inaportnetDashboard\venv
.\inaportnetDashboard\venv\Scripts\Activate.ps1Tip
Jika muncul pesan execution policy error di PowerShell, jalankan perintah ini sekali:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserpython -m venv inaportnetDashboard\venv
inaportnetDashboard\venv\Scripts\activate.batpython3 -m venv inaportnetDashboard/venv
source inaportnetDashboard/venv/bin/activatePastikan virtual environment telah aktif, lalu pasang paket dependensi dari file requirements.txt:
cd inaportnetDashboard
pip install --upgrade pip
pip install -r requirements.txtNote
Dependensi utama yang dipasang mencakup: streamlit, pandas, plotly, requests, supabase, openpyxl, lxml, scipy, numpy, scikit-learn, statsmodels, dan python-dotenv.
Pastikan terminal berada di direktori inaportnetDashboard, lalu ketik:
python -m streamlit run app.pySetelah perintah dijalankan, browser Anda akan otomatis membuka alamat:
π http://localhost:8501
[ Beranda ] βββΊ Status Sistem & Ringkasan Eksekutif
β
βΌ
[ 1. Data Collection ] βββΊ Scraping Portal / Upload Data / Cek Kualitas Data (QC)
β
βββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββ
βΌ βΌ βΌ βΌ
[ 3. Traffic ] [ 4. Performance ] [ 5. Classification ] [ 6. Fraud Screening ]
Pola & Tren Volume Kepatuhan Ambang SLA Matriks 4 Kuadran & CPI Model CFRSI & EWS Audit
- Memeriksa status koneksi database (SQLite lokal aktif secara otomatis).
- Melihat ringkasan eksekutif capaian transaksi nasional.
- Menavigasi ke fitur-fitur analisis melalui menu sidebar atau kartu navigasi di halaman utama.
Anda dapat menyediakan data ke dalam sistem melalui salah satu dari cara berikut:
- Scraping Portal Inaportnet:
- Buka tab Scraping Data.
- Pilih kode pelabuhan, jenis angkutan (Dalam Negeri / Luar Negeri), serta rentang bulan.
- Klik Mulai Scraping. Anda dapat memanfaatkan tombol Jeda (Pause) atau Stop sewaktu-waktu.
- Unggah File Lokal:
- Buka tab Upload File.
- Unggah file berekstensi
.csv,.xlsx, atau.parquet. - File fisik akan langsung dicadangkan secara otomatis ke folder
./data/.
- Memuat dari Database:
- Buka tab Load dari Database untuk memuat transaksi yang tersimpan di SQLite atau Supabase.
- Inspeksi Kualitas Data (Data Quality QC):
- Gulir ke bawah pada halaman Data Collection untuk melihat ringkasan kualitas data: Error, Null, dan Duplikat.
- Klik tombol π¨ Lihat Transaksi Error, π« Lihat Transaksi Null, atau π Lihat Duplikat untuk meninjau baris data bermasalah dan mengunduhnya dalam format
.csv.
- Gunakan dropdown pelabuhan di bilah sisi kiri (sidebar) jika ingin memfokuskan analisis pada satu pelabuhan.
- Telaah kontribusi volume pelabuhan pada grafik donat persentase nasional.
- Pantau dinamika tren waktu pada grafik Kuartalan, Bulanan, Harian, dan 24 Jam harian.
- Sesuaikan slider Target SLA (menit) (misalnya 15 mnt, 30 mnt, atau 60 mnt) untuk melihat persentase kepatuhan secara real-time.
- Amati sebaran distribusi waktu layanan pada bagan histogram.
- Periksa daftar pelabuhan pada tabel Top 10 Pelabuhan Terlama sebagai bahan audit perbaikan alur pelayanan.
- Amati posisi kuadran operasional masing-masing pelabuhan pada grafik scatter interaktif.
- Pelajari rincian 4 sub-indeks performa: Kepatuhan, Efisiensi, Konsistensi, dan Ketahanan.
- Manfaatkan tabel pemeringkatan Composite Performance Index (CPI) untuk pembandingan kinerja antar pelabuhan se-Indonesia.
- Jika belum memuat data, klik tombol π² Generate Benchmark Dataset (257 Pelabuhan) untuk langsung menyimulasikan data nasional.
- Tab 1 (CFRSI): Periksa peringkat pelabuhan dengan risiko tertinggi dan tinjau penerapan 4 Pilar Anti-Fraud.
- Tab 2 (Rule-Based Red Flags): Telusuri porsi pelanggaran terhadap 5 kriteria regulasi (persetujuan kilat, durasi panjang, minim pengawasan, manipulasi GT, kapal ganda).
- Tab 3 (Statistical & ML Anomalies): Telaah hasil deteksi outlier regresi OLS (Z-score residual ekstrem) dan model Isolation Forest.
- Klik πΎ Download Transaksi Outlier Statistik atau πΎ Download Transaksi Anomali Multidimensi untuk mengunduh daftar transaksi berindikasi anomali sebagai berkas kerja audit kepatuhan.
Selain antarmuka web dashboard, repositori ini menyediakan skrip Python mandiri pada folder scripts/ untuk mereproduksi tahapan riset ilmiah:
# Kembali ke direktori akar proyek
cd d:\Documents\inaportnetAnalytics
# 1. Menjalankan preprocessing dan perhitungan waktu persetujuan
python scripts/01_data_preprocessing.py
# 2. Menjalankan analisis statistik deskriptif
python scripts/02_descriptive_stats.py
# 3. Menghitung indeks kinerja layanan & tingkat kepatuhan SLA
python scripts/03_port_performance_calculation.py
# 4. Melakukan normalisasi Winsorized dan analisis 4 kuadran
python scripts/04_quadrant_analysis.py
# 5. Menjalankan engine CFRSI lengkap (Rule, Stat Z-Score, & Isolation Forest)
python scripts/05_fraud_risk_analysis.pyHasil kalkulasi skrip akan disimpan dalam format grafik gambar pada folder outputs/.
Dashboard dikonfigurasi menggunakan SQLite lokal secara out-of-the-box. Berkas database tersimpan di:
inaportnetDashboard/data/inaportnet_local.db
Tidak diperlukan konfigurasi akun atau jaringan internet untuk menjalankan mode ini.
Jika Anda ingin menyinkronkan data antar anggota tim di cloud:
- Daftarkan proyek baru di Supabase.
- Buka menu SQL Editor pada dashboard Supabase Anda, lalu eksekusi isi berkas
inaportnetDashboard/supabase_schema.sql. - Hubungkan ke dashboard dengan salah satu opsi:
- Melalui Tampilan UI (Rekomendasi): Buka dashboard Streamlit, klik tombol Konfigurasi Supabase pada sidebar, masukkan URL dan Anon Key proyek Anda, lalu klik Hubungkan.
- Melalui Berkas Rahasia: Buat berkas
inaportnetDashboard/.streamlit/secrets.toml:SUPABASE_URL = "https://your-project-id.supabase.co" SUPABASE_KEY = "your-anon-api-key"
| Lapisan / Komponen | Teknologi | Deskripsi |
|---|---|---|
| Framework UI | Streamlit | Antarmuka interaktif berbasis Python |
| Visualisasi Data | Plotly Express & Graph Objects | Grafik interaktif (donut, line, bar, scatter matrix) |
| Pengolahan Data | Pandas & NumPy | Manipulasi matriks, pembersihan data, & agregasi |
| Machine Learning | Scikit-Learn | Deteksi anomali multidimensiIsolation Forest |
| Analisis Statistik | Statsmodels & SciPy | Regresi OLS, estimasi MAD, & Modified Z-Score |
| Penyimpanan Lokal | SQLite3 | Database lokal dengan dukungan indeksasi |
| Penyimpanan Cloud | Supabase (PostgreSQL) | Layanan cloud database terdistribusi |
| Web Scraping | Requests & LXML | Penarikan data portal Inaportnet anti-deteksi |
Dikembangkan dengan dedikasi tinggi untuk modernisasi analitik logistik kemaritiman dan transparansi pelabuhan Indonesia:
- Eka C. Setyawan β @ekacs
- Rifki Wijaya β @rifkiwijaya12
Jika platform atau publikasi riset ini bermanfaat bagi studi, pekerjaan, atau penelitian Anda:
- Berikan bintang (β) pada repositori ini di GitHub.
- Silakan ajukan Issue atau Pull Request untuk saran perbaikan dan penambahan fitur.
- Dukung penulis melalui tautan donasi / traktir kopi pada profil kontributor agar kami semakin semangat memperbarui dan mengembangkan inovasi analitik maritim Indonesia!