Pemrograman R
1. Pengantar
R adalah suatu bahasa pemrograman yang handal dan lingkungan perangkat lunak untuk
komputasi statistik dan grafis. Bahasa pemrograman R sudah digunakan secara luas bagi para
statistisi untuk mengembangkan perangkat lunak
statistik, dan analisis data.
R adalah implementasi dari bahasa pemrograman S
yang diciptakan oleh John Chambers ketika masih di
Bell Labs. R diciptakan oleh Ross Ihaka dan Robert
Gentleman di the University of Auckland, New
Zealand, dan sekarang dikembangkan oleh Tim Inti
Pengembangan R, dengan Chambers sebagai anggota.
Nama R sebagian berasal dari nama depan dari dua
pengembang R pertama (Robert Gentleman and Ross
Ihaka), dan sebagian sebagai permainan dari nama S.
R merupakan bagian dari GNU project. Kode Sumbernya tersedia secara bebas di bawah
lisensi GNU General Public License, dan versi pre-compiled binary tersedia untuk berbagai
sistem operasi. R menggunakan command line interface; namun, beberapa graphical user
interface juga tersedia untuk digunakan bersama R.
2. Instalasi R
Instalasi perangkat lunak publik R dapat diinstal dengan mengunjungi situs
[Link] dan mengikuti langkah berikut
a. Pilih Download R 3. ..... for Windows (sesuai versi yang tersedia)
b. Jika proses mengunduh file R....[Link] (sesuai versi yang tersedia) telah selesai
lakukan dobel klik pada file tersebut.
c. Ikuti instruksi instalasi sesuai keinginan dan memperhatikan kondisi komputer
Terdapat pula perangkat lunak publik RStudio yang berguna untuk memberikan tampilan
menu R yang lebih [Link] RStudio dapat dilakukan dengan mengunjungi situs
[Link] dan ikuti langkah berikut
a. Klik pada radio button pertama dari deretan radio button yang tampil
b. Klik pada Download RStudio
c. Klik pada Desktop atau RStudio for Desktop
d. Klik pada Download RStudio desktop
e. Klik pada RStudio Windows Vista/7/8/10
Contoh tampilan RStudio dapat
dilihat pada gambar di samping.
Terdapat 4 jendela yaitu jendela
script, area kerja, console dan
plot grafik. Tampilan R console
dapat dilihat pada gambar
berikutnya
3. Pembuatan Objek dalam R
3.1. Objek Vektor
Vektor dibentuk dengan perintah c(n1, n2, ..., nj)
Contoh:
x<-c(4:30)
x1=x[20:27]
y= c(3:5,7,8,9)
z= c(y,x1)
x[-c(1:20)]
Vektor dapat pula dibentuk dengan iput melalui keyboard dengan perintah scan()
X2<-scan()
1:2 4 6
4:8 10
5:
Fungsi scan() dapat menerima data dari proses copy dan paste
Contoh:
Data hasil pengukuran lingkar kepala bayi yang baru lahir diberikan di bawah ini,
331 346 342 361 342 356 345 358 345 342 343 352 337 360 342 347 346 343 334
349 338 336 352 346 337 348 339 347 351 342 365 341 340 351 353
i. Salin data di atas ke clipboard
ii. Tuliskan pada window R ekspresi berikut ini
kepala<-scan() <enter>
iii. Lakukan proses rekat ()
Operasi vektor : menambah elemen, mengurangi elemen, menggabung elemen,
penjumlahan, pengurangan, perkalian, pembagian, pangkat
3.2. Objek Matrix
Matriks dibentuk dengan perintah matrix([Link], nrow=n1, ncol=n2)
Contoh
X=matrix(x,nrow=3)
Y=matrix(x,ncol=3)
Z=matrix(x,nrow=3, byrow=T)
X[2,3]
Y[,2]
Y[1,]
3.3. Objek Array
Array merupakan pengembangan dari matriks dengan menambah dimensi lebih dari 2,
yang dibentuk dengan perintah array([Link], dim=c(n1,n2,...,nj) )
Contoh
A=array(x, c(3,3,3))
B=array(x, c(3,3,4))
3.4. Objek List
Objek list dibuat dengan perintah list(obj1, obj2,..., obj_n)
Contoh
nama=c('Bayu', 'Adi', 'Ahmad')
nilai=c(70,70,80)
tugas=c(80,85,90)
list1=list(nama, nilai, tugas)
list2=list(nama, nilai)
list3=list(li2,tugas)
list4=list(a=nama, b=nilai, c=tugas)
list4=list(nama=nama, nilai=nilai, tugas=tugas)
3.5. Objek Frame
Objek frame dibuat dengan perintah [Link](obj1, obj2,...,
obj_n). Frame mewakili suatu tabel yang memiliki nama kolom .
Contoh
fra1= [Link](nama, nilai, tugas)
Menu bantuan tatacara penulisan sintaks R dapat diperoleh dengan mengetikkan
?”sintaks”
Latihan
rm(list=ls()) #menghapus semua objek di area kerja aktif
x<-c(4:30) #membuat objek vektor dengan nama x
ls() #menampilkan semua nama objek yang telah dibuat
x1=x[20:27] #membuat subset objek
x1 #menampilkan isi objek x1
y= c(3:5,7,8,9) #membuat objek vektor dengan nama y
y #menampilkan isi objek y
z= c(y,x1) #menggabung y dan x1 menjadi z
z #menampilkan isi objek z
x[-c(1:20)] #menampilkan isi dari x selain elemen 1 s/d 20
x #bandingkan dengan x yang asli
X=matrix(x,nrow=3) # matriks dari x dengan cacah baris 3
X #menampilkan matriks X, perhatikan cara memutus vektor x
Y=matrix(x,ncol=3) # matriks dari x dengan cacah kolom 3
Y #isi matriks Y, perhatikan cara memutus vektor x
ls() #perhatikan onjek baru yang terbentuk
x1=c(,3,5,2,1,6,4,5,3,6,1,7) #error
x1=c(1,3,5,2,1,6,4,5,3,6,1,7) #benar
x1
length(x1) #panjang vektor x1
matrix(x1,nrow=3)
matrix(x1,nrow=3,ncol=5)
Z=matrix(x,nrow=3, byrow=T) #perhatikan cara memutus vektor x
Z
Y[,2] #elemen-elemen kolom ke-2
Y[1,] #elemen-elemen baris pertama
X
Y
A=array(x, c(3,3,3)) #membuat array dimensi 3x3x3
A
A[2,3,1] #cara mengambil elemen array
A[3,2,2] #cara mengambil elemen array
B=array(x, c(3,3,4)) #array dengan cacah elemen berlebih
nama=c('Bayu', 'Adi', 'Ahmad') #objek string
nama
nama=c('Bayu','Adi','Ahmad')
nama
nilai=c(70,70,80)
tugas=c(80,85,90)
list1=list(nama, nilai, tugas) #membuat objek list
list1
list1[[1]][3] #cara mengambil elemen list
list1[[3]][2] #cara mengambil elemen list
list2=list(nama, nilai)
list3=list(list2,tugas)
list3
list2
list3[[1]][[2]][2]
list3[[2]][2]
list4=list(nama=nama, nilai=nilai, tugas=tugas)
list4$nama[3]
list4$nilai[2]
frame1= [Link](nama, nilai, tugas) #membuat [Link]
frame1
frame1[3,2] #cara mengambil elemen [Link]
frame1[3,]
4. Fungsi dalam R
Fungsi (dalam R sama dengan program) merupakan kumpulan beberapa
perintah atau ekspresi yang disusun menurut algorithma tertentu serta mengikuti
aturan penulisan dalam lingkungan pemrogram R. Ekspresi dapat berupa variabel,
simbol, konstanta, bahkan fungsi yang telah ada sebelumnya dapat menjadi
ekspresi dalam fungsi yang baru. Di samping menggunakan fungsi tercadang yang
telah disediakan, kita juga dapat berkreasi untuk menciptakan fungsi baru seuai
kebutuhan. Tata tulis dalam menjalankan/menggunakan fungsi dalam R adalah
nama_fungsi(argumen1=default1,argumen2,...)
Argumen merupakan informasi/data yang diperlukan untuk operasional fungsi.
Dalam suatu fungsi suatu argumen (optional argument) mungkin telah diberi nilai
bawaan (default) sehingga jika tidak diberikan nilai baru maka nilai bawaan tersebut
akan digunakan. Sebaliknya terdapat argumen (required argument) yang harus
diberikan nilainya sebagai syarat kesempurnaan operasional fungsi.
4.1 Contoh-contoh Fungsi Tercadang R
Tabel [Link] fungsitercadang R
Fungsi dan argumen Kegunaan fungsi Contoh penggunaan
Fungsi dan argumen Kegunaan fungsi Contoh penggunaan
abs(value) nilai absolut dari value x<- -12
abs(x) #nilai absolut x=12
apply(obj,margin,fun,...) mengolah matrik obj, x<-c(3,1,2,3,5,2,4,7)
menurut margin, dengan y<-c(-2,-1,1,5,6,1,5,3)
fungi fun. Kode margin 1 A<-matrix(c(x,y),ncol=4)
apply(A,2,mean) #rata-rata per
berarti baris, 2 berarti kolom kolom
array(data, dimensi) Membuat array dari suatu array(2*c(1:24), c(4,3,2))
data dengan dimensi
tertentu
asin(p) invers sinus asin(.5)
acos(.5)
analogi :acos(p), atan(5)
atan(p), asinh(p),
acosh(p), atanh(p)
c(val1,val2,...) membentuk vektor x<-c(3,1,2,3,5,2,4,7)
y<-c(-2,-1,1,5,6,1,5,3)
a<-c(x,y)
cat(..., file=, sep=" ", mencetak ke layar atau hasil<-mean(x)
append=F) fileappend=Fberarti menulis cat(“Rata-rata x = “,hasil)
baru,append=Tditambahkan
ke file yang telah ada
ceiling(value) bilangan bulat terkecil yang ceiling(3.7) #hasilnya 4
>=value ceiling(-3.7) #hasilnya -3
(lihatfloor(value))
cos(x) Cosinus sudut radian cos(pi/3), sin(-pi/4)
tan(pi/2)
analogi :sin(x),tan(x)
cosh(x) Cosinus hiperbolik # lihat cos(x)
analogi :sinh(x),
tanh(x)
dbeta(x, shape1, shape2) densitas fungsi beta di x
dchisq(x, df) densitas chi-kuadrat di x dnorm(4,6,5) # densitas normal
dan derajat bebas df #x=4,mean=6,sd=5
Analogi :dnorm(x,
mean=0, sd=1),
dnbinom(x, size,
Fungsi dan argumen Kegunaan fungsi Contoh penggunaan
prob), dunif(x,
min=0, max=1), dan lain-
lain
eigen(A) eigen value dan eigen vektor eigen(A) #A matrik bujur sangkar
exp(x) eksponen (pangkat natural exp(-1) #1/e
e)
edit(name) mengedit objek atau fungsi edit(fungsiku)
fix(name) mengedit atau membuat fix(fungsiku)
objek atau fungsi
floor(x) bilangan bulat terbesar floor(3.4) #hasilnya 3
yang <= x
hist(x, ...) membuat histogram hist(c(x,y),prob=T)
length(x) panjang array length(c(2,5,6,7)) #jawabnya 4
lm(rumus,data,...) membuat objek model linier lm(y~x1+x2+x3)
log(x, base=exp(1)) logaritma natural log(4.3)
analogi :log10(x) log10(15)
ls() menampilkan nama objek ls()
max(x) maksimum data max(A)
mean(x) rata-rata data mean(x), mean((A)
median(x) nilai tengah data median(x), median(A)
min(x) minimum data min(x), min(A)
nrow(matrik) cacah baris matrik nrow(A)
ncol(matrik) ncol(A)
cacah kolom matrik
order(vektor) vektor posisi data jika data order(x)
tersebut diurutkan # jawab: 2 3 6 1 4 7 5 8
outer(x,y, FUNCTION) menjalankan FUNCTION outer(x,y,”*”)
meliput pada semua
pasangan elemen x dan y
Fungsi dan argumen Kegunaan fungsi Contoh penggunaan
par(mfrow=c(n,m)) membagi jendela grafik n par(mfrow=c(2x2))
baris m kolom
par(new=T) grafik berikut digambar pada par(new=T)
tempat yang sama
persp(x,y,z,...) plot 3 dimensi persp(x,y,z)
paste(x) nilai string dari x paste(x), paste(mean(x))
plot(x,y,...) membuat plot data plot(x,y,type=”l”)
prod(x) hasil kali semua elemen x prod(c(1,2,3)) #hasilnya 6
rm(x) menghapus objek x rm(x)
replace(x,pos, value) mengganti nilai arrai replace(x,3,4) #x[3] diganti 4
rep(value,n) vektor hasil pengulangan rep(1:3,3) #hasilnya
value sebanyak n kali (1,2,3,1,2,3,1,2,3)
return(val1,val2,...) mengembalikan val1,val2,... return(x,mean(x),var(x))
round(x, digit) Pembulatan round(1.5) #hasilnya 2
round(1.56,1) #hasilnya 1.6
sapply(x,FUNCTION, arg) menjalankan FUNCTION sapply(x,fungsiku, p=3)
meliput semua elemen x
seq(a,b,by=STEP) membagi interval [a,b] seq(-pi,pi,by=0.01)
seq(a,b,length=n) dengan STEP, atau panjang seq(3,9,length=1000)
n
Bandingkan denganc(1:10)
solve(matrik nxn) invers matrik solve(A)
sqrt(x) akar kuadrat x sqrt(var(x)) #standar deviasi
sum(x) jumlah vektor x sum(x)
trunc(x) nilai integer dari x trunc(1.3), trunc(1.9) #1
var(x) varian dari vektor x atau var(x) #varian sampel
matrik varian-kovarian dari var(A) #matrik var-kov
Fungsi dan argumen Kegunaan fungsi Contoh penggunaan
matrik x
[Link]() membuka jendela grafik [Link]()
4.2 Fungsi buatan sendiri
Membuat fungsi atau program baru perlu dilakukan jika fungsi bawaan R tidak dapat
memenuhi kebutuhan analisis tertentu. Sebelum membicarakan cara membuat fungsi
sendiri terlebih dulu perlu dikenalkan statemen kontrol dalam R. Statemen kontrol adalah
kata tercadang dalam R yang digunakan untuk mengatur alur program. Beberapa statemen
kontrol yang perlu diketahui disajikan di bawah ini.
a. Statement for
Digunakan untuk membuat loop dengan banyak ulangan tertentu. Tata tulisnya adalah
for(i in 1:n){
ekspresi
b. Statemen repeat
Digunakan untuk membuat loop dengan banyak ulangan tak tentu (lihat break)
c. Statemen if, ifelse, dan if ... else if ... else
Berguna untuk membuat putusan atas pilihan. Tata tulis statemen if adalah
if(kondisi)tindakan_jika_kondisi_benar
Tata tulis statement ifelse
ifelse(kondisi, tindakan_jika_kondisi_benar, tindakan_jika_kondisi_salah)
Tata tulis statement if ... else if ... else
if(kondisi1)tindakan_jika_kondisi1_benar
else if(kondisi2) tindakan_jika_kondisi2_benar
.
.
.
else tindakan_jika_semua_kondisi_di_atas_salah
d. Statemen while
Digunakan untuk melakukan proses tertentu selama kondisi yang disyaratkan masih
berlaku
while(kondisi) {
proses 1
proses 2
....
Proses n
}
e. Statemen break
Digunakan untuk keluar dari proes loop, biasanya digunakan untuk memotong statemen
repeatdigabungkan dengan statemen if. Tata tulisnya sebagai berikut
repeat {
ekspresi_berulang
if(kondisi)
break
}
Setelah memahami beberapa statemen kontrol yang sering digunakan berikut ini
disajikan tata cara membuat fungsi buatan sendiri. Agar mudah diingat fungsi buatan
sendiri hendaknya diberi nama yang mencerminkan isinya. Untuk membuat fungsi
sendiri dari prompt R dilakukan sebagai berikut
nama_fungsi<-function(arg1=default1,arg2=default2,...)
{
ekspresi1
ekspresi2
........
return(hasil)
hasil)
}
Untuk memudahkan penulisan, fungsi buatan sendiri biasanya ditulis dengan
fasilitas text editor. Untuk mengaktifkan R Editor dari prompt R dilakukan sebagai
berikut
fix(nama_fungsi)
sehingga muncul window R Editor berikut
Gambar 1.2 Window R Editor
Setelah penulisan fungsi selesai klik pada menu File pilih Save dan untuk keluar dari
editor klik pada menu File pilih Close script. Jika tidak ada pesan kesalahan berarti
penulisan fungsi sudah benar. Sebaliknya jika ada pesan kesalahan maka penulisan
fungsi perlu diperbaiki. Untuk mengedit ulang fungsi yang terakhir dibuat digunakan
fungsi
nama_fungsi<- edit(nama_fungsi)
sehingga teks yang terakhir dibuat akan ditampilkan dalam layar editor R.
Sebagai contoh cobalah membuat fungsi pengurutan bilangan dengan mengikuti
algoritma yang telah dibuat sebelumnya.
fix(kupu_kupu)
kupu_kupu<-function (k=2)
{
t<-seq(0,k*pi, by=.05)
n<-length(t)
x<-rep(0,n)
y<-rep(0,n)
for (i in 1:n){
x[i]<-sin(t[i])*( exp( cos(t[i]) )-2*cos( 4*t[i] )+( sin( t[i]/12) )^5 )
y[i]<-cos(t[i])*(exp(cos(t[i]))-2*cos(4*t[i])+(sin(t[i]/12))^5)
}
plot(x,y, type='l', lwd=1.5, col=3)
return(NULL)
}