Sigit Pemrograman Datamining R 3
Sigit Pemrograman Datamining R 3
Lisensi Dokumen:
Copyright 2003-200! IlmuKomputer.Com "eluruh do#umen di IlmuKomputer.Com dapat diguna#an$ dimodi%i#asi dan dise&ar#an secara &e&as untu# tu'uan &u#an #omersial (nonpro%it)$ dengan syarat tida# menghapus atau meru&ah atri&ut penulis dan pernyataan copyright yang diserta#an dalam setiap do#umen. *ida# diper&oleh#an mela#u#an penulisan ulang$ #ecuali mendapat#an i'in terle&ih dahulu dari IlmuKomputer.Com.
Pendahuluan
Selain sebagai software paket statistika, R juga merupakan lingkungan sistem pemrograman yang cukup lengkap. Artinya, R dapat digunakan sebagai alat untuk memecahkan berbagai masalah melalui pemrograman. Tentu saja masalah yang lebih tepat dipecahkan dengan R adalah yang terkait dengan analisis data dalam konteks statistika. Para developer R menyadari bahwa analisis data kuantitatif melalui statistika memerlukan beberapa tahapan yang mana setiap tahapan dibutuhkan alat bantu untuk berbicara dengan lingkungan disekitarnya. Secara singkat tahapan ini meliputi !" persiapan data, #" pemilihan metode$teknik, %" eksekusi dan &" penyajian informasi. Sebagai contoh, pada tahap persiapan data, alat bantu yang dibutuhkan bagi seorang stastisi adalah kemudahan dalam menghubungkan raw data 'database, file terstruktur, dsb" dengan lingkungan R. Solusi yang diberikan oleh developer dan kontributor R terkait dengan hal ini diantaranya adalah membuat library ()*+, ,)*+, +S- dll. Selain kemudahan, konsep yang sering digunakan oleh para programer adalah otomatisasi dan integrasi proses. Artinya dalam sistem yang kompleks, lingkungan R harus bisa menyediakan interface bahasa yang berfungsi sebagai penghubung antar fungsi.fungsi dalam sistem tersebut. )engan latar belakang itulah developer dan kontributor R membuat berbagai interface bahasa pemrograman yang berada diluar R seperti +, ,ava dan Tcl$Tk agar bisa memudahkan proses otomatisasi dan integrasi. Pada kesempatan kali ini penulis ingin mengkhususkan pembahasan interface bahasa di R yang sangat populer yaitu java. )iharapkan para pembaca sudah menyempatkan diri untuk mengulas materi sebelumnya yang sudah diupload oleh penulis diantaranya/ pengenalan R!, dasar.dasar
! http/$$ilmukomputer.org$#0!#$0&$01$mengenal.software.statistika.r.sebagai.datamining.tooldi.linu2$
Rserve
*erikutnya adalah menginstalasi file.file plugin. Ada baiknya jika menggunakan user root untuk memudahkan proses kompilasi file.file plugin. <ntuk hal ini maka perlu di. setting R=>(95 untuk user root dengan melakukan e/port variabel R=>(95 dalam file $root$.bashrc ?. Perintah instalasi file.file plugin dapat dilakukan dengan sekali perintah yaitu sebagai berikut/ !. *erada di direktori tempat menaruh file.file plugin
cd /home/sigit/R/src/plugin/
R CMD INSTALL l /home/sigit/R/R !"#$"$/program/li%/R/li%rar&/ ' D(I)$"! *"tar"g+ r,ava)$"- #"tar"g+ R,D(C)$"# ."tar"g+ Rserve)$"/ $"tar"g+
7angkah berikutnya yang sangat penting bagi client yang akan mengakses server R adalah membuat library java dari plugin Rserve. 7ibrary java berupa file jar dibuat dari source plugin Rserve. 7akukan langkah.langkah berikut untuk mengkompilasi source menjadi file jar. !. 3embali berada di direktori tempat menaruh file.file plugin
cd /home/sigit/R/src/plugin/
Tunggu beberapa saat, setelah sukses maka hasil kompilasi tersebut adalah # file yang penting dalam melakukan pemrograman java di R yaitu file R ngine!"ar dan Rserve!"ar.
ara Pertama
+ara pertama adalah masuk terlebih dahulu ke dalam workspace R dengan perintah/
R
setelah berada di dalam workspace ketikkan panggil library Rserve lalu aktifkan dengan fungsi Rserve#$/
library(Rserve) Rserve()
,ika berhasil maka Rserve akan hidup dalam mode daemon menggunakan port 1%!!/
Starting Rserve on port 6311 : /home/sigit/R/R-2.10.0/program/lib/R/bin/R CMD /home/sigit/R/R2.10.0/program/lib/R/library/Rserve/libs//Rserve-bin.so !revio"sly save# $or%spa&e restore#' Rserv starte# in #aemon mo#e.
ara Kedua
+ara berikutnya adalah langsung menjalankan perintah R/
R CMD Rserve
3arena belum ada fasilitas untuk mematikan Rserve maka untuk menghentikan server gunakan perintah sebagai berikut/
2illall Rserve
Penggunaan masing.masing metode tersebut dapat dimengerti dalam contoh berikut ini.
&
Java
RConnection c 9 ne1 RConnection58: RList l 9 ne1 RList58: l"put5;2olom"#;6ne1 R<=>Integer5ne1 int?@A #6!67B88: l"put5;2olom"!;6ne1 R<=>Integer5ne1 dou%le?@A #"$6!"$67"$B88: c"assign5;data"frame"a;6 ne1 R<=>"createDataErame5l88:
+ara lain untuk me-assign variabel vector adalah dengan memanfaatkan metode parseAnd5val'". +ara ini sangat praktis apabila sebab seolah.olah kita bekerja pada workspace R. Semua perintah R dapat dilakukan didalam metode dengan menambahkan karakter kurung siku buka 'D" dan tutup 'E", pemisah antar baris.nya adalah semicolon'F", dan yang ditangkap sebagai variabel R5BP di java adalah baris terakhir. Sebagai misal data frame iris adalah bawaan dari workspace R, maka dapat langsung dipanggil dengan metode parseAnd5val'".
Java
RConnection c 9 ne1 RConnection58: R<=> df 9 c"parseAnd<val5;Adata5iris8: irisB;8: c"assign5;data"frame"iris;6 df8:
<ntuk lebih jelasnya akan kita sandingkan perintah di R dengan java sebagai berikut/
%angkah 9enentukan nama, kualitas, tipe file image plot yang akan dibuat 9emanggil variabel.variabel data frame yang akan ditampilkan dalam plot 9enyimpan stream file image ke dalam variabel di program java 9enampilkan stream file image.
R
jpeg5Ftest"jpgF6 Gualit&9H$8
Java
RConnection c 9 ne1 RConnection58: R<=> rImage 9c"parseAnd<val5;jpeg5Ftest"jpgF6IJ KGualit&9H$8;8:
public class JRPlot { JMenu ar !enu; JMenu !enu"ile; JMenu#te! !enu#te!$eluar; J%ext"ield textRu!us; J"ra!e window; J&abel labelPlot; R'onne(tion (; public JRPlot)* { // !e!buat !enu standar !enu + new JMenu ar)*; !enu"ile + new JMenu)*; !enu#te!$eluar + new JMenu#te!)*; !enu"ile.set%ext),"ile,*; !enu#te!$eluar.set%ext),%utup,*; !enu"ile.add)!enu#te!$eluar*; !enu.add)!enu"ile*; // window window + new J"ra!e),Plot R ,*; window.setPre-erred.i/e)new 0i!ension)1223 122**; window.setJMenu ar)!enu*; // text box te!pat !enulis ru!us textRu!us + new J%ext"ield),-un(tion)x*{x456,*; textRu!us.set"ont)new "ont),7rial,3 523 52**; // te!pat ga!bar plot labelPlot + new J&abel)*; window.get'ontentPane)*.add)labelPlot3 window.get'ontentPane)*.add)textRu!us3
order&ayout.CENTER*; order&ayout.SOUTH*;
//inisialisasi aksi3 li8at !et8od 9publi( void init7(tion)*9; init7(tion)*; window.pa(k)*; window.set&o(ationRelative%o)null*; window.set:isible)true*;
//prosedur !engga!bar plot; private void ga!barPlot)*{ try { //de-ault koneksi ke lo(al8ost; ( + new R'onne(tion)*; int x + labelPlot.get.i/e)*.8eig8t; int y + labelPlot.get.i/e)*.widt8; // perinta8 s(ript R yang paling penting RE;P xp + (.parse7ndEval),try)jpeg)9test.jpg9338+, < x < ,3w+, < y < ,**,*; (.parse7ndEval),plot), < textRu!us.get%ext)* < ,*,*; (.parse7ndEval),dev.o--)*,*; xp + (.parse7ndEval),r+read in)9test.jpg939raw93=251*=251*; unlink)9test.jpg9*; r,*; //ga!bar ditangkap ole8 java
#!age i!g + %oolkit.getDefaultToolkit)*.(reate#!age)xp.as ytes)**; #(on plot + new #!age#(on)i!g*; //!enaru8 ga!bar di label te!pat plot ditaru8 labelPlot.set#(on)plot*; window.set%itle),Plot R >, < textRu!us.get%ext)* < ,?,*; 6 catch )Ex(eption e* { J@ptionPane.showMessageDialog)window3 ,!aa- ada kesala8anA..,*; e.print.ta(k%ra(e)*; 6 6 private void init7(tion)*{ //aksi !engga!bar plot jika textbox di tekan enter textRu!us.add7(tion&istener)new 7(tion&istener)* { public void a(tionPer-or!ed)7(tionEvent e* { ga!barPlot)*; 6 6*; //aksi !engga!bar plot -ra!e di uba8 tinggi dan lebarnya labelPlot.add'o!ponent&istener)new 'o!ponent7dapter)* { public void (o!ponentResi/ed)'o!ponentEvent e* { ga!barPlot)*; 6 6*; window.addBindow&istener)new Bindow7dapter)* { public void window'losing)BindowEvent evt* { tutup7plikasi)*; 6 6*; !enu#te!$eluar.add7(tion&istener)new 7(tion&istener)* { public void a(tionPer-or!ed)7(tionEvent e* { tutup7plikasi)*; 6 6*;
private void tutup7plikasi)*{ //tutup koneksi dan aplikasi (.(lose)*; .yste!.exit)2*; 6 public static void !ain).tring>? args*{ //jalankan progra! new JRPlot)*; 6
Sebelum melakukan kompilasi letakkan file Rserve.jar dan Rengine.jar sejajar dengan file ,RPlot.java dan lakukan kompilasi program java dengan perintah sebagai berikut/
javac cp Rserve"jarMR<ngine"jarM" ,R>lot"java
Cile yang dihasilkan adalah berupa file.file bytecode dengan ekstensi .class. >al ini berarti kompilasi telah berhasil dilakukan. Setelah itu jalankan program java dengan perintah sebagai berikut/
java cp Rserver"jarMR<ngine"jarM" ,R>lot
Penutup
Sampai dengan saat ini anda sudah dapat melakukan komunikasi antara bahasa R dan java. Teknologi interface java di R membantu developer untuk mengeksplor lebih jauh utility R di java sehingga integrasi antara kekuatan java dan R dapat digabungkan. Tidak mustahil apabila perintah.perintah R dijalankan secara otomatis melalui program java. Selain itu dengan memanfaatkan kemampuan java atas infrastruktur pemrograman web maka proses datamining di R melalui dunia maya sangat mungkin untuk dilakukan.
Re'erensi
!. 6haka, R. I Jentleman, R. '!KK1". "R: A Language for Data Analysis and Graphics". ournal of Computational and Graphical !tatistics " #$%: &''($)*. www.jstor.org
#. Rossiter, ). J. '#00K". +ntroduction to the R ,ro-ect for !tatistical Computing for use at +.C. Accessed/0%.0%. #0!0. http/$$ www.itc.nl$ personal$ rossiter %. Lilliams, Jraham ,. Rattle: A Data /ining G0+ for R. Accessed/01.0&.#0!#. http/$$journal.r.project.org$archive$#00K.#$R,ournal=#00K.#=Lilliams.pdf &. +hihara, 7aura. ,lotting Concepts in R. http/$$www.people.carleton.edu$Mlchihara$Splus$RPlot.pdf ?. http/$$www.rforge.net$Rserve 1. http/$$www.R.project.org Accessed/ 0A.!#.#00K.
(iogra'i Penulis
Sigit Wahyu Kartiko. 9enyelesaikan )6- di Sekolah Tinggi Akuntansi :egara dan 9agister 5konomi di Cakultas 5konomi <niversitas 6ndonesia. 9emiliki kompetensi pada bidang programming 'java, scala, R, +, +;;", data&ase, accounting 'privat, publik", pu&lic sector economics.
!0