Membedah satu pertandingan: 3.975 kejadian dalam 90 menit
Yang dikerjakan
- Menyiapkan notebook di Google Colab dan memasang
statsbombpysertamplsoccer. - Mengambil daftar kompetisi dari StatsBomb Open Data, memfilter La Liga musim 2010/11, lalu mencari El Clásico.
- Memuat seluruh event data laga Barcelona 5-0 Real Madrid (29 November 2010).
- Membuat tabel tembakan dengan expected goals (xG) dan shot map kedua tim.
- Membuat jaringan operan (pass network) Barcelona dari 555 operan sukses sebelum pergantian pemain pertama.
- Membuat heatmap pressing kedua tim dan menghitung pressure per 90 menit per pemain.
- Web scraping yang beretika: cek robots.txt, ambil tabel klasemen dan infobox Wikipedia (pandas
read_htmldan BeautifulSoup), loop 4 musim dengan jeda dan cache. - Analisis selisih gol vs poin La Liga 2021–2025.
3.975event dalam satu laga
96kolom detail per event
1.094operan
335pressure (tekanan tanpa bola)
Yang saya pahami
- Satu baris = satu kejadian: siapa, menit dan detik ke berapa, di koordinat lapangan mana, berhasil atau tidak.
- Jumlah Ball Receipt (1.067) hampir sama dengan operan (1.094) karena receipt dicatat saat operan diterima rekan. Selisihnya kira-kira operan yang gagal atau dipotong.
- Data sepak bola modern punya tiga lapis:
- Event data: dicatat operator data dari video siaran memakai software khusus, versi ringkas live lalu versi lengkap setelah laga diperiksa ulang.
- Tracking data: kamera optik di stadion dan computer vision merekam posisi semua pemain dan bola berkali-kali per detik.
- Data fisik: rompi GPS saat latihan dan laga (jarak, sprint, akselerasi, detak jantung). Ini wilayah utama sport scientist untuk mengatur beban latihan dan mencegah cedera.
- Yang terbuka untuk umum hanya event data (dan sedikit tracking). Data GPS hampir selalu rahasia klub.
- xG (expected goals) memberi tiap tembakan nilai peluang jadi gol, 0 sampai 1, berdasarkan jarak, sudut, bagian tubuh dan situasi. Tebakan saya xG Madrid sekitar 1. Ternyata hanya 0,13 dari 5 tembakan, semuanya dari jauh. Barcelona 2,77 xG dari 14 tembakan, hampir semuanya dari dalam kotak penalti.
- Skor bisa dipengaruhi keberuntungan, xG tidak banyak. Selisih 2,77 vs 0,13 menunjukkan dominasi Barcelona memang nyata.

- Pass network: posisi lingkaran = rata-rata lokasi pemain saat mengoper, ukuran = jumlah operan, tebal garis = seberapa sering dua pemain saling oper.
- Xavi muncul di 7 dari 8 pasangan operan teratas (Busquets → Xavi 23 kali). Segitiga Busquets–Xavi–Iniesta menguasai tengah.
- Posisi rata-rata Messi sejajar Xavi, bukan di depan gawang: bukti peran false 9. Bek tengah Barca bermain tinggi, mendekati garis tengah.

- Peta pressing (sisi sport science): Madrid 240 pressure, Barcelona hanya 95. Tim yang kalah 5-0 justru lebih banyak menekan, karena Barcelona terus menguasai bola. Jumlah pressure harus dibaca bersama penguasaan bola.
- Madrid menekan terutama di tengah lapangan dan hanya 5% di sepertiga akhir (mid-block), sehingga bek Barcelona bebas membangun serangan.
- 240 pressure adalah beban fisik besar. Tiga gol Barcelona lahir mulai menit 55, saat lawan yang terus mengejar bola mulai lelah.

- Bug yang saya temukan: kode awal menghitung menit main dari event terakhir, sehingga pemain pengganti (Lassana Diarra, masuk menit 45) tercatat main 90 menit. Dengan menit yang benar, ±31 pressure dalam ±45 menit menjadikannya pemain paling intens. Pelajaran: selalu cek apakah angka masuk akal.
- Scraping: Wikipedia mengizinkan bot yang sopan. Understat melarang semua bot di robots.txt (
Disallow: /), FBref memblokir bot sepenuhnya. Jadi keduanya tidak saya scrape. - Selisih gol vs poin: korelasi r ≈ 0,97. Setiap +1 selisih gol ≈ +0,7 poin; selisih gol 0 ≈ 52 poin. Titik yang jauh dari garis lebih menarik: Villarreal 2021-22 sekitar 11 poin di bawah prediksi (musim itu mereka sampai semifinal Liga Champions).

Berikutnya
Hari 1 selesai. Berikutnya: memperbaiki perhitungan menit main, lalu menghitung PPDA (ukuran intensitas pressing yang memperhitungkan penguasaan bola).