Visualisasi Data Lambeturah 8-13 Juni 2024
Siti Hafsah(G1501231060)
14 June, 2024
Manajemen Data Statistika
Pendahuluan
Latar Belakang
“Lambe Turah” adalah sebuah akun media sosial yang terkenal di Indonesia, khususnya di Instagram. Akun ini dikenal karena sering mengunggah gosip, berita selebriti, dan isu-isu terkini yang sedang hangat dibicarakan oleh publik. Akun ini sering kali menjadi sumber informasi pertama mengenai berbagai skandal atau peristiwa yang melibatkan tokoh-tokoh terkenal di Indonesia.
“Lambe Turah” memiliki banyak pengikut dan sering kali postingannya menjadi viral karena konten yang menarik dan kontroversial. Namun, karena sering kali berisi gosip, informasi yang disebarkan oleh akun ini perlu diterima dengan hati-hati dan sebaiknya diverifikasi lebih lanjut sebelum dianggap sebagai kebenaran.
Pada proyek kali ini dilakukan scraping pada website https://lambeturah.co.id/, dimana website ini menampilkan berita dan gosip terbaru terkait selebriti dan berbagai isu sosial lainnya di Indonesia. Jenis konten seperti berita selebriti, skandal, kejadian viral, dan lain sebagainya nantinya akan menghasilkan data terkait judul berita, tanggal publikasi, dan tautan artikel yang sering dibahas. Dengan menggunakan teknik web scraping, data tersebut dikumpulkan untuk dianalisis lebih lanjut guna memahami tren dan sentimen dalam berita yang dipublikasikan oleh Lambe Turah.
Data yang
diambil pada proyek scraping meliputi beberapa poin kunci berikut:
🆔 id: Identifikasi unik dari setiap entri berita yang di-scrape, digunakan untuk membedakan setiap berita dalam basis data.
📰 titles: Judul berita yang memberikan gambaran singkat tentang isi artikel. Judul ini biasanya dirancang untuk menarik perhatian pembaca dan menyampaikan poin utama dari berita tersebut.
💬 Kategori: Kategori dari artikel berita seperti Hot News, Seleb, Video, Viral, Musik, dan Sosial.
📅 dates: Waktu yang menunjukkan kapan berita tersebut dipublikasikan atau terakhir diperbarui. Format waktu ini bisa berupa “X jam lalu” atau “X hari lalu” yang menunjukkan seberapa baru berita tersebut.
🔗 links: URL lengkap yang mengarah langsung ke halaman berita di situs Lambe Turah. Link ini memungkinkan pengguna untuk membaca artikel lengkap dan memperoleh konteks lebih lanjut.
Scraping dilakukan dengan menggunakan software R serta packages rvest dan tidyverse untuk membersihkan data yang telah diambil. Data hasil scraping dari website akan disimpan di MongoDB Atlas dan dijadwalkan untuk dilakukan setiap hari pada pukul 01.00. Proses scraping terjadwal ini diotomatisasi dengan membuat workflow di Github Action.
MongoDB Atlas
## Warning: package 'mongolite' was built under R version 4.3.3
Menampilkan data keseluruhan
## time_scraped
## 1 2024-06-05 17:23:34
## 2 2024-06-05 17:23:34
## 3 2024-06-05 17:23:34
## 4 2024-06-05 17:23:34
## 5 2024-06-05 17:23:34
## 6 2024-06-05 17:23:34
## 7 2024-06-05 17:23:34
## 8 2024-06-05 17:23:34
## 9 2024-06-05 17:23:34
## 10 2024-06-05 17:23:34
## 11 2024-06-05 17:23:34
## 12 2024-06-05 17:23:34
## 13 2024-06-06 08:54:01
## 14 2024-06-06 08:54:01
## 15 2024-06-06 08:54:01
## 16 2024-06-06 08:54:01
## 17 2024-06-07 08:55:59
## 18 2024-06-07 08:55:59
## 19 2024-06-07 08:55:59
## 20 2024-06-07 08:55:59
## 21 2024-06-07 08:55:59
## 22 2024-06-08 08:53:32
## 23 2024-06-08 08:53:32
## 24 2024-06-08 08:53:32
## 25 2024-06-08 08:53:32
## 26 2024-06-08 08:53:32
## 27 2024-06-09 07:25:51
## 28 2024-06-09 07:25:51
## 29 2024-06-09 07:25:51
## 30 2024-06-09 09:00:42
## 31 2024-06-09 09:00:42
## 32 2024-06-10 08:57:23
## 33 2024-06-10 08:57:23
## 34 2024-06-10 08:57:23
## 35 2024-06-10 08:57:23
## 36 2024-06-10 08:57:23
## 37 2024-06-11 08:56:12
## 38 2024-06-11 08:56:12
## 39 2024-06-11 08:56:12
## 40 2024-06-11 08:56:12
## 41 2024-06-11 08:56:12
## 42 2024-06-12 08:55:44
## 43 2024-06-13 08:55:14
## 44 2024-06-13 08:55:14
## 45 2024-06-13 08:55:14
## 46 2024-06-13 08:55:14
## 47 2024-06-13 08:55:14
## 48 2024-06-14 08:55:47
## 49 2024-06-14 08:55:47
## 50 2024-06-14 08:55:47
## titles dates
## 1 \nDi tengah jadwal padat Park Bo Gum tetap mengutamakan... Juni 5, 2024
## 2 \nNgeri! Mobil Ini Pasang Bumper Duri Juni 5, 2024
## 3 \n'Nyi Roro Kidul' Alih Profesi Jual Gorengan Juni 5, 2024
## 4 \nAgar Tak Ada yang Duduk, Rumah Dipalang Saat... Juni 5, 2024
## 5 \nKain Penutup Tubuh Hanyut Ketika Beribadah, Gelak... Juni 5, 2024
## 6 \nKominfo Ancam Blokir X Setelah Elon Musk Izinkan... Juni 5, 2024
## 7 \nGelombang Panas Hantam India 52,9 Celcius Buat... Juni 5, 2024
## 8 \nMassa Geruduk PN Tuban Usai Mbah Darmi Dinovis... Juni 5, 2024
## 9 \nKasat Narkoba Polres Blitar Positif Narkoba Setelah... Juni 5, 2024
## 10 \nElon Musk Izinkan Konten Pornografi Tayang di... Juni 5, 2024
## 11 \nJordanluca Rilis Jeans 'Stain Stonewash' dengan... Juni 5, 2024
## 12 \nApple di Indonesia Dikabarkan Tak Laku Usai Warga... Juni 5, 2024
## 13 \nMomen Menteri Nadiem "Diamuk" hingga Ditunjuk-tunjuk... Juni 5, 2024
## 14 \nTito Karnavian: ASN Kemendagri Tak Dipaksa Pindah... Juni 5, 2024
## 15 \nPolisi Ungkap Motif Ibu di Tangsel Diduga Tega... Juni 5, 2024
## 16 \nPengusaha Tanggapi Cuti Melahirkan 6 Bulan: Beban... Juni 5, 2024
## 17 \nKomika Aulia Rakhman Divonis 7 Bulan Penjara... Juni 6, 2024
## 18 \nPPATK Endus Adanya Transaksi Judi Online Lewat... Juni 6, 2024
## 19 \nTapera Tuai Polemik, Menteri PUPR Basuki: Saya... Juni 6, 2024
## 20 \nBPK Laporkan Fraud BUMN Indofarma, Terjerat Pinjol Juni 6, 2024
## 21 \nPolisi Tangkap Petugas Pengisi Uang ATM di Sergai... Juni 6, 2024
## 22 \nSelebgram dan Tiktokers Indonesia Ditangkap Pihak... Juni 7, 2024
## 23 \nDitjen Pajak Buka Suara Terkait Isu Melahirkan... Juni 7, 2024
## 24 \nBos Rental Mobil Tewas Diamuk Massa Karena Dikira... Juni 7, 2024
## 25 \nKembali Terjadi, Seorang Ibu Berbaju Oranye Diduga... Juni 7, 2024
## 26 \nSekeluarga di Bogor Kelola Judi Online, Omzet... Juni 7, 2024
## 27 \nOknum Polwan Bakar Suaminya yang juga Polisi... Juni 8, 2024
## 28 \nPolisi Temukan Akun Facebook Icha Shakila, Ternyata... Juni 8, 2024
## 29 \nKPK Kembali Sita 91 Mobil dan Uang Rp 8,7 Miliar... Juni 8, 2024
## 30 \nKebakaran Hotel di Alam Sutera Tangerang Selatan,... Juni 8, 2024
## 31 \nPolitisi Pertanyaan Sumber Dana Gibran Bagi-bagi... Juni 8, 2024
## 32 \nMenko PMK Jadi Saksi Penikahan Gratis, Beri Nasihat... Juni 9, 2024
## 33 \nBPK Temuan Dugaan Penyimpangan Perjalanan Dinas... Juni 9, 2024
## 34 \nRamai Bank di Indonesia Tutup ATM Imbas Efisiensi? Juni 9, 2024
## 35 \nPolwan Bakar Suami di Mojokerto, Korban Akhirnya... Juni 9, 2024
## 36 \nPemicu Polwan Polres Mojokerto Bakar Suami Diduga... Juni 9, 2024
## 37 \nKorupsi Bansos Beras, 4 Terdakwa Penjara dan... Juni 10, 2024
## 38 \nKorsel Balas dengan Balon USB K-Pop Usai Korut... Juni 10, 2024
## 39 \nAdanya Kejanggalan di Kasus Vina Cirebon, Otto... Juni 10, 2024
## 40 \nPolisi Tetapkan 3 Tersangka Pengeroyokan Bos... Juni 10, 2024
## 41 \nPria yang Tewas di Pati Ternyata Residivis Jual-Beli... Juni 10, 2024
## 42 \nKPK Klaim Sudah Mengetahui Lokasi Harun Masiku Juni 11, 2024
## 43 \nPesan Presiden Jokowi: Jangan Judi Offline atau... Juni 12, 2024
## 44 \nJeep Rubicon Mario Dandy Akhirnya Laku Dilelang... Juni 12, 2024
## 45 \nSIM Indonesia Hadir dengan Format Baru Bergambar... Juni 12, 2024
## 46 \nTerkini! Situasi Rumah Bos Konfeksi Tewas Gantung... Juni 12, 2024
## 47 \nInnalillahi, Politikus Senior Permadi Wiwoho... Juni 12, 2024
## 48 \nPolres Sragen Tangkap Pelaku Pencurian Sapi yang... Juni 13, 2024
## 49 \nSultan HB X Buka Suara Terkait Polemik Wacana... Juni 13, 2024
## 50 \nHotman Paris Hutapea Sebut Razman Arif Nasution... Juni 13, 2024
## links
## 1 https://lambeturah.co.id/di-tengah-jadwal-padat-park-bo-gum-tetap-mengutamakan-pendidikan
## 2 https://lambeturah.co.id/ngeri-mobil-ini-pasang-bumper-duri
## 3 https://lambeturah.co.id/nyi-roro-kidul-alih-profesi-jual-gorengan
## 4 https://lambeturah.co.id/agar-tak-ada-yang-duduk-rumah-dipalang-saat-tetangga-hajatan
## 5 https://lambeturah.co.id/kain-penutup-tubuh-hanyut-ketika-beribadah-gelak-tawa-tak-terhindarkan
## 6 https://lambeturah.co.id/kominfo-ancam-blokir-x-setelah-elon-musk-izinkan-konten-pornografi
## 7 https://lambeturah.co.id/gelombang-panas-hantam-india-529-celcius-buat-77-warga-tewas
## 8 https://lambeturah.co.id/massa-geruduk-pn-tuban-usai-mbah-darmi-dinovis-15-bulan-karena-pukul-keponakan
## 9 https://lambeturah.co.id/kasat-narkoba-polres-blitar-positif-narkoba-setelah-tes-urine-dadakan
## 10 https://lambeturah.co.id/elon-musk-izinkan-konten-pornografi-tayang-di-platformnya
## 11 https://lambeturah.co.id/jordanluca-rilis-jeans-stain-stonewash-dengan-noda-ompol-unik-atau-menjijikan
## 12 https://lambeturah.co.id/apple-di-indonesia-dikabarkan-tak-laku-usai-warga-banyak-sewa-iphone
## 13 https://lambeturah.co.id/momen-menteri-nadiem-diamuk-hingga-ditunjuk-tunjuk-oleh-anggota-dpr
## 14 https://lambeturah.co.id/tito-karnavian-asn-kemendagri-tak-dipaksa-pindah-ke-ikn
## 15 https://lambeturah.co.id/polisi-ungkap-motif-ibu-di-tangsel-diduga-tega-melakukan-tindak-pelecehan-pada-anaknya
## 16 https://lambeturah.co.id/pengusaha-tanggapi-cuti-melahirkan-6-bulan-beban-tambahan-bagi-dunia-usaha
## 17 https://lambeturah.co.id/komika-aulia-rakhman-divonis-7-bulan-penjara-usai-lakukan-penistaan-agama
## 18 https://lambeturah.co.id/ppatk-endus-adanya-transaksi-judi-online-lewat-pinjaman-online
## 19 https://lambeturah.co.id/tapera-tuai-polemik-menteri-pupr-basuki-saya-menyesal-kalau-memang-belum-siap-kenapa-tergesa-gesa
## 20 https://lambeturah.co.id/bpk-laporkan-fraud-bumn-indofarma-terjerat-pinjol
## 21 https://lambeturah.co.id/polisi-tangkap-petugas-pengisi-uang-atm-di-sergai-curi-uang-rp-65-juta-untuk-judi-online
## 22 https://lambeturah.co.id/selebgram-dan-tiktokers-indonesia-ditangkap-pihak-keamanan-arab-saudi-diduga-jualan-visa-haji-ilegal
## 23 https://lambeturah.co.id/ditjen-pajak-buka-suara-terkait-isu-melahirkan-kena-pajak
## 24 https://lambeturah.co.id/bos-rental-mobil-tewas-diamuk-massa-karena-dikira-maling-di-pati
## 25 https://lambeturah.co.id/kembali-terjadi-seorang-ibu-berbaju-oranye-diduga-cabuli-anak-kandungnya
## 26 https://lambeturah.co.id/sekeluarga-di-bogor-kelola-judi-online-omzet-capai-puluhan-miliar
## 27 https://lambeturah.co.id/oknum-polwan-bakar-suaminya-yang-juga-polisi-di-asrama-polres-mojokerto
## 28 https://lambeturah.co.id/polisi-temukan-akun-facebook-icha-shakila-ternyata-dibajak-dan-pemiliknya-diminta-buat-konten-porno
## 29 https://lambeturah.co.id/kasus-rita-widyasar-kpk-sita-72-mobil-dan-uang-rp-87-miliar
## 30 https://lambeturah.co.id/kebakaran-hotel-di-alam-sutera-tangerang-selatan-tiga-orang-tewas
## 31 https://lambeturah.co.id/politisi-pertanyaan-sumber-dana-gibran-bagi-bagi-buku-bersampul-jan-ethes-ke-anak-sd
## 32 https://lambeturah.co.id/menko-pmk-jadi-saksi-penikahan-gratis-beri-nasihat-nikah
## 33 https://lambeturah.co.id/bpk-temuan-dugaan-penyimpangan-perjalanan-dinas-pns-rp39-miliar
## 34 https://lambeturah.co.id/ramai-bank-di-indonesia-tutup-atm-imbas-efisiensi
## 35 https://lambeturah.co.id/polwan-bakar-suami-di-mojokerto-korban-akhirnya-meninggal-dunia
## 36 https://lambeturah.co.id/pemicu-polwan-polres-mojokerto-bakar-suami-diduga-gaji-ke-13-berkurang
## 37 https://lambeturah.co.id/korupsi-bansos-beras-4-terdakwa-penjara-dan-denda-rp1-miliar
## 38 https://lambeturah.co.id/korsel-balas-dengan-balon-usb-k-pop-usai-korut-kirim-ratusan-balon-sampah
## 39 https://lambeturah.co.id/adanya-kejanggalan-di-kasus-vina-cirebon-otto-hasibuan-turun-bela-terpidana-sudirman
## 40 https://lambeturah.co.id/polisi-tetapkan-3-tersangka-pengeroyokan-bos-rental
## 41 https://lambeturah.co.id/pria-yang-tewas-di-pati-ternyata-residivis-jual-beli-kendaraan-bodong-bukan-bos-rental-mobil
## 42 https://lambeturah.co.id/kpk-klaim-sudah-mengetahui-lokasi-harun-masiku
## 43 https://lambeturah.co.id/pesan-presiden-jokowi-jangan-judi-offline-atau-judi-online
## 44 https://lambeturah.co.id/jeep-rubicon-mario-dandy-akhirnya-laku-dilelang-rp-725-juta
## 45 https://lambeturah.co.id/sim-indonesia-hadir-dengan-format-baru-bergambar-kendaraan-mulai-juli-2024
## 46 https://lambeturah.co.id/terkini-situasi-rumah-bos-konfeksi-tewas-gantung-diri-di-tambora-sepi-usaha-terhenti
## 47 https://lambeturah.co.id/inalilahi-politikus-senior-permadi-wiwoho-meninggal-dunia
## 48 https://lambeturah.co.id/polres-sragen-tangkap-pelaku-pencurian-sapi-yang-dijual-di-medsos
## 49 https://lambeturah.co.id/sultan-hb-x-buka-suara-terkait-polemik-wacana-proyek-beach-club-di-gunungkidul
## 50 https://lambeturah.co.id/hotman-paris-hutapea-sebut-razman-arif-nasution-pengacara-pansos-dan-tidak-tahu-malu
Visualisasi Data
Distribusi Kategori Berita
## Warning: package 'ggplot2' was built under R version 4.3.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(scales)
# Load data
data <- read.csv("D:/STA S2/semester 2/Manajemen Data Statistika/tugasfix.csv")
# Convert dates to Date format
data$dates <- as.Date(data$dates, format="%d-%b-%y")
# Plot distribution of categories
ggplot(data, aes(x = reorder(kategori, -table(kategori)[kategori]))) +
geom_bar(fill = "pink", color = "black", alpha = 0.7) +
geom_text(stat = "count", aes(label = ..count..), vjust = -0.5, size = 3.5) +
labs(title = "Distribusi Kategori Berita", x = "Kategori", y = "Jumlah Artikel") +
theme_minimal() +
theme(
plot.background = element_rect(fill = "lavenderblush", color = NA),
panel.background = element_rect(fill = "lavenderblush", color = NA),
plot.title = element_text(hjust = 0.5, size = 16, face = "bold"),
axis.title.x = element_text(size = 14),
axis.title.y = element_text(size = 14),
axis.text.x = element_text(angle = 45, hjust = 1, size = 12),
axis.text.y = element_text(size = 12)
) +
scale_y_continuous(labels = comma)## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Trend Artikel Seiring Waktu
# Load necessary libraries
library(ggplot2)
library(dplyr)
library(scales)
# Plot trend of articles over time with manual label adjustment
data %>%
group_by(dates) %>%
summarise(count = n()) %>%
ggplot(aes(x = dates, y = count)) +
geom_line(color = "deeppink", size = 1.5) +
geom_point(color = "deeppink", size = 3) +
geom_text(aes(label = count, vjust = ifelse(dates == as.Date("2024-06-09") | dates == as.Date("2024-06-10"), 1.5, -1)),
color = "black", size = 3.5) +
labs(title = "Tren Jumlah Artikel Seiring Waktu", x = "Tanggal", y = "Jumlah Artikel") +
theme_minimal() +
theme(
plot.background = element_rect(fill = "lavenderblush", color = "black", size = 1.5),
panel.background = element_rect(fill = "lavenderblush", color = "black", size = 1.5),
plot.title = element_text(hjust = 0.5, size = 18, face = "bold"),
axis.title.x = element_text(size = 14, face = "bold"),
axis.title.y = element_text(size = 14, face = "bold"),
axis.text.x = element_text(angle = 45, hjust = 1, size = 12, face = "bold"),
axis.text.y = element_text(size = 12, face = "bold"),
panel.border = element_rect(color = "black", fill = NA, size = 1.5)
) +
scale_x_date(date_breaks = "1 day", date_labels = "%d-%b-%y") +
scale_y_continuous(labels = comma)## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: The `size` argument of `element_rect()` is deprecated as of ggplot2 3.4.0.
## ℹ Please use the `linewidth` argument instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Popularitas Kategori Seiring Waktu
# Plot category popularity over time with a more attractive design
data %>%
group_by(dates, kategori) %>%
summarise(count = n(), .groups = "drop") %>%
ggplot(aes(x = dates, y = count, color = kategori, group = kategori)) +
geom_line(size = 1.5) +
geom_point(size = 3) +
labs(title = "Popularitas Kategori Seiring Waktu", x = "Tanggal", y = "Jumlah Artikel") +
theme_minimal() +
theme(
plot.background = element_rect(fill = "#FFC0CB"),
panel.background = element_rect(fill = "#FFC0CB"),
plot.title = element_text(color = "black", size = 18, face = "bold", hjust = 0.5),
axis.title = element_text(color = "black", size = 14, face = "bold"),
axis.text = element_text(color = "black", size = 12),
legend.title = element_text(color = "black", size = 14, face = "bold"),
legend.text = element_text(color = "black", size = 12),
panel.grid.major = element_line(color = "gray"),
panel.grid.minor = element_line(color = "gray"),
panel.border = element_rect(color = "black", fill = NA, size = 1.5)
) +
scale_x_date(date_breaks = "1 day", date_labels = "%d-%b-%y") +
scale_y_continuous(labels = comma) +
scale_color_manual(values = c("deeppink", "black", "darkgray", "purple", "red", "blue", "green", "orange", "yellow", "brown"))Analisis Sentimen
## Warning: package 'syuzhet' was built under R version 4.3.3
##
## Attaching package: 'syuzhet'
## The following object is masked from 'package:scales':
##
## rescale
library(dplyr)
library(ggplot2)
# Assume data has been loaded and dates converted as previously done
# Analyze sentiment of titles
sentiment_scores <- get_nrc_sentiment(data$titles)
# Calculate overall sentiment score (positive - negative)
data$sentiment_score <- sentiment_scores$positive - sentiment_scores$negative
# Categorize sentiment
data$sentiment_category <- ifelse(data$sentiment_score > 0, "positive",
ifelse(data$sentiment_score < 0, "negative", "neutral"))
# Plot sentiment distribution with a more attractive design
ggplot(data, aes(x = sentiment_category, fill = sentiment_category)) +
geom_bar(color = "black", show.legend = FALSE) +
scale_fill_manual(values = c("positive" = "deeppink", "negative" = "black", "neutral" = "gray")) +
labs(title = "Distribusi Sentimen dalam Judul Artikel", x = "Sentimen", y = "Jumlah Artikel") +
theme_minimal() +
theme(
plot.background = element_rect(fill = "#FFC0CB"),
panel.background = element_rect(fill = "#FFC0CB"),
plot.title = element_text(color = "black", size = 18, face = "bold", hjust = 0.5),
axis.title = element_text(color = "black", size = 14, face = "bold"),
axis.text = element_text(color = "black", size = 12),
panel.grid.major = element_line(color = "gray"),
panel.grid.minor = element_line(color = "gray"),
panel.border = element_rect(color = "black", fill = NA, size = 1.5)
)Distribusi Sentimen Per Kategori
# Analyze sentiment of titles
sentiment_scores <- get_nrc_sentiment(data$titles)
# Calculate overall sentiment score (positive - negative)
data$sentiment_score <- sentiment_scores$positive - sentiment_scores$negative
# Categorize sentiment
data$sentiment_category <- ifelse(data$sentiment_score > 0, "positive",
ifelse(data$sentiment_score < 0, "negative", "neutral"))# Load necessary libraries
library(syuzhet)
library(dplyr)
library(ggplot2)
# Assume data has been loaded and dates converted as previously done
# Analyze sentiment of titles
sentiment_scores <- get_nrc_sentiment(data$titles)
# Calculate overall sentiment score (positive - negative)
data$sentiment_score <- sentiment_scores$positive - sentiment_scores$negative
# Categorize sentiment
data$sentiment_category <- ifelse(data$sentiment_score > 0, "positive",
ifelse(data$sentiment_score < 0, "negative", "neutral"))
# Plot sentiment distribution per category with a more attractive design
ggplot(data, aes(x = sentiment_category, fill = kategori)) +
geom_bar(position = "dodge", color = "black") +
labs(title = "Distribusi Sentimen dalam Judul Artikel Per Kategori", x = "Sentimen", y = "Jumlah Artikel") +
theme_minimal() +
scale_fill_brewer(palette = "Set3") +
theme(
plot.background = element_rect(fill = "#FFC0CB"),
panel.background = element_rect(fill = "#FFC0CB"),
plot.title = element_text(color = "black", size = 18, face = "bold", hjust = 0.5),
axis.title = element_text(color = "black", size = 14, face = "bold"),
axis.text = element_text(color = "black", size = 12),
legend.title = element_text(color = "black", size = 14, face = "bold"),
legend.text = element_text(color = "black", size = 12),
panel.grid.major = element_line(color = "gray"),
panel.grid.minor = element_line(color = "gray"),
panel.border = element_rect(color = "black", fill = NA, size = 1.5)
)# Displaying the table
head(data,10) # Menampilkan beberapa baris pertama dari tabel yang sudah dianalisis sentimennya## titles
## 1 Viral! Akun ini Bongkar Dugaan Perselingkuhan Anji dengan Istri Orang
## 2 Polres Sragen Tangkap Pelaku Pencurian Sapi yang Dijual di Medsos
## 3 Fuji Tolak Mediasi, Eks Manajer Barata Terancam Jadi Tersangka Penggelapan
## 4 Vanessa Khong Rela Bareng Ibunya Buat Kue Indra Kenz, Sudah Direstui?
## 5 Dihujat Suporter Timnas Usai Tampil di GBK, Anang-Ashanty Klarifikasi: Hanya Ikuti Arahan Panitia
## 6 Sultan HB X Buka Suara Terkait Polemik Wacana Proyek Beach Club di Gunungkidul
## 7 Polisi Tegur WNI Bermasker 'Bule' yang Sindir Pembangunan IKN di TikTok
## 8 Karma Menimpa: Ko Apex, Pacar Dinar Candy, Ditangkap Polisi Terkait Dugaan Pemalsuan dan Penggelapan
## 9 Hotman Paris Hutapea Sebut Razman Arif Nasution Pengacara Pansos dan Tidak Tahu Malu
## 10 Viral Pemuda Ini Asyik Merokok Saat Antre di SPBU di Samata Gowa
## dates kategori sentiment_score sentiment_category
## 1 2024-06-13 Seleb 0 neutral
## 2 2024-06-13 Hot News 0 neutral
## 3 2024-06-13 Seleb 0 neutral
## 4 2024-06-13 Seleb 0 neutral
## 5 2024-06-13 Seleb 0 neutral
## 6 2024-06-13 Hot News 0 neutral
## 7 2024-06-13 Viral 0 neutral
## 8 2024-06-13 Seleb 0 neutral
## 9 2024-06-13 Hot News 0 neutral
## 10 2024-06-13 Viral 0 neutral