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).

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

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

RCLI: MELANGKAH MELAMPAUI MENU paket standar. banyak fungsi yang didefinisikan dalam berbagai pustaka R. tanh exp. cos−1 . operasi tersebut bekerja perunsur. ln ln10 log Γ() x Fungsi R abs() sin(). tan−1 sinh. Tabel 4. Berikut beberapa contoh penerapan dari fungsi-fungsi tersebut. acos().1. Fungsi Dasar Matematika Beberapa fungsi dasar telah didefinisikan secara internal di dalam R. tan() asin(). 4.112 BAB 4. cosh.3. Fungsi-fungsi tersebut dapat dilihat pada Tabel 4. log() log10() gamma() ceiling() 9 10 11 12 x floor() tranc() round() signif . cos. Terhadap matriks atau vektor. tanh() exp(). tan sin−1 .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. cos(). cosh(). atan() sinh().1.

operasi hitung biasa dapat dilakukan dan itu akan dikerjakan berdasarkan unsur-unsur yang bersesuaian seperti pada contoh di atas.285714 5. R memiliki operasi dasar seperti yang ditunjukkan dalam Tabel 4. BEBERAPA FUNGSI PENTING DALAM R 113 4.5) [1] 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 > rep(1:3. maka perintah dan hasilnya adalah sebagai berikut.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.4.5) [1] "A" "B" "C" "A" "B" "C" "A" "B" "C" "A" "B" "C" "A" "B" "C" > rep(1:3.length=8) x [1] 0. Khusus untuk opersi vektor dan matriks. nilai akhir 10 dan banyaknya unsur 10. >x<-seq(0. Contoh 4.each=2.714286 [8] 10. Operasi Vektor dan Matriks Untuk matriks atau vektor yang berdimensi sama.571429 > rep(c("A"."B".000000 1.857143 4.142857 8.428571 2.each=5) [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 > rep(1:3. Misalkan kita ingin membentuk barisan dengan nilai awal 0.3.2.3.2. round(x) [1] 0 1 3 >floor(x) [1] 0 1 2 > ceiling(x) 4 4 6 5 7 7 9 10 8 10 .2 pada halaman 88.10."C").000000 7.

seq(awal. 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. replik) atau rep((elemen). nbaris. seq(awal.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 .114 BAB 4. akhir. length=n) rep((el.j] . x[i. RCLI: MELANGKAH MELAMPAUI MENU Tabel 4. j matriks x matrix(data.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. xij v[i].2: Daftar Operasi Vektor dan Matriks dalam R. nkolom). akhir.). kenaikan).

00 > sum(log(x)) [1] 5.571 10.3.4) [1] 0.25 [3.1] [1.1) > x*y [.143 8.857 4.00 [2.] 1.1) > y<-matrix(c(2.6).00 [4.14 8.3.] 1.71 7. kita memiliki dua vektor.] 20 [3.29 5.3.00 > signif(x. yaitu X = ⎜ ⎝3⎠ dan Y = 6 ⎛ ⎞ 2 ⎜4⎟ ⎜ ⎟ .3.] 36 > x/y [.886104 > prod(log(x)) [1] 4. BEBERAPA FUNGSI PENTING DALAM R [1] 0 2 3 5 6 8 9 10 >signif(x.286 5.4. maka hasil berbagai operasi hitung biasa di antara kedua vektor ini ⎝3⎠ 6 adalah > x<-matrix(c(4.4.00 1.3) [1] 0.57 10.1] [1.86 4.] 9 [4.000 1.5.429 2.39191 .000 115 ⎛ ⎞ 4 ⎜5⎟ ⎟ Contoh 4.] 8 [2.714 7.4.4.43 2.] 2.6).] 1. Misalnya.

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

] 2.916667 > cor(x. maksimum range mean.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 .5 > var(y) [.1] [1. variance correlation ringkasan data contoh/ sampling data Notasi Statistika min.] 0. median() var() cor(x. median.1] [1. max range ¯ .3.y) [. median x S2 ρxy Fungsi perintah dalam R min().3: Fungsi Dasar Statistika pada R No 1 2 3 4 5 6 7 Nama Fungsi minimum.30. max() range() mean().8315218 > range(x) [1] 3 6 > range(y) [1] 2 6 > sample(0:1.endtable [1] 6 > mean(x) [1] 4. BEBERAPA FUNGSI PENTING DALAM R 117 Tabel 4.4.y) summary() sample() range memberikan informasi minimum dan maksimum secara serempak.

Sebagian daftar fungsi. chisq(χ2 ). Fungsi. distribusi merupakan nama-nama distribusi yang tersedia pada R di antaranya beberapa yang penting yang banyak dipakai adalah norm (normal).4. F(F ).replace=T) [1] "G" "G" "A" "A" "G" "G" "A" "A" "G" "G" "G" "A" "A" "G" "G" > sample(1:6. 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. binom(Binomial).118 BAB 4. . RCLI: MELANGKAH MELAMPAUI MENU > sample(c("A".fungsi ini dapat dilihat pada Tabel 4.3. dan gamma dengan jumlah/ ukuran sampel n. ddistribusi untuk mencari nilai fungsi kepadatan f (x) pada suatu nilai x tertentu. rdistribusi untuk membangkitkan data acak/ random dari suatu distribusi dengan Parameter tertentu.t(t).30."G").15.4. Fungsi Pembangkit Data Peubah Acak Disamping fungsi dasar yang telah dibicarakan.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. pois (Poisson). seperti normal. gamma (Gamma). Pada dasarnya ada empat jenis fungsi terkait dengan distribusi peubah acak yaitu sebagai berikut. poisson. 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.

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

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

marks= jemarks=) nis label titik. Tersedia fungsi baik untuk dua maupun tiga dimensi. 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. m=banyaknya label qqnorm(data) dan dikerjakan beruqqline(data) rutan untuk memperoleh grafik titik dan garis persp(x. text(x. y. no.screen(c(baris. 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. BEBERAPA FUNGSI PENTING DALAM R 121 Tabel 4. y.y. xlab="". numerik/simbol pch=’numerik/simbol’) menunjukkan jenis titik axis(1."teks") legend(xpos.outer=T.3. ypos. ylim=c(.4.z) Data dalam bentuk matriks contour(x.layar) berdasarkan urutan pembagian plot(x. lty=0.)) . lty=. 3=atas. angka numerik pch= ’numerik’) menunjukkan jenis garis points(x. "label".y. ylab="".y.y. lty=jenis garis.5: Beberapa Fungsi Dasar R untuk Grafik. 4=kanan. No 1 Tujuan membuat lay out multigrafik (banyak layar) membuat diagram (grafik pencaran= p.layar diurut kolom). no. type=’l/p/b’.z) layout(matriks) Unsur matriks diisi posisi grafik split. lty=1:m.las=1) Nomor aksis 1=bawah 2=kiri.

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

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

screen(c(2. split.1) membagi layar screen(1)menjadi 2 bagian dengan nama screen(3).screen(c(2.screen(c(1.5.2)) split.3). 4. split. split. screen(6).3). screen = 2) screen(1) plot(10:1) screen(3) plot(10:1) screen(4) plot(10:1) . Selanjutnya pembuatan grafik disesuaikan dengan nomor layar yang diinginkan. seperti pada program berikut. screen = 1) split.screen(c(1. split.screen(c(1. dapat dilihat pada Gambar 4.2).1).screen(c(1.2) membagi layar screen(2)menjadi 3 bagian dengan nama screen(5). screen(4).screen(c(1. Sementara Gambar ?? diperoleh dari program berikut ini. RCLI: MELANGKAH MELAMPAUI MENU 3.1)) split. 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.2). screen(6).124 BAB 4.

4.3.6: Lay Out Multi Grafik Kompleks Lain . 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.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.

c(ctl.03. 4. 4. 4. 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 <.69) lm> group <.5.41. 5. 6. 5. trt) .c(4. 3. 4. x<-2 y<-3 cat("Hasil kali x dengan y adalah".33. RCLI: MELANGKAH MELAMPAUI MENU 4.3.61.81. mencetak komentar dan variabel.17.11. 4.89. 3.32. 20.83.7. Misalkan kita ingin mencetak keluaran yang sekaligus memuat komentar atau nama beserta nilainya. Contoh 4. Aneka Rupa Perintah R Di samping fungsi-fungsi yang berhubungan dengan penanganan file seperti membaca file skrip. menyimpan file keluaran. 5. 6. 4. 10. 4. 4.14) lm> trt <. labels = c("Ctl".17.c(4. 5.6.x*y) Contoh 4. 5.53.17. ada juga fungsi lain di antaranya adalah seperti yang ada pada Tabel 4.58.18. seperti “Jika x = 2 dan y = 3 maka hasil kali x dengan y adalah 6.8. 5.6.gl(2. "Trt")) lm> weight <.126 BAB 4.59.87. Skrip untuk program ini adalah sebagai berikut.

0685 3Q 0.001 `**' 0.62e-14 *** --Signif.9818.4938 Median 0.4191 0. BEBERAPA FUNGSI PENTING DALAM R 127 lm> anova(lm.6964 on 18 degrees of freedom Multiple R-Squared: 0.0320 0.7293 0.lm(weight ~ group)) Analysis of Variance Table Response: weight Df Sum Sq Mean Sq F value Pr(>F) group 1 0.4850 lm> summary(lm.249 Residuals 18 8.2202 21.55e-15 *** groupTrt 4.85 9. p-value: < 2.1) Residuals: Min 1Q -1. codes: 0 `***' 0.3690 Coefficients: Estimate Std.16 3.0710 -0.1 ` ' 1 Residual standard error: 0.1 on 2 and 18 DF.2202 22.6882 0.' 0.2462 Max 1.6610 0. Error t value Pr(>|t|) groupCtl 5.05 `.3.2e-16 .lm(weight ~ group .4. Adjusted R-squared: 0.9798 F-statistic: 485.6882 1.01 `*' 0.1)) Call: lm(formula = weight ~ group .D90 <.D9 <.

RCLI: MELANGKAH MELAMPAUI MENU Tabel 4.128 BAB 4.table("namatabel") objek\$bagian # komentar options() demo(NamaFile) example(NamaFile) pustaka harus diaktifkan pustaka harus diaktifkan .definisi Keterangan 7 8 9 10 11 12 read. Fungsi-fungsi ini bermanfaat untuk menangani file. 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.6: Aneka Rupa Fungsi R. 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 <.

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

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

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

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

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.

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

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

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

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

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

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

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

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

4. melakukan operasi scara keseluruhan pada vektor tersebut.4. Menghindarkan Loop R lebih efisien bekerja menggunakan vektor dibandingkan dengan menggunakan loop if then seperti di diuraikan sebelumnya. 1000 n2 n3 log n .4. (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. yaitu:(i) untuk kondisi dimana pada setiap putaran memiliki panjang elemen yang sama dapat dipergunakan matriks. dapat digantikan dengan menggunakan matriks dengan cara 1.21028 145 4. MENULIS PROGRAM PADA R [1] 26. Misalkankita ingin membuat program untuk menghitung seperti ditunjukkan oleh tabel berikut n 10 20 30 40 . Berikut adalah adalah contoh loop yang diganti dengan penggunaan vektor/matriks. mengemas indeks dalam satu vektor (atau kolom suatu matriks) 2.6.. penggunaan vektor dapat mempercepat eksekusi program secara dramatis. Burn bk:Burns1998 mengilustrasikan bahwa dalam kondisi tertentu.41415 $median [1] 50.

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

n 10 20 30 40 .4.20.30.2]<-mean(y) . N (50. yang ukurannya semakin besar (10..4.. 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.2) for(i in 1:n){ n<-i*10 y<-rnorm(n)*sqrt(10)+50 m[i. MENULIS PROGRAM PADA R 147 p adalah posisi yang dijadikan sebagai acuan yaitu:1 jika berdasarkan baris dan 2 jika berdasarkan kolom.1]<-n m[i.. 1000 μ = 50 σ 2 = 25 ¯ X Tugas yang harus dikerjakan komputer pada setiap putaran adalah:(i) membangkitkan data dan (ii) menghitung rata-ratanya.1000).. 10).. 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. . Dengan loop n<-100 m<-matrix(0.n.

64 50.00 43.00 41.97 49.58 50.8] 80.n.00 41.7] [.m2.3] 60.20 40.86 58.1].42 50.12 52.89 40. Median Mean 3rd Qu. Max.2] 40.39 52.type='l'.1) myfun<-function(x){ y<-rnorm(x)*sqrt(10)+50 c(x.87 47.40 48.20 49.148 BAB 4.41 57.4] [.14 49.02 49.36 49.xlab='N'.70 [.17 52.n.ylab='Rata-rata'. RCLI: MELANGKAH MELAMPAUI MENU } plot(m[.75 47.summary(y)) } Keluaran yang dihasilkan adalah sebagai berikut n Min.09 49.60 .57 50.16 52.1]<-20*seq(1.type='l'.5] [.00 160.1] 20. > [.37 47.01 49.47 50.10 50.98 50.47 52.16 [.1) m[.04 55.46 52.46 41.1]<-10*seq(1.78 54.00 46.95 51.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[.00 100.00 120.m[.41 56.6] [.86 47.55 46.2].12 59.1) myfun<-function(x){ y<-rnorm(x)*sqrt(10)+50 mean(y) } m2<-apply(m. Denganapply n<-100 m<-matrix(0.74 48.ylab='Rata-rata'. 1st Qu.main='Judul Grafik') 2.03 50.78 43.16 56.1.00 140.myfun) plot(m.n.46 48.21 50.xlab='N'.42 [.95 51.98 58.

sehingga harus dicari dengan metode numerik.4.4.1) dengan f (x) = df /dx. Mencari maksimum dari suatu fungsi pada dasarnya sama dengan menyelesaikan persamaan dari turunan pertamanya.7. Pada umumnya persamaan seperti ini. (4. Menghitung Akar-Akar Persamaan dengan Metode Numerik Untuk persamaan selain persamaan linear dan kuadrat. 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. biasanya penyelesaian ditempuh dengan menggunakan metode numerik. Contoh 4.14. Secara umum bentuk iterasi Newton-Raphson yang dipergunakan untuk menyelesaikan persamaan f (x) = 0 adalah x1 = x0 − f (x) f (x) (4. kecuali jika persamaan itu tidak memiliki jawaban. Jika yang dicari adalah nilai x yang menyebabkan fungsi itu mencapai maksimum/ minimum. dalam statistika jarang mempunyai penyelesaian analitik. Misalkan kita ingin mencari titik maksimum atau minimum dari fungsi: f (x) = sin(x) + x2 + 2x pada − 10 ≤ x ≤ 10. Dalam statistika kita sering berhubungan dengan fungsi-fungsi likelihood yang akan dicari maksimumnya. 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.3) .2) Hal ini sesuai dengan penjelasan sebelumnya bahwa mencari titik maksimum suatu fungsi sama halnya mencari penyelesaian dari fungsi turunan pertamanya.4. MENULIS PROGRAM PADA R 149 4.

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

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

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

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

⎠ 0 ∂f ∂vp 0 (4. hanya kita bekerja dalam operasi vektor/ matriks (v).8) ∂2f ∂v1 ∂v2 .154 BAB 4.00093363323004958 Banyaknya iterasi adalah 44 Hasil di atas menunjukkan bahwa fungsi yang kita evaluasi memiliki dua titik dimana dia mencapai maksimum/ minimum.9) .2444951635172 Tingkat ketelitian adalah 0. ··· ∂2f ∂v1 ∂vp . ··· . . ⎝ .1 ⎜ ⎟ ⎜ ⎟ . . .. ⎟ ⎠ ⎜ . ⎝. Ilustrasi akan lebih jelas pada saat kita menampilkan grafik fungsi tersebut. ⎟ −⎜ ⎜. ⎝.⎠ ∂2f ∂vp ∂v1 vp 1 vp 0 ⎞ ⎛ ∂f ⎞ ∂v (4. 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 ⎟ ⎜ .⎠ .24448623841328 Tingkat ketelitian adalah 0.000934621250368472 Banyaknya iterasi adalah 53 x awal = 3 Fungsi akan memperoleh nilai max/min pada titik x=2. . ∂2f ∂vp ∂v2 ∂2f 2 ∂vp ⎜ ∂f1 ⎟ ⎟ ⎜ ∂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. Untuk menghitung akar-akar persamaan fungsi multivariabel (fungsi dua variabel atau lebih) prinsip yang kita gunakan sama. ⎟ =⎜. . . ⎟ ⎝ .

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

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

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

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

. grafik.6. oleh karena itu paket yang telah diinstal lebih populer disebut sebagai library atau pustaka. Selanjutnya kita dapat memilih topik yang tersedia dan lebih mengkhususkan pencarian kita pada topik tersebut dengan menggunakan help(topik).function(x. . help. y. "(x)").function(x. MEMANFAATKAN PAKET PROGRAM R } if ("ylab" %in% nms) plot.) } else UseMethod("plot") }} 159 4.1.4. help() untuk mengetahui dokumentasi bantuan secara umum.start().6.6.. y.. Paket-paket yang telah diinstal bersama R akan ditempatkan dalam direktory library. Memanfaatkan Paket Program R Fungsi-fungsi kompleks untuk keperluan tertentu (misalnya regresi. 4. ylab = paste(deparse(substitute(x)).) else plot. 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 . 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. Hampir semua paket program R didistribusikan secara cuma-cuma dan disediakan di situs R dan dapat dimanfaatkan bersama dengan program utama R.

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

>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: . 161 Nama dalam kurung menunjukkan pustaka tempat perintah tersebut berada.6. Misalkan kita ingin mendapat informasi gam(mgcv) maka yang harus kita lakukan adalah menjalankan perintah berikut.. mengaktifkan pustaka bersangkutan dengan menggunakan library(NamaPustaka) dan 2. Untuk memperoleh informasi lebih lanjut. mencari informasi dengan menggunakan help(topik).4. 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 . yang perlu dilakukan adalah: 1..

References: Key References on this implementation: Wood.) .. For more on model selection see 'gam. scale=0. na.N.Statist.control=gam.action. fit=TRUE..H=NULL.sp=NULL. Multi-dimensional smooths are available using penalized thin plate regression splines (isotropic) or tensor product splines (when an isotropic smooth is inappropriate).N.162 BAB 4.min. J. For large datasets see warnings.family=gaussian().R..data=list(). Usage: gam(formula.. weights=NULL. (2000) Modelling and Smoothing Parameter Estimation with Multiple Quadratic Penalties.. .knots=NULL. S.gamma=1. For more on specifying models see 'gam..selection'.models'. (2003) Thin plate regression splines.G=NULL. subset=NULL. S. sp=NULL. 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.control(). ..Soc.offset=NULL.B 62(2):413-428 Wood.

0. 0.seed(0) n<-400 sig<-2 x0 <. sig) y <. 1) f <.rnorm(n. Example library(mgcv) set.f+0.Statist. 1) x1 <. 0. seperti terlihat pada dokumentasi gam(mgcv) sebelumnya. MEMANFAATKAN PAKET PROGRAM R 163 J.R. 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.B 65(1):95-114 Wood (2001) mgcv:GAMs and Generalized Ridge Regression for R.runif(n. .runif(n.. R News 1(2):20-25 .2 * sin(pi * x0) f <. 0.runif(n.2*x2^11*(10*(1-x2))^6+10*(10*x2)^3 *(1-x2)^10-1. 1) x2 <.Soc.75887 f <. 1) x3 <.10.3.runif(n.f + e b<-gam(y~s(x0)+s(x1)+s(x2)+s(x3)) summary(b) plot(b) Dalam tipa-tiap pustaka. 0.4. biasanya ada informasi referensi untuk mempelajari teori serta beberapa contoh penggunaan pustaka tersebut.396 e <.f + exp(2 * x1) ..6.

t ratio (Intercept) 2.1 < 2.22e-16 s(x3) 1 0.05 < 2.(adj) = 0. RCLI: MELANGKAH MELAMPAUI MENU Family: gaussian Link function: identity Formula: y ~ s(x0) + s(x1) + s(x2) + s(x3) Parametric coefficients: Estimate std.sq p-value s(x0) 5.1049 26. Misalkan dari data Orange dengan variabel Tree.357 302.50693 R-sq.164 BAB 4.7% Scale est.22e-16 Approximate significance of smooth terms: edf chi.44123 0.22e-16 s(x2) 8. maka kita dapat menirunya untuk dipergunakan dalam analisis data riil yang kita miliki. Memanggil Pustaka dengan CLI Apablia kita telah mengetahui cara pemanfaatan suatu pustaka melalui contoh yang ada. err.6.4029 n = 400 4. > attach(Orange) .2.31 Pr(>|t|) < 2.726 GCV score = 4.517 753. kita dapat melakukan analsis gam yang paling sederhana seperti berikut. age dan circunference.87 4.4272e-05 s(x1) 2.611 Deviance explained = 73.173 28.7602 0. = 4.

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

5246 0. err. maka diperoleh hasil > summary(gam(circumference~age+Tree.07141 Tree.5% Scale est. RCLI: MELANGKAH MELAMPAUI MENU > library(mgcv) > summary(gam(circumference~age. = 563.data=Orange)) Family: gaussian Link function: identity Formula: circumference ~ age Parametric coefficients: Estimate std.013257 0.06863 age 0.296 0.051793 1.22e-16 < 2.63 t ratio 2. (Intercept) 3.family=Gamma(log). (Intercept) 17.35 17.1856 Pr(>|t|) < 2.008277 R-sq.018 12.07141 t ratio 51.L 0.83 4. data=Orange)) Family: Gamma Link function: log Formula: circumference ~ age + Tree Parametric coefficients: Estimate std.4 8. err.22e-16 0.Q 0.(adj) = 0.166 BAB 4.9 Pr(>|t|) 0.48 n = 35 Dengan pilihan distribusi = Gamma dan fungsi link log.30679 0.00017816 0.83 GCV score = 597.588e-05 Tree.0011746 6.85402 .9306e-14 Deviance explained = 83.10677 0.623 age 0.

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

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

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

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

12: Perintah Menu pada Jendela Skrip dapat dieksekusi langsung . BACAAN LEBIH LANJUT 171 Gambar 4.4.9.

172 BAB 4. RCLI: MELANGKAH MELAMPAUI MENU .

Sign up to vote on this title
UsefulNot useful