LABORATORIUM
TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS AHMAD DAHLAN
PETUNJUK
PRAKTIKUM
DATA MINING
Penyusun:
Lisna Zahrotun, S.T., M.Cs.
Tedy Setiasi, M.T
2019
1
KATA PENGANTAR
Alhamdulilllah, segala puji dan syukur kehhadirat Allah SWT, hanya atas rahmat dan
hidayah-Nya lah akhirnya modul praktikum ini dapat terselesaikan. Cakupan Data Mining
sangat luas, akan tetapi dalam diktat ini hanya membahas sebagian saja. Dalam awal pertemuan
akan dibahas bagaimana mebuat data set dengan melakukan proses cleaning, transformasi dan
selection, kemudian akan dibahas satu-persatu langkah-langkah proses dalam pembentukan
data mining untuk menemukan pola atau pengetahuan dari data ware house yang berjumlah
besar.
Banyak algoritma-algoritma yang digunakan dalam data mining akan tetapi dalam diktat
ini akan dibahas empat algoritma saja, yaitu algoritma asosiasi, algoritma pengelompokan,
algoritmas klasifikasi pohon keputusan yang terdiri dari algoritma C4.5 dan algoritma CART,
terakhir adalah time series. Selain empat teknik tersebut juga ditambahkan penerapan data
mining dengan data text dan CRM dalam data mining. Penulis mengucapkan terima kasih
kepada Rita Melina Anggraeni, Gema Antika Hariadi dan semua pihak yang tentunya tidak
bisa penulis sebutkan satu persatu yang telah membantu dalam penyusunan modul praktikum
ini.
Tentu saja modul praktikum ini masih jauh dari memuaskan, namun penulis berharap diktat
ini dapat bermanfaat bagi mahasiswa dalam mengkaji dan mengembangkan ilmu data ware
house dan data mining. Saran dan kritik sangatlah penulis harapkan, untuk perkembangan
selanjutnya.
DAFTAR PENYUSUN
HALAMAN REVISI
NIK/NIY : 60150773
Dengan ini menyatakan pelaksanaan Revisi Petunjuk Praktikum Data Mining untuk Program Studi
Teknik Informatika telah dilaksanakan dengan penjelasan sebagai berikut:
No Keterangan Detail Revisi (Per Pertemuan) Tanggal Revisi Nomor Modul
1 a. Penambahan software yang digunakan dari weka 2013 PP/018/VII/R1
menjadi weka, dan Microsoft excel
b. Mocrosoft excel digunakan praktikum pada materi time
series
c. Penambahan materi pada preprocessing data
2 a. Penambahan software yang digunakan dari weka 2015 PP/018/VII/R2
menjadi weka, winQSB, dan rapid miner
b. Penambahan materi, referensi dan contoh studi kasus
pada praktikum teknik association, clustering dan
klasifikasi
4 a. Penggantian semua studi kasus untuk setiap teknik data 2018 PP/018/VII/R4
mining
b. Penambahan materi praktikum text mining
c. Penambahan materi CRM Data mining
Penambahan 3 materi praktikum yaitu pengujian, text
mining, pembuatan user interface menggunakan flash
HALAMAN PERNYATAAN
NIK/NIY : 60150773
Menerangkan dengan sesungguhnya bahwa Petunjuk Praktikum ini telah direview dan akan digunakan
untuk pelaksanaan praktikum di Semester Gasal Tahun Akademik 2019/2020 di Laboratorium
Praktikum Teknik Informatika, Program Studi Teknik Informatika, Fakultas Teknologi Industri,
Universitas Ahmad Dahlan.
Mengetahui,
Ketua Kelompok Keilmuan Rekayasa Perangkat Kepala Laboratorium Praktikum Teknik
Lunak dan Data (RELATA) Informatika
VISI
Menjadi Program Studi Informatika yang diakui secara internasional dan unggul dalam bidang
Informatika serta berbasis nilai-nilai Islam.
MISI
1. Menjalankan pendidikan sesuai dengan kompetensi bidang Informatika yang diakui nasional dan
internasional
2. Meningkatkan penelitian dosen dan mahasiswa dalam bidang Informatika yang kreatif, inovatif
dan tepat guna.
3. Meningkatkan kuantitas dan kualitas publikasi ilmiah tingkat nasional dan internasional
4. Melaksanakan dan meningkatkan kegiatan pengabdian masyarakat oleh dosen dan mahasiswa
dalam bidang Informatika.
5. Menyelenggarakan aktivitas yang mendukung pengembangan program studi dengan melibatkan
dosen dan mahasiswa.
6. Menyelenggarakan kerja sama dengan lembaga tingkat nasional dan internasional.
7. Menciptakan kehidupan Islami di lingkungan program studi.
DOSEN/KOORDINATOR PRAKTIKUM
1. Dosen harus hadir saat praktikum minimal 15 menit di awal kegiatan praktikum dan
menandatangani presensi kehadiran praktikum.
2. Dosen membuat modul praktikum, soal seleksi asisten, pre-test, post-test, dan responsi dengan
berkoordinasi dengan asisten dan pengampu mata praktikum.
3. Dosen berkoordinasi dengan koordinator asisten praktikum untuk evaluasi praktikum setiap
minggu.
4. Dosen menandatangani surat kontrak asisten praktikum dan koordinator asisten praktikum.
5. Dosen yang tidak hadir pada slot praktikum tertentu tanpa pemberitahuan selama 2 minggu
berturut-turut mendapat teguran dari Kepala Laboratorium, apabila masih berlanjut 2 minggu
berikutnya maka Kepala Laboratorium berhak mengganti koordinator praktikum pada slot
tersebut.
PRAKTIKAN
1. Praktikan harus hadir 15 menit sebelum kegiatan praktikum dimulai, dan dispensasi terlambat 15
menit dengan alasan yang jelas (kecuali asisten menentukan lain dan patokan jam adalah jam yang
ada di Laboratorium, terlambat lebih dari 15 menit tidak boleh masuk praktikum & dianggap Inhal).
2. Praktikan yang tidak mengikuti praktikum dengan alasan apapun, wajib mengikuti INHAL,
maksimal 4 kali praktikum dan jika lebih dari 4 kali maka praktikum dianggap GAGAL.
3. Praktikan harus berpakaian rapi sesuai dengan ketentuan Universitas, sebagai berikut:
a. Tidak boleh memakai Kaos Oblong, termasuk bila ditutupi Jaket/Jas Almamater (Laki-laki /
Perempuan) dan Topi harus Dilepas.
b. Tidak Boleh memakai Baju ketat, Jilbab Minim dan rambut harus tertutup jilbab secara
sempurna, tidak boleh kelihatan di jidat maupun di punggung (khusus Perempuan).
c. Tidak boleh memakai baju minim, saat duduk pun pinggang harus tertutup rapat (Laki-laki /
Perempuan).
d. Laki-laki tidak boleh memakai gelang, anting-anting ataupun aksesoris Perempuan.
4. Praktikan tidak boleh makan dan minum selama kegiatan praktikum berlangsung, harus menjaga
kebersihan, keamanan dan ketertiban selama mengikuti kegiatan praktikum atau selama berada
di dalam laboratorium (tidak boleh membuang sampah sembarangan baik kertas, potongan kertas,
bungkus permen baik di lantai karpet maupun di dalam ruang CPU).
5. Praktikan dilarang meninggalkan kegiatan praktikum tanpa seizin Asisten atau Laboran.
6. Praktikan harus meletakkan sepatu dan tas pada rak/loker yang telah disediakan.
7. Selama praktikum dilarang NGENET/NGE-GAME, kecuali mata praktikum yang membutuhkan atau
menggunakan fasilitas Internet.
8. Praktikan dilarang melepas kabel jaringan atau kabel power praktikum tanpa sepengetahuan
laboran
9. Praktikan harus memiliki FILE Petunjuk praktikum dan digunakan pada saat praktikum dan harus
siap sebelum praktikum berlangsung.
10. Praktikan dilarang melakukan kecurangan seperti mencontek atau menyalin pekerjaan praktikan
yang lain saat praktikum berlangsung atau post-test yang menjadi tugas praktikum.
11. Praktikan dilarang mengubah setting software/hardware komputer baik menambah atau
mengurangi tanpa permintaan asisten atau laboran dan melakukan sesuatu yang dapat merugikan
laboratorium atau praktikum lain.
Praktikum Data Mining - Teknik Informatika – UAD - 2019
7
12. Asisten, Koordinator Praktikum, Kepala laboratorium dan Laboran mempunyai hak untuk
menegur, memperingatkan bahkan meminta praktikan keluar ruang praktikum apabila dirasa anda
mengganggu praktikan lain atau tidak melaksanakan kegiatan praktikum sebagaimana mestinya
dan atau tidak mematuhi aturan lab yang berlaku.
13. Pelanggaran terhadap salah satu atau lebih dari aturan diatas maka Nilai praktikum pada
pertemuan tersebut dianggap 0 (NOL) dengan status INHAL.
ASISTEN PRAKTIKUM
1. Asisten harus hadir 15 Menit sebelum praktikum dimulai (konfirmasi ke koordinator bila
mengalami keterlambatan atau berhalangan hadir).
2. Asisten yang tidak bisa hadir WAJIB mencari pengganti, dan melaporkan kepada Koordinator
Asisten.
3. Asisten harus berpakaian rapi sesuai dengan ketentuan Universitas, sebagai berikut:
a. Tidak boleh memakai Kaos Oblong, termasuk bila ditutupi Jaket/Jas Almamater (Laki-laki /
Perempuan) dan Topi harus Dilepas.
b. Tidak Boleh memakai Baju ketat, Jilbab Minim dan rambut harus tertutup jilbab secara
sempurna, tidak boleh kelihatan di jidat maupun di punggung (khusus Perempuan).
c. Tidak boleh memakai baju minim, saat duduk pun pinggang harus tertutup rapat (Laki-laki /
Perempuan).
d. Laki-laki tidak boleh memakai gelang, anting-anting ataupun aksesoris Perempuan.
4. Asisten harus menjaga kebersihan, keamanan dan ketertiban selama mengikuti kegiatan
praktikum atau selama berada di laboratorium, menegur atau mengingatkan jika ada praktikan
yang tidak dapat menjaga kebersihan, ketertiban atau kesopanan.
5. Asisten harus dapat merapikan dan mengamankan presensi praktikum, Kartu Nilai serta tertib
dalam memasukan/Input nilai secara Online/Offline.
6. Asisten harus dapat bertindak secara profesional sebagai seorang asisten praktikum dan dapat
menjadi teladan bagi praktikan.
7. Asisten harus dapat memberikan penjelasan/pemahaman yang dibutuhkan oleh praktikan
berkenaan dengan materi praktikum yang diasisteni sehingga praktikan dapat melaksanakan dan
mengerjakan tugas praktikum dengan baik dan jelas.
8. Asisten tidak diperkenankan mengobrol sendiri apalagi sampai membuat gaduh.
9. Asisten dimohon mengkoordinasikan untuk meminta praktikan agar mematikan komputer untuk
jadwal terakhir dan sudah dilakukan penilaian terhadap hasil kerja praktikan.
10. Asisten wajib untuk mematikan LCD Projector dan komputer asisten/praktikan apabila tidak
digunakan.
11. Asisten tidak diperkenankan menggunakan akses internet selain untuk kegiatan praktikum, seperti
Youtube/Game/Medsos/Streaming Film di komputer praktikan.
LAIN-LAIN
1. Pada Saat Responsi Harus menggunakan Baju Kemeja untuk Laki-laki dan Perempuan untuk
Praktikan dan Asisten.
2. Ketidakhadiran praktikum dengan alasan apapun dianggap INHAL.
3. Izin praktikum mengikuti aturan izin SIMERU/KULIAH.
4. Yang tidak berkepentingan dengan praktikum dilarang mengganggu praktikan atau membuat
keributan/kegaduhan.
5. Penggunaan lab diluar jam praktikum maksimal sampai pukul 21.00 dengan menunjukkan surat
ijin dari Kepala Laboratorium Prodi Teknik Informatika.
DAFTAR ISI
Pertemuan ke :1
Pembersihan Data
Menurut Han dan Kamber (2006) Proses Cleaning dan pembersihan data adalah sebagai berikut:
Pembersihan data dan (cleaning) merupakan Proses ini digunakan untuk membuang data yang tidak
konsisten dan bersifat noise dari data yang terdapat di berbagai basis data yang mungkin berbeda
format maupun platform yang kemudian diintegrasikan dalam satu database datawarehouse. Garbage
in garbage out (hanya sampah yang akan dihasilkan bila yang dimasukkan juga sampah) merupakan
istilah yang sering dipakai untuk menggambarkan tahap ini. Pembersihan data juga akan
mempengaruhi formasi dari sistem data mining karena data yang ditangani akan berkurang jumlah dan
kompleksitasnya.
2. Anaconda app
3. Dataset
1. Lakukan analisis data mining menggunakan Data Alumni untuk dilakukan proses import data.
2. Buka data set alumni dengan nama Data Alumni.xlxs
3. Perhatikan record-record pada tabel tersebut
4. Lakukan langkah berikut :
1) Membuka Anaconda Jupyter Notebook.
2) Import library yang akan digunakan.
a. openpyxl : library yang digunakan untuk read dan write file Excel
b. pandas : library data analysis, untuk mengolah data secara terstruktur
3) Inisialisasi file excel yang akan di import
PEMBERSIHAN DATA
Ikuti langkah praktikum berikut ini:
1. Jika akan dilakukan analisis data mining dengan menghapus data yang kosong pada atribut Umur,
IPK, Toefl, lama studi, gaji pertama bekerja dan lama masa tunggu mencari kerja. Maka lakukanlah
analisis data siswa untuk kemudian dilakukan proses pembersihan data. Data kosong pada
dataframe biasanya ditampilkan dengan None. None adalah objek tunggal Python yang sering
digunakan untuk mewakili data yang hilang pada Python. NA adalah istilah yang digunakan untuk
data hilang.
2. Buka data set siswa dengan nama Data Alumni.xlxs
3. Perhatikan record-record pada tabel tersebut
4. Lakukan pembersihan data menggunakan
a. dropna() : akan menghapus semua baris di mana ada (any) nilai null. sebagai alternatif, kita dapat
menurunkan nilai NA sepanjang sumbu yang berbeda,
b. axis = 0 : digunakan untuk menghapus semua baris yang mengandung nilai null.
Hasil :
1.5. TUGAS
1. Carilah data set minimal 30 data dengan minimal 5 atribut lakukanlah import data dari data
set tersebut.
2. Tampilkan data secara ascending dan descending salah satu kolom.
3. Tampilkan salah satu data kolom dalam bentuk tabel.
4. Dari data set tersebut lakukanlah pembersihan data dan analisis hasilnya.
Pertemuan ke :2
Total Alokasi Waktu : 90 menit
• Pre-Test : 15 menit
• Praktikum : 60 menit
• Post-Test : 15 menit
1. Sampling, adalah seleksi subset representative dari populasi data yang besar.
2. Denoising, adalah proses menghilangkan noise dari data yang akan ditransformasikan.
3. Feature extraction, adalah proses membuka spesifikasi data yang signifikan dalam konteks
tertentu.
1. Jika akan dilakukan analisis data mining menggunakan Data Alumni untuk mengetahui hubungan
antara Tempat & tanggal lahir, Tahun masuk, Tahun lulus, Status pekerjaan, Lama masa tunggu,
Nilai TOEFL dan IPK. Maka lakukanlah analisis Data Alumni untuk kemudian dilakukan proses
seleksi data.
2. Buka data set alumni dengan nama Data Alumni.xlxs
3. Perhatikan record-record pada tabel tersebut.
4. Lakukan proses seleksi data menggunakan Anaconda Jupyter Notebook.
a. Mencari umur
Untuk mencari umur, kita bisa menggunakan kolom TTL/Tempat dan tanggal Lahir. Dari
kolom TTL, kita akan mengambil nilai tahun atau 4 karakter dari belakang. Kemudian kita
akan hitung dengan menggunkan rumus, Tahun sekrag dikurangi dengan tahun lahir.
- Mengambil 4 karakter terakhir dari kolom TTL, dan memasukkan ke dalam kolom Tahun
Lahir.
- Setelah tahun lahir didapatkan, langkah berikutnya adalah mencari tahun sekarang,
kemudian mengurangi tahun sekarang dengan tahun lahir untuk mendapatkan umur.
2.5. TUGAS
Jika diketahui akan dilakukan analisis data mining pada dataset sebelumnya, dengan langkah seperti
pada saat praktikum, lakukanlah seleksi data pada setiap atribut
Pertemuan ke :3
9. Normalization, membagi setiap data yang di centering denga standar deviasi dari atribut
bersangkutan.
10. Scalling, mengubah data sehingga berada dalam skala tertentu.
1. Jika akan dilakukan analisi data mining menggunakan Data Alumni untuk mengetahi hubungan
antara IPK, TOEFL, Waktu mendapatkan pekerjaan, Lama studi, Umur, Gaji. Maka lakukanlah
analisis Data Alumni untuk kemudian dilakukan proses transformasi data.
2. Buka data set alumni dengan nama Data Alumni.xlxs
3. Perhatikan record-record pada tabel tersebut
4. Lakukan proses transformasi data menggunakan Anaconda Jupyter Notebook.
a. IPK
Nilai IPK dikategorikan menjadi 3, seperti yang terlihat pada tabel dibawah ini:
b. TOEFL
Nilai Toefl dikategorikan menajdi 3, seperti yang terlihat pada tabel dibawah ini:
d. Lama studi
Nilai lama studi dikategorikan menajdi 2, seperti yang terlihat pada tabel dibawah ini:
e. Umur
Nilai umur dikategorikan menjadi 2, seperti yang terlihat pada tabel dibawah ini:
f. Gaji
Nilai gaji dikategorikan menjadi 2, seperti yang terlihat pada tabel dibawah ini :
3.5. TUGAS
Jika diketahui akan dilakukan analisis data mining pada dataset sebelumnya, dengan langkah seperti
pada saat praktikum, lakukanlah transformasi data.
Pertemuan ke :4
3. dataset
1. Jika akan dilakukan analisis data mining menggunakan data alumni untuk mengetahui hubungan
antara fasilitas memadai, sdm berpengaruh, kerja sesuai jurusan dan kurikulum sesuai dengan
dunia kerja. Maka lakukanlah analisis data alumni untuk kemudian dilakukan proses
Asosiasi/Apriori data.
2. Buka data set siswa dengan nama Data Alumni.xlxs
3. Lakukan proses clustering data menggunakan python.
4. Melakukan Import Library yang akan digunakan untuk clustering:
"""calculates the support for items in the itemSet and returns a subset
_itemSet = set()
localSet = defaultdict(int)
if item.issubset(transaction):
freqSet[item] += 1
localSet[item] += 1
support = float(count)/len(transactionList)
_itemSet.add(item)
return _itemSet
def getItemSetTransactionList(data_iterator):
transactionList = list()
itemSet = set()
transaction = frozenset(record)
transactionList.append(transaction)
"""
Return both:
"""
freqSet = defaultdict(int)
largeSet = dict()
assocRules = dict()
oneCSet = returnItemsWithMinSupport(itemSet,
transactionList,
minSupport,
freqSet)
currentLSet = oneCSet
k=2
while(currentLSet != set([])):
largeSet[k-1] = currentLSet
currentLSet = joinSet(currentLSet, k)
currentCSet = returnItemsWithMinSupport(currentLSet,
transactionList,
minSupport,
freqSet)
currentLSet = currentCSet
k=k+1
def getSupport(item):
return float(freqSet[item])/len(transactionList)
toRetItems = []
toRetItems.extend([(tuple(item), getSupport(item))
toRetRules = []
remain = item.difference(element)
if len(remain) > 0:
confidence = getSupport(item)/getSupport(element)
toRetRules.append(((tuple(element), tuple(remain)),
confidence))
"""prints the generated itemsets sorted by support and the confidence rules sorted
by confidence"""
dSupport = {}
dSupport[item] = support
tempRule=()
tempRule+=pre
tempRule+=post
lift = supportAimplikasiB/(dSupport[pre]*dSupport[post])
rule = list(A)
dict_support = B
result = 0
list_index_dict_support = list(index_dict_support)
check = []
check.append(True)
else:
check.append(False)
# print(list_index_dict_support)
# print(dict_support[index_dict_support])
result = dict_support[index_dict_support]
return result
def dataFromFile(fname):
record = frozenset(line.split(','))
yield record
Output:
8. Lakukan konversi data kedalam format yang siap untuk dilakukan asosiasi:
9. Panggil fungsi runApriori dengan parameter masukan variable list_data hasil dari konversi
sebelumnya, minSupport = 0.1, minConfidence = 0.2. dapat dilihat sebagai berikut.
4.5. TUGAS
Jika diketahui akan dilakukan analisis data mining pada dataset sebelumnya, dengan langkah seperti
pada saat praktikum, lakukanlah Asosiasi data dari dataset.
PRAKTIKUM 5: CLUSTERING
Pertemuan ke :5
1. Jika akan dilakukan analisis data mining menggunakan data alumni untuk mengetahui hubungan
antara 'Nim','Ipk','Umur','Masa Studi','Lama Tunggu','Gaji','Toefl'. Maka lakukanlah analisis data
alumni untuk kemudian dilakukan proses clustering data
2. Buka data set siswa dengan nama Data Alumni.xlxs
3. Lakukan proses clustering data menggunakan python.
a. Melakukan Import Library yang akan digunakan untuk clustering:
Keterangan:
• from sklearn.cluster import KMeans merupakan import class library KMeans
• from openpyxl import load_workbook merupakan class library untuk
membuka file excel kedalam python
• import pandas as pd merupakan data structure yang sering digunakan
untuk data analysis pada bahasa pemrograman python
• import matplotlib.pyplot as plt merupakan class library untuk
ploting data kedalam graph
b. Melakukan Import data excel alumni kedalam python
Keterangan:
• wb adalah variable data alumni
• sheet_ranges adalah variable data alumni excel pdaa sheet 1
• df adalah dataframe pandas yang digunakan untuk menampung data alumni pada
sheet 1
c. Seleksi kolom dari data frame yang akan dilakukan clustering
Keterangan :
b) Formating data:
Keterangan:
• t adalah ambil penanggalan saat ini, t.to_datetime() adalah konversi penanggalan
saat ini ke dalam format datetime, t.year adalah pengambilan tahun pada tahun
ini (t).
• for index, row in d.iterrows(): merupakan looping sejumlah baris data yang ada
didalam table d.
• d.ix[index,'TAHUN LAHIR'] = row['TTL'][-4:] merupakan pengambilan tahun lahir
setiap data.
• d.ix[index,'UMUR'] = t.year - int(row['TAHUN LAHIR']) merupakan penghitungan
umur berdasarkan tahun sekarang – tahun lahir.
• d.ix[index,'MASA STUDI']=row['TAHUN LULUS']-row['TAHUN MASUK']
merupakan penghitungan masa studi
• d['IPK'] = d['IPK'].apply(str) merupakan konversi data IPK diubah menjadi string
secara keseluruhan
• d['IPK'] = d['IPK'].str.replace(',','.').apply(float) replace , dengan . kemudian
konversi data IPK menjadi float
• d['GAJI'] = d['GAJI'].apply(float) konversi data GAJI menjadi float.
c) Check kembali hasil formating data table apakah sudah sesuai.
Keterangan :
.reset_index(drop=True) merupakan reset index pada dataframe
f. Ambil data IPK dan MASA STUDI untuk dilakukan cluster.
Keterangan :
.as_matrix() merupakan konversi dataframe ke format matrix
g. Proses clustering, clustering akan dilakukan pada data alumni dengan 2 jumlah feature
diantaranya IPK dan MASA STUDI. Jumlah cluster yang ditentukan adalah 3. Dengan ploting
graph 2 dimensi, dikarenakan menggunakan 2 jumlah feature. Perintah dapat dilihat sebagai
berikut.
Keterangan :
• kmeans = KMeans(n_clusters=3) merupakan penentuan jumlah Cluster (3)
• kmeans.fit(X) adalah data X dipresisikan pada algoritma kmeans
• centroids = kmeans.cluster_centers_ merupakan hasil titik tengah
• labels = kmeans.labels_ merupakan hasil labels
• colors = ['g.','r.','b.'] warna berdasarkan jumlah 3 cluster
• plt.figure(figsize=(15,10)) merupakan ukuran graph
• for i in range(len(X)): looping jumlah data
• print('coordinate %s'%i, X[i], 'labels %s'%labels[i]) print data
• plt.plot(X[i][0], X[i][1], colors[labels[i]], markersize=10) ploting titik pada graph
• list_cluster = dTable[(dTable['IPK'] == X[i][0]) & (dTable['MASA STUDI'] ==
X[i][1])].index.tolist() ambil index sesuai IPK dan MASA STUDI, kemudian masukan
dalam list
• plt.text(X[i][0], X[i][1], '%s'%(list_cluster)) cetak list_cluster kedalam titik graph
• plt.scatter(centroids[:, 0], centroids[:, 1], marker = 'x', s=50, linewidths=5,
zorder=10) cetak titik tengan cluster pada graph
5.5. TUGAS
Jika diketahui akan dilakukan analisis data mining pada dataset sebelumnya untuk mengetahui
clustering salah satu atribut dengan atribut lain maka gunakan langkah yang sama seperti pada saat
praktikum, lakukanlah pengelompokan data dari dataset.
PRAKTIKUM 6: KLASIFIKASI
Pertemuan ke :6
Menurut Jianwei Han, 2001, klasifikasi merupakan proses menemukan kumpulan pola atau
fungsi -fungsi yang mendeskripsikan dan memisahkan kelas data satu dengan lainnya, untuk dapat
digunakan untuk memprediksi data yang belum memiliki kelas data tertentu. Jadi secara
singkatnya, klasifikasi adalah proses untuk membedakan / memisahkan kelas.
Pemilihan atribut untuk menjadi rootnode atau internal node sebagai atribut test
berdasarkan atas ukuran impurity dari masing–masing atribut. Ukuran–ukuran impurity yang
umumnya digunakan adalah information gain, gain ratio dan gini index. Atribut yang memiliki nilai
impurity tertinggi akan dipilih sebagai atribut test.
1. Jika akan dilakukan analisis data mining menggunakan Data Alumni untuk mengetahui hubungan
antara NIM, UMUR, IPK, MASA STUDI, LAMA TUNGGU, GAJI, TOEFL, dan MASA TUNGGU. Maka
lakukanlah analisis Data Alumni untuk kemudian dilakukan proses klasifikasi data
2. Buka data set siswa dengan nama Data Alumni.xlxs
3. Perhatikan record-record pada table tersebut
4. Lakukan proses klasifikasi data dengan langkah-langkah berikut :
a. Load library yang akan digunakan
Keterangan:
- pandas merupakan data structure yang sering digunakan untuk data analysis pada bahasa
pemrograman python
- openpyxl merupakan class library untuk membuka file excel kedalam python
- IPython.display import Image merupakan class library untuk menampilkan image atau
gambar.
- sklearn.preprocessing import imputer merupakan class library untuk melengkapi nilai
yang hilang (NaN).
- sklearn import tree merupakan import class library untuk Decision Tree.
- sklearn.metrics import confusion_matrix, accuracy_score, recall_score, precision_score
merupakan class library untuk Confusion Matrix.
- subprocess import check_call dignakan untuk menjalankan perintah dengan argument.
Keterangan:
- wb adalah variable data alumni pelatihan phiton
- sheet_ranges adalah variable data alumni excel pdaa sheet 1
Praktikum Data Mining - Teknik Informatika – UAD - 2019
41
- df adalah dataframe pandas yg digunakan untuk menampung data alumni pada sheet 1
Keterangan :
d. Formating data
Formating data dilakukan untuk menyiapkan data pada kolom yang akan dilakukan
cluster sudah sesuai. Seperti contoh kolom IPK harus float tidak boleh menggunakan string,
maka harus dilakukan konversi kolom dari string ke float.
Keterangan :
- dtypes Checking datatipe yang ada pada kolom
- t adalah ambil penanggalan saat ini, t.to_datetime() adalah konversi penanggalan saat ini
ke dalam format datetime, t.year adalah pengambilan tahun pada tahun ini (t).
- for index, row in d.iterrows(): merupakan looping sejumlah baris data yang ada didalam
table d.
- row['TTL'][-4:] merupakan pengambilan tahun lahir setiap data.
- t.year - int(row['TAHUN LAHIR']) merupakan penghitungan umur berdasarkan tahun
sekarang – tahun lahir.
- row['TAHUN LULUS']-row['TAHUN MASUK'] penghitungan masa studi
- d['IPK'].apply(str) konversi data IPK diubah menjadi string secara keseluruhan
Check kembali hasil formating data table apakah sudah sesuai dengan,
Jika telah sesuai dengan gambar dibawah berarti data telah siap untuk di lakukan klasifikasi.
Syntax diatas merupakan reset index pada dataframe. Kemudian akan muncul data dengan
index dimulai dari 0.
Kolom MASA TUNGGU digunakan sebagai class label dan dimasukkan ke dalam variable y.
Values digunakan untuk mengambil nilai dari kolom.
h. Menentukan kolom apa saja yang digunakan sebagai fitur-fitur.
Kolom IPK, TOELF, MASA STUDI, UMUR digunakan sebagai fitur untuk klasifikasi. Fitur-fitur
tersebut dimasukkan ke dalam variable features.
i. Jika dalam fitur terdapat nilai yang hilang (NaN) dapat menggunakan fungsi imputer,
fungsi ini akan mengganti nilai NaN dengan nilai rata-rata kolom.
j. Melakukan pelatihan menggunakan Decision Tree Scikit Learn untuk membuat model
klasifikasi.
Keterangan:
- tree.DecisionTreeClassifier merupakan fungsi sklearn yang digunakan untuk memanggil
Decision Tree
- criterion fungsi untuk mengukur kualitas split. Kriteria yang didukung adalah "gain" dan
"entropy"
- fit digunakan untuk membuat model klasifikasi decision tree dari set pelatihan (X, y) atau
dari data fitur dan class label
- Clf merupakan variable yang digunakan untuk menyimpan model klasifikasi.
-
k. Memvisualisasikan decision tree ke dalam graph.
Keterangan:
- Clf merupakan variable yang menyimpan model atau classifier
- Out_file untuk mengatur nama file keluaran
- Features_names untuk menyimpan nama kolom yang dijadikan sebagai fitur
- Filled untuk memberikan warna pada node
- Rounded untuk membuat sudut node membulat
- Special_character untuk karakter khusus untuk kompatibilitas PostScript.
Melakukan konversi file dari .dot ke .png diperlukan suatu aplikasi yang bernama Graphviz,
yang berguna untuk memvisualisasikan graph. Kemudian install aplikasi Graphviz sampai
selesai. Setelah aplikasi Graphviz terinstall, langkah berikutnya adalah melakukan pengaturan
path pada system operasi kita.
n. Untuk Menampilkan graph tree yang sudah di convert ke dalam .png. Hasil:
6.5. TUGAS
Jika diketahui akan dilakukan analisis data mining pada dataset sebelumnya untuk mengetahui
klasifikasi, maka gunakan langkah yang sama seperti pada saat praktikum, lakukanlah pengklasifikasian
data dari dataset.
PRAKTIKUM 7: FORECASTING
Pertemuan ke :7
tinggi, dilatih dengan algoritma pembelajaran yang didasarkan pada teori optimasi dengan
mengimplementasikan learning bias. SVR adalah penerapan SVM untuk masalah regresi. Dalam
kasus klasifikasi output data berupa bilangan bulat atau diskrit, sedangkan pada masalah regresi
output data berupa bilangan real atau kontinu.
Untuk menangani kasus regresi,Vijayakumar dan Wu (1999) mengenalkan algoritma
sekuensial untuk SVR sehingga dapat memberikan solusi yang optimal dan waktu komputasi yang
lebih cepat dibandingkan dengan SVR konvensional. Langkah-langkah tersebut adalah sebagai
berikut:
a. Langkah 1:
Inisialisasi parameter SVR yang akan digunakan diantaranya 𝑐𝐿𝑅, 𝐶, 𝜀, 𝜆 dan jumlah iterasi
maksimum. Selain itu, inisialisasi 𝛼i dan 𝛼i∗ (untuk inisialisasi awal, diberikan nilai 0).
b. Langkah 2:
Membentuk Matriks Hessian dengan menggunakan Persamaan 1.
c. Langkah 3:
Melakukan proses sequential learning yang terdiri dari:
(1) Menghitung nilai error (E) yang ditunjukkan pada persamaan 2.
d. Langkah 4
Mengulang proses sequencial learning pada langkah ketiga hingga mencapai jumlah iterasi
max atau memiliki kondisi berhenti yaitu max (|𝛿𝛼i∗|) < 𝜀 dan (|𝛿𝛼i|) < .
e. Langkah 5
Jika data memenuhi persyaratan (𝛼i - 𝛼i∗) tidak sama dengan 0, maka dapat disebut
sebagai support vector.
f. Langkah 6
Melakukan pengujian dengan menggunakan persamaan 5.
1. Jika akan dilakukan analisis data mining menggunakan Data Alumni untuk mengetahui hubungan
antara NIM, UMUR, IPK, MASA STUDI, LAMA TUNGGU, GAJI, TOEFL, dan MASA TUNGGU. Maka
lakukanlah analisis Data Alumni untuk kemudian dilakukan proses forecasting
2. Buka data set siswa dengan nama Data Alumni.xlxs
3. Perhatikan record-record pada table tersebut
4. Lakukan proses klasifikasi data dengan langkah-langkah berikut :
a. Load library yang akan digunakan
Keterangan:
- pandas merupakan data structure yang sering digunakan untuk data analysis pada bahasa
pemrograman python
- openpyxl merupakan class library untuk membuka file excel kedalam python
- sklearn import preprocessing merupakan class library untuk melakukan preprocessing.
- sklearn.svm import SVR merupakan import class library untuk SVR.
Keterangan:
- wb adalah variable data alumni pelatihan phiton
- sheet_ranges adalah variable data alumni excel pdaa sheet 1
- df adalah dataframe pandas yg digunakan untuk menampung data alumni pada sheet 1
Keterangan :
d. Formating data
Formating data dilakukan untuk menyiapkan data pada kolom yang akan dilakukan
cluster sudah sesuai. Seperti contoh kolom IPK harus float tidak boleh menggunakan string,
maka harus dilakukan konversi kolom dari string ke float.
Keterangan :
- dtypes Checking datatipe yang ada pada kolom
- t adalah ambil penanggalan saat ini, t.to_datetime() adalah konversi penanggalan saat ini
ke dalam format datetime, t.year adalah pengambilan tahun pada tahun ini (t).
- for index, row in d.iterrows(): merupakan looping sejumlah baris data yang ada didalam
table d.
- row['TTL'][-4:] merupakan pengambilan tahun lahir setiap data.
- t.year - int(row['TAHUN LAHIR']) merupakan penghitungan umur berdasarkan tahun
sekarang – tahun lahir.
- row['TAHUN LULUS']-row['TAHUN MASUK'] penghitungan masa studi
- d['IPK'].apply(str) konversi data IPK diubah menjadi string secara keseluruhan
- d['IPK'].str.replace(',','.').apply(float) replace , dengan . kemudian konversi data IPK
menjadi float
- d['GAJI'].apply(float) konversi data GAJI menjadi float.
Check kembali hasil formating data table apakah sudah sesuai dengan,
Jika telah sesuai dengan gambar dibawah berarti data telah siap untuk di lakukan klasifikasi.
Syntax diatas merupakan reset index pada dataframe. Kemudian akan muncul data dengan
index dimulai dari 0.
Keterangan:
- Kolom MASA STUDI digunakan sebagai class target forecasting dan dimasukkan ke
dalam variable y.
- Values digunakan untuk mengambil nilai dari kolom.
Kolom IPK digunakan sebagai fitur untuk klasifikasi. Fitur-fitur tersebut dimasukkan ke
dalam variable features.
h. Menyiapkan data fitur untuk proses training
Keterangan :
- StandarScaler digunakan untuk melakukan standardisasi fitur dengan menghapus mean
dan scaling ke varians unit
- fit digunakan untuk menghitung mean dan std untuk digunakan untuk skala selanjutnya.
- transform digunakan untuk melakukan standardisasi dengan cara memusat dan
menskala
i. Melakukan pelatihan menggunakan SVR Scikit Learn untuk membuat model Forecasting.
Keterangan:
- SVR merupakan fungsi sklearn yang digunakan untuk memanggil SVR
- Kernel digunakan untuk menentukan jenis kernel yang akan digunakan dalam algoritma.
Dapat menggunakan 'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'.
- C digunakan untuk penalty parameter C dari error term.
- Gamma digunakan untuk mengukur koefisien Kernel untuk 'rbf', 'poly' dan 'sigmoid'.
Jika gamma ‘auto’ maka 1 / n_features akan digunakan sebagai gantinya.
Praktikum Data Mining - Teknik Informatika – UAD - 2019
52
A. Testing
Pada proses testing, performa dari algoritma atau classifier akan diuji menggunakan testing set
(data uji). Langkah-langkah dalam testing adalah sebagai berikut.
1. Buat data uji dengan menggunakan dataframe yang sudah digunakan sebelumnya, ambil 3
data secara acak untuk data uji.
Data uji, diambil secara acak dari data training kemudian disimpan dalam variable d_test.
2. Menentukan kolom yang digunakan sebagai class target atau label pada data uji.
Pada proses prediksi, model yang disimpan dalam variable SVR_model digunakan untuk
mengetahui hasil forecasting dengan memasukkan fitur data uji (testdata)
7.5. TUGAS
Jika diketahui akan dilakukan analisis data mining pada dataset sebelumnya untuk mengetahui
forecasting data, maka gunakan langkah yang sama seperti pada saat praktikum, lakukanlah
forecasting atau peramalan data dari dataset.
Pertemuan ke :8
Terdapat beberapa pengujian yang di gunakan dalam pengolahan data untuk memastikan hasil
dari pengolahan data tersebut, yaitu:
1. Silhouette
Silhouette berfungsi untuk menguji kualitas dari cluster yang dihasilkan. Metode ini merupakan
metode validasi cluster yang menggabungkan metode cohesion dan Separation. Untuk
menghitung nilai silhoutte coefisient diperlukan jarak antar dokumen dengan menggunakan
rumus EuclideanDistance. Setelah itu tahapan untuk menghitung nilai silhoutte coeffisien adalah
sebagai berikut :
a. Untuk setiap objek i, hitung rata-rata jarak dari objek i dengan seluruh objek yang berada
dalam satu cluster. Akan didapatkan nilai rata-rata yang disebut ai.
b. Untuk setiap objek i, hitung rata-rata jarak dari objek i dengan objek yang berada di cluster
lainnya. Dari semua jarak rata-rata tersebut ambil nilai yang paling kecil. Nilai ini disebut bi.
c. Setelah itu maka untuk objek i memiliki nilai silhoutte coefisien :
Si= (bi – ai) / max(ai, bi)
Hasil perhitungan nilai silhoutte coeffisien dapat bervariasi antara -1 hingga 1. Hasil clustering
dikatakan baik jikai nilai silhoutte coeffisien bernilai positif (ai< bi) dan ai mendekati 0, sehingga
akan menghasilkan nilai silhoutte coeffisien yang maksimum yaitu 1 saat ai = 0. Maka dapat
dikatakan, jika si = 1 berarti objek i sudah berada dalam cluster yang tepat. Jika nilai si = 0 maka
objek i berada di antara dua cluster sehingga objek tersebut tidak jelas harus dimasukan ke dalam
cluster A atau cluster B. Akan tetapi, jika si = -1 artinya struktur cluster yang dihasilkan
overlapping, sehingga objek i lebih tepat dimasukan ke dalam cluster yang lain.
2. Confusion Matrix
Confusion matrix adalah suatu metode yang biasanya digunakan untuk melakukan perhitungan
akurasi pada konsep data mining. Rumus ini melakukan perhitungan dengan 4 keluaran, yaitu:
recall, precision, acuraccy dan error rate.
Keterangan:
3. Purity
Purity adalah sebagai evaluasi kinerja algoritma clustering. Purity akan menghasilkan persentase
akurasi kinerja clustering. Berikut ini merupakan rumus dari
𝑚𝑎𝑥
1
𝑝𝑢𝑟𝑖𝑡𝑦 = ∑ 𝑗 |𝑤𝑘 ∩ 𝑐𝑗 |
𝑁
𝑘
Dimana cara kerja purity ini adalah mengambil nilai maksimal dari elemen cluster yang terbentuk
dan kemudian nilai perwakilan cluster tersebut akan dijumlahkan dengan elemen cluster yang
terbentuk dari cluster yang lain sebagai perwakilan setiap cluster, Setelah itu dibagi dengan
jumlah seluruh elemen data
4. Lift Rasio
Lift Ratio adalah parameter penting selain support dan confidence dalam association rule. Lift
Ratio mengukur seberapa penting rule yang telah terbentuk berdasarkan nilai support dan
confidence. Lift Ratio merupakan nilai yang menunjukkan kevalidan proses transaksi dan
memberikan informasi apakah benar produk A dibeli bersamaan dengan produk B. Lift
/Improvement Ratio dapat dihitung dengan rumus:
𝐴 ∩𝐵
𝑠𝑢𝑝𝑝𝑜𝑟𝑡 = 𝑥𝐵
𝐴
Praktikum Data Mining - Teknik Informatika – UAD - 2019
57
Langkah 1
print(__doc__)
# The silhouette_score gives the average value for all the samples.
# This gives a perspective into the density and separation of the formed
# clusters
silhouette_avg = silhouette_score(X, cluster_labels)
print("For n_clusters =", n_clusters,
"The average silhouette_score is :", silhouette_avg)
y_lower = 10
for i in range(n_clusters):
# Aggregate the silhouette scores for samples belonging to
# cluster i, and sort them
ith_cluster_silhouette_values = \
sample_silhouette_values[cluster_labels == i]
ith_cluster_silhouette_values.sort()
size_cluster_i = ith_cluster_silhouette_values.shape[0]
y_upper = y_lower + size_cluster_i
# Label the silhouette plots with their cluster numbers at the middle
ax1.text(-0.05, y_lower + 0.5 * size_cluster_i, str(i))
# The vertical line for average silhouette score of all the values
ax1.axvline(x=silhouette_avg, color="red", linestyle="--")
for i, c in enumerate(centers):
ax2.scatter(c[0], c[1], marker='$%d$' % i, alpha=1, s=50)
plt.show()
Rumus Silhouette
Langkah 2:
Rumus Purity
Def purity_score (cluster, classes): - yaitu fuction untuk menghitung nilai purity pada data
test. Dan untuk menghitung nilai purity yang dipengaruhi oleh jumlah cluster dan class
Classes - adalah nilai data training. kemudian data ini akan di bandingkan dengan data test
yang di dapatkan menggunakan function diatas. hasil dari perbandingan ini yaitu jarak antara
data training dan data test semakin kecil nilai accuratenya maka pengujian kemurniannya
semakin bagus antara nilai training dan test sama.
Langkah 3
Buka file python Forecasting untuk menjalankan pengujian pada forecasting selain MAD
Mean_Absolute_Precentage_Error
Mean_Squared_Error
- Tambahkan library ini untuk menalankan rumus MSE, Mean_squared_error digunakan untuk
menghitung nilai kuadrat error, dengan menginputkan nilai actual (y_true) dan nilai forecasting
(predict)
8.5. TUGAS
Jika diketahui akan dilakukan analisis data mining pada dataset sebelumnya untuk mengetahui hasil
uji data, maka gunakan langkah yang sama seperti pada saat praktikum, lakukanlah pengujian data
dari dataset menggunakan metode yang sudah dipelajari..
PRAKTIKUM 9: PREPROCESSING
Pertemuan ke :9
b. Filtering
Tahap filtering adalah tahap mengambil kata - kata penting dari hasiltokenizing. Proses
filtering dapat menggunakan algoritma stoplist(membuang kata yang kurang penting)
atau wordlist (menyimpan kata penting). Stoplist / stopword adalah kata-kata yang tidak
deskriptif yang dapat dibuang dalam pendekatan bag-of-words. Contoh stopword adalah
“yang”, “dan”, “di”, “dari” dan lain – lain.(Triawati, 2009). Contoh :
c. Stemming
Stemming adalah proses mengubah kata berimbuhan menjadi kata dasar. Aturan-aturan
bahasa diterapkan untuk menanggalkan imbuhan-imbuhan pada kata. Contoh:
2. Tf-Idf
Tf menyatakan jumlah berapa banyak keberadaan suatu term dalam satu dokumen dan kemudian
dilogaritmikan agar mengurangi besarnya bilangan, dimana logaritmik suatu bilangan akan
mengurangi digit jumlah, misalnya 1000 dengan log (1000) hanya menghasilkan angka tiga. Rumus
Tf adalah sebagai berikut:
Jadi jika suatu term terdapat dalam suatu dokumen sebanyak 5 kali maka diperoleh bobot = 1 +
log (5) =1.699. Tetapi jika term tidak terdapat dalam dokumen tersebut, bobotnya adalah nol.
Terkadang suatu term muncul di hampir sebagian besar dokumen mengakibatkan proses
pencarian term unik terganggu. Idf berfungsi mengurangi bobot suatu term jika kemunculannya
banyak tersebar di seluruh koleksi dokumen kita. Rumusnya adalah dengan inverse document
frequency. Document frequency adalah seberapa banyak suatu term muncul di seluruh document
yang diselidiki.
Sehingga bobot akhir suatu term adalah dengan mengalikan keduanya yaitu tf x idf.
1. Buka file baru pada python, praktikum kali ini berbeda dengan sebelumnya. Jika sebelumnya kita
inputkan file maka praktikum kali ini akan kita coba untuk menginpukan data secara manual.
Pertama kita buat kalimat terlebih dahulu yang akan di proses menggunakan preprocessing.
Contoh
kalimat =[ 'belajar preprocessing yang lebih sederhana ,'
'preprocessing data pada text mining ']
2. Tokenisasi
-lakukan tokenisasi pada kalimat di atas dengan cara sebagai berikut :
from nltk.tokenize import word_tokenize
- From nltk.tokenize import word_tokenize yaitu library yang di gunakan untuk melakukan token
atau memecah kalimat menjadi kata.
list_token = []
word_token = word_tokenize(reviews)
list_token.append(word_token)
print (word_token)
list_sentence = []
data_clean = []
data_clean.append(review)
print (data_clean)
list_sentence.append(data_clean)
4. Stemming
Library yang digunakan untuk stemming yaitu Sastrawi, sebelum menggunakan sastrawi pada
jupyter sastrawi tharus di install terlebih dahulu, cara:
- Buka jendela anaconda prompt baru.
factory = StemmerFactory()
stemmer = factory.create_stemmer()
list_stem = []
for reviews in list_token:
data_clean = []
for review in reviews:
if review not in data_stopword:
data_clean.append(stemmer.stem(review))
print (data_clean)
list_stem.append(data_clean)
term_fit=CV.fit(data_clean)
print (len(term_fit.vocabulary_))
- untuk menghitung kata yang sudah di preprocessing, dan jika terdapat kata yang sama makan
akan di hitung menjadi 1.
print (term_fit.vocabulary_)
term_frekuency = term_fit.transform(kalimat)
print (term_frekuency)
term = term_fit.transform(data_clean)
print (tfidf)
9.5. TUGAS
Jika diketahui akan dilakukan analisis data mining pada dataset sebelumnya, maka gunakan langkah
yang sama seperti pada saat praktikum, lakukanlah preprocessing data dari dataset.
Pertemuan ke : 10
2. Flask
Flask adalah micro web framework yang ditulis dalam bahasa pemrograman Python dan
berdasarkan Werkzeug toolkit dan template engine Jinja2 berlisensi BSD. Flask disebut micro
framework karena tidak membutuhkan alat-alat tertentu atau pustaka. Micro framework Flask
bertujuan menjaga core agar tetap simple akan tetapi dapat dikembangkan dalam skala besar. Flask
tidak memiliki database abstraction layer, validasi form, atau komponen lain di mana sudah ada
pustaka pihak ketiga yang menyediakan fungsi umum. Namun, Flask mendukung ekstensi yang dapat
menambahkan fitur aplikasi seolah-olah mereka diimplementasikan dalam Flask itu sendiri. Ekstensi
yang ada untuk object-relational mapper, validasi form, penanganan unggahan, berbagai teknologi
otentikasi terbuka, dan beberapa alat-lata yang terkait kerangka umum. Ekstensi diperbarui jauh
lebih teratur daripada inti program Flask.
Pada dasarnya ada paradigm umum yang digunakan pada hampir setiap Framework, yaitu
MVC (Model – View – Controller). Pada Flask ataupun Django juga dikenal konsep demikian, yaitu
MTV ( Model – Template – View). MVC maupun MTV adalah sebuah metode dalam membuat aplikasi
Praktikum Data Mining - Teknik Informatika – UAD - 2019
70
3. Jinja2
Jinja2 adalah template engine berfitur lengkap untuk Python yang berlisensi BSD (Barkeley
Software Distribution). Jinja2 memiliki Unicode support penuh dan memiliki opsi untuk terintegrasi
dengan lingkungan eksekusi sandbox.
A. Installasi dependencies
Praktikum Data Mining - Teknik Informatika – UAD - 2019
71
1. Installing Flask
Buka anaconda promt lalu ketikkan perintah berikut : pip install Flask
2. Installing pymongo
Buka anaconda promt lalu ketikkan perintah berikut :
pip install pymongo
B. Dasar Flask
Mari kita mulai dengan membuat Hello World dengan Flask.
1. Buat satu folder untuk mengerjakan project kita, misalnya kita sebut DataMining
2. Buat folder app
a. Buat file __init__.py
Sehingga app akan menjadi sebuah package python. File init ini diisi dengan:
Keterangan:
Membuat sebuah objek Flask di sebuah variabel app, kemudian mengimport modul
views. Views ini adalah program yang menangani request dari web browser. Setiap
fungsi view bisa jadi satu atau lebih URL.
Pada kode di atas, ada dua URL yang dipetakan dengan decorator route, yaitu / dan
/index.
4. Run Flask
Buat sebuah script run.py pada folder root (DataMining) untuk menjalankan web server kita.
Kita isi run.py dengan kode berikut ini:
Kemudian masuk kedalam folder aplikasi flask yang telah dibuat melewati terminal Jalankan
file run.py dengan perintah sebagai berikut: python run.py
5. Web Access
Maka port 5000 akan membuka dan menyediakan web server untuk aplikasi tadi. Kemudian
kita buka saja http://localhost:5000/ atau http://localhost:5000/index di browser maka
akan ditampilkan sebuah halaman dengan tulisan Hello, World!
Saat command prompt menjalankan web server.
10.5. TUGAS
Seperti pada langkah saat praktikum, buatlah biodata diri minimal (Nama, Nim, Prodi).
Pertemuan ke : 11
Indikator ketercapaian diukur dengan pembuatan data mining dengan interface dan menganalisa hasil
interface.
1. Interface
Interface (antarmuka) adalah bentuk tampilan grafis yang berhubungan langsung dengan
pengguna (user). Antarmuka pengguna berfungsi untuk menghubungkan antara pengguna
dengan sistem. Lebih menekankan pada tampilan visual yang langsung bisa dilihat / dirasakan
oleh pengguna. Menghasilkan antarmuka yang mudah, efisien dan enak dinikmati sehingga
penggunaan sistem bia memenuhi tujuan pengguna.
2. Pengertian Microframework
Micro tidak berarti semua aplikasi web dapat dijadikan kedalam satu file Python, seperti itu
bukan berarti kekurangan dalam fungsionalitas. Micro framework (Flask) bertujuan menjaga
core agar tetap simple akan tetapi dapat dikembangkan dalam skala yang besar. Flask tidak ingin
membuat banyak aturan untuk seorang developer, seperti contoh database apa yang akan
digunakan, aturan template engine apa yang harus digunakan. Sehingga developer bebas
memilih apapun segalanya yang dibutuhkan dan apa yang tidak dibutuhkan.
Secara default, didalam Flask tidak tersedia database abstraction layer, validation form
atau sesuatu yang lain dimana macam – macam library sudah tersedia dan dapat segera dipakai.
Flask mendukung pengembangan untuk penambahan fungsionalitas kebutuhan. Meskipun flask
adalah “micro”, akan tetapi siap digunakan untuk berbagai macam kebutuhan.
3. Blueprint
Blueprint adalah salah satu Flask extensions yang dimana mendukung pengaturan
modular aplikasi dalam sekala yang besar. Dengan menggunakan blueprint maka beberapa
fungsionalitas yang kompleks dapat dipecah kedalam beberapa modul yang saling terkait.
Konsep blueprint itu sendiri adalah dengan mendaftarkan setiap alamat url dari modular yang
telah dibentuk, sehingga setiap modular dapat diakses secara terpisah meskipun berada dalam
file routing yang berbeda.
4. Jinja2
Jinja2 adalah template engine berfitur lengkap untuk Python yang berlisensi BSD (Barkeley
Software Distribution). Jinja2 memiliki Unicode support penuh dan memiliki opsi untuk
terintegrasi dengan lingkungan eksekusi sandbox.
1. Buatlah satu folder untuk mengerjakan project, missal kita sebut Flask
2. Buat Folder ‘app’ di dalam Folder ‘Flask’ yang telah kita buat sebelumnya dan buat File ‘run.py’
dan File ‘config.py’
Keterangan :
Keterangan :
- DEBUG merupakan konfigurasi debuging (aplikasi dalam proses pengembangan)
- SECRET_KEY merupakan enkripsi prosesing flask
Keterangan :
app.run merupakan konfigurasi untuk setting microserver dengan host ‘0.0.0.0’ dan port yang
digunakan adalah 8080, sehingga nantinya apabila dilakukan akses didalam browser menjadi
http://0.0.0.0:8080
Keterangan:
- modul : berisikan beberapa modul yang diterapkan kedalam sistem, beberapa contoh modul
dalam sistem yang diterapkan:
• cleaning (modul cleaning data mentah)
• cluster (modul proses clustering)
• purity (modul validity test purity)
• upload (modul untuk upload file)
- static : berisi file static, yang berhubungan dengan support template diantaranya file css dan
javascript
- templates : berisikan file-file html yang digunakan untuk view kedalam web pages.
- upload_data : berisikan untuk menampung file upload, (data Excel (Mentah))
6. Penerapan modul
Setiap modul akan berisi controller dengan opsional dbmodel ataupun file-file pendukung lainnya.
(mengambil contoh module upload). Di dalam folder modul terdapat folder foder baru dengan
nama upload dan file ‘ init .py’. Buat file ‘ init .py’ dan buat file ‘controllers.py’ didalam folder
upload
import pandas as pd
import os
Keterangan :
- mod_upload adalah nama modul index upload
- mod_uploader adalah nama modul prosesing upload
- url_prefix merupakan alias untuk address page di browser
Keterangan :
- MainTitle adalah variable
- methods = [‘GET’,’POST’] (methods tersebut merupakan jenis request access yang
dilayani oleh routers mod_upload)
- def upload_file adalah method yang dimiliki mod_upload
- render_template adalah render seluruh prosesing dalam router untuk ditampilkan
kedalam file template dengan nama ‘upload/upload.html’
d. Create method dari setiap modul yang telah dibuat. Untuk method mod_uploader
if request.method ==
'POST': subTitle =
("Data Excel") f =
request.files['file'
]
data =
pd.DataFrame(sheet_ranges.values)
button = [(str(request.url_root))]
- url_for digunakan untuk accessing path file (dengan contoh access static path file)
8. Penerapan Folder Templates
Pada folder templates digunakan untuk membuat tampilan dari proses yang ada di dalam folder
modul. Buat Folder ‘upload’ dan file ‘404.html’. Pada Folder ‘upload’ isikan file ‘upload.html’ dan
‘tables.html’.
<html>
<body>
<div class="container">
<div class="row">
<h1>Clustering [KMeans]</h1>
</div>
<div class="row">
<form action="http://localhost:8080/mod_uploader"
method="POST" enctype="multipart/form-data">
</div>
<div class="form-group row">
<div class="col-
sm-2">
</div>
</div>
</form>
</div>
</div>
</body>
<!doctype html>
<link rel="stylesheet" type="text/css" href="{{url_for('static',
filename='bootstrap/css/
bootstrap.min.css')}}">
<link rel=stylesheet type=text/css href="{{ url_for('static',
filename='style.css') }}">
<html>
<body>
<div class="container">
<div class="row">
<h1>{{text[0]}}</h1>
</div>
<div class="row">
<div class="col-sm-12">
{% endif %}
</div>
</div>
</form>
</div>
</div>
<div class="row">
<center>
<h3>{{text[1]}}</h3>
{{ plot_url }}
➢ </center>
Isi file “tables.html”
</div>
<div class="row">
<center>
{% for table in tables %}
{{ table|safe }}
{% endfor %}
</center>
</div>
</div>
</body>
</html>
Praktikum Data Mining - Teknik Informatika – UAD - 2019
81
# Configurations
app.config.from_object('config')
def not_found(error):
return render_template('404.html'), 404
# Register blueprint(s)
app.register_blueprint(upload_module)
python run.py
11. Web Pages Access
Buka browser kemudian akses alamat url : http://0.0.0.0:8080/mod_upload maka akan muncul
halaman website sebagai berikut.
11.5. TUGAS
Buatlah web sederhana menggunakan python dan tampilkan data studi kasus kalian seperti pada
contoh praktikum serta tampilkan biodata kalian seperti pada posttest interface sebelumnya
DAFTAR PUSTAKA
1. Han, Jiawei and Kamber, Micheline, 2006, Data Mining Concept and Techniques, Morgan
Kaufmann Publishers
2. Hermawati, F., 2013, Data Mining, Penerbit Andi dan Universitas 17 Agustus 1945 Surabaya.