BAB

4
RCLI: MELANGKAH MELAMPAUI MENU

Tujuan Umum
Bab ini terutama disediakan bagi pengguna R yang memerlukan kemampuan R melebihi yang telah disediakan dalam menu R Commander dengan tujuan agar pembaca dapat mendefinisikan atau menjalankan fungsi-fungsi R melalui RCLI.

Tujuan Khusus
Setelah membaca bab ini pembaca diharapkan dapat: 1. menulis skrip R; 2. mengaktifkan dan memanfaatkan pustaka R sesuai kebutuhan; 3. membuat skrip simulasi data dan analisis dengan efisien; 107

108

BAB 4. RCLI: MELANGKAH MELAMPAUI MENU

4. memahami, meniru, dan memodifikasi keluaran yang dihasilkan oleh R Commander melalui RCLI.

4.1. R dengan RCLI
Dengan menggunakan RCLI diperoleh bentuk tampilan R-Console yang sama, baik dengan menggunakan sistem operasi Windows maupun Linux. Bentuk tampilan layar R console untuk R versi 2.0.0 adalah bagai berikut ini.
R version 2.6.1 (2007-11-26) Copyright (C) 2007 The R Foundation for Statistical Computing ISBN 3-900051-07-0 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R.

Dengan adanya RGUI SciViews, seperti telah dibahas sebelumnya, maka penulisan dan eksekusi skrip dapat lebih mudah dilakukan melalui Jendela Command SciViews. Beberapa keuntungan menggunakan Jendela Command SciViews adalah: 1. telah dilengkapi panel penting seperti buka skrip, simpan skrip, dan eksekusi skrip;

4.1. R DENGAN RCLI

109

2. dapat memeriksa kecocokan pasangan tanda kurung (), dan {}; 3. bisa memberi arahan dalam memanggil fungsi yang telah didefinisikan; 4. dapat mengeksekusi skrip per baris atau secara keseluruhan; 5. tampilan memberikan warna berbeda (script highlighting) untuk notasi tertentu dan antara skrip dengan komentar.

Gambar 4.1: Skrip pada Jendela Command SciViews. Semua kemampuan tersebut sangat membantu baik dalam mengedit maupun dalam mengeksekusi skrip (Lihat Gambar 4.1).

library(svMisc) library(svWidgets) library(svIDE) library(tcltk) library(tcltk2) Tampilan Tinn-R dapat dilihat pada Gambar 4. kita harus mengaktifkan beberapa paket dengan perintah berikut melalui RConsule atau melalui Tinn-R. Definisi dalam R menggunakan notasi <-. R sangat peka terhadap huruf besar/ kecil (case sensitive).19. Pada CD terlampir juga telah disediakan program Tinn-R versi 1. Untuk mengoptimalkan komunikasi dengan Tinn-R (misalnya melacak paket-paket dan objekobjek yang aktif).110 BAB 4. Seperti halnya S-Plus. Pada Contoh berikut objek X bernilai 9 dan objek x bernilai 8. yaitu Tinn-R. NamaObjek<-definisi Contoh 4. tersedia juga editor dengan kemampuan sangat mirip dengan SciViews yang juga secara khusus dirancang untuk R.2 R termasuk pemrograman berorentasi objek. >x<-2^3 >X<-3^2 >x [1] 8 . Editor Skrip dengan Tinn-R Selain dengan SciView seperti telah diuraikan sebelumnya. Perhatikan bahwa notasi garis bawah (under score) ” ” yang biasa dipakai pada S-Plus bermakna lain pada R. Semua hal yang dikerjakan dalam R dapat disimpan dalam bentuk objek dengan mendefinisikannya.2.1. RCLI: MELANGKAH MELAMPAUI MENU 4.

Beberapa Fungsi Penting dalam R R telah dilengkapi dengan banyak fungsi yang dapat dimanfaatkan untuk penulisan skrip program. >X [1] 9 Objek R dapat berupa konstanta.3. Selain fungsi-fungsi yang terdapat dalam .3.2: Tampilan Tinn-R.4. Agar objek yang didefinisikan dapat disimpan secara permanen. BEBERAPA FUNGSI PENTING DALAM R 111 Gambar 4. maka pada akhir penutupan program R harus dijawab Y (yes) ketika diminta konfirmasi Save workspace image ? 4. vektor/ matriks atau fungsi.

atan() sinh(). Berikut beberapa contoh penerapan dari fungsi-fungsi tersebut. Terhadap matriks atau vektor. cosh(). cos−1 . operasi tersebut bekerja perunsur.1. tanh exp.112 BAB 4. Fungsi Dasar Matematika Beberapa fungsi dasar telah didefinisikan secara internal di dalam R. tanh() exp().1: Daftar Beberapa Fungsi Matematika Penting dalam R No 1 2 3 4 5 6 7 8 Nama Fungsi harga mutlak goniometri invers goniometri hiperbolikus exponensial dan log logaritma 10 gamma bilangan bulat terkecil yang tidak kurang dari bilangan tertentu bilangan bulat terbesar yang tidak lebih dari bagian bulat suatu bilangan bilangan bulat terdekat pembulatan ke desimal tertentu Notasi Matematika || sin.3. cos(). cosh. Fungsi-fungsi tersebut dapat dilihat pada Tabel 4. ln ln10 log Γ() x Fungsi R abs() sin(). Tabel 4. 4. banyak fungsi yang didefinisikan dalam berbagai pustaka R. tan−1 sinh. acos(). tan sin−1 . RCLI: MELANGKAH MELAMPAUI MENU paket standar.1. tan() asin(). log() log10() gamma() ceiling() 9 10 11 12 x floor() tranc() round() signif . cos.

285714 5. operasi hitung biasa dapat dilakukan dan itu akan dikerjakan berdasarkan unsur-unsur yang bersesuaian seperti pada contoh di atas.10. >x<-seq(0. Contoh 4. round(x) [1] 0 1 3 >floor(x) [1] 0 1 2 > ceiling(x) 4 4 6 5 7 7 9 10 8 10 . Misalkan kita ingin membentuk barisan dengan nilai awal 0.5) [1] 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 > rep(1:3.5) [1] "A" "B" "C" "A" "B" "C" "A" "B" "C" "A" "B" "C" "A" "B" "C" > rep(1:3.3. BEBERAPA FUNGSI PENTING DALAM R 113 4. maka perintah dan hasilnya adalah sebagai berikut.3.428571 2.714286 [8] 10.length=8) x [1] 0.each=5) [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 > rep(1:3.142857 8. nilai akhir 10 dan banyaknya unsur 10.5) [1] 1 1 2 2 3 3 1 1 2 2 3 3 1 1 2 2 3 3 1 1 2 2 3 3 1 1 2 2 3 3 Beberapa cara pembulatan pecahan desimal dapat dilakukan dengan berbagai perintah berikut."B".857143 4.2. R memiliki operasi dasar seperti yang ditunjukkan dalam Tabel 4.000000 7.each=2. Khusus untuk opersi vektor dan matriks.571429 > rep(c("A"."C").2. Operasi Vektor dan Matriks Untuk matriks atau vektor yang berdimensi sama.000000 1.4.2 pada halaman 88.

seq(awal. akhir.2: Daftar Operasi Vektor dan Matriks dalam R. xij v[i].each=n) xT t(x) det(x) det(x) D diag(data) diag(matriks) tr(matriks) xy x %*% y x−1 solve(x) f (x) sum(f(x)) 12 f (x) prod(f(x)) 13 vi . x[i. Operasi lanjut yang lebih spesifik dapat dilihat pada pustaka matrix No Nama Fungsi/ Operasi Notasi Matematika x Fungsi R 1 2 3 4 5 6 7 8 9 10 11 pembentukan matriks pembentukan barisan barisan berpola transpose matriks determinan matriks matriks diagonal diagonal matriks teras (trace) matriks perkalian matriks inverse matriks jumlah berturutan elemen. akhir. replik) atau rep((elemen).j] . j matriks x matrix(data. kenaikan). RCLI: MELANGKAH MELAMPAUI MENU Tabel 4. seq(awal.elemen yang sudah dikenakan fungsi f hasil kali berturutan elemen-elemen yang sudah dikenakan fungsi f menunjuk elemen ke i vektor v atau elemen ke i. length=n) rep((el.114 BAB 4. nbaris.). nkolom).

BEBERAPA FUNGSI PENTING DALAM R [1] 0 2 3 5 6 8 9 10 >signif(x.] 8 [2.3.286 5.1] [1.57 10.00 > sum(log(x)) [1] 5.6).] 1.43 2.00 1.4) [1] 0.00 > signif(x.86 4.4. maka hasil berbagai operasi hitung biasa di antara kedua vektor ini ⎝3⎠ 6 adalah > x<-matrix(c(4.3) [1] 0.000 115 ⎛ ⎞ 4 ⎜5⎟ ⎟ Contoh 4.429 2.] 36 > x/y [.1) > x*y [.1] [1. yaitu X = ⎜ ⎝3⎠ dan Y = 6 ⎛ ⎞ 2 ⎜4⎟ ⎜ ⎟ . Misalnya.] 1.] 9 [4.886104 > prod(log(x)) [1] 4.4.] 20 [3.3.1) > y<-matrix(c(2.3.714 7.] 2.571 10.857 4.4.6).25 [3.14 8.29 5. kita memiliki dua vektor.143 8.71 7.5.000 1.4.00 [2.39191 .] 1.3.00 [4.

] 8 16 12 24 [2.3] [. Contoh 4.01369863 > x[2] [1] 5 4. R juga mempunyai sekumpulan fungsi dasar yang biasa dipergunakan dalam bidang statistika.2] [.] 6 12 9 18 [4.3.] 12 24 18 36 > t(x)%*%y [.fungsi ini dirangkum pada Tabel 4.3. > x%*%t(y) [.3. Y seperti pada contoh sebelumnya. Jika masing-masing vektor diperlakukan sebagai data. RCLI: MELANGKAH MELAMPAUI MENU Hasil beberapa operasi vektor atau matriks diperoleh seperti berikut.116 BAB 4.4. Variabel dalam fungsi statistika ini berupa vektor data.] 10 20 15 30 [3.1] [1. Fungsi. Diketahui dua vektor X.4] [1.] 73 >solve(t(x)%*%y) [.1] [1. Fungsi Dasar Statistika Selain fungsi dasar dalam matematika.] 0. maka hasil terhadap beberapa fungsi statistika tadi adalah: > min(x) [1] 3 > max(y) .1] [.

max() range() mean(). max range ¯ .] 2. maksimum range mean.y) [.916667 > cor(x.4.endtable [1] 6 > mean(x) [1] 4. median() var() cor(x. variance correlation ringkasan data contoh/ sampling data Notasi Statistika min. BEBERAPA FUNGSI PENTING DALAM R 117 Tabel 4. median x S2 ρxy Fungsi perintah dalam R min().30. median.5 > var(y) [.8315218 > range(x) [1] 3 6 > range(y) [1] 2 6 > sample(0:1.1] [1.replace=T) # simulasi Tos Uang logam [1] 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 1 0 0 1 1 1 0 1 0 0 0 1 .1] [1.3.] 0.3: Fungsi Dasar Statistika pada R No 1 2 3 4 5 6 7 Nama Fungsi minimum.y) summary() sample() range memberikan informasi minimum dan maksimum secara serempak.

30. gamma (Gamma).4. binom(Binomial). .4.fungsi ini dapat dilihat pada Tabel 4. F(F ). poisson.15. pois (Poisson).replace=T) [1] "G" "G" "A" "A" "G" "G" "A" "A" "G" "G" "G" "A" "A" "G" "G" > sample(1:6.t(t). distribusi merupakan nama-nama distribusi yang tersedia pada R di antaranya beberapa yang penting yang banyak dipakai adalah norm (normal). RCLI: MELANGKAH MELAMPAUI MENU > sample(c("A".replace=T) # Simulasi Tos Dadu [1] 6 3 2 6 4 1 1 4 2 3 6 5 3 4 3 4 2 3 1 4 1 5 3 5 1 5 1 6 4 1 4. pdistribusi untuk mencari luas daerah (nilai peluang) suatu distribusi yang dibatasi oleh nilai x tertentu qdistribusi untuk mencarti nilai x yang membatasi luas daerah (nilai peluang) tertentu dari suatu distribusi Dalam istilah di atas. R juga memiliki fungsifungsi statistika lain yang banyak dipergunakan dalam simulasi data.fungsi ini merupakan fungsi untuk membangkitkan data dari peubah acak dengan berbagai distribusi yang banyak dijumpai. dan gamma dengan jumlah/ ukuran sampel n. Pada dasarnya ada empat jenis fungsi terkait dengan distribusi peubah acak yaitu sebagai berikut. Sebagian daftar fungsi. seperti normal. rdistribusi untuk membangkitkan data acak/ random dari suatu distribusi dengan Parameter tertentu. Fungsi. chisq(χ2 )."G").3. ddistribusi untuk mencari nilai fungsi kepadatan f (x) pada suatu nilai x tertentu. Fungsi Pembangkit Data Peubah Acak Disamping fungsi dasar yang telah dibicarakan.118 BAB 4.

sumbu paling kiri.4). Misalkan kita inginkan 1 lembar tampilan grafik dibagi menjadi 6 subgrafik yang tersusun atas 2 × 3 (2 baris dan 3 kolom).xlim=c(0.3).3)) .ylim=c(1."Gambar 1. Contoh 4..2") plot(1."Gambar 1.xlim=c(0. R memiliki beberapa fungsi seperti ditunjukkan pada Tabel4.2.5)) [1] 26. par(mfrow=c(2.3.1.4. Kita dapat menghitung mean (rata-rata) maupun variansi sampel dari data yang dibangkitkan untuk melihat kedekatannya dengan μ dan σ 2 .99507 4.2. Dokumentasi yang lebih lengkap dapat diperoleh dengan menggunakan perintah help(.19985 >var(rnorm(100.xlim=c(0.4).5. perintahnya adalah seperti berikut dan hasil grafiknya dapat dilihat pada Gambar 4. dan sumbu paling kanan.5.ylim=c(1. Misalkan kita ingin mensimulasi data dari distribusi normal dengan parameter populasi μ = 50 dan σ = 5.5.2.) text(2.3)) plot(1. Di antara fungsi ini adalah untuk membuat lay out lembaran grafik yang dibagi menjadi matriks sublembaran kecil (a × b). Dengan demikian.3). Fungsi untuk Menangani Grafik Untuk menangani grafik.3. sumbu atas.3.5)) [1] 50.50.1") plot(1.6. Masing-masing sublembaran dapat memiliki judul dan absis sendiri (lihat Gambar 4.). BEBERAPA FUNGSI PENTING DALAM R 119 Contoh 4. >mean(rnorm(100.ylim=c(1.3.3)) text(2.50.4). Tentu saja sumbu grafik ini diatur sehingga yang biasa diberi label sumbu adalah semua sumbu bawah..

qgamma(p. nu). alpha. qbinom(p.nu) rt(n. lambda) rbinom(n.beta). π ) μ = sπ σ 2 = sπ (1 − π ) 5 Chi-kuadrat (χ2 ν) rchisq(n. pi). pgamma(x. s.nu) 6 tν .beta). mean. sigma). β ) μ = α/β σ 2 = α/β 2 3 Poison(λ) μ = σ2 = λ rpois(n. qpois(p. beta).nu) pt(x. dchisq(x. pi) 4 Binomial (s. beta) 2 Gamma G(α. sigma). sigma) rgamma(n. s. nu). pchisq(x. Selain fungsi membangkitkan data acak juga terdapat fungsi-fungsi menghitung peluang distribusi. qnorm(p. qchisq(p. RCLI: MELANGKAH MELAMPAUI MENU Tabel 4. alpha. pi). alpha. ppois(x. No Nama Distribusi 1 Normal N (μ. lambda).120 BAB 4. dgamma(x. dbinom(x. mean. sigma). pbinom(x.nu) qt(p. lambda).lamda).nu). pnorm(x. s. σ 2 ) Parameter mean=μ. pi). mean. dnorm(x. varians=σ 2 Perintah dalam R rnorm(n.4: Fungsi Pembangkit Data pada R. mean. s. dpois(x. alpha.nu) dt(x.

5: Beberapa Fungsi Dasar R untuk Grafik.las=1) Nomor aksis 1=bawah 2=kiri. dan garis =l) menambah garis pada grafik yang sudah ada menambah titik pada grafik yang sudah ada memunculkan sumbu menambah text memberi legend Perintah R par(mfrow=c(b. lty=jenis garis."teks") legend(xpos. ylab="". no.y. lty=0. numerik/simbol pch=’numerik/simbol’) menunjukkan jenis titik axis(1.z) layout(matriks) Unsur matriks diisi posisi grafik split. m=banyaknya label qqnorm(data) dan dikerjakan beruqqline(data) rutan untuk memperoleh grafik titik dan garis persp(x.y.outer=T. y. 3=atas. "label".y.layar diurut kolom). Tersedia fungsi baik untuk dua maupun tiga dimensi. y. marks= jemarks=) nis label titik.layar) berdasarkan urutan pembagian plot(x.4.y.z) Data dalam bentuk matriks contour(x. lty=1:m. text(x.)) . No 1 Tujuan membuat lay out multigrafik (banyak layar) membuat diagram (grafik pencaran= p. angka numerik pch= ’numerik’) menunjukkan jenis garis points(x. BEBERAPA FUNGSI PENTING DALAM R 121 Tabel 4. ylim=c(. no. xlab="".screen(c(baris.3. 4=kanan. type=’l/p/b’. k)) Keterangan b=banyak baris k=banyak kolom 2 3 4 5 6 7 8 membuat grafik normalitas data 9 membuat grafik tiga dimensi membuatlay out kompleks membagi layar 10 11 l=line(grafik garis) p=point(grafik titik) b=keduanya lines(x. lty=. ypos.

3)) text(2.4).3)."Gambar 2. 1.screen(). 3.2.122 BAB 4.2. byrow = TRUE)) plot(1. nr = 2.3)) text(2.4).ylim=c(1.3)) text(2.ylim=c(1.ylim=c(1."Gambar 2.) text(2."Gambar 1") .3") Lay out yang lebih kompleks dapat dilakukan dengan menggunakan fungsi layout() dan split. 1 2. RCLI: MELANGKAH MELAMPAUI MENU Gambar 4.1.2.4 layout(matrix(c(1."Gambar 1.xlim=c(0.2") plot(2.xlim=c(0.3: Lay Out Multi Grafik m × n text(2.1.2. Pada program berikut lay out layar dibagi menjadi 4 wilayah 1 bagian atas dan 3 bagian bawah. 4).2.3.xlim=c(0. Hasilnya dapat dilihat pada Gambar 4.4).xlim=c(0.ylim=c(1."Gambar 2.1") plot(2.3") plot(2.2.4).

0 ● ● Gambar 2. split.3 2 3 1 ● 0 1 2 1 3 4 0 1 2 1 3 4 0 1 2 2 3 4 Gambar 4.xlim=c(0. screen(4).screen(2.5 2. font = 2) Pada program berikut layar dibagi menjadi 5 wilayah layar tetapi dengan 7 nomor dengan cara berikut.5 2.2.0 1."Gambar 2."Gambar 2.0 2.1") plot(1.5 2.3)) text(2.0 2.1 Gambar 2.4).2.2.4."Gambar 2. side = 3.1).2") plot(2. 2.0 Gambar 1 1 ● 0 1 2 1 3 4 1.xlim=c(0.ylim=c(1.0 2. split.5 3.1) membagi layar screen(1)menjadi 2 bagian dengan nama screen(3).3.0 2.5 3.3") mtext("Fungsi \"layout\" ". .0 Gambar 2. outer = TRUE.3.4).ylim=c(1.3)) text(2.2.0 1.5 2.2 1.1.0 1.5 3.0 1.xlim=c(0.4).0 1.1) membagi layar utama menjadi 2 baris 1 kolom dengan screen(1) adalah layar bagian atas dan screen(2) adalah layar bagian bawah.3)) text(2.4: Out Multi Grafik Kompleks plot(1.ylim=c(1.screen(c(2.5 3. 1. BEBERAPA FUNGSI PENTING DALAM R 123 Fungsi "layout" 1.

screen(4).2) membagi layar screen(2)menjadi 3 bagian dengan nama screen(5).screen(c(1. Sementara Gambar ?? diperoleh dari program berikut ini. 4.screen(c(1.screen(c(2.2)) split. split.2).124 BAB 4. screen(6).1) membagi layar screen(1)menjadi 2 bagian dengan nama screen(3).2). RCLI: MELANGKAH MELAMPAUI MENU 3.1). dapat dilihat pada Gambar 4.5.screen(c(1. screen = 1) split. split. split.3). screen = 2) screen(3) plot(10:1) screen(4) plot(10:1) screen(5) plot(10:1) screen(6) plot(10:1) screen(7) plot(10:1) Hasilnya program di atas. Selanjutnya pembuatan grafik disesuaikan dengan nomor layar yang diinginkan. seperti pada program berikut.screen(c(2.screen(c(1.3).screen(c(1. screen = 2) screen(1) plot(10:1) screen(3) plot(10:1) screen(4) plot(10:1) . split.1)) split. screen(6).

BEBERAPA FUNGSI PENTING DALAM R 125 6 10 ● 6 10 ● ● ● ● 10:1 ● 10:1 ● ● ● ● ● ● ● 2 ● 2 ● ● ● ● ● ● 2 4 6 8 10 2 4 6 8 10 Index Index 6 10 6 10 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 6 10 2 ● ● ● ● ● ● ● ● ● ● 10:1 10:1 2 2 6 2 2 6 10:1 2 6 Index Index Index Gambar 4.3.4.6: Lay Out Multi Grafik Kompleks Lain .5: Lay Out Multi Grafik Kompleks Lain 6 10 10 ● ● ● ● 10:1 ● ● ● ● ● ● ● ● ● ● 2 ● 8 ● ● 2 4 6 8 10 10:1 Index 4 6 6 10 ● ● ● ● 10:1 ● ● 2 ● ● ● ● 2 ● ● ● 2 4 6 8 10 2 4 6 8 10 Index Index Gambar 4.

4. "Trt")) lm> weight <.33.6. 4.gl(2.c(4. Aneka Rupa Perintah R Di samping fungsi-fungsi yang berhubungan dengan penanganan file seperti membaca file skrip.41. x<-2 y<-3 cat("Hasil kali x dengan y adalah". Skrip untuk program ini adalah sebagai berikut. 3. 5. 4.c(ctl. 4.7.14) lm> trt <. 4. mencetak komentar dan variabel.03.89. 10. menyimpan file keluaran.53. 20. RCLI: MELANGKAH MELAMPAUI MENU 4. 4. ada juga fungsi lain di antaranya adalah seperti yang ada pada Tabel 4.69) lm> group <.3. 5.17. seperti “Jika x = 2 dan y = 3 maka hasil kali x dengan y adalah 6. Contoh 4. 5.c(4. trt) . 4.87.58. 3. 5. 6.11.8.x*y) Contoh 4.59. 4. Misalkan kita ingin mencetak keluaran yang sekaligus memuat komentar atau nama beserta nilainya.5.61.6. labels = c("Ctl". 5.17.81.32. 5.17.126 BAB 4.83.18. Untuk menjalankan contoh yang ada pada fungsi linear model lm() maka perintahnya adalah example(lm) dan sebagian hasil luaran yang terjadi adalah: > example(lm) lm> ctl <. 6.

lm(weight ~ group)) Analysis of Variance Table Response: weight Df Sum Sq Mean Sq F value Pr(>F) group 1 0.1 on 2 and 18 DF. codes: 0 `***' 0.0685 3Q 0.6964 on 18 degrees of freedom Multiple R-Squared: 0.D90 <.85 9. Error t value Pr(>|t|) groupCtl 5.62e-14 *** --Signif.249 Residuals 18 8.2202 21.1 ` ' 1 Residual standard error: 0.3.2202 22.3690 Coefficients: Estimate Std. BEBERAPA FUNGSI PENTING DALAM R 127 lm> anova(lm.2462 Max 1.1)) Call: lm(formula = weight ~ group .' 0.4191 0.16 3.6882 0.D9 <.7293 0.4850 lm> summary(lm.0710 -0.9818. p-value: < 2.001 `**' 0.05 `.55e-15 *** groupTrt 4.0320 0.9798 F-statistic: 485.1) Residuals: Min 1Q -1.01 `*' 0.6610 0.6882 1. Adjusted R-squared: 0.lm(weight ~ group .2e-16 .4.4938 Median 0.

128 BAB 4. konstanta atau fungsi (berfungsi sebagai ”=” dalam matematika) membaca tabel mengambil bagian dari kesatuan(objek) menulis komentar yang tidak dieksekusi R mengatur tugas mendasar komputer memeriksa file atau menjalankan file demo menjalankan file contoh pustaka Perintah R source("namafile") sink("nama file") print(variabel) cat("teks") cat("\n") nama <.6: Aneka Rupa Fungsi R.table("namatabel") objek\$bagian # komentar options() demo(NamaFile) example(NamaFile) pustaka harus diaktifkan pustaka harus diaktifkan . skrip dan luaran No 1 2 3 4 5 6 Tujuan membaca tanpa membuka file mengarahkan penulisan hasil ke file mencetak hasil (variabel) mencetak teks mencetak garis baru mendefinisikan variabel.definisi Keterangan 7 8 9 10 11 12 read. Fungsi-fungsi ini bermanfaat untuk menangani file. RCLI: MELANGKAH MELAMPAUI MENU Tabel 4.

Seting Umum.4. options(argumen1. nama file dan sebagainya. maupun membuat skrip program.. Bagian ini mengatur hal yang sangat mendasar dari komputer. Dalam R.cara mendefinisikan fungsi. seperti alokasi memori. jika T berarti setiap ekspresi yang dieksekusi atau dievaluasi akan ditulis dulu (echoed) sebelum dievaluasi. perintah ini biasanya dikerjakan dengan perintah options. Komponen-Komponen Program Program adalah sekumpulan perintah yang menjadi suatu kesatuan yang harus dikerjakan oleh komputer..)..4. 1. Menulis Program pada R Pada bagian ini akan dibahas secara lebih detail cara.. 4.. Program biasanya ditulis untuk mengerjakan pekerjaan sejenis untuk keperluan jangka panjang dan bisa dimanfaatkan oleh orang lain yang tidak terlibat dalam pembuatan program tersebut. Beberapa pilihan yang dapat diatur adalah: • echo= T atau F. Oleh karena itu penulisan program ini harus memenuhi beberapa persyaratan.1. argument2.. .4. • object. MENULIS PROGRAM PADA R 129 4. jumlah digit dari luaran.. Naskah dari suatu pemrograman biasa disebut listing atau script dari program tersebut...4. • digits= angka yang menunjukkan banyaknya angka penting yang akan dicetak di print out. Komponen.komponen pemrograman yang besar sebaiknya memuat hal-hal berikut. Untuk jelasnya dapat dilihat dari dokumentasi perintah options ini.size= 1e+08 atau lebih yang diperlukan untuk program yang memerlukan memori besar (misalnya dalam simulasi).

130

BAB 4. RCLI: MELANGKAH MELAMPAUI MENU

2. Definisi fungsi. Apabila dalam program itu diperlukan fungsi yang didefinisikan sendiri, sebaiknya fungsi ini dikelompokkan dan didefinisikan pada bagian awal; fungsi1<-function(){} fungsi2<-function(){} 3. Data dan Inisiasi. Bagian berikut skrip biasanya berisi pengambilan data, baik yang dilakukan secara simulasi maupun dengan menggunakan data riil yang dimpor dari berbagai program yang tersedia. Data riil harus diaktifkan atau diset sebelum dianalisis. Untuk data simulasi sebelum variabel dan konstanta bisa dipergunakan harus ditetapkan nilai- nilai awalnya. Nilai awal (inisiasi) dari variabel-variabel ini juga sebaiknya diberikan pada bagian tersendiri secara mengelompok untuk memudahkan pemeriksaan atau perubahan. 4. Program inti. Bagian ini memuat inti dari pemrograman (looping, perhitungan- perhitungan matematika/ statistika dan lain lainnya). 5. Penutup. Bagian penutup bisa berisi rangkuman dari hasil- hasil yang diperoleh dalam pemrograman tersebut. Biasanya bagian ini berisi perintah menyimpan file, mentabulasi hasil, atau membuat grafik. Contoh 4.9. Contoh pemrograman yang lengkap beserta komponenkomponennya.
# namafile options(echo=F,digits=4) #fungsi

4.4. MENULIS PROGRAM PADA R f1<-function(p1,p2){ ekspresi1 ekspresi2 hasil akhir } #inisiasi p1<-5 p2<-15 #Program utama #loop luar for(i in 1:n){ while(kon1){ #loop dalam tugas1 } } #Penutup Print(hasil.akhir) write(t(x),file="x.byrows",ncol=ncol(x))

131

4.4.2. Langkah- langkah Penting dalam Penulisan Program
Program yang baik adalah program yang memenuhi beberapa persyaratan di antaranya adalah seperti berikut ini. 1. Mengerjakan dengan benar apa yang mestinya dikerjakan. Untuk program yang dikonsumsi sendiri atau bagi pemula, syarat yang paling utama adalah program yang dibuat harus mengerjakan dan memberi hasil yang benar. 2. Alur logika dan matematikanya benar dan mudah diikuti. Untuk itu, sebelum menulis skrip suatu pemrograman dan yakinkan bahwa baik persamaan-persamaan maupun fungsi-fungsi matematika yang akan digunakan sudah benar/valid. Selain itu langkah yang lebih rinci berupa algoritma dari apa yang akan dikerjakan oleh komputer sudah siap sebelum memulai menulis skrip dan

132

BAB 4. RCLI: MELANGKAH MELAMPAUI MENU

yakinkan bahwa algoritma ini sudah benar. Algoritma ini bisa juga dibuat secara lebih eksplisit berupa diagram alir (flow chart.) 3. Mudah direvisi. Apa yang akan dikerjakan komputer seharusnya dapat dilacak dengan mudah sehingga kalau ada kesalahan juga mudah direvisi. Penelusuran atau revisi diharapkan tetap bisa dilakukan dengan mudah, meskipun suatu skrip program baru dibuka lagi setelah beberapa minggu, bulan, atau tahun. 4. Efektif dan efisien dalam memanfaatkan memori dan hardisk. Sebenarnya masalah efisiensi penggunaan memori dan kecepatan tidak terlalu penting bagi pemula, karena kecepatan dan penggunaan memori ini secara umum dapat teratasi dengan semakin canggihnya piranti keras komputer sekarang sehingga masalah ini tidak akan terlalu menjadi hambatan. 5. Mudah dimanfatkan. Syarat terakhir penting terutama kalau program yang dibuat juga disediakan bagi orang lain yang mungkin tidak banyak memahami pemrograman. Serangkaian perintah atau fungsi-fungsi matematika yang sering dipergunakan sebaiknya didefinisikan dalam bentuk fungsi R. Identifikasi fungsifungsi dan variabel yang akan diperlukan dan didefinisikan di bagian awal. Usahakan memanfaatkan sebanyak mungkin fungsi-fungsi internal yang sudah ada dalam paket (dalam hal ini R). Ini penting agar penggunaan memori efisien mengingat selain karena sifatnya yang internal fungsi-fungsi ini telah teruji kemampuannya. Buatlah program dalam ukuran sedang dan program yang besar sebaiknya dipecah-pecah menjadi beberapa modul/ subprogram yang hanya dipanggil kalau diperlukan. Berilah komentar atau keterangan pada setiap fungsi yang didefinisikan, demikian juga pada setiap langkah penting. Hal ini akan membantu banyak dalam pemahaman dan proses perbaikan/revisi ter-

Sebagai inisiasi. Khusus untuk R. sedapat mungkin hindarkan atau kurangi penggunaan loop terutama loop for(){} yang tidak perlu.rata sampel berdasarkan ukuran sampelnya. sedapat mungkin gunakan perhitungan secara vektor.2) 2. Karenanya. Untuk itu kita akan menempuh beberapa langkah berikut ini.4. Mendefinisikan matriks yang terdiri atas 2 kolom dan 10 baris. Kita ingin mengilustrasikan hubungan antara mean populasi dengan rata. khususnya bagi pemrogram yang sudah berpengalaman.10. kecuali tujuannya memang untuk mendemonstrasikan kerja dari loop tersebut. kita bisa mendefinisikan seluruh elemen matriks sama dengan 0. Membuat loop yang membuat pembangkitan data diulang mulai dari ukuran sampel 10 sampai dengan 100. untuk menampung mean sampel dari 10 macam ukuran sampel. Berikut ini diberikan contoh program yang belum memerlukan adanya fungsi. pada tahap awal. Untuk ini ada beberapa alternatif. Contoh 4. kriteria konvergensi dapat diatur sesuai kebutuhan. setelah program berfungsi dengan baik. juga perlu di-indent sesuai dengan tingkatnya.4. . gunakan kriteria konvergensi yang agak kasar/besar. Untuk tujuan itu kita harus membuat loop pembangkitan data random untuk berbagai ukuran sampel. Untuk R. Skrip loop selain dikelompokkan dengan menggunakan kurung kurawal.10. lebih efisien digunakan perhitungan vektor dari pada loop. Jika loop digunakan. m<-matrix(0. MENULIS PROGRAM PADA R 133 utama jika program yang dibuat dibuka lagi setelah kurun waktu yang agak lama. misalnya dari 10 sampai 100 dengan kenaikan 10. 1.masing sampel. Kolom pertama bisa diisi ukuran sampel dan kolom kedua berisi besarnya mean masing.

sampel<-n. Grafik sederhana dapat dibuat dengan menggunakan perintah plot(m[. sedangkan n.2].. Hal ini bisa juga dilakukan dengan membangkitkan data Z ∼ N (0. plot(m[.type='l').sampel<-i*10 } (b) Dengan menggunakan batasan maksimum 100.. main='Judul Grafik') .1]. X ∼ N (50.sample) X<-sqrt(10)*Z+50 m[i.xlab='Sumbu X'. setelah loop berakhir. 1) selanjutnya ditransformasi dengan X = σZ + μ. Perintah yang lebih lengkap dapat dilakukan dengan memberikan judul dan label sumbu koordinat.m[.1]. Selanjutnya pada loop tadi dapat disisipkan perintah membangkitkan data normal dengan mean 50 dan variansi 10.ylab='Sumbu Y'. RCLI: MELANGKAH MELAMPAUI MENU (a) Dengan menggunakan indeks i = 1.2]<-mean(X) 4.10 ditentukan ukuran sampelnya adalah i × 10 for(i in 1:10){ n.sampel m[i. Pada bagian/tahap yang sama kita menghitung mean dari X serta menaruh hasilnya pada matriks m pada baris dan kolom yang bersesuaian Z<-rnorm(n. 10).sample<100){ n.2].m[.sampel<-10 while(n.sampel mengalami kenaikan 10 mulai dari 10 n.k] menunjukkan seluruh baris pada kolom k sedangkan m[i. Selanjutnya.1]<-n.] menunjukkan baris kedua untuk seluruh kolom. m[. atau bahkan warna.sampel+10 } 3.134 BAB 4. kita bisa mencetak grafiknya.type='l'.

sampel<-i*10 Z<-rnorm(n. par(mfrow=c(2.main='(cos(t).ylab='Sumbu Y'.y.sin(t))') plot(x^2.n.col='red'.sampel m[i.1]. (x.type='l'. n<-10 m<-matrix(0.col='green'.xlab='Sumbu X'.main='(cos(t)^2.4. Contoh 4.7 pada halaman 109.main='Judul Grafik') Jika petunjuk di atas diikuti dengan benar maka kita akan mendapat grafik seperti pada Gambar 4.y. MENULIS PROGRAM PADA R 135 Secara keseluruhan kita mempunyai skrip berikut.4.11.2]<-mean(X) } plot(m[.cos(t)*sin(t))') plot(y.type='l'. y ) = x = φ1 (t) y = φ2 (t) Salah satu program yang bisa dibuat adalah seperti berikut dengan hasil seperti pada Gambar 4.type='l'.m[.1]<-n.main='(cos(t).2].2) for(i in 1:n){ n.main='(cos(t).2)) t<-seq(0.col='blue'.type='l'.5) y<-sin(t) x<-cos(t) plot(x.8.sample) X<-sqrt(10)*Z+50 m[i.x*y.col='cyan'.y/x.360.cos(t)/sin(t))') . Misalkan kita ingin membuat grafik dari persamaan matematika berbentuk persamaan parametriks seperti berikut.sin(t))') plot(x.type='l'.

RCLI: MELANGKAH MELAMPAUI MENU − Gambar 4.8: Contoh Grafik Fungsi Parametrik Dimensi Dua .136 BAB 4.7: Ilustrasi Simulasi Mean Populasi dan Rata-rata Sampel − − − − − − − − − − − − − − − − Gambar 4.

. fungsi.y){ log(x)+fungsi.g<-function(x.1415 . . Dalam suatu fungsi kita dibenarkan memanggil fungsi yang lain.4. maka harus ditegaskan hasil yang akan ditampilkan sebagai hasil akhir eksekusi fungsi. Di antara sekian banyak perhitungan yang dilakukan dalam suatu fungsi.. Hal ini akan terlihat jelas dari beberapa contoh yang diberikan.. Mendefinisikan Fungsi dalam R Perintah panjang (terutama terkait dengan rumus-rumus matematika) dan sering dievaluasi dengan nilai berbeda dapat ditulis sebagai fungsi.. hasil akhir (returned value) } Selain variabel atau konstanta yang didefinisikan secara internal (seperti pi =π = 3.. Pada dasarnya fungsi R adalah translasi dari fungsi matematika ke dalam bahasa R.4.4...3. parameter2){ ekspresi1.f(x)+exp(y) . fungsi1 .. Berikut akan dibahas secara lebih rinci cara-cara mendefinisikan fungsi sesuai petunjuk yang telah diberikan pada bagian sebelumnya. Hasil ini disebut sebagai returned value yang dilakukan dengan memanggil kembali hasil yang telah dihitung. Sebagaimana telah dibicarakan sebelumnya bahwa fungsi dalam R memiliki Parameter dengan struktur berikut: nama.). maka semua variabel atau konstanta yang dipergunakan dalam definisi harus diperlakukan sebagai parameter. MENULIS PROGRAM PADA R 137 4.f<-function(x){x*sin(x)} fungsi.fungsi<-function(parameter1.

selain mempunyai parameter yang lebih banyak dari f juga memanggil fungsi f dan ini hal yang bisa dilakukan dalam mendefinisikan fungsi-fungsi R. kita juga dapat membuat program untuk menghitung akar-akar persamaan kuadrat.b. b.x){ a*x^2+b^x+c } Fungsi di atas dapat dievaluasi untuk nilai-nilai konstanta baik a. RCLI: MELANGKAH MELAMPAUI MENU Fungsi g ini. Agar fungsi g berfungsi dengan baik maka fungsi f harus sudah didefinisikan terlebih dahulu sebelum mendefinisikan fungsi g. Menghitung nilai fungsi dan akar-akar persamaan kuadrat Kita dapat mendefinisikan fungsi untuk menghitung nilai fungsi persamaan tersebut untuk berbagai nilai konstanta dan variabel. Hal ini bermanfaat dalam membuat grafik dari persamaan tersebut.c. Contoh 4. Berikut ini adalah langkah-langkah yang bisa ditempuh. Contoh 4. c maupun variabel x yang berbeda-beda. 1. Misalkan kita ingin membuat program/fungsi R dari rumus abc untuk menghitung akar-akar persamaan kuadrat f (x) = ax2 + bx + c = 0 untuk berbagai nilai a. Fungsi untuk menghitung nilai fungsi kuadrat f<-function(a. Untuk fungsi yang merupakan rumus abc bentuk matematikanya adalah √ −b ± b2 − 4ac x12 = 2a .12. Selain menghitung nilai fungsi.13. b. c. Yakinkan bahwa fungsi yang akan diprogramkan secara matematis sudah valid.138 BAB 4.

dan c diperlakukan sebagai parameter fungsi.x2) jika dikelompokkan menjadi vektor baris.-5.0. fungsi. koefisien a.4. Mengevaluasi Nilai Fungsi Setelah fungsi terbentuk kita bisa melakukan evaluasi. > fungsi.abc(1. atau rbind(x1.b.x2) } 4. MENULIS PROGRAM PADA R 139 Dalam format fungsi R.4.-4) x1 x2 [1.abc(1.6) x1 x2 [1. kita tahu hasil secara matematis untuk persamaan kuadrat fungsi matematikanya ditunjukkan oleh persamaan di atas. Langkah selanjutnya adalah menerjemahkan rumus atau komponenkomponennya ke dalam bahasa R.4.] 2 -2 . Kita bisa mengevaluasi fungsi tersebut untuk suatu nilai a.abc<-function(a.4. Akar-akar x1 dan x2 didefinisikan sesuai dengan rumus abc. Mengingat ada dua nilai yang dihasilkan yaitu x1 dan x2 .c){ x1<-(-b+sqrt(b^2-4*a*c))/2*a x2<-(-b-sqrt(b^2-4*a*c))/2*a cbind(x1.x2) jika dikelompokkan menjadi vektor kolom. c tertentu. Untuk rumus abc. maka variabel x1 dan x2 harus dikombinasikan melalui perintah cbind(x1. 2. Ini adalah bagian algoritma yang harus dimiliki sebelum kita menulis skrip pemrograman. Berikut adalah beberapa hasil yang diperoleh dari hasil evaluasi fungsi yang dibuat. b. b.] 3 2 > fungsi. Vektor ini sekaligus menjadi hasil yang ditampilkan (returned value).

0.-2.abc(1.b=-2.140 BAB 4.a=1) > fungsi.4) [.1] x1 3 x2 2 > fungsi.b=-2) fungsi. maka komentar R yang muncul adalah > fungsi.abc(1.-15) fungsi. Jika dalam pemanggilan fungsi hanya diberi nilai parameter.x2) maka kita akan memperoleh hasil seperi berikut > fungsi. Jika dalam pemanggilan identitas parameternya telah ditentukan.0.abc(1. urutan penempatan dapat berbeda.1] x1 2 x2 -2 Selanjutnya apabila akar-akar yang terjadi adalah imajiner. R akan mendistribusikan nilai parameter sesuai dengan urutan parameternya.abc(1.c=-15. Pemanggilan berikut menghasilkan hasil yang sama fungsi. RCLI: MELANGKAH MELAMPAUI MENU Jika pembentukan vektor mwenggunakan perintah rbind(x1.-15) x1 x2 .-2.1] x1 NA x2 NA NA berarti tidak ada hasil yang tersedia.-5.-4) [.abc(c=-15.abc(1.6) [.abc(a=1.

maka fungsi itu harus di eksekusi dulu supaya perbaikannya menjadi efektif tercatat dalam R. Jika tidak.4.abc(c=-15.perintah kontrol seperti if.akar } else{cat("\n Akar.abc<-function(a.abc(a=1. Fungsi di atas dapat dikembangkan menjadi seperti berikut ini.a=1) x1 x2 [1.akar persamaan # kuadrat dengan rumus abc # dalam fungsi ini a tidak boleh sama dengan 0.4.c){ if(a==0){stop("\na harus <>0")} D<-b^2-4*a*c # diskriminan if(D>=0){ x1<-(-b+sqrt(b^2-4*a*c))/2*a x2<-(-b-sqrt(b^2-4*a*c))/2*a rbind(x1.b=-2) x1 x2 [1.] 5 -3 > fungsi. # contoh fungsi untuk menghitung akar.c=-15.x2) # membuat vektor akar.] 5 -3 Untuk menjadikan program ini lebih komunikatif. maka R tetap akan memanggil fungsi yang belum diperbaiki. maka kita perlu memberikan beberapa pesan yang lebih dipahami. Beberapa hasil yang diperoleh dari eksekusi fungsi . kalau diskriminan dari rumus abc tersebut kurang dari 0. if else. Untuk itu. MENULIS PROGRAM PADA R 141 [1. fungsi. kita perlu menggunakan perintah.b=-2.] 5 -3 > fungsi.b.akar imaginer")} # pesan kalau D<0 } Setiap kali kita melakukan perubahan atau revisi pada fungsi.

4.1] x1 1 x2 -6 > fungsi. Program fungsi. parameter fungsi dapat berupa: nama data. Misalnya dalam hal persamaan kuadrat.abc(1.5. Semua perhitungan ini dapat dikemas menjadi suatu daftar atau list(). c adalah sebagai berikut.142 BAB 4. misalnya untuk analisis data. 4): a harus <>0 Prinsip pemnulisan fungsi di atas dapat dikembangkan untuk penulisan fungsi yang lebih kompleks. misalnya dalam analisis data.4.abc .-4) [.abc(0.abc(0.abc(1. formula. ada perhitungan diskriminan. b.0.1] x1 2 x2 -2 > fungsi. Mengemas Keluaran Fungsi Untuk fungsi yang lebih kompleks.1] x1 -2 x2 -3 > fungsi.5.-6) [. banyak hal yang dikerjakan dalam fungsi.abc(1. Hal-hal yang dikerjakan dalam fungsi dapat dikemas menjadi satu kesatuan keluaran. selain perhitungan akar-akar. RCLI: MELANGKAH MELAMPAUI MENU yang telah dimodifikasi untuk berbagai nilai parameter a. > fungsi. danlain-lainnya).akar imaginer > > fungsi.6) [.4) Error in fungsi.0. 0.0.abc(1. distribusi data.4) Akar.5.

kesalahan baku dari masing-masing statistik.disk=D) Pemanggilan fungsi dengan evaluasi nilai tertentu akan menghasilkan learan yang dilabel sebagai akar dan det. z . MENULIS PROGRAM PADA R 143 di atas selanjutnya dapat dimodifikasi dengan menambahkan beberapa baris program berikut. F dan sejenisnya). dan informasi lain yang dianggapperlu.2.-3) > names(x) [1] "akar1" "akar2" "disk" > x$akar1 [1] 1 > x$akar2 [1] -3 > x$disk [1] 16 Dalam analisis data. maka subkomponen x dapat diperiksa melalui names(x) dan print(x) > x<-fungsi. $akar1 [1] 1 $akar2 [1] -3 $disk [1] 16 Jika pemanggilan disimpan dalam sustu objek.akar hasil<-list() hasil<-list(akar1=x12[1]. nilai peluang p − values. keluaran fungsi dapat berupa: nilai hitung statistik (nilai t.4.x2) # membuat vektor akar. Semua keluaran dan hasil perhitungan yang dlakukan dapat dikemas dalam daftar keluaran (list()) denganmenggunakan identitas yang mudah untuk dipanggil.4. x12<-rbind(x1.abc(1.akar2=x12[2]. misalkan x. .

144 BAB 4.08186 $min [1] 36.stat.sd){ x<-rnorm(n. fs.mu. "min"=mn.sd) mn<-min(x) mx<-max(x) vr<-var(x) md<-median(x) rt<-mean(x) rks<-list() rks<-list("n"=n.65245 $variansi "maks" "variansi" .50.48708 $maks [1] 65. "variansi"=vr.norm(1000. deviasi baku. median dan sejenisnya)."rata-rata"=rt.5) > names(y) [1] "n" "rata-rata" "min" "median" >print(y) $n [1] 1000 $`rata-rata` [1] 50. "median"=md) } Eksekusi berikut menghasilkan > y<-fs.norm<-function(n. Semua keluaran ini dapat dikemas dalam (list() keluaran. "maks"=mx.mu. RCLI: MELANGKAH MELAMPAUI MENU Pada contoh berikut kita membuat fungsi yang menghitung statistik sampel (rata-rata. maksimum.stat. minimum.

1000 n2 n3 log n ..6.. Misalkankita ingin membuat program untuk menghitung seperti ditunjukkan oleh tabel berikut n 10 20 30 40 .4.21028 145 4.41415 $median [1] 50. penggunaan vektor dapat mempercepat eksekusi program secara dramatis. yaitu:(i) untuk kondisi dimana pada setiap putaran memiliki panjang elemen yang sama dapat dipergunakan matriks. melakukan operasi scara keseluruhan pada vektor tersebut.4. Berikut adalah adalah contoh loop yang diganti dengan penggunaan vektor/matriks. mengemas indeks dalam satu vektor (atau kolom suatu matriks) 2. MENULIS PROGRAM PADA R [1] 26. (ii) untuk kondisi dimana pada setiap putaran memiliki panjang elemen yang tidak sama dapat dipergunakan fungsi apply Penggunaan Matriks/Vektor Untuk loop yang sederhana. Ada dua kondisi utama yang perlu diperhatikan untuk mengganti loop dengan vektor. Burn bk:Burns1998 mengilustrasikan bahwa dalam kondisi tertentu. Menghindarkan Loop R lebih efisien bekerja menggunakan vektor dibandingkan dengan menggunakan loop if then seperti di diuraikan sebelumnya.4. dapat digantikan dengan menggunakan matriks dengan cara 1.

146 Dengan menggunakan loop for (i in 1:100){ n<-i*10 t1<-n^2 t2<-n^3 t3<-log(n) } BAB 4. lalu menghitung rata-ratanya. lapply untuk mengerjakan loop yang tidak bisa dikerjakan pemggunakan matriks biasa. RCLI: MELANGKAH MELAMPAUI MENU Dengan menggunakan matriks/vektor ind<-seq(1. Sintaks penggunaan apply adalah apply(matriks.fungsi) Dengan matriks adalah matriks yang akandijadikan sebagai acuan indeks dalam mengerjakan loop. tapply.1) n<-ind*10 t1<-n^2 t2<-n^3 t3<-log(n) Semakin banyak putaran loop semakin terasa beda kecepatan penggunaannya dengan matriks atau vektor. Persoalan ini sulit kalau dikerjakan dengan menggunakan matriks atau vektor seperti diatas.p. Berarti pada setiap putaran loop kita harus membangkitkan data dengan ukuran sampel yang berbeda. yaitu apply. . Penggunaan Aplly Misalkan kita ingin mengilustrasikan hubungan antara besarnya (ukuran) sampel dengan kedekatan rata-rata dengan mean populasi.100. R menyediakan fungsi keluarga apply.

2) for(i in 1:n){ n<-i*10 y<-rnorm(n)*sqrt(10)+50 m[i. 10). Dengan loop n<-100 m<-matrix(0.20. N (50.4..4..1000). n 10 20 30 40 .. Tugas ini dapat didefinisikan dalam bentuk fungsi berikut: myfun<-function(x){ y<-rnorm(x)*sqrt(10)+50 mean(y) } Program lengkap dengan presentasi grafik yang menunjukkan hubungan antara ukuran sampel dengan rata-sata sampel adalah 1. fungsi adalah fungsi yang mengaturtugasyangharus dikerjakan pada setiap putaran Misalkan kita ingin menghitung rata-rata sampel dari berbagai sampel yang berasal dari populasi berdistribusi normal... yang ukurannya semakin besar (10.n. . MENULIS PROGRAM PADA R 147 p adalah posisi yang dijadikan sebagai acuan yaitu:1 jika berdasarkan baris dan 2 jika berdasarkan kolom. 1000 μ = 50 σ 2 = 25 ¯ X Tugas yang harus dikerjakan komputer pada setiap putaran adalah:(i) membangkitkan data dan (ii) menghitung rata-ratanya.1]<-n m[i.30.2]<-mean(y) .

1].74 48.00 120. Median Mean 3rd Qu.1.37 47.20 49.12 59.09 49.1]<-20*seq(1.8] 80.47 50.04 55.01 49.46 52.main='Judul Grafik') 2.21 50.60 .00 160.1] 20.46 41.40 48.ylab='Rata-rata'.86 47.148 BAB 4.2].type='l'.47 52.main='Judul Grafik') Tugas yang harus dikerjakan komputer pada setiap putaran dapat dibuat lebih kompleks misalnya menghitung ringkasan statistik sampel dan melaporkan banyaknya sampel n<-10 m[.3] 60.14 49.1) myfun<-function(x){ y<-rnorm(x)*sqrt(10)+50 mean(y) } m2<-apply(m.myfun) plot(m.n.58 50.36 49. Denganapply n<-100 m<-matrix(0.00 140.16 [. Max.55 46.46 48.98 58.02 49. RCLI: MELANGKAH MELAMPAUI MENU } plot(m[.75 47.95 51.4] [.xlab='N'.95 51.86 58.20 40. 1st Qu.m2.n.1) myfun<-function(x){ y<-rnorm(x)*sqrt(10)+50 c(x.03 50.97 49.89 40.00 41.16 52.42 50.64 50. > [.6] [.2] 40.70 [.57 50.42 [.xlab='N'.00 100.1) m[.7] [.78 54.n.41 56.12 52.00 46.1]<-10*seq(1.98 50.17 52.00 41.78 43.00 43.5] [.16 56.41 57.39 52.type='l'.m[.87 47.ylab='Rata-rata'.summary(y)) } Keluaran yang dihasilkan adalah sebagai berikut n Min.10 50.

Dalam statistika kita sering berhubungan dengan fungsi-fungsi likelihood yang akan dicari maksimumnya. Penyelesaian numerik suatu persamaan dicari melalui proses iterasi yaitu proses mengerjakan sekelompok operasi hitung yang semakin lama menghasilkan nilai yang semakin dekat dengan hasil yang sebenarnya. maka iterasi NewtonRaphson ini dimodifikasi menjadi x1 = x0 − f (x) f (x) (4. Salah satu metode numerik yang banyak dipergunakan dalan statistika adalah Metode Newton-Raphson. (4. biasanya penyelesaian ditempuh dengan menggunakan metode numerik. Misalkan kita ingin mencari titik maksimum atau minimum dari fungsi: f (x) = sin(x) + x2 + 2x pada − 10 ≤ x ≤ 10.2) Hal ini sesuai dengan penjelasan sebelumnya bahwa mencari titik maksimum suatu fungsi sama halnya mencari penyelesaian dari fungsi turunan pertamanya. sehingga harus dicari dengan metode numerik.14.1) dengan f (x) = df /dx. Contoh 4. Menghitung Akar-Akar Persamaan dengan Metode Numerik Untuk persamaan selain persamaan linear dan kuadrat. Pada umumnya persamaan seperti ini.3) .7. Jika yang dicari adalah nilai x yang menyebabkan fungsi itu mencapai maksimum/ minimum. Secara umum bentuk iterasi Newton-Raphson yang dipergunakan untuk menyelesaikan persamaan f (x) = 0 adalah x1 = x0 − f (x) f (x) (4.4. MENULIS PROGRAM PADA R 149 4. kecuali jika persamaan itu tidak memiliki jawaban. Mencari maksimum dari suatu fungsi pada dasarnya sama dengan menyelesaikan persamaan dari turunan pertamanya. dalam statistika jarang mempunyai penyelesaian analitik.4.4.

fungsi yang diperlukan adalah turunan pertama dan kedua dari bagian persamaan yang dicari akar-akarnya. RCLI: MELANGKAH MELAMPAUI MENU Langkah-langkah untuk membuat program dalam mencari titik maksimum fungsi tersebut dengan menggunakan Metode Newton-Raphson adalah seperti berikut. Menentukan hasil-hasil matematika.f1(x0)/f. Fungsi turunan pertama dan kedua: f (x) = cos(x) + 2x + 2 f (x) = − sin(x) + 2 (4. 1.it)} print(x0) .5) 2. Dengan menggunakan berbagai tehnik dalam diferensial integral diperoleh hasil sebagai berikut.01 x0<-0 f. Dalam hal ini.f2(x0) d<-abs(x1-x0) x0<-x1 cat(" ". Menulis skrip fungsi.f1<-function(x){ cos(x)+2*x+2} f.f2<-function(x){ -sin(x)+2} it<-0 cat("\n Iterasi: ") while(d>eps){ it<-it+1 x1<-x0-f.150 BAB 4.4) (4. Skrip lengkap fungsi untuk menghitung titik minimum adalah: d<-2 eps<-0.

1) y<-sin(x)+x^2+2*x f1<-cos(x)+2*x+2 f2<--sin(x)+2 plot(x.f2.f1.1.ya.1) xa<-0*ya+x0 lines(xa.type='l'.xlab='X'. MENULIS PROGRAM PADA R 151 x<-seq(-2.0.4.0.4.9: Ilustrasi Maksimum/ Minimum dengan Newton Raphson. Secara geometris dapat diilustrasikan/diperiksa kebenaran antara fungsi.0*x) ya<-seq(-2.4.main='Grafik Fungsi dan Turunannya'. ylab='Y') lines(x.lty=3) lines(x.lty=2) lines(x. turunannya dan nilai maksimum atau minimum dengan memeriksa .lty=3) − − − − − − Gambar 4.y.

f.7) 2.6) (4. RCLI: MELANGKAH MELAMPAUI MENU grafiknya. f (x) = x exp − x2 10 Dengan mengikuti langkah-langkah pemrograman sebelumnya.1<-function(x){ d1<-(-2*x^2/10+1)*exp(-x^2/10) d1 } .tur. Buat program untuk mencari titik maksimum/ minimum dari persamaan dengan menggunakan metode Newton-Raphson. Dalam fungsi R fungsi turunan tersebut dapat ditulis sebagai berikut. • nilai merupakan minimum jika f (x) > 0. 1. Ilustrasi pada Gambar 4.152 BAB 4. kita akan peroleh hasil dari tiap-tiap tahap sebagai berikut. f (x) = 0.9 halaman 124 menunjukkan hubungan sebagai berikut: • saat f (x) mencapai nilai minimum/maksimum. Fungsi-fungsi turunan f (x) = f (x) = − 2x2 x2 + 1 exp − 10 10 3 x2 4x 6x exp − − 100 10 10 (4. Contoh 4.15. sebaliknya merupakan maksimum jika f (x) < 0.

Bagian utama dari program ini berisi: # looping no.4.x0. misalnya 0. Menentukan nilai awal.it<-0 cat("x awal adalah ".001.2<-function(x){ d2<-(4*x^3/100-6*x/10)*exp(-x^2/10) d2 } 3.x1."\n") cat("Tingkat ketelitian adalah ".5.no.delta.x.x>crit){ x1<-x0-f. MENULIS PROGRAM PADA R 153 f.x) dan (crit) sebagai kriterium konvergensi dapat dipilih sekecil mungkin sesuai keparluan. Sebelum program berjalan sebagaimana mestinya nilai dibuat agak besar."\n") while(delta.1(x0)/f.2(x0) delta.4.tur. Pada bagian penutup kita dapat memerintahkan komputer untuk mencetak hasil. misalnya 0. sehingga dalam pengujian program tidak memakan waktu terlalu lama.it hanyalah konter/pencacah untuk mendeteksi jumlah iterasi yang diperlukan. cat("Fungsi akan memperoleh nilai max/min pada titik x="."\n") . "dan banyaknya iterasi adalah ". misalnya x0 = 5 atau x0 = −5. Sedangkan Δx = 10 (delta.tur.x<-abs(x1-x0) x0<-x1 no. 4. Nilai awal dari x dapat ditentukan.tur.it<-noit+1 } no. Bagian utama.it.

8) ∂2f ∂v1 ∂v2 . ⎟ =⎜. ⎝. . .000934621250368472 Banyaknya iterasi adalah 53 x awal = 3 Fungsi akan memperoleh nilai max/min pada titik x=2.2444951635172 Tingkat ketelitian adalah 0.⎠ ∂2f ∂vp ∂v1 vp 1 vp 0 ⎞ ⎛ ∂f ⎞ ∂v (4. Untuk menghitung akar-akar persamaan fungsi multivariabel (fungsi dua variabel atau lebih) prinsip yang kita gunakan sama. ⎠ 0 ∂f ∂vp 0 (4. . ⎟ −⎜ ⎜.24448623841328 Tingkat ketelitian adalah 0. . ··· . Ilustrasi akan lebih jelas pada saat kita menampilkan grafik fungsi tersebut. ⎝ . vektor/matriks turunan pertama D dan turunan kedua dari fungsi tersebut adalah matriks Hessiannya (H) dan bentuk iterasi Newton-Raphsonnya menjadi v1 = v0 − H−1 D atau lebih lengkapnya ⎛ ⎞ ⎛ ⎞ ⎛ ∂2f v1 v1 ∂v 2 ⎜v2 ⎟ ⎜v2 ⎟ ⎜ . RCLI: MELANGKAH MELAMPAUI MENU Selanjutnya hasil yang diperoleh dari mengeksekusi program yang dibuat dengan berbagai titik awal adalah x awal = -4 Fungsi memperoleh nilai max/min pada titik x=-2. ⎟ ⎠ ⎜ . ⎝.. .1 ⎜ ⎟ ⎜ ⎟ . ∂2f ∂vp ∂v2 ∂2f 2 ∂vp ⎜ ∂f1 ⎟ ⎟ ⎜ ∂v2 ⎟ ⎟ ⎜ .154 BAB 4. hanya kita bekerja dalam operasi vektor/ matriks (v). ··· ∂2f ∂v1 ∂vp .9) .⎠ . .00093363323004958 Banyaknya iterasi adalah 44 Hasil di atas menunjukkan bahwa fungsi yang kita evaluasi memiliki dua titik dimana dia mencapai maksimum/ minimum. ⎟ ⎝ .

MENULIS PROGRAM PADA R 155 Misalkan kita ingin mencari titik maksimum atau minimum dari fungsi f (x. Hal ini sangat bermanfaat untuk mengilustrasikan .dy<-function(x. y ) = −x2 + 2xy + 2x − 4y − 3y 2 .13) (4. fmv<-function(x.dx<-function(x.11) (4. maka langkah yang harus kita tempuh adalah mencari fungsi turunan pertama dan kedua terhadap x dan y dari fungsi di atas.4.12) (4.y){ -2*x+2*y+2} df. Hasil-hasil matematika ∂f ∂x ∂f ∂y ∂2f ∂x2 ∂2f ∂y 2 ∂2f ∂x∂y = 2x + 2y + 2 = 2x − 4 − 6y =2 = −6 = ∂2f =2 ∂y∂x (4.y){ -x^2+2xy+2x-4y-3y^2} df.10) (4.14) Fungsi-fungsi R Dalam bahasa R fungsi dapat ditulis sebagai berikut. y ) didefinisikan dalam R bermanfaat jika dibuat ilustrasi grafiknya (3 dimensi) baik dalam bentuk perspektif maupun konturnya. Hasil matematikanya adalah sebagai berikut.4.y){ 2*x-6*y-4} Fungsi f (x.

1) D<-matrix(0.1) crit<-0."\n") } print(v1) . maka matriksnya langsung dapat didefinisikan H= 2 2 2 −6 Dalam bahasa R dapat didefinisikan dengan H<-matrix(c(-2.2) Inisiasi.2. v0<-matrix(0.y) v1<-v0-solve(H)%*%D delta<-max(abs(v0-v1)) v0<-v1 it<-it+1 cat("It ".-6). Bagian ini terdiri atas loop Newton-Raphson dalam dua variabel.dx(x. Untuk turunan ke dua karena hanya berupa konstanta.dy(x."delta=".it.1]<-df. matriks D.2.2.2.v1. Nilai awal variabel yang perlu ditetapkan terlebih dahulu adalah nilai awal v0 .2. kriteria konvergensi.1]<-df. while(delta>crit){ D[1. RCLI: MELANGKAH MELAMPAUI MENU adanya maksimum/minimum secara grafis atau numerik."V=".y) D[2.156 BAB 4.001 delta<-10 Program inti.delta.

5 Jadi.5 [2.5 It 2 v = 0.7763568394003e-015 > print(v1) [.. delta= 10.function(x)) { .5.4.5 -0.499999999999998 -0.] 0.1] [1. "class")) && is. > plot # tanpa tanda kurung () function (x.] -0. misalnya. Misalnya pemanggilan fungsi plot akan menghasilkan tampilan berikut yang merupakan definisi fungsi plot. Dari beberapa contoh tadi jelas bagi kita bahwa pada dasarnya fungsi R adalah fungsi matematika yang didefinisikan dengan menggunakan bahasa R . maka yang keluar adalah definisi fungsinya.5. MENDEFINISIKAN ULANG FUNGSI INTERNAL 157 Hasil yang diperoleh adalah It 1 v = 0. Ini menunjukkan bahwa alur logika pemrograman dengan R secara alamiah sejalan dengan alur logika matematika.5.5. delta = 1. y.. 4. didefinisikan ulang menggunakan bahasa Indonesia.null(attr(x. Jika suatu fungsi dipanggil namanya tanpa memberi parameter.) { if (is. . program yang dibuat konvergen dalam dua iterasi. Mendefinisikan Ulang Fungsi Internal Secara teoritis fungsi-fungsi internal R dapat ditiru untuk.

maka kita cukup mendefinisikan fungsi gambar() dengan menggunakan skrip definisi tersebut.. y.function(x.){ if (is.{ if (!"from" %in% nms)0 else if (!"to" %in% nms )1 else if (!"xlim" %in% nms) NULL .) } else UseMethod("plot") } } Untuk mendefinisikan ulang fungsi plot() dengan nama gambar().function(x)) { nms <. lalu menjalankan skrip yang ada.function(x..function (x. y. Perlu diketahui bahwa untuk dokumentasi (bantuan dan lain-lain) perlu didefinisikan tersendiri.)) if (missing(y)) y <.null(attr(x.. .. gambar<. Selanjutnya..)) if (missing(y)) y <. "class")) && is.) else plot. . kita bisa memanggil fungsi gambar sebagaimana memanggil fungsi plot().names(list(.158 BAB 4..... "(x)"). ylab = paste(deparse(substitute(x)). . RCLI: MELANGKAH MELAMPAUI MENU nms <. y.names(list(.{ if (!"from" %in% nms) 0 else if (!"to" %in% nms) 1 else if (!"xlim" %in% nms) NULL } if ("ylab" %in% nms) plot..

. y. Paket-paket yang telah diinstal bersama R akan ditempatkan dalam direktory library. oleh karena itu paket yang telah diinstal lebih populer disebut sebagai library atau pustaka.6.6. Memanfaatkan Paket Program R Fungsi-fungsi kompleks untuk keperluan tertentu (misalnya regresi. Mencari Informasi Paket Program R Hal pertama dan terpenting yang dapat dilakukan dalam menggunakan program R adalah mendapatkan informasi tentang fasilitas yang tersedia. atau analisis data lainnya) telah banyak dibuat dan dikemas orang dalam bentuk paket-paket (packages program R.. ylab = paste(deparse(substitute(x)). . help. 4. MEMANFAATKAN PAKET PROGRAM R } if ("ylab" %in% nms) plot. .4.. "(x)"). Dari tampilan sebelumnya dapat diketahui bahwa jika kita ingin mengetahui beberapa kemampuan dan fasilitas R dapat dilakukan dengan menggunakan salah satu alternatif berikut. Untuk mengaktifkan dokumentasi dalam format html .) } else UseMethod("plot") }} 159 4. y.function(x. help() untuk mengetahui dokumentasi bantuan secara umum.6. grafik.function(x.. Selanjutnya kita dapat memilih topik yang tersedia dan lebih mengkhususkan pencarian kita pada topik tersebut dengan menggunakan help(topik).1.start(). Hampir semua paket program R didistribusikan secara cuma-cuma dan disediakan di situs R dan dapat dimanfaatkan bersama dengan program utama R.) else plot.

. RCLI: MELANGKAH MELAMPAUI MENU yang lebih interaktif.. Misalkan kita ingin mencari informasi tentang analisis regresi. Jika kita ingin mendapat informasi dari suatu topik tertentu dapat juga kita masukkan suatu kata kunci melalui help. linear model. maka kata kunci yang mungkin bisa dimasukkan di antaranya adalah regression. pelacakan dengan menggunakan linear models menghasilkan >help. Hasil pelacakan menghasilkan >help.search("kata kunci").search().160 BAB 4... Pengguna selanjutnya dapat memilih topik yang tersedia seperti layaknya mencari informasi di internet. ksmooth(stats) Kernel Regression Smoother lm(stats) Fitting Linear Models Sementara itu.fit(mgcv) Generalized Additive Models fitting using penalized regression splines and GCV .serach("linear models") Help files with alias or concept or title matching . help.search("regression") Help files with alias or concept or title matching 'regression' using fuzzy matching: MCMClogit(MCMCpack) . gam(mgcv) Markov chain Monte Carlo for Logistic Regression Generalized Additive Models using penalized regression splines and GCV gam.

.6. Untuk memperoleh informasi lebih lanjut. Misalkan kita ingin mendapat informasi gam(mgcv) maka yang harus kita lakukan adalah menjalankan perintah berikut. yang perlu dilakukan adalah: 1. mengaktifkan pustaka bersangkutan dengan menggunakan library(NamaPustaka) dan 2. 161 Nama dalam kurung menunjukkan pustaka tempat perintah tersebut berada.. >library(mgcv) >help(gam) Sebagian dari dokumentasi fungsi ini diberikan pada keluaran berikut: gam package:mgcv R Documentation Generalized Additive Models using penalized regression splines and GCV Description: . mencari informasi dengan menggunakan help(topik). MEMANFAATKAN PAKET PROGRAM R 'linear models' using fuzzy matching: stdres(MASS) Extract Standardized Residuals from a Linear Model studres(MASS) Extract Studentized Residuals from a Linear Model gls(nlme) Fit Linear Model Using Generalized Least Squares .4.

References: Key References on this implementation: Wood. weights=NULL. subset=NULL.action. J. scale=0.data=list(). (2003) Thin plate regression splines.R. .N. S.N.. fit=TRUE.gamma=1. For more on model selection see 'gam. Smooth terms are represented using penalized regression splines with smoothing parameters selected by GCV/UBRE or by regression splines with fixed degrees of freedom (mixtures of the two are permitted). RCLI: MELANGKAH MELAMPAUI MENU Fits the specified generalized additive model (GAM) to data.knots=NULL. na. Multi-dimensional smooths are available using penalized thin plate regression splines (isotropic) or tensor product splines (when an isotropic smooth is inappropriate)..B 62(2):413-428 Wood.family=gaussian()..control=gam.H=NULL.Soc. sp=NULL.Statist.selection'. S.control().G=NULL. . For more on specifying models see 'gam.. For large datasets see warnings.min..offset=NULL..models'.sp=NULL.) . (2000) Modelling and Smoothing Parameter Estimation with Multiple Quadratic Penalties.. Usage: gam(formula.162 BAB 4.

0. 0.396 e <.runif(n.Soc. 0.runif(n.4. Apabila sebagian contoh yang ada skripnya gam() ini dikopi ke RConsole maka diperoleh keluaran seperti berikut dan grafik smoothing untuk tiap-tiap peubah bebas yang ditunjukkan oleh Gambar 4.f + e b<-gam(y~s(x0)+s(x1)+s(x2)+s(x3)) summary(b) plot(b) Dalam tipa-tiap pustaka.runif(n.runif(n.R.rnorm(n. .75887 f <. 1) x2 <. sig) y <..3.f + exp(2 * x1) .seed(0) n<-400 sig<-2 x0 <.Statist.2 * sin(pi * x0) f <. MEMANFAATKAN PAKET PROGRAM R 163 J. seperti terlihat pada dokumentasi gam(mgcv) sebelumnya. 0.f+0. R News 1(2):20-25 . 1) f <. 0.6.. Example library(mgcv) set. biasanya ada informasi referensi untuk mempelajari teori serta beberapa contoh penggunaan pustaka tersebut.10.2*x2^11*(10*(1-x2))^6+10*(10*x2)^3 *(1-x2)^10-1. 1) x1 <.B 65(1):95-114 Wood (2001) mgcv:GAMs and Generalized Ridge Regression for R. 1) x3 <.

611 Deviance explained = 73.87 4.357 302.726 GCV score = 4.2.22e-16 s(x2) 8.sq p-value s(x0) 5. RCLI: MELANGKAH MELAMPAUI MENU Family: gaussian Link function: identity Formula: y ~ s(x0) + s(x1) + s(x2) + s(x3) Parametric coefficients: Estimate std.7602 0.173 28.4272e-05 s(x1) 2.7% Scale est. err.31 Pr(>|t|) < 2.50693 R-sq.22e-16 Approximate significance of smooth terms: edf chi.1 < 2. = 4.164 BAB 4.05 < 2.517 753. age dan circunference.4029 n = 400 4.1049 26. Memanggil Pustaka dengan CLI Apablia kita telah mengetahui cara pemanfaatan suatu pustaka melalui contoh yang ada. > attach(Orange) .22e-16 s(x3) 1 0. kita dapat melakukan analsis gam yang paling sederhana seperti berikut. maka kita dapat menirunya untuk dipergunakan dalam analisis data riil yang kita miliki.44123 0.(adj) = 0. Misalkan dari data Orange dengan variabel Tree. t ratio (Intercept) 2.6.

MEMANFAATKAN PAKET PROGRAM R 165 − − Gambar 4.4.10: Contoh Grafik Smoothing dengan analisis GAM pada Pustaka mgcv − − .6.

9 Pr(>|t|) 0.data=Orange)) Family: gaussian Link function: identity Formula: circumference ~ age Parametric coefficients: Estimate std.35 17.Q 0.85402 .22e-16 < 2.06863 age 0.166 BAB 4.5246 0.623 age 0.83 4.4 8.07141 t ratio 51.63 t ratio 2.L 0.family=Gamma(log). RCLI: MELANGKAH MELAMPAUI MENU > library(mgcv) > summary(gam(circumference~age. err. (Intercept) 17.83 GCV score = 597.018 12. = 563.9306e-14 Deviance explained = 83.013257 0.30679 0.10677 0.00017816 0.07141 Tree.48 n = 35 Dengan pilihan distribusi = Gamma dan fungsi link log.588e-05 Tree.296 0. err. (Intercept) 3. data=Orange)) Family: Gamma Link function: log Formula: circumference ~ age + Tree Parametric coefficients: Estimate std.051793 1.0011746 6.5% Scale est.1856 Pr(>|t|) < 2.008277 R-sq.(adj) = 0.22e-16 0. maka diperoleh hasil > summary(gam(circumference~age+Tree.

8312 -0.7.37251 167 R-sq. namun bagi pemula hal tersebut relatif sulit diikuti. Panduan yang ada seara khusus membahas pembuatan pedoman dengan mengA gunakan pengolah kata L TEX.41263 0.4.5% Scale est.064685 0. 2.07141 -0. Cara mendefinisikan fungsi secara garis besar telah dibahas pada bagian sebelumnya. MENGEMAS FUNGSI MENJADI PAKET Tree.7.schnute2007 menguraikan langkah-langkah yang lebih rinci dan sederhana untuk membuat paket. = 0. Sesungguhnya langkah langkah pengemasan paket juga dapat dilihat pada dokumen yang sama. Pedoman penulisan panduan atau manual paket dapat dilihat pada dokumentasi setiap versi R yang berjudul Writing R Extension.835 GCV score = 0. R sesungguhnya telah menyediakan panduan khhusus untuk pengembangan paket.schnute2006 dan Schnute m. Ada beberapa komponen penting yang harus disiapkan dalam menyusun paket yaitu: 1. Program yang memuat definisi fungsi-fungsi yang ingin dijadikan paket.035698 n = 35 4.059361 -0.043084 Deviance explained = 90.(adj) = 0. Bagian ini memuat panduan atau manual dari fungsifungsi penting yang akan dijadikan paket. Panduan. Paket yang dihasilkan selanjutnya dapat dipublikasikan dan dimanfaatkan orang lain. Schnute m. Langkah-langkah yang perlu dibuat dapat dibedakan menjadi dua bagian besar yaitu: . Mengemas Fungsi Menjadi Paket Berbagai fungsi yang terkait dengan permasalahan tertentu dapat dikemas manjadi suatu paket.C Tree^4 -0. Fungsi R.07141 0.9058 0.

Program L TEX(misalnya MikTex 2. serta versi paket.schnute2007 yang secara semi otomatis nanti melakukan pengemasan paket. Skrip ini dapat dimodifikasi dan selanjutnya dikirim ke R melalui panel “Submit”. Program HTML Help untuk membuat dokumentasi dalam bentu HTML. untuk mengganti judul grafik. RCLI: MELANGKAH MELAMPAUI MENU 1. 2. Selain itu pada direktori ini juga ditempatkan file-file bat (eksekusi) yang dibuat oleh Schnute m. (b) Dalam direktori ini selanjutnya dibuat subdirektori yaitu subdirekori man (tempat menyimpan file-file panduan.r (c) Selanjutnya dilakukan langkah pengemasan yang meliputi pengecekan paket. dan subdirektori R (tempat menyimpam file-file R). CLI dan RCommander Sesungguhnya setiap kali kita mengirim perintah ke R melalui RCommander. judul . Modifikasi dapat dilakukan. Pada direktori ini ditempatkan file DESCRIPTION yang mengatur nama.schnute2006 dan Schnutem. selanjutnya langkah untuk membuat paket adalah sebagai berikut. Perl dan MinGW untuk membuat A struktur paket. (a) Buat direktori dengan nama sesuai dengan nama paket yang akan dibuat.schnute2006 dan m. Instalasi program-program yang diperlukan. pembuatan. 4.schnute2007. Program rtool. dan pengepakan paket.8. termasuk file zzz.168 BAB 4. Pemrosesan Paket Jika piranti lunak yang dibutuhkan sudah berfungsi dengan baik. maka skrip CLInya disalin pada Jendela Skrip. Untuk lengkapnya dapat dilihat pada Schnutem. Ada beberapa program yang diperlukan untuk membuat paket R yaitu Program R itu sendiri.5 dengan Editornya WinEdt) untuk memroses dokumentasi dan panduan. misalnya.

Untuk perintah lebih dari 1 baris.4.11: Perintah Menu pada Jendela Skrip.3-12. maka sejak versi 1. 2. CLI DAN RCOMMANDER 169 Gambar 4.12. Untuk mengirim baris perintah pada Jendela Skrip dapat dilakukan langkah-langkah berikut: 1. dan sebagainya (lihat Gambar 4. Perintah-perintah yang dipanggil melalui menu dapat dicatat pada Jendela Skrip absis. Perhatikan bahwa kalau sebelum ini R Commander hanya mampu mengirim secara efektif 1 baris perintah. lakukan dengan: 1.8. klik panel “Submit”. blok (highlight) baris perintah yang dimaksud. 3. warna grafik. lalu tekan tombol kirim. R Commander sudah bisa mengirim lebih dari 1 baris perintah. tulis perintah R atau modifikasi perintah baris yang ada pada Jendela Skrip. . blok (highlight bagian yang ingin dijalankan.

170 BAB 4. .r-roject. Everittbk:Everitt2001. Bacaan Lebih lanjut Bagi yang ingin menekuni lebih jauh pemrograman dengan R atau SPlus dapat membaca referensi dari Burns bk:Burns1998. tekan langsung kirim. RCLI: MELANGKAH MELAMPAUI MENU 2. Chamber & Hastiebk:ChamberHastie93. Venables & Ripleybk:VenablesRipley94.9. Khusus untuk kemampuan grafik R. dengan menggunakan pendekatan CLI dapat juga dibaca pada beberapa referensi berikut di antaranya: Tirta bk:TirtaSP45. jika semua skrip ingin dikirim sekaligus. copy-paste perintah langsung ke Console R. 4. dapat dibaca referensi Murrell bk:Murrell2006. 3. mengedit dan menjalankan skrip dengan Jendela Command dari SciViews atau Tinn-R. Selain itu masih banyak referensi on-line yang dapat dilihat pada situs http://www. Everitt bk:Everitt2005. Marazzibk:Marazzi92. 4.org seperti telah diuraikan sebelumnya. Aplikasi R untuk analisis statistika.

9.12: Perintah Menu pada Jendela Skrip dapat dieksekusi langsung .4. BACAAN LEBIH LANJUT 171 Gambar 4.

172 BAB 4. RCLI: MELANGKAH MELAMPAUI MENU .

Sign up to vote on this title
UsefulNot useful