Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
28
BAB 4
Hasil Dan Pembahasan
4.1 Implementasi Sistem
Pada bagian ini, akan dibahas implementasi dari setiap
perancangan yang sudah dibuat pada bab sebelumnya.
4.1.1 Proses Normalisasi Data Spasial
Seperti yang telah dijelaskan pada bagian perancangan
sistem, sebelum melakukan clustering data user harus
memasukkan data berupa data spasial. Data spasial tersebut akan
dinormalisasi terlebih dahulu menggunakan rumus Min-Max
Normalization. Pada bagian ini akan dibahas proses normalisasi
untuk salah satu objek dari data yang dimasukkan oleh user yaitu
longitude = 129.879684 dan latitude = -0.444255 dengan nilai
minimal untuk longitude adalah 129.879684 dan nilai minimal
untuk latitude adalah -3.880696, sedangkan nilai maksimal untuk
longitude adalah 134.870481 dan nilai maksimal untuk latitude
adalah -0.046692. Berikut ini adalah proses normalisasi tersebut
dengan nilai minimal baru yang diinginkan untuk longitude dan
latitude adalah nol dan nilai maksimal baru untuk keduanya
adalah 100.
- Normalisasi longitude
( )
29
( )
- Normalisasi latitude
( )
( ) ( )
( )
Dari proses normalisasi di atas, dapat dilihat bahwa data
longitude yang baru adalah 0.00000 dan data latitude yang baru
adalah 89.630605. Proses normalisasi tersebut dilakukan pada
semua objek data yang dimasukkan oleh user. Data spasial yang
menjadi kasus dalam penelitan ini dapat dilihat pada Lampiran 1
dan hasil normalisasi dapat dilihat pada Lampiran 2.
Implementasi proses normalisasi tersebut dalam program
yang dibuat dituliskan dengan kode seperti pada Kode Program
4.1.
Kode Program 4.1 Proses Normalisasi Data
1. $setData = normalisasi($namadb, $kolom1, $kolom2);
2. $A = $setData[0];
3. $minA = $setData[1];
4. $maxA = $setData[2];
5. $C = $setData[3];
6. $D = $setData[4];
7. for($i=0; $i
30
Pada baris 1 dari Kode Program 4.1, dapat dilihat program
memanggil fungsi normalisasi dengan parameter nama database
yang digunakan serta kolom yang berisi data latitude dan
longitude. Nilai yang dikembalikan dari fungsi tersebut adalah
nilai terkecil dan terbesar data yang akan dinormalisasi serta
range yang diinginkan untuk proses normalisasi tersebut.
Pengkodean untuk normalisasi data dengan rumus Min-Max
Normalization terdapat pada baris 8 dan baris 9 dari Kode
Program 1.
4.1.2 Proses Clustering
Setelah data spasial dinormalisasi, data tersebut akan
dikelompokkan melalui proses clustering. Proses clustering
dilakukan menggunakan Algoritma K-Means. Berikut ini adalah
proses clustering terhadap data yang sudah dinormalisasi sesuai
dengan penjelasan mengenai Algoritma K-Means pada bab
sebelumnya.
1. Menentukan nilai K atau jumlah cluster dan centroid
Misalkan nilai K yang dimasukkan adalah dua, sehingga
centroid yang ditentukan juga sebanyak dua centroid. Centroid
awal dalam algoritma K-Means ditentukan secara acak, sehingga
hasil clustering dapat berubah-ubah. Pada kasus dalam penelitian
ini, jumlah cluster yang baik dengan hasil clustering tidak banyak
perubahan adalah dua. Oleh karena itu, pada bagian ini akan
dibahas prose clustering untuk jumlah cluster dua. Adapun
centroid dari objek tersebut adalah latitude dan longitude dari
31
objek nomor satu (0.000000, 89.630605) yang dapat disimbolkan
dengan C1 dan objek nomor dua (15.194267, 99.211999) yang
dapat disimbolkan dengan C2.
2. Mengelompokkan data ke dalam cluster
Data dikelompokkan berdasarkan jarak terdekat ke centroid
yang dihitung menggunakan fungsi jarak yaitu Euclidean
Distance. Berikut ini adalah contoh perhitungan jarak antara
objek dan centroid, untuk objek dengan longitude = 0.000000 dan
latitude = 89.630605.
- Jarak objek ke C1
√( ) ( )
- Jarak objek ke C2
√( ) ( )
√
Perhitungan jarak dilakukan pada semua objek data seperti
contoh di atas. Berdasarkan hasil perhitungan jarak maka anggota
cluster satu berjumlah 10 dan anggota cluster dua berjumlah 69.
Hasil perhitungan jarak dapat dilihat pada Lampiran 3.
Implementasi perhitungan jarak pada program dituliskan dengan
kode seperti pada Kode Program 4.2.
Kode Program 4.2 Perhitungan Jarak
1. function jarak($obj, $cent) { 2. $x = pow(($obj[0]-$cent[0]),2);
3. $y = pow(($obj[1]-$cent[1]),2);
4. return round(sqrt($x + $y), 2);
5. }
32
Pada Kode Program 4.2 terdapat fungsi jarak dengan
parameter obj yaitu data objek yang akan dikelompokkan serta
cent sebagai centroid yang akan digunakan untuk menghitung
jarak. Fungsi jarak melakukan perhitungan jarak antara masing-
masing objek data ke centroid yang sudah ditentukan. Sesuai
dengan penjelasan mengenai Algoritma K-Means, maka langkah
selanjutnya adalah mengelompokkan tiap data ke dalam cluster.
Data dikelompokkan berdasarkan hasil perhitungan jarak
minimum. Implementasi pengelompokkan data pada sistem dapat
dilihat pada Kode Program 4.3.
Kode Program 4.3 Pengelompokan Data
1. function clustering($data, $centroids, $k) { 2. foreach($data as $indexDataObj => $dataObj) {
3. foreach($centroids as $centroid) {
4. $arrJarak[$indexDataObj][] = jarak($dataObj,
$centroid);
5. }
6. }
7. foreach($arrJarak as $indexJarak => $jarak) {
8. $cluster = minCent($jarak);
9. $arrTempCluster[$cluster][] = $indexJarak;
10. $arrJarak_dari_clusters = array("$indexJarak" =>
$jarak);
11. }
12. if(count($arrTempCluster) < $k) { 13. $latLngCluster = maxCent($arrJarak_dari_clusters);
14. foreach($arrTempCluster as $tempIndex =>
$tempCluster) {
15. foreach($tempCluster as $tempObj) {
16. if($tempObj == $latLngCluster) {
17. $clusters[$k+1][] = $tempObj;
18. } else {
19. $clusters[$tempIndex][] = $tempObj;
20. }
21. }
22. }
23. } else {
24. $clusters = $arrTempCluster;
25. }
26. return $clusters;
27. }
33
Pada Kode Program 4.3 terdapat fungsi clustering yang
berfungsi untuk melakukan pengelompokan data. Secara garis
besar, fungsi ini akan memanggil fungsi jarak untuk menghitung
jarak dan hasilnya ditampung dalam variabel arrJarak. Setelah itu,
akan diambil nilai minimum dari hasil perhitungan tersebut. Nilai
minimum dari masing-masing objek kemudian dikelompokkan
satu cluster yang sama.
3. Menghitung ulang K cluster
Setelah selesai mengelompokan objek ke dalam cluster,
langkah selanjutnya adalah menghitung K cluster dengan
centroid yang baru. Centroid baru ditentukan dengan cara sebagai
berikut :
- Centroid satu (C1)
(
)
- Centroid dua (C2)
(
)
Berdasarkan hasil perhitungan centroid baru sesuai dengan
cara di atas, maka centroid baru untuk C1 adalah (10.904094,
40.554836) dan untuk C2 adalah (59.051441, 67.729235). Setelah
mendapatkan centroid baru, ulangi langkah kedua dan langkah
ketiga sampai tidak ada lagi objek data yang berpindah cluster.
Implementasi perhitungan centroid baru dapat dilihat pada Kode
Program 4.
34
Kode Program 4.4 Perhitungan Centroid Baru
Pada Kode Program 4.4 terdapat dua fungsi yaitu fungsi
centroidBaru dan hitungCent. Secara garis besar, fungsi
hitungCent akan memanggil fungsi centroidBaru seperti pada
baris 19 untuk melakukan perhitungan centroid baru yang akan
digunakan pada iterasi berikutnya dari algoritma K-Means.
Setiap kode program yang menerapkan proses algoritma K-
Means akan dijalankan melalui fungsi kmeans seperti pada Kode
Program 4.5.
1. function centroidBaru($latLng) {
2. $x = 0;
3. $y = 0;
4. foreach($latLng as $k) {
5. $x = $x + $k[0];
6. $y = $y + $k[1];
7. }
8. $center[0] = round($x / count($latLng), 6);
9. $center[1] = round($y / count($latLng), 6);
10. return $center;
11. }
12. function hitungCent($clusters, $data) {
13. foreach($clusters as $noCluster => $arrObjCluster) {
14. foreach($arrObjCluster as $objCluster) {
15. $arrObjCluster_latLng[$noCluster][] =
$data[$objCluster];
16. }
17. }
18. foreach($arrObjCluster_latLng as $objCluster_latLng)
{
19. $cluster_centers[] =
centroidBaru($objCluster_latLng);
20. }
21. return $cluster_centers; 22. }
35
Kode Program 4.5 Eksekusi Algoritma K-Means
Pada Kode Program 4.5 terdapat fungsi kmeans yang akan
dieksekusi untuk melakukan proses algoritma K-Means. Program
akan menentukan nilai centroid awal dengan memanggil fungsi
centroid pada baris 6. Baris 7 sampai baris 12 merupakan
perulangan yang dilakukan untuk mendapatkan hasil clustering
setelah tidak ada lagi data yang berpindah cluster. Hasil dari
proses clustering akan ditampilkan oleh program seperti pada
Gambar 4.1.
Gambar 4.1 Hasil Clustering
1. function kmeans($data, $k) {
2. if($k
36
Data yang dimasukkan oleh user adalah data mengenai
potensi bahan tambang di Provinsi Papua Barat dengan jumlah
titik sebanyak 79 titik. Berdasarkan hasil clustering pada Gambar
12, dapat dilihat bahwa nilai K yang dimasukkan oleh user adalah
dua sehingga jumlah cluster yang dibuat juga sebanyak dua
cluster. Selain itu, juga terdapat link Lihat Peta yang dapat
digunakan untuk melihat peta dari hasil clustering yang sudah
dilakukan.
4.1.3 Proses Konversi Data Ke Data Spasial
Setelah melakukan clustering data, data yang sudah
dinormalisasi harus dikembalikan ke dalam bentuk spasial
terlebih dahulu dan kemudian ditampilkan menggunakan
Heatmap. Pengkodean untuk mengembalikan data ke dalam
bentuk spasial dapat dilihat pada Kode Program 4.6.
Kode Program 4.6 Mengembalikan Data Spasial
1. $setData = normal($namadb, $kolom1, $kolom2); 2. $B = $setData[0];
3. $minA = $setData[1];
4. $maxA = $setData[2];
5. $C = $setData[3];
6. $D = $setData[4];
7. .
8. for($i=0; $i
37
Kode Program 4.6 merupakan pengkodean untuk
mengembalikan data yang sudah dinormalisasi menjadi data
spasial. Pada kode program tersebut dapat dilihat bahwa program
memanggil fungsi normal yang berfungsi untuk mengambil data
yang akan dikembalikan. Proses pengembalian data menjadi
bentuk spasial terdapat pada baris 7 sampai baris 9 dari Kode
Program 4.6. Setelah berhasil mengembalikan data dalam bentuk
spasial, data akan ditampilkan menggunakan Heatmap.
4.1.4 Proses Menampilkan Data
Data yang telah dikelompokkan dan dikonversi kembali
dalam bentuk spasial akan ditampilkan menggunakan Heatmap.
Berdasarkan kasus yang digunakan dalam penelitian ini, maka
daerah yang berpotensi menghasilkan bahan tambang akan
berwarna merah. Pengkodean untuk menampilkan data tersebut
dapat dilihat pada Kode Program 4.7.
38
Kode Program 4.7 Menampilkan Data Dengan Heatmap
Kode Program 4.7 merupakan potongan dari fungsi
initialize dengan parameter nama database yang digunakan.
Fungsi tersebut dijalankan program untuk menampilkan data
yang sudah dikelompokkan melalui clustering menggunakan
Heatmap. Baris 1 dari Kode Program 4.7 memanggil data yang
sudah dikembalikan ke dalam bentuk spasial sebelumnya. Data
tersebut kemudian digunakan oleh fungsi initialize untuk
ditampilkan dalam peta seperti yang terlihat pada baris 5 sampai
baris 7 dari Kode Program 4.7 dan kemudian disimpan dalam
1. downloadUrl("../Skripsi/fungsi/map_xml.php?namadb="+ namadb, function(data) {
2. var xml = data.responseXML;
3. var markers = xml.documentElement.
getElementsByTagName("marker");
4. for (var i = 0; i < markers.length; i++) {
5. var nama = markers[i].getAttribute("nama");
6. var cluster = markers[i].getAttribute
("cluster");
7. var point = new google.maps.LatLng
(parseFloat(markers[i].
getAttribute("lat")),
parseFloat(markers[i].
getAttribute("lng")));
8. disk_points.push(point);
9. var html = "" + nama + "
Anggota
cluster " + cluster;
10. var marker = new google.maps.Marker({
position: point});
bindInfoWindow(marker, map,
infoWindow, html);
marker_array.push(marker);
11. }
12. });
13. pointArray = new google.maps.MVCArray(disk_points);
14. heatmap = new google.maps.visualization.
HeatmapLayer({
15. data: pointArray
16. });
17. heatmap.set('radius', 25);
18. heatmap.set('gradient', gradient);
19. heatmap.setMap(map);
39
variabel pointArray pada baris 13. Pengkodean untuk
menampilkan data dalam variabel pointArray dengan Heatmap
terdapat pada baris 17 sampai baris 19 dari Kode Program 4.7.
Data yang ditampilkan oleh Heatmap dapat dilihat pada Gambar
4.2.
Gambar 4.2 Peta Hasil Clustering
Gambar 4.2 menunjukkan hasil clustering dari data yang
dimasukkan oleh user. Dari gambar tersebut dapat dilihat bahwa
daerah yang berpotensi menghasilkan bahan tambang berwarna
merah. Pada gambar tersebut juga terdapat form Tambah Objek
Baru yang dapat digunakan jika user ingin menambah objek baru.
Jika gambar tersebut diperbesar, maka akan ditampilkan detail
dari masing-masing titik berupa informasi mengenai objek yang
terdapat pada titik tersebut seperti yang ditunjukkan pada Gambar
4.3.
40
Gambar 4.3 Informasi Objek Tiap Titik
4.2 Pengujian
4.2.1 Black Box Testing
Setelah melakukan implementasi terhadap perancangan
yang telah dibuat, maka tahap selanjutnya dalam penelitian ini
adalah pengujian. Pengujian yang dilakukan yaitu Black Box
Testing. Black Box Testing bisa juga disebut sebagai functional
testing, sebab pengujian dilakukan pada tiap fungsi yang ada pada
program (Saleh, 2009).
Pada pengujian dengan Black Box Testing, akan diuji
validitas dari fungsi-fungsi yang ada. Fungsi yang berhasil
ditandai dengan (), sedangkan fungsi yang gagal ditandai
dengan (). Hasil dari pengujian tersebut dapat dilihat pada Tabel
4.1.
41
Tabel 4.1 Hasil Black Box Testing
FUNGSI SKENARIO INPUT HASIL VALIDITAS
Upload File Mengunggah
dokumen data
objek
Dokumen
Excel
Dokumen
berhasil
diunggah
Normalisasi Mengubah data
spasial ke dalam
bentuk Kartesius
Latitude
dan
Longitude
objek
Data berhasil
dinormalisasi
Clustering Mengelompookan
objek ke dalam
cluster
Nilai K
dan
Dokumen
Excel
Setiap
cluster
memiliki
objeknya
masing-
masing
View Map Menampilkan
peta hasil
clustering
Menekan
link Lihat
Peta
Daerah hasil
clustering
berwarna
merah
Insert Data Menambahkan
data objek yang
baru pada peta
Menekan
titik objek
yang
diinginkan
dan
tombol
TAMBAH
Jumlah objek
bertambah,
anggota
cluster
berubah
Black Box Testing dilakukan oleh programmer yang
membuat program tersebut, dalam hal ini peneliti. Fungsi-fungsi
yang digunakan untuk melakukan clustering diuji melalui Black
Box Testing tersebut. Berdasarkan hasil pengujian pada Tabel 4.1,
setiap fungsi sudah berjalan dengan baik atau valid.
42
4.2.2 Pengujian Penelitian
Selain Black Box Testing, juga dilakukan pengujian
terhadap penelitian yang dilakukan. Pengujian ini dilakukan
untuk melihat kembali tujuan dari penelitian ini, yaitu clustering
data spasial. Pengujian dilakukan melalui nilai K yang
dimasukkan. Hasil dari pengujian tersebut dapat dilihat pada
Tabel 4.2.
Tabel 4.2 Hasil Pengujian Penelitian
Nilai K Durasi
Clustering
Jumlah
Anggota Nilai K
Durasi
Clustering
Jumlah
Anggota
1 28.6 detik Cluster 1 : 79
8 34 detik
Cluster 1 : 1
2 30.5 detik Cluster 1 : 40 Cluster 2 : 3
Cluster 2 : 39 Cluster 3 : 3
3 28.6 detik
Cluster 1 : 30 Cluster 4 : 21
Cluster 2 : 38 Cluster 5 : 10
Cluster 3 : 11 Cluster 6 : 20
4 29.8 detik
Cluster 1 : 10 Cluster 7 : 11
Cluster 2 : 27 Cluster 8 : 10
Cluster 3 : 32
9 34.1 detik
Cluster 1 : 1
Cluster 4 : 10 Cluster 2 : 3
5 31.9 detik
Cluster 1 : 11 Cluster 3 : 3
Cluster 2 : 27 Cluster 4 : 14
Cluster 3 : 27 Cluster 5 : 10
Cluster 4 : 3 Cluster 6 : 22
Cluster 5 : 11 Cluster 7 : 13
6 35.3 detik
Cluster 1 : 7 Cluster 8 : 3
Cluster 2 : 18 Cluster 9 : 10
Cluster 3 : 17
10 32.9 detik
Cluster 1 : 1
Cluster 4 : 23 Cluster 2 : 1
Cluster 5 : 3 Cluster 3 : 3
43
Cluster 6 : 11 Cluster 4 : 2
7 34.1 detik
Cluster 1 : 5 Cluster 5 : 14
Cluster 2 : 6 Cluster 6 : 10
Cluster 3 : 21 Cluster 7 : 22
Cluster 4 : 11 Cluster 8 : 13
Cluster 5 : 23 Cluster 9 : 3
Cluster 6 : 3 Cluster 10 : 10
Cluster 7 : 10
Pada Tabel 4.2 dapat dilihat bahwa semakin besar nilai K
yang diberikan tidak mempengaruhi durasi clustering. Hal ini
terlihat dari durasi clustering yang terus berubah-ubah untuk tiap
nilai K. Berdasarkan hasil tersebut, dapat dikatakan bahwa durasi
clustering tidak bergantung pada nilai K yang diberikan.
Selain itu, hasil yang diperoleh dari pengujian penelitian
yaitu mendapatkan daerah yang paling berpotensi menghasilkan
bahan tambang. Hasil tersebut dapat dilihat pada Gambar 4.4.
44
Gambar 4.4 Hasil Pengujian Penelitian
Gambar 4.4 menunjukkan hasil clustering dengan nilai K
empat, sehingga ada empat cluster yang dibuat dari proses
clustering tersebut. Pada Tabel 4.2 dapat dilihat bahwa cluster
terbaik untuk menghasilkan potensi tambang dengan nilai K
empat adalah cluster tiga, sedangkan pada Gambar 4.4 dapat
dilihat bahwa cluster terbaik untuk menghasilkan potensi
tambang adalah cluster dua. Perbedaan ini disebabkan karena
centroid yang digunakan dalam Algoritma K-Means ditentukan
secara acak.
Centroid 1 Centroid 2
Centroid 3
Centroid 4