01 / METODOLOGI · DARI SUMBER KE CERITA

Dari ribuan halaman berita, menjadi satu cerita kota.

Di balik sebuah grafik ada antrean crawler, HTML yang berantakan, data quality, label NLP, clustering semantik dan pembuktian statistik. Telusuri langkah nyata yang mengubah berita tak terstruktur menjadi cerita kota yang bisa diuji.

DATA FILM SAAT INI690.828artikel pada snapshot film
DATA FILM SAAT INI08isu kota yang dilacak
PIPELINE DATA08tahap pengolahan terstruktur
AKUISISI03jalur: RSS · crawling · indeks GDELT
01
ALUR PENGOLAHAN

Delapan tahap. Satu jejak bukti.

Klik tiap tahap untuk memahami proses, perangkat, dan hasilnya. Model AI digunakan untuk keputusan yang membutuhkan penilaian; parsing, deduplikasi, dan perhitungan tetap terstruktur.

TAHAP 01 / 08 · ALUR PEMROSESAN DATA

Akuisisi.

Menemukan dan membaca sumber

RSS dan sitemap menjadi jalur awal penemuan berita, disusul crawling kanal media. Indeks GDELT menjadi pelengkap untuk menemukan berita yang terlewat dan memeriksa cakupan. Fetch memakai pembatasan laju serta mengikuti robots.txt.

HASIL TAHAP INIArtikel mentah beserta URL dan metadata sumber
feedparser · httpx · Crawl4AI · Trafilatura
Crawling terjadwal, dengan antrean dan batas laju per domain
1 DARI 8 TAHAP
02
DI BALIK CRAWLER

Crawl bukan sekadar mengambil URL.

Setiap media memiliki feed, template, JavaScript, pembatasan akses, dan kegagalan yang berbeda. Empat lapisan di bawah menjelaskan dari mana URL ditemukan, bagaimana antrean dijaga, hingga HTML menjadi dokumen yang valid.

CRAWLER / MENEMUKAN URL BARU

Discovery.

RSS/sitemap dahulu, halaman kanal bila tidak tersedia, dan GDELT sebagai indeks pendukung. Cursor per sumber mencegah pemindaian ulang; URL dinormalisasi sebelum dimasukkan ke antrean.

APA YANG DILAKUKAN
  1. 01Periksa RSS, news sitemap dan sumber GDELT
  2. 02Buang parameter tracking dan tentukan URL kanonik
  3. 03Cek duplikasi URL sebelum membuat job
TITIK GAGAL YANG DITANGANI

Feed terlambat, link rusak, atau artikel terdeteksi di banyak sumber.

OUTPUT / KONTRAKsource_id, canonical_url, discovered_at, discovery_method
KOMPONENfeedparser · sitemap · GDELT
01 / ETIKA SUMBER

Jangan menerobos situs.

Hormati robots.txt, paywall, dan ketentuan media. Pembatasan laju per domain, User-Agent jujur, dan backoff bukan optimasi opsional.

02 / DATA QUALITY

Kesalahan tidak dibuang diam-diam.

Skema, timestamp, artikel kosong, dan URL duplikat diuji. Batch bermasalah ditandai atau dikarantina agar angka akhirnya tidak terlihat lengkap secara palsu.

03 / PROVENANCE

Semua punya asal.

Domain, canonical URL, waktu terbit/crawl, metode pengambilan, dan versi ekstraktor melekat pada record sebelum pemrosesan lanjutan.

03
UNSTRUCTURED → STRUCTURED

HTML tidak punya kolom topik, sentimen, atau aktor.

Teks bebas harus dibersihkan, diseragamkan, lalu diperkaya menggunakan NLP. Satu berita dapat memuat beberapa isu, menyebut banyak pihak, dan memiliki sentimen berbeda terhadap pihak yang dikutip.

CONTOH FIKTIF / BUKAN ARTIKEL ATAU OUTPUT MODEL NYATA

Dari teks bebas ke field yang dapat dicari.

Ikuti satu contoh artikel melewati ekstraksi, pelabelan NLP dan pembentukan dokumen Elasticsearch.

● ● ● ARTICLE / HTML MENTAH
<nav>Berita | Kanal | Iklan</nav>
<article>
  <h1>Genangan terjadi di Jakarta</h1>
  <p>Hujan menyebabkan genangan di ruas jalan.</p>
  <p>Pemprov DKI menyiapkan pompa.</p>
</article>
<aside>Berita lainnya ...</aside>
APA YANG BERUBAH?

Tag HTML, menu, iklan dan rekomendasi bukan bagian isi artikel.

Sentimen adalah inferensi model, bukan fakta yang langsung tersimpan di HTML. Evaluasi terhadap data berlabel manusia tetap diperlukan.
ISU / MULTI-LABEL

Satu artikel, beberapa isu.

Berita tentang genangan yang membahas pompa Pemprov bisa menyentuh banjir dan pemerintahan. Label bukan pilihan tunggal; setiap label menyimpan confidence dan versi model.

SENTIMEN / KONTEKS

Negatif untuk siapa?

Sentimen artikel berbeda dari sikap terhadap pihak tertentu. Keluhan warga dan tanggapan pejabat bisa berada dalam satu berita; konteks kutipan tidak boleh dicampur.

GEO / ENTITAS

“Jakarta” belum tentu relevan.

Dateline di awal artikel bisa menyesatkan. Gazetteer kota, kecamatan, kelurahan, serta lokasi di judul dan paragraf awal dipakai untuk menilai relevansi wilayah.

Contoh transformasi di atas dibuat untuk menerangkan struktur data, bukan artikel sungguhan ataupun hasil benchmark model. Ambang, akurasi, dan statistik yang benar harus diperoleh dari evaluasi pipeline dan sumber aslinya.
04
DUPLIKASI & STORY CLUSTERING

Mirip isinya, belum tentu berita yang sama.

Menghitung jumlah artikel tidak cukup: satu peristiwa bisa disalin puluhan media, sementara berita dengan kata-kata mirip bisa membahas kejadian berbeda. Karena itu deduplikasi dan pembentukan cerita dilakukan bertingkat.

ILUSTRASI KONSEPTUAL / BUKAN HASIL SKOR MODEL

Mirip judul belum tentu peristiwa yang sama.

Bedakan salinan persis, near-duplicate, dan clustering peristiwa. Klik kasus untuk melihat keputusan dan batasannya.

ARTIKEL A

Genangan terjadi di Jakarta

≈
ARTIKEL B

Genangan terjadi di Jakarta

SHA-256 + URL kanonik

Duplikat persis dapat digabung tanpa perlu membayar model semantik. Parameter pelacak URL tidak membentuk berita baru.

Cek hash teks/URL; tidak mengasumsikan semua artikel berjudul sama memiliki isi sama.
LEVEL 01 / EXACT

Hash & canonical URL

Gabungkan artikel identik dan hilangkan parameter pelacak. Ini mencegah satu konten dihitung berulang karena bentuk URL berbeda.

LEVEL 02 / NEAR-DUP

MinHash + LSH

Shingle lima kata dan estimasi Jaccard membantu mencari salinan dengan perubahan kecil tanpa membandingkan semua pasangan artikel satu per satu.

LEVEL 03 / EVENT

Embedding + konteks

multilingual-e5-base memodelkan makna. Cosine similarity, lokasi, waktu, dan sumber dipakai untuk mengelompokkan artikel berbeda dalam satu peristiwa.

05
KLASIFIKASI BERTINGKAT

Dari label ke keputusan yang dapat dipertanggungjawabkan.

GLiNER2 memeriksa topik multi-label, sentimen, relevansi wilayah, dan entitas; confidence rendah, label ambigu, atau cerita dengan dampak besar diteruskan ke LLM dengan skema dan alasan terstruktur. Hasil tetap membutuhkan evaluasi kualitas.

TAHAP 1 · LOKAL

GLiNER2

Isu · relevansi wilayah · sentimen · entitas

Model utama untuk sebagian besar artikel
JIKA RAGU→
TAHAP 2 · ESKALASI

LLM

Penilaian ulang dengan keluaran terstruktur dan alasan singkat

Pydantic · audit trail
KAPAN ESKALASI?
  • 01Skor topik tertinggi di bawah 0,60
  • 02Selisih dua skor teratas di bawah 0,15
  • 03Relevansi wilayah masih ragu
  • 04Cerita besar diliput ≥10 media
KONTROL KUALITAS MODEL

Bukan cuma akurat. Harus terukur.

Perubahan model, prompt, dan ambang dievaluasi terhadap set emas. Angka di samping adalah kriteria pemeriksaan kualitas, bukan klaim skor F1 atau akurasi aktual.

1.000artikel dalam acuan set emas
κ ≥ 0,7kesepakatan pelabel awal
≤ 2 ptbatas penurunan F1 cascade saat perubahan
06
STATISTIK YANG DAPAT DIPERIKSA

Dari “ramai” menjadi sesuatu yang bisa diukur.

Setelah artikel terstruktur, baru statistik dihitung: porsi mingguan, baseline historis, media berbeda per peristiwa, hubungan antarisu, ketidakpastian sampel kecil, hingga rentang bootstrap yang mempertimbangkan korelasi antarminggu.

01 / 07

Porsi, bukan jumlah

Isunya benar naik, atau jumlah berita saja yang berubah?

Artikel isu ÷ seluruh artikel relevan per minggu.

Mengurangi bias saat jumlah sumber berita berubah.

02 / 07

Deteksi lonjakan

Kapan sebuah isu tiba-tiba menjadi perhatian?

Porsi minggu ini ÷ median 8 minggu sebelumnya.

Butuh ≥30 artikel isu dan ≥4 minggu pembanding.

03 / 07

Cerita dominan

Peristiwa mana paling banyak diliput media?

Kelompok cerita dengan jumlah media berbeda terbanyak.

Pemilihan cerita dan judul tetap dapat dilacak ke artikel.

04 / 07

Ingatan media

Seberapa cepat sorotan pada krisis mereda?

Half-life: waktu sampai kelebihan porsi turun separuh.

Puncak peristiwa disejajarkan sebelum dibandingkan.

05 / 07

Lift ko-kemunculan

Apakah dua isu saling berkaitan dalam pemberitaan?

P(A dan B) ÷ [P(A) × P(B)].

Lift >1 berarti lebih sering muncul bersama daripada ekspektasi acak.

06 / 07

Block bootstrap

Apakah pergeseran tren cukup meyakinkan?

Resampling blok 4 minggu, 4.000 kali; interval 95%.

Menghormati keterkaitan antarminggu yang berdekatan.

07 / 07

Interval Wilson

Bagaimana membaca sampel media asing yang kecil?

Interval proporsi 95% disandingkan dengan estimasi.

Mencegah satu angka tunggal terlihat terlalu pasti.

07
BATASAN & TRANSPARANSI

Apa yang data ini katakan—dan apa yang tidak.

Insight yang baik harus mencantumkan sumber, metode pembilang/penyebut, data hilang, versi klasifikasi, ketidakpastian statistik dan rujukan artikel. Tanpa ini, grafik terlihat presisi tetapi berisiko menyesatkan.

Pola pemberitaan ≠ kondisi kota

Berita banjir yang meningkat bukan bukti langsung bahwa besarnya banjir meningkat dengan ukuran yang sama.

Data yang hilang tetap terlihat

Dua minggu pada Juni 2025 tidak memiliki data dalam snapshot film. Kekosongan ditandai sebagai data tidak tersedia, bukan nol.

Klasifikasi dapat keliru

Model harus dievaluasi terhadap contoh berlabel manusia; hasil, versi model, dan kasus ragu dilaporkan terbuka.

Teks sumber memiliki pemilik

Paywall tidak ditembus. Konten penuh dipakai secara internal sesuai hak dan ketentuan sumber; yang ditampilkan publik dibatasi.

SUMBER & RUANG LINGKUP

Jakarta News Intelligence menggabungkan RSS, sitemap, dan crawling media untuk mengambil berita. The GDELT Project ↗ mendukung penemuan dan pengecekan cakupan berita sebagai indeks pelengkap. Film Jakarta, 730 Hari menayangkan snapshot data statis dari hasil pengolahan berita yang telah disiapkan dan diekspor ke story.json. Tidak ada proses crawling atau analisis ulang ketika pengunjung membuka halaman.