implementasi kmeans clustering pada lingkungan … · implementasi kmeans clustering pada...

144
IMPLEMENTASI K-MEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika Oleh : Engelbertus Vione 125314112 PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2016 i PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Upload: trantram

Post on 07-Apr-2019

243 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

IMPLEMENTASI K­MEANS CLUSTERING PADA LINGKUNGAN BIG

DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE

SKRIPSI

Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana

Komputer Program Studi Teknik Informatika

Oleh :

Engelbertus Vione

125314112

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2016

i

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 2: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

K­MEANS CLUSTERING IMPLEMENTATION IN BIG DATA

ENVIRONMENT WITH MAPREDUCE PROGRAMMING MODEL

A THESIS

Presented as Partial Fulfillment of Requirements to Obtain Sarjana

Komputer Degree in Informatics Engineering Department

By :

Engelbertus Vione

125314112

INFORMATICS ENGINEERING STUDY PROGRAM

INFORMATICS ENGINEERING DEPARTMENT

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2016

ii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 3: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

HALAMAN PERSETUJUAN PEMBIMBING

SKRIPSI

IMPLEMENTASI K­MEANS CLUSTERING PADA LINGKUNGAN 

BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE

Oleh:

Engelbertus Vione

125314112

Telah disetujui oleh :

Pembimbing,

J.B. Budi Darmawan, S.T., M.Sc. Tanggal: …………………………….

iii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 4: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

HALAMAN PENGESAHAN

IMPLEMENTASI K­MEANS CLUSTERING PADA LINGKUNGAN 

BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE

Dipersiapkan dan ditulis oleh :

ENGELBERTUS VIONE

NIM : 125314112

Telah dipertahankan di depan panitia penguji

pada tanggal 9 Januari 2017

dan dinyatakan memenuhi syarat

Susunan Panitia Penguji

Nama Lengkap  Tanda Tangan

Ketua  : Puspaningtyas Sanjoyo Adi, S.T., M.T. ............................

Sekretaris  : Drs. Haris Sriwindono, M.Kom ...........................

Anggota  : J.B. Budi Darmawan, S.T., M.Sc. ............................

Yogyakarta, ………………………….

Fakultas Sains dan Teknologi

Universitas Sanata Dharma

Dekan, 

Sudi Mungkasi, S.Si.,M.Math.Sc.,Ph.D.

iv

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 5: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

MOTTO

I have no special talents. I am only passionately curious. – Albert Einstein

v

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 6: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa di dalam skripsi yang saya tulis

ini   tidak   memuat   karya   atau   bagian   karya   orang   lain,   kecuali   yang   telah

disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.

Yogyakarta, ...................................

Penulis

Engelbertus Vione

vi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 7: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

LEMBARAN PERNYATAAN PERSETUJUAN PUBLIKASI KARYA

ILMIAH UNTUK KEPENTINGAN AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma:

Nama  : Engelbertus Vione

NIM  : 125314112

Demi   pengembangan   ilmu   pengetahuan,   saya   memberikan   kepada

Perpustakaan Universitas Sanata Dharma karya ilmiah yang berjudul:

IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN 

BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE

Beserta   perangkat   yang   diperlukan   (bila   ada).   Dengan   demikian   saya

memberikan   kepada   perpustakaan   Universitas   Sanata   Dharma   hak   untuk

menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk

pangkalan  data,   mendistribusikan   secara   terbatas,   dan  mempublikasikannya  di

internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari

saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama

saya sebagai penulis.

Demikian pernyataan ini saya buat dengan sebenarnya.

Dibuat di Yogyakarta

Pada tanggal........................................…

Yang Menyatakan

Engelbertus Vione

vii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 8: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

ABSTRAK

Perkembangan data yang sangat pesat membuat teknologi big data menjadi

inovasi baru dalam menyimpan data. Apache Hadoop merupakan framework big

data  yang   mampu   menyimpan   data   tanpa   memperhatikan   jenis   data.   Apache

Hadoop menggunakan model pemrograman MapReduce dalam menganalisa data.

Apache   Mahout   merupakan  library  analisa   data   yang   mampu   menjalankan

komputasi   berbasis   pemrograman   MapReduce.   Apache   Mahout   telah

menyediakan   komputasi   penambangan   data   yang   dapat   digunakan   dalam

menganalisa  data.  K­Means merupakan metode penambangan data  yang dapat

mengelompokkan data berdasarkan kemiripan sifat.  

Penelitian   ini   menggunakan   4   komputer   klaster   yang   berjalan   pada

jaringan lokal. Apache Hadoop yang berjalan pada sistem Linux dibagi menjadi 1

master  slave  dan 3  slave  node.  Master  node  mengatur komputasi MapReduce.

Slave  node  bertugas   sebagai   media   penyimpan   data.   Hasil   K­Means   dengan

menggunakan  library  Mahout   diuji   dengan   hasil   dari   metode   manual.   Hasil

pengujian menunjukkan bahwa library Mahout mampu memberikan hasil analisa

dengan benar. Sedangkan pengujian unjuk kerja dilakukan dengan menjalankan

K­Means sebanyak 10 kali  pada jumlah  slave  node  yang berbeda.  Kesimpulan

unjuk   kerja   sistem   Hadoop   dilakukan   dengan   mencari   nilai   rata­rata   dari

percobaan­percobaan   tersebut.  Hasil  unjuk  kerja  menunjukkan  bahwa semakin

banyak jumlah slave node maka semakin cepat proses komputasi.

Kata Kunci:  Big Data,  Hadoop, MapReduce,  Mahout,  Data Mining,  K­

Means

viii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 9: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

ABSTRACT

The   growth   of   massive   data   makes   big   data   technology   as   a   new

innovation in storing data. Apache Hadoop is a big data framework that able to

stroing   data   without   considering   the   variety   of   data.   Apache   Hadoop   uses

MapReduce   programming   model   to   analyze   data.   Apache   Mahout   is   a   data

analyze  library  that   able   to   analyze  data   in  MapReduce  programming  model.

Apache Mahout has provided data mining method as analyze data algorithm. K­

Means is a data mining algorithm that can group item data into specific  cluster

based on similarity measure. 

This research is developed in 4 computer cluster which is clustered in local

network. Apache Hadoop that is adopted in Linux system is divided into 1 master

node and 3 slave nodes. Master  node handles MapReduce. Slave nodes roles as

storage system. The output of K­Means Mahout library is evaluated with manual

calculation. The evaluation result describe that Mahout  library  can analyze data

well. The performance of Hadoop system is evaluated by running 10 times of K­

Means with Mahout library in difference quantity of slave node. The conclusion is

taken   by   calculate   the   mean  value  of   each   10   trainings.   The   performance

evaluation result explained that increasing the number of slave  node  can make

time execution of computation to be faster.

Keyword   :   Big   Data,   Hadoop,   MapReduce,   Mahout,   Data   Mining,   K­

Means

ix

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 10: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

KATA PENGANTAR

Puji dan syukur penulis penjatkan kepada Tuhan Yang Maha Esa,  telah

memberikan berkat  dan  karunia  sehingga penulis  mampu menyelesaikan  tugas

akhir ini dengan baik.

Penulis   menyadari   selama   proses   pengerjaan   tugas   akhir   telah

mendapatkan banyak bantuan dari berbagai pihak, baik berupa dukungan, kritik,

saran, dan doa yang mampu menjadi semangat dan motivasi demi terselesainya

tugas   akhir   ini.   Sehingga,   pada   kesempatan   ini   penulis   akan   menyampaikan

ucapan terima kasih kepada:

1. Tuhan Yang Maha Esa yang senantiasa memberikan limpahan berkat dan 

karunia­Nya, serta menyertai penulis dalam mengerjakan tugas akhir ini. 

2. Sudi Mungkasi, S.Si., M.Math.Sc., Ph.D. selaku Dekan Fakultas Sains dan

Teknologi Universitas Sanata Dharma Yogyakarta.

3. JB. Budi Darmawan S.T., M.Sc. selaku dosen pembimbing tugas akhir  

yang telah dengan sabar dan penuh perhatian membimbing penulis dalam 

menyusun tugas akhir.

4. Dr. Anastasia Rita Widiarti M.Kom selaku Ketua Program Studi Teknik 

Informatika yang selalu memberikan dukungan dan perhatian serta saran 

kepada mahasiswa tugas akhir dalam pengerjaan tugas akhir.

5. Kedua orang tua tercinta Bapak Siprianus Madu dan Ibu Ni Made Partini 

yang selalu mendoakan, memotivasi, menasihati, dan memberikan 

dukungan baik moral maupun materi kepada penulis.

6. Seluruh dosen program pendidikan Teknik Informatika atas ajaran dan  

didikan   selama   perkuliahan,   serta   pengalaman­pengalaman   yang  

memotivasi bagi penulis.

7. Teman­teman   program  pendidikan  Teknik   Informatika   angkatan  2012  

Universitas Sanata Dharma, terima kasih kebersamaan atas dukungan yang

kalian berikan.

x

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 11: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

8. Lorentina   Elsi   dan   Yustina   Rosa   yang   telah   menjadi   teman   berbagi

pengalaman selama mengerjakan tugas akhir ini.

9. Terima kasih kepada semua pihak yang tidak dapat penulis sebutkan satu

persatu  yang  mendukung  dan memotivasi  penulis  baik   secara   langsung

maupun secara tidak langsung. 

Penulis   menyadari   bahwa   masih   adanya   kekurangan   dalam   penulisan

laporan tugas akhir ini. Kritk dan saran sangat penulis harapkan untuk menjadi

motivasi dalam berkarya lagi. Akhir kata, penulis berharap laporan tugas akhir

bisa berguna bagi perkembangan ilmu pengetahun dan wawasan pembaca.

Yogyakarta, ……………………

Penulis

Engelbertus Vione

xi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 12: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

DAFTAR ISI

HALAMAN JUDUL.................................................................................................i

TITLE PAGE...........................................................................................................ii

HALAMAN PERSETUJUAN PEMBIMBING.....................................................iii

HALAMAN PENGESAHAN.................................................................................iv

MOTTO....................................................................................................................v

PERNYATAAN KEASLIAN KARYA.................................................................vi

LEMBARAN PERNYATAAN PERSETUJUAN PUBLIKASI 

KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS................................vii

ABSTRAK............................................................................................................viii

ABSTRACT............................................................................................................ix

KATA PENGANTAR.............................................................................................x

DAFTAR ISI..........................................................................................................xii

DAFTAR TABEL..................................................................................................xv

DAFTAR GAMBAR............................................................................................xvi

DAFTAR LAMPIRAN.......................................................................................xviii

BAB 1  PENDAHULUAN......................................................................................1

1.1 Latar Belakang...................................................................................................1

1.2 Rumusan Masalah..............................................................................................2

1.3 Tujuan................................................................................................................2

1.4 Manfaat..............................................................................................................2

1.5 Batasan Masalah.................................................................................................3

1.6 Metodologi Penelitian........................................................................................3

1.7 Sistematika Penulisan.........................................................................................4

BAB 2  LANDASAN TEORI..................................................................................6

2.1 Penambangan Data.............................................................................................6

2.1.1 Definisi Penambangan Data.....................................................................6

2.1.2 Clustering.................................................................................................7

2.2 Big Data...........................................................................................................10

xii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 13: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

2.2.1 Definisi Big Data...................................................................................10

2.3 Hadoop.............................................................................................................11

2.3.1 Definisi Hadoop.....................................................................................11

2.3.2 Hadoop Distributed File System............................................................12

2.3.3 Yarn........................................................................................................14

2.4 MapReduce......................................................................................................15

2.4.1 Definisi MapReduce..............................................................................15

2.4.2 Proses MapReduce.................................................................................17

2.5 Apache Mahout................................................................................................19

2.5.1 Konsep MapReduce Pada Library Mahout Berdasarkan Algoritma K­

Means....................................................................................................20

2.5.2 Metode Menjalankan Library Mahout...................................................22

BAB 3  ANALISA PERANCANGAN..................................................................24

3.1 Gambaran Penelitian........................................................................................24

3.1.1 Data........................................................................................................25

3.1.2 K­Means Mahout...................................................................................26

3.2 Kebutuhan Sistem............................................................................................27

3.3 Skema Sistem Big Data....................................................................................30

3.3.1 Skema Single Node Cluster...................................................................30

3.3.2 Skema Multi Node Cluster.....................................................................31

BAB 4  IMPLEMENTASI.....................................................................................33

4.1 Perancangan Sistem Big Data..........................................................................33

4.1.1 Konfigurasi Single Node Cluster...........................................................33

4.1.2 Konfigurasi Multi Node Cluster............................................................42

4.2 Implementasi Library Mahout Pada Sistem Hadoop.......................................45

4.2.1 Install Maven..........................................................................................45

4.2.2 Install Eclipse.........................................................................................46

4.2.3 Install Mahout........................................................................................46

4.3 Implementasi Metode K­Means Menggunakan Library Mahout.....................47

4.3.1 Preprocessing.........................................................................................47

4.3.2 Proses Menjalankan Komputasi K­Means.............................................50

xiii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 14: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

BAB 5  ANALISA HASIL....................................................................................56

5.1 Analisa Implementasi K­Means Menggunakan Library Mahout Pada 

Lingkungan Big Data......................................................................................56

5.2 Analisa Unjuk Kerja Implementasi K­Means Menggunakan Library Mahout 

Pada Lingkungan Big Data.............................................................................58

BAB 6  PENUTUP.................................................................................................60

6.1 Kesimpulan......................................................................................................60

6.2 Saran.................................................................................................................60

DAFTAR PUSTAKA............................................................................................61

LAMPIRAN­LAMPIRAN.....................................................................................64

xiv

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 15: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

DAFTAR TABEL

Tabel 2.1:  Metode Menjalankan Library Mahout berdasarkan algoritma 

K­Means menggunakan Command Line (Mahout, 2016)..................23

Tabel 3.1:  Informasi data liver disorder...............................................................26

Tabel 3.2:  Spesifikasi Komputer Cluster..............................................................28

Tabel 5.1:  Perbandingan hasil penghitungan manual dan library Mahout...........58

Tabel 5.2:  Unjuk kerja implementasi K­Means menggunakan library 

mahout pada lingkungan big data........................................................59

xv

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 16: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

DAFTAR GAMBAR

 

Gambar 2.1:  Visualisasi K­Means (The Glowing Python, 2012).........................9

Gambar 2.2:  Distribusi chunk data (Yahoo!, 2014)...........................................12

Gambar 2.3:  Yarn berfungsi sebagai ResourceManager pada sistem 

Hadoop...........................................................................................15

Gambar 2.4:  Proses Task Mapper dan Task Reducer (Yahoo!, 2014)...............16

Gambar 2.5:  Proses Mapping (Yahoo!, 2014)....................................................18

Gambar 2.6:  Proses Reducing (Yahoo!, 2014)...................................................18

Gambar 2.7:  Proses Shuffle(Yahoo!, 2014).......................................................19

Gambar 2.8:  Konsep MapReduce pada library Mahout berdasarkan 

algoritma K­Means (Vishnupriya N. et al., 2015).........................22

Gambar 3.1:  Flowchart pelitian..........................................................................24

Gambar 3.2:  Skema single node cluster.............................................................31

Gambar 3.3:  Skema multi node cluster...............................................................32

Gambar 4.1:  Menjalankan metode seqdumper pada command line...................48

Gambar 4.2:  Membuat direktori data dan direktori centroid pada hdfs.............49

Gambar 4.3:  Menyimpan sebuah file data trining dari sistem lokal 

ke dalam HDFS..............................................................................49

Gambar 4.4:  Menyimpan sebuah file centroid pada sistem lokal 

ke dalam HDFS..............................................................................50

Gambar 4.5:  Menjalankan K­Means menggunakan library Mahout..................51

Gambar 4.6:  Akhir dari iterasi K­Means............................................................51

Gambar 4.7:  Perintah $hdfs dfs ­ls output..........................................................52

Gambar 4.8:  Hasil proses K­Means pada direktori /user/hduser/output.............52

Gambar 4.9:  Summary berisi ringkasan informasi DataNode............................53

Gambar 4.10:  Informasi DataNode pada aplikasi NameNode Web Interface......54

Gambar 4.11:  Informasi direktori /user/hduser pada HDFS.................................54

Gambar 4.12:  Informasi direktori /user/hduser/data.............................................55

Gambar 4.13:  Informasi file sampleseqfile..........................................................55

xvi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 17: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

Gambar 5.1:  Analisa hasil K­Means menggunakan clusterdump......................57

Gambar 5.2:  Beberapa hasil analisa cluster data dengan identitas VL­27.........57

Gambar 5.3:  Beberapa hasil analisa cluster data dengan identitas VL­49.........57

Gambar 5.4:  Diagram hasil unjuk keja sistem Hadoop......................................59

xvii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 18: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

DAFTAR LAMPIRAN

Lampiran 1 :  Install Java.....................................................................................64Lampiran 2 :  Konfigurasi Group Dan User Sistem Hadoop...............................66Lampiran 3 :  Melakukan Disable IPv6................................................................68Lampiran 4 :  Install Hadoop................................................................................68Lampiran 5 :  Konfigurasi Environment Hadoop Single Node Cluster...............70Lampiran 6 :  Konfigurasi Hostname, Hosts, & SSH..........................................74Lampiran 7 :  Identifikasi Master Node & Slave Node........................................75Lampiran 8 :  Konfigurasi Environment Hadoop Multi Node Cluster.................76Lampiran 9 :  Install maven..................................................................................84Lampiran 10 :  Install Mahout................................................................................85Lampiran 11 :  Source code kelas KmeansDriver.java..........................................86Lampiran 12 :  Source code kelas ClusterIterator.java..........................................93Lampiran 13 :  Source code Kelas CIMapper.java................................................98Lampiran 14 :  Source code Kelas CIReducer.java..............................................100Lampiran 15 :  Source code Kelas VectorDataCreator.java................................102Lampiran 16 :  Source code Kelas VectorCentroidCreator.java..........................104Lampiran 17 :  Source code file core­site.xml.....................................................106Lampiran 18 :  Source code file mapred­site.xml................................................107Lampiran 19 :  Source code file hdfs­site.xml.....................................................108Lampiran 20 :  Source code file yarn­site.xml.....................................................109Lampiran 21 :  Hasil kalkulasi manual.................................................................110Lampiran 22 :  Hasil K­Means dengan menggunakan library Mahout................118

xviii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 19: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

BAB 1 PENDAHULUAN

1.1 Latar Belakang

Perkembangan data yang sangat pesat membuat organisasi mencari metode

untuk menyimpan dan mengolah data. Teknologi  big data menjadi solusi untuk

menyimpan data dan juga mampu mengolah data  tersebut.  Hadoop merupakan

sebuah  framework  yang   dapat   menyimpan   data   dalam   skala   besar   tanpa

memperhatikan struktur dari data. 

Koleksi data yang besar dapat diolah dan dianalisis  untuk mendapatkan

nilai atatu value pada data. Hasil analisa data tersebut berupa informasi yang dapat

dijadikan pengambilan kebijakan pada organisasi. Hadoop menggunakan konsep

pemrograman MapReduce untuk mengolah data menjadi informasi. MapReduce

mampu   melakukan   komputasi   secara   paralel   dan   terdistribusi   pada   sistem

Hadoop.

Mahout   merupakan  library  yang   menggunakan   konsep   pemrograman

MapReduce dan dapat beradaptasi pada sistem Hadoop. Sehingga, Mahout dapat

digunakan   untuk   menganalisa   data   dengan   ukuran   yang   besar.   Mahout

menyediakan komputasi  data mining  atau penambangan data untuk menganalisa

data. K­Means merupakan salah satu algoritma yang disediakan oleh Mahout. K­

Means menganalisa data dengan mengelompokkan data berdasarkan kemiripan

sifat.

1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 20: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

2

1.2 Rumusan Masalah

Berikut   beberapa   rumusan   masalah   yang   dapat   dijadikan   acuan   dalam

melakukan penelititan :

1) Bagaimana  mengimplementasikan  K­Means  clustering  pada   lingkungan

big   data  dengan   menggunakan  library  Mahout   berbasis   model

pemrograman MapReduce?

2) Bagaimana unjuk kerja implementasi K­Means clustering pada lingkungan

big data?

1.3 Tujuan

Berdasarkan rumusan­rumusan masalah, maka tujuan dari penelitian dapat

dijabarkan sebagai berikut:

1) Mengimplementasikan  K­Means  clustering   pada   lingkungan  big   data

dengan   menggunakan  library  Mahout   berbasis   model   pemrograman

MapReduce.

2) Mengetahui   unjuk   kerja   implementasi  K­Means  clustering  pada

lingkungan big data.

1.4 Manfaat

Manfaat yang dapat diperoleh dari penelitian ini ialah sebagai berikut:

1) Sebagai   referensi   oleh   instansi   dan   organisasi   tertentu   yang   hendak

menyimpan dan menganalisa koleksi data yang besar.

2) Sebagai referensi bagi penelitian yang berkaitan dengan tema big data dan

penambangan data.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 21: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

3

1.5 Batasan Masalah

Batasan masalah dalam penelitian ini ialah sebagai berikut:

1) Koleksi   data  diperoleh   dari   repositori   UCI   Machine   Learning   dengan

alamat https://archive.ics.uci.edu/ml/data sets/liver+Disorders.

2) Format koleksi data  ialah .CSV

3) Teknologi big data yang digunakan ialah Apache Hadoop versi 2.6.0.

4) Model pemrograman yang digunakan ialah MapReduce.

5) Library MapReduce yang digunakan ialah Apache Mahout yang berbasis

bahasa pemrograman Java.

6) Proses coding menggunakan Eclipse IDE.

7) Proses compile library Mahout menggunakan Apache Maven.

8) Proses   Monitoring  Hadoop   Distributed   File   System  dilakukan   pada

browser Mozilla Firefox.

9) Sistem operasi yang digunakan ialah Ubuntu versi 14.04.

1.6 Metodologi Penelitian

Metodologi penelitian akan dijabarkan sebagai berikut:

1. Studi pustaka

Studi  pustaka  menjelaskan  teori­teori  yang digunakan dalam penelitian.

Adapun teori­teori yang digunakan ialah data mining, K­Means clustering,

big  data,   Hadoop,  Hadoop  Distributed  File  System  (HDFS),   Yarn,

MapReduce, dan Mahout.

2. Perancangan sistem

Perancangan sistem meliputi segala perangkat lunak dan perangkat keras

yang dibutuhkan dalam mengembangkan sistem.

3. Luaran sistem

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 22: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

4

Luaran   sistem   ini   ialah   sebuah   sistem  big  data  dengan   menggunakan

menggunakan  framework  Hadoop.   Sistem   Hadoop   ini   berjalan   pada

jaringan   lokal.  Library  Mahout   yang   berjalan   pada   sistem   Hadoop

digunakan untuk menganalisa koleksi data pada sistem Hadoop.

4. Evaluasi

Evaluasi sistem ini akan dibagi kedalam 2 bagian yakni:

a) Membandingkan   hasil   komputasi  K­Means  dengan   menggunakan

library  Mahout   dengan   menggunakan   penghitungan   manual.   Hasil

pengujian  memperlihatkan  kecocokan   centroid  dari   hasil   komputasi

dengan   menggunakan  library  Mahout   berdasarkan   hasil   dari

penghitungan manual.

b) Menguji  unjuk   kerja   implementasi   K­Means  clustering  pada

lingkungan  big   data.  Pengujian   dilakukan   dengan   menjalankan

komputasi K­Means menggunakan  library  Mahout sebanyak 10 kali

pada   jumlah  slave  node  yang   berbeda.   Hasil   pengujian

memperlihatkan   rata­rata   waktu   eksekusi   komputasi   K­Means   pada

jumlah slave node yang berbeda.

1.7 Sistematika Penulisan

Tugas akhir ini akan disusun ke dalam 6 bab dengan sistematika penulisan

sebagai berikut:

BAB I : PENDAHULUAN

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 23: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

5

Pendahuluan   berisi   tentang   latar   belakang,   rumusan   masalah,   tujuan,

manfaat, batasan masalah, metode penelitian dan sistematika penulisan.

BAB II : LANDASAN TEORI

Tinjauan pustaka dan dasar teori menjelaskan teori­teori yang digunakan

dalam menyusun tugas akhir ini.

BAB III : ANALISA PERANCANGAN

Analisa  perancangan  menjelaskan   skema  perancangan   implementasi  K­

Means pada lingkungan  big data  dengan menggunakan  library Mahout berbasis

konsep   pemrograman   MapReduce.   Bagian   ini   menjelaskan   pula   media­media

yang akan digunakan untuk mengembangkan sistem

BAB IV : IMPLEMENTASI

Implementasi   menjelaskan   tahap­tahap   pengembangan   sistem  big  data.

Bagian ini menjelaskan pula mengenai implementasi library Mahout pada sistem

Hadoop.

BAB V : ANALISA HASIL

Analisa   hasil   perancangan   dan   pengembangan   sistem   dibahas   secara

lengkap. 

BAB VI : KESIMPULAN DAN SARAN 

Kesimpulan dari  penelitian akan dijelaskan pada bab ini dan saran dari

peneliti untuk penelitian lebih lanjut.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 24: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

BAB 2 LANDASAN TEORI

Bab ini membahas teori­teori yang berkaitan dengan penulisan tugas akhir

ini.  Teori­teori   tersebut  yakni  penambangan data,  metode  clustering,  K­Means

sebagai salah satu algoritma  clustering, big data,  Hadoop,  Hadoop Distributed

File System (HDFS), MapReduce, dan Apache Mahout.

2.1 Penambangan Data

2.1.1 Definisi Penambangan Data

Perkembangan data menjadi sebuah hal yang lumrah dewasa ini. Data pada

komputer   yang   terhubung   melalui   jaringan   internet   mampu   mencapai   ukuran

terabyte (TB) bahkan pentabyte (PB). Perkembangan data ini menghasilkan data

mentah.   Sehingga   organisasi   tertentu   berusaha   untuk   mencari   informasi

tersembunyi pada data yang kemudian dapat digunakan untuk mengembangkan

organisasi mereka. 

Penambangan data atau data mining sering disebut  Knowledge Discovery

in Database (KDD) adalah kegiatan yang meliputi pengumpulan, pemakaian data

historis   untuk   menemukan   keteraturan,   pola   atau   hubungan   dalam   set   data

berukuran   besar.   Hasil  data   mining  ini   bisa   dipakai   untuk   memperbaiki

pengambilan keputusan di masa depan (Santosa, 2007).

6

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 25: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

7

2.1.2 Clustering

Clustering merupakan salah satu metode pada penambangan data.  Tujuan

utama   dari   metode  clustering  ialah   mengelompokkan   sejumlah   objek  data   ke

dalam   sebuah  cluster  atau   grup.   Sebuah   objek   pada   sebuah  cluster  memiliki

kemiripan yang sama dengan objek lain dan sebuah objek memiliki perbedaan

dengan  objek  pada  cluster  lain.  Clustering  menggunakan   teknik  unsupervised

learning  yang   digunakan   untuk   mengelompokkan   data   atau   objek   ke   dalam

kelompok   tertentu   tanpa   adanya   label  cluster  sebelumnya.   Teknik   ini   baik

digunakan pada koleksi data yang tidak memiliki label sebelumnya. Sedangkan

untuk data yang memiliki label, teknik ini dapat dijadikan sebagai pembanding

antara   hasil  clustering  dengan   label   sebenarnya.   Sehingga   diketahui   tingkat

akurasi pada metode  clustering  tersebut.  Teknik yang membutuhkan data label

disebut  supervised   learning.   Metode   yang   digunakan   dalam   menentukan

kemiripan   antar   objek   ialah   dengan   menghitung   jarak   terpendek.   Salah   satu

metode untuk menghitung jarak terpendek ialah Euclidean Distance.

Dalam matematika, Euclidean Distance adalah jarak antara dua titik yang

dapat diukur menggunakan formula pythagoras. Euclidean Distance sering disebut

sebagai  dengan  vector  geometri  yang  memiliki  panjang   (magnitude)  dan  arah

(direction).   Sedangkan   ruang   vektor   adalah   sebuah   struktur   matematika   yang

dibentuk   oleh   sekumpulan   vektor.   Vektor­vektor   tersebut   dapat   ditambahkan

dikalikan dengan bilangan real dan lain­lain (Prasetya, 2013).

Jarak antar vektor atau panjang vektor dapat didefinisikan sebagai berikut

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 26: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

8

‖A‖=√X 12+Y 12 dan  ‖B‖=√X 22+Y 22

Sedangkan  untuk  menghitung  kedua   jarak  antara  kedua  vektor   tersebut

ialah sebagai berikut: d ( A , B)=√(X 1−X2)2+(Y 1−Y 2)2

2.1.2.1 KMeans

K­Means   merupakan   salah   satu   algoritma   penambangan   data   yang

menerapkan metode clustering. Jika diberikan sekumpulan data X = {x1, x2, ...,

xn} dimana xi = (xi1, xi2, ..., xin) adalah vector, maka algoritma K­Means akan

mempartisi x dalam k buah cluster (Prasetya, 2013). Sehingga proses awal dalam

menggunakan   algoritma   ini   ialah   dengan   menentukan   jumlah  cluster  atau   K

terlebih   dahulu.   Pengelompokkan   objek   berdasarkan   ukuran   jarak   terpendek

dengan pusat cluster atau centroid (Han J. et al., 2000).

Algoritma   K­Means   dapat   diterangkan   melalui  pseudocode  berikut

(Santosa,  2007):

1) Langkah pertama ialah memilih jumlah cluster atau K.

2) Inisialisasi K pusat kelompok atau pemilihan nilai awal centroid dilakukan

dengan cara random.

3) Penentuan  kemiripan   antar   objek   dilakukan  dengan  menghitung   jarang

terdekat   antara   objek.   Demikian   untuk   penentuan   suatu   objek   dengan

centroid  tertentu.   Tahap   ini   menghitung   jarak   suatu   objek   dengan

centroid.  Jika suatu objek  memiliki   jarak   terpendek dengan  centroid A

maka objek tersebut akan dikelompokkan pada kelompok centroid A.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 27: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

9

4) Penentuan centroid baru kembali dilakukan dengan cara menghitung nilai

rata­rata dari semua objek pada kelompok tertentu.

5) Objek   pada   setiap  cluster  dikelompokkan   berdasarkan  centroid  baru.

Langkah 3 dan 4 kembali dilakukan sampai nilai centroid tidak mengalami

perubahan.

Gambar   2.1   memperlihatkan   masing­masing   objek   dikelompokkan

berdasarkan kemiripan dengan centroid. Centroid ditandai dengan dengan objek

data  berwarna  ungu.  Sedangkan  kemiripan  objek  ditandai  dengan  warna yang

sama.

Gambar 2.1: Visualisasi K­Means (The Glowing Python, 2012).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 28: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

10

2.2 Big Data

2.2.1 Definisi Big Data

Big data dapat diartikan sebagai sebuah koleksi atau kumpulan data yang

besar dan kompleks. Berdasarkan perkembangannya,  big data  memiliki 3 dasar

definisi yakni volume, velocity, dan variety (Rathi R. et al., 2014). 

1) Volume

Volume  menjelaskan bahwa  big data  memiliki  ukuran data yang besar.

Kumpulan data seperti data kesehatan merupakan jenis data yang sesuai

dengan konsep big data karena data tersebut terus berkembang (Rathi R. et

al.,   2014).  Teknologi  big  data  hadir  untuk  menyimpan  data­data   yang

belum diketahui nilai bisnisnya dan dalam volume besar, platform berbasis

big  data  seperti   Hadoop   memberikan   solusi   (Data   Science   Indonesia,

2015).

2) Variety

Sebuah   organisasi   mampu   menghasilkan   data   yang   berbeda.   Antar

departemen   tertentu   mungkin   memiliki   sistem   basisdata   yang   berbeda

sehingga   mampu   menghasilkan   jenis   data   yang   berbeda.   Data   yang

dihasilkan dapat berupa data terstruktur, data semistruktur, dan data tidak

terstruktur. Data terstruktur merupakan data yang tersimpan dalam kolom

dan baris seperti data dengan format CSV (Comma Separated value). Data

semistruktur   merupakan   jenis   data   yang   dapat   dihasilkan   dari   sistem

database contohnya  log data.  Sedangkan data  tidak terstruktur biasanya

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 29: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

11

berupa data teks lainnya, data gambar, data suara, dan data video (Ronk, J.

2014).

3) Velocity

Data velocity  atau kecepatan data berbanding lurus dengan volume data.

Data   tidak  hanya  datang  dalam  jumlah  besar,   tetapi   juga  dalam  tempo

yang   lebih   singkat   dan   bahkan   ada   yang   real­time.   Hal   ini   menjadi

tantangan pada teknologi big data (Data Science Indonesia, 2015).

2.3 Hadoop

2.3.1 Definisi Hadoop

Apache  Hadoop  software  library  adalah  sebuah  framework  yang  sesuai

digunakan   untuk  proses   terdistribusi  dari   kumpulan   data   yang   besar   pada

komputer  cluster  dengan model­model  pemrograman yang sederhana (Apache,

2015).  Hadoop   merupakan  open   source   framework  yang   dikembangkan   oleh

Apache  Software  Foundation.  Hadoop  digunakan  untuk  memproses  kumpulan

data yang besar dalam sebuah  server  paralel  komputer (Rathi R. et  al.,  2014).

Hadoop dikembangkan untuk memproses  skalabilitas  data  web atau  web­scale

data  yang mampu mendistribusikan data  dengan kapasitas  ukuran yang besar.

Hadoop menggunakan komputer  server  paralel atau  multi­node cluster  (Yahoo!,

2014).  

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 30: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

12

2.3.2 Hadoop Distributed File System

Pada  cluster  Hadoop,   data   didistribusikan   ke   seluruh  node.  Hadoop

Distributed File System (HDFS) akan membagi data yang besar ke dalam chunk

yang dikelola oleh setiap  node pada  cluster. Setiap  chunk  akan direplikasi pada

beberapa mesin komputer. Sehingga jika sebuah komputer atau node mengalami

kegagalan (failure) maka data masih dapat diakses pada komputer lain. Gambar

2.2 menunjukkan data didistribusikan pada seluruh  node  saat proses load (load

time).   Meskipun   file  chunk  direplikasi   dan   didistribusikan   ke   setiap   mesin

komputer, namun chunk tersebut memiliki namespace yang tunggal. 

Data pada Hadoop programming framework menggunakan konsep record­

oriented. Setiap input file akan dipecah dalam baris atau format lain yang spesifik

pada aplikasi. Setiap proses berjalan pada sebuah node dalam keseluruhan cluster

Gambar 2.2: Distribusi chunk data (Yahoo!, 2014).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 31: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

13

kemudian   akan   memproses  subset  dari  record  tersebut.  Hadoop  kemudian

menjadwalkan   proses­proses   tersebut   di   berdasarkan   kedekatan   lokasi   data/

record  menggunakan  konsep kerja  dari   sistem  file   terdistribusi.  Sejak   file­file

tersebar pada sistem file terdistribusi sebagai chunk, setiap proses komputasi yang

berjalan pada sebuah  node  beroperasi pada sebuah  subset  dari data. Data yang

dioperasikan oleh sebuah node dipilih berdasarkan locality dari node: data paling

banyak dibaca dari  disk  lokal langsung ke CPU, untuk mengurangi ketegangan

bandwidth jaringan dan mencegah  transfer  jaringan yang tidak perlu.  Locality

data yang tinggi ini menjadi sebuah keunggulan pada Hadoop (Yahoo!, 2014).

HDFS memiliki 2 tipe operasi node yakni service NameNode pada master

node  dan   service   DataNode   pada  slave   node.   NameNode   bertugas   dalam

mengatur  namespace  sistem file.  NameNode mengatur susunan sistem file dan

metadata untuk semua file dan direktori pada susunan tersebut. Informasi tersebut

disimpan pada local disk kedalam 2 bentuk file yakni namespase image dan edit

log. NameNode juga mengetahui proses kerja dari DataNode, seperti letak lokasi

dari block data (chunk). Namun NameNode tidak bertugas dalam menyimpan data

tersebut,  DataNode  berfungsi   sebagai   tempat  kerja  dari   sistem  file.  DataNode

bertugas menyimpan dan menerima block data ketika mendapatkan perintah dari

pengguna   atau  NameNode.  DataNode  melaporkan   kepada  NameNode  secara

periodik tentang daftar block data yang disimpan. 

Tanpa  NameNode,   HDFS   tidak   dapat   digunakan.   Jika  NameNode

dihilangkan,   maka   semua   file   pada   HDFS   akan   hilang   karena   sistem   tidak

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 32: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

14

membaca susunan  block  data  pada  DataNode.  HDFS memiliki   sebuah  service

Secondary  NameNode.   Tugas   utama   dari   secondary   NameNode   ialah

menggabungkan   namespace   image   dengan   edit   log   untuk   mencegah   edit   log

berukuran   sangat   besar.   Secondary   NameNode   membutuhkan  memory  yang

hampir sama besar dengan NameNode. Secondary NameNode membuat gabungan

file   tersebut   agar   dapat   digunakan   ketika   NameNode   mengalami   kegagalan

(White, 2015).

2.3.3 Yarn

Apache   Yarn   (Yet   Another   Resource   Negotiator)   merupakan   sistem

manajemen   sumber   daya   atau  ResourceManager  pada   sistem   Hadoop  cluster.

Gambar 2.3 menjelaskan bahwa Yarn memegang peran yang sangat penting pada

sistem Hadoop. Komponen utama dari Yarn ialah service ResourceManager dan

NodeManager.   ResourceManager   bertugas   mengatur   semua   sumber   daya

pemrosesan data pada sistem Hadoop. ResourceManager bertugas menjadwalan

sumber daya dalam menjalankan aplikasi.  Secara  teknik,  Yarn bertugas  dalam

menangani   permintaan   sumber   daya,   penjadwalan   permintaan,   dan   kemudian

menetapkan   sumber   daya   untuk   aplikasi   yang   meminta.   Adapun

ResourceManager berjalan pada master node.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 33: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

15

Sedangkan NodeManager berjalan pada slave node. NodeManager betugas

mencari   sumber  daya  yang  memungkinkan  untuk  memproses  data  pada  slave

node  dan   mengirimkan   laporan   aktivitas   secara   periodik   kepada

ResourceManager.   Sumber   data   proses   pada   sistem   Hadoop   membutuhkan

potongan bite­size  yang disebut containers. Container  adalah sebuah koleksi dari

semua   sumber  daya  yang  diperlukan  untuk  menjalankan  aplikasi   seperti  CPU

cores, memory, network bandwidth, dan ruang pada disk. Container bersifat umum

atau generic sehingga dapat menjalankan berbagai jenis model komputasi, selama

sumber   daya   yang   diperlukan   cukup   untuk   menjalankan   model   komputasi

tersebut. Semua proses Container yang berjalan pada  slave  node  dimonitor oleh

service NodeManager pada slave node (deRoos, D. et al., 2014).

2.4 MapReduce

2.4.1 Definisi MapReduce

Hadoop   mengurangin   komunikasi   yang   dapat   dikerjakan   oleh   sebuah

proses. Setiap record diproses oleh sebuah task yang terisolasi dari task yang lain.

Model pemrograman yang digunakan untuk manajemen data disebut MapReduce.

Gambar 2.3: Yarn berfungsi sebagai ResourceManager pada sistem Hadoop

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 34: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

16

Pada  MapReduce,  record  diproses  dalam  sebuah  task  yang  disebut  Mapping.

output dari Mapping task akan dibawa dan diproses pada task kedua yang disebut

sebagai  Reducing,  dimana   hasil   dari   Mapping  yang   berbeda   akan   digabung

(Yahoo!, 2014).

Gambar 2.4 menunjukkan  task  Mapper  dan  task  Reducer  berjalan  pada

node­node dimana record dari data telah tersedia. Node­node yang terpisah dalam

cluster Hadoop masih berkomunikasi antara satu dengan yang lain. Pecahan data

diberi  tag  atau   tanda   dengan   sebuah  key  yang   bertujuan   menginformasikan

Hadoop  bagaimana mengirim data (bit of information) ke  node  tujuan.  Hadoop

secara   internal   mengelola   semua  transfer  data   dan   masalah   topologi  cluster

(Yahoo!, 2014).

Gambar 2.4: Proses Task Mapper dan Task Reducer (Yahoo!, 2014).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 35: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

17

2.4.2 Proses MapReduce

Fase   pertama   dari   program   MapReduce   disebut  mapping.   Sebuah  list

elemen   data   melalui   sebuah   fungsi   yang   disebut  Mapper  yang   akan

mentransformasikan   setiap   elemen   individual   ke   elemen   data  output.   Fungsi

Mapper  tidak memodifikasi  list  input  string tetapi  menghasilkan sebuah  string

baru  yang  menjadi   bagian  dari   sebuah  list  output  yang  baru   (Yahoo!,   2014).

Setiap element data output akan dipecah ke dalam sebuah pasangan data key dan

value (DeZyre, 2015). Key berfungsi sebagai identitas unik pada data, sedangkan

value merupakan nilai dari data itu sendiri.

Gambar 2.5 menunjukkan task Mapping membuat sebuah list output yang

baru pada seluruh list  data elemen input. Reducing memungkinkan pengumpulan

value  bersama. Fungsi Reducer menerima sebuah  iterator  dari  value  masukkan

(input  value)   dari   sebuah  list  input.  Kemudian  Reducer  task  menggabungkan

nilai­nilai   ini   bersama.  Reducer  task  mengembalikan   nilai  output  tunggal.

Reducing  sering  digunakan untuk menghasilkan  data  summary  atau  mengubah

sebuah volume data yang besar menjadi sebuah summary yang lebih kecil. Salah

satu   contoh  dengan  mengunakan  operasi   “+”   sebagai   sebuah   fungsi  reducing

untuk mengembalikan nilai jumlah list dari value input. 

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 36: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

18

Gambar 2.6 menunjukkan  Proses reducing sebuah iterasi list pada seluruh

value masukkan untuk menghasilkan sebuah kumpulan value sebagai output.

Dalam  MapReduce,  tidak   ada  value  yang   berdiri   sendiri.   Setiap  value

memiliki key yang berasosiasi. key bertugas untuk mengidentifikasi value. Fungsi

mapping  dan  reducing  tidak   hanya   menerima  value,   tetapi   pasangan  key  dan

value. Sebuah fungsi reducing berfungsi untuk mengubah sebuah  list  dari  value

yang besar ke dalam sebuah (atau beberapa)  value  output. Semua  output  value

tidak mengalami proses reduce bersamaan. Tetapi semua value yang memiliki key

Gambar 2.5: Proses Mapping (Yahoo!, 2014).

Gambar 2.6: Proses Reducing (Yahoo!, 2014).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 37: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

19

sama yang akan mendapatkan proses reduce bersama (Yahoo!, 2014). Proses ini

biasa disebut  shuffle  task.  Hal ini dikarenakan semua  value  yang memiliki  key

yang sama akan dikelompokkan sebelum melalui proses  reduce  (Voruganti, S.,

2014).

Gambar 2.7 memperlihatkan bahwa warna berbeda mereprentasikan  key

berbeda.  Semua  value  dengan  key  sama akan dipresentasikan ke dalam sebuah

task reduce tunggal.

2.5 Apache Mahout

Mahout   memiliki   tiga   kualitas   yang   dapat   dijelaskan   sebagai   berikut.

Pertama,   Mahout   merupakan  library  machine   learning  dari   Apache.   Mahout

memiliki   dasar   komputasi   yakni  recommender   engine,   clustering,   dan

classification. Selain itu, Apache Mahout bersifat scalable. Apache Mahout dapat

digunakan sebagai pilihan alat  machine  learning  ketika koleksi data yang akan

diproses   sangat   besar   yang   ukurannya   tidak   dapat   disimpan   dalam   sebuah

komputer.  Mahout ditulis dengan menggunakan bahasa Java dan beberapa dari

Gambar 2.7: Proses Shuffle(Yahoo!, 2014).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 38: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

20

Mahout   dikembangkan  pada  proyek  komputasi  Apache’s  Hadoop  Distributed.

Oleh karena Mahout merupakan sebuah  library  Java. Sehingga  library  ini tidak

menyediakan   sebuah   antarmuka   pengguna   atau  user   interface,   prepackaged

server,  dan sebuah  installer. Mahout merupakan sebuah  framework  yang cocok

digunakan dan diadaptasikan oleh pengembang. 

Mahout   menempatkan   skalabilitas   pada   prioritas   yang   paling   tinggi.

Metode  machine  learning  yang   mutakhir   diterapkan   pada   level   skalabititas.

Library Mahout yang bersifat  open source  atau sumber terbuka digunakan pada

lingkungan Hadoop, sehingga Mahout mampu menggunakan konsep komputasi

MapReduce (Owen, S. et al., 2012).

2.5.1 Konsep MapReduce Pada  Library  Mahout  Berdasarkan Algoritma

K­Means

Berdasarkan   penelitian   Vishnupriya,   N.   dan   Francis,   S.   (2015),   proses

algorima K­Means  clustering  pada  library  Mahout  yang menggunakan konsep

pemrograman MapReduce dapat dijabarkan ke dalam beberapa fase:

1) Initial

Data yang diinputkan dapat dipecah ke dalam beberapa sub koleksi data.

Daftar sub koleksi data akan mengalami perubahan format  <Key, Value>.

Daftar   sub  koleksi  data   tersebut   akan  diinputkan  ke  dalam  funsi  map.

Proses   selanjutnya   ialah   mengenali   inisial   centroid.   Adapun   dalam

penelitian ini data centroid yang diinput secara manual. Sedangkan dalam

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 39: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

21

penelitian  Vishnupriya,  N.   et   al.   (2015),   inisial   centroid  dipilih   secara

random pada koleksi data.

2) Mapper

Pada   fase  Mapper,   proses  dilanjutkan  dengan  menghitung   jarak   antara

setiap item data dengan K centroid. Penghitungan jarak terdekat dilakukan

pada selutuh  item data. Luaran dari penghitungan ialah  item data dengan

format <ai, zj>. ai merupakan pusat dari kelompok (cluster) data zj. 

3) Reducer

Proses dilanjutkan pada pada fase Reducer. Proses pertama yang dilakukan

ialah membaca luaran  item  data <ai, zj> dari fase Mapper. Selanjutnya,

setiap item data dikumpulkan  menjadi  sebuah  record. Proses selanjutkan

menghitung nilai rata­rata dari setiap item data. Luaran dari proses akan

digunakan   sebagai   nilai   centroid   baru.   Selanjutnya,   sistem   akan

menghitung nilai centroid baru dengan centroid sebelumnya pada  cluster

atau kelompok yang sama. Jika nilai centroid tersebut lebih kecil daripada

nilai  threshold  maka   dapat   disimpulkan   bahwa   jumlah   iterasi   telah

mencaapi   maksimal.   Algoritma   tersebut   akan   dihentikan.   Sedangkan,

centroid  klaster   yang  baru   akan  digunakan  untuk  memperbaharui   nilai

centroid sebelumnya, Berdasarkan penelitian Esteves, M. R. et al. (2011),

nilai konvergen threshold akan menentukan kondisi berhentinya proses K­

Means. Jika dalam iterasi  tertentu,  pusat kluster tidak berubah melebihi

threshold, maka proses iterasi dihentikan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 40: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

22

Berdasarkan   penelitian   Vishnupriya,   N.   dan   Francis,   S.   (2015),   maka

konsep K­Means pada library Mahout dengan menggunakan model pemrograman

MapReduce dapat visualisasikan pada gambar 2.8.

2.5.2 Metode Menjalankan Library Mahout

Berdasarkan website resmi Mahout (2016), library Mahout dapat berjalan

pada sistem lokal atau pun pada Hadoop Distributed File System (HDFS). Metode

yang digunakan dalam menjalankan library Mahout ialah melalui command line.

Metode   yang   digunakan   untuk   menjalankan   perintah   K­Means   ialah   dengan

menjalankan perintah $mahout kmeans pada  command line  lalu diikuti  dengan

parameter pada yang tertera pada tabel 2.1. 

Gambar 2.8: Konsep MapReduce pada library Mahout berdasarkan algoritma K­Means (Vishnupriya N. et al., 2015)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 41: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

23

Tabel 2.1: Metode Menjalankan Library Mahout berdasarkan algoritma K­Means menggunakan Command Line (Mahout, 2016)

Perintah  Penjelasan

­­input atau ­i Merupakan   alamat   file   input   yang   harus   berupaSequence File

­­clusters atau ­c Merupakan alamat input file centroid yang harus berupasequence file

­­output atau ­o Merupakan   alamat   file  output  yang   harus   berupaSequence File

­­distanceMeasure atau­dm

Algoritma pengukuran jarak.

­­convergenceDeltaatau ­cd

Nilai   konvergen   merupakan   nilai   untuk   menetukanproses iterasi berhenti. Secara default, convergen deltabernilai 0.5

­­maxIter (­x) maxIter  Jumlah maksimal iterasi

­­maxRed (­r) maxRed Jumlah Task Reducin. Secara default, bernilai 2

­­k (­k) k  Nilai jumlah kelompok data atau cluster 

­­overwrite (­ow)  Jika direktori  ada,  maka perintah ini  akan menghapusdirektori   tersebut,   sebelum menjalankan  perintah  atauJob.

­­help (­h) Menampilkan informasi help

­­clustering (­cl)   Jika   job   berjalan   maka   jalankan   proses  clusteringsetelah iterasi berjalan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 42: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

BAB 3 ANALISA PERANCANGAN

Bab ini  akan menjabarkan tentang mekanisme perancangan sistem yang

dibagi dalam gambaran penetilian, kebutuhan sistem, dan skema sistem big data.

3.1 Gambaran Penelitian

Gambar 3.1: Flowchart pelitian

Gambar   3.1   menunjukkan   gambaran   proses   pada   penelitian   yang

divisualisasikan dalam diagram flowchart.

24

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 43: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

25

3.1.1 Data

Peneliti   menggunakan   sumber   data   atau   dataset   dari   bank   data   UCI

Machine Learning mengenai liver Disorders Data Set. Berikut beberapa informasi

mengenai data Liver Disorders:

1. Judul data ialah Liver Diorders

2. Beberapa informasi dataset yakni:

a. Data diciptakan oleh BUPA Medical Research Ltd.

b. Penyumbang   data   ialah   Richard   S.   Forsyth,   8   Grosvenor   Avenue,

Mapperley Park, Nottingham NG3 5DX, 0602­621676.

c. Data dibuat pada tanggal 15 Mei 1990.

3. Lima variabel pertama ialah hasil tes darah yang dianggap sensitif untuk

penyakit  liver   disorder  atau   kelainan   hati   yang   kemudian   konsumsi

alkohol   menjadi   salah   satu   penyebab.   Setiap   baris   pada   file   bupa.data

merupakan hasil uji coba pada seseorang pria.

4. Baris data berjumlah 345 baris.

5. Atribut data berjumlah 7.

6. Beberapa informasi dari atribut data:

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 44: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

26

Tabel 3.1: Informasi data liver disorder

No Atribut Keterangan

1. mcv mean corpuscular volume yaitu rata­rata volume korpuskuler darah

2. alkphos alkaline phosphotase yaitu kadar alkali fosfat dalam darah

3. sgpt alamine aminotransferase yaitu kadar alamin aminotransferase dalam darah

4. sgot aspartate aminotransferase yaitu kadar aspartat aminotrasferase dalam darah

5. gammagt gamma­glutamyl transpeptidase yaitu kadar gamma­glutamil transpeptidase dalam darah

6. drink jumlah minum minuman beralkohol per hari dalam satuan half­pint (257 ml per satuan)

7. selector Attribut ini adalah atribut class yang nantinya menjadi sumber penghitungan akurasi. Bernilai 1 atau 2. Jika 1 maka instance tersebut menderita penyakit hati. Jika 2 maka instance tersebut normal.

7. Data  liver disorder  tidak memiliki  missing  value  atau hilangnya sebuah

item data.

3.1.2 K­Means Mahout

Metode  K­Means  clustering  digunakan   dalam   menganalisis   data  liver

disorder karena mampu untuk mengelompokkan data berdasarkan kemiripan sifat

dengan   baik.   Sehingga   dapat   dipastikan   bahwa   sebuh  item  data   pada   sebuh

kelompok atau cluster memiliki kemiripan yang sama dengan item data lain pada

kelompok   yang   sama.   Sedangkan   sebuah  item  data   pada   kelompok   tertentu

memiliki perbedaan sifat dengan item data pada kelompok yang lain.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 45: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

27

Beberapa hal yang harus diperhatikan dalam K­Means Mahout yakni:

1) Data  training  yang  akan  menjadi  input  harus  berformat  sequence.  File

Sequence  merupakan format file yang dapat dibaca oleh  library  Apache

Mahout.  File  Sequence  sendiri   akan  memiliki   struktur   format  key  dan

value. 

2) Data centroid juga harus berformat sequence.

3) Hasil atau output dari proses K­Means akan berupa sebuah direktori yang

berisi dari proses iterasi dari K­Means.

1) Pengukuran   kesamaan   sifat   menggunakan   rumus   jarak   terpendek   atau

similarity measure. Adapun dalam penelitian ini  similarity measure yang

digunakan ialah Euclidean Distance,

2) Convergen   threshold  merupakan   nilai   yang   telah   ditetapkan   untuk

menentukan bahwa iterasi pada proses K­Means berhenti.

3) Jumlah iterasi yang maksimal yang dapat dikerjakan oleh sistem.

4) Jumlah   kelompok   atau   nilai   K   dari   sistem  K­Means.   Adapun   dalam

penelitian ini, jumlah K yang akan digunakan ialah 2.

3.2 Kebutuhan Sistem

Alat yang dibutuhkan untuk mengembangkan sistem ialah:

1. Perangkat keras

a) Spesifikasi komputer cluster.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 46: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

28

Tabel 3.2: Spesifikasi Komputer Cluster

Jenis Node Processor Memory Hard Drive Network

Master Node Intel®Core(TM)   i3CPU   530   @2.93GHz

4GB 500GB RTL8111/8168/8411PCI   Express   GigabitEthernet Controller

Slave1 Node Intel®Core(TM)   i3CPU   530   @2.93GHz

4GB 500GB RTL8111/8168/8411PCI   Express   GigabitEthernet Controller

Slave2 Node Intel®Core(TM)   i3CPU   530   @2.93GHz

4GB 500GB RTL8111/8168/8411PCI   Express   GigabitEthernet Controller

Slave3 Node Intel®Core(TM)   i3CPU   530   @2.93GHz

4GB 500GB RTL8111/8168/8411PCI   Express   GigabitEthernet Controller

b) Perangkat keras lainnya yakni

1) Kabel RJ45 berjumlah 4

2) Router D­Link DES­1024D berjumlah 1.

2. Perangkat Lunak

Perangkat lunak yang digunakan ialah sebagai berikut:

a) Ubuntu 14.04

Ubuntu merupakan sistem operasi yang menggunakan Linux sebagai

kernelnya.

b) Sun Java 7

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 47: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

29

Hadoop memerlukan   Java  agar  dapat  berjalan  pada   sistem Ubuntu.

Sedangkan versi  Java yang dibutuhkan Hadoop ialah diatas versi  5.

Penelitian ini menggunakan Java versi 7.

c) SSH (Secure Shell)

Sistem big data  ini menggunakan SSH akses untuk mengatur seluruh

node. Cara mengaturnya ialah dengan melakukan remote sebuah slave

node pada sebuah master node.

d) Apache Hadoop 2.6.0

Versi Hadoop yang digunakan ialah 2.6.0. Versi ini sudah mendukung

fitur   Yarn.   Yarn   merupakan   bagian   penting   dalam   Hadoop   selain

daripada  Hadoop Distributed File System  (HDFS), dan MapReduce.

Yarn   berfungsi   untuk   mengatur   penggunaan  resource  atau   sumber

daya dari komputer cluster.

e) Apache Mahout 0.10.1

Versi Mahout yang digunakan ialah 0.10.1.

f) Apache Maven 3.3.9

Apache maven merupakan library yang digunakan untuk proses build

dan compile library Mahout.

g) Eclipse Kepler

Eclipse merupakan IDE yang berfungsi untuk menulis dan mengelola

sumber kode atau source code dari Apache Mahout.

h) LibreOffice Calc

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 48: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

30

LibreOffice   Calc   merupakan   aplikasi   perkantoran   dari   LibreOffice

yang umum digunakan untuk mengolah data angka yang ditampilkan

dalam bentuk spreadsheet. 

i) Editor nano dan pluma

Editor  nano dan pluma berfungsi  untuk menampilkan data.  Namun,

editor nano hanya dapat berjalan pada terminal atau command line.

j) MATE Terminal

Aplikasi   MATE   Terminal   digunakan   sebagai   command   line   untuk

menjalankan   perintah­perintah   sistem   Linux   dan   mengeksekusi

aplikasi atau paket program pada sistem Linux termasuk perintah dari

Hadoop dan Mahout.

3.3 Skema Sistem Big Data

Berdasarkan   proses   implementasinya,   sistem  big   data  pada   mulanya

dikembangkan dalam masing­masing  node.   Implementasi sistem  big data  pada

sebuah   komputer   disebut  single  node  cluster.   Setelah   sistem  big   data

diimplementasikan  pada  masing­masing  node,  maka   langkah   selanjutnya   ialah

menyatukan selutuh node menjadi satu. Proses ini disebut multi node cluster.

3.3.1 Skema Single Node Cluster

Skema  single  node  cluster  yang   memperlihatkan   sistem   Hadoop   yang

hanya diimplementasikan pada sebuah komputer dapat dilihat pada gambar 3.2.

Komputer   tunggal   tersebut   bertindak   sebagai  master  node  dan  slave  node.

Sehingga  service  yang  dijalankan  pada  node  ini   ialah  NameNode,  DataNode,

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 49: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

31

SecondaryNamenode,  ResourceManager,   dan  NodeManager.  Router   digunakan

untuk membuat koneksi jaringan lokal. Sehingga setiap komputer tunggal (single

node) memiliki IP Address. Adapun setiap komputer memiliki IP Address yang

tergabung   dalam   satu   jaringan.   Sehingga   ketika   setiap   komputer   memiliki   IP

Address yang saling terhubung dalam jaringan komputer, maka setiap komputer

dapat dikonfigurasi ke dalam multi node cluster.

3.3.2 Skema Multi Node Cluster

Skema  multi  node  cluster  yang   memperlihatkan   sistem   Hadoop   yang

diimplementasikan   pada   multi   komputer   dapat   dilihat   pada   gambar   3.3.

Perancangan  multi  node  cluster  menggunakan  4  komputer  yang   terdiri  dari  1

Gambar 3.2: Skemasingle node cluster

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 50: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

32

master node dan 3 slave node. Router digunakan untuk membuat koneksi jaringan

lokal.  Router  bertindak  sabagai  gateway  pada  sistem  jaringan,  yang  berfungsi

untuk menghubungkan sebuah node dengan node yang lain. IP Address digunakan

untuk memberi alamat pada masing­masing node. Master node akan menjalankan

service  NameNode,   SecondaryNamenode   dan   ResourceManager.   Sedangkan

slave node akan menjalankan service DataNode dan NodeManager.

Gambar 3.3: Skema multi node cluster

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 51: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

BAB 4 IMPLEMENTASI

Bab   ini   menjabarkan   implementasi   perancangan   sistem   big   data   yakni

konfigurasi single node cluster dan multi node cluster, serta implementasi library

Mahout pada sistem Hadoop yang terdiri dari proses install Maven, IDE Eclipse,

dan Mahout.

4.1 Perancangan Sistem Big Data

Perancangan sistem Hadoop dimulai dengan melakukan konfigurasi pada

masing­masing komputer, setelah itu proses dilanjutkan dengan menggabungkan

semua node menjadi satu.

4.1.1 Konfigurasi Single Node Cluster

Konfigurasi single node cluster diterapkan pada seluruh komputer cluster.

Oleh karena itu, konfigurasi ini akan diimplementasikan pada 4 komputer cluster

yaitu   1  master  node  dan   3  slave  node.   Secara   teknis,   proses   konfigurasi

menerapkan metode yang sama. Adapun beberapa paket aplikasi yang diinstall

berada pada direktori /home/mnode/big\ data\ applikasi.

4.1.1.1 Install Java

Paket   Java   dibutuhkan   karena  framework  Hadoop   dan  library  Mahout

berjalan diatas lingkungan Java. Screenshot proses install Java dapat dilihat pada

bagian Lampiran 1. Adapun berikut merupakan proses menginstall Java :

1. Melakukan proses extract file pada file arsip Java

33

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 52: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

34

Perintah yang digunakan untuk melakukan proses extract file Java ialah tar

­xzf   file­paket­Java.tar.gz.   tar  merupakan  command  atau  perintah  yang

digunakan untuk melakukan  extract file  pada arsip file yang berekstensi

.tar.gz.   Parameter   ­x   atau   ­­exclude­from   merupakan   perintah

mengecualikan   susunan   pola   pada   file.     Parameter   f   atau   –file

menunjukkan   ekstrak   data   dilakukan   pada   file   arsip   atau  archive   file.

Sedangkan   parameter   ­z   atau   ­­uncompress   digunakan   untuk   perintah

uncompress atau ekstrak file. 

2. Membuat direktori java pada direktori /usr/local

Tujuan   dari   langkah   ini   ialah   untuk   membuat   direktori   khusus   untuk

menyimpan   paket   Java   pada   sistem   Linux   Ubuntu.   Perintah   yang

digunakan ialah $sudo mkdir  /usr/local/java.  Mkdir  merupakan perintah

untuk membuat sebuah atau beberap direktori. Perintah sudo menunjukkan

bahwa perintah harus dilakukan pada sisi administrator pada sistem Linux

Ubuntu.

3. Memindahkan hasil exctract file arsip java ke direktori /usr/local/java

Perintah   yang   digunakan   untuk   memindahkan   sebuah   sebuah   file   atau

direktori ialah mv. Sehingga format perintah yang digunakan ialah $sudo

mv   nama_file_arsip   direktori_tujuan.   Untuk   mengecek   keberhasilan

memindahkan file ke dalam direktori maka dapat menggunakan perintah

“ls”. Perintah ls digunakan untuk melihat daftar file dari sebuah direktori.

4. Konfigurasi environment variable Java pada file /etc/profile

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 53: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

35

Proses ini harus dilakukan karena proses install java menggunakan source

code  java.   Variabel   JAVA_HOME   merupakan  variable  yang

menunjukkan   direktori   tempat   menyimpan  source   code  java.   Perintah

export digunakan untuk mengenali Java pada sistem Ubuntu.

5. Uji coba environment Java

echo merupakan perintah yang digunakan untuk menampilkan sebuah data

suatu  variable. Sehingga echo dapat digunakan untuk menampilkan data

variabel JAVA_HOME yang merupakan lokasi Java pada sistem Linux. 

4.1.1.2 Konfigurasi Group Dan User Sistem Hadoop

User merupakan pengguna sistem Ubuntu yang telah terdaftar. Sedangkan

group merupakan sebuh wadah untuk mengelompokkan user atau pengguna pada

sistem  Ubuntu.   Implementasi   ini  menggunakan  group  dan  user  khusus   untuk

memudahkan   dalam   membangun   sistem   Hadoop.  Screenshot  langkah­langkah

konfigurasi group dan user sistem Hadoop dapat dilihat pada Lampiran 2. Berikut

penjelasan langkah­langkah konfigurasi group dan user atau pengguna dari sistem

Hadoop:

1. Menambah group Hadoop

Addgroup  merupakan perintah unntuk menambahkan  group  pada sistem

Ubuntu.   Untuk   menjalankan   perintahkan   addgroup   membutuhkan   ijin

eksekusi   dari  administrator  sistem   Ubuntu.   Oleh   karena   itu,   perintah

addgroup   membutuhkan   awalan   perintah   sudo.   Sedangkan   Hadoop

merupakan nama group yang ditambahkan pada sistem Ubuntu.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 54: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

36

2. Menambah user hduser pada group hadoop

Adduser merupakan perintah untuk menambahkan pengguna pada sistem

Ubuntu.   Perintah   ­­ingroup   merupakan   perintah   untuk   menambahkan

pengguna secara langsung pada sebuah  group.  Sehingga perintah $sudo

adduser –ingroup hadoop hduser merupakan perintah untuk menambahkan

pengguna hduser pada group hadoop. Pengguna hduser sendiri akan secara

khusus bertugas untuk menjalankan aktivitas pada sistem hadoop.

3. Menginstall openssh­server

Protokol SSH digunakan untuk melakukan manajemen komputer  cluster.

Dengan menggunakan  protokol  SSH,  maka  administrator  dapat  mudah

dalam   memanajemen   komputer   atau  node  lain   dengan   melakukan

monitoring.  Paket yang digunakan dalam mengintal SSH ialah open­ssh

server.

4. Login sebagai pengguna hduser

Langkah ini dimaksudkan bahwa proses konfigurasi selanjutnya dilakukan

pada host hduser.

5. Membuat kunci RSA atau RSA Key untuk pengguna hduser

RSA   Key   berfungsi   untuk   dapat   melakukan   akses   pada   sebuah  node

dengan menggunakan protokol SSH. Penelitian ini membuat kunci RSA

dengan  password  yang kosong.  Hal   ini  dilakukan dengan maksud agar

ketika mengakses suatu  node,  sistem tidak meminta  password.  Cara ini

sebenarnya   tidak   direkomendasikan   karena   dapat  membahayakan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 55: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

37

keseluruhan sistem Hadoop. Namun karena implementasi sistem dilakukan

di jaringan local, maka menggunakan password kosong.

6. Membuat authorized_keys

authorized_keys dibutuhkan untuk mengijinkan akses SSH dari  node  ke

sistem lokal.

7. Mengetes SSH pada sistem lokal

Proses ini tidak hanya mengetes SSH pada sistem lokal. Namun, proses

dilakukan untuk menyimpan  host  key  fingerprint  pada sistem local yang

terletak pada file known_hosts yang terletak pada direktori /home/.ssh.

4.1.1.3 Melakukan Disable IPv6

Screenshot  langkah ini dapat dilihat pada Lampiran 3. Berikut penjelasan

langkah­langkah dalam melakukan disable IPv6:

1. Konfigurasi pada file /etc/sysctl.conf

Konfigurasi  disable  IPv6   dilakuakn   pada   file   /etc/sysctl.conf.   Adapun

Pengembangan sistem Hadoop tidak membutuhkan konfigurasi IPv6 

2. Mengecek status disable IPv6

Sebelum melakukan   langkah   ini,   sistem Ubuntu  harus  di­reboot  untuk

terlebih  dahulu  untuk  memastikan  konfigurasi   sudah  berjalan.  Perintah

yang   digunakan   ialah   cat   /proc/sys/net/ipv6/conf/all/disable_ipv6.   Cat

berfungsi untuk melihat konten dari file.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 56: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

38

4.1.1.1 Install Hadoop

Screenshot langkah ini dapat diliaht pada Lampiran 4. Berikut penjelasan

langkah­langkah proses install Hadoop:

1. Melakukan extract file pada file arsip Hadoop

Langkah  ini  sama seperti   langkah dalam mengekstrak  file  Java,  karena

paket source code Hadoop dikemas dalam file tar.gz.

2. Menyalin source code Hadoop ke folder /usr/local

3. Mengubah privilege atau hak akses pada folder hadoop

Perintah  chown digunakan untuk mengubah hak akses  sebuah  file  atau

folder  berdasarkan pengguna dan  group. Direktori hadoop secara khusus

diperuntukkan untuk pengguna hduser dan digunakan pada group Hadoop.

4. Melakukan konfigurasi variable Hadoop pada file .bashrc

Proses   sama   seperti   langkah   sebelumnya,   yakni   agar   Hadoop   mudah

dikenali oleh sistem Linux. 

5. Mengetes implementasi Hadoop

Mengetes   Hadoop   dilakukan   pada   sisi   pengguna   hduser   dengan   cara

mengecek versi  dari  Hadoop. Hasil  dari  perintah $hadoop version ialah

berupa versi Hadoop dan metadata Hadoop lainnya.

4.1.1.2 Konfigurasi Environment Hadoop Single Node Cluster 

Konfigurasi   ini   dilakukan   pada  node  klaster   tunggal   atau  single  node

cluster. Konfigurasi dilakukan pada direktori sistem Hadoop yang terletak pada

direktori   /usr/local/hadoop/etc/hadoop.  Screenshot  langkah­langkah   ini   dapat

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 57: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

39

dilihat pada bagian Lampiran 5. Berikut langkah­langkah konfigurasi lingkungan

atau environment Hadoop Single Node Cluster:

1. Melakukan konfigurasi JAVA_HOME pada file hadoop­env.sh

Konfigurasi dlakuakn pada file hadoop­env.sh dengan mengubah alamat

direktori atau path JAVA_HOME dengan lokasi tempat menginstall Java

pada sistem Ubuntu.  Java sangat  dibutuhkan agar  sistem Hadoop dapat

berjalan.   Hal   ini   dikarena  framework  Hadoop   dikembangkan

menggunakan Java dan hanya dapat berjalan diatas Java environment atau

lingkungan Java. 

2. Konfigurasi core­site.xml

Konfigurasi   pada   file   core­site.xml   merupakan   konfigurasi   lokasi

temporary  direktory  dari  Hadoop   Distributed   File   System  (HDFS).

Dengan kata lain langkah ini menjelaskan lokasi data Hadoop dan semua

metadata Hadoop disimpan.  Adapun dalam penelitian  ini,   lokasi  HDFS

ditempatkan   pada   direktori   /app/hadoop/tmp.   Konfigurasi   ditempatkan

pada tag <value></value>.

3. Membuat direktori /app/hadoop/tmp

Proses membuat direktori /app/hadoop/tmp dilakukan pada sisi pengguna

mnode yang berperan sebagai  administrator  pada sistem Ubuntu. Hal ini

dikarena direktori   /app/hadoop/tmp ditempatan pada direktori  root  yang

hanya dapat diakses oleh administrator.

4. Mengubah hak akses atau privilege pada direktori /app/hadoop/tmp

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 58: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

40

Direktori   /app/hadoop/tmp  temporary   directory  digunakan   untuk

menempatkan HDFS pada local disk. Sehingga direktori ini secara khusus

diperuntukkan untuk pengguna hduser.

5. Mengatur permission pada direktori /app/hadoop/tmp

Proses   ini   bertujuan   untuk   menjaga   keamanan   pada   direktori

/app/hadoop/tmp.  Dengan kata   lain,   tidak  semua  jenis  dapat  dieksekusi

pada direktori ini.

6. Konfigurasi mapred­site.xml

Secara default, file mapred­site.xml belum terdapat pada sistem direktori

konfigurasi   Hadoop.   Sehingga   langkah   yang   dilakukan   ialah  menyalin

template  mapred­site.xml   ke   dalam   sebuah   file   mapred­site.xml.

Selanjutnya   konfigurasi   file   mapred­site   ialah   mengisi   parameter

<value></value>   dengan   localhost.   Langkah   ini   menunjukkan   proses

mapreduce hanya berjalan pada localhost atau sistem lokal.

7. Konfigurasi hdfs­site.xml

konfigurasi   file   hdfs­site.xml   memperlihatkan   jumlah   replikasi   pada

sistem. Dengan kata lain, langkah ini menunjukkan berapa jumlah  slave

node  yang   akan  digunakan.  Konfigurasi   ini  menggunakan  parameter   1

karena konfigurasi masih dilakukan pada single node.

8. Konfigurasi yarn­site.xml

Konfigurasi fitur Yarn diterapkan pada sistem lokal yaitu localhost.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 59: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

41

9. Melakukan format HDFS

Langkah ini akan menghapus semua data pada HDFS. Namun langkah ini

tidak   direkomendasikan   dilakukan   pada   saat   yang   bersamaan   dengan

manajemen data karena dapat  mengakibatkan kerusakan atau kegagalan

data.

10. Menjalankan perintah start­dfs.sh

Perintah   start­dfs.sh   yang   digunakan   untuk   menjalankan  service  dari

NameNode  dan  SecondaryNamenode  pada  master  node  dan  DataNode

pada  slave   node.   Karena   sistem   ini   bersifat  single  node  cluster  maka

semua service berjalan pada localhost atau lokal sistem Ubuntu.

11. Menjalankan perintah start­yarn.sh

Perintah   start­yarn.sh   yang   digunakan   untuk   menjalankan  service

ResourceManager   dan   NodeManager  yang   dimiliki   oleh   fitur   Yarn.

Adapun   konfigurasi   ini   dilakukan   pada  single  node  cluster  sehingga

ResourceManager dan NodeManager berjalan pada localhost.

12. Menjalankan jps

Perintah jps yang digunakan untuk mengecek seluruh  service  Java yang

sedang   berjalan   pada   sistem.   Proses   ini   dilakukan   untuk   mengecek

keberhasilan semua  service  yang berjalan. Sehingga luaran dari perintah

ini   ialah  service  NameNode,   SecondaruNamenode,   ResourceManager,

DataNode, dan NodeManager. 

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 60: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

42

4.1.2 Konfigurasi Multi Node Cluster

Langkah   ini   dilakukan   ketika   konfigurasi  single  node  cluster  sudah

diterapkan pada seluruh komputer  cluster. Proses multi  node cluster merupakan

proses penggabungan seluruh  single node cluster  menjadi satu kelompok dalam

sistem Hadoop. Berikut langkah­langkah konfigurasi multi node cluster:

4.1.2.1 Konfigurasi Hostname, Hosts, & SSH

Screenshot dari langkah ini dapat dilihat pada bagian Lampiran 6. Berikut

merupakan urutan langkah­langkah konfigurasi Hostname, Hosts, dan SSH:

1. Mengubah hostname

Proses   mengubah  hostname  yang   merupakan   nama   mesin   komputer.

Penelitian   ini   menggunakan   hostname  master  untuk   komputer  master

node,   hostname slave1  untuk komputer  slave  node  1,  hostname  slave2

untuk komputer slave node 2, dan  hostname slave3 untuk komputer slave

node 3. Tujuan mengubah hostname  ialah untuk memudahkan mengenali

masing­masing komputer cluster.

2. Konfigurasi IP Address pada seluruh komputer cluster

Penelitian ini seluruh IP Address pada komputer cluster diberi nama host

yang   berfungsi   untuk  memudahkan  dalam  mengingat   alamat   komputer

cluster. Pemberian nama  host  dilakukan pada file /etc/hosts. Konfigurasi

tidak hanya dilakukan pada sisi master node saja, tetapi juga pada seluruh

slave node. Adapaun host yang digunakan untuk master node ialah master.

Komputer slave akan diberi host slave1, slave2, dan slave3.  

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 61: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

43

3. Konfigurasi akses SSH

Konfigurasi SSH dilakukan dengan menyalin SSH public key dari master

node  ke   semua  slave  node.   Konfigurasi   akses   SSH   dilakukan   untuk

memudahkan   dalam   memanajemen   sistem   Hadoop.   Ketika   melakukan

monitoring   menggunakan   SSH,   sistem   tidak   perlu   untuk   meminta

password tetapi akan mengarahkan langsung ke dalam sistem yang aktif.

Adapun pada konfigurasi  single node, Public SSH key  atau kunci publik

SSH telah ditempatkan pada file authorized_keys. Dengan menggunakan

perintah ssh­copy­id maka maka sebuah node dapat mengakses  node  lain

dengan menggunakan SSH akses tanpa menggunakan  password. Adapun

perintah untuk mengakses  node  lain ialah $ssh  master  untuk mengakses

node lokal master, $ssh slave1 untuk mengakses node slave1, $ssh slave2

untuk mengakses  node  slave2,  dan  $ssh   slave3 untuk mengakses  node

slave3.

4.1.2.2 Identifikasi Master Node & Slave Node

Setiap node sudah memiliki identifikasi host yakni master, slave1, slave2,

dan slave3. Namun, host merupakan identifikasi sistem Ubuntu. Untuk melakukan

identifikasi  master  node  dan  slave  node  pada lingkungan Hadoop ialah dengan

mengisi  master  node  pada file masters dan daftar  slave  node  pada file slaves.

Daftar  node  diberikan   dengan   nama   host   masing­masing  node.   Adapun

screenshot langakah ini dapat dilihat pada bagian Lampiran 7.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 62: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

44

4.1.2.3 Konfigurasi Environment Hadoop Multi Node Cluster

Konfigurasi environment Hadoop multi node cluster dilakukan pada 4 file

konfigurasi   yakni   core­site.xml,   mapred­site.xml,   dan   hdfs­site.xml.   Adapaun

screenshot langkah ini dapat dilihat pada Lampiran 8. Berikut penjelasan langkah­

langkah konfigurasi environment Hadoop multi node cluster:

1. Konfigurasi core­site.xml

Terdapat perubahan pada parameter fs.default.name, hal ini dikarenakan

nilai  dari  parameter  dikhsusukan  buat  host  dan  port  dari  master  node.

Sehingga   perubahan   dilakukan   dengan   mengubah   localhost   menjadi

master.   Adapun   perubahan   pada   file   core­site.xml   ini   dilakukan   pada

semua node.

2. Konfigurasi mapred­site.xml

Terdapat perubahan konfigurasi pada parameter mapred.job.trackern yakni

mengubah   localhost   menjadi  master.   Hal   ini   dikarenakan   karena

komputasi MapReduce dijalankan pada master  node. Adapun perubahan

ini diterapkan pada seluruh node.

3. Konfigurasi hdfs­site.xml

Konfigurasi   hdfs­site.xml   ialah   mengganti   nilai  block   replication.

Penelitian   ini   menggunakan   3  slave  node.   Sehingga   parameter  value

memiliki nilai 3.

4. Melakukan format HDFS di multi node cluster

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 63: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

45

Proses   ditujukan   untuk   memberikan   inisialisasi   HDFS   atau  temporary

directory.   Selama   melakukan   penelitian,   proses  format  HDFS   tidak

sepenuhnya dapat menghapus semua data pada HDFS. Oleh karena itu,

cara yang digunakan ialah menghapus secara manual semua file. 

5. Mengetes konfigurasi multi node cluster

Mengetes konfigurasi dilakukan dengan menjalankan start­dfs.sh dan start­

yarn.sh di master node. Perintah ini bertujuan untuk menjalankan service

HDFS yaitu NameNode, SecondaryNamenode, dan DataNode. Hasil dari

perintah   start­dfs.sh   ialah  service  NameNode  dan   SecondaryNamenode

berjalan pada  master  node.  Luaran dari  perintah start­dfs.sh pada  slave

node ialah service DataNode yang berjalan pada slave1 node, slave2 node,

dan  slave3  node.  Sedangkan  luaran  perintah  start­yarn.sh yakni  service

ResourceManager   yang   berjalan   pada  master  node  dan  service

NodeManager yang berjalan pada slave node. 

4.2 Implementasi Library Mahout Pada Sistem Hadoop

Berikut implementasi library Mahout pada sistem Hadoop:

4.2.1 Install Maven

Maven dibutuhkan untuk melakukan  compile  dan  build  library  Mahout.

Proses install maven sama seperti proses install paket Java dan Hadoop.  Source

code  maven   diletakkan   pada   direktori   /usr/local.   Maven   digunakan   dalam

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 64: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

46

lingkungan pengguna hduser, sehingga maven diberikan hak akses khusus dengan

menggunakan perintah $chown hduser:hadoop. 

Konfigurasi  variable  Maven   juga   dilakukan   karena   maven   diinstall

menggunakan  source   code.   Sama   seperti   konfigurasi   pada   Java   dan   Hadoop,

langkah   ini   bertujuan   agar   Maven   dapat   dikenali   oleh   sistem   Linux.   Proses

mengetes Maven ialah dengan menjalankan perintah mvn –version. Luaran dari

perintah tersebut ialah versi Maven dan metadata lain. Adapun sreenshot langkah

ini dapat dilihat pada bagian Lampiran 9.

4.2.2 Install Eclipse

IDE   Eclipse   dibutuhkan   karena   proses   pengembangan   dan   pengujian

sistem ini menggunakan source code tambahan. Eclipse juga memiliki plugin m2e

yang dapat berintegrasi dengan Maven, sehingga selain melakukan  compile  dan

build   source  code  menggunakan   perintah   di   terminal.   Eclipse   pun   dapat

melakuakan compile dengan menggunakan perintah yang telah tersedia.

4.2.3 Install Mahout

Proses   konfigurasi   Mahout   dilakukan   pada  master  node.   Konfigurasi

dilakukan   dengan   menulis   variabel   Mahout   pada   sistem   Linux.   Oleh   karena

Mahout   berjalan   pada   lingkungan   Hadoop,   maka   konfigurasi   juga   dilakukan

dengan mengintegrasikan Hadoop dan Mahout. 

Source code  Mahout  dapat  dibukan pada Eclipse dengan menggunakan

fitur  plugin  maven   yang   telah   disediakan   Eclipse   yaitu   m2e.   Dengan

menggunakan   fitur  Existing   Maven   Project  maka   eclipse   dalam   langsung

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 65: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

47

menginput atau melakukan  import  dan secara otomatis Eclipse akan melakukan

compile source code Mahout.

4.3 Implementasi Metode K­Means Menggunakan Library Mahout

4.3.1 Preprocessing

Sebelum menjalankan komputasi K­Means, ada beberapa hal yang harus

dilakukan   yakni   mengkonversi   data   dari   format   csv   ke   format   sequence  dan

membuat direktori untuk menyimpan data trining dan data centroid pada HDFS.

Konversi   data   numerik   pada   file   csv   akan   dilakukan   dengan   menggunakan

program tambahan berbasis bahasa pemrograman Java. 

Data  liver disorder  memiliki susunan informasi yakni  id, mvc, alkphos,

sqpt,   sgot,   gammagt,   drink,   dan   selector.   Namun   dalam   melakukan   konversi,

susunan   file   tersebut   diubah   menjadi   selector,   id,   mvc,   alkphos,   sqpt,   sgot,

gammagt,  dan drink.  Hasil  atau  output  yang akan dicapai   ialah file  data  liver

disorder dan file centroid yang masing­masing berformat sequence. Adapun data

centroid dipilih secara manual. Hasil  output  tersebut akan diinputkan ke dalam

Hadoop Distributed File System. 

Adapun file sequence tidak human readable atau tidak dapat dibaca secara

langsung.  Gambar   4.1   menunjukkan   fitur   yang   telah   disediakan   oleh  Mahout

untuk   membaca  sequence   file.   Adapun   nama   dari  sequence   file  ialah

sampleseqfile.  Sehingga  perintah  yang digunakan  ialah  $mahout   seqdumper   ­i

sampeseqfile | less. Mahout seqdumper menjelaskan bahwa mahout menggunakan

metode seqdumper.  Parameter  ­i  menjelaskan input  file yang kemudian diikuti

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 66: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

48

olah nama file. | less merupakan perintah dari bash linux yang digunakan untuk

menerima output dari perintah sebelumnya, lalu kemudian menginputkan perintah

tersebut ke dalam perintah less. Less merupakan perintah bash yang digunakan

untuk membaca sebuah file atau output.

Langkah selanjutnya ialah dengan menjalankan perintah start­dfs.sh dan

start­yarn.sh,   Perintah   start­dfs.sh   berfungsi   untuk   menjalankan  service

NameNode   dan   SecondaryNamenode   pada  master  node,   dan   DataNode   pada

slave node. Sedangkan perintah start­yarn.sh berfungsi untuk menjalankan service

ResourceManager pada master node dan service NodeManager pada slave node.

Gambar 4.2 menunjukkan proses membuat direktori pada HDFS. Perintah

yang   digunakan   ialah   $hdfs   dfs   ­mkdir   diikuti   nama  direkori.   Direktori   yang

Gambar 4.1: Menjalankan metode seqdumper pada command line

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 67: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

49

digunakan dalam penelitian ini ialah /user/hduser/data dan /user/hduser/centroid.

Direktori /user/hduser/data digunakan untuk menyimpan data training. Sedangkan

direktori   /user/hduser/centroid   digunakan   untuk   menyimpan   data   centroid.

Parameter   ­p   digunakan   untuk   mebuat   direktori   dalam   direktori.   Sehingga

perintah yang digunakan ialah $hdfs dfs ­mkdir ­p diikuti nama direktori. Perintah

$hdfs   dfs   ­ls   digunakan   untuk   melihat   sebuah   file   atau   direktori.   Sehingga

perintah dapat digunakan untuk mengecek keberhasilan dalam membuat direktori.

Gambar   4.3   menunjukkan   proses   menyimpan   file   data   training   pada

HDFS. 

Sedangkan gambar 4.4 menunjukkan proses menyimpan file data centroid

pada   HDFS.  Perintah   yang  digunakan   dalam  menyimpan   file   ialah  $hdfs   dfs

­copyFromLocal  kemudian  diikuti   lokasi   input  data  dan diakhir  dengan  lokasi

output data. Lokasi input data berasal dari sistem lokal, sedangkan lokasi  output

ditujukan pada direktori pada HDFS. Perintah $hdfs dfs ­ls digunakan mengecek

keberhasilan dalam menyimpan file pada HDFS.

Gambar 4.2: Membuat direktori data dan direktori centroid pada hdfs

Gambar 4.3: Menyimpan sebuah file data trining dari sistem lokal ke dalamHDFS

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 68: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

50

4.3.2 Proses Menjalankan Komputasi K­Means

Perintah   yang   digunakan   untuk  menjalankan  komputasi  K­Means   ialah

$mahout kmeans diikuti lokasi file data, lokasi file centroid, lokasi file  output,

distance measure atau algoritma yang digunakan untuk menghitung jarang antara

item data dan pusat cluster atau centroid, iterasi maksimal, jumlah K atau cluster

dari data,  convergen  delta  atau nilai  untuk menentukan proses iterasi  berhenti,

execution  method  atau  metode  yang  digunakan  untuk  mengeksekusi  data,  dan

clustering menentukan agar proses clustering berjalan setelah proses iterasi telah

berlangsung. 

Adapun   semua   lokasi   data   yang   digunakan   dalam   perintah   $mahout

kmeans  berada  pada  HDFS.  Sehingga   lokasi  output  data   juga   terdapat  dalam

HDFS. Gambar 4.5 menunjukkan bahwa Distance Measure (parameter ­dm) yang

digunakan   dalam   penelitian   ini   ialah   Euclidean  Distance   Measure.   Iterasi

maksimal (parameter ­x) yang digunakan berjumlah 100. Total K (parameter ­k)

yang digunakan berjumlah 2. Hal ini dikarenakan data dikelompokkan dalam 2

kategori   yakni   kelompok   yang   memiliki   kelainan   hati   (liver   disorder)  dan

kelompok yang tidak memiliki kelainan hati (non liver disorder). Convergen delta

Gambar 4.4: Menyimpan sebuah file centroid pada sistem lokal ke dalam HDFS

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 69: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

51

(parameter ­cd) yang digunakan bernilai 0.1.  Execution method (parameter ­xm)

yang digunakan ialah mapreduce. Parameter ­ow atau –overwrite berfungsi untuk

memaksa   sistem untuk  menulis   hasil  output  walaupun   sistem  sudah  memiliki

lokasi output tersebut sebelumnya.

Gambar 4.6 menunjukkan hasil akhir dari iterasi yan gditunjukkan dengan

menampilkan   beberapa   metadata   dari   proses  K­Means  dan   waktu   komputasi

dijalankan.

Gambar 4.7 menunjukkan perintah $hdfs  dfs  ­ls  dapat  digunakan untuk

melihat hasil dari proses K­Means. Sedangkan perintah $hdfs dfs ­ls  output atau

Gambar 4.5: Menjalankan K­Means menggunakan library Mahout

Gambar 4.6: Akhir dari iterasi K­Means

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 70: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

52

$hdfs dfs ­ls /user/hduser/output digunakan untuk melihat isi dari direktori output.

Hasil proses K­Means dapat dilihat dari aplikasi NameNode Web Interface yang

beralamat di master:50070.

 Gambar 4.8 menunjukkan hasil K­Means melalui aplikasi NameNode web

interface.

 Gambar 4.9 menunjukkan bahwa aplikasi ini dapat menunjukkan aktivitas

dan semua informasi dari sistem Hadoop baik sebelum dan sesudah komputasi

Gambar 4.7: Perintah $hdfs dfs ­ls output

Gambar 4.8: Hasil proses K­Means pada direktori /user/hduser/output

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 71: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

53

MapReduce  dijalankan.  Beberapa   informasi   yang  ditunjukkan  pada   sistem   ini

ialah  DataNode  information  atau   informasi  DataNode  (slave  node).  Informasi

DataNode ini menunjukkan slave node yang aktif dan tidak aktif, kapasitas HDFS

dari masing­masing DataNode, dan storage HDFS yang telah digunakan, Aplikasi

ini juga dapat digunakan untuk mencari dan melihat data pada HDFS.

NameNode  web  interface  juga  dapat  memperlihatkan   informasi   tentang

DataNode. Gambar 4.10 menampilkan beberapa informasi DataNode pada sistem

Hadoop. Beberapa informasi DataNode yang ditampilkan ialah alamat slave node.

Status  slave  node  digunakan  yang  diperlihatkan  pada  Admin  State.   Informasi

ukuran HDFS juga diperlihatkan seperti total ukuran disk yang dapat digunakan

untuk menyimpan data (capacity) dan total kapasitas disk yang telah digunakan

(used).

Gambar 4.9: Summary berisi ringkasan informasi DataNode

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 72: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

54

Gambar 4.11 menjelaskan bahwa HDFS memiliki direktori data, centroid,

dan output.

  Gambar   4.12   menunjukkan   informasi   direktori   /user/hduser/data   pada

HDFS yakni  permission, owner, group, size, replication, block size,  dan  name.

Permission  merupakan   hak   akses   atau  priviledge  yang   diijinkan   olah   sistem

Hadoop.  Owner  merupakan   pemilik   atau   pengguna   sistem   Hadoop.  Group

merupakan pengelompokkan data pada sistem Hadoop.  Replication menjelaskan

bahwa data mengalami proses replikasi di beberapa node.  Block size  merupakan

ukuran blok data. Sedangkan name merupakan name file tersebut.

Gambar 4.10: Informasi DataNode pada aplikasi NameNode Web Interface

Gambar 4.11: Informasi direktori /user/hduser pada HDFS

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 73: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

55

Aplikasi   ini   juga  mampu  menampilkan  metadata  dari   file  pada  HDFS.

Gambar   4.13   menampilkan  metadata  dan  availability  dari   file   sampleseqfile.

Availability   menunjukkan   bahwa   file   sampleseqfile   telah   mengalami   proses

replikasi pada 3 DataNode.

Gambar 4.13: Informasi file sampleseqfile

Gambar 4.12: Informasi direktori /user/hduser/data

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 74: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

BAB 5 ANALISA HASIL

Analisa   hasil   diurai   menjadi   2   yakni   analisa   implementasi   K­Means

dengan menggunakan library Mahout dan analisa unjuk kerja dari sistem Hadoop.

5.1 Analisa Implementasi K­Means Menggunakan  Library  Mahout Pada

Lingkungan Big Data

Hasil   yang   diperoleh   dari   algoritma   K­Means   ialah   berupa   direktori

/user/hduser/output pada HDFS. Mahout menyediakan metode untuk menganalisa

hasil   dari  komputasi  K­Means.   Metode   yang   digunakan   ialah   dengan

menggunakan perintah clusterdump. Metode ini dapat membuat atau generate file

analisa   yang   mengelompokkan  item  data   berdasarkan   centroid   atau   pusat

kelompoknya.  Perintah yang digunakan  ialah $mahout clusterdump ­i  direktori

iterasi terakhir ­p clusteredPoints ­o output_file_analisa. Parameter ­i atau –input

merupakan  perintah  untuk memeasukkan  direktori   input  yang berupa direktori

iterasi   terakhir.   Parameter   ­p   atau   –pointsDir   merupakan   perintah   untuk

menginputkan direktori  clusteredPoints yang berupa hasil  akhir  dari  data  yang

telah   mengalami   proses   komputasi   K­Means.   Sedangkan   parameter   ­o   atau   –

output digunakan untuk menghasilkan file analisa output.

Gambar   5.1   menunjukkan   direktori   iterasi   terakhir   ialah

/user/hduser/output/clusters­9­final.   Direktori   clusters­9­final   memiliki   data

centroid akhir. Direktori /user/hduser/output/clusteredPoints terdiri dari data hasil

56

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 75: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

57

iterasi.   Sedangkan   analisa_menggunakan_clusterdumper_liverdisorder.txt

merupakan file hasil analisa.

 Hasil dari clusterdump ditampilkan pada gambar 5.2. VL­27 merupakan

identitas yang secara otomatis diberikan oleh Mahout. “n” merupakan total data

pada kelompok tersebut. “c” merupakan centroid atau pusat kelompok akhir. “r”

merupakan   radius   dari   kelompok.   Sedangkan   dibaris   selanjutnya   merupakan

pengelompokkan data yang telah masuk kategori kelompok VL­27.

Gambar 5.2 menunjukkan bahwa kelompok VL­27 memiliki total item data

sebanyak 306. Sedangkan pada gambar 5.3 menunjukkan bahwa kelompok VL­49

memiliki total item data sebanyak 38. Sehingga total  item data keseluruhan ialah

344.

 

Gambar 5.1: Analisa hasil K­Means menggunakan clusterdump

Gambar 5.2: Beberapa hasil analisa cluster data dengan identitas VL­27

Gambar 5.3: Beberapa hasil analisa cluster data dengan identitas VL­49

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 76: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

58

Pengujian   hasil   implementasi   K­Means   menggunakan  library  Mahout

dilakukan   dengan   membandingkan   dengan   hasil   dari   penghitungan   manual.

Penghitungan   manual   juga   menggunakan   data   centroid   yang   sama   dengan

penghitungan menggunakan library Mahout. Penghitungan manual menggunakan

label centroid C1 dan C2. Item data pada centroid C1 berjumlah 306, sedangkan

item data pada centroid C2 berjumlah 38. 

Tabel 5.1 menunjukkan bahwa hasil penghitungan manual memiliki item

data   centroid   yang   sama   dengan   hasil   penghitungan   menggunakan  library

Mahout.  Sehingga  dapat  disimpulkan  bahwa  library  Mahout  dapat  melakukan

komputasi K­Means dengan benar.

Tabel 5.1: Perbandingan hasil penghitungan manual dan library Mahout

LabelCentroid Item Data Centroid

JumlahItemData

C1 89.95751634

69.2124183

26.81699346

22.87581699

27.05882353

3.14869281

306

VL­27 89.958 69.212 26.817 22.876 27.059 3.149 306

C2 91.68421053

75.47368421

59.55263158

39.05263158

129 5.960526316

38

VL­49 91.684 75.474 59.553 39.053 129 5.961 38

5.2 Analisa Unjuk Kerja Implementasi K­Means Menggunakan  Library 

Mahout Pada Lingkungan Big Data

Analisa unjuk kerja dilakukan dengan menjalankan komputasi K­Means

menggunakan  library  Mahout sebanyak 10 kali  dalam jumlah slave  node  yang

berbda. Nilai rata­rata digunakan untuk mengevaluasi hasil unjuk kerja. Tabel 5.2

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 77: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

59

menunjukkan bahwa semakin banyak jumlah slave node maka waktu eksekusi K­

Means semakin cepat.

Tabel 5.2: Unjuk kerja implementasi K­Means menggunakan library mahoutpada lingkungan big data

Percobaan ke­ Waktu eksekusi K­Means pada Slave Node (Menit)

1 2 3

1 4.523 4.646 2.8

2 5.295 5.029 4.553

3 4.525 4.94 4.946

4 4.96 4.95 5.461

5 4.93 4.058 2.759

6 5.397 5.384 4.967

7 4.001 5.368 4.544

8 4.923 3.631 5.449

9 5.297 4.045 5.434

10 5.428 4.548 5.416

Rata­rata 4.9279 4.6599 4.6329

  Gambar   5.4   menunjukkan   semakin   banyak   jumlah  slave  node  yang

digunakan   maka   waktu   eksekusi   untuk   menjalankan   K­Means   menggunakan

library Mahout semakin cepat.

1 2 34.4

4.5

4.6

4.7

4.8

4.9

5

Waktu Eksekusi K­Means (menit)

Gambar 5.4: Grafik hasil unjuk kerja sistem Hadoop

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 78: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

BAB 6 PENUTUP

6.1 Kesimpulan

Dalam hasil penelitian implementasi K­Means dalam lingkungan big data

menggunakan   model   pemrograman   MapReduce   dapat   disimpulkan   sebagai

berikut:

1. Implementasi   K­Means   pada   data  liver   disorder  menggunakan  library

Mahout   dapat   berjalan   dengan   benar.   Hal   ini   dibuktikan   dengan

melakukan penghitungan K­Means secara manual.  Komputasi  K­Means

dengan   menggunakan  library  Mahout   menghasilkan  output  item  data

centroid yang sama dengan penghitungan manual.

2. Hasil unjuk kerja menunjukkan bahwa semakin banyak  slave  node  yang

digunakan maka semakin cepat waktu yang dibutuhkan untuk menjalankan

komputasi K­Means yang menggunakan library Mahout. 

6.2 Saran

Dari hasil penelitian implementasi K­Means pada lingkungan big data ini,

ada beberapa saran yang dapat dikemukakan oleh peneliti untuk penelitian dengan

topik yang sama ialah menggunakan algoritma data mining yang berbeda.

60

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 79: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

61

DAFTAR PUSTAKA

Apache   (2015)  MapReduce  Tutorial,  Available   at:  

http://Hadoop.apache.org/docs/r2.7.1/Hadoop­MapReduce­client/Hadoop­

MapReduce­client­core/MapReduceTutorial.html   [Accessed   6   Januari  

2015].

Apache   (2016)   kMeans   commandline   introduction,   Available   at:  

https://mahout.apache.org/users/clustering/k­means­commandline.html  

[Accessed 9 November 2016]

deRoos, D. et al., (eds.). (2014) Hadoop for Dummies. New Jersey: John Wiley & 

Sons, Inc

Data   Science   Indonesia   (2015)  Konsep   Big   Data,   Available   at   :  

http://datascience.or.id/2015/08/15/konsep­big­data/  [Accessed 29 Maret  

2016].

DeZyre   (2015)  Hadoop  MapReduce  Tutorial,  Available   at:  

https://www.dezyre.com/Hadoop­tutorial/Hadoop­MapReduce­

tutorial#topics [Accessed 20 Novemver 2015].

Esteves, M. R., Pais, R., & Rong, C. (2011) ‘K­means clustering in the cloud ­ a 

Mahout   test’,  Workshops   of   International   Conference   on   Advanced  

Information Networking and Applications, pp. 514­519

Han, J. et al. (2000) DATA MINING Concepts and Techniques. 3th Ed. London : 

Pearson.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 80: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

62

Kamath, C. (2009) Scientific Data Mining: A Practical Perspective. Philadelphia, 

USA: Society for Industrial and Applied Mathematics (SIAM) 

Mahout   (2016),  k­Means   clustering   –   basics,  Available   at:  

https://mahout.apache.org/users/clustering/k­means­clustering.html  

[Accessed 2 November 2016].

Owen, S. et al., (2012) Mahout in Action: Manning Publications

Prasetya, U., 2013, Aplikasi Rekomendasi Dokter Untuk Sales Obat Pada Android

Menggunakan   Metode   K­Mean   clustering   Dan   Euclidean   Distance,  

Skripsi,   Jurusan   Teknik   Informatika,   Universitas   Sanata   Dharma,  

Yogyakarta. 

Rathi, R. dan Lohiya, S. (2014) 'big data and Hadoop',  International Journal of 

Advanced Research in Computer Science & Technology (IJARCST 2014), 

2(2), pp. 214 – 217 

Ronk,   J.   (2014).  structured,   semi   strcutured,   and   unstructured   data,   

Available   at:   http://jeremyronk.wordpress.com/2014/09/01/structured­

semi­strcutured­and­unstructured­data [Accessed 8 December 2015].

Santosa, B. (2007) DATA MINING: Teknik Pemanfaatan Data untuk Keperluan 

Bisnis. 1st Ed. Yogyakarta: Graha Ilmu.

The   Glowing   Python   (2012)  KMeans   Clustering   with   Scipy,  Available   at:  

http://glowingpython.blogspot.co.id/2012/04/KMeans­clustering­with­

scipy.html [Accessed 8 January 2016]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 81: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

63

Vishnupriya, N. dan Francis, S. (2015) ‘Data Clustering using MapReduce for  

Multidimensional Datasets’, International Advanced Research Journal in 

Science, Engineering and Technology, 2(8), pp. 39­42

Voruganti, S. (2014) 'Map Reduce a Programming Model for Cloud Computing 

Based On Hadoop Ecosystem', (IJCSIT) International Journal of Computer

Science and Information Technologies, 5(3), pp. 3794­3799.

White,   T.   (2015)  Hadoop:   The   Definitive   Guide.  4Th   Ed.   United   States   of  

America : O’Reilly Media, Inc.

Yahoo!   (2014)  Yahoo!  Hadoop  Tutorial,   Available   at:  

https://developer.yahoo.com/Hadoop/tutorial/index.html   [Accessed   10  

December 2015].

Zhang,  Y.   (2014)  Apache  Mahout  Clustering  Algorithms   Implementation  at:  

https://yunmingzhang.wordpress.com/2014/01/13/apache­mahout­kmeans­

implementation/ [Accessed 21 October 2016]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 82: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

64

LAMPIRAN­LAMPIRAN

Lampiran 1 : Install Java

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 83: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

65

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 84: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

66

Lampiran 2 : Konfigurasi Group Dan User Sistem Hadoop

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 85: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

67

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 86: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

68

Lampiran 3 : Melakukan Disable IPv6

Lampiran 4 : Install Hadoop

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 87: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

69

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 88: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

70

Lampiran 5 : Konfigurasi Environment Hadoop Single Node Cluster

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 89: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

71

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 90: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

72

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 91: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

73

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 92: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

74

Lampiran 6 : Konfigurasi Hostname, Hosts, & SSH

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 93: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

75

Lampiran 7 : Identifikasi Master Node & Slave Node

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 94: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

76

Lampiran 8 : Konfigurasi Environment Hadoop Multi Node Cluster

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 95: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

77

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 96: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

78

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 97: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

79

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 98: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

80

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 99: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

81

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 100: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

82

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 101: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

83

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 102: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

84

Lampiran 9 : Install Maven

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 103: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

85

Lampiran 10 : Install Mahout

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 104: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

86

Lampiran 11 : Source Code Kelas KmeansDriver.java

/* Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements.  See the NOTICE file * distributed with this work for additional information * regarding copyright ownership.  The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License.  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE­2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.mahout.clustering.kmeans;

import java.io.IOException;import java.util.ArrayList;import java.util.List;

import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.util.ToolRunner;import org.apache.mahout.clustering.Cluster;import org.apache.mahout.clustering.classify.ClusterClassificationDriver;import org.apache.mahout.clustering.classify.ClusterClassifier;import org.apache.mahout.clustering.iterator.ClusterIterator;import org.apache.mahout.clustering.iterator.ClusteringPolicy;import org.apache.mahout.clustering.iterator.KMeansClusteringPolicy;import org.apache.mahout.clustering.topdown.PathDirectory;import org.apache.mahout.common.AbstractJob;import org.apache.mahout.common.ClassUtils;import org.apache.mahout.common.HadoopUtil;import org.apache.mahout.common.commandline.DefaultOptionCreator;import org.apache.mahout.common.distance.DistanceMeasure;import org.apache.mahout.common.distance.SquaredEuclideanDistanceMeasure;import org.slf4j.Logger;import org.slf4j.LoggerFactory;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 105: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

87

public class KMeansDriver extends AbstractJob {    private static final Logger log = LoggerFactory.getLogger(KMeansDriver.class);    public static void main(String[] args) throws Exception {    ToolRunner.run(new Configuration(), new KMeansDriver(), args);  }    @Override  public int run(String[] args) throws Exception {        addInputOption();    addOutputOption();    addOption(DefaultOptionCreator.distanceMeasureOption().create());    addOption(DefaultOptionCreator        .clustersInOption()        .withDescription(            "The input centroids, as Vectors.  Must be a SequenceFile of Writable, Cluster/Canopy.  "                + "If k is also specified, then a random set of vectors will be selected"                + " and written out to this path first").create());    addOption(DefaultOptionCreator        .numClustersOption()        .withDescription(            "The k in k­Means.  If specified, then a random selection of k Vectors will be chosen"                + " as the Centroid and written to the clusters input path.").create());    addOption(DefaultOptionCreator.useSetRandomSeedOption().create());    addOption(DefaultOptionCreator.convergenceOption().create());    addOption(DefaultOptionCreator.maxIterationsOption().create());    addOption(DefaultOptionCreator.overwriteOption().create());    addOption(DefaultOptionCreator.clusteringOption().create());    addOption(DefaultOptionCreator.methodOption().create());    addOption(DefaultOptionCreator.outlierThresholdOption().create());       if (parseArguments(args) == null) {      return ­1;    }        Path input = getInputPath();    Path clusters = new Path(getOption(DefaultOptionCreator.CLUSTERS_IN_OPTION));

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 106: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

88

    Path output = getOutputPath();    String measureClass = getOption(DefaultOptionCreator.DISTANCE_MEASURE_OPTION);    if (measureClass == null) {      measureClass = SquaredEuclideanDistanceMeasure.class.getName();    }    double convergenceDelta = Double.parseDouble(getOption(DefaultOptionCreator.CONVERGENCE_DELTA_OPTION));    int maxIterations = Integer.parseInt(getOption(DefaultOptionCreator.MAX_ITERATIONS_OPTION));    if (hasOption(DefaultOptionCreator.OVERWRITE_OPTION)) {      HadoopUtil.delete(getConf(), output);    }    DistanceMeasure measure = ClassUtils.instantiateAs(measureClass, DistanceMeasure.class);        if (hasOption(DefaultOptionCreator.NUM_CLUSTERS_OPTION)) {      int numClusters = Integer.parseInt(getOption(DefaultOptionCreator.NUM_CLUSTERS_OPTION));

      Long seed = null;      if (hasOption(DefaultOptionCreator.RANDOM_SEED)) {        seed = Long.parseLong(getOption(DefaultOptionCreator.RANDOM_SEED));      }

      clusters = RandomSeedGenerator.buildRandom(getConf(), input, clusters, numClusters, measure, seed);    }    boolean runClustering = hasOption(DefaultOptionCreator.CLUSTERING_OPTION);    boolean runSequential = getOption(DefaultOptionCreator.METHOD_OPTION).equalsIgnoreCase(        DefaultOptionCreator.SEQUENTIAL_METHOD);    double clusterClassificationThreshold = 0.0;    if (hasOption(DefaultOptionCreator.OUTLIER_THRESHOLD)) {      clusterClassificationThreshold = Double.parseDouble(getOption(DefaultOptionCreator.OUTLIER_THRESHOLD));    }    run(getConf(), input, clusters, output, convergenceDelta, maxIterations, 

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 107: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

89

runClustering,        clusterClassificationThreshold, runSequential);    return 0;  }    /**   * Iterate over the input vectors to produce clusters and, if requested, use the results of the final iteration to   * cluster the input vectors.   *   * @param input   *          the directory pathname for input points   * @param clustersIn   *          the directory pathname for initial & computed clusters   * @param output   *          the directory pathname for output points   * @param convergenceDelta   *          the convergence delta value   * @param maxIterations   *          the maximum number of iterations   * @param runClustering   *          true if points are to be clustered after iterations are completed   * @param clusterClassificationThreshold   *          Is a clustering strictness / outlier removal parameter. Its value should bebetween 0 and 1. Vectors   *          having pdf below this value will not be clustered.   * @param runSequential   *          if true execute sequential algorithm   */  public static void run(Configuration conf, Path input, Path clustersIn, Path output,    double convergenceDelta, int maxIterations, boolean runClustering, double clusterClassificationThreshold,    boolean runSequential) throws IOException, InterruptedException, ClassNotFoundException {        // iterate until the clusters converge    String delta = Double.toString(convergenceDelta);    if (log.isInfoEnabled()) {      log.info("Input: {} Clusters In: {} Out: {}", input, clustersIn, output);      log.info("convergence: {} max Iterations: {}", convergenceDelta, maxIterations);    }    Path clustersOut = buildClusters(conf, input, clustersIn, output, maxIterations, 

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 108: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

90

delta, runSequential);    if (runClustering) {      log.info("Clustering data");      clusterData(conf, input, clustersOut, output, clusterClassificationThreshold, runSequential);    }  }    /**   * Iterate over the input vectors to produce clusters and, if requested, use the results of the final iteration to   * cluster the input vectors.   *   * @param input   *          the directory pathname for input points   * @param clustersIn   *          the directory pathname for initial & computed clusters   * @param output   *          the directory pathname for output points   * @param convergenceDelta   *          the convergence delta value   * @param maxIterations   *          the maximum number of iterations   * @param runClustering   *          true if points are to be clustered after iterations are completed   * @param clusterClassificationThreshold   *          Is a clustering strictness / outlier removal parameter. Its value should bebetween 0 and 1. Vectors   *          having pdf below this value will not be clustered.   * @param runSequential   *          if true execute sequential algorithm   */  public static void run(Path input, Path clustersIn, Path output, double convergenceDelta,    int maxIterations, boolean runClustering, double clusterClassificationThreshold, boolean runSequential)    throws IOException, InterruptedException, ClassNotFoundException {    run(new Configuration(), input, clustersIn, output, convergenceDelta, maxIterations, runClustering,        clusterClassificationThreshold, runSequential);  }    /**   * Iterate over the input vectors to produce cluster directories for each iteration

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 109: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

91

   *    *   * @param conf   *          the Configuration to use   * @param input   *          the directory pathname for input points   * @param clustersIn   *          the directory pathname for initial & computed clusters   * @param output   *          the directory pathname for output points   * @param maxIterations   *          the maximum number of iterations   * @param delta   *          the convergence delta value   * @param runSequential   *          if true execute sequential algorithm   *   * @return the Path of the final clusters directory   */  public static Path buildClusters(Configuration conf, Path input, Path clustersIn, Path output,    int maxIterations, String delta, boolean runSequential) throws IOException,    InterruptedException, ClassNotFoundException {        double convergenceDelta = Double.parseDouble(delta);    List<Cluster> clusters = new ArrayList<>();    KMeansUtil.configureWithClusterInfo(conf, clustersIn, clusters);        if (clusters.isEmpty()) {      throw new IllegalStateException("No input clusters found in " + clustersIn + ". Check your ­c argument.");    }        Path priorClustersPath = new Path(output, Cluster.INITIAL_CLUSTERS_DIR);    ClusteringPolicy policy = new KMeansClusteringPolicy(convergenceDelta);    ClusterClassifier prior = new ClusterClassifier(clusters, policy);    prior.writeToSeqFiles(priorClustersPath);        if (runSequential) {      ClusterIterator.iterateSeq(conf, input, priorClustersPath, output, maxIterations);    } else {      ClusterIterator.iterateMR(conf, input, priorClustersPath, output, 

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 110: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

92

maxIterations);    }    return output;  }    /**   * Run the job using supplied arguments   *   * @param input   *          the directory pathname for input points   * @param clustersIn   *          the directory pathname for input clusters   * @param output   *          the directory pathname for output points   * @param clusterClassificationThreshold   *          Is a clustering strictness / outlier removal parameter. Its value should bebetween 0 and 1. Vectors   *          having pdf below this value will not be clustered.   * @param runSequential   *          if true execute sequential algorithm   */  public static void clusterData(Configuration conf, Path input, Path clustersIn, Path output,    double clusterClassificationThreshold, boolean runSequential) throws IOException, InterruptedException,    ClassNotFoundException {        if (log.isInfoEnabled()) {      log.info("Running Clustering");      log.info("Input: {} Clusters In: {} Out: {}", input, clustersIn, output);    }    ClusterClassifier.writePolicy(new KMeansClusteringPolicy(), clustersIn);    ClusterClassificationDriver.run(conf, input, output, new Path(output, PathDirectory.CLUSTERED_POINTS_DIRECTORY),        clusterClassificationThreshold, true, runSequential);  }  }

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 111: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

93

Lampiran 12 : Source Code Kelas ClusterIterator.java

/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE­2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.mahout.clustering.iterator;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileStatus;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat;import org.apache.mahout.clustering.Cluster;import org.apache.mahout.clustering.classify.ClusterClassifier;import org.apache.mahout.common.iterator.sequencefile.PathFilters;import org.apache.mahout.common.iterator.sequencefile.PathType;import org.apache.mahout.common.iterator.sequencefile.SequenceFileDirValueIterable;import org.apache.mahout.common.iterator.sequencefile.SequenceFileValueIterator;import org.apache.mahout.math.Vector;import org.apache.mahout.math.VectorWritable;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 112: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

94

import com.google.common.io.Closeables;

/** * This is a clustering iterator which works with a set of Vector data and a prior ClusterClassifier which has been * initialized with a set of models. Its implementation is algorithm­neutral and works for any iterative clustering * algorithm (currently k­means and fuzzy­k­means) that processes all the input vectors in each iteration. * The cluster classifier is configured with a ClusteringPolicy to select the desired clustering algorithm. */public final class ClusterIterator {    public static final String PRIOR_PATH_KEY = "org.apache.mahout.clustering.prior.path";

  private ClusterIterator() {  }    /**   * Iterate over data using a prior­trained ClusterClassifier, for a number of iterations   *   * @param data   *          a {@code List<Vector>} of input vectors   * @param classifier   *          a prior ClusterClassifier   * @param numIterations   *          the int number of iterations to perform   *    * @return the posterior ClusterClassifier   */  public static ClusterClassifier iterate(Iterable<Vector> data, ClusterClassifier classifier, int numIterations) {    ClusteringPolicy policy = classifier.getPolicy();    for (int iteration = 1; iteration <= numIterations; iteration++) {      for (Vector vector : data) {        // update the policy based upon the prior        policy.update(classifier);        // classification yields probabilities        Vector probabilities = classifier.classify(vector);        // policy selects weights for models given those probabilities        Vector weights = policy.select(probabilities);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 113: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

95

        // training causes all models to observe data        for (Vector.Element e : weights.nonZeroes()) {          int index = e.index();          classifier.train(index, vector, weights.get(index));        }      }      // compute the posterior models      classifier.close();    }    return classifier;  }    /**   * Iterate over data using a prior­trained ClusterClassifier, for a number of iterations using a sequential   * implementation   *    * @param conf   *          the Configuration   * @param inPath   *          a Path to input VectorWritables   * @param priorPath   *          a Path to the prior classifier   * @param outPath   *          a Path of output directory   * @param numIterations   *          the int number of iterations to perform   */  public static void iterateSeq(Configuration conf, Path inPath, Path priorPath, Path outPath, int numIterations)    throws IOException {    ClusterClassifier classifier = new ClusterClassifier();    classifier.readFromSeqFiles(conf, priorPath);    Path clustersOut = null;    int iteration = 1;    while (iteration <= numIterations) {      for (VectorWritable vw : new SequenceFileDirValueIterable<VectorWritable>(inPath, PathType.LIST,          PathFilters.logsCRCFilter(), conf)) {        Vector vector = vw.get();        // classification yields probabilities        Vector probabilities = classifier.classify(vector);        // policy selects weights for models given those probabilities        Vector weights = classifier.getPolicy().select(probabilities);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 114: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

96

        // training causes all models to observe data        for (Vector.Element e : weights.nonZeroes()) {          int index = e.index();          classifier.train(index, vector, weights.get(index));        }      }      // compute the posterior models      classifier.close();      // update the policy      classifier.getPolicy().update(classifier);      // output the classifier      clustersOut = new Path(outPath, Cluster.CLUSTERS_DIR + iteration);      classifier.writeToSeqFiles(clustersOut);      FileSystem fs = FileSystem.get(outPath.toUri(), conf);      iteration++;      if (isConverged(clustersOut, conf, fs)) {        break;      }    }    Path finalClustersIn = new Path(outPath, Cluster.CLUSTERS_DIR + (iteration ­ 1) + Cluster.FINAL_ITERATION_SUFFIX);    FileSystem.get(clustersOut.toUri(), conf).rename(clustersOut, finalClustersIn);  }    /**   * Iterate over data using a prior­trained ClusterClassifier, for a number of iterations using a mapreduce   * implementation   *    * @param conf   *          the Configuration   * @param inPath   *          a Path to input VectorWritables   * @param priorPath   *          a Path to the prior classifier   * @param outPath   *          a Path of output directory   * @param numIterations   *          the int number of iterations to perform   */  public static void iterateMR(Configuration conf, Path inPath, Path priorPath, Path outPath, int numIterations)    throws IOException, InterruptedException, ClassNotFoundException {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 115: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

97

    ClusteringPolicy policy = ClusterClassifier.readPolicy(priorPath);    Path clustersOut = null;    int iteration = 1;    while (iteration <= numIterations) {      conf.set(PRIOR_PATH_KEY, priorPath.toString());            String jobName = "Cluster Iterator running iteration " + iteration + " over priorPath: " + priorPath;      Job job = new Job(conf, jobName);      job.setMapOutputKeyClass(IntWritable.class);      job.setMapOutputValueClass(ClusterWritable.class);      job.setOutputKeyClass(IntWritable.class);      job.setOutputValueClass(ClusterWritable.class);            job.setInputFormatClass(SequenceFileInputFormat.class);      job.setOutputFormatClass(SequenceFileOutputFormat.class);      job.setMapperClass(CIMapper.class);      job.setReducerClass(CIReducer.class);            FileInputFormat.addInputPath(job, inPath);      clustersOut = new Path(outPath, Cluster.CLUSTERS_DIR + iteration);      priorPath = clustersOut;      FileOutputFormat.setOutputPath(job, clustersOut);            job.setJarByClass(ClusterIterator.class);      if (!job.waitForCompletion(true)) {        throw new InterruptedException("Cluster Iteration " + iteration + " failed processing " + priorPath);      }      ClusterClassifier.writePolicy(policy, clustersOut);      FileSystem fs = FileSystem.get(outPath.toUri(), conf);      iteration++;      if (isConverged(clustersOut, conf, fs)) {        break;      }    }    Path finalClustersIn = new Path(outPath, Cluster.CLUSTERS_DIR + (iteration ­ 1) + Cluster.FINAL_ITERATION_SUFFIX);    FileSystem.get(clustersOut.toUri(), conf).rename(clustersOut, finalClustersIn);  }    /**   * Return if all of the Clusters in the parts in the filePath have converged or not

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 116: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

98

   *    * @param filePath   *          the file path to the single file containing the clusters   * @return true if all Clusters are converged   * @throws IOException   *           if there was an IO error   */  private static boolean isConverged(Path filePath, Configuration conf, FileSystem fs) throws IOException {    for (FileStatus part : fs.listStatus(filePath, PathFilters.partFilter())) {      SequenceFileValueIterator<ClusterWritable> iterator = new SequenceFileValueIterator<>(          part.getPath(), true, conf);      while (iterator.hasNext()) {        ClusterWritable value = iterator.next();        if (!value.getValue().isConverged()) {          Closeables.close(iterator, true);          return false;        }      }    }    return true;  }}

Lampiran 13 : Source Code Kelas CIMapper.java

/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE­2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS,  *   WITHOUT   WARRANTIES   OR   CONDITIONS   OF   ANY   KIND,   eitherexpress or implied.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 117: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

99

 * See the License for the specific language governing permissions and * limitations under the License. */

package org.apache.mahout.clustering.iterator;

import java.io.IOException;import java.util.List;

import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.WritableComparable;import org.apache.hadoop.mapreduce.Mapper;import org.apache.mahout.clustering.Cluster;import org.apache.mahout.clustering.classify.ClusterClassifier;import org.apache.mahout.math.Vector;import org.apache.mahout.math.Vector.Element;import org.apache.mahout.math.VectorWritable;

public class CIMapper extends Mapper<WritableComparable<?>,VectorWritable,IntWritable,ClusterWritable> {    private ClusterClassifier classifier;  private ClusteringPolicy policy;

  @Override  protected void setup(Context context) throws IOException, InterruptedException {    Configuration conf = context.getConfiguration();    String priorClustersPath = conf.get(ClusterIterator.PRIOR_PATH_KEY);    classifier = new ClusterClassifier();    classifier.readFromSeqFiles(conf, new Path(priorClustersPath));    policy = classifier.getPolicy();    policy.update(classifier);    super.setup(context);  }

  @Override  protected void map(WritableComparable<?> key, VectorWritable value, Context context) throws IOException,      InterruptedException {    Vector probabilities = classifier.classify(value.get());    Vector selections = policy.select(probabilities);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 118: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

100

    for (Element el : selections.nonZeroes()) {      classifier.train(el.index(), value.get(), el.get());    }  }

  @Override  protected void cleanup(Context context) throws IOException, InterruptedException {    List<Cluster> clusters = classifier.getModels();    ClusterWritable cw = new ClusterWritable();    for (int index = 0; index < clusters.size(); index++) {      cw.setValue(clusters.get(index));      context.write(new IntWritable(index), cw);    }    super.cleanup(context);  }  }

Lampiran 14 : Source Code Kelas CIReducer.java

/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE­2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */

package org.apache.mahout.clustering.iterator;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 119: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

101

import java.io.IOException;import java.util.ArrayList;import java.util.Iterator;import java.util.List;

import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.mapreduce.Reducer;import org.apache.mahout.clustering.Cluster;import org.apache.mahout.clustering.classify.ClusterClassifier;

public class CIReducer extends Reducer<IntWritable,ClusterWritable,IntWritable,ClusterWritable> {    private ClusterClassifier classifier;  private ClusteringPolicy policy;    @Override  protected void reduce(IntWritable key, Iterable<ClusterWritable> values, Context context) throws IOException,      InterruptedException {    Iterator<ClusterWritable> iter = values.iterator();    Cluster first = iter.next().getValue(); // there must always be at least one    while (iter.hasNext()) {      Cluster cluster = iter.next().getValue();      first.observe(cluster);    }    List<Cluster> models = new ArrayList<>();    models.add(first);    classifier = new ClusterClassifier(models, policy);    classifier.close();    context.write(key, new ClusterWritable(first));  }

  @Override  protected void setup(Context context) throws IOException, InterruptedException {    Configuration conf = context.getConfiguration();    String priorClustersPath = conf.get(ClusterIterator.PRIOR_PATH_KEY);    classifier = new ClusterClassifier();    classifier.readFromSeqFiles(conf, new Path(priorClustersPath));    policy = classifier.getPolicy();    policy.update(classifier);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 120: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

102

    super.setup(context);  }  }

Lampiran 15 : Source Code Kelas VectorDataCreator.java

//sumber : http://bigdatatechworld.blogspot.co.id/2014/09/running­k­means­clustering­algorithm.html

package org.apache.mahout.clustering.liverdisorder2.kmeans; 

import java.io.BufferedReader;import java.io.FileReader;import java.util.ArrayList;import java.util.List;

import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.SequenceFile;import org.apache.hadoop.io.Text;import org.apache.mahout.math.DenseVector;import org.apache.mahout.math.NamedVector;import org.apache.mahout.math.VectorWritable;

public class VectorDataCreation {private VectorDataCreation() {}

public static final int NUM_COLUMNS = 7;

public static void main(String[] args) throws Exception {String INPUT_FILE = "bupa_data_with_selection.csv";String OUTPUT_FILE = "sampleseqfile";

List<NamedVector> apples = new ArrayList<NamedVector>();

NamedVector apple;

BufferedReader br = null;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 121: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

103

br = new BufferedReader(new FileReader(INPUT_FILE));

String sCurrentLine;

while ((sCurrentLine = br.readLine()) != null) {

String item_name = sCurrentLine.split(",")[0];

double[] features = new double[NUM_COLUMNS];

for (int indx = 1; indx < NUM_COLUMNS; ++indx) {features[indx ­ 1] = Double

.parseDouble(sCurrentLine.split(",")[indx]);

}

apple = new NamedVector(new DenseVector(features), item_name);

apples.add(apple);}

Configuration conf = new Configuration();

FileSystem fs = FileSystem.get(conf);

Path path = new Path(OUTPUT_FILE);

SequenceFile.Writer writer = new SequenceFile.Writer(fs, conf, path,

Text.class, VectorWritable.class);

VectorWritable vec = new VectorWritable();

for (NamedVector vector : apples) {vec.set(vector);writer.append(new Text(vector.getName()), vec);

}

writer.close();

SequenceFile.Reader reader = new SequenceFile.Reader(fs, new Path(

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 122: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

104

OUTPUT_FILE), conf);

Text key = new Text();

VectorWritable value = new VectorWritable();

while (reader.next(key, value)) {System.out.println(key.toString() + ","

+ value.get().asFormatString());}reader.close();

}}

Lampiran 16 : Source Code Kelas VectorCentroidCreator.java

//sumber : http://bigdatatechworld.blogspot.co.id/2014/09/running­k­means­clustering­algorithm.html

package org.apache.mahout.clustering.liverdisorder2.kmeans; 

import java.io.BufferedReader;import java.io.FileReader;import java.util.ArrayList;import java.util.List;

import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.SequenceFile;import org.apache.hadoop.io.Text;import org.apache.mahout.math.DenseVector;import org.apache.mahout.math.NamedVector;import org.apache.mahout.math.VectorWritable;

public class VectorCentroidCreation {private VectorCentroidCreation() {}

public static final int NUM_COLUMNS = 7;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 123: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

105

public static void main(String[] args) throws Exception {String INPUT_FILE = "bupa_data_centroid_with_selection.csv";String OUTPUT_FILE = "centroidfile";

List<NamedVector> apples = new ArrayList<NamedVector>();

NamedVector apple;

BufferedReader br = null;

br = new BufferedReader(new FileReader(INPUT_FILE));

String sCurrentLine;

while ((sCurrentLine = br.readLine()) != null) {

String item_name = sCurrentLine.split(",")[0];

double[] features = new double[NUM_COLUMNS];

for (int indx = 1; indx < NUM_COLUMNS; ++indx) {features[indx ­ 1] = Double

.parseDouble(sCurrentLine.split(",")[indx]);

}

apple = new NamedVector(new DenseVector(features), item_name);

apples.add(apple);}

Configuration conf = new Configuration();

FileSystem fs = FileSystem.get(conf);

Path path = new Path(OUTPUT_FILE);

SequenceFile.Writer writer = new SequenceFile.Writer(fs, conf, path,

Text.class, VectorWritable.class);

VectorWritable vec = new VectorWritable();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 124: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

106

for (NamedVector vector : apples) {vec.set(vector);writer.append(new Text(vector.getName()), vec);

}

writer.close();

SequenceFile.Reader reader = new SequenceFile.Reader(fs, new Path(

OUTPUT_FILE), conf);

Text key = new Text();

VectorWritable value = new VectorWritable();

while (reader.next(key, value)) {System.out.println(key.toString() + ","

+ value.get().asFormatString());}reader.close();

}}

Lampiran 17 : Source Code File Core­site.xml

<?xml version="1.0" encoding="UTF­8"?><?xml­stylesheet type="text/xsl" href="configuration.xsl"?><!­­  Licensed under the Apache License, Version 2.0 (the "License");  you may not use this file except in compliance with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE­2.0

  Unless required by applicable law or agreed to in writing, software  distributed under the License is distributed on an "AS IS" BASIS,  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and  limitations under the License. See accompanying LICENSE file.­­>

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 125: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

107

<!­­ Put site­specific property overrides in this file. ­­>

<configuration><property>  <name>hadoop.tmp.dir</name>  <value>/app/hadoop/tmp</value>  <description>A base for other temporary directories.</description></property>

<property>  <name>fs.default.name</name>  <value>hdfs://master:54310</value>  <description>The name of the default file system.  A URI whose  scheme and authority determine the FileSystem implementation.  The  uri's scheme determines the config property (fs.SCHEME.impl) naming  the FileSystem implementation class.  The uri's authority is used to  determine the host, port, etc. for a filesystem.</description></property>

</configuration>

Lampiran 18 : Source Code File Mapred­site.xml

<?xml version="1.0"?><?xml­stylesheet type="text/xsl" href="configuration.xsl"?><!­­  Licensed under the Apache License, Version 2.0 (the "License");  you may not use this file except in compliance with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE­2.0

  Unless required by applicable law or agreed to in writing, software  distributed under the License is distributed on an "AS IS" BASIS,    WITHOUT   WARRANTIES   OR   CONDITIONS   OF   ANY   KIND,   eitherexpress or implied.  See the License for the specific language governing permissions and  limitations under the License. See accompanying LICENSE file.­­><!­­ Put site­specific property overrides in this file. ­­>

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 126: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

108

<configuration><property>  <name>mapred.job.tracker</name>  <value>master:54311</value>  <description>The host and port that the MapReduce job tracker runs  at.  If "local", then jobs are run in­process as a single map  and reduce task.  </description></property><property>  <name>mapreduce.framework.name</name>  <value>yarn</value></property></configuration>

Lampiran 19 : Source Code File Hdfs­site.xml

<?xml version="1.0" encoding="UTF­8"?><?xml­stylesheet type="text/xsl" href="configuration.xsl"?><!­­  Licensed under the Apache License, Version 2.0 (the "License");  you may not use this file except in compliance with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE­2.0

  Unless required by applicable law or agreed to in writing, software  distributed under the License is distributed on an "AS IS" BASIS,    WITHOUT   WARRANTIES   OR   CONDITIONS   OF   ANY   KIND,   eitherexpress or implied.  See the License for the specific language governing permissions and  limitations under the License. See accompanying LICENSE file.­­>

<!­­ Put site­specific property overrides in this file. ­­>

<configuration><property>  <name>dfs.replication</name>  <value>3</value>  <description>Default block replication.  The actual number of replications can be specified when the file is created.  The default is used if replication is not specified in create time.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 127: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

109

  </description></property><property>

<name>dfs.DataNode.data.dir</name><value>/app/hadoop/tmp/files</value>

</property><property>        <name>dfs.NameNode.name.dir</name>        <value>/app/hadoop/tmp/metadata</value></property></configuration>

Lampiran 20 : Source Code File Yarn­site.xml

<?xml version="1.0"?><!­­  Licensed under the Apache License, Version 2.0 (the "License");  you may not use this file except in compliance with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE­2.0

  Unless required by applicable law or agreed to in writing, software  distributed under the License is distributed on an "AS IS" BASIS,    WITHOUT   WARRANTIES   OR   CONDITIONS   OF   ANY   KIND,   eitherexpress or implied.  See the License for the specific language governing permissions and  limitations under the License. See accompanying LICENSE file.­­><configuration>

<!­­ Site specific YARN configuration properties ­­>

<property>  <name>yarn.resourcemanager.hostname</name>  <value>localhost</value></property>

<property>  <name>yarn.nodemanager.aux­services</name>  <value>mapreduce_shuffle</value></property>

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 128: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

110

<property>  <name>yarn.nodemanager.resource.memory­mb</name>  <value>2200</value>  <!­­ <description>Amount of physical memory, in MB, that can be allocated forcontainers.</description> ­­></property>

<property>  <name>yarn.scheduler.minimum­allocation­mb</name>  <value>500</value></property>

</configuration>

Lampiran 21 : Hasil Kalkulasi Manual

mcv,alkphos,sgpt,sgot,gammagt,drinks,Cluster Selector85,92,45,27,31,0,C185,64,59,32,23,0,C186,54,33,16,54,0,C191,78,34,24,36,0,C187,70,12,28,10,0,C198,55,13,17,17,0,C188,62,20,17,9,0.5,C188,67,21,11,11,0.5,C192,54,22,20,7,0.5,C190,60,25,19,5,0.5,C189,52,13,24,15,0.5,C182,62,17,17,15,0.5,C190,64,61,32,13,0.5,C186,77,25,19,18,0.5,C196,67,29,20,11,0.5,C191,78,20,31,18,0.5,C189,67,23,16,10,0.5,C189,79,17,17,16,0.5,C191,107,20,20,56,0.5,C194,116,11,33,11,0.5,C192,59,35,13,19,0.5,C193,23,35,20,20,0.5,C190,60,23,27,5,0.5,C196,68,18,19,19,0.5,C192,70,24,13,26,0.5,C190,47,28,15,18,0.5,C1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 129: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

111

88,66,20,21,10,0.5,C191,102,17,13,19,0.5,C187,41,31,19,16,0.5,C186,79,28,16,17,0.5,C191,57,31,23,42,0.5,C193,77,32,18,29,0.5,C188,96,28,21,40,0.5,C194,65,22,18,11,0.5,C185,54,47,33,22,0.5,C179,39,14,19,9,0.5,C185,85,25,26,30,0.5,C189,63,24,20,38,0.5,C184,92,68,37,44,0.5,C189,68,26,39,42,0.5,C189,101,18,25,13,0.5,C186,84,18,14,16,0.5,C185,65,25,14,18,0.5,C188,61,19,21,13,0.5,C192,56,14,16,10,0.5,C195,50,29,25,50,0.5,C191,75,24,22,11,0.5,C183,40,29,25,38,0.5,C189,74,19,23,16,0.5,C185,64,24,22,11,0.5,C194,48,11,23,43,0.5,C187,52,21,19,30,0.5,C185,65,23,29,15,0.5,C184,82,21,21,19,0.5,C188,49,20,22,19,0.5,C196,67,26,26,36,0.5,C190,63,24,24,24,0.5,C190,45,33,34,27,0.5,C190,72,14,15,18,0.5,C191,55,4,8,13,0.5,C191,52,15,22,11,0.5,C187,71,32,19,27,1,C189,77,26,20,19,1,C189,67,5,17,14,1,C185,51,26,24,23,1,C1103,75,19,30,13,1,C190,63,16,21,14,1,C190,63,29,23,57,2,C190,67,35,19,35,2,C187,66,27,22,9,2,C1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 130: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

112

90,73,34,21,22,2,C186,54,20,21,16,2,C190,80,19,14,42,2,C196,72,28,19,30,2,C191,55,9,25,16,2,C195,78,27,25,30,2,C192,101,34,30,64,2,C189,51,41,22,48,2,C191,99,42,33,16,2,C194,58,21,18,26,2,C188,47,33,26,29,2,C192,65,17,25,9,2,C192,79,22,20,11,3,C184,83,20,25,7,3,C188,68,27,21,26,3,C186,48,20,20,6,3,C199,69,45,32,30,3,C188,66,23,12,15,3,C189,62,42,30,20,3,C190,51,23,17,27,3,C181,61,32,37,53,3,C189,65,26,18,36,3,C192,75,26,26,24,3,C185,59,25,20,25,3,C192,61,18,13,81,3,C189,63,22,27,10,4,C190,84,18,23,13,4,C188,95,25,19,14,4,C189,35,27,29,17,4,C191,80,37,23,27,4,C191,109,33,15,18,4,C191,65,17,5,7,4,C188,107,29,20,50,4,C187,76,22,55,9,4,C187,86,28,23,21,4,C187,42,26,23,17,4,C188,80,24,25,17,4,C186,67,11,15,8,4,C192,40,19,20,21,4,C185,60,17,21,14,4,C189,90,15,17,25,4,C191,57,15,16,16,4,C196,55,48,39,42,4,C179,101,17,27,23,4,C1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 131: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

113

90,134,14,20,14,4,C189,76,14,21,24,4,C188,93,29,27,31,4,C190,67,10,16,16,4,C192,73,24,21,48,4,C191,55,28,28,82,4,C183,45,19,21,13,4,C190,74,19,14,22,4,C192,66,21,16,33,5,C193,63,26,18,18,5,C187,59,15,19,12,5,C186,44,21,11,15,5,C187,64,16,20,24,5,C192,57,21,23,22,5,C199,59,17,19,11,5,C192,80,10,26,20,6,C195,60,26,22,28,6,C191,63,25,26,15,6,C192,62,37,21,36,6,C195,50,13,14,15,6,C190,76,37,19,50,6,C196,70,70,26,36,6,C192,62,20,23,20,6,C191,63,25,26,15,6,C192,82,27,24,37,6,C190,63,12,26,21,6,C188,37,9,15,16,6,C1100,60,29,23,76,6,C198,43,35,23,69,6,C192,87,57,25,44,6,C193,99,36,34,48,6,C190,72,17,19,19,6,C197,93,21,20,68,6,C193,50,18,25,17,6,C190,57,20,26,33,6,C192,76,31,28,41,6,C188,55,19,17,14,6,C189,63,24,29,29,6,C193,84,58,47,62,7,C197,71,29,22,52,8,C184,99,33,19,26,8,C196,44,42,23,73,8,C190,62,22,21,21,8,C192,94,18,17,6,8,C1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 132: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

114

97,71,29,22,52,8,C191,69,25,25,66,8,C193,59,17,20,14,8,C190,50,26,22,53,8,C191,62,59,47,60,8,C192,77,86,41,31,10,C186,66,22,24,26,10,C198,57,31,34,73,10,C195,80,50,64,55,10,C197,92,22,28,49,12,C187,75,25,21,14,0,C188,56,23,18,12,0,C184,97,41,20,32,0,C194,91,27,20,15,0.5,C197,62,17,13,5,0.5,C192,85,25,20,12,0.5,C182,48,27,15,12,0.5,C188,74,31,25,15,0.5,C195,77,30,14,21,0.5,C188,94,26,18,8,0.5,C191,70,19,19,22,0.5,C183,54,27,15,12,0.5,C191,105,40,26,56,0.5,C186,79,37,28,14,0.5,C189,82,23,14,35,0.5,C190,73,24,23,11,0.5,C190,87,19,25,19,0.5,C189,82,33,32,18,0.5,C185,79,17,8,9,0.5,C185,119,30,26,17,0.5,C178,69,24,18,31,0.5,C188,107,34,21,27,0.5,C189,115,17,27,7,0.5,C192,67,23,15,12,0.5,C189,101,27,34,14,0.5,C191,84,11,12,10,0.5,C194,101,41,20,53,0.5,C188,46,29,22,18,0.5,C188,122,35,29,42,0.5,C184,88,28,25,35,0.5,C190,79,18,15,24,0.5,C187,69,22,26,11,0.5,C165,63,19,20,14,0.5,C190,64,12,17,14,0.5,C1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 133: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

115

85,58,18,24,16,0.5,C188,81,41,27,36,0.5,C186,78,52,29,62,0.5,C182,74,38,28,48,0.5,C186,58,36,27,59,0.5,C194,56,30,18,27,0.5,C187,57,30,30,22,0.5,C194,75,20,25,38,0.5,C183,68,17,20,71,0.5,C193,56,25,21,33,0.5,C1101,65,18,21,22,0.5,C192,65,25,20,31,0.5,C192,58,14,16,13,0.5,C186,58,16,23,23,0.5,C185,62,15,13,22,0.5,C186,57,13,20,13,0.5,C186,54,26,30,13,0.5,C181,41,33,27,34,1,C191,67,32,26,13,1,C191,80,21,19,14,1,C192,60,23,15,19,1,C191,60,32,14,8,1,C193,65,28,22,10,1,C187,92,21,22,37,1,C195,62,24,23,14,1,C193,59,41,30,48,1,C184,82,43,32,38,2,C187,71,33,20,22,2,C186,44,24,15,18,2,C186,66,28,24,21,2,C188,58,31,17,17,2,C190,61,28,29,31,2,C188,69,70,24,64,2,C193,87,18,17,26,2,C198,58,33,21,28,2,C191,44,18,18,23,2,C187,75,37,19,70,2,C194,91,30,26,25,2,C188,85,14,15,10,2,C189,109,26,25,27,2,C187,59,37,27,34,2,C193,58,20,23,18,2,C188,57,9,15,16,2,C194,65,38,27,17,3,C1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 134: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

116

91,71,12,22,11,3,C190,55,20,20,16,3,C191,64,21,17,26,3,C188,47,35,26,33,3,C185,58,83,49,51,3,C191,54,25,22,35,4,C198,50,27,25,53,4,C186,62,29,21,26,4,C189,48,32,22,14,4,C182,68,20,22,9,4,C183,70,17,19,23,4,C196,70,21,26,21,4,C194,117,77,56,52,4,C193,45,11,14,21,4,C193,49,27,21,29,4,C184,73,46,32,39,4,C191,63,17,17,46,4,C190,57,31,18,37,4,C187,45,19,13,16,4,C191,68,14,20,19,4,C191,86,52,47,52,4,C188,46,15,33,55,4,C185,52,22,23,34,4,C189,72,33,27,55,4,C195,59,23,18,19,4,C196,56,38,26,23,5,C190,52,10,17,12,5,C194,45,20,16,12,5,C199,42,14,21,49,5,C193,102,47,23,37,5,C194,71,25,26,31,5,C187,54,41,29,23,6,C192,67,15,14,14,6,C198,101,31,26,32,6,C193,43,11,16,54,6,C193,68,24,18,19,6,C195,36,38,19,15,6,C192,80,10,26,20,6,C196,74,27,25,43,6,C195,93,21,27,47,6,C186,109,16,22,28,6,C191,46,30,24,39,7,C185,50,12,18,14,7,C191,57,33,23,12,8,C1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 135: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

117

91,52,76,32,24,8,C193,70,46,30,33,8,C187,55,36,19,25,8,C198,123,28,24,31,8,C182,55,18,23,44,8,C197,80,17,20,53,8,C1100,83,25,24,28,8,C191,138,45,21,48,10,C192,41,37,22,37,10,C186,123,20,25,23,10,C191,93,35,34,37,10,C187,87,15,23,11,10,C187,56,52,43,55,10,C199,75,26,24,41,12,C191,68,27,26,14,16,C198,99,57,45,65,20,C184,80,47,33,97,0.5,C291,72,155,68,82,0.5,C292,57,64,36,90,0.5,C287,90,43,28,156,2,C292,60,30,27,297,2,C289,89,23,18,104,3,C290,96,34,49,169,4,C286,78,47,39,107,5,C297,44,113,45,150,5,C290,70,25,23,112,5,C295,62,64,42,76,6,C282,56,67,38,92,6,C291,74,87,50,67,6,C292,79,70,32,84,7,C292,93,58,35,120,7,C290,67,77,39,114,8,C292,95,85,48,200,8,C292,93,22,28,123,9,C292,108,53,33,94,12,C293,77,39,37,108,16,C294,83,81,34,201,20,C291,96,35,22,135,0.5,C298,74,148,75,159,0.5,C290,63,45,24,85,1,C283,78,31,19,115,1,C282,72,31,20,84,3,C286,55,29,35,108,4,C294,43,154,82,121,4,C2

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 136: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

118

92,73,33,34,115,5,C292,53,51,33,92,6,C297,94,43,43,82,6,C299,86,58,42,203,6,C298,66,103,57,114,6,C2102,82,34,78,203,7,C295,73,20,25,225,8,C288,91,56,35,126,9,C296,69,53,43,203,12,C298,77,55,35,89,15,C2

Lampiran 22 : Hasil K­Means Dengan Menggunakan Library Mahout

{"r":[4.376,18.582,12.582,7.431,16.407,3.032],"c":[89.958,69.212,26.817,22.876,27.059,3.149],"n":306,"identifier":"VL­27"}

Weight : [props ­ optional]:  Point:1.0 : [distance=30.280828894023347]: [85.0,92.0,45.0,27.0,31.0]1.0 : [distance=34.599583998773824]: [85.0,64.0,59.0,32.0,23.0]1.0 : [distance=32.68527636902549]: [86.0,54.0,33.0,16.0,54.0]1.0 : [distance=14.86696464396173]: [91.0,78.0,34.0,24.0,36.0]1.0 : [distance=23.581464357715724]: [87.0,70.0,12.0,28.0,10.0]1.0 : [distance=24.560193572385426]: [98.0,55.0,13.0,17.0,17.0]1.0 : [distance=21.67911792635194]: [88.0,62.0,20.0,17.0,9.0,0.5]1.0 : [distance=21.17783024613144]: [88.0,67.0,21.0,11.0,11.0,0.5]1.0 : [distance=26.008366624162214]: [92.0,54.0,22.0,20.0,7.0,0.5]1.0 : [distance=24.42951386189925]: [90.0,60.0,25.0,19.0,5.0,0.5]1.0 : [distance=25.333536579666625]: [89.0,52.0,13.0,24.0,15.0,0.5]1.0 : [distance=19.96673304710818]: [82.0,62.0,17.0,17.0,15.0,0.5]1.0 : [distance=38.517085214370525]: [90.0,64.0,61.0,32.0,13.0,0.5]1.0 : [distance=13.553953086120329]: [86.0,77.0,25.0,19.0,18.0,0.5]1.0 : [distance=17.870188336692532]: [96.0,67.0,29.0,20.0,11.0,0.5]1.0 : [distance=16.729015842485673]: [91.0,78.0,20.0,31.0,18.0,0.5]1.0 : [distance=19.122681938530324]: [89.0,67.0,23.0,16.0,10.0,0.5]1.0 : [distance=18.89246756078381]: [89.0,79.0,17.0,17.0,16.0,0.5]1.0 : [distance=48.25284546263715]: [91.0,107.0,20.0,20.0,56.0,0.5]1.0 : [distance=53.1318852099199]: [94.0,116.0,11.0,33.0,11.0,0.5]1.0 : [distance=18.571989516138252]: [92.0,59.0,35.0,13.0,19.0,0.5]1.0 : [distance=47.71707026408424]: [93.0,23.0,35.0,20.0,20.0,0.5]1.0 : [distance=24.699312733141195]: [90.0,60.0,23.0,27.0,5.0,0.5]1.0 : [distance=14.237384180847348]: [96.0,68.0,18.0,19.0,19.0,0.5]1.0 : [distance=10.880988869149485]: [92.0,70.0,24.0,13.0,26.0,0.5]1.0 : [distance=25.414546754652328]: [90.0,47.0,28.0,15.0,18.0,0.5]1.0 : [distance=19.03051824446491]: [88.0,66.0,20.0,21.0,10.0,0.5]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 137: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

119

1.0 : [distance=36.63301268141846]: [91.0,102.0,17.0,13.0,19.0,0.5]1.0 : [distance=31.08890641011838]: [87.0,41.0,31.0,19.0,16.0,0.5]1.0 : [distance=16.380798493768058]: [86.0,79.0,28.0,16.0,17.0,0.5]1.0 : [distance=19.94986781811093]: [91.0,57.0,31.0,23.0,42.0,0.5]1.0 : [distance=11.459669425673594]: [93.0,77.0,32.0,18.0,29.0,0.5]1.0 : [distance=30.01356725589532]: [88.0,96.0,28.0,21.0,40.0,0.5]1.0 : [distance=18.600122209854998]: [94.0,65.0,22.0,18.0,11.0,0.5]1.0 : [distance=28.25694148877354]: [85.0,54.0,47.0,33.0,22.0,0.5]1.0 : [distance=39.31019388920845]: [79.0,39.0,14.0,19.0,9.0,0.5]1.0 : [distance=17.394044426632252]: [85.0,85.0,25.0,26.0,30.0,0.5]1.0 : [distance=13.507097038392336]: [89.0,63.0,24.0,20.0,38.0,0.5]1.0 : [distance=52.386233758479044]: [84.0,92.0,68.0,37.0,44.0,0.5]1.0 : [distance=22.210310208434212]: [89.0,68.0,26.0,39.0,42.0,0.5]1.0 : [distance=36.03171946576312]: [89.0,101.0,18.0,25.0,13.0,0.5]1.0 : [distance=22.807173446102958]: [86.0,84.0,18.0,14.0,16.0,0.5]1.0 : [distance=14.610985117055456]: [85.0,65.0,25.0,14.0,18.0,0.5]1.0 : [distance=18.45442639073566]: [88.0,61.0,19.0,21.0,13.0,0.5]1.0 : [distance=26.23568088406133]: [92.0,56.0,14.0,16.0,10.0,0.5]1.0 : [distance=30.61265230034901]: [95.0,50.0,29.0,25.0,50.0,0.5]1.0 : [distance=17.555249028246802]: [91.0,75.0,24.0,22.0,11.0,0.5]1.0 : [distance=32.21451541988305]: [83.0,40.0,29.0,25.0,38.0,0.5]1.0 : [distance=14.63802362902934]: [89.0,74.0,19.0,23.0,16.0,0.5]1.0 : [distance=18.037465651708676]: [85.0,64.0,24.0,22.0,11.0,0.5]1.0 : [distance=31.26719924834838]: [94.0,48.0,11.0,23.0,43.0,0.5]1.0 : [distance=19.22341565956041]: [87.0,52.0,21.0,19.0,30.0,0.5]1.0 : [distance=15.710738089586245]: [85.0,65.0,23.0,29.0,15.0,0.5]1.0 : [distance=17.559343931179136]: [84.0,82.0,21.0,21.0,19.0,0.5]1.0 : [distance=23.055853689655322]: [88.0,49.0,20.0,22.0,19.0,0.5]1.0 : [distance=11.781112493352193]: [96.0,67.0,26.0,26.0,36.0,0.5]1.0 : [distance=8.010440724493497]: [90.0,63.0,24.0,24.0,24.0,0.5]1.0 : [distance=27.481613053557545]: [90.0,45.0,33.0,34.0,27.0,0.5]1.0 : [distance=17.976487106918295]: [90.0,72.0,14.0,15.0,18.0,0.5]1.0 : [distance=33.90650115731999]: [91.0,55.0,4.0,8.0,13.0,0.5]1.0 : [distance=26.507808144521608]: [91.0,52.0,15.0,22.0,11.0,0.5]1.0 : [distance=7.645142663957237]: [87.0,71.0,32.0,19.0,27.0,1.0]1.0 : [distance=11.83480398812023]: [89.0,77.0,26.0,20.0,19.0,1.0]1.0 : [distance=26.295775596003992]: [89.0,67.0,5.0,17.0,14.0,1.0]1.0 : [distance=19.475403554411006]: [85.0,51.0,26.0,24.0,23.0,1.0]1.0 : [distance=22.753664586257027]: [103.0,75.0,19.0,30.0,13.0,1.0]1.0 : [distance=18.28309973073562]: [90.0,63.0,16.0,21.0,14.0,1.0]1.0 : [distance=30.67850108096023]: [90.0,63.0,29.0,23.0,57.0,2.0]1.0 : [distance=12.298858965060592]: [90.0,67.0,35.0,19.0,35.0,2.0]1.0 : [distance=18.63619283749865]: [87.0,66.0,27.0,22.0,9.0,2.0]1.0 : [distance=9.816977281911395]: [90.0,73.0,34.0,21.0,22.0,2.0]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 138: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

120

1.0 : [distance=20.51065012240617]: [86.0,54.0,20.0,21.0,16.0,2.0]1.0 : [distance=21.927550875508327]: [90.0,80.0,19.0,14.0,42.0,2.0]1.0 : [distance=8.406764927624202]: [96.0,72.0,28.0,19.0,30.0,2.0]1.0 : [distance=25.46868839781899]: [91.0,55.0,9.0,25.0,16.0,2.0]1.0 : [distance=10.82422711452259]: [95.0,78.0,27.0,25.0,30.0,2.0]1.0 : [distance=49.82912472043377]: [92.0,101.0,34.0,30.0,64.0,2.0]1.0 : [distance=31.215158414606655]: [89.0,51.0,41.0,22.0,48.0,2.0]1.0 : [distance=36.67460480666168]: [91.0,99.0,42.0,33.0,16.0,2.0]1.0 : [distance=14.21659611317242]: [94.0,58.0,21.0,18.0,26.0,2.0]1.0 : [distance=23.458498407373128]: [88.0,47.0,33.0,26.0,29.0,2.0]1.0 : [distance=21.218914298316843]: [92.0,65.0,17.0,25.0,9.0,2.0]1.0 : [distance=19.731958015781757]: [92.0,79.0,22.0,20.0,11.0,3.0]1.0 : [distance=26.056697302730317]: [84.0,83.0,20.0,25.0,7.0,3.0]1.0 : [distance=3.1618390155257496]: [88.0,68.0,27.0,21.0,26.0,3.0]1.0 : [distance=31.04619955817227]: [86.0,48.0,20.0,20.0,6.0,3.0]1.0 : [distance=22.457887324596726]: [99.0,69.0,45.0,32.0,30.0,3.0]1.0 : [distance=17.10092601014762]: [88.0,66.0,23.0,12.0,15.0,3.0]1.0 : [distance=19.597514777063516]: [89.0,62.0,42.0,30.0,20.0,3.0]1.0 : [distance=19.51446180206238]: [90.0,51.0,23.0,17.0,27.0,3.0]1.0 : [distance=32.35743750527551]: [81.0,61.0,32.0,37.0,53.0,3.0]1.0 : [distance=11.093652301426191]: [89.0,65.0,26.0,18.0,36.0,3.0]1.0 : [distance=7.581183953915614]: [92.0,75.0,26.0,26.0,24.0,3.0]1.0 : [distance=12.029260505660602]: [85.0,59.0,25.0,20.0,25.0,3.0]1.0 : [distance=56.18326545745956]: [92.0,61.0,18.0,13.0,81.0,3.0]1.0 : [distance=19.273076410529715]: [89.0,63.0,22.0,27.0,10.0,4.0]1.0 : [distance=22.244199592311375]: [90.0,84.0,18.0,23.0,13.0,4.0]1.0 : [distance=29.298673325593505]: [88.0,95.0,25.0,19.0,14.0,4.0]1.0 : [distance=36.205664848702526]: [89.0,35.0,27.0,29.0,17.0,4.0]1.0 : [distance=14.896171278907833]: [91.0,80.0,37.0,23.0,27.0,4.0]1.0 : [distance=42.03788173147994]: [91.0,109.0,33.0,15.0,18.0,4.0]1.0 : [distance=28.945302888265548]: [91.0,65.0,17.0,5.0,7.0,4.0]1.0 : [distance=44.40485720737272]: [88.0,107.0,29.0,20.0,50.0,4.0]1.0 : [distance=37.9055478695855]: [87.0,76.0,22.0,55.0,9.0,4.0]1.0 : [distance=18.149897922235066]: [87.0,86.0,28.0,23.0,21.0,4.0]1.0 : [distance=29.186472331142966]: [87.0,42.0,26.0,23.0,17.0,4.0]1.0 : [distance=15.315222802477097]: [88.0,80.0,24.0,25.0,17.0,4.0]1.0 : [distance=26.39556750914889]: [86.0,67.0,11.0,15.0,8.0,4.0]1.0 : [distance=31.053935324894265]: [92.0,40.0,19.0,20.0,21.0,4.0]1.0 : [distance=19.508850944527477]: [85.0,60.0,17.0,21.0,14.0,4.0]1.0 : [distance=24.74207809733212]: [89.0,90.0,15.0,17.0,25.0,4.0]1.0 : [distance=21.451583358215817]: [91.0,57.0,15.0,16.0,16.0,4.0]1.0 : [distance=34.222462864647746]: [96.0,55.0,48.0,39.0,42.0,4.0]1.0 : [distance=35.51194916010166]: [79.0,101.0,17.0,27.0,23.0,4.0]1.0 : [distance=67.3886918410767]: [90.0,134.0,14.0,20.0,14.0,4.0]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 139: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

121

1.0 : [distance=14.995440608131462]: [89.0,76.0,14.0,21.0,24.0,4.0]1.0 : [distance=24.65183385135087]: [88.0,93.0,29.0,27.0,31.0,4.0]1.0 : [distance=21.401098800801687]: [90.0,67.0,10.0,16.0,16.0,4.0]1.0 : [distance=21.661700120348225]: [92.0,73.0,24.0,21.0,48.0,4.0]1.0 : [distance=57.00871826296609]: [91.0,55.0,28.0,28.0,82.0,4.0]1.0 : [distance=29.960766892012085]: [83.0,45.0,19.0,21.0,13.0,4.0]1.0 : [distance=13.75226079379277]: [90.0,74.0,19.0,14.0,22.0,4.0]1.0 : [distance=11.590106095003355]: [92.0,66.0,21.0,16.0,33.0,5.0]1.0 : [distance=12.56111219938695]: [93.0,63.0,26.0,18.0,18.0,5.0]1.0 : [distance=22.313654715093467]: [87.0,59.0,15.0,19.0,12.0,5.0]1.0 : [distance=31.225678176688014]: [86.0,44.0,21.0,11.0,15.0,5.0]1.0 : [distance=13.19005754790196]: [87.0,64.0,16.0,20.0,24.0,5.0]1.0 : [distance=14.703291075257832]: [92.0,57.0,21.0,23.0,22.0,5.0]1.0 : [distance=23.638283943428792]: [99.0,59.0,17.0,19.0,11.0,5.0]1.0 : [distance=21.704202112927184]: [92.0,80.0,10.0,26.0,20.0,6.0]1.0 : [distance=10.988429913921863]: [95.0,60.0,26.0,22.0,28.0,6.0]1.0 : [distance=14.362732178569068]: [91.0,63.0,25.0,26.0,15.0,6.0]1.0 : [distance=15.858045847990281]: [92.0,62.0,37.0,21.0,36.0,6.0]1.0 : [distance=28.596822755539417]: [95.0,50.0,13.0,14.0,15.0,6.0]1.0 : [distance=26.442696159969515]: [90.0,76.0,37.0,19.0,50.0,6.0]1.0 : [distance=44.718442012501555]: [96.0,70.0,70.0,26.0,36.0,6.0]1.0 : [distance=12.674165884272467]: [92.0,62.0,20.0,23.0,20.0,6.0]1.0 : [distance=14.362732178569068]: [91.0,63.0,25.0,26.0,15.0,6.0]1.0 : [distance=16.61168884708161]: [92.0,82.0,27.0,24.0,37.0,6.0]1.0 : [distance=17.6844297625188]: [90.0,63.0,12.0,26.0,21.0,6.0]1.0 : [distance=39.387473172997126]: [88.0,37.0,9.0,15.0,16.0,6.0]1.0 : [distance=50.93004785958586]: [100.0,60.0,29.0,23.0,76.0,6.0]1.0 : [distance=50.85215502222638]: [98.0,43.0,35.0,23.0,69.0,6.0]1.0 : [distance=39.130924498456345]: [92.0,87.0,57.0,25.0,44.0,6.0]1.0 : [distance=39.38647752187306]: [93.0,99.0,36.0,34.0,48.0,6.0]1.0 : [distance=13.865147817434858]: [90.0,72.0,17.0,19.0,19.0,6.0]1.0 : [distance=48.39280152080478]: [97.0,93.0,21.0,20.0,68.0,6.0]1.0 : [distance=23.87331427466314]: [93.0,50.0,18.0,25.0,17.0,6.0]1.0 : [distance=15.773535288659467]: [90.0,57.0,20.0,26.0,33.0,6.0]1.0 : [distance=17.218715226888165]: [92.0,76.0,31.0,28.0,41.0,6.0]1.0 : [distance=21.91159832127226]: [88.0,55.0,19.0,17.0,14.0,6.0]1.0 : [distance=9.841248250937168]: [89.0,63.0,24.0,29.0,29.0,6.0]1.0 : [distance=54.93636101807085]: [93.0,84.0,58.0,47.0,62.0,7.0]1.0 : [distance=26.531529593323622]: [97.0,71.0,29.0,22.0,52.0,8.0]1.0 : [distance=31.633840113700778]: [84.0,99.0,33.0,19.0,26.0,8.0]1.0 : [distance=55.107564192122105]: [96.0,44.0,42.0,23.0,73.0,8.0]1.0 : [distance=11.789292686100037]: [90.0,62.0,22.0,21.0,21.0,8.0]1.0 : [distance=34.61025534404088]: [92.0,94.0,18.0,17.0,6.0,8.0]1.0 : [distance=26.531529593323622]: [97.0,71.0,29.0,22.0,52.0,8.0]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 140: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

122

1.0 : [distance=39.356015026556726]: [91.0,69.0,25.0,25.0,66.0,8.0]1.0 : [distance=20.304234332829566]: [93.0,59.0,17.0,20.0,14.0,8.0]1.0 : [distance=32.66547372490594]: [90.0,50.0,26.0,22.0,53.0,8.0]1.0 : [distance=52.72081329100189]: [91.0,62.0,59.0,47.0,60.0,8.0]1.0 : [distance=62.91586225024752]: [92.0,77.0,86.0,41.0,31.0,10.0]1.0 : [distance=9.925235405546932]: [86.0,66.0,22.0,24.0,26.0,10.0]1.0 : [distance=50.1258596048337]: [98.0,57.0,31.0,34.0,73.0,10.0]1.0 : [distance=56.55173324620247]: [95.0,80.0,50.0,64.0,55.0,10.0]1.0 : [distance=34.32334478459133]: [97.0,92.0,22.0,28.0,49.0,12.0]1.0 : [distance=15.149597283608882]: [87.0,75.0,25.0,21.0,14.0]1.0 : [distance=21.29378619539665]: [88.0,56.0,23.0,18.0,12.0]1.0 : [distance=32.4252862245566]: [84.0,97.0,41.0,20.0,32.0]1.0 : [distance=25.529884522611518]: [94.0,91.0,27.0,20.0,15.0,0.5]1.0 : [distance=28.091421197838162]: [97.0,62.0,17.0,13.0,5.0,0.5]1.0 : [distance=22.333271227876114]: [92.0,85.0,25.0,20.0,12.0,0.5]1.0 : [distance=28.445289256080056]: [82.0,48.0,27.0,15.0,12.0,0.5]1.0 : [distance=14.184262560721159]: [88.0,74.0,31.0,25.0,15.0,0.5]1.0 : [distance=14.788835121832891]: [95.0,77.0,30.0,14.0,21.0,0.5]1.0 : [distance=31.826898597351846]: [88.0,94.0,26.0,18.0,8.0,0.5]1.0 : [distance=10.509123198656479]: [91.0,70.0,19.0,19.0,22.0,0.5]1.0 : [distance=23.993132946209382]: [83.0,54.0,27.0,15.0,12.0,0.5]1.0 : [distance=48.06243050408602]: [91.0,105.0,40.0,26.0,56.0,0.5]1.0 : [distance=20.468463798581112]: [86.0,79.0,37.0,28.0,14.0,0.5]1.0 : [distance=18.107084442445412]: [89.0,82.0,23.0,14.0,35.0,0.5]1.0 : [distance=16.946971420852297]: [90.0,73.0,24.0,23.0,11.0,0.5]1.0 : [distance=21.30675052927981]: [90.0,87.0,19.0,25.0,19.0,0.5]1.0 : [distance=19.364845105502347]: [89.0,82.0,33.0,32.0,18.0,0.5]1.0 : [distance=27.770014341882074]: [85.0,79.0,17.0,8.0,9.0,0.5]1.0 : [distance=51.2978344006391]: [85.0,119.0,30.0,26.0,17.0,0.5]1.0 : [distance=14.045811036015298]: [78.0,69.0,24.0,18.0,31.0,0.5]1.0 : [distance=38.65056929730594]: [88.0,107.0,34.0,21.0,27.0,0.5]1.0 : [distance=51.1876322615956]: [89.0,115.0,17.0,27.0,7.0,0.5]1.0 : [distance=17.873114064209837]: [92.0,67.0,23.0,15.0,12.0,0.5]1.0 : [distance=36.231154720286334]: [89.0,101.0,27.0,34.0,14.0,0.5]1.0 : [distance=29.76976748356394]: [91.0,84.0,11.0,12.0,10.0,0.5]1.0 : [distance=43.774195966300105]: [94.0,101.0,41.0,20.0,53.0,0.5]1.0 : [distance=25.2439827259606]: [88.0,46.0,29.0,22.0,18.0,0.5]1.0 : [distance=55.902434591709564]: [88.0,122.0,35.0,29.0,42.0,0.5]1.0 : [distance=21.55121208424175]: [84.0,88.0,28.0,25.0,35.0,0.5]1.0 : [distance=15.872567606744951]: [90.0,79.0,18.0,15.0,24.0,0.5]1.0 : [distance=17.511634894522487]: [87.0,69.0,22.0,26.0,11.0,0.5]1.0 : [distance=30.1396071436003]: [65.0,63.0,19.0,20.0,14.0,0.5]1.0 : [distance=21.419338823439602]: [90.0,64.0,12.0,17.0,14.0,0.5]1.0 : [distance=18.93704319700076]: [85.0,58.0,18.0,24.0,16.0,0.5]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 141: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

123

1.0 : [distance=21.163783279275115]: [88.0,81.0,41.0,27.0,36.0,0.5]1.0 : [distance=44.63714092707]: [86.0,78.0,52.0,29.0,62.0,0.5]1.0 : [distance=26.13634130996944]: [82.0,74.0,38.0,28.0,48.0,0.5]1.0 : [distance=35.63665363315206]: [86.0,58.0,36.0,27.0,59.0,0.5]1.0 : [distance=15.226090347403545]: [94.0,56.0,30.0,18.0,27.0,0.5]1.0 : [distance=15.85505745417324]: [87.0,57.0,30.0,30.0,22.0,0.5]1.0 : [distance=15.084636076748568]: [94.0,75.0,20.0,25.0,38.0,0.5]1.0 : [distance=45.74235716523579]: [83.0,68.0,17.0,20.0,71.0,0.5]1.0 : [distance=15.262962041289008]: [93.0,56.0,25.0,21.0,33.0,0.5]1.0 : [distance=15.923135544481948]: [101.0,65.0,18.0,21.0,22.0,0.5]1.0 : [distance=7.485749237476372]: [92.0,65.0,25.0,20.0,31.0,0.5]1.0 : [distance=23.368960975430955]: [92.0,58.0,14.0,16.0,13.0,0.5]1.0 : [distance=16.789659043491646]: [86.0,58.0,16.0,23.0,23.0,0.5]1.0 : [distance=18.61118778926855]: [85.0,62.0,15.0,13.0,22.0,0.5]1.0 : [distance=23.846400582296386]: [86.0,57.0,13.0,20.0,13.0,0.5]1.0 : [distance=22.431387843836678]: [86.0,54.0,26.0,30.0,13.0,0.5]1.0 : [distance=31.37216779622678]: [81.0,41.0,33.0,27.0,34.0,1.0]1.0 : [distance=15.64841982289472]: [91.0,67.0,32.0,26.0,13.0,1.0]1.0 : [distance=18.47884775074992]: [91.0,80.0,21.0,19.0,14.0,1.0]1.0 : [distance=15.336226404796731]: [92.0,60.0,23.0,15.0,19.0,1.0]1.0 : [distance=23.65279565505886]: [91.0,60.0,32.0,14.0,8.0,1.0]1.0 : [distance=18.021877694438594]: [93.0,65.0,28.0,22.0,10.0,1.0]1.0 : [distance=25.808314966013157]: [87.0,92.0,21.0,22.0,37.0,1.0]1.0 : [distance=16.141444965304316]: [95.0,62.0,24.0,23.0,14.0,1.0]1.0 : [distance=28.43609686727539]: [93.0,59.0,41.0,30.0,48.0,1.0]1.0 : [distance=25.791151592550225]: [84.0,82.0,43.0,32.0,38.0,2.0]1.0 : [distance=9.238692283566333]: [87.0,71.0,33.0,20.0,22.0,2.0]1.0 : [distance=28.36677099263031]: [86.0,44.0,24.0,15.0,18.0,2.0]1.0 : [distance=8.16539628850507]: [86.0,66.0,28.0,24.0,21.0,2.0]1.0 : [distance=16.854447168590042]: [88.0,58.0,31.0,17.0,17.0,2.0]1.0 : [distance=11.09968955930941]: [90.0,61.0,28.0,29.0,31.0,2.0]1.0 : [distance=56.88482088286064]: [88.0,69.0,70.0,24.0,64.0,2.0]1.0 : [distance=20.9847556825935]: [93.0,87.0,18.0,17.0,26.0,2.0]1.0 : [distance=15.308606569849136]: [98.0,58.0,33.0,21.0,28.0,2.0]1.0 : [distance=27.49653282621954]: [91.0,44.0,18.0,18.0,23.0,2.0]1.0 : [distance=44.79087759975438]: [87.0,75.0,37.0,19.0,70.0,2.0]1.0 : [distance=22.726431528341394]: [94.0,91.0,30.0,26.0,25.0,2.0]1.0 : [distance=27.77960360204761]: [88.0,85.0,14.0,15.0,10.0,2.0]1.0 : [distance=39.88071065276106]: [89.0,109.0,26.0,25.0,27.0,2.0]1.0 : [distance=16.829804633426825]: [87.0,59.0,37.0,27.0,34.0,2.0]1.0 : [distance=16.27401705753237]: [93.0,58.0,20.0,23.0,18.0,2.0]1.0 : [distance=25.613782489337275]: [88.0,57.0,9.0,15.0,16.0,2.0]1.0 : [distance=16.654029635024852]: [94.0,65.0,38.0,27.0,17.0,3.0]1.0 : [distance=21.965893879693493]: [91.0,71.0,12.0,22.0,11.0,3.0]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 142: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

124

1.0 : [distance=19.469361815157537]: [90.0,55.0,20.0,20.0,16.0,3.0]1.0 : [distance=9.887463367439343]: [91.0,64.0,21.0,17.0,26.0,3.0]1.0 : [distance=24.683297993102727]: [88.0,47.0,35.0,26.0,33.0,3.0]1.0 : [distance=67.5462840867945]: [85.0,58.0,83.0,49.0,51.0,3.0]1.0 : [distance=17.33089642973334]: [91.0,54.0,25.0,22.0,35.0,4.0]1.0 : [distance=33.34686740654036]: [98.0,50.0,27.0,25.0,53.0,4.0]1.0 : [distance=8.821051606826568]: [86.0,62.0,29.0,21.0,26.0,4.0]1.0 : [distance=25.49062054489896]: [89.0,48.0,32.0,22.0,14.0,4.0]1.0 : [distance=20.949374953144122]: [82.0,68.0,20.0,22.0,9.0,4.0]1.0 : [distance=13.327468212929233]: [83.0,70.0,17.0,19.0,23.0,4.0]1.0 : [distance=10.870321643206944]: [96.0,70.0,21.0,26.0,21.0,4.0]1.0 : [distance=80.85992388890537]: [94.0,117.0,77.0,56.0,52.0,4.0]1.0 : [distance=31.014341566811417]: [93.0,45.0,11.0,14.0,21.0,4.0]1.0 : [distance=20.635979046046206]: [93.0,49.0,27.0,21.0,29.0,4.0]1.0 : [distance=25.38489020651263]: [84.0,73.0,46.0,32.0,39.0,4.0]1.0 : [distance=23.023301009168875]: [91.0,63.0,17.0,17.0,46.0,4.0]1.0 : [distance=17.028441331942034]: [90.0,57.0,31.0,18.0,37.0,4.0]1.0 : [distance=29.608234543070804]: [87.0,45.0,19.0,13.0,16.0,4.0]1.0 : [distance=15.516821058581186]: [91.0,68.0,14.0,20.0,19.0,4.0]1.0 : [distance=46.06361582729123]: [91.0,86.0,52.0,47.0,52.0,4.0]1.0 : [distance=39.57553178614511]: [88.0,46.0,15.0,33.0,55.0,4.0]1.0 : [distance=19.823415805440682]: [85.0,52.0,22.0,23.0,34.0,4.0]1.0 : [distance=29.07507473865104]: [89.0,72.0,33.0,27.0,55.0,4.0]1.0 : [distance=15.28831318614806]: [95.0,59.0,23.0,18.0,19.0,4.0]1.0 : [distance=19.125928671014414]: [96.0,56.0,38.0,26.0,23.0,5.0]1.0 : [distance=29.048255498888935]: [90.0,52.0,10.0,17.0,12.0,5.0]1.0 : [distance=30.438900074161815]: [94.0,45.0,20.0,16.0,12.0,5.0]1.0 : [distance=38.40467152037045]: [99.0,42.0,14.0,21.0,49.0,5.0]1.0 : [distance=39.923748855689]: [93.0,102.0,47.0,23.0,37.0,5.0]1.0 : [distance=7.180481701346524]: [94.0,71.0,25.0,26.0,31.0,5.0]1.0 : [distance=22.437287413655437]: [87.0,54.0,41.0,29.0,23.0,6.0]1.0 : [distance=20.153183885712497]: [92.0,67.0,15.0,14.0,14.0,6.0]1.0 : [distance=33.68879835281803]: [98.0,101.0,31.0,26.0,32.0,6.0]1.0 : [distance=41.56631645778338]: [93.0,43.0,11.0,16.0,54.0,6.0]1.0 : [distance=10.74757171902221]: [93.0,68.0,24.0,18.0,19.0,6.0]1.0 : [distance=37.71098170285124]: [95.0,36.0,38.0,19.0,15.0,6.0]1.0 : [distance=21.704202112927184]: [92.0,80.0,10.0,26.0,20.0,6.0]1.0 : [distance=18.061817519394175]: [96.0,74.0,27.0,25.0,43.0,6.0]1.0 : [distance=32.37132148551056]: [95.0,93.0,21.0,27.0,47.0,6.0]1.0 : [distance=41.53918345258864]: [86.0,109.0,16.0,22.0,28.0,6.0]1.0 : [distance=26.621846595534628]: [91.0,46.0,30.0,24.0,39.0,7.0]1.0 : [distance=28.67710429815777]: [85.0,50.0,12.0,18.0,14.0,7.0]1.0 : [distance=20.947034914558515]: [91.0,57.0,33.0,23.0,12.0,8.0]1.0 : [distance=53.22090328265331]: [91.0,52.0,76.0,32.0,24.0,8.0]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 143: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

125

1.0 : [distance=22.078303248350256]: [93.0,70.0,46.0,30.0,33.0,8.0]1.0 : [distance=18.38105652654369]: [87.0,55.0,36.0,19.0,25.0,8.0]1.0 : [distance=54.767844889161424]: [98.0,123.0,28.0,24.0,31.0,8.0]1.0 : [distance=25.565764942031656]: [82.0,55.0,18.0,23.0,44.0,8.0]1.0 : [distance=31.098102791037594]: [97.0,80.0,17.0,20.0,53.0,8.0]1.0 : [distance=17.886730681061728]: [100.0,83.0,25.0,24.0,28.0,8.0]1.0 : [distance=74.51464196037561]: [91.0,138.0,45.0,21.0,48.0,10.0]1.0 : [distance=32.40895498492662]: [92.0,41.0,37.0,22.0,37.0,10.0]1.0 : [distance=54.98330558111946]: [86.0,123.0,20.0,25.0,23.0,10.0]1.0 : [distance=30.056817174142658]: [91.0,93.0,35.0,34.0,37.0,10.0]1.0 : [distance=27.74216907371065]: [87.0,87.0,15.0,23.0,11.0,10.0]1.0 : [distance=45.27837467145001]: [87.0,56.0,52.0,43.0,55.0,10.0]1.0 : [distance=19.745782303331573]: [99.0,75.0,26.0,24.0,41.0,12.0]1.0 : [distance=18.655822405357323]: [91.0,68.0,27.0,26.0,14.0,16.0]1.0 : [distance=63.84335791719533]: [98.0,99.0,57.0,45.0,65.0,20.0]

{"r":[4.68,15.11,34.875,15.439,50.335,4.44],"c":[91.684,75.474,59.553,39.053,129.0,5.961],"n":38,"identifier":"VL­49"}

Weight : [props ­ optional]:  Point:1.0 : [distance=36.43562655247567]: [84.0,80.0,47.0,33.0,97.0,0.5]1.0 : [distance=110.45135694364518]: [91.0,72.0,155.0,68.0,82.0,0.5]1.0 : [distance=43.8325418425252]: [92.0,57.0,64.0,36.0,90.0,0.5]1.0 : [distance=37.06469646950741]: [87.0,90.0,43.0,28.0,156.0,2.0]1.0 : [distance=171.74936493610585]: [92.0,60.0,30.0,27.0,297.0,2.0]1.0 : [distance=51.021947167839215]: [89.0,89.0,23.0,18.0,104.0,3.0]1.0 : [distance=52.724728425423]: [90.0,96.0,34.0,49.0,169.0,4.0]1.0 : [distance=26.099549061599447]: [86.0,78.0,47.0,39.0,107.0,5.0]1.0 : [distance=65.97549096889881]: [97.0,44.0,113.0,45.0,150.0,5.0]1.0 : [distance=42.12234234200099]: [90.0,70.0,25.0,23.0,112.0,5.0]1.0 : [distance=55.045456222039945]: [95.0,62.0,64.0,42.0,76.0,6.0]1.0 : [distance=43.572711621620975]: [82.0,56.0,67.0,38.0,92.0,6.0]1.0 : [distance=68.70112339660594]: [91.0,74.0,87.0,50.0,67.0,6.0]1.0 : [distance=46.87752393943721]: [92.0,79.0,70.0,32.0,84.0,7.0]1.0 : [distance=20.203624952439153]: [92.0,93.0,58.0,35.0,120.0,7.0]1.0 : [distance=24.66197025803702]: [90.0,67.0,77.0,39.0,114.0,8.0]1.0 : [distance=78.44845534125803]: [92.0,95.0,85.0,48.0,200.0,8.0]1.0 : [distance=43.41509727900109]: [92.0,93.0,22.0,28.0,123.0,9.0]1.0 : [distance=48.98068511005547]: [92.0,108.0,53.0,33.0,94.0,12.0]1.0 : [distance=31.18454641169313]: [93.0,77.0,39.0,37.0,108.0,16.0]1.0 : [distance=76.997622233676]: [94.0,83.0,81.0,34.0,201.0,20.0]1.0 : [distance=37.16502512844258]: [91.0,96.0,35.0,22.0,135.0,0.5]1.0 : [distance=100.43420018341352]: [98.0,74.0,148.0,75.0,159.0,0.5]1.0 : [distance=50.570712744973406]: [90.0,63.0,45.0,24.0,85.0,1.0]1.0 : [distance=38.98416869175549]: [83.0,78.0,31.0,19.0,115.0,1.0]1.0 : [distance=57.60096068422073]: [82.0,72.0,31.0,20.0,84.0,3.0]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 144: IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN … · IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI Diajukan Untuk Memenuhi

126

1.0 : [distance=42.96757820739147]: [86.0,55.0,29.0,35.0,108.0,4.0]1.0 : [distance=109.05287051005114]: [94.0,43.0,154.0,82.0,121.0,4.0]1.0 : [distance=30.5567141068589]: [92.0,73.0,33.0,34.0,115.0,5.0]1.0 : [distance=44.54154935690461]: [92.0,53.0,51.0,33.0,92.0,6.0]1.0 : [distance=53.57289316689423]: [97.0,94.0,43.0,43.0,82.0,6.0]1.0 : [distance=75.17594896856357]: [99.0,86.0,58.0,42.0,203.0,6.0]1.0 : [distance=50.64013530120229]: [98.0,66.0,103.0,57.0,114.0,6.0]1.0 : [distance=88.29452589670602]: [102.0,82.0,34.0,78.0,203.0,7.0]1.0 : [distance=104.87688089102076]: [95.0,73.0,20.0,25.0,225.0,8.0]1.0 : [distance=17.375940357980312]: [88.0,91.0,56.0,35.0,126.0,9.0]1.0 : [distance=75.04351115507578]: [96.0,69.0,53.0,43.0,203.0,12.0]1.0 : [distance=41.96523797217092]: [98.0,77.0,55.0,35.0,89.0,15.0]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI