· web viewlatar belakang bill gates pernah membayangkan, internet akan menjadi sebuah pusat...
TRANSCRIPT
ANALISIS DATA AIRPLANE CRASHES DAN FATALITIES DI US
DENGAN TEXT ANALYSIS DAN CLUSTER ANALYSIS
Disusun Oleh :
1. Adelia Oldiena (13/346521/PA/15146)
2. Kartika Murti (13/348034/PA/15425)
3. Sabrina Ageng Prastiwi (13/350153/PA/15624)
4. Mayang Puspitasari (14/368696/PA/16305)
PROGRAM STUDI STATISTIKA
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS GADJAH MADA
YOGYAKARTA
2017
i
BAB I
PENDAHULUAN
2.1. Latar Belakang
Bill Gates pernah membayangkan, internet akan menjadi sebuah pusat keramaian di
tengah kota global masa depan. Di pusat keramaian ini, orang-orang dari seluruh penjuru
dunia akan berinteraksi, bersosialisasi, juga berbisnis. Persis seperti masyarakat tradisional
yang melakukan jual beli di pasar.
Apa yang diumpamakan Bill Gates sekarang bukan lagi angan-angan, melainkan
kenyataan. Internet telah menjadi ladang bisnis yang menjanjikan. Melalui internet, kita bisa
mencari uang hanya dengan duduk di depan komputer. Di “dunia lain” ini, kita juga bisa
mendirikan perusahaan tanpa harus mempunyai sebuah kantor. Internet menyediakan tempat
yang luas, bahkan nyaris tanpa batas.
Setidaknya ada tiga jenis peluang di internet yang dapat dimanfaatkan.
Pertama, jual produk sendiri. Peluang ini layaknya berdagang (barang atau jasa) dalam
pengertian tradisional, hanya tempatnya tidak di pasar, tetapi di dunia maya.
Kedua, menjadi publisher iklan. Peluang jenis kedua ini sangat identik dengan Google
Adsense. Dan yang ketiga, “menjual diri”. Intenet dapat dijadikan sebagai media untuk
memasarkan diri. Istilah kerennya adalah personal branding. Pendek kata, internet memberi
banyak peluang bagi kita untuk “mengeruk” uang.
Pada abad milenium ini, cara manusia berinteraksi telah berubah. Media ini (internet)
seperti gambaran Bill Gates, sudah menjadi “pusat keramaian kota”, tempat orang
berinteraksi dan berbisnis. Baru-baru ini, muncullah istilah Internet of Things yang
merupakan pengembangan dari adanya internet. Internet of Things merupakan benda yang
bisa bekerja asalkan ada internet tanpa campur tangan manusia.
2.2. Definisi
Internet of Things (IoT) adalah sebuah konsep yang bertujuan untuk memperluas
manfaat dari konektivitas internet yang tersambung secara terus-menerus, berikut
kemampuan remote control, berbagi data, dan sebagainya, termasuk pada benda-benda di
dunia fisik. Bahan pangan, elektronik, peralatan apa saja, koleksi, termasuk benda hidup,
yang semuanya tersambung ke jaringan lokal dan global melalui sensor tertanam dan selalu
“on”.
1
2
Pada hakekatnya, benda Internet atau Internet of Things mengacu pada benda yang
dapat di identifikasikan secara unik sebagai representasi virtual dalam struktur berbasis
internet. Istilah Internet of Things awalnya disarankan oleh Kevin Ashton pada tahun 1999
dan mulai popular melalui Auto-ID Center di MIT berikut publikasi analisa pasar yang
terkait.
Salah satu wujud dari Intenet of Things yang acap kali disebutkan, adalah sistem RFID
(radio-frequency identification) yang menjadi komponen dipersyaratkan. Andaikan semua
benda, makhluk maupun insan dalam kehidupan sehari-hari dapat diidentifikasi secara
elektronik, maka mereka bisa dikelola dan diinventarisasi oleh komputer. Kecuali RFID
(radio-frequency identification), sebagai tagging dapat juga digunakan teknologi seperti near
field communication, barcode, kode QR, dan watermarking digital. Dengan demikian
misalnya, bisnis mungkin tidak lagi kehabisan stok atau menghasilkan produk-produk
limbah, dimana pihak yang terlibat akan tahu lebih dini produk mana saja yang dibutuhkan
dan dikonsumsi. Disisi lain, kemungkinan atas penyalahgunaan terhadap informasi yang
terhimpun juga tidak boleh diremehkan.
2.3. Manfaat
Banyak manfaat yang didapatkan dari Internet of Things. Pekerjaan yang kita
lakukan menjadi cepat, mudah, dan efisien. Kita juga bisa mendeteksi pengguna
dimanapun ia berada. Sebagai contoh barcode yang tertera pada sebuah produk.
Dengan barcode tersebut, bisa dilihat produk mana yang paling banyak terjual dan
produk mana yang kurang diminati. Selain itu, dengan barcode kita juga bisa
memprediksi produk yang stoknya harus ditambah atau dikurangi. Dengan barcode
kita tak perlu susah-susah menghitung produk secara manual. Contoh lain saat kita
pergi ke Singapura. Jika kita ingin bepergian menggunakan transportasi umum seperti
MRT atau bis kita cukup menggunakan atau membeli EZ-link card. EZ-link card
biasanya dipakai oleh para wisatawan yang mengunjungi Singapura sebagai pengganti
uang untuk membayar jasa transportasi yang telah digunakan. Sedangkan warga
negara Singapura sendiri menggunakan KTP ataupun kartu pelajar sebagai alat
membayarnya. Cara ini lebih efisien dan cepat ketimbang kita menggunakan uang
tunai. Jika kita menggunakan uang tunai, kita masih harus mengantri untuk
membayar, belum lagi jika kita membayar dengan nilai nominal uang besar, kita harus
menunggu untuk mendapatkan uang kembalian kita.
3
2.4. Cara Kerja
Cara Kerja Internet of Things yaitu dengan memanfaatkan sebuah
argumentasi pemrograman, dimana tiap-tiap perintah argumennya itu menghasilkan
sebuah interaksi antara sesama mesin yang terhubung secara otomatis tanpa campur
tangan manusia dan dalam jarak berapapun. Internetlah yang menjadi penghubung di
antara kedua interaksi mesin tersebut, sementara manusia hanya bertugas sebagai
pengatur dan pengawas bekerjanya alat tersebut secara langsung. Kemudian
muncullah pertanyaan bagaimana IoT sensor bekerja di ruang publik. Misalnya
diambil contoh system parkir. Suatu kota memasang beberapa sensor di jalan-jalan
yang dapat difungsikan sebagai tempat parkir (penyedia sistem ini ialah Streetline)
yang dapat mendeteksi ada tidaknya mobil terparkir. Pengemudi dapat mencari
tempat parkir kosong melalui aplikasi dari perusahaan penyedia Streetline. Streetline
juga menambahkan fitur pendeteksi temperature permukaan dan tingkat suara untuk
membantu kota tersebut menentukan kapan mereka akan menggunakan sensor suara
untuk menertibkan pengguna jalan terhadap aturan suara.
Di ruangan terbuka suatu smartphone juga dapat difungsikan sebagai sensor.
Misalnya, disaat seseorang berkendara, sensor akselerometer pada smartphone akan
mencatat perubahan akselerasi yang terjadi. Akselerometer dapat menginformasikan
berbagai macam hal, terutama dalam pengukuran kecepatan. Untuk membuat
smartphone dapat menjadi perangkat pengamat kondisi jalanan, yang dibutuhkan
hanyalah satu aplikasi yang menggunakan sensor yang memang sebelumnya telah
ada, dalam suatu sistem yang lebih mudah untuk digunakan.
IoT membuka banyak kesempatan bagi pembuat aplikasi. Mari kita ambil
contoh dari sebuah smart refrigerator. Kita membeli bahan makanan secara online
yang kemudian diantarkan ke rumah kita. Hal ini menguntungkan penjual dan
pembuat produk makanan dengan memanfaatkan label RFID yang telah diberikan ke
setiap produk. Kulkas tersebut akan tahu apa saja bahan makanan yang ditaruh di
dalamnya dengan sistem sensor berat pada rak dan tanggal kadaluwarsa produk
tersebut. Hal ini tentu saja memudahkan kita untuk membuat daftar belanja,
mengotomatisasi pesanan, bahkan menyediakan informasi nutrisi. Sebagai contoh,
andaikan kita memutuskan untuk mengambil setangkup es krim dari dalam freezer.
Saat proses pengambilan terjadi, wireless speaker yang terkoneksi akan
mengumumkan: “Perhatikan pilihan anda. Sesuai dengan permintaan, inilah berat
4
badan dan BMI anda saat ini”. Data tersebut diperoleh dari timbangan berat badan di
kamar mandi kita. Timbangan tersebut tidak pernah didesain untuk berkomunikasi
dengan kulkas, namun pembuat aplikasi membuat koneksi tersebut dengan
menghubungkan data antara timbangan dan kulkas. Hubungan tersebut mungkin
terasa aneh untuk dibayangkan, namun poin dari gambaran tersebut: di dalam IoT,
pembuat aplikasi saat ini memiliki kemampuan untuk menghubungkan benda-benda
yang tampaknya berbeda sehingga membentuk suatu fungsi baru.
Setelah cara kerja di ruang publik, muncul pertanyaan kembali bagaimana IoT
dapat berkomunikasi. Sebuah perangkat IoT memiliki sebuah radio yang dapat
mengirim dan menerima koneksi wireless. Protokol wireless IoT didesain untuk
memenuhi beberapa servis dasar: beroperasi dengan daya dan bandwidth yang rendah,
dan bekerja dalam jaringan mesh. Beberapa perangkat bekerja pada frekuensi bidang
2.4 GHz, yang juga digunakan oleh Wi-Fi dan Bluetooth, dan cakupan sub-GHz.
Frekuensi sub-GHz tersebut termasuk 868 dan 915 MHz, memiliki keuntungan dalam
rendahnya interferensi.
Perangkat-perangkat IoT terhubung dalam sebuah jaringan mesh satu sama lain
dan mengirimkan sinyal seperti pelari dalam lari estafet. Jaringan ini berebalikan
dengan jaringan tersentralisasi. Cakupan transmisi dari perangkat IoT dalam jaringan
mesh ialah ±9 meter hingga lebih dari 90 meter. Karena perangkat dalam jaringan
mesh mampu untuk “mentransfer” sinyal, tentu mereka dapat terhubung dengan
ribuan sensor dalam suatu area yang luas, seperti sebuah kota, dan beroperasi dengan
selaras. Jaringan mesh memiliki kemampuan tambahan untuk bekerja di sekitar area
perangkat yang gagal (tidak terkoneksi).
Protokol jaringan mesh IoT antara lain Z-Wave Alliance, Zigbee Alliance, dan
Insteon, yang juga bekerja sama dengan vendor. Protokol-protokol tersebut tidak
memiliki interoperabilitas, yang berarti mereka tidak mampu untuk bekerja sama
antar beberapa macam sistem, meskipun dapat juga dihubungkan melalui hubs.
Zigbee merupakan protokol terbuka (open protocol), namun banyak kritik yang
menyatakan tidak semua pengimplementasiannya harus sama. ZigBee menyediakan
sertifikasi untuk memastikan standar pengaplikasian. Insteon dan Z-Wave merupakan
protokol berpaten, sehingga standarisasi implementasinya lebih terjamin. Untuk
meningkatkan skalabilitas akses komunikasi IoT, setelah bekerja keras sejak tahun
2007, akhirnya kita memiliki 6LoWPAN sebagai standar integrasi IP pada jaringan
IoT berdaya rendah.
5
2.5. Deskripsi Data dan Alasan Data dianggap sebagai Big Data
Salah satu aplikasi big data dan Internet of Things yang akan digunakan dalam studi
kasus ini adalah data tentang Airplane Crashes and Fatalities Since 1908 di US yang diambil
dari situs website kaggle.com. Data ini merupakan data kecelakaan pesawat beserta data
kematiannya sejak tahun 1908. Untuk semua catatan kecelakaan pesawat diseluruh dunia dari
tahun 1908 sampai sekarang tersedia di https://opendata.socrata.com/Government/Airplane-
Crashes-and-Fatalities-Since-1908/q2te-8cvq. Data ini mencakup waktu kejadian kecelakaan
yang meliputi tanggal dan jam kecelakaan pesawat, lokasi kecelakaan, operator yang saat itu
menangani penerbangan tersebut, nomor penerbangan, rute penerbangan, tipe penerbangan,
nomor pendaftaran, waktu cn/ln, waktu kedatangan, jumlah kematian, waktu jatuh dan
ringkasan kecelakaan pesawat yang terjadi yang menceritakan detail kecelakaan tersebut.
Dari data tersebut banyak informasi yang diperoleh seperti jumlah kecelakaan per tahun,
jumlah kematian per tahun selama kecelakaan, jumlah korban selamat dalam kecelakaan dan
masih banyak lagi. Selain itu juga dapat diketahui penyebab terjadi kecelakaan.
Secara umum big data adalah data yang melebihi kapasitas proses basis data
konvensional. Banyak yang telah mencoba memberikan definisi terhadap big data. Menurut
Gartner, big data is high volume, high velocity and high variety information assets,
innovative forms of information processing for enhanced inside and decision making.
Teknologi yang berkembang di dunia big data ada untuk memecahkan suatu masalah atau
mempermudah penyelesaian suatu masalah. Dari berbagai literatur, terdapat 3 masalah utama
yang ada dalam big data, yaitu 3V of Data atau volume, velocity, variety. Salah satu
permasalahan yang big data coba pecahkan adalah meledaknya volume data yang suatu
organisasi ingin simpan atau proses. Dari kasus Airplane Crashes and Fatalities Since 1908
di US sampai 2009 dapat kita lihat betapa banyak data kecelakaan yang terjadi. Meskipun
tidak sebanyak tweet yang masuk dalam twitter namun jika volume data membuat data
tersebut tidak ekonomis lagi untuk disimpan di solusi penyimpanan data tradisional maka itu
sudah merupakan masalah big data.
Masalah kedua big data adalah velocity atau kecepatan data dibuat. Permasalahan ini
berkaitan erat dengan volume data, karena kecepatan data dibuat umumnya 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. Dalam kasus ini mungkin data tidak terjadi
secara real time, namun dalam kurun waktu 1908 – 2009 sudah terjadi beribu ribu kecelakaan
6
pesawatdi US. Ini menunjukkan bahwa kecelakaan pesawat terjadi dalam waktu yang relatif
cepat.
Masalah yang ketiga adalah variety. Variety adalah permasalahan yang terjadi karena
keberagaman data, baik itu dari format file data yang masuk, maupun format / struktur dari isi
data tersebut. Untuk 1 data yang sama saja, bisa berbagai macam variasi format atau struktur
data. Ada yang berupa file XML, CSV, TSV dan bahkan ada yang dikompresi dalam format
Gzip, Zip dan Tar. Dalam kasus ini data yang didapatkan berupa zip yang di dalamnya
terdapat file dengan format CSV. Data ini tidak dapat langsung dianalisis, namun digunakan
suatu tools yang tersedia untuk mengekstrak sisi data kemudian baru dianalisis. Dengan
demikian dapat dikatakan bahwa data Airplane Crashes and Fatalities Since 1908 di US
sampai 2009 merupkan suatu permasalahan big data.
BAB II
ANALISIS BIG DATA
2.1. Tujuan Analisis Data
1. Mempelajari dan memahami aplikasi data dari Internet of Things
2. Melakukan text analysis dan cluster analysis pada data Airplane Crashes and Fatalities
Since 1908 di US
2.2. Metode
Metode yang digunakan dalam penelitian ini adalah studi literatur dan studi kasus.
Metode studi literatur adalah metode penelitian dengan mempelajari referensi-referensi yang
berkaitan dengan Internet of Things yang diperoleh dari beberapa media, seperti internet,
artikel resmi yang diperoleh dari situs-situs internet, serta bahan-bahan pendukung lainnya
yang mendukung dalam penelitian ini. Sedangkan metode studi kasus adalah metode
penelitian dengan melakukan analisis data Airplane Crashes and Fatalities Since 1908 di US
yang diperoleh melalui pengunduhan data dari situs website kaggle.com. Selain itu,
penyusunan penelitian ini juga didukung oleh software R versi 3.3.2. untuk melakukan text
analysis dan cluster analysis.
2.3. Hasil
2.3.1.Text Analysis
Dalam analisis ini akan digunakan tiga package, yaitu package “ggplot2”,
package “scales”, dan package “gridExtra”. Berikut penjelasan singkat tentang ketiga
package tersebut :
1. Ggplot2 adalah sistem perencanaan untuk R, berdasarkan tata bahasa grafis, yang
mencoba mengambil bagian yang bagus dari grafik dasar. Ini menangani banyak
rincian yang membuat perencanaan yang rumit (seperti menggambar legend) serta
meyediakan model grafis yang hebat yang membuatnya mudah menghasilkan grafis
multi-layer yang kompleks.
2. Scales. Salah satu bagian tersulit dari package grafis apapun adalah penskalaan,
konversi dari nilai data ke sifat persepsi. Kebalikan dari penskalaan, membuat panduan
(legend dan sumbu) yang dapat digunakan untuk membaca grafik, seringkali lebih sulit
lagi. Gagasan tentang package scales adalah menerapkan skala dengan cara yaitu
7
8
sistem grafik agnostik, sehingga setiap orang bisa mendapatkan keuntungan dengan
mengumpulkan pengetahuan dan sumber daya tentang topik yang rumit ini.
3. Pada package gridExtra menyediakan sejumlah fungsi untuk bekerja dengan grafis
grid, terutama untuk mengatur beberapa plot berbasis grid pada halaman, dan
menggambar tabel.
Output :
Interpretasi :
1. Pada output “Planes crashed per year”
Output tersebut menunjukkan dimana sumbu x adalah tahun dan sumbu y
adalah crashes yang menunjukkan jumlah kecelakaan pesawat. Data yang diperoleh
adalah dari tahun 1908 hingga tahun 2009. Dari output terlihat bahwa jumlah
kecelakaan pesawat paling banyak terjadi pada sekitar tahun 1960-1980, sedangkan
jumlah kecelakaan pesawat paling sedikit terjadi pada sebelum tahun 1920.
2. Pada output “People abord per year”
Output tersebut menunjukkan dimana sumbu x adalah tahun dan sumbu y
adalah aboard yang menunjukkan jumlah kejadian pesawat yang berangkat. Data
yang diperoleh adalah dari tahun 1908 hingga tahun 2009. Dari output terlihat bahwa
jumlah kejadian pesawat yang berangkat paling banyak terjadi pada sekitar 1980,
sedangkan jumlah kejadian pesawat yang berangkat paling sedikit terjadi pada
sebelum tahun 1920.
3. Pada output “Dead per year”
Output tersebut menunjukkan dimana sumbu x adalah tahun dan sumbu y
adalah fatalities yang menunjukkan jumlah kematian orang dalam kecelakaan. Data
9
yang diperoleh adalah dari tahun 1908 hingga tahun 2009. Dari output terlihat bahwa
jumlah kematian orang dalam kecelakaan tertinggi terjadi pada sekitar 1980,
sedangkan jumlah kematian orang dalam kecelakaan terendah terjadi pada sebelum
tahun 1920.
4. Pada output “People survived per year”
Data yang diperoleh adalah dari tahun 1908 hingga tahun 2009. Dari output
terlihat bahwa jumlah korban selamat dalam kecelakaan paling banyak terjadi pada
sekitar 2000, sedangkan jumlah korban selamat dalam kecelakaan paling sedikit
terjadi pada sebelum tahun 1940.
2.3.2.Cluster Analysis
Dalam analisis ini akan digunakan dua package yaitu package “caret”
Classification and Regression Training) dan package “tm” (Text Mining). Package
“caret” merupakan package yang berisi seperangkat fungsi di aplikasi R yang
berfungsi untuk menyederhanakan proses pembuatan model prediktif. Package ini
juga mempunyai beberapa tools untuk :
1. data splitting,
2. pre-processing,
3. feature selection,
4. model tuning menggunakan resampling,
5. mengestimasi variabel yang berpengaruh
6. serta fungsional lainnya.
Output :
Interpretasi :
Dengan menggunakan syntax “print('100 most frequent terms:')” ingin
dimunculkan kalimat “100 most frequent terms:”. Lalu syntax selanjutnya berfungsi
untuk memanggil istilah apa saja yang sering muncul pada dataset ini. Istilah yang
sering muncul pada data set ini adalah accident, aircraft, airport, altititude, approach,
attemping, cargo, conditions, control, crashed, crew, due, engine, failed, failure, feet,
fire, flight, flying, fog, ground, killed, land, landing, left, loss, lost, low, miles,
10
mountain, pilot, plane, poor, route, runaway, short, shortly, struck, takeoff, taking dan
weather.
Output :
Interpretasi :
Dengan menggunakan syntax “print('Clusters:')” ingin ditampilkan kata
“Cluster”. Kemudian dengan menggunakan syntax “table(cl$cluster)” ingin
ditampilkan jumlah masing masing cluster yang telah terbentuk.
Dari output diatas maka diketahui bahwa terdapat 1806 data yang termasuk
pada cluster 1, 405 data yang termasuk pada cluster 2, 379 data yang termasuk pada
cluster 3, 141 data yang termasuk pada cluster 4, 1290 data yang termasuk pada
cluster 5, 452 data yang termasuk pada cluster ,. dan 302 data yang termasuk pada
cluster 7.
Output :
Interpretasi :
Dengan menggunakan syntax “plot(prcomp(m_norm)$x, col=cl$cl)” ingin
dimunculkan plot yang berisi pembagian cluster yang ada. Terlihat pada plot diatas
bahwa terdapat 7 warna yang berarti terdapat 7 cluster yang terbentuk dari data set
yang ada.
Output :
11
Interpretasi :
Dengan menggunakan syntax “print('50 most frequnt terms in cluster 1:)” ingin
dimunculkan kalimat “'50 most frequnt terms in cluster 1:”. Lalu syntax selanjutnya
berfungsi untuk memanggil istilah apa saja yang sering muncul pada dataset ini.
Istilah yang sering muncul pada cluster ini adalah accident, aircraft, airport, altitude,
approach, attempting, conditions, crashed, crew, due, failed, failure, feet, fire, flight,
flying, fog, ground, killed, land, landing, left, lost, low, miles, mountain, pilot, plane,
poor, route, runaway, shortly, struck, takeoff, taking dan weather.
Output :
Interpretasi :
Dengan menggunakan syntax “print('50 most frequnt terms in cluster 2:')” ingin
dimunculkan kalimat “'50 most frequnt terms in cluster 2:'”. Lalu syntax selanjutnya
berfungsi untuk memanggil istilah apa saja yang sering muncul pada dataset ini.
Istilah yang sering muncul pada cluster ini adalah aircraft, approach, attemping,
crashed, crew failure, flight, flying, fog, land, landing, pilot, plane, runaway, short
dan struck.
Output :
Interpretasi :
Dengan menggunakan syntax “'50 most frequnt terms in cluster 3:'” ingin
dimunculkan kalimat “'50 most frequnt terms in cluster 3:'”. Lalu syntax selanjutnya
berfungsi untuk memanggil istilah apa saja yang sering muncul pada dataset ini.
Istilah yang sering muncul pada cluster ini adalah accident, aircraft, airport, altitude,
cargo, control, crashed, crew, due, engine, failure, flight, landing, left, loss, lost,
pilot, plane, poor, takeoff dan taking.
Output :
12
Interpretasi :
Dengan menggunakan syntax “print('50 most frequnt terms in cluster 4:')” ingin
dimunculkan kalimat “'50 most frequnt terms in cluster 4:”. Lalu syntax selanjutnya
berfungsi untuk memanggil istilah apa saja yang sering muncul pada dataset ini.
Istilah yang sering muncul pada cluster ini adalah crashed dan miles.
Output :
Interpretasi :
Dengan menggunakan syntax “print('50 most frequnt terms in cluster 5:')” ingin
dimunculkan kalimat “'50 most frequnt terms in cluster 5:”. Lalu syntax selanjutnya
berfungsi untuk memanggil istilah apa saja yang sering muncul pada dataset ini.
Istilah yang sering muncul pada cluster ini adalah aircraft, airport, altitude,
approach, attempting, cargo, control, crashed, crew, due, engine, failed, failure, fire,
flight, flying, ground, killed, land, landing, left, lost, pilot, plane, route, runaway,
short, shortly, struck, takeoff, dan taking.
Output :
Interpretasi :
Dengan menggunakan syntax “print('50 most frequnt terms in cluster 6:')” ingin
dimunculkan kalimat “50 most frequnt terms in cluster 6:”. Lalu syntax selanjutnya
berfungsi untuk memanggil istilah apa saja yang sering muncul pada dataset ini.
Istilah yang sering muncul pada cluster ini adalah accident, aircraft, altitude,
approach, conditions, crashed, failure, flight, land, low, mountain, pilot, plane, poor,
route, struck, dan weather.
Output :
13
Interpretasi :
Dengan menggunakan syntax print('Fatalities in cluster 1:') ingin dipanggil
kalimat “Fatalities in cluster 1:”. Selanjutnya dengan menggunakan syntax
sum(Air$Fatalities[which(cl$cluster==1)]), ingin diketahui jumlah dari fatalities pada
cluster 1. Berdasarkan output diatas, diketahui bahwa jumlah fatalities pada cluster 1
adalah 37.698.
Output :
Interpretasi :
Dengan menggunakan syntax print('Fatalities in cluster 2:') ingin dipanggil
kalimat “Fatalities in cluster 2:”. Selanjutnya dengan menggunakan syntax
sum(Air$Fatalities[which(cl$cluster==2)]), ingin diketahui jumlah dari fatalities pada
cluster 2. Berdasarkan output diatas, diketahui bahwa jumlah fatalities pada cluster 2
adalah 8.394.
Output :
Interpretasi :
Dengan menggunakan syntax print('Fatalities in cluster 3:') ingin dipanggil
kalimat “Fatalities in cluster 3:”. Selanjutnya dengan menggunakan syntax
sum(Air$Fatalities[which(cl$cluster==3)]), ingin diketahui jumlah dari fatalities pada
cluster 3. Berdasarkan output diatas, diketahui bahwa jumlah fatalities pada cluster 3
adalah 7.261.
Output :
Interpretasi :
Dengan menggunakan syntax print('Fatalities in cluster 4:') ingin dipanggil
kalimat “Fatalities in cluster 4:”. Selanjutnya dengan menggunakan syntax
sum(Air$Fatalities[which(cl$cluster==4)]), ingin diketahui jumlah dari fatalities pada
cluster 4. Berdasarkan output diatas, diketahui bahwa jumlah fatalities pada cluster 4
adalah 1.877.
14
Output :
Interpretasi :
Dengan menggunakan syntax print('Fatalities in cluster 5:') ingin dipanggil
kalimat “Fatalities in cluster 5:”. Selanjutnya dengan menggunakan syntax
sum(Air$Fatalities[which(cl$cluster==5)]), ingin diketahui jumlah dari fatalities pada
cluster 5. Berdasarkan output diatas, diketahui bahwa jumlah fatalities pada cluster 5
adalah 25.565.
Output :
Interpretasi :
Dengan menggunakan syntax print('Fatalities in cluster 6:') ingin dipanggil
kalimat “Fatalities in cluster 6:”. Selanjutnya dengan menggunakan syntax
sum(Air$Fatalities[which(cl$cluster==6)]), ingin diketahui jumlah dari fatalities pada
cluster 6. Berdasarkan output diatas, diketahui bahwa jumlah fatalities pada cluster 6
adalah 10.147.
Output :
Interpretasi :
Dengan menggunakan syntax print('Fatalities in cluster 7:') ingin dipanggil
kalimat “Fatalities in cluster 7:”. Selanjutnya dengan menggunakan syntax
sum(Air$Fatalities[which(cl$cluster==7)]), ingin diketahui jumlah dari fatalities pada
cluster 7. Berdasarkan output diatas, diketahui bahwa jumlah fatalities pada cluster 7
adalah 5.042.
2.4. Kesimpulan
Internet of Things (IoT) adalah sebuah konsep yang bertujuan untuk
memperluas manfaat dari konektivitas internet yang tersambung secara terus-
menerus, berikut kemampuan remote control, berbagi data, dan sebagainya, termasuk
pada benda-benda di dunia fisik. Banyak manfaat yang didapatkan dari Internet of
15
Things. Pekerjaan yang kita lakukan menjadi cepat, mudah, dan efisien. Kita juga bisa
mendeteksi pengguna dimanapun ia berada.
Untuk lebih mudah dalam memahami Internet of Things maka kami melakukan studi
kasus yaitu melakukan analisis data Airplane Crashes and Fatalities Since 1908 di US yang
diperoleh melalui pengunduhan data dari situs website kaggle.com. Selain itu, penyusunan
penelitian ini juga didukung oleh software R versi 3.3.2. untuk melakukan text analysis dan
cluster analysis.
Dengan menggunakan text analysis kita akan mengetahui tahun berapakah yang
merupakan tahun yang paling banyak terjadi kecelakaan pesawat, tahun berapakah
yang paling banyak selamat dalam kecelakan pesawat, dll. Pada text analysis akan
digunakan tiga package, yaitu package “ggplot2”, package “scales”, dan package
“gridExtra”.Dengan menggunakan package package tersebut maka data akan
ditampilkan berupa grafik sehingga memudahkan kita untuk membaca data.
Selanjutnya dengan menggunakan cluster analysis akan diketahui
pengelompokan dari data tersebut. Dalam analisis ini akan digunakan dua package
yaitu package “caret” Classification and Regression Training) dan package “tm”
(Text Mining). Dengan menggunakan kedua package tersebut maka didapatkan 7
cluster yang terdiri dari terdapat 1806 data dalam cluster 1, 405 data dalam cluster 2,
379 data dalam cluster 3, 141 data data dalam cluster 4, 1290 data dalam cluster 5,
452 data dalam cluster 5 dan 302 data dalam cluster 7. Selain itu kita juga dapat
melihat jumlah orang yang meninggal pada kecelakaan pesawat pada masing masing
cluster, Pada cluster 1 terdapat 37.698 orang yang meninggal pada kecelakaan
pesawat. Pada cluster 2 terdapat 8.394 orang yang meninggal pada kecelakaan
pesawat. Pada cluster 3 terdapat 7.261 orang yang meninggal pada kecelakaan
pesawat. Pada cluster 4 tedapat 1.877 orang yang meninggal pada kecelakaan
pesawat. Pada cluster 5 terdapat 25.565 orang yang meninggal pada kecelakaan
pesawat. Pada cluster 6 terdapat 10.147 orang yang meninggal pada kecelakaan
pesawat. Dan pada cluster 7 terdapat 5.042 orang yang meninggal pada kecelakaan
pesawat.
LAMPIRAN
Lampiran 1 : Data Airplane Crashes and Fatalities Since 1908 di US
Date Time Location Operato
r Route Type cn/In
Aboard
Fatalities
Ground Summary
9/17/1908 17:18
Fort Myer, Virginia
Military - U.S. Army
Demonstration
Wright Flyer III
1 2 1 0
During a demonstration flight, a U.S. Army flyer flown by Orville Wright nose-dived into the ground from a height of approximately 75 feet, killing Lt. Thomas E. Selfridge who was a passenger. This was the first recorded airplane fatality in history. One of two propellers separated in flight, tearing loose the wires bracing the rudder and causing the loss of control of the aircraft. Orville Wright suffered broken ribs, pelvis and a leg. Selfridge suffered a crushed skull and died a short time later.
7/12/1912 6:30AtlantiCity, New Jersey
Military - U.S. Navy
Test flight Dirigible 5 5 0
First U.S. dirigible Akron exploded just offshore at an altitude of 1,000 ft. during a test flight.
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
*tidak semua data ditampilkan
16
17
Lampiran 2 : Syntax untuk Text Analysislibrary(ggplot2)library(scales)library(gridExtra)Air=read.delim("clipboard")Air$Fatalities[is.na(Air$Fatalities)] = 0Air$Date = as.Date(Air$Date, format = "%m/%d/%y")Air$Survived = Air$Aboard - Air$Fatalities#summary(Air)#str(Air)dead_per_year = ggplot(Air, aes(Date, Fatalities)) + geom_bar(na.rm = TRUE,
stat="identity", position="identity", colour="red") + scale_x_date() + xlab("Year") + ylab("Fatalities") + ggtitle("Dead Per Year")
crash_per_year = ggplot(Air, aes(Date)) + geom_histogram(binwidth=1000, fill="lightblue", col="black") + scale_x_date() + xlab("Year") + ylab("Crashes") + ggtitle("Planes crashed per year")
aboard_per_year = ggplot(Air, aes(Date, Aboard)) + geom_bar(na.rm = TRUE, stat="identity", position="identity", colour="orange") + scale_x_date() + xlab("Year") + ylab("Aboard") + ggtitle("People Aboard Per Year")
survived_per_year = ggplot(Air, aes(Date, Survived)) + geom_bar(na.rm = TRUE, stat="identity", position="identity", colour="green") + scale_x_date() + xlab("Year") + ylab("Aboard") + ggtitle("People Survived Per Year")
grid.arrange(crash_per_year, aboard_per_year, dead_per_year, survived_per_year, ncol=2)
Lampiran 3 : Syntax untuk Cluster Analysislibrary(caret)library(tm)Air = read.delim(“clipboard”)Air$Fatalities[is.na(Air$Fatalities)] = 0corpus = VCorpus(VectorSource(Air$Summary))corpus = tm_map(corpus, tolower)corpus = tm_map(corpus, PlainTextDocument)corpus = tm_map(corpus, removePunctuation)corpus = tm_map(corpus, removeWords, stopwords("english"))dtm = DocumentTermMatrix(corpus)dtm = removeSparseTerms(dtm, 0.95)#inspect(dtm[1:10, 501:510])freq_terms = findFreqTerms(dtm,100)
18
print('100 most frequent terms:')for( i in freq_terms) cat(i, " ")### Remove empty documents from nRows = apply(dtm , 1, sum)dtm = dtm[nRows> 0, ]dtm_tfxidf = weightTfIdf(dtm)#inspect(dtm_tfxidf[1:10, 501:510])### k-means (this uses euclidean distance)m = as.matrix(dtm_tfxidf)rownames(m) = 1:nrow(m)preproc = preProcess(m)m_norm = predict(preproc, m)cl = kmeans(m_norm, centers = 7)print('Clusters:')table(cl$cluster)### show clusters using the first 2 principal componentsplot(prcomp(m_norm)$x, col=cl$cl)freq_terms_1 = findFreqTerms(dtm[cl$cluster==1,], 50)freq_terms_2 = findFreqTerms(dtm[cl$cluster==2,], 50)freq_terms_3 = findFreqTerms(dtm[cl$cluster==3,], 50)freq_terms_4 = findFreqTerms(dtm[cl$cluster==4,], 50)freq_terms_5 = findFreqTerms(dtm[cl$cluster==5,], 50)freq_terms_6 = findFreqTerms(dtm[cl$cluster==6,], 50)freq_terms_7 = findFreqTerms(dtm[cl$cluster==7,], 50)print('50 most frequnt terms in cluster 1:')for( i in freq_terms_1) cat(i, " ")print('50 most frequnt terms in cluster 2:')for( i in freq_terms_2) cat(i, " ")print('50 most frequnt terms in cluster 3:')for( i in freq_terms_3) cat(i, " ")print('50 most frequnt terms in cluster 4:')for( i in freq_terms_4) cat(i, " ")print('50 most frequnt terms in cluster 5:')for( i in freq_terms_5) cat(i, " ")
19
print('50 most frequnt terms in cluster 6:')for( i in freq_terms_6) cat(i, " ")print('Fatalities in cluster 1:')sum(Air$Fatalities[which(cl$cluster==1)])print('Fatalities in cluster 2:')sum(Air$Fatalities[which(cl$cluster==2)])print('Fatalities in cluster 3:')sum(Air$Fatalities[which(cl$cluster==3)])print('Fatalities in cluster 4:')sum(Air$Fatalities[which(cl$cluster==4)])print('Fatalities in cluster 5:')sum(Air$Fatalities[which(cl$cluster==5)])print('Fatalities in cluster 6:')sum(Air$Fatalities[which(cl$cluster==6)])print('Fatalities in cluster 7:')sum(Air$Fatalities[which(cl$cluster==7)])#inspect(corpus[which(cl$cluster==1)])