• Tidak ada hasil yang ditemukan

Puji dan syukur diucapkan kepada Allah SWT atas selesainya buku yang berjudul Seri Pemrograman: Supervise Learning dengan R.

N/A
N/A
Protected

Academic year: 2021

Membagikan "Puji dan syukur diucapkan kepada Allah SWT atas selesainya buku yang berjudul Seri Pemrograman: Supervise Learning dengan R."

Copied!
176
0
0

Teks penuh

(1)
(2)

I

Kata Pengantar

Puji dan syukur diucapkan kepada Allah SWT atas selesainya buku yang berjudul Seri Pemrograman: Supervise Learning dengan R.

Metode atau teknik matematika, statistik atau machine learning yang dibahas pada buku ini adalah telah umum digunakan. Sehingga buku ini tidak akan membahas tentang konsep metode dan teknik tersebut. Buku hanya fokus membahas implementasi setiap metode dan teknik pada lingkungan R.

Topik machine learning yang dibahas pada buku ini hanya fokus kepada supervised learning pada umumnya dan klasifikasi pada khususnya. Setiap teknik klasifikasi yang dibahas disertai contoh masalah dan penyelesaian langkah demi langkah sehingga dapat diikuti oleh pembaca dengan mudah.

Selain membahas teknik-teknik supervised learning - klasifikasi, buku ini juga membahas teknik yang digunakan untuk mengukur kinerja teknik klasifikasi yang digunakan. Sehingga pembaca dapat memiliki pengetahuan yang lengkap untuk menyelesaikan masalah klasifikasi pada lingkungan R.

Akhir kata, selamat membaca dan semoga buku ini bermanfaat bagi para pemula untuk mempelajari machine learning pada umumnya dan supervised learning - klasifikasi dengan R pada khususnya. Kritik dan saran akan sangat berarti dan dapat ditujukan via email.

Banjarmasin, Desember 2016

M Reza Faisal ([email protected])

(3)

II

Daftar Isi

Kata Pengantar ... I

Daftar Isi ... II

Daftar Gambar ... VII

1 Pendahuluan ...12

Bagaimana Manusia Belajar Mengenali? ... 12

Kenapa Komputer Perlu Mempunyai Kemampuan Belajar Seperti

Manusia? ... 12

Machine Learning ... 13

Domain Model ... 13 Definisi ... 14 Istilah-Istilah ... 14 Tipe ... 15 Langkah-Langkah Implementasi ... 17

Machine Learning & Data Mining ... 17

2 Pengantar Pemrograman R ...18

Installasi ... 18

Comprehensive R Archive Network (CRAN)... 18

Microsoft R Archive Network (MRAN) ... 23

Tool Pemrograman ... 27

RGui ... 27

RStudio ... 30

R Tools for Visual Studio ... 34

3 Fungsi-Fungsi Dasar R ...37

Package ... 37

Installasi Package ... 37

Memuat Package ... 38

Working Directory ... 38

Mendapatkan Working Directory ... 38

Menentukan Working Directory ... 39

Dataset ... 39

(4)

III

write.csv() ... 40

write.table() ... 40

Membaca File Text ... 41

read.csv() ... 41

read.table() ... 41

Membaca File Excel... 41

Akses Database ... 42

Akses Database MySQL ... 42

Akses Database SQL Server ... 42

Menampilkan Data ... 43

head() ... 43 tail() ... 44 View() ... 44 obyek$rowName ... 45

Memfilter Data ... 46

obyek[,x:y] ... 46 obyek[x:y,] ... 46 obyek[x1:y1, x2:y2]... 46 obyek[which(), ] ... 46

Menggabung Data ... 47

rbind() ... 47 cbind() ... 47

Explorasi Data ... 48

dim()... 48 names() ... 48 str() ... 48 table() ... 48 summary() ... 49

Grafik ... 49

plot() ... 49 scatterplot3() ... 51 plot3d() ... 52 hist() ... 53 density() ... 54 pie() ... 54

(5)

IV

barplot() ... 55

boxplot() ... 56

par() ... 57

Visualisasi Data ... 58

Principal Component Analysis (PCA) ... 58

Visualisasi 2D ... 59 Visualisasi 3D ... 61

Help... 61

4 Pengantar Klasifikasi ...63

Definisi ... 63

Data 63

Langkah-Langkah Pengembangan ... 66

Pengenalan Data ... 66 Pembagian Data ... 66

Implementasi Algoritma Klasifikasi ... 68

Pengukuran Kinerja Algoritma Klasifikasi ... 69

5 Pengenalan & Pembagian Data ...75

Pengenalan Data ... 75

Dataset Iris ... 75

Dataset Titanic ... 79

Dataset Yeast... 81

Pembagian Data ... 84

Persiapan Working Directory ... 85

Data untuk Klasifikasi Binary Class ... 85

Data untuk Klasifikasi Multi Class ... 88

6 Rancangan Aplikasi Klasifikasi ...89

Apa Langkah Selanjutnya? ... 89

Rancangan Aplikasi ... 89

Rancangan Aplikasi 1 ... 89 Rancangan Aplikasi 2 ... 90 Rancangan Aplikasi 3 ... 91

7 K-Nearest Neighbors (KNN) ...93

Cara Kerja ... 93

Persiapan ... 93

(6)

V

Sintaks ... 94

Implementasi ... 94

Aplikasi 1 ... 94 Aplikasi 2 ... 96 Aplikasi 3 ... 101

Catatan ... 107

8 Naïve Bayes ...108

Cara Kerja ... 108

Persiapan ... 111

Sintaks ... 111

Implementasi ... 113

Aplikasi 1 ... 113 Aplikasi 2 ... 115 Aplikasi 3 ... 117

Catatan ... 120

9 Support Vector Machine (SVM) ...121

Cara Kerja ... 121

Persiapan ... 122

Sintaks ... 122

Implementasi ... 123

Aplikasi 1 ... 124 Aplikasi 2 ... 125 Aplikasi 3 ... 128

Catatan ... 132

10 Decision Tree ...133

Cara Kerja ... 133

Persiapan ... 138

Sintaks ... 138

Implementasi ... 138

Aplikasi 1 ... 138 Aplikasi 2 ... 141 Aplikasi 3 ... 144

Catatan ... 148

(7)

VI

11 Klasifikasi Kelas Tidak Seimbang ...149

Definisi & Efek Kelas Tidak Seimbang ... 149

KNN ... 150

Naïve Bayes ... 151

SVM... 152

Decision Tree ... 153

Solusi Masalah ... 154

Dataset Class Tidak Seimbang ... 155

Solusi Pendekatan Data ... 156

Undersampling ... 156

Oversampling ... 162

Gabungan Undersampling & Oversampling ... 166

Solusi Pendekatan Algoritma ... 171

Bootstrap Aggregating (Bagging) ... 171

Boosting ... 172

Stacking ... 172

Catatan ... 173

12 Referensi ...174

(8)

VII

Daftar Gambar

Gambar 1. Data, metode statistik dan kekuatan komputasi computer (sumber: Machine

Learning with R). ... 14

Gambar 2. Dataset iris. ... 15

Gambar 3. Halaman download R-3.3.2 for Windows. ... 18

Gambar 4. Window Select Setup Language. ... 19

Gambar 5. Window Setup - Welcome. ... 19

Gambar 6. Window Setup - Informasi lisensi. ... 19

Gambar 7. Windows Setup - Lokasi folder installasi... 20

Gambar 8. Window Setup - Pemilihan komponen. ... 20

Gambar 9. Window Setup - Pemilihan opsi startup. ... 21

Gambar 10. Window Setup - Memilih lokasi folder Start Menu. ... 21

Gambar 11. Window Setup - Pemilihan task tambahan. ... 22

Gambar 12. Windows Setup - Proses installasi. ... 22

Gambar 13. Window informasi akhir proses installasi. ... 23

Gambar 14. Window Microsoft R Open 3.3.1 Setup – Welcome. ... 23

Gambar 15. Window Microsoft R Open 3.3.1 Setup – Informasi lisensi. ... 24

Gambar 16. Window Microsoft R Open 3.3.1 Setup – Install Math Kernel Library. ... 24

Gambar 17. Window Microsoft R Open 3.3.1 – Lisensi Math Kernel Library. ... 25

Gambar 18. Window Microsoft R Open 3.3.1 Setup – Folder installasi. ... 25

Gambar 19. Window Microsoft R Open 3.3.1 Setup – Memulai installasi. ... 26

Gambar 20. Window Microsoft R Open 3.3.1 Setup – proses installasi selesai. ... 26

Gambar 21. RGui. ... 27

Gambar 22. R Console. ... 28

Gambar 23. Window R Editor. ... 28

Gambar 24. Menyimpan file script R. ... 29

Gambar 25. Eksekusi file script R. ... 29

Gambar 26. Window R Graphics. ... 30

Gambar 27. Window RStudio Setup - Welcome. ... 30

Gambar 28. Window RStudio Setup - Lokasi installasi. ... 31

Gambar 29. Window RStudio Setup - Memilih lokasi folder Start Menu. ... 31

Gambar 30. Window RStudio Setup - proses installasi. ... 32

Gambar 31. Window RStudio Setup - detail proses installasi. ... 32

(9)

VIII

Gambar 33. Antarmuka RStudio. ... 33

Gambar 34. Fitur auto complete kode. ... 34

Gambar 35. Window Plots untuk menampilkan grafik. ... 34

Gambar 36. Installasi R Tool 0.5 for Visual Studio 2015. ... 35

Gambar 37. Proses installasi R Tool 0.5 for Visual Studio. ... 35

Gambar 38. Proses installasi R Tool 0.5 for Visual Studio 2015 selesai. ... 36

Gambar 39. Antarmuka R Tool for Visual Studio. ... 36

Gambar 40. Proses installasi package pada R Tool for Visual Studio 2015. ... 37

Gambar 41. Proses installasi package pada RStudio. ... 38

Gambar 42. Daftar dataset pada RStudio. ... 39

Gambar 43. Daftar dataset pada R Tools for Visual Studio. ... 40

Gambar 44. Output fungsi View() pada R Tool for Visual Studio. ... 44

Gambar 45. Output fungsi View() pada RStudio. ... 45

Gambar 46. Output fungsi View() pada RGui. ... 45

Gambar 47. Grafik plot(iris[,1], iris[,2]) ... 50

Gambar 48. Grafik plot(cars). ... 51

Gambar 49. Grafik plot(iris). ... 51

Gambar 50. Grafik scatterplot3d(). ... 52

Gambar 51. Grafik plot3d(). ... 53

Gambar 52. Grafik hist(mtcars[,1]) ... 54

Gambar 53. Grafik density. ... 54

Gambar 54. Grafik pie() ... 55

Gambar 55. Grafik pie dataset iris. ... 55

Gambar 56. Grafik barplot vertical. ... 56

Gambar 57. Grafik barplot horizontal... 56

Gambar 58. Grafik fungsi boxplot(). ... 56

Gambar 59. Fungsi par() untuk membuat 2 grafik dalam 1 kolom. ... 57

Gambar 60. Fungsi par() untuk membuat 3 grafik dalam 1 kolom. ... 57

Gambar 61. Fungsi par() untuk membuat 4 grafik dalam 2 baris dan 2 kolom. ... 58

Gambar 62. Grafik visualisasi 2D dengan fungsi biplot(). ... 60

Gambar 63. Grafik 2 dimensi fungsi pca2d(). ... 60

Gambar 64. Grafik 3 dimensi fungsi pca3d() ... 61

Gambar 65. Output fungsi help() pada R Tools for Visual Studio. ... 62

Gambar 66. Output fungsi help() pada RStudio. ... 62

(10)

IX

Gambar 68. Data dibagi menjadi data training dan testing. ... 67

Gambar 69. Membagi data menjadi 2. ... 67

Gambar 70. Data dibagi 5 bagian. ... 67

Gambar 71. Data proses pertama. ... 67

Gambar 72. Data proses kedua. ... 68

Gambar 73. Data proses ketiga. ... 68

Gambar 74. Data proses keempat. ... 68

Gambar 75. Data proses keempat. ... 68

Gambar 76. 5-fold cross validation data iris. ... 68

Gambar 77. 5-fold cross validation data contoh. ... 68

Gambar 78. Kasus klasifikasi binary class. ... 70

Gambar 79. Precision & recall. ... 72

Gambar 80. Kurva Receiver Operation Characteristics (ROC) ... 73

Gambar 81. Dataset iris ditampilkan dengan fungsi View(). ... 75

Gambar 82. Sebaran data iris dalam 2 dimensi. ... 77

Gambar 83. Sebaran data iris dalam 3 dimensi. ... 77

Gambar 84. Sebaran data obyek iris2class pada ruang 2 dimensi. ... 78

Gambar 85. Sebaran data obyek iris2class pada ruang 3 dimensi. ... 78

Gambar 86. Dataset Titanic. ... 80

Gambar 87. Web UCI Machine Learning Repository. ... 81

Gambar 88. Isi file yeast.data. ... 81

Gambar 89. Output fungsi View(yeast). ... 82

Gambar 90. Sebaran data yeast pada ruang 2 dimensi... 84

Gambar 91. Sebaran data yeast pada ruang 3 dimensi... 84

Gambar 92. Pembagian dataset iris2class. ... 85

Gambar 93. Output dari kode program iris2class.5fold.crossvalidation.R ... 86

Gambar 94. Pembagian data titanic. ... 86

Gambar 95. Output dari kode program titanic.kfold.crossvalidation.R ... 87

Gambar 96. Pembagian data iris. ... 88

Gambar 97. Alur proses aplikasi 1. ... 90

Gambar 98. Alur proses aplikasi 2. ... 90

Gambar 99. Alur proses aplikasi 3. ... 91

Gambar 100. Cara kerja algoritma K-Nearest Neighbors (KNN). ... 93

Gambar 101. Grafik ROC Aplikasi 2 KNN. ... 100

(11)

X

Gambar 103. Grafik ROC Aplikasi 2 Naïve Bayes. ... 117

Gambar 104. Grafik ROC gabungan Aplikasi 3 Naïve Bayes. ... 119

Gambar 105. Sebaran instance class Women & Men. ... 121

Gambar 106. Hyperplane pada SVM. ... 121

Gambar 107. Hyperplane optimal. ... 122

Gambar 108. Kurva ROC kasus klasifikasi Titanic dengan SVM. ... 127

Gambar 109. Grafik ROC kasus klasifikasi Iris dengan SVM. ... 128

Gambar 110. Kurva ROC kasus dataset Titanic pada aplikasi 3. ... 129

Gambar 111. Kurva ROC kasus dataset Irispada aplikasi 3. ... 130

Gambar 112. Kurva ROC kasus dataset Iris pada kasus multiclass classification. ... 131

Gambar 113. Decision tree (pohon keputusan) data cuaca. ... 133

Gambar 114. Pohon tahap 1. ... 135

Gambar 115. Pohon tahap 2. ... 136

Gambar 116. Pohon tahap 3. ... 136

Gambar 117. Pohon tahap akhir. ... 137

Gambar 118. Decision tree dataset Iris. ... 139

Gambar 119. Decision tree dataset Titanic. ... 141

Gambar 120. Kurva ROC aplikasi 2 fungsi J48() dataset Iris. ... 143

Gambar 121. Kurva ROC aplikasi 2 fungsi J48() kasus Titanic. ... 144

Gambar 122. Kurva ROC aplikasi 3 dengan fungsi J48() dan cross validation kasus dataset Iris. ... 145

Gambar 123. Kurva ROC aplikasi 3 dengan fungsi J48() dan cross validation kasus dataset Titanic. ... 146

Gambar 124. Decision tree dataset iris 3 class. ... 147

Gambar 125. Sebaran dataset hacide... 150

Gambar 126. Kurva ROC klasifikasi dataset hacide dengan KNN. ... 151

Gambar 127. Kurva ROC klasifikasi dataset hacide dengan Naïve Bayes. ... 152

Gambar 128. Kurva ROC klasifikasi dataset hacide dengan SVM. ... 153

Gambar 129. Kurva ROC klasifikasi dataset hacide dengan Decision Tree. ... 154

Gambar 130. Kurva ROC untuk kasus klasifikasi dengan KNN dan undersampling. ... 157

Gambar 131. Kurva ROC untuk kasus klasifikasi dengan Naïve Bayes dan undersampling.159 Gambar 132. Kurva ROC untuk kasus klasifikasi dengan SVM dan undersampling. ... 160

Gambar 133. Kurva ROC untuk kasus klasifikasi dengan decision tree dan undersampling 161 Gambar 134. Kurva ROC untuk kasus klasifikasi dengan KNN dan oversampling. ... 163

Gambar 135. Kurva ROC untuk kasus klasifikasi dengan Naïve Bayes dan oversampling. .. 164

(12)

XI

Gambar 137. Kurva ROC untuk kasus klasifikasi dengan decision tree dan oversampling. . 166

Gambar 138. Kurva ROC untuk kasus klasifikasi dengan KNN dan gabungan oversampling dan undersampling. ... 167

Gambar 139. Kurva ROC untuk kasus klasifikasi dengan Naïve Bayes dan gabungan oversampling dan undersampling. ... 168

Gambar 140. Kurva ROC untuk kasus klasifikasi dengan SVM dan gabungan oversampling dan undersampling. ... 169

Gambar 141. Kurva ROC untuk kasus klasifikasi dengan decision tree dan gabungan oversampling dan undersampling. ... 170

Gambar 142. Skema teknik bagging. ... 171

Gambar 143. Skema teknik boosting. ... 172

(13)

12

1

Pendahuluan

Bagaimana Manusia Belajar Mengenali?

Anak kecil mempunyai keingintahuan yang sangat tinggi. Saat seorang anak kecil dan orang tuanya duduk di depan rumah maka anak kecil tersebut mungkin akan bertanya tentang apa saja yang lewat di depan rumahnya.

Saat mobil lewat, sang anak bertanya: “Itu apa?”. “Itu mobil nak”, jawab sang orang tua. Pertanyaan serupa mungkin diulang-ulang oleh sang anak sampai puluhan mobil lewat di depan rumahnya. Sampai suatu saat hal itu tidak akan ditanyakan lagi oleh sang anak. Karena sang anak telah mengenal ciri-ciri bermacam-macam mobil yang telah lewat di depan rumahnya.

Suatu saat mungkin sang anak akan memiliki pertanyaan lain. Tetapi pertanyaannya masih berkaitan tentang mobil. Sang anak bertanya: “Itu mobil ya?”. Sang orang tua akan menjawab: “Iya nak” ketika yang lewat adalah mobil. Dan menjawab: “Bukan nak” ketika yang lewat bukan mobil.

Hal yang sama mungkin akan terjadi lagi ketika sang anak melihat sepeda motor. Dan kembali sang anak akan berhenti bertanya ketika sang anak telah mengenal ciri-ciri bermacam-macam sepeda motor yang dia lihat. Ketika proses belajar pengenalan mobil dan sepeda motor selesai, maka sang anak akan dengan gampang mengklasifikasikan mana mobil dan sepeda motor.

Cerita di atas adalah contoh sederhana supervised learning. Karena data tentang setiap mobil memiliki labelnya. Jika data tentang setiap mobil adalah setiap pertanyaan tentang mobil, maka label adalah jawaban sang orang tua.

Kenapa Komputer Perlu Mempunyai

Kemampuan Belajar Seperti Manusia?

Tetapi masalah yang dihadapi manusia tidak hanya masalah menentukan dan membedakan sepeda motor dan mobil saja. Banyak hal-hal serupa yang ingin diketahui oleh manusia sebagai contoh adalah bagaimana membedakan email spam dan email bukan spam. Jika manusia belajar mengidentifikasi email spam dan bukan seperti bagaimana sang anak di atas belajar, maka dengan mudah dapat membedakan email spam dan bukan.

Tetapi masalahnya tidak mungkin untuk mempekerjakan manusia untuk memfilter email spam yang jumlahnya jutaan bahkan milyaran lebih email pada Yahoo! Mail atau Gmail. Karena manusia mempunyai kebatasan dalam hal kecepatan melakukan menghadapi jumlah yang banyak, selain itu keterbatasan stamina untuk bekerja dalam waktu yang lama atau tanpa istirahat.

Selain masalah filter email spam juga ada masalah lain seperti: 1. Menentukan penipuan transaksi di bank.

(14)

13 2. Pada bidang bioinformatika terdapat masalah seperti klasifikasi kanker, DNA,

genome dan lain-lain.

3. Klasifikasi lahan pada citra GIS. 4. Dan lain-lain.

Machine Learning

Domain Model

Pada sub bab pertama telah disebutkan bagaimana anak mengenali sesuatu. Manusia dapat melakukan hal karena otak mampu membuat model berdasarkan masalah yang dihadapi yang disebut domain model. Dengan model tersebut maka dapat dilakukan proses seperti:

1. Klasifikasi. 2. Prediksi. 3. Clustering. 4. Explanation.

Pada sub bab pertama terdapat dua domain yaitu “sepeda motor atau mobil” dan “email spam atau bukan”. Untuk membuat domain model dapat digunakan dua pendekatan yaitu:

1. Pendekatan basis pengetahuan (knowledge-based)

Pendekatan ini dapat dilakukan jika ada seorang ahli di suatu domain yang memberikan pengetahuan eksplisit untuk mengidentifikasi sesuatu. Seorang ahli pada suatu domain lebih dikenal sebagai expert system. Jika pendekatan ini diimplementasikan pada perangkat lunak maka pembuat perangkat akan menjadi pemberi pengetahuan secara eksplisit tentang domain model.

2. Pendekatan data-driven

Pendekatan ini memanfaatkan data yang telah ada untuk membangun konsep model secara implisit sehingga dapat digunakan untuk mengidentifikasi sesuatu.

Pada buku ini akan berfokus pada pendekatan data-driven. Untuk membuat data menjadi domain model agar didapat informasi yang dapat digunakan untuk melakukan aksi maka digunakan metode-metode yang telah dikenal pada bidang statistik. Proses data dengan metode-metode statistik tersebut dibantu dengan bantuan kekuatan komputasi yang dimiliki oleh komputer.

(15)

14

Gambar 1. Data, metode statistik dan kekuatan komputasi computer (sumber: Machine Learning with R).

Karena menggunakan metode statistik maka proses di atas disebut statistical learning, tetapi lebih populer atau lebih dikenal dengan istilah machine learning.

Definisi

Mechine learning adalah bidang yang mempelajari pengembangan algoritma komputer untuk mengubah data menjadi aksi yang cerdas (Machine Learning with R). atau secara singkat dapat juga diartikan sebagai proses mengubah data menjadi informasi (Machine Learning in Action).

Selain machine learning, juga sering didengar istilah data mining yang merupakan saudara kandungnya. Tetapi ada pendapat yang menyatakan tumpang tinding machine learning dan data mining dimana secara virtual pada seluruh data mining pasti melibatkan penggunaan machine learning tetapi tidak seluruh machine learning melibatkan data mining. Sebagai contoh machine learning digunakan untuk melakukan proses data mining data lalu lintas kendaraan bermotor untuk mendapatkan pola yang berhubungan dengan tingkat kecelakaan. Kemudian bedakan dengan bagaimana proses pembelajaran komputer untuk mengendarai mobil dimana hal tersebut murni machine learning tanpa ada data mining. Maka dapat ditarik kesimpulan singkat yaitu:

1. Machine learning berfokus pada bagaimana pembelajaran komputer menggunakan komputer untuk memecahkan masalah.

2. Data mining berfokus pada bagaimana pembelajaran komputer mengindentifikasi pola yang akan digunakan manusia untuk memecahkan masalah.

Istilah-Istilah

Sebelum membahas tentang machine learning lebih dalam, maka pada sub bab ini akan disebutkan dan diterangkan terminologi atau istilah-istilah yang umum digunakan.

Dataset, Instance & Feature

Dengan menggunakan pendekatan data-driven maka pembelajaran dapat dilakukan jika telah dimiliki data atau sering disebut sebagai dataset. Di bawah ini ditampilkan dataset iris yang terdiri atas 150 baris atau record yang akan lebih dikenal dengan istilah instance.

(16)

15 …

Gambar 2. Dataset iris.

Pada dataset di atas dapat dilihat 5 kolom yaitu: 1. Sepal.Length.

2. Sepal.Width. 3. Petal.Length. 4. Petal.Width. 5. Species.

Istilah yang digunakan untuk kolom adalah feature, artinya dataset di atas memiliki 5 feature. Pada beberapa algoritma, feature dapat dibedakan menjadi dua yaitu: feature dan target variable (target feature). Sebagai contoh jika dataset di atas diproses dengan algoritma klasifikasi maka target variable (target feature) adalah Species sedangkan sisanya adalah feature.

Training Set & Test Set

Dataset akan digunakan pada proses pembelajaran algoritma paling tidak terdapat dua tahap yang harus dilakukan, yaitu tahap training dan pengujian (test). Jika dimiliki 150 instance pada dataset maka harus dibagi menjadi dua. Data yang digunakan pada tahap training akan disebut dengan istilah training set. Sedangkan yang digunakan pada tahap pengujian disebut test set.

Untuk teknik pembagian dataset menjadi training dan test set akan diterangkan pada bab yang lain.

Tipe

Machine learning dapat dibedakan menjadi dua tipe. Tipe yang dimaksudkan di sini adalah tipe algoritma yaitu:

1. Supervised learning. 2. Unsupervised learning.

Supervised Learning

Pembelajaran pada tipe ini telah diketahui apa yang akan diprediksi atau target variablenya. Sehingga tujuan membangun algoritma sudah jelas hal apa yang akan diprediksi. Oleh karena itu model yang dihasilkan dari tipe ini adalah model prediksi.

(17)

16 Model prediksi digunakan untuk melakukan proses prediksi target variable (target feature) berdasarkan feature-feature lain pada suatu dataset. Algoritma pembelajaran yang dibangun mencoba untuk menemukan dan memodelkan hubungan antara target variable (target feature) tersebut dengan feature-feature lainnya.

Klasifikasi adalah contoh task mechine learning tipe supervised untuk melakukan prediksi. Beberapa contoh penerapan klasifikasi adalah sebagai berikut:

1. Penentuan email adalah email spam. 2. Penentuan seseorang mengidap kanker. 3. Penentuan kemenangan suatu tim sepakbola.

Pada klasifikasi, target feature yang akan diprediksi adalah feature terkategori yang dikenal dengan istilah kelas (class) dan dapat dibagi menjadi kategori yang disebut dengan istilah level.

Kasus klasifikasi dapat dibedakan berdasarkan tipe masalah yang umumnya ditemui, yaitu: 1. Klasifikasi 1 class.

2. Klasifikasi 2 class (binary).

3. Klasifikasi multiclass, terdapat lebih dari 2 class.

Saat ini telah banyak teknik/metode klasifikasi yang dikembangkan untuk menyelesaikan masalah klasifikasi 2 class. Sehingga untuk menyelesaikan masalah klasifikasi multiclass dapat digunakan kombinasi teknik/metode yang biasa digunakan untuk menyelesaikan klasifikasi 2 class

Supervised learning juga dapat digunakan untuk memprediksi data numerik. Task seperti ini dikenal dengan istilah regresi.

Berikut ini adalah beberapa nama algoritma tipe supervised leaning yaitu: 1. K-Nearest Neighbors.

2. Naïve Bayes.

3. Suport Vector Machine. 4. Decision Trees.

5. Linear Regression. 6. Neural Network.

Unsupervised Learning

Unsupervised learning merupakan kebalikan dari tipe sebelumnya dimana tidak terdapat target variable (target feature) pada dataset. Model yang dihasilkan dari tipe ini adalah descriptive model.

Salah satu task descriptive model untuk menemukan pola yang bisa mengidentifikasi asosiasi pada dataset. Contoh implementasinya dapat dilakukan pada menemukan pola pada proses analisis barang yang dibeli oleh pembeli pada suatu super market atau mini market. Tujuan dari analisis ini adalah untuk mengetahui barang-barang yang sering dibeli bersama-sama. Sebagai contoh jika pembeli membeli roti maka otomatis juga membeli keju dan susu kental manis. Atau jika pembeli membeli sabun cuci maka juga membeli pengharum pakaian. Dengan informasi pola tersebut maka pemilik super market dapat menggunakannya untuk membuat iklan diskon untuk kelompok barang tersebut, atau pemilik juga dapat membuat agar tata letak barang-barang tersebut dibuat berdekatan.

(18)

17 Task descriptive model yang lain adalah mengelompokkan dataset ke dalam kelompok-kelompok yang homogen yang disebut dengan istilah clustering. Kelompok-kelompok-kelompok homogen yang dihasilkan dari clustering perlu bantuan manusia untuk melakukan intepretasi hasil tersebut untuk menentukan atau mendeskripsikan apa isi dari kelompok-kelompok tersebut.

Contoh unsupervised learning adalah: 1. Association rule.

2. K-Mean clustering.

Langkah-Langkah Implementasi

Berikut ini adalah langkah-langkah yang digunakan untuk melakukan implementasi machine learning untuk menyelesaikan kasus yang dihadapi. Terdapat 5 tahap yang dapat diterapkan pada pada setiap algoritma machine learning, yaitu:

1. Pengumpulan data.

2. Eksplorasi dan persiapan data, langkah eksplorasi data bertujuan untuk lebih mengenal data yang digunakan. Sedangkan langkah persiapan data bertujuan untuk meningkatkan kualitas data seperti menghilangkan data yang tidak diperlukan. Karena kualitas model yang dihasilkan sangat bergantung pada data yang digunakan.

3. Training/pelatihan model, langkah pembangunan model. Pada langkah ini digunakan training set sebagai input data.

4. Evaluasi model, langkah evaluasi dilakukan untuk mengetahui performansi dari model yang dihasilkan maka model yang dihasilkan pada tahap sebelumnya akan diuji dengan menggunakan test set sebagai input data.

5. Perbaikan model, langkah ini diperlukan jika diinginkan performansi yang lebih baik. Ada beberapa cara yang dapat dilakukan untuk itu mendapatkan performansi yang lebih baik, diantaranya adalah mengganti tipe learning atau algoritma yang digunakan. Atau dengan cara melakukan perbaikan pada data yang digunakan baik dengan cara menambah data, mengurangi feature pada dataset dan lain-lain.

Machine Learning & Data Mining

Berikut ini adalah penjelasan secara singkat keterkaitan atau hubungan antara machine learning dan data mining.

Secara singkat, data mining menggunakan metode statistik untuk mencari pola tersembunyi pada database agar dapat menjelaskan suatu fenomena. Sedangkan machine learning menggunakan teknik-teknik data mining dan algoritma pembelajaran lainnya untuk membuat model dari hal-hal yang terjadi pada data untuk memprediksi kejadian selanjutnya. Selanjutnya machine learning akan digunakan pada bidang artificial intelligence untuk membuat model yang digunakan untuk pengenalan kebiasaan dan prediksi aksi sebagai contoh implementasi pada game atau mobil pintar yang bisa berjalan sendiri.

(19)

18

2

Pengantar Pemrograman R

R bukan saja bahasa tetapi juga lingkungan/environment untuk komputasi statistik dan grafik. R merupakan project GNU yang dikembangkan oleh Bell Laboratories (sebelumnya AT&T, sekarang Lucent Technologies). Team pengembang R adalah John Chamber dan teman-temannya.

R menyediakan berbagai macam tool statistik dari linier dan memodelan non linier, uji statistik klasik, analisis time-series, klasifikasi, clustering dan lain-lain. R juga menyediakan tool teknik grafis yang bertujuan untuk menampilkan data yang telah diolah secara visual dalam bentuk grafik.

R merupakan project open-source yang memungkinkan banyak pihak untuk memberikan kontribusi dalam proses pengembangan.

Installasi

Comprehensive R Archive Network (CRAN)

Installer atau source code R tersedia dalam beberapa platform yaitu Windows, Mac OS X dan Linux. Pada buku ini digunakan installer yang diunduh dari link berikut ini https://cran.r-project.org/bin/windows/base/.

Gambar 3. Halaman download R-3.3.2 for Windows.

Klik link “Download R.3.3.2 for Windows. Nama file installernya adalah R.3.3.2-win.exe. File ini berukuran sekitar 70MB.

Setelah proses download selesai, klik double pada file R.3.3.2-win.exe. Langkah pertama adalah memilih bahasa yang digunakan.

(20)

19

Gambar 4. Window Select Setup Language.

Klik tombol OK, kemudian akan ditampilkan window yang berisi ucapan selamat datang seperti gambar di bawah ini.

Gambar 5. Window Setup - Welcome.

Klik tombol Next, kemudian akan ditampilkan informasi penting tentang lisensi.

(21)

20 Klik tombol Next, kemudian akan ditampilkan window untuk memilih folder installasi. Klik Browse jika ingin mengubah lokasi folder installasi.

Gambar 7. Windows Setup - Lokasi folder installasi.

Klik Next, kemudian akan window pemilihan komponen untuk diinstall. Centang 32-bit Files jika menggunakan komputer dengan processor 32-bit. Atau centang 64-bit Files jika menggunakan komputer dengan processor 64-bit.

Gambar 8. Window Setup - Pemilihan komponen.

Klik Next, kemudian akan ditampilkan window untuk memilih opsi startup. Untuk memudahkan pilih No agar menggunakan opsi default startup.

(22)

21

Gambar 9. Window Setup - Pemilihan opsi startup.

Kemudian akan ditampilkan window untuk memilih lokasi folder Start Menu. Klik tombol Browse jika ingin menganti lokasi folder Start Menu.

Gambar 10. Window Setup - Memilih lokasi folder Start Menu.

Klik tombol Next, kemudian akan ditampilkan window untuk memilih task tambahan yang akan dilakukan pada proses installasi. Pilih task tambahan sesuai keinginan.

(23)

22

Gambar 11. Window Setup - Pemilihan task tambahan.

Klik tombol Next, kemudian proses installasi akan dilakukan.

Gambar 12. Windows Setup - Proses installasi.

(24)

23

Gambar 13. Window informasi akhir proses installasi.

Klik tombol Finish untuk menutup proses installasi.

Microsoft R Archive Network (MRAN)

Platform R juga dapat diunduh dari Microsoft R Archive Network (MRAN). Nama platform R pada sumber ini adalah Microsoft R Open. Saat buku ini ditulis versi terbaru adalah 3.3.1. Platform R dari sumber ini telah dimodifikasi untuk meningkatkan kinerja komputasi multi-thread.

Installer Microsoft R Open 3.3.1 dapat diunduh pada link berikut ini

https://mran.revolutionanalytics.com/download/. Ukuran file installer adalah 149MB. Untuk memulai proses installasi, klik double pada file microsoft-r-open-3.3.1.msi.

(25)

24 Klik tombol Next, kemudian akan ditampilkan window informasi seperti gambar di bawah ini.

Gambar 15. Window Microsoft R Open 3.3.1 Setup – Informasi lisensi.

Centang checkbox I acknoledge the above licnesing information, kemudian klik tombol Next. Kemudian akan ditampilkan window opsi untuk menginstall Math Kernel Library.

Gambar 16. Window Microsoft R Open 3.3.1 Setup – Install Math Kernel Library.

Klik tombol Next, kemudian akan ditampilkan window lisensi Math Kernel Library. Centang checkbox I accept the MKL license terms.

(26)

25

Gambar 17. Window Microsoft R Open 3.3.1 – Lisensi Math Kernel Library.

Klik tombol Next, kemudian akan ditampilkan window untuk menentukan lokasi folder installasi. Klik tombol Change jika ingin mengubah folder installasi.

Gambar 18. Window Microsoft R Open 3.3.1 Setup – Folder installasi.

(27)

26

Gambar 19. Window Microsoft R Open 3.3.1 Setup – Memulai installasi.

Klik tombol Install, kemudian proses installasi dimulai.

Window dibawah ini akan ditampilkan setelah proses installasi selesai. Klik tombol Finish untuk menutup window dan menyelesaikan proses installasi.

(28)

27

Tool Pemrograman

RGui

RGui adalah tool pemrograman R. RGui merupakan bagian dari plotform R yang telah diinstall pada sub bab sebelumnya. RGui dapat dijalankan dengan memilih icon R x64 3.3.2 pada desktop atau memilih pada start menu.

Antarmuka RGui dapat dilihat pada gambar di bawah ini.

Gambar 21. RGui.

Console

Console atau R Console adalah window yang digunakan untuk mengeksekusi fungsi R. Pada console dapat dieksekusi lebih dari satu fungsi. Console ini juga dapat digunakan untuk mengeksekusi program yang disimpan di dalam file script R. R Console dapat dilihat pada gambar di atas.

Berikut adalah contoh penggunaan R Console. Ketik kode berikut pada window R Console. print("hello world of R")

(29)

28

Gambar 22. R Console.

Editor

Editor adalah window untuk mengetik kumpulan fungsi R atau program script R. Window ini tidak dapat digunakan untuk menjalankan fungsi R. Window editor dapat ditampilkan dengan cara memilih menu File > New script atau dengan menekan tombol Ctrl+N. Maka akan ditampilkan window R Editor. Tuliskan kode program seperti berikut pada window R Editor.

for(i in 1:10) {

print(paste(i,". hello world of R")) }

Hasilnya dapat dilihat seperti pada gambar di bawah ini.

(30)

29 Untuk menyimpan ke dalam file, pilih menu File > Save atau dengan cara menekan tombol Ctrl+S. Kemudian berikan nama file yaitu HelloWorld.R, seperti pada gambar di bawah ini.

Gambar 24. Menyimpan file script R.

Selanjutnya, pilih menu File > Source R Code. Kemudian pilih file HelloWorld.R. Makan akan dapat dilihat hasil seperti pada gambar di bawah ini.

Gambar 25. Eksekusi file script R.

Grafik

RGui memiliki window grafik untuk menampilkan hasil dari fungsi menggambar grafik. Contoh fungsi untuk mengambar grafik adalah plot(). Di bawah ini adalah contoh penggunaan fungsi plot().

x = c(1,2,3,4) y = c(2,4,6,8) plot(x,y)

Eksekusi setiap baris di atas pada window console. Maka akan ditampilkan window grafik seperti berikut ini.

(31)

30

Gambar 26. Window R Graphics.

RStudio

RStudio tool pemrograman atau integrated development environment (IDE) bahasa R yang memiliki antarmuka lebih baik daripada RGui. RStudio memiliki 2 versi lisensi, yaitu Open Source Edition dan Commercial Edition. Installer RStudio dapat didownload di

https://www.rstudio.com/products/RStudio/. RStudio tersedia untuk platform Windows, Mac OS X dan Linux versi Ubuntu dan Fedora.

Installasi

Versi RStudio saat buku ini ditulis adalah 1.0.44. Nama file installer untuk versi ini adalah RStudio-1.0.44.exe yang berukuran 82MB. Setelah proses download selesai, klik double pada file installer.

Gambar 27. Window RStudio Setup - Welcome.

Klik tombol Next, kemudian akan ditampilkan window untuk memilih lokasi installasi. Klik tombol Browse jika ingin menganti lokasi folder installasi.

(32)

31

Gambar 28. Window RStudio Setup - Lokasi installasi.

Klik tombol Next, kemudian akan ditampilkan window untuk memilih folder Start Menu.

Gambar 29. Window RStudio Setup - Memilih lokasi folder Start Menu.

(33)

32

Gambar 30. Window RStudio Setup - proses installasi.

Klik tombol Show details jika ingin melihat daftar file yang diinstall.

Gambar 31. Window RStudio Setup - detail proses installasi.

Setelah proses installasi selesai, maka akan ditampilkan window seperti pada gambar di bawah ini. Klik tombol Finish untuk mengakhiri proses installasi.

(34)

33

Gambar 32. Window RStudio Setup - Proses installasi selesai.

Antarmuka

Antarmuka RStudio dapat dilihat pada gambar di bawah ini.

Gambar 33. Antarmuka RStudio.

RStudio memiliki window Editor, Console dan Plot (untuk menampilkan grafik) yang terintegrasi. Selain itu RStudio juga memiliki window Environment untuk menampilkan objek atau variable yang telah digunakan. RStudio juga memiliki fitur explorer untuk melihat daftar file dan daftar folder seperti yang terlihat pada tab Files di gambar di atas. Fitur ini dapat digunakan untuk membuat folder atau menghapus folder dan file.

(35)

34 RStudio juga memiliki fitur auto complete kode seperti terlihat pada gambar di bawah ini.

Gambar 34. Fitur auto complete kode.

Berikut adalah contoh bagaimana RStudio menampilkan grafik pada window Plots.

Gambar 35. Window Plots untuk menampilkan grafik.

R Tools for Visual Studio

R Tool for Visual Studio adalah extension pada Visual Studio. Extension ini dapat digunakan untuk membuat Visual Studio menjadi integrated development environment (IDE) untuk bahasa pemrograman R.

R Tool for Visual Studio dapat diunduh di https://www.visualstudio.com/vs/rtvs/. Ekstensi ini berukuran 3,6MB dan memerlukan ruang hardisk sebesar 9MB untuk proses installasi. Saat buku ini ditulis, versi R Tool for Visual Studio adalah 0.5.

(36)

35

Installasi

Setelah installer selesai didownload. Klik double pada file installer. Maka akan ditampilkan window seperti gambar di bawah ini.

Gambar 36. Installasi R Tool 0.5 for Visual Studio 2015.

Klik tombol Install, maka proses installasi akan dilakukan seperti yang terlihat pada gambar di bawah ini.

(37)

36 Setelah proses installasi selesai maka akan dilihat window seperti gambar di bawah ini.

Gambar 38. Proses installasi R Tool 0.5 for Visual Studio 2015 selesai.

Antarmuka

Antarmuka R Tool for Visual Studio dapat dilihat pada gambar di bawah ini. R Tool for Visual Studio memiliki Editor, R Interactive yang berfungsi sebagai R Console, R Plot untuk menampilkan grafik dan Solution Explorer untuk menampilkan daftar folder dan file. R Tool for Visual Studio memiliki R Plot History untuk menampilkan daftar grafik yang telah dibuat.

(38)

37

3

Fungsi-Fungsi Dasar R

Bab ini akan menjelaskan tentang fungsi-fungsi dasar R. Fungsi-fungsi yang dibahas akan berfokus pada fungsi untuk operasi data seperti membaca data dari file, memfilter data, mengabung data, menampilkan data ke layar, menulis data ke file dan menggambar data dalam grafik. Selain itu juga dibahas fungsi-fungsi pendukung lainnya.

Package

Default lingkungan R telah memiliki banyak fungsi-fungsi yang dapat digunakan untuk berbagai keperluan. Lingkungan R dapat ditambahkan fungsi-fungsi baru. Fungsi-fungsi baru tersebut biasanya dalam bentuk package.

Installasi Package

Package-package tersebut disimpan pada server yang dapat diakses secara online. Proses installasi package hanya dapat dilakukan jika ada koneksi internet.

Fungsi install.package() adalah fungsi untuk mengunduh dan menginstall package. Sintaks fungsi ini adalah sebagai berikut.

install.packages(“NamaPackage”)

Kode di bawah ini adalah contoh untuk menginstall package “kernlab”. install.packages("kernlab")

Gambar di bawah ini adalah informasi yang dilihat setelah proses installasi package selesai.

(39)

38

Gambar 41. Proses installasi package pada RStudio.

Memuat Package

Fungsi-fungsi package hanya dapat digunakan jika package telah dimuat. Package harus dimuat setiap saat session baru dibuat atau setiap saat baru menjalankan tool pemrograman R.

Fungsi untuk memuat package adalah library(). Sintaks fungsi ini adalah sebagai berikut. library(NamaPackage)

atau

library(“NamaPackage”)

Berikut adalah contoh kode untuk memuat package “kernlab”.

library("kernlab")

Working Directory

Working directory atau direktori kerja adalah direktori/folder aktif pada suatu session. User hanya dapat mengakses file script R dan file data yang berada pada working direktory. Jika user ingin mengakses file di luar working directory maka user harus menulis path direktori/folder dan nama file.

Kode di bawah ini adalah contoh untuk mengakses file pada working directory. read.csv("data.csv")

Kode di bawah ini adalah contoh untuk mengakses file diluar working directory. read.csv("D:/Data/data_riset.csv")

Mendapatkan Working Directory

Untuk mendapatkan informasi working directory dapat digunakan fungsi getwd(). Di bawah ini adalah contoh penggunaan fungsi getwd() dan outputnya.

> getwd()

(40)

39

Menentukan Working Directory

Untuk menentukan working directory dapat digunakan fungsi setwd(). Sintaks fungsi ini adalah sebagai berikut.

setwd(“path_absolute”)

Kode di bawah ini adalah contoh penggunaan fungsi setwd() dan outputnya. > setwd("C:/")

> getwd() [1] "C:/"

Dataset

Platform R telah memiliki lebih 100 dataset yang dapat digunakan untuk latihan. Fungsi data() digunakan untuk melihat daftar dataset tersebut. Ketik fungsi data() pada window Console pada RStudio atau RGui maka hasilnya dapat dilihat pada gambar di bawah ini.

Gambar 42. Daftar dataset pada RStudio.

(41)

40

Gambar 43. Daftar dataset pada R Tools for Visual Studio.

Iris adalah salah satu dataset yang umum digunakan sebagai latihan atau contoh pemrograman R.

Menulis Data Ke File

Iris dataset akan digunakan pada contoh-contoh di sub bab ini.

write.csv()

Fungsi write.csv() untuk menulis file yang berisi nilai-nilai yang dipisahkan oleh koma. Format file yang dihasilkan adalah file text.

Sintaks fungsi ini adalah sebagai berikut. write.csv(ObjectName, "FileName")

Untuk menyimpan dataset iris ke file data.csv maka digunakan perintah berikut ini. write.csv(iris, "data.csv")

write.table()

Fungsi write.table() untuk menulis file yang berisi nilai-nilai yang dipisahkan oleh tab. Sintaks fungsi ini adalah sebagai berikut.

write.table(ObjectName, "FileName")

Untuk menyimpan dataset iris ke file data.txt maka digunakan perintah berikut ini. write.table(iris, "data.txt")

(42)

41

Membaca File Text

Format file yang umum digunakan digunakan menyimpan data adalah file text yang berisi nilai-nilai yang dipisahkan oleh tanda koma atau tab.

read.csv()

Jika file text berisi nilai-nilai yang dipisahkan oleh tanda koma maka dapat digunakan fungsi read.csv(). Sintaks fungsi ini adalah sebagai berikut.

ObjectName = read.csv("FileName")

Sebagai contoh, untuk membaca file data.csv digunakan kode berikut. Obyek data_csv akan menyimpan data file data_penelitian.csv yang dibaca oleh fungsi ini.

data_csv = read.csv("data.csv")

read.table()

Jika file text berisi nilai-nilai yang dipisahkan tab maka dapat digunakan fungsi read.table(). Sintaks fungsi ini adalah sebagai berikut.

ObjectName = read.table("FileName")

Sebagai contoh, untuk membaca file data.txt digunakan kode di bawah ini. data_txt = read.table("data.txt")

Obyek data_txt akan menyimpan data file data_penelitian.txt yang dibaca oleh fungsi read.table().

Membaca File Excel

File Excel juga umum digunakan untuk menyimpan data. Untuk membaca file Excel diperlukan package “xslx”. Install package ini dengan perintah berikut.

install.packages("xlsx")

Setelah proses installasi package “xslx” selesai, muat library ini dengan perintah di bawah ini. library(xlsx)

Fungsi yang digunakan untuk membaca file Excel adalah sebagai berikut. data_xlsx = read.xlsx("FileName", sheetName = "SheetName")

Sebagai contoh, untuk membaca file data.xlsx digunakan perintah berikut ini. data_xlsx = read.xlsx("data.xlsx", sheetName = "Sheet1")

(43)

42

Akses Database

Platform R juga dapat membaca data dari database server seperti MySQL dan SQL Server.

Akses Database MySQL

Untuk mengakses database MySQL pada platform R diperlukan package tambahan. Package yang dapat digunakan adalah RMySQL.

Untuk menginstall package RMySQL digunakan perintah berikut. install.packages("RMySQL")

Kemudian muat library RMySQL dengan perintah berikut. library(RMySQL)

Langkah pertama sebelum melakukan operasi database adalah melakukan koneksi ke database dengan fungsi dbConnect(). Untuk melakukan koneksi ke database digunakan sintaks berikut.

ObjectName = dbConnect(MySQL(), user='UserName', password='Password', dbname='DatabaseName', host='HostName')

Sebagai contoh nama database adalah belajar_r, nama host adalah localhost, nama user adalah root dan password user adalah Rahasia. Maka perintah untuk melakukan koneksi adalah sebagai berikut.

mydb = dbConnect(MySQL(), user='root', password='Rahasia', dbname='belajar_r', host='localhost')

Untuk melihat daftar tabel pada database belajar_r digunakan fungsi dbListTables(). Berikut adalah contoh untuk menampilkan daftar tabel.

> dbListTables(mydb) [1] "iris"

Dari ouput perintah di atas, terdapat 1 tabel yaitu iris.

Untuk mengeksekusi SQL query dapat digunakan fungsi dbSendQuery(). Sebagai contoh, untuk menampilkan data dari tabel iris dapat digunakan kode di bawah ini.

rs = dbSendQuery(mydb, 'select * from iris') data_iris = fetch(rs, n=-1)

Data dari tabel iris akan disimpan pada obyek data_iris. Untuk menampilkan isi data ke layar dapat dilakukan dengan mengetik obyek data_iris pada R console.

Akses Database SQL Server

Package tambahan yang digunakan untuk mengakses database SQL Server adalah RODBC. Kode di bawah ini untuk menginstall package RODBC.

install.packages("RODBC")

Untuk memuat library RODBC digunakan kode di bawah ini. library(RODBC)

(44)

43 Untuk melakukan koneksi ke database digunakan fungsi odbcDriverConnect(). Sintaks fungsi odbcDriverConnect() adalah sebagai berikut.

ObjectName = odbcDriverConnect('driver={SQL

Server};server=HostName;database=DatabaseName;trusted_connection=true')

Jika database server berada pada komputer yang sama dan nama database adalah BelajarR, maka digunakan kode berikut ini.

myodbc = odbcDriverConnect('driver={SQL

Server};server=.;database=BelajarR;trusted_connection=true')

Untuk membaca data pada tabel iris pada database BelajarR digunakan fungsi sqlQuery(). Contoh kode yang dapat digunakan adalah sebagai berikut.

data_iris <- sqlQuery(myodbc, 'select * from iris')

Ketik obyek data_iris pada R console untuk melihat isi data tabel iris.

Menampilkan Data

Cara untuk menampilkan data adalah memanggil obyek yang digunakan untuk menyimpan data. Sebagai contoh, cara ini adalah untuk menampilkan data yang disimpan pada obyek data_txt.

> data_txt = read.table("data.txt") > data_txt

Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa 7 4.6 3.4 1.4 0.3 setosa 8 5.0 3.4 1.5 0.2 setosa 9 4.4 2.9 1.4 0.2 setosa 10 4.9 3.1 1.5 0.1 setosa ...

Data akan ditampilkan di layar.

head()

Untuk menampilkan sejumlah data dari awal digunakan fungsi head(). Sintaks fungsi ini adalah sebagai berikut.

head(ObjekName, RowNumber)

Sebagai contoh, untuk menampilkan data dari obyek data_txt sebanyak 5 row digunakan perintah ini.

> head(data_txt, 5)

Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa

(45)

44

tail()

Untuk menampilkan sejumlah data dari akhir digunakan fungsi tail(). Sintaks fungsi ini adalah sebagai berikut.

tail(ObjekName, RowNumber)

Sebagai contoh, untuk menampilkan data dari obyek data_txt sebanyak 5 row digunakan perintah ini.

> tail(data_txt, 5)

Sepal.Length Sepal.Width Petal.Length Petal.Width Species 146 6.7 3.0 5.2 2.3 virginica 147 6.3 2.5 5.0 1.9 virginica 148 6.5 3.0 5.2 2.0 virginica 149 6.2 3.4 5.4 2.3 virginica 150 5.9 3.0 5.1 1.8 virginica

View()

Fungsi View() digunakan untuk menampilkan data dalam bentuk tabel. Untuk menampilkan data dari obyek data_txt, gunakan perintah di bawah ini.

View(data_txt)

Hasilnya dapat dilihat pada gambar-gambar di bawah ini.

(46)

45

Gambar 45. Output fungsi View() pada RStudio.

Gambar 46. Output fungsi View() pada RGui.

obyek$rowName

Pada gambar di atas dapat dilihat obyek data_txt memiliki 5 kolom. Nama kelima kolom itu adalah Sepal.Length, Sepal.Width, Petal.Length, Petal.Width dan Species. Cara untuk melihat seluruh nilai pada kolom Species dapat dilakukan dengan contoh di bawah ini.

(47)

46 data_txt$Species

Untuk menampilkan seluruh nilai pada kolom Sepal.Width digunakan contoh di bawah ini. data_txt$Sepal.Width

Memfilter Data

obyek[,x:y]

Jika data pada obyek terdiri atas 5 kolom, maka untuk menampilkan kolom 1 sampai 4 saja digunakan perintah di bawah ini.

data_txt[,1:4]

Jika ingin menampilkan kolom 1, kolom 3 dan kolom 5 saja dapat digunakan perintah berikut ini.

data_txt[,c(1,3,5)]

obyek[x:y,]

Jika ingin menampilkan data pada obyek berdasarkan baris yang diinginkan, misal baris 13 sampai baris 23 maka digunakan perintah ini.

data_txt[13:23,]

Jika ingin menampilkan baris 1, baris 3 dan baris 5 saja maka digunakan perintah berikut. data_txt[c(1,3,5),]

obyek[x1:y1, x2:y2]

Jika ingin menampilkan data pada obyek baris 13 sampai 23 saja dan kolom yang ditampilkan hanya kolom 1 sampai 4 saja maka digunakan perintah berikut ini.

data_txt[13:23, 1:4]

Jika ingin menampilkan data pada baris 1, 3 dan 5 saja dan kolom 1, 3 dan 5 saja maka digunakan perintah berikut ini.

data_txt[c(1,3,5), c(1,3,5)]

obyek[which(), ]

Untuk memfilter data berdasarkan suatu nilai pada sebuah kolom dapat digunakan fungsi which(). Berikut ini adalah contoh menampilkan data jika kolom Species bernilai setosa.

(48)

47

Menggabung Data

rbind()

Fungsi rbind() berfungsi untuk menggabung data dari dua obyek atau lebih. Sintaks fungsi ini adalah sebagai berikut.

ObjectName = rbind(object1, object2, . . . , objectN)

Obyek-obyek yang akan digabung harus memiliki jumlah kolom yang sama. Misal obyek data1 adalah sebagai berikut.

> data1 = iris[5:10,] > data1

Sepal.Length Sepal.Width Petal.Length Petal.Width Species 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa 7 4.6 3.4 1.4 0.3 setosa 8 5.0 3.4 1.5 0.2 setosa 9 4.4 2.9 1.4 0.2 setosa 10 4.9 3.1 1.5 0.1 setosa Dan misal obyek data2 adalah sebagai berikut.

> data2 = iris[130:135,] > data2

Sepal.Length Sepal.Width Petal.Length Petal.Width Species 130 7.2 3.0 5.8 1.6 virginica 131 7.4 2.8 6.1 1.9 virginica 132 7.9 3.8 6.4 2.0 virginica 133 6.4 2.8 5.6 2.2 virginica 134 6.3 2.8 5.1 1.5 virginica 135 6.1 2.6 5.6 1.4 virginica

Gabungan obyek data1 dan obyek data2 digabung dengan fungsi rbind(), dan akan disimpan pada obyek data_all.

> data_all = rbind(data1, data2) > data_all

Sepal.Length Sepal.Width Petal.Length Petal.Width Species 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa 7 4.6 3.4 1.4 0.3 setosa 8 5.0 3.4 1.5 0.2 setosa 9 4.4 2.9 1.4 0.2 setosa 10 4.9 3.1 1.5 0.1 setosa 130 7.2 3.0 5.8 1.6 virginica 131 7.4 2.8 6.1 1.9 virginica 132 7.9 3.8 6.4 2.0 virginica 133 6.4 2.8 5.6 2.2 virginica 134 6.3 2.8 5.1 1.5 virginica 135 6.1 2.6 5.6 1.4 virginica

cbind()

Fungsi cbind() untuk mengabungkan data pada obyek-obyek yang memiliki jumlah baris yang sama. Misal obyek data1 berisi data seperti berikut.

> data1 = iris[1:5, 1] > data1

[1] 5.1 4.9 4.7 4.6 5.0

Dan data2 berisi data sebagai berikut. > data2 = iris[131:135, 1]

> data2

(49)

48 Obyek data_all berisi data gabungan data1 dan data2 yang digabung dengan fungsi cbind().

> data_all = cbind(data1, data2) > data_all data1 data2 [1,] 5.1 7.4 [2,] 4.9 7.9 [3,] 4.7 6.4 [4,] 4.6 6.3 [5,] 5.0 6.1

Explorasi Data

Mengetahui informasi data yang akan diolah sangat diperlukan. Informasi itu dapat digunakan untuk menentukan strategi yang dipilih untuk mengolah data tersebut. Berikut ini adalah beberapa fungsi untuk mengetahui ukuran, struktur, atribut, summary dan lain-lain

dim()

Fungsi dim() dapat memberikan informasi ukuran dimensi data. Contoh fungsi dim() dapat dilihat di bawah ini.

> dim(iris) [1] 150 5

Dari informasi di atas dapa diketahui iris dataset terdiri atas 150 baris dan 5 kolom.

names()

Fungsi names() memberikan informasi name kolom data. Contoh fungsi names() dapat dilihat di bawah ini.

> names(iris)

[1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species"

str()

Fungsi str() memberikan informasi struktur data. Kode di bawah ini adalah contoh penggunaan fungsi ini.

> str(iris)

'data.frame': 150 obs. of 5 variables:

$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ... $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ... $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ... $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...

$ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 ...

Output fungsi ini memberikan informasi yang lebih lengkap dibandingkan fungsi dim() dan names(). Fungsi ini memberikan informasi tambahan berupa tipe data yang digunakan pada setiap kolom.

table()

Fungsi table() mempunyai banyak manfaat. Salah satunya berguna untuk melihat jumlah instance atau frekuensi pada masing-masing target variable. Sintaks untuk menggunakan fungsi ini adalah sebagai berikut.

(50)

49 table(ObjectName[,ColumnNumber])

atau

table(ObjectName$ColumnName)

Contoh di bawah ini untuk melihat jumlah instance berdasarkan kolom Species. > table(iris[,5])

setosa versicolor virginica 50 50 50

Atau dapat juga digunakan seperti contoh berikut ini. > table(iris$Species)

setosa versicolor virginica 50 50 50

summary()

Fungsi summary() memberikan informasi statistik ringkas dari data yang dimiliki sebuah obyek. Di bawah ini adalah contoh penggunaan fungsi ini dan outputnya.

> summary(iris)

Sepal.Length Sepal.Width Petal.Length Petal.Width Species Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100 setosa :50 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300 versicolor:50 Median :5.800 Median :3.000 Median :4.350 Median :1.300 virginica :50 Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800 Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500

Fungsi ini memberikan informasi statistik untuk setiap feature seperti nilai terkecil, nilai terbesar, median, mean dan kuartil.

Grafik

Pada sub bab ini akan dijelaskan beberapa fungsi R untuk membuat grafik sebagai salah satu cara mengenal dan eksplorasi data.

plot()

Fungsi plot() untuk membuat titik dari nilai sumbu x dan sumbu y. Sintaks umum fungsi plot() adalah sebagai berikut.

plot(x, y)

Parameter x dan y berisi nilai numerik. Sebagai contoh, parameter x diisi dengan nilai-nilai numerik dari kolom ke-1 dataset iris. Dan parameter y diisi dengan nilai-nilai-nilai-nilai dari kolom ke-2 dataset iris.

plot(iris[,1], iris[,2])

(51)

50

Gambar 47. Grafik plot(iris[,1], iris[,2])

Jika dataset hanya terdiri atas 2 feature saja, sebagai contoh dataset cars. > head(cars) speed dist 1 4 2 2 4 10 3 7 4 4 7 22 5 8 16 6 9 10 . . .

Maka fungsi plot() dapat digunakan dengan cara berikut ini. plot(cars)

(52)

51

Gambar 48. Grafik plot(cars).

Jika cara diatas digunakan pada dataset yang terdiri lebih dari 2 feature, sebagai contoh dataset iris yang memiliki 5 feature, maka fungsi plot() akan secara otomatis membuat banyak grafik. Grafik akan berisi kombinasi seperti pada gambar di bawah ini.

plot(iris)

Gambar 49. Grafik plot(iris).

scatterplot3()

Untuk membuat plot 3 dimensi diperlukan package tambahan yaitu scatterplot3d. Langkah pertama adalah menginstall package ini dengan fungsi berikut.

install.packages("scatterplot3d")

(53)

52 library(scatterplot3d)

Fungsi untuk membuat plot 3 dimensi adalah scatterplot3d(). Sintaks dari fungsi ini adalah sebagai berikut.

scatterplot3d(x,y,z, main="YourTitle")

Sebagai contoh untuk membuat plot 3 dimensi dari data mtcars digunakan kode di bawah ini. attach(mtcars)

scatterplot3d(wt,disp,mpg, main="3D Scatterplot")

Gambar 50. Grafik scatterplot3d().

plot3d()

Fungsi ini juga dapat digunakan untuk membuat grafik 3 dimensi. Kelebihan fungsi ini adalah interaksi user. User dapat melihat grafik dari sudut yang diinginkan dengan cara memutar ke arah yang diinginkan.

Langkah pertama untuk menggunakan fungsi ini adalah memuat package rgl. library(rgl)

Sintaks dari fungsi plot3d() adalah sebagai berikut. plot3d(x, y, z)

Untuk membuat plot dari data mtcars dapat dilihat pada kode di bawah ini. plot3d(wt, disp, mpg)

(54)

53

Gambar 51. Grafik plot3d().

Gerakkan grafik dengan mengarahkan cursor mouse pada grafik. Kemudian klik tombol mouse sebelah kiri dan tahan. Kemudian gerakkan cursor ke kiri atau ke kanan, dan ke atas atau ke bawah.

hist()

Fungsi hist() digunakan untuk membuat grafik histogram. Grafik ini dapat memberikan informasi frekuensi distribusi data. Sintaks fungsi hist() adalah sebagai berikut.

hist(x)

Parameter x dapat diisi dengan obyek numerik.

Selain dataset iris, platform R memiliki dataset lain yang dapat digunakan. Salah satunya adalah dataset mtcars.

> head(mtcars)

mpg cyl disp hp drat wt qsec vs am gear carb Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1

Jika parameter x diisi dengan nilai numerik feature mpg, maka akan didapat grafik histogram sebagai berikut.

hist(mtcars[,1])

atau

(55)

54

Gambar 52. Grafik hist(mtcars[,1])

density()

Fungsi density() berguna untuk melakukan estimasi kernel density. Output fungsi ini dapat dibuat dalam bentuk grafik dengan cara seperti contoh di bawah ini.

plot(density(mtcars$mpg))

Hasil dari kode di atas adalah sebagai berikut.

Gambar 53. Grafik density.

pie()

Fungsi pie() digunakan untuk membuat grafik pie. Sintaks fungsi ini adalah sebagai berikut. pie(x, labels = y)

Sebagai contoh adalah sebagai berikut.

(56)

55

Gambar 54. Grafik pie()

Jika dimiliki obyek table maka akan lebih mudah untuk membuat grafik pie. Sebagai contoh sebagai berikut.

pie(table(iris[,5]))

Gambar 55. Grafik pie dataset iris.

barplot()

Fungsi barplot() digunakan untuk membuat grafik berbentuk bar. Sintaks fungsi ini adalah sebagai berikut.

barplot(x)

Berikut adalah contoh penggunaan fungsi barplot(). barplot(mtcars$mpg)

(57)

56

Gambar 56. Grafik barplot vertical.

Untuk membuat grafik horizontal maka digunakan opsi horiz = TRUE seperti contoh di bawah ini.

barplot(mtcars$mpg, horiz = TRUE)

Gambar 57. Grafik barplot horizontal.

boxplot()

Fungsi boxplot() berfungsi untuk membuat grafik box dan whisker dari sekumpulan nilai. Contoh penggunaan fungsi ini adalah sebagai berikut.

boxplot(iris[,1:4])

(58)

57

par()

Fungsi par() dapat digunakan untuk membuat beberapa grafik hasil fungsi-fungsi di atas dalam satu gambar. Sintaks dari fungsi par() adalah sebagai berikut:

par(mfrow=c(jumlah_grafik_dalam_baris, jumlah_grafik_dalam_kolom))

Sebagai contoh jika ingin membuat 2 output grafik dalam satu gambar maka digunakan kode berikut.

par(mfrow=c(1,2))

plot(mtcars$wt,mtcars$mpg) plot(mtcars$wt,mtcars$disp)

Gambar 59. Fungsi par() untuk membuat 2 grafik dalam 1 kolom.

Jika ingin membuat 3 grafik dalam 1 baris maka digunakan kode seperti berikut. par(mfrow=c(1,3))

plot(mtcars$wt,mtcars$mpg) plot(mtcars$wt,mtcars$disp) plot(mtcars$wt,mtcars$disp)

Gambar 60. Fungsi par() untuk membuat 3 grafik dalam 1 kolom.

(59)

58 par(mfrow=c(2,2)) plot(mtcars$wt,mtcars$mpg) plot(mtcars$wt,mtcars$disp) plot(mtcars$wt,mtcars$mpg) plot(mtcars$wt,mtcars$disp)

Gambar 61. Fungsi par() untuk membuat 4 grafik dalam 2 baris dan 2 kolom.

Visualisasi Data

Pada sub bab sebelumnya telah diterangkan tentang fungsi plot() untuk membuat grafik 2 dimensi. Diterangkan pula fungsi plot3d() untuk membuat grafik 3 dimensi. Jika data memiliki lebih dari 3 feature, maka perlu dipilih minimal 2 feature untuk membuat grafik 2 dimensi, atau dipilih 3 feature untuk membuat grafik 3 dimensi. Artinya ada feature yang tidak digunakan.

Jika ingin membuat grafik yang menggunakan informasi dari seluruh feature dari dataset maka dapat digunakan Principal Component Analysis (PCA).

Principal Component Analysis (PCA)

Principal Component Analysis adalah teknik untuk membangun variable-variable baru yang merupakan kombinasi linear dari variable-variable asli. Atau teknik yang digunakan untuk menyederhanakan suatu data, dengan cara mentransformasi data secara linier sehingga terbentuk sistem koordinat baru dengan varians maksimum. Jumlah maximum dari variable-variable baru ini akan sama dengan jumlah dari variable-variable lama, dan variable-variable-variable-variable baru ini tidak saling berkorelasi satu sama lain.

PCA dapat digunakan untuk mereduksi dimensi suatu data tanpa mengurangi karakteristik data tersebut secara signifikan atau tetap mempertahankan informasi yang terkandung di dalamnya.

Dengan penjelasan di atas, jika data memiliki feature lebih dari 3 maka PCA dapat mereduksi feature menjadi 2 atau 3 feature saja. Sehingga data dapat digambar pada grafik 2 dimensi atau 3 dimensi. Tetapi keberhasilan PCA untuk menggambar data ke dalam 2 dimensi dan 3 dimensi tergantung data tersebut. Jadi ada kemungkinan PCA tidak akan memberikan gambaran yang benar tentang sebaran data.

(60)

59 Implementasi PCA pada platform R adalah dengan menggunakan fungsi prcomp(). Data input untuk fungsi ini adalah numerik. Sebagai contoh, berikut ini adalah data iris.

> head(iris)

Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa

Kolom yang dapat digunakan sebagai input fungsi prcomp() adalah kolom ke-1 sampai ke-4. Sehingga penggunaan fungsi prcomp() dapat ditulis sebagai berikut.

iris.pca = prcomp(iris[,-5]) #seluruh kolom, kecuali kolom ke-5 atau

iris.pca = prcomp(iris[,1:4]) #kolom ke-1 sampai ke-4

Fungsi ini menghasilkan 4 output. Output yang pertama adalah standar deviasi principal component. Output ini dapat dilihat dengan cara di bawah ini.

> iris.pca$sdev

[1] 2.0562689 0.4926162 0.2796596 0.1543862

Output kedua adalah matrix variable loading. Kode di bawah ini digunakan untuk melihat output ini. > iris.pca$rotation PC1 PC2 PC3 PC4 Sepal.Length 0.36138659 -0.65658877 0.58202985 0.3154872 Sepal.Width -0.08452251 -0.73016143 -0.59791083 -0.3197231 Petal.Length 0.85667061 0.17337266 -0.07623608 -0.4798390 Petal.Width 0.35828920 0.07548102 -0.54583143 0.7536574

Output ketiga adalah nilai rotasi data. Output ini dapat dilihat dengan menggunakan kode berikut. Jumlah data output ini sesuai dengan jumlah data pada dataset iris yaitu 150 instance.

> iris.pca$x PC1 PC2 PC3 PC4 [1,] -2.684125626 -0.319397247 0.027914828 0.0022624371 [2,] -2.714141687 0.177001225 0.210464272 0.0990265503 [3,] -2.888990569 0.144949426 -0.017900256 0.0199683897 . . . [149,] 1.900941614 -0.116627959 -0.723251563 0.0445953047 [150,] 1.390188862 0.282660938 -0.362909648 -0.1550386282

Output yang terakhir adalah nilai center. Nilai center dapat dilihat dengan perintah berikut. > iris.pca$center

Sepal.Length Sepal.Width Petal.Length Petal.Width 5.843333 3.057333 3.758000 1.199333

Visualisasi 2D

Untuk membuat visualisasi grafik 2D digunakan fungsi biplot() seperti contoh berikut ini. biplot(iris.pca)

Gambar

Gambar 8. Window Setup - Pemilihan komponen.
Gambar 10. Window Setup - Memilih lokasi folder Start Menu.
Gambar 12. Windows Setup - Proses installasi.
Gambar 14. Window Microsoft R Open 3.3.1 Setup – Welcome.
+7

Referensi

Dokumen terkait

Abstrak Pendampingan keluarga dan penderita sumbing bibir dan langit-langit terhadap penatalaksanaan operasi masih belum optimal khususnya di wilayah Jember. Hal ini disebabkan

(3) Kepala Desa/Lurah menyampaiakan pertanggungjawaban pemakaian dana dari masing-masing kelompok kerja penerima sasaran bantuan kepada Bupati melalui DPPKAD yang

Fungsi dan manfaat dari Sistem Informasi Inventaris Barang Museum Keraton Surakarta ini berfungsi untuk memberikan informasi mengenai museum baik berupa berita, lokasi museum,

Dengan menggunakan suatu metode analisis baru yang disebut STRUCTURAL EQUATION MODELING (SEM) dengan softwarenya LISREL 8.54, didapatkan hasil dimana terdapat hubungan yang

Untuk mengatasi permasalahan pendidikan yang dilihat dari kondisi anak-anak tenaga kerja Indonesia yang berada di Sabah, pemerintah Indonesia melakukan upaya-upaya dalam

Gambar 4.29 Grafik hubungan daya pada pipa osilasi dengan waktu dalam variasi setiap bukaan keran, pendingin udara, ketinggian air awal diatas evaporator. Untuk percobaan

Hal ini dapat diartikan bahwa jika kepemimpinan menjadi lebih baik maka akan menurunkan tingkat turnover intention atau keinginan untuk berpindah dan keluar

Berdasarkan pernyataan tersebut dapat diketahui bahwa interaksi antara kapang Penicillium chrysogenum dan bakteri Staphyllococcus aureus merupakan mekanisme antagonis