• Tidak ada hasil yang ditemukan

IMPLEMENTASI K MEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI

N/A
N/A
Protected

Academic year: 2021

Membagikan "IMPLEMENTASI K MEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SKRIPSI"

Copied!
144
0
0

Teks penuh

(1)

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

(2)

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

(3)

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

(4)

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

(5)

MOTTO

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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.

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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.

(20)

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.

(21)

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.

(22)

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:

(23)

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.

(24)

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

(25)

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

(26)

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− X 2)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.

(27)

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.

(28)

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

(29)

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

(30)

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

(31)

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

(32)

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.

(33)

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.

(34)

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

(35)

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. 

(36)

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

(37)

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

(38)

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

(39)

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.

(40)

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)

(41)

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   berupa Sequence File

­­clusters atau ­c Merupakan alamat input file centroid yang harus berupa sequence file

­­output atau ­o Merupakan   alamat   file  output  yang   harus   berupa Sequence File

­­distanceMeasure atau

­dm Algoritma pengukuran jarak.

­­convergenceDelta

atau ­cd Nilai   konvergen   merupakan   nilai   untuk   menetukanproses iterasi berhenti. Secara default, convergen delta bernilai 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 menghapus direktori  tersebut,  sebelum  menjalankan  perintah  atau Job.

­­help (­h) Menampilkan informasi help

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

(42)

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.

(43)

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.

(44)

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.

(45)

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

(46)

Tabel 3.2: Spesifikasi Komputer Cluster Jenis Node Processor Memory Hard Drive Network Master Node Intel®

Core(TM)   i3 CPU   530   @ 2.93GHz

4GB 500GB RTL8111/8168/8411

PCI   Express   Gigabit Ethernet Controller Slave1 Node Intel® Core(TM)   i3 CPU   530   @ 2.93GHz 4GB 500GB RTL8111/8168/8411

PCI   Express   Gigabit Ethernet Controller Slave2 Node Intel® Core(TM)   i3 CPU   530   @ 2.93GHz 4GB 500GB RTL8111/8168/8411

PCI   Express   Gigabit Ethernet Controller Slave3 Node Intel® Core(TM)   i3 CPU   530   @ 2.93GHz 4GB 500GB RTL8111/8168/8411

PCI   Express   Gigabit Ethernet 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

(47)

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

(48)

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,

(49)

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: Skema single node cluster

(50)

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.

(51)

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

(52)

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

(53)

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.

(54)

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

(55)

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.

(56)

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

(57)

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.

(58)

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

(59)

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. 

(60)

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.  

Gambar

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......................................5
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.2: Distribusi chunk data (Yahoo!, 2014).
Gambar 2.3 menjelaskan bahwa Yarn memegang peran yang sangat penting pada sistem Hadoop. Komponen utama dari Yarn ialah service ResourceManager dan NodeManager
+7

Referensi

Dokumen terkait