Scraping adalah teknik pengambilan data secara otomatis dari situs web. Proses ini melibatkan penggunaan program untuk mengakses halaman web, mengekstrak informasi yang relevan, dan menyimpannya dalam format yang terstruktur untuk analisis lebih lanjut.
Situs SINTA (Science and Technology Index) Kemdikbud adalah platform yang dikembangkan oleh Kementerian Pendidikan, Kebudayaan, Riset, dan Teknologi Indonesia. SINTA menyediakan akses ke data kinerja ilmiah dan teknologi di Indonesia, termasuk publikasi penelitian, sitasi, dan kolaborasi penelitian. Situs ini berfungsi sebagai alat untuk mengukur dan memonitor kinerja peneliti dan institusi pendidikan tinggi di Indonesia, serta untuk meningkatkan kualitas dan produktivitas penelitian nasional. Data yang tersedia di SINTA mencakup informasi tentang peneliti, institusi, jurnal, dan bidang penelitian, yang semuanya dapat digunakan untuk berbagai analisis dan pengambilan keputusan terkait penelitian dan pengembangan.
Scraping Situs SINTA Kemdikbud :
Pada proyek ini melakukan scraping data dari situs SINTA (Science and Technology Index) Kemdikbud dengan melakukan pengumpulan data dari bagian authors yang meliputi nama, sinta id, departemen, universitas dan sinta score overall. Tujuannya untuk mengetahui informasi departemen, universitas maupun score overall dari masing-masing nama peneliti yang tersedia dalam situs sinta sehingga dapat mengevaluasi kontribusi individu peneliti terhadap literatur ilmiah melalui SINTA score overall maupun untuk memonitor tren penelitian, mengidentifikasi potensi kolaborasi, dan membandingkan kinerja antar peneliti serta institusi.
library(mongolite)
library(tidyverse)
mongo_connection <- mongo(collection = "mds2",
db = "scraping2",
url = "mongodb+srv://yunnamentari:12345@cluster0.yumxaky.mongodb.net/")
data <- mongo_connection$find('{}')
#menyimpan data dari MongoDB
write.csv(data, file = "D:/Kuliah S2/Semester 2/Manajemen Data Statistika/data_mds2.csv", row.names = FALSE)
library(tidyverse)
## Warning: package 'ggplot2' was built under R version 4.3.3
## Warning: package 'readr' was built under R version 4.3.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.3 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.0 ✔ tibble 3.2.1
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
library(ggplot2)
data <- read.csv("D:/Kuliah S2/Semester 2/Manajemen Data Statistika/data_mds2.csv")
glimpse(data)
## Rows: 30
## Columns: 5
## $ NAMA <chr> "ASEP BAYU DANI NANDIYANTO", "BENS PARDAMEAN", "UNTUNG RAHARD…
## $ SINTA_ID <int> 5974504, 6043909, 5999873, 6035420, 42423, 5980682, 74344, 23…
## $ DEPT <chr> "Kimia (S2)", "Teknik Informatika (S2)", "Bisnis Digital (S1)…
## $ UNIV <chr> "Universitas Pendidikan Indonesia", "Universitas Bina Nusanta…
## $ SCORE <dbl> 15.992, 12.936, 6.099, 2.539, 14.705, 7.541, 5.302, 9.812, 4.…
Berdasarkan struktur data, terlihat beberapa kolom perlu dilakukan pengubahan jenis struktur data, yaitu perlu dijadikan sebuah faktor.
data <- data %>%
mutate(across(c("NAMA", "DEPT", "UNIV"),
as.factor))
data$SCORE <- as.numeric(data$SCORE)
data$SINTA_ID <- as.numeric(data$SINTA_ID)
str(data)
## 'data.frame': 30 obs. of 5 variables:
## $ NAMA : Factor w/ 30 levels "ABDUL ROHMAN",..: 6 7 30 17 1 24 20 28 8 3 ...
## $ SINTA_ID: num 5974504 6043909 5999873 6035420 42423 ...
## $ DEPT : Factor w/ 26 levels "Biologi (S1)",..: 11 23 2 8 3 10 16 9 16 9 ...
## $ UNIV : Factor w/ 21 levels "Institut Pertanian Bogor",..: 16 5 17 9 7 14 15 4 15 4 ...
## $ SCORE : num 15.99 12.94 6.1 2.54 14.71 ...
# Jumlah peneliti per departemen
dept_counts <- data %>%
count(DEPT, sort = TRUE)
# Jumlah peneliti per universitas
univ_counts <- data %>%
count(UNIV, sort = TRUE)
head(dept_counts)
## DEPT n
## 1 Informatika (S2) 2
## 2 Kimia (S2) 2
## 3 Pendidikan Fisika (S2) 2
## 4 Sistem Informasi (S2) 2
## 5 Biologi (S1) 1
## 6 Bisnis Digital (S1) 1
head(univ_counts)
## UNIV n
## 1 Universitas Ahmad Dahlan 3
## 2 Universitas Gadjah Mada 3
## 3 Universitas Negeri Malang 3
## 4 Universitas Diponegoro 2
## 5 Universitas Negeri Surabaya 2
## 6 Universitas Riau 2
# Statistik deskriptif untuk skor SINTA
summary(data$SCORE)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 2.539 5.000 5.913 7.396 9.704 16.412
# Boxplot untuk skor SINTA
ggplot(data, aes(x = "", y = SCORE)) +
geom_boxplot() +
labs(title = "Boxplot Skor SINTA")
Interpretasi :
Berdasarkan statistik deskriptif dan boxplot di atas, skor SINTA menunjukkan distribusi yang relatif konsisten. Nilai skor SINTA berkisar dari 2.539 hingga 16.412, dengan median di 5.913. Sebagian besar skor berada dalam rentang 5.000 hingga 9.704, mencakup 50% data tengah. Distribusi data sedikit miring ke kanan, ditunjukkan oleh median yang lebih dekat ke kuartil pertama dibandingkan kuartil ketiga. Tidak ada outliers yang terlihat dalam data, yang menunjukkan homogenitas distribusi skor SINTA di antara peneliti. Rata-rata skor adalah 7.396, sedikit lebih tinggi dari median, mengindikasikan beberapa skor yang lebih tinggi mempengaruhi rata-rata keseluruhan.
# Visualisasi Jumlah Peneliti dari Departemen
ggplot(dept_counts, aes(x = reorder(DEPT, -n), y = n)) +
geom_bar(stat = "identity") +
coord_flip() +
labs(title = "Jumlah Peneliti dari Departemen", x = "Departmen", y = "Frekuensi") +
theme_minimal()
Interpretasi :
Barplot ini menunjukkan jumlah peneliti di setiap departemen. Departemen dengan jumlah peneliti tertinggi adalah sistem informasi, pendidikan fisika, kimia dan informatika dengan 2 peneliti dan sama-sama memiliki jenjang pendidikan S2. Sebagian besar departemen memiliki 1 peneliti dan grafik ini menunjukkan distribusi yang relatif merata, dengan sedikit variasi di mana satu departemen memiliki sedikit lebih banyak peneliti dibandingkan yang lain.
# Visualisasi Jumlah Peneliti dari Universitas
ggplot(univ_counts, aes(x = reorder(UNIV, -n), y = n)) +
geom_bar(stat = "identity") +
coord_flip() +
labs(title = "Jumlah Peneliti dari Universitas", x = "Universitas", y = "Frekuensi") +
theme_minimal()
Interpretasi :
Berdasarkan barplot di atas, terlihat bahwa dari 30 data yang diambil setiap peneliti memiliki sebaran latar belakang universitas yang berbeda, terdapat 3 universitas yang memiliki jumlah peneliti terbanyak yaitu memiliki 3 peneliti yang berasal dari Universitas Negeri Malang, Universitas Gajah Mada, dan Universitas Ahmad Dahlan.
# Hitung total skor SINTA per universitas
total_scores <- data %>%
group_by(UNIV) %>%
summarize(total_score = sum(SCORE))
# Pilih 10 universitas dengan total skor SINTA tertinggi
top_10_univ <- total_scores %>%
top_n(10, total_score) %>%
arrange(desc(total_score)) # Urutkan dari yang tertinggi
# Filter data hanya untuk 10 universitas teratas
data_top_10 <- data %>%
filter(UNIV %in% top_10_univ$UNIV)
ggplot(data_top_10, aes(x = UNIV, y = SCORE)) +
geom_bar(stat = "identity", fill = "#F08080") +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
labs(title = "Total Skor SINTA per Universitas", x = "Universitas", y = "Total Skor SINTA")
print(top_10_univ)
## # A tibble: 10 × 2
## UNIV total_score
## <fct> <dbl>
## 1 Universitas Gadjah Mada 26.1
## 2 Universitas Diponegoro 20.1
## 3 Universitas Ahmad Dahlan 19.0
## 4 Universitas Negeri Malang 17.7
## 5 Institut Teknologi Sepuluh Nopember 16.4
## 6 Universitas Pendidikan Indonesia 16.0
## 7 Universitas Bina Nusantara 12.9
## 8 Universitas Islam Indonesia 10.9
## 9 Universitas Riau 10.4
## 10 Institut Teknologi Bandung 10.3
Interpretasi :
Berdasarkan barplot dan data total score dari sinta score overall, terlihat bahwa Universitas Gajah Mada memiliki total score tertinggi yaitu 26.111 dari 3 peneliti, lalu di ikuti Universitas Diponegoro dan Universitas Ahmad Dahlan dengan rentang nilai 10 total score tertinggi nya adalah 10.298 sampai 26.111
library(ggplot2)
library(dplyr)
# Pilih 10 peneliti dengan skor SINTA tertinggi berdasarkan nama
top_10_scores <- data %>%
arrange(desc(SCORE)) %>%
slice_head(n = 10)
top_10_scores
## NAMA SINTA_ID DEPT
## 1 RIYANARTO SARNO 29555 Ilmu Komputer (S3)
## 2 ASEP BAYU DANI NANDIYANTO 5974504 Kimia (S2)
## 3 ABDUL ROHMAN 42423 Doktor Ilmu Farmasi (S3)
## 4 BENS PARDAMEAN 6043909 Teknik Informatika (S2)
## 5 IS FATIMAH 5998917 Kimia (S2)
## 6 HADIYANTO 5049 Sistem Informasi (S2)
## 7 BRIAN YULIARTO 260433 Teknik Fisika (S1)
## 8 Tole Sutikno 23026 Informatika (S2)
## 9 JAMARI 6023233 Teknik Mesin (S3)
## 10 SITI ZUBAIDAH 5988462 Pendidikan Biologi (S3)
## UNIV SCORE
## 1 Institut Teknologi Sepuluh Nopember 16.412
## 2 Universitas Pendidikan Indonesia 15.992
## 3 Universitas Gadjah Mada 14.705
## 4 Universitas Bina Nusantara 12.936
## 5 Universitas Islam Indonesia 10.890
## 6 Universitas Diponegoro 10.707
## 7 Institut Teknologi Bandung 10.298
## 8 Universitas Ahmad Dahlan 9.812
## 9 Universitas Diponegoro 9.378
## 10 Universitas Negeri Malang 8.158
# Plot bar plot untuk skor SINTA peneliti tertinggi
p <-ggplot(top_10_scores, aes(x = reorder(NAMA, SCORE), y = SCORE, fill = NAMA)) +
geom_bar(stat = "identity", alpha = 0.9) +
geom_text(aes(label = round(SCORE, 4)), vjust = -0.5, color = "black", size = 2.5) +
labs(title = "Skor SINTA untuk 10 Peneliti Tertinggi",
x = "Nama Peneliti", y = "Skor SINTA") +
theme_minimal()
# Menambahkan pengaturan teks sumbu x secara bertahap
p + theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1))
Interpretasi :
Berdasarkan barplot dan data sinta score overall, terlihat bahwa sinta score overall berkisar dari 8.158 hingga 16.412, dengan distribusi yang menunjukkan perbedaan signifikan antara peneliti dengan skor terendah dan tertinggi. Score tertinggi di peroleh oleh Riyanarto Sarno dengan sinta score overall 16.412 berasal dari Institut Teknologi Sepuluh Nopember dengan Departement Ilmu Komputer (S3).
# Hitung total skor SINTA per departemen
dept_scores <- data %>%
group_by(DEPT) %>%
summarize(total_score = sum(SCORE)) %>%
arrange(desc(total_score)) # Urutkan dari yang tertinggi
# Pilih departemen dengan skor SINTA tertinggi
top_dept <- dept_scores %>%
top_n(10, total_score)
# Tampilkan informasi mengenai departemen dengan skor SINTA tertinggi
print(top_dept)
## # A tibble: 10 × 2
## DEPT total_score
## <fct> <dbl>
## 1 Kimia (S2) 26.9
## 2 Sistem Informasi (S2) 17.1
## 3 Ilmu Komputer (S3) 16.4
## 4 Informatika (S2) 15.9
## 5 Doktor Ilmu Farmasi (S3) 14.7
## 6 Teknik Informatika (S2) 12.9
## 7 Teknik Fisika (S1) 10.3
## 8 Pendidikan Fisika (S2) 9.83
## 9 Teknik Mesin (S3) 9.38
## 10 Pendidikan Biologi (S3) 8.16
# Plot bar plot untuk skor SINTA peneliti tertinggi
a <- ggplot(top_dept, aes(x = reorder(DEPT, total_score), y = total_score, fill = DEPT)) +
geom_bar(stat = "identity", alpha = 0.8) +
geom_text(aes(label = round(total_score, 4)), vjust = -0.5, color = "black", size = 2.5) +
labs(title = "Total Skor SINTA per Departemen (Top 10)",
x = "Departemen", y = "Total Skor SINTA") + theme_minimal()
a + theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1))
Interpretasi :
Berdasarkan barplot dan data total score dari sinta score overall terhadap departement, terlihat bahwa score tertinggi di peroleh dari departement Kimia jenjang S2 dengan sinta score overall 26.882, lalu urutan kedua dari departement Sistem Informasi Jenjang S2 dan urutan ketiga dari departement Ilmu Komputer jenjang S3 dengan rentang total score dari 8.158 sampai 26.882
library(wordcloud)
## Warning: package 'wordcloud' was built under R version 4.3.3
## Loading required package: RColorBrewer
library(RColorBrewer)
# Hitung frekuensi kemunculan setiap departemen
dept_freq <- data %>%
count(DEPT) %>%
arrange(desc(n))
# Set warna untuk word cloud
colors <- brewer.pal(8, "Dark2")
# Buat word cloud dengan penyesuaian ukuran teks
wordcloud(words = dept_freq$DEPT,
freq = dept_freq$n,
min.freq = 1,
max.words = 200,
random.order = FALSE,
rot.per = 0.35,
colors = colors,
scale = c(1.5, 0.1))
Interpretasi :
Berdasarkan word cloud di atas terlihat bahwa departement Informatika (S2), Kimia (S2), Pendidikan Fisika (S2), dan Sistem Informasi (S2) muncul paling besar dalam word cloud dan memiliki warna yang berbeda dari yang lainnya, artinya keempat departemen tersebut memiliki jumlah peneliti yang paling banyak dibandingkan dengan departement lain.
Dari hasil scraping situs SINTA, dapat disimpulkan bahwa terdapat variasi yang signifikan dalam skor SINTA antar universitas dan departemen. Universitas dengan skor SINTA tertinggi cenderung memiliki reputasi yang lebih baik dalam hal kontribusi akademik. Analisis departemen menggunakan word cloud mengungkapkan fokus penelitian yang dominan di setiap institusi, memberikan wawasan tentang tren penelitian di tingkat departemen. Informasi ini dapat menjadi panduan strategis bagi institusi dalam mengarahkan fokus penelitian dan mengoptimalkan dampak akademik mereka.