danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang...

34
TUGAS BESAR PENGANTAR BIG DATA Dosen Pengampu : Drs. Danardono, M.P.H, P.hD. Vemmie Nastiti Lestari, M.Sc. Disusun Oleh: Eugenia Sekar R 14/366184/PA/16224 Imron Amirulloh 13/346930/PA/15154 Muhammad Suryo S 14/368723/PA/16308 Zaky Nur K 14/364248/PA/15966 PROGRAM STUDI STATISTIKA DEPARTEMEN MATEMATIKA

Transcript of danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang...

Page 1: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

TUGAS BESAR

PENGANTAR BIG DATA

Dosen Pengampu :

Drs. Danardono, M.P.H, P.hD.

Vemmie Nastiti Lestari, M.Sc.

Disusun Oleh:

Eugenia Sekar R 14/366184/PA/16224

Imron Amirulloh 13/346930/PA/15154

Muhammad Suryo S 14/368723/PA/16308

Zaky Nur K 14/364248/PA/15966

PROGRAM STUDI STATISTIKA

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS GADJAH MADA

YOGYAKARTA

2017

Page 2: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

BAB I

PENDAHULUAN

1.1. Latar Belakang

Pada era ini, big data atau data science bukan merupakan istilah yang asing bagi

banyak orang. Berbagai analisis sudah menggunakan analisis big data, karena cepatnya

terhimpun data-data dari berbagai aspek. Sudah banyak bidang kehidupan menggunakan

analisis big data untuk menghasilkan kesimpulan atau pengambilan keputusan yang lebih

akurat. Salah satunya dalam bidang sepakbola.

Bidang sepakbola juga merupakan salah satu sumber big data karena era sekarang

pengambilan data dalam bidang sepakbola sudah menjadi hal yang wajar. Banyak sekali data

yang dapat diperoleh dari sepakbola, contohnya data statistik dari suatu pertandingan

sepakbola. Jumlah pertandingan dalam satu musim untuk satu liga saja sudah banyak, apalagi

jika dikumpulkan untuk beberapa liga dan dalam beberapa musim, itu sudah bisa

menghasilkan big data. Contoh lain selain data pertandingan yaitu data statistik pemain, data

statistik secara tim/klub, dan lain-lain.

Zaman ini, ilmu statistika juga dapat digunakan dalam bidang persepekbolaan.

Misalkan seorang talent scout ketika ingin merekomendasikan seorang pemain kepada

pelatih, dia bisa menggunakan data performa dari pemain yang ingin direkomendasikan. Dia

bisa menjelaskan kepada klub bola tersebut mengapa klub bola itu layak mengeluarkan jutaan

euro untuk pemain tersebut. Atau misalnya seorang pelatih ingin menyusun starting line-up

untuk sebuah laga. Pelatih klub tersebut bisa melihat data dari tim lawan. Dia bisa mengambil

keputusan siapa saja yang dapat menjadi pemain starting line-up, yang mungkin bisa

mengeksploitasi kelemahan tim lawan. Atau kapan saat yang tepat seorang pemain bisa

menyerang tim lawan.

Analisis big data juga bisa dilakukan untuk membantu memutuskan kapan klub

tersebut menjual seorang pemain. Apakah klub tersebut masih bisa mempertahankan pemain

tersebut, atau lebih baik menjual pada musim transfer terdekat untuk mendapat nilai jual yang

tinggi. Selain untuk membuat keputusan penting dalam klub tersebut, analisis big data juga

bisa dilakukan untuk media olahraga untuk memprediksikan performa sebuah tim. Atau

perusahaan judi bola untuk mengetahui siapa yang akan memenangkan sebuah laga dengan

memperhatikan statistika pertandingan.

Page 3: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

Pada laporan ini akan dilakukan pengolahan big data untuk data sepakbola liga Eropa.

Fokus tema dalam analisis ini yaitu tentang transfer pemain sepakbola. Analisis akan

dilakukan menggunakan visualisasi beserta dengan interpretasinya.

1.2. Tujuan

Tujuan dalam pengambilan topik ini antara lain:

Mengolah data sepakbola menjadi informasi yang berguna untuk pengambilan

sebuah keputusan

Membuat visualisasi informasi

1.3. Manfaat

Mengetahui transfer yang terjadi dalam sepakbola Liga Eropa

Mengetahui banyaknya transfer suatu klub sepak bola dalam visual yang lebih

mudah dipahami

Page 4: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

BAB II

PEMBAHASAN

2.1. Deskripsi Data

Data yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di

Eropa yang dikumpulkan dari tahun 2008 sampai tahun 2016. Lebih dari 25000 pertandingan

diambil datanya, dan juga lebih dari 10000 pemain sepak bola dengan data statistiknya.

Sumber asli data ini dikumpulkan dari beberapa sumber, yaitu :

http://football-data.mx-api.enetscores.com/

http://www.football-data.co.uk/

http://sofifa.com/.

Basis data ini terdiri dari 8 tabel, yaitu :

sqlite_sequence : tabel yang berisi nama dan id dari tabel utama

Player_Attributes : tabel statistik kemampuan dari pemain bola

Player : tabel nama pemain bola dan biodatanya

Match : tabel data statistik dari hasil suatu pertandingan

League : tabel nama liga dan beserta id

Country : tabel nama negara dari liga yang ada dalam database ini

Team : tabel nama tim atau klub sepakbola yang ada dalam database

Team_Attributes : tabel statistik kemampuan secara tim atau klub sepakbola

2.2. Analisis Data

Analisis data dari data sepakbola ini akan ditampilkan dalam visualisasi diagram dan

tabel beserta interpretasinya. Visualisasi yang akan dilakukan ada tiga macam, yaitu :

Diagram chord transfer pemain

Tabel jumah tranfer pemain

Diagram tentang perpindahan pemain dari suatu klub atau tim.

2.2.1. Diagram chord transfer pemain

Chord diagram merupakan diagram yang dapat digunakan untuk visualisasi tentang

data yang berhubungan dengan perpindahan, dan akan digunakan untuk visualisasi jumlah

transfer pemain sepakbola per liga. Berikut visualisasi dari chord diagram yang didapat :

Page 5: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

Interpretasi :

Diagram di atas merupakan diagram chord dari jumlah transfer pemain per liga dari

tahun 2008 sampai 2016. Diagram tersebut menampilkan jumlah transfer dari 11 liga di

benua Eropa, dan juga menampilkan jumlah transfer antar liga yang berbeda. Misalnya kita

lihat di diagram untuk Spain LIGA BBVA ke Portugal Liga ZON Sagres. Kita cari dari

tempat Spain LIGA BBVA yang berwarna hijau, kita cari garis hijau yang menuju ke tempat

Portugal Liga ZON Sagres yang berwarna ungu. Maka terlihat bahwa garis hijau berlabuh ke

skala pengukuran di tempat Portugal Liga ZON Sagres dengan dua titik. Selisih nilai diantara

dua titik tersebut merupakan jumlah transfer yang terjadi dari Spain LIGA BBVA ke Portugal

Liga ZON Sagres. Begitu juga dengan transfer liga yang lain, sehingga dihasilkan diagram

chord seperti di atas.

Page 6: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

2.2.2. Banyak transfer dalam liga dan antar liga

Bertujuan untuk mengetahui banyaknya transaksi pembelian maupun penjualan

pemain antar klub sesama anggota liga atau antara liga yang berbeda sejak tahun 2008.

Definisi pembelian, penjualan, atau peminjaman disini adalah menandakan bahwa pemain

tersebut sudah tidak lagi bermain untuk klub yang dibela sebelumnya.

Disini akan dibahas untuk dua kondisi yang berbeda, pertama yaitu banyaknya

aktivitas transfer pemain antar klub pada sesama liga maupun liga yang berbeda.

1. Banyak Transfer Pemain Sejak Tahun 2008 - 2016 (Anggota Klub Sesama Liga atau

Liga yang Berbeda)

Dari gambar diatas dapat diketahui bahwa total kegiatan transfer pemain (masuk dan

keluar) dari satu klub ke klub lain dalam liga yang sama maupun liga yang berbeda pada

Serie A Italia musim 2008 hingga 2016 adalah sebesar 1155 transfer pemain, begitu juga

untuk lainnya. Total kegiatan transfer antar klub sesama anggota liga atau antara liga yang

berbeda sejak tahun 2008 - 2016 tertinggi adalah Serie A Italia sebesar 1155, sedangkan

terendah adalah liga Scotland Premier League sebesar 378.

Page 7: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

2. Banyak Transfer Pemain Sejak Tahun 2008 – 2016 untuk Anggota Klub Sesama Liga

Dari gambar diatas dapat diketahui bahwa total kegiatan transfer pemain (masuk dan

keluar) pada liga yang sama pada Serie A Italia musim 2008 – 2016 adalah sebesar 856

transfer pemain, begitu juga untuk lainnya. Total kegiatan transfer antar klub sesama anggota

liga sejak musim 2008 hingga 2016 tertinggi adalah Serie A Italia sebesar 856 transfer,

sedangkan terendah adalah liga Scotland Premier League sebesar 277 transfer.

Perbedaan dari kedua tabel diatas terlihat bahwa Liga ZON Sagres Portugal lebih

banyak melakukan transfer pemain pada klub yang masih satu liga sebesar 570 transfer dari

total transfer 836, dibandingkan dengan Liga BBVA Spanyol sebesar 534 transfer dari total

transfer 923 dan Ligue 1 Perancis sebesar 495 transfer dari total transfer 836.

2.2.3. Diagram perpindahan pemain suatu klub

Pada diagram ini akan divisualisasi perpindahan pemain dari suatu klub. Dari diagram

ini dapat kita lihat pemain mana yang sudah berpindah dari klub tersebut dan berpindah

kemana saja, dan juga bisa melihat pemain mana yang masih bertahan. Output dari diagram

perpindahan pemian yang didapat sebagai berikut :

Page 8: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

Interpretasi :

Dari grafik di atas kita mengambil contoh untuk klub Manchester United dari tahun

2012 sampai 2016. Untuk gambar orang menunjukan pemain, nama di dekat gambar orang

tersebut menunjukan nama pemain tersebut dan gambar bola menunjukan klub, nama di

dekat gambar bola adalah nama klub. Gambar bola yang ada di tengah adalah gambar bola

yang merepresentasikan klub Manchester United, apabila ada pemain yang memiliki anak

panah selain ke arah gambar bola Manchester United maka pemain tersebut dikatakan

melakukan transfer pemain dari klub Manchester United setelah tahun 2012.

Kemudian penjelasanya seperti yang sudah dijelaskan sebelumnya gambar pemain

ada yang mengarah ke arah gambar bola dengan nama selain Manchester United maka

pemain tersebut pindah ke klub tersebut. Misal untuk pemain bernama Patricia Evra,

memiliki tanda anak panah ke arah gambar bola dengan nama klub Juventus maka Patricia

Page 9: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

Evra bermain di Juventus setelah dari klub Manchester United pada tahun setelah tahun 2012.

Hal ini bisa dipastikan dari berita bahwa tepatnya dia berpindah bermain di Juventus pada

tahun 2014. Kemudian untuk pemain yang memiliki tanda anak panah ke arah bola lebih dari

1, maka pemain tersebut bermain di lebih dari 1 club lain setelah tranfer dari klub Manchester

United pada tahun setelah tahun 2012. Misal untuk pemain bernama Anderson, dia memiliki

tanda anak panah ke arah gambar bola bernama Fiorentina dan Eintracht Frankfurt. Maka

Anderson bermain di klub Fiorentina dan Eintracht Frankfurt setelah transfer dari Manchester

United pada tahun setelah tahun 2017. Kemudian untuk nama pemain yang tidak memiliki

tanda anak panah ke arah gambar bola selain gambar bola Manchester United maka bisa

dikatakan bahwa pemain tersebut tidak berpindah dari club MU setelah tahun 2012 sampai

sekarang.

Page 10: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

BAB III

KESIMPULAN

Kesimpulan yang didapat dari analisis yang sudah dilakukan adalah :

1. Bidang sepakbola sudah menjadi sumber big data pada era ini, pengolahan big

data dengan metode statitika sudah sangat dibutuhkan dalam era ini.

2. Analisis big data untuk data sepakbola Eropa dalam laporan ini fokus pada tema

tentang transfer pemain.

3. Analisis dilakukan dengan visualisasi, yaitu dengan diagram chord, tabel dan

diagram perpindahan pemain suatu klub.

4. Diagram chord dapat digunakan untuk memvisualisasi jumlah perpindahan

pemain dari 11 liga Eropa sekaligus.

5. Diagram perpindahan pemain suatu klub dapat memvisualisasikan sudah bermain

dimana saja pemain suatu klub sepakbola dalam rentang yang diinginkan. Kita

dapat melihat pemain mana yang masih bertahan dan juga pemain mana yang

sudah berpindah.

6. Hasil analisis didapatkan liga dengan transfer terbanyak dari tahun 2008 sampai

2016 yaitu Italy Serie A, baik transfer lokal maupun transfer keluar antar liga yang

lain.

Page 11: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

DAFTAR PUSTAKA

• https://www.kaggle.com/hugomathien/soccer

• https://www.kaggle.com/nappon/the-fans-stay-loyal-the-players-move-on

• https://www.visualcinnamon.com/2014/12/using-data-storytelling-with-chord.html

Page 12: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

LAMPIRAN

Penampakan data sepakbola 11 liga Eropa tahun 2008-2016

Page 13: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

Tabel sqlite_sequence

Tabel country

Page 14: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

Tabel league

Tabel team

Page 15: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

Tabel team_attributes

Tabel player

Page 16: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

Tabel player_attributes

Tabel match

Page 17: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

Syntax program analisis data sepakbola liga Eropa

#transfer

library(dplyr)

library(purrr)

library(tidyr)

library(ggplot2)

library(broom)

library(magrittr)

library(plotly)

library(RSQLite)

library(reshape2)

library(visNetwork)

library(networkD3)

library(jsonlite)

library(RColorBrewer)

library(gplots)

Page 18: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

library(knitr)

library(DT)

library(data.table)

library(d3heatmap)

library(viridis)

library(maps)

library(ggmap)

library(circlize)

rm(list = ls())

rsplit <- function(x) {

x <- x[!is.na(x[,1]),,drop=FALSE]

if(nrow(x)==0) return(NULL)

if(ncol(x)==1) return(lapply(x[,1], function(v) list(name=v)))

s <- split(x[,-1, drop=FALSE], x[,1])

unname(mapply(function(v,n) {if(!is.null(v)) list(name=n, children=v) else

list(name=n)}, lapply(s, rsplit), names(s), SIMPLIFY=FALSE))

}

# Connect to data base ----------------------------------------------------

con <- dbConnect(SQLite(), dbname="database.sqlite")

player <- tbl_df(dbGetQuery(con,"SELECT * FROM player"))

# player_stats <- tbl_df(dbGetQuery(con,"SELECT * FROM player_stats"))

Match <- tbl_df(dbGetQuery(con,"SELECT * FROM Match"))

Team <- tbl_df(dbGetQuery(con,"SELECT * FROM Team"))

Country <- tbl_df(dbGetQuery(con,"SELECT * FROM Country"))

League <- tbl_df(dbGetQuery(con,"SELECT * FROM League"))

# select columns

player <- select(player,player_api_id, player_name) # use player_api_id as key

for join

Page 19: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

Team <- select(Team, team_api_id, team_long_name, team_short_name) # use

team_api_id as key for join

Country <-select(Country, id, name) %>% rename(country_id = id) %>%

rename(country_name = name) # use country_id as key for join

League <- select(League, country_id, name) %>% rename(league_name = name)

# use country_id as key for join

Match <-select(Match, id, country_id, league_id, season, stage, date,

match_api_id, home_team_api_id, away_team_api_id, home_team_goal,

away_team_goal, home_player_1, home_player_2, home_player_3,

home_player_4, home_player_5, home_player_6, home_player_7,

home_player_8, home_player_9, home_player_10, home_player_11,

away_player_1, away_player_2, away_player_3, away_player_4, away_player_5,

away_player_6, away_player_7, away_player_8, away_player_9,

away_player_10, away_player_11, goal, shoton, shotoff, foulcommit, card, cross,

corner, possession)

### Data structure

# names(player)

# names(Team)

# names(Country)

# names(League)

# names(Match)

# built league table in format data.table because the composite key was easier to

create with data.table keycols = c("season", "league_id", "home_team_api_id" )

PointsDf <-Match %>%

select(1:11) %>%

mutate(homePoint = if_else((home_team_goal >

away_team_goal),3,if_else((home_team_goal == away_team_goal),1,0))) %>%

mutate(awayPoint = if_else((home_team_goal >

away_team_goal),0,if_else((home_team_goal == away_team_goal),1,3)))

tableHomeDt <- PointsDf %>%

group_by(season, league_id, home_team_api_id) %>%

Page 20: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

summarise(pointsHome = sum(homePoint)) %>%

ungroup() %>% data.table

keycols = c("season", "league_id", "home_team_api_id" )

setkeyv(tableHomeDt,keycols)

tableAwayDt <- PointsDf %>%

group_by(season, league_id, away_team_api_id) %>%

summarise(pointsAway = sum(awayPoint)) %>%

ungroup() %>% data.table

keycols = c("season", "league_id", "away_team_api_id" )

setkeyv(tableAwayDt,keycols)

tableHomeAwayDt <- tableHomeDt[tableAwayDt, nomatch=0] %>%

mutate(points = pointsHome + pointsAway) %>%

group_by(season, league_id) %>%

mutate(rank = min_rank(desc(points)))

tableLong <- tableHomeAwayDt %>%

left_join(League, by = c("league_id" = "country_id")) %>%

left_join(Team, by = c("home_team_api_id" = "team_api_id")) %>%

ungroup() %>%

select(season, league_name, rank, team_long_name, points)

# melt match data to generate df with player names in one column ----------

matchMelt <-melt(Match,id = c(1:11), measure=c(12:33),na.rm = TRUE,

value.name = "player_api_id") %>%

mutate(team_api_id=ifelse(grepl("home",variable),home_team_api_id,

ifelse(grepl("away",variable),away_team_api_id,NA))) %>% #

create team_api_id column based on variable info

left_join(Team, by = "team_api_id") %>%

left_join(player, by = "player_api_id") %>% # add club to each player

left_join(Country, by = "country_id") %>% # add club to each player

Page 21: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

left_join(League, by = "country_id") %>% # add club to each player

separate(season, into=c("saisonStart","saisonEnd"),sep = "/", convert = TRUE)

# split saison so it integer

TransferDf <-matchMelt %>%

select(player_name, team_long_name, team_short_name, saisonStart, saisonEnd,

country_name, league_name) %>%

group_by(player_name,team_long_name) %>%

arrange(saisonStart) %>%

summarise(Player = first(player_name), ClubFirst = min(saisonStart),ClubLast =

max(saisonEnd), Country = first(country_name), League = first(league_name))

%>%

arrange(ClubFirst) %>%

mutate(FormerClub = lag(team_long_name)) %>%

mutate(CurrentClub = team_long_name) %>%

mutate(FormerLeague = lag(League)) %>%

mutate(CurrentLeague = League) %>%

mutate(FormerCountry = lag(Country)) %>%

mutate(CurrentCountry = Country) %>%

select(Player, CurrentClub, FormerClub, ClubFirst, ClubLast, CurrentLeague,

FormerLeague, CurrentCountry, FormerCountry)

# Visnetwork function ----------------------------------------------

visNetworkCLubPlayerCountry <- function(TransferDf, Country, transfereSince)

{

edges <- TransferDf %>%

filter(CurrentCountry == Country) %>%

filter(ClubFirst >= transfereSince) %>%

select(c(CurrentClub,Player)) %>%

rename(from = CurrentClub) %>%

rename(to = Player) %>%

sample_frac(0.5, replace = FALSE) %>%

ungroup() %>%

mutate(arrows = c("from"))

Page 22: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

edgesMelt <- edges %>%

mutate(shape = "") %>%

melt(id = "shape", measure = c("to", "from"), value.name = "id")

nodesClub <- edgesMelt %>%

filter(variable == "from") %>%

mutate(group = c("Club"))

nodesPlayer <- edgesMelt %>%

filter(variable == "to") %>%

mutate(group = Player)

nodes <- rbind(nodesClub,nodesPlayer) %>% select(c(variable,id, group)) %>%

unique()

visNetwork(nodes, edges) %>%

visOptions(highlightNearest = list(enabled = TRUE, degree =2),

nodesIdSelection = TRUE) %>%

visEdges(arrows = "from") %>%

visInteraction(dragNodes = FALSE, dragView = FALSE, zoomView = FALSE)

%>%

visInteraction(navigationButtons = TRUE)

}

# VisNetwork per player -------------------------

visNetworkPerClub <- function(matchMelt, Club, Saison)

{

PlayerSelected <- matchMelt %>%

filter(saisonStart == Saison) %>%

filter(team_long_name == Club) %>%

select(player_name) %>%

unique()

Page 23: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

edges <- matchMelt %>%

filter(saisonStart>= Saison) %>%

filter(player_name %in% PlayerSelected$player_name) %>%

select(c(team_long_name,player_name)) %>%

rename(from = team_long_name) %>%

rename(to = player_name) %>%

unique() %>%

mutate(arrows = c("from"))

edgesMelt <- edges %>%

mutate(shape = "") %>%

melt(id = "shape", measure = c("to", "from"), value.name = "id")

nodesClub <- edgesMelt %>%

filter(variable == "from") %>%

mutate(group = c("Club"))

nodesPlayer <- edgesMelt %>%

filter(variable == "to") %>%

mutate(group = c("Player"))

nodes <- rbind(nodesClub,nodesPlayer) %>% select(c(variable,id, group)) %>%

unique()

visNetwork(nodes, edges, main = list(text = paste0("Where did the player of ",

Club, " play after 2012" ),

style = "font-family:Comic Sans MS;color:#ff0000;font-size:15px;text-

align:center;")) %>%

visGroups( groupname = "Player", color = "lightgreen") %>%

visGroups( groupname = "Club", color = "lightblue") %>%

visOptions(highlightNearest = list(enabled = TRUE, degree =1),

nodesIdSelection = FALSE) %>%

Page 24: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

visInteraction(dragNodes = FALSE, dragView = FALSE, zoomView = FALSE)

%>%

visGroups(groupname = "Club", shape = "icon", icon = list(code = "f1e3", size =

75)) %>%

visGroups(groupname = "Player", shape = "icon", icon = list(code = "f183",

color = "green")) %>%

addFontAwesome() %>%

visInteraction(navigationButtons = TRUE)

}

Saison <-2012

#Diagram chord 11 liga Eropa

TransferMatrix <- na.omit(TransferDf) %>% ungroup() %>%

group_by(FormerLeague, CurrentLeague) %>%

summarise(sub = n()) %>% ungroup() %>% na.omit() %>%

mutate_each(funs(factor), FormerLeague:CurrentLeague) %>%

acast(FormerLeague ~ CurrentLeague, value.var = "sub")

kaggle <- 1

if (kaggle == 0) {

library(chorddiag)

chorddiag(TransferMatrix)

} else {

chordDiagram(TransferMatrix)

circos.clear()

}

#Tabel jumlah transfer 11 liga Eropa

na.omit(TransferDf) %>% ungroup() %>% group_by(FormerLeague) %>%

summarise(NumberOfTransfers = n()) %>% arrange(desc(NumberOfTransfers))

%>% data.table() %>% datatable( rownames = FALSE, colnames =c("League",

"Number of transfers since 2008") ,options = list(dom = 't', autoWidth = TRUE,

columnDefs = list(list(width = '250px', targets = c(1)))))

Page 25: danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel16... · Web viewData yang dipakai dalam analisis ini merupakan data sepak bola dari 11 liga utama di Eropa

na.omit(TransferDf) %>% ungroup() %>%

filter_("FormerLeague==CurrentLeague") %>% group_by(FormerLeague) %>%

summarise(NumberOfTransfers = n()) %>% arrange(desc(NumberOfTransfers))

%>% data.table() %>% datatable( rownames = FALSE, colnames =c("League",

"Number of transfers within league since 2008") ,options = list(dom = 't',

autoWidth = TRUE,

columnDefs = list(list(width = '250px', targets = c(1)))))

#Diagram perpindahan pemain suatu klub

Club <- "Manchester United"

visNetworkPerClub(matchMelt, Club, Saison)