Bab 4 Hasil dan Pembahasan -...
Transcript of Bab 4 Hasil dan Pembahasan -...
67
Bab 4
Hasil dan Pembahasan
Bab 4 Hasil dan Pembahasan
Setelah melakukan tahap perancangan yang ada pada bab
3, langkah selanjutnya adalah mengimplementasinya. Dari hasil
tahap implementasi dihasilkan sebuah aplikasi dengan nama
“SPK JALAN - BAPPEDA SALATIGA”
4.1 Implementasi Aplikasi
4.1.1 Implementasi Database
Sesuai pada perancangan tabel maka tabel-tabel yang
terdapat pada database MySQL juga sama seperti pada
perancangannya.
Gambar 4.1. Struktur Tabel tb_id3_data
Gambar 4.1 merupakan penerapan tabel tb_id3_data pada
MySQL Server. Tabel tb_id3_data terdiri dari field id, fungsi,
pengaju, kondisi_jalan dan result.
68
Gambar 4.2. Struktur Tabel tb_id3_result
Gambar 4.2 merupakan penerapan tabel tb_id3_result pada
MySQL Server. Tabel tb_id3_result memiliki field id, atribut,
value dan level.
Gambar 4.3. Struktur Tabel tb_jalan
Gambar 4.3 merupakan penerapan tabel tb_jalan pada
MySQL Server. Tabel tb_jalan memiliki field id_jalan,
nama_jalan, pangkal_simpul, ujung_simpul, status_otonomi,
jalur_lajur, panjang, lebar_damija, lebar_perkerasan,
jenis_perkerasan, fungsi_jalan, kondisi_jalan, last_update,
titik_pangkal dan titik_ujung.
69
Gambar 4.4. Struktur Tabel tb_pengajuan
Gambar 4.4 merupakan penerapan tabel tb_pengajuan pada
MySQL Server. Tabel tb_pengajuan memiliki field id_pengajuan,
userid, id_jalan, kondisi_jalan, status_ID3, waktu dan alasan.
Gambar 4.5. Struktur Tabel tb_user
Gambar 4.5 merupakan penerapan tabel tb_user pada
MySQL Server. Tabel tb_user memiliki field userid, password,
nama, tipe_user, banned, last_active dan alamat.
4.1.2 Implementasi Aplikasi Sistem Pendukung Keputusan
Jalan
Dalam aplikasi Sistem Pendukung Keputusan Jalan,
digunakan sistem login dengan 3 macam hak akses yaitu
administrator dan user biasa yang dapat melakukan
70
pengolahan data pada aplikasi ini dan satu hak akses yang dapat
digunakan ketika koneksi database atau status database
bermasalah. Jika login valid, maka aplikasi akan menampilkan
menu-menu yang sesuai dengan hak akses pada saat login.
Gambar 4.6. Tampilan Awal Aplikasi
Gambar 4.6 merupakan tampilan awal sebelum login.
Untuk dapat masuk ke dalam aplikasi diperlukan username dan
password. Data username dan password disimpan dalam tabel
tb_user.
Gambar 4.7. Tampilan Menu User Administrator
71
Gambar 4.7 merupakan tampilan dari aplikasi ketika user
administrator telah login. Untuk hak akses administrator terdapat
menu yang dapat diakses adalah Data yang meliputi Data Jalan
Salatiga, Data Pengguna, Data ID3 dan Data Pengajuan
Perbaikan. Selain itu, menu User Control dapat diakses Lihat
Peta Salatiga dan Ganti Password. Menu Pengaturan juga dapat
diakses oleh administrator yang meliputi Backup Database,
Restore Database dan Ganti Koneksi Database.
Gambar 4.8. Tampilan Menu User Biasa
Gambar 4.8 merupakan tampilan menu untuk user biasa.
Fungsi dengan adanya menu User Control adalah user biasa
dapat mengakses submenu Lihat Peta Salatiga, Tambah
Pengajuan Perbaikan Jalan, Lihat Data Pengajuan dan Ganti
Password.
4.2 Pembahasan Aplikasi
Dalam pembahasan aplikasi Sistem Pendukung Keputusan
Jalan akan dibahas mengenai metode ID3 dan form-form yang
digunakan.
72
4.2.1 Implementasi Metode ID3
ID3 merupakan sebuah metode yang menghasilkan pohon
keputusan dimana berguna dalam mencapai keputusan tertentu.
Kode Program 4.1. Perhitungan Gain
Kode Program 4.1 digunakan untuk perhitungan nilai gain
dari suatu atribut. Untuk memulai menggunakan perhitungan
gain, maka method gain dipanggil. Method gain mempunyai dua
parameter yaitu samples dan attribute. Parameter samples
bertipe DataTable yang digunakan untuk mem-parsing data
sample yang digunakan oleh method gain. Sedangkan attribute
bertipe data Attribute yang merupakan tipe data turunan
digunakan untuk menyimpan data atribut. Pada baris 4
merupakan deklarasi dan inisialisasi variabel sum yang digunakan
untuk menyimpan nilai entropy dari tiap value pada attribute.
Baris 5 sampai 12 merupakan proses looping untuk value dari
atribut yang di-parsing-kan. Baris 7 sampai 8 merupakan tahap
deklarasi dengan tipe data integer dan inisialisasi dengan nilai 0
1. private double gain(DataTable samples, Attribute
attribute)
2. {
3. string[] values = attribute.values;
4. double sum = 0.0;
5. for (int i = 0; i < values.Length; i++)
6. {
7. int positives, negatives;
8. positives = negatives = 0;
9. getValuesToAttribute(samples,attribute, values[i], out
positives, out negatives);
10. double entropy = calcEntropy(positives, negatives);
11. sum += -(double)(positives + negatives) / mTotal *
entropy;
12. }
13. return mEntropySet + sum;
14. }
73
pada variabel positives dan variabel negatives. Pada baris 9
dilakukan pemanggilan method getValueToAttribute dengan data
yang di-parsing adalah data samples, attribute, nilai pada
attribute saat looping (value[i]), dan parse by reference untuk
variabel positives dan negatives. Method getValueToAttribute
digunakan untuk mendapatkan jumlah nilai negatif dan positif
dari data sample untuk tiap nilai dari attribute. Baris 10 dilakukan
untuk menghitung nilai entropy dari atribut positives dan
negatives. Baris 11 adalah proses menjumlahkan nilai entropy
dari tiap value pada attribute. Baris 13 merupakan proses akhir
dari perhitungan gain. Yaitu entropy(S) dikurangi dengan jumlah
entropy dari tiap value pada attribute.
Kode Program 4.2. Perhitungan Entropy
Kode Program 4.2 merupakan perintah untuk menghitung
nilai entropy. Untuk menghitung nilai entropy diperlukan 2
parameter yaitu jumlah nilai negatif dan positif. Nilai total
didapat dari menjumlah nilai negatif dan positif. Baris 4 dan 5
digunakan untuk menghitung nilai perbandingan nilai positif dan
1. private double calcEntropy(int positives, int negatives)
2. {
3. int total = positives + negatives;
4. double ratioPositive = (double)positives/ total;
5. double ratioNegative = (double)negatives/ total;
6. if (ratioPositive != 0)
7. ratioPositive = -(ratioPositive) *
System.Math.Log(ratioPositive, 2);
8. if (ratioNegative != 0)
9. ratioNegative = -(ratioNegative) *
System.Math.Log(ratioNegative, 2);
10. double result = ratioPositive + ratioNegative; 11. } 12. return result;
13. }
74
negatif dengan nilai total. Baris 6 dan 8 merupakan suatu kondisi
dimana untuk menghitung nilai entropy, rasio perbandingan tidak
boleh 0. Baris 7 dan 9 adalah langkah untuk menghitung nilai
entropy, dimana nilai entropy didapatkan dari penjumlahan dari 2
variabel yaitu ratiopositives dan rationegatives.
4.2.2 Form Utama
Pada bagian dilakukan pengujian aplikasi yang telah dibuat
menggunakan Microsoft Visual Studio 2008 dan MySQL 5.0.
Pengujian dilakukan dengan menggunakan data yang
disimulasikan tetapi dikondisikan sebagaimana data asli.
Pada saat aplikasi pertama kali dijalankan, secara default
aplikasi akan membuat sesi koneksi terhadap database. Koneksi
database yang digunakan pertama kali berasal dari file config.cfg.
Apabila koneksi masih gagal, maka aplikasi akan mencoba
koneksi menggunakan koneksi default setting pada saat aplikasi
dibangun. Terdapat tiga macam login yang ada di dalam aplikasi,
yaitu administrator lokal apabila terjadi kesalahan dalam koneksi
terhadap database, administrator untuk proses administratif dan
user biasa.
Untuk menggunakan aplikasi, diperlukan validasi
pengguna. Diasumsikan pengguna berhasil melewati proses
validasi, maka menu yang dapat diakses adalah sesuai dengan hak
akses pada saat validasi login. Gambar 4.7 merupakan tampilan
menu yang dapat diakses oleh hak akses administrator. Menu
yang dapat diakses adalah Data yang meliputi Data Jalan
75
Salatiga, Data Pengguna, Data ID3 dan Data Pengajuan
Perbaikan. Selain itu, menu User Control dapat diakses Lihat
Peta Salatiga dan Ganti Password. Menu Pengaturan juga dapat
diakses oleh administrator yang meliputi Backup Database,
Restore Database dan Ganti Koneksi Database.
4.2.3 Form Data Jalan
Form Data Jalan berfungsi untuk melihat data jalan yang
ada. Administrator juga dapat mengolah data jalan berupa insert
data jalan, update data jalan, delete data jalan maupun membuat
report data jalan. Data jalan yang digunakan untuk pengolahan
antara lain id jalan, nama jalan, pangkal simpul jalan, ujung
simpul jalan, status otonomi jalan, jalur dan lajur jalan, panjang
jalan, lebar damija jalan, lebar perkerasan jalan, jenis perkerasan
jalan, fungsi jalan, kondisi jalan, titik pangkal jalan dan titik
ujung jalan. Tampilan form Data Jalan dapat dilihat pada Gambar
4.9.
76
Gambar 4.9. Tampilan Form Data Jalan
77
Gambar 4.10. Tampilan Report Data Jalan
Gambar 4.10 merupakan tampilan report data jalan hasil
dari pemilihan pada form Data Jalan.
4.2.4 Form Data Pengajuan
Form Data Pengajuan adalah form yang digunakan untuk
melihat data pengajuan yang telah diterima Bappeda dan
melakukan proses pengolahan data yaitu proses pemilihan
keputusan dengan menggunakan ID3. Dalam form Data
Pengajuan juga terdapat fungsi menampilkan report yang dapat
dijadikan menjadi file DOC, RTF, PDF, XLS dan RPT. Apabila
data telah diproses maka akan ada konfirmasi apakah ingin
menghitung ulang. Setelah proses penghitungan, pengguna akan
dikonfirmasikan untuk mensetujui perhitungan atau tidak.
Apabila setuju maka data akan langsung di-update dalam
database dan apabila pengguna tidak setuju, maka hasil akan
diubah dengan kebalikan dari hasil proses perhitungan kemudian
baru disimpan ke dalam database. Tampilan form Data
Pengajuan dapat dilihat pada Gambar 4.11.
78
Gambar 4.11. Tampilan Form Data Pengajuan
Gambar 4.12. Tampilan Report Data Pengajuan
4.2.5 Form Ganti Database
Form Ganti Database dapat digunakan apabila database
server akan maintanance atau terjadi kesalahan dalam tabel
database ataupun koneksi terhadap database server. Dalam
79
berkoneksi dengan database server, aplikasi ini menggunakan
dua macam connection string yaitu koneksi dari konfigurasi
standar yang tersimpan dalam aplikasi dan koneksi dari file
config.cfg. Tampilan untuk form Ganti Database dapat dilihat
pada Gambar 4.13.
Gambar 4.13. Tampilan Form Ganti Database
Untuk mengganti koneksi database, maka administrator
harus mengisi host server, username, password dan port yang
digunakan untuk koneksi terhadap database baru. Kemudian pilih
tombol Menghubungkan. Fungsi dari tombol Menghubungkan
adalah untuk memeriksa koneksi terhadap server database baru.
Apabila dapat terkoneksi maka list database akan ditambahkan
pada combo box. Langkah selanjutnya adalah memilih database
dan memilih tombol Ganti. Secara otomatis aplikasi akan
80
mengganti file config.cfg baru dengan koneksi ke database server
baru.
4.2.6 Form ID3 Data
Form ID3 Data digunakan untuk melihat data yang
digunakan untuk proses perhitungan ID3 dan membuat pohon
keputusan. Fungsi dari form ini adalah data yang digunakan
dalam perhitungan ID3 dapat ditambahkan. Pada form ID3 Data
juga terdapat fungsi untuk menghitung data ID3 dan membuat
pohon keputusan. Hasil dari perhitungan ID3 dapat disimpan
dengan fungsi Simpan ke DB. Tampilan form ID3 Data dapat
dilihat pada Gambar 4.14.
Gambar 4.14. Tampilan Form ID3 Data
Perintah untuk menghitung ID3 dan menampilkan pohon
keputusan dapat dilihat pada Kode Program 4.3.
81
Kode Program 4.3. Perintah Menghitung ID3
Kode Program 4.3 dapat dijelaskan sebagai berikut. Baris 3
sampai 5 merupakan langkah untuk menyusun atribut yang
digunakan. Baris 6 sampai 7 digunakan untuk mengambil data
sample ID3 dari database. Baris 9 digunakan untuk memulai
proses penghitungan data sample ID3 dan menyimpan hasil
perhitungan dalam variabel root. Variabel root merupakan pohon
keputusan dari hasil perhitungan ID3. Baris 10 sampai 14 adalah
perintah untuk menampilkan hasil perhitungan ID3 menjadi
visualisasi pohon keputusan. Baris 15 sampai 18 adalah
pengecekan pohon keputusan apakah terjadi kesalahan atau tidak.
1. private void btnHitungID3_Click(object sender, EventArgs
e){
2. Attribute ceu = new Attribute("fungsi", new string[] {
"Arteri Primer", "Kolektor Primer", "Kolektor Sekunder",
"Lokal Primer", "Lokal Sekunder", "Lingkungan" });
3. Attribute temperatura = new Attribute("pengaju", new
string[] { "Perorangan", "Masyarakat", "Dewan" });
4. Attribute humidade = new Attribute("kondisi_jalan", new
string[] { "Rusak Ringan", "Rusak Berat", "Baik" });
5. Attribute[] attributes = new Attribute[] { ceu,
temperatura, humidade };
6. ID3_Data dataID3 = new ID3_Data(dbCon.con);
7. DataTable samples = dataID3.getDataTable();
8. ID3 id3 = new ID3();
9. TreeNode root=id3.mountTree(samples,"result", attributes);
10. treeView1.BeginUpdate(); 11. treeView1.Nodes.Clear(); 12. treeView1.Nodes.Add(this.BuatPohon(root)); 13. treeView1.EndUpdate(); 14. treeView1.ExpandAll(); 15. if (!checkTree(root)){ 16. this.ROOT = root; 17. if (this.ROOT != null) this.btnSaveDB.Enabled = true; 18. } 19. else{ 20. searchErrorTree(root); 21. MessageBox.Show(this, "Terjadi kesalahan pada '" +
this.ErrorTree + "'\nSample Data tidak mencukupi.",
"Kesalahan", MessageBoxButtons.OK, MessageBoxIcon.Error);
22. }
23. this.ErrorTree = "";
24. }
82
Jika tidak ada kesalahan maka pemberian nilai pada variabel
ROOT dan jika variabel ROOT bukan null, maka tombol Simpan
ke DB akan aktif. Baris 19, jika terjadi kesalahan pada pohon
keputusan maka akan memberikan pesan kesalahan dan me-reset
variabel ErrorTree.
4.2.7 Form Map
Form Map digunakan untuk melihat data spasial Salatiga
yang telah diubah menjadi peta. Tampilan form Map dapat dilihat
pada Gambar 4.15.
Gambar 4.15. Tampilan Form Map
Dalam implementasi peta dengan menggunakan library
yang disertakan dalam MapServer yaitu library
mapscript_csharp.dll dan beberapa file yang berada pada
MapServer pada folder ms4w\Apache\cgi-bin.
83
Perintah untuk menampilkan peta dapat dilihat pada Kode
Program 4.4.
Kode Program 4.4. Perintah Untuk Menampilkan Peta
Kode Program 4.4 dapat dijelaskan sebagai berikut. Baris 2
digunakan untuk mengubah data peta menjadi data image. Baris 3
sampai 7 digunakan untuk menampilkan image peta seperti pada
Gambar 4.13. Baris 8 sampai 9 digunakan untuk menampilkan
data layer dan image legenda dari peta.
4.2.8 Form Pengguna
Form Pengguna digunakan untuk pengolahan data
pengguna. Administrator dapat mengubah data pribadi termasuk
password terhadap pengguna lain yang terdaftar. Tampilan form
Pengguna dapat dilihat pada Gambar 4.16.
1. public void reloadMap() {
2. imageObj img = map.draw();
3. byte[] imgByte = img.getBytes();
4. using (MemoryStream ms = new MemoryStream(imgByte))
5. {
6. picMap.Image = System.Drawing.Image.FromStream(ms);
7. }
8. reloadMapLayer();
9. reloadMapLegend();
10. }
84
Gambar 4.16. Tampilan Form Pengguna
4.2.9 Form Tambah Pengajuan
Form Tambah Pengajuan digunakan untuk melihat data
jalan dan menambahkan data pengajuan perbaikan jalan yang
diakses oleh user biasa. Tampilan form Tambah Pengajuan dapat
dilihat pada Gambar 4.17.
85
Gambar 4.17. Tampilan Form Tambah Pengajuan
Pada Gambar 4.17 merupakan form Tambah Pengajuan.
Pengguna aplikasi dapat menambahkan data pengajuan perbaikan
jalan dengan menyertakan alasan yang logis dan hanya dapat
mengajukan satu jalan untuk tiap pengajuan dan jalan yang sudah
diajukan pengguna tertentu, maka pengguna tertentu tersebut
tidak dapat mengajukan jalan yang sama. Untuk menambahkan
pengajuan langkah pertama adalah memilih jalan yang akan
diajukan kemudian mengisi form. Dilanjutkan memilih tombol
Laporkan.
4.3 Pengujian Sistem dengan Blackbox Testing
Pengujian Blackbox Testing pada sistem dilakukan pada
proses login , pencarian data, tambah data, hapus data dan ubah
86
data. Hasil pengujian Blackbox Testing dapat dilihat pada Tabel
4.1.
Tabel 4.1. Tabel Blackbox Testing
Aktivitas dan
Event Input Output
Status
Penguji
an
Login dengan
memilih
tombol Login
Username dan
Password - Jika berhasil Login maka
bisa mengakses menu-menu
yang terdapat dalam
aplikasi.
- Jika username atau
password salah maka
muncul peringatan
username atau password
anda salah.
Valid
Input data
kemudian
memilih
tombol
Simpan
Memasukkan
data baik itu
data jalan,
pengguna, ID3,
maupun
pengajuan
perbaikan jalan.
- Jika belum memasukkan
data sesuai prosedur
(field yang tersedia) maka
akan muncul peringatan
bahwa kurang lengkap.
Valid
Mengubah
data
kemudian
memilih
tombol Edit
Mengubah data
yang ada.
- Jika masih ada data yang
masih kurang (tidak sesuai
prosedur) maka proses edit
gagal dan akan muncul
peringatan bahwa kurang
lengkap.
Valid
Mencari data
kemudian
memilih
tombol Cari
Memasukkan
data yang ingin
dicari
Jika data yang akan dicari
tidak ada maka data tidak akan
muncul.
Valid
Memilih data
kemudian
memilih
Delete
Konfirmasi Ya
atau Tidak
- Jika konfirmasi Ya maka
data akan terhapus
- Jika konfirmasi Tidak maka
data tidak akan terhapus
Valid
Pada Tabel 4.1 menjelaskan bahwa ketika user melakukan
Login harus memasukkan username dan password terlebih
dahulu. Jika password maupun username salah maka akan
87
muncul peringatan bahwa password atau username salah. Namun
jika berhasil maka menu akan terbuka sesuai dengan tipe
pengguna yang login. Selain itu, ketika user ingin edit maupun
tambah data, data yang dimasukkan harus sesuai dengan prosedur
(tidak boleh kosong).
4.4 Pengujian ID3
Uji coba yang dilakukan untuk pengujian algoritma ID3
dilakukan dengan memasukkan data sample terhadap aplikasi.
Jumlah data sample adalah 50 data sample. Hasil pengujian
didapatkan 16% dari 50 data sample tidak sesuai dengan
keputusan. Kombinasi dalam pembuatan pohon keputusan
menjadi faktor dalam penentuan hasil.