Você está na página 1de 567

Judul

Link: http://bit.ly/2x8ta9S

ANALISIS BIG DATA


(Teori & Aplikasi)
“Big Data vs Big Information vs Big Knowledge”
Versi 1.01

Oleh:
Imam Cholissodin
Efi Riyandani

PENGANTAR
Buku ini memberi pemahaman konsep dasar, maupun tingkat
lanjut secara mendetail sebagai solusi dalam penyelesaian untuk
kasus apapun dengan konsep Sistem Cerdas melalui pemanfaatan
teknologi Big Data mulai dari tingkat dasar sebagai cara yang paling
mudah untuk awalan dalam pemahaman, sampai pada implementasi
algoritma tanpa Library apapun, misal tidak menggunakan MLlib dari
Spark sama sekali atau lainnya, serta melatih dalam memodifikasi
algoritma maupun penggabungan dua tools atau lebih untuk
membangun ekosistem Big Data yang powerfull. Materi yang tersedia
selain memudahkan bagi para pembaca, juga untuk mendukung ma-
teri perkuliahan yang dapat membantu pengayaan mahasiswa yang
fokus pada pengembangan Artificial Intelligence (AI) untuk Big Data,
yang meliputi banyak Machine Learning yang digunakan.
Imam Cholissodin
Dosen Pengampu MK Analisis Big Data FILKOM UB

2016-2018
Kata Pengantar

Alhamdulillahhi robbil alamin, puji syukur kehadirat Allah SWT


atas segala rahmat dan karunia-Nya dengan terselesaikannya penu-
lisan buku ini dengan judul “Analisis Big Data”. Buku ini merupakan
uraian untuk memudahkan pemahaman konsep, tingkat dasar sampai
lanjut dalam sistem cerdas dan penerapannya melalui pemanfaatan
teknologi Big Data, dengan mengedepankan keterampilan dalam
pembuatan dan hasil implementasi dengan berbagai kombinasi
algoritma berbasis sistem cerdas maupun dengan perpaduan berbagai
macam tools untuk membangun ekosistem analisis Big Data yang
powerfull. Konsep sederhana Analisis Big Data mencakup Volume, Ve-
locity, dan Variety (3V), dan pengembangannya ada yang menyebut
(7V) termasuk Volume, Velocity, Variety, Variability, Veracity, Value
dan Visualization, atau 10V bahkan lebih dari itu, tetapi sebaiknya tidak
membatasi pemahaman Big Data ini hanya dengan sedikit banyaknya
istilah dari huruf V yang digunakan . Kemudian dengan adanya
ekosistem tersebut, jika dibutuhkan analisis sederhana maupun yang
lebih kompleks, maka harapannya tidak akan ada kendala dari
besarnya data yang diolah. Adanya kemajuan teknologi dalam hal
penyimpanan, pengolahan, dan analisis Big Data meliputi (a)
penurunan secara cepat terhadap biaya penyimpanan data dalam be-
berapa tahun terakhir; (b) fleksibilitas dan efektivitas biaya pada pusat
data dan komputasi awan untuk perhitungan dengan konsep elastisitas
dan penyimpanannya; serta (c) pengembangan kerangka kerja baru
seperti Hadoop ecosystem (salah satu peluang bisnis yang besar untuk
developer untuk saat ini dan ke depannya dalam rangka membangun
ekosistem analisis Big Data yang sangat powerfull sekelas Cloudera,
Hortonworks, etc), yang memungkinkan pengguna untuk mengambil
manfaat dari sistem komputasi terdistribusi, misal untuk menyimpan
sejumlah data yang besar melalui pemrosesan parallel, dukungan da-
tabase NoSQL, dan komputasi berbasis streaming. Sehingga kema-
juan teknologi ini telah menciptakan beberapa perbedaan yang sangat
signifikan, misal dalam hal kecepatan maupun ketepatan dari hasil
yang didapatkan antara analisis tradisional dengan tools yang bukan
dengan konsep Big Data versus analisis modern untuk saat ini dan
masa depan dengan membangun ekosistem Big Data yang sangat
powerfull.
Penulis mengucapkan terimakasih yang sebesar-besarnya
kepada kedua orang tua penulis, spesial kepada Istriku tercinta “Alfun
Lailatul Musabbikha”, bapak ibu mertua, dik Wiwik, dik Ganda, kak Mat,
kak Deri, Bude Gi, Pakde Dul, Bude Gani, Pak Abu, mbak Nik, dik
Andre, Mbak As, Mbak Lia, Mas Mualif, Mbak Lis, Pakde Naji, Bulik Yul,
Pakde Tasrun, Pakde Zen, Pakde Zud, Paklik Fiq, mas Bowo dan
semua sanak saudaraku yang tak bisa kusebutkan seluruhnya, serta
beberapa pihak yang telah membantu penyelesaian buku ini:

ii
1. Para penulis artikel Analisis Big Data di forum, web, blog dan buku
yang menjadi referensi buku ini untuk memberikan masukan yang
sangat berharga sekali untuk perbaikan dan penyelesaian buku ini.
2. Mbak Efi Riyandani, yang telah banyak membantu penulisan buku,
dan mahasiswa-mahasiswa terbaik saya semester Ganjil
2016/2017, yaitu: Maryamah, Moh. Fadel Asikin, Daisy Kurniawaty,
Selly Kurnia Sari, Nanda Agung Putra, Ardisa Tamara Putri,
Dhimas Anjar Prabowo, Listiya Surtiningsih, Raissa Arniantya,
Brillian Aristyo Rahadian, Diva Kurnianingtyas, Dyan Putri
Mahardika, Tusty Nadia Maghfira.
3. Mahasiswa-mahasiswa terbaik saya semester Ganjil 2017/2018,
yaitu: Yessica Inggir F., Kholifaul K., Ni Made Gita D. P., Ema
Agasta, Retiana Fadma P. Sinaga, Fachrul Rozy Saputra Rangkuti,
Yunita Dwi Alfiyanti, Dyah Ayu Wahyuning Dewi, Annisaa Amalia
Safitri, Sarah Aditya Darmawan, Danastri Ramya Mehaninda, Eka
Novita Shandra, Fakharuddin Farid Irfani, Rio Cahyo Anggono,
Robih Dini, Yulia Kurniawati, Novirra Dwi Asri, Muhammad Vidi My-
charoka, Vania Nuraini Latifah, Olivia Bonita, Eka Miyahil Uyun,
Cusen Mosabeth, Evilia Nur Harsanti, Ivarianti Sihaloho.

Semoga kontribusi kalian menjadi ilmu yang barokah dan ber-


manfaat. Aamiin. :). Tidak ada gading yang tak retak. Maka penulis
memohon kritik dan saran untuk perbaikan dan penyempurnaan buku
ini. In Syaa Allah pada edisi berikutnya, kami akan memberikan
manualisasi Map Reduce, Spark, etc. dari setiap algoritma pada setiap
contoh kasusnya. Selamat membaca buku ini dan semoga bermanfaat.

Malang, 19 Juli 2016-24 Mei 2018

Penulis

iii
Daftar Isi

Judul ...................................................................................................... i
Kata Pengantar ..................................................................................... ii
Daftar Isi .............................................................................................. iv
Daftar Tabel ........................................................................................ viii
Daftar Gambar ..................................................................................... ix
Daftar Source Code .......................................................................... xxvi
BAB 1 Konsep Big Data .............................................................. 1
1.1 Pengantar......................................................................... 1
1.2 Gambaran Umum Big Data.............................................. 3
1.3 Karakteristik Big Data (3V)............................................... 5
1.4 Ekosistem Big Data Analytics .......................................... 7
1.5 Ekosistem Tool Big Data Analytics .................................. 9
1.6 Tugas Kelompok ............................................................ 13
BAB 2 Analitik Big Data & Lifecycle ......................................... 14
2.1 Pengantar....................................................................... 14
2.2 Teknologi Advaced (Tools) Big Data ............................. 14
2.3 Arsitektur Big Data ......................................................... 16
2.4 Key Roles Kunci Sukses Proyek Analitik ....................... 20
2.5 Lifecycle Analitik Data .................................................... 22
2.6 Tugas Kelompok ............................................................ 24
BAB 3 Teknologi dan Tools Big Data (Bagian 1) ..................... 26
3.1 Konsep Pengolahan Big Data ........................................ 26
3.2 Introduction to Hadoop................................................... 27
3.2.1 Hadoop Distributed File System (HDFS) ........... 28
3.2.2 MapReduce (MR) ............................................... 30
3.3 Konfigurasi Hadoop Single Node Cluster di Linux ......... 34
3.3.1 Studi Kasus & Solusi Hadoop ............................ 35
3.3.2 Konfigurasi dengan Eclipse IDE ........................ 53
3.3.3 Konfigurasi dengan HUE ................................... 69

iv
3.3.4 Konfigurasi dengan Spark.................................. 93
3.3.5 Konfigurasi dengan Mahout ............................. 132
3.4 Konfigurasi Hadoop Single Node Cluster di Windows . 140
3.4.1 Konfigurasi dengan Syncfusion ....................... 154
3.4.2 Konfigurasi dengan Eclipse IDE ...................... 161
3.4.3 Konfigurasi dengan Spark................................ 170
3.5 Tugas Kelompok .......................................................... 173
BAB 4 Teknologi dan Tools Big Data (Bagian 2) ................... 175
4.1 Konsep Single (Standalone) Vs Multi-Node Cluster .... 175
4.2 Hadoop Multi Node Cluster (Pseudo-Distributed)........ 176
4.3 Hadoop Multi Node Cluster (Full Distributed) .............. 204
4.4 Studi Kasus (Sederhana) ............................................. 217
4.5 Studi Kasus (Run Kode Program)................................ 225
4.5.1 Klasifikasi: NB dengan Terminal ...................... 225
4.5.2 Klasifikasi: NB dengan Eclipse ........................ 230
4.5.3 Clustering: K-Means ........................................ 237
4.6 Tugas Kelompok .......................................................... 242
BAB 5 Analitik Data Tingkat Lanjut (Clustering) ..................... 244
5.1 Konsep Clustering ........................................................ 244
5.2 K-Means vs Kernel K-means ....................................... 245
5.3 Studi Kasus .................................................................. 188
5.4 Tugas Kelompok .......................................................... 195
BAB 6 Analitik Data Tingkat Lanjut (Regresi) ......................... 197
6.1 Konsep Regresi ........................................................... 197
6.2 Analisis Teknikal dan Fundamental ............................. 198
6.3 Regresi Linear & Regresi Logistic ............................... 199
6.4 Extreme Learning Machine (ELM) ............................... 200
6.5 Tugas Kelompok .......................................................... 207
BAB 7 Analitik Data Tingkat Lanjut (Klasifikasi)...................... 208
7.1 Konsep Klasifikasi ........................................................ 208
7.2 Linear dan Non-Linear Classifier ................................. 209

v
7.3 Algoritma Klasifikasi ..................................................... 210
7.3.1 ELM Untuk Regresi Vs Untuk Klasifikasi ......... 210
7.3.2 Support Vector Machine (SVM) Linear dan Non-
Linear 211
7.4 Tugas Kelompok .......................................................... 221
BAB 8 Teknologi dan Tools Big Data (Bagian 3) ................... 223
8.1 Editor + GUI untuk Spark Java/ Spark Scala/ PySpark223
8.1.1 Install Sublime Text.......................................... 224
8.1.2 Eclipse + Spark Standalone (Java EE) ............ 224
8.1.3 Eclipse + Spark + Scala IDE + Maven ............. 225
8.1.4 Eclipse + Spark + Scala IDE + SBT................. 243
8.1.5 Eclipse + PySpark + PyDev ............................. 254
8.1.6 PySpark + Pycharm ......................................... 318
8.1.7 IntelliJ IDEA + SBT .......................................... 340
8.1.8 Konfigurasi & Solusi Error/Bug ........................ 361
8.2 Konfigurasi Tambahan ................................................. 364
8.2.1 Create VM dari file *.vdi dan UUID Baru.......... 364
8.2.2 Share Folder Pada Linux Pada VirtualBox ...... 367
8.3 Konfigurasi Hadoop + MongoDB ................................. 373
8.3.1 WordCount ....................................................... 386
8.3.2 Movie Ratings .................................................. 399
8.4 Tugas Kelompok .......................................................... 412
BAB 9 Project Pilihan Analisis Big Data .................................. 413
9.1 Seleksi Asisten Praktikum............................................ 413
9.1.1 Dasar Teori ...................................................... 414
9.1.2 Impelementasi .................................................. 417
9.2 Klasifikasi Kendaraan Bermotor................................... 423
9.2.1 Dasar Teori ...................................................... 424
9.2.2 Implementasi .................................................... 427
9.3 Clustering Judul Majalah.............................................. 432
9.3.1 Dasar Teori ...................................................... 434
9.3.2 Implementasi .................................................... 436

vi
9.4 Collaborative Filtering .................................................. 440
9.4.1 Dasar Teori ...................................................... 440
9.4.2 Implementasi .................................................... 443
9.5 Klasifikasi Data Kualitatif (C4.5)................................... 446
9.5.1 Dasar Teori ...................................................... 447
9.5.2 Implementasi .................................................... 452
9.6 Clustering Tingkat Pengetahuan.................................. 456
9.6.1 Dasar Teori ...................................................... 457
9.6.2 Implementasi .................................................... 460
9.7 Klasifikasi Kanker Payudara (SVM) ............................. 462
9.7.1 Dasar Teori ...................................................... 464
9.7.2 Implementasi .................................................... 467
Daftar Pustaka .................................................................................. 470
Biografi Penulis ................................................................................. 476

vii
Daftar Tabel

Tabel 5.1 Contoh Data 2 Dimensi .................................................... 188

Tabel 5.2 xi ....................................................................................... 190

Tabel 5.3  ( xi ) ................................................................................ 190


Tabel 5.4 Fungsi Pemetaan Cluster 1 .............................................. 190
Tabel 5.5 Fungsi Pemetaan Cluster 2 .............................................. 191
Tabel 5.6 Nilai Kernel data i terhadap semua data cluster 1 iterasi 1
.......................................................................................................... 192
Tabel 5.7 Nilai Kernel Antar Data Pada Cluster j untuk iterasi 1...... 193
Tabel 5.8 Jarak dan alokasi data untuk centroid terdekat iterasi 1 .. 194
Tabel 6.1 Dataset ............................................................................. 199
Tabel 6.2 Data Training .................................................................... 202
Tabel 7.1 Data Training dan Data Testing ....................................... 214
Tabel 7.2 𝛼i ....................................................................................... 214

Tabel 7.3 Hasil Perhitungan Dij ......................................................... 215


Tabel 7.4 Hasil Perhitungan Ei .......................................................... 215

Tabel 7.5 Hasil Perhitungan i .................................................... 216


Tabel 7.6 Hasil Perhitungan  i ....................................................... 216
Tabel 7.7 Hasil klasifikasi sign(f(x)) .................................................. 217
Tabel 7.8 Hasil Perhitungan xtest1 .................................................... 218

Tabel 7.9 Contoh 3 SVM Biner dengan Metode One-Against-All .... 218
Tabel 7.10 Metode One-Against-One dengan 4 Kelas .................... 219
Tabel 7.11 Metode BDTSVM dengan 7 Kelas ................................. 220
Tabel 8.1 Perbedaan SQL dengan MongoDB.................................. 376
Tabel 9.1 Contoh Dataset Setiap Kategori ....................................... 434

viii
Daftar Gambar

Gambar 1.1 Perkembangan data ......................................................... 1


Gambar 1.2 Data Science vs Business Intelligence ............................ 2
Gambar 1.3 Gambaran Umum Big Data .............................................. 3
Gambar 1.4 Big Data dengan 6V+ 1V(Visualization)=7V ........................ 4
Gambar 1.5 Big Data dengan 10V ....................................................... 4
Gambar 1.6 Tradisional vs Big Data .................................................... 5
Gambar 1.7 Bentuk Infrastruktur Data Center...................................... 6
Gambar 1.8 Google Cloud Platform ..................................................... 6
Gambar 1.9 Analyze small subsets of data .......................................... 6
Gambar 1.10 Analyze all data .............................................................. 6
Gambar 1.11 Batch dan stream processing ....................................... 37
Gambar 1.12 Traditional Approach ...................................................... 6
Gambar 1.13 Big Data Approach ......................................................... 6
Gambar 1.14 Variety Data .................................................................... 6
Gambar 1.15 Rangkuman 3V dan Veracity.......................................... 6
Gambar 1.16 Gambaran Ekosistem Big Data ...................................... 7
Gambar 1.17 Perkembangan Analytics................................................ 7
Gambar 1.18 Contoh Ekosistem Hadoop ke-1................................... 10
Gambar 1.19 Contoh Ekosistem Hadoop ke-2................................... 11
Gambar 1.20 Cloudera vs Hortonworks vs MapR .............................. 13
Gambar 2.1 Daftar Perusahaan ......................................................... 14
Gambar 2.2 Faktor yang mendorong (driving) adopsi Big Data......... 15
Gambar 2.3 Arsitektur Big Data ......................................................... 17
Gambar 2.4 Data Integration Using Apache NiFi dan Apache Kafka 19
Gambar 2.5 Integrating Apache Spark dan NiFi for Data Lakes ........ 19
Gambar 2.6 Key Roles Kunci Sukses Proyek Analitik ....................... 20
Gambar 2.7 Gambaran Umum dari Lifecycle Analitik Data ............... 22
Gambar 3.1 Distributed System (a) dan Paralel System (b) .............. 26
Gambar 3.2 Ilustrasi Hadoop HDFS................................................... 27

ix
Gambar 3.3 Arsitektur HDFS.............................................................. 30
Gambar 3.4 Hadoop 2.x Core Components ....................................... 30
Gambar 3.5 High Level Arsitektur Hadoop dan The Job Tracker ...... 31
Gambar 3.6 The Job Tracker ............................................................. 32
Gambar 3.7 Diagram Cara Kerja Map Reduce .................................. 33
Gambar 3.8 Ilustrasi MR vs YARN ..................................................... 33
Gambar 3.9 Persiapan Pada Virtual Box ........................................... 34
Gambar 3.10 Studi Kasus Wordcount ................................................ 35
Gambar 3.11 Hasil: hduser@Master:/usr/local/hadoop$ jar cf wc.jar
WordCount*.class ................................................................................. 41
Gambar 3.12 Hasil: hduser@Master:/usr/local/hadoop$ jar cf wc.jar
WordCount*.class ............................................................................... 41
Gambar 3.13 Hasil: hduser@Master:/usr/local/hadoop$ jar cf wc.jar
WordCount*.class ............................................................................... 42
Gambar 3.14 Hasil Menjalankan JAR untuk wordcount (file a.txt saja): .. 46
Gambar 3.15 Hasil menjalankan JAR untuk wordcount (file b.txt saja): .... 49
Gambar 3.16 Menjalankan JAR untuk wordcount untuk semua file dalam
satu folder (file a.txt dan b.txts) ............................................................. 50
Gambar 3.17 Menjalankan JAR untuk wordcount untuk semua file dalam
satu folder (file a.txt dan b.txts) Cont. ..................................................... 51
Gambar 3.18 Cara menghapus folder HDFS ........................................... 51
Gambar 3.19 Cara menghapus folder HDFS Cont ................................... 52
Gambar 3.20 Link download Eclipse .................................................. 53
Gambar 3.21 Extract Here - Eclipse ................................................... 53
Gambar 3.22 Copy file, dan cek dengan “ls” ...................................... 54
Gambar 3.23 Install eclipse ................................................................ 54
Gambar 3.24 Pilih Eclipse IDE for Java EE Developers .................... 54
Gambar 3.25 Klik Install, tunggu beberapa waktu ............................. 55
Gambar 3.26 Klik Launch .................................................................... 55
Gambar 3.27 Klik “Launch”, tunggu beberapa saat ........................... 56
Gambar 3.28 Klik “restore” ................................................................. 56
Gambar 3.29 Masuk ke folder instalasi hadoop ................................. 57
Gambar 3.30 Jalankan Eclipse .......................................................... 58

x
Gambar 3.31 Klik Finish ...................................................................... 58
Gambar 3.32 Klik Open Pers.. .............................................................. 59
Gambar 3.33 Project “HadoopIDE” .................................................... 59
Gambar 3.34 Klik kanan “src”, tambahkan new “Package”................ 59
Gambar 3.35 Berikan name “org.hadoop.trainings”, klik “Finish”....... 60
Gambar 3.36 Klik kanan pada “org.hadoop.trainings”, klik new “Class”
............................................................................................................ 60
Gambar 3.37 Berikan nama “WordCount”, klik “Finish” ..................... 60
Gambar 3.38 klik “Configure Build Path..” .......................................... 61
Gambar 3.39 klik “Configure Build Path..” .......................................... 61
Gambar 3.40 Masuk ke folder instalasi hadoop ................................. 62
Gambar 3.41 Add *.jar hadoop part 1 ................................................ 62
Gambar 3.42 Add *.jar hadoop part 2 ................................................ 63
Gambar 3.43 Add *.jar hadoop part 3 ................................................ 63
Gambar 3.44 Add *.jar hadoop part 4 ................................................ 64
Gambar 3.45 Add *.jar hadoop part 5 ................................................ 64
Gambar 3.46 Add *.jar hadoop part 6 ................................................ 65
Gambar 3.47 Add *.jar hadoop part 7 ................................................ 65
Gambar 3.48 Add *.jar hadoop part 8 ................................................ 66
Gambar 3.49 Add *.jar hadoop part 9 ................................................ 66
Gambar 3.50 Daftar “Referenced Libraries” Hadoop ......................... 67
Gambar 3.51 Download code WordCount dari “https://goo.gl/wPa2ef”
............................................................................................................ 67
Gambar 3.52 Sebelum dan setelah dicopykan .................................. 68
Gambar 3.53 About Hue..................................................................... 69
Gambar 3.54 Cara kerja Hue Server.................................................. 69
Gambar 3.55 JVM Process Status Tool (jps) ..................................... 70
Gambar 3.56 Cek Hadoop Version .................................................... 70
Gambar 3.57 sudo apt-get install git .................................................. 71
Gambar 3.58 Lakukan git clone ......................................................... 71
Gambar 3.59 Download Hue Selesai ................................................. 72
Gambar 3.60 Install library development packages dan tools ........... 72

xi
Gambar 3.61 Install library development packages dan tools, selesai
............................................................................................................ 73
Gambar 3.62 Masuk ke hduser .......................................................... 73
Gambar 3.63 Error ketika make apps Hue ke-1 ................................. 74
Gambar 3.64 Update beberapa komponen ........................................ 74
Gambar 3.65 Error ketika make apps Hue ke-2 ................................. 75
Gambar 3.66 Install Hue, selesai. :D .................................................. 76
Gambar 3.67 Jalankan Server Hue .................................................... 76
Gambar 3.68 Starting pada http://127.0.0.1:8000 .............................. 77
Gambar 3.69 Set Username dan Password....................................... 77
Gambar 3.70 Tampilan Hue ke-1 ....................................................... 78
Gambar 3.71 Tampilan Hue ke-2 ....................................................... 78
Gambar 3.72 Load HDFS dari Hue .................................................... 79
Gambar 3.73 Solusi ke-1 Error pada Hue .......................................... 79
Gambar 3.74 Solusi ke-2 Error pada Hue .......................................... 80
Gambar 3.75 Setting file “hdfs-site.xml” ............................................. 81
Gambar 3.76 Setting file “core-site.xml” ............................................. 82
Gambar 3.77 Edit file “hue.ini” Part 1 of 7 .......................................... 83
Gambar 3.78 Edit file “hue.ini” Part 2 of 7 .......................................... 84
Gambar 3.79 Edit file “hue.ini” Part 3 of 7 .......................................... 85
Gambar 3.80 Edit file “hue.ini” Part 4 of 7 .......................................... 86
Gambar 3.81 Edit file “hue.ini” Part 5 of 7 .......................................... 86
Gambar 3.82 Edit file “hue.ini” Part 6 of 7 .......................................... 87
Gambar 3.83 Edit file “hue.ini” Part 7 of 7 .......................................... 87
Gambar 3.84 Jalankan lagi Hadoop ................................................... 88
Gambar 3.85 Jalankan lagi Hue ......................................................... 89
Gambar 3.86 Buka Hue di Web Browser ........................................... 89
Gambar 3.87 Buka Hue di Web Browser 1 ........................................ 90
Gambar 3.88 Buka Hue di Web Browser 2 ........................................ 91
Gambar 3.89 Buka Hue di Web Browser 3 ........................................ 92
Gambar 3.90 Buka Hue di Web Browser 4 ........................................ 92
Gambar 3.91 About Spark .................................................................. 93

xii
Gambar 3.92 Spark dan Tool lainnya................................................. 93
Gambar 3.93 Spark dan Bahasa Pemrograman ................................ 94
Gambar 3.94 Cek versi Linux ............................................................. 94
Gambar 3.95 Cek Hadoop Version dan Run Hadoop ........................ 95
Gambar 3.96 Download Spark ........................................................... 95
Gambar 3.97 Hasil download Spark................................................... 95
Gambar 3.98 Cek Java Version ......................................................... 96
Gambar 3.99 Tekan enter, tunggu sampai selesai ............................ 96
Gambar 3.100 Tekan enter, tunggu sampai selesai .......................... 97
Gambar 3.101 Instalasi Spark selesai :D ........................................... 97
Gambar 3.102 - Set PATH Spark ................................................. 98
Gambar 3.103 Install java terbaru part 1 ............................................ 98
Gambar 3.104 Install java terbaru part 2 ............................................ 98
Gambar 3.105 Install java terbaru part 2 ............................................ 99
Gambar 3.106 Install java terbaru part 4 ............................................ 99
Gambar 3.107 Install java terbaru part 4 (lanj. 1) ............................... 99
Gambar 3.108 Install java terbaru part 4 (lanj. 2) ............................. 100
Gambar 3.109 Install java terbaru Selesai ....................................... 100
Gambar 3.110 Cek java version sudah terupdate ............................ 101
Gambar 3.111 Update “sudo gedit ~/.bashrc” .................................. 101
Gambar 3.112 Restart Hadoop ........................................................ 102
Gambar 3.113 install python-pip ...................................................... 102
Gambar 3.114 Cek python –version................................................. 104
Gambar 3.115 Install Anaconda ....................................................... 104
Gambar 3.116 Tekan spasi, ketik yes, tekan enter .......................... 105
Gambar 3.117 set folder instalasinya ............................................... 105
Gambar 3.118 Ketik yes (untuk set PATH di /home/hduser/.bashrc)
.......................................................................................................... 106
Gambar 3.119 Install Anaconda (Done) ........................................... 106
Gambar 3.120 Set PATH Anaconda ................................................ 107
Gambar 3.121 Cek python –version................................................. 108
Gambar 3.122 Spark sudah aktif ...................................................... 108

xiii
Gambar 3.123 Spark di web ............................................................. 109
Gambar 3.124 Koding scala sederhana pada Spark ....................... 110
Gambar 3.125 Demo: WordCount (ScalaSpark) ke-1 ...................... 110
Gambar 3.126 Demo: WordCount (ScalaSpark) ke-2 ...................... 111
Gambar 3.127 Demo: WordCount (ScalaSpark) ke-3 ...................... 111
Gambar 3.128 Demo: WordCount (ScalaSpark) ke-4 ...................... 112
Gambar 3.129 Demo: WordCount (ScalaSpark) ke-5 ...................... 112
Gambar 3.130 Demo: WordCount (ScalaSpark) ke-6 ...................... 113
Gambar 3.131 Demo: WordCount (ScalaSpark) ke-7 ...................... 113
Gambar 3.132 cek JPS .................................................................... 113
Gambar 3.133 Hadoop sudah jalan ................................................. 114
Gambar 3.134 Tampilan hadoop di Web ......................................... 114
Gambar 3.135 Browse the file system ............................................. 114
Gambar 3.136 Buat folder di hadoop melalui Terminal.................... 115
Gambar 3.137 Cek isi dari “/user/hduser” ........................................ 115
Gambar 3.138 CopyFromLocal file *.txt to hdfs ............................... 115
Gambar 3.139 Scala: load data input dari hdfs ................................ 116
Gambar 3.140 Lihat di web hasil output Spark ................................ 117
Gambar 3.141 Tampilan di web ....................................................... 117
Gambar 3.142 PySpark sudah aktif ................................................. 118
Gambar 3.143 Python pada Spark ................................................... 118
Gambar 3.144 PySpark counts.collect()........................................... 119
Gambar 3.145 Tampilan di web (Spark) .......................................... 119
Gambar 3.146 koding python sederhana (map) .............................. 120
Gambar 3.147 koding python sederhana (filter) ............................... 121
Gambar 3.148 koding python sederhana (reduce) .......................... 121
Gambar 3.149 koding python sederhana (lambda) .......................... 122
Gambar 3.150 koding python sederhana (lambda): Latihan ............ 123
Gambar 3.151 koding python sederhana (flatmap) .......................... 124
Gambar 3.152 run pyspark part 1 .................................................... 125
Gambar 3.153 run pyspark part 2 .................................................... 126

xiv
Gambar 3.154 run pyspark part 3 .................................................... 126
Gambar 3.155 run pyspark part 4 .................................................... 127
Gambar 3.156 run pyspark part 5 .................................................... 128
Gambar 3.157 run pyspark part 6 .................................................... 128
Gambar 3.158 run pyspark part 7 .................................................... 129
Gambar 3.159 run pyspark part 8 .................................................... 129
Gambar 3.160 run pyspark part 9 .................................................... 129
Gambar 3.161 Hasil k-means clustering .......................................... 130
Gambar 3.162 Apache Mahout ........................................................ 132
Gambar 3.163 Recommender Engines ............................................ 132
Gambar 3.164 User-User, Item-Item, atau diantara keduanya ........ 133
Gambar 3.165 Tanimoto Coefficient ................................................ 133
Gambar 3.166 Cosine Coefficient .................................................... 133
Gambar 3.167 JVM Process Status Tool (jps) ................................. 134
Gambar 3.168 Cek Hadoop Version ................................................ 134
Gambar 3.169 Buka web Apache Mahout ....................................... 135
Gambar 3.170 Download Mahout .................................................... 135
Gambar 3.171 Hasil Download Mahout ........................................... 136
Gambar 3.172 Extract Mahout ......................................................... 136
Gambar 3.173 Buat folder “mahout”................................................. 137
Gambar 3.174 Instalasi Mahout Selesai :D ...................................... 137
Gambar 3.175 Cek Owner dan Nama Group “/usr/local/mahout” .... 138
Gambar 3.176 ubah Owner dan Nama Group “/usr/local/mahout” .. 138
Gambar 3.177 Update “sudo gedit ~/.bashrc” .................................. 139
Gambar 3.178 Restart “~/.bashrc” lalu Restart Hadoop................... 139
Gambar 3.179 Persiapan Install Hadoop di Windows ke-1.............. 140
Gambar 3.180 Ekstraks file “bin-master.zip” .................................... 143
Gambar 3.181 Masuk ke Control Panel ........................................... 143
Gambar 3.182 Set JAVA_HOME ..................................................... 144
Gambar 3.183 Edit file “hadoop-env.cmd” ....................................... 144
Gambar 3.184 Edit file “core-site.xml” .............................................. 145

xv
Gambar 3.185 Hasil edit file “hdfs-site.xml” ..................................... 146
Gambar 3.186 Buat folder namenode dan datanode ....................... 146
Gambar 3.187 Hasil edit file “mapred-site.xml.template” ................. 147
Gambar 3.188 Pilih Advanced system settings ................................ 149
Gambar 3.189 Ketik HADOOP_HOME ................................................ 149
Gambar 3.190 Pada Variable “Path” klik Edit.. .................................... 150
Gambar 3.191 Tambahkan bin hadoop pada Path .......................... 150
Gambar 3.192 Cek hadoop version di CMD .................................... 151
Gambar 3.193 Hasil format namenode ............................................ 151
Gambar 3.194 Hasil start-all.cmd ..................................................... 152
Gambar 3.195 Hasil localhost:50070 ke-1 ....................................... 153
Gambar 3.196 Hasil Hasil localhost:50070 ke-2 .............................. 153
Gambar 3.197 Hasil “http://localhost:8088” ...................................... 153
Gambar 3.198 Download syncfusion ............................................... 154
Gambar 3.199 Hasil klik “Proceed to the …” .................................... 155
Gambar 3.200 Klik “Download link ..” ............................................... 155
Gambar 3.201 Install “syncfusionbigdataplatform.exe” .................... 155
Gambar 3.202 Hasil klik Install ......................................................... 156
Gambar 3.203 Hasil klik Finish ......................................................... 156
Gambar 3.204 Hasil klik Launch Studio ........................................... 157
Gambar 3.205 Klik OK...................................................................... 157
Gambar 3.206 Syncfusion Big Data Agent dan Remote Agent ....... 157
Gambar 3.207 Big Data Platform (1 of 4) ......................................... 158
Gambar 3.208 Big Data Platform (2 of 4) ......................................... 158
Gambar 3.209 Big Data Platform (3 of 4) ......................................... 159
Gambar 3.210 Big Data Platform (4 of 4) ......................................... 159
Gambar 3.211 Hasil Install “syncfusionbigdatacluster.exe” ............. 160
Gambar 3.212 Download Eclipse ..................................................... 161
Gambar 3.213 Klik Install ................................................................. 161
Gambar 3.214 Tunggu beberapa Waktu .......................................... 162
Gambar 3.215 Klik Launch, untuk jalankan Eclipse ......................... 162

xvi
Gambar 3.216 Klik Launch ............................................................... 163
Gambar 3.217 Tunggu beberapa waktu........................................... 163
Gambar 3.218 Eclipse siap digunakan............................................. 164
Gambar 3.219 Hasil “bin\hdfs dfs -mkdir /user”................................ 164
Gambar 3.220 Hasil “bin\hdfs dfs -mkdir /user/hduser” ................... 165
Gambar 3.221 Hasil di HDFS (browser)........................................... 167
Gambar 3.222 Setting koding NB Hadoop ....................................... 167
Gambar 3.223 Hasil run koding NB Hadoop .................................... 168
Gambar 3.224 Set bin Spark ............................................................ 172
Gambar 4.1 Running Java Process ................................................. 175
Gambar 4.2 Setting PC Master + (PC Node1, Node2, Node3): ............... 176
Gambar 4.3 nidos@master:~$ sudo gedit /etc/hostname .................... 179
Gambar 4.4 nidos@master:~$ sudo gedit /etc/hosts ........................... 179
Gambar 4.5 Tampilan Menu ............................................................. 180
Gambar 4.6 Tampilan Menu Edit ..................................................... 180
Gambar 4.7 Tampilan Connection Information ................................ 181
Gambar 4.8 Tampilan Menu ............................................................. 181
Gambar 4.9 Tampilan Edit Pada Gateway dan DNS Server ........... 181
Gambar 4.10 Hasil nidos@master:~$ sudo gedit /etc/hosts ................ 182
Gambar 4.11 Tampilan Edit Method Menjadi Manual ...................... 182
Gambar 4.12 Hasil nidos@master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/masters ............................................... 183
Gambar 4.13 Hasil nidos@master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/slaves .................................................. 184
Gambar 4.14 Clone PC Master ........................................................ 186
Gambar 4.15 Setting PC Master ...................................................... 186
Gambar 4.16 Setting PC Node1, Node2 dan Node3:............................ 186
Gambar 4.17 Tampilan Lihat IP Master ........................................... 187
Gambar 4.18 Setting IP PC Node 1 ................................................. 187
Gambar 4.19 Setting IP PC Node 2 ................................................. 187
Gambar 4.20 Setting IP PC Node 3 ................................................. 188

xvii
Gambar 4.21 Tampilan nidos@node1:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/masters ............................................... 189
Gambar 4.22 Tampilan nidos@node1:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/slaves .................................................. 190
Gambar 4.23 Tampilan Ubah Setting Network pada Virtual Box ..... 196
Gambar 4.24 Tampilan pada Adapter 1 ........................................... 196
Gambar 4.25 Tampilan Call SSH ..................................................... 197
Gambar 4.26 Tampilan Call SSH ..................................................... 198
Gambar 4.27 Format Namenode dari PC Master ............................ 199
Gambar 4.28 Tampilan star start-dfs.sh ............................................ 200
Gambar 4.29 Tampilan Start-yarn.sh ............................................... 200
Gambar 4.30 Tampilan http://localhost:50070 di Firefox .................... 201
Gambar 4.31 Tampilan Datanode Information di Firefox ................. 201
Gambar 4.32 Tampilan http://localhost:50090/status.html di Firefox .. 202
Gambar 4.33 Tampilan http://localhost:8088/cluster di Firefox .......... 202
Gambar 4.34 Tampilan Nodes Of the Cluster pada Firefox ............. 202
Gambar 4.35 Setting IP Windows ke-1 ................................................ 204
Gambar 4.36 Setting IP PC Master ...................................................... 204
Gambar 4.37 Setting IP PC Slave......................................................... 205
Gambar 4.38 Pilih NAT ...................................................................... 205
Gambar 4.39 Pilih PCI (Master) .......................................................... 206
Gambar 4.40 Pilih PCI (Slave) ............................................................. 206
Gambar 4.41 Ketik sudo .. (Master) .................................................... 207
Gambar 4.42 Ketik sudo .. (Slave) ....................................................... 207
Gambar 4.43 Ketik sudo ifdown eth1 .................................................. 208
Gambar 4.44 Ketik sudo nano /etc/hostname ..................................... 208
Gambar 4.45 Ketik sudo nano /etc/hosts ............................................ 208
Gambar 4.46 Ketik sudo nano /etc/hostname ..................................... 209
Gambar 4.47 Ketik sudo nano /etc/hosts ............................................ 209
Gambar 4.48 Cek Koneksi ke PC Slave ................................................. 209
Gambar 4.49 Cek Koneksi ke PC Master .............................................. 209

xviii
Gambar 4.50 Ketik “sudo nano /usr/local/hadoop/etc/hadoop/masters”
.......................................................................................................... 210
Gambar 4.51 Ketik “sudo nano /usr/local/hadoop/etc/hadoop/slaves” 210
Gambar 4.52 Ketik sudo nano /usr/local/hadoop/etc/hadoop/hdfs-site.xml
.......................................................................................................... 210
Gambar 4.53 Ketik sudo nano /usr/local/hadoop/etc/hadoop/hdfs-site.xml
.......................................................................................................... 211
Gambar 4.54 Ketik sudo nano /usr/local/hadoop/etc/hadoop/core-site.xml
.......................................................................................................... 212
Gambar 4.55 Ketik sudo nano /usr/local/hadoop/etc/hadoop/mapred-
site.xml .............................................................................................. 212
Gambar 4.56 Buat namenode ............................................................ 213
Gambar 4.57 Buat datanode .............................................................. 213
Gambar 4.58 Call SSH dari PC Master ................................................. 214
Gambar 4.59 Call SSH dari PC Slave .................................................... 214
Gambar 4.60 Ketik hdfs namenode -format ........................................ 214
Gambar 4.61 Ketik start-all.sh ............................................................ 215
Gambar 4.62 JPS pada Master dan Slave ............................................. 215
Gambar 4.63 Cek datanode ............................................................... 215
Gambar 4.64 Copy File ...................................................................... 216
Gambar 4.65 bin hadoop ................................................................... 216
Gambar 4.66 bin hdfs ........................................................................ 216
Gambar 4.67 Cek pada PC Slave ......................................................... 216
Gambar 4.68 Cek pada PC Master ...................................................... 217
Gambar 4.69 Tampilan Dokumen Uji ............................................... 217
Gambar 4.70 Tampilan File wordcount.java..................................... 220
Gambar 4.71 Tampilan WordCount.Java dalam folder .................... 221
Gambar 4.72 Hasil nidos@master:/usr/local/hadoop$ jar cf wc.jar
WordCount*.class ............................................................................... 221
Gambar 4.73 Tampilan nidos@master:/usr/local/hadoop$ bin/hdfs dfs -
cat /user/nidos/wordcount/output/part* ............................................. 222
Gambar 4.74 Browse Directory pada Forefox .................................. 223
Gambar 4.75 Browse Directory pada Firefox ................................... 223

xix
Gambar 4.76 File Information Pada Firefox ..................................... 224
Gambar 4.77 File *.java dari Algoritma
Naive_Bayes_Classifier_MapReduce ..................................................... 225
Gambar 4.78 Folder /usr/local/hadoop ............................................. 226
Gambar 4.79 File *.java .................................................................... 227
Gambar 4.80 File *.java pada Folder Hadoop .................................. 227
Gambar 4.81 File *.class pada Folder Hadoop ................................ 228
Gambar 4.82 Hasill 1 of 2 ................................................................. 229
Gambar 4.83 Hasil 2 of 2.................................................................. 229
Gambar 4.84 NBbyArgument pada Eclipse ..................................... 230
Gambar 4.85 Running “NBbyArgument” ke-1 .................................. 231
Gambar 4.86 Running “NBbyArgument” ke-2 .................................. 231
Gambar 4.87 Running “NBbyArgument” ke-3 .................................. 232
Gambar 4.88 Running “NBbyArgument” ke-4 .................................. 232
Gambar 4.89 Running “NBbyArgument” ke-5 .................................. 233
Gambar 4.90 Running “NBbyArgument” ke-6 .................................. 233
Gambar 4.91 Running “NBbyArgument” ke-7 .................................. 234
Gambar 4.92 Running “NBbyArgument” ke-8 .................................. 234
Gambar 4.93 Running “NBtanpaArgument” ke-1 ............................. 235
Gambar 4.94 Running “NBtanpaArgument” ke-2 ............................. 235
Gambar 4.95 Running “NBtanpaArgument” ke-3 ............................. 236
Gambar 4.96 Running “NBtanpaArgument” ke-4 ............................. 236
Gambar 4.97 File *.java dari Algoritma K-Means ............................. 237
Gambar 4.98 Folder Com ................................................................. 237
Gambar 4.99 File *.class .................................................................. 238
Gambar 4.100 File KMeans.jar ........................................................ 238
Gambar 4.101 Hasil 1 of 2................................................................ 239
Gambar 4.102 Folder mapreduce dan model .................................. 239
Gambar 4.103 Folder com dalam folder hadoop ............................. 240
Gambar 4.104 File *.class ................................................................ 240
Gambar 4.105 File KMeans.jar ........................................................ 241
Gambar 4.106 Hasil 1 of 2................................................................ 241

xx
Gambar 4.107 Hasil 2 of 2................................................................ 242
Gambar 5.1 Konsep Hierarchical Clustering .................................... 244
Gambar 5.2 Konsep Non-Hierarchical Clustering ............................ 245
Gambar 5.3 K-Means ....................................................................... 249
Gambar 5.4 Kernel K-Means ............................................................ 249
Gambar 5.5 Visualisasi Hasil Mapping Data Kernel K-means ......... 188
Gambar 5.6 Visualisasi Data 2 Dimensi ........................................... 189
Gambar 5.7 Visualisasi data hasil update anggota cluster iterasi 1 195
Gambar 6.1 Visualisasi Hasil Peramalan Iterasi SVR 100000......... 197
Gambar 6.2 Regresi ......................................................................... 199
Gambar 6.3 Arsitektur ELM .............................................................. 200
Gambar 6.4 Training Algoritma ELM ................................................ 201
Gambar 6.5 Training ELM dengan Bias ........................................... 201
Gambar 6.6 Arsitektur Artificial Neural Network Backpropagation... 202
Gambar 7.1 Gambaran Perbedaan Klasifikasi dan Regresi ............ 208
Gambar 7.2 Contoh Regresi............................................................. 208
Gambar 7.3 Contoh Klasifikasi ......................................................... 209
Gambar 7.4 Linear Clasifier.............................................................. 209
Gambar 7.5 Non-Linear Clasifier ...................................................... 209
Gambar 7.6 Ilustrasi SVM Linear ..................................................... 211
Gambar 7.7 SVM Non-Linear ........................................................... 212
Gambar 7.8 Gambaran SVM dengan Slack Variable ...................... 212
Gambar 7.9 Contoh Klasifikasi dengan Metode One-Against-All .... 218
Gambar 7.10 Klasifikasi One-Against-One untuk 4 Kelas ............... 219
Gambar 7.11 Ilustrasi Klasifikasi dengan BDTSVM ......................... 220
Gambar 7.12 Ilustrasi Klasifikasi dengan metode DAGSVM ........... 221
Gambar 8.1 Get Eclipse OXYGEN ................................................... 223
Gambar 8.2 Bahasa Java/ Scala/ Python/ R .................................... 223
Gambar 8.5 Copy paste file *.vdi ...................................................... 364
Gambar 8.6 Buka cmd as administrator ........................................... 364
Gambar 8.7 Ketikkan “cd C:\Program Files\Oracle\VirtualBox” ....... 365

xxi
Gambar 8.8 Lalu ketikkan “vboxmanage sethduuid” ........................ 365
Gambar 8.9 Buka Virtualbox ............................................................ 365
Gambar 8.10 Set Memory size, misal “5000MB” ............................. 366
Gambar 8.11 Pilih “Use an existing virtual hard disk file”................. 366
Gambar 8.12 Virtual Machine siap untuk dijalankan ........................ 367
Gambar 8.13 Jalankan Virtual Machine ........................................... 367
Gambar 8.14 Folder di Window yang akan di-share ........................ 368
Gambar 8.15 Klik Devices  Shared Folders.................................. 368
Gambar 8.16 Klik “Adds new shared folder” .................................... 369
Gambar 8.17 Pilih Folder.................................................................. 369
Gambar 8.18 cek “Auto-mount” dan “Make Permanent”, klik OK .... 370
Gambar 8.19 Kik OK ........................................................................ 370
Gambar 8.20 Cek pada Media  “sf_File_Share” ........................... 371
Gambar 8.21 set mount dari Terminal ke-1...................................... 371
Gambar 8.22 set mount dari Terminal ke-2 (Fix) ............................. 372
Gambar 8.23 Relational Vs Non-Relational DB ............................... 373
Gambar 8.24 Collection pada NoSQL .............................................. 373
Gambar 8.25 Visual NoSQL System ................................................ 374
Gambar 8.26 Bentuk NoSQL ........................................................... 374
Gambar 8.27 SQL Vs NoSQL .......................................................... 375
Gambar 8.28 Hasil Running Hadoop (Install GUI MongoBD) .......... 378
Gambar 8.29 Tampilan Install GUI MongoDB .................................. 379
Gambar 8.30 Tampilan Install GUI MongoDB .................................. 380
Gambar 8.31 Hasil perintah (http://127.0.0.1:3333/) ........................ 380
Gambar 8.32 Hasil perintah (http://127.0.0.1:3333/) ........................ 381
Gambar 8.33 Perintah (http://127.0.0.1:3333/) test Connection ...... 381
Gambar 8.34 Perintah (http://127.0.0.1:3333/) ................................ 382
Gambar 8.35 Konfigurasi Koneksi (Hadoop + MongoDB) ............... 382
Gambar 8.36 Copy file “mongo-hadoop-core-2.0.1.jar” ....................... 383
Gambar 8.37 file “mongo-java-driver” ................................................ 383

xxii
Gambar 8.38 copy file jars (“mongo-hadoop-core-2.0.1.jar” dan
“mongo-java-driver-3.4.0.jar”) ke dir. lib pada tiap di hadoop cluster
.......................................................................................................... 386
Gambar 8.39 Buat DB “testmr” ......................................................... 386
Gambar 8.40 Tampilan Add Collection ............................................ 387
Gambar 8.41 Import file “*.json” as collection pada DB “testmr” ke
collection “in” ..................................................................................... 387
Gambar 8.42 Text Input.................................................................... 388
Gambar 8.43 Import Document Untuk file “in.json”  tidak standar
Mongo ............................................................................................... 389
Gambar 8.44 Import Document Untuk file “in.json”  tidak standar
Mongo ............................................................................................... 389
Gambar 8.45 file in_standard.json  standar Mongo .......................... 390
Gambar 8.46 in_standard.json  standar Mongo (Klik Open) .............. 390
Gambar 8.47 Import Document ........................................................ 391
Gambar 8.48 Hasil dari Klik Import .................................................. 391
Gambar 8.49 file “WordCountMongo.java”: ........................................ 394
Gambar 8.50 Hasil: nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main WordCountMongo.java ................................. 396
Gambar 8.51 Hasil: nidos@master:/usr/local/hadoop$ jar cf wcmongo.jar
WordCountMongo*.class .................................................................... 396
Gambar 8.52 Running perhitungan kata dari file dalam MongoDB . 397
Gambar 8.53 Hasil MongoDB .......................................................... 397
Gambar 8.54 Browse Directory ........................................................ 398
Gambar 8.55 Browse Directory ........................................................ 398
Gambar 8.56 File Information di Browser......................................... 398
Gambar 8.57 List dataset ................................................................... 399
Gambar 8.58 List dataset (dari MovieLens) ......................................... 400
Gambar 8.59 Tampilan Browse Directory ........................................ 400
Gambar 8.60 Add database “ratemovie” pada MongoDB ..................... 401
Gambar 8.61 Add database “ratemovie” pada MongoDB ..................... 401
Gambar 8.62 List File*.java untuk di Compile ke *.jar ...................... 402
Gambar 8.63 file comratingbymovies ............................................... 407

xxiii
Gambar 8.64 Compile Semua file *.java ke *.jar .............................. 407
Gambar 8.65 Hasil: nidos@master:/usr/local/hadoop$ jar cf ratemovie.jar
comratingbymovies/nidos/*.class ........................................................ 408
Gambar 8.66 Hasil: nidos@master:/usr/local/hadoop$ jar cf ratemovie.jar
comratingbymovies/nidos/*.class ........................................................ 408
Gambar 8.67 Hasil Running proses perhitungan rating movie .............. 409
Gambar 8.68 Running proses perhitungan rating movie out2 ............... 410
Gambar 8.69 Lihat hasil dari MongoDB melalui terminal ...................... 410
Gambar 8.70 Tampilan Browse Directory ........................................ 411
Gambar 8.71 File Information di Browser......................................... 411
Gambar 9.1 Mapreduce.................................................................... 415
Gambar 9.2 Hadoop Multi Node ....................................................... 416
Gambar 9.3 start-all.sh ..................................................................... 420
Gambar 9.4 Membuat Folder ........................................................... 420
Gambar 9.5 Cek Folder .................................................................... 421
Gambar 9.6 Compile semua file Java .............................................. 421
Gambar 9.7 Class Pada Direktori .................................................... 421
Gambar 9.8 File*.jar ......................................................................... 421
Gambar 9.9 Direktori ........................................................................ 422
Gambar 9.10 File Pada Folder Input ................................................ 422
Gambar 9.11 File Pada Localhost .................................................... 422
Gambar 9.12 Folder Output.............................................................. 422
Gambar 9.13 Folder Output.............................................................. 422
Gambar 9.14 Cek Folder .................................................................. 423
Gambar 9.15 Menjalankan Program ................................................ 423
Gambar 9.16 Cek Hasil .................................................................... 423
Gambar 9.17 Arsitektur Single Cluster ............................................. 426
Gambar 9.18 Cara Kerja Mapreduce ............................................... 426
Gambar 9.19 Jalankan hadoop (start-all.sh) .................................... 430
Gambar 9.20 Folder Data Latih dan Data Uji ................................... 431
Gambar 9.21 Proses Klasifikasi ....................................................... 431
Gambar 9.22 Contoh Hasil Klasifikasi .............................................. 431

xxiv
Gambar 9.23 Diagram Alir Clustering K-Means Judul Majalah........ 436
Gambar 9.24 Keluaran dari Proses Run File ................................... 438
Gambar 9.25 Keluaran Proses Run Clustering ................................ 439

xxv
Daftar Source Code

Source Code 3.1 Solusi Localhost:50070 tidak ada koneksi .................. 37


Source Code 3.2 Membuat Directories di HDFS .................................. 37
Source Code 3.3 File *.java Part 1 ..................................................... 37
Source Code 3.4 File *.java Part 1 Cont ............................................ 38
Source Code 3.5 File *.Java Part 2 .................................................... 39
Source Code 3.6 File *.Java Cont ...................................................... 40
Source Code 3.7 Solusi Error: Could not find or load main class
com.sun.tools.javac.Main ...................................................................... 40
Source Code 3.8 Solusi Error: Could not find or load main class fs: ....... 42
Source Code 3.9 Solusi Error: Could not find or load main class fs: Cont 43
Source Code 3.10 Hasil: hduser@Master:/usr/local/hadoop$ bin/hdfs
dfs -copyFromLocal /home/nidos/Desktop/data/a.txt
/user/hduser/wordcount/input ............................................................. 43
Source Code 3.11 Solusi jika sering muncul warning: WARN
util.NativeCodeLoader: Unable to load native-hadoop library for your
platform… using builtin-java classes where applicable.............................. 44
Source Code 3.12 Source Code Untuk Melihat Isi dari Dokumen yang
Akan Diproses .................................................................................... 44
Source Code 3.13 Membuat Folder Output ....................................... 45
Source Code 3.14 Menjalankan JAR untuk wordcount (file a.txt saja) .... 45
Source Code 3.15 Menjalankan JAR untuk wordcount (file a.txt saja) Cont
............................................................................................................ 46
Source Code 3.16 Menjalankan JAR untuk wordcount (file b.txt saja): ... 47
Source Code 3.17 Menjalankan JAR untuk wordcount (file b.txt saja): Cont
............................................................................................................ 48
Source Code 4.1 Setting PC Master + (PC Node1, Node2, Node3): .... 177
Source Code 4.2 Setting PC Master + (PC Node1, Node2, Node3): .... 178
Source Code 4.3 Setting PC Master ................................................ 183
Source Code 4.4 Setting PC Master ................................................ 184
Source Code 4.5 Setting PC Master ................................................ 185
Source Code 4.6 Setting PC Master ................................................ 185
Source Code 4.7 Restart Network Disemua PC .............................. 188

xxvi
Source Code 4.8 Setting PC Master (Node1, Node2, Node 3) ........ 189
Source Code 4.9 Setting PC Master ................................................ 190
Source Code 4.10 Setting PC Master .............................................. 190
Source Code 4.11 Setting PC Master .............................................. 191
Source Code 4.12 Call SSH ............................................................. 192
Source Code 4.13 Cek Status SSH Ok ............................................ 192
Source Code 4.14 Cek Status SSH Error ........................................ 192
Source Code 4.15 Re-install SSH dan Cek Status OK .................... 193
Source Code 4.16 Call SSH untuk Node 2 ...................................... 193
Source Code 4.17 Cek Status SSH Ok ............................................ 194
Source Code 4.18 Cek Status SSH Error ........................................ 194
Source Code 4.19 Re-Install SSH dan Cek Status .......................... 194
Source Code 4.20 Call SSH untuk Node 3 ...................................... 194
Source Code 4.21 Call SSH untuk Node 3 Cont. ............................. 195
Source Code 4.22 Cek Status SSH Ok ............................................ 195
Source Code 4.23 Cek Status SSH Error ........................................ 195
Source Code 4.24 Re-Install SSH dan Cek Status .......................... 195
Source Code 4.25 Solusi untuk error “ssh: connect to host
master/node1/node2/node3 port 22: No route to host” ........................ 196
Source Code 4.26 Call SSH Node 1 dari Master ............................. 197
Source Code 4.27 Call SSH-nya Master dari Node 1 ...................... 198
Source Code 4.28 SSH ID dari PC Master ...................................... 199
Source Code 4.29 Membuat Directories di HDFS ........................... 203
Source Code 4.30 Source Code Membuat Directories di HDFS Cont
.......................................................................................................... 203
Source Code 4.31 Buat File Dokumen Uji........................................ 217
Source Code 4.32 File Wordcount.Java........................................... 218
Source Code 4.33 File *.java Part 1 ................................................. 218
Source Code 4.34 File *.Java Part 2 Cont ....................................... 219
Source Code 4.35 File*.Java Part 2 ................................................. 219
Source Code 4.36 File *.Java Part 2 Cont ....................................... 220
Source Code 4.37 Running Proses Perhitungan Kata ..................... 222

xxvii
Source Code 4.38 Menjalankan JAR untuk wordcount untuk satu file
dalam satu folder .............................................................................. 224
Source Code 4.39 RatingCounterByMovieMongo.java.................... 226
Source Code 4.40 File *.class .......................................................... 227
Source Code 4.41 Membuat file *.class  *.jar ................................. 228
Source Code 4.42 Membuat File *.class .......................................... 238
Source Code 4.43 Membuat File *.class .......................................... 240
Source Code 4.44 Perintah Membuat file *.class  *.jar ................... 241
Source Code 8.1 Contoh Document BSON ..................................... 376
Source Code 8.2 Contoh Penggunaan BSON ................................. 376
Source Code 8.3 Contoh Penggunaan BSON ................................. 376
Source Code 8.4 Install MongoBD untuk simpan file hasil running
kode program di Hadoop .................................................................. 377
Source Code 8.5 Running Hadoop (Install GUI MongoDB) ............. 378
Source Code 8.6 Running Hadoop (Install GUI MongoDB) ............. 378
Source Code 8.7 Running Hadoop (Install GUI MongoDB) Cont .... 379
Source Code 8.8 Install GUI MongoDB Cont .................................. 379
Source Code 8.9 perintah (http://127.0.0.1:3333/) ........................... 381
Source Code 8.10 Konfigurasi Koneksi (Hadoop + MongoDB) ....... 382
Source Code 8.11 copy file jars (“mongo-hadoop-core-2.0.1.jar” dan
“mongo-java-driver-3.4.0.jar”) ke directory lib pada setiap di hadoop
cluster ............................................................................................... 384
Source Code 8.12 copy file jars (“mongo-hadoop-core-2.0.1.jar” dan
“mongo-java-driver-3.4.0.jar”) ke directory lib pada setiap di hadoop
cluster Cont ...................................................................................... 385
Source Code 8.13 in.json  tidak standar Mongo ........... 387
Source Code 8.14 in_standard.json  standar Mongo ..... 388
Source Code 8.15 File WordCountMongo.java Part 1 of 2 .................. 392
Source Code 8.16 File WordCountMongo.java Part 2 of 2 .................. 393
Source Code 8.17 Compile ke *.jar file WordCountMongo.java ........ 394
Source Code 8.18 Compile ke *.jar file WordCountMongo.java ........ 395
Source Code 8.19 Running proses perhitungan kata dalam file dokumen
dalam MongoDB ................................................................................. 397

xxviii
Source Code 8.20 Membuat Directories “ratemovie/dataset” di HDFS. 399
Source Code 8.21 Copy Semua File Dataset dari Local Folder ...... 400
Source Code 8.22 file (MovieMapper.java Part 1 of 1) ........................ 402
Source Code 8.23 file (MovieReducer.java Part 1 of 2)........................ 403
Source Code 8.24 file (MovieReducer.java Part 2 of 2)........................ 403
Source Code 8.25 file (RatingCounterByMovieMongo.java Part 1 of 2) 404
Source Code 8.26 file (RatingCounterByMovieMongo.java Part 1 of 2) 405
Source Code 8.27 file (RatingCounterByMovieMongo.java Part 2 of 2) 405
Source Code 8.28 file (RatingMapper.java Part 1 of 1) ........................ 406
Source Code 8.29 Compile file ke *.jar ............................................ 406
Source Code 8.30 Compile file *.java ke *.jar .................................. 407
Source Code 8.31 Running proses perhitungan rating movie out1 ....... 409
Source Code 8.32 Running proses perhitungan rating movie out2 ....... 409
Source Code 9.1 Map.java ............................................................... 419
Source Code 9.2 Reduce.java ......................................................... 420
Source Code 9.3 Kode Program 1 ................................................... 428
Source Code 9.4 Kode Program 2 ................................................... 429
Source Code 9.5 KMeansHadoop.java ............................................ 438
Source Code 9.6 Map Reduce ......................................................... 443

xxix
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

BAB 1 Konsep Big Data

1.1 Pengantar
Banyak perdebatan yang signifikan tentang apa itu Big Data dan
apa jenis keterampilan yang diperlukan untuk penggunaan terbaik dari
Big Data tersebut. Banyak yang menulis tentang Big Data dan
kebutuhan untuk analisis yang canggih dalam industri, akademisi, dan
pemerintah, maupun lainnya. Ketersediaan sumber data baru dan
munculnya peluang analitis yang lebih kompleks telah menciptakan
kebutuhan untuk memikirkan kembali arsitektur data yang ada untuk
memungkinkan analisis yang dapat dengan optimal memanfaatkan Big
Data.
Bab ini menjelaskan beberapa konsep utama Big Data, mengapa
analisis canggih diperlukan, perbedaan Data Science vs Business
Intelligence (BI), dan apa peran baru yang diperlukan untuk ekosistem
Big Data. Berikut berbagai perkembangan data dan munculnya sumber
data yang besar dari tahun ke tahun yang ditunjukan oleh Gambar 1.1
berikut:

Gambar 1.1 Perkembangan data


Untuk gambaran perbedaan Data Science dan Business
Intelligence (BI) ditunjukan pada Gambar 1.2 berikut:

1
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 1.2 Data Science vs Business Intelligence


Sebuah penelitian eksplanatori (Explanatory Research) menurut
Singarimbun dalam Singarimbun dan Effendi (Ed 1995) merupakan
penelitian yang menjelaskan hubungan kausal (sebab akibat) antara
variabel penelitian dengan pengujian hipotesa (menguji suatu teori
atau hipotesis guna memperkuat atau bahkan menolak teori atau
hipotesis hasil penelitian yang sudah ada sebelumnya). Di dalam
penelitian eksplanatori, pendekatan yang dipakai dalam penelitian ini
adalah metode survey, yaitu penelitian yang dilakukan untuk
memperoleh fakta-fakta mengenai fenomena-fenomena yang ada di
dalam obyek penelitian dan mencari keterangan secara aktual dan
sistematis.
Pengertian riset eksploratori adalah riset yang ditujukan untuk
mengeksplor atau untuk mengumpulkan pemahaman mendalam
(penyelidikan) mengenai suatu masalah, bukan untuk menguji variabel
karena variabel-tersebut biasanya belum diketahui dan baru akan
diketahui melalui riset. Riset eksploratori bersifat fleksibel dan tidak
terstruktur. Umumnya riset ini berbentuk riset kualitatif dengan
metode pengumpulan data yang lazim digunakan yaitu wawancara
dan diskusi kelompok.
ad-hoc reporting adalah model dari BI di mana laporan yang
dibangun dan didistribusikan oleh pengguna akhir yang tidak begitu
mengerti teknis (non teknis). Dan software untuk Business Intelligence
(BI) atau disebut juga dengan dashboard.

2
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

1.2 Gambaran Umum Big Data


Dari sudut pandang ilmu pengetahuan, media penyimpanan
pada hardware yang dapat digunakan adalah HDD, FDD, dan yang
sejenisnya. Sedangkan media penyimpanan pada jaringan biologi,
pada diri kita dikaruniai Otak oleh Sang Creator atau Sang Pencipta.
Seberapa penting mengolah data-data yang kecil kemudian berkumpul
menjadi data yang besar (Big Data) tersebut. Berikut gambaran umum
Big Data yang ditunjukkan oleh Gambar 1.3.

Gambar 1.3 Gambaran Umum Big Data


Dari gambar 1.3 diatas dapat dilihat beberapa elemen penting dalam
big data diantaranya:
- Data (Facts, a description of the World)
- Information (Captured Data and Knowledge): Merekam atau
mengambil Data dan Knowledge pada satu waktu tertentu (at a
single point). Sedangkan Data dan Knowledge dapat terus
berubah dan bertambah dari waktu ke waktu.
- Knowledge (Our personal map/model of the world): apa yang kita
ketahui (not the real world itself) Anda saat ini tidak dapat
menyimpan pengetahuan dalam diri anda dalam apa pun selain
otak, dan untuk membangun pengetahuan perlu informasi dan
data.
Menurut McKinsey Global (2011), Big Data dapat didefinisikan
dengan data yang memiliki skala (volume), distribusi (velocity),

3
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

keragaman (variety) yang sangat besar, dan atau abadi, sehingga


membutuhkan penggunaan arsitektur teknikal dan metode analitik
yang inovatif untuk mendapatkan wawasan yang dapat memberikan
nilai bisnis baru (informasi yang bermakna). Dan pada
pengembangannya ada yang menyebut (7V) termasuk Volume,
Velocity, Variety, Variability, Veracity, Value, dan Visualization, atau
10V bahkan lebih dari itu.
Jumlah data yang dihasilkan da-
lam ukuran petabyte (^15) ke
Perubahan data selama zetabyte (^21)
pemrosesan dan
lifecycle-nya Volume

Data yang masuk da-


lam berbagai format
Variability Variety (terstruktur, semi
terstruktur, dan
data yang memiliki nilai guna Value tidak terstruktur)
(data yang berguna)

Kecepatan data yang


Analisis yang dilakukan pada Veracity Velocity dibuat/ digenerate/ di-
Data, akan lebih bermanfaat bila tangkap, dan dialirkan
akurasi data ditingkatkan (data streaming real time)

Gambar 1.4 Big Data dengan 6V+ 1V(Visualization)=7V


Big data merupakan istilah untuk sekumpulan data yang begitu
besar atau kompleks dimana tidak bisa ditangani lagi dengan sistem
teknologi komputer konvensional (Hurwitz, et al., 2013). Kapan suatu
data dapat dikatakan sebagai “Big Data”?

Kualitas data, Tata Kelola, Pengelolaan


Ukuran Data Data Master secara Massive

Kecepatan Data Perilaku Berkembang,


yang dihasilkan Dinamis dari Sumber Data

Data heterogen yang


terdistribusi
Berbagai tipe data
dari beberapa Platform

Model Data, Semantik yang


Akurasi data menggambarkan Struktur data

Teka-teki terhadap teknik meaning


Data yang punya nilai guna Big Data dan Tools yang digunakan

Gambar 1.5 Big Data dengan 10V

4
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

1.3 Karakteristik Big Data (3V)


1. Volume
- Facebook menghasilkan 10TB data baru setiap hari, Twitter 7TB
- Sebuah Boeing 737 menghasilkan 240 terabyte data pen-
erbangan selama penerbangan dari satu wilayah bagian AS ke
wilayah yang lain
- Microsoft kini memiliki satu juta server, kurang dari Google,
tetapi lebih dari Amazon, kata Ballmer (2013).
Catatan: Kita dapat menggunakan semua data ini untuk
memberitahu kita sesuatu, jika kita mengetahui pertanyaan yang
tepat untuk bertanya.

Gambar 1.6 Tradisional vs Big Data

5
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Kata Big Data mengarah kepada managemen informasi skala besar


(large-scale) dan teknologi analisis yang melebihi kapabilitas teknologi
data secara tradisional. Terdapat perbedaan yang paling utama dalam
tiga hal antara Tradisional dengan Big Data, yaitu amount of data (vol-
ume), the rate of data generation and transmission (velocity), dan the
types of structured and unstructured data (variety).

Gambar 1.7 Bentuk Infrastruktur Gambar 1.8 Google Cloud


Data Center Platform

Berikut gambaran traditioonal approach dan big data approach


yang ditunjukkan oleh Gambar 1.6 dan 1.7.

Traditional Approach Big Data Approach

Gambar 1.9 Analyze small Gambar 1.10 Analyze all data


subsets of data

Teknologi Big Data dibagi menjadi 2 kelompok: batch processing


yang mana digunakan untuk menganalisis data yang sudah settle (data
at rest) pada satu waktu tertentu. Dan streaming processing yang
mana digunakan untuk menganalisis data yang terus menerus ter-
update setiap waktu (data in motion).

6
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 1.11 Batch dan stream processing

2. Velocity
Velocity adalah Kecepatan data yang masuk (per jam, per
detik, etc). Clickstreams (web log) dan transfer data asynchronous
yang dapat menangkap apa saja yang dilakukan oleh jutaan atau
lebih pengguna yang lakukan saat ini. Dimana clickstream atau
web log merupakan salah satu sumber data yang menarik. Sebuah
clickstream meliputi suatu rekaman untuk setiap permintaan
halaman dari setiap pengunjung website. Jadi, suatu clickstream
merekam setiap gesture yang dibuat oleh pengunjung dan gesture
ini memiliki potensi untuk memberikan deskripsi mengenai
kebiasaan dari pengunjung yang bersangkutan. Diharapkan bahwa
clickstream akan mengidentifikasi sesi yang berhasil dan tidak
berhasil, menentukan apakah pengunjung puas atau tidak puas,
dan menemukan bagian dari website yang secara efektif menarik
perhatian pengunjung.

37
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Traditional Approach Start Big Data Approach Explore all


with hypothesis and test data and identify
against selected data correlations

Gambar 1.12 Traditional Ap- Gambar 1.13 Big Data Approach


proach
3. Variety
Variety merupakan kumpulan dari berbagai macam data,
baik data yang terstruktur, semi terstruktur maupun data tidak
terstruktur (bisa dipastikan lebih mendominasi). Tampilan data
semakin komprehensif (lengkap dan menyeluruh).

 data yang terstruktur

 semi terstruktur

 tidak terstruktur

Gambar 1.14 Variety Data


4. Rangkuman 3V dan Veracity

Terabytes ke Terstruktur, Semi, Kepastian kondisi


Data streaming pada
Petabytes Data dan Tidak Ter- data, apakah datanya
sepersekian detik
struktur benar atau salah

Gambar 1.15 Rangkuman 3V dan Veracity

6
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

1.4 Ekosistem Big Data Analytics


Berikut gambaran dari Ekosistem Big Data yang ditunjukkan
oleh Gambar 1.15:

Gambar 1.16 Gambaran Ekosistem Big Data


Keterangan:
1. Data Devices
2. Data Collectors
3. Data Aggregators: kompilasi informasi dari database dengan
tujuan untuk mempersiapkan dataset gabungan untuk
pengolahan data.
4. Data Users/ Buyers
Apa yang dimasud dengan Analytics? Sebuah titik awal untuk
memahami Analytics adalah Cara untuk mengeksplorasi/
menyelidiki/ memahami secara mendalam suatu objek sampai ke
akar-akarnya. Hasil analytics biasanya tidak menyebabkan banyak
kebingungan, karena konteksnya biasanya membuat makna yang
jelas. Perkembangan analytics dimulai dari DSS kemudian berkem-
bang menjadi BI (Bussines Intelligence) baru kemudian menjadi ana-
lytics yang ditunjukkan oleh Gambar 1.16 berikut:

Decision
Support Business Analytics
Systems Intelligence

1970s 1990s 2010

Gambar 1.17 Perkembangan Analytics

7
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

BI dapat dilihat sebagai istilah umum untuk semua aplikasi


yang mendukung DSS, dan bagaimana hal itu ditafsirkan dalam
industri dan semakin meluas sampai di kalangan akademisi. BI
berevolusi dari DSS, dan orang dapat berargumentasi bahwa
Analytics berevolusi dari BI (setidaknya dalam hal peristilahan).
Dengan demikian, Analytics merupakan istilah umum untuk aplikasi
analisis data.
Big Data Analytics merupakan Alat dan teknik analisis yang
akan sangat membantu dalam memahami big data dengan syarat
algoritma yang menjadi bagian dari alat-alat ini harus mampu
bekerja dengan jumlah besar pada kondisi real-time dan pada data
yang berbeda-beda.
Bidang Pekerjaan baru Big Data Analytics:
- Deep Analytical Talent / Data scientists (Memiliki bakat
analitik yang mendalam/ Ilmuwan Data): orang-orang
dengan latar belakang yang kuat dalam algoritma-algoritma
sistem cerdas, atau matematika terapan, atau ekonomi, atau
ilmu pengetahuan lainnya melalui inferensi data dan ek-
splorasi.
- Data Savvy Professionals (Para profesional Data Cerdas):
Mereka tahu bagaimana untuk berpikir tentang data,
bagaimana mengajukan jenis pertanyaan (goal) yang tepat
sesuai dengan kebutuhan lembaga/perusahaan/lainnya dan
mampu memahami dan mengklarifikasi jawaban (hasil
analisis) yang mereka terima.
- Technology and data enablers: Mampu memberikan
dukungan integrasi antara data dengan teknologi yang
sesuai, dan yang paling berkembang saat ini.

Contoh perusahaan atau developer yang menggunakan analisis Big


Data:
- Starbucks (Memperkenalkan Produk Coffee Baru). Pagi itu
kopi itu mulai dipasarkan, pihak Starbucks memantau
melalui blog, Twitter, dan kelompok forum diskusi kopi
lainnya untuk menilai reaksi pelanggan. Pada pertengahan-
pagi, Starbucks menemukan hasil dari analisis Big Data
bahwa meskipun orang menyukai rasa kopi tersebut, tetapi
mereka berpikir bahwa harga kopi tersebut terlalu mahal.
Maka dengan segera pihak Starbucks menurunkan harga,

8
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

dan menjelang akhir hari semua komentar negatif telah


menghilang. Bagaimana jika menggunakan analisis
tradisional?
Contoh tersebut menggambarkan penggunaan sumber data
yang berbeda dari Big Data dan berbagai jenis analisis yang dapat
dilakukan dengan respon sangat cepat oleh pihak Starbucks.
- Pemilihan Presiden atau walikota atau lainnya di suatu
Negara atau kota melalui analisis tweet dengan Apache
HDF/NiFi, Spark, Hive dan Zeppelin.
o Apache NiFi, get filtered tweets yang berhubungan
dengan Pemilihan Presiden atau walikota, misal di
Indonesia atau di kota tertentu.
o Apache Spark, get the stream of tweets dari Apache NiFi.
o Spark streaming, untuk mentransformasi dan menyimpan
data ke dalam suatu tabel pada Apache Hive.
o Apache Zeppelin notebook, untuk menampilkan data
hasil secara real-time.
Hasil analytics:
o Frekuensi dari tweets sepanjang waktu per kandidat
o Persentase tweet negatif, positive dan neutral per kandi-
dat
o Tren opini sepanjang waktu untuk tiap kandidat

1.5 Ekosistem Tool Big Data Analytics


Berikut gambaran dari Ekosistem Tool Big Data, menggunakan
salah satu variasi dari susunan Ekosistem Hadoop (Apache Hadoop
Ecosystem) yang ditunjukkan oleh Gambar 1.17 berikut:

9
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 1.18 Contoh Ekosistem Hadoop ke-1


Berdasarkan dari Ekosistem Big Data yang begitu kompleks
pada bab sebelumnya, maka hal yang sangat penting dilakukan
pertama kali sebagai kunci sukses untuk membangun Ekosistem
Hadoop adalah mengidentifikasi kegunaan dan bagaimana interaksi
antara, atau dari masing-masing Tool Big Data, serta apa saja yang
nantinya akan digunakan dalam melakukan pembuatan
implementasi pada lingkungan Hadoop. Gambar 1.17 memberikan
contoh gambaran umum tentang interaksi aplikasi, tool dan interface
yang ada di ekosistem Hadoop yang dibangun, misal berdasarkan
kategori atau spesifikasi dari setiap produk-produk Apache
berdasarkan fungsinya, mana yang spesifik digunakan untuk;
(Storage, Processing, Querying, External Integration & Coordination),
dan bagaimana kecocokan interaksi diantara mereka.
Pada Gambar 1.18 berikut adalah contoh Ekosistem Hadoop
yang lain dengan menggunakan beberapa Tool Big Data yang
berbeda dengan Ekosistem sebelumnya,

10
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 1.19 Contoh Ekosistem Hadoop ke-2

Fokus dari adanya visualisasi ekosistem dari Tool Big Data


adalah terkait suatu gambaran sistem yang mempelajari interaksi
antara satu Tool Big Data satu dengan lainnya, maupun interakti
suatu Tool Big Data yang ada dengan Lingkungannya (misal Data,
Kondisi Kasusnya, dll), sedangkan fokus dari pembuatan arsitektur
Tool Big Data (akan dibahas lebih detil pada bab selanjutnya) adalah
lebih ke arah seni dan ilmu yang digunakan untuk merancang,
mendesain dan membangun produk dari mengkombinasikan dari
banyaknya pilihan Tool -Tool Big Data yang ada sesuai dengan
seberapa komplek kasus yang ditangani untuk projek analitik dalam
Scope Big Data, dan memungkinkan akan adanya modifikasi atau
perbaikan kembali arsitektur yang ada sebelumnya dari waktu ke
waktu, misal dalam beberapa bulan atau tahun produk arsitertur
tersebut mungkin akan menjadi usang dan harus diganti dengan
arsitektur yang lain yang lebih baik dan optimal.
Selain dari kedua contoh Ekosistem Hadoop sebelumnya,
contoh pada Ekosistem Hadoop yang lain lebih ke arah “Industrial
Best Practices” untuk diterapkan dalam bidang apapun, misal

11
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

kesehatan (Healthcare), dsb bisa menggunakan Hadoop Distribution


(HD) dari hasil karya terbaik beberapa perusahaan berikut,
1. Cloudera: didirikan orang-orang yang berkontribusi di project
Hadoop di Apache, Memiliki pangsa pasar paling besar,
membuat HD versi gratis dan juga versi enterprise yang tidak
gratis, menambahkan software khusus milik mereka yang
disebut Impala (Query Engine diatas HDFS, seperti Map
Reduce yang bisa dijalankan dengan low-latency atau dengan
waktu yang lebih pendek dibanding Map Reduce).
2. HortonWorks: didirikan orang-orang yang berkontribusi di
project Hadoop juga, diadopsi di Microsoft Azure dan menjadi
Microsoft HD Insight. Partnership ini yang membuat
Hortonworks sampai saat ini satu-satunya Hadoop yang
compatible dan mudah dijalankan di Microsoft Windows, HD
versi enterprise dari Hortonworks adalah gratis. Hortonworks
mendapatkan keuntungan dari support dan training.
3. MapR Technologies: seperti Hortonworks, memberikan gratis
untuk versi enterprisenya dan mendapat keuntungan dari
support dan training, digunakannya oleh dua perusahaan
cloud computing yang besar Amazon dan Google, maka MapR
banyak digunakan oleh pengguna cloud computing.
4. etc
Hadoop yang dari Apache memiliki kemiripan dengan Linux
dari segi komposisi, konfigurasi dan distribusinya, namun bukan
dalam hal fungsionalitas. Hadoop komposisinya dibangun dengan
menggunakan software open source dibawah lisensi Apache
Fundation. Hadoop Distribution adalah Perusahaan yang membuat
sebuah paket Hadoop siap pakai dan menjualnya, dari hasil
konfigurasi Hadoop standard dengan tool-tool Big Data lain yang
sesuai dengan desain konfigurasi komposisi yang menurut mereka
terbaik, yang didalamnya ada Ekosistem Hadoop dan juga
Arsitekturnya. Anda pun secara mandiri dapat membuat Hadoop
Distribution juga, namun yang harus diperhatikan adalah tentang
keahlian dan penguasaan tingkat dasar sampai tingkat lanjut terkait
konsep Big Data, dan Tool-tool yang berkembang untuk Big Data
tersebut, jika belum maka anda dapat mempelajarinya secara
bertahap dengan fokus pada beberapa core dari Tool pengolahan Big
Data, misal untuk awalan cukup menguasai Hadoop dan Spark,

12
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

kemudian disusul Tool yang lainnya , hal ini akan memudahkan anda
belajar untuk menjadi sangat ahli dalam bidang Big Data dan Tool-
nya, sehingga setelah mahir, anda akan merasa sangat mudah dalam
membuat Hadoop Distribution secara mandiri.

Gambar 1.20 Cloudera vs Hortonworks vs MapR

1.6 Tugas Kelompok


1. Jelaskan Pengertian dan keberadaan (ada atau tidak adanya)
dari Big Data, dari sudut pandang spesifikasi hardware:
a. Jika belum memenuhi kebutuhan Big Data tersebut.
b. Jika sudah memenuhi kebutuhan Big Data tersebut.
2. Sebutkan permasalahan apa saja yang sering muncul pada Big
Data?
3. Jelaskan apa yang dimaksud dengan Volume, Velocity, Variety,
dan Veracity dalam Big Data!
4. Jelaskan Perbedaan antara analisis dan analitik (analytics)!
5. Apa pendapat anda antara Big Data vs Big Information vs Big
Knowledge, manakah diantara ke-3 hal tersebut yang lebih
utama?
6. Berikan deskripsi sekaligus contoh, terkait data terstruktur,
semi terstruktur dan tidak terstruktur!

13
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

BAB 2 Analitik Big Data


& Lifecycle

2.1 Pengantar
Fakta-fakta terkait dengan kondisi existing Perusahaan:

Gambar 2.1 Daftar Perusahaan


Informasi apa saja yang bisa digali dari Big Data pada
perusahaan di atas? Dan strategi apa saja yang bisa dilakukan dari
masing-masing perusahaan di atas terkait Analitik Data.
- Advance Technology (Tools) Big Data
- Key Roles Kunci Sukses Proyek Analitik
- Lifecycle Analitik Data

2.2 Teknologi Advaced (Tools) Big Data


Teknologi yang digunakan dalam pentyimpanan (storage),
pemrosesan (processing), dan analisis dari Big Data meliputi:
a. Dengan cepat menurunnya biaya penyimpanan dan daya CPU
dalam beberapa tahun terakhir.
b. Fleksibilitas dan efektivitas biaya pusat data (datacenters) dan
komputasi awan (cloud computing) untuk perhitungan dan
penyimpanan elastis;
c. Pengembangan frameworks baru seperti Hadoop, yang
memungkinkan pengguna memanfaatkan sistem komputasi
terdistribusi ini untuk mengolah menyimpan sejumlah data
besar melalui pemrosesan paralel yang fleksibel.

14
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 2.2 Faktor yang mendorong (driving) adopsi Big Data


Beberapa tools yang dapat membantu untuk membuat query
yang kompleks dan menjalankan algoritma dari machine learning di
atas hadoop, meliputi:
- Pig (sebuah platform dan scripting language untuk complex
queries)
- Hive (suatu SQL-friendly query language)
- Mahout dan RHadoop (data mining dan machine learning
algorithms untuk Hadoop)
- Selain hadoop, terdapat frameworks baru seperti Spark yang
didesain untuk meningkatkan efisiensi dari data mining dan
algoritma pada machine learning pada hadoop, sehingga dapat
digunakan secara berulang-ulang untuk mengerjakan
pengolahan/ analitik secara mendalam dari kumpulan data
Dan juga terdapat beberapa database yang didesain untuk
efisiensi peyimpanan dan query Big Data, meliput:
- MongoDB
- Cassandra
- CouchDB
- Greenplum Database
- HBase, MongoDB, dan
- Vertica.

15
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Pengolahan secara stream (Stream processing) yang artinya


adalah pemrosesan data yang memiliki arus atau aliran
data/informasi secara terus-menerus yang hampir setiap waktu ada
data baru yang masuk dan butuh untuk dilakukan pengolahan terus-
menerus pula. Stream processing tidak memiliki teknologi tunggal
yang dominan seperti Hadoop, namun merupakan area untuk
menumbuhkan penelitian menjadi lebih luas serta mendalam dan
pengembangan lebih lanjut (Cugola & Margara 2012). Salah satu
model untuk Stream processing adalah Complex Event Processing
(Luckham 2002), yang menganggap arus informasi sebagai notifikasi
kreasi atau indikasi akan munculnya peristiwa tertentu (melalui
pola/pattern yang diidentifikasi) yang perlu digabungkan untuk
menghasilkan pengetahuan akan adanya indikasi kejadian sangat
penting atau tingkat tinggi (high-level events). Implementasi
teknologi stream antara lainnya meliputi:
- InfoSphere Streams
- Jubatus, dan
- Storm

2.3 Arsitektur Big Data


Cara Terbaik untuk mendapatkan solusi dari Permasalahan Big
Data (Big Data Solution) adalah dengan "Membagi Masalahnya". Big
Data Solution dapat dipahami dengan baik menggunakan Layered
Architecture. Arsitektur Layered dibagi ke dalam Lapisan yang
berbeda dimana setiap lapisan memiliki spesifikasi dalam melakukan
fungsi tertentu. Arsitektur tersebut membantu dalam merancang
Data Pipeline (jalur data) dengan berbagai mode, baik Batch
Processing System atau Stream Processing System. Arsitektur ini
terdiri dari 6 lapisan yang menjamin arus data yang optimal dan
aman.
Data Ingestion Layer - Lapisan ini merupakan langkah awal
untuk data yang berasal dari sumber tertentu dan akan memulai
perjalanannya. Data disini akan dilakukan pemrioritasan dan
pengkategorian, sehingga data dapat diproses dengan mudah
diteruskan ke lapisan lebih lanjut. Tool yang dapat digunakan, yaitu
Apache Flume, Apache Nifi (Pengumpulan dan Penggalian Data dari
Twitter menggunakan Apache NiFi untuk Membangun Data Lake),
Elastic Logstash. Data masuk ke dalam Data Lake dalam bentuk

16
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

mentah, dan semua datanya disimpan, tidak hanya data yang


digunakan saja, tapi juga data yang mungkin digunakan di masa
depan. Di Data Lake semua data tersimpan dalam bentuk aslinya.
Lapisan Kolektor Data (Data Collector Layer) - Di Lapisan ini,
lebih fokus pada penyaluran data dari lapisan penyerapan atau
pengambilan data awal (ingestion) ke jalur data yang lainnya. Pada
Lapisan ini, data akan dipisahkan sesuai dengan kelompoknya atau
komponen-komponennya (Topik: kategori yang ditentukan
pengguna yang pesannya dipublikasikan, Produser - Produsen yang
memposting pesan dalam satu topik atau lebih, Konsumen -
berlangganan topik dan memproses pesan yang diposkan, Brokers -
Pialang yang tekun dalam mengelola dan replikasi data pesan)
sehingga proses analitik bisa dimulai. Tool yang dapat digunakan,
yaitu Apache Kafka.

Gambar 2.3 Arsitektur Big Data


Lapisan Pengolahan Data (Data Processing Layer) - fokus
utama lapisan ini adalah untuk sistem pemrosesan data pipeline atau
dapat kita katakan bahwa data yang telah kita kumpulkan di lapisan
sebelumnya akan diproses di lapisan ini. Di sini kita melakukan
ekstraksi dan juga learning dari data untuk diarahkan ke tujuan yang
bermacam-macam, mengklasifikasikan arus data yang seharusnya

17
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

diarahkan dan ini adalah titik awal di mana analitik telah dilakukan.
Data pipeline merupakan komponen utama dari Integrasi Data. Data
pipeline mengalirkan dan mengubah data real-time ke layanan yang
memerlukannya, mengotomatiskan pergerakan dan transformasi
data, mengolah data yang berjalan di dalam aplikasi Anda, dan
mentransformasikan semua data yang masuk ke dalam format
standar sehingga bisa digunakan untuk analisis dan visualisasi. Jadi,
Data pipeline adalah rangkaian langkah yang ditempuh oleh data
Anda. Output dari satu langkah dalam proses menjadi input
berikutnya. Langkah-langkah dari Data pipeline dapat mencakup
pembersihan, transformasi, penggabungan, pemodelan dan banyak
lagi, dalam bentuk kombinasi apapun. Tool yang dapat digunakan,
yaitu Apache Sqoop, Apache Storm, Apache Spark, Apache Flink.
Lapisan Penyimpanan Data (Data Storage Layer) - Media
penyimpanan menjadi tantangan utama, saat ukuran data yang
digunakan menjadi sangat besar. Lapisan ini berfokus pada "tempat
menyimpan data yang begitu besar secara efisien". Tool yang dapat
digunakan, yaitu Apache Hadoop (HDFS), Gluster file systems (GFS),
Amazon S3.
Lapisan Query Data (Data Query Layer) - lapisan ini
merupakan tempat berlangsungnya pemrosesan secara analitik yang
sedang dalam keadaaan aktif. Di sini, fokus utamanya adalah
mengumpulkan data value sehingga dapat dibuat lebih bermanfaat
dan mudah digunakan untuk lapisan berikutnya. Tool yang dapat
digunakan, yaitu Apache Hive, Apache (Spark SQL), Amazon Redshift,
Presto.
Lapisan Visualisasi Data (Data Visualization Layer) - Proses
Visualisasi, atau tahapan merepresentasikan data dalam bentuk
visual, kemungkinan ini adalah tingkat yang paling bergengsi, di
mana pengguna data pipeline dapat merasakan hasil laporan yang
mendetail dan mudah dipahami dari data value yang telah
divisualisasikan. Kita membutuhkan sesuatu yang akan menarik
perhatian orang dari visualisasi data, sehigga membuat temuan Anda
mudah dipahami dengan baik oleh mereka melalui visualisasi
tersebut. Tool yang dapat digunakan, yaitu “Tableau, Kibana”
sebagai Real-Time Dashboards, “Angular.js” sebagai Intelligence
Agents misalnya agen dapat mengingat hal-hal yang mungkin Anda
sudah lupa, dengan cerdas meringkas data yang kompleks, belajar
dari Anda dan bahkan membuat rekomendasi untuk Anda,

18
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

menemukan dan memfilter informasi saat Anda melihat data


perusahaan atau berselancar di Internet dan tidak tahu di mana
informasi yang tepat, “React.js” sebagai sistem recommender untuk
memprediksi tentang kriteria pengguna, yaitu menentukan model
penggunanya seperti apa.

Gambar 2.4 Data Integration Using Apache NiFi dan Apache Kafka

Gambar 2.5 Integrating Apache Spark dan NiFi for Data Lakes
Apache Spark digunakan secara luas untuk pengolahan Big
Data. Spark bisa mengolah data di kedua mode yaitu Pengolahan
Batch Mode dan Streaming Mode. Apache NiFi ke Apache Spark
melakukan transmisi data menggunakan komunikasi situs ke situs.
Dan output port-nya digunakan untuk mempublikasikan data dari
sumbernya (source). Apache Spark adalah mesin pemrosesan data
dalam memori, yang cepat dan ringkas dengan mode pengembangan
API yang elegan dan ekspresif, yang memungkinkan pengguna
melakukan proses secara streaming, menggunakan pembelajaran
mesin (machine learning), atau SQL yang memerlukan akses
berulang-ulang secara cepat terhadap kumpulan data. Dengan Spark
yang berjalan di Apache Hadoop YARN, developer sekarang dapat
membuat aplikasi dengan memanfaatkan kehandalan dari Spark,
untuk memperoleh wawasan, dan memperkaya data sains mereka

19
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

dengan memasukkan data dalam satu kumpulan data besar di


Hadoop.

2.4 Key Roles Kunci Sukses Proyek


Analitik

Gambar 2.6 Key Roles Kunci Sukses Proyek Analitik


Terdapat beberapa komponen Key roles:
1. Bussines User
Business User: Seseorang yang memahami wilayah domain
(kondisi existing) dan dapat mengambil manfaat besar dari hasil
proyek analitik, dengan cara konsultasi dan menyarankan tim proyek
pada scope proyek, hasil, dan operasional output (terkait dengan
cara mengukur suatu variabel). Biasanya yang memenuhi peran ini
adalah analis bisnis, manajer lini, atau ahli dalam hal pokok yang
mendalam.
2. Project Sponsor
Project Sponsor: Bertanggung jawab terkait asal proyek.
Memberi dorongan, persyaratan proyek dan mendefinisikan
masalah core bisnis. Umumnya menyediakan dana dan konsep
pengukur tingkat nilai output akhir dari tim kerja. Menetapkan
prioritas proyek dan menjelaskan output yang diinginkan.
3. Project Manager
Project Manager: Memastikan bahwa pencapaian utama
projek dan tujuan terpenuhi tepat waktu dan sesuai dengan kualitas
yang diharapkan.
4. Business Intelligence Analyst

20
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Business Intelligence Analyst: Menyediakan keahlian dalam


domain bisnis berdasarkan pemahaman yang mendalam mengenai
data, indikator kinerja utama (KPI), metrik kunci, dan intelijen bisnis
dari perspektif pelaporan. Analis Business Intelligence umumnya
membuat dashboard (panel kontrol) dan laporan dan memiliki
pengetahuan tentang sumber data dan mekanismenya.
5. Database Administrator (DBA)
Database Administrator (DBA): Set up dan mengkonfigurasi
database untuk mendukung kebutuhan analitik. Tanggung jawab ini
mungkin termasuk menyediakan akses ke database keys atau tabel
dan memastikan tingkat keamanan yang sesuai berada di tempat
yang berkaitan dengan penyimpanan data.
6. Data Engineer
Data Engineer: Memilki keterampilan teknis yang mendalam
untuk membantu penyetelan query SQL untuk pengelolaan data dan
ekstraksi data, dan mendukung untuk konsumsi data ke dalam
sandbox analitik. Data Engineer melakukan ekstraksi data aktual dan
melakukan manipulasi data yang cukup besar untuk memfasilitasi
kebutuhan proyek analitik. Insinyur data (Data Engineer) bekerja
sama dengan ilmuwan data (Data Scientist) untuk membantu
membentuk data yang sesuai dengan cara yang tepat untuk analisis
7. Data Scientist
Data Scientist (Ilmuan Data): Menyediakan keahlian untuk
teknik analitis, pemodelan data, dan menerapkan teknik analitis yang
valid untuk masalah yang diberikan. Memastikan melalui
keseluruhan analitik tujuannya dapat terpenuhi. Merancang dan
mengeksekusi metode analitis dan melakukan pendekatan lainnya
dengan data yang tersedia untuk proyek tersebut.

21
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

2.5 Lifecycle Analitik Data

Gambar 2.7 Gambaran Umum dari Lifecycle Analitik Data


Dari gambaran umum lifecycle analitik yang ditunjukkan pada
Gambar 2.3 dapat dilihat terdapat beberapa fase diantaranya se-
bagai berikut:
1. Fase 1 Discovery
Pada tahap ini, tim lmuwan data (Data Scientist)
harus belajar, mencari dan menyelidiki fakta-fakta,
masalah (identifikasi problem base), mengembangkan
konteks dan pemahaman, dan belajar tentang sumber
data yang dibutuhkan dan yang telah tersedia untuk
kesuksesan proyek analitik. Selain itu, tim merumuskan
hipotesis awal yang nantinya dapat diuji dengan data.
Tim belajar domain bisnis, termasuk kriteria dari
data history yang relevan, seperti, apakah organisasi atau
unit bisnis telah mencoba proyek serupa di masa lalu (apa
saja yang sudah mereka pelajari dari data). Tim menilai
sumber daya yang tersedia untuk mendukung proyek
tersebut dari segi SDM, teknologi, waktu, dan data.

22
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Kegiatan penting dalam fase ini meliputi


membingkai masalah bisnis sebagai tantangan analitik
yang dapat dibahas dalam fase berikutnya dan
merumuskan hipotesis awal (IHs) untuk menguji dan mulai
mempelajari data.
2. Fase 2 Data Preparation
Tahap ini membutuhkan adanya sandbox analitik, di
mana tim dapat bekerja dengan data dan melakukan
analitik selama proyek tersebut. tim perlu melaksanakan
proses ekstrak, load dan transformasi (ELT) atau ekstrak,
transform dan load (ETL) untuk menyiapkan data ke
sandbox.
ETLT adalah proses integrasi data untuk mentransfer
data mentah dari server sumber ke sebuah gudang data
pada server target dan kemudian menyiapkan informasi
untuk keperluan hasil akhir.
Data Sandbox, dalam konteks Big Data, adalah
platform terukur dan berkembang yang digunakan untuk
mengeksplorasi informasi besar suatu perusahaan. Hal ini
memungkinkan perusahaan untuk mewujudkan nilai
investasi yang sebenarnya dalam Big Data.
Sebuah sandbox data, utamanya dieksplorasi oleh
tim Data Scientist yang menggunakan platform sandbox
stand-alone, misal untuk analitik data marts, logical
partitions pada suatu media penyimpanan di perusahaan.
platform Data sandbox menyediakan komputasi yang
diperlukan bagi para ilmuwan Data (Data Scientist) untuk
mengatasi beban kerja analitik yang biasanya kompleks.
3. Fase 3 Model Planning
Dalam tahap ini tim menentukan metode, teknik,
dan alur kerja. Mereka berniat untuk mengikuti tahap
pembentukan model berikutnya. Tim mengeksplorasi data
untuk belajar tentang hubungan antara variabel dan
kemudian memilih variabel kunci dan model yang paling
cocok untuk digunakan.
4. Fase 4 Model Building
tim mengembangkan dataset untuk pengujian
(testing), pelatihan (training), dan tujuan produksi
(menghasilkan data baru dari data yang ada).

23
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Selain itu, dalam fase ini tim membangun dan


mengeksekusi model yang didasarkan pada kerja yang
dilakukan di dalam fase Model Planning.
Tim juga mempertimbangkan apakah ini alat yang ada
akan cukup untuk menjalankan model, atau jika itu akan
membutuhkan lingkungan yang lebih robust untuk
mengeksekusi model dan alur kerja (misalnya, hardware
yang cepat, teknik dekomposisi data dan pemrosesan
paralel, jika dapat diterapkan).
5. Fase 5 Communicate Result
tim bekerja sama dengan pemangku kepentingan
(stakeholders) utama, menentukan apakah hasil proyek
tersebut sukses atau mengalami kegagalan berdasarkan
kriteria yang dikembangkan di Fase 1.
Tim harus mengidentifikasi temuan kunci, mengukur
nilai bisnis, dan mengembangkan narasi untuk meringkas
dan menyampaikan temuan kepada para pemangku
kepentingan.
6. Fase Operationalize
tim memberikan laporan akhir, pengarahan, kode,
dan dokumen teknis. Selain itu, tim dapat menjalankan
pilot project untuk menerapkan model dalam lingkungan
produksi.
Pilot Project adalah sebuah studi percontohan,
proyek percontohan atau studi pendahuluan skala kecil
yang dilakukan untuk mengevaluasi kelayakan, waktu,
biaya, efek samping, dan efek ukuran dalam upaya untuk
memprediksi ukuran sampel yang tepat dan memperbaiki
design penelitian sebelum kepada proyek penelitian skala
penuh.

2.6 Tugas Kelompok


1. Jelaskan apa yang dimaksud dengan Data Sandbox pada
konteks Big Data!
2. Jelaskan perbedaan antara Data Science dengan Business Intel-
ligence!

24
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

3. Jelaskan perbedaan antara Data Science dengan Data


Engineer!
4. Dari beberapa macam “Key Roles Kunci Sukses Proyek Anali-
tik”, manakah 2 pekerjaan paling banyak dibutuhkan pada saat
ini, terutama diperusahaan besar?
5. Dari “Gambaran Umum dari Lifecycle Analitik Data”, Buatlah
studi kasus dengan mengambil salah satu perusahaan besar
yang ada di Indonesia atau perusahaan Asing di dunia untuk
melakukan fase ke-1, yaitu Discovery. Berikan penjelasan
detail terkait hasil penyelidikan anda dari:
a. Fakta-fakta (Analisis kondisi existing yang ada disana)
b. Permasalahan yang ditemukan (identifikasi problem
base), yang membutuhkan teknik optimasi,
pemodelan, prediksi (1. output berupa value, 2.
supervised, atau 3. unsupervised), dan peramalan.
c. Dari hasil penjabaran permasalahan pada point (b),
manakah permasalahan yang menurut anda paling
komplek? Jelaskan!

25
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

BAB 3 Teknologi dan Tools


Big Data (Bagian 1)

3.1 Konsep Pengolahan Big Data


Bayangkan ada sekumpulan data yang sangat besar (Big Data),
bagaimana kita dapat melakukan Parallel atau Distributed
Processing.
File Sistem Terdistribusi (Distributed File System, atau disingkat
dengan DFS) adalah file sistem yang mendukung sharing files dan
resources dalam bentuk penyimpanan persistent (tetap) untuk
tujuan tertentu di sebuah network.

Gambar 3.1 Distributed System (a) dan Paralel System (b)

26
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

3.2 Introduction to Hadoop


Hadoop: Suatu software framework (kerangka kerja perangkat
lunak) open source berbasis Java di bawah lisensi Apache untuk
aplikasi komputasi data besar secara intensif.

Gambar 3.2 Ilustrasi Hadoop HDFS


Hadoop File System dikembangkan menggunakan desain sistem
file yang terdistribusi. Tidak seperti sistem terdistribusi, HDFS sangat
faulttolerant dan dirancang menggunakan hardware low-cost. Atau
dalam arti lain, Hadoop adalah Software platform (platform
perangkat lunak) sebagai analytic engine yang memungkinkan
seseorang dengan mudah untuk melakukan pembuatan penulisan
perintah (write) dan menjalankan (run) aplikasi yang memproses
data dalam jumlah besar, dan di dalamnya terdiri dari:
- HDFS – Hadoop Distributed File System
- MapReduce – offline computing engine
Dalam komputasi, platform menggambarkan semacam
(hardware architecture) arsitektur perangkat keras atau (software
framework) kerangka kerja perangkat lunak (termasuk kerangka
kerja aplikasi), yang memungkinkan perangkat lunak dapat berjalan.
Ciri khas dari platform meliputi arsitekturnya komputer,
sistem operasi, bahasa pemrograman dan runtime libraries atau GUI
yang terkait.
Apa yang ada pada Hadoop dari sudut pandang:
- Platform: Komputer sebagai node, .. ?

27
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Framework: HDFS Explorer, .. ?

3.2.1 Hadoop Distributed File System (HDFS)


Hadoop terdiri dari HDFS (Hadoop Distributed file System)
dan Map Reduce. HDFS sebagai direktori di komputer dimana data
hadoop disimpan. Untuk pertama kalinya, direktori ini akan di “for-
mat” agar dapat bekerja sesuai spesifikasi dari Hadoop. HDFS sebagai
file system, tidak sejajar dengan jenis file system dari OS seperti NTFS,
FAT32. HDFS ini menumpang diatas file system milik OS baik Linux,
Mac atau Windows.
Data di Hadoop disimpan dalam cluster.
Cluster biasanya terdiri dari banyak node atau komputer/server.
Setiap node di dalam cluster ini harus terinstall Hadoop untuk bisa
jalan.
Hadoop versi 1.x ada beberapa jenis node di dalam cluster:
- Name Node: Ini adalah node utama yang mengatur penempatan
data di cluster, menerima job dan program untuk melakukan
pengolahan dan analisis data misal melalui Map Reduce. Name
Node menyimpan metadata tempat data di cluster dan juga
replikasi data tersebut.
- Data Node: Ini adalah node tempat data ditempatkan. Satu
block di HDFS/data node adalah 64 MB. Jadi sebaiknya data
yang disimpan di HDFS ukurannya minimal 64 MB untuk
memaksimalkan kapasitas penyimpanan di HDFS.
- Secondary Name Node: Bertugas untuk menyimpan informasi
penyimpanan data dan pengolahan data yang ada di name
node. Fungsinya jika name node mati dan diganti dengan name
node baru maka name node baru bisa langsung bekerja dengan
mengambil data dari secondary name node.
- Checkpoint Node dan Backup Node: Checkpoint node
melakukan pengecekan setiap interval waktu tertentu dan
mengambil data dari name node. Dengan check point node
maka semua operasi perubahan pada data terekam. Namun,
secondary name node hanya perlu menyimpan check point
terakhir. Backup Node juga berfungsi sama, hanya bedanya data
perubahan yang disimpan dilakukan di memory bukan di file
seperti checkpoint dan secondary node.

28
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Kelemahan HDFS di hadoop versi 1.x adalah jika name node mati.
Maka seluruh cluster tidak bisa digunakan sampai name node baru
dipasang di cluster.
Hadoop versi 2.x ada beberapa jenis node di dalam cluster:
- Lebih dari satu name nodes. Hal ini berfungsi sebagai
implementasi dari High Availability. Hanya ada satu name node
yang berjalan di cluster (aktif) sedangkan yang lain dalam
kondisi pasif. Jika name node yang aktif mati/rusak, maka name
node yang pasif langsung menjadi aktif dan mengambil alih
tugas sebagai name node.
- Secondary name node, checkpoint node dan backup node tidak
lagi diperlukan. Meskipun ketiga jenis node tersebut menjadi
optional, tetapi kebanyakan tidak lagi ada di cluster yang
memakai hadoop versi 2.x. Hal ini karena selain fungsi yang
redundan, juga lebih baik mengalokasikan node untuk membuat
tambahan name node sehingga tingkat High Availability lebih
tinggi.
- Data node tidak ada perubahan yang signifikan di versi hadoop
2.x dari versi sebelumnya.
Meskipun konteks yang kita bicarakan disini adalah dalam cluster,
Hadoop juga bisa dijalankan dalam single node. Dalam single node
maka semua peran diatas berada dalam satu komputer. Biasanya
single node ini digunakan hanya untuk training atau development.
Bukan untuk produksi skala enterprise.

29
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 3.3 Arsitektur HDFS

Gambar 3.4 Hadoop 2.x Core Components

3.2.2 MapReduce (MR)


Paradigma (pandangan mendasar) terkait MR:
- Model pemrograman yang dikembangkan Google, Sortir /
merge berbasis komputasi terdistribusi.

30
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Awalnya, MR dimaksudkan untuk aplikasi pencarian /


pengindeksan internal Google, tapi sekarang digunakan
secara luas (misalnya, Yahoo, Amazon.com, IBM, dll).
- MR termasuk gaya pemrograman fungsional, yang secara
alami dapat diparalelkan di sekelompok besar workstation
atau PC.
- Sistem yang mendasari untuk melakukan partisi (clustering)
dari input data, membuat jadwal eksekusi program di
beberapa mesin untuk pemrosesan data, handling
kegagalan mesin, dan memanage komunikasi yang
diperlukan antar-mesin. (Ini adalah kunci untuk sukses
Hadoop).

Gambar 3.5 High Level Arsitektur Hadoop dan The Job Tracker

31
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Name Node untuk mengelola


metadata dari kluster, dan Data
Node untuk menyimpan data/file.
File dan direktori diwakili pada
Name Node yang menyimpan
atribut seperti permission,
modifikasi dan waktu akses, atau
kuota namespace dan diskspace.

Slaves
Gambar 3.6 The Job Tracker
Dua Komponen yang terdapat MapReduce, yaitu Job Tracker
dan Task Traker. Job Tracker adalah komponen pada komputer
Master, dan Task Tracker adalah komponen pada komputer Slaves.
Berikut urutan cara kerjanya MR pada komputer “Master” maupun
pada komputer “Slaves”:
1. Client submit “the job” ke “Job Tracker”.
2. “Job Tracker” menanyakan “Name Node”, yang menjadi
lokasi dari data.
3. Setelah mendapatkan replay lokasi data dari "Name Node",
kemudian "Job Tracker" menanyakan masing-masing tugas
"Task Tracker", kemudian meminta untuk menjalankan "the
task" terhadap data yang ada pada masing-masing mereka.
4. Semua hasil pengolahan data oleh "Task Tracker" disimpan
pada beberapa "Data Node" dan "Name Node" diberikan
informasi tentang hal yang sama, yaitu sebagai pengingat
lokasi di node mana data hasil pengolahan tersebut disimpan.
5. "Task Tracker" akan menginformasikan bahwa "the job" telah
diselesaiakan yaitu dengan memberikan informasi dalam
bentuk progress ke "Job Tracker".
6. “Job Tracker” menginformasikan bahwa “the job” telah
selesai dikerjakan kepada Client.
7. Client akan memanggil “Name Node” dan mengambil hasil
pengolahan datanya dari “Name Node” tersebut.

32
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 3.7 Diagram Cara Kerja Map Reduce


Melalui diagram di atas, kita bisa tahu tentang cara kerja map-
reduce.
Arsitektur Map/Reduce (M/R) Versus Yet Another Resource
Negotiator (YARN)

Gambar 3.8 Ilustrasi MR vs YARN


Single Node Cluster (pseudo-distributed) Pada Linux &
Windows ( download file tutorial lengkapnya dari link:
https://goo.gl/7bJhdi ):
- Buka terminal dan ketikkan “sudo nano /etc/hosts”
- sudo apt-get update

33
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- sudo apt-get install default-jdk (cek dengan java -


version)
- sudo addgroup hadoop
- sudo adduser –ingroup hadoop hduser
- sudo adduser hduser sudo
- sudo apt-get install ssh
- su hduser
- ssh-keygen –t rsa –P “”
- ...
- etc

3.3 Konfigurasi Hadoop Single Node


Cluster di Linux
Persiapan Pada Virtual Box

Gambar 3.9 Persiapan Pada Virtual Box

34
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Link Web untuk monitoring Hadoop (beberapa mungkin tidak aktif):


- The NameNode / Filesystem / log browser can be found at
http://localhost:50070
- The Secondary NameNode can be found at
http://localhost:50090

3.3.1 Studi Kasus & Solusi Hadoop


Studi Kasus

Gambar 3.10 Studi Kasus Wordcount


Inti dari Hadoop adalah HDFS dan Map Reduce. HDFS adalah
tempat menyimpan semua data, Map Reduce adalah proses untuk
mengolah data dan mendapatkan informasi yang berguna dari HDFS
tersebut.
Kelemahan dari Hadoop yaitu:
- Map Reduce hanya bisa berjalan secara serial untuk mengolah
data. Artinya tidak bisa dilakukan pemrosesan data secara
paralel. Hal ini sangat terasa dengan Hadoop versi 1.x. Untuk
Hadoop versi 2.x sudah ada teknologi baru yang ditambahkan
yaitu YARN.
- Map Reduce hanya bisa berjalan dalam batch atau secara
periodik dan tidak bisa terus menerus secara realtime. Hal ini
membuat Map Reduce tidak bisa mengolah data dalam bentuk
streaming tanpa henti seperti misalnya tweet dari twitter.

35
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Namun kelemahan-kelemahan tersebut dapat diatasi dengan


teknologi lain (yaitu Apache Storm dan Apache Spark) yang berada
diatas Hadoop, sehingga penggabungan ini menjadi satu kesatuan
yang masih merupakan solusi Big Data paling populer.
Kelemahan lain dari Hadoop yaitu:
- Latency data processing.
 Latency adalah keterlambatan data untuk diambil dari HDFS,
dengan menggunakan Map Reduce, ke level aplikasi
misalnya web app. Bagi yang sudah pernah menjalankan
Map Reduce di Hadoop akan merasakan adanya kelambatan
dalam mengolah data.
 Kelambatan ini selain karena sifat Map Reduce yang
berdasarkan batch, juga karena ukuran data yang relatif
sangat besar.
 Untuk mengatasi masalah ini, software lain (Non Relational
DB (NoSQL) seperti Mongo DB, Apache HBase, Apache
Cassandra, dll) bisa ditambahkan.
- Streaming data processing.
 Pada streaming data secara realtime. Kelemahan ini banyak
dikeluhkan oleh pengguna Hadoop karena data yang masuk
secara terus-menerus tidak bisa dianalisis langsung secara
realtime karena map reduce berjalan secara batch atau
periodik. Contoh kasus ini misalnya dalah menghitung
hashtag paling populer / trending dari seluruh tweets yang
dibuat di twtitter secara realtime.
 Ada tiga software yang saya temukan bisa menutupi
kelemahan ini. Ketiga software itu adalah Spring-XD,
Apache Storm dan Apache Spark Streaming.
Solusi Hadoop
1. Localhost:50070 tidak ada koneksi:
Lakukan hal berikut

36
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

hduser@Master:~$ sudo rm -rf /usr/local/hadoop_tmp


hduser@Master:~$ sudo chown hduser:hadoop -R
/usr/local/hadoop_tmp
chown: cannot access ‘/usr/local/hadoop_tmp’: No such
file or directory
hduser@Master:~$ sudo mkdir -p /usr/local/hadoop_tmp
hduser@Master:~$ sudo mkdir -p
/usr/local/hadoop_tmp/hdfs/datanode
hduser@Master:~$ sudo mkdir -p
/usr/local/hadoop_tmp/hdfs/namenode
hduser@Master:~$ sudo chown hduser:hadoop -R
/usr/local/hadoop_tmp
hduser@Master:~$ sudo chown hduser:hadoop -R
/usr/local/hadoop/
hduser@Master:~$ hadoop namenode -format

Source Code 3.1 Solusi Localhost:50070 tidak ada koneksi


2. Membuat Directories di HDFS harus satu demi satu
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -mkdir
/user
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -mkdir
/user/hduser
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -mkdir
/user/hduser/wordcount
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -ls
/user/hduser
Found 1 items
drwxr-xr-x - hduser supergroup 0 2016-11-
20 22:03 /user/hduser/wordcount
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -mkdir
/user/hduser/wordcount/input

Source Code 3.2 Membuat Directories di HDFS


Siapkan file *.java (msial WordCount.java Part 1 of 2) untuk
dicompile ke *.jar:

import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;

Source Code 3.3 File *.java Part 1

37
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import
org.apache.hadoop.mapreduce.lib.input.FileInpu
tFormat;
import
org.apache.hadoop.mapreduce.lib.output.FileOut
putFormat;
public class WordCount {
public static class TokenizerMapper
extends Mapper<Object, Text, Text,
IntWritable> {
private final static IntWritable one =
new IntWritable(1);
private Text word = new Text();
public void map(Object key, Text
value, Context context) throws IOException,
InterruptedException {
StringTokenizer itr = new
StringTokenizer(value.toString());
while (itr.hasMoreTokens()) {
word.set(itr.nextToken());
context.write(word, one);
}
}
}

Source Code 3.4 File *.java Part 1 Cont


Siapkan file *.java (msial WordCount.java Part 2 of 2) untuk
dicompile ke *.jar:

38
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

public static class IntSumReducer


extends Reducer<Text, IntWritable,
Text, IntWritable> {
private IntWritable result = new
IntWritable();
public void reduce(Text key,
Iterable<IntWritable> values,
Context context
) throws IOException,
InterruptedException {
int sum = 0;
for (IntWritable val : values) {
sum += val.get();
}
result.set(sum);
context.write(key, result);
}
} public static void main(String[] args)
throws Exception {
Configuration conf = new
Configuration();
Job job = Job.getInstance(conf, "word
count");
job.setJarByClass(WordCount.class);
job.setMapperClass(TokenizerMapper.class);

job.setCombinerClass(IntSumReducer.class);

job.setReducerClass(IntSumReducer.class);
job.setOutputKeyClass(Text.class);

Source Code 3.5 File *.Java Part 2

39
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new
Path(args[0]));
FileOutputFormat.setOutputPath(job, new
Path(args[1]));
System.exit(job.waitForCompletion(true) ?
0 : 1);
}
}

Source Code 3.6 File *.Java Cont


3. Error: Could not find or load main class com.sun.tools.ja-
vac.Main:

hduser@Master:/usr/local/hadoop$ sudo gedit


~/.bashrc

Lalu tambahkan di line paling akhir:

export HADOOP_CLASSPATH=/usr/lib/jvm/java-7-
openjdk-amd64/lib/tools.jar

Lalu ketikkan

“hduser@Master:/usr/local/hadoop$source
~/.bashrc” atau dengan me-restart PC anda, lalu
coba lalu coba lagi:
hduser@Master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main WordCount.java
hduser@Master:/usr/local/hadoop$

Source Code 3.7 Solusi Error: Could not find or load main class
com.sun.tools.javac.Main

40
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 3.11 Hasil: hduser@Master:/usr/local/hadoop$ jar cf


wc.jar WordCount*.class

Gambar 3.12 Hasil: hduser@Master:/usr/local/hadoop$ jar


cf wc.jar WordCount*.class

41
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 3.13 Hasil: hduser@Master:/usr/local/hadoop$ jar


cf wc.jar WordCount*.class

4. Error: Could not find or load main class fs:


Jika menggunakan hdfs, maka gunakan
dfs
Jika menggunakan hadoop, maka gunakan fs
Contoh yang salah:

hduser@Master:/usr/local/hadoop$ bin/hdfs fs -
copyFromLocal /home/nidos/Desktop/data/a.txt
/user/hduser/wordcount/input
Contoh yang benar:
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs
-copyFromLocal /home/nidos/Desktop/data/a.txt
/user/hduser/wordcount/input

Jika error:
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs
-copyFromLocal /home/nidos/Desktop/data/a.txt
/user/hduser/wordcount/input
16/11/20 22:56:34 WARN util.NativeCodeLoader:
Unable to load native-hadoop library for your
platform... using builtin-java classes where
applicable

Source Code 3.8 Solusi Error: Could not find or load main class
fs:

42
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

copyFromLocal: Call From Master/127.0.1.1 to


localhost:9000 failed on connection
exception: java.net.ConnectException:
Connection refused; For more details see:
http://wiki.apache.org/hadoop/ConnectionRefu
sed

Maka, lakukan
hduser@Master:/usr/local/hadoop$ start-
all.sh

Source Code 3.9 Solusi Error: Could not find or load main class fs:
Cont
Hasil: hduser@Master:/usr/local/hadoop$ bin/hdfs dfs –
copyFromLocal /home/nidos/Desktop/data/a.txt/user/hduser/word
count/input

Source Code 3.10 Hasil: hduser@Master:/usr/local/hadoop$


bin/hdfs dfs -copyFromLocal /home/nidos/Desktop/data/a.txt
/user/hduser/wordcount/input

Solusi jika sering muncul warning: WARN util.Native-


CodeLoader: Unable to load native-hadoop library for your plat-
form… using builtin-java classes where applicable

43
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

hduser@Master:/usr/local/hadoop$ sudo gedit


~/.bashrc
Lalu replace di line:
export HADOOP_OPTS="-
Djava.library.path=$HADOOP_INSTALL/lib"
Dengan:
export HADOOP_OPTS=“-
Djava.library.path=$HADOOP_INSTALL/lib/native”
Lalu ketikkan
“hduser@Master:/usr/local/hadoop$source
~/.bashrc” atau dengan me-restart PC anda, lalu
coba cek apakah warning tersebut muncul lagi atau
tidak

Source Code 3.11 Solusi jika sering muncul warning: WARN


util.NativeCodeLoader: Unable to load native-hadoop library for
your platform… using builtin-java classes where applicable
Cara untuk melihat isi dari dokumen yang akan diproses:
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -
cat /user/hduser/wordcount/input/a.txt
18407 Jps
17517 SecondaryNameNode
17351 DataNode
17228 NameNode
17728 ResourceManager
17855 NodeManager

hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -


cat /user/hduser/wordcount/input/b.txt
1 8 4 0 7 J p s
1 7 5 1 7 Secondary Name Node
1 7 3 5 1 Data Node
17228 Name Node
17728 Resource Manager
17855 Node Manager
hduser@Master:/usr/local/hadoop$

Source Code 3.12 Source Code Untuk Melihat Isi dari Dokumen
yang Akan Diproses
Membuat folder output:

44
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -


mkdir /user/hduser/wordcount/output

Dan lihat folder input dan output:


hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -
ls /user/hduser/wordcount
Found 2 items
drwxr-xr-x - hduser supergroup 0
2016-11-20 23:08 /user/hduser/wordcount/input
drwxr-xr-x - hduser supergroup 0
2016-11-20 23:27 /user/hduser/wordcount/output
hduser@Master:/usr/local/hadoop$

Source Code 3.13 Membuat Folder Output

Menjalankan JAR untuk wordcount (file a.txt saja):


hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -
ls /user/hduser/wordcount
Found 2 items
drwxr-xr-x - hduser supergroup 0
2016-11-20 23:08 /user/hduser/wordcount/input
drwxr-xr-x - hduser supergroup 0
2016-11-20 23:27 /user/hduser/wordcount/output
Jika folder output sudah ada, maka sebaiknya
membuat output lainnya, misal “output2”
hduser@Master:/usr/local/hadoop$ bin/hadoop jar
wc.jar WordCount
/user/hduser/wordcount/input/a.txt
/user/hduser/wordcount/output2
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -
ls /user/hduser/wordcount/output2
Found 2 items
-rw-r--r-- 1 hduser supergroup 0
2016-11-21 07:24
/user/hduser/wordcount/output2/_SUCCESS
-rw-r--r-- 1 hduser supergroup 128
2016-11-21 07:24
/user/hduser/wordcount/output2/part-r-00000

Source Code 3.14 Menjalankan JAR untuk wordcount (file a.txt


saja)

45
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -cat


/user/hduser/wordcount/output2/part*
17228 1
17351 1
17517 1
17728 1
17855 1
18407 1
DataNode 1
Jps 1
NameNode 1
NodeManager 1
ResourceManager 1
SecondaryNameNode 1

Source Code 3.15 Menjalankan JAR untuk wordcount (file a.txt


saja) Cont
Menjalankan JAR untuk wordcount (file a.txt saja):

Gambar 3.14 Hasil Menjalankan JAR untuk wordcount (file a.txt


saja):
Menjalankan JAR untuk wordcount (file b.txt saja):

46
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

hduser@Master:/usr/local/hadoop$ bin/hadoop
jar wc.jar WordCount
/user/hduser/wordcount/input/b.txt output
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -
ls /user/hduser/wordcount/
Found 3 items

Source Code 3.16 Menjalankan JAR untuk wordcount (file b.txt


saja):

47
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

drwxr-xr-x - hduser supergroup 0


2016-11-20 23:08 /user/hduser/wordcount/input
drwxr-xr-x - hduser supergroup 0
2016-11-20 23:27 /user/hduser/wordcount/output
drwxr-xr-x - hduser supergroup 0
2016-11-21 07:24 /user/hduser/wordcount/output2
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -
ls
Found 2 items
drwxr-xr-x - hduser supergroup 0
2016-11-21 07:32 output
drwxr-xr-x - hduser supergroup 0
2016-11-21 07:24 wordcount
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -
ls /output
ls: `/output': No such file or directory
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -
ls output
Found 2 items
-rw-r--r-- 1 hduser supergroup 0
2016-11-21 07:32 output/_SUCCESS
-rw-r--r-- 1 hduser supergroup 118
2016-11-21 07:32 output/part-r-00000
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -
cat output/part*
0 1
1 5
17228 1
17728 1
17855 1
3 1
4 1
5 2
7 4
8 1
Data 1
J 1
Manager 2
Name 2
Node 4
Resource 1
Secondary 1
p 1
s 1

Source Code 3.17 Menjalankan JAR untuk wordcount (file b.txt


saja): Cont

48
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Hasil menjalankan JAR untuk wordcount (file b.txt saja):

Gambar 3.15 Hasil menjalankan JAR untuk wordcount (file b.txt


saja):

Hasil dari
hduser@Master:/usr/local/hadoop$ bin/hadoop jar wc.jar
WordCount /user/hduser/wordcount/input/b.txt output
Sebaiknya “output’ dibuat menjadi spesifik misal,
“/user/hduser/wordcount/output3”)
Menjalankan JAR untuk wordcount untuk semua file dalam satu
folder (file a.txt dan b.txts):

49
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

hduser@Master:/usr/local/hadoop$ bin/hadoop jar


wc.jar WordCount /user/hduser/wordcount/input/
/user/hduser/wordcount/output4
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -
ls /user/hduser/wordcount/output4
Found 2 items
-rw-r--r-- 1 hduser supergroup 0
2016-11-21 07:46
/user/hduser/wordcount/output4/_SUCCESS
-rw-r--r-- 1 hduser supergroup 222
2016-11-21 07:46
/user/hduser/wordcount/output4/part-r-00000
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -
cat /user/hduser/wordcount/output4/part*

Gambar 3.16 Menjalankan JAR untuk wordcount untuk semua file


dalam satu folder (file a.txt dan b.txts)

50
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

0 1
1 5
17228 2
17351 1
17517 1
17728 2
17855 2
18407 1
3 1
4 1
5 2
7 4
8 1
Data 1
DataNode 1
J 1
Jps 1
Manager 2
Name 2
NameNode 1
Node 4
s 1
NodeManager 1
Resource 1
ResourceManager 1
Secondary 1
SecondaryNameNode 1
p 1

Gambar 3.17 Menjalankan JAR untuk wordcount untuk semua file


dalam satu folder (file a.txt dan b.txts) Cont.
Cara menghapus folder HDFS:
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -
ls /user/hduser/wordcount/
Found 5 items
drwxr-xr-x - hduser supergroup 0
2016-11-20 23:08 /user/hduser/wordcount/input
drwxr-xr-x - hduser supergroup 0
2016-11-20 23:27 /user/hduser/wordcount/output
drwxr-xr-x - hduser supergroup 0
2016-11-21 07:24 /user/hduser/wordcount/output2
drwxr-xr-x - hduser supergroup 0

Gambar 3.18 Cara menghapus folder HDFS

51
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

2016-11-21 07:46 /user/hduser/wordcount/output3


drwxr-xr-x - hduser supergroup 0
2016-11-21 07:46 /user/hduser/wordcount/output4

hduser@Master:/usr/local/hadoop$ hadoop fs -rm -


r -f /user/hduser/wordcount/output
16/11/21 23:12:18 INFO fs.TrashPolicyDefault:
Namenode trash configuration: Deletion interval
= 0 minutes, Emptier interval = 0 minutes.
Deleted /user/hduser/wordcount/output

hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -


ls /user/hduser/wordcount/
Found 4 items
drwxr-xr-x - hduser supergroup 0
2016-11-20 23:08 /user/hduser/wordcount/input
drwxr-xr-x - hduser supergroup 0
2016-11-21 07:24 /user/hduser/wordcount/output2
drwxr-xr-x - hduser supergroup 0
2016-11-21 07:46 /user/hduser/wordcount/output3
drwxr-xr-x - hduser supergroup 0
2016-11-21 07:46 /user/hduser/wordcount/output4
hduser@Master:/usr/local/hadoop$

Gambar 3.19 Cara menghapus folder HDFS Cont

52
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

3.3.2 Konfigurasi dengan Eclipse IDE

Gambar 3.20 Link download Eclipse


Link:https://www.eclipse.org/downloads/down-
load.php?file=/oomph/epp/oxygen/R/eclipse-inst-linux64.tar.gz
- Lalu Klik Kanan, pilih Extract Here

Gambar 3.21 Extract Here - Eclipse

53
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Copy file, dan cek dengan “ls”


hduser@Master:~$ sudo cp -R
/home/nidos/Downloads/eclipse-installer /home/hduser

Gambar 3.22 Copy file, dan cek dengan “ls”


- Install eclipse
hduser@Master:~$ cd eclipse-installer/
hduser@Master:~/eclipse-installer$ ./eclipse-inst
Tekan Enter

Gambar 3.23 Install eclipse


- Klik “Eclipse IDE for Java EE Developers”

Gambar 3.24 Pilih Eclipse IDE for Java EE Developers

54
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Pilih Installation Folder, misal di “/home/hduser/eclipse/jee-oxy-


gen”, lalu klik “Install”, tunggu beberapa saat

Gambar 3.25 Klik Install, tunggu beberapa waktu


- Instalasi selesai, klik Launch

Gambar 3.26 Klik Launch

55
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Pilih folder workspace, misal di “/home/hduser/eclipse-work-


space”, lalu klik “Launch”, tunggu beberapa saat

Gambar 3.27 Klik “Launch”, tunggu beberapa saat


- Klik “restore”

Gambar 3.28 Klik “restore”

56
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Cek lokasi instalasi hadoop


hduser@Master:~$ sudo gedit ~/.bashrc
hduser@Master:~$ sudo source ~/.bashrc

Misal ditemukan di “usr/local/hadoop”, lalu masuk


dengan
hduser@Master:~$ cd /usr/local/hadoop

Pastikan pada bashrc sudah diset seperti berikut:

Gambar 3.29 Masuk ke folder instalasi hadoop

57
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Jalankan Eclipse, buat project baru, misal dengan nama “Ha-


doopIDE”
hduser@Master:~$ cd /home/hduser/eclipse
hduser@Master:~/eclipse$ ./jee-oxygen/eclipse/eclipse

Klik “New”, pilih “Java Project”, klik “Next”

Gambar 3.30 Jalankan Eclipse


- Isikan nama “HadoopIDE”, klik Finish, tunggu beberapa saat

Gambar 3.31 Klik Finish

58
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Centang “Remember..”, klik “Open Pers..”

Gambar 3.32 Klik Open Pers..


- Tampilan awal project “HadoopIDE”

Gambar 3.33 Project “HadoopIDE”


- Klik kanan “src”, tambahkan new “Package”

Gambar 3.34 Klik kanan “src”, tambahkan new “Package”

59
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Misal berikan pada name “org.hadoop.trainings”, klik “Finish”

Gambar 3.35 Berikan name “org.hadoop.trainings”, klik “Finish”


- Klik kanan pada “org.hadoop.trainings”, klik new “Class”

Gambar 3.36 Klik kanan pada “org.hadoop.trainings”, klik new


“Class”
- Berikan nama “WordCount”, klik “Finish”

Gambar 3.37 Berikan nama “WordCount”, klik “Finish”

60
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Klik kanan Project “HadoopIDE”, klik “Configure Build Path..”

Gambar 3.38 klik “Configure Build Path..”


- Klik “Libraries”, lalu klik “Add External JARs..”

Gambar 3.39 klik “Configure Build Path..”

61
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Masuk ke folder instalasi hadoop, misal di “usr/local/hadoop”

Gambar 3.40 Masuk ke folder instalasi hadoop

- Add *.jar hadoop part 1

Gambar 3.41 Add *.jar hadoop part 1

62
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Add *.jar hadoop part 2

Gambar 3.42 Add *.jar hadoop part 2


- Add *.jar hadoop part 3

Gambar 3.43 Add *.jar hadoop part 3

63
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Add *.jar hadoop part 4

Gambar 3.44 Add *.jar hadoop part 4


- Add *.jar hadoop part 5

Gambar 3.45 Add *.jar hadoop part 5

64
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Add *.jar hadoop part 6

Gambar 3.46 Add *.jar hadoop part 6


- Add *.jar hadoop part 7

Gambar 3.47 Add *.jar hadoop part 7

65
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Add *.jar hadoop part 8

Gambar 3.48 Add *.jar hadoop part 8


- Add *.jar hadoop part 9, klik OK

Gambar 3.49 Add *.jar hadoop part 9

66
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Lalu klik Apply dan Close, terlihat “Referenced Libraries” Hadoop

Gambar 3.50 Daftar “Referenced Libraries” Hadoop

- Download code WordCount dari “https://goo.gl/wPa2ef”, paste


kan ke “WordCountLoadFromHDFStoHDFS.java”

Gambar 3.51 Download code WordCount dari


“https://goo.gl/wPa2ef”

67
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Copykan file local dari “/home/nidos/Desktop/data/a.txt”, ke


HDFS “/user/hduser/wordcount/input/a2.txt”
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -copyFromLocal
/home/nidos/Desktop/data/a.txt
/user/hduser/wordcount/input/a2.txt

Gambar 3.52 Sebelum dan setelah dicopykan

68
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

3.3.3 Konfigurasi dengan HUE


Hue adalah antarmuka berbasis Web untuk memudahkan
dalam memonitoring atau memanage (create, delete, edit, etc) data
HDFS pada Apache Hadoop. Dan bisa diinstal di pc/notebook dengan
versi hadoop manapun. Dan membuat “any users” untuk lebih fokus
pada big data processing.

Gambar 3.53 About Hue

Cara kerja Hue Server adalah sebagai aplikasi web yang ada di
antara instalasi Cloudera Distributed Hadoop (CDH) dan browser
Anda. Hue akan berkomunikasi dengan berbagai server dan
berinteraksi dengan komponen CDH.

Gambar 3.54 Cara kerja Hue Server

69
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Pastikan anda sudah install Hadoop


nidos@Master:~$ su hduser
Password:
hduser@Master:/home/nidos$ cd
hduser@Master:~$ start-all.sh
hduser@Master:~$ jps
3343 NameNode
3985 NodeManager
3843 ResourceManager
3469 DataNode
3633 SecondaryNameNode
4276 Jps
hduser@Master:~$

Gambar 3.55 JVM Process Status Tool (jps)

- Cek Hadoop Version


hduser@Master:~$ hadoop version

Gambar 3.56 Cek Hadoop Version

70
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Masuk ke Terminal
nidos@Master:~$ sudo apt-get install git

Gambar 3.57 sudo apt-get install git


- Lakukan git clone, tunggu beberapa waktu
nidos@Master:~$ git clone
https://github.com/cloudera/hue.git

Gambar 3.58 Lakukan git clone

71
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Download Hue Selesai

Gambar 3.59 Download Hue Selesai


- Install library development packages dan tools
hduser@Master:/usr/local/hue$ sudo apt-get install
python2.7-dev make libkrb5-dev libxml2-dev libffi-dev
libxslt-dev libsqlite3-dev libssl-dev libldap2-dev
python-pip

sudo apt-get install ant gcc g++ libkrb5-dev libffi-


dev libmysqlclient-dev libssl-dev libsasl2-dev
libsasl2-modules-gssapi-mit libsqlite3-dev libtidy-
0.99-0 libxml2-dev libxslt-dev make libldap2-dev maven
python-dev python-setuptools libgmp3-dev

Gambar 3.60 Install library development packages dan tools

72
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Install library development packages dan tools, selesai


sudo apt-get install ant gcc g++ libkrb5-dev libffi-
dev libmysqlclient-dev libssl-dev libsasl2-dev
libsasl2-modules-gssapi-mit libsqlite3-dev libtidy-
0.99-0 libxml2-dev libxslt-dev make libldap2-dev maven
python-dev python-setuptools libgmp3-dev

Gambar 3.61 Install library development packages dan tools, selesai


- Masuk ke hduser
hduser@Master:~$ cp -R /home/nidos/Downloads/hue/
/usr/local/
hduser@Master:~$ chmod 777 -R /usr/local/hue/
hduser@Master:~$ chown hduser:hadoop -R
/usr/local/hue/
hduser@Master:~$

Gambar 3.62 Masuk ke hduser

73
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Masuk ke directory hue


hduser@Master:~$ cd /usr/local/hue/
hduser@Master:/usr/local/hue$ make apps

Hue dan pengembangannya dengan Django. Django adalah web


framework Python yang didesain untuk membuat aplikasi web
yang dinamis, kaya fitur dan aman. Django yang dikembangkan
oleh Django Software Foundation terus mendapatkan perbaikan
sehingga membuat web framework yang satu ini menjadi pilihan
utama bagi banyak pengembang aplikasi web.
- Jika muncul error

Gambar 3.63 Error ketika make apps Hue ke-1


- Coba update beberapa komponen berikut (X):

Gambar 3.64 Update beberapa komponen

74
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Jika muncul error

Gambar 3.65 Error ketika make apps Hue ke-2


- Hapus folder /usr/local/hue
hduser@Master:~$ sudo rm –R /usr/local/hue

- Download lagi file hue yang baru, masukkan ke folder /usr/lo-


cal/hue
Misal anda sudah mendownload-nya di folder
/home/nidos/Download/hue, maka cukup copykan ke folder
/usr/local/hue
hduser@Master:~$ sudo cp –R /home/nidos/Download/hue
/usr/local/hue
hduser@Master:~$ cd /usr/local/hue
hduser@Master:/usr/local/hue$ ls –l

Pastikan Owner dan Nama Group –nya keduanya adalah


root. Lalu ketikkan
hduser@Master:/usr/local/hue$ sudo make apps

Tunggu beberapa waktu

75
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Lakukan “sudo make apps” lagi


hduser@Master:/usr/local/hue$ sudo make apps

Gambar 3.66 Install Hue, selesai. :D


- Jalankan Server Hue
hduser@Master:/usr/local/hue$ sudo build/env/bin/hue
runserver

Gambar 3.67 Jalankan Server Hue

76
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Starting development server pada http://127.0.0.1:8000/

Gambar 3.68 Starting pada http://127.0.0.1:8000


- Set Username dan Password, misal “username=hduser” dan
“password=ab”

Gambar 3.69 Set Username dan Password

77
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Tampilan 1 Hue setelah login

Gambar 3.70 Tampilan Hue ke-1


- Tampilan 2 Hue

Gambar 3.71 Tampilan Hue ke-2

78
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Load HDFS dari Hue, klik

Gambar 3.72 Load HDFS dari Hue


jika Hadoop belum dijalankan, maka akan muncul error
“Cannot access: /. The HDFS REST service is not available. Note:
you are a Hue admin but not a HDFS superuser, "hdfs" or part of
HDFS supergroup, "supergroup".”
- Jalankan Hadoop
hduser@Master:~$ start-all.sh

- Jika masih muncul error “Cannot access: /. Note: ..., "hdfs" or part
of HDFS supergroup, "supergroup".” Ketikkan
hduser@Master:~$ sudo gedit
/usr/local/hue/desktop/conf/pseudo-distributed.ini

Pada baris “fs_defaultfs=hdfs://localhost:8020” ubah


menjadi “fs_defaultfs=hdfs://localhost:50070”, dan
baris “## default_hdfs_superuser=hdfs” ubah jadi
“default_hdfs_superuser=hduser” lalu restart Hue.

Gambar 3.73 Solusi ke-1 Error pada Hue

79
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

hduser@Master:~$ sudo gedit


/usr/local/hue/desktop/conf/pseudo-distributed.ini

Pada baris “fs_defaultfs=hdfs://localhost:8020” ubah


menjadi “fs_defaultfs=hdfs://localhost:50070”, dan
pada baris “## default_hdfs_superuser=hdfs” ubah
menjadi “default_hdfs_superuser=hduser” lalu restart
Hue.

Gambar 3.74 Solusi ke-2 Error pada Hue

- Setting file “hdfs-site.xml” untuk mengaktifkan WebHDFS pada


NameNode dan DataNodes:
hduser@Master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/hdfs-site.xml

Di dalam file hdfs-site.xml, tambahkan kode berikut:


<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>

80
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 3.75 Setting file “hdfs-site.xml”

81
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Setting file “core-site.xml” untuk mengkonfigurasi Hue sebagai


proxy user untuk semua pengguna dan grup lain, yang berarti per-
mintaan apapun dapat diajukan juga atas nama pengguna lain:
hduser@Master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/core-site.xml

Di dalam file core-site.xml, tambahkan kode berikut:


<property>
<name>hadoop.proxyuser.hue.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hue.groups</name>
<value>*</value>
</property>

Gambar 3.76 Setting file “core-site.xml”

82
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Kemudian, jika Namenode ada di host lain selain Hue, jangan lupa
update di file “hue.ini” Part 1 of 7:
hduser@Master:~$ sudo gedit
/usr/local/hue/desktop/conf.dist/hue.ini

[hadoop]
[[hdfs_clusters]]
[[[default]]]
# Enter the filesystem uri
fs_defaultfs=hdfs://localhost:8020
# Use WebHdfs/HttpFs as the communication
mechanism.
# Domain should be the NameNode or HttpFs
host.
webhdfs_url=http://localhost:50070/webhdfs/v1

Gambar 3.77 Edit file “hue.ini” Part 1 of 7

83
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Kemudian, jika Namenode ada di host lain selain Hue, jangan lupa
update di file “hue.ini” Part 2 of 7:
Pada YARN, Resource Manager, secara default sering
diset pada http://localhost:8088
Server ProxyServer dan Job History juga perlu
ditentukan. Kemudian Job Browser akan mengijikan
Anda mendaftar dan terminate aplikasi yang sedang
berjalan dan mendapatkan log mereka.

[hadoop]
[[yarn_clusters]]
[[[default]]]
# Enter the host on which you are running the
ResourceManager
resourcemanager_host=localhost

# Whether to submit jobs to this cluster


submit_to=True

# URL of the ResourceManager API


resourcemanager_api_url=http://localhost:8088

# URL of the ProxyServer API


proxy_api_url=http://localhost:8088

# URL of the HistoryServer API


history_server_api_url=http://localhost:19888

Gambar 3.78 Edit file “hue.ini” Part 2 of 7

84
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Kemudian, jika Namenode ada di host lain selain Hue, jangan lupa
update di file “hue.ini” Part 3 of 7:
Pada Hive, kita butuh HiveServer2 yang sedang
berjalan untuk mengirimkan query SQL.

[beeswax]

# Host where HiveServer2 is running.


hive_server_host=localhost

Catatan:
Jika HiveServer2 berada di komputer lain dan Anda menggunakan
konfigurasi HiveServer2 dengan security dan customized, maka
Anda perlu menyalin hive-site.xml pada mesin Hue juga:

[beeswax]

# Host where HiveServer2 is running.


hive_server_host=localhost

# Hive configuration directory, where hive-


site.xml is located</span>
hive_conf_dir=/etc/hive/conf

Gambar 3.79 Edit file “hue.ini” Part 3 of 7

85
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Kemudian, jika Namenode ada di host lain selain Hue, jangan lupa
update di file “hue.ini” Part 4 of 7:
Pada Impala, perlu menentukan salah satu alamat
Impalad untuk SQL interaktif di aplikasi Impala.

[impala]

# Host of the Impala Server (one of the Impalad)


server_host=localhost

Gambar 3.80 Edit file “hue.ini” Part 4 of 7


- Kemudian, jika Namenode ada di host lain selain Hue, jangan lupa
update di file “hue.ini” Part 5 of 7:
Pada Solr Search, perlu menentukan alamat Solr Cloud
(atau non Cloud Solr), maka kemampuan dasbor
interaktif bisa digunakan!

[search]

# URL of the Solr Server


solr_url=http://localhost:8983/solr/

Gambar 3.81 Edit file “hue.ini” Part 5 of 7

86
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Kemudian, jika Namenode ada di host lain selain Hue, jangan lupa
update di file “hue.ini” Part 6 of 7:
Pada Oozie, Oozie server harus aktif dan berjalan
sebelum submitting atau monitoring workflows.

[liboozie]

# The URL where the Oozie service runs on.


oozie_url=http://localhost:11000/oozie

Gambar 3.82 Edit file “hue.ini” Part 6 of 7


- Kemudian, jika Namenode ada di host lain selain Hue, jangan lupa
update di file “hue.ini” Part 7 of 7:
Pada Hbase, memungkinkan Anda browse, query dan
mengedit tabel.

[hbase]

# Comma-separated list of HBase Thrift server 1


for clusters in the format of '(name|host:port)'.
hbase_clusters=(Cluster|localhost:9090)

Gambar 3.83 Edit file “hue.ini” Part 7 of 7

87
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Cara untuk memblacklist app agar tidak aktif di Hue


Pada file “pseudo-distributed.ini” atau “hue.ini”
hduser@Master:~$ sudo gedit
/usr/local/hue/desktop/conf/pseudo-distributed.ini

Ubah kata “app_blacklist=” menjadi misal seperti


berikut:
app_blacklist=search,security,oozie,jobbrowser,pig,b
eeswax,search,zookeeper,impala,rdbms,spark,metastore
,hbase,sqoop,jobsub

hduser@Master:~$ sudo gedit


/usr/local/hue/desktop/conf.dist/hue.ini

Ubah kata “app_blacklist=” menjadi misal seperti


berikut:
app_blacklist=search,security,oozie,jobbrowser,pig,b
eeswax,search,zookeeper,impala,rdbms,spark,metastore
,hbase,sqoop,jobsub

Atau cukup blacklist (pada aplikasi yang belum di-


install)
app_blacklist=oozie,pig,beeswax,impala,hbase

- Link lainnya Hue


http://127.0.0.1:8000/accounts/login/?next=/about/ad
min_wizard

- Jalankan lagi Hadoop:


hduser@Master:~$ start-all.sh

Gambar 3.84 Jalankan lagi Hadoop

88
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Jalankan lagi Hue:


Berikut link file “pseudo-distributed.ini” dan
“hue.ini”: https://goo.gl/7uZAK5 yang digunakan.

hduser@Master:/usr/local/hue$ build/env/bin/hue
runserver

Gambar 3.85 Jalankan lagi Hue


- Buka Hue di Web Browser di alamat “http://127.0.0.1:8000”, ma-
sukkan misal user = “hduser” dan pwd = “ab”:

Gambar 3.86 Buka Hue di Web Browser

89
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Tampilan HDFS pada Hue Vs HDFS default di Browser (1 of 4):

Gambar 3.87 Buka Hue di Web Browser 1

90
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Tampilan HDFS pada Hue Vs HDFS default di Browser (2 of 4):

Gambar 3.88 Buka Hue di Web Browser 2

91
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Tampilan HDFS pada Hue Vs HDFS default di Browser (3 of 4):

Gambar 3.89 Buka Hue di Web Browser 3

- Tampilan HDFS pada Hue Vs HDFS default di Browser (4 of 4):

Gambar 3.90 Buka Hue di Web Browser 4

92
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

3.3.4 Konfigurasi dengan Spark


Spark adalah salah satu project Apache, free dan open-source
untuk suatu engine umum (general engine) yang cepat dalam
pemrosesan Big Data. Spark disebut juga dengan “Lightning Fast
Cluster Computing”. Spark 100x lebih cepat dari Hadoop MapReduce
pada memory, dan 10x lebih cepat pada disk.

Gambar 3.91 About Spark


Spark dapat dijalankan di Hadoop, Mesos, standalone, atau di
cloud. Dan dapat mengakses beragam sumber data termasuk HDFS,
Cassandra, HBase, dan S3.

Gambar 3.92 Spark dan Tool lainnya


Spark Core adalah mesin komputasi yang bertanggung jawab
terhadap proses penjadwalan (scheduling), distribusi dan peman-
tauan (monitoring) dari suatu aplikasi yang dijalankan, yang terdiri dari
banyak tugas komputasi pada banyak mesin pekerja (multi-node) da-
lam komputasional cluster. Apache Mesos adalah proyek open-
source untuk mengelola cluster komputer yang dikembangkan di
University of California, Berkeley.

93
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Spark adalah engine berkelompok untuk tujuan umum


(general purpose cluster engine) yang mendukung konsep
sistem terdistribusi dengan application programming interface
(APIs) dalam Java, Scala, Python, dan R serta beberapa library
untuk streaming, graph dan juga machine learning (mesin
pembelajaran yang merupakan sekumpulan dari banyak algoritma
didalamnya).
Spark menawarkan suatu fungsional dari pemrograman API
untuk memanipulasi Resilient Distributed Datasets (RDDs).

Gambar 3.93 Spark dan Bahasa Pemrograman


RDDs merepresentasikan suatu logical plan untuk melakukan
komputasi suatu dataset. RDDs mendukung toleransi kesalahan
(fault-tolerant), sehingga sistem dapat me-recover data yang hilang
(lost) atau gagal saat diproses menggunakan lineage graph RDDs
(dengan me-running kembali operasi pada input data untuk me-
rebuild kembali partisi yang hilang). RDDs memiliki 2 tipe operasi:
o Transformation, mengkonstruksi/membangun RDD baru dari
satu atau lebih dari yang sebelumnya. Contoh: Map, Reduce,
Filter.
o Actions, Menghitung hasil dari suatu komputasi berdasarkan
RDD dan memberikan return/kembalian kepada program driver
atau simpan ke penyimpanan eksternal.
- Cek versi Linux anda

Gambar 3.94 Cek versi Linux

94
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Cek Hadoop Version dan Jalankan Hadoop


hduser@Master:~$ hadoop version
hduser@Master:~$ start-all.sh

Gambar 3.95 Cek Hadoop Version dan Run Hadoop

- Masuk ke http://spark.apache.org/downloads.html dan


download

Gambar 3.96 Download Spark

- Hasil Download Spark

Gambar 3.97 Hasil download Spark

95
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Cek Java Version


hduser@Master:~$ java -version
java version "1.7.0_111"
OpenJDK Runtime Environment (IcedTea 2.6.7) (7u111-
2.6.7-0ubuntu0.14.04.3)
OpenJDK 64-Bit Server VM (build 24.111-b01, mixed
mode)

Gambar 3.98 Cek Java Version

- Cek 'pwd' (Print Working Directory)


hduser@Master:~$ pwd
/home/hduser
hduser@Master:~$

- Pada Terminal, coba masuk ke directory dimana Spark telah di-


download dan Ekstrak
hduser@Master:~$ cd /home/nidos/Downloads/
hduser@Master:/home/nidos/Downloads$ ls
spark-2.2.0-bin-hadoop2.7.tgz testing2(1).txt~
testing2.txt~ testing.txt
hduser@Master:/home/nidos/Downloads$ tar -zxvf
spark-2.2.0-bin-hadoop2.7.tgz

Gambar 3.99 Tekan enter, tunggu sampai selesai

96
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Cek hasil ekstrak file *.tgz, ketikkan


hduser@Master:/home/nidos/Downloads$ ls
spark-2.2.0-bin-hadoop2.7 testing2(1).txt~
testing.txt
spark-2.2.0-bin-hadoop2.7.tgz testing2.txt~
hduser@Master:/home/nidos/Downloads$

Gambar 3.100 Tekan enter, tunggu sampai selesai

- Move hasil ekstrak file *.tgz, ketikkan “mv ....”, misal ke hduser
hduser@Master:/home/nidos/Downloads$ mv spark-2.2.0-
bin-hadoop2.7/ ~/
hduser@Master:/home/nidos/Downloads$ cd
hduser@Master:~$ ls
examples.desktop hadoop-2.7.3.tar.gz spark-2.2.0-
bin-hadoop2.7
hduser@Master:~$

Gambar 3.101 Instalasi Spark selesai :D

97
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

a. Konfigurasi Spark with Python (PySpark)


- Set PATH Spark, ketikkan
hduser@Master:~$ ls -a

Gambar 3.102 - Set PATH Spark

- Install java terbaru part 1


hduser@Master:~$ sudo add-apt-repository
ppa:webupd8team/java

Gambar 3.103 Install java terbaru part 1

- Install java terbaru part 2


hduser@Master:~$ sudo apt-get update

Gambar 3.104 Install java terbaru part 2

98
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Install java terbaru part 3


hduser@Master:~$ sudo apt-get install oracle-java8-
installer

Gambar 3.105 Install java terbaru part 2

Lalu tekan Enter

- Install java terbaru part 4

Gambar 3.106 Install java terbaru part 4

- Pilih <Yes>, tekan enter, tunggu beberapa waktu

Gambar 3.107 Install java terbaru part 4 (lanj. 1)

99
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 3.108 Install java terbaru part 4 (lanj. 2)

Gambar 3.109 Install java terbaru Selesai

100
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Cek java version


hduser@Master:~$ java -version

Gambar 3.110 Cek java version sudah terupdate

- Update “sudo gedit ~/.bashrc”


hduser@Master:~$ sudo gedit ~/.bashrc

Ubah: export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-


amd64
Menjadi: export JAVA_HOME=/usr/lib/jvm/java-8-oracle

Dan, ubah: export


HADOOP_CLASSPATH=/usr/lib/jvm/java-7-openjdk-
amd64/lib/tools.jar
Menjadi: export HADOOP_CLASSPATH=/usr/lib/jvm/java-
8-oracle/lib/tools.jar

Gambar 3.111 Update “sudo gedit ~/.bashrc”

- Restart “~/.bashrc”
hduser@Master:~$ source ~/.bashrc

101
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Lalu Restart Hadoop


hduser@Master:~$ stop-dfs.sh
hduser@Master:~$ stop-yarn.sh
hduser@Master:~$ start-dfs.sh
hduser@Master:~$ start-yarn.sh

Gambar 3.112 Restart Hadoop

- install python-pip
hduser@Master:~$ sudo apt-get install python-pip

Gambar 3.113 install python-pip

Pip singkatan dari PIP Installs Python atau PIP Installs


Packages, kepanjangannya tidak perlu diperhatikan karena memang
kalau diartikan terdengar aneh. Bayangkan pip adalah sebuah app
store (atau biasa disebut sebagai package manager), kita bisa

102
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

mencari, menginstall, me-manage modules atau package pada


installasi python kita. Berikut merupakan fungsi-fungsi dasar PIP:
o Install modules
o uninstall modules
o search modules yang tersedia
o mengecek versi modules dan modules apa saja yang
terinstall
Virtualenv, Anggap anda sudah menginstall python versi 2.7 di
komputer anda dan memiliki beberapa modules seperti django dll,
nah kita sebut itu sebagai sebuah environment yang menggunakan
python versi 2.7 sebagai interpreternya dan django sebagai salah
satu modulenya. Lalu anggap anda ingin menggunakan python versi
3.3 dan juga ingin upgrade django ke versi 1.7, maka anda harus me-
setting ulang environment path, install ulang lagi modules-modules
yang dibutuhkan, dan ternyata aplikasi django di versi sebelumnya
tidak jalan di versi 1.7, maka anda harus rollback kembali,
kelihatannya repot bukan?
Virtualenv berguna untuk membuat virtual environment
dengan mudah tanpa mempengaruhi python di sistem operasi anda.
Ingin tes apakah aplikasi anda berjalan di modules versi terbaru?
gampang, tinggal buat virtualenv dengan menggunakan modules
versi terbaru, modules tersebut tidak akan terinstall di python sistem
operasi kita, lalu cek apakah aplikasi kita berjalan, jika tidak maka
tinggal hapus saja virtualenv tersebut. virtualenv juga menyediakan
kita memilih interpreter yang kita inginkan, misal python 2.7 maupun
3.4 dan juga apakah include modules yang sudah terinstall di python
sistem operasi kita atau tidak. Catatan, kita juga harus meng-install
terlebih dahulu versi python di komputer kita sebelum kita ingin
membuat virtualenv dengan versi tersebut.
- Cek python –version
hduser@Master:~$ python --version
Python 2.7.6

Gambar 3.114 Cek python –version

103
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Install Anaconda, tekan enter


Download Anaconda:
hduser@Master:/home/nidos/Downloads$ wget
https://repo.continuum.io/archive/Anaconda2-4.4.0-
Linux-x86_64.sh

Install Anaconda:
hduser@Master:/home/nidos/Downloads$ bash
./Anaconda2-4.4.0-Linux-x86_64.sh

Gambar 3.115 Install Anaconda

- Lalu tekan spasi, ketik yes, tekan enter

Gambar 3.116 Tekan spasi, ketik yes, tekan enter

104
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Setelah tampil seperti berikut, misal set folder instalasinya di “>>>


/home/hduser/anaconda”, lalu tekan enter (tunggu beberapa
saat)

Gambar 3.117 set folder instalasinya

- Ketik yes (untuk set PATH di /home/hduser/.bashrc)

Gambar 3.118 Ketik yes (untuk set PATH di /home/hduser/.bashrc)

105
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Install Anaconda (Done)

Gambar 3.119 Install Anaconda (Done)

- Ketik “hduser@Master:~$ sudo gedit ~/.bashrc”


..
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export JRE_HOME=/usr/lib/jvm/java-8-oracle/jre
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export
HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/nat
ive
export HADOOP_OPTS="-
Djava.library.path=$HADOOP_INSTALL/lib/native"
export HADOOP_CLASSPATH=/usr/lib/jvm/java-8-
oracle/lib/tools.jar

export SPARK_HOME=/home/hduser/spark-2.2.0-bin-
hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin
export PATH=$PATH:$SPARK_HOME/bin/pyspark
export XDG_RUNTIME_DIR=""

# added by Anaconda2 4.4.0 installer


export PATH="/home/hduser/anaconda/bin:$PATH"

106
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 3.120 Set PATH Anaconda

- Restart ~/.bashrc, lalu cek lagi python version


hduser@Master:~$ python --version
Python 2.7.6

Gambar 3.121 Cek python –version

- Restart ~/.bashrc, lalu cek lagi python version


Restart ~/.bashrc
hduser@Master:~$ source ~/.bashrc
Sebelumnya:
hduser@Master:~$ python --version
Python 2.7.6
Setelah diinstall versi terbaru atau update dengan
“hduser@Master:~$ conda update –all --yes”
hduser@Master:~$ python --version
Python 2.7.13 :: Anaconda 4.4.0 (64-bit)

107
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Verifikasi: apakah Spark sudah berjalan?


hduser@Master:~$ spark-shell

Gambar 3.122 Spark sudah aktif

Scala merupakan bahasa pemrograman berbasis java yang


hampir setara dengan Python, yang merupakan bawaan dari Spark.
- Spark di Web
http://10.0.2.15:4040/jobs/

Gambar 3.123 Spark di web

108
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Coba koding scala sederhana pada Spark


scala> val x = sc.parallelize(1 to 100)
scala> x.collect

Gambar 3.124 Koding scala sederhana pada Spark

- Siapkan data input, misal “input.txt, pancasila.txt”, download dari


link https://goo.gl/E7HRV9

Gambar 3.125 Demo: WordCount (ScalaSpark) ke-1

- Scala pada Spark


nidos@Master:~$ su hduser
Password:
hduser@Master:/home/nidos$ cd

val textFile =
sc.textFile(“/home/nidos/Documents/ScalaSpark/data/p
ancasila.txt”)
val counts = textFile.flatMap(line => line.split("
"))map(word => (word, 1))reduceByKey(_ + _)

109
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 3.126 Demo: WordCount (ScalaSpark) ke-2

- Cara counts.collect()
val textFile =
sc.textFile(“/home/nidos/Documents/ScalaSpark/data/p
ancasila.txt”)
val counts = textFile.flatMap(line => line.split("
"))map(word => (word, 1))reduceByKey(_ + _)
scala> counts.collect()

Gambar 3.127 Demo: WordCount (ScalaSpark) ke-3

- Untuk exit, ketik “:quit”

110
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Cara counts.foreach(println)
val textFile =
sc.textFile(“/home/nidos/Documents/ScalaSpark/data/p
ancasila.txt”)
val counts = textFile.flatMap(line => line.split("
"))map(word => (word, 1))reduceByKey(_ + _) scala>
counts.foreach(println)

Gambar 3.128 Demo: WordCount (ScalaSpark) ke-4

- Cara Simpan hasil Count di local filesystem


Untuk clear layar, CTRL+L

Misal kita coba simpan pada hduser


scala> counts.coalesce(1,true).saveAsTextFile("out")

Gambar 3.129 Demo: WordCount (ScalaSpark) ke-5

111
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Baca hasil count dengan “cat”


hduser@Master:~$ python --version
Python 2.7.6

Gambar 3.130 Demo: WordCount (ScalaSpark) ke-6

- Cara Copy hasil Count di local filesystem pada user lain, misal di
folder “/home/nidos/Documents/ScalaSpark/hasil” dengan
nama file “outputpancasila.txt”
hduser@Master:~$ sudo cp ~/out/part-00000
/home/nidos/Documents/ScalaSpark/hasil/outputpancasi
la.txt
[sudo] password for hduser:
hduser@Master:~$ sudo chmod 777 -R
/home/nidos/Documents/
hduser@Master:~$

Gambar 3.131 Demo: WordCount (ScalaSpark) ke-7

- Cara Simpan hasil Count di HDFS Hadoop (Cek jps di hduser)


hduser@Master:~$ jps

Gambar 3.132 cek JPS

Diatas terlihat bahwa hadoop belum dijalankan,


dengan
hduser@Master:~$ start-all.sh

112
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 3.133 Hadoop sudah jalan

- Tampilan hadoop di Web http://localhost:50070/explorer.html#/

Gambar 3.134 Tampilan hadoop di Web

- Klik “Browse the file system”, lalu klik “user”

Gambar 3.135 Browse the file system

113
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Buat folder di hadoop melalui Terminal


hduser@Master:~$ cd /usr/local/hadoop
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -mkdir
/user/hduser/wordcountScalaSpark

Gambar 3.136 Buat folder di hadoop melalui Terminal

- Cek isi dari “/user/hduser”


hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -ls
/user/hduser

Gambar 3.137 Cek isi dari “/user/hduser”

- CopyFromLocal file pancasila.txt to hdfs


hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -mkdir
/user/hduser/wordcountScalaSpark/inputhduser@Master:
/usr/local/hadoop$ bin/hdfs dfs -copyFromLocal
/home/nidos/Documents/ScalaSpark/data/pancasila.txt
/user/hduser/wordcountScalaSpark/input

Gambar 3.138 CopyFromLocal file *.txt to hdfs

114
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Scala pada Spark, load data input dari hdfs


Cek fs.default.name = “hdfs://localhost:9000”, dari
hduser@Master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/core-site.xml

val inputFile =
sc.textFile("hdfs://localhost:9000/user/hduser/wordc
ountScalaSpark/input/pancasila.txt")
val counts = inputFile.flatMap(line => line.split("
"))map(word => (word, 1))reduceByKey(_ + _)

Gambar 3.139 Scala: load data input dari hdfs

- Lihat di web
http://localhost:50070/explorer.html#/user/hduser/wo
rdcountScalaSpark/output

Gambar 3.140 Lihat di web hasil output Spark

115
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Tampilan di web
val textFile =
sc.textFile(“/home/nidos/Documents/ScalaSpark/data/p
ancasila.txt”)
val counts = textFile.flatMap(line => line.split("
"))map(word => (word, 1))reduceByKey(_ + _)

Gambar 3.141 Tampilan di web

- Verifikasi: PySpark sudah Berjalan?


hduser@Master:~$ pyspark

Gambar 3.142 PySpark sudah aktif

116
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Python pada Spark


text_file =
sc.textFile(“/home/nidos/Documents/PySpark/data/Prid
e_and_Prejudice.txt”)
counts = text_file.flatMap(lambda line: line.split(“
“).map(lambda word: (word, 1)).reduceByKey(lambda a,
b: a + b))

Gambar 3.143 Python pada Spark

Ganti “counts.collect” menjadi “counts.collect()”

- counts.collect()
text_file =
sc.textFile(“/home/nidos/Documents/PySpark/data/Prid
e_and_Prejudice.txt”)
counts = text_file.flatMap(lambda line: line.split(“
“).map(lambda word: (word, 1)).reduceByKey(lambda a,
b: a + b))

Gambar 3.144 PySpark counts.collect()

- Untuk exit, tekan Cltr+d

117
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Tampilan di web
text_file =
sc.textFile(“/home/nidos/Documents/PySpark/data/Prid
e_and_Prejudice.txt”)
counts = text_file.flatMap(lambda line: line.split(“
“).map(lambda word: (word, 1)).reduceByKey(lambda a,
b: a + b))

Gambar 3.145 Tampilan di web (Spark)

b. Koding PySpark (Dasar), Functional tool di Python


o Map
o Filter
o Reduce
o Lambda
o Itertools (chain, flatmap)

- Coba koding python sederhana (map)


Python support map operation, pada semua type list, dan kita akan
mencoba mengoperasikan tiap elemen pada list, dengan return list
baru sebagai hasil.
>>> def add1(x): return x+1
>>> map(add1,[1,2,3])
[2, 3, 4]
>>>

118
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 3.146 koding python sederhana (map)

Operasi di atas biasanya dilakukan dengan looping for, namun


map ini yang dilakukan tanpa looping for, yaitu dengan cara kerja
yang berbeda dan sederhana.
- Coba koding python sederhana (filter)
Untuk memilih elemen tertentu dalam suatu list.
>>> def isOdd(x): return x%2==1
>>> filter(isOdd, range(1,10))
[1, 3, 5, 7, 9]
>>>

Gambar 3.147 koding python sederhana (filter)

- Coba koding python sederhana (reduce)


Mengaplikasikan suatu fungsi untuk memasangkan semua ele-
men pada suatu list, dengan return satu nilai tunggal (bukan da-
lam bentuk list).

119
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

>>> range(1,5)
[1, 2, 3, 4]
>>> def add(x,y): return x+y
>>> reduce(add,range(1,5))
10

Gambar 3.148 koding python sederhana (reduce)

- Coba koding python sederhana (lambda)


Ketika melakukan map/filter/reduce, kita berakhir dengan banyak
fungsi-fungsi kecil. Lambda mengijinkan kita untuk mendefinisi-
kan suatu fungsi sebagai suatu nilai, tanpa harus memberikan
nama fungsi.

>>> (lambda x:2*x)(3)


6
>>> map(lambda x:2*x,[1,2,3])
[2, 4, 6]
>>> map(lambda t:t[0],[(1,2),(3,4),(5,6)])
[1, 3, 5]
>>> reduce(lambda x,y:x+y,[1,2,3])
6
>>> reduce(lambda x,y:x+y,map(lambda
t:t[0],[(1,2),(3,4),(5,6)]))
9

o Hanya dapat memiliki ekspresi tunggal


o Tanpa menggunakan return
o Memberikan tanda kurung pada lambda, biasanya tidak dibu-
tuhkan di sintaks

120
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 3.149 koding python sederhana (lambda)

- Coba koding python sederhana (lambda): Latihan


Diberikan
a=[(1,2),(3,4),(5,6)]
 Buat suatu kode dengan suatu ekspresi untuk mendapatkan hanya
element kedua dari tiap tuple dari a
 Buat suatu kode untuk menghitung hasil penjumlahan elemen
kedua
 Buat suatu kode untuk menghitung hasil penjumlahan elemen
pertama yang bernilai ganjil

Jawab:
>>> a=[(1,2),(3,4),(5,6)]
 >>> map(lambda t:t[1],a)
[2, 4, 6]
 >>> reduce(lambda x,y:x+y,map(lambda t:t[1],a))
12
 >>> reduce(lambda x,y:x+y,filter(isOdd,map(lambda t:t[0],a)))
9

121
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 3.150 koding python sederhana (lambda): Latihan

- Coba koding python sederhana (flatmap)


Terkadang kita pada akhirnya harus melibatkan suatu list dari be-
berapa list, dan kita ingin suatu 'flat' list, dan banyak fungsional
dari bahasa pemrograman (termasuk spark) menyediakan fungsi
flatmap, yang membuat flat hasil seperti suatu list, berikut
contohnya.
>>> map(lambda t:range(t[0],t[1]),[(1,5),(7,10)])
[[1, 2, 3, 4], [7, 8, 9]]
>>> [[1,2,3,4],[7,8,9]]
[[1, 2, 3, 4], [7, 8, 9]]
>>> from itertools import chain
>>> chain(map(lambda
t:range(t[0],t[1]),[(1,5),(7,10)]))
<itertools.chain object at 0x7f4df1d6ae50>
>>> list(chain(map(lambda
t:range(t[0],t[1]),[(1,5),(7,10)])))
[[1, 2, 3, 4], [7, 8, 9]]

Itertools.chain adalah suatu maps suatu list secara iteratif ke


dalam suatu flat list. Dan membuat kita bisa untuk mendefinisikan
secara mandiri bentuk flatmap yang kita inginkan.

122
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 3.151 koding python sederhana (flatmap)

- Coba koding python sederhana (run pyspark part 1)


>>> sc.parallelize(range(1,10))
ParallelCollectionRDD[0] at parallelize at
PythonRDD.scala:480
>>> sc.parallelize(range(1,10)).first()
1
>>> list1=sc.parallelize(range(1,1000))
>>> list2=sc.parallelize(range(1,1000)).map(lambda
x:x*10)
>>> list2.first()
10

Gambar 3.152 run pyspark part 1

123
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Coba koding python sederhana (run pyspark part 2)


>>> list2.reduce(lambda x,y:x+y)
4995000
>>> list2.filter(lambda x:x%100==0).collect()
[100, 200, 300, 400, 500, 600, 700, 800, 900, 1000,
1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800,
1900, 2000, 2100, 2200, 2300, 2400, 2500, 2600,
2700, 2800, 2900, 3000, 3100, 3200, 3300, 3400,
3500, 3600, 3700, 3800, 3900, 4000, 4100, 4200,
4300, 4400, 4500, 4600, 4700, 4800, 4900, 5000,
5100, 5200, 5300, 5400, 5500, 5600, 5700, 5800,
5900, 6000, 6100, 6200, 6300, 6400, 6500, 6600,
6700, 6800, 6900, 7000, 7100, 7200, 7300, 7400,
7500, 7600, 7700, 7800, 7900, 8000, 8100, 8200,
8300, 8400, 8500, 8600, 8700, 8800, 8900, 9000,
9100, 9200, 9300, 9400, 9500, 9600, 9700, 9800,
9900]

Gambar 3.153 run pyspark part 2

- Coba koding python sederhana (run pyspark part 3)


>>> rdd1=sc.parallelize(range(1,100))
>>> rdd1.map(lambda x:x*x).sum()
[Stage 4:>
(0 +
328350
>>> rdd1.map(lambda x:x*x).max()
9801
>>> rdd1.map(lambda x:x*x).min()
1
>>> rdd1.map(lambda x:x*x).mean()
3316.6666666666665
>>> rdd1.map(lambda x:x*x).take(5)
[1, 4, 9, 16, 25]

124
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 3.154 run pyspark part 3

- Coba koding python sederhana (run pyspark part 4)


>>> sc.parallelize(range(1,10)).filter(lambda
x:x%3==0).collect()
[3, 6, 9]
>>> rdd1.map(lambda x:x*x).filter(lambda
x:x%3==0).collect()
[9, 36, 81, 144, 225, 324, 441, 576, 729, 900, 1089,
1296, 1521, 1764, 2025, 2304, 2601, 2916, 3249,
3600, 3969, 4356, 4761, 5184, 5625, 6084, 6561,
7056, 7569, 8100, 8649, 9216, 9801]
>>> sc.parallelize(range(1,10)).filter(lambda
x:x%3==0).reduce(lambda x,y:x*y)
162
>>> rdd1.map(lambda x:x*x).filter(lambda
x:x%3==0).reduce(lambda x,y:x*y)
2330097990923178147850146288242387827826210522818092
7073474689905032511235626331367471579136000000000000
00L
>>>

Gambar 3.155 run pyspark part 4

125
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Coba koding python sederhana (run pyspark part 5)


Diketahui data people.txt (link “https://goo.gl/BNtYMS”) dengan
isi, misal sebagai berikut:

Gambar 3.156 run pyspark part 5

- Coba koding python sederhana (run pyspark part 6)


>>> people =
sc.textFile("/home/nidos/Documents/PySpark/data/peop
le.txt").map(lambda x:x.split('\t'))
>>> people.collect()

Menghitung jumlah orang by JK(gender):


>>> people.map(lambda t:t[1]).collect()
[u'M', u'M', u'M', u'F', u'F']
>>> people.map(lambda t:(t[1],1)).reduceByKey(lambda
x,y:x+y).collect()
[(u'M', 3), (u'F', 2)]

Gambar 3.157 run pyspark part 6

126
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Coba koding python sederhana (run pyspark part 7)


Menghitung jumlah orang by Bahasa Pemrograan
Favorit:
>>> people.map(lambda t:t[3]).collect()
[u'Scala', u'Python', u'Scala', u'Python', u'C++']
>>> people.map(lambda t:(t[3],1)).reduceByKey(lambda
x,y:x+y).collect()
[Stage 24:>
(0 + 0)
[(u'Python', 2), (u'C++', 1), (u'Scala', 2)]

Gambar 3.158 run pyspark part 7

- Coba koding python sederhana (run pyspark part 8)


Menampilkan JK dan Usia:
>>> people.map(lambda t:(t[1],int(t[2]))).collect()
[(u'M', 32), (u'M', 63), (u'M', 72), (u'F', 25),
(u'F', 24)]

Gambar 3.159 run pyspark part 8

- Coba koding python sederhana (run pyspark part 9)


Menampilkan Usia paling muda per JK:
>>> people.map(lambda
t:(t[1],int(t[2]))).reduceByKey(lambda
x,y:min(x,y)).collect()
[(u'M', 32), (u'F', 24)]

Gambar 3.160 run pyspark part 9

127
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

c. Running File *.py pada PySpark

- Contoh cara running kode k-means clustering


Masuk ke folder spark:
hduser@Master:~$ cd ~/spark-2.2.0-bin-hadoop2.7/
hduser@Master:~/spark-2.2.0-bin-hadoop2.7$
bin/spark-submit
examples/src/main/python/ml/kmeans_example.py

Hasil

Gambar 3.161 Hasil k-means clustering

sample_kmeans_data.txt
0 1:0.0 2:0.0 3:0.0
1 1:0.1 2:0.1 3:0.1
2 1:0.2 2:0.2 3:0.2
3 1:9.0 2:9.0 3:9.0
4 1:9.1 2:9.1 3:9.1
5 1:9.2 2:9.2 3:9.2

128
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Potongan kode kmeans_example.py

# Loads data.
dataset =
spark.read.format("libsvm").load("data/mllib/sample_
kmeans_data.txt")

# Trains a k-means model.


kmeans = KMeans().setK(2).setSeed(1)
model = kmeans.fit(dataset)

# Evaluate clustering by computing Within Set


Sum of Squared Errors.
wssse = model.computeCost(dataset)
print("Within Set Sum of Squared Errors = " +
str(wssse))

# Shows the result.


centers = model.clusterCenters()
print("Cluster Centers: ")
for center in centers:
print(center)
# $example off$

129
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

3.3.5 Konfigurasi dengan Mahout


Apache Mahout menyediakan 3 fitur utama, yang pertama
yaitu Lingkungan dan kerangka pemrograman yang sederhana dan
dapat diperluas untuk membangun algoritma yang scalable, kedua
berbagai macam algoritma dibuat sebagai template awal untuk Scala
+ Apache Spark, H2O, Apache Flink, dan yang ketiga adanya Samsara,
lingkungan eksperimen matematika vektor.

Gambar 3.162 Apache Mahout

Apache Mahout dapat digunakan untuk:


 Clustering
 Classification
 Recommender Engines (Collaborative Filtering):
Memberikan rekomendasi produk yang mungkin dibeli
pelanggan, dll.

Gambar 3.163 Recommender Engines

130
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

 Recommender Engines (Collaborative Filtering): Melihat


dari sisi User-User, Item-Item, atau diantara keduanya.

Gambar 3.164 User-User, Item-Item, atau diantara keduanya


 Recommender Engines (Collaborative Filtering):
Penghitungan ukuran hub. antar Item dengan
menggunakan Tanimoto Coefficient.

Gambar 3.165 Tanimoto Coefficient


 Recommender Engines (Collaborative Filtering):
Penghitungan ukuran hub. antar Item dengan
menggunakan Cosine Coefficient (Similarity atau
kemiripan).

Gambar 3.166 Cosine Coefficient

131
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Cek Versi Linux, dan pastikan anda sudah install Hadoop


nidos@Master:~$ su hduser
Password:
hduser@Master:/home/nidos$ cd
hduser@Master:~$ start-all.sh
hduser@Master:~$ jps
3343 NameNode
3985 NodeManager
3843 ResourceManager
3469 DataNode
3633 SecondaryNameNode
4276 Jps
hduser@Master:~$

Gambar 3.167 JVM Process Status Tool (jps)

- Cek Hadoop Version


hduser@Master:~$ hadoop version

Gambar 3.168 Cek Hadoop Version

132
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Masuk ke http://mahout.apache.org/general/downloads.html

Gambar 3.169 Buka web Apache Mahout

- Download Mahout, misal “apache-mahout-distribution-


0.13.0.tar.gz ”

Gambar 3.170 Download Mahout

133
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Hasil Download Mahout, misal “apache-mahout-distribution-


0.13.0.tar.gz

Gambar 3.171 Hasil Download Mahout

- Klik kanan file “apache-mahout-distribution-0.13.0.tar.gz. tar.gz”


hasil download, klik Extract Here

Gambar 3.172 Extract Mahout

- Masuk ke terminal, ketikkan seperti berikut


nidos@Master:~$ su hduser
Password:
hduser@Master:/home/nidos$ cd
hduser@Master:~$ sudo chmod 777 -R /usr/local/
[sudo] password for hduser:
hduser@Master:~$

134
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Buat folder “mahout” pada di “/usr/local”, klik kanan, pilih “New


Folder”

Gambar 3.173 Buat folder “mahout”

- Move isi hasil ekstrak file “apache-mahout-distribution-


0.13.0.tar.gz. tar.gz”, ke “/usr/local/mahout”
hduser@Master:~$ sudo mv
/home/nidos/Downloads/apache-mahout-distribution-
0.13.0/* /usr/local/mahout/

Gambar 3.174 Instalasi Mahout Selesai :D

135
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Cek Owner dan Nama Group “/usr/local/mahout”


hduser@Master:~$ ls -l /usr/local/mahout/

Gambar 3.175 Cek Owner dan Nama Group “/usr/local/mahout”

- Coba ubah Owner “/usr/local/mahout” menjadi “hduser” dan


Nama Group menjadi “hadoop”
hduser@Master:~$ sudo chown hduser:hadoop -R
/usr/local/mahout/
hduser@Master:~$ ls -l /usr/local/mahout/

Gambar 3.176 ubah Owner dan Nama Group “/usr/local/mahout”

136
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Update “sudo gedit ~/.bashrc”, klik save, tutup gedit


hduser@Master:~$ sudo gedit ~/.bashrc

Setelah:
export XDG_RUNTIME_DIR=""
Tambahkan:
export MAHOUT_HOME=/usr/local/mahout
export PATH=$PATH:$MAHOUT_HOME/bin
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop

Gambar 3.177 Update “sudo gedit ~/.bashrc”

- Restart “~/.bashrc” lalu Restart Hadoop


hduser@Master:~$ source ~/.bashrc
hduser@Master:~$ stop-dfs.sh
hduser@Master:~$ stop-yarn.sh
hduser@Master:~$ start-dfs.sh
hduser@Master:~$ start-yarn.sh

Gambar 3.178 Restart “~/.bashrc” lalu Restart Hadoop

137
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

3.4 Konfigurasi Hadoop Single Node


Cluster di Windows
- Persiapan File Master Single Node Cluster (pseudo-distributed)
Pada Windows link masternya: https://goo.gl/J5rp9f

Copykan File
“hadoop-2.7.3.tar.gz”
dan
“bin-master.zip” ke
misal, C:/opt

Gambar 3.179 Persiapan Install Hadoop di Windows ke-1


- Download dan Install GNU On WinOS (GOW)
Cek gow –list di CMD
C:\Users\Nidos>gow --list
'gow' is not recognized as an internal or external command,
operable program or batch file.

Link Download GOW:


“github.com/bmatzelle/gow/releases/download/v0.8.0/Gow-0.8.0.exe”

138
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Install GOW:

Tutup cmd, lalu ketikan lagi “gow --list”

- Download dan Install JDK (jika sudah install, abaikan)


Install jdk-8u144-windows-x64.exe (tunggu beberapa
saat, sampai selesai):

139
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Close dan open command line (CMD) dan download Master Ha-
doop untuk Windows dari “https://goo.gl/J5rp9f”
Unzip file “hadoop-2.7.3.tar.gz” di folder “C:\opt”
Jalankan di CMD:
C:\Users\Nidos>cd C:\opt
C:\opt\Spark>gzip -d hadoop-2.7.3.tar.gz

Lalu jalankan
“c:\opt>tar xvf hadoop-2.7.3.tar” di
CMD, tunggu beberapa saat sampai
selesai:

- File Master Hadoop berhasil di ekstraks


Lalu jalankan “c:\opt>tar xvf hadoop-2.7.3.tar” di
CMD, tunggu beberapa saat sampai selesai:

140
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Ekstraks file “bin-master.zip” dengan Winrar atau lainnya

Gambar 3.180 Ekstraks file “bin-master.zip”

- Masuk ke Control Panel > Pilih System and Security > Pilih System
> Pilih Advanced system settings, pada System variables, klik
New..

Gambar 3.181 Masuk ke Control Panel

141
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Ketikkan berikut (JAVA_HOME dan Directory anda install JDK,


misal di “C:\PROGRA~1\Java\jdk1.8.0_144”)

Gambar 3.182 Set JAVA_HOME

- Ekstraks file “bin-master.zip” dengan Winrar atau lainnya


- Buka file “C:\opt\hadoop-2.7.3\etc\hadoop\hadoop-env.cmd”
dengan, misal notepad++, ganti
“set JAVA_HOME=%JAVA_HOME%”
menjadi
“set JAVA_HOME=C:\PROGRA~1\Java\jdk1.8.0_144”

Gambar 3.183 Edit file “hadoop-env.cmd”

Keterangan untuk 64 bit dan 32 bit:


Progra~1 = 'Program Files'
Progra~2 = 'Program Files(x86)‘

atau ditulis menjadi PROGRA~1

142
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Buka file “C:\opt\hadoop-2.7.3\etc\hadoop\core-site.xml”


dengan, misal notepad++, ganti
<configuration></configuration>

menjadi
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

Gambar 3.184 Edit file “core-site.xml”

- Buka file “C:\opt\hadoop-2.7.3\etc\hadoop\hdfs-site.xml”


dengan, misal notepad++, ganti
<configuration></configuration>

menjadi
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/C:/opt/hadoop-2.7.3/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/C:/opt/hadoop-2.7.3/hdfs/datanode</value>
</property>
</configuration>

143
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 3.185 Hasil edit file “hdfs-site.xml”

- Pada directory “C:\opt\hadoop-2.7.3” buat folder hdfs dan dida-


lam buat folder namenode dan datanode

Gambar 3.186 Buat folder namenode dan datanode

144
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Rename file “mapred-site.xml.template”  “mapred-site.xml”


- Buka file “C:\opt\hadoop-2.7.3\etc\hadoop\mapred-site.xml”
dengan, misal notepad++, ganti
<configuration></configuration>

menjadi
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

Gambar 3.187 Hasil edit file “mapred-site.xml.template”

- Buka file “C:\opt\hadoop-2.7.3\etc\hadoop\yarn-site.xml”


dengan, misal notepad++, ganti
<configuration></configuration>

menjadi
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-
services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>localhost:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>localhost:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>localhost:8050</value>
</property>
</configuration>

145
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Replace semua file di “C:\opt\hadoop-2.7.3\bin” dengan semua


file dari “C:\opt\bin-master”
o Pertama, delete semua file di “C:\opt\hadoop-2.7.3\bin”

o Kedua, Copy semua file dari “C:\opt\bin-master” ke


“C:\opt\hadoop-2.7.3\bin”

146
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Masuk ke Control Panel > Pilih System and Security > Pilih System
> Pilih Advanced system settings, pada System variables, klik
New..

Gambar 3.188 Pilih Advanced system settings

- Ketikkan berikut (HADOOP_HOME dan folder home dari hadoop


anda, misal di “C:\opt\hadoop-2.7.3” pada value)

Gambar 3.189 Ketik HADOOP_HOME

147
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Pada System variables, pada Variable “Path” klik Edit..

Gambar 3.190 Pada Variable “Path” klik Edit..

- Pada Variable “Path”, tambahkan berikut (folder bin dan sbin dari
hadoop anda, misal di “;C:\opt\hadoop-2.7.3\bin;C:\opt\hadoop-
2.7.3\sbin”)

Gambar 3.191 Tambahkan bin hadoop pada Path

- Konfigurasi Selesai. :D

148
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Buka CMD, ketikkan berikut (untuk cek hadoop version)


C:\Users\Nidos>hadoop version

Gambar 3.192 Cek hadoop version di CMD

- Buka CMD, ketikkan berikut (untuk format namenode)


C:\Users\Nidos>hadoop namenode –format

Atau bisa menggunakan (biar tidak deprecated)


C:\Users\Nidos>hdfs namenode –format

Jika Muncul error:


C:\Users\Nidos>hadoop namenode -format

'hadoop' is not recognized as an internal or external


command,operable program or batch file.  Solusi: cek
konfigurasi ada yang tidak sesuai

- Tampilan hasil format namenode

Gambar 3.193 Hasil format namenode

149
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Untuk menjalankan hadoop, ketikkan


C:\Users\Nidos>start-all.cmd

Gambar 3.194 Hasil start-all.cmd

Jika muncul berikut:

Klik “Allow access”

150
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Cek pada browser “http://localhost:50070” Part 1 of 2

Gambar 3.195 Hasil localhost:50070 ke-1

- Cek pada browser “http://localhost:50070” Part 2 of 2

Gambar 3.196 Hasil Hasil localhost:50070 ke-2

- Cek pada browser “http://localhost:8088”

Gambar 3.197 Hasil “http://localhost:8088”

151
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

3.4.1 Konfigurasi dengan Syncfusion


Install Syncfusion Community License Big Data Platform pada
Windows OS:
- Sebelum Install “Syncfusion Big Data Platform”, lakukan setting
file “hdfs-site.xml”. Buka file “C:\opt\hadoop-2.7.3\etc\ha-
doop\hdfs-site.xml” dengan, misal notepad++, ganti menjadi sep-
erti berikut
<configuration>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/C:/opt/hadoop-2.7.3/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/C:/opt/hadoop-2.7.3/hdfs/datanode</value>
</property>
</configuration>

- Masuk pada link “https://www.syncfusion.com/downloads/com-


munitylicense”

Gambar 3.198 Download syncfusion

152
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Klik “Proceed to the …”

Gambar 3.199 Hasil klik “Proceed to the …”

- Download Big Data Platform, klik “Download link ..”

Gambar 3.200 Klik “Download link ..”

- Install “syncfusionbigdataplatform.exe”

Gambar 3.201 Install “syncfusionbigdataplatform.exe”

153
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Centang “i agree ..”, misal lokasi instalnya di “C:\Syncfusion\Big-


Data\3.2.0.20\BigDataSDK\”, klik Install

Gambar 3.202 Hasil klik Install

- Tunggu beberapa waktu, klik Finish

Gambar 3.203 Hasil klik Finish

154
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Klik Launch Studio

Gambar 3.204 Hasil klik Launch Studio

- Jika muncul seperti berikut, Klik OK

Gambar 3.205 Klik OK

- Pada Services, cek apakah “Syncfusion Big Data Agent dan Re-
mote Agent” sudah Running, jika belum, klik kanan, klik Start.

Gambar 3.206 Syncfusion Big Data Agent dan Remote Agent

155
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- View HDFS Explorer dengan Big Data Platform (1 of 4)

Gambar 3.207 Big Data Platform (1 of 4)

- View HDFS Explorer dengan Big Data Platform (2 of 4)

Gambar 3.208 Big Data Platform (2 of 4)

156
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- View HDFS Explorer dengan Big Data Platform (3 of 4)

Gambar 3.209 Big Data Platform (3 of 4)

- View HDFS Explorer dengan Big Data Platform (4 of 4)

Gambar 3.210 Big Data Platform (4 of 4)

157
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Install “syncfusionbigdatacluster.exe”, klik Install dst.

Gambar 3.211 Hasil Install “syncfusionbigdatacluster.exe”

158
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

3.4.2 Konfigurasi dengan Eclipse IDE


- Download Eclipse, double klik, pilih Eclipse IDE for Java EE Dev.

Gambar 3.212 Download Eclipse

- Klik Install

Gambar 3.213 Klik Install

159
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Tunggu beberapa Waktu

Gambar 3.214 Tunggu beberapa Waktu


- Klik Launch, untuk jalankan Eclipse

Gambar 3.215 Klik Launch, untuk jalankan Eclipse

160
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Klik Launch

Gambar 3.216 Klik Launch


- Tunggu beberapa waktu

Gambar 3.217 Tunggu beberapa waktu

161
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Eclipse siap digunakan

Gambar 3.218 Eclipse siap digunakan


- Buat Folder HDFS di CMD (harus satu demi satu)
c:\opt>mkdir a
c:\opt>rm -R a
c:\opt>cd ./hadoop-2.7.3
c:\opt\hadoop-2.7.3>bin\hdfs dfs -mkdir /user

- Tampilan hasil “bin\hdfs dfs -mkdir /user”

Gambar 3.219 Hasil “bin\hdfs dfs -mkdir /user”

162
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Buat Folder HDFS di CMD (harus satu demi satu)


c:\opt\hadoop-2.7.3>bin\hdfs dfs -mkdir /user/hduser

- Tampilan hasil “bin\hdfs dfs -mkdir /user/hduser”

Gambar 3.220 Hasil “bin\hdfs dfs -mkdir /user/hduser”

- Buat Folder HDFS di CMD (harus satu demi satu)


c:\opt\hadoop-2.7.3>bin\hdfs dfs -mkdir /user/hduser/nb
c:\opt\hadoop-2.7.3>bin\hdfs dfs -mkdir
/user/hduser/nb/input

Coba melihat isi folder pada HDFS


c:\opt\hadoop-2.7.3>bin\hdfs dfs -ls /user/hduser

163
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Copyfile local ke Folder HDFS di CMD (Part 1 of 3)


Misal, file pada “C:\data\1.txt”, misal berikut isinya:

- Copyfile local ke Folder HDFS di CMD (Part 2 of 3)


c:\opt\hadoop-2.7.3>bin\hdfs dfs -copyFromLocal
c:\data\1.txt /user/hduser/nb/input

164
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Copyfile local ke Folder HDFS di CMD (Part 3 of 3)

Gambar 3.221 Hasil di HDFS (browser)

- Coba Run koding NB Hadoop, link kode: https://goo.gl/6iA2eA


(Pada “Referenced Libraries” list file jar “https://goo.gl/zZm21m”,
cara add-nya, sama seperti Eclipse di Linux)

Gambar 3.222 Setting koding NB Hadoop

165
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Koding NB Hadoop berhasil dijalankan

Gambar 3.223 Hasil run koding NB Hadoop

- Cek hasil folder HDFS output dari NB Hadoop:


c:\opt\hadoop-2.7.3>bin\hdfs dfs -ls /user/hduser/nb/output

166
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Menampilkan hasil folder HDFS output dari NB Hadoop:


c:\opt\hadoop-2.7.3>bin\hdfs dfs -cat
/user/hduser/nb/output/part*

- Menghentikan Hadoop:
c:\opt\hadoop-2.7.3>stop-all.cmd
This script is Deprecated. Instead use stop-dfs.cmd and
stop-yarn.cmd
INFO: No tasks running with the specified criteria.
SUCCESS: Sent termination signal to the process with PID
3236. stopping yarn daemons
SUCCESS: Sent termination signal to the process with PID
1556.
SUCCESS: Sent termination signal to the process with PID
3852.
INFO: No tasks running with the specified criteria.
c:\opt\hadoop-2.7.3>jps
7560 Jps
c:\opt\hadoop-2.7.3>

167
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

3.4.3 Konfigurasi dengan Spark


- Download dan Install GNU On WinOS (GOW), jika sudah, lalu
- Download dan Install JDK, jika sudah, lalu
- Download dan Install Anaconda
Cek apakah python sudah aktif di Win OS atau belum
aktif.

Tambahkan link hasil instalasi python dan conda di


folder mana anda install, ke environment variables,
dengan membuka cmd, lalu ketikkan SETX PATH
“%PATH%;C:\Users\Nidos\Anaconda2\Scripts;
C:\Users\Nidos\Anaconda2”

- Masuk ke anaconda prompt, python telah aktif terlihat seperti


berikut

C:\Users\Nidos\Anaconda2>where python
C:\Users\Nidos\Anaconda2\python.exe

C:\Users\Nidos\Anaconda2>where conda
C:\Users\Nidos\Anaconda2\Scripts\conda.exe

168
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Close dan open command line (CMD) dan download Apache Spark
dari “http://spark.apache.org/downloads.html”.
Buat dir “C:\opt\Spark”
C:\Users\Nidos>mkdir C:\opt\Spark

Cek di explorer, masukkan file


“spark-2.2.0-bin-hadoop2.7.tgz”
hasil download ke dalam folder
“C:\opt\Spark”:
Download spark:

Unzip file “spark-2.2.0-bin-hadoop2.7.tgz” di folder


“C:\opt\Spark”
Jalankan di CMD:
C:\Users\Nidos>cd C:\opt\Spark
C:\opt\Spark>gzip -d spark-2.2.0-bin-hadoop2.7.tgz

Lalu jalankan
“C:\opt\Spark>tar xvf spark-2.2.0-
bin-hadoop2.7.tar” di CMD, tunggu
beberapa saat sampai selesai:

169
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Download file “winutils.exe” dari


“https://goo.gl/dCCpV4” atau dari
“https://github.com/steveloughran/winutils/blob/maste
r/hadoop-2.6.0/bin/winutils.exe?raw=true”, lalu masuk
ke dalam folder “C:\opt\Spark\spark-2.2.0-bin-
hadoop2.7\bin”. Caranya, jalankan di CMD:

Lalu jalankan
“C:\opt\Spark\spark-2.2.0-bin-hadoop2.7\bin>curl -k -L -o
winutils.exe
https://github.com/steveloughran/winutils/blob/master/hadoop-
2.6.0/bin/winutils.exe?raw=true” di CMD, tunggu beberapa saat sampai
selesai.

- Set environmental variables, dengan perintah berikut pada CMD:


setx SPARK_HOME C:\opt\Spark\spark-2.2.0-bin-hadoop2.7
setx PYSPARK_DRIVER_PYTHON ipython
setx PYSPARK_DRIVER_PYTHON_OPTS notebook

- Kemudian untuk “;C:\opt\Spark\spark-2.2.0-bin-hadoop2.7\bin”,


ditambahkan dengan: buka Control Panel > Pilih System and Se-
curity > Pilih System > Pilih Advanced system settings

Gambar 3.224 Set bin Spark

170
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Verifikasi: pySpark sudah Berjalan?


C:\Users\Nidos>cd..
C:\Users>cd..
C:\>cd opt
C:\opt>cd Spark
C:\opt\Spark>cd spark-2.2.0-bin-hadoop2.7
C:\opt\Spark\spark-2.2.0-bin-hadoop2.7>cd bin
C:\opt\Spark\spark-2.2.0-bin-hadoop2.7\bin>
C:\opt\Spark\spark-2.2.0-bin-hadoop2.7\bin>pyspark

- Verifikasi: Spark Scala sudah Berjalan?


C:\Users\Nidos>spark-shell

3.5 Tugas Kelompok


1. Jelaskan perbedaan dari Distributed dan Parallel Systems,
serta Distributed dan Parallel Processing!
2. Jelaskan maksud dari Hadoop disebut sebagai software
framework dan software platform! Berikan contohnya, dan
jelaskan apa perbedaan antara framework dan platform!
3. Jelaskan maksud dari HDFS (Hadoop Distributed File System)
sebagai “direktori di komputer” dan sebagai “file system”!
4. Jelaskan cara kerja MapReduce (MR)!
5. Jelaskan perbedaan antara MR dan YARN!
6. Lakukan Studi Kasus WordCount dengan dokumen yang
berbeda (minimal 25 kata) pada Hadoop Single Node Cluster!
dan berilah penjelasan untuk setiap langkah-langkahnya
disertai screenshot!
7. Modifikasi dari contoh koding untuk Hadoop Single Node
Cluster terkait Clustering atau Regresi atau Klasifikasi, lalu
jalankan seperti “Studi Kasus WordCount”, dan berilah

171
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

penjelasan untuk setiap langkah-langkahnya disertai


screenshot!
8. Lakukan instalasi Hadoop di Windows, disertai screenshot
setiap langkahnya!
9. Lakukan running kode NB Hadoop dengan Eclipse di
Windows, disertai screenshot setiap langkahnya!

172
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

BAB 4 Teknologi dan Tools


Big Data (Bagian 2)

4.1 Konsep Single (Standalone) Vs


Multi-Node Cluster
Sebuah cluster HDFS terdiri dari namenode untuk mengelola
metadata dari kluster, dan datanode untuk menyimpan data/file.
File dan direktori diwakili pada namenode menyimpan atribut seperti
permission, modifikasi dan waktu akses, atau kuota namespace dan
diskspace.
Namenode aktif memonitor jumlah salinan/replika blok file.
Ketika ada salinan blok file yang hilang karena kerusakan pada
datanode, namenode akan mereplikasi kembali blok file tersebut ke
datanode lainnya yang berjalan baik.

Gambar 4.1 Running Java Process


ResourceManager di node master, yang berfungsi mengatur semua
resource yang digunakan aplikasi dalam sistem.
NodeManager di Agen-Framework setiap node slave, yang
bertanggung jawab terhadap Container, dengan memantau
penggunaan resource/sumber daya dari container(cpu, memori, disk,
jaringan) dan melaporkannya pada ResourceManager .

173
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

4.2 Hadoop Multi Node Cluster


(Pseudo-Distributed)
1. Setting PC Master + (PC Node1, Node2, Node3):

Gambar 4.2 Setting PC Master + (PC Node1, Node2, Node3):


Lakukan hal berikut (Jika mau dicoba setting dari awal):

174
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

nidos@master:~$ sudo apt-get update


nidos@master:~$ sudo apt-get install default-jdk
(cek dengan java -version)
nidos@master:~$ sudo apt-get install ssh
nidos@master:~$ ssh-keygen -t rsa -P ""
nidos@master:~$ Ketikkan “cat
$HOME/.ssh/id_rsa.pub >>
$HOME/.ssh/authorized_keys”
nidos@master:~$ wget
http://mirror.wanxp.id/apache/hadoop/common/hado
op-2.7.3/hadoop-2.7.3.tar.gz
nidos@master:~$ sudo tar xvzf hadoop-
2.7.3.tar.gz
nidos@master:~$ sudo mv hadoop-2.7.3
/usr/local/hadoop
nidos@master:~$ sudo nano ~/.bashrc
nidos@master:~$ source ~/.bashrc

Source Code 4.1 Setting PC Master + (PC Node1, Node2, Node3):

175
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

nidos@master:~$ sudo nano


/usr/local/hadoop/etc/hadoop/hadoop-env.sh

Ubah “export JAVA_HOME=....” menjadi:


export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-
amd64

nidos@master:~$ sudo mkdir -p


/usr/local/hadoop_tmp/hdfs/namenode
nidos@master:~$ sudo mkdir -p
/usr/local/hadoop_tmp/hdfs/datanode

nidos@master:~$ sudo chown -R nidos:nidos


/usr/local/hadoop_tmp

pada line terakhir, tambahkan berikut:



export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-
amd64
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export
HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/l
ib/native
export HADOOP_OPTS="-
Djava.library.path=$HADOOP_INSTALL/lib/native“
export HADOOP_CLASSPATH=/usr/lib/jvm/java-7-
openjdk-amd64/lib/tools.jar

"

Source Code 4.2 Setting PC Master + (PC Node1, Node2, Node3):


Jika memang PC master sudah disetting, atau sudah di-clone
dari PC master dari project Single Node Cluster pertemuan
sebelumnya, maka abaikan langkah-langkah di atas.

176
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Lakukan hal berikut:


- nidos@master:~$ sudo gedit /etc/hostname

Gambar 4.3 nidos@master:~$ sudo gedit /etc/hostname


- nidos@master:~$ sudo gedit /etc/hosts

Gambar 4.4 nidos@master:~$ sudo gedit /etc/hosts

177
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Klik , lalu klik “Connections Information”, pilih Ethernet,


lalu tekan tombol edit

Gambar 4.5 Tampilan Menu

Ubah Method: Automatic (DHCP)

Gambar 4.6 Tampilan Menu Edit

Lalu klik “Connections Information”, lagi


- Anda sudah mendapatkan “default route dan Primary DNS”

178
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 4.7 Tampilan Connection Information


- Set IP PC Master, lakukan hal berikut:
Klik , lalu klik “Edit Connections...”, lalu tekan tombol edit

Gambar 4.8 Tampilan Menu


- Lakukan hal berikut

Gambar 4.9 Tampilan Edit Pada Gateway dan DNS Server

179
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- nidos@master:~$ sudo gedit /etc/hosts

Gambar 4.10 Hasil nidos@master:~$ sudo gedit /etc/hosts

Ubah method menjadi: Manual

Gambar 4.11 Tampilan Edit Method Menjadi Manual

180
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Lakukan hal berikut:


nidos@master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/masters
master
nidos@master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/slaves
node1
node2
node3
nidos@master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/hdfs-site.xml
..
<configuration>

<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/ha-
doop_tmp/hdfs/namenode</value>
</property>
</configuration>

Source Code 4.3 Setting PC Master


- Lakukan hal berikut:
nidos@master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/masters

Gambar 4.12 Hasil nidos@master:~$ sudo gedit


/usr/local/hadoop/etc/hadoop/masters

181
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Lakukan hal berikut:


nidos@master:~$ sudo gedit /usr/local/hadoop/etc/hadoop/slaves

Gambar 4.13 Hasil nidos@master:~$ sudo gedit


/usr/local/hadoop/etc/hadoop/slaves

- Lakukan hal berikut:

nidos@master:~$ sudo gedit


/usr/local/hadoop/etc/hadoop/core-site.xml
..
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>

Source Code 4.4 Setting PC Master


- Lakukan hal berikut:

182
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

nidos@master:~$ sudo gedit


/usr/local/hadoop/etc/hadoop/mapred-site.xml
..
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
</property>
</configuration>

Source Code 4.5 Setting PC Master


- Lakukan hal berikut:
nidos@master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/yarn-site.xml
..
<configuration>
<property>
<name>yarn.nodemanager.aux-ser-
vices</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-ser-
vices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.Shuffle-
Handler</value>
</property>
<property>
<name>yarn.resourcemanager.resource-
tracker.address</name>
<value>master:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.ad-
dress</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.ad-
dress</name>
<value>master:8050</value>
</property>
</configuration>

Source Code 4.6 Setting PC Master

183
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

1. Clone PC Master to (PC Node1, Node2, Node3):


- Lakukan hal berikut: (shutdown PC Master, lalu klik kanan, klik
Clone, beri nama node1, klik Next, Pilih Linked, Klik Clone):

Gambar 4.14 Clone PC Master


- Lakukan juga untuk node2 dan node3
2. Setting PC Master
nidos@master:~$ sudo rm -rf
/usr/local/hadoop_tmp/
nidos@master:~$ sudo mkdir -p
/usr/local/hadoop_tmp/hdfs/namenode
nidos@master:~$ sudo chown -R nidos:nidos
/usr/local/hadoop
nidos@master:~$ sudo chown -R nidos:nidos
/usr/local/hadoop_tmp
nidos@master:~$

Gambar 4.15 Setting PC Master


3. Setting PC Node1, Node2 dan Node3:
nidos@node1:~$ sudo rm -rf
/usr/local/hadoop_tmp/
nidos@node1:~$ sudo mkdir -p
/usr/local/hadoop_tmp/hdfs/datanode
nidos@node1:~$ sudo chown -R nidos:nidos
/usr/local/hadoop_tmp/
nidos@node1:~$

Gambar 4.16 Setting PC Node1, Node2 dan Node3:


4. Setting PC Master + (PC Node1, Node2, Node3):

- Lihat IP PC Master:

184
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 4.17 Tampilan Lihat IP Master


- Setting IP PC Node1, lakukan hal berikut:

Gambar 4.18 Setting IP PC Node 1


- Setting IP PC Node2, lakukan hal berikut:

Gambar 4.19 Setting IP PC Node 2

185
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Setting IP PC Node3, lakukan hal berikut:

Gambar 4.20 Setting IP PC Node 3


- Restart Network disemua PC, lakukan hal berikut:
nidos@master:~$ sudo /etc/init.d/networking
restart
[sudo] password for nidos:
nidos@master:~$ sudo reboot
nidos@node1:~$ sudo /etc/init.d/networking
restart
[sudo] password for nidos:
nidos@master:~$ sudo reboot
nidos@node2:~$ sudo /etc/init.d/networking
restart
[sudo] password for nidos:
nidos@node2:~$
nidos@node3:~$ sudo /etc/init.d/networking
restart
[sudo] password for nidos:
nidos@master:~$ sudo reboot

Source Code 4.7 Restart Network Disemua PC


- Lakukan hal berikut:

186
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

nidos@node1:~$ sudo gedit


/usr/local/hadoop/etc/hadoop/hdfs-site.xml
.
.
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop_tmp/hdfs
/datanode</value>
</property>
</configuration>

Source Code 4.8 Setting PC Master (Node1, Node2, Node 3)


Lakukan juga untuk node2 dan node3

- Lakukan hal berikut: nidos@node1:~$ sudo gedit


/usr/local/hadoop/etc/hadoop/masters

Gambar 4.21 Tampilan nidos@node1:~$ sudo gedit


/usr/local/hadoop/etc/hadoop/masters
Lakukan juga untuk node2 dan node3
- Lakukan hal berikut: nidos@node1:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/slaves

187
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 4.22 Tampilan nidos@node1:~$ sudo gedit


/usr/local/hadoop/etc/hadoop/slaves
Lakukan juga untuk node2 dan node3
- Lakukan hal berikut:
nidos@node1:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/core-site.xml
..
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>

Source Code 4.9 Setting PC Master


Lakukan juga untuk node2 dan node3
nidos@node1:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/mapred-site.xml
..
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
</property>
</configuration>

Source Code 4.10 Setting PC Master

188
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Lakukan juga untuk node2 dan node3


- Lakukan hal berikut:
nidos@node1:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/yarn-site.xml
.
.
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-
services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHan
dler</value>
</property>
<property>
<name>yarn.resourcemanager.resource-
tracker.address</name>
<value>master:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.addre
ss</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8050</value>
</property>
</configuration>

Source Code 4.11 Setting PC Master


Lakukan juga untuk node2 dan node3

- Call ssh, lakukan hal berikut:

189
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

nidos@master:~$ ssh
Lalu tekan tombol Tab

::1 ip6-allrouters master


fe00::0 ip6-localhost node1
ff00::0 ip6-localnet node2
ff02::1 ip6-loopback node3
ff02::2 ip6-mcastprefix ubuntu
ip6-allnodes localhost

nidos@master:~$ ssh node1


ssh: connect to host node1 port 22: No route
to host
nidos@master:~$

Source Code 4.12 Call SSH


Jika hasil ssh seperti diatas maka solusinya adalah cek status ssh
sebagai berikut:
Solusi (cek status sshOK):
nidos@master:~$ sudo service ssh status
[sudo] password for nidos:
ssh start/running, process 790

Source Code 4.13 Cek Status SSH Ok


Solusi (cek status sshError):
nidos@node1:~$ sudo service ssh
status
[sudo] password for nidos:

Source Code 4.14 Cek Status SSH Error

Jika muncul: ssh: unrecognized service, maka solusinya re-in-


stall ssh dan cek status

190
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Solusi (re-install ssh, dan cek


statusOK):
nidos@node1:~$ sudo apt-get remove
openssh-client openssh-server
nidos@node1:~$ sudo apt-get install
openssh-client openssh-server
nidos@node1:~$ sudo service ssh status
ssh start/running, process 3100

Source Code 4.15 Re-install SSH dan Cek Status OK


Lakukan juga untuk node2 dan node3

- Call ssh untuk node 2, lakukan hal berikut:


nidos@master:~$ ssh
Lalu tekan tombol Tab

::1 ip6-allrouters master


fe00::0 ip6-localhost node1
ff00::0 ip6-localnet node2
ff02::1 ip6-loopback node3
ff02::2 ip6-mcastprefix ubuntu
ip6-allnodes localhost

nidos@master:~$ ssh node2


ssh: connect to host node2 port 22: No route
to host
nidos@master:~$

Source Code 4.16 Call SSH untuk Node 2

Jika hasil ssh seperti diatas maka solusinya adalah cek status
ssh sebagai berikut:
Solusi (cek status sshOK):

191
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

nidos@master:~$ sudo service ssh status


[sudo] password for nidos:
ssh start/running, process 790

Source Code 4.17 Cek Status SSH Ok


Solusi (cek status sshError):
nidos@node1:~$ sudo service ssh
status
[sudo] password for nidos:

Source Code 4.18 Cek Status SSH Error


Jika muncul: ssh: unrecognized service, maka solusinya re-in-
stall ssh dan cek status
Solusi (re-install ssh, dan cek statusOK):

nidos@node2:~$ sudo apt-get remove openssh-


client openssh-server

nidos@node2:~$ sudo apt-get install openssh-


client openssh-server

nidos@node2:~$ sudo service ssh status

ssh start/running, process 3084

Source Code 4.19 Re-Install SSH dan Cek Status


Lakukan juga untuk node3
- Call ssh untuk node 3, lakukan hal berikut:
nidos@master:~$ ssh
Lalu tekan tombol Tab

::1 ip6-allrouters master


fe00::0 ip6-localhost node1
ff00::0 ip6-localnet node2
ff02::1 ip6-loopback node3
ff02::2 ip6-mcastprefix ubuntu
ip6-allnodes localhost

Source Code 4.20 Call SSH untuk Node 3

192
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

nidos@master:~$ ssh node3


ssh: connect to host node2 port 22: No route
to host
nidos@master:~$

Source Code 4.21 Call SSH untuk Node 3 Cont.

Jika hasil ssh seperti diatas maka solusinya adalah cek status ssh
sebagai berikut:
Solusi (cek status sshOK):
nidos@master:~$ sudo service ssh status
[sudo] password for nidos:
ssh start/running, process 790

Source Code 4.22 Cek Status SSH Ok


Solusi (cek status sshError):
nidos@node1:~$ sudo service ssh
status
[sudo] password for nidos:

Source Code 4.23 Cek Status SSH Error


Jika muncul: ssh: unrecognized service, maka solusinya re-in-
stall ssh dan cek status
Solusi (re-install ssh, dan cek statusOK):

nidos@node3:~$ sudo apt-get remove openssh-


client openssh-server

nidos@node3:~$ sudo apt-get install openssh-


client openssh-server

nidos@node3:~$ sudo service ssh status

ssh start/running, process 3087

Source Code 4.24 Re-Install SSH dan Cek Status

193
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Solusi untuk error “ssh: connect to host


master/node1/node2/node3 port 22: No route to host”,
lakukan hal berikut:
nidos@master:~$ sudo iptables -P INPUT ACCEPT
(to accept all incoming traffic)
nidos@master:~$ sudo iptables -F
(Clear/flush/remove rule of my iptables)

Source Code 4.25 Solusi untuk error “ssh: connect to host


master/node1/node2/node3 port 22: No route to host”
shutdown all PC, ubah setting network pada virtual box (Pilih
misal klik PC master, lalu klik Network)

Gambar 4.23 Tampilan Ubah Setting Network pada Virtual Box

Kemudian pada Adapter 1, pilih “Internal Network”, lalu klik OK)

Gambar 4.24 Tampilan pada Adapter 1

194
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Lakukan juga untuk node1, node2 dan node3

- Coba call lagi ssh-nya node1 dari master, lakukan hal berikut:

nidos@master:~$ ssh node1 / nidos@master:~$ ssh


192.168.2.117

The authenticity of host 'node1


(192.168.2.117)' can't be established.
ECDSA key fingerprint is
87:d8:ac:1e:41:19:a9:1d:80:ab:b6:2c:75:f9:27:8
5.
Are you sure you want to continue connecting
(yes/no)? yes
Warning: Permanently added 'node1' (ECDSA) to
the list of known hosts.
nidos@node1's password:
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux
3.13.0-32-generic x86_64)
* Documentation: https://help.ubuntu.com/
New release '16.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
Last login: Sat Dec 3 13:16:28 2016 from mas-
ter
nidos@node1:~$ exit
logout
Connection to node1 closed.
Source Code 4.26 Call SSH Node 1 dari Master
nidos@master:~$
Lakukan juga untuk mencoba call ssh-nya node2 dari master
dan call ssh-nya node3 dari master

Gambar 4.25 Tampilan Call SSH

195
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Coba call ssh-nya master dari node1, lakukan hal berikut:

nidos@node1:~$ ssh master/ nidos@node1:~$ ssh


192.168.2.116

nidos@master's password:
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux
3.13.0-32-generic x86_64)
* Documentation: https://help.ubuntu.com/
631 packages can be updated.
331 updates are security updates.
Last login: Sat Dec 3 13:27:54 2016 from
node1
Source Code 4.27 Call SSH-nya Master dari Node 1
nidos@master:~$
Lakukan juga untuk mencoba call ssh-nya node2 dari master
dan call ssh-nya node3 dari master

Gambar 4.26 Tampilan Call SSH

5. Format namenode dari PC Master:


nidos@master:~$ hdfs namenode –format

196
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 4.27 Format Namenode dari PC Master


- Copy ssh-id dari PC Master ke semua PC Node:

nidos@master:~$ ssh-copy-id -i
~/.ssh/id_rsa.pub nidos@node1
nidos@master:~$ ssh-copy-id -i
~/.ssh/id_rsa.pub nidos@node2
nidos@master:~$ ssh-copy-id -i
~/.ssh/id_rsa.pub nidos@node3
atau dengan perintah seperti berikut:
nidos@master:~$ ssh-copy-id nidos@node1
nidos@master:~$ ssh-copy-id nidos@node2
nidos@master:~$ ssh-copy-id nidos@node3

Source Code 4.28 SSH ID dari PC Master


Now you will be able to ssh without password.

- start-dfs.sh lalu start-yarn.sh (atau dengan start-all.sh) dari


PC Master:
nidos@master:~$ start-dfs.sh

197
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 4.28 Tampilan star start-dfs.sh


nidos@master:~$ start-yarn.sh

Gambar 4.29 Tampilan Start-yarn.sh

- Buka firefox “http://localhost:50070”:

198
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 4.30 Tampilan http://localhost:50070 di Firefox

Gambar 4.31 Tampilan Datanode Information di Firefox


- Buka firefox “http://localhost:50090/status.html”:

199
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 4.32 Tampilan http://localhost:50090/status.html di Fire-


fox
- Buka firefox “http://localhost:8088/cluster”:

Gambar 4.33 Tampilan http://localhost:8088/cluster di Firefox

Gambar 4.34 Tampilan Nodes Of the Cluster pada Firefox


6. Membuat Directories di HDFS harus satu demi satu:
- Lakukan hal berikut:

200
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

nidos@master:~$ cd /usr/local/hadoop
nidos@master:/usr/local/hadoop$
bin/hdfs dfs -mkdir /user
nidos@master:/usr/local/hadoop$
bin/hdfs dfs -mkdir /user/nidos
nidos@master:/usr/local/hadoop$
bin/hdfs dfs -mkdir
/user/nidos/wordcount
nidos@master:/usr/local/hadoop$
bin/hdfs dfs -ls /user/nidos

Found 1 items

drwxr-xr-x - nidos supergroup


0
Source Code 4.2907:40
2016-12-05 Membuat Directories di HDFS
/user/nidos/wordcount
nidos@master:/usr/local/hadoop$
bin/hdfs
drwxr-xr-xdfs -mkdir
- nidos supergroup
/user/nidos/wordcount/input
0 2016-12-05 07:40
/user/nidos/wordcount
nidos@master:/usr/local/hadoop$
bin/hdfs dfs -mkdir
/user/nidos/wordcount/input

Source Code 4.30 Source Code Membuat Directories di HDFS Cont

201
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

4.3 Hadoop Multi Node Cluster (Full


Distributed)
1. Konfigurasi Jaringan
- Setting IP Windows, untuk 1 PC Master + (1 PC Slave sebagai
Node1). Masuk ke, Network and Sharing Center  Ethernet
 Properties  IPv4  Properties

Gambar 4.35 Setting IP Windows ke-1


- Setting IP, 1 PC Master

Gambar 4.36 Setting IP PC Master

202
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Setting IP, 1 PC Slave

Gambar 4.37 Setting IP PC Slave


Note: IP address untuk setiap PC berbeda

- Pada PC Master dan Slave, Klik Settings  Network 


Adapter 1  Pada kolom Attached to pilih NAT  OK

Gambar 4.38 Pilih NAT

203
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Pada PC Master, Klik Settings  Network  Adapter 2 


Pada kolom Attached to pilih Bridged Adapter  Pilih PCI 
OK

Gambar 4.39 Pilih PCI (Master)


- Pada PC Slave, Klik Settings  Network  Adapter 2  Pada
kolom Attached to pilih Bridged Adapter  Pilih PCI  OK

Gambar 4.40 Pilih PCI (Slave)

204
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Pada PC Master, Ketik sudo nano /etc/network/interfaces

Gambar 4.41 Ketik sudo .. (Master)


- Pada PC Slave, Ketik sudo nano /etc/network/interfaces

Gambar 4.42 Ketik sudo .. (Slave)

205
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Pada PC Master dan PC Slave, Ketik sudo ifdown eth1 , lalu


sudo ifup eth1, lalu ifconfig

Gambar 4.43 Ketik sudo ifdown eth1


2. Konfigurasi Hostname dan Hosts
- Pada PC Master, Ketik sudo nano /etc/hostname

Gambar 4.44 Ketik sudo nano /etc/hostname


- Pada PC Master, Ketik sudo nano /etc/hosts

Gambar 4.45 Ketik sudo nano /etc/hosts

206
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Pada PC Slave, Ketik sudo nano /etc/hostname

Gambar 4.46 Ketik sudo nano /etc/hostname


- Pada PC Slave, Ketik sudo nano /etc/hosts

Gambar 4.47 Ketik sudo nano /etc/hosts


- Pada PC Master, Cek Koneksi dengan melakukan perintah
ping pada komputer Slave

Gambar 4.48 Cek Koneksi ke PC Slave


- Pada PC Slave, Cek Koneksi dengan melakukan perintah ping
pada komputer Master

Gambar 4.49 Cek Koneksi ke PC Master

207
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Pada PC Master, Ketik “sudo nano /usr/local/ha-


doop/etc/hadoop/masters”

Gambar 4.50 Ketik “sudo nano


/usr/local/hadoop/etc/hadoop/masters”
- Pada PC Master, Ketik “sudo nano /usr/local/ha-
doop/etc/hadoop/masters”

Gambar 4.51 Ketik “sudo nano


/usr/local/hadoop/etc/hadoop/slaves”
3. Konfigurasi file HDFS
- Pada PC Master, Ketik sudo nano /usr/local/hadoop/etc/ha-
doop/hdfs-site.xml

Gambar 4.52 Ketik sudo nano


/usr/local/hadoop/etc/hadoop/hdfs-site.xml

208
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>

<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop_tmp/hdfs/namenode</value>
</property>
</configuration>

- Pada PC Slave, Ketik sudo nano /usr/local/hadoop/etc/ha-


doop/hdfs-site.xml

Gambar 4.53 Ketik sudo nano


/usr/local/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>

<property>
<name>dfsdataenode.data.dir</name>
<value>file:/usr/local/hadoop_tmp/hdfs/datanode</value>
</property>
</configuration>

209
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

4. Konfigurasi file core-site, mapred, yarn


- Pada PC Master dan Slave, Ketik sudo nano /usr/local/ha-
doop/etc/hadoop/core-site.xml

Gambar 4.54 Ketik sudo nano


/usr/local/hadoop/etc/hadoop/core-site.xml
<configuration>

<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>

</configuration>

- Pada PC Master dan Slave, Ketik sudo nano /usr/local/ha-


doop/etc/hadoop/mapred-site.xml

Gambar 4.55 Ketik sudo nano


/usr/local/hadoop/etc/hadoop/mapred-site.xml
<configuration>

<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
</property>

</configuration>

210
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Pada PC Master dan Slave, Ketik sudo nano /usr/local/ha-


doop/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-
services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.resource-
tracker.address</name>
<value>master:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8050</value>
</property>
</configuration>

5. Membuat folder HDFS


- Pada PC Master, Ketik berikut
• sudo rm -rf /usr/local/hadoop_tmp/
• sudo mkdir -p /usr/local/hadoop_tmp/hdfs/namenode
• sudo chown -R hduser /usr/local/hadoop
• sudo chown -R hduser /usr/local/hadoop_tmp

Gambar 4.56 Buat namenode


- Pada PC Slave, Ketik berikut
• sudo rm -rf /usr/local/hadoop_tmp/
• sudo mkdir -p /usr/local/hadoop_tmp/hdfs/datanode
• sudo chown -R hduser /usr/local/hadoop
• sudo chown -R hduser /usr/local/hadoop_tmp

Gambar 4.57 Buat datanode

211
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

6. Melakukan Call SSH


- Pada PC Master, Ketik ssh slave. Setelah berhasil login ketik
exit untuk kembali pada PC Master

Gambar 4.58 Call SSH dari PC Master


- Pada PC Master, Ketik ssh master. Setelah berhasil login ketik
exit untuk kembali pada PC Slave

Gambar 4.59 Call SSH dari PC Slave


- Pada PC Master, lakukan format namenode, Ketik hdfs
namenode -format

Gambar 4.60 Ketik hdfs namenode -format

212
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Pada PC Master, Ketik start-all.sh

Gambar 4.61 Ketik start-all.sh


- Cek JPS

Gambar 4.62 JPS pada Master dan Slave


- Pada PC Master, cek datanode

Gambar 4.63 Cek datanode

Note : localhost untuk pc master = localhost:50070


localhost untuk pc slave = 192.168.56.10:50070
(Menggunakan IP master)

213
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

7. Studi Kasus “Word Count” pada PC Slave


- Copy File /home/nidos/Desktop/data/File.txt ke
/user/hduser/inpuWC

Gambar 4.64 Copy File


- bin/hadoop jar wordcount.jar wordcount /user/hduser/in-
puWC /user/hduser/ouputWC

Gambar 4.65 bin hadoop


- bin/hdfs dfs -cat /user/hduser/ouputWC/part*

Gambar 4.66 bin hdfs


- Pada PC Slave

Gambar 4.67 Cek pada PC Slave

214
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Hasil wordcount pada PC Slave juga akan tersimpan pada PC


Master

Gambar 4.68 Cek pada PC Master

4.4 Studi Kasus (Sederhana)


1. Menghitung Kemunculan Kata dalam file dokumen:
- Buat file dokumen yang akan diuji (misal):
nidos@master:/usr/local/hadoop$ cd
nidos@master:~$ cd /home/nidos/Desktop/
nidos@master:~/Desktop$ mkdir data
nidos@master:~/Desktop/data$ >> a.txt
nidos@master:~/Desktop/data$ gedit a.txt

Source Code 4.31 Buat File Dokumen Uji

Gambar 4.69 Tampilan Dokumen Uji

215
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Buat file “WordCount.java”:


nidos@master:~/Desktop/data$ cd
/usr/local/hadoop
nidos@master:/usr/local/hadoop$ >>
WordCount.java
nidos@master:/usr/local/hadoop$ gedit
WordCount.java
nidos@master:/usr/local/hadoop$ ls
bin include libexec logs
README.txt share
etc lib LICENSE.txt NOTICE.txt
sbin WordCount.java

Source Code 4.32 File Wordcount.Java


- Siapkan file *.java (misal WordCount.java Part 1 of 2) untuk
dicompile ke *.jar:
import java.io.IOException;
import java.util.StringTokenizer;
import
org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import
org.apache.hadoop.mapreduce.Mapper;
import
org.apache.hadoop.mapreduce.Reducer;
import
org.apache.hadoop.mapreduce.lib.input.Fil
eInputFormat;
import
org.apache.hadoop.mapreduce.lib.output.Fi
leOutputFormat;

public class WordCount {


public static class TokenizerMapper
extends Mapper<Object, Text,
Text, IntWritable> {

Source Code 4.33 File *.java Part 1

216
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

private final static IntWritable


one = new IntWritable(1);
private Text word = new Text();
public void map(Object key, Text
value, Context context) throws
IOException, InterruptedException {
StringTokenizer itr = new
StringTokenizer(value.toString());
while (itr.hasMoreTokens()) {
word.set(itr.nextToken());
context.write(word, one);
}
}
}

Source Code 4.34 File *.Java Part 2 Cont

- Siapkan file *.java (misal WordCount.java Part 2 of 2) untuk


dicompile ke *.jar:
public static class IntSumReducer
extends Reducer<Text,
IntWritable, Text, IntWritable> {
private IntWritable result = new
IntWritable();
public void reduce(Text key,
Iterable<IntWritable> values,
Context context
) throws IOException,
InterruptedException {
int sum = 0;
for (IntWritable val : values)
{
sum += val.get();
}
result.set(sum);
context.write(key, result);
}
}
public static void main(String[] args)
throws Exception {

Source Code 4.35 File*.Java Part 2

217
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Configuration conf = new


Configuration();
Job job = Job.getInstance(conf,
"word count");

job.setJarByClass(WordCount.class);

job.setMapperClass(TokenizerMapper.class);

job.setCombinerClass(IntSumReducer.class);

job.setReducerClass(IntSumReducer.class);
job.setOutputKeyClass(Text.class);

job.setOutputValueClass(IntWritable.class)
;
FileInputFormat.addInputPath(job,
new Path(args[0]));

FileOutputFormat.setOutputPath(job, new
Path(args[1]));

System.exit(job.waitForCompletion(true) ?
0 : 1);
}
}

Source Code 4.36 File *.Java Part 2 Cont


- file “WordCount.java”:

Gambar 4.70 Tampilan File wordcount.java

218
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- WordCount.java dicompile ke *.jar:


- Lakukan hal berikut:
- nidos@master:/usr/local/hadoop$
bin/hdfscom.sun.tools.javac.Main WordCount.java
nidos@master:/usr/local/hadoop$

Gambar 4.71 Tampilan WordCount.Java dalam folder

- Hasil: nidos@master:/usr/local/hadoop$ jar cf wc.jar Word-


Count*.class

Gambar 4.72 Hasil nidos@master:/usr/local/hadoop$ jar cf wc.jar


WordCount*.class
- Copy file /home/nidos/Desktop/data/a.txt ke
/user/hduser/wordcount/input dan Running proses
perhitungan kata dalam file dokumen:

219
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Jika menggunakan hdfs, maka gunakan dfs


Jika menggunakan hadoop, maka gunakan fs
nidos@master:/usr/local/hadoop$ bin/hdfs
dfs -copyFromLocal
/home/nidos/Desktop/data/a.txt
/user/nidos/wordcount/input
Jika folder output sudah ada, maka
sebaiknya membuat output lainnya, misal
“output2”
nidos@master:/usr/local/hadoop$ bin/hadoop
jar wc.jar WordCount
/user/nidos/wordcount/input/a.txt
/user/nidos/wordcount/output
nidos@master:/usr/local/hadoop$ bin/hdfs
dfs -ls /user/nidos/wordcount/output
Found 2 items
-rw-r--r-- 3 nidos supergroup 0
2016-12-05 08:29
/user/nidos/wordcount/output/_SUCCESS
-rw-r--r-- 3 nidos supergroup 1189
2016-12-05 08:29
/user/nidos/wordcount/output/part-r-00000
nidos@master:/usr/local/hadoop$ bin/hdfs
dfs -cat /user/nidos/wordcount/output/part*

Source Code 4.37 Running Proses Perhitungan Kata


nidos@master:/usr/local/hadoop$ bin/hdfs dfs -cat
/user/nidos/wordcount/output/part*

Gambar 4.73 Tampilan nidos@master:/usr/local/hadoop$ bin/hdfs


dfs -cat /user/nidos/wordcount/output/part*

220
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 4.74 Browse Directory pada Forefox

Gambar 4.75 Browse Directory pada Firefox

221
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 4.76 File Information Pada Firefox


- Siapkan file, misal b.txt, Copy file
/home/nidos/Desktop/data/b.txt ke
/user/hduser/wordcount/input dan Running proses
perhitungan kata dalam file dokumen:
- Lakukan hal berikut:
nidos@master:/usr/local/hadoop$ bin/hdfs
dfs -copyFromLocal
/home/nidos/Desktop/data/b.txt
/user/nidos/wordcount/input
Menjalankan JAR untuk wordcount untuk
satu file dalam satu folder (misal file
b.txt):
nidos@master:/usr/local/hadoop$
bin/hadoop jar wc.jar WordCount
/user/nidos/wordcount/input/b.txt
/user/nidos/wordcount/output2
Atau, menjalankan JAR untuk wordcount
untuk semua file dalam satu folder (file
a.txt dan b.txt):
nidos@master:/usr/local/hadoop$
bin/hadoop jar wc.jar WordCount
/user/nidos/wordcount/input/
/user/nidos/wordcount/output2
Cara menghapus folder HDFS (misal hapus
folder /user/nidos/wordcount/output):
nidos@master:/usr/local/hadoop$ hadoop fs
-rm -r -f /user/nidos/wordcount/output

Source Code 4.38 Menjalankan JAR untuk wordcount untuk satu file
dalam satu folder

222
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

4.5 Studi Kasus (Run Kode Program)


Running Code Program Pada Hadoop Single/Multi Node
Cluster Pada Linux:
- Klasifikasi: NB, KNN
- Clustering: K-Means
- WordCount: Load+Simpan Hasil di HDFS Folder (Pert. Ke-
12-13)
- WordCount: Load+Simpan Hasil di NoSQL (MongoDB)
- Movie Ratings: Load di HDFS Folder+Simpan Hasil di
NoSQL (MongoDB)

4.5.1 Klasifikasi: NB dengan Terminal


1. Siapkan semua file *.java (dari algoritma
Naive_Bayes_Classifier_MapReduce, link kode:
https://goo.gl/CEdr2R ) untuk dicompile ke *.jar:

Gambar 4.77 File *.java dari Algoritma


Naive_Bayes_Classifier_MapReduce
cek pada setiap file *.java tersebut, apakah terdapat
package atau tidak
2. Jika tidak terdapat package, langsung file *.java tersebut
dicopy-paste ke folder /usr/local/hadoop

223
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 4.78 Folder /usr/local/hadoop

NBCDriver.java NBCMap.java NBCReduce.java

3. Jika ada package-nya, misal “package


comratingbymovies.nidos;”, maka
“comratingbymovies.nidos” masing-masing akan menjadi
folder “comratingbymovies”, lalu “nidos”.
RatingCounterByMovieMongo.java

package comratingbymovies.nidos;
import
org.apache.hadoop.conf.Configuration;
.....
...
public class RatingCounterByMovieMongo
extends Configured implements Tool{
public int run(String[] args) throws
Exception {
....
..
System.exit(res);
}
}

Source Code 4.39 RatingCounterByMovieMongo.java


4. Maka di folder “/usr/local/hadoop”, akan ada folder
“comratingbymovies/nidos” yang berisi file

224
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 4.79 File *.java


“RatingCounterByMovieMongo.java”, dan file *.java
lainnya yang memang memiliki package yang sama.

5. Jika pada file *.java tidak ada package-nya, maka di folder


“/usr/local/hadoop”, akan langsung diisi dengan semua file
*.java tersebut

Copy-Paste

Gambar 4.80 File *.java pada Folder Hadoop


6. Lakukan perintah (Membuat file *.class):
nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main *.java
Note: NBCDriver.java uses or overrides a
deprecated API.
Note: Recompile with -Xlint:deprecation for
details.

Source Code 4.40 File *.class

225
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 4.81 File *.class pada Folder Hadoop


7. Lakukan perintah (Membuat file *.class  *.jar):
nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main *.java
Note: NBCDriver.java uses or overrides a
deprecated API.
Note: Recompile with -Xlint:deprecation
for details.

Atau bisa dengan


nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main -
Xlint:deprecation *.java
nidos@master:/usr/local/hadoop$ jar cf
NB.jar *.class
NBCDriver.java:16: warning: [deprecation]
Job(Configuration) in Job has been depre-
cated
Job job = new Job(conf);
^
1 warning
Buat folder HDFS, “nb” dan “input”
nidos@master:/usr/local/hadoop$ bin/hdfs
dfs -mkdir /user/nidos/nb
nidos@master:/usr/local/hadoop$ bin/hdfs
dfs -mkdir /user/nidos/input
-copyFromLocal, misal file“1.txt” ada difolder
“/home/nidos/Desktop/kode/Naive_Bayes_Clas
sifier_MapReduce/input”  “1.txt” sebagai
data training
nidos@master:/usr/local/hadoop$ bin/hadoop
jar NB.jar NBCDriver Urgent,Yes,Yes
/user/nidos/nb/input/1.txt
/user/nidos/nb/output
Source Code 4.41 Membuat file *.class  *.jar

226
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

8. Hasil 1 of 2:

Gambar 4.82 Hasill 1 of 2


9. Hasil 2 of 2:

Gambar 4.83 Hasil 2 of 2

227
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

4.5.2 Klasifikasi: NB dengan Eclipse


- Tampilan NBbyArgument pada Eclipse, link kode:
“https://goo.gl/QhQ1nr”

Gambar 4.84 NBbyArgument pada Eclipse

- Pada “Referenced Libraries” list file jar “https://goo.gl/zZm21m”:


/usr/local/hadoop/share/hadoop/common/hadoop-common-
2.7.3.jar
/usr/local/hadoop/share/hadoop/common/hadoop-common-
2.7.3-tests.jar
/usr/local/hadoop/share/hadoop/common/hadoop-nfs-
2.7.3.jar
/usr/local/hadoop/share/hadoop/mapreduce/hadoop-
mapreduce-client-app-2.7.3.jar
.
.
/usr/local/hadoop/share/hadoop/common/lib/xz-1.0.jar
/usr/local/hadoop/share/hadoop/common/lib/zookeeper-
3.4.6.jar

228
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Running “NBbyArgument”:
Pada NBCDriver.java terdapat “args[0], args[1],
args[2]”

Gambar 4.85 Running “NBbyArgument” ke-1

- Running “NBbyArgument”:
Klik Kanan Project “NBbyArgument”, Klik “Run As”,
Klik “RunConfigurations..”

Gambar 4.86 Running “NBbyArgument” ke-2

229
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Running “NBbyArgument”:
Pada Java Application, jika belum ada “NB”, bisa
dibuat dengan klik
Buat nama, misal ”NB”, lalu pada “MainClass” isikan
“org.myhadoop.trainings.NBCDriver”

Gambar 4.87 Running “NBbyArgument” ke-3

- Running “NBbyArgument”:
Dan pada Tab “Arguments” isikan “Urgent,Yes,Yes
hdfs://localhost:9000/user/hduser/nb/input/1.txt
hdfs://localhost:9000/user/hduser/nb/output2”

Gambar 4.88 Running “NBbyArgument” ke-4

230
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Running “NBbyArgument”:
hdfs://localhost:9000/user/hduser/nb/output2”
Jika sudah digunakan, ketika di klik “Run” akan
muncul error seperti berikut:
“Output directory
hdfs://localhost:9000/user/hduser/nb/output2 already
exists”

Gambar 4.89 Running “NBbyArgument” ke-5

- Running “NBbyArgument”:
args[2] =
hdfs://localhost:9000/user/hduser/nb/output3
Klik Apply, Klik Run

Gambar 4.90 Running “NBbyArgument” ke-6

231
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Running “NBbyArgument”:
args[2] =
hdfs://localhost:9000/user/hduser/nb/output3
Klik Apply, Klik Run, berikut tampilan jika berhasil
dijalankan

Gambar 4.91 Running “NBbyArgument” ke-7

- Running “NBbyArgument”:
args[2] =
hdfs://localhost:9000/user/hduser/nb/output3
Klik Apply, Klik Run, berikut tampilan jika berhasil
dijalankan & hasil klasifikasinya

Gambar 4.92 Running “NBbyArgument” ke-8

232
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Tampilan NBtanpaArgument di Eclipse, link kode:


“https://goo.gl/ofBqKg”
Kode yang diubah:
conf.set("test_input", args[0]);  conf.set("test_input",
"Urgent,Yes,Yes");

FileInputFormat.setInputPaths(job, new Path(args[1])); 


FileInputFormat.setInputPaths(job, new
Path("hdfs://localhost:9000/user/hduser/nb/input/1.txt"));

FileOutputFormat.setOutputPath(job, new Path(args[2])); 


FileOutputFormat.setOutputPath(job, new
Path("hdfs://localhost:9000/user/hduser/nb/output4"));

Gambar 4.93 Running “NBtanpaArgument” ke-1

- Running “NBtanpaArgument”:
Set “Run Configuration”, klik Apply, klik Run

Gambar 4.94 Running “NBtanpaArgument” ke-2

233
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Running “NBtanpaArgument”:
Hasil “Run Configuration”, klik Apply, klik Run

Gambar 4.95 Running “NBtanpaArgument” ke-3

- Running “NBtanpaArgument”:
Hasil “Run Configuration”, klik Apply, klik Run, dan
hasil klasifikasinya

Gambar 4.96 Running “NBtanpaArgument” ke-4

234
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

4.5.3 Clustering: K-Means


1. Siapkan semua file *.java (dari algoritma K-Means, link kode:
https://goo.gl/N0QjY8 ) untuk dicompile ke *.jar:

Gambar 4.97 File *.java dari Algoritma K-Means


dalam folder “mapreduce”, semua file java-nya
terdapat package “com. clustering.mapreduce”, dan dalam
folder “model”, semua file java-nya terdapat package
“com.clustering.model”, jadi copy paste-nya ke folder
“/usr/local/hadoop” mulai dari folder “com”
2. Jika pada file *.java yang ada package-nya sesuai penjelasan
sebelumnya, maka di folder “/usr/local/hadoop”, akan
langsung diisi dengan folder “com” tersebut

Gambar 4.98 Folder Com


3. Lakukan perintah (Membuat file *.class):

235
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main com/clustering/map
reduce/*.java com/clustering/model/*.java

Source Code 4.42 Membuat File *.class


Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

Gambar 4.99 File *.class

nidos@master:/usr/local/hadoop$ jar cf
KMeans.jar com/clustering/mapreduce/*.class
com/clustering/model/*.class

Gambar 4.100 File KMeans.jar


Dimana:
nidos@master:/usr/local/hadoop$ bin/hadoop jar
KMeans.jar
com/clustering/mapreduce/KmeansClusteringJob
sebagai main class

236
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

4. Hasil 1 of 2:

Gambar 4.101 Hasil 1 of 2


5. Siapkan semua file *.java (dari algoritma K-Means, link kode:
https://goo.gl/N0QjY8 ) untuk dicompile ke *.jar:

Gambar 4.102 Folder mapreduce dan model


dalam folder “mapreduce”, semua file java-nya terdapat
package “com. clustering.mapreduce”, dan dalam folder
“model”, semua file java-nya terdapat package
“com.clustering.model”, jadi copy paste-nya ke folder
“/usr/local/hadoop” mulai dari folder “com”
6. Jika pada file *.java yang ada package-nya sesuai penjelasan
sebelumnya, maka di folder “/usr/local/hadoop”, akan
langsung diisi dengan folder “com” tersebut

237
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 4.103 Folder com dalam folder hadoop


7. Lakukan perintah (Membuat file *.class):
nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main
com/clustering/mapreduce/*.java
com/clustering/model/*.java
Note: Some input files use or override a
deprecated API.
Note: Recompile with -Xlint:deprecation for
details.

Source Code 4.43 Membuat File *.class

Gambar 4.104 File *.class


8. Lakukan perintah (Membuat file *.class  *.jar):

238
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

nidos@master:/usr/local/hadoop$ jar cf
KMeans.jar com/clustering/mapreduce/*.class
com/clustering/model/*.class

Source Code 4.44 Perintah Membuat file *.class  *.jar

Gambar 4.105 File KMeans.jar

9. Hasil 1 of 2:

Gambar 4.106 Hasil 1 of 2


10. Hasil 2 of 2:

239
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 4.107 Hasil 2 of 2

4.6 Tugas Kelompok


1. Jelaskan perbedaan dari Hadoop Single Node Cluster dan
Hadoop Multi Node Cluster!
2. Lakukan Studi Kasus WordCount dengan dokumen yang
berbeda (minimal 25 kata) pada Hadoop Multi Node Cluster!
dan berilah penjelasan untuk setiap langkah-langkahnya
disertai screenshot!
3. Berdasarkan penjelasan pada materi, jelaskan hasil
perbedaan jika dijalankan (a) dan jika dijalankan (b).
a. Menjalankan JAR untuk wordcount untuk
satu file dalam satu folder (misal file
b.txt):
nidos@master:/usr/local/hadoop$ bin/hadoop
jar wc.jar WordCount
/user/nidos/wordcount/input/b.txt
/user/nidos/wordcount/output2

b. Atau, menjalankan JAR untuk wordcount


untuk semua file dalam satu folder (file
a.txt dan b.txt):
nidos@master:/usr/local/hadoop$ bin/hadoop
jar wc.jar WordCount
/user/nidos/wordcount/input/
/user/nidos/wordcount/output2

4. Buatlah koding untuk Hadoop Multi Node Cluster terkait


Clustering atau Regresi atau Klasifikasi, lalu jalankan seperti

240
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

“Studi Kasus WordCount”, dan berilah penjelasan untuk


setiap langkah-langkahnya disertai screenshot!.
5. Jalankan kode “Clustering: K-Means” dengan Eclipse!
6. Siapkan semua file *.java (dari algoritma KNN, link
kode: https://goo.gl/egu7qk ) untuk dicompile ke *.jar

Lakukan pengujian dengan data testing bebas, sesuai dengan


fitur yang digunakan dengan Terminal atau dengan Eclipse!

241
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

BAB 5 Analitik Data Tingkat


Lanjut (Clustering)

5.1 Konsep Clustering


Cluster data diartikan kelompok, dengan demikian pada
dasarnya analisis cluster akan menghasilkan sejumlah cluster
(kelompok). Analisis ini diawali dengan pemahaman bahwa sejumlah
data tertentu sebenarnya mempunyai kemiripan di antara
anggotanya. Karena itu, dimungkinkan untuk mengelompokkan
anggota-anggota yang mirip atau mempunyai karakteristik yang
serupa tersebut dalam satu atau lebih dari satu cluster.
Terdapat dua metode yang digunakan dalam konsep cluster-
ing diantaranya:
1. Hierarchical Clustering
Hierarchical clustering adalah suatu metode
pengelompokan data yang dimulai dengan mengelompokkan
dua atau lebih obyek yang memiliki kesamaan paling dekat.
Berikut ilustrasi metode hierarchical clustering yang ditunjuk-
kan oleh Gambar 3.1.

Gambar 5.1 Konsep Hierarchical Clustering


2. Non-Hierarchical Clustering
Metode non-hierarchical clustering justru dimulai
dengan menentukan terlebih dahulu jumlah cluster yang
diinginkan (dua cluster, tiga cluster, atau lain sebagainya).

242
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Contoh metodenya adalah k-means clustering. Berikut ilus-


trasi konsep non-hierarchical clustering yang ditunjukkan oleh
Gambar 3.2.

Gambar 5.2 Konsep Non-Hierarchical Clustering

5.2 K-Means vs Kernel K-means


K-means clustering merupakan salah satu metode data
clustering non-hirarki yang mengelompokan data dalam bentuk satu
atau lebih cluster (kelompok). Data-data yang memiliki karakteristik
yang sama dikelompokan dalam satu cluster (kelompok) dan data
yang memiliki karakteristik yang berbeda dikelompokan dengan
cluster (kelompok) yang lain sehingga data yang berada dalam satu
cluster (kelompok) memiliki tingkat variasi yang kecil
Langkah-langkah melakukan clustering dengan metode k-
means adalah sebagai berikut:
1. Tentukan jumlah cluster k.
2. Inisialisasi k pusat cluster ini bisa dilakukan dengan berbagai
cara. Namun yang paling sering dilakukan adalah dengan cara
random (acak).
3. Alokasikan semua data atau obyek ke cluster terdekat
berdasarkan jarak kedua obyek tersebut (jarak Euclidean) yang
ditunjukan oleh persamaan 3.1 berikut:

243
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

D xi , x j   x  x j1   xi 2  x j 2   ..  xid  x jd 


2 2 2
i1

(3.1)
4. Hitung kembali pusat cluster dengan keanggotaan cluster yang
sekarang menggunakan persamaan 3.2 berikut:
1 mi
1 mi
Ci1 
mi
x
j 1
j1 ....... Cid 
mi
x
j 1
jd

(3.2)
5. Jika pusat cluster tidak berubah lagi maka proses clustering
selesai atau kembali ke langkah nomor 3 sampai pusat cluster
tidak berubah.
K-means adalah algoritma unsupervised learning yang
membagi kumpulan data ke dalam sejumlah cluster (kelompok).
Akan tetapi k-means clustering memiliki kelemahan di dalam
memproses data yang berdimensi banyak khususnya untuk data
yang bersifat non-linierly separable. Sedangkan dalam dunia nyata
saat ini, data yang tersedia atau yang diperoleh memiliki dimensi
yang banyak dan bervariasi. Dalam hal ini, penambahan fungsi kernel
pada input data clustering merupakan pilihan yang baik.
Kita dapat menggunakan beberapa jenis transformasi pada
data, dengan memetakan data pada ruang baru dimana machine
learning dapat digunakan. Fungsi kernel memberikan kepada kita
sebuah alat untuk mendefinisikan transformasi.
1. Kernel Polynomial
k xi , x j   xi  x j  c 
d

(3.3)
2. Kernel RBF
 x x 2

k xi , x j   exp
 i j 
 2  2 
 
(3.4)
Pada umumnya, perluasan dari k-means ke kernel k-means
direalisasi melalui pernyataan jarak dalam bentuk fungsi kernel.
Dengan menggunakan Jarak Euclidean pada tradisional k-means dan
fungsi pemetaan Φ, maka algoritma k-means clustering dapat diubah
menjadi :
1. Tentukan jumlah cluster k.

244
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

2. Inisialisasi k pusat cluster ini bisa dengan berbagai cara. Namun


yang sering dilakukan adalah dengan cara random (acak).
3. Alokasikan semua data atau obyek ke cluster terdekat
berdasarkan jarak yang dihitung menggunakan rumus fungsi
pemetaan Φ dan fungsi kernel.

 ( xi ) c~j
n m 2
min  uij
i 1 j 1

(3.5)
Keterangan:
c~j merupakan cluster centers dan dihitung dengan

menggunakan rumus :
1
c~j 
n

nj
 u (x )
i 1
ij i

(3.6)
Sehingga jika dijabarkan persamaan 3.5 menjadi :
2

1 n
min  u  ( x )   ulj ( xl )
n m

i ij
i 1 j 1
n j l 1

 1 n   
  ( xi )  1  ulj ( xl ) 
n m
 min  uij   ( xi )   ulj ( xl ) 
n

 n j l 1   n j l 1 
i 1 j 1    
   ( xi ) n  1 n  
2

n m
 min  uij   ( xi ). ( xi )   2 
ulj ( xl )   
ulj ( xl ) 
 n l   n l 
i 1 j 1
  j 1   j 1  
  1 n   1 n n 
 ulj  K ( xl , x p )  
n m
 min  uij  K ( xi , xi )   2 ulj K ( xl , xi )   
2
  n l1   n 2 l1 1 
i 1 j 1
  j 
  j  p 

 1 n   1 n n 
ulj  K ( xl , x p )  
n m
 min  uij  K ( xi , xi )   2  ulj K ( xl , xi )   
2
 n l 1  
  n  l 1 p 1
 2 
i 1 j 1
  j   j 

Keterangan:
n = Jumlah data.
m = Jumlah cluster.
K = Fungsi kernel.
xi = Titik data ke-i.
xl = Titik data ke-l.

245
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

xp
= Titik data ke-p.
i
= Index untuk keseluruhan data.
j
= Index untuk cluster.
l
= Index untuk data yang terdapat pada cluster ke-i.
p
= Index untuk data yang terdapat pada cluster ke-j.
uij
=Nilai keanggotaan data ke-i terhadap cluster ke-j.
Bernilai 1 apabila merupakan anggota, bernilai 0 jika
bukan merupakan anggota dari cluster yang diproses.
ulj = Nilai keanggotaan data ke-l terhadap cluster ke-j
= Fungsi yang memetakan titik x ke ruang baru yang
berdimensi lebih tinggi.
nj = Banyaknya data pada cluster ke-j.
4. Setelah mendapat jarak titik data terhadap masing-masing
cluster pada langkah 3, jarak terdekat titik data dengan suatu
cluster berarti titik data tersebut termasuk dalam cluster
tersebut.
5. Perhatikan kondisi berhenti, misal jika pusat cluster tidak
berubah lagi maka proses clustering selesai. Atau, kembali ke
langkah nomor 3 sampai pusat cluster tidak berubah.
Kondisi Berhenti (Termination Condition)
Langkah selanjutnya adalah menentukan apakah diperlukan
iterasi selanjutnya atau tidak (stop condition).
a. Jumlah Iterasi Maksimum
b. Fungsi Obyektif dan Threshold
Fungsi obyektif dihitung dan nilai threshold pada sistem ini diperoleh
dari masukan user.
ndata k
F   a ji D( x j , Ci )
j 1 i 1
(3.7)
Keterangan:
F = Fungsi Objektif k = Jum. cluster. ndata = Jum. data.
aji = Nilai keanggotaan data ke-j terhadap cluster ke-i.
D(xj,Ci) = Jarak antara titik data ke-j terhadap cluster ke-i.

delta  Fbaru  Flama


(3.8)

246
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Keterangan:
Fbaru = Fungsi obyektif dari iterasi ke-i.
Flama = Fungsi obyektif dari iterasi ke-(i-1).
Jika delta ≥ threshold, maka iterasi berlanjut. Jika delta <
threshold, maka iterasi berhenti.
Hasil clustering data 2 dimensi dengan menggunakan k-means
Vs Kernel k-means clustering (Chitta, Radha, Rong Jin, Timothy C. Ha-
vens, dan Anil K. Jain., 2011):

Gambar 5.3 K-Means Gambar 5.4 Kernel K-Means


Dari Gambar diatas terbukti bahwa Kernel K-mean clustering
dapat digunakan untuk menyelesaikan cluster yang komplek.
Analisis Cluster
Analisis cluster berkepentingan dengan penggolongan hasil
kelompok yang sudah didapatkan. Atau menyiapkan draft nama atau
label yang tepat untuk kelompok tersebut. Sedangkan analisis faktor
berkepentingan dengan penggolongan ciri-ciri yang dipunyai oleh
masing-masing objek atau data yang diolah untuk dikelompokkan.
Untuk Visualisasi Hasil mapping data pada Kernel k-means:

247
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 5.5 Visualisasi Hasil Mapping Data Kernel K-means

5.3 Studi Kasus


Diketahui data 2 dimensi yang ditunjukkan oleh Tabel 3.1 berikut:

Tabel 5.1 Contoh Data 2 Dimensi


No. X Y Cluster No. X Y Cluster No. X Y Cluster
1 0.50 0.00 1 37 8.60 12.29 2 71 -10.59 -10.62 2
2 0.48 0.13 2 72 -9.62 -11.51 1
38 7.49 12.99 1
3 0.43 0.25 2 73 -8.58 -12.30 2
39 6.33 13.60 2
4 0.35 0.35 2 74 -7.48 -13.00 2
40 5.12 14.10 2 75 -6.32 -13.61 1
5 0.25 0.43 1
41 3.87 14.49 2 76 -5.11 -14.10 1
6 0.13 0.48 1
42 2.60 14.77 1 77 -3.86 -14.50 1
7 0.00 0.50 2
43 1.30 14.94 2 78 -2.58 -14.78 2
8 -0.13 0.48 2
44 -0.01 15.00 1 79 -1.28 -14.95 1
9 -0.25 0.43 1
80 0.03 -15.00 1
10 -0.35 0.35 1 45 -1.32 14.94 1
81 1.34 -14.94 1
11 -0.43 0.25 1 46 -2.62 14.77 2
82 2.63 -14.77 1
12 -0.48 0.13 2 47 -3.89 14.49 1 83 3.91 -14.48 2
13 -0.50 0.00 2 48 -5.14 14.09 1 84 5.16 -14.08 2
14 -0.48 -0.13 2 49 -6.35 13.59 1 85 6.37 -13.58 2
15 -0.43 -0.25 2 50 -7.51 12.98 2 86 7.53 -12.97 2
16 -0.35 -0.35 1 51 -8.61 12.28 1 87 8.63 -12.27 2
17 -0.25 -0.43 2 88 9.67 -11.47 1
52 -9.65 11.48 1
18 -0.13 -0.48 2 89 10.63 -10.58 2
53 -10.62 10.60 2
19 0.00 -0.50 1 90 11.51 -9.62 1
54 -11.50 9.63 1 91 12.31 -8.58 1
20 0.13 -0.48 1
55 -12.30 8.59 2 92 13.01 -7.47 1
21 0.25 -0.43 1
22 0.35 -0.35 1 56 -13.00 7.49 2 93 13.61 -6.31 2
23 0.43 -0.25 2 57 -13.60 6.32 2 94 14.11 -5.10 2
58 -14.10 5.11 1 95 14.50 -3.85 1
24 0.48 -0.13 2
96 14.78 -2.57 1
25 0.50 0.00 2 59 -14.49 3.87 2

188
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

26 15.00 0.00 2 60 -14.78 2.59 1 97 14.95 -1.27 2


27 14.94 1.31 1 61 -14.94 1.29 2 98 15.00 0.04 1
28 14.77 2.61 2 62 -15.00 -0.02 1
29 14.49 3.88 1
63 -14.94 -1.33 2
30 14.09 5.13 1
64 -14.77 -2.62 1
31 13.59 6.34 1
65 -14.48 -3.90 2
32 12.99 7.50 1
66 -14.09 -5.15 2
33 12.29 8.61 2
67 -13.59 -6.36 1
34 11.49 9.65 1
68 -12.98 -7.52 1
35 10.60 10.61 2
69 -12.27 -8.62 1
36 9.64 11.49 2
70 -11.48 -9.66 2

Visualisasi Data 2 DImensi


No. X Y Cluster 20
1 0.50 0.00 1
10
2 0.48 0.13 2
3 0.43 0.25 2 0
X

4 0.35 0.35 2 -20 -10 0 10 20


-10
5 0.25 0.43 1
. . . . -20
Y
97 14.95 -1.27 2
98 15.00 0.04 1
Gambar 5.6 Visualisasi Data 2 Dimensi
Keterangan:

Langkah-langkah penyelesaian dengan Kernel K-Means:


Misal dengan kernel Polynomial k xi , x j  xi  x j  c   
d

1. Tentukan jumlah cluster k = 2. Iterasi maksimum (tmax) = 5, dan nilai


threshold = 0.05.
2. Inisialisasi k pusat cluster. Misal dilakukan inisialisasi secara
random nilai indek clusternya (1 atau 2, pada kolom cluster) dari
semua data.

189
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

3. Alokasikan semua data atau obyek ke cluster terdekat berdasarkan


jarak yang dihitung menggunakan rumus fungsi pemetaan Φ dari
fungsi kernel.
Mulai masuk pada iterasi ke-1 (t = 1). Sebelum dilakukan
pengalokasian data ke cluster terdekat, lakukan perhitungan
centroid masing-masing cluster dari hasil pemetaan Φ.
Menghitung Centroid Cluster
1
c~j 
n

nj
 u (x )
i 1
ij i

k xi , x j   xi  x j  c 
d

fungsi pemetaan Φ = (X2, √2XY, Y2)

Contoh hasil perhitungan dari fungsi pemetaan Φ ditunjukan pada


Tabel 3.2.

Tabel 5.2 xi
Tabel 5.3  ( xi )
2 2
No. X Y Cluster No. X Y Cluster X √2.X.Y Y
1 0.50 0.00 1 1 0.50 0.00 1 0.25 0.00 0.00
. . . . . . . .
97 14.95 -1.27 2 97 14.95 -1.27 2
98 15.00 0.04 1 98 15.00 0.04 1

Menghitung Centroid Setiap Cluster


Untuk melakukan perhitungan centroid setiap cluster ke-
lompokan data berdasarkan clusternya dan hitung fungsi pemetaannya
seperti yang ditunjukkan oleh Tabel berikut:

Tabel 5.4 Fungsi Pemetaan Cluster 1


2 2
Data X Y Cluster X √2XY Y
1 0.50 0.00 1 0.25 0.00 0.00
2 0.25 0.43 1 0.06 0.15 0.19
3 0.13 0.48 1 0.02 0.09 0.23
4 -0.25 0.43 1 0.06 -0.15 0.19
. . . . . . .
48 14.78 -2.57 1 218.40 -53.68 6.60

190
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

49 15.00 0.04 1 225.00 0.80 0.00


Total 49 4312.54 1.63 4240.21

Tabel 5.5 Fungsi Pemetaan Cluster 2


2 2
Data X Y Cluster X √2XY Y
1 0.48 0.13 2 0.23 0.09 0.02
2 0.43 0.25 2 0.19 0.15 0.06
3 0.35 0.35 2 0.12 0.18 0.13
4 0.00 0.50 2 0.00 0.00 0.25
. . . . . . .

48 14.11 -5.10 2 199.02 -101.68 25.98


49 14.95 -1.27 2 223.39 -26.85 1.61
Total 49 4018.97 -1.22 3859.54

Setelah diperoleh fungsi pemetaan dari seluruh data pada setiap clus-
ter langkah selanjutnya adalah menghitung centroid cluster dengan
menggunakan persamaan 3.6.
centroid cluster 1 pada iterasi 1:
 4312.54 / 49   88.01 
~    
c1   1.63 / 49    0.03 
 4240.21 / 49   86.53 
   
centroid cluster 2 pada iterasi 1:
 4018.97 / 49   82.02 
~    
c1   - 1.22 / 49    - 0.02 
 3859.54 / 49   78.77 
   

Setelah diperoleh centroid dari setiap cluster alokasikan


semua data atau obyek ke cluster terdekat menggunakan persamaan
3.5 yang telah dijabarkan sebagai berikut:
 1 n   1 n n 
 
n m
min  uij  K ( xi , xi )   2  ulj K ( xl , xi )    
2
  ( , )
  n 2 l 1 p 1
u K x x
  n l 1 lj l p

i 1 j 1
  j   j 

a b c

191
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Untuk memudahkan dalam perhitungan, persamaan di atas


dibagi menjadi 3 bagian yaitu a, b, dan c. Sebagai contoh, berikut ini
ditampilkan perhitungan jarak antara data 1 terhadap cluster 1.
Diketahui :
i=1
j=1
xi = (0.50, 0.00)
Untuk menghitung bagian a:
K(xi, xi) = (xi.xi + c)d
0.50 0.50
= (( ).( ) + 0)2
0.00 0.00
= (((0.50 x 0.50)+(0.00 x 0.00)) + 0)2
= 0.0625
Setelah diperoleh nilai a langkah selanjutnya adalah menghi-
tung fungsi kernel antara data i terhadap seluruh data pada cluster j
untuk dapat dilakukan perhitungan terhadap nilai b. untuk contoh
perhitungan ini perhitungan dilakukan antara data 1 terhadap seluruh
data yang terdapat pada cluster. Sebagai contoh diambil satu data
pada cluster j yaitu data 2:
xl = (0.25, 0.43)
K(xi, xl) = (xi.xl + c)d
0.50 0.25
= (( ).( ) + 0)2
0.00 0.43
= (((0.50 x 0.25)+(0.00 x 0.43)) + 0)2
= 0.016
Hasil perhitungan fungsi kernel antara data i terhadap seluruh
data pada cluster 1 ditunjukkan oleh Tabel 3.6 berikut:

Tabel 5.6 Nilai Kernel data i terhadap semua data cluster 1 iterasi 1

No. xl K(xi, xl)


1 0.5, 0 0.0625
2 0.25, 0.43 0.015625
3 0.13, 0.48 0.004225
4 -0.25, 0.43 0.015625

192
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

. . .
48 14.78, -2.57 54.6121
49 15, 0.04 56.25
Total 1078.15

Setelah diperoleh total nilai fungsi kernel antara data i


terhadap seluruh data pada cluster j untuk dapat dilakukan perhi-
tungan nilai b.
b = -2(baris (Total)) / jumlah data pada cluster j
= -2(1078.15) / 49
= -44.006
Setelah diperoleh nilai b selanjutnya yaitu menghitung c. Untuk
memperoleh c terlebih dahulu dilakukan penjumlahan nilai fungsi
kernel antar data pada cluster j. Sebagai contoh diambil satu data pada
cluster j yaitu:
xl = (0.25, 0.43)
K(xl, xl) = (xl.xl + c)d
0.25 0.25
= (( ).( ) + 0)2
0.43 0.43
= (((0.25 x 0.25)+(0.43 x 0.43)) + 0)2
= 0.66
Contoh hasil perhitungan nilai fungsi kernel antar data pada
cluster j untuk iterasi 1 ditunjukkan oleh Tabel 3.7.

Tabel 5.7 Nilai Kernel Antar Data Pada Cluster j untuk iterasi 1
xl 1 2 3 . . . 49
1 0.06 0.02 0 . . . 56.25
2 0.02 0.06 0.06 . . . 14.19
3 0 0.06 0.06 . . . 3.88
. . . . . . . .
. . . . . . . .
. . . . . . . .
49 56.25 14.19 3.88 . . . 50625.72

Asumsikan total nilai tersebut dengan T. Untuk memperoleh


nilai c dengan cara:

193
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

c = (T) / (jumlah data pada cluster j)2


= 36577410.24 / (49)2
= 15234.24
Setelah diperoleh nilai a,b dan c selanjutnya Jumlahkan nilai a,
b, dan c. Hasil jumlah a, b, dan c adalah :
a + b + c = 0.625 + (-44.006) + 15234.24
= 15190.295
Untuk jarak dari setiap data i terhadap cluster j ditunjukkan oleh
Tabel 3.8.

Tabel 5.8 Jarak dan alokasi data untuk centroid terdekat iterasi 1
Data X Y Jarak ke C1 Jarak ke C2 K baru K lama
1 0.50 0.00 15190.29 12890.39 2 1
2 0.25 0.43 15190.84 12891.62 2 1
3 0.13 0.48 15190.98 12891.91 2 1
4 -0.25 0.43 15190.86 12891.60 2 1
. . . . . . .
48 14.78 -2.57 26277.54 26687.92 1 1
49 15.00 0.04 26254.64 26647.91 1 1
50 0.48 0.13 15190.35 12890.51 2 2
. . . . . . .
97 14.11 -5.10 26337.65 26811.35 1 2
98 14.95 -1.27 26260.58 26656.34 1 2
Total 1177274.15 1138242.98

Fbaru = 1177274.15 + 1138242.98 = 2315517.13


Visualisasi data hasil update keanggotaan cluster iterasi 1:

194
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

20
15
10
5
0
X

-20 -10 0 10 20
-5
-10
-15
-20
Y

Gambar 5.7 Visualisasi data hasil update anggota cluster iterasi 1


4. Setelah mendapat jarak titik data terhadap masing-masing cluster
pada langkah 3, jarak terdekat titik data dengan suatu cluster
berarti titik data tersebut termasuk dalam cluster tersebut seperti
dapat dilihat pada Tabel 3.8. Selanjutnya lakukan perhitungan nilai
delta untuk menentukan apakah perlu dilanjutkan ke iterasi selan-
jutnya atau tidak dimana jika delta ≥ threshold, maka iterasi
berlanjut. Jika delta < threshold, maka iterasi berhenti. Berikut
perhitungan delta:
Delta = |Fbaru - Flama| = |2315517.13 - 0| > 0.05 (threshold)
dan iterasi < tmax = 5, maka lanjutkan ke iterasi 2 (Kembali ke
langkah 3).

5.4 Tugas Kelompok


1. Jelaskan perbedaan antara K-Means dengan Kernel K-Means!
2. Jelaskan bagaimana cara untuk memilih kernel yang terbaik
untuk K-means!
3. Diketahui data berikut, Tentukan hasil K(x1,x2) dengan
menggunakan kernel Polynomial dan RBF:

 2  6
a. x1    x2   
 3  3

195
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

1  3
   
b. x1   4  x2   2 
 3  4
   
4. Tentukan hasil perhitungan jarak kuadrat dari data ke-1 dari
Tabel 3.1 terhadap cluster 2, berdasarkan perhitungan ber-
dasarkan persamaan 3.5!

196
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

BAB 6 Analitik Data Tingkat Lanjut


(Regresi)

6.1 Konsep Regresi


Regresi adalah membangun model untuk memprediksi nilai
(satu target atau multi-target) dari data masukan (dengan dimensi
tertentu) yang telah ada.
Goal : Membangun model regresi untuk mencari hubungan an-
tara satu atau lebih variabel independen atau prediktor (X atau X1, X2,
.., Xn) dengan variabel dependen atau respon single atau multi-target
(Y atau Y1, Y2, .., Yn).

Visualisasi Hasil Peramalan Iterasi


SVR 100000
13500
13450
13400
13350
13300
13250
13200
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

aktual ramalan

Gambar 6.1 Visualisasi Hasil Peramalan Iterasi SVR 100000


Prediksi berbeda dengan klasifikasi (dalam machine learning,
klasifikasi dianggap sebagai salah satu jenis dari prediksi).
Klasifikasi digunakan untuk memprediksi label kelas/kategori.
• Klasifikasi dapat dibagi lagi menjadi dua macam, yaitu:
– supervised classification (Klasifikasi) dan
– unsupervised classification (Clustering  sudah
dibahas pada pertemuan sebelumya)
• Prediksi versus Peramalan (Jangka waktu merupakan kata
kunci untuk membedakan antara prediksi dan peramalan)

197
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

6.2 Analisis Teknikal dan Fundamental


Ada beberapa jenis pendekatan yang dilakukan untuk
meramalkan, misal pada nilai tukar uang diantaranya (Madura, 2011):
1. Analisis Teknikal
- Melibatkan data historis nilai tukar untuk meramalkan
nilai di masa yang akan datang.
- Prinsip yang biasanya dianut oleh para teknikalis, bahwa
nilai kurs sudah menjadi nilai yang representatif dari
seluruh informasi yang relevan mempengaruhi kurs
tersebut, kurs akan bertahan pada trend tertentu, dan
nilai kurs merupakan nilai yang repetitif berulang dari
pola sebelumnya (Neely et al., 2011).
- Namun terkadang peramalan secara teknis tidak terlalu
membantu untuk jangka waktu yang cukup lama.
Banyak peneliti yang berselisih pendapat mengenai
peramalan teknis, meskipun secara umum peramalan
teknis memberikan konsistensi yang baik.
2. Analisis Fundamental
- Didasari hubungan fundamental antara variabel –
variabel ekonomi terhadap nilai tukar tersebut, seperti
faktor – faktor yang mempengaruhi nilai tukar. Misalnya
saja:
1. Tingkat inflasi
2. Suku bunga
3. Neraca Perdagangan (log pembayaran dari ha-
sil jual beli barang dan jasa antara negara)
4. Hutang Publik (Public Debt),
5. Rasio Harga Ekspor dan Harga Impor, dan
6. Kestabilan Politik dan Ekonomi.
Dari uraian sebelumnya, apakah bisa dilakukan penggabungan
Analisis Teknikal dan Fundamental?

198
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

6.3 Regresi Linear & Regresi Logistic


Perhatikan dataset berikut:

Tabel 6.1 Dataset

No (X) (Y)

1 10 15
2 6 20
3 3 12
4 4 10

Bagaimana Membangun model regresi yaitu dengan mencari


hubungan antara satu atau lebih variabel independen atau explana-
tory variable atau prediktor (X) dengan variabel dependen atau respon
(Y)?
Regresi Linear:

b1 
n  xy -  x  y 
b 0  y  b1 x 
 y - b  x  1
n  x 2   x 
2
n

yˆ  b0  b1 x

Gambar 6.2 Regresi

199
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

6.4 Extreme Learning Machine (ELM)


Metode ELM ini pertama kali diperkenalkan oleh Huang (2004)
(Huang, Zhu, & Siew, 2004).
ELM merupakan jaringan syaraf tiruan (JST) feedforward dengan
single hidden layer atau disebut dengan Single Hidden Layer
Feedforward Neural Networks (SLFNs) (Sun, Choi, Au, & Yu, 2008).

Gambar 6.3 Arsitektur ELM


Metode pembelajaran ELM dibuat untuk mengatasi beberapa
kelemahan dari jaringan syaraf tiruan feedforward, terutama dalam
hal learning speed.
Menurut Huang (2004), JST feedforward masih memiliki
kelemahan dalam learning speed karena semua parameter pada jarin-
gan ditentukan secara iterative dengan menggunakan metode pem-
belajaran satu persatu untuk setiap data.
Langkah-langkah training algoritma Extreme Learning Machine
(ELM):
1. Buat random Wjk sebagai bobot masukan.
2. Hitung matrik keluaran hidden layer H = 1/(1+exp(-X.WT))
3. Hitung output weight dimana H+=(HT.H)-1.HT

4. Hitung Yˆ  H .̂

200
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 6.4 Training Algoritma ELM


Langkah testing ELM:
1. Diketahu Wjk, dan .
2. Hitung H = 1/(1+exp(-Xtest.WT))
3. Hitung Yˆ  H .̂
4. Hitung nilai evaluasi, misal dengan MAPE.
Langkah-langkah training ELM dengan bias:
1. Buat random Wjk sebagai bobot masukan dan nilai bias b jika
ada. Ukuran matrik bias b adalah [1 x j]
2. Hitung matrik keluaran hidden layer H = 1/(1+exp(-(X.WT +
ones(Ntrain,1)*b))). Dan Ntrain adalah banyaknya data training.
3. Hitung output weight dimana H+=(HT.H)-1.HT

4. Hitung Yˆ  H .̂

Gambar 6.5 Training ELM dengan Bias

201
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Langkah testing ELM:


1. Diketahu Wjk, nilai bias b jika ada, dan .
2. Hitung H = 1/(1+exp(-(Xtest.W + ones(Ntest,1)*b)))
T

3. Hitung Yˆ  H .̂
4. Hitung nilai evaluasi, misal dengan MAPE.

Arsitektur Artificial Neural Network Backpropagation (ANN):

Gambar 6.6 Arsitektur Artificial Neural Network Backpropagation

Studi Kasus Sederhana dengan ELM


1. Misalkan diketahui, data training (terdapat 3 fitur dan single
target) sebagai berikut:

Tabel 6.2 Data Training


Fitur
Data Target
1 2 3
1 1 1 1 1
2 1 0 1 1
3 1 1 0 1

202
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

4 1 1 0 2
5 0 1 0 2
6 0 0 0 2
7 0 1 0 3
8 1 1 0 3
9 0 0 0 3

Diketahui:
N : Banyaknya data training =9
k : Banyaknya dimensi input layer =3
i : Banyaknya dimensi output layer =1
Misal diset,
j : Banyaknya dimensi hidden layer =3
Penyelesaian:
1. Men-generate bobot input (Wj x k) antara input layer dan
hidden layer. Ukuran W adalah [j x k], yang nilainya di-
generate antara [-0.5,0.5].

W=

2. Hitung matrik inisialisasi output hidden layer (Hinit = X.WT)

Hinit =

3. Htung matrik H = 1/(1+exp(-Hinit))

203
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

4. Hitung matrik H+=(HT.H)-1.HT

5. Hitung ˆ beta topi atau hasil nilai beta yang diestimasi

̂  H  .Y 

6. Menghitung Y prediksi

Yˆ  H .̂

7. Hitung MAPE
1 N
yˆ i  yi
MAPE 
N
|
i 1 yi
 100 |

204
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

1 N 9 yˆ i  yi
MAPE   | y 100 |
N  9 i 1 i
 30.11
Pada proses training, didapatkan hasil testing menggunakan
data training sendiri masih memiliki error MAPE sebesar 30.11.
2. Misalkan diketahui, data testing sebagai berikut:
Data Training:

Data Testing:

Diketahui,
N : Banyaknya data training =9
k : Banyaknya input layer =3
i : Banyaknya output layer =1
Misal diset,
j : Banyaknya hidden layer =3

Penyelesaian:
1. Hitung matrik inisialisasi output hidden layer (Hinit =
Xtest.WT)

205
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

2. Htung matrik output hidden H = 1/(1+exp(-Hinit))

3. Menghitung Y prediksi
Yˆ  H .̂

Diketahui ̂  maka

4. Hitung MAPE
1 N 3 yˆ i  yi
MAPE   | y 100 |  36.0048
N  3 i 1 i

Pada proses testing, didapatkan hasil prediksi dengan error


MAPE sebesar 36.0048
Algoritma Support Vector Regression (SVR)
Konsep SVR didasarkan pada risk minimization, yaitu untuk
mengestimasi suatu fungsi dengan cara meminimalkan batas dari gen-
eralization error, sehingga SVR mampu mengatasi overfitting.
Fungsi regresi dari metode SVR adalah sebagai berikut (Sethu
Vijayakumar & Si Wu, 1999)
Algoritma Sekuensial Training SVR :
1. Inisialisasi parameter SVR yang digunakan
2. Rumus memperoleh Matrik Hessian

Rij  ( K ( xi , x j )  2 )
3. Untuk tiap training point lakukan:
Ei  yi   j 1 ( *j   j ) Rij
l

i*  min max  Ei   ,i*, C  i*


i  min max   Ei   ,i , C  i 

206
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

i*  i*  i*


 i   i  i
4. Kembali ke langkah ketiga, sampai pada kondisi iterasi maksi-
mum atau
max i   
Dan
 
max i*  
5. Dengan mengunakan fungsi peramalan berikut:
l
f ( x)   ( i*   i )( K ( xi , x)  2 )
i 1

6.5 Tugas Kelompok


1. Diketahui data berikut:

a  a 
x1   1  x2   2 
 b1   b2 
Tentukan hasil Φ(x1) dan Φ(x2) dengan menggunakan kernel
Polynomial dengan c = 1 dan d = 2.
2. Pada Studi Kasus Sederhana proses training dengan ELM, jika
diketahui hasil random W adalah sebagai berikut:

Tentukan nilai MAPE dari data testing berikut:

207
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

BAB 7 Analitik Data Tingkat Lanjut


(Klasifikasi)

7.1 Konsep Klasifikasi


Klasifikasi digunakan untuk memprediksi label kelas/kategori.
Prediksi berbeda dengan klasifikasi (dalam machine learning,
klasifikasi dianggap sebagai salah satu jenis dari prediksi). Sedangkan
jika Prediksi dibandingkan dengan Peramalan hal yang membedakan
adalah jangka waktu.
Klasifikasi dapat dibagi lagi menjadi dua macam, yaitu:
– supervised classification (Klasifikasi) dan
– unsupervised classification (Clustering  sudah dibahas
pada pertemuan sebelumya)
Supervised Learning (Pembelajaran yang terawasi, yaitu
terdapat proses training dan testing):
– Regresi: untuk memprediksi nilai yang sifatnya kontinyu.
– Klasifikasi: untuk memprediksi kelas atau label data dan
bersifatnya diskrit.

Gambar 7.1 Gambaran Perbedaan Klasifikasi dan Regresi


Contoh Regresi:

Gambar 7.2 Contoh Regresi

208
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Contoh Klasifikasi:

Gambar 7.3 Contoh Klasifikasi

7.2 Linear dan Non-Linear Classifier


Linear Classifier:

Gambar 7.4 Linear Clasifier


Non-Linear Classifier

Gambar 7.5 Non-Linear Clasifier

209
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

7.3 Algoritma Klasifikasi


7.3.1 ELM Untuk Regresi Vs Untuk Klasifikasi
Sudah Dijelaskan pada Bab Sebelumnya, misalkan diketahui, data
training (terdapat 3 fitur dan single target) sebagai berikut (Lihat Ma-
teri ELM untuk Regresi):

ELM untuk Klasifikasi (Cara 1):

210
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

ELM untuk Klasifikasi (Cara 2):

7.3.2 Support Vector Machine (SVM) Linear dan


Non-Linear
SVM Linear:

Gambar 7.6 Ilustrasi SVM Linear


2 2
Margin  
w 2
w1  w2
2

211
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Support Vector kelas -1


Support Vector kelas +1

Jarak titik (xi) ke Hyperplane :


y i  xi  w  b  1
d w, b , xi   
w w
y i f  xi  1
d w, b , xi   
w w

Gambar 7.7 SVM Non-Linear


SVM Non-Linear (terdapat data noise, outliers, atau memang
sebaran datanya secara alami non-linear). Slack variables ξi dapat
ditambahkan untuk mentoleransi adanya mis-classification yang sulit
dipecahkan karena misal, ada data noise.

Gambar 7.8 Gambaran SVM dengan Slack Variable


Langkah-langkah dalam SVM:

212
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

1. Data dan kelas


xi , yi in1 dimana yi   1,1
2. Melakukan proses training untuk mendapatkan nilai 𝛼i dengan
menggunakan algoritma Sequential Training SVM
3. Hitung w dan b dan Hasil klasifikasi sign(f(x))
n
w   y  x 
i 1
i i i

1
b   [ w  x   w.x  ]
2
1 m m

b     i yi xi  x     i yi xi  x  
2  i 1 i 1 
1 m m

b     i yi ( xi ) ( x  )    i yi ( xi ) ( x  )
2  i 1 i 1 
1 m m

b     i yi K ( xi , x  )    i yi K ( xi , x  )
2  i 1 i 1 
f ( x)  w  x  b
m
f ( x)    i yi xi  x  b
i 1
m
f ( x)    i yi ( xi ) ( x)  b
i 1
m
f ( x)    i yi K ( xi , x)  b
i 1

dimana m adalah jumlah support vector/titik data yang memiliki αi > 0


Algoritma Sequential Training SVM:
1. Inisialisasi nilai 𝛼i = 0, λ, γ (learning rate), C, ε (epsilon), IterMax,
parameter kernel (jika ada) dan hitung matrik Dij untuk i, j = 1,
..., n. Dimana n adalah banyaknya data training.

Dij  yi y j ( K ( xi , x j )  2 )
2. Melakukan iterasi untuk perhitungan:
n
a. Ei    j Dij
j 1

213
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

b. i  min{max[  (1  Ei ), i ], C   i }


c.  i   i  i
3. Cek kondisi berhenti ketika memenuhi kondisi,
max(| i |)   atau telah mencapai IterMax, jika tidak,
maka kembali pada langkah ke-2.

Algoritma Sequential Training SVM untuk data dengan 2 kelas


(Binary SVM atau SVM Biner):
Diketahui data training dan testing:

Tabel 7.1 Data Training dan Data Testing


No Tgl/Bln/Thn F1 F2 F3 F4 Kelas
1 9 Juli 2015 13338 13356 13332 13331 Jual
2 10 Juli 2015 13356 13332 13331 13337 Jual
3 11 Juli 2015 13332 13331 13337 13316 Beli Data Latih
4 12 Juli 2015 13331 13337 13316 13316 Beli
5 13 Juli 2015 13337 13316 13316 13316 Beli
6 14 Juli 2015 13313 13346 13347 13304 Beli
7 15 Juli 2015 13346 13347 13304 13304 Beli Data Uji
8 16 Juli 2015 13347 13304 13304 13304 Beli

Kelas jual = +1, dan beli = -1


1. Inisialisasi nilai 𝛼i = 0, λ = 4.32, γ (learning rate) = 0.00406,
C = 100, ε (epsilon) = 0.0004, IterMax=1, σ = 0.7 dan hitung
matrik Dij

Tabel 7.2 𝛼i

𝛼
i

0
0
0
0
0

Diketahui data training dan testing (hasil normalisasi dengan


Xmin= 9634 Xmax= 14728):

214
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

( x  xmin ) (13338  9634 )


x'  x'   0.727129
xmax  xmin 14728  9634

Dij  yi y j ( K ( xi , x j )  2 )
  3.61095 10 -5  
D1, 2  1x1 exp  2

  4.32 2


  2  ( 0.7 )  
 19.6623631 542
1 1 -1 -1 -1

1 1 1 -1 -1 -1
1 1 1 -1 -1 -1
-1 -1 -1 1 1 1
-1 -1 -1 1 1 1
-1 -1 -1 1 1 1

Tabel 7.3 Hasil Perhitungan Dij


Dij 1 2 3 4 5

1 19.6624 19.662363 -19.662364 -19.662365 -19.662318

2 19.662363 19.6624 -19.662359 -19.662348 -19.66235

3 -19.662364 -19.662359 19.6624 19.662381 19.662373

4 -19.662365 -19.662348 19.662381 19.6624 19.662381

5 -19.662318 -19.66235 19.662373 19.662381 19.6624

2. Melakukan iterasi untuk perhitungan (iterasi =1):

n
a. Ei    j Dij
j 1

E1  1D11   2 D12   3 D13   4 D14   5 D15  0


Tabel 7.4 Hasil Perhitungan Ei

i Ei
1 0
2 0
3 0

215
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

4 0
5 0

b. i  min{max[  (1  Ei ), i ], C   i }


1  min{max[ 0.00406 (1  E1 ),1 ],100  1}
1  min{max[ 0.00406 (1  0),0],100  0}  0.00406

Tabel 7.5 Hasil Perhitungan i


i
i
1 0.00406
2 0.00406
3 0.00406
4 0.00406
5 0.00406

c.  i   i  i
1  1  1  0  0.00406  0.00406

Tabel 7.6 Hasil Perhitungan i


i
i
1 0.00406
2 0.00406
3 0.00406
4 0.00406
5 0.00406

3. Cek kondisi berhenti ketika memenuhi kondisi, Karena iterasi =


IterMax (Stop), misalkan jika max(| i |)   ,
dan iterasi < IterMax, maka iterasi = iterasi + 1, lalu kembali
pada langkah ke-2
Hitung b

216
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

1 m m

b     i yi K ( xi , x  )    i yi K ( xi , x  )
2  i 1 i 1 
Set nilai x+ dan x- dari masing kelas yang memiliki nilai 𝛼i tertinggi,
yaitu x  x1 x  x3 dan karena semua nilai 𝛼i > 0, maka
banyaknya support vector (m) = banyak data training, yaitu 5

1 m m

b     i yi K ( xi , x  )    i yi K ( xi , x  )
2  i 1 i 1 
1 5 5

b     i yi K ( xi , x1 )    i yi K ( xi , x3 )
2  i 1 i 1 
5

 y K ( x , x )   y K ( x , x )  ..  
i 1
i i i 1 1 1 1 1 5 y5 K ( x5 , x1 )  0.00405952 95

 y K ( x , x )   y K ( x , x )  ..  
i 1
i i i 3 1 1 1 3 5 y5 K ( x5 , x3 )  0.00406012 71

1
b - 0.00405952 951339599  -0.0040601 2708165399 
2
 0.00405982 829752499

Hasil klasifikasi sign(f(x))


m
f ( x)    i yi K ( xi , x)  b
i 1

Misal menghitung hasil klasfikasi dari uji ke-1, maka tentukan


sign(f(xtest1))
Tabel 7.7 Hasil klasifikasi sign(f(x))
No Tgl/Bln/Thn F1 F2 F3 F4 Ke-
las
1 14 Juli 2015 0.722811 0.722811 0.722811 0.730075 -1
2 15 Juli 2015 0.722811 0.722811 0.730075 0.722222 -1
3 16 Juli 2015 0.722811 0.730075 0.722222 0.728700 -1
5
f ( xtest1 )    i yi K ( xi , xtest1 )  0.00405982 829752499
i 1

217
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

f ( xtest1 )  -0.0040598 4433414133  0.00405982 829752499


 -0.0000000 1603661634 38896

Tabel 7.8 Hasil Perhitungan xtest1

K(xi,xtest1) xtest1
x1 0.999888955584422

x2 0.999908104359568

x3 0.999909913096674

x4 0.999919979151857

x5 0.999928826350961

Hasil kelas prediksi xtest1


sign(f(xtest1)) = -1
Maka xtest1 masuk kelas beli (true).
Algoritma Sequential Training SVM untuk data dengan > 2 kelas,
berikut beberapa strategi yang bisa digunakan:
1. One Against All (OAA) oleh (Cortes and Vapnik, 1995)

Gambar 7.9 Contoh Klasifikasi dengan Metode One-Against-All


Sumber : Sembiring(2007

Tabel 7.9 Contoh 3 SVM Biner dengan Metode One-Against-All

𝑦𝑖 = 1 𝑦𝑖 = −1 Hipotesis

Kelas 1 Bukan kelas 1 𝑓 1 (𝑥) = (𝑤 1 )𝑥 + 𝑏1


Kelas 2 Bukan kelas 2 𝑓 2 (𝑥) = (𝑤 2 )𝑥 + 𝑏 2

218
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Kelas 3 Bukan kelas 3 𝑓 3 (𝑥) = (𝑤 3 )𝑥 + 𝑏 3


2. One-Against-One (OAO) oleh (Fridman, 1996)
Misal banyaknya kelas (k) = 4
Pair-wise. k(k-1)/2

Pair-wise

Misal

Gambar 7.10 Klasifikasi One-Against-One untuk 4 Kelas


Sumber : Sembiring (2007)
SVM Biner dengan Metode One-Against-One

Tabel 7.10 Metode One-Against-One dengan 4 Kelas


𝑦𝑖 = 1 𝑦𝑖 = −1 Hipotesis
Kelas 1 Kelas 2 𝑓 12 (𝑥) = (𝑤 12 )𝑥 + 𝑏12
Kelas 1 Kelas 3 𝑓 13 (𝑥) = (𝑤 13 )𝑥 + 𝑏13
Kelas 1 Kelas 4 𝑓 14 (𝑥) = (𝑤 13 )𝑥 + 𝑏14
Kelas 2 Kelas 3 𝑓 23 (𝑥) = (𝑤 23 )𝑥 + 𝑏 23
Kelas 2 Kelas 4 𝑓 24 (𝑥) = (𝑤 24 )𝑥 + 𝑏 24
Kelas 3 Kelas 4 𝑓 34 (𝑥) = (𝑤 34 )𝑥 + 𝑏 34

3. Binary Decision Tree (BDTSVM) oleh (Gjorgji M., dkk, 2008)


Langkah membuat Tree untuk BDTSVM :
1. Tentukan titik pusat data (center data) tiap kelas.
2. Buat Matrik Jarak (Euclidean) antar titik pusat data.
3. Cari Jarak Terjauh untuk pemisahan kelas (y = +1 dan y = -1)

219
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

4. Tetapkan kelas dari center data dengan jarak terdekat, pada


kelas (y = +1) atau kelas (y = -1) dari hasil pemisahan pada
langkah (3)

Gambar 7.11 Ilustrasi Klasifikasi dengan BDTSVM

Tabel 7.11 Metode BDTSVM dengan 7 Kelas


𝑦𝑖 = 1 𝑦𝑖 = −1 Hipotesis

Kelas 2,3,4,7 Kelas 1, 5, 6 𝑓 (2, 3, 4, 7)(1, 5, 6) (𝑥) = (𝑤 (2, 3, 4, 7)(1, 5, 6) )𝑥 + 𝑏 (2, 3, 4, 7)(1, 5, 6)

Kelas 2,3 Kelas 4,7 𝑓 (2, 3)(4,7) (𝑥) = (𝑤 (2, 3)(4,7) )𝑥 + 𝑏 (2, 3)(4,7)

Kelas 1,5 Kelas 6 𝑓 (1, 5)(6) (𝑥) = (𝑤 (1, 5)(6) )𝑥 + 𝑏 (1, 5)(6)

Kelas 2 Kelas 3 𝑓 23 (𝑥) = (𝑤 23 )𝑥 + 𝑏 23

Kelas 4 Kelas 7 𝑓 47 (𝑥) = (𝑤 47 )𝑥 + 𝑏 47

Kelas 1 Kelas 5 𝑓 15 (𝑥) = (𝑤 15 )𝑥 + 𝑏15

220
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

4. Directed Acrilyc Graph SVM (DAGSVM) (C. W. Hsu dan C. J. Lin,


2002)

Gambar 7.12 Ilustrasi Klasifikasi dengan metode DAGSVM

7.4 Tugas Kelompok


1. Jelaskan perbedaan antara regresi dengan klasifikasi!
2. Jelaskan perbedaan antara Underfitting, Just right, dan Overfitting
dalam sudut pandang regresi dan klasifikasi!
3. Jelaskan pengertian dari Support Vector, dan Lagrange Multipier
pada SVM!
4. Berdasarkan Algoritma Sequential Training SVM untuk data
dengan 2 kelas (Binary SVM) pada materi, jika fungsi kernel RBF
digantikan dengan fungsi kernel polynomial (c=1 dan d=2).
Tentukan besarnya nilai akurasi dari data testing!
5. Selesaikan kasus berikut menggunakan OAOSVM, atau OAASVM
atau BDTSVM, atau DAGSVM (Pilih salah satu), dengan nilai
parameter 𝛼i = 0, λ = 4.32, γ (learning rate) = 0.00406, C = 100, ε
(epsilon) = 0.0004, IterMax=2, dengan kernel RBF (σ = 0.7).
Tentukan besarnya nilai akurasi dari data testing!
Data training:

221
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Data testing:

Kelas Aktual

222
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

BAB 8 Teknologi dan Tools


Big Data (Bagian 3)

8.1 Editor + GUI untuk Spark Java/


Spark Scala/ PySpark
 Editor + GUI, dengan adanya 2 bagian ini maka harapannya
akan memudahkan developer dalam membuat koding dari
awal dalam lingkungan IDE atau mengembangkan
implementasi algoritma untuk penyelesaian kasus apapun
menjadi lebih cepat, nyaman dan lebih profesional.

Gambar 8.1 Get Eclipse OXYGEN


 Java/ Scala/ Python/ R/ etc, ini hanya beberapa macam dari
bahasa pemrograman yang masing-masing memiliki kelebihan
dan keterbatasan. Silahkan dipilih dengan bijak, manakah
bahasa pemrograman untuk Analisis Big Data yang anda
gunakan, sesuai dengan style anda sebagai developer.

Gambar 8.2 Bahasa Java/ Scala/ Python/ R

223
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

8.1.1 Install Sublime Text


- Ketikkan perintah berikut
sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer
sudo ln -s /usr/lib/sublime-text-3/sublime_text
/usr/local/bin/sublime

8.1.2 Eclipse + Spark Standalone (Java EE)


- Link kode wordcount Spark Standalone: https://goo.gl/DNMsNG
Jika muncul “Exception in thread "main"
org.apache.spark.SparkException: A master URL must be set in
your configuration”

Ganti kode
“SparkSession spark =
SparkSession.builder().appName("JavaWordCount")
.getOrCreate();”
Dengan
SparkSession spark =
SparkSession.builder().appName("JavaWordCount").config("spar
k.master", "local[*]")
.getOrCreate();

224
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

8.1.3 Eclipse + Spark + Scala IDE + Maven


- Install Scala IDE pada Eclipse, sebelum Buka Eclipse, ketikkan kode
berikut:
nidos@Master:~$ su hduser
hduser@Master:/home/nidos$ cd
hduser@Master:~$ sudo chmod 777 -R /home/hduser/eclipse-
workspace/
hduser@Master:~$ sudo chmod 777 -R /home/hduser/eclipse

Klik Help, pilih “Install New Software”:

225
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Pada work with, masukkan “http://download.scala-


ide.org/sdk/lithium/e47/scala212/stable/site”, klik Add

Masukkan name, misal “Scala IDE”, klik OK

klik Select All, klik Next

226
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

klik Next

Pilih accept, klik Finish

Tunggu beberapa waktu sampai instalasi selesai

227
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Klik install anyway

Klik Restart Now

Open Perspective Scala, klik Other

228
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Scala IDE berhasil di-install

Setelah di Klik Open

229
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Cek FileNew

- Latihan 1: “HelloScala.scala”. Cek FileNew  misal mencoba


membuat “Scala Object” dengan nama “HelloScala”
package com.nidos.myscala

object HelloScala {
def main(args:Array[String]){
println("Hello my Scala")
}
}

230
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Cara menjalankannya degan menggunakan Run Configuration di


atas.

- Latihan 2: Scala Spark Project dengan Maven


Klik Kanan di “Package Explorer”  New  Project

Pilih “Maven Project”, klik Next

231
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

klik Next

klik Next

Isikan, misal seperti berikut, klik Finish

232
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Tunggu beberapa waktu

Klik kanan “mysparkexample”, pilih Configure, klik “Add


Scala Nature”

Hassil “Add Scala Nature”

233
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Klik kanan “mysparkexample”, pilih Properties

Klik “Java Build Path”, klik Tab Source

Klik “Add Folder”, klik “main”, lalu klik “Create New


Folder”

234
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Isikan folder name, misal “scala”, klik Next

Klik Add

Isikan “**/*.scala”, lalu klik OK

235
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Klik Finish

Klik OK

Klik “Apply and Close”

236
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Pada “Package Explorer”, pada project “mysparkwxample”,


“src/main/scala” sudah muncul

Pada project “mysparkwxample”, klik kanan pada


“src/main/scala”, klik ”Package”

Isikan name dengan, misal “com.nidos.mysparkexample”, klik


Finish

237
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Package sudah muncul

Klik kanan pada package “com.nidos.mysparkexample”, klik


“Scala Object”

Masukkan name, misal “WordCount”, klik Finish, link


kode: https://goo.gl/ootdZN

238
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Setelah diklik “Finish”, link kode: https://goo.gl/ootdZN

Buat main “ketik main”, lalu tekan Ctrl+Space

Konfigurasi file “pom.xml” untuk Spark, tambahkan


dependencies dibawah ini, setelah line 17

<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.10.4</version>
</dependency>

<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>1.4.1</version>
</dependency>

239
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Tunggu beberapa waktu

Sampai Selesai

Cek Auto format Spark

240
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Ketika running, jangan memilih pada “Java Application”

dan muncul error “Error: Could not find or load main class
com.nidos.spark.mysparkexample.WordCount”

Ubah ke “Scala Application”

Jika masih ada error “Error: Could not find or load main
class com.nidos.spark.mysparkexample.WordCount” maka coba
tambahkan kode berikut “package com.nidos.mysparkexample”,
langsung jalankan tanpa dengan “Scala Application”

241
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Set Argument
“hdfs://localhost:9000/user/hduser/wordcount/input/input3.tx
t”, lalu klik Run

Project berhasil dijalankan :D

242
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

8.1.4 Eclipse + Spark + Scala IDE + SBT


- Setting up Spark Dev Environment using SBT and Eclipse. Ketikkan
kode berikut (http://www.scala-sbt.org/download.html)
nidos@Master:~$ echo "deb https://dl.bintray.com/sbt/debian
/" | sudo tee -a /etc/apt/sources.list.d/sbt.list

nidos@Master:~$ sudo apt-key adv --keyserver


hkp://keyserver.ubuntu.com:80 --recv
2EE0EA64E40A89B84B2DF73499E82A75642AC823

Ketikkan kode berikut:


nidos@Master:~$ sudo apt-get update
nidos@Master:~$ sudo apt-get install sbt

243
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Install sbt telah selesai

- Misal membuat project SBT, namanya “SparkSVM”. Ketikkan


perintah berikut ( Link kodenya: https://goo.gl/omA1ks ):
nidos@Master:~$ cd ./eclipse-workspace
nidos@Master:~/eclipse-workspace$ mkdir SparkSVM
nidos@Master:~/eclipse-workspace$ cd ./SparkSVM/
nidos@Master:~/eclipse-workspace/SparkSVM$ mkdir -p
src/{main,test}/{java,resources,scala}
nidos@Master:~/eclipse-workspace/SparkSVM$ mkdir lib project
target
nidos@Master:~/eclipse-workspace/SparkSVM$

244
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Cek struktur folder, misal dengan sublime. Ketikkan perintah


berikut:
nidos@Master:~/eclipse-workspace/SparkSVM$ subl .

Misal kita sudah download file project referensi


“Spark_kernel_svm-master” dari link
berikut: https://goo.gl/j3dWL4

Ketikkan berikut, lalu cek di sublime (jgn lupa mengganti


name :=“SparkSVM”):
nidos@Master:~/eclipse-workspace/SparkSVM$ cp
/home/nidos/Downloads/Spark_kernel_svm-master/build.sbt ./

245
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Jangan lupa mengganti namenya menjadi  name :=“SparkSVM”

Buat file plugins.sbt pada folder “SparkSVM/project”.


Ketikkan perintah berikut, lalu cek di sublime:
nidos@Master:~/eclipse-workspace/SparkSVM$ cd project/
nidos@Master:~/eclipse-workspace/SparkSVM/project$ touch
plugins.sbt

Masukkan kode “addSbtPlugin("com.typesafe.sbteclipse" %


"sbteclipse-plugin" % "5.2.4")” pada file plugins.sbt, lalu
simpan

246
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Cek Struktur foder lagi. Ketikkan perintah berikut:


nidos@Master:~/eclipse-workspace/SparkSVM/project$ cd ..
nidos@Master:~/eclipse-workspace/SparkSVM$ find

Jalankan SBT. Ketikkan perintah berikut:


nidos@Master:~/eclipse-workspace/SparkSVM$ ls
nidos@Master:~/eclipse-workspace/SparkSVM$ sbt

247
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

tunggu beberapa waktu

File Dependencies dari SBT sudah berhasil dicreate

Klik File, klik Open Tab

248
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Ketikkan, untuk cek “.classpath” dan lainnya, berikut:


nidos@Master:~$ cd ./eclipse-workspace/SparkSVM/
nidos@Master:~/eclipse-workspace/SparkSVM$ ls
build.sbt lib project src target
nidos@Master:~/eclipse-workspace/SparkSVM$ ls -a
. .. build.sbt .classpath lib project .project
.settings src target
nidos@Master:~/eclipse-workspace/SparkSVM$

Buka Eclipse, klik File, klik Import

Pilih General, klik “Existing Projects into ....”, klik Next

249
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Klik Browse

Cari pada folder “/home/nidos/eclipse-workspace” Pilih


“SparkSVM”, klik OK

Klik Finish

250
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Project “SparkSVM” siap untuk dicopykan kode program dari


referensi

Copykan 3 code berikut, dari project referen ke Project

Siapkan dataset, misal “iris3.txt” difolder, misal


“/home/nidos/eclipse-workspace/SparkSVM”

251
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Run Project “SparkSVM”, dengan klik kanan file “main.scala”,


pilih “Run As”, klik “2Scala Application”, jika belum
muncul “result.txt”

Set Run Project “SparkSVM” by kode program, dengan mengisi


langsung args(0)-nya

Pada file main.scala, ganti kode berikut:


if (args.length != 1 ) {
println("Usage: /path/to/spark/bin/spark-submit --packages amplab:spark-indexedrdd:0.1" +
"target/scala-2.10/spark-kernel-svm_2.10-1.0.jar <data file>")
sys.exit(1)
}
val logFile = "README.md" // Should be some file on your system
//val conf = new SparkConf().setAppName("KernelSVM Test")

Dengan
val args = Array.fill(1)("")
val logFile = "README.md" // Should be some file on your system
val conf = new SparkConf()
conf.setAppName("SparkSVM")
conf.setMaster("local[*]")
val sc = new SparkContext(conf)

args(0)="file:///home/nidos/eclipse-workspace/SparkSVM/iris3.txt"

252
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Run lagi Project “SparkSVM”, dengan klik kanan file


“main.scala”, pilih “Run As”, klik “2Scala Application”

Runing Project “SparkSVM” Sukses

Hasil Runing Project “SparkSVM” berupa file “result.txt”,


juga sudah muncul

253
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Isi dari file “result.txt”

8.1.5 Eclipse + PySpark + PyDev


- Setting up Eclipse + PySpark + PyDev. Ikuti langkah-langkah berikut:
Klik Help, pilih “Install New Software”:

254
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Pada work with, masukkan “http://www.pydev.org/updates”,


Tekan Enter

Select All, klik Next

Klik Next

255
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Pilih “I accept ..”, Klik Finish

Tunggu beberapa waktu untuk “Installing Software..”

Klik Install Anyway

256
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Klik Restart Now

Open Perspective PyDev, klik Other

PyDev berhasil di-install

257
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Setelah di Klik Open, klik FileNew

Ketikkan,
hduser@Master:~$ sudo gedit ~/.bashrc

Pastikan pada file “bashrc” anda sudah berisi:

..
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export JRE_HOME=/usr/lib/jvm/java-8-oracle/jre
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib/native"
export HADOOP_CLASSPATH=/usr/lib/jvm/java-8-oracle/lib/tools.jar

export SPARK_HOME=/home/hduser/spark-2.2.0-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin
export PATH=$PATH:$SPARK_HOME/bin/pyspark
export XDG_RUNTIME_DIR=""

# Add the PySpark classes to the Python path:


export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH

export MAHOUT_HOME=/usr/local/mahout
export PATH=$PATH:$MAHOUT_HOME/bin
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop

# added by Anaconda2 4.4.0 installer


export PATH="/home/hduser/anaconda/bin:$PATH“
..

258
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Latihan 1: “HelloPySparkOnEclipse”. Cek FileNew  misal men-


coba membuat “PySpark On Eclipse” dengan nama “HelloPySpar-
kOnEclipse”
klik “Click here to configure an interpreter not listed”

Klik “Quick Auto-Config”, lalu klik “Libraries”

259
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Klik “New Folder”

Pilih folder Python pada Spark Home, misal di


“/home/hduser/spark-2.2.0-bin-hadoop2.7/python”, lalu Klik
“OK”

260
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Pilih folder Python pada Spark Home, sudah berhasil


dimasukkan, lalu klik “New Egg/Zip(s)”

Masuk ke directory “/home/hduser/spark-2.2.0-bin-


hadoop2.7/python/lib”, ubah “*.egg” ke “*.zip”, lalu klik
OK.

261
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Pilih “/home/hduser/spark-2.2.0-bin-
hadoop2.7/python/lib/py4j-0.10.4-src.zip”, lalu klik OK

File “/home/hduser/spark-2.2.0-bin-
hadoop2.7/python/lib/py4j-0.10.4-src.zip”, berhasil
ditambahkan

262
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Klik Apply

Klik tab “Environment”, klik New

Masukkan Name “SPARK_HOME” dan Value “/home/hduser/spark-


2.2.0-bin-hadoop2.7”, klik OK

263
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

264
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

265
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

266
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

267
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

268
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

269
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

270
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

271
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

272
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

273
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

274
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

275
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

276
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

277
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

278
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

279
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

280
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

281
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

282
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

283
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

284
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

285
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

286
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

287
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

288
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

289
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

290
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

291
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

292
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

293
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

294
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

295
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

296
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

297
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

298
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

299
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

300
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

301
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

302
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

303
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

304
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

305
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

306
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

307
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

308
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

309
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

310
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

311
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

312
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-bin-


hadoop2.7”, berhasil ditambahkan

313
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master


local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK

Masukkan Name “SPARK_CONF_DIR” dan Value


“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK

314
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Klik Apply

Klik Finish

Buat Source Folder

315
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Klik kanan “src”  New  Pilih PyDev Module

Beri Name, misal “wordc”, klik Finish

Masukkan kode, misal dari “https://goo.gl/Fu6geJ”

316
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Klik kanan “wordc.py”, pilih “Python Run”

Jika muncul error berikut, maka jalankan dulu hadoop anda


hduser@Master:~$ start-all.sh

Lalu Klik kanan lagi “wordc.py”, pilih “Python Run”

317
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

File “wordc.py”, berhasil dijalankan

8.1.6 PySpark + Pycharm


- Setting up pySpark Dev Environment using Pycharm. Ikuti langkah-
langkah berikut:
Download pycharm lalu ekstrak, misal di folder /usr/local/

318
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Download pycharm lalu ekstrak, misal di folder /usr/local/

Sebelum menjalankan pycharm, jalankan terlebih dahulu


Hadoop. Ketikkan:
hduser@Master:/home/nidos$ start-all.sh

319
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Lalu jalankan pyspark, lalu baru jalankan pyCharm. Ketikkan:


hduser@Master:/home/nidos$ pyspark

Jalankan Pycharm. Ketikkan:


hduser@Master:~$ cd /usr/local/pycharm/bin/
hduser@Master:/usr/local/pycharm/bin$ ls
format.sh idea.properties pycharm64.vmoptions
restart.py
fsnotifier inspect.sh pycharm.png
fsnotifier64 log.xml pycharm.sh
fsnotifier-arm printenv.py pycharm.vmoptions
hduser@Master:/usr/local/pycharm/bin$ ./pycharm.sh
Klik Create New Project

320
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan nama project pada Location, misal


“/home/hduser/PycharmProjects/pySpark”, klik Create

Tampilan project “pySpark”

321
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Pada project “pySpark”, misal buat kode “WordCount.py”

Jika muncul Error

322
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Edit Configuration

Konfigurasi pada Environment Variable, tekan tombol plus,


lalu tambahkan path SPARK_HOME, misal di
“/home/hduser/spark-2.2.0-bin-hadoop2.7”

Dan PYTHONPATH, misal dari path “/home/hduser/spark-2.2.0-


bin-hadoop2.7/python/lib/py4j-0.10.4-
src.zip:/home/hduser/spark-2.2.0-bin-hadoop2.7/python”

323
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Konfigurasi pada Environment Variable, bisa juga dengan cara


copy kode berikut, lalu klik icon paste, part 1 of 2.

SPARK_HOME=/home/hduser/spark-2.2.0-bin-hadoop2.7
PYTHONPATH=/home/hduser/spark-2.2.0-bin-
hadoop2.7/python/lib/py4j-0.10.4-src.zip:/home/hduser/spark-
2.2.0-bin-hadoop2.7/python

Konfigurasi pada Environment Variable, bisa juga dengan cara


copy kode berikut, lalu klik icon paste, part 2 of 2 (klik
OK, klik Apply, klik OK).

SPARK_HOME=/home/hduser/spark-2.2.0-bin-hadoop2.7
PYTHONPATH=/home/hduser/spark-2.2.0-bin-
hadoop2.7/python/lib/py4j-0.10.4-src.zip:/home/hduser/spark-
2.2.0-bin-hadoop2.7/python

324
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Ketikkan:
hduser@Master:~$ sudo gedit ~/.bashrc

Pastikan pada file “bashrc” anda sudah berisi:

..
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export JRE_HOME=/usr/lib/jvm/java-8-oracle/jre
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib/native"
export HADOOP_CLASSPATH=/usr/lib/jvm/java-8-oracle/lib/tools.jar

export SPARK_HOME=/home/hduser/spark-2.2.0-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin
export PATH=$PATH:$SPARK_HOME/bin/pyspark
export XDG_RUNTIME_DIR=""

# Add the PySpark classes to the Python path:


export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH

export MAHOUT_HOME=/usr/local/mahout
export PATH=$PATH:$MAHOUT_HOME/bin
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop

# added by Anaconda2 4.4.0 installer


export PATH="/home/hduser/anaconda/bin:$PATH“
..

Fie “wordc.py” berhasil dijalankan, link file kode:


“https://goo.gl/Fu6geJ” atau dari “https://goo.gl/QZiLyX”

325
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Solusi untuk hidden “Setting default log level to "WARN".”

Masuk ke directory spark, lalu


hduser@Master:~$ cd ./spark-2.2.0-bin-hadoop2.7/

326
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Solusi untuk hidden “Setting default log level to "WARN".”


Masuk ke directory spark, lalu
hduser@Master:~$ cd ./spark-2.2.0-bin-hadoop2.7/
hduser@Master:~/spark-2.2.0-bin-hadoop2.7$ cd ./conf/
hduser@Master:~/spark-2.2.0-bin-hadoop2.7/conf$ ls

Solusi untuk hidden “Setting default log level to "WARN".”


hduser@Master:~/spark-2.2.0-bin-hadoop2.7/conf$ sudo cp
./log4j.properties.template ./log4j.properties

Replace semua isi file “log4j.properties” dengan isi file


dari link “https://goo.gl/GiWCfy”
Restart pySpark dengan tekan control+D atau ketik quit(),
lalu tekan enter

Lalu jalankan lagi file *.py

Setting default log


level to "WARN“
sudah berhasil
terhidden

327
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Cara meng-copy Environment Variables 1 of 3.


Misal, anda baru saja membuat file baru dengan nama
“hdfs_wordcount.py”, maka biasanya Environment Variables
belum lengkap, seperti gambar berikut

Cara meng-copy Environment Variables 2 of 3


Solusinya, anda bisa mengisinya dengan cara meng-copy, misal
dari Environment Variables
dari file “wordc.py” kita klik, lalu blok pada konfigurasi
lalu klik icon Copy

328
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Cara meng-copy Environment Variables 3 of 3


Lalu klik lagi file “hdfs_wordcount.py”, pilih Environment
Variables, lalu klik icon Paste, klik OK, klik Apply, klik
OK

Code hdfs_wordcount.py streaming berhasil dijalankan.


Link file kode “https://goo.gl/vY6f4E”

Karena file kode tersebut streaming, maka akan selalu


mencari file baru untuk diproses kembali dengan konsep
wordcount setiap waktu (misal per detik)

Proses Streaming, dari setiap waktu koding


akan dijalankan untuk melakukan proses
wordcount jika ada data baru yang masuk di
hdfs, misal : /user/hduser/wordcount/input
Pada bagian hijau, Proses belum ada karena
pada alamat hdfs tersebut masih belum ada
data baru yang masuk

329
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Tampilan isi dari alamat “/user/hduser/wordcount/input” pada


hdfs yang masih belum ada data baru yang masuk (masih
kosong)

Misal kita telah set “ssc.awaitTerminationOrTimeout(60*10)


untuk proses streaming supaya dijalankan selama 10 menit”,
lalu jalankan code hdfs_wordcount.py streaming

Pada saat koding dijalankan, untuk melakukan proses wordcount maka masukkan file
text sembarang ke alamat /user/hduser/wordcount/input pada hdfs, misal file terebut
adalah “input.txt” dan “input2.txt”, dari link berikut “https://goo.gl/6d7CWQ”

330
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Pada saat koding dijalankan, untuk melakukan proses


wordcount maka masukkan file text sembarang ke alamat
:/user/hduser/wordcount/input pada hdfs, pada Hue klik
Upload, klik “Select files”

Klik Open

Tampilan pada Hue setelah Klik Open

331
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Segera kembali ke PyCharm, maka hasil wordcount untuk file


“input.txt” akan muncul

Misal melakukan proses wordcount lagi untuk file yang kedua


ke alamat :/user/hduser/wordcount/input pada hdfs, pada Hue
klik Upload, klik “Select files”

Klik Open

332
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Tampilan pada Hue setelah Klik Open

Segera kembali ke PyCharm, maka hasil wordcount untuk file


“input2.txt” akan muncul

333
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Wordcount streaming ke-2.


Link file kode “https://goo.gl/cnGuHo”

Copy semua file pada project di PyCharm, misal nama


projectnya “pySparkWordCount”

Hasil Copy semua file pada project di PyCharm, misal nam


projectnya “pySparkWordCount”.
1. Run file “streaming.py”, lalu
2. Run file “file.py” pada terminal

334
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

1. file “streaming.py” telah aktif, lalu


2. Run file “file.py” pada terminal, ketik seperti dibawah
ini, lalu tekan enter

1. file “streaming.py” telah aktif dan telah memproses


wordcount lalu
2. file “file.py” telah aktif pada terminal, untuk simulasi
membuat file streaming log{}.txt

335
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Wordcount streaming ke-3 (pySpark Streaming (HDFS File) &


Pycharm). Link file kode “”

Buat project baru di PyCharm, misal nama projectnya


“pySparkWordCountHDFS”

Atau dengan cara buat package pada PycharmProjects, misal


nama package-nya “pySparkWordCountHDFS”

336
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Hapus file “__init__.py”

Copy file dari “pySparkWordCountLocal” ke


“pySparkWordCountHDFS”

337
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Hasil Copy semua file pada project di PyCharm, misal nam


projectnya “pySparkWordCount”.
1. Run file “streaming.py”, lalu
2. Run file “file.py” pada terminal

1. file “streaming.py” telah aktif, lalu


2. Run file “file.py” pada terminal, ketik seperti dibawah
ini, lalu tekan enter

338
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

1. file “streaming.py” telah aktif dan telah memproses


wordcount lalu
2. file “file.py” telah aktif pada terminal, untuk simulasi
membuat file streaming log{}.txt

– pySpark Naive Bayes (From Scratch) & Pycharm


Link file kode “https://goo.gl/i9Cn5v”
Buat package baru di PyCharm, misal namanya “pySparkNB”, dan
masukkan file “train_pos.txt‘, train_neg.txt‘,
test_pos.txt‘, test_neg.txt” ke dalam HDFS pada
hdfs://localhost:9000/user/hduser/NB_files

339
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Tampilan file “train_pos.txt‘, train_neg.txt‘,


test_pos.txt‘, test_neg.txt” pada
hdfs://localhost:9000/user/hduser/NB_files dengan Hue

8.1.7 IntelliJ IDEA + SBT


- Setting up Scala Spark + SBT Dev Environment using IntelliJ IDEA
Download IntelliJ IDEA lalu ekstrak, misal di folder
/usr/local/

340
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Tampilan folder hasil download

hduser@Master:~$ sudo chown hduser:hadoop -R /usr/local/idea-IC


hduser@Master:~$ sudo chmod 777 -R /usr/local/idea-IC

Edit file bashrc, tambahkan “export IBUS_ENABLE_SYNC_MODE=1”


hduser@Master:~$ sudo subl ~/.bashrc
Atau gunakan, hduser@Master:~$ sudo gedit ~/.bashrc

hduser@Master:~$ source ~/.bashrc

341
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Jalankan IntelliJ IDEA.


hduser@Master:~$ cd /usr/local/idea-IC/bin/
hduser@Master:/usr/local/idea-IC/bin$ ./idea.sh
Misal pilih “Do not import settings” Klik OK

Pilih Theme

342
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Centang “Create a desktop ..” dan “For all users ..”

Create Launcher Script

Klik Next

343
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Klik Install Scala

Klik Install and Enable -> Optional (Sebaiknya tidak perlu


install IdeaVim)

Klik “Start using IntelliJ IDEA” 1 of 2

344
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Klik “Start using IntelliJ IDEA” 2 of 2

Klik “Create New Project”

Klik Scala, pilih SBT, klik Next

345
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masukkan name, misal “MYSVMnBPPGD”

Karena menggunakan SBT, sebaiknya uncheck pada Sources pada


Scala, lalu klik Finish

Klik File, pilih “Project Structure...”

346
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Klik Modules, Pada “mysvmnbppgd”, Klik tab “Dependencies”,


set seperti berikut

Klik Modules, Pada “mysvmnbppgd-build”, Klik tab


“Dependencies”, set seperti berikut, klik Apply, klik OK

347
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Tampilan di IntelliJ IDEA

Tampilan di Explorer Linux (nautilus)

348
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Ketikkan berikut, agar folder tidak terkunci


hduser@Master:~$ cd ./ideaProject
hduser@Master:~/ideaProject$ sudo chmod 777 -R ./

Download kode program SVM dari link: https://goo.gl/TVMZGn


(sudah dgn kernel Poly) atau https://goo.gl/ttW5c9 (belum
ada kernel Poly)

Copy file build.sbt dari folder “/home/nidos/Download/BPPGD-


master” ke “/home/hduser/ideaProject/MYSVMnBPPGD”

349
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Copy semua file dari folder “/home/nidos/Download/BPPGD-


master/src/main/scala” ke
“/home/hduser/ideaProject/MYSVMnBPPGD/src/main/scala”

Klik Replace

Lalu ketikkan lagi berikut:


hduser@Master:~/ideaProject$ sudo chmod 777 -R ./

350
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Masuk Ke “Modules”, pada “mysvmbppgd”, klik “Dependencies”,


klik tanda “-” merah. Klik Apply, klik OK

Masuk Ke “Project Structure”, klik Libraries

Klik tanda “-” warna merah, klik OK

351
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Klik Apply, klik OK

Lalu ketikkan lagi


hduser@Master:~/ideaProject$ sudo chmod 777 -R ./

Buka file “build.sbt” pada IntelliJ IDEA

352
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Klik “Enable auto-Import”

Tunggu beberapa waktu, sampai semua file dependency sudah


selesai didownload

353
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Jika muncul error


Error:Error while importing SBT project:<br/>...<br/><pre>[error] public: unable to get
resource for amplab#spark-indexedrdd;0.4.0: res=https://repo1.maven.org/maven2/amplab/spark-
indexedrdd/0.4.0/spark-indexedrdd-0.4.0.pom: java.net.UnknownHostException: repo1.maven.org
[error] Spark Packages Repo: unable to get resource for amplab#spark-indexedrdd;0.4.0:
res=http://dl.bintray.com/spark-packages/maven/amplab/spark-indexedrdd/0.4.0/spark-indexedrdd-
0.4.0.pom: java.net.UnknownHostException: dl.bintray.com
[error] Repo at github.com/ankurdave/maven-repo: unable to get resource for amplab#spark-
indexedrdd;0.4.0: res=https://raw.githubusercontent.com/ankurdave/maven-
repo/master/amplab/spark-indexedrdd/0.4.0/spark-indexedrdd-0.4.0.pom:
java.net.UnknownHostException: raw.githubusercontent.com

[error]
[error] unresolved dependency: com.ankurdave#part_2.10;0.1: Resolution failed several times for
dependency: com.ankurdave#part_2.10;0.1 {compile=[default(compile)]}::
[error] public: unable to get resource for com/ankurdave#part_2.10;0.1:
res=https://repo1.maven.org/maven2/com/ankurdave/part_2.10/0.1/part_2.10-0.1.pom:
java.net.UnknownHostException: repo1.maven.org
[error] Spark Packages Repo: unable to get resource for com/ankurdave#part_2.10;0.1:
res=http://dl.bintray.com/spark-packages/maven/com/ankurdave/part_2.10/0.1/part_2.10-0.1.pom:
java.net.UnknownHostException: dl.bintray.com
[error] Repo at github.com/ankurdave/maven-repo: unable to get resource for
com/ankurdave#part_2.10;0.1: res=https://raw.githubusercontent.com/ankurdave/maven-
repo/master/com/ankurdave/part_2.10/0.1/part_2.10-0.1.pom: java.net.UnknownHostException:
raw.githubusercontent.com
[error]
[error] unresolved dependency: org.scalatest#scalatest_2.11;2.2.4: Resolution failed several
times for dependency: org.scalatest#scalatest_2.11;2.2.4 {test=[default(compile)]}::
[error] public: unable to get resource for org/scalatest#scalatest_2.11;2.2.4:
res=https://repo1.maven.org/maven2/org/scalatest/scalatest_2.11/2.2.4/scalatest_2.11-2.2.4.pom:
java.net.UnknownHostException: repo1.maven.org
[error] Spark Packages Repo: unable to get resource for org/scalatest#scalatest_2.11;2.2.4:
res=http://dl.bintray.com/spark-
packages/maven/org/scalatest/scalatest_2.11/2.2.4/scalatest_2.11-2.2.4.pom:
java.net.UnknownHostException: dl.bintray.com
[error] Repo at github.com/ankurdave/maven-repo: unable to get resource for
org/scalatest#scalatest_2.11;2.2.4: res=https://raw.githubusercontent.com/ankurdave/maven-
repo/master/org/scalatest/scalatest_2.11/2.2.4/scalatest_2.11-2.2.4.pom:
java.net.UnknownHostException: raw.githubusercontent.com
[error]
[error] unresolved dependency: org.scalacheck#scalacheck_2.11;1.12.2: Resolution failed several
times for dependency: org.scalacheck#scalacheck_2.11;1.12.2 {test=[default(compile)]}::
[error] public: unable to get resource for org/scalacheck#scalacheck_2.11;1.12.2:
res=https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.12.2/scalacheck_2.11-
1.12.2.pom: java.net.UnknownHostException: repo1.maven.org
[error] Spark Packages Repo: unable to get resource for
org/scalacheck#scalacheck_2.11;1.12.2: res=http://dl.bintray.com/spark-
packages/maven/org/scalacheck/scalacheck_2.11/1.12.2/scalacheck_2.11-1.12.2.pom:
java.net.UnknownHostException: dl.bintray.com
[error] Repo at github.com/ankurdave/maven-repo: unable to get resource for
org/scalacheck#scalacheck_2.11;1.12.2: res=https://raw.githubusercontent.com/ankurdave/maven-
repo/master/org/scalacheck/scalacheck_2.11/1.12.2/scalacheck_2.11-1.12.2.pom:
java.net.UnknownHostException: raw.githubusercontent.com
[error] Total time: 9 s, completed Dec 16, 2017 1:27:20 PM</pre><br/>See complete log in <a
href="file:/home/hduser/.IdeaIC2017.2/system/log/sbt.last.log">file:/home/hduser/.IdeaIC2017.2/s
ystem/log/sbt.last.log</a>

Maka solusinya cek koneksi internet anda

354
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Maka solusinya cek koneksi internet anda, dengan klik “Wired


connection 1”

Semua file dependencies dari Build.sbt sudah berhasil


didownload, abaikan warning pada log

355
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Untuk menjalankan kode program, buka file main.scala, klik


kanan, pilih “TestKernelSVM”

Kode program, berhasil dibuild, dan ada petunjuk “spark-


submit ..”, jika mau menjalankan dari Terminal

Usage: /path/to/spark/bin/spark-submit --packages amplab:spark-


indexedrdd:0.4.0target/scala-2.11/ppackubuntu_2.11-1.0.jar <data file>

356
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Pada tipe “VALIDATION”, pada file “main.scala” terdapat


args(0), args(1), .., args(6)

- args(0), tipe
- args(1), trainingfile: Path of the training set in libsvm
format
- args(2), lambda: Regularization Term
- args(3), sigma: Kernel Parameter
- args(4), iterations: Number of iterations
- args(5), outputfile: log file
- args(6), numfeatures: Number of variables of the dataset

Contoh argument yang digunakan:


VALIDATION
file:///home/hduser/ideaProject/MYSVMnBPPGD/iris3.txt
0.8
1.0
10
result.txt
4

Pada tipe “TEST”, pada file “main.scala” terdapat args(0),


args(1), .., args(6), args(7)

- args(0), tipe
- args(1), trainingfile: Path of the training set in libsvm
format
- args(2), lambda: Regularization Term
- args(3), sigma: Kernel Parameter
- args(4), iterations: Number of iterations
- args(5), outputfile: log file
- args(6), numfeatures: Number of variables of the dataset
- args(7), testingfile: Path of the testing set in libsvm
format

Contoh argument yang digunakan:


args(0)="TEST"
args(1)="file:///home/hduser/ideaProject/MYSVMnBPPGD/iris3.txt"
args(2)="0.8"
args(3)="1.0"
args(4)="20"
args(5)="result.txt"
args(6)="4"
args(7)="file:///home/hduser/ideaProject/MYSVMnBPPGD/iristest3.txt"

357
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Cara Set Argument di IntelliJ IDEA: Klik Run, pilih “Edit


Configurations....”

Cara Set Argument di IntelliJ IDEA: Pada “Program argument”,


masukkan, misal seperti berikut, lalu klik OK, klik Apply,
klik OK

VALIDATION
file:///home/hduser/ideaProject/MYSVMnBPPGD/iris3.txt
0.8
1.0
10
result.txt
4

358
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Running kembali kode programnya, klik kanan “main.scala”,


pilih Run ”TestKernelSVM”

Hasil Running kembali kode program

result.txt, berisi:
Training time: 10 Accuracy: 1.0 AUC: 1.0
Training time: 5 Accuracy: 1.0 AUC: 1.0
Training time: 4 Accuracy: 1.0 AUC: 1.0
Training time: 3 Accuracy: 1.0 AUC: 1.0
Training time: 2 Accuracy: 1.0 AUC: 1.0
Mean_Accuracy: 1.0 Mean_AUC: 1.0

359
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Tampilan project

Running tanpa argument (tipe TEST). Pastikan agument pada


“Run  Edit Configurations..  Program argument” telah
kosong

Lalu pada file main.scala, dibawahnya kode “def main(args:


Array[String]) {”, tambahkan kode berikut

//untuk tipe TEST


//val args = Array("","","","","","","","") atau
val args = Array.fill(8)("")

Lalu set arguments-nya diatas koding “val action = args(0)”,


misal
args(0)="TEST"
args(1)="file:///home/hduser/ideaProject/MYSVMnBPPGD/iris3.txt"
args(2)="0.8"
args(3)="1.0"
args(4)="20"
args(5)="resultTest.txt"
args(6)="4"
args(7)="file:///home/hduser/ideaProject/MYSVMnBPPGD/iristest3.txt"

Hasil Running tanpa argument (tipe TEST)

360
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

8.1.8 Konfigurasi & Solusi Error/Bug


- Ubuntu Desktop does not load Atau Remove Icon Red Minus
Ketikkan perintah berikut,

Tekan Ctrl+Alt+F1/F2/../F6 atau masuk ke


/usr/share/applications/Xterm, lalu
sudo apt-get install gnome-panel
sudo mv ~/.Xauthority ~/.Xauthority.backup
sudo apt-get install unity-tweak-tool
unity-tweak-tool --reset-unity

Untuk mengembalikan terminal yang hilang (gunakan xterm):


sudo apt-get remove gnome-terminal
sudo apt-get install gnome-terminal

nidos@Master:~$ sudo rm /var/cache/apt/archives/*.*


nidos@Master:~$ sudo rm -R /var/lib/dpkg/info
nidos@Master:~$ cd /var/lib/dpkg/
nidos@Master:/var/lib/dpkg$ sudo mkdir info
nidos@Master:~$ sudo apt-get clean

cat -n /etc/apt/sources.list
ls -la /etc/apt/sources.list.d
tail -v -n +1 /etc/apt/sources.list.d/*
sudo apt-get update
sudo apt-get upgrade
sudo apt-get --reinstall install python3-minimal

- Cara Membuat Icon Eclipse di Ubuntu


Ketikkan perintah berikut:
hduser@Master:~$ sudo mkdir ~/.local/share/applications
hduser@Master:~$ sudo chmod 777 -R ~/.local/share/applications
hduser@Master:~$ sudo gedit ~/.local/share/applications/opt_eclipse.desktop

[Desktop Entry]
Type=Application
Name=Eclipse
Comment=Eclipse Integrated Development Environment
Icon=/home/hduser/eclipse/jee-
Anda install Eclipse
Exec=/home/hduser/eclipse/jee-
Anda install Eclipse
Terminal=false
Categories=Development;IDE;Java;
StartupWMClass=Eclipse

361
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Ketikkan perintah berikut:


hduser@Master:~$ sudo chmod 777 -R ~/.local/share/applications
hduser@Master:~$ sudo nautilus ~/.local/share/applications

Copy Icon Eclipse, lalu paste di Desktop

Hasil paste di Desktop, jangan lupa ketikkan kode berikut:


hduser@Master:~$ cd /usr/local/hadoop
hduser@Master:/usr/local/hadoop$ bin/hadoop fs -chmod -R 777 /

*Agar HDFS hduser bisa juga digunakan oleh user lain, misal nidos,
sehingga ketika eclipse dijalankan dari Desktop nidos, hasil data
prosesing dapat disimpan pada HDFS hduser.

362
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Coba Running dari Desktop

- Solusi Jika Muncul Error pada saat Configure Python Interpreter di


PyCharm
Coba ketikkan berikut:
nidos@Master:~$ sudo apt-get install python-setuptools
nidos@Master:~$ sudo apt-get install python-pip python-dev build-essential
nidos@Master:~$ sudo pip install setuptools --upgrade

363
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

8.2 Konfigurasi Tambahan


8.2.1 Create VM dari file *.vdi dan UUID Baru
- Pada Virtualbox, jika butuh untuk melakukan cloning file *.vdi,
misal “HadoopSpark.vdi” ke folder lain dan direname dengan nama
“HadoopSparkMahoutFix.vdi”
Copy paste file *.vdi, lalu rename filenya dengan
nama bebas

Gambar 8.3 Copy paste file *.vdi

- Set a new UUID untuk file “HadoopSparkMahoutFix.vdi”, agar


UUID-nya tidak sama dengan file aslinya, yaitu “HadoopSpark.vdi”,
dengan cara, tekan tombol window, lalu ketik “cmd” (buka cmd as
administrator).

Gambar 8.4 Buka cmd as administrator

364
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Ketikkan “cd C:\Program Files\Oracle\VirtualBox”, atau directory


tempat VirtualBox di-install. Lalu tekan enter

Gambar 8.5 Ketikkan “cd C:\Program Files\Oracle\VirtualBox”

- Lalu ketikkan “vboxmanage internalcommands sethduuid "E:\Vir-


tualBox VMs\HadoopSparkMahout\HadoopSparkMahoutFix.vdi"”

Gambar 8.6 Lalu ketikkan “vboxmanage sethduuid”

- Buka Virtualbox, buat VM baru dengan klik “New”, lalu masukkan


name dengan “HadoopSparkMahout”, klik Next

Gambar 8.7 Buka Virtualbox

365
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Set Memory size, misal “5000MB”, klik Next

Gambar 8.8 Set Memory size, misal “5000MB”

- Pilih “Use an existing virtual hard disk file” dengan cara klik “O”,
pilih “HadoopSparkMahoutFix.vdi”, klik Open

Gambar 8.9 Pilih “Use an existing virtual hard disk file”

366
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Virtual Machine siap untuk dijalankan

Gambar 8.10 Virtual Machine siap untuk dijalankan

8.2.2 Share Folder Pada Linux Pada VirtualBox


- Jalankan Virtual Machine

Gambar 8.11 Jalankan Virtual Machine

367
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Misal Folder di Window yang akan di-share ke Linux adalah sebagai


berikut: “E:\VirtualBox VMs\File Share”

Gambar 8.12 Folder di Window yang akan di-share

- Klik Devices  Shared Folders  Shared Folders Settings...


hduser@Master:~$ sudo chown hduser:hadoop -R
/usr/local/mahout/
hduser@Master:~$ ls -l /usr/local/mahout/

Gambar 8.13 Klik Devices  Shared Folders

368
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Klik “Adds new shared folder”  “Other....”

Gambar 8.14 Klik “Adds new shared folder”

- Pilih Folder Path “E:\VirtualBox VMs\File Share”

Gambar 8.15 Pilih Folder

369
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Pilih Folder Path “E:\VirtualBox VMs\File Share”, cek “Auto-mount”


dan “Make Permanent”, klik OK

Gambar 8.16 cek “Auto-mount” dan “Make Permanent”, klik OK

- Klik OK

Gambar 8.17 Kik OK

370
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Cek pada Media  “sf_File_Share”, jika muncul “This location could


not be displayed.”

Gambar 8.18 Cek pada Media  “sf_File_Share”

- Maka buka terminal, ketikkan:


nidos@Master:~$ sudo chown nidos:nidos -R
/media/sf_File_Share/
nidos@Master:~$ sudo mount -t vboxsf File_Share
/media/sf_File_Share/

Gambar 8.19 set mount dari Terminal ke-1

371
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Jika tetap tidak bisa masuk, coba ketikkan:


nidos@Master:~$ sudo su
root@Master:/home/nidos# cd
root@Master:~# umount /media/sf_File_Share/
root@Master:~# su nidos
nidos@Master:/root$ cd
nidos@Master:~$ sudo mount -t vboxsf File_Share
/media/sf_File_Share/

Gambar 8.20 set mount dari Terminal ke-2 (Fix)

372
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

8.3 Konfigurasi Hadoop + MongoDB


 NoSQL (Not Only SQL, atau maknanya kurang lebih adalah
"tidak hanya SQL") adalah kelas yang luas dari sistem
manajemen basis data yang di identifikasikan tidak mematuhi
aturan pada model sistem manajemen basis data relasional
yang banyak digunakan.

Gambar 8.21 Relational Vs Non-Relational DB


 NoSQL tidak dibangun terutama dengan tabel dan umumnya
tidak menggunakan SQL untuk memanipulasi data.

Gambar 8.22 Collection pada NoSQL


 Teorema CAP menyatakan bahwa, tidak mungkin untuk
sebuah sistem komputer terdistribusi secara bersamaan,
memberikan ketiga jaminan sebagai berikut:

373
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

o Consistency: Semua node melihat data yang sama


dalam waktu yang bersamaan.
o Availability: Jaminan pada setiap permintaan,
menerima tanggapan tentang apakah itu berhasil atau
tidak.
o Partition tolerance: Sistem terus beroperasi meski
sistem yang lain gagal.
 Visual NoSQL System:

Gambar 8.23 Visual NoSQL System

Gambar 8.24 Bentuk NoSQL


MongoDB merupakan open-source document database dari
keluarga NoSQL, yang memberikan kinerja tinggi, high availability, dan
automatic scaling.

374
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 8.25 SQL Vs NoSQL

Document, Data pada MongoDB dikenal sebagai document.


MongoDB menggunakan BSON (Binary JSON) serialization sebagai
format penyimpanan data untuk document, mirip dengan JSON
(JavaScript Object Notation). Contoh document:

375
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

{
"_id": Ob-
jectId('58520a516a2ea8e208cd6c26'),
"name": "Employee One",
"salary": 20000
}

Source Code 8.1 Contoh Document BSON


 Contoh Penggunaan
SQL:
SELECT *
FROM employeedetails
WHERE name = "Employee One"
OR salary = 20000

Source Code 8.2 Contoh Penggunaan BSON

MongoDB:
db.employeedetails.find(
{
$or: [
{ name: "Employee One" },
{ nomor: 20000 }
]
})

Source Code 8.3 Contoh Penggunaan BSON


 SQL Vs MongoDB:

Tabel 8.1 Perbedaan SQL dengan MongoDB

SQL MongoDB

database Database

table Collection

row Document

column Field

index Index

376
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

table joins Embedded documents dan linking

primary key primary key

 Case Study: Mengolah data dan menyimpan hasilnya ke


MongoDB:
 Wordcount
 Rating By Movie
Note: Secara default, Map Reduce akan menyimpan hasilnya
di file teks biasa di HDFS. Hal ini sangat tidak praktis jika
memang hasilnya ingin dimasukkan ke NoSQL supaya mudah
dibaca.
1. Running Hadoop (Save hasil di MongoDB)
- Lakukan perintah (Install MongoBD untuk simpan file
hasil running kode program di Hadoop):
nidos@master:~$ sudo apt-get install mongodb
nidos@master:~$ sudo apt-get update
nidos@master:~$ sudo service mongodb start
start: Job is already running: mongodb
nidos@master:~$ mongo
MongoDB shell version: 2.4.9
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-
user
> use mydb;
switched to db mydb
> db;
mydb
> db.employeedetails.insert({name:"Employee
One",salary:20000});
> db.employeedetails.find();
{ "_id" : ObjectId("58520a516a2ea8e208cd6c26"),
"name" : "Employee One", "salary" : 20000 }
> exit
bye

Source Code 8.4 Install MongoBD untuk simpan file hasil running
kode program di Hadoop

377
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

2. Running Hadoop (Install GUI MongoDB)


- Lakukan perintah:
nidos@master:~$ sudo apt-get install curl
nidos@master:~$ curl http://pack-
ages.litixsoft.de/installer.sh | sh
Enter ´sudo ./bbs-installer.sh´ to start
installation...
nidos@master:~$ sudo ./bbs-installer.sh

Source Code 8.5 Running Hadoop (Install GUI MongoDB)

Gambar 8.26 Hasil Running Hadoop (Install GUI MongoBD)

nidos@master:~$ sudo ./bbs-installer.sh


BaboonStack Installer for Linux/MacOS
Local Packet found...
Install baboonstack-v1.5.1-linux-
x64.tar.gz...
Create /opt/litixsoft/baboonstack...
Extract Files...
Execute Installscript bbs/lxscript.sh...
SUCCESS: Enter ´bbs´ for package
updates.
...

Install MongoDB v2.6.7?: [Y/n] n  Jika


sudah Install

Source Code 8.6 Running Hadoop (Install GUI MongoDB)

378
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Install RedisIO v2.8.4?: [Y/n] Y


Install Node.js v0.12.0?: [Y/n] Y
Activate Io.js support?: [Y/n] Y
lxManager for BaboonStack - Litixsoft
GmbH 2015
Upgrade successful
nidos@master:~$ sudo tar xvzf
/home/nidos/Desktop/GUI\ Mongo/mms-
v1.9.4-community-linux.tar.gz

nidos@master:~$ sudo tar xvzf mms-


v1.9.4-community-linux-
x86_64.tar.gznidos@master:~$ cd mms-
v1.9.4-community-linux-x86_64/

Source Code 8.7 Running Hadoop (Install GUI MongoDB) Cont


- Lakukan perintah:
nidos@master:~/mms-v1.9.4-
community-linux-x86_64$ cd lx-
mms

nidos@master:~/mms-v1.9.4-
community-linux-x86_64/lx-mms$
sudo nano config.js

Source Code 8.8 Install GUI MongoDB Cont

Gambar 8.27 Tampilan Install GUI MongoDB

379
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

nidos@master:~/mms-v1.9.4-
community-linux-x86_64/lx-mms$
sudo ./start

- Lakukan perintah:
nidos@master:~/mms-v1.9.4-commu-
nity-linux-x86_64/lx-mms$ sudo
./start

Gambar 8.28 Tampilan Install GUI MongoDB


- Lakukan perintah (http://127.0.0.1:3333/):
nidos@master:~/mms-v1.9.4-community-
linux-x86_64/lx-mms$ sudo ./start

Gambar 8.29 Hasil perintah (http://127.0.0.1:3333/)

380
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

nidos@master:~/mms-v1.9.4-community-
linux-x86_64/lx-mms$ sudo ./start
Create/Edit connection
Name: ..........., misal “test”
Server connection*:
[username:password@]host1[:port1][,host2
[:port2],....,[,hostN[:portN]]], misal
“localhost”

Source Code 8.9 perintah (http://127.0.0.1:3333/)

Gambar 8.30 Hasil perintah (http://127.0.0.1:3333/)

nidos@master:~/mms-v1.9.4-commu-
nity-linux-x86_64/lx-mms$ sudo
./start

Gambar 8.31 Perintah (http://127.0.0.1:3333/) test Connection

nidos@master:~/mms-v1.9.4-
community-linux-x86_64/lx-mms$
sudo ./start
381
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 8.32 Perintah (http://127.0.0.1:3333/)


3. Konfigurasi Koneksi (Hadoop + MongoDB)
- Lakukan perintah:
nidos@master:/usr/local/hadoop$ sudo
apt-get install git
nidos@master:/usr/local/hadoop$ git
clone
https://github.com/mongodb/mongo-
hadoop
nidos@master:/usr/local/hadoop$ cd
mongo-hadoop
nidos@master:/usr/local/hadoop/mongo
-hadoop$ ./gradlew jar

Source Code 8.10 Konfigurasi Koneksi (Hadoop + MongoDB)

Gambar 8.33 Konfigurasi Koneksi (Hadoop + MongoDB)

382
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

4. Copy file “mongo-hadoop-core-2.0.1.jar” dari


/usr/local/hadoop/mongo-hadoop/core/build/libs. hasil
compile dari langkah sebelumnya:
nidos@master:/usr/local/hadoop/mongo-hadoop$
./gradlew jar

Gambar 8.34 Copy file “mongo-hadoop-core-2.0.1.jar”


5. Download file “mongo-java-driver” dari link
http://central.maven.org/maven2/org/mongodb/mongo-
java-driver/ dan pilih versi terbaru, misal “mongo-java-
driver-3.4.0.jar”

Gambar 8.35 file “mongo-java-driver”


Setelah selesai build, copy-kan file jars (“mongo-hadoop-
core-2.0.1.jar” dan “mongo-java-driver-3.4.0.jar”) ke directory lib
pada setiap node (master, node1, node2, node3) di hadoop clus-
ter. Berikut lokasinya yang bergantung pada versi Hadoop:

383
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

$HADOOP_PREFIX/lib/
$HADOOP_PREFIX/share/hadoop/mapreduce/
$HADOOP_PREFIX/share/hadoop/lib/
Misal 2 file jar tersebut sudah disiapkan di
“/home/nidos/Desktop/kode/WordCountMongo/”
nidos@master:~/Desktop/kode/WordCountMongo$ ls
mongo-hadoop-core-2.0.1.jar WordCountMongo.java
mongo-java-driver-3.4.0.jar

Untuk PC master:

nidos@master:~$ cp
/home/nidos/Desktop/kode/WordCountMongo/mongo*
/usr/local/hadoop/lib
nidos@master:~$ cp
/home/nidos/Desktop/kode/WordCountMongo/mongo*
/usr/local/hadoop/share/hadoop/mapreduce
nidos@master:~$ mkdir r
/usr/local/hadoop/share/hadoop/lib
nidos@master:~$ cp
/home/nidos/Desktop/kode/WordCountMongo/mongo*
/usr/local/hadoop/share/hadoop/lib

Source Code 8.11 copy file jars (“mongo-hadoop-core-2.0.1.jar”


dan “mongo-java-driver-3.4.0.jar”) ke directory lib pada setiap di
hadoop cluster

384
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Untuk PC node1:

nidos@node1:~$ scp nidos@master:/home/nidos/Desk-


top/kode/WordCountMongo/mongo* /usr/local/ha-
doop/lib
nidos@node1:~$ scp nidos@master:/home/nidos/Desk-
top/kode/WordCountMongo/mongo* /usr/local/ha-
doop/share/hadoop/mapreduce
nidos@node1:~$ mkdir r
/usr/local/hadoop/share/hadoop/lib
nidos@node1:~$ scp nidos@master:/home/nidos/Desk-
top/kode/WordCountMongo
/mongo* /usr/local/hadoop/share/hadoop/lib

Lakukan juga pada node2 dan node3

Untuk PC node3:

nidos@node3:~$ scp nidos@master:/home/nidos/Desk-


top/kode/WordCountMongo/mongo* /usr/local/ha-
doop/lib

nidos@node3:~$ scp nidos@master:/home/nidos/Desk-


top/kode/WordCountMongo/mongo* /usr/local/ha-
doop/share/hadoop/mapreduce

nidos@node3:~$ mkdir r
/usr/local/hadoop/share/hadoop/lib

nidos@node3:~$ scp nidos@master:/home/nidos/Desk-


top/kode/WordCountMongo/mongo* /usr/local/ha-
doop/share/hadoop/lib

Source Code 8.12 copy file jars (“mongo-hadoop-core-2.0.1.jar”


dan “mongo-java-driver-3.4.0.jar”) ke directory lib pada setiap di
hadoop cluster Cont

385
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 8.36 copy file jars (“mongo-hadoop-core-2.0.1.jar” dan


“mongo-java-driver-3.4.0.jar”) ke dir. lib pada tiap di hadoop
cluster
8.3.1 WordCount
1. Running Hadoop WordCount (Save hasil di MongoDB)
- Buat DB “testmr”

Gambar 8.37 Buat DB “testmr”


- Buat Collecton “in” on DB “testmr”
- Klik kanan pada DB “testmr”, lalu pilih “Add collection..”,
beri nama misal “in”, lalu klik Save

386
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 8.38 Tampilan Add Collection


- Import file “*.json” as collection pada DB “testmr” ke
collection “in” sebagai file input untuk diproses oleh
WordCountMongo.java

Gambar 8.39 Import file “*.json” as collection pada DB “testmr” ke


collection “in”
- Import file “*.json” as collection pada DB “testmr” sebagai
file input untuk diproses oleh WordCountMongo.java

in.json  tidak standar Mongo


{"x": "hello world"},
{"x": "nice to meet you"},
{"x": "good to see you"},
{"x": "world war 2"},
{"x": "see you again"},
{"x": "bye bye"}

Source Code 8.13 in.json  tidak standar Mongo

387
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

in_standard.json  standar Mongo

{ "x" : "hello world", "_id" : { "$oid" :


"5856c34689b0ce4a6e000001" } }
{ "x" : "nice to meet you", "_id" : {
"$oid" : "5856c34689b0ce4a6e000002" } }
{ "x" : "good to see you", "_id" : {
"$oid" : "5856c34689b0ce4a6e000003" } }
{ "x" : "world war 2", "_id" : { "$oid" :
"5856c34689b0ce4a6e000004" } }
{ "x" : "see you again", "_id" : { "$oid"
: "5856c34689b0ce4a6e000005" } }
{ "x" : "bye bye", "_id" : { "$oid" :
Source Code"5856c34689b0ce4a6e000006"
8.14 in_standard.json  standar
} } Mongo
Untuk file “in.json”  tidak standar Mongo: Klik kanan
pada database atau DB “testmr”, lalu pilih “Import
documents...”, lalu Isikan Name of destination-collection*,
misal “in”, lalu pilih “Import documents from textbox”, lalu
isikan pada “Text Input”, dengan:

{"x": "hello world"},


{"x": "nice to meet you"},
{"x": "good to see you"},
{"x": "world war 2"},
{"x": "see you again"},
{"x": "bye bye"}

Gambar 8.40 Text Input


lalu Klik Import
- Untuk file “in.json”  tidak standar Mongo:

388
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 8.41 Import Document Untuk file “in.json” 


tidak standar Mongo

- Untuk file “in.json”  tidak standar Mongo:

Gambar 8.42 Import Document Untuk file “in.json”  tidak standar


Mongo

- (Klik kanan pada database atau DB “testmr”, lalu pilih


“Import documents...”, lalu Isikan Name of destination-
collection*, misal “in”, lalu klik Browse..):

Untuk file in_standard.json  standar Mongo

389
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 8.43 file in_standard.json  standar Mongo

- in_standard.json  standar Mongo (Klik Open)

Gambar 8.44 in_standard.json  standar Mongo (Klik


Open)
- Klik Import

390
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 8.45 Import Document

- Hasil dari klik import

Gambar 8.46 Hasil dari Klik Import

- Siapkan file *.java (misal WordCountMongo.java Part 1 of


2) untuk dicompile ke *.jar:

391
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

import java.util.*;
import java.io.*;
import org.bson.*;
import
com.mongodb.hadoop.MongoInputFormat;
import
com.mongodb.hadoop.MongoOutputFormat;
import
org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.*;
import org.apache.hadoop.mapreduce.*;
/**
* test.in
db.insert( { x: "eliot was here" } )
db.insert( { x: "eliot is here" } )
db.insert( { x: "who is here" } )
*
*/
public class WordCountMongo {
public static class TokenizerMapper
extends Mapper<Object, BSONObject, Text,
IntWritable> {
private final static IntWritable one
= new IntWritable(1);
private Text word = new Text();
public void map(Object key,
BSONObject value, Context context )
throws IOException,
InterruptedException {
System.out.println( "key: " +
key );
System.out.println( "value: "
+ value );
StringTokenizer itr = new
StringTokenizer(value.get( "x"
).toString());
while (itr.hasMoreTokens()) {

word.set(itr.nextToken());
context.write(word,
one);
}
}
}

Source Code 8.15 File WordCountMongo.java Part 1 of 2

392
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Siapkan file *.java (misal WordCountMongo.java Part 2 of


2) untuk dicompile ke *.jar:
public static class IntSumReducer extends
Reducer<Text,IntWritable,Text,IntWritable> {
private IntWritable result = new
IntWritable();
public void reduce(Text key,
Iterable<IntWritable> values, Context context )
throws IOException,
InterruptedException {
int sum = 0;
for (IntWritable val : values) {
sum += val.get();
}
result.set(sum);
context.write(key, result);
}
}
public static void main(String[] args)
throws Exception {
Configuration conf = new Configuration();
conf.set( "mongo.input.uri" ,
"mongodb://localhost/testmr.in" );
conf.set( "mongo.output.uri" ,
"mongodb://localhost/testmr.out" );
@SuppressWarnings("deprecation")
Job job = new Job(conf, "word
count");
job.setJarByClass(WordCountMongo.class);

job.setMapperClass(TokenizerMapper.class)
;

job.setCombinerClass(IntSumReducer.class)
;
job.setReducerClass(IntSumReducer.class);
job.setOutputKeyClass(Text.class);

job.setOutputValueClass(IntWritable.class
);
job.setInputFormatClass(
MongoInputFormat.class );
job.setOutputFormatClass(
MongoOutputFormat.class );
System.exit(job.waitForCompletion(true) ?
0 : 1);
}
}

Source Code 8.16 File WordCountMongo.java Part 2 of 2

393
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

2. Menghitung Kemunculan Kata dalam file dokumen:


- file “WordCountMongo.java”:

Gambar 8.47 file “WordCountMongo.java”:

- WordCountMongo.java dicompile ke *.jar: dengan


melakukan hal berikut:
nidos@master:~$ cd /usr/local/hadoop
nidos@master:/usr/local/hadoop$ cp
/home/nidos/Desktop/kode/WordCountMongo/Wo
rdCountMongo.java /usr/local/hadoop
nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main
WordCountMongo.java

Jika muncul error:

nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main
WordCountMongo.Java
error: Class names, 'WordCountMongo.Java',
are only accepted if annotation processing
is explicitly requested
1 error
Solusi: ubah “WordCountMongo.Java” 
“WordCountMongo.java”

Source Code 8.17 Compile ke *.jar file WordCountMongo.java

394
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main WordCountMongo.java
Jika muncul error:
nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main WordCountMongo.java
WordCountMongo.java:4: error: package org.bson does
not exist
import org.bson.*;
^
WordCountMongo.java:6: error: package
com.mongodb.hadoop does not exist
import com.mongodb.hadoop.MongoInputFormat;
^
WordCountMongo.java:7: error: package
com.mongodb.hadoop does not exist
import com.mongodb.hadoop.MongoOutputFormat;
^
WordCountMongo.java:22: error: cannot find symbol
public static class TokenizerMapper extends
Mapper<Object, BSONObject, Text, IntWritable> {

^
symbol: class BSONObject
location: class WordCountMongo
WordCountMongo.java:25: error: cannot find symbol
public void map(Object key, BSONObject
value, Context context )
^
symbol: class BSONObject
location: class TokenizerMapper
WordCountMongo.java:60: error: cannot find symbol
job.setInputFormatClass(
MongoInputFormat.class );
^
symbol: class MongoInputFormat
location: class WordCountMongo
WordCountMongo.java:61: error: cannot find symbol
job.setOutputFormatClass(
MongoOutputFormat.class );
^
symbol: class MongoOutputFormat
location: class WordCountMongo
7 errors

Solusi: kembali ke langkah “Konfigurasi Koneksi


(Hadoop + MongoDB)”  SCP

Source Code 8.18 Compile ke *.jar file WordCountMongo.java

395
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Hasil: nidos@master:/usr/local/hadoop$ bin/hdfs


com.sun.tools.javac.Main WordCountMongo.java

Gambar 8.48 Hasil: nidos@master:/usr/local/hadoop$


bin/hdfs com.sun.tools.javac.Main WordCountMongo.java

- Hasil: nidos@master:/usr/local/hadoop$ jar cf wcmongo.jar


WordCountMongo*.class

Gambar 8.49 Hasil: nidos@master:/usr/local/hadoop$ jar cf


wcmongo.jar WordCountMongo*.class

- Running proses perhitungan kata dalam file dokumen dalam


MongoDB: dengan melakukan hal berikut:

396
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Jika menggunakan hdfs, maka gunakan dfs


Jika menggunakan hadoop, maka gunakan fs
nidos@master:/usr/local/hadoop$
bin/hadoop jar wcmongo.jar WordCountMongo

Source Code 8.19 Running proses perhitungan kata dalam file


dokumen dalam MongoDB

{"_id":"2","value":1}

{"_id":"again","value":1}
{"_id":"bye","value":2}
{"_id":"good","value":1}

{"_id":"hello","value":1}
{"_id":"meet","value":1}
{"_id":"nice","value":1}
{"_id":"see","value":2}
{"_id":"to","value":2}
{"_id":"war","value":1}

Gambar 8.50 Running perhitungan kata dari file dalam MongoDB


- Lihat hasil dari MongoDB melalui terminal:

Gambar 8.51 Hasil MongoDB


- Cek di browser:

397
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 8.52 Browse Directory


- Cek di browser

Gambar 8.53 Browse Directory


- Cek di browser:

Gambar 8.54 File Information di Browser

398
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

8.3.2 Movie Ratings


Case Study 2: Rating By Movie
1. Running Hadoop Rating By Movie (Save hasil di MongoDB)
- List dataset (dari MovieLens) dan Link ( https://goo.gl/Jd8GOI ):

Gambar 8.55 List dataset


- Membuat Directories “ratemovie/dataset” di HDFS harus satu
demi satu:
nidos@master:~$ cd /usr/local/hadoop
nidos@master:/usr/local/hadoop$ bin/hdfs dfs -
mkdir /user/nidos/ratemovie
nidos@master:/usr/local/hadoop$ bin/hdfs dfs -
mkdir /user/nidos/ratemovie/dataset
nidos@master:/usr/local/hadoop$ bin/hdfs dfs -
ls /user/nidos
nidos@master:/usr/local/hadoop$ bin/hdfs dfs -
ls /user/nidos/ratemovie

Source Code 8.20 Membuat Directories “ratemovie/dataset” di HDFS

- Copy semua file dataset dari local folder


(/home/nidos/Desktop/data/ratemovie/dataset) ke HDFS folder
(/user/nidos/ratemovie/dataset)
 List dataset (dari MovieLens) dan Link (
https://goo.gl/Jd8GOI ):

399
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 8.56 List dataset (dari MovieLens)

- Copy semua file dataset dari local folder


(/home/nidos/Desktop/data/ratemovie/dataset) ke HDFS folder
(/user/nidos/ratemovie/dataset)
nidos@master:/usr/local/hadoop$ bin/hdfs dfs -
copyFromLocal
/home/nidos/Desktop/data/ratemovie/dataset/*
/user/nidos/ratemovie/dataset

Source Code 8.21 Copy Semua File Dataset dari Local Folder

Gambar 8.57 Tampilan Browse Directory


- Add database “ratemovie” pada MongoDB:

400
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 8.58 Add database “ratemovie” pada MongoDB


- Add database “ratemovie” pada MongoDB:

Gambar 8.59 Add database “ratemovie” pada MongoDB


- Siapkan file *.java untuk dicompile ke *.jar: dari “package
comratingbymovies.nidos;”

401
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 8.60 List File*.java untuk di Compile ke *.jar


- Siapkan file (MovieMapper.java Part 1 of 1) untuk dicompile ke
*.jar:
package comratingbymovies.nidos;
import java.io.IOException;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
public class MovieMapper extends
Mapper<LongWritable,Text,Text,Text>{
Text keyEmit = new Text();
Text valEmit = new Text();
public void map(LongWritable k, Text
value, Context context) throws IOException,
InterruptedException{
String
line=value.toString();
String[]
words=line.split("::");
keyEmit.set(words[0]);
valEmit.set(words[1]);
context.write(keyEmit,
valEmit);
}
}

Source Code 8.22 file (MovieMapper.java Part 1 of 1)


- Siapkan file (MovieReducer.java Part 1 of 2) untuk dicompile ke
*.jar:

402
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

package comratingbymovies.nidos;
import java.io.IOException;
import java.util.Iterator;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.JobConf;
import
org.apache.hadoop.mapred.OutputCollector;
import org.apache.hadoop.mapred.Reporter;
import org.apache.hadoop.mapreduce.Reducer;
public class MovieReducer extends
Reducer<Text,Text,Text,IntWritable>
{
Text valTitle = new Text();
Text valEmit = new Text();
String merge;
public void reduce(Text key,
Iterable<Text> values, Context context)
throws IOException , InterruptedException{

int counter = 0;
merge = "";
for(Text value:values){
if
(value.toString().startsWith("#")){ //from
rating
counter++;
}

Source Code 8.23 file (MovieReducer.java Part 1 of 2)


- Siapkan file (MovieReducer.java Part 2 of 2) untuk dicompile ke
*.jar:
else if
("".equalsIgnoreCase(merge)){// from movies get
the title
merge =
value.toString();
}}
valTitle.set(merge);
context.write(valTitle, new
IntWritable(counter));
}
}

Source Code 8.24 file (MovieReducer.java Part 2 of 2)

403
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Siapkan file (RatingCounterByMovieMongo.java Part 1 of 2)


untuk dicompile ke *.jar:
package comratingbymovies.nidos;
import
org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import
org.apache.hadoop.mapreduce.lib.input.Multi
pleInputs;
import
org.apache.hadoop.mapreduce.lib.input.TextI
nputFormat;
import
org.apache.hadoop.mapreduce.lib.output.File
OutputFormat;
import
org.apache.hadoop.util.GenericOptionsParser
;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;
import com.mongodb.hadoop.io.BSONWritable;
import
com.mongodb.hadoop.mapred.MongoOutputFormat
;
public class RatingCounterByMovieMongo
extends Configured implements Tool{
public int run(String[] args) throws
Exception {
final Configuration conf =
getConf();
conf.set("mongo.output.uri",
args[2]);
Path p1=new Path(args[0]);
Path p2=new Path(args[1]);
Job job = new
Job(conf,"Multiple Job");

job.setJarByClass(RatingCounterByMovi
eMongo.class);

MultipleInputs.addInputPath(job, p1,
Source TextInputFormat.class,
Code 8.25 file (RatingCounterByMovieMongo.java
RatingMapper.class);
Part 1 of 2)

MultipleInputs.addInputPath(job, p2,
404
TextInputFormat.class, MovieMapper.class);
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

job.setJarByClass(RatingCounterByMovi
eMongo.class);

MultipleInputs.addInputPath(job, p1,
TextInputFormat.class, RatingMapper.class);

MultipleInputs.addInputPath(job, p2,
TextInputFormat.class, MovieMapper.class);

Source Code 8.26 file (RatingCounterByMovieMongo.java Part 1 of 2)

Cont
- Siapkan file (RatingCounterByMovieMongo.java Part 2 of 2)
untuk dicompile ke *.jar:

job.setReducerClass(MovieReducer.class)
;

job.setOutputFormatClass(com.mongodb.ha
doop.MongoOutputFormat.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
boolean success =
job.waitForCompletion(true);
return success?0:1;
}
public static void main(String[] args)
throws Exception {
if (args.length != 3 ){
System.err.println ("Usage
:<inputlocation1> <inputlocation2>
<outputlocation> >");
System.exit(0);
}
int res = ToolRunner.run(new
Configuration(), new
RatingCounterByMovieMongo(), args);
System.exit(res);
}
}

Source Code 8.27 file (RatingCounterByMovieMongo.java Part 2 of 2)

405
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Siapkan file (RatingMapper.java Part 1 of 1) untuk dicompile ke


*.jar:
package comratingbymovies.nidos;
import java.io.IOException;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.JobConf;
import
org.apache.hadoop.mapred.OutputCollector;
import org.apache.hadoop.mapred.Reporter;
import org.apache.hadoop.mapreduce.Mapper;
public class RatingMapper extends
Mapper<LongWritable,Text,Text,Text>{

Text keyEmit = new Text();


Text valEmit = new Text();
public void map(LongWritable k, Text v,
Context context) throws IOException,
InterruptedException{
String line=v.toString();
String[] words=line.split("::");
keyEmit.set(words[1]);
valEmit.set("#");
context.write(keyEmit, valEmit);
}
}

Source Code 8.28 file (RatingMapper.java Part 1 of 1)


- Semua file *.java dicompile ke *.jar:
 Lakukan hal berikut:

nidos@master:~$ cd /usr/local/hadoop
nidos@master:/usr/local/hadoop$ cp -r
/home/nidos/Desktop/kode/RatingByMovies/com
ratingbymovies /usr/local/hadoop

Source Code 8.29 Compile file ke *.jar

406
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 8.61 file comratingbymovies


 Lakukan hal berikut:
nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main
comratingbymovies/nidos/*.java
Note:
comratingbymovies/nidos/RatingCounterByMov
ieMongo.java uses or overrides a
deprecated API.
Note: Recompile with -Xlint:deprecation
for details.

Source Code 8.30 Compile file *.java ke *.jar

Gambar 8.62 Compile Semua file *.java ke *.jar

407
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

- Hasil: nidos@master:/usr/local/hadoop$ jar cf ratemovie.jar


comratingbymovies/nidos/*.class

Gambar 8.63 Hasil: nidos@master:/usr/local/hadoop$ jar cf


ratemovie.jar comratingbymovies/nidos/*.class

- Hasil: nidos@master:/usr/local/hadoop$ jar cf ratemovie.jar


comratingbymovies/nidos/*.class

Gambar 8.64 Hasil: nidos@master:/usr/local/hadoop$ jar cf


ratemovie.jar comratingbymovies/nidos/*.class

- Running proses perhitungan rating movie:


 Lakukan hal berikut:

408
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

nidos@master:/usr/local/hadoop$
bin/hadoop jar ratemovie.jar
comratingbymovies/nidos/RatingCounterByMo
vieMongo
/user/nidos/ratemovie/dataset/ratings.dat
/user/nidos/ratemovie/dataset/movies.dat
mongodb://localhost/ratemovie.out

Source Code 8.31 Running proses perhitungan rating movie out1

Gambar 8.65 Hasil Running proses perhitungan rating movie


 Lakukan hal berikut:
nidos@master:/usr/local/hadoop$
bin/hadoop jar ratemovie.jar
comratingbymovies/nidos/RatingCounterByMo
vieMongo
/user/nidos/ratemovie/dataset/ratings.dat
/user/nidos/ratemovie/dataset/movies.dat
mongodb://localhost/ratemovie.out2

Source Code 8.32 Running proses perhitungan rating movie out2

409
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 8.66 Running proses perhitungan rating movie out2

- Lihat hasil dari MongoDB melalui terminal:

Gambar 8.67 Lihat hasil dari MongoDB melalui terminal


- Cek di browser:

410
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 8.68 Tampilan Browse Directory


- Cek di browser:

Gambar 8.69 File Information di Browser

411
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

8.4 Tugas Kelompok


1. Lakukan Studi Kasus WordCount dengan dokumen yang
berbeda (pada file > 0.5 MB, file > 1 MB, file > 10 MB, file > 100
MB, file > 1000 MB) pada Hadoop Single atau Multi Node
Cluster dan simpan hasilnya dalam MongoDB! dan berilah
penjelasan untuk setiap langkah-langkahnya disertai
screenshot!
2. Lakukan dan ulangi kembali Studi Kasus RateMovie dengan
dokumen yang sama seperti dicontoh pada Hadoop Single
atau Multi Node Cluster dan simpan hasilnya dalam MongoDB!
dan berilah penjelasan untuk setiap langkah-langkahnya
disertai screenshot!
3. Lakukan dan ulangi kembali Studi Kasus pada contoh berikut:
o Eclipse + Spark Standalone (Java EE)
o Eclipse + Spark + Scala IDE + Maven
o Eclipse + Spark + Scala IDE + SBT
o Eclipse + PySpark + PyDev
o PySpark + Pycharm
o IntelliJ IDEA
Seperti pada materi, dan berilah penjelasan untuk setiap
langkah-langkahnya disertai screenshot!
4. Jalankan Studi Kasus crawling “text dari twitter” dengan
“Spark Streaming” dari link kode
berikut: https://goo.gl/Sb5nLR pada Eclipse + Spark + Scala IDE
+ SBT. Dan berilah penjelasan untuk setiap langkah-
langkahnya disertai screenshot!
Berikut contoh ketika dijalankan pada IntelliJ IDEA:

412
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

BAB 9 Project Pilihan


Analisis Big Data

9.1 Seleksi Asisten Praktikum


Perkembangan teknologi saat ini membawa kita pada perubahan
hampir dari semua aspek di kehidupan. Dalam menentukan sesuatu,
manusia pasti dihadapkan banyak pilihan. Dengan adanya pilihan yang
benar, akan sangat mempengaruhi kehidupan manusia itu sendiri.
Seiring berkembangnya teknologi, perlu dikembangkan dan juga
ditingkatkan suatu sumber daya manusia agar semakin berkualitas.
Permasalahan seleksi menentukan asisten praktikum banyak dialami
di berbagai universitas di Indonesia, khususnya di Fakultas Ilmu
Komputer (Filkom) Universitas Brawijaya.
Proses seleksi pada asisten praktikum, di Filkom masih
menggunakan cara yang manual. Proses pemilihan asisten praktikum
dilakukan dengan menjalani beberapa tes yang sudah ditentukan,
yaitu melalui tiga tahap tes diantaranya tes administrasi, tes live
coding, dan tes mengajar. Untuk penentuannya dilihat dari hasil tes
yang sudah dilakukan sebelumnya. Kemiripan hasil nilai tes pada
ketentuan tertentu dapat mengakibatkan kerancuan pada proses
pemilihan asisten praktikum, serta dapat berpengaruh pada
kualitasnya. Dan sangat diharapkan agar pemilihan asisten praktikum
terpilih secara tepat. Untuk menghindari kerancuan hasil, sangat
dibutuhkannya suatu sistem yang mampu membantu dalam seleksi
pemilihan asisten praktikum baru dengan hasil seleksi yang tepat.
Pada penelitian oleh (Kalamsyah, 2014) yaitu tentang aplikasi
untuk pemilihan asisten praktikum dan juga lab yang berbasis web
menggunakan metode pengerjaan SDLC waterfall pada tahap
implementasi. Orang yang terlibat dalam aplikasi tersebut adalah
seorang laboran sebagai admin yang mempunyai akses penuh dalam
mengelola infomasi seleksi, melakukan input nilai, dan melihat hasil
perangkingan. Untuk perhitungan seleksi menggunakan metode
Analytic Hierarchi Process. Hasil dari penelitian tersebut, laboran
dapat mengetahui nilai paling tinggi sampai nilai paling rendah dari
semua hasil seleksi. Hasil seleksi di pilih dengan nilai tes asisten baru
dengan nilai tertinggi.

413
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Selanjutnya penelitian yang dilakukan oleh (Sholihah, 2013),


membahas mengenai penentuan jumlah UKT di Universitas Trunojoyo
Madura. Penentuan UKT tersebut berdasarkan kriteria yang sesuai.
Dalam pembuatan sistem, peneliti menggunakan metode Naïve Bayes
Classifier (NBC). Hasil yang didapatkan pada skenario satu yaitu 90%,
dan skenario hasil dua data kategori 78%.
Kemudian penelitian Naive Bayes Classifier oleh (Kusumadewi,
2009) adalah penggunaan alat ukur antropometri sebagai variabel
masukan dalam pengklasifikasian status gizi manusia. Untuk
mendapatkan hasil yang optimal terdapat beberapa pedoman
antropometri yaitu usia dan berat badan, tinggi dan panjang badan,
serta lingkar lengan atas. Dalam penelitian ini didapatkan 5 golongan
untuk status gizi, diantaranya berat kurang, berat normal, obesitas
kurang, obesitas sedang, dan obesitas berat. Untuk klasifikasi status
gizi metode yang digunakan adalah metode Naive Bayes
Classiffier dengan hasil akurasi cukup tinggi yaitu 93,2%.
Berdasarkan permasalahan di atas, maka dibuat suatu sistem
yang mampu menyeleksi dengan cara melihat hasil klasifikasi tertinggi
terhadap hasil tes yang dilakukan oleh calon asisten praktikum.
Penelitian ini menggunakan konsep Big Data yang seiring berjalannya
waktu data yang digunakan akan semakin besar sebagai data histori
yang dikumpulkan. Pada konsep tersebut menggunakan Hadoop yang
dapat memproses data dalam ukuran besar. Metode yang digunakan
adalah Naïve Bayes karena dianggap mampu menghasilkan klasifikasi
yang akurat, sehingga dapat mempermudah seorang dosen dalam
memilih asisten praktikum dengan kualitas yang baik.

9.1.1 Dasar Teori


1. Big Data
Konsep Big Data pada dasarnya adalah sebuah “lautan
data”, dengan banyaknya informasi dan sarana untuk
menganalisanya (Trivu dan Ivan, 2014). Big Data merupakan se-
buah kombinasi teknologi yang dapat mengelola data yang be-
ragam dalam jumlah besar, dengan kecepatan dan waktu yang
tepat dalam keperluan analisis, dan pada saat yang tepat untuk
keperluan analisis dan reaksi. Big Data memiliki tiga karakteristik,
yaitu volume, velocity, dan variety.
Big Data dideskripsikan sebagai suatu dataset dan teknik
analisis di dalam suatu aplikasi yang memiliki jumlah data sangat

414
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

besar dan juga sangat kompleks. Big Data membutuhkan suatu


penyimpanan, manajemen, analisis, dan juga teknologi visualisasi
(Chen, Chiang, & Storey, 2012, p 1161 dalam (Irem, 2016).
Menurut McAfee & Bryjonlfsson, 2012 dalam (Irem, 2016), men-
erangkan bahwa untuk memanggil data yang begitu besar, dibu-
tuhkan beberapa kategori, terdapat tiga kategori yang memen-
uhi, diantaranya volume, velocity, dan variety. Dengan masing-
masing penjelasan volume merupakan jumlah pada data, velocity
menerangkan tentan kecepatan pencarian informasi data,
kemudian variety adalah macam-macam jenis data misalnya da-
lam bentuk txt, doc, dan lain sebagainya.
a. Mapreduce
Mapreduce merupakan suatu framework yang digunakan
pada aplikasi dan program yang dikenalkan oleh google untuk
menjalankan pekerjaan komputasi yang terdistribusi dan dijalan-
kan pada cluster. Konsep yang digunakan dalam Mapreduce ada-
lah fungsi Map dan Reduce untuk functional programming
(Industri, 2013).
Hadoop Mapreduce termasuk bagian dari susunan kerja
yang dibuat agar lebih mudah dalam melakukan suatu perhi-
tungan. Hadoop Mapreduce ini membuat user untuk bertugas
lebih ringan dan berjalan secara sejajar dalam node berbeda,
menghemat waktu dalam mengeksekusi keseluruhan.

Gambar 9.1 Mapreduce

415
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

b. Multi Node
Dalam hadoop multi node ini dibutuhkan dua buah
komputer, komputer pertama digunakan pada cluster sedangkan
komputer kedua digunakan pada slave. Dua komputer ini
dikonfigurasi yang merupakan dari mesin dua single node.

Gambar 9.2 Hadoop Multi Node


2. Klasifikasi
Klasifikasi merupakan penentuan objek ke dalam suatu kat-
egori atau kelas. Penentuan objek menggunakan beberapa model
(Han, 2006). Dalam memulai suatu klasifikasi data dengan mem-
bangun sebuah rule klasifikasi dengan algoritma tertentu yang
digunakan pada data training dan data testing.
Pada penelitian ini untuk klasifikasi dalam perhitungannya
menggunakan metode Naïve Bayes Classifier.

3. Naïve Bayes Clasifier


Naïve Bayes Classifier merupakan penyederhanaan dari
teorema Bayes, penemu metode ini adalah seorang ilmuwan Inggris
yang bernama Thomas Bayes. Algoritma dalam metode Naïve Bayes
didasarkan dengan teknik klasifikasi (Kusumadewi, 2009) dapat
dibuktikan bahwa saat kecepatan sangat tinggi dan bersamaan
diaplikasikan dalam suatu database dengan jumlah data yang besar,

416
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

naive bayes mempunyai akurasi dan juga kecepatan yang tinggi


(Nugroho, 2009).
Metode Naive Bayesdengan prinsip teorema Bayes mempunyai
atribut yang saling berhubungan satu sama lain. Pendekatan yang
digunakan teorema bayes yaitu menghitung probabilitas sebuah
kejadian pada kondisi tertentu (Lukito & Chrismanto, 2015). Dasar dari
teorema Bayes dinyatakan dalam persamaan (Bustami, 2013).

𝑃(𝑋 |𝐻 ).𝑃(𝐻)
𝑃 (𝐻 |𝑋) = (1)
𝑃(𝑋)

Keterangan:
X : Data kelas yang belum diketahui.
H : Hipotesis dari data X yaitu suatu kelas
Spesifik.
P(H| X) : Probabilitas Hipotesis H berdasarkan kondisi X.
P(H) : Probabilitas Hipotesis H
P(X | H) : Probabilitas X berdasarkan kondisi H
P(X) : Probabilitas X
Pada rumus di atas dapat dijelaskan bahwa teorema naive bayes
dibutuhkan sebuah petunjuk sebagai proses penentu kelas yang sesuai
dengan sampel. Sehingga dibutuhkan kesesuaian terhadap teorema
bayes sebagai berikut:
𝑃(𝐶)𝑃(𝐹1…𝐹𝑛|𝐶)
𝑃 (𝐶|𝐹1 … 𝐹𝑛) = (2)
𝑃(𝐹1…𝐹𝑛)

Keterangan:
C : Sebagai kelas
F1…Fn : Petunjuk atau syarat kondisi

9.1.2 Impelementasi
Dalam penyelesaian masalah seleksi pemilihan sistem praktikum
di Filkom Universitas Brawijaya, data pada penelitian ini berupa atribut
hasil live koding, mata kuliah, hasil mengajar, dan kelas. Kemudian
hasil klasifikasi yang didapatkan adalah sangat disarankan, disarankan,
dan yang terakhir tidak disarankan.

417
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Implementasi berisi kode program dan tahapan-tahapan yang


dilakukan pada hadoop. Implementasi pada permasalahan seleksi
pemelihan asisten praktikum menggunakan bahasa pemrograman
java. Dalam pengimplementasian menggunakan tiga class, satu class
sebagai map, satu class lain sebagai reduce, dan class lainnya sebagai
class main.
1. Kode Program
Berikut kode program dari kedua class, yaitu class Map.java
dan class Reduce.java.
a. Map.java

public void map(LongWritable key,


Text value, Context context) throws IOEx-
ception, InterruptedException {
if(test_input==null)
test_input=context.getConfigura-
tion().get("test_in-
put").split("\\,");
String[] in-
put=value.toString().split("\\,"
);
for(int j=0;j<input.length;j++){
if(j==input.length-1){
if(outcome_count.contains-
Key(input[j])) out-
come_count.put(input[j], out-
come_count.get(input[j])+1);
else out-
come_count.put(input[j], (dou-
ble) 1);
}
else{
if(input[j].con-
tentEquals(test_input[j])){
if(!inputs.contains-
Key(j+","+input[j]))
in-
puts.put(j+","+input[j], 0);
if(fea-
tures_count.contains-
Key(j+","+input[j]+"|"+input[in-
put.length-1]))
fea-
tures_count.put(j+","+in-
put[j]+"|"+input[input.length-

418
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

1], features_count.get(j+","+in-
put[j]+"|"+input[input.length-
1])+1);
else fea-
tures_count.put(j+","+in-
put[j]+"|"+input[input.length-
1], (double) 1);
}
}
}
++count;
}

Source Code 9.1 Map.java


b. Reduce.java

public class NBCReduce extends


Reducer<IntWritable, Text, IntWrita-
ble, Text>{
public void reduce(IntWritable
key, Iterable<Text> values, Context
context) throws IOException, Inter-
ruptedException{
Double out_value=Dou-
ble.NEGATIVE_INFINITY;
String out_key=null;
HashMap<String,Integer> fi-
nal_output=new
HashMap<String,Integer>();
for(Text value:values){
if(final_output.contains-
Key(value.toString()))
final_out-
put.put(value.toString(), fi-
nal_out-
put.get(value.toString())+1);
else final_out-
put.put(value.toString(), 1);
}
for(Entry<String,Integer> out-
put:final_output.entrySet()){
if(output.get-
Value()>out_value){

419
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

out_value=(double) output.get-
Value();
out_key=output.getKey();
}
}
context.write(null, new
Text(out_key));
}
}

Source Code 9.2 Reduce.java


2. Langkah-langkah pada Hadoop
Langkah-langkah dimulai dari start sampai mengeluakan out-
put dari metode naïve bayes:
- Ketik start-all.sh

Gambar 9.3 start-all.sh


- Membuat folder bayes di hduser, kemudian membuat
folder input didalam folder bayes

Gambar 9.4 Membuat Folder


- Mengecek folder di localhost:50070

420
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 9.5 Cek Folder


- Compile semua file java

Gambar 9.6 Compile semua file Java

- Mengecek pada direktori apakah file sudah


menghasilkan *.class

Gambar 9.7 Class Pada Direktori


- Membuat file *.jar dari hasil *.class

Gambar 9.8 File*.jar


- Mengecek pada direktori

421
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 9.9 Direktori


- Memasukkan file data ke folder input localhost

Gambar 9.10 File Pada Folder Input


- Mengecek apakah file data sudah di localhost:50070

Gambar 9.11 File Pada Localhost


- Membuat folder output di localhost:50070

Gambar 9.12 Folder Output


- Mengecek folder output apakah sudah ada di lo-
calhost:50070

Gambar 9.13 Folder Output


- Mengecek secara manual folder apa saja yang ada di lo-
calhost:50070

422
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 9.14 Cek Folder


- Proses menjalankan program

Gambar 9.15 Menjalankan Program


- Melihat apakah hasil sudah keluar atau belum

Gambar 9.16 Cek Hasil

9.2 Klasifikasi Kendaraan Bermotor


Sepeda motor adalah kendaraan yang memiliki dua roda dimana
mesin bekerja sebagai penggeraknya (Cossalter, 2006). Sepeda motor
memiliki 2 roda yang sebaris sehingga sepeda motor dapat tetap stabil
pada kecepatan tinggi yang disebabkan oleh gaya giroskopik. Se-
dangkan kestabilan pada kecepatan rendah bergantung pada
pengaturan setang oleh pengendara. Sepeda motor sangat populer di

423
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Indonesia karena memiliki harga yang murah dan terjangkau untuk


kalangan masyarakat dan biaya operasional yang cukup rendah.
Sepeda motor memiliki beberapa jenis dan merk yang berbeda.
Hal ini menyebabkan banyaknya pilihan yang dimiliki konsumen.
Konsumen akan memilih sepeda motor yang diinginkannya
berdasarkan latar belakang yang berbeda. Maka dari itu mengetahui
preferensi konsumen akan sangat menguntungkan penjual. Konsumen
akan dikelompokkan berdasarkan sepeda motor yang dibeli sehingga
penjual dapat mengetahui karakteristik konsumen yang membeli
suatu jenis atau Merk tertentu.
Pengelompokkan dilakukan dengan metode KNN. Algoritma ini
bekerja dengan cara mencari kelompok data uji berdasarkan k data
tetangga terdekatnya. Algoritma ini menerima masukan berupa
parameter dan nilai k.
Pada penelitian yang dilakukan oleh Nouvel (2015), klasifikasi
kendaraan roda empat menggunakan metode K-Nearest Neighbour (K-
NN) dengan jumlah data sebanyak 14 memiliki tingkat akurasi sebesar
78,57% dan RMSE dari 0,23. Jika jumlah data sebanyak 1728 data,
tingkat akurasi sebesar 95,78%, RMSE 0,19 dan ROC daerah 0.99.
Pengujian itu dilakukan untuk membuktikan bahwa tingkat akurasi
yang dihasilkan dipengaruhi oleh jumlah data latih yang digunakan.
Jika semakin banyak data yang dilatih maka semakin tinggi juga tingkat
akurasinya.
Permasalahan tersebut melatarbelakangi peneliti untuk
melakukan penelitian mengenai pengelompokan sepeda motor
berdasarkan karakteristik konsumen dengan metode K-NN. Penelitian
ini akan menghasilkan sistem pengelompokkan sepeda motor
berdasarkan

9.2.1 Dasar Teori


1. Karakteristik Pembeli
Data yang digunakan adalah data karakteristik pembeli yang
diambil dari GitHub dengan jumlah data sebesar 2500 data. Data
terdiri dari 5 parameter yaitu
1. Usia
Parameter yang menyimpan usia dari pembeli.
2. Pendapatan
Parameter yang menyimpan pendapatan per bulan dari pembeli.

424
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

3. Status Pernikahan
Parameter yang menyimpan status pernikahan pembeli. Status
pernikahan dibagi menjadi 4 yaitu Divorce, Single, Married
dan Widowed.
4. Jenis Kelamin
Parameter yang menyimpan jenis kelamin pembeli. Jenis kelamin
dibagi menjadi 2 yaitu Male dan Female.
5. Jumlah Anak
Parameter yang menyimpan jumlah anak yang dimiliki oleh
pembeli.
Data yang digunakan juga memiliki kelas didalamnya. Kelas dalam
data dibagi menjadi 4 kelas antara lain Vario, Mio, Next dan Beat.

2. Konsep Big Data


Big data merupakan istilah umum untuk sekumpulan data yang
jumlahnya sangat besar dan kompleks sehingga tidak mudah untuk di-
tangani atau proses hanya dengan metode pemrosesan data biasa.
Terdapat tiga masalah utama yang diselesaikan oleh big data, antara
lain (Pawitra, 2016):

1. Volume
Ukuran data yang disimpan atau diproses.
2. Velocity
Kecepatan membuat data. Kecepatan data dibuat umumnya
berbanding lurus dengan volume data.
3. Variety
Keberagaman data yang diolah. Dari segi format maupun
struktur data.
eknologi yang berkaitan dengan big data akan memudahka
proses pengumpulan data-data yang sebelumnya tidak bisa atau
sulit untuk dikumpulkan.
a. Single Node
Hadoop single node menggunakan 1 mesin / computer saja
dalam melakukan prosesnya. Secara default Hadoop dikonfigur-
asikan untuk berjalan pada mode non-distributed (berdiri
sendiri). Komputer didesain sebagai master bukan slave se-
hingga semua proses dilakukan dalam satu mesin seperti yang
ditunjukkan pada Gambar 1.

425
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 9.17 Arsitektur Single Cluster

b. Mapreduce
Pada Gambar 2, Mapreduce bertujuan untuk memproses
data yang memiliki ukuran yang besar secara terdistribusi dan
parallel dalam kluster yang terdiri atas ribuan computer. Dalam
prosesnya, mapreduce dibagi menjadi 2 proses yaitu map dan re-
duce. Map berfungsi dalam pengumpulan informasi dari data-
data yang terdistribusi dalam tiap komputer. Keluaran dari proses
map akan digunakan dalam proses reduce. Proses reduce ber-
fungsi dalam penggabungan atau pengelompokan berdasarkan
kata kunci (Dean & Ghemawat, 2004).

Gambar 9.18 Cara Kerja Mapreduce

3. KNN
K-Nearest Neighbor (kNN) merupakan algoritma untuk
menentukan kelas objek data uji berdasarkan K objek pada data
latih yang terdekat (mirip). Algoritma ini termasuk instance-based

426
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

learning dan merupakan salah satu teknik lazy learning. Dasar Al-
goritma K-Nearest Neighbour (Brammer, 2007):
- Tentukan data latih yang paling dekat dengan data uji.
- Kelas yang paling sering muncul dari k data latih yang terdekat
akan dipilih.
a. Inisialisasi
Menentukan parameter K, dimana K merupakan jumlah
dari tetangga terdekat, nilai K untuk menguji data uji diten-
tukan berdasarkan nilai K optimum pada saat training.
b. Alokasi Data
Alokasikan data uji dengan cara menghitung jarak setiap
atribut data uji terhadap data latih dengan persamaan (1).
𝑑(𝑥1 , 𝑥2 ) = (𝑥11 − 𝑥21 )2 + (𝑥12 − 𝑥22 )2 (1)
dimana xij menyatakan koordinat titik xi pada dimensi
ke-j dan d merupakan jarak. Setelah menghitung jarak data uji
terhadap data latih, urutkan jarak setiap atribut data uji,
kelompokkan menurut jarak yang terdekat.
c. Klasifikasi
Klasifikasi kelompok data uji dilakukan dengan cara
mengumpulkan kategori Y (klasifikasi nearest neighbour).
Lalu, memilih kategori mayoritas dari K data yang ditentukan.

9.2.2 Implementasi
1. Kode Program
Berikut ini diberikan bagian kode program JAVA untuk
implementasi Klasifikasi Kendaraan Bermoto. Proses ini merupakan
proses map dalam MapReduce kNN. Proses map sendiri berfungsi
dalam pengumpulan informasi data-data yang menjadi input dalam
proses kNN. Keseluruhan proses map dapat dilihat dalam Kode
Program 1.

1 @Override
2 public void map(Object kunci, Text hasil, Context konteks)
3 throws IOException, InterruptedException
4 {
5 String baris = hasil.toString();
6 StringTokenizer token = new StringTokenizer(baris,
7 ",");
8

427
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

9 double umur = normalisasi(token.nextToken(), min_umur,


10 max_umur);
11 double penghasilan = normalisasi(token.nextToken(),
12 min_penghasilan, max_penghasilan);
13 String status_pernikahan = token.nextToken();
14 String kelamin = token.nextToken();
15 double anak = normalisasi(token.nextToken(), minanak,
16 maxanak);
17 String motor = token.nextToken();
18 double jarak = totaljarak(umur, penghasilan,
19 status_pernikahan, kelamin,anak, umur2, penghasilan2,
20 status_pernikahan2, kelamin2, anak2);
21
22 KnnMap.put(jarak, motor);
23 if (KnnMap.size() > K)
24 {
25 KnnMap.remove(KnnMap.lastKey());
26 }
27 }
28

Source Code 9.3 Kode Program 1


Penjelasan dari Kode Program 1:
1. Baris 1-8 merupakan proses tokenisasi yaitu
2. proses memecah baris menjadi beberapa kata.
3. Baris 8-21 merupakan proses inisialisasi parameter. Terdapat
beberapa parameter yang perlu dinormalisasi terlebih dahulu
yaitu age, income dan children.
4. Baris 23-28 merupakan proses perhitungan jarak data uji dan data
latih.
5. Baris 31 merupakan proses pembuatan TreeMap dengan jarak
sebagai sebuah key dan model sepeda motor sebagai value.
6. Baris 32-37 memproses TreeMap agar hanya memuat K data.
Apabila TreeMap memiliki data lebih dari K data maka akan
menghapus data yang tidak diperlukan.

Proses ini merupakan proses reduce dalam MapReduce kNN.


Proses reduce sendiri berfungsi dalam penggabungan dan
pengelompokan berdasarkan key atau kata kunci. Keseluruhan proses
reduce dapat dilihat pada Kode Program 2.

1 public void reduce(NullWritable kunci, Iterable<DoubleString>


2 hasil, Context konteks) throws IOException, InterruptedExcep-
3 tion
4 {
5 for (DoubleString hsl : hasil)
6 {

428
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

7 String motor = hsl.getmotor();


8 double jarak = hsl.gettotaljarak();
9
10 KnnMap.put(jarak, motor);
11 if (KnnMap.size() > K)
12 {
13 KnnMap.remove(KnnMap.lastKey());
14 }
15 }
16 List<String> baris = new Ar-
17 rayList<String>(KnnMap.values());
18
19 Map<String, Integer> frekuensi = new
20 HashMap<String, Integer>();
21
22 for(int i=0; i< baris.size(); i++)
23 {
24 Integer frek = frekuensi.get(baris.get(i));
25 if(frek == null)
26 {
27 frekuensi.put(baris.get(i), 1);
28 } else
29 {
30 frekuensi.put(baris.get(i), frek+1);
31 }
32 }
33
34 String MotorMuncul = null;
35 int frekuensi_maks = -1;
36 for(Map.Entry<String, Integer> masukan:
37 frekuensi.entrySet())
38 {
39 if(masukan.getValue() > frekuensi_maks)
40 {
41 MotorMuncul = masukan.getKey();
42 Frekuensi_maks = masukan.getValue();
43 }
44 }
45
46 konteks.write(NullWritable.get(), new Text(MotorMun-
47 cul));
48 }
49 }

Source Code 9.4 Kode Program 2


Penjelasan dari Kode Program 2 :
1. Baris 1-20 merupakan proses pembuatan TreeMap berdasarkan
data dari objek DoubleString dengan jarak sebagai key dan model
sepeda motor sebagai value dan mengatur agar TreeMap tidak
melebihi K data.
2. Baris 21-22 merupakan proses menyimpan nilai dari TreeMap
dalam sebuah ArrayList.

429
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

3. Baris 24-25 merupakan proses inisialisasi sebuah HashMap.


4. Baris 27-41 merupakan proses menghitung banyaknya frekuensi
dati tiam model sepeda motor. HashMap digunakan untuk
menyimpan nilai frekuensi tersebut sebagai value dan model
sepeda motor sebagai key.
5. Baris 43-57 merupakan proses memeriksa HashMap untuk
memperoleh model sepeda motor yang memiliki frekuensi paling
tinggi.
6. Baris 59-62 merupakan proses penyimpanan hasil perhitungan
frekuensi tertinggi ke dalam context.
2. Hadoop Single Node
Langkah utama Hadoop Single Node yang perlu dilakukan
dapat dilihat pada Gambar 3 hingga 6.

Gambar 9.19 Jalankan hadoop (start-all.sh)

430
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Gambar 9.20 Folder Data Latih dan Data Uji

Gambar 9.21 Proses Klasifikasi

Gambar 9.22 Contoh Hasil Klasifikasi

431
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Dengan penjelasan sebagai berikut:


 Langkah 1: Pada Gambar 9.19, masuk sebagai hduser, cek kondisi
apakah hadoop telah berjalan atau belum dengan jps, jika belum
maka jalankan hadoop dengan start-all.sh, lalu cek kebali kondisi
hadoop dengan jps
 Langkah 2: Pada Gambar 9.20, menyiapkan file data latih dan data
uji, dengan data latih berupa file .csv dan data uji berupa file .txt
 Langkah 3: Pada Gambar 9.21, masuk ke direktori hadoop dengan
path /user/local/hadoop, lalu membuat direktori input pada hdfs,
dan memasukkan file data latih serta data uji kedalam direktori
input yang telah dibuat, selanjutnya cek bentuk format
penjalanan programnya dengan bin/hadoop jar kp.jar KnnPattern,
kemudian jalankan program dengan masukkan path file data latih,
path direktori output, dan path file data uji dengan urutan <data
latih> <output> <data uji>, lalu tekan enter dan tunggu program
berjalan, dan lihat apakah program berjalan dengan benar tanpa
error
 Langkah 4: Pada Gambar 9.22, menampilkan output hasil program
dengan memasukkan path direktori output yang ditentukan pada
saat menjalankan program pada langkah ke-3

Berdasarkan Gambar 9.19 hingga 9.22, Hadoop Single node dapat


berjalan dengan baik dalam melakukan komputasi klasifikasi sepeda
motor digunakan kode program KnnPattern.java dan data latih yang
didapatkan dari sumber ini ( https://github.com/matt-
hicks/MapReduce-KNN ) dengan membuat analogi kesetaraan tingkat
harga mobil, yang disesuaikan dengan urutan harga motor dalam
penelitian ini sebagai kelas, baik untuk data latih maupun data uji.

9.3 Clustering Judul Majalah


Di era globalisasi seperti saat ini dimana teknologi semakin
berkembang, hampir semua aktivitas dilakukan menggunakan
internet. Adanya internet memudahkan berbagai kegiatan manusia,
terutama komunikasi dan pencarian pengetahuan atau informasi.
Penggunaan e-magazine di internet menjadi cara baru masyarakat
dalam mencari informasi dan pengetahuan. Banyak masyarakat yang
beralih menggunakan e-magazine karena kemudahan akses informasi
yang ditawarkan dan lebih efisien. Selain meningkatnya pengguna e-

432
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

magazine terdapat peningkatan juga pada penggunaan media sosial.


Penggunaan sosial media telah meningkat dari tahun 2005 hingga
tahun 2015. Pengguna media sosial merupakan pengguna yang
berumur antara 18 hingga 29 tahun. Saat ini sebanyak 90% anak muda
aktif di media sosial dimana sebelumnya tahun 2005 hanya sebesar
12% (Çakir and Güldamlasioglu, 2016).
Berdasarkan fakta tersebut, banyak e-magazine yang
memanfaatkan teknologi media sosial seperti Facebook, Twitter, dll
dalam membuat akun dari media sosial yang terintegrasi dengan e-
magazine. Manfaat integrasi dengan media sosial yaitu sebagai wadah
untuk berinteraksi antara penerbit dengan pembaca maupun
pembaca dengan pembaca lainnya.
Semakin banyaknya pengguna internet berdampak pada
banyaknya data berukuran besar yang dihasilkan setiap detik pada
web. Dikarenakan meningkatnya pengguna internet terutama e-
magazine dan media sosial, sejumlah data berukuran besar
membanjiri setiap server penyimpanan. Untuk mengolah,
mengelompokkan dan mengkomunikasi antar data teks yang
didapatkan dari media sosial dibutuhkan teknik text mining. Namun,
pemrosesan dan penganalisisan teks berjumlah besar menggunakan
metode tradisional dinilai sulit dilakukan karena metode tradisional
memiliki sumberdaya dan infrastruktur yang terbatas (Rathore and
Shukla, 2015). Dengan adanya pengembangan teori Big Data
ditemukan solusi yang menyediakan cara yang efisien dan reliabel
untuk penyimpanan data dan infrastruktur yang efektif untuk
perhitungan yang efisien. Namun, pada aplikasinya untuk mengenali
berkas target yang dicari dari sejumlah data yang besar dibutuhkan
metode untuk mengelompokkan data ke dalam beberapa kelompok
data yang mudah dikenali. Salah satu metode yang efektif digunakan
untuk mengelompokkan data (clustering) adalah K-Means.
Sebelumnya terdapat penelitian oleh Rathore dan Shukla (2015)
yang mengembangkan metode K-Means untuk mengolah Big Data
pada 5 data set yang berbeda yaitu Laustralian dataset, Breast cancer
dataset, Diabetes dataset, Iris dataset, dan Bupa dataset. Hasil
penelitian menunjukkan bahwa pengembangan metode K-Means
yang diusulkan lebih baik daripada K-Means tradisional dengan rata-
rata akurasi meningkat sekitar 3.78% sampai 8.94%. selain itu terdapat
juga penlitian yang dilakukan oleh Çakir dan Güldamlasioglu (2016)
dengan topik clustering data teks berukuran besar dari media sosial
berbahasa Turki menggabungkan penggunaan sistem Hadoop dengan
Spark dan metode clustering menggunakan K-Means. Hasil

433
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

menunjukkan bahwa metode yang digunakan mampu


mengelompokkan data berukuran besar dengan benar. Pada
penelitian ini, peneliti bermaksud untuk melakukan penelitian tentang
analisis judul bacaan pada majalah Kawanku menggunakan metode
yang sama dengan penelitian Çakir & Güldamlasioglu yaitu K-Means
clustering pada Big Data environment. Peneliti berharap penggunaan
teknologi Big Data dan K-Means clustering dapat memberikan akurasi
yang tinggi untuk proses penentuan judul bacaan pada majalah
Kawanku.

9.3.1 Dasar Teori


1. Judul Bacaan
Data yang digunakan adalah judul bacaan majalah Kawanku yang
dikategorikan dalam 7 kategori judul, dan masing-masing kategori
memiliki 10 buah dokumen yang akan digunakan sebagai data latih.
Kategori judul yang digunakan yaitu: seleb dan entertainment, news,
playground, fashion, beauty, love, dan life. Berikut ini adalah contoh
dataset yang digunakan berdasarkan kategorinya ditunjukkan Tabel 1.

Tabel 9.1 Contoh Dataset Setiap Kategori

Kategori Dokumen

Seleb & 10 Lagu .. yang Cocok Untuk Jadi Soundtrack


Entertainment Moment Perpisahan Sekolah

5 Fakta Tentang Gajah Yani yang Mati Karena


News
Sakit & Enggak Terawat di Kebun Binatang Bandung

10 Lagu .. yang Bisa Bantu Menenangkan


Playground
Pikiran Stres Saat SBMPTN

Fashion 10 Inspirasi Gaya Memakai Kemeja ..

10 Inspirasi Makeup .. yang Cocok Untuk Prop


Beauty
atau Wisuda SMA

5 Alasan Kita Harus Mempertahankan


Love
Hubungan ..

Life 5 Cara Tetap Kompak dengan Teman ..

434
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

2. Text Mining
Analisis kata atau kalimat menggunakan proses text mining. Text
mining memiliki dua proses antara lain preprocessing dan pengolahan
data (clustering atau klasifikasi). Proses text preprocessing merupakan
tahapan pertama yang dilakukan sebelum input dokumen diolah lebih
lanjut menjadi kluster-kluster kalimat. Proses-proses yang dilalui
antara lain menghilangkan tanda baca, angka, mengkoversi huruf
besar, tokenizing (cari kata dalam kalimat), stemming (ubah kata ke
kata dasar), dan menghapus kata sesuai stopword (Çakir and
Güldamlasioglu, 2016). Setelah itu proses pengolahan data, hasilmya
akan digunakan untuk pengkategorian dengan clustering atau
klasifikasi.
3. Clustering Text
Input yang digunakan dalam pembentukan sebuah cluster
kalimat berasal dari hasil text processing. Proses ini mempunyai
peranan yang sangat penting dalam meringkas secara otomatis. Setiap
topik dalam dokumen harus diidentifikasi secara tepat untuk
menemukan kesamaan (similarity) dan ketidaksamaan (dissimilarity)
yang ada pada dokumen sehingga menjamin good coverage (Sarkar,
2009). Faktor koherensi cluster digunakan untuk menjamin kualitas
hasil ringkasan. Koherensi cluster menunjukkan keterkaitan antar
kalimat pada masing-masing cluster yang terbentuk dalam proses
peringkasan banyak dokumen. Tingginya derajat koherensi cluster
yang sangat sulit dicapai karena memerlukan pengetahuan tentang
makna dan struktur kalimat (Sarkar, 2009). Tingginya derajat
koherensi dalam sebuah cluster dapat dicapai dengan
mempertahankan derajat similarity antar anggota tetap tinggi
(Hammouda and Kamel, 2003).
4. K-Means
Algoritma K-Means dikenal sebagai algoritma yang sangat mudah
dalam proses clustering data besar. Proses untuk melakukan clustering
data outlier sangatlah cepat. Selain itu, metode ini juga memiliki
kelemahan yaitu dapat dimungkinkan bagi setiap data cluster tertentu
pada suatu tahapan dapat berpindah ke cluster yang lain pada tahapan
selanjutnya (Larose et al., 2005).
Berikut ini adalah persamaan dan langkah-langkah perhitungan
menggunakan algoritma K-Means (Hung et al., 2005) antara lain:
∑𝑛
𝑖=1 𝑚(𝐶𝑗 |𝑋𝑖 )𝑋𝑖
𝑣𝑗 = ∑𝑛
𝑓𝑜𝑟 𝑗 = 1, … , 𝑘 (1)
𝑖=1 𝑚(𝐶𝑗 |𝑋𝑖 )

435
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

a. Inisialisasi dataset dari n titik data 𝑋 = {𝑥1 , … , 𝑥𝑛 }


b. Masukkan jumlah k cluster.
c. Inisialisasi centroid 𝐶𝑗 untuk k cluster dari sejumlah dataset.
d. Letakkan setiap titik pada cluster terdekat dengan menggunakan rumus
jarak Euclidean.
e. Hitung ulang mencari nilai centroid dari setiap k cluster dengan jumlah
data m untuk menemukan nilai centroid 𝐶𝑗 cluster yang baru.
f. Proses diulang hingga mendapatkan hasil yang konvergen.

9.3.2 Implementasi
Pada penelitian ini terdapat beberapa tahapan yang harus
dijalankan untuk menentukan cluster dari judul bacaan majalah
Kawanku. Berikut ini pada Gambar 9.23 ditunjukkan alur proses
clustering.

mulai

judulBacaan

preprocessing

menentukan wordcount

menentukan fitur data

menentukan cluster dengan


KMeans

centroid tiap
cluster

selesai

Gambar 9.23 Diagram Alir Clustering K-Means Judul Majalah

436
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

1. Kode Program
Berikut ini ditunjukkan potongan kode program proses clustering
pada Source Code 9.5.

1 int shouldNextIteration(Configuration conf) throws IOExcep-


2 tion{
3
4 //Merging output from reducer
5 FileSystem fs = FileSystem.get(conf);
6
7 Path reducerOutput = new
8 Path("kmeansOutput/out1"); // FOR JAR
9
10 Path centroidOld = new Path("centroid/centroid_"+(itera-
11 tionCount)+".txt");
12
13 Path centroidNew = new Path("centroid/centroid_"+(itera-
14 tionCount+1)+".txt");
15 FileUtil.copyMerge(fs,reducerOutput,fs,centroid-
16 New,false,conf,null);
17
18 //Reading new centroid file
19 String line;
20
21 Datapoint[] newCentroid = new
22 Datapoint[numberOfCentroids];
23
24 BufferedReader br = new BufferedReader(new In-
25 putStreamReader(fs.open(centroidNew)));
26
27 for(int x=0;x<numberOfCentroids;x++){
28 line= br.readLine();
29
30 String[] centroidString =
31 line.split("\t");
32
33 newCentroid[x]= new
34 Datapoint(centroidString[0],centroidString[1]);
35
36 System.out.println(centroidString[0]
37 + "===VSD NEW===="+
38 centroidString[1]);
39 }
40
41 br.close();
42
43 //Reading old centroid
44 line="";
45
46 Datapoint[] oldCentroid = new Datapoint[numberOfCentroids];
47
48 br = new BufferedReader(new InputStreamReader(fs.open(cen-
49 troidOld)));
51
52 for(int x=0;x<numberOfCentroids;x++){
53 line=br.readLine();
54 String[] centroidString =

437
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

55 line.split("\t");
56 oldCentroid[x]= new Datapoint(centroidString[0],cen-
57 troidString[1]);
58 System.out.println(centroidString[0]
59 + "===VSD OLD===="+
60 centroidString[1]);
61 }
62 br.close();
63
64 //Comparing thechange from previous centroid
65 for(int i = 0; i<numberOfCentroids;i++){
66 for(int k = 0;k<numberOfAttributes;k++){
67
68 if(0.02<Math.abs(newCentroid[i].getVal(k)-oldCentroid[i].get-
69 Val(k))){
70 shouldContinue = true;
71 System.out.println("Should continue: "+ shouldContinue);
72 return 1; }
73 else{
74 shouldContinue = false;
75 System.out.println("Should continue: "+ shouldContinue);
76 }
77 }
78 }
79 return 0;
80 }
81

Source Code 9.5 KMeansHadoop.java

Berikut ini merupakan tampilan keluaran dari sistem proses


run file yang dijalankan ditunjukkan pada Gambar 9.24.

Gambar 9.24 Keluaran dari Proses Run File

438
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Selain itu, berikut tampilan keluaran dari sistem proses run


clustering yang dijalankan ditunjukkan pada Gambar 4.

Gambar 9.25 Keluaran Proses Run Clustering

Keluaran dari sistem menunjukkan hasil dari proses


clustering yaitu nilai centroid dari setiap cluster yang
dibandingkan dengan nilai centroid awal dari setiap cluster.

439
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

9.4 Collaborative Filtering


Pada dasarnya, film merupakan salah satu media massa
komunikasi yang digunakan untuk mengkomunikasikan suatu realita
yang terjadi dalam kehidupan sehari-hari. Didukung oleh
perkembangan teknologi dan paduan unsur seni, film semakin dapat
menciptakan gambar-gambar yang mendekati kenyataan. Kehadiran
film dianggap sangat penting, konten yang disajikan mampu menjadi
sumber hiburan bahkan mampu memberikan indoktrinasi kepada
penontonnya. Perkembangan produksi film menjadi semakin banyak,
dan peminat film pun mengalami kesulitan dalam pemilihan film yang
akan ditonton sesuai dengan keinginannya diantara banyak deretan
film baru tersebut. Hal ini yang mendasari adanya sistem rekomendasi
film yang memberikan informasi atau item yang bersifat personal
dengan mempelajari interaksi seorang pengguna dengan pengguna
lain dengan item film yang telah tersimpan sebelumnya.
Collaborative Filtering adalah salah satu metode rekomendasi film
yang didasarkan pada rating. Rating setiap pengguna film menjadi
penting dan khusunya rating 5 bintang agar menghasilkan rekomendasi
yang berkualitas. Collaborative filtering menganggap bahwa selera
pengguna terhadap suatu item atau barang akan cenderung sama dari
waktu ke waktu. Ditambah lagi, pengguna yang menyukai suatu item
biasanya juga akan menyukai item lain yang disukai oleh pengguna lain
yang juga menyukai item yang sama dengan pengguna tersebut. Pada
penelitian ini mengajukan metode Collaborative Filtering (CF)
menggunakan maching learning Hadoop sebagai metode
dalammemberikan rekomendasi dengan skalabilitas yang besar.

9.4.1 Dasar Teori


4. Dataset
Dataset yang digunakan adalah training dataset dari Netflix
Prize Challenge. Data tersebut dalam betuk training_set.tar yang
berisi 17770 file film. Pada baris pertama setiap file film berisi id
film, kemudia paragraph penjelasan film berisi rating dari costumer
beserta tanggal film tersebut di tayangkan. Kemudian file training
tersebut di ubah dalam 3 fitur yang terdiri atas UserID, MovieID,
Rating. Data yang di ubah menjadi 3 fitur tersebut di masukkan
pada folder input dengan nama file userRating.txt.
5. Konsep Big Data
Big data adalah suatu kondisi yang menggambarkan sistem
basis data konvensional yang memiliki volume data terstruktur
ataupun tidak terstruktur yang besar. Pertumbuhan jumlah data ini
akan semakin berkembang dan arsitektur sistem basis data

440
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

konvensional pun tidak bisa untuk menghadapi kondisi yang


sedemikian rupa disebabkan karena ketidakmampuan untuk
memperbesar kapasitas yang telah dibuat.
Untuk itu, dibutuhkan sebuah teknologi informasi yang
dapat melakukan proses pengolahan, penyimpanan dan analisis
data dalam beragam bentuk/format, berjumlah besar dan
pertambahan data yang sangat cepat.
6. Collaborative Filtering
Metode CF merupakan salah satu metode rekomendasi
yang menggunakan data rating dari pengguna lain. Metode ini
bertujuan untuk memberikan rekomendasi kepada pengguna
yang akan memilih atau membeli suatu produk berdasarkan dari
rating yang diberikan oleh pengguna lain. Ada dua (2) jenis sistem
rekomendasi menggunakan CF, yaitu:
a. User-based Collaborative Filtering (UFC)
Pada UFC ada banyak teknik yang dapat digunakan untuk
mencari nilai prediksi untuk pengguna aktif ( 𝑃𝑎,𝑖 ), mulai dari
dengan cara menjumlahkan semua rating dari pengguna lain yang
seleranya sama dan kemudian dibagi dengan jumlah pengguna
tersebut, hingga menggunakan cara pembobotan.
Ada 3 tahap dalam mencari nilai prediksi (𝑃) dan daftar
rekomendasi ( 𝐿 ) untuk pengguna aktif, yaitu: input, proses
(algoritma UFC), dan keluaran (𝑃 dan 𝐿). Input berupa nilai irisan
𝐿𝑎,𝑖 dimana nilai itu merupakan item yang sudah di rating oleh
pengguna aktif dan irisan 𝐿𝑢,𝑖 yang merupakan item yang di rating
oleh pengguna lain. Dalam algroitma UFC, sebelum mencari nilai
𝑃𝑎,𝑖 perlu dicari dahulu nilai tetangga dari 𝑈𝑎 (jumlah rating dari
pengguna lain yang seleranya sama dengan pengguna aktif).
Perhitungan rumusnya:
∑𝑚 𝑅𝑢,𝑗
𝑃𝑎,𝑗 = 𝑈=1 (1)
𝑚
Pada Rumus (1), variabel 𝑚 merupakan jumlah tetangga.
Dalam algortima ini dalam perhitungannya tidak melibatkan
variabel yang menunjukan bahwa seorang tetangga berbeda dari
tetangga lainnya.
∑𝑚
𝑈=1 𝑅𝑢,𝑗 𝑊𝑢
𝑃𝑎,𝑗 = ∑ 𝑊𝑢
(2)
Pada Rumus (2), variabel 𝑊 merupakan bobot yang
diberikan pengguna 𝑈𝑚 . Nilai 𝑊 dapat ditentukan secara manual
oleh 𝑈𝑎 atau pembuat sistem. Atau dapat juga dicari dengan cara
menambahkan variabel rata-rata rating dari 𝑈𝑎 dan 𝑈𝑚 , seperti
pada rumus:

441
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

∑𝑚 (𝑅𝑢,𝑗 −𝑅
̅̅̅̅
𝑢)
𝑃𝑎,𝑗 = ̅𝑅̅̅𝑎̅ + 𝑈=1 (3)
𝑚
Algoritma pembobotan dan rata-rata rating dapat
digabungkan supaya mendapatkan 𝑃 yang lebih spesifik dengan
menggunakan rumus:
∑𝑚 ̅̅̅̅
𝑈=1(𝑅𝑢,𝑗 −𝑅𝑢 )𝑊𝑢
𝑃𝑎,𝑗 = ̅𝑅̅̅𝑎̅ + ∑ 𝑊𝑢
(4)
Dengan menggabungkan pembobotan dan rata-rata rating
penggua, nilai 𝑃𝑎,𝑗 akan lebih spesifik karena melibatkan dua
variabel yang berasal dari kegiatan lampau pengguna aktif dan
tetangga.
b. Item-based Collaborative Filtering
Pendekatan item-based yaitu dengan menggunakan
sekumpulan item yang telah diberi rating oleh pengguna dan
menghitung kemiripannya terhadap target item 𝑖 untuk kemudian
dipilih sebanya 𝑘 item yang paling mirip. Setelah ditemukan item
yang paling mirip, kemudian dihitung berdasarkan nilai rata-rata
dari rating dari pengguna pada item yang mirip. Untuk menghitung
kemiripan item terdapat dua cara yaitu:
o Adjusted Cosine-based similarity
Digunakan menghitung kemiripan dari pengguna yang
memberikan rating berbeda, dengan menggunakan rumus:
∑𝑚 ̅̅̅̅ ̅̅̅̅
𝑖=1(𝑅𝑘,𝑝 −𝑅𝑘 )(𝑅𝑘,𝑞 −𝑅𝑘 )
𝑠𝑖𝑚(𝑖𝑝 , 𝑖𝑞 ) = (5)
√ ∑𝑚 ̅̅̅̅ 2 𝑚 ̅̅̅̅ 2
𝑖=1(𝑅𝑘,𝑝 −𝑅𝑘 ) √∑𝑖=1(𝑅𝑘,𝑞 −𝑅𝑘 )

Dimana variabel 𝑠𝑖𝑚(𝑖𝑝 , 𝑖𝑞 ) merupakan nilai similarity


antara item 𝑖𝑝 dan 𝑖𝑞 . 𝑅𝑘,𝑝 merupakan nilai rating pengguna 𝑘
terhadap item 𝑝 , sedangkan 𝑅𝑘 adalah rata-rata rating dari
user 𝑘.
o Correlation-based similarity
Digunakan untuk mengukur seberapa dekat hubungan
antara dua variabel. Untuk lebih jelasnya dapat dilihat pada
rumus:
∑𝑚 ̅̅̅̅ ̅̅̅̅
𝑖=1(𝑅𝑘,𝑝 −𝑅𝑝 )(𝑅𝑘,𝑞 −𝑅𝑞 )
𝑠𝑖𝑚(𝑖𝑝 , 𝑖𝑞 ) = (6)
√∑𝑚 ̅̅̅̅ 2 𝑚 ̅̅̅̅ 2
𝑖=1(𝑅𝑘,𝑝 −𝑅𝑝 ) √∑𝑖=1(𝑅𝑘,𝑞 −𝑅𝑞 )

Dimana untuk mendapatkan persmaan 𝑅𝑝 dan 𝑅𝑞 adalah


dengan menggunakan rumus:
̅𝑅̅̅𝑝̅ = 1 ∑𝑚 𝑅 (7)
𝑚 𝑖=1 𝑝,𝑖
̅𝑅̅̅𝑝̅ = 1 ∑𝑚
𝑖=1 𝑅𝑞,𝑖 (8)
𝑚

442
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Dimana 𝑅𝑝,𝑖 merupakan rating item 𝑝 oleh pengguna 𝑖


dan 𝑅𝑞,𝑖 merupakan rating item 𝑞 oleh pengguna 𝑖.

9.4.2 Implementasi
Proses ini menjelaskan mengenai tahapan map reduce pada
dataset yang dimasukkan. Map reduce ini berdasarkan userID dari
pemberi rating. Berikut sedikit potongan kode program dari proses map
reduce.
publicvoid map(LongWritable key, Text value, Context context) throws
IOException, InterruptedException {

//input user,movie,rating
String[] user_movie_rating = value.toString().trim().split(",");
intuserID = Integer.parseInt(user_movie_rating[0]);
String movieID = user_movie_rating[1];
String rating = user_movie_rating[2];

context.write(new IntWritable(userID), new Text(movieID + ":" + rat-


ing));
}

publicvoid reduce(IntWritable key, Iterable<Text>values, Context


context)
throws IOException, InterruptedException {

StringBuilder sb = new StringBuilder();


while (values.iterator().hasNext()) {
sb.append("," +
values.iterator().next());
}
//key = user value=movie1:rating, movie2:rating...
context.write(key, new Text(sb.toString().replaceFirst(",", "")));

}}

Source Code 9.6 Map Reduce


Penjelasan dari Kode Program1:
o Baris 1-10 merupakan proses mapping untuk memilah data pada
setiap dataset.
o Baris 12-22 merupakan proses reduce untuk mengelompokkan
data berdasarkan userID.

Sebelum dapat menjalankan program, penulis melakukan start


hadoop dengan syntax “start-all.cmd”

443
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Setelah hadoop aktif, maka penulis menyiapkan data yang akan


dijalankan pada kode program.seperti yang sudah dijelaskan pada sub-
bab dataset, penulis menggunakan data yang berisi userID, movieID,
dan rating. Data ini berjumlah 21 data yang disimpan dalam file
userRating.txt.

Ketika ingin menjalankan kode program, sebaiknya file yang


dijadikan dataset diunggah ke dalam database hadoop. Disini penulis
menggunakan Syncfusion Big Data Studio untuk menyimpan file input
dan hasil output dari kode program yang dijalankan. Untuk
mengkoneksikan antara kode program yang dijalankan dengan
database hadoop, maka diperlukan syntax yang mendefinisikan
dimana file input yang akan dijalankan. Berikut syntax yang digunakan
untuk koneksi ke database hadoop.

444
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

1 args = new String[7];


2
3 args[0]=
"hdfs://localhost:9000/user/hduser/cf/input/userRating.txt";
args[1]=
4 "hdfs://localhost:9000/user/hduser/cf/output6/DividerByUser";
args[2]=
"hdfs://localhost:9000/user/hduser/cf/output6/coOccurrenceMatr
5 ixBuilder";
args[3]=
"hdfs://localhost:9000/user/hduser/cf/output6/NormalizeCoOccur
6 renceMatrix";
args[4]=
"hdfs://localhost:9000/user/hduser/cf/output6/MultiplicationMa
7 pperJoin";
args[5]=
"hdfs://localhost:9000/user/hduser/cf/output6/MultiplicationSu
8 m";
args[6]=
"hdfs://localhost:9000/user/hduser/cf/output6/RecommenderListG
9 enerator";

Penjelasan dari Kode Program1:


o Baris 1 merupakan inisialisasi objek baru bernama args dengan
panjang array String sejumlah 7.
o Baris 3 merupakan pengambilan file input bernama userRating
pada localhost:9000.
o Baris 4-9 merupakan penyimpanan hasil running setiap file class
dari kode program.

Maka setelah kode program berhasil dijalankan, hasil output akan


disimpan dalam localhost:9000.

Hasil output dari implementasi Hadoop Map Reduce telah berhasil


diimplementasikan seperti terlihat pada gambar 4 sampai dengan gam-
bar 7. Implementasi Hadoop MapReduce ini menggunakan kode pro-
gram dan dataset yang diperoleh dari https://github.com/blackruan/rec-
ommender-system.git.

445
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

9.5 Klasifikasi Data Kualitatif (C4.5)


Penelitian merupakan hal yang sangat penting dalam
perkembangan kehidupan bermasyarakat maupun kemajuan
peradaban. Dari hasil peneitian, banyak dihasilkan pengetahuan baru
. Namun dalam pelaksanaannya terjadi berbagai kendala dan
persoalan yang terjadi, salah satunya adalah kendala pada pengolahan
data. Data merupakan sekumpulan dari catatan fakta yang kemudian
di simbolkan dalam bentu angka (kuantitatif) maupun kata – kata
(kualitatif). Masing-masing data didapat dari hasil pengamatan maupun
hasil pengukuran sehingga menghasilkan nilai – nilai variable tertentu.
Pada era ini jumlah data semakin membeludak, baik dari sektor
pendidikan, bisnis, maupun dari sumber – sumber data yang lain. Dari
sekumpulan data tadi dapat diambil bebrbagai macam informasi yang
bermanfaat bagi pihak pengolah data maupun bagi masyarakat pada
umumnya. Kebanyakan dari data – data tersebut merupakan data
berupa kata –kata yang menggambarkan kondisi atau merupakan
karakteristik dari objek. Data bernilai kualitatif ini tentunya memerlukan
metode tersendiri untuk dapat menghasikan informasi yang
bermanfaat. Jika data kualitatif diolah dengan tepat dapat
mendapatkan banyak informasi, diantaranya adalah rule yang bisa
digunakan sebagai acuan untuk klasifikasi. Metode yang yang dapat
digunakan untuk mengolah data kualitatif menjadi rule klasifikasi
adalah C4.5. Algoritma C4.5 merupakan kelompok algoritma Decision
Tree. Pohon keputusan merupakan metode klasifikasi dan prediksi
yang sangat kuat dan terkenal.
Dari permasalahan di atas sebenarnya sudah banyak sekali
metode – metode yang ditemukan dan diterapkan. Fitur – fitur yang
akan digunakan pada penelitian ini adalah cuaca, kelembapan,
temperatur, dan kecepatan. Data yang digunakan tentu sangat besar
dan bervariasi maka dari itu diperlukan sebuah framework tersendiri
yang mampu melakukan pengolahan dan penyimpanan untuk data
dengan jumlah yang besar.
Pada penelitian ini digunakan Map Reduce sebagai framework dan
metode pengolahan datanya yaitu menggunakan algoritma decision
tree C4.5. metode tersebut dipilih karena merupakan metode klasifikasi
dan prediksi yang sangat kuat dan terkenal. Metode pohon keputusan
mengubah fakta yang sangat besar menjadi pohon keputusan yang
merepresentasikan aturan. Hasil pada penelitian ini berupa rule.

446
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

9.5.1 Dasar Teori


7. Data Kualitatif
Data kualitatif berbentuk deskriptif, berupa kata-kata lisan
atau tulisan tentang tingkah laku manusia yang dapat diamati
(Taylor dan Bogdan, 1984). Data kualitatif dapat dipilah menjadi
tiga jenis (Patton, 1990) [3]:
- Hasil pengamatan: uraian rinci tentang situasi, kejadian,
interaksi, dan tingkah laku yang diamati di lapangan.
- Hasil pembicaraan: kutipan langsung dari pernyataan orang-
orang tentang pengalaman, sikap, keyakinan, dan pemikiran
mereka dalam kesempatan wawancara mendalam.
- Bahan tertulis: petikan atau keseluruhan dokumen, surat-
menyurat, rekaman, dan kasus sejarah.
8. Big Data
Era Big Data telah menjadi era baru yang merupakan hasil
perkembangan sejarah panjang media pemrosesan dan
penyimpanan data. IBM 305 RAMAC adalah komputer komersial
pertama yang menggunakan hard disk drive (magnetic disk
storage) sebagai penyimpanan sekundernya. Sistem ini
dipublikasikan pada tanggal 14 September 1958 dimana unit-unit
percobaannya telah dipasang pada angkatan laut US dan
perusahaan-perusahaan swasta. RAMAC, singkatan dari
“Random Access Method of Accounting and Control”,
perancangannya dimotivasi oleh kebutuhan akuntansi real-time
dalam bisnis. Saat itu, RAMAC hanya memiliki kapasitas 5 MB.
Pada tahun 1963 ditemukan teknologi Audio Tape yang memiliki
kapasitas 660 KB. Floppy Disk, kemudian muncul pada tahun
1971 dengan ukuran 8 inchi dan kapasitas 80 KB, tahun 1976
dengan ukuran 5,5 inchi dan kapasitas 100 KB, serta tahun 1981
semakin kecil secara fisik yaitu 3,5 inchi namun lebih besar
dengan kapasitas 1,4 MB. Pada tahun-tahun selanjutnya,
teknologi penyimpanan data berpindah pada Optical Disk yaitu CD
(Compact Disk) dengan kapasitas 400 MB, DVD (Digital Versatile
Disk) dengan kapasitas 4,7 GB hingga Blue Ray yang mampu
menyimpan data hingga 25 GB[1].
Dari tahun ke tahun, harga media penyimpanan semakin
murah, dengan ukuran yang semakin kecil, namun kapasitas yang
semakin besar. Penelitian menunjukkan bahwa setiap hari, 2,5
triliun byte data diproduksi dan 90% data di dunia hari ini
diproduksi dalam dua tahun terakhir. Fakta inilah yang memicu
ledakan data hingga lahirlah istilah Big Data yang kita kenal
sekarang. Terdapat 5 karakteristik dari Big Data yang disebut
dengan istilah 5V, yaitu:

447
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

1. Volume
Karakteristik ini mengacu pada kapasitas atau jumlah data
yang dihasilkan untuk setiap waktu. Dalam satu detik, media
seperti E-Mail, Facebook, Youtube, Twitter menghasilkan berjuta
data. Diperkirakan ledakan data yang membanjiri bumi mencapai
2.5 Exabyte (1 Exabyte = 1 Milyar Gigabyte). Pada tahun 2020,
diperkirakan ledakan data yang dihasilkan perhari mencapai 35
Zettabyte (1 Zettabyte = 1000 Exabyte).
2. Variety
Berbagai jenis media produksi data yang digunakan
mengakibatkan beragamnya jenis data yang dihasilkan. Dengan
begitu banyaknya sensor, perangkat pintar dan teknologi
kolaborasi sosial, data yang pada umumnya dihasilkan dalam
bentuk data terstruktur, sekarang berkembang menjadi berbagai
bentuk data yaitu data terstruktur, tidak terstruktur, dan
semiterstruktur.
3. Velocity
Velocity adalah kecepatan data yang terus meningkat.
Karakteristik ini mengacu pada kecepatan di mana data dibuat,
diolah, dan dianalisis secara terus-menerus. Teknologi Big Data
sekarang memungkinkan kita untuk menganalisis data sementara
yang dihasilkan tanpa pernah memasukkannya ke dalam
database.
4. Veracity
Veracity merupakan ketidakpastian dari data. Veracity
mengacu pada tingkat kehandalan dari data dengan jenis tertentu.
Big Data juga mengandung data-data yang rusak, tidak normal,
dan tidak sesuai. Data tersebut tentu saja dapat menghasilkan
informasi yang salah. Oleh karena itu, diperlukan kemampuan
untuk meneliti dan mengidentifikasi ketidakpastian data tersebut.
5. Value
Value mengacu pada nilai data yang terus bertambah.
Diperlukan kemampuan untuk mengubah data yang banyak
tersebut menjadi bernilai agar dapat digunakan mendukung tujuan
tertentu. Semua data yang tersedia tidak akan memiliki arti kecuali
kita dapat mengambil nilai penting darinya.

9. Hadoop
Apache Hadoop adalah suatu framework yang
memungkinkan pemrosesan data set besar pada kluster-kluster
komputer secara terdistribusi dengan memanfaatkan model-
model pemrograman sederhana. Hadoop dirancang untuk dapat

448
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

dikembangkan (scale up) dari sebuah server hingga ribuan mesin,


dimana tiap-tiap mesin tersebut menawarkan fitur komputasi dan
penyimpanan secara lokal. Hadoop tidak bergantung pada
hardware untuk memberikan tingkat ketersediaan yang tinggi
(high availability) karena library Hadoop sendiri dirancang untuk
mendeteksi dan menangani kegagalan (failure) pada layer
aplikasi. Pada intinya, Hadoop bukanlah sebuah software,
melainkan sebuah framework open source Apache yang
dikembangkan menggunakan bahasa pemrograman Java, dan
dapat digunakan untuk memproses data set yang besar menjadi
komputasi terdistribusi yang lebih kecil. Dengan fitur-fitur Hadoop
yang terbilang powerful, diiringi dengan lisensinya yang open-
source, menjadikan Hadoop sebagai suatu solusi data yang cost-
effective. Hadoop membawa komputasi paralel yang sangat besar
ke dalam suatu commodity server. Hal ini akan menghemat biaya
penyimpanan per terabyte dan membuat pemodelan seluruh data
menjadi lebih terjangkau (affordable). Oleh karena itu, beberapa
perusahaan terkemuka di dunia pun menggunakan Hadoop
sebagai solusi untuk mengolah data masif yang mereka miliki,
baik data yang terstruktur maupun tidak terstruktur [1]. Hadoop
diciptakan oleh Doug Cutting dan Mike Cafarella pada tahun 2005
yang pada saat itu bekerja di Yahoo!. Beberapa perusahaan yang
menggunakan Hadoop dapat dilihat pada Gambar berikut.

10. MapReduce
MapReduce merupakan suatu model pemrograman dan
implementasi terkait untuk memproses dan menghasilkan dataset
besar. Pengguna menspesifikasikan fungsi map yang memproses
pasangan key/vaiue untuk menghasilkan sekumpulan pasangan
intermediate key/value. Sedangkan, fungsi reduce
menggabungkan seluruh intermediate value yang berasosiasi
dengan intermediate key yang sama. MapReduce adalah suatu
teknik dan model pemrograman untuk komputasi terdistribusi.
Keuntungan utama dari MapReduce adalah kemudahan untuk

449
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

mengatur pemrosesan data dengan memanfaatkan beberapa


node komputasi. Ketika aplikasi yang kita inginkan sudah kita buat
dengan model pemrograman MapReduce, maka aplikasi dapat
berjalan dalam ratusan, ribuan, bahkan puluh ribuan mesin dalam
suatu kluster dengan hanya mengubah konfigurasi saja.
Skalabilitas sederhana inilah yang membuat banyak programmer
tertarik untuk menggunakan model MapReduce. MapReduce
merupakan ‘jantung’ dari Hadoop[1]. Singkatnya, komputasi pada
model MapReduce memanfaatkan sekumpulan key/value sebagai
input, dan menghasilkan output yang juga berupa pasangan
key/value. Pengguna pustaka MapReduce mengekspresikan
komputasi tersebut dalam dua buah fungsi, yaitu Map dan
Reduce.

a. Map
Fungsi Map menerima pasangan input dan menghasilkan
sekumpulan pasangan kunci/nilai perantara (intermediate
key/value). Pustaka MapReduce mengelompokkan seluruh nilai
perantara yang berasosiasi dengan kunci perantara yang sama,
kemudian meneruskannya ke fungsi Reduce.
b. Reduce
Fungsi Reduce menerima suatu kunci perantara dan
sekumpulan nilai untuk kunci tersebut. Fungsi ini menggabungkan
nilai-nilai tersebut untuk kemudian membentuk sekumpulan nilai
yang lebih sederhana atau jumlahnya lebih sedikit. Idealnya,
setiap pemanggilan Reduce akan menghasilkan nol atau satu nilai
output. Nilai perantara diberikan ke fungsi Reduce melalui suatu
iterator. Hal ini memungkinkan kita untuk menangani nilai yang
terlalu besar untuk dimasukkan ke dalam memori. Reduce
mengambil output dari fungsi Map sebagai input, kemudian
menggabungkan data tersebut menjadi satu set data yang lebih
sederhana atau jumlahnya lebih sedikit. Fungsi Reduce ini selalu
dilakukan setelah fungsi Map.
Dalam model pemrograman MapReduce, tipe data antara
fungsi Map dan Reduce memiliki hubungan sebagai berikut:
map (k1,v1) → list(k2,v2)
reduce (k2,list(v2)) → list(v2)

Tipe data input kunci/nilai pada fungsi Map (k1, v1) boleh
saja berbeda dengan tipe data output fungsi Map (k2, v2). Namun
tipe data input fungsi Reduce (k2, v2) harus sama dengan tipe
data output fungsi Map. Tipe data output fungsi Reduce (v2)

450
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

cenderung sama dengan tipe data nilai dari input fungsi


Reduce[1].
11. Algoritma C4.5
Secara umum Algoritma C4.5 untuk membangun pohon
keputusan adalah sebagai berikut [2]:
- Memilih atribut untuk digunakan sebagai akar
- Membuat cabang untuk masing-masing nilai
- Membagi kasus dalam cabang
- Mengulangi proses untuk masing-masing cabang sampai
semua kasus pada cabang memiliki kelas yang sama.
Untuk pemilihan atribut sebagai akar, didasarkan pada nilai
gain tertinggi dari atribut-atribut yang ada., Rumus perhitungan
gain adalah seperti yang tertera berikut:
𝑛
|𝑆𝑖 |
𝐺𝑎𝑖𝑛 (𝑆, 𝐴) = 𝐸𝑛𝑡𝑟𝑜𝑝𝑦(𝑆) − ∑ ∗ 𝑒𝑛𝑡𝑟𝑜𝑝𝑦(𝑆𝑖)
|𝑆|
𝑖=1

Keterangan:
S : Himpunan kasus
A : Atribut
n : Jumlah partisi atribut A
|Si| : Jumlah kasus pada partisi ke i
|S| : Jumlah kasus dalam S
Sebelum mendapatkan nilai Gain adalah dengan mencari
nilai Entropi. Entropi digunakan untuk menentukan seberapa
informatif sebuah masukan atribut untuk menghasilkan sebuah
atribut. Rumus dasar dari Entropi adalah sebagai berikut:

𝐸𝑛𝑡𝑟𝑜𝑝𝑦(𝑆) = ∑ − 𝑝𝑖 ∗ 𝑙𝑜𝑔2 𝑝𝑖
𝑖=𝑖

Keterangan:
S : Himpunan Kasus
n : Jumlah partisi S
pi: Proporsi dari Si terhadap S

451
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

9.5.2 Implementasi
Berikut kode program dari kedua class, yaitu class GainRatio.java
1 public double entropy(int c[]){
2 double entropy=0;
3 int i=0;
4 int sum=0;
5 double frac;
6 while(c[i]!=0) {
7 sum=sum+c[i];
8 i++;}
9 i=0;
10 while(c[i]!=0){
11 frac=(double)c[i]/sum;
12 entropy=entropy-frac*(Math.log(frac)/Math.log(2));
13 i++;}
14 return entropy;}
15
16 public double gainratio(int index,double enp){
17 int c[][]=new int[1000][100];
18 int sum[]=new int[1000]; //
19 String currentatrrval="@3#441get";
20 double gainratio=0;
21 int j=0;
22 int m=-1; //index for split number
23 int lines=linenumber;
24 int totalsum=0;
25 for(int i=0;i<lines;i++){
26 if(Integer.parseInt(count[i][0])==index) {
27 if(count[i][1].contentEquals(currentatrrval)) {
28 j++;
29 c[m][j]=Integer.parseInt(count[i][3]);
30 sum[m]=sum[m]+c[m][j]; }
31 else{
32 j=0;
33 m++;
34 currentatrrval=count[i][1];
35 c[m][j]=Integer.parseInt(count[i][3]); //(different class) data sets count
36 per m index split
37 sum[m]=c[m][j]; }
38 }
39 }
40 int p=0;
41 while(sum[p]!=0) {
42 totalsum=totalsum+sum[p]; //calculating total instance in node
43 p++;}
44 double wtenp=0;
45 double splitenp=0;
46 double part=0;
47 for(int splitnum=0;splitnum<=m;splitnum++){
48 part=(double)sum[splitnum]/totalsum;
49 wtenp=wtenp+part*entropy(c[splitnum]); }
50 splitenp=entropy(sum);
51 gainratio=(enp-wtenp)/(splitenp);
52 return gainratio;
53 }

452
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Langkah-langkah dimulai dari start sampai mengeluakan output dari


metode c45:
7. Ketik start-all.sh

8. Cek JPS

9. Membuat folder c45 di hduser, kemudian membuat folder input didalam


folder C45.

10. Mengecek folder di localhost:50070

11. Copy file dari local ke hdfs

453
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

12. Mengecek file di localhost:50070

13. Membuat folder folder output1 didalam folder C45.

14. Mengecek folder di localhost:50070

15. Menjalankan Eclipse

16. Memilih direktori workplace

454
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

17. File Input

18. Run Program

19. Download Output

455
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

20. Hasil Output

9.6 Clustering Tingkat Pengetahuan


Perkuliahan merupakan suatu sarana pembelajaran Mahasiswa
terkait dengan bidang studi yang diambil. Pada umumnya seorang
Mahasiswa dapat mengambil lebih dari satu mata kuliah sesuai dengan
jumlah yang telah ditentukan. Beragamnya matakuliah yang diambil
mengakibatkan tingkat pemahaman terhadap mata kuliah tersebut
beragam. Terlebih lagi keminatan Mahasiswa juga mempengaruhi
tingkat pemahaman Mahasiswa tersebut terhadap mata kuliah yang
tengah diambil. Proses perkuliahan telah di rancang dengan
sedemikian rupa dengan kurikulum yang telah diterapkan, dengan
harapan Mahasiswa tersebut dapat memahami mata kuliah yang
disampaikan dengan baik. Tetapi karena tingkat pemahaman siswa
yang berbeda – beda diperlukan pengukuran tingkat pemahaman
siswa untuk kemudian dapat dilakukan evaluasi dalam melakukan
proses pengajaran.
Dalam sistem ini digunakan user modeling. User modelling
merupakan salah satu mekanisme yang kuat untuk aplikasi adaptif
yang menggunakan pengguna sebagai model untuk menyesuaikan
subyek sesuai dengan pengetahuannya. Tujuan utama dari
penggunaan user modeling system adalah untuk memberikan
pengetahuan yang cukup bagi Mahasiswa. Dengan memberikan
tingkat pengetahuan yang cukup bagi Mahasiswa, diharapkan dapat
meningkatkan kualitas Mahasiswa tersebut setelah selesai menempuh
pendidikan dalam perguruan tinggi tersebut. Siswa yang terdapat
dalam perguruan tinggi tersebut terdapat lebih dari seratus Mahasiswa
sehingga mustahil digunakan klasifikasi manual dalam penentuan
klasifikasi tingkat pemahaman Mahasiswa tersebut. Oleh karena itu
diperlukan sistem untuk mengklasifikasi tingkat pemahaman
mahasiswa berdasarkan parameter yang telah di dapat sebelumnya.
Dalam membangun sistem ini penulis menggunakan K-means
clustering untuk mengklasifikasi tingkat pemahaman tersebut. Tingkat
pemahaman mahasiswa kemudian ditentukan clusternya berdasarkan
parameter berikut, tingkat waktu belajar terhadap objek,tingkat

456
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

pengulangan belajar terhadap objek, tingkat waktu belajar pada objek


lain, kemampuan menghadapi ujian sesuai objek, kemampuan
menghadapi ujian pada objek lain, dan tingkat pengetahuan siswa.

9.6.1 Dasar Teori


12. Dataset
Data yang digunakan adalah data mengenai status penge-
tahuan siswa terhadap mata kuliah mesin listrik. Data tersebut
akan dikategorikan menjadi 4 kategori tingkat pengetahuan siswa
yang terdiri dari very low, low, middle, dan high berdasarkan 5
buah fitur. Contoh dataset yang digunakan pada Tabel berikut.

Fitur
UNS
STG SCG STR LPR PEG
0 0 0 0 0 very_low
0.08 0.08 0.1 0.24 0.9 High
0.06 0.06 0.05 0.25 0.33 Low
0.1 0.1 0.15 0.65 0.3 Middle
0.08 0.08 0.08 0.98 0.24 Low
0.09 0.15 0.4 0.1 0.66 Middle
0.1 0.1 0.43 0.29 0.56 Middle
0.15 0.02 0.34 0.4 0.01 very_low
0.2 0.14 0.35 0.72 0.25 Low

Sumber:
https://archive.ics.uci.edu/ml/datasets/User+Knowledge+Modeling

Keterangan:
STG : Tingkat waktu belajar terhadap objek
SCG : Tingkat pengulangan belajar terhadap objek
STR : Tingkat waktu belajar pada objek lain
LPR : Kemampuan menghadapi ujian sesuai objek
PEG : Kemampuan menghadapi ujian pada objek lain
UNS : tingkat pengetahuan siswa
13. Konsep Big Data
Big data merupakan data yang melebihi kapasitas dalam
sistem basis data, berukuran sangat besar dan memiliki struktur
yang tidak sesuai dengan struktur basis data yang ada sehingga
dalam pengolahannya membutuhkan proses dari teknik-teknik
yang lain (Dumbill, 2012). Big Data dapat didefinisikan sebagai
sebuah teknologi baru yang memungkinkan untuk melakukan

457
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

pemrosesan, pengolahan, analisis, dan penyimpanan data dalam


format beragam yang berukuran sangat besar dengan waktu pem-
rosesan yang lebih singkat. Sebuah big data memiliki beberapa
karakteristik diantaranya volume, variety serta velocity.
Volume dalam big data merupakan besarnya ukuran se-
buah data yang menyebabkan dibutuhkannya solusi untuk
melakukan pemrosesan dan penyimpanan data. Karakteristik
kedua yaitu velocity, pertumbuhan data dapat terjadi dalam waktu
yang sangat cepat dengan bertambah dalam jumlah yang sangat
banyak. Karakteristik ketiga yaitu variety, keberagaman bentuk
atau format sejumlah data memerlukan teknologi untuk dapat
mempermudah dalam pengolahannya. Dalam pengolahan big
data salah satu teknologi yang dapat dimanfaatkan yaitu hadoop.
14. Hadoop
Hadoop merupakan sebuah framework open source yang
mendukung aplikasi untuk dapat berjalan pada lingkungan big
data. Hadoop berjalan pada lingkungan yang menyediakan stor-
age dan komputasi secara terdistribusi ke kluster-kluster dari kom-
puter atau node. Hadoop didukung oleh dua komponen utama
yaitu HDFS dan MapReduce.
HDFS merupakan sistem penyimpanan/ storage
terdistribusi, yang melakukan proses pemecahan file besar
menjadi bagian-bagian lebih kecil kemudian didistribusikan ke
kluster-kluster dari komputer. MapReduce merupakan algoritma
atau komputasi terdistribusi
15. MapReduce
MapReduce adalah model pemrograman untuk memproses
data berukuran besar secara terdistribusi. Dalam memproses
data, MapReduce dibagi menjadi dua proses yaitu prose Map dan
proses Reduce. Proses Map bertugas untuk mengumpulkan infor-
masi dari data yang terdistribusi dari tiap komputer dalam cluster.
Sedangkan Reduce merupakan hasil akhir dari Map yang dikirim
langsung ke pengguna.
Program yang memuat kalkulasi dalam proses Map disebut
Fungsi Map sedangkan pada proses Reduce disebut Fungsi Re-
duse. Fungsi Map bertugas untuk membaca input dalam bentuk
pasangan Key/Value yang kemudian menghasilkan funsi map
yang disebut Key/Vakue intermediate. Fungsi Reduce bertugas
untuk membaca pasangan Key/Value Intermediate yang selanjut-
nya dikelompokkan berdasarkan Key tersebut.

458
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

16. Single Node


Hadoop dapat dijalankan dalam single node. Pada single
node hanya melibatkan satu buah komputer untuk menjalankan
fungsi-fungsi dalam pengolahan data.
17. Clustering
Clustering adalah proses pengelompokkan kumpulan data
menjadi beberapa cluster atau kelompok sehingga objek di dalam
satu kelompok memiliki banyak kesamaan dan memiliki banyak
perbedaan dengan objek dikelompok lain. (Han, Kamber, & Pei,
2012).
Clustering merupakan Unsupervised Learning karena clus-
tering memiliki sifat untuk dipelajari karena tidak memiliki data latih
dan data yang dimasukkan tidak memiliki label kelas sehingga
data yang ada akan dikelompokkan.
18. K-Means
K-Means merupakan salah satu algoritma clustering yang
paling umum karena K-Means memiliki kemampuan untuk menge-
lompokkan dengan jumlah yang cukup besar dan waktu kom-
putasi yang cepat dan efisien.
Langkah-langkah untuk melakukan K-Means clustering
adalah sebagai berikut:
- Menentukan jumlah cluster K
- Menentukan nilai centroid
- Menghitung jarak dari objek ke centroid dengan
menggunakan rumus euclidean.
𝑝
𝐷 = √∑𝑗=1(𝑋2𝑗 − 𝑋𝑖𝑗 )2 (1)
Dimana:
p = Dimensi Data
X1 = Posisi Titik Satu
X2 = Posisi Titik Dua
- Mengelompokkan data sesuai centroid terdekat.
- Hitung kembali pusat cluster, jika pusat cluster berubah maka
kembali hitung jarak dari objek ke centroid, jika tidak maka
proses clustering selesai.
Dimana:
𝐷 = Jarak Euclidean
𝑖 = Banyaknya objek

- Perbarui nilai centorid


- Ulangi proses sampai nilai dari titik centroid tidak lagi berubah

459
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

9.6.2 Implementasi
Proses dari algoritma k-means dimulai dengan menginputkan
dataset, nilai k dan threshold yang akan digunakan untuk
pengelompokan data. Proses pertama adalah menentukan centroid
yang dipilih secara random, kemudian menghitung jarak dari objek ke
centroid dengan menggunakan metode euclidean dan hasil
perhitungan jarak dikelompokan sesuai dengan centroid terdekat.
Selanjutnya cek kondisi, jika data masih mengalami perubahan maka
kembali ke proses menentukan centroid sampai data kovergen
kemudian proses selesai dijalankan. Proses menentukan centroid dan
algoritma k-means ditunjukan pada potongan kode program berikut.

1 private static void createCenters(int k, Configuration conf,


2 Path centers) throws IOException {
3 SequenceFile.Writer centerWriter =
4 SequenceFile.createWriter(conf,
5 SequenceFile.Writer.file(centers),
6
7 SequenceFile.Writer.keyClass(IntWritable.class),
8 SequenceFile.Writer.valueClass(Center.class));
9 Random r = new Random();
10 List<DoubleWritable> listParameters = new
11 ArrayList<DoubleWritable>();
12 Center tempC;
13 Double temp;
14 for (int i = 0; i < k; i++) {
15 for (int j = 0; j < conf.getInt("iCoordinates",
16 2); j++) {
17 temp = Math.floor(100.0 * r.nextDouble() *
18 100) / 100;
19 listParameters.add(new DoubleWritable(temp));
20 }
21 tempC = new Center(listParameters, new
22 IntWritable(i), new IntWritable(0));
23 centerWriter.append(new IntWritable(i), tempC);
24 listParameters = new ArrayList<DoubleWritable>();
25 }
26 centerWriter.close();
27 }
28 }

460
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Proses menghitung jarak dari algoritma k-means dengan


menggunakan metode euclidean ditunjukan pada potongan kode
program berikut.
1 static Double findDistance(Point p1, Point p2) {
2 int len = p1.getListOfCoordinates().size();
3 List<DoubleWritable> l1 = p1.getListOfCoordinates();
4 List<DoubleWritable> l2 = p2.getListOfCoordinates();
5 Double sum = 0.0;
6
7 //euclidean
8 for (int i = 0; i < len; i++) {
9 sum += Math.pow(l1.get(i).get() - l2.get(i).get(),
10 2);
11 }
12 return Math.sqrt(sum);
13 }

Sumber: https://github.com/mameli/k-means-hadoop

Langkah – langkah yang dilakukan dalam clustering pada hadoop:

1. Menjalankan hadoop dengan perintah “start-all.sh”

2. Jalankan eclipse dengan masuk kedalam direktori eclipse

461
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

3. File hasil clustering tersimpan didalam hdfs

4. Hasil clustering

9.7 Klasifikasi Kanker Payudara (SVM)


Kanker payudara merupakan salah satu kanker yang menyerang
manusia. Kanker ini lebih sering teridentifikasi pada kaum perempuan.
Diketahui bahwa 2 dari 10.000 perempuan yang terdapat di dunia
diperkirakan akan mengalami kanker payudara untuk setiap tahunnya
(Kemenkes RI, 2011). Untuk saat ini, kasus baru penyakit kanker
payudara per tahun ada sekitar 1.050.346 dan kasus kematian akibat
kanker payudara sudah mencapai 411.100 jiwa. Untuk beberapa
negara berkembang telah diprediksi bahwa terdapat sekitar 70% kasus
baru dan 55% kematian (Rasjidi, 2010). Penyebab pasti kanker
payudara masih belum diketahui hingga saat ini. Sebuah riset telah
mengidentifikasi bahwa terdapat beberapa faktor yang dapat
meningkatkan risiko terkena kanker payudara. Faktor tersebut terdiri
dari riwayat keluarga, kehamilan pertama di atas usia 30 tahun, tidak
memiliki anak, faktor hormonal, serta lamanya periode menstruasi
(Darsyah, 2013).
Kanker payudara memiliki dua tipe, yaitu kanker jinak atau kanker
yang tidak berbahaya dan kanker ganas atau kanker yang sangat
berbahaya. Proses pendeteksian kanker di beberapa negara masih
banyak yang menggunakan cara manual. Rangkaian tes yang
dilakukan adalah dimulai dari tes fisik hingga tes secara klinis. Tes klinis
terdiri dari tes laboratorium, biopsi, prognosis, serta monitoring tes.
Proses pendeteksian secara manual dapat menyebabkan kemiripan

462
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

hasil antara kanker payudara jinak dan ganas, sehingga dapat


menyebabkan kerancuan pada hasil pengklasifikasian jenis penyakit
payudara. Untuk mengatasi permasalahan tersebut, maka dibutuhkan
sebuah sistem yang dapat mendeteksi jenis kanker payudara secara
akurat.
Penelitian yang dilakukan oleh Novianti dan Purnami telah
melakukan analisis terhadap akurasi klasifikasi diagnosis pasien
kanker payudara dengan menggunakan algoritma SVM. Hasil akurasi
dari penelitian tersebut sebesar 92,48%. dengan perbandingan data
testing dan data training sebesar 50 : 50 (Novianti & Purnami, 2012).
Sedangkan penelitian yang sudah dilakukan oleh Puspitasri, dkk hal ini
bertujuan melakukan klasifikasi penyakit terhadap mulut dan gigi
dengan menggunakan metode yang yang digunakan peneliti yaitu SVM
dapat menghasilkan nilai akurasi sebesar 94,442%. Penelitian tersebut
menggunakan perbandingan data sebesar 80:20 (Puspitasari,
Ratnawati, & Widodo, 2017).
Penelitian yang dilakukan oleh Zhu, dkk membahas tentang
bagaimana performa dari algoritma P-packSVM. Algoritma P-packSVM
merupakan sebuah metode optimasi pada SVM dengan menggunakan
parallel stochastic gradient desent (SGD). Data yang digunakan dalam
penelitian tersebut adalah CCAT dataset sebanyak 800.000 data. Hasil
pengujian algoritma P-packSVM didapatkan nilai akurasi sebesar 95%
dengan waktu komputasi selama 13 menit. Peneliti juga
membandingkan hasil dari penerapan algoritma packSVM tanpa
konsep parallel yang menghasilkan nilai akurasi sebesar 92% dengan
waktu komputasi selama 5 jam dengan menggunakan data yang sama
(Zhu, Chen, Wang, Zhu, & Chen, 2009).
Selanjutnya menurut penelitian Sitepu dkk yang sudah melakukan
analisis berbasis stream analisis menggunakan Apache Spark sangat
cepat dalam mengolah berukuran besar. Penelitian ini memproses data
100 kali lebih cepat dibandingkan dengan pada clauster hadoop yang
hanya 10 kali lebih cepat. Lalu cara kerja pada penelitian ini kerja spark
streaming terbagi jadi 3 yaitu Tuple at a time, Micro Batch, Windowed.
Untuk menghasilkan kualiafikasi baik memperbesar ukuran Ram,
harddisk, dan intel core. Hasil pada analisis ini bahwa menunjukkan Big
Data dapat diolah untuk penerapan metode Stream Processing, lalu
metode ini yang akan diterapkan pada pengelolaan Big Data yang
disinkronisasi pada Apache Spark yang menghasilkan informasi data
input (Sitepu, Tumbel, & Hutagalung, 2016).
Berdasarkan performance Spark yang sangat baik maka dilakukan
klasifikasi diagnosis kanker payudara dengan menggunakan metode
support vector machine (SVM) pada Spark. Penelitian ini membahas
tentang penyakit kanker payudara dengan metode SVM. Tujuan
peneliti ini adalah untuk memberikan hasil akurasi yang baik dalam
proses penentuan klasifikasi jenis penyakit kanker payudara jinak dan
ganas. peneliti sangat mengharapkan bahwa dengan adanya ini sangat
membantu masyarakat.

463
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

9.7.1 Dasar Teori


19. Data Yang Digunakan
Pada penelitian ini, data yang digunakan untuk melakukan
diagnosis terhadap klasifikasi payudara berasal dari WDBC
(Wisconsin Diagnostic Breast Cancer). Data ini terdiri atas 10 fitur
dan dua jenis kelas, yakni Ganas dan Jinak. Fitur yang digunakan
pada data ini antara lain ketebalan (Clump Thickness), ukuran sel
(Uniformity of Cell Size), bentuk sel (Uniformity of Cell Shape),
adhesi marjinal (Marginal Adhesion), ukuran sel tunggal Epithelial
(Single Epithelial Cell Size), Bare Nuclei, Bland Chromatin, Bland
Chromatin, dan mitosis (Mitoses). Data ini terbagi atas dua jenis,
yakni data training dan data testing. Data ini dapat diperoleh
dengan mengakses: http://archive.ics.uci.edu/ml/machine-
learning-databases/breast-cancer-wisconsin/.
20. Konsep Big Data
Big Data ialah suatu kumpulan data dalam jumlah yang
sangat besar. Informasi yang terdapat di dalamnya dapat
digunakan sebagai sarana analisis terhadap data itu sendiri.
Pengelolaan data dalam jumlah yang besar serta dengan
penerapan teknologi, diharapkan dapat memberikan hasil analisis
dengan cepat dan akurat (Maryamah, Asikin, Kurniawati, Sari, &
Cholissodin, 2016).
Untuk menerapkan konsep Big Data membutuhkan suatu
manajemen, penyimpanan, analisis, serta teknologi visualisasi.
Ada beberapa karakteristik yang dimiliki Big Data, yaitu variety,
velocity, dan volume. (Rahadian, Kurnianingtyas, Mahardika,
Maghfira, & Chilissodin, 2017) Variety merupakan bentuk
implementasi data, volume merupakan banyaknya jumlah data,
serta velocity merupakan kecepatan yang didapatkan dari hasil
proses pencarian data (Maryamah, Asikin, Kurniawati, Sari, &
Cholissodin, 2016).
21. Apache Spark
Apache Spark pertama kali dikembangkan oleh UC
Berkeley AMPLab pada tahun 2009. Tahun 2010, Apache
dikembangkan menjadi sebuah project open source yang
digunakan untuk menganalisa data secara real-time. Apache
Spark menggunakan API dalam mesin pengolahan data, serta
terdiri dari satu set library dan Spark core (Sitepu, Tumbel, &
Hutagalung, 2016).
Core merupakan sebuah mesin eksekusi terdistribusi
dengan Python, Java API, dan Scala yang digunakan dalam
pengembangan aplikasi. Apache Spark memungkinkan adanya
sumber daya yang digunakan dengan lebih efisien dalam satu

464
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

cluster. Spark dapat mengelola berbagai jenis data dengan


dengan ukuran yang besar, serta berbagai sumber data seperti
real-time streaming data maupun batch data. Keunggulan dari
Spark adalah Spark dapat memproses data 100 kali lebih cepat,
serta dapat memproses data pada disk 10 kali lebih cepat apabila
terdapat pada cluster Hadoop (Sitepu, Tumbel, & Hutagalung,
2016).
22. Parallel Pack Support Vector Machine (P-packSVM)
Support Vector Machine atau yang sering disingkat SVM ini
dapat didefinisikan sebagai suatu model pembelajaran dengan
konsep hipotesis berupa fungsi linear yang berdimensi tinggi serta
dilatih dengan algoritma pembelajaran didasarkan dengan konsep
optimasi. Algoritma SVM diperkenalkan pertama kali oleh Vapnik
tahun 1992 (Puspitasari, Ratnawati, & Widodo, 2017).
Terdapat dua prinsip dasar dalam SVM, yaitu linear classi-
fier dan non-linear classifier. Prinsip non-linear classifier dikem-
bangkan dengan memasukkan konsep kernel trick. Konsep ini
sangat berguna apabila diaplikasikan ke dalam suatu ruang kerja
berdimensi tinggi. Proses pembelajaran yang diterapkan pada
algoritma SVM dilakukan dengan menggunakan data input dan
data latih sebagai solusi yang diharapkan.
Penelitian ini menggunakan algoritma P-packSVM sebagai
pengembangan dari algoritma SVM. Awalnya, algoritma P-
packSVM diadaptasi dari algoritma Sequential packSVM (S-
packSVM) (Zhu, Chen, Wang, Zhu, & Chen, 2009).
a. Sequential pack SVM
S-packSVM menerapkan Stochastic Gradient Descent
(SGD) yang dapat digunakan untuk mengatasi hinge loss pada
data training. Proses pembelajran sangat bergantung pada nilai T
iterasi. Pada iterasi 𝑡 ∈ (1, … 𝑇), diambil sebuah random example
(𝑥𝑖 (𝑡), 𝑦𝑖 (𝑡)) ∈ 𝜓 dan dilakukan proses pembelajaran dengan
Persamaan 1 untuk mengatasi permasalahan empirical loss.
ℓ(𝑤) ≈ ℓ𝑡 (𝑤) = max [0,1 − 𝑦𝑖 (𝑡). (𝑤, 𝜙(𝑥𝑖 (𝑡)))]
𝛼
𝑓(𝑤) ≈ 𝑓𝑡 (𝑤) = ‖𝑤‖22 + ℓ𝑡 (𝑤)
2
Untuk meningkatkan kinerja pembelajaran, maka dilakukan
modifikasi terhadap perhitungan prediktor pada iterasi t.
1
𝑤←𝑤− ∇𝑓 (𝑤)
𝜎𝑡 𝑡
Karena operator ∇ tidak merepresentasikan perbedaan
fungsi pada 𝑓𝑡 tetapi merepresentasikan sub-gradient, maka
dapat dihitung nilai sub-gradient dengan Persamaan berikut.

465
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

∇𝑓𝑡 (𝑤) = 𝜎𝑤 −
0, 𝑦𝑖 (𝑡). (𝑤. 𝜙(𝑥𝑖 (𝑡)) ≥ 1
{
𝑦𝑖 (𝑡)𝜙(𝑥𝑖 (𝑡), 𝑦𝑖 (𝑡). (𝑤. 𝜙(𝑥𝑖 (𝑡)) < 1
Ketika proses perhitungan kernel dijalankan maka nilai w
memiliki posisi sebagai superposition dengan proses perhitungan
𝑡=1 𝛼𝑖 𝑦𝑖 𝜙(𝑥𝑖 ), dimana:
𝑤 = ∑𝑚
1
𝑤 ← (1 − ) 𝑤 +
𝑡
0, 𝑦𝑖 (𝑡). (𝑤. 𝜙(𝑥𝑖 (𝑡)) ≥ 1
{𝑦𝑖 (𝑡)
∅(𝑥𝑖 (𝑡), 𝑦𝑖 (𝑡). (𝑤. 𝜙(𝑥𝑖 (𝑡)) < 1
𝛼𝑡

Nilai kernel yang digunakan adalah kernel Radial Basis


Function (RBF).
‖𝑥⃗ − 𝑦⃗‖2
𝐾(𝑥⃗, 𝑦⃗) = 𝑒𝑥𝑝 (− )
2𝜎 2
Setelah dilakukan update terhadap nilai w maka dilakukan
proses proyeksi terhadap nilai w agar mendapatkan solusi yang
mendekati optimal.
1
√𝜎
𝑤 ← min {1, }𝑤
‖𝑤‖2

b. Parallel pack SVM


P-pack SVM merupakan pengembangan dari S-pack SVM
yang ditujukan untuk memperbaiki beberapa permasalahan
terhadap kompleksitas waktu dalam proses pelatihan SVM kernel.
P-pack SVM memiliki dua karakteristik utama yang terdiri dari:
 Keunggulan: Sebuah iterasi tunggal dapat di implementasikan
secara paralel. Proses (𝑣, ∅(𝑥)) yang dapat memakan waktu
perhitungan sangat lama dapat di paralelkan melalui
penyimpanan terdistribusi dari masukkan berupa (𝑥𝑖 , 𝛽𝑖 ) dalam
ℋ.
 Kendala: Akan ada banyak proses iterasi. Hal ini disebabkan
karena biasanya terdapat minimal satu permintaan komunikasi
di antara semua prosesor pada setiap iterasi. Banyaknya
komunikasi akan memperlambat program paralel ketika jumlah
prosesor meningkat (synchronization overhead).

Untuk mengatasi permasalahan tersebut makan digunakan


Distributed Hash Table untuk meningkatkan keunggulan dan
Packing Strategy untuk mengatasi kendala pada P-pack SVM.

466
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Distributed Hash Table. Proses Distributed Hash Table


diaktifkan untuk mempercepat proses bottleneck. Dua operasi
penting dalam Distributed Hash Table, yaitu proses Enumerasi
dan proses Look-up & Modification. Enumerasi adalah sebuah
proses perhitungan hasil (𝑣, ∅(𝑥)) yang didistribusikan ke semua
prosesor melalui komunikasi antar prosesor. Look-up &
Modification merupakan proses pengecekkan key yang diberikan
𝑥 pada tabel hash lokal ℋ𝑖 . Jika key sudah ditemukan, maka akan
dilakukan penginformasian ke seluruh prosesor. Jika tidak, maka
akan dilakukan entri key baru ke salah satu prosesor.
|ℋ |
ℋ𝑖 = {(𝑥𝑖,𝑗 , 𝛽𝑖,𝑗 )}𝑗=1𝑖 ⊂ ℋ

Packing Strategy. Proses yang terjadi pada Packing


Strategy adalah mengemas iterasi menjadi satu untuk mengurangi
jumlah komunikasi dengan pemberian integer r. Algoritma
packing untuk r terdiri dari:
 Pre-calculate 𝑦′𝑖 = (𝑤𝑡 , ∅(𝑥𝑖 )) untuk i = t ...t + r -1
 Pre-calculate Κ(𝑥𝑖 , 𝑥𝑗 ) untuk 𝑡 ≤ 𝑖 < 𝑗 ≤ 𝑡 + 𝑟 − 1
 Lakukan iterasi i pada t untuk t + r – 1 untuk melakukan
update secara offline (tanpa komunikasi).

𝑦′𝑖+𝑗 ← 𝑎𝑖 𝑦′𝑖+𝑗 + 𝑏𝑖 Κ(𝑥𝑖+𝑗 , 𝑥𝑖 )

9.7.2 Implementasi
Penelitian klasifikasi penyakit payudara ini menggunakan algoritma
Support Vector Machine, untuk metode SVM ini dianggap dapat
menghasilkan akurasi pengklasifikasian yang cukup tinggi (Zhang,
2012). Proses klasifikasi menggunakan algoritma SVM dimulai dengan
melakukan pelatihan pada data training dengan menggunakan
pendekatan Stochastic Gradient Descent (SGD). Kemudian, pada
penghitungan data uji dengan rumus svm menggunakan kernel Radial
Basis Function (RBF).
Pelatihan data latih dilakukan dengan pendekatan SGD dimulai
dengan inisialisasi parameter SGD, melatih model dengan
memperbarui pack, lalu menyimpan bagian model yang dioptimasi.
Pada pembaruan pack terdiri dari menghitung pasangan produk di
dalam kernel, menghitung sub gradient, lalu memperbarui model.
Berikut potongan kode program untuk menghitung sub gradien yang
dapat dilihat pada kode program berikut.

467
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

1 // Compute sub gradients


2 for (i <- 0 until pack_size) {
3 t = t+1
4 s = (1 - 1D/(t))*s
5 for (j <- (i+1) until (pack_size)) {
6 yp(j) = (1 - 1D/(t))*yp(j)
7 }
8 if (y(i) * yp(i) < 1) {
9 norm = norm + (2*y(i)) / (lambda * t) *
10 yp(i)+math.pow((y(i)/(lambda*t)),2)*inner_prod((i,i))
11 alpha = sample(i)._2._2
12 local_set=local_set+(sample(i)._1->(sample (i)._2._1,
13 alpha + (1/(lambda*t*s))))
14 for (j <- (i+1) to (pack_size-1)) {
15 yp(j) = yp(j) + y(j)/(lambda*t) *
16 inner_prod((i,j))
17 }
18 if (norm > (1/lambda)) {
19 s = s * (1/math.sqrt(lambda*norm))
20 norm = (1/lambda)
21 for (j <- (i+1) to (pack_size-1)) {
22 yp(j) = yp(j) /math.sqrt(lambda*norm)
23 }
24 }
25 }
26 }

Berdasarkan alur penelitian yang telah disebutkan, berikut


potongan kode program saat melakukan perhitungan kernel RBF pada
data uji yang ditampilkan pada kode program berikut.
1 class RbfKernelFunc(gamma_s:Double) extends
2 java.io.Serializable{
3 var gamma: Double = gamma_s
4 def evaluate(x_1: Vector, x_2:Vector): Double = {math.exp(-1 *
5 gamma * math.pow(Vectors.sqdist (x_1, x_2),2))
6 }
7 }

468
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Setelah melakukan implementasi pelatihan data latih dan


pengujian dengan SVM maka akan dihasilkan keluaran dari eclipse
seperti Gambar berikut.

Selain itu akan terbentuk file txt yang berisi jumlah data latih dan
data uji yang dipakai, banyak iterasi, pack size, akurasi yang didapat,
dan lama waktu komputasi. Isi file txt dari hasil runing program dapat
dilihat pada Gambar berikut.

469
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Daftar Pustaka

Big Data Analytics, 1st Edition. Editor(s): Govindaraju,


Raghavan, and Rao. Release Date: 07 Jul 2015. Imprint:
Elsevier.
Big Data Working Group. Big Data Administrator. Yogyakarta:
Universitas Gajah Mada.
(2013, Oktober). Diambil kembali dari Apache TM Hadoop @
homepage: http://hadoop.apache.org/.
Big Data Working Group, 2013. Big Data Analytics for Security
Intelligence. Cloud Security Alliance – All Rights
Reserved.
Brammer, 2007. Principles of Data Mining. UK: University of
Portsmouth.
Bustami. 2013. Penerapan Algoritma Naive Bayes untuk
Mengklasifikasi Data Nasabah Asuransi.
Çakir, M. U. & Güldamlasioglu, S., 2016. Text Mining Analysis
in Turkish Language Using Big Data Tools. Computer
Software and Applications Conference (COMPSAC),
IEEE 40th Annual. IEEE, 614-618.
Chitta, Radha, Rong Jin, Timothy C. Havens, dan Anil K. Jain.
2011.Approximate kernel k-means: solution to large
scale kernel clustering. In KDD, pp. 895-903.
Cossalter, V., 2016. Motorcycle Dynamics.
C. W. Hsu and C. J. Lin, 2002. A Comparison of Methods for
Multiclass Support Vector Machines, Neural Networks,
IEEE Transactions Vol. 13 No. 2, pp. 415-425.
Darsyah, M. Y. 2013. Menakar Tingkat Akurasi Support
Vector Machine Studi Kasus Kanker Payudara.
Statistika, Vol 1 No 1.
Dean, J., & Ghemawat, S., 2004. MapReduce: Simplified Data
Processing on Large Clusters. Google Corp.
Dietrich, D., Heller, B., dan Yang, B., 2015. Data Science and
Big Data Analytics: Discovering, Analyzing, Visualizing
and Presenting Data. Editor: EMC Education Services.

470
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Filiana, Agata. 2014. Recommendation System [Online]. Di-


akses pada 26 Desember 2017.
Hammouda, K. M. & Kamel, M. S., 2003. Incremental docu-
ment clustering using cluster similarity histograms. Web
Intelligence. WI 2003. Proceedings. IEEE/WIC Interna-
tional Conference on, 2003. IEEE, 597-601.
Han, J. K. 2006. Concept and Techniques. Morgan Kaufmann.
Han, J., Kamber, M., & Pei, J. 2012. Data Mining Concepts
and Techniques Third Edition. Waltham: Elsevier Inc.
Hung, M.-C., Wu, J., Chang, J.-H. & Yang, D.-L., 2005. An
Efficient k-Means Clustering Algorithm Using Simple
Partitioning. Journal of Information Science and Engi-
neering, 21, 1157-1177.
Hurwitz, J., Alan, N., Halper, F., dan Kaufman, M., 2013. Big
Data For Dummies. [e-book] John Wiley & Sons, Inc.
Tersedia melalui: <https://kat.cr> [Diakses 27 Mei 2015].
Industri, M. 2013. Definisi cloud Computing. Diambil kembali
dari Cloud Computing: Meruvian.org
Irem, D. 2016. Classifying Multi-Destination Trips in Austria
with Big Data. Elsevier, 2211-9736.
Judith S. Hurwitz, et. al. 2013. Big Data For Dummies, John
Wiley & Sons, Inc., Hoboken, New Jersey.
Kahraman, H. T., Colak, I., & Sagiroglu, S. (2009, October).
User Knowledge Modeling Data Set. Diambil kembali
dari UCI: https://archive.ics.uci.edu/ml/da-
tasets/User+Knowledge+Modeling.
Kalamsyah, S. A. 2014. Aplikasi Pendukung Keputusan Sele-
ksi Asisten Praktikum dan Lab Menggunakan Metode
Analytical Hierarchi Process (Studi Kasus: Lab Informat-
ika Universitas Telkom).
Kelimutu, Rizki Dwi. Sistem Rekomendasi Komunitas
Pemuda di Kota Semarang Berbasis Item Based Collab-
orative Filtering dengan Metode Adjusted Cosine Simi-
larity. Semarang: Universitas Dian Nuswantoro.

471
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Kemenkes RI. 2011. Menuju Masyarakat Sehat yang Mandiri


dan Berkeadilan. Jakarta Pusat, DKI Jakarta:
Kementerian Kesehatan Republik Indonesia.
Kusumadewi, S. 2009. Klasifikasi Status Gizi Menggunakan
Naive Bayesian Classification.
Larose, E., Yeghiazarians, Y., Libby, P., Yucel, E. K., Aikawa,
M., Kacher, D. F., Aikawa, E., Kinlay, S., Schoen, F. J. &
Selwyn, A. P., 2005. Characterization of human athero-
sclerotic plaques by intravascular magnetic resonance
imaging. Circulation, 112, 2324-2331.
Lukito, Y., & Chrismanto, A. R. 2015. Perbandingan Metode-
Metode Klasifikasi Untuk Indoor Positioning System.
Jurnal Teknik Informatika dan Sistem Informasi, 2.
Magoulas, R., dan Lorica, B., 2009. Introduction to Big Data.
[e-book] Sebastopol CA: O'Reilly Media. Tersedia
melalui: <http://www.oreilly.com> [Diakses 20 Januari
2016].
Mameli, F. 2017. k-means-hadoop. Diambil kembali dari
Github: https://github.com/mameli/k-means-
hadoop/tree/master/mameli.
Maryamah, Asikin, M., Kurniawaty, D., Sari, S., & Cholissodin,
I., 2016. Implementasi Metode Naïve Bayes Classifier
Untuk Seleksi Asisten Praktikum Pada Simulasi Hadoop
Multinode Cluster. Jurnal Teknologi Informasi dan Ilmu
Komputer Vol 3 No 4.
Nouvel, Ahmad, 2015. Klasifikasi Kendaraan Roda Empat
Berbasis KNN. Jurnal Bianglala Informatika Vol 3 No 2.
Novianti, F. A., & Purnami, S. W. 2012. Analisis Diagnosis
Pasien Kanker Payudara Menggunakan Regresi Logistik
dan Support Vector Machine (SVM) Berdasarkan Hasil
Mamografi. Jurnal Sains dan Seni ITS Vol 1 No 1.
Pawitra, P. M., 2016. Paper Basis Data. Surakarta.
Pratama, A. Y.,dkk. 2013. Digital Cakery dengan Algoritma
Collaborative Filtering. Medan: STMIK Mikroskil.
Puspitasari, A. M., Ratnawati, D. E., & Widodo, A. W. 2017.
Klasifikasi Penyakit Gigi dan Mulut Menggunakan

472
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Metode Support Vector Machine. Jurnal Pengembangan


Teknologi Informasi dan Ilmu Komputer Vol 2, 802-810.
Putra, N. A., Putri, A. T., Prabowo, D. A., Surtiningsih, L.,
Arniantya, R., & Cholissodin, I., 2017. Klasifikasi Sepeda
Motor Berdasarkan Karakteristik Konsumen Dengan
Metode K-Nearest Neighbour Pada Big Data
Menggunakan Hadoop Single Node Cluster. Jurnal
Teknologi Informasi dan Ilmu Komputer Vol 4 No 2.
Rahardian, B. A., Kurnianingtyas, D., Mahardika, D. P.,
Maghfira, T. N., & Cholissodin, I., 2017. Analisis Judul
Majalah Kawanku Menggunakan Clustering K-Means
Dengan Konsep Simulasi Big Data Pada Hadoop Multi
Node Cluster. Jurnal Teknologi Informasi dan Ilmu
Komputer Vol 4 No 2.
Rasjidi. 2010. Epidemiologi Kanker Pada Wanita. Jakarta,
Indonesia: Sagung seto.
Rathore, P. & Shukla, D., 2015. Analysis And Performance
Improvement Of K-Means Clustering In Big Data
Environment. Communication Networks (ICCN), 2015
International Conference on, 43-46.
S., Russel, & P, Norvig., 2010. Artificial Intelligence A Modern
Approach. New Jersey: Pearson Education, Inc.
Sarkar, K., 2009. Sentence clustering-based summarization of
multiple text documents. International Journal of
Computing Science and Communication Technologies,
2, 325-335.
Shenoy, A. 2004. Hadoop Explained. Brimingham, Mumbai:
PACKT Publishing.
Sitepu, H., Tumbel, C. Z., & Hutagalung, M. 2016. Analisis Big
Data Berbasis Stream Processing Menggunakan
Apache Spark. Jurnal Telematika, 27-32.
Sitepu, H., Tumbel, C. Z., & Hutagalung, M. 2016. Analisis Big
Data Berbisnis Stream Processing Menggunakan
Apache Spark. Bandung, Jawa Barat, Indonesia.
Steinwart, I., & Christmann, A. 2008. Support Vector Machine
(Information Science and Statistics). Springer.

473
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Sujana, A. P., 2013. Memanfaatkan Big Data Untuk


Mendeteksi Emosi. Jurnal Teknik Komputer Unikom-
Komputika, 2, 1-4.
Supriyanti, Wiwit, Kusrini, dan Armadyah Amborowati. 2016.
Perbandingan Kinerja Algoritma C4.5 Dan Naive Bayes
Untuk Ketepatan Pemilihan Konsentrasi Mahasiswa.
Jurnal INFORMA Politeknik Indonusa Surakarta ISSN :
2442-7942 Vol. 1 Nomor 3.
Sholihah, A. 2013. Sistem Penentuan Uang Kuliah Tunggal
(UKT) Menggunakan Metode Naive Bayes Classifier.
Taylor, SJ dan R Bogdan. 1984. Introduction to Qualitative
Research Methods: The Search for meanings, Seconds
Edition. John Wiley and Sons. Toronto.
Vaidya, M., 2012. Parallel Processing of cluster by Map
Reduce. International journal of distributed and parallel
systems, 3, 167.
Watson, H. J., 2014. Tutorial: Big Data Analytics: Concepts,
Technologies, and Applications. Communications of the
Association for Information Systems (CAIS). Department
of MIS, University of Georgia.
Wijaya W.M. 2015. Teknologi Big Data: Sistem Canggih
dibalik Google, Facebook, Yahoo!, IBM.
X., Wu, & V., Kumar., 2009. The Top Ten Algorithm in Data
Mining. Chapman and Hall.
Zhang, Y. 2012. Support Vector Machine Classification
Algorithm and Its Application. Information Computing
and Applications, 179-186.
Zhu, Z. A., Chen, W., Wang, G., Zhu, C., & Chen, Z. 2009. P-
packSVM: Parallel Primal Gradient Descent Kernel
SVM. Ninth IEEE International Conference. Miami, FL,
USA: IEEE.
Zikopoulos, P. C., Eaton, C., deRoos D., Deutsch T., Lapis G.,
2012. Understanding Big Data: Analytics for Enterprise
Class Hadoop and Streaming Data. McGraw-Hill
Companies.

474
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

https://tecadmin.net/install-oracle-java-8-ubuntu-via-
ppa/#
https://medium.com/@GalarnykMichael/install-spark-
on-ubuntu-pyspark-231c45677de0
http://spark.praveendeshmane.co.in/spark/spark-
wordcount-scala-example.jsp
https://stackoverflow.com/questions/27478096/cannot-
read-a-file-from-hdfs-using-spark
https://spark.apache.org/examples.html
https://www.impactradius.com/blog/7-vs-big-data/
https://www.xenonstack.com/blog/ingestion-processing-
data-for-big-data-iot-solutions
https://stackoverflow.com/questions/24115828/what-is-
hue-all-about

475
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.

Biografi Penulis

Imam Cholissodin, lahir di Lamongan pada


tanggal 19 Juli 1985, telah menyelesaikan
pendidikan S2 di Teknik Informatika FTIF ITS
Surabaya pada Tahun 2011. Sejak Tahun 2012
telah aktif sebagai dosen pengajar di jurusan
Teknik Informatika Program Teknologi dan Ilmu
Komputer (PTIIK), dan Alhamdulillah mulai tahun
2016 telah menjadi Fakultas Ilmu Komputer
(FILKOM) Universitas Brawijaya (UB) Malang
pada beberapa mata kuliah, seperti Information Retrieval, Pengolahan
Citra Digital, Probabilitas dan Statatistika, Grafika Komputer, Decision
Support System, Kecerdasan Buatan, Data Mining, Analisis Big Data,
Pemrograman GPU, Algoritma Evolusi, Swarm Intelligence dan
Pengenalan Pola. Di samping mengajar, peneliti juga aktif dalam Riset
Group Sistem Cerdas dan Riset Group Media, Game & Mobile
Technology (MGM) di dalam Laboratorium Riset. Selain itu peneliti juga
telah melakukan beberapa publikasi pada seminar maupun jurnal
nasional dan internasional (IEEE, Scopus, etc). Riset pada tahun 2015-
2018 yang sedang dilakukan sekarang bersama dengan beberapa tim
dosen dan mahasiswa semester akhir adalah berfokus pada bidang
Information Retrieval, teknik optimasi untuk melakukan analisis
dokumen lembaga pemerintahan secara Real-time, yaitu dengan tema
“Pengembangan Sistem Audit Dokumen Lembaga Pemerintahan
Menggunakan Stream Deep Learning Untuk Mendukung Smart
Governance” yang merupakan kombinasi dari beberapa multi-disiplin
keilmuan antara Decision Support System (DSS), Teknik Optimasi, Big
Data, Machine Learning, Ilmu Administrasi Pemerintahan serta
Information Retrieval (IR).
Motto: “We Are A Code, We Are The Best Code Of God”.

Efi Riyandani , lahir di Riau pada tanggal 20 April


1995. Pada tahun 2016 berhasil menyelesaikan
studi S1 Teknik Informatika, Program Teknologi
Informasi dan Ilmu Komputer, Universitas Brawi-
jaya Malang dengan tugas akhir yang berjudul
“Optimasi Komposisi Pakan Sistem Polikultur Ikan
dan Udang Menggunakan Algoritma Genetika”.

476

Você também pode gostar