Modul “R Fundamental for Data Science” ini adalah modul pembuka DQLab untuk topik pengolahan data menggunakan R.
Dengan durasi singkat selama 15 menit, kamu akan mempelajari dan mendapatkan hal-hal berikut:
Tools > Keyboard Shortcuts Help (Alt + Shift + K)
Shortcut 1
Shortcut 2
Shortcut 3
Shortcut 4
Shortcut 5
Shortcut 6
R Markdown
R merupakan nama sebuah bahasa pemrograman sekaligus software untuk pengolahan data dan grafik. R sangat popular saat ini karena memiliki jumlah fitur yang sangat besar yaitu mencapai puluhan ribu fitur.
Bahasa pemrograman R dan pustaka (library) dapat digunakan untuk membaca file teks, membaca database, menghasilkan berbagai grafik, menghasilkan dashboard yang menarik, hingga ke penggunaan machine learning.
Selain itu, R bersifat gratis dan open source. Artinya, dengan R kita tidak perlu biaya lisensi macam-macam untuk menggunakannya secara bebas dan luas.
Meluasnya penggunaan aplikasi yang terpasang di smartphone dan pemakaian sistem digital di seluruh perusahaan menghasilkan data dalam volume yang besar. Namun, data-data bervolume besar ini belum tentu menjadi informasi yang dibutuhkan oleh organisasi dan bisnis jika tidak diolah dengan baik.
Untuk menjawab permasalahan tersebut muncullah sebuah disiplin ilmu yang mempelajari bagaimana mengolah data menjadi informasi yang berguna yang dikenal dengan nama data science.
Seseorang yang bekerja dengan dibekali ilmu data science dinamakan data scientist yang pada saat ini merupakan salah satu profesi paling hot menurut LinkedIn.
Untuk membantu dalam pekerjaannya, data scientist perlu dibekali dengan aplikasi/kakas yang bagus. Bahasa pemrograman R dengan segala kekayaan di library (pustaka) yang dimilikinya merupakan jawaban bagi pekerjaan data scientist.
Apa yang sebenarnya membuat para data scientist tertarik belajar dan menggunakan R?
Easier - Faster - Richer - Proven
Ada empat alasan utama, yaitu:
Lebih Mudah Dipelajari (Easier): R relatif lebih mudah dipelajari dibandingkan dengan bahasa lain, seperti Java, C#, Javascript, dan lain-lain.
Lebih Cepat (Faster): Banyak fungsi R memberikan hasil jauh lebih cepat dibandingkan dengan aplikasi lain. Contoh: R dapat menghasilkan berbagai visualisasi yang menarik dalam waktu singkat, sehingga data scientist dapat jauh lebih produktif dalam memahami data dan menghasilkan informasi.
Lebih kaya fitur (Richer): Dengan puluhan ribu fitur yang terus berkembang, hampir semua permasalahan data dapat dijawab oleh R. Sebagai contoh, untuk mengatasi permasalahan optimasi stok di e-commerce, R memiliki fungsi menghasilkan rekomendasi product packaging.
Telah terbukti (Proven): R sudah digunakan oleh banyak data scientist perusahaan besar seperti Anz, Uber, dan Facebook dan memberikan solusi riil. Tidak heran jika akhirnya dari kisah sukses ini, banyak lowongan data scientist mencamtumkan R sebagai syarat keterampilan yang harus dimiliki.
"Hello World"
## [1] "Hello World"
10+7
## [1] 17
R merupakan bahasa yang dapat memiliki berbagai jenis kumpulan perintah yang diketikkan oleh pengguna. Mulai dari kumpulan perintah untuk melakukan perhitungan matematika sederhana, kumpulan perintah untuk menghasilkan grafik, kumpulan perintah untuk pemodelan berbasis statistik, hingga pemodelan berbasis pembelajaran mesin (machine learning).
9
## [1] 9
"Budi"
## [1] "Budi"
9*3
## [1] 27
Pada praktik sebelumnya kita telah menampilkan teks dan angka dengan menuliskannya secara langsung. Namun, alangkah baiknya jika kita menggunakan fungsi bawaan yang bernama print.
print("Hello World")
## [1] "Hello World"
print(3 + 4)
## [1] 7
Bahasa pemograman R bersifat case sensitive. Artinya, kita perlu memperhatikan penulisan kode yang dengan menggunakan huruf besar dan/atau huruf kecil. Sebagai contoh: “Budi”, “budi”, dan “BUDI” bukan merupakan teks yang sama.
Selain itu, pada saat mengirimkan jawaban melalui code editor di DQLab, format angka (termasuk di penulisan tanggal) sangat berpengaruh terhadap penilaian apakah jawaban benar atau tidak. Sebagai contoh:
01 dan 1 merupakan dua angka yang dianggap berbeda pada saat pengiriman jawaban.
“12-01-1987” dan “12-1-1987” adalah hal berbeda pada saat mengirimkan jawaban.
01
## [1] 1
1
## [1] 1
"01-01-1980"
## [1] "01-01-1980"
"1-1-1980"
## [1] "1-1-1980"
"Budi"
## [1] "Budi"
"BUDI"
## [1] "BUDI"
Function merupakan suatu objek di R yang parameternya dapat diisi oleh satu atau beberapa teks maupun satu atau beberapa angka. Setelah dieksekusi, function ini akan mengembalikan satu atau beberapa nilai sesuai dengan tujuan function itu diperuntukkan untuk apa.
Mari kita lihat satu function yang akan sering digunakan, yaitu c. Fungsi c ini digunakan untuk membuat urutan angka maupun teks (ini merupakan peruntukan function-nya).
c(5:10)
## [1] 5 6 7 8 9 10
Alangkah baiknya setiap perintah di setiap baris yang ditunjukkan sebelumnya disimpan ke dalam sebuah variable. Untuk membuat sebuah variable, kita dapat mendefinisikan namanya dan kemudian mengisinya dengan isian berupa angka, teks, bilangan dengan operasi matematis, atau hasil sebuah function.
budi_berat_kg <- 68
santi_berat_kg <- 54.5
budi_berat_kg
## [1] 68
santi_berat_kg
## [1] 54.5
pi <- 3.14
pi
## [1] 3.14
perlu mengenal tiga tipe data yang paling sering digunakan di R, yaitu
vector
list
data frame
Vector hanya dapat diisi dengan salah satu tipe data saja di seluruh elemennya, misalnya angka saja ataupun teks saja. Pembuatan vector menggunakan fungsi c, dan bisa diakses dengan accessor dengan angka indeks yang diapit kurung siku. Namun, jika berupa named vector, maka indeksnya adalah berupa teks.
List adalah tipe data yang bisa diisi dengan lebih dari satu tipe data di seluruh elemennya, dengan campuran teks dan angka. Pembuatan list adalah menggunakan fungsi list, dan elemen pada list dapat diakses dengan accessor yang diapit kurung siku seperti pada vector.
Data Frame adalah tipe data yang terdiri dari satu atau beberapa vector ataupun list. Untuk membuat data frame kita menggunakan fungsi data.frame. Data frame ini dapat diakses dengan menggunakan accessor $ diikuti nama kolom, dan juga angka indeks.
Vector merupakan tipe data sederhana di R yang menyimpan deretan nilai (lebih dari satu nilai) dengan tipe data sama untuk setiap elemennya. Maksudnya, jika tipe datanya berupa teks maka seluruh elemennya harus bertipe teks. Demikian juga jika tipenya angka maka seluruh elemennya berisi angka semua.
Vector didefinisikan dengan nama function yang memilki satu huruf saja: c, yang telah kamu pelajari dan praktikkan sebelumnya. Sebagai contoh untuk membuat vector yang isinya angka dengan nilai 2, 5, dan 7, maka perintahnya adalah c(2, 5, 7).
# Ini adalah contoh vector untuk angka numerik dengan 3 data c(4, 5, 6)
c(4, 5, 6)
## [1] 4 5 6
# Variable bernama angka dengan input berupa vector
angka <- c(4, 5, 6)
# Tampilkan isi variable angka dengan fungsi print
print(angka)
## [1] 4 5 6
Operator “:” atau titik dua merupakan operator yang digunakan untuk mempersingkat penulisan dari nilai-nilai vector yang berurutan. Sebagai contoh, perintah c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) yang membentuk vector dengan angka 1 sampai dengan 10 dapat disingkat dengan c(1:10).
angka1 <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
print(angka1)
## [1] 1 2 3 4 5 6 7 8 9 10
angka2 <- c(1:10)
print(angka2)
## [1] 1 2 3 4 5 6 7 8 9 10
Selain angka, vector juga bisa diisi dengan teks.
# Variable nama_mahasiswa dengan input character
nama_mahasiswa <- c("Amira", "Budi", "Charlie")
print(nama_mahasiswa)
## [1] "Amira" "Budi" "Charlie"
nama_mahasiswa
## [1] "Amira" "Budi" "Charlie"
# Buat vector variable bernama angka yang isinya 20 s/d 30
angka <- c(20:30)
print(angka)
## [1] 20 21 22 23 24 25 26 27 28 29 30
# Tampilkan isi variable angka pada posisi ke 3
print(angka[3])
## [1] 22
# Tampilkan isi variable angka pada posisi ke 5 gunakan kurung siku ganda
print(angka[[5]])
## [1] 24
# Tampilkan isi variable angka pada posisi ke 4 s/d 6
print(angka[4:6])
## [1] 23 24 25
# Buat vector teks dengan nama kode_prodi yang diisi sesuai petunjuk soal
kode_prodi <- c("DKV","ILKOM","ICT")
# Tampilkan isi indeks ketiga dari kode_prodi
print(kode_prodi[3])
## [1] "ICT"
Selain dengan angka, indeks pada vector juga dapat dilengkapi dengan nama untuk tiap elemennya dengan menggunakan format penulisan name=value. Penggunaan format name=value disebut dengan named vector.
#Membuat named vector dengan nama nilai
nilai <- c(statistik = 89, fisika = 95, ilmukomunikasi = 100)
#Menampilkan isi variable nilai
print(nilai)
## statistik fisika ilmukomunikasi
## 89 95 100
#Menampilkan isi dengan nama fisika
print(nilai["fisika"])
## fisika
## 95
#Buat variable profil sesuai permintaan soal
profil <- c(nama="Budi", tempat_tinggal="Jakarta", tingkat_pendidikan="S1")
#Tampilkan variable profil
print(profil)
## nama tempat_tinggal tingkat_pendidikan
## "Budi" "Jakarta" "S1"
List merupakan jenis data di R yang mirip dengan vector. Perbedaannya adalah list dapat menyimpan lebih dari satu tipe data dasar di setiap elemennya. Untuk memasukkan isi ke dalam struktur data ini kita gunakan function list.
# List disimpan dalam variable dengan nama list_random
list_random <- list(2, "Budi", 4)
# Menampilkan isi list
list_random
## [[1]]
## [1] 2
##
## [[2]]
## [1] "Budi"
##
## [[3]]
## [1] 4
# List disimpan dalam variable dengan nama dati2
dati2 <- list(nama = "Denpasar", propinsi = "Bali")
# Menampilkan isi list dati2
dati2
## $nama
## [1] "Denpasar"
##
## $propinsi
## [1] "Bali"
# Buat variable kota sesuai permintaan soal
kota <- list(nama_kota="Makassar", propinsi="Sulawesi Selatan", luas_km2=199.3)
# Tampilkan isi variable list kota
kota
## $nama_kota
## [1] "Makassar"
##
## $propinsi
## [1] "Sulawesi Selatan"
##
## $luas_km2
## [1] 199.3
Untuk mengambil isi list, kamu dapat mengambil dari posisi index-nya. Ketentuan dan caranya sama persis dengan apa yang telah kamu pelajari di vector.
# Membentuk list dengan 2 angka dan 1 character
list_saya <- list(2, "Budi", 4)
# Menampilkan index kedua dengan aksesor kurung siku tunggal
list_saya[2]
## [[1]]
## [1] "Budi"
# Menampilkan index kedua dengan aksesor kurung siku ganda
list_saya[[2]]
## [1] "Budi"
# Menampilkan index kedua s/d ketiga
list_saya[2:3]
## [[1]]
## [1] "Budi"
##
## [[2]]
## [1] 4
list_satu <- list(1, "Online", TRUE)
list_satu[1]
## [[1]]
## [1] 1
Mines indez to delete/hide values on that index
mylist <- list("Belajar R", 1, 3, FALSE, 4)
mylist[-1]
## [[1]]
## [1] 1
##
## [[2]]
## [1] 3
##
## [[3]]
## [1] FALSE
##
## [[4]]
## [1] 4
Range mines index
mylist[-3:-4]
## [[1]]
## [1] "Belajar R"
##
## [[2]]
## [1] 1
##
## [[3]]
## [1] 4
Range mines 1-5 = -4
mylist[1-5]
## [[1]]
## [1] "Belajar R"
##
## [[2]]
## [1] 1
##
## [[3]]
## [1] 3
##
## [[4]]
## [1] 4
Index error
# mylist[1,2,5]
This for multiple index
mylist[1][2][5]
## [[1]]
## NULL
Data frame merupakan jenis struktur data yang dirancang untuk representasi tabel, yang terdiri dari atas kolom dengan tiap kolom berisi list ataupun vector dengan jumlah data yang sama.
Untuk membuat data frame kita bisa gunakan function data.frame.
#Membuat dua variable vector
fakultas <- c("Bisnis", "D3 Perhotelan", "ICT", "Ilmu Komunikasi", "Seni dan Desain")
jumlah_mahasiswa <- c(260, 28, 284, 465, 735)
#Membuat data frame dari kedua vector di atas
info_mahasiswa <- data.frame(fakultas, jumlah_mahasiswa)
#Melihat isi data frame
info_mahasiswa
#Buat vector baru sebagai representasi akreditasi
akreditasi <- c("A", "A", "B", "A", "A")
#Buat data frame dari ketiga vector di atas
info_mahasiswa <- data.frame(info_mahasiswa, akreditasi)
info_mahasiswa
Data frame memiliki banyak kolom dan dapat diakses dengan melalui nama kolom yang dimilikinya. Caranya adalah menggunakan accessor dengan tanda $ yang diikuti dengan nama kolom.
#Membuat tiga variable vector
fakultas <- c("Bisnis", "D3 Perhotelan", "ICT", "Ilmu Komunikasi", "Seni dan Desain")
jumlah_mahasiswa <- c(260, 28, 284, 465, 735)
akreditasi <- c("A","A","B","A","A")
#Membuat data frame dari kedua vector di atas
info_mahasiswa <- data.frame(fakultas, jumlah_mahasiswa, akreditasi)
#Menampilkan kolom jumlah_mahasiswa
info_mahasiswa$jumlah_mahasiswa
## [1] 260 28 284 465 735
#Menampilkan kolom fakultas
info_mahasiswa$fakultas
## [1] "Bisnis" "D3 Perhotelan" "ICT" "Ilmu Komunikasi"
## [5] "Seni dan Desain"
Jika kita ingin eksplorasi dan menganalisa data lebih jauh, grafik adalah tipe tampilan yang tidak bisa ditawar. R memiliki pustaka (library) dengan fungsi-fungsi yang kaya untuk menghasilkan grafik.
Bab ini akan berisi perkenalan singkat dan padat untuk menunjukkan kemampuan ini dengan menggunakan package ggplot2. Dengan pendekatan yang bersifat demo, kamu cukup mengikuti petunjuk sehingga bisa membayangan apa saja yang dapat kamu lakukan dengan ggplot2.
Untuk fungsi yang lebih powerful seperti menghasilkan grafik yang advanced (lanjut), kita perlu menggunakan package.
Untuk memahami konsep package ini, pada editor terdapat potongan code untuk menghasilkan grafik. Cobalah jalankan, dan kamu akan mendapatkan error seperti ini.
Error in ggplot(info_mahasiswa, aes(x = fakultas, y = jumlah_mahasiswa, :
could not find function "ggplot"
# gambar <- ggplot(info_mahasiswa, aes(x=fakultas, y=jumlah_mahasiswa, fill=fakultas))
Terlihat ada tampilan error berwarna merah yang menyatakan bahwa fungsi ggplot tidak ditemukan. Ini karena fungsi tersebut bukan fungsi standar, tapi harus menggunakan package ggplot2 dengan fungsi library.
fakultas <- c("Bisnis", "D3 Perhotelan", "ICT", "Ilmu Komunikasi", "Seni dan Desain")
jumlah_mahasiswa <- c(260, 28, 284, 465, 735)
akreditasi <- c("A","A","B","A","A")
info_mahasiswa <- data.frame(fakultas, jumlah_mahasiswa, akreditasi)
info_mahasiswa
#Menggunakan package ggplot2
library("ggplot2")
## Warning: package 'ggplot2' was built under R version 4.1.3
#Membuat kanvas
gambar <- ggplot(info_mahasiswa, aes(x=fakultas, y=jumlah_mahasiswa, fill=fakultas))
gambar <- gambar + geom_bar(width=1, stat="identity")
gambar
Pada praktek kali ini, kita akan menghasilkan bar chart sederhana dengan menggunakan variabel data frame bernama info_mahasiswa yang kita hasilkan pada subbab “Vector, List dan Data Frame”. Variable ini masih bersifat statis atau hard code, artinya data frame ini bukan berdasarkan pembacaan dari suatu file atau database.
Cara membuat grafik di R bisa menggunakan banyak cara, salah satunya dengan library ggplot2 - dimana kita menggambar chart secara bertahap, yaitu dengan konsep layering (lapisan demi lapisan).
#Membuat dua vector
fakultas <- c("Bisnis", "D3 Perhotelan", "ICT", "Ilmu Komunikasi", "Seni dan Desain")
jumlah_mahasiswa <- c(260, 28, 284, 465, 735)
akreditasi <- c("A","A","B","A","A")
#Buat data frame dari ketiga vector di atas
info_mahasiswa <- data.frame(fakultas, jumlah_mahasiswa, akreditasi)
info_mahasiswa
#Menggunakan package ggplot2
library(ggplot2)
# Membuat kanvas
# Lapisan pertama kita ibaratkan sebagai "kanvas" lukisan
# hasil ggplot2 disimpan pada variable gambar. Variable ini yang akan menyimpan seluruh grafik dan digunakan untuk menggambar
gambar <- ggplot(info_mahasiswa, aes(x=fakultas, y=jumlah_mahasiswa, fill=fakultas))
# Penambahan bentuk, warna dan ukuran dilakukan dengan menggunakan tanda operator plus ( + ) diikuti fungsi terkait.
#Menambahkan objek bar chart, simpan kembali sebagai variable gambar
gambar <- gambar + geom_bar(width=1, stat="identity")
#Menambahkan judul grafik
gambar <- gambar + ggtitle("Jumlah Mahasiswa per Fakultas")
#Menambahkan caption pada sumbu x
gambar <- gambar + xlab("Nama Fakultas")
#Menambahkan caption pada sumbu y
gambar <- gambar + ylab("Jumlah Mahasiswa")
#Menggambar grafik
gambar
Secara umum, pengolahan data di R mengharuskan membaca file dari spreadsheet, contohnya Excel. Di sub bab ini, kita akan menggunakan file yang berisi data jumlah mahasiswa tiap angkatan per tahun
File bernama mahasiswa.xlsx akan dibaca dengan menggunakan fungsi read.xlsx dari package openxlsx dengan cara berikut.
# install.packages("openxlsx")
#Menggunakan package ggplot2
library(ggplot2)
#Menggunakan package openxlsx
library(openxlsx)
## Warning: package 'openxlsx' was built under R version 4.1.3
#Membaca file mahasiswa.xlsx
mahasiswa <- read.xlsx("https://storage.googleapis.com/dqlab-dataset/mahasiswa.xlsx",sheet = "Sheet 1")
#Menampilkan data
print(mahasiswa)
## ANGKATAN Fakultas Prodi Kode JUMLAH
## 1 2015 Bisnis Akuntansi AKUN 88
## 2 2016 Bisnis Akuntansi AKUN 85
## 3 2017 Bisnis Akuntansi AKUN 103
## 4 2016 Seni dan Desain Arsitek AR 28
## 5 2017 Seni dan Desain Arsitek AR 45
## 6 2015 Seni dan Desain Desain Komunikasi Visual DKV 279
## 7 2016 Seni dan Desain Desain Komunikasi Visual DKV 314
## 8 2017 Seni dan Desain Desain Komunikasi Visual DKV 337
## 9 2015 Seni dan Desain Film dan Televisi FTV 284
## 10 2016 Seni dan Desain Film dan Televisi FTV 274
## 11 2017 Seni dan Desain Film dan Televisi FTV 300
## 12 2015 Ilmu Komunikasi Ilmu Komunikasi ILKOM 499
## 13 2016 Ilmu Komunikasi Ilmu Komunikasi ILKOM 275
## 14 2017 Ilmu Komunikasi Ilmu Komunikasi ILKOM 313
## 15 2015 Ilmu Komunikasi Jurnalistik JR 1
## 16 2016 Ilmu Komunikasi Jurnalistik JR 251
## 17 2017 Ilmu Komunikasi Jurnalistik JR 186
## 18 2015 Bisnis Manajemen MAN 169
## 19 2016 Bisnis Manajemen MAN 163
## 20 2017 Bisnis Manajemen MAN 160
## 21 2017 D3 Perhotelan Perhotelan HTL 28
## 22 2015 ICT Sistem Informasi SI 104
## 23 2016 ICT Sistem Informasi SI 95
## 24 2017 ICT Sistem Informasi SI 113
## 25 2015 ICT Sistem Komputer SK 20
## 26 2016 ICT Sistem Komputer SK 20
## 27 2017 ICT Sistem Komputer SK 18
## 28 2016 ICT Teknik Elektro TE 4
## 29 2017 ICT Teknik Elektro TE 7
## 30 2016 ICT Teknik Fisika TF 7
## 31 2017 ICT Teknik Fisika TF 16
## 32 2015 ICT Teknik Informatika TI 125
## 33 2016 ICT Teknik Informatika TI 168
## 34 2017 ICT Teknik Informatika TI 164
## 35 2017 ICT Teknik Informatika Dual Degree TID 6
#Menampilkan kolom Prodi
print(mahasiswa$Prodi)
## [1] "Akuntansi" "Akuntansi"
## [3] "Akuntansi" "Arsitek"
## [5] "Arsitek" "Desain Komunikasi Visual"
## [7] "Desain Komunikasi Visual" "Desain Komunikasi Visual"
## [9] "Film dan Televisi" "Film dan Televisi"
## [11] "Film dan Televisi" "Ilmu Komunikasi"
## [13] "Ilmu Komunikasi" "Ilmu Komunikasi"
## [15] "Jurnalistik" "Jurnalistik"
## [17] "Jurnalistik" "Manajemen"
## [19] "Manajemen" "Manajemen"
## [21] "Perhotelan" "Sistem Informasi"
## [23] "Sistem Informasi" "Sistem Informasi"
## [25] "Sistem Komputer" "Sistem Komputer"
## [27] "Sistem Komputer" "Teknik Elektro"
## [29] "Teknik Elektro" "Teknik Fisika"
## [31] "Teknik Fisika" "Teknik Informatika"
## [33] "Teknik Informatika" "Teknik Informatika"
## [35] "Teknik Informatika Dual Degree"
Setelah memiliki kemampuan membaca sumber data dari luar yaitu file Excel yang berisi data jumlah mahasiswa, kita akan kembali menghasilkan grafik sebaran yang sudah kita lakukan sebelumnya
library(ggplot2)
#Menggunakan package openxlsx
library(openxlsx)
#Membaca file mahasiswa.xlsx
mahasiswa <- read.xlsx("https://storage.googleapis.com/dqlab-dataset/mahasiswa.xlsx",sheet = "Sheet 1")
#Membuat kanvas
gambar <- ggplot(mahasiswa, aes(x=Fakultas, y=JUMLAH, fill=Fakultas))
#Menambahkan objek bar chart, simpan kembali sebagai variable gambar
gambar <- gambar + geom_bar(width=1, stat="identity")
#Menggambar grafik
gambar
Grafik batang yang telah ditampilkan sebelumnya cukup baik. Namun, informasi yang terkandung masih belum diekplorasi lebih detail. Sebagai contoh, bagaimanakah jika kita ingin melihat trend jumlah mahasiswa tiap fakultas dari tahun ke tahun?
library(ggplot2)
#Menggunakan package openxlsx
library(openxlsx)
#Membaca file mahasiswa.xlsx
mahasiswa <- read.xlsx("https://storage.googleapis.com/dqlab-dataset/mahasiswa.xlsx",sheet = "Sheet 1")
#Menghitung Jumlah Data by Fakultas
summarybyfakultas <- aggregate(x=mahasiswa$JUMLAH, by=list(Kategori=mahasiswa$Fakultas, Tahun=mahasiswa$ANGKATAN), FUN=sum)
summarybyfakultas <- setNames(summarybyfakultas, c("fakultas","tahun", "jumlah_mahasiswa"))
summarybyfakultas
summarybyfakultas$tahun = as.factor(summarybyfakultas$tahun)
ggplot(summarybyfakultas, aes(x=fakultas, y=jumlah_mahasiswa)) +
geom_bar(stat = "identity", aes(fill = tahun), width=0.8, position = position_dodge(width=0.8)) +
theme_classic()
Dari grafik di atas terlihat peningkatan secara konsiten dari tahun ke tahun oleh fakultas “ICT” dan “Seni dan Desain”. Di samping itu, Fakultas “D3 perhotelan” juga terlihat baru muncul di tahun 2017. Untuk fakultas “Bisnis” dan “Ilmu Komunikasi” terlihat fluktuasi jumlah mahasiswa selama tiga tahun.
Pie chart merupakan chart favorit bagi banyak analis untuk menunjukkan proporsi data. Berdasarkan data frame mahasiswa, jumlah mahasiswa per fakultas adalah kasus proporsi yang dapat ditampilkan dengan pie chart.
library(ggplot2)
library(openxlsx)
#Membaca file mahasiswa.xlsx
mahasiswa <- read.xlsx("https://storage.googleapis.com/dqlab-dataset/mahasiswa.xlsx",sheet = "Sheet 1")
#Menghitung Jumlah Data by Fakultas
summarybyfakultas <- aggregate(x=mahasiswa$JUMLAH, by=list(Kategori=mahasiswa$Fakultas), FUN=sum)
summarybyfakultas <- setNames(summarybyfakultas, c("fakultas","jumlah_mahasiswa"))
piechart<- ggplot(summarybyfakultas, aes(x="", y=jumlah_mahasiswa, fill=fakultas))+ geom_bar(width = 1, stat = "identity")
piechart <- piechart + coord_polar("y", start=0)
piechart <- piechart + ggtitle("Disribusi Mahasiswa per Fakultas")
piechart <- piechart + scale_fill_brewer(palette="Blues")+ theme_minimal()
piechart <- piechart + guides(fill=guide_legend(title="Fakultas"))
piechart <- piechart + ylab("Jumlah Mahasiswa")
piechart
Terlihat bahwa porsi fakultas “Seni dan Desain” dan “Ilmu Komunikasi” menempati porsi terbesar. Angka 0 s/d 5000 yang ditampilkan di luar pie chart menunjukkan rentang jumlah mahasiswa secara akumulatif.
Pengerjaan filtering di data frame dapat dilakukan dengan menambahkan operator %in% dengan input berupa vector.
library("ggplot2")
library("openxlsx")
#Membaca file mahasiswa.xlsx
mahasiswa <- read.xlsx("https://storage.googleapis.com/dqlab-dataset/mahasiswa.xlsx",sheet = "Sheet 1")
#Menghitung Jumlah Data by Fakultas
summarybyfakultas <- aggregate(x=mahasiswa$JUMLAH, by=list(Kategori=mahasiswa$Fakultas, Tahun=mahasiswa$ANGKATAN), FUN=sum)
summarybyfakultas <- setNames(summarybyfakultas, c("fakultas","tahun", "jumlah_mahasiswa"))
summarybyfakultas
summarybyfakultas$tahun = as.factor(summarybyfakultas$tahun)
summarybyfakultas[summarybyfakultas$fakultas %in% c("ICT", "Ilmu Komunikasi"),]
ggplot(summarybyfakultas[summarybyfakultas$fakultas %in% c("ICT", "Ilmu Komunikasi"),], aes(x=fakultas, y=jumlah_mahasiswa)) +
geom_bar(stat = "identity", aes(fill = tahun), width=0.8, position = position_dodge(width=0.8)) +
theme_classic()
Grafiknya sama dengan subbab “Tren Jumlah Mahasiswa dari Tahun ke Tahun”
tapi sudah dengan filter dua fakultas, yaitu “ICT” dan “Ilmu
Komunikasi”.
di sini summarybyfakultas$fakultas %in%c(“ICT”, “Ilmu Komunikasi”) artinya melakukan filter data yang ada di kolom fakultas dari data frame summarybyfakultas.
Sedangkan perintah lengkap summarybyfakultas[summarybyfakultas$fakultas %in%c(“ICT”, “Ilmu Komunikasi”),] artinya mengambil data yang sudah terfilter untuk seluruh kolom.
Comment pada R
Comment atau komentar merupakan teks yang dimasukkan di dalam kode R. Namun, comment ini tidak akan dianggap sebagai sebuah baris perintah yang dapat dieksekusi. Comment ini umumnya digunakan sebagai catatan untuk menjelaskan potongan kode yang ditulis.
Bagaimanakah caranya membuat sebuah comment? Baiklah, membuat sebuah comment sangat mudah. Caranya adalah dengan menuliskan tanda pagar (#) yang kemudian diikuti dengan tulisan/keterangan apapun.