Analisis Daerah Tangkapan: Waktu Berkendara, Waktu Berjalan, Isokron

Pendahuluan

Dalam modul ini Anda akan belajar cara menghitung, memetakan, dan menganalisis daerah tangkapan (catchment area) berdasarkan waktu tempuh—baik waktu berkendara, waktu berjalan, maupun isokron berbasis jaringan jalan.

Analisis ini sangat penting untuk operasional perbankan karena membantu Anda:

  • Menentukan jangkauan efektif cabang atau ATM
  • Menilai aksesibilitas layanan dari berbagai titik permukiman
  • Mengidentifikasi gap coverage untuk penempatan cabang/ATM baru
  • Mengukur kompetisi spasial antar bank
  • Menyusun strategi rute sales/collection paling optimal

Prasyarat / Alat yang Dibutuhkan

  • Python + library: osmnx, networkx, geopandas, matplotlib, shapely
  • Titik lokasi cabang/ATM dalam format GeoDataFrame
  • Koneksi internet (untuk mengambil data jaringan jalan OSM menggunakan OSMnx)
  • Alternatif tools: QGIS (Service Area analysis), ArcGIS (Network Analyst)

Langkah-langkah Utama


1. Ambil dan Siapkan Data Jaringan Jalan dari OpenStreetMap

Anda memerlukan jaringan jalan yang lengkap untuk menghitung isokron dan waktu tempuh.

Instruksi Detail

  1. Tentukan area kota atau koordinat pusat.
  2. Gunakan OSMnx untuk mengunduh jaringan jalan: import osmnx as ox G = ox.graph_from_place("Jakarta, Indonesia", network_type="drive")
  3. Konversi ke GeoDataFrame jika perlu untuk visualisasi awal.

(Visual Hint: Peta jaringan jalan berwarna abu-abu dengan node dan edges)

Tip:
Gunakan network_type="drive_service" jika ingin area pelayanan yang lebih realistis untuk bank.


2. Tentukan Titik Cabang/ATM sebagai Titik Mulai

Anda akan menghitung isokron dari titik-titik layanan bank.

Instruksi Detail

  1. Impor data titik cabang/ATM.
  2. Pastikan CRS sama dengan graf jalan OSMnx (EPSG:4326).
  3. Temukan node terdekat: orig_node = ox.nearest_nodes(G, cabang_x, cabang_y)

(Visual Hint: Titik cabang/ATM ditampilkan sebagai ikon bulat merah di peta)

Peringatan:
Pastikan koordinat titik tidak jatuh di luar area jaringan yang Anda unduh.


3. Hitung Isokron Waktu Berkendara

Isokron = area yang dapat dicapai dalam waktu tertentu (misalnya 5, 10, 15 menit).

Instruksi Detail

  1. Tentukan kecepatan rata-rata (km/h) → misalnya 20 km/h untuk kota padat.
  2. Hitung isokron dengan BFS/Dijkstra: import networkx as nx meters_per_minute = (20*1000)/60 time_limit = 10 # menit subgraph = nx.ego_graph(G, orig_node, radius=time_limit*meters_per_minute, distance="length")
  3. Konversi edges subgraph menjadi poligon cembung (convex hull) atau alpha shape.

(Visual Hint: Area poligon berwarna biru muda yang mencakup jalan dalam radius waktu tertentu)

Strategi:
Gunakan multi-threshold (5–10–15 menit) untuk visualisasi nested catchment mirip cincin target.


4. Bangun Isokron Waktu Berjalan

Ideal untuk analisis jangkauan ATM di permukiman padat.

Instruksi Detail

  1. Unduh jaringan walk: G_walk = ox.graph_from_place("Jakarta, Indonesia", network_type="walk")
  2. Tentukan kecepatan berjalan (misal 5 km/h).
  3. Hitung radius waktu sama seperti langkah sebelumnya.
  4. Buat poligon isokron dan simpan sebagai GeoDataFrame.

(Visual Hint: Poligon isokron berwarna hijau muda di sekitar titik ATM)

Tip:
Isokron berjalan sangat efektif digunakan untuk perencanaan ATM di perumahan.


5. Hitung Daerah Tangkapan Berbasis Jaringan (Service Area)

Ini adalah inti analisis catchment area.

Instruksi Detail

  • Gunakan gabungan isokron:
    • 5 menit → zona inti
    • 10 menit → zona menengah
    • 15 menit → zona jangkauan maksimum
  • Intersect dengan:
    • wilayah kecamatan/kelurahan
    • distribusi penduduk
    • distribusi nasabah
    • kompetitor bank lain

(Visual Hint: Peta multi-layer dengan isokron + boundary wilayah + heatmap populasi)

Peringatan:
Jangan gunakan buffer lingkaran biasa (buffer Euclidean).
Itu tidak realistis dan tidak mencerminkan pola jalan sebenarnya.


6. Analisis Gap Coverage dan Potensi Ekspansi

Setelah mendapatkan isokron, Anda harus membaca hasilnya untuk membuat keputusan bank.

Instruksi Detail

  • Identifikasi area berpenduduk padat di luar jangkauan 10 menit → kandidat cabang baru.
  • Cari area kompetitor berada dalam jangkauan lebih dekat dari cabang Anda.
  • Hitung estimasi jumlah penduduk/nasabah dalam tiap isokron: gdf_join = gdf_population.overlay(isokron, how="intersection")

(Visual Hint: Tabel ringkas jumlah penduduk dalam zona 5,10,15 menit)

Strategi:
Gunakan threshold jangkauan berbeda untuk kota vs desa.
Desa = 15–20 menit, kota = 5–10 menit.


Ringkasan & Tugas

3 Poin Kunci

  1. Isokron berbasis jaringan jalan jauh lebih akurat daripada radius sederhana.
  2. Waktu berkendara vs waktu berjalan memberikan perspektif berbeda untuk strategi cabang vs ATM.
  3. Penggabungan isokron + data populasi + data kompetitor = keputusan ekspansi cabang yang sangat presisi.

Tugas Praktis

  1. Pilih 1 titik cabang dan 2 titik ATM.
  2. Hitung isokron 5–10–15 menit untuk:
    • berkendara
    • berjalan
  3. Intersect isokron dengan data populasi.
  4. Buat laporan:
    • Zona mana paling potensial untuk ekspansi?
    • Berapa banyak penduduk dalam jangkauan layanan?
    • Apakah ada gap coverage signifikan?