PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

185
PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM PENDUKUNG KEPUTUSAN PEMILIHAN MOBIL SEWA (Studi Kasus : Penyewaan Mobil di Daerah Istimewa Yogyakarta) Skripsi Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika Disusun Oleh : Alexander Vitto Ardiyanto 125314116 PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA 2016 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Transcript of PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

Page 1: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM

SISTEM PENDUKUNG KEPUTUSAN PEMILIHAN MOBIL

SEWA

(Studi Kasus : Penyewaan Mobil di

Daerah Istimewa Yogyakarta)

Skripsi

Diajukan Untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

Disusun Oleh :

Alexander Vitto Ardiyanto

125314116

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

2016

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 2: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

i

THE APPLICATION OF FUZZY DATABASE MODEL

TAHANI

IN DECISION SUPPORT SYSTEMS

IN SELECTING CAR RENTALS

(A CASE STUDY ON CAR RENTAL SERVICES IN

YOGYAKARTA SPECIAL PROVINCE)

Thesis

Presented as Partial Fulfillment of the Requirements

To Obtain the Sarjana Komputer Degree

In Informatics Engineering

By :

Alexander Vitto Ardiyanto

125314116

INFORMATICS ENGINEERING STUDY PROGRAM

DEPARTMENT OF INFORMATICS ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2016

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 3: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

i

HALAMAN PERSETUJUAN

SKRIPSI

PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM PENDUKUNG KEPUTUSAN

PEMILIHAN MOBIL SEWA

(Studi Kasus : Penyewaan Mobil di

Daerah Istimewa Yogyakarta)

Disusun Oleh :

Alexander Vitto Ardiyanto

125314116

Telah disetujui oleh :

Pembimbing,

Eko Hari Parmadi, S.Si., M. Kom. Tanggal :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 4: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

i

HALAMAN PENGESAHAN

SKRIPSI

PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM PENDUKUNG

KEPUTUSAN PEMILIHAN MOBIL SEWA

(Studi Kasus : Penyewaan Mobil di

Daerah Istimewa Yogyakarta)

Dipersiapkan dan ditulis oleh :

Alexander Vitto Ardiyanto

125314116

Telah dipertahankan di depan Panitia Penguji

Pada tanggal 19 Agustus 2016

Dan dinyatakan memenuhi syarat

Susunan Panitia Penguji

Nama Lengkap Tanda Tangan

Ketua : P.H. Prima Rosa, S.Si, M.Sc. ..............................

Sekretaris : J.B. Budi Darmawan, S.T., M.Sc. ..............................

Anggota : Eko Hari Parmadi, S.Si., M. Kom. ..............................

Yogyakarta, .......................

Fakultas Sains dan Teknologi

Universitas Sanata Dharma

Dekan,

Sudi Mungkasi, S.Si., M.Math.Sc., Ph.D.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 5: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

iv

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain,

kecuali yang telah disebutkan dalam kutipan daftar pustaka, sebagaimana layaknya karya ilmiah.

Yogyakarta, ...................

Penulis

Alexander Vitto Ardiyanto

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 6: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

v

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK

KEPENTINGAN AKADEMIS

Yang bertanda tangan di bawah ini, Saya Mahasiswa Teknik Informatika Universitas Sanata Dharma :

Nama : Alexander Vitto Ardiyanto

NIM : 125314116

Demi pengembangan ilmu pengetahuan, Saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya

ilmiah Saya yang berjudul:

PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM PENDUKUNG KEPUTUSAN

PEMILIHAN MOBIL SEWA

(Studi Kasus : Penyewaan Mobil di

Daerah Istimewa Yogyakarta)

Beserta perangka yang diperlukan (bila ada). Dengan demikian Saya memberikan kepada Perpustakaan Universitas

Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan

data, mendistribusikannya secara terbatas, dan mempublikasikannya di Internet atau media lain untuk kepentingan

akademis tanpa perlu meminta ijin dari Saya maupun memberikan royaliti kepada Saya selama tetap mencantumkan

nama Saya sebagai penulis.

Demikian pernyataan ini Saya buat dengan sebenarnya.

Dibuat di Yogyakarta,

Pada tanggal : ...................

Yang menyatakan,

Alexander Vitto Ardiyanto

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 7: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

vi

HALAMAN PERSEMBAHAN

Karya Skripsi ini Saya persembahkan kepada:

1. Tuhan Yesus Kristus, yang memberikan berkat dan mendampi dalam

menyelesaikan karya skripsi ini.

2. Keluargaku, antara lain Bapak, Mamah, Simbah, Kakak, dan Adikku

yang selalu memberikan dukungan doa maupun materi.

3. Calon pendamping hidupku dan keluarganya yang selalu mendoakan

dan memberikan semangat.

4. Para Dosen dan Teman-Teman Mahasiswa Teknik Informatika

Universitas Sanata Dharma yang sudah mendampingi dan memberikan

pertolongan selama Saya menjalankan studi.

5. Keluarga besar Universitas Sanata Dharma yang telah memberikan

segala pengalaman berharga dalam hidupkan untuk bekal masuk ke dunia

kerja.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 8: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

vii

HALAMAN MOTTO

“Whatever will be, will be”

“Apa yang kamu tanam itu yang kamu tuai”

“Slow down and everything you are chasing

Will come around and catch you”

(John DePaola)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 9: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

viii

ABSTRAK

Perkembangan teknologi dan ilmu pengetahuan saat ini sangat pesat. Hal

ini bisa dilihat dengan banyak terciptanya sebuah sistem yang membantu

mempercepat aktivitas manusia. Contohnya sistem pemesanan taksi, pemesanan

hotel, dan pemesanan hotel secara online. Dari beberapa contoh sistem yang

sudah dibuat muncul juga ide untuk membuat sistem penyewaan mobil secara

online. Tetapi sistem penyewaan mobil secara online yang sudah metode

penyimpanannya menggunakan basis data standart. Pada umumnya basis data

standart digunakan untuk menangani data yang bersifat tegas. Tetapi tidak semua

data itu tegas. Untuk menangani data yang bersifat tidak tegas atau samar, maka

digunakan aturan logika fuzzy yang diterapkan pada sebuah sistem basis data.

Salah satu metode tentang fuzzy database yang sudah ada adalah fuzzy database

model Tahani.

Penerapkan fuzzy database model Tahani dalam Sistem Pendukung

Keputusan Pemilihan Mobil Sewa menggunakan masukan berupa bahasa verbal

dan menghasilkan keluaran berupa rekomendasi mobil yang akan disewa. Jika

dibandingkan dengan penggunaan basis data standard hasilnya tidak terlalu

berbeda jauh. Tetapi penerapan fuzzy database ini memiliki kekurangan

dibandingkan basis data standart, yaitu waktu pencarian data sesuai kriteria yang

lebih lama dan kapasitas penyimpanan data lebih banyak.

Kata kunci : Penyewaan mobil, Basis data standart, Fuzzy Database model Tahani

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 10: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

ix

ABSTRACT

Nowadays, science and technology develop very rapidly. This is proved

by many creations of a system that helps accelerate human activities, such as taxi

booking system, and hotel reservations online. There also emerges an idea to

create an online car rental system. However there is an obstacle concerning the

method which uses standard database. In general, a standard database is used to

handle firm data. Since not all data are firm, fuzzy logic rules are applied to a

database system. One method of fuzzy logic available to date is fuzzy database

model Tahani.

This thesis tries to apply fuzzy database model Tahani in Election

Decision Support System Car Rental using verbal language as input and

producing output in the form of recommended car being rented. When compared

with the use of standard databases, the results are not too much different. But the

application of fuzzy databases have disadvantages compared to standard

databases, namely the longer search time of data according to criteria, and the

more data storage capacity.

Keywords : car rental, database standards, fuzzy database model Tahani

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 11: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

x

KATA PENGANTAR

Puji dan syukur kepada Tuhan Yang Maha Esa yang telah mengaruniakan

berkat dan rahmat-Nya sehingga penulis dapat menyelesaikan tugas akhir ini.

Dalam proses penulisan tugas akhir ini ada banyak pihak yang telah

memberikan bantuan dan perhatian dengan caranya masing-masing sehingga

tugas akhir ini dapat diselesaikan. Oleh karena itu penulis mengucapkan terima

kasih kepada :

1. Tuhan Yesus Kristus yang senantiasa memberikan berkat dan bimbingan

kepada saya.

2. Eko Hari Parmadi, S.Si., M. Kom. selaku dosen pembimbing tugas akhir

yang telah membimbing saya dalam penyusunan tugas akhir ini.

3. Ibu Paulina Heruningsih Prima Rosa, S.Si., M.Sc. dan Bapak J.B. Budi

Darmawan, S.T., M.Sc. selaku panitia penguji yang telah memberikan

banyak kritik dan saran untuk tugas akhir ini.

4. Kedua orang tua tercinta Bapak Karyanto dan Ibu Mulat Listyarini,

kakakku Aluysia Vicka T.S. dan semua anggota keluarga saya yang selalu

mendoakan , mendukung, dan memotivasi penulis sehingga penulis dapat

menyelesaikan tugas akhir ini.

5. Lukas, Bagus, Andreas, Tegar, Novian, Candra, Eric, Agustin, Ni Putu,

Monic, Riya yang telah memberikan bantuan, semangat, dan doa dalam

penyusunan tugas akhir ini.

6. Lidwina Septyana Anggraeni yang telah memberikan motivasi, doa, dan

perhatian sehingga tugas akhir ini selesai tepat pada waktunya.

7. Semua teman-teman di program studi Teknik Informatika angkatan 2012.

8. Keluarga besar Universitas Sanata Dharma yang telah menjadi

pendamping dalam pembentukan karakter dan telah memberikan banyak

pengalaman dalam berbagai bidang.

9. Semua pihak yang telah membantu penulis dalam penyusunan tugas akhir

ini yang tidak dapat disebutkan satu persatu.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 12: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

xi

Penulis menyadari bahwa tugas akhir ini masih jauh dari sempurna. Oleh

karena itu, penulis sangat mengharapkan kritik dan saran untuk memperbaiki

tugas akhir ini. Akhir kata, penulis berharap tulisan ini berguna bagi

perkembangan ilmu pengetahuan dan pengguna.

Penulis,

Alexander Vitto Ardiyanto

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 13: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

xii

DAFTAR ISI

HALAMAN JUDUL

HALAMAN JUDUL (BAHASA INGGRIS) .......................................................... i

HALAMAN PERSETUJUAN ................................................................................. i

HALAMAN PENGESAHAN ................................................................................. i

PERNYATAAN KEASLIAN KARYA ................................................................ iv

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH

UNTUK KEPENTINGAN AKADEMIS ................................................................ v

HALAMAN PERSEMBAHAN ............................................................................ vi

HALAMAN MOTTO ........................................................................................... vii

ABSTRAK ........................................................................................................... viii

ABSTRACT ........................................................................................................... ix

KATA PENGANTAR ............................................................................................. x

DAFTAR ISI ......................................................................................................... xii

DAFTAR GAMBAR ............................................................................................. xv

DAFTAR TABEL ............................................................................................... xvii

BAB I PENDAHULUAN ..................................................................................... 1

1.1. Latar Belakang Masalah ............................................................................ 1

1.2. Rumusan Masalah ..................................................................................... 2

1.3. Tujuan ........................................................................................................ 2

1.4. Batasan Masalah ........................................................................................ 3

1.5. Metode Penelitian ...................................................................................... 3

1.5.1. Survey awal ........................................................................................ 3

1.5.2. Studi Pustaka ...................................................................................... 3

1.5.3. Perancangan Database ....................................................................... 4

1.5.4. Tahap Perancangan Sistem ................................................................ 4

1.5.5. Pengujian Sistem ................................................................................ 4

1.5.6. Tahap Analisis Hasil Pengujian ......................................................... 4

1.6. Sistematika Pembahasan ........................................................................... 4

BAB II LANDASAN TEORI............................................................................. 6

2.1. Sistem Pendukung Keputusan ................................................................... 6

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 14: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

xiii

2.1.1. Definisi Sistem Pendukung Keputusan .............................................. 6

2.1.2. Komponen-komponen Sistem Pendukung Keputusan ....................... 6

2.1.3. Manfaat Sistem Pendukung Keputusan ............................................. 8

2.1.4. Keterbatasan Sistem Pendukung Keputusan ...................................... 8

2.2. Logika Fuzzy (Logika Kabur) ................................................................... 9

2.2.1. Pengertian Logika Fuzzy .................................................................... 9

2.2.2. Alasan Digunakannya Logika Fuzzy ............................................... 10

2.2.3. Himpunan Fuzzy .............................................................................. 10

2.2.4. Fungsi Keanggotaan ......................................................................... 15

2.2.5. Operator Dasar Zadeh Untuk Operasi Himpunan Fuzzy ................. 19

2.3. Fuzzy Database ....................................................................................... 20

2.3.1. Basisdata Fuzzy Model Tahani ........................................................ 20

2.4. Query ....................................................................................................... 24

BAB III METODOLOGI PENELITIAN .......................................................... 25

3.1. Gambaran Umum .................................................................................... 25

3.2. Desain Penelitian ..................................................................................... 25

3.2.1. Studi Literatur .................................................................................. 25

3.2.2. Data .................................................................................................. 25

3.2.3. Perancangan Alat Uji ....................................................................... 26

3.3. Spesifikasi Software dan Hardware ........................................................ 27

3.4. Pengujian dan Evaluasi Sistem ............................................................... 27

BAB IV ANALISIS DAN PERANCANGAN SISTEM ................................... 28

4.1. Analisa Kebutuhan .................................................................................. 28

4.1.1. Analisa Sistem ................................................................................. 28

4.1.2. Analisa Kebutuhan Pengguna .......................................................... 29

4.1.3. Diagram Arus Data .......................................................................... 32

4.1.4. Perancangan Basis data .................................................................... 37

4.1.5. Penerapan Contoh Perhitungan ........................................................ 41

4.2. Perancangan Antar Muka ........................................................................ 51

4.2.1. Perancangan Halaman Awal ............................................................ 51

4.2.2. Perancangan Halaman Pencarian ..................................................... 52

4.2.3. Perancangan Halaman Data Mobil .................................................. 54

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 15: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

xiv

4.2.4. Perancangan Halaman Batas Himpunan .......................................... 55

BAB V IMPEMENTASI DAN ANALISA HASIL ......................................... 56

5.1. Implementasi ........................................................................................... 56

5.1.1. Implementasi Fungsi Keanggotaan Harga Murah ........................... 56

5.1.2. Implementasi Fungsi Keanggotaan Harga Sedang .......................... 60

5.1.3. Implementasi Fungsi Keanggotaan Harga Mahal ............................ 64

5.1.4. Implementasi Fungsi Keanggotaan Ukuran Kecil ........................... 69

5.1.5. Implementasi Fungsi Keanggotaan Ukuran Normal ........................ 74

5.1.6. Implementasi Fungsi Keanggotaan Ukuran Besar ........................... 79

5.1.7. Implementasi Fungsi Keanggotaan Kapasitas Penumpang Sedikit . 83

5.1.8. Implementasi Fungsi Keanggotaan Kapasitas Penumpang Sedang . 87

5.1.9. Implementasi Fungsi Keanggotaan Kapasitas Penumpang Banyak 92

5.1.10. Implementasi Fungsi Keanggotaan Kapasitas BBM Sedikit ....... 96

5.1.11. Implementasi Fungsi Keanggotaan Kapasitas BBM Sedang ..... 101

5.1.12. Implementasi Fungsi Keanggotaan Kapasitas BBM Banyak..... 105

5.1.13. Implementasi Fungsi Keanggotaan Tahun Lama ....................... 109

5.1.14. Implementasi Fungsi Keanggotaan Tahun Baru ........................ 113

5.1.15. Implementasi Perhitungan Hasil Query Satu Kriteria ................ 118

5.1.16. Implementasi Perhitungan Hasil Query Dua Kriteria ................ 121

5.1.17. Implementasi Perhitungan Hasil Query Tiga Kriteria ................ 124

5.1.18. Implementasi Perhitungan Hasil Query Empat Kriteria ............ 129

5.1.19. Implementasi Perhitungan Hasil Query Lima Kriteria .............. 138

5.2. Hasil Implementasi ................................................................................ 156

5.2.1. Form Utama ................................................................................... 156

5.2.2. Form Data Mobil ........................................................................... 157

5.2.3. Form Pencarian .............................................................................. 159

5.2.4. Form Batas Himpunan ................................................................... 162

5.3. Pengujian ............................................................................................... 162

BAB VI PENUTUP ......................................................................................... 166

6.1. Kesimpulan ............................................................................................ 166

6.2. Saran ...................................................................................................... 166

DAFTAR PUSTAKA .......................................................................................... 167

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 16: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

xv

DAFTAR GAMBAR

Gambar 2. 1. Himpunan fuzzy pada variabel Umur .............................................. 12

Gambar 2. 2. Himpunan fuzzy pada variable mahasiswa ...................................... 14

Gambar 2. 3. Representasi linear naik ................................................................... 16

Gambar 2. 4. Representasi linear turun .................................................................. 17

Gambar 2. 5. Representasi kurva trapezium .......................................................... 17

Gambar 2. 6. Representasi kurva trapezium .......................................................... 18

Gambar 2. 7. Daerah ‘bahu’ pada variabel TEMPERATUR ................................. 19

Gambar 2. 8. Fungsi keanggotaan pada Variabel Harga........................................ 23

Gambar 4. 1. Flowchart sistem .............................................................................. 29

Gambar 4. 2. Use Case System .............................................................................. 29

Gambar 4. 3. Package Kelola Data Mobil ............................................................. 30

Gambar 4. 4. Package Kelola Data Batas Himpunan ............................................ 30

Gambar 4. 5. Package Rekomendasi Mobil .......................................................... 31

Gambar 4. 6. Diagram Konteks Sistem.................................................................. 32

Gambar 4. 7. Diagram Arus Data Level 1 ............................................................. 33

Gambar 4. 8. Diagram Arus Data Proses Rekomendasi Mobil ............................. 34

Gambar 4. 9. Arus Data Proses Kelola Data Mobil ............................................... 35

Gambar 4. 10. Diagram Arus Data Proses Kelola Data Batas Himp. Fuzzy ......... 36

Gambar 4. 11. Perancangan konseptual ................................................................. 37

Gambar 4. 12. Perancangan Logikal ...................................................................... 37

Gambar 4. 13. Fungsi keanggotaan pada Variabel Harga...................................... 42

Gambar 4. 14. Fungsi Keanggotaan pada Variabel Panjang.................................. 43

Gambar 4. 15. Fungsi keanggotaan pada Variabel Lebar ...................................... 44

Gambar 4. 16. Fungsi keanggotaan pada Varabel Tinggi ...................................... 45

Gambar 4. 17. Fungsi keanggotaan pada Variabel Ukuran ................................... 46

Gambar 4. 18. Fungsi keanggotaan pada Variabel Kapasitas BBM ...................... 47

Gambar 4. 19. Fungsi keanggotaan pada Variabel Kapasitas penumpang ............ 48

Gambar 4. 20. Fungsi keanggotaan pada Variabel Tahun ..................................... 49

Gambar 4. 21. Desaign Halaman Home Admin .................................................... 51

Gambar 4. 22. Desaign Halaman Pencarian Tab Fuzzy Admin ............................ 52

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 17: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

xvi

Gambar 4. 23. Desaign Halaman Pencarian Tab Fuzzy Pengguna ........................ 52

Gambar 4. 24. Desaign Halaman Pencarian Tab Tegas Admin............................. 53

Gambar 4. 25. Desaign Halaman Pencarian Tab Tegas Pengguna ........................ 53

Gambar 4. 26. Desaign Halamn Data Mobil Admin.............................................. 54

Gambar 4. 27. Desaign Halaman Data Mobil Pengguna ....................................... 54

Gambar 4. 28. Desaign Halaman Batas Himpunan Admin ................................... 55

Gambar 5. 1. Form Utama Untuk Admin ............................................................ 156

Gambar 5. 2. Form Utama Untuk Pengguna ........................................................ 157

Gambar 5. 3. Form Data Mobil Admin ................................................................ 158

Gambar 5. 4. Form Data Mobil Pengguna ........................................................... 159

Gambar 5. 5. Form Pencarian Tab Fuzzy ............................................................ 160

Gambar 5. 6. Form Pencarian Tab Tegas............................................................. 161

Gambar 5. 7. Form Batas Himpunan ................................................................... 162

Gambar 5. 8. Ukuran Setiap Tabel Penyimpanan ................................................ 164

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 18: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

xvii

DAFTAR TABEL

Tabel 2. 1. Contoh Tabel DT_HP pada Outlet Penjualan HP ................................ 21

Tabel 2. 2. Fire Strength untuk query Harga Sedang, Berat RINGAN, Ada WAP

................................................................................................................................ 24

Tabel 4. 1. Tabel Data Mobil ................................................................................. 38

Tabel 4. 2. Tabel Batas Himpunan ......................................................................... 38

Tabel 4. 3. Tabel Mu .............................................................................................. 39

Tabel 4. 4. Data Mobil ........................................................................................... 41

Tabel 4. 5. Nilai Derajat Keanggotaan pada setiap Himpunan .............................. 50

Tabel 4. 6. Fire strength ......................................................................................... 51

Tabel 5. 1. Tabel Hasil Fuzzy Database............................................................... 162

Tabel 5. 2. Tabel Hasil Basis Data Standard........................................................ 163

Tabel 5. 3. Tabel Hasil Fuzzy Database dengan Dua Kriteria ............................. 164

Tabel 5. 4. Tabel Hasil Basis Data Standard dengan Dua Kriteria ...................... 164

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 19: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

1

BAB I

PENDAHULUAN

1.1. Latar Belakang Masalah

Pada era globalisasi ini kebutuhan teknologi sangat dibutuhkan

manusia untuk melakukan aktivitas sehari-hari. Karena teknologi dapat

membuat pekerjaan sehari-hari menjadi mudah dan cepat dilakukan. Salah

satu teknologi yang dibutuhkan pada saat ini adalah teknologi dibidang

transportasi yaitu mobil. Mobil sudah menjadi primadona dikalangan

masyarakat pada saat ini. Karena mobil adalah alat transportasi yang

praktis, cepat, dan dapat menampung banyak penumpang atau muatan. Hal

ini tentu sangat bermanfaat bagi orang yang sering beraktivitas diluar

ruangan seperti mengantar barang atau pergi dengan keluarga. Tetapi,

harga mobil yang cukup mahal menjadi keterbatasan bagi orang untuk

memilikinya.

Melihat permasalahan itu banyak orang atau pengusaha yang membuka

jasa penyewaan mobil, memang usaha ini sangat menjanjikan. Karena

memberikan kemudahan bagi orang yang tidak memiliki mobil untuk

menggunakannya. Selain itu mereka juga bisa memilih mobil jenis apa

yang akan disewa sesuai dengan keinginannya, karena pada tempat

penyewaan mobil biasanya terdapat berbagai macam jenis mobil. Seiring

perkembangannya, bisnis sewa mobil ini juga bisa melayani penyewaan

melalui media sosial maupun melalui aplikasi khusus yang dimiliki oleh

penawar jasa sewa mobil.

Pada era teknologi ini sudah banyak sistem informasi untuk penyewaan

atau pemesanan mobil pada perusahaan sewa mobil (rental). Beberapa

sistem informasi yang sudah pernah dibuat diantaranya Sistem Informasi

Pemesanan dan Penyewaan Mobil Berbasis Web Pada CV. Louhan

Mobilindo dan Perancangan Aplikasi Rental Mobil Pada CV Karya

Bersama Palembang. Pada kedua sistem tersebut penyimpanan data

menggunakan sistem basis data, tetapi di kedua sistem tersebut hanya

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 20: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

2

menggunakan sistem basis data standard saja. Tetapi, penggunaan sistem

basis data standard biasanya untuk menangani data-data yang bersifat

pasti. Namun pada kenyataannya tidak semua data bersifat tegas.

Seiring berkembangnya teknologi terdapat sebuah ide yang

mendefinisikan konsep relasi fuzzy dalam sebuah Database Management

System (DBMS) dengan derajat keanggotaan. Ide tersebut dikemukakan

oleh Tahani (1997). Fuzzy database Model Tahani menggunakan teori

himpunan fuzzy untuk mendapatkan informasi pada querynya.

Berkaitan dengan hal tersebuat maka peneliti tertarik untuk menyusun

sebuah tugas akhir yang berjudul “Penerapan Fuzzy Database Model

Tahani dalam Sistem Pendukung Keputusan Pemilihan Mobil Sewa”.

Dengan menggunakan logika Fuzzy pada Database ini diharapkan dapat

menangani data yang bersifat tidak tegas atau samar yang terkandung

dalam kriteria-kriteria yang disediakan. Selain itu, penelitian ini

diharapkan dapat membantu calon penyewa mobil dalam menentukan

mobil yang akan disewa.

1.2. Rumusan Masalah

Berdasarkan latar belakang di atas, maka rumusan masalah yang akan

diselesaikan, yaitu:

a. Bagaimana mengimplementasikan fuzzy database model Tahani

dalam SPK pemilihan mobil sewa ?

b. Apakah pengimplementasian fuzzy database model Tahani lebih

efisien dari pada database standard dengan indikator waktu proses

eksekusi query dan table space yang digunakan untuk menyimpan

data?

1.3. Tujuan

Tujuan dari penelitian tugas akhir ini adalah:

a. Membangun SPK pemilihan mobil sewa dengan menggunakan metode

fuzzy database model Tahani.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 21: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

3

b. Mengetahui seberapa efisien penerapan fuzzy database model Tahani

dan database klasik.

1.4. Batasan Masalah

Dalam membangun sistem informasi ini terdapat beberapa batasan

masalah, antara lain:

a. Kriteria-kriteria yang digunakan dalam pengambilan keputusan

adalah harga, tahun perakitan kendaraan, kapasitas kendaraan,

kapasitas bahan bakar, dan ukuran.

b. Data mobil yang digunakan adalah data mobil yang disewakan dari

beberapa usaha penyewaan mobil di Yogyakarta.

c. Sistem yang dibuat tidak mendukung untuk rekomendasi

penyewaan kendaraan selain mobil.

d. Sistem ini dibangun berbasis desktop dengan menggunakan bahasa

pemrograman java dan database oracle.

1.5. Metode Penelitian

Langkah-langkah metode penelitian yang dilakukan dalam penelitian ini

sebagai berikut:

1.5.1. Survey awal

Dilakukan wawancara kepada pihak terkait (penyewa dan pemilik

penyewaan mobil) serta melakukan pengumpulan data yang telah

tersedia sebelumnya di tempat penyewaan mobil.

1.5.2. Studi Pustaka

Dilakukan studi pustaka untuk mengumpulkan teori-teori yang

digunakan dalam penelitian ini, meliputi teori mengenai

pengemplementasian fuzzy database model Tahani, penerapan

fuzzy database model Tahani dalam sebuah sistem informasi, serta

mencari informasi-informasi lain yang mendukung pembangunan

sistem informasi ini.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 22: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

4

1.5.3. Perancangan Database

Pada tahap ini dilakukan perancangan database sesuai dengan data

yang diperoleh.

1.5.4. Tahap Perancangan Sistem

Pada tahap ini dilakukan perancangan sistem yang akan dibangun,

meliputi disain user interface, fitur-fitur disediakan aplikasi, dan

penanganan koneksi dengan system database.

1.5.5. Pengujian Sistem

Dilakukan percobaan terhadap sistem yang telah dibangun.

Percobaan dilakukan dengan menggunakan operator AND, OR,

dan NOT.

1.5.6. Tahap Analisis Hasil Pengujian

Pada tahap ini dilakukan analisis keluaran yang dihasilkan oleh

sistem.

1.6. Sistematika Pembahasan

Sistematika penulisan dibagi menjadi beberapa bab, sebagai berikut :

a. Bab I : Pendahuluan

Bab ini berisi latar belakang, rumusan dan batasan masalah, tujua

penelitian, manfaat penelitian, metodologi penelitian, dan sistematika

penulisan.

b. Bab II : Landasan Teori

Bab ini berisi teori-teori yang dapat menunjang penelitian, yaitu

berupa pengertian sistem pendukung keputusan, logika fuzzy, dan fuzzy

database model Tahani.

c. Bab III : Metodologi Penelitian

Bab ini berisi tentang gambaran umum sistem yang akan dibangun,

data yang digunakan, desain pennelitian, spesifikasi software dan

hardware yang digunakan.

d. Bab IV : Analisis dan Perancangan Sistem

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 23: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

5

Bab ini berisi tentang cara penerapan konsep dasar yang telah

diuraikan pada Bab II untuk menganalisis dan merancang tentang

sistem sesuai tahap-tahap penyelesaian masalah tersebut dengan

menggunakan Fuzzy Database model Tahani.

e. Bab V : Implementasi dan Analisis Sistem

Bab ini berisi tentang implementasi ke program komputer berdasarkan

hasil perancangan yang dibuat, analisis perangkat lunak yang telah

dibuat, serta kelebihan dan kekurangan pada sistem.

f. Bab VI : Penutup

Dalam bab ini berisi tentang kesimpulan dan saran dari keseluruhan

penulisan tugas akhir.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 24: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

6

BAB II

LANDASAN TEORI

2.1. Sistem Pendukung Keputusan

2.1.1. Definisi Sistem Pendukung Keputusan

Menurut (Suryadi, 1989) Sistem Pendukung Keputusan

(SPK) atau Decision Support System (DSS) adalah suatu sistem

berbasis komputer untuk membantu pengambilan keputusan dalam

memanfaatkan data dengan menggunakan model tertentu untuk

memecahkan berbagai persoalan yang semi terstruktur atau tidak

terstruktur. Persoalan pengambilan keputusan pada dasarnya adalah

bentuk pemilihan dari berbagai alternatif tindakan yang mungkin

dipilih melalui mekanisme tertentu, dengan harapan akan

menghasilkan sebuah keputusan yang terbaik.

2.1.2. Komponen-komponen Sistem Pendukung Keputusan

Suatu SPK memiliki tiga subsistem utama yang menentukan

kapabilitas teknik SPK tersebut, yaitu sebagai berikut:

1. Subsistem Manajemen Basis Data (Data Base Management

Subsystem)

Ada beberapa perbedaan antara database untuk SPK dan non-

SPK. Pertama, sumber data untuk SPK lebih “kaya” daripada

non-SPK dimana data harus berasal dari luar dan dari dalam

karena proses pengambilan keputusan, terutama dalam level

managemen puncak, sangat bergantung pada sumber data luar,

seperti data ekonomi. Kedua, proses pengambilan dan ekstraksi

data dari sumber data yang sangat besar. SPK membutuhkan

proses ekstraksi dan DBMS yang dalam pengelolaannya harus

cukup fleksibel untuk memungkinkan penambahan dan

pengurangannya secara cepat.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 25: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

7

2. Subsistem Managemen Model (Model Management

Subsystem)

Salah satu keunggulan SPK adalah kemampuan untuk

mengintegrasikan akses data dan model-model keputusan. Hal

ini dapat dilakukan dengan menambahkan model-model

keputusan ke dalam sistem informasi yang menggunakan

database sebagai mekanisme integrasi dan komunikasi di antara

model-model. Komunikasi antara berbagai model yang saling

berhubungan diserahkan kepada pengambil keputusan sebagai

proses intelektual dan manual.

3. Subsistem Perangkat Lunak Penyelenggara Dialog (Dialog

Generation and Management Subsystem)

Komponin dari sistem dialog adalah pemakai, terminal, dan

sistem perangkat lunak. Subsistem dialog dibagi menjadi tiga

bagian yaitu:

a. Bahasa aksi, meliputi apa yang dapat digunakan oleh

pemakai dalam berkomunikasi dengan sistem. Hal ini

meliputi pemilihan-pemilihan seperti papan ketik

(keyboard), panel-panel sentuh, joystick, perintah suara dan

sebagainya.

b. Bahasa tampilan atau presentasi, meliputi apa yang harus

diketahui oleh pemakai. Bahasa tampilan meliputi pilihan-

pilihan seperti printer, layar tampilan, grafik, warna, plotter,

keluaran suara, dan sebagainya.

c. Basis pengetahuan, meliputi apa yang harus diketahui oleh

pemakai agar pemakaian sistem bisa efektif. Basis

pengetahuan bisa berada dalam pikiran pemakai, pada kartu

referensi atau petunjuk, dalam buku manual, dan

sebagainya.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 26: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

8

2.1.3. Manfaat Sistem Pendukung Keputusan

SPK memberikan keuntungan atau menfaat bagi para pemakainya.

Keuntungan yang dimaksud antara lain:

1. SPK memperluas kemampuan pengambilan keputusan dalam

memproses data atau informasi bagi pemakainya.

2. SPK membantu pengambilan keputusan dalam hal

penghematan waktu yang dibutuhkan untuk memecahkan

masalah terutama berbagai masalah yang sangat kompleks dan

tidak terstruktur.

3. SPK dapat menghasilkan solusi dengan lebih cepat serta

hasilnya dapat diandalkan.

4. Walaupun suatu SPK, mungkin saja tidak mampu memecahkan

masalah yang dihadapi oleh pengambil keputusan, namun ia

dapat menjadi stimulan bagi pegambil keputusan dalam

memahami persoalannya. Karena SPK mampu menyajikan

berbagai alternatif.

SPK dapat menyediakan bukti tambahan untuk memberikan

pembenaran sehingga dapat memperkuat posisi pengambilan

keputusan.

2.1.4. Keterbatasan Sistem Pendukung Keputusan

Disamping memiliki keuntungan dan manfaat, SPK juga memiliki

keterbatasan diantaranya adalah sebagai berikut:

1. Ada beberapa kemampuan manajemen dan bakat manusia yang

tidak dapat dimodelkan, sehingga model yang ada dalam sistem

tidak semuanya mencerminkan persoalan sebenarnya.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 27: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

9

2. Kemampuan suatu SPK terbatas pada pembendaharaan

pengetahuan yang dimilikinya (pengetahuan dasar serta model

dasar).

3. Proses-proses yang dapat dilakukan SPK biasanya tergantung

juga pada kemampuan perangkat lunak yang digunakannya.

SPK tidak memiliki kemampuan intuisi seperti yang dimiliki

manusi. Karena walaupun bagaimanapun canggihnya suatu SPK,

dia hanyalah suatu kumpulan perangkat keras, perangkat lunak, dan

sistem operasi yang tidak dilengkapi dengan kemampuan berpikir.

2.2. Logika Fuzzy (Logika Kabur)

2.2.1. Pengertian Logika Fuzzy

Logika fuzzy adalah suatu cara yang tepat untuk memetakan

suatu ruang input kedalam suatu ruang output. Titik awal dari

konsep modern mengenai ketidakpastian adalah paper yang dibuat

oleh Lotfi A Zadeh (1965), dimana Zadeh memperkenalkan teori

yang memiliki obyek-obyek dari himpunan fuzzy yang memiliki

batasan yang tidak presisi dan keanggotaan dalam himpunan fuzzy,

dan bukan dalam bentuk logika benar (true) atau salah (false), tapi

dinyatakan dalam derajat (degree). Konsep seperti ini disebut

dengan Fuzziness dan teorinya dinamakan Fuzzy Set Theory.

Fuzziness dapaet didefinisikan sebagai logika kabur berkenaan

dengan semantik dari suatu kejadian, fenomena atau pernyataan itu

sendiri. Serigkali ditemui dalam pernyataan yang dibuat oleh

seseorang, evaluasi dan suatu pengambilan keputusan. Sebagai

contoh:

1. Manajer pergudangan mengatakan pada manajer produksi

seberapa banyak persediaan barang pada akhir minggu ini,

kemudian manajer produksi akan menetapkan jumlah barang

yang harus diproduksi esok hari.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 28: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

10

2. Pelayan restoran memberikan pelayanan terhadap tamu,

kemudian tamu akan memberikan tip yang sesuai atas baik

tidaknya pelayanan yang diberikan.

3. Anda mengatakan pada saya seberapa sejuk ruangan yang anda

inginkan, saya akan mengatur putaran kipas yang ada pada

ruangan ini.

2.2.2. Alasan Digunakannya Logika Fuzzy

Ada beberapa alasan mengapa orang menggunakan logika fuzzy

(Kusumadewi S, Purnomo H, 2010) antara lain:

1. Konsep logika fuzzy mudah dimengerti. Konsep matematis

yang mendasari penalaran fuzzy sangat sederhana dan mudah

dimengerti.

2. Logika fuzzy sangat fleksibel.

3. Logika fuzzy memiliki toleransi terhadap data-data yang tidak

tepat.

4. Logika fuzzy mampu memodelkan fungsi-fungsi nonlinear

yang sangat kompleks.

5. Logika fuzzy dapat membangun dan mengaplikasikan

pengalaman-pengalaman para pakar secara langsung tanpa

harus melalui proses pelatihan.

6. Logika fuzzy dapat bekerjasama dengan teknik-teknik kendali

secara konvensional.

7. Logika fuzzy didasarkan pada bahasa alami.

2.2.3. Himpunan Fuzzy

Pada himpunan tegas (crisp), nilai keanggotaan suatu item x dalam

suatu himpunan A, yang sering ditulis denganµA[x], memiliki 2

kemungkinan (Kusumadewi S, Purnomo H, 2010) yaitu:

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 29: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

11

1. Satu (1), yang berarti bahwa suatu item menjadi anggota dalam

suatu himpunan, atau

2. Nol (0), yang berarti bahwa suatu item tidak menjadi anggota

dalam suatu himpunan.

Contoh:

Misalkan variabel umur dibagi menjadi 3 kategori, yaitu:

MUDA umur < 35 tahun

PAROBAYA 35 ≤ umur ≤ 55 tahun

TUA umur ≥ 55 tahun

Bisa dikatakan bahwa:

Apabila seseorang berusia 34 tahun, maka ia dikatakan MUDA

(µMUDA[34] = 1);

Apabila seseorang berusia 35 tahun, maka ia dikatakan TIDAK

MUDA (µMUDA[35] = 0);

Apabila seseorang berusia 35 tahun kurang 1 hari, maka ia

dikatakan TIDAK MUDA (µMUDA[35 th- 1hr] = 0);

Apabila seseorang berusia 35 tahun, maka ia dikatakan

PAROBAYA (µPAROBAYA[35] = 1);

Apabila seseorang berusia 34 tahun, maka ia dikatakan TIDAK

PAROBAYA (µPAROBAYA[34] = 0);

Apabila seseorang berusia 55 tahun, maka ia dikatakan

PAROBAYA (µPAROBAYA[55] = 1);

Apabila seseorang berusia 35 tahun kurang 1 hari, maka ia

dikatakan TIDAK PAROBAYA (µPAROBAYA[35 th – 1 hr]

= 0);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 30: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

12

Dari sini bisa dikatakan bahwa pemakaian himpunan crisp untuk

menyatakan umur sangat tidak adil, adanya perubahan kecil saja

pada suatu nilai mengakibatkan perbedaan kategori yang cukup

signifikan.

Himpunan fuzzy digunakan untuk mengantisipasi hal tersebut.

Seseorang dapat masuk dalam 2 himpunan yang berbeda, MUDA

dan PAROBAYA, PAROBAYA dan TUA, dsb. Seberapa besar

eksistensinya dalam himpunan tersebut dapat dilihat pada nilai

keanggotaannya. Seperti terlihat pada gambar 2.1.

Gambar 2. 1. Himpunan fuzzy pada variabel Umur

Pada Gambar 2.1, dapat dilihat bahwa:

Seseorang yang berumur 40 tahun, termasuk dalam himpunan

MUDA dengan µMUDA[40] = 0,25; maupun dia juga

termasuk dalam himpunan PAROBAYA dengan

µPAROBAYA[40] = 0,5.

Seseorang yang berumur 50 tahun, termasuk dalam himpunan

TUA dengan µTUA[50] = 0,25; namun dia juga termasuk

dalam himpunan PAROBAYA dengan µPAROBAYA[50] =

0,5.

Kalau pada himpunan crisp, nilai keanggotaan hanya ada 2

kemungkinan, yaitu 0 atau 1, pada himpunan fuzzy nilai

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 31: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

13

keanggotaan terletak pada rentang 0 sampai 1. Apabila x memiliki

nilai keanggotaan fuzzy µA[x] = 0 berarti x tidak menjadi anggota

himpunan A, demikian pula apabila x memiliki nilai keanggotaan

fuzzy µA[x] = 1 berarti x menjadi anggota penuh pada himpunan

A.

Terkadang kemiripan antara keanggotaan fuzzy dengan probabilitas

menimmbulkan kerancuan. Keduanya memiliki nilai pada interval

[0,1], namun interprestasi nilainya sangat berbeda antara kedua

kasus tersebut. Keanggotaan fuzzy memberikan suatu ukuran

terhadap pendapatan atau keputusan, sedangkan probabilitas

mengindikasikan proporsi terhadap keseringan suatu hasil bernilai

benar dalam jangka panjang. Misalnya, jika nilai keanggotaan

suatu himpunan fuzzy MUDA adalah 0,9; maka tidak perlu

dipermasalahkan berapa seringnya nilai itu diulang secara

individual untuk mengharapkan suatu hasil yang hampir pasti

muda. Di lain pihak, nilai probabilitas 0,9 muda berarti 10% dari

himpunan tersebut diharapkan tidak muda.

Himpunan fuzzy memiliki 2 atribut, yaitu:

1. Linguistik, yaitu penamaan suatu grup yang mewakili suatu

keadaan atau kondisi tertentu dengan menggunakan bahasa

alami, seperti: MUDA, PAROBAYA, TUA.

2. Numeris, yaitu suatu nilai (angka) yang menunjukkan ukuran

dari suatu variable seperti: 40, 25, 50, dsb.

Ada beberapa hal yang perlu diketahui dalam memahami sistem

fuzzy (Kusumadewi S, Purnomo H, 2010) yaitu:

a. Variable fuzzy

Variable fuzzy merupakan variable yang hendak dibahas

dalam suatu sistem fuzzy. Contoh: umur, temperature,

permintaan, dsb.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 32: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

14

b. Himpunan fuzzy

Himpunan fuzzy merupakan suatu grup yang mewakili suatu

kondisi atau keadaan tertentu dalam suatu variable fuzzy.

Contoh:

Variable mahasiswa, terbagi menjadi 5 himpunan fuzzy, yaitu:

kurang sekali, kurang, cukup, baik dan baik sekali. Seperti

terlihat pada gambar 2.2.

Gambar 2. 2. Himpunan fuzzy pada variable mahasiswa

c. Semesta Pembicaraan

Semesta pembicaraan adalah keseluruhan nilai yang

diperolehkan untuk dioperasikan dalam suatu variable fuzzy.

Semesta pembicaraan merupakan himpunan bilangan real yang

senantiasa naik (bertambah) secara monoton dari kiri ke kanan.

Nilai semesta pembicaraan dapat berupa bilangan positif

maupun negatif. Ada kalanya nilai semesta pembicaraan ini

tidak dibatasi batas atasnya.

Contoh:

Semesta pembicaraan untuk variable mahasiswa: [0 50].

d. Domain

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 33: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

15

Domain himpunan fuzzy adalah keseluruhan nilai yang

diijinkan dalam semesta pembicaraan dan boleh dioperasikan

dalam suatu himpunan fuzzy. Seperti halnya semesta

pembicaraan, domain merupakan himpunan bilangan real yang

senantiasa naik (bertambah) secara monoton dari kiri ke kanan.

Nilai domain dapat berupa bilangan positif dan bilangan

negatif.

Contoh domain himpunan fuzzy:

1. Kurang sekali =[0 15]

2. Kurang =[5 25]

3. Cukup =[15 35]

4. Baik =[25 45]

5. Baik sekali =[35 50]

2.2.4. Fungsi Keanggotaan

Fungsi keanggotaan (membership function) adalah suatu kurva

yang menunjukkan pemetaan titik-titik input data kedalam nilai

keanggotaannya (sering juga disebut dengan derajat keanggotaan)

yang memiliki interval antara 0 sampai 1. Salah satu cara yang

dapat digunakan untuk mendapatkan nilai keanggotaan adalah

dengan melalui pendekatan fungsi (Kusumadewi S, Purnomo H,

2010). Ada beberapa fungsi yang bisa digunakan.

a. Representasi Linear

Pada representasi linear, pemetaan input ke derajat

keanggotaannya digambarkan sebagai suatu garis lurus.

Bentuk ini paling sederhana dan menjadi pilihan yang baik

untuk mendekati suatu konsep yang kurang jelas.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 34: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

16

Ada dua keadaan himpunan fuzzy yang linear. Pertama,

kenaikan himpunan dimulai pada nilai domain yang memiliki

derajat keanggotaan nol(0) bergerak ke kanan menuju ke nilai

domain yang memiliki derajat keanggotaan lebih tinggi Seperti

terlihat pada gambar 2.3.

Gambar 2. 3. Representasi linear naik

Fungsi keanggotaan:

Kedua, merupakan kebalikan dari yang pertama. Garis lurus

dimulai dari nilai domai dengan derajat keanggotaan tertinggi

pada sisi kiri, kemudian bergerak menurun ke nilai domain

yang memiliki derajat keanggotaan lebih rendah. Seperti

terlihat pada gambar 2.4.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 35: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

17

Gambar 2. 4. Representasi linear turun

Fungsi keanggotaan:

b. Representasi kurva segitiga

Kurva segitiga pada dasarnya merupakan gabungan antara 2

garis (linear). Seperti pada gambar 2.5.

Gambar 2. 5. Representasi kurva trapezium

Fungsi keanggotaan:

c. Representasi kurva trapezium

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 36: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

18

Kurva Segitiga pada dasarnya seperti bentuk segitiga, hanya

saja ada beberapa titik yang memiliki nilai keanggotaan 1.

Seperti pada gambar 2.6.

Gambar 2. 6. Representasi kurva trapezium

Fungsi keanggotaan:

d. Representasi kurva bahu

Daerah yang terletak di tengah-tengah suatu variabel yang

direpresentasikan dalam bentuk segitiga, pada sisi kanan dan

kirinya akan naik dan turun (misalkan: DINGIN bergerak ke

SEJUK bergerak ke HANGAT dan bergerak ke PANAS).

Tetapi terkadang salah satu sisi dari variabel tersebut tidak

mengalami perubahan. Sebagai contoh, apabila telah mencapai

kondisi PANAS, kenaikan temperatur akan tetap berada pada

kondisi PANAS. Himpunan fuzzy ‘bahu’, bukan segitiga,

digunakan untuk mengakhiri variabel suatu daerah fuzzy. Bahu

kiri bergerak dari benar ke salah, demikian juga bahu kanan

bergerak dari salah ke benar. Gambar 2.7. menunjukkan

variabel TEMPERATUR dengan daerah bahunya.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 37: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

19

Gambar 2. 7. Daerah ‘bahu’ pada variabel TEMPERATUR

2.2.5. Operator Dasar Zadeh Untuk Operasi Himpunan Fuzzy

Seperti halya himpunan konvensional, ada beberapa operasi

yang didefinisikan secara khusus untuk kombinasi dan modifikasi

himpunan fuzzy. Nilai keanggotaan sebagai hasil dari operasi 2

himpunan sering dikenal dengan fire strength atau α-predikat. Ada

3 operator dasar yang diciptakan oleh Zadeh, yaitu:

a. Operator AND

Operator ini berhubungan dengan operasi interseksi pada

himpunan. Α-predikat sebagai hasil operasi dengan operator

AND diperoleh dengan mengambil nilai keanggotaan terkecil

antar elemen pada himpunan-himpunan yang bersangkutan.

b. Operator OR

Operator ini berhubungan dengan operasi union pada

himpunan. Α-predikat sebagai hasil operasi dengan operator

OP diperoleh dengan mengambil nilai keanggotaan terbesar

antar elemen pada himpunan-himpunan yang bersangkutan.

c. Operator NOT

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 38: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

20

Operator ini berhubungan dengan operasi komplemen pada

himpunan. α-predikat sebagai hasil operasi dengan operator

NOT diperoleh dengan mengurangkan nilai keanggotaan

elemen pada himpunan yang bersangkutan dari 1.

2.3. Fuzzy Database

Basis data (database) merupakan kumpulan dari data yang saling

berhubungan satu dengan yang lainnya, tersimpan di perangkat keras

komputer dan digunakan perangkat lunak untuk memanipulasinya. Sistem

basis data (database system) adalah suatu sistem informasi yang

mengintegrasikan kumpulan data yang saling berhubungan satu dengan

yang lainnya dan membuatnya tersedia untuk beberapa aplikasi dalam

suatu organisasi. Sedangkan fuzzy database system adalah suatu sistem

basis data yang menggunakan teori himpunan fuzzy dalam menghasilkan

informasi (Efendi R, Ernawati, Hidayati R, 2014). Keuntungan fuzzy

database sistem adalah sebagai berikut:

Fuzzy database memungkinkan penanganan data secara alami

karena mengikuti pikiran manusia.

Digunakan logika fuzzy dalam melakukan pencarian data sehingga

menghasilkan data yang sistematis.

Menyediakan lingkungan basis data untuk menangani data yang

masih samar.

2.3.1. Basisdata Fuzzy Model Tahani

Sebagian besar basis data standard diklarifikasikan berdasarkan

bagaimana data tersebut dipandang oleh user. Basis data fuzzy

model Tahani masih tetap menggunakan relasi standard, hanya saja

model ini menggunakan teori himpunan fuzzy untuk mendapatkan

informasi pada query-nya. Jadi, data awal yang diproses adalah

data yang memiliki nilai crisp (pasti/ jelas keberadaannya), dan

ketika akan melakukan proses pencarian data yang bersifat samar

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 39: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

21

maka proses tersebut yang dinamakan proses fuzzy query melalui

fuzzy database model Tahani.

Ide dari sistem fuzzy database model Tahani adalah mendefinisikan

konsep dari relasi fuzzy dalam sebuah database sistem dengan

menggunakan derajat keanggotaan.

Contoh kasus yang dapat diselesaikan dengan fuzzy database model

Tahani adalah aplikasi fuzzy database system model Tahani untuk

memberikan rekomendasi pilihan HP bagi konsumen berdasarkan

kriteria-kriteria yang dingiinkan oleh konsumen. Pada kasus

tersebut, outlet HP memiliki data HP yang tersimpan pada tabel.

Atribut yang ada pada setiap tipe HP berupa: harga, dimensi, berat,

dan phonebook_memory; serta ada tidaknya fasilitas WAP (Efendi

R, Ernawati, Hidayati R, 2014) seperti pada Tabel 2.

Tabel 2. 1. Contoh Tabel DT_HP pada Outlet Penjualan HP

Jika dengan menggunakan basis data standard, kita dapat mencari

data-data HP dengan spesifikasi tertentu dengan menggunakan

query. Misal kita ingin mendapatkan informasi tentang tipe HP

yang harganya kurang dari Rp. 1.000.000,- tetapi beratnya kurang

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 40: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

22

dari atau sama dengan 100 gram, maka kita bisa menuliskan suatu

query:

SELECT TYPE FROM DT_HP WHERE (Harga < 1000000) and

(Berat ≤ 100).

Sehingga muncul tipe HP T29s, sedangkan tipe HP T190 yang

harganya kurang sari Rp. 1.000.000,- tidak terpilih padahal beda

beratnya selisih 1 gram dari kriteria yang ditentukan. Disini berarti

pada basisdata standard, adanya perubahan kecil saja

mengakibatkan perbedaan kategori yang cukup signifikan antara

HP yang terpilih dan tidak terpilih.

Agar konsumen lebih mudah dalam memberikan kriteria yang

diinginkan, maka penyampaian informasi tentang kriteria suatu

atribut direpresentasikan menggunakan bahasa sehari-hari/ variabel

linguistik. Pada kasus penjualan HP, seorang konsumen ingin

mencari informasi mengenai tipe HP yang sesuai dengan kriteria

yang diinginkannya, adapun datanya menggunakan bahasa sehari-

hari (bersifat samar).

Pada basisdata fuzzy Tahani, awalnya dibentuk suatu himpunan

fuzzy dengan fungsi keanggotaanya. Untuk menilai tipe HP yang

diinginkan maka dibentuklah beberapa kategori yang perlu

dipertimbangkan dengan himpunan yang memiliki pada masih-

masing kriteria. Kriteria-kriteria tersebut adalah sebagai berikut:

a. Harga HP (MURAH, SEDANG, dan MAHAL)

b. Dimensi (KECIL, SEDANG, dan BESAR)

c. Berat (RINGAN, SEDANG, dan BERAT)

d. Phonebook memory (SEDIKIT, SEDANG, dan BANYAK)

Misalkan kita mengkategorikan harga HP ke dalam himpunan:

MURAH, SEDANG, dan MAHAL. Himpunan MURAH dan

MAHAL menggunakan pendekatan fungsi keanggotaan berbentuk

bahu, sedangkan himpunan SEDANG menggunakan pendekatan

fungsi keanggotaan berbentuk segitiga. Fungsi keanggotaan harga

HP terlihat pada gambar 2.6.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 41: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

23

Gambar 2. 8. Fungsi keanggotaan pada Variabel Harga

Fungsi keanggotaan variabel harga dirumuskan sebagai

berikut:

Misal ingin diketahui tipe HP apa saja yang harganya SEDANG,

beratnya RINGAN, dan ada WAP. Maka, Structured Query

language (SQL) yang dibentuk adalah:

SELECT TYPE FROM DT_HP WHERE (harga=”sedang”) AND

(berat = “RINGAN”) AND (WAP= TRUE)

Karena variabel WAP bersifat non fuzzy, maka hanya ada 2

kemungkinan derajat keanggotaan, yaitu 1 apabila ada WAP, dan 0

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 42: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

24

apabila tidak ada WAP. Tabel 2.2 memperlihatkan fire strength

sebagai hasil operasi dari (Harga SEDANG) AND (Berat

RINGAN) AND (Ada WAP) sebagai:

µHargaSEDANGᴖBeratRINGANᴖAdaWAP =

min(µHargaSEDANG[x1], µBeratRINGAN[x3], µAdaWAP[x5]).

Tabel 2. 2. Fire Strength untuk query Harga Sedang, Berat

RINGAN, Ada WAP

Tabel 2.2. memperlihatkan hasil pencarian terhadap Query 2. Ada 7

HP yang direkomendasi, dengan rekomendasi tertinggi adalah HP

tipe SG 2000, dan rekomendasi terendah adalah HP tipe T29s.

Sedangkan 8 tipe lainnya tidak direkomendasikan.

2.4. Query

Query adalah semacam kemampuan untuk menampilkan suatu data dari

database dimana mengambil dari tabel-tabel yang ada di database, namun

tabel tersebut tidak semua ditampilkan sesuai dengan yang kita inginkan.

Data apa yang ingin kita tampilkan. Misal: data peminjam dengan buku

yang dipinjam, maka nanti akan mengambil data dari tabel peminjam dan

tabel buku.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 43: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

25

BAB III

METODOLOGI PENELITIAN

3.1. Gambaran Umum

Penelitian yang dilakukan bertujuan untuk untuk memberikan

rekomendasi mobil sewa kepada calon penyewa berdasarkan kriteria-

kriteria seperti harga, tahun perakitan, kapasitas penumpang, ukuran,

konsumsi bahan bakar, dan kondisi. Sistem pendukung keputusan

pemilihan mobil sewa ini menggunakan metode fuzzy database model

Tahani. Data yang dipakai adalah data mobil yang ada di penyewaan

mobil daerah Yogyakarta. Nantinya sistem diharapkan mampu

memberikan rekomendasi mobil yang sesuai dengan kriteria yang di

masukan oleh pengguna.

3.2. Desain Penelitian

3.2.1. Studi Literatur

Studi literatur dilakukan dengan membaca buku, jurnal, serta

sumber lain yang berkaitan dengan fuzzy database model Tahani.

3.2.2. Data

- Data yang Digunakan

Data yang digunakan adalah data mobil pada 2 tempat

penyewaan mobil besar dan memiliki beberapa cabang di

D.I.Y, yaitu Sabila Transport yang berlokasi di Jl.Gambir

Anom No.9 dan Sewa Mobil yang terletak di Jl. Bantul km

10,5. Untuk kelengkapan data tentang spesifikasi mobil yang

disewakan ada di STNK/BKPK. Tetapi ada beberapa unit

mobil tidak berada di tempat atau sedang disewa. Maka untuk

data mobil yang sedang disewa diambil dari website yang

disediakan oleh pihak penyewa, yaitu

http://www.sabilatransport.com/.

- Teknik Pengumpulan Data

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 44: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

26

Teknik pengumpulan data yang digunakan adalah wawancara

dan pencarian di internet. Wawancara dilakukan dengan tanya

jawab kepada pengurus penyewaan mobil tentang data mobil

yang disewakan. Selain wawancara, dilakukan pencarian di

internet untuk data mobil yang lebih spesifik. Karena ada

beberapa tempat penyewaan mobil yang tidak bisa

memberikan informasi secara spesifik tentang mobil yang

disewakan.

3.2.3. Perancangan Alat Uji

Perancangan alat uji dalam penelitian ini menggunakan model

waterfall. Berikut adalah beberapa tahapannya:

- Analisa

Dalam tahap ini dilakukan analisa terhadap kebutuhan sistem.

Seorang sistem analis bertugas dalam mencari informasi

sebanyak mungkin dari user sehingga sistem yang dibuat

sesuai dengan keinginan user. Tahapan ini biasanya akan

menghasilkan dokumen user requirement yang dapat

digunakan sistem analis untuk menerjemahkan ke dalam

bahasa pemrograman.

- Desain

Dalam tahap ini dilakukan proses membuat rancangan alat uji

berdasarkan informasi dari tahap-tahap sebelumnya. Proses

ini berfokus pada struktur data, arsitektur perangkat lunak,

representasi interface, dan detail algoritma. Tahapan ini akan

menghasilkan dokumen yang disebut software requirement.

Dokumen ini yang digunakan seorang programmer untuk

membangun sistemnya.

- Pengkodean (Coding)

Pengkodean merupakan tahap di mana perancangan yang

telah dibuat pada tahap desain diterjemahkan ke dalam bahasa

pemrograman pada komputer. Pengkodean menghasilkan alat

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 45: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

27

uji dalam bentuk perangkat lunak yang dibuat berdasarkan

rancangan yang telah ada.

- Pengujian

Pada tahap pengujian, alat uji berupa perangkat lunak diuji

coba untuk mengetahui apakah perangkat lunak tersebut sudah

sesuai dengan rancangan dan kebutuhan pengguna. Selain itu,

pengujian dilakukan untuk menemukan kesalahan-kesalahan

sistem yang kemudian akan diperbaiki.

3.3. Spesifikasi Software dan Hardware

Spesifikasi software dan hardware yang digunakan dalam implementasi

sistem penentuan stok buku ini adalah sebagai berikut:

a. Software

- Sistem Operasi yang digunakan adalah Microsoft Windows 7

32-bit.

- Bahasa pemrograman yang digunakan adalah bahasa

pemrograman Java dengan menggunakan aplikasi Netbeans.

b. Hardware

- Processor yang digunakan adalah Intel(R) Core(TM) i3 CPU

M 350 @ 2.27 GHz 2.27 GHz.

- Memory yaitu 2 GB.

3.4. Pengujian dan Evaluasi Sistem

Pengujian dan evaluasi pada sistem adalah sebagai berikut:

a. Pengujian

Pengujian dilakukan dengan cara mengimplementasikan logika fuzzy

kedalam sistem basis data. Kemudian dilakukan pencarian waktu

proses eksekusi query setiap variabel dan dan table space yang

digunakan untuk menyimpan data.

b. Evaluasi

Evaluasi dilakukan sesuai dengan tujuan dalam penelitian ini.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 46: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

28

BAB IV

ANALISIS DAN PERANCANGAN SISTEM

4.1. Analisa Kebutuhan

4.1.1. Analisa Sistem

Sistem yang akan dibuat bertujuan untuk memberikan

rekomendasi mobil sewa kepada calon penyewa berdasarkan

kriteria-kriteria seperti harga, tahun perakitan, kapasitas

penumpang, ukuran, konsumsi bahan bakar, dan kondisi. Sistem

pendukung keputusan pemilihan mobil sewa ini menggunakan

metode fuzzy database model Tahani. Data yang dipakai adalah

data mobil yang ada di penyewaan mobil daerah Yogyakarta.

Data-data mobil ini akan disimpan pada sebuah tabel di database.

Setelah itu data akan diolah dengan metode fuzzy database model

Tahani untuk menentukan fire-strength sesuai dengan kriteria

yang diberikan. Pada akhirnya mobil dengan firestrength tertinggi

lebih direkomedasikan untuk disewa. Sistem ini akan di

implementasikan ke sebuah aplikasi berbasis desktop dengan

menggunakan pemrograman berbasis java. Gambar 4.1 berisi

tentang flowchart yang digunakan untuk memahami jalannya

program.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 47: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

29

Penentuan

himpunan fuzzy

Start

Proses

Input

Kriteria user

End

Ya

TidakPenentuan fungsi

keanggotaan

Perhitungan

firestrength

Gambar 4. 1. Flowchart sistem

4.1.2. Analisa Kebutuhan Pengguna

4.1.2.1. Use Case Diagram

System

Admin

Pengguna

Kelola Data Batas Himpunan

Rekomendasi Mobil

Pencarian Mobil

Kelola Data Mobil

Gambar 4. 2. Use Case System

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 48: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

30

Admin

Kelola Data Mobil

Insert

Update

view

Delete

Gambar 4. 3. Package Kelola Data Mobil

Admin

Kelola Data Batas Himpunan

Insert

Update

view

Delete

Gambar 4. 4. Package Kelola Data Batas Himpunan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 49: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

31

Pengguna

Rekomendasi Mobil

Perhitungan Derajat Keanggotaan

Perhitungan Firestrength

Gambar 4. 5. Package Rekomendasi Mobil

Pada gambar 4.2., gambar 4.3, gambar 4.4., da gambar 4.5.

direpresentasikan semua aktivitas yang dilakukan oleh pengguna

dan admin pada sistem. Pengguna dalam sistem ini melakukan

aktivitas seperti pencarian mobil dan rekomendasi mobil.

Sedangkan admin melakukan aktivitas kelola data mobil dan

kelola data batas himpunan.

4.1.2.2. Tabel Ringkasan Use Case

Nama Use Case Keterangan Pelaku

Kelola Data Mobil Use case ini merupakan

kumpulan dari beberapa

proses, yaitu insert data

mobil, view data mobil,

update data mobil, dan delete

data mobil.

Admin

Kelola Data Batas

Himpunan

Use case ini merupakan

kumpulan dari beberapa

proses, yaitu insert data batas

himpunan fuzzy, view data

batas himpunan fuzzy,

update data batas himpunan

fuzzy, dan delete batas

Admin

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 50: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

32

himpunan fuzzy.

Pencarian Mobil Use case ini merupakan

proses memasukkan kriteria

mobil yang akan di sewa.

Pengguna

Rekomendasi Mobil Use case ini merupakan

kumpulan dari beberapa

proses, yaitu perhitungan

derajat keanggotaan dan

perhitungan firestrength

sesuai dengan kriteria yang

ditentukan.

Pengguna

4.1.3. Diagram Arus Data

4.1.3.1. Diagram Konteks

Admin

0

SYSTEMPengguna

Data Mobil

Batas Himp. Fuzzy

Kriteria Mobil

Mobil Direkomendasi

Gambar 4. 6. Diagram Konteks Sistem

Diagram konteks untuk sistem ini seperti terlihat pada gambar

4.3 ada dua entitas luar yang berhubungan dengan sistem ini,

yaitu: Admin dan pengguna. Admin adalah orang yang memiliki

penyewaan atau orang yang berhak mengisi data ke sistem. Dari

admin akan diperoleh batas himpunan fuzzy dan data mobil.

Sedangkan pengguna akan mendapatkan layanan rekomendasi

mobil sesuai dengan kriteria yang diinginkan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 51: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

33

4.1.3.2. Diagram Arus Data Level 1

Admin

1

Kelola

Data Mobil

2

Kelola Data

Batas

Himpunan

3

Rekomendasi

Mobil

4

Pencarian

Mobil

TBatasHimp

Data

Bata

s

him

p. fu

zzy

Bata

s him

p.

fuzz

y

Pengguna

Data mobil

TDataMobil

Data mobil

Data MobilData Mobil

TMu

Derajat

keanggotaan &

fire strength

Data

Kriteria

Mobil

Data

Rekomendasi

Mobil

Data

Bata

s

him

p. fu

zzy

Gambar 4. 7. Diagram Arus Data Level 1

Diagram arus data level 1 untuk sistem ini seperti terlihat pada

gambar 4.4. Diagram arus data level 1 terdiri dari 4 proses, yaitu

proses kelola data mobil, proses kelola data batas himpunan,

proses rekomendasi mobil, serta proses pencarian mobil. Pada

proses kelola data mobil, data disimpan dan diambil dari tabel

TDataMobil. Pada proses kelola data batas himpuna, data

disimpan dan diambil dari tabel TbatasHimp. Pada proses

pencarian mobil. Pengguna memasukan kriteria mobil yang

diinginkan, dan kemudian akan mendapatkan satu atau lebih

data mobil yang berkaitan dengan kriteria yang diinginkan.

Setelah itu data akan masuk ke proses rekomendasi mobil dan

hasilnya akan disimpan pada tabel TMu. Selain itu pada proses

rekomendasi mobil akan mengambil data dari tabel TMu untuk

menentukan seberapa besar nilai fire strength yang berguna

sebagai acuan rekomendasi mobil untuk pengguna. Jika nilai fire

strength mendekati nilai 1, maka akan semakin

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 52: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

34

direkomendasikan dan sebaliknya apabila mendekati nilai 0,

maka tidak direkomendasikan.

4.1.3.3. Diagram Arus Data Level 2

3.1

Perhitungan

derajat

keanggotaan

4

Pencarian

Mobil

Pengguna

TDataMobil

Data MobilData Mobil

TMu

Data Derajat

keanggotaan

Data

Kriteria

Mobil

Data

Rekomendasi

Mobil

3.2

Perhitungan

Firestrength

Data

Dera

jat

keanggota

an

Gambar 4. 8. Diagram Arus Data Proses Rekomendasi Mobil

Diagram arus data level 2 untuk rekomendasi mobil sistem ini

seperti terlihat pada gambar 4.5. Diagram arus data level 2 ini

mendefinisikan proses rekomendasi mobil menjadi 2 proses,

yaitu proses perhitungan derajat keanggotaan dan proses

perhitungan firestrength. Proses perhitungan derajat

keanggotaan ini bertujuan memproses data mobil yang sudah

disortir sesuai dengan kriteria sehingga menghasilkan nilai

derajat keanggotaan dan disimpan ke tabel TMu. Sedangkan

pada proses perhitungan firestrength, data diambil dari tabel

TMu berupa data derajat keanggotaan yang kemudian akan

diproses sehingga menghasilkan nilai fire strength.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 53: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

35

Admin

1.1

Insert Data

Mobil

Dat

a m

obil

TDataMobil

Data mobil

Data

Mobil

1.2

Check

Data

Mobil

Data

mobil

1.3

Update

Data

Mobil

1.4

Delete

Data

Mobil

Data m

obilDat

a m

obil

Data

mobil

Data

mobil

Gambar 4. 9. Arus Data Proses Kelola Data Mobil

Diagram arus data level 2 untuk kelola data mobil sistem ini

seperti terlihat pada gambar 4.6. Diagram arus data level 2 ini

mendefinisikan proses kelola data mobil menjadi 4 proses, yaitu

proses insert data mobil, check data mobil, update data mobil,

dan delete data mobil. Insert data mobil adalah proses

memasukan data mobil ke tabel TDataMobil. Check data mobil

hanya untuk melihat data mobil yang ada di tabel TDataMobil.

Upadate data mobil untuk mengubah data mobil yang sudah ada

di tabel TDataMobil. Delete data mobil untuk menghapus data

mobil yang ada di tabel TDataMobil.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 54: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

36

2.1

Insert Data

Batas Himp.

fuzzyTBatasHimp

Data B

atas

himp. fuzzy

2.2

Check Data

Batas Himp.

fuzzy

Admin

2.4

Delete Data

Batas Himp.

fuzzy

2.3

Update Data

Batas Himp.

fuzzy

Data B

atas

himp. fuzzy

Data Batas

himp. fuzzy

Data Batas

himp. fuzzy

Data Batas

himp. fuzzyData B

atas

himp. fuzzy

Data Batas

himp. fu

zzy

Data

Bata

s

him

p. fu

zzy

Gambar 4. 10. Diagram Arus Data Proses Kelola Data Batas

Himp. Fuzzy

Diagram arus data level 2 untuk kelola data batas himp. fuzzy

sistem ini seperti terlihat pada gambar 4.7. Diagram arus data

level 2 ini mendefinisikan proses kelola data batas himpunan

fuzzy menjadi 4 proses, yaitu proses insert data batas himp.

fuzzy, check data batas himp. fuzzy, update data batas himp.

fuzzy, dan delete data batas himp. fuzzy. Insert data batas himp.

fuzzy untuk memasukan data batas himpunan fuzzy ke tabel

TBatasHimp. check data batas himp. fuzzy untuk melihat data

batas himpunan fuzzy yang ada di tabel TBatasHimp. Update

data batas himp. fuzzy untuk mengubah data batas himpunan

fuzzy yang ada di tabel TBatasHimp.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 55: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

37

4.1.4. Perancangan Basis data

4.1.4.1. Perancangan Konseptual

DATAMOBIL MU

BATASHIMPUNAN

(1.1)

ID

NAMA

HARGA

PANJANG

LEBAR

TINGGI

KAPASITAS_PENUMPANG

TAHUN

KAPASITAS_BBM

MHARGA1

MHARGA2

MHARGA3

MUKURAN1

MUKURAN3

MUKURAN2

MKAPASITASP1MKAPASITASP2

MKAPASITASP3

MKAPASITASB2

MKAPASITASB1

MKAPASITASB3

MTAHUN1

MTAHUN2

BATAS NILAI

ID

Gambar 4. 11. Perancangan konseptual

4.1.4.2. Perancangan Logikal

TDataMobil

PK ID

Nama

Harga

Panjang

Lebar

Tinggi

Kapasitas_penumpang

Kapasitas_bbm

Tahun

TBatasHimp

PK Batas

nilai

TMu

PK ID

Mharga1

Mharga2

Mharga3

Mukuran1

Mukuran2

Mukuran3

MkapasitasP1

MkapasitasP2

MkapasitasP3

MkapasitasBBM1

MkapasitasBBM2

MkapasitasBBM3

Mtahun1

Mtahun2

Gambar 4. 12. Perancangan Logikal

4.1.4.3. Perancangan Pisikal

a. Tabel DataMobil

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 56: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

38

Tabel DataMobil digunakan untuk menyimpan data-data

tentang atribut, harga serta spesifikasi mobil, struktur tabel

DataMobil dapat dilihat pada tabel 4.1.

Tabel 4. 1. Tabel Data Mobil

Nama Field Type Data Lebar Keterangan

Id* varchar2 20 Id Kendaraan

Nama varchar2 20 Nama kendaraan

Harga number Harga sewa kendaraan

Kapasitas

BBM

number Kapasitas BBM

Panjang number Panjang kendaraan

Lebar number Lebar kendaraan

Tinggi number Tinggi kendaraan

Kapasitas

penumpang

number Kapasitas kendaraan

Tahun number Tahun keluaran

kendaraan

*) Kunci Primer

b. Tabel BatasHimpunan

Tabel BatasHimpunan digunakan untuk menyimpan data-data

batas himpunan-himpunan fuzzy, struktur tabel BatasHimpunan

dapat dilihat pada tabel 4.2.

Tabel 4. 2. Tabel Batas Himpunan

Nama Field Type Data Lebar Keterangan

Batas* varchar2 20 Nama batas suatu

himpunan fuzzy

nilai number nilai batas suatu

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 57: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

39

himpunan fuzzy

*) Kunci Primer

c. Tabel Mu

Tabel Mu digunakan untuk menyimpan data-data tentang

derajat keanggotaan suatu kriteria mobil tertentu pada

himpunan fuzzy tertentu, struktur tabel Mu dapat dilihat pada

tabel 4.3.

Tabel 4. 3. Tabel Mu

Nama Field Type

Data

Lebar Keterangan

Id* varchar2 20 Id kendaraan

Mharga1 number Derajat

keanggotaan untuk

harga di

himp.MURAH

Mharga2 number Derajat

keanggotaan untuk

harga di

himp.SEDANG

Mharga3 number Derajat

keanggotaan untuk

harga di

himp.MAHAL

Mukuran1 number Derajat

keanggotaan untuk

kondisi di

himp.KECIL

Mukuran2 number Derajat

keanggotaan untuk

kondisi di

himp.NORMAL

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 58: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

40

Mukuran3 number Derajat

keanggotaan untuk

kondisi di

himp.BESAR

MkapasitasP1 number Derajat

keanggotaan untuk

kondisi di

himp.SEDIKIT

MkapasitasP2 number Derajat

keanggotaan untuk

kondisi di

himp.SEDANG

MkapasitasP3 number Derajat

keanggotaan untuk

kondisi di

himp.BANYAK

MkapasitasB1 number Derajat

keanggotaan untuk

kondisi di

himp.SEDIKIT

MkapasitasB2 number Derajat

keanggotaan untuk

kondisi di

himp.SEDANG

MkapasitasB3 number Derajat

keanggotaan untuk

kondisi di

himp.BANYAK

Mtahun1 number Derajat

keanggotaan untuk

tahun di

himp.LAMA

Mtahun2 number Derajat

keanggotaan untuk

tahun di

himp.BARU

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 59: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

41

4.1.5. Penerapan Contoh Perhitungan

Data-data yang ada berupa 8, maka peneliti mecoba melakukan

perhitungan manual sesuai dengan metode fuzzy database model

Tahani. Langkah-langkah perhitungan manual, sebagai berikut :

Diketahui :

Tabel 4. 4. Data Mobil

Id* Nama Harga Panj

ang

Leba

r

Tinggi Kapas

itas

penu

mpan

g

Kapas

itas

BBM

Tahun

1

Brio

satya type

e 300000 3610 1680 1485 5 35 2013

2 Jazz 300000 3845 1675 1525 5 42 2007

3 Jazz vtec 300000 3845 1675 1525 5 42 2008

4

Avanza

1.3 VVTi 250000 4120 1630 1695 8 45 2008

5

Avanza

1.3g 300000 4140 1660 1695 8 45 2010

6 Yaris 300000 3750 1695 1520 5 42 2009

7 Swift 300000 3755 1690 1510 5 45 2010

8 Splash 300000 3715 1680 1618 5 43 2010

4.1.5.1. Fungsi Keanggotaan

a. Variabel Harga

Variabel harga dibagi menjadi 3 himpunan fuzzy,yaitu

MURAH, NORMAL, dan MAHAL. Himpunan MURAH dan

MAHAL menggunakan pendekatan fungsi keanggotaan yang

berbentuk bahu, sedangkan himpunan NORMAL

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 60: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

42

menggunakan pendekatan fungsi keanggotaan berbentuk

segitiga.

Gambar 4. 13. Fungsi keanggotaan pada Variabel Harga

Fungsi keanggotaannya:

b. Variabel Ukuran

Variabel ukuran merupakan variabel yang diperngaruhi oleh

tiga variabel lainnya, yaitu: variabel panjang, lebar, dan tinggi.

1. Variabel Panjang

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 61: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

43

Variabel panjang dibagi menjadi tiga himpunan fuzzy,

yaitu: PENDEK, SEDANG, dan PANJANG. Himpunan

PENDEK dan PANJANG menggunakan pendekatan fungsi

keanggotaan yang berbentuk bahu, sedangkan himpunan

NORMAL menggunakan pendekatan fungsi keanggotaan

berbentuk segitiga.

Gambar 4. 14. Fungsi Keanggotaan pada Variabel Panjang

Fungsi keanggotaannya:

2. Variabel Lebar

Variabel lebar dibagi menjadi tiga himpunan fuzzy, yaitu:

SEMPIT, SEDANG, dan LEBAR. Himpunan SEMPIT dan

LEBAR menggunakan pendekatan fungsi keanggotaan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 62: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

44

yang berbentuk bahu, sedangkan himpunan NORMAL

menggunkan pendekatan fungsi keanggotaan berbentuk

segitiga.

Gambar 4. 15. Fungsi keanggotaan pada Variabel Lebar

Fungsi keanggotaanya:

3. Variabel Tinggi

Variabel tinggi dibagi menjadi tiga himpunan fuzzy, yaitu:

PENDEK, SEDANG, dan TINGGI. Himpunan PENDEK

dan TINGGI menggunakan pendekatan fungsi keanggotaan

yang berbentuk bahu, sedangkan himpunan NORMAL

menggunakan pendekatan fungsi keanggotaan berbentuk

segitiga.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 63: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

45

Gambar 4. 16. Fungsi keanggotaan pada Varabel Tinggi

Fungsi keanggotaanya:

Variabel ukuran, dibagi menjadi tiga himpunan, yaitu: KECIL,

NORMAL, dan BESAR. Meskipun variabel Panjang, Lebar, dan

Tinggi masing-masing terbagi atas tiga himpunan fuzzy, namun

untuk mengkategorikan suatu mobil masuk dalam salah satu

himpunan (KECIL, NORMAL, atau BESAR) tidak memerlukan

inferensi dari himpunan-himpunan pada variabel panjang, lebar,

dan tinggi. Pembagian ketiga variabel menjadi himpunan-

himpunan, hanya diperlukan untuk memudahkan dalam

pengambilan batas fungsi keanggotaan pada variabel ukuran.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 64: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

46

Himpunan KECIL, memiliki fungsi keanggotaan berbentuk bahu

kiri, dengan nilai batas bawah diperoleh dari hasil perkalian batas

bawah himpunan PENDEK (pada variabel panjang), SEMPIT

(pada variabel lebar), dan PENDEK (pada variabel tinggi).

Sedangkan nilai batas atas diperoleh dari hasil perkalian batas atas

himpunan PENDEK (pada variabel panjang), SEMPIT (pada

variabel lebar), dan PENDEK (pada variabel tinggi).

Himpunan NORMAL, memiliki fungsi keanggotaan berbentuk

segitiga, dengan nilai batas bawah diperoleh dari hasil perkalian

batas bawah himpunan SEDANG (pada variabel panjang),

NORMAL (pada variabel lebar), dan SEDANG (pada variabel

tinggi). Sedangkan nilai batas atas diperoleh dari hasil perkalian

batas atas himpunan SEDANG (pada variabel panjang), NORMAL

(pada variabel lebar), dan SEDANG (pada variabel tinggi).

Himpunan BESAR, memiliki fungsi keanggotaan berbentuk bahu

kanan, dengan nilai batas bawah diperoleh dari hasil perkalian

batas bawah himpunan PANJANG (pada variabel panjang),

LEBAR (pada variabel lebar), dan TINGGI (pada variabel tinggi).

Sedangkan nilai batas atas diperoleh dari hasil perkalian batas atas

himpunan PANJANG (pada variabel panjang), LEBAR (pada

variabel lebar), dan TINGGI (pada variabel tinggi).

Gambar 4. 17. Fungsi keanggotaan pada Variabel Ukuran

Fungsi keanggotaannya:

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 65: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

47

c. Variabel Kapasitas BBM

Variabel kapasitas BBM dibagi menjadi tiga himpunan fuzzy,

yaitu SEDIKIT, SEDANG, dan BANYAK. Himpunan

SEDIKIT dan BANYAK menggunakan pendekatan fungsi

keanggotaan yang berbentuk bahu, sedangkan himpunan

SEDANG menggunakan pendekatan fungsi keanggotaan

berbentuk segitiga.

Gambar 4. 18. Fungsi keanggotaan pada Variabel Kapasitas BBM

Fungsi keanggotaannya:

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 66: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

48

d. Variabel Kapasitas penumpang

Variabel kapasitas penumpang dibagi menjadi tiga himpunan

fuzzy, yaitu SEDIKIT, SEDANG, dan BANYAK. Himpunan

SEDIKIT dan BANYAK menggunakan pendekatan fungsi

keanggotaan yang berbentuk bahu, sedangkan himpunan

SEDANG menggunakan pendekatan fungsi keanggotaan

berbentuk segitiga.

Gambar 4. 19. Fungsi keanggotaan pada Variabel Kapasitas penumpang

Fungsi keanggotaannya:

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 67: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

49

e. Variabel Tahun

Variabel Tahun dibagi menjadi dua himpunan fuzzy, yaitu

BARU dan LAMA. Himpunan BARU dan LAMA

menggunakan pendekatan fungsi keanggotaan yang berbentuk

bahu.

Gambar 4. 20. Fungsi keanggotaan pada Variabel Tahun

Fungsi Keanggotaannya:

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 68: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

50

4.1.5.2. Query 1

Ingin diketahui, mobil apa saja yang memiliki kriteria harga

MURAH, ukuran BESAR, kapasitas penumpang BANYAK,

kapasitas BBM SEDANG, dan tahun LAMA. Mobil apakah

yang akan direkomendasikan ?

SELECT a.Nama, a.Harga, b.Mu

FROM DataMobil a, Mu b

where ((((a.Harga=’MURAH’)) and (Ukuran=’BESAR’)) and

(a.Kapasitas_penumpang=’BANYAK’)) and

(a.kapasitas_BBM=’SEDANG’))

Order by b.Mu DESC, a.Harga ASC

Tabel 4. 5. Nilai Derajat Keanggotaan pada setiap Himpunan

Id* Nama Derajat Keanggotaan

Harga

MURAH

Ukuran

KECIL

Kapasitas

Penumpang

BANYAK

Kapasitas

BBM

SEDANG

1

Brio satya

type e 1 0,69496139 0 0

2 Jazz 1 0,51809721 0 0,466667

3 Jazz vtec 1 0,51809721 0 0,466667

4

Avanza 1.3

VVTi 1,5 0,17940521 1 0,666667

5 Avanza 1.3g 1 0,12175315 1 0,666667

6 Yaris 1 0,55281996 0 0

7 Swift 1 0,56998167 0 0,666667

8 Splash 1 0,45807774 0 0,533333

Hasil Pencarian Query 1 bisa dilihat pada tabel 3.6.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 69: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

51

Tabel 4. 6. Fire strength

Nama Harga Rekomendasi

Avanza 1.3

VVTi 250000 0,179405206

Avanza 1.3g 300000 0,121753145

Brio satya

type e 300000 0

Jazz 300000 0

Jazz vtec 300000 0

Yaris 300000 0

Swift 300000 0

Splash 300000 0

Jadi mobil yang paling direkomendasikan sesuai dengan kriteria

adalah mobil dengan nama Avanza 1.3 VVTi.

4.2. Perancangan Antar Muka

4.2.1. Perancangan Halaman Awal

HOME BATAS HIMPUNANDATA MOBILPENCARIAN

PENERAPAN

MODEL

TAHANI DALAM SISTEM

PENDUKUNG KEPUTUSAN

PEMILIHAN MOBIL SEWA

FUZZY

DATABASE

Gambar 4. 21. Desaign Halaman Home Admin

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 70: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

52

4.2.2. Perancangan Halaman Pencarian

Gambar 4. 22. Desaign Halaman Pencarian Tab Fuzzy Admin

Gambar 4. 23. Desaign Halaman Pencarian Tab Fuzzy Pengguna

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 71: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

53

Gambar 4. 24. Desaign Halaman Pencarian Tab Tegas Admin

Gambar 4. 25. Desaign Halaman Pencarian Tab Tegas Pengguna

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 72: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

54

4.2.3. Perancangan Halaman Data Mobil

Gambar 4. 26. Desaign Halamn Data Mobil Admin

Gambar 4. 27. Desaign Halaman Data Mobil Pengguna

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 73: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

55

4.2.4. Perancangan Halaman Batas Himpunan

Gambar 4. 28. Desaign Halaman Batas Himpunan Admin

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 74: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

56

BAB V

IMPEMENTASI DAN ANALISA HASIL

5.1. Implementasi

Perancangan sistem yang sudah dilakukan selanjutnya diimpleentasikan ke

dalam program. Program dibuat dengan menggunakan bahasa

pemrograman Java.

5.1.1. Implementasi Fungsi Keanggotaan Harga Murah

public void MhargaMurah() throws SQLException {

PreparedStatement st = null;

PreparedStatement st2 = null;

PreparedStatement st3 = null;

PreparedStatement st4 = null;

ResultSet rs = null;

ResultSet rs2 = null;

ResultSet rs3 = null;

ResultSet rs4 = null;

try {

conn.setAutoCommit(false);

st = conn.prepareStatement("select id,harga from

datamobil");

rs = st.executeQuery();

String id = "";

double m = 0;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 75: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

57

while (rs.next()) {

id = rs.getString("id");

int h = rs.getInt("harga");

String tamp = "";

st3 = conn.prepareStatement("Select id from mu where

id='" + id + "'");

rs3 = st3.executeQuery();

while (rs3.next()) {

tamp = rs3.getString("id");

System.out.println("Masuk");

}

if (tamp.equals("")) {

System.out.println(id);

System.out.println(h);

if (h <= bHargaMurahA()) {

st2 = conn.prepareStatement("INSERT INTO

MU(ID, MHARGA1) VALUES (?, '1')");

st2.setString(1, id);

st2.executeUpdate();

} else if (h >= bHargaMurahB()) {

st2 = conn.prepareStatement("INSERT INTO

MU(ID, MHARGA1) VALUES (?, '0')");

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 76: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

58

st2.setString(1, id);

st2.executeUpdate();

} else {

m = (bHargaMurahB() - h);

m = m / (bHargaMurahB() - bHargaMurahA());

st2 = conn.prepareStatement("INSERT INTO

MU(ID, MHARGA1) VALUES (?, ?)");

st2.setString(1, id);

st2.setDouble(2, m);

st2.executeUpdate();

}

} else {

System.out.println("Data sudah ada");

if (h <= bHargaMurahA()) {

st4 = conn.prepareStatement("update mu set

MHARGA1='1' where id=?");

st4.setString(1, id);

st4.executeUpdate();

} else if (h >= bHargaMurahB()) {

st4 = conn.prepareStatement("update mu set

MHARGA1='0' where id=?");

st4.setString(1, id);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 77: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

59

st4.executeUpdate();

} else if (tamp.equals(id)) {

m = (bHargaMurahB() - h);

m = m / (bHargaMurahB() - bHargaMurahA());

st4 = conn.prepareStatement("update mu set

MHARGA1=? where id=?");

st4.setDouble(1, m);

st4.setString(2, id);

st4.executeUpdate();

}

}

}

conn.commit();

} catch (SQLException ex) {

conn.rollback();

throw ex;

} finally {

try {

conn.setAutoCommit(true);

if (st != null) {

st.close();

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 78: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

60

} catch (SQLException ex) {

throw ex;

}

}

}

Listing program di atas digunakan untuk mencari derajat keanggotaan

untuk fungsi keanggotaan himpunan murah pada variabel harga. Data dari

database akan diolah sesuai dengan fungsi keanggotaan murah pada

varibel harga.

5.1.2. Implementasi Fungsi Keanggotaan Harga Sedang

public void MhargaSedang() throws SQLException {

PreparedStatement st = null;

PreparedStatement st2 = null;

PreparedStatement st3 = null;

PreparedStatement st4 = null;

ResultSet rs = null;

ResultSet rs2 = null;

ResultSet rs3 = null;

ResultSet rs4 = null;

try {

conn.setAutoCommit(false);

st = conn.prepareStatement("select id,harga from

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 79: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

61

datamobil");

rs = st.executeQuery();

String id = "";

double m = 0;

while (rs.next()) {

id = rs.getString("id");

int h = rs.getInt("harga");

String tamp = "";

st3 = conn.prepareStatement("Select id from mu where

id='" + id + "'");

rs3 = st3.executeQuery();

while (rs3.next()) {

tamp = rs3.getString("id");

System.out.println("Masuk");

}

if (tamp.equals("")) {

System.out.println(id);

System.out.println(h);

if (h >= bHargaNormalA() && h <=

bHargaNormalB()) {

m = (h - bHargaNormalA());

m = m / (bHargaNormalB() - bHargaNormalA());

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 80: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

62

st2 = conn.prepareStatement("INSERT INTO

MU(ID, MHARGA2) VALUES (?, ?)");

st2.setString(1, id);

st2.setDouble(2, m);

st2.executeUpdate();

} else if (h >= bHargaNormalB() && h <=

bHargaNormalC()) {

m = (bHargaNormalC() - h);

m = m / (bHargaNormalC() - bHargaNormalB());

st2 = conn.prepareStatement("INSERT INTO

MU(ID, MHARGA2) VALUES (?, ?)");

st2.setString(1, id);

st2.setDouble(2, m);

st2.executeUpdate();

} else {

st2 = conn.prepareStatement("INSERT INTO

MU(ID, MHARGA2) VALUES (?, '0')");

st2.setString(1, id);

st2.executeUpdate();

}

} else {

System.out.println("Data sudah ada");

if (h >= bHargaNormalA() && h <=

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 81: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

63

bHargaNormalB()) {

m = (h - bHargaNormalA());

m = m / (bHargaNormalB() - bHargaNormalA());

st2 = conn.prepareStatement("update mu set

MHARGA2=? where id=?");

st2.setDouble(1, m);

st2.setString(2, id);

st2.executeUpdate();

} else if (h >= bHargaNormalB() && h <=

bHargaNormalC()) {

m = (bHargaNormalC() - h);

m = m / (bHargaNormalC() - bHargaNormalB());

st2 = conn.prepareStatement("update mu set

MHARGA2=? where id=?");

st2.setDouble(1, m);

st2.setString(2, id);

st2.executeUpdate();

} else {

st2 = conn.prepareStatement("update mu set

MHARGA2='0' where id=?");

st2.setString(1, id);

st2.executeUpdate();

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 82: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

64

}

}

conn.commit();

} catch (SQLException ex) {

conn.rollback();

throw ex;

} finally {

try {

conn.setAutoCommit(true);

if (st != null) {

st.close();

}

} catch (SQLException ex) {

throw ex;

}

}

}

Listing program di atas digunakan untuk mencari derajat keanggotaan

untuk fungsi keanggotaan himpunan sedang pada variabel harga. Data dari

database akan diolah sesuai dengan fungsi keanggotaan sedang pada

varibel harga.

5.1.3. Implementasi Fungsi Keanggotaan Harga Mahal

public void MhargaMahal() throws SQLException {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 83: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

65

PreparedStatement st = null;

PreparedStatement st2 = null;

PreparedStatement st3 = null;

PreparedStatement st4 = null;

ResultSet rs = null;

ResultSet rs2 = null;

ResultSet rs3 = null;

ResultSet rs4 = null;

try {

conn.setAutoCommit(false);

st = conn.prepareStatement("select id,harga from

datamobil");

rs = st.executeQuery();

String id = "";

while (rs.next()) {

id = rs.getString("id");

int h = rs.getInt("harga");

String tamp = "";

st3 = conn.prepareStatement("Select id from mu where

id='" + id + "'");

rs3 = st3.executeQuery();

double m = 0;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 84: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

66

while (rs3.next()) {

tamp = rs3.getString("id");

System.out.println("Masuk");

}

if (tamp.equals("")) {

System.out.println(id);

System.out.println(h);

if (h <= bHargaMahalA()) {

st2 = conn.prepareStatement("INSERT INTO

MU(ID, MHARGA3) VALUES (?, '0')");

st2.setString(1, id);

st2.executeUpdate();

} else if (h >= bHargaMahalB()) {

st2 = conn.prepareStatement("INSERT INTO

MU(ID, MHARGA3) VALUES (?, '1')");

st2.setString(1, id);

st2.executeUpdate();

} else {

m = (h - bHargaMahalA());

m = m / (bHargaMahalB() - bHargaMahalA());

st2 = conn.prepareStatement("INSERT INTO

MU(ID, MHARGA3) VALUES (?, ?)");

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 85: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

67

st2.setString(1, id);

st2.setDouble(2, m);

st2.executeUpdate();

}

} else {

System.out.println("Data sudah ada");

if (h <= bHargaMahalA()) {

st2 = conn.prepareStatement("update mu set

MHARGA3='0' where id=?");

st2.setString(1, id);

st2.executeUpdate();

} else if (h >= bHargaMahalB()) {

st2 = conn.prepareStatement("update mu set

MHARGA3='1' where id=?");

st2.setString(1, id);

st2.executeUpdate();

} else {

m = (h - bHargaMahalA());

m = m / (bHargaMahalB() - bHargaMahalA());

st2 = conn.prepareStatement("update mu set

MHARGA3=? where id=?");

st2.setDouble(1, m);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 86: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

68

st2.setString(2, id);

st2.executeUpdate();

}

}

}

conn.commit();

} catch (SQLException ex) {

conn.rollback();

throw ex;

} finally {

try {

conn.setAutoCommit(true);

if (st != null) {

st.close();

}

} catch (SQLException ex) {

throw ex;

}

}

}

Listing program di atas digunakan untuk mencari derajat keanggotaan

untuk fungsi keanggotaan himpunan mahal pada variabel harga. Data dari

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 87: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

69

database akan diolah sesuai dengan fungsi keanggotaan mahal pada varibel

harga.

5.1.4. Implementasi Fungsi Keanggotaan Ukuran Kecil

public void MUkurangKecil() throws SQLException {

PreparedStatement st = null;

PreparedStatement st2 = null;

PreparedStatement st3 = null;

PreparedStatement st4 = null;

ResultSet rs = null;

ResultSet rs2 = null;

ResultSet rs3 = null;

ResultSet rs4 = null;

try {

conn.setAutoCommit(false);

st = conn.prepareStatement("select id from datamobil");

rs = st.executeQuery();

String id = "";

double tamp = 0;

double batasA = 0;

double batasB = 0;

double m = 0;

while (rs.next()) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 88: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

70

id = rs.getString("id");

st3 = conn.prepareStatement("Select id from mu where id='" + id

+ "'");

rs3 = st3.executeQuery();

String i = "";

while (rs3.next()) {

i = rs3.getString("id");

}

tamp = MpanjangPendek(id) * MlebarSempit(id) *

MtinggiPendek(id) / Math.pow(10, 9);

batasA = bPanjangPendekA() * bTinggiPendekA() /

Math.pow(10, 9);

batasA = batasA * bLebarSempitA();

batasB = bPanjangPendekB() * bTinggiPendekB() /

Math.pow(10, 9);

batasB = batasB * bLebarSempitB();

System.out.println(tamp);

System.out.println("PA" + bPanjangPendekA());

System.out.println("LA" + bLebarSempitA());

System.out.println("TA" + bTinggiPendekA());

System.out.println("PB" + bPanjangPendekB());

System.out.println("LB" + bLebarSempitB());

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 89: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

71

System.out.println("TB" + bTinggiPendekB());

System.out.println(batasA);

System.out.println(batasB);

if (i.equals("")) {

if (tamp <= batasA) {

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MUKURAN1) VALUES (?, '1')");

st2.setString(1, id);

st2.executeUpdate();

} else if (tamp >= batasB) {

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MUKURAN1) VALUES (?, '0')");

st2.setString(1, id);

st2.executeUpdate();

} else {

m = (batasB - tamp);

m = m / (batasB - batasA);

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MUKURAN1) VALUES (?, ?)");

st2.setString(1, id);

st2.setDouble(2, m);

st2.executeUpdate();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 90: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

72

}

} else {

System.out.println(tamp);

System.out.println("PA" + bPanjangPendekA());

System.out.println("LA" + bLebarSempitA());

System.out.println("TA" + bTinggiPendekA());

System.out.println("PB" + bPanjangPendekB());

System.out.println("LB" + bLebarSempitB());

System.out.println("TB" + bTinggiPendekB());

System.out.println(batasA);

System.out.println(batasB);

if (tamp <= batasA) {

st2 = conn.prepareStatement("update mu set

MUKURAN1='1' where id=?");

st2.setString(1, id);

st2.executeUpdate();

} else if (tamp >= batasB) {

st2 = conn.prepareStatement("update mu set

MUKURAN1='0' where id=?");

st2.setString(1, id);

st2.executeUpdate();

} else {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 91: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

73

m = (batasB - tamp);

m = m / (batasB - batasA);

st2 = conn.prepareStatement("update mu set

MUKURAN1=? where id=?");

st2.setDouble(1, m);

st2.setString(2, id);

st2.executeUpdate();

}

}

}

conn.commit();

} catch (SQLException ex) {

conn.rollback();

throw ex;

} finally {

try {

conn.setAutoCommit(true);

if (st != null) {

st.close();

}

} catch (SQLException ex) {

throw ex;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 92: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

74

}

}

}

Listing program di atas digunakan untuk mencari derajat keanggotaan

untuk fungsi keanggotaan himpunan kecil pada variabel ukuran. Data dari

database akan diolah sesuai dengan fungsi keanggotaan kecil pada varibel

ukuran.

5.1.5. Implementasi Fungsi Keanggotaan Ukuran Normal

public void MUkurangNormal() throws SQLException {

PreparedStatement st = null;

PreparedStatement st2 = null;

PreparedStatement st3 = null;

PreparedStatement st4 = null;

ResultSet rs = null;

ResultSet rs2 = null;

ResultSet rs3 = null;

ResultSet rs4 = null;

try {

conn.setAutoCommit(false);

st = conn.prepareStatement("select id from datamobil");

rs = st.executeQuery();

String id = "";

double tamp = 0;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 93: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

75

double batasA = 0;

double batasB = 0;

double batasC = 0;

double m = 0;

while (rs.next()) {

id = rs.getString("id");

st3 = conn.prepareStatement("Select id from mu where id='" + id

+ "'");

rs3 = st3.executeQuery();

String i = "";

while (rs3.next()) {

i = rs3.getString("id");

}

tamp = MpanjangSedang(id) * MlebarSedang(id) *

MtinggiSedang(id) / Math.pow(10, 9);

batasA = bPanjangSedangA() * bLebarSedangA() / Math.pow(10,

9);

batasA = batasA * bTinggiSedangA();

batasB = bPanjangSedangB() * bLebarSedangB() / Math.pow(10,

9);

batasB = batasB * bTinggiSedangB();

batasC = bPanjangSedangC() * bLebarSedangC() / Math.pow(10,

9);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 94: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

76

batasC = batasC * bTinggiSedangC();

System.out.println(tamp);

if (i.equals("")) {

if (tamp <= batasB && tamp >= batasA) {

m = (tamp - batasA);

m = m / (batasB - batasA);

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MUKURAN2) VALUES (?, ?)");

st2.setString(1, id);

st2.setDouble(2, m);

st2.executeUpdate();

} else if (tamp >= batasB && tamp <= batasC) {

m = (batasC - tamp);

m = m / (batasC - batasB);

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MUKURAN2) VALUES (?, ?)");

st2.setString(1, id);

st2.setDouble(2, m);

st2.executeUpdate();

} else {

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MUKURAN2) VALUES (?, '0')");

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 95: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

77

st2.setString(1, id);

st2.executeUpdate();

}

} else {

if (tamp <= batasB && tamp >= batasA) {

m = (tamp - batasA);

m = m / (batasB - batasA);

st2 = conn.prepareStatement("update mu set MUKURAN2=?

where id=?");

st2.setDouble(1, m);

st2.setString(2, id);

st2.executeUpdate();

} else if (tamp >= batasB && tamp <= batasC) {

m = (batasC - tamp);

m = m / (batasC - batasB);

st2 = conn.prepareStatement("update mu set MUKURAN2=?

where id=?");

st2.setDouble(1, m);

st2.setString(2, id);

st2.executeUpdate();

} else {

st2 = conn.prepareStatement("update mu set

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 96: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

78

MUKURAN2='0' where id=?");

st2.setString(1, id);

st2.executeUpdate();

}

}

}

conn.commit();

} catch (SQLException ex) {

conn.rollback();

throw ex;

} finally {

try {

conn.setAutoCommit(true);

if (st != null) {

st.close();

}

} catch (SQLException ex) {

throw ex;

}

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 97: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

79

Listing program di atas digunakan untuk mencari derajat keanggotaan untuk

fungsi keanggotaan himpunan normal pada variabel ukuran. Data dari

database akan diolah sesuai dengan fungsi keanggotaan normal pada varibel

ukuran.

5.1.6. Implementasi Fungsi Keanggotaan Ukuran Besar

public void MUkurangBesar() throws SQLException {

PreparedStatement st = null;

PreparedStatement st2 = null;

PreparedStatement st3 = null;

PreparedStatement st4 = null;

ResultSet rs = null;

ResultSet rs2 = null;

ResultSet rs3 = null;

ResultSet rs4 = null;

try {

conn.setAutoCommit(false);

st = conn.prepareStatement("select id from datamobil");

rs = st.executeQuery();

String id = "";

double tamp = 0;

double batasA = 0;

double batasB = 0;

double m = 0;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 98: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

80

while (rs.next()) {

id = rs.getString("id");

st3 = conn.prepareStatement("Select id from mu where id='" + id +

"'");

rs3 = st3.executeQuery();

String i = "";

while (rs3.next()) {

i = rs3.getString("id");

}

tamp = MpanjangPanjang(id) * MlebarLebar(id) *

MtinggiTinggi(id) / Math.pow(10, 9);

batasA = bPanjangPanjangA() * bLebarLebarA() / Math.pow(10,

9);

batasA = batasA * bTinggiTinggiA();

batasB = bPanjangPanjangB() * bLebarLebarB() / Math.pow(10,

9);

batasB = batasB * bTinggiTinggiB();

System.out.println(tamp);

if (i.equals("")) {

if (tamp <= batasA) {

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MUKURAN3) VALUES (?, '0')");

st2.setString(1, id);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 99: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

81

st2.executeUpdate();

} else if (tamp >= batasB) {

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MUKURAN3) VALUES (?, '1')");

st2.setString(1, id);

st2.executeUpdate();

} else {

m = (tamp - batasA);

m = m / (batasB - batasA);

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MUKURAN3) VALUES (?, ?)");

st2.setString(1, id);

st2.setDouble(2, m);

st2.executeUpdate();

}

} else {

if (tamp <= batasA) {

st2 = conn.prepareStatement("update mu set MUKURAN3='0'

where id=?");

st2.setString(1, id);

st2.executeUpdate();

} else if (tamp >= batasB) {

st2 = conn.prepareStatement("update mu set MUKURAN3='1'

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 100: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

82

where id=?");

st2.setString(1, id);

st2.executeUpdate();

} else {

m = (tamp - batasA);

m = m / (batasB - batasA);

st2 = conn.prepareStatement("update mu set MUKURAN3=?

where id=?");

st2.setDouble(1, m);

st2.setString(2, id);

st2.executeUpdate();

}

}

}

conn.commit();

} catch (SQLException ex) {

conn.rollback();

throw ex;

} finally {

try {

conn.setAutoCommit(true);

if (st != null) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 101: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

83

st.close();

}

} catch (SQLException ex) {

throw ex;

}

}

}

Listing program di atas digunakan untuk mencari derajat keanggotaan untuk

fungsi keanggotaan himpunan besar pada variabel ukuran. Data dari database

akan diolah sesuai dengan fungsi keanggotaan besar pada varibel ukuran.

5.1.7. Implementasi Fungsi Keanggotaan Kapasitas Penumpang

Sedikit

public void MKapasitasPenumpangSedikit() throws SQLException {

PreparedStatement st = null;

PreparedStatement st2 = null;

PreparedStatement st3 = null;

PreparedStatement st4 = null;

ResultSet rs = null;

ResultSet rs2 = null;

ResultSet rs3 = null;

ResultSet rs4 = null;

try {

conn.setAutoCommit(false);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 102: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

84

st = conn.prepareStatement("select id,kapasitas_penumpang

from datamobil");

rs = st.executeQuery();

String id = "";

double m = 0;

while (rs.next()) {

id = rs.getString("id");

int h = rs.getInt("kapasitas_penumpang");

String tamp = "";

st3 = conn.prepareStatement("Select id from mu where id='"

+ id + "'");

rs3 = st3.executeQuery();

while (rs3.next()) {

tamp = rs3.getString("id");

System.out.println("Masuk");

}

if (tamp.equals("")) {

System.out.println(id);

System.out.println(h);

if (h <= bKapasitasPenumpangSedikitA()) {

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MKAPASITASP1) VALUES (?, '1')");

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 103: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

85

st2.setString(1, id);

st2.executeUpdate();

} else if (h >= bKapasitasPenumpangSedikitB()) {

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MKAPASITASP1) VALUES (?, '0')");

st2.setString(1, id);

st2.executeUpdate();

} else {

m = (bKapasitasPenumpangSedikitB() - h);

m = m / (bKapasitasPenumpangSedikitB() -

bKapasitasPenumpangSedikitA());

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MKAPASITASP1) VALUES (?, ?)");

st2.setString(1, id);

st2.setDouble(2, m);

st2.executeUpdate();

}

} else {

System.out.println("Data sudah ada");

if (h <= bKapasitasPenumpangSedikitA()) {

st4 = conn.prepareStatement("update mu set

MKAPASITASP1='1' where id=?");

st4.setString(1, id);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 104: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

86

st4.executeUpdate();

} else if (h >= bKapasitasPenumpangSedikitB()) {

st4 = conn.prepareStatement("update mu set

MKAPASITASP1='0' where id=?");

st4.setString(1, id);

st4.executeUpdate();

} else if (tamp.equals(id)) {

m = (bKapasitasPenumpangSedikitB() - h);

m = m / (bKapasitasPenumpangSedikitB() -

bKapasitasPenumpangSedikitA());

st4 = conn.prepareStatement("update mu set

MKAPASITASP1=? where id=?");

st4.setDouble(1, m);

st4.setString(2, id);

st4.executeUpdate();

}

}

}

conn.commit();

} catch (SQLException ex) {

conn.rollback();

throw ex;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 105: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

87

} finally {

try {

conn.setAutoCommit(true);

if (st != null) {

st.close();

}

} catch (SQLException ex) {

throw ex;

}

}

}

Listing program di atas digunakan untuk mencari derajat keanggotaan untuk

fungsi keanggotaan himpunan sedikit pada variabel kapasitas penumpang.

Data dari database akan diolah sesuai dengan fungsi keanggotaan sedikit pada

varibel kapasitas penumpang.

5.1.8. Implementasi Fungsi Keanggotaan Kapasitas Penumpang

Sedang

public void MKapasitasPenumpangSedang() throws SQLException {

PreparedStatement st = null;

PreparedStatement st2 = null;

PreparedStatement st3 = null;

PreparedStatement st4 = null;

ResultSet rs = null;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 106: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

88

ResultSet rs2 = null;

ResultSet rs3 = null;

ResultSet rs4 = null;

try {

conn.setAutoCommit(false);

st = conn.prepareStatement("select id,kapasitas_penumpang from

datamobil");

rs = st.executeQuery();

String id = "";

double m = 0;

while (rs.next()) {

id = rs.getString("id");

int h = rs.getInt("kapasitas_penumpang");

String tamp = "";

st3 = conn.prepareStatement("Select id from mu where id='" + id +

"'");

rs3 = st3.executeQuery();

while (rs3.next()) {

tamp = rs3.getString("id");

System.out.println("Masuk");

}

if (tamp.equals("")) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 107: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

89

System.out.println(id);

System.out.println(h);

if (h >= bKapasitasPenumpangSedangA() && h <=

bKapasitasPenumpangSedangB()) {

m = (h - bKapasitasPenumpangSedangA());

m = m / (bKapasitasPenumpangSedangB() -

bKapasitasPenumpangSedangA());

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MKAPASITASP2) VALUES (?, ?)");

st2.setString(1, id);

st2.setDouble(2, m);

st2.executeUpdate();

} else if (h >= bKapasitasPenumpangSedangB() && h <=

bKapasitasPenumpangSedangC()) {

m = (bKapasitasPenumpangSedangC() - h);

m = m / (bKapasitasPenumpangSedangC() -

bKapasitasPenumpangSedangB());

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MKAPASITASP2) VALUES (?, ?)");

st2.setString(1, id);

st2.setDouble(2, m);

st2.executeUpdate();

} else {

st2 = conn.prepareStatement("INSERT INTO MU(ID,

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 108: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

90

MKAPASITASP2) VALUES (?, '0')");

st2.setString(1, id);

st2.executeUpdate();

}

} else {

System.out.println("Data sudah ada");

if (h >= bKapasitasPenumpangSedangA() && h <=

bKapasitasPenumpangSedangB()) {

m = (h - bKapasitasPenumpangSedangA());

m = m / (bKapasitasPenumpangSedangB() -

bKapasitasPenumpangSedangA());

st2 = conn.prepareStatement("update mu set

MKAPASITASP2=? where id=?");

st2.setDouble(1, m);

st2.setString(2, id);

st2.executeUpdate();

} else if (h >= bKapasitasPenumpangSedangB() && h <=

bKapasitasPenumpangSedangC()) {

m = (bKapasitasPenumpangSedangC() - h);

m = m / (bKapasitasPenumpangSedangC() -

bKapasitasPenumpangSedangB());

st2 = conn.prepareStatement("update mu set

MKAPASITASP2=? where id=?");

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 109: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

91

st2.setDouble(1, m);

st2.setString(2, id);

st2.executeUpdate();

} else {

st2 = conn.prepareStatement("update mu set

MKAPASITASP2='0' where id=?");

st2.setString(1, id);

st2.executeUpdate();

}

}

}

conn.commit();

} catch (SQLException ex) {

conn.rollback();

throw ex;

} finally {

try {

conn.setAutoCommit(true);

if (st != null) {

st.close();

}

} catch (SQLException ex) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 110: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

92

throw ex;

}

}

}

Listing program di atas digunakan untuk mencari derajat keanggotaan untuk

fungsi keanggotaan himpunan sedang pada variabel kapasitas penumpang.

Data dari database akan diolah sesuai dengan fungsi keanggotaan sedang

pada varibel kapasitas penumpang.

5.1.9. Implementasi Fungsi Keanggotaan Kapasitas Penumpang

Banyak

public void MKapasitasPenumpangBanyak() throws SQLException {

PreparedStatement st = null;

PreparedStatement st2 = null;

PreparedStatement st3 = null;

PreparedStatement st4 = null;

ResultSet rs = null;

ResultSet rs2 = null;

ResultSet rs3 = null;

ResultSet rs4 = null;

try {

conn.setAutoCommit(false);

st = conn.prepareStatement("select id,kapasitas_penumpang from

datamobil");

rs = st.executeQuery();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 111: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

93

String id = "";

double m = 0;

while (rs.next()) {

id = rs.getString("id");

int h = rs.getInt("kapasitas_penumpang");

String tamp = "";

st3 = conn.prepareStatement("Select id from mu where id='" + id +

"'");

rs3 = st3.executeQuery();

while (rs3.next()) {

tamp = rs3.getString("id");

System.out.println("Masuk");

}

if (tamp.equals("")) {

System.out.println(id);

System.out.println(h);

if (h <= bKapasitasPenumpangBanyakA()) {

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MKAPASITASP3) VALUES (?, '0')");

st2.setString(1, id);

st2.executeUpdate();

} else if (h >= bKapasitasPenumpangBanyakB()) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 112: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

94

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MKAPASITASP3) VALUES (?, '1')");

st2.setString(1, id);

st2.executeUpdate();

} else {

m = (h - bKapasitasPenumpangBanyakA());

m = m / (bKapasitasPenumpangBanyakB() -

bKapasitasPenumpangBanyakA());

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MKAPASITASP3) VALUES (?, ?)");

st2.setString(1, id);

st2.setDouble(2, m);

st2.executeUpdate();

}

} else {

System.out.println("Data sudah ada");

if (h <= bKapasitasPenumpangBanyakA()) {

st2 = conn.prepareStatement("update mu set

MKAPASITASP3='0' where id=?");

st2.setString(1, id);

st2.executeUpdate();

} else if (h >= bKapasitasPenumpangBanyakB()) {

st2 = conn.prepareStatement("update mu set

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 113: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

95

MKAPASITASP3='1' where id=?");

st2.setString(1, id);

st2.executeUpdate();

} else {

m = (h - bKapasitasPenumpangBanyakA());

m = m / (bKapasitasPenumpangBanyakB() -

bKapasitasPenumpangBanyakA());

st2 = conn.prepareStatement("update mu set

MKAPASITASP3=? where id=?");

st2.setDouble(1, m);

st2.setString(2, id);

st2.executeUpdate();

}

}

}

conn.commit();

} catch (SQLException ex) {

conn.rollback();

throw ex;

} finally {

try {

conn.setAutoCommit(true);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 114: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

96

if (st != null) {

st.close();

}

} catch (SQLException ex) {

throw ex;

}

}

}

Listing program di atas digunakan untuk mencari derajat keanggotaan untuk

fungsi keanggotaan himpunan banyak pada variabel kapasitas penumpang.

Data dari database akan diolah sesuai dengan fungsi keanggotaan banyak

pada varibel kapasitas penumpang.

5.1.10. Implementasi Fungsi Keanggotaan Kapasitas BBM Sedikit

public void MKapasitasBBMSedikit() throws SQLException {

PreparedStatement st = null;

PreparedStatement st2 = null;

PreparedStatement st3 = null;

PreparedStatement st4 = null;

ResultSet rs = null;

ResultSet rs2 = null;

ResultSet rs3 = null;

ResultSet rs4 = null;

try {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 115: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

97

conn.setAutoCommit(false);

st = conn.prepareStatement("select id,kapasitas_BBM from

datamobil");

rs = st.executeQuery();

String id = "";

while (rs.next()) {

id = rs.getString("id");

int h = rs.getInt("kapasitas_BBM");

String tamp = "";

st3 = conn.prepareStatement("Select id from mu where id='" + id +

"'");

rs3 = st3.executeQuery();

double m = 0;

while (rs3.next()) {

tamp = rs3.getString("id");

System.out.println("Masuk");

}

System.out.println("kapasitas" + h);

System.out.println("ba" + bKapasitasBBMSedikitA());

System.out.println("bb" + bKapasitasBBMSedikitB());

if (tamp.equals("")) {

System.out.println(id);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 116: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

98

System.out.println(h);

if (h <= bKapasitasBBMSedikitA()) {

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MKAPASITASB1) VALUES (?, '1')");

st2.setString(1, id);

st2.executeUpdate();

} else if (h >= bKapasitasBBMSedikitB()) {

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MKAPASITASB1) VALUES (?, '0')");

st2.setString(1, id);

st2.executeUpdate();

} else {

System.out.println(bKapasitasBBMSedikitA());

m = (bKapasitasBBMSedikitB() - h);

m = m / (bKapasitasBBMSedikitB() -

bKapasitasBBMSedikitA());

System.out.println(m);

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MKAPASITASB1) VALUES (?, ?)");

st2.setString(1, id);

st2.setDouble(2, m);

st2.executeUpdate();

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 117: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

99

} else {

System.out.println("Data sudah ada");

if (h <= bKapasitasBBMSedikitA()) {

st4 = conn.prepareStatement("update mu set

MKAPASITASB1='1' where id=?");

st4.setString(1, id);

st4.executeUpdate();

} else if (h >= bKapasitasBBMSedikitB()) {

st4 = conn.prepareStatement("update mu set

MKAPASITASB1='0' where id=?");

st4.setString(1, id);

st4.executeUpdate();

} else if (tamp.equals(id)) {

System.out.println(bKapasitasBBMSedikitA());

m = (bKapasitasBBMSedikitB() - h);

m = m / (bKapasitasBBMSedikitB() -

bKapasitasBBMSedikitA());

System.out.println(m);

st4 = conn.prepareStatement("update mu set

MKAPASITASB1=? where id=?");

st4.setDouble(1, m);

st4.setString(2, id);

st4.executeUpdate();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 118: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

100

}

}

}

conn.commit();

} catch (SQLException ex) {

conn.rollback();

throw ex;

} finally {

try {

conn.setAutoCommit(true);

if (st != null) {

st.close();

}

} catch (SQLException ex) {

throw ex;

}

}

}

Listing program di atas digunakan untuk mencari derajat keanggotaan untuk

fungsi keanggotaan himpunan sedikit pada variabel kapasitas BBM. Data dari

database akan diolah sesuai dengan fungsi keanggotaan sedikit pada varibel

kapasitas BBM.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 119: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

101

5.1.11. Implementasi Fungsi Keanggotaan Kapasitas BBM Sedang

public void MKapasitasBBMSedang() throws SQLException {

PreparedStatement st = null;

PreparedStatement st2 = null;

PreparedStatement st3 = null;

PreparedStatement st4 = null;

ResultSet rs = null;

ResultSet rs2 = null;

ResultSet rs3 = null;

ResultSet rs4 = null;

try {

conn.setAutoCommit(false);

st = conn.prepareStatement("select id,kapasitas_BBM from

datamobil");

rs = st.executeQuery();

String id = "";

while (rs.next()) {

id = rs.getString("id");

int h = rs.getInt("kapasitas_BBM");

String tamp = "";

st3 = conn.prepareStatement("Select id from mu where id='" + id +

"'");

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 120: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

102

rs3 = st3.executeQuery();

double m = 0;

while (rs3.next()) {

tamp = rs3.getString("id");

System.out.println("Masuk");

}

if (tamp.equals("")) {

System.out.println(id);

System.out.println(h);

if (h >= bKapasitasBBMSedangA() && h <=

bKapasitasBBMSedangB()) {

m = (h - bKapasitasBBMSedangA());

m = m / (bKapasitasBBMSedangB() -

bKapasitasBBMSedangA());

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MKAPASITASB2) VALUES (?, ?)");

st2.setString(1, id);

st2.setDouble(2, m);

st2.executeUpdate();

} else if (h >= bKapasitasBBMSedangB() && h <=

bKapasitasBBMSedangC()) {

m = (bKapasitasBBMSedangC() - h);

m = m / (bKapasitasBBMSedangC() -

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 121: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

103

bKapasitasBBMSedangB());

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MKAPASITASB2) VALUES (?, ?)");

st2.setString(1, id);

st2.setDouble(2, m);

st2.executeUpdate();

} else {

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MKAPASITASB2) VALUES (?, '0')");

st2.setString(1, id);

st2.executeUpdate();

}

} else {

System.out.println("Data sudah ada");

if (h >= bKapasitasBBMSedangA() && h <=

bKapasitasBBMSedangB()) {

m = (h - bKapasitasBBMSedangA());

m = m / (bKapasitasBBMSedangB() -

bKapasitasBBMSedangA());

st2 = conn.prepareStatement("update mu set

MKAPASITASB2=? where id=?");

st2.setDouble(1, m);

st2.setString(2, id);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 122: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

104

st2.executeUpdate();

} else if (h >= bKapasitasBBMSedangB() && h <=

bKapasitasBBMSedangC()) {

m = (bKapasitasBBMSedangC() - h);

m = m / (bKapasitasBBMSedangC() -

bKapasitasBBMSedangB());

st2 = conn.prepareStatement("update mu set

MKAPASITASB2=? where id=?");

st2.setDouble(1, m);

st2.setString(2, id);

st2.executeUpdate();

} else {

st2 = conn.prepareStatement("update mu set

MKAPASITASB2='0' where id=?");

st2.setString(1, id);

st2.executeUpdate();

}

}

}

conn.commit();

} catch (SQLException ex) {

conn.rollback();

throw ex;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 123: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

105

} finally {

try {

conn.setAutoCommit(true);

if (st != null) {

st.close();

}

} catch (SQLException ex) {

throw ex;

}

}

}

Listing program di atas digunakan untuk mencari derajat keanggotaan untuk

fungsi keanggotaan himpunan sedang pada variabel kapasitas BBM. Data dari

database akan diolah sesuai dengan fungsi keanggotaan sedang pada varibel

kapasitas BBM.

5.1.12. Implementasi Fungsi Keanggotaan Kapasitas BBM Banyak

public void MKapasitasBBMBanyak() throws SQLException {

PreparedStatement st = null;

PreparedStatement st2 = null;

PreparedStatement st3 = null;

PreparedStatement st4 = null;

ResultSet rs = null;

ResultSet rs2 = null;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 124: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

106

ResultSet rs3 = null;

ResultSet rs4 = null;

try {

conn.setAutoCommit(false);

st = conn.prepareStatement("select id,kapasitas_BBM from

datamobil");

rs = st.executeQuery();

String id = "";

while (rs.next()) {

id = rs.getString("id");

int h = rs.getInt("kapasitas_BBM");

String tamp = "";

st3 = conn.prepareStatement("Select id from mu where id='" + id +

"'");

rs3 = st3.executeQuery();

double m = 0;

while (rs3.next()) {

tamp = rs3.getString("id");

System.out.println("Masuk");

}

if (tamp.equals("")) {

System.out.println(id);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 125: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

107

System.out.println(h);

if (h <= bKapasitasBBMBanyakA()) {

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MKAPASITASB3) VALUES (?, '0')");

st2.setString(1, id);

st2.executeUpdate();

} else if (h >= bKapasitasBBMBanyakB()) {

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MKAPASITASB3) VALUES (?, '1')");

st2.setString(1, id);

st2.executeUpdate();

} else {

m = (h - bKapasitasBBMBanyakA());

m = m / (bKapasitasBBMBanyakB() -

bKapasitasBBMBanyakA());

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MKAPASITASB3) VALUES (?, ?)");

st2.setString(1, id);

st2.setDouble(2, m);

st2.executeUpdate();

}

} else {

System.out.println("Data sudah ada");

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 126: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

108

if (h <= bKapasitasBBMBanyakA()) {

st2 = conn.prepareStatement("update mu set

MKAPASITASB3='0' where id=?");

st2.setString(1, id);

st2.executeUpdate();

} else if (h >= bKapasitasBBMBanyakB()) {

st2 = conn.prepareStatement("update mu set

MKAPASITASB3='1' where id=?");

st2.setString(1, id);

st2.executeUpdate();

} else {

m = (h - bKapasitasBBMBanyakA());

m = m / (bKapasitasBBMBanyakB() -

bKapasitasBBMBanyakA());

st2 = conn.prepareStatement("update mu set

MKAPASITASB3=? where id=?");

st2.setDouble(1, m);

st2.setString(2, id);

st2.executeUpdate();

}

}

}

conn.commit();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 127: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

109

} catch (SQLException ex) {

conn.rollback();

throw ex;

} finally {

try {

conn.setAutoCommit(true);

if (st != null) {

st.close();

}

} catch (SQLException ex) {

throw ex;

}

}

}

Listing program di atas digunakan untuk mencari derajat keanggotaan untuk

fungsi keanggotaan himpunan banyak pada variabel kapasitas BBM. Data

dari database akan diolah sesuai dengan fungsi keanggotaan banyak pada

varibel kapasitas BBM.

5.1.13. Implementasi Fungsi Keanggotaan Tahun Lama

public void MTahunLama() throws SQLException {

PreparedStatement st = null;

PreparedStatement st2 = null;

PreparedStatement st3 = null;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 128: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

110

PreparedStatement st4 = null;

ResultSet rs = null;

ResultSet rs2 = null;

ResultSet rs3 = null;

ResultSet rs4 = null;

try {

conn.setAutoCommit(false);

st = conn.prepareStatement("select id,tahun from datamobil");

rs = st.executeQuery();

String id = "";

while (rs.next()) {

id = rs.getString("id");

int h = rs.getInt("tahun");

String tamp = "";

st3 = conn.prepareStatement("Select id from mu where id='" + id +

"'");

rs3 = st3.executeQuery();

double m = 0;

while (rs3.next()) {

tamp = rs3.getString("id");

System.out.println("Masuk");

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 129: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

111

if (tamp.equals("")) {

System.out.println(id);

System.out.println(h);

if (h <= bTahunLamaA()) {

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MTAHUN1) VALUES (?, '1')");

st2.setString(1, id);

st2.executeUpdate();

} else if (h >= bTahunLamaB()) {

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MTAHUN1) VALUES (?, '0')");

st2.setString(1, id);

st2.executeUpdate();

} else {

m = (bTahunLamaB() - h);

m = m / (bTahunLamaB() - bTahunLamaA());

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MTAHUN1) VALUES (?, ?)");

st2.setString(1, id);

st2.setDouble(2, m);

st2.executeUpdate();

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 130: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

112

} else {

System.out.println("Data sudah ada");

if (h <= bTahunLamaA()) {

st4 = conn.prepareStatement("update mu set MTAHUN1='1'

where id=?");

st4.setString(1, id);

st4.executeUpdate();

} else if (h >= bTahunLamaB()) {

st4 = conn.prepareStatement("update mu set MTAHUN1='0'

where id=?");

st4.setString(1, id);

st4.executeUpdate();

} else if (tamp.equals(id)) {

m = (bTahunLamaB() - h);

m = m / (bTahunLamaB() - bTahunLamaA());

st4 = conn.prepareStatement("update mu set MTAHUN1=?

where id=?");

st4.setDouble(1, m);

st4.setString(2, id);

st4.executeUpdate();

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 131: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

113

}

conn.commit();

} catch (SQLException ex) {

conn.rollback();

throw ex;

} finally {

try {

conn.setAutoCommit(true);

if (st != null) {

st.close();

}

} catch (SQLException ex) {

throw ex;

}

}

}

Listing program di atas digunakan untuk mencari derajat keanggotaan untuk

fungsi keanggotaan himpunan lama pada variabel tahun. Data dari database

akan diolah sesuai dengan fungsi keanggotaan lama pada varibel tahun.

5.1.14. Implementasi Fungsi Keanggotaan Tahun Baru

public void MTahunBaru() throws SQLException {

PreparedStatement st = null;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 132: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

114

PreparedStatement st2 = null;

PreparedStatement st3 = null;

PreparedStatement st4 = null;

ResultSet rs = null;

ResultSet rs2 = null;

ResultSet rs3 = null;

ResultSet rs4 = null;

try {

conn.setAutoCommit(false);

st = conn.prepareStatement("select id,tahun from datamobil");

rs = st.executeQuery();

String id = "";

while (rs.next()) {

id = rs.getString("id");

int h = rs.getInt("tahun");

String tamp = "";

st3 = conn.prepareStatement("Select id from mu where id='" + id +

"'");

rs3 = st3.executeQuery();

double m = 0;

while (rs3.next()) {

tamp = rs3.getString("id");

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 133: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

115

System.out.println("Masuk");

}

if (tamp.equals("")) {

System.out.println(id);

System.out.println(h);

if (h <= bTahunBaruA()) {

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MTAHUN2) VALUES (?, '0')");

st2.setString(1, id);

st2.executeUpdate();

} else if (h >= bTahunBaruB()) {

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MTAHUN2) VALUES (?, '1')");

st2.setString(1, id);

st2.executeUpdate();

} else {

m = (h - bTahunBaruA());

m = m / (bTahunBaruB() - bTahunBaruA());

st2 = conn.prepareStatement("INSERT INTO MU(ID,

MTAHUN2) VALUES (?, ?)");

st2.setString(1, id);

st2.setDouble(2, m);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 134: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

116

st2.executeUpdate();

}

} else {

System.out.println("Data sudah ada");

if (h <= bTahunBaruA()) {

st2 = conn.prepareStatement("update mu set MTAHUN2='0'

where id=?");

st2.setString(1, id);

st2.executeUpdate();

} else if (h >= bTahunBaruB()) {

st2 = conn.prepareStatement("update mu set MTAHUN2='1'

where id=?");

st2.setString(1, id);

st2.executeUpdate();

} else {

m = (h - bTahunBaruA());

m = m / (bTahunBaruB() - bTahunBaruA());

st2 = conn.prepareStatement("update mu set MTAHUN2=?

where id=?");

st2.setDouble(1, m);

st2.setString(2, id);

st2.executeUpdate();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 135: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

117

}

}

}

conn.commit();

} catch (SQLException ex) {

conn.rollback();

throw ex;

} finally {

try {

conn.setAutoCommit(true);

if (st != null) {

st.close();

}

} catch (SQLException ex) {

throw ex;

}

}

}

Listing program di atas digunakan untuk mencari derajat keanggotaan untuk

fungsi keanggotaan himpunan baru pada variabel tahun. Data dari database

akan diolah sesuai dengan fungsi keanggotaan baru pada varibel tahun.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 136: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

118

5.1.15. Implementasi Perhitungan Hasil Query Satu Kriteria

public List<Mu> lihatHasil1(String kriteria1,String n1) throws SQLException {

PreparedStatement st = null;

ResultSet rs = null;

PreparedStatement st2 = null;

ResultSet rs2 = null;

try {

conn.setAutoCommit(false);

String sql = "select distinct d.id,d.nama,d.harga from datamobil d, mu

m"

+ " where d.id=m.id and m." + kriteria1 + "> 0 ";

st = conn.prepareStatement(sql);

rs = st.executeQuery();

List<Mu> m = new ArrayList<Mu>();

while (rs.next()) {

Mu mu = new Mu();

mu.setNama(rs.getString("nama"));

mu.setHarga(Double.parseDouble(rs.getString("harga")));

String sql2 = "select "+n1+"" + kriteria1 + " " + kriteria1 + " from

mu"

+ " where id='" + rs.getString("id") + "'";

System.out.println(rs.getString("id"));

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 137: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

119

st2 = conn.prepareStatement(sql2);

rs2 = st2.executeQuery();

double i = 0;

while (rs2.next()) {

for (int j = 1; j <= 1; j++) {

i = Double.parseDouble(rs2.getString(j));

}

}

mu.setSum(i);

if (i != 0) {

m.add(mu);

} else {

}

}

Collections.sort(m, new Comparator<Mu>() {

@Override

public int compare(Mu m1, Mu m2) {

return Double.compare(m2.getSum(), m1.getSum());

}

});

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 138: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

120

conn.commit();

return m;

} catch (SQLException exception) {

throw exception;

} finally {

try {

conn.setAutoCommit(true);

if (rs != null) {

rs.close();

}

if (st != null) {

st.close();

}

} catch (SQLException exception) {

throw exception;

}

}

}

Listing program di atas digunakan untuk menghitung fire strength sesuai

dengan query yang diinputkan. Perhitungan fire strength dilakukan dengan

cara mengambil derajat keanggotaan dari database kemudian setiap derajat

keanggotan yang sesuai dengan kriteria query akan diproses sesuai dengan

aturan atau operator yang diinputkan, misalnya operator and, or, atau not.

Listing program di atas hanya untuk query dengan satu kriteria saja.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 139: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

121

5.1.16. Implementasi Perhitungan Hasil Query Dua Kriteria

public List<Mu> lihatHasil2(String kriteria1, String kriteria2, String

operator1,String n1,String n2) throws SQLException {

PreparedStatement st = null;

ResultSet rs = null;

PreparedStatement st2 = null;

ResultSet rs2 = null;

try {

conn.setAutoCommit(false);

String sql = "select distinct d.id,d.nama,d.harga from datamobil

d, mu m"

+ " where d.id=m.id and m." + kriteria1 + ">= 0 " +

operator1 + " m." + kriteria2 + ">= 0 ";

st = conn.prepareStatement(sql);

rs = st.executeQuery();

List<Mu> m = new ArrayList<Mu>();

while (rs.next()) {

Mu mu = new Mu();

mu.setNama(rs.getString("nama"));

mu.setHarga(Double.parseDouble(rs.getString("harga")));

String sql2 = "select "+n1+""+kriteria1+" " + kriteria1 +

","+n2+"" + kriteria2 + " " + kriteria2 + " from mu"

+ " where id='" + rs.getString("id") + "'";

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 140: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

122

System.out.println(rs.getString("id"));

st2 = conn.prepareStatement(sql2);

rs2 = st2.executeQuery();

double i = 0;

while (rs2.next()) {

if (operator1.equals("AND")) {

i = 1;

for (int j = 1; j <= 2; j++) {

if (i > Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

}

if (operator1.equals("OR")) {

i = 0;

for (int j = 1; j <= 2; j++) {

if (i < Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 141: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

123

}

mu.setSum(i);

if (i != 0) {

m.add(mu);

} else {

}

}

Collections.sort(m, new Comparator<Mu>() {

@Override

public int compare(Mu m1, Mu m2) {

return Double.compare(m2.getSum(), m1.getSum());

}

});

conn.commit();

return m;

} catch (SQLException exception) {

throw exception;

} finally {

try {

conn.setAutoCommit(true);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 142: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

124

if (rs != null) {

rs.close();

}

if (st != null) {

st.close();

}

} catch (SQLException exception) {

throw exception;

}

}

}

Listing program di atas digunakan untuk menghitung fire strength sesuai

dengan query yang diinputkan. Perhitungan fire strength dilakukan dengan

cara mengambil derajat keanggotaan dari database kemudian setiap derajat

keanggotan yang sesuai dengan kriteria query akan diproses sesuai dengan

aturan atau operator yang diinputkan, misalnya operator and, or, atau not.

Listing program di atas hanya untuk query dengan dua kriteria saja.

5.1.17. Implementasi Perhitungan Hasil Query Tiga Kriteria

public List<Mu> lihatHasil3(String kriteria1, String kriteria2, String kriteria3,

String operator1, String operator2,String n1, String n2,String n3) throws

SQLException {

PreparedStatement st = null;

ResultSet rs = null;

PreparedStatement st2 = null;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 143: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

125

ResultSet rs2 = null;

try {

conn.setAutoCommit(false);

String sql = "select distinct d.id,d.nama,d.harga from datamobil d, mu

m"

+ " where d.id=m.id and (m." + kriteria1 + "> 0 " + operator1 + "

m." + kriteria2 + "> 0)"

+ " " + operator2 + " m." + kriteria3 + " > 0";

st = conn.prepareStatement(sql);

rs = st.executeQuery();

List<Mu> m = new ArrayList<Mu>();

while (rs.next()) {

Mu mu = new Mu();

mu.setNama(rs.getString("nama"));

mu.setHarga(Double.parseDouble(rs.getString("harga")));

String sql2 = "select "+n1+"" + kriteria1 + " " + kriteria1 + ","

+ " "+n2+"" + kriteria2 + " " + kriteria2 + ","

+ " "+n3+"" + kriteria3 + " " + kriteria3 + " from mu"

+ " where id='" + rs.getString("id") + "'";

System.out.println(rs.getString("id"));

st2 = conn.prepareStatement(sql2);

rs2 = st2.executeQuery();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 144: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

126

double i = 0;

while (rs2.next()) {

if (operator1.equals("AND") && operator2.equals("AND")) {

i = 1;

for (int j = 1; j <= 3; j++) {

if (i > Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

}

if (operator1.equals("OR") && operator2.equals("OR")) {

i = 0;

for (int j = 1; j <= 3; j++) {

if (i < Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

}

if (operator1.equals("AND") && operator2.equals("OR")) {

i = 1;

for (int j = 1; j <= 2; j++) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 145: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

127

if (i > Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

if (i < Double.parseDouble(rs2.getString(3))) {

i = Double.parseDouble(rs2.getString(3));

}

}

if (operator1.equals("OR") && operator2.equals("AND")) {

i = 0;

for (int j = 1; j <= 2; j++) {

if (i < Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

if (i > Double.parseDouble(rs2.getString(3))) {

i = Double.parseDouble(rs2.getString(3));

}

}

}

mu.setSum(i);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 146: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

128

if (i != 0) {

m.add(mu);

} else {

}

}

Collections.sort(m, new Comparator<Mu>() {

@Override

public int compare(Mu m1, Mu m2) {

return Double.compare(m2.getSum(), m1.getSum());

}

});

conn.commit();

return m;

} catch (SQLException exception) {

throw exception;

} finally {

try {

conn.setAutoCommit(true);

if (rs != null) {

rs.close();

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 147: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

129

if (st != null) {

st.close();

}

} catch (SQLException exception) {

throw exception;

}

}

}

Listing program di atas digunakan untuk menghitung fire strength sesuai

dengan query yang diinputkan. Perhitungan fire strength dilakukan dengan

cara mengambil derajat keanggotaan dari database kemudian setiap derajat

keanggotan yang sesuai dengan kriteria query akan diproses sesuai dengan

aturan atau operator yang diinputkan, misalnya operator and, or, atau not.

Listing program di atas hanya untuk query dengan tiga kriteria saja.

5.1.18. Implementasi Perhitungan Hasil Query Empat Kriteria

public List<Mu> lihatHasil4(String kriteria1, String kriteria2, String kriteria3,

String kriteria4, String operator1, String operator2, String operator3,String

n1,String n2, String n3,String n4) throws SQLException {

PreparedStatement st = null;

ResultSet rs = null;

PreparedStatement st2 = null;

ResultSet rs2 = null;

try {

conn.setAutoCommit(false);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 148: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

130

String sql = "select distinct d.id,d.nama,d.harga from datamobil d, mu

m"

+ " where d.id=m.id and ( m." + kriteria1 + "> 0 " + operator1 + "

m." + kriteria2 + "> 0 )"

+ " " + operator2 + " ( m." + kriteria3 + " > 0 " + operator3 + " " +

kriteria4 + " > 0 )";

st = conn.prepareStatement(sql);

rs = st.executeQuery();

List<Mu> m = new ArrayList<Mu>();

while (rs.next()) {

Mu mu = new Mu();

mu.setNama(rs.getString("nama"));

mu.setHarga(Double.parseDouble(rs.getString("harga")));

String sql2 = "select "+n1+"" + kriteria1 + " " + kriteria1 + ","

+ " "+n2+"" + kriteria2 + " " + kriteria2 + ", "

+ " "+n3+"" + kriteria3 + " " + kriteria3 + ","

+ " "+n4+"" + kriteria4 + " " + kriteria4 + " from mu"

+ " where id='" + rs.getString("id") + "'";

System.out.println(rs.getString("id"));

st2 = conn.prepareStatement(sql2);

rs2 = st2.executeQuery();

double i = 0;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 149: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

131

double x = 0;

while (rs2.next()) {

if (operator1.equals("AND") && operator2.equals("AND") &&

operator3.equals("AND")) {

i = 1;

for (int j = 1; j <= 4; j++) {

if (i > Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

}

if (operator1.equals("OR") && operator2.equals("OR") &&

operator3.equals("OR")) {

i = 0;

for (int j = 1; j <= 4; j++) {

if (i < Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

}

if (operator1.equals("AND") && operator2.equals("OR") &&

operator3.equals("OR")) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 150: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

132

i = 1;

x = 0;

for (int j = 1; j <= 2; j++) {

if (i > Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

for (int j = 3; j <= 4; j++) {

if (x < Double.parseDouble(rs2.getString(j))) {

x = Double.parseDouble(rs2.getString(j));

}

}

if (i < x) {

i = x;

}

}

if (operator1.equals("AND") && operator2.equals("AND") &&

operator3.equals("OR")) {

i = 1;

x = 0;

for (int j = 1; j <= 2; j++) {

if (i > Double.parseDouble(rs2.getString(j))) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 151: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

133

i = Double.parseDouble(rs2.getString(j));

}

}

for (int j = 3; j <= 4; j++) {

if (x < Double.parseDouble(rs2.getString(j))) {

x = Double.parseDouble(rs2.getString(j));

}

}

if (i > x) {

i = x;

}

}

if (operator1.equals("OR") && operator2.equals("AND") &&

operator3.equals("OR")) {

i = 0;

x = 0;

for (int j = 1; j <= 2; j++) {

if (i < Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

for (int j = 3; j <= 4; j++) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 152: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

134

if (x < Double.parseDouble(rs2.getString(j))) {

x = Double.parseDouble(rs2.getString(j));

}

}

if (i > x) {

i = x;

}

}

if (operator1.equals("OR") && operator2.equals("AND") &&

operator3.equals("AND")) {

i = 0;

x = 1;

for (int j = 1; j <= 2; j++) {

if (i < Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

for (int j = 3; j <= 4; j++) {

if (x > Double.parseDouble(rs2.getString(j))) {

x = Double.parseDouble(rs2.getString(j));

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 153: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

135

if (i > x) {

i = x;

}

}

if (operator1.equals("OR") && operator2.equals("OR") &&

operator3.equals("AND")) {

i = 0;

x = 1;

for (int j = 1; j <= 2; j++) {

if (i < Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

for (int j = 3; j <= 4; j++) {

if (x > Double.parseDouble(rs2.getString(j))) {

x = Double.parseDouble(rs2.getString(j));

}

}

if (i < x) {

i = x;

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 154: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

136

if (operator1.equals("AND") && operator2.equals("OR") &&

operator3.equals("AND")) {

i = 1;

x = 1;

for (int j = 1; j <= 2; j++) {

if (i > Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

for (int j = 3; j <= 4; j++) {

if (x > Double.parseDouble(rs2.getString(j))) {

x = Double.parseDouble(rs2.getString(j));

}

}

if (i < x) {

i = x;

}

}

}

mu.setSum(i);

if (i != 0) {

m.add(mu);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 155: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

137

} else {

}

}

Collections.sort(m, new Comparator<Mu>() {

@Override

public int compare(Mu m1, Mu m2) {

return Double.compare(m2.getSum(), m1.getSum());

}

});

conn.commit();

return m;

} catch (SQLException exception) {

throw exception;

} finally {

try {

conn.setAutoCommit(true);

if (rs != null) {

rs.close();

}

if (st != null) {

st.close();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 156: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

138

}

} catch (SQLException exception) {

throw exception;

}

}

}

Listing program di atas digunakan untuk menghitung fire strength sesuai

dengan query yang diinputkan. Perhitungan fire strength dilakukan dengan

cara mengambil derajat keanggotaan dari database kemudian setiap derajat

keanggotan yang sesuai dengan kriteria query akan diproses sesuai dengan

aturan atau operator yang diinputkan, misalnya operator and, or, atau not.

Listing program di atas hanya untuk query dengan empat kriteria saja.

5.1.19. Implementasi Perhitungan Hasil Query Lima Kriteria

public List<Mu> lihatHasil5(String kriteria1, String kriteria2, String kriteria3,

String kriteria4, String kriteria5, String operator1, String operator2, String

operator3, String operator4,String n1,String n2, String n3,String n4, String n5)

throws SQLException {

PreparedStatement st = null;

ResultSet rs = null;

PreparedStatement st2 = null;

ResultSet rs2 = null;

try {

conn.setAutoCommit(false);

String sql = "select distinct d.id,d.nama,d.harga from datamobil d, mu

m"

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 157: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

139

+ " where d.id=m.id and ((( m." + kriteria1 + "> 0 " + operator1 + "

m." + kriteria2 + "> 0 )"

+ " " + operator2 + " ( m." + kriteria3 + " > 0 " + operator3 + " " +

kriteria4 + " > 0 )) " + operator4 + " m." + kriteria5 + " > 0 )";

st = conn.prepareStatement(sql);

rs = st.executeQuery();

List<Mu> m = new ArrayList<Mu>();

while (rs.next()) {

Mu mu = new Mu();

mu.setNama(rs.getString("nama"));

mu.setHarga(Double.parseDouble(rs.getString("harga")));

String sql2 = "select "+n1+"" + kriteria1 + " " + kriteria1 + ","

+ " "+n2+"" + kriteria2 + " " + kriteria2 + ", "

+ " "+n3+"" + kriteria3 + " " + kriteria3 + ","

+ " "+n4+"" + kriteria4 + " " + kriteria4 + ","

+ " "+n5+""+kriteria5+" "+kriteria5+" from mu"

+ " where id='" + rs.getString("id") + "'";

System.out.println(rs.getString("id"));

st2 = conn.prepareStatement(sql2);

rs2 = st2.executeQuery();

double i = 0;

double x = 0;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 158: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

140

while (rs2.next()) {

if (operator1.equals("AND") && operator2.equals("AND") &&

operator3.equals("AND") && operator4.equals("AND")) {

i = 1;

for (int j = 1; j <= 5; j++) {

if (i > Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

}

if (operator1.equals("OR") && operator2.equals("OR") &&

operator3.equals("OR") && operator4.equals("OR")) {

i = 0;

for (int j = 1; j <= 5; j++) {

if (i < Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

}

if (operator1.equals("AND") && operator2.equals("OR") &&

operator3.equals("OR") && operator4.equals("OR")) {

i = 1;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 159: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

141

x = 0;

for (int j = 1; j <= 2; j++) {

if (i > Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

for (int j = 3; j <= 4; j++) {

if (x < Double.parseDouble(rs2.getString(j))) {

x = Double.parseDouble(rs2.getString(j));

}

}

if (i < x) {

i = x;

}

if (i < Double.parseDouble(rs2.getString(5))) {

i = Double.parseDouble(rs2.getString(5));

}

}

if (operator1.equals("AND") && operator2.equals("OR") &&

operator3.equals("OR") && operator4.equals("AND")) {

i = 1;

x = 0;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 160: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

142

for (int j = 1; j <= 2; j++) {

if (i > Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

for (int j = 3; j <= 4; j++) {

if (x < Double.parseDouble(rs2.getString(j))) {

x = Double.parseDouble(rs2.getString(j));

}

}

if (i < x) {

i = x;

}

if (i > Double.parseDouble(rs2.getString(5))) {

i = Double.parseDouble(rs2.getString(5));

}

}

if (operator1.equals("AND") && operator2.equals("AND") &&

operator3.equals("OR") && operator4.equals("OR")) {

i = 1;

x = 0;

for (int j = 1; j <= 2; j++) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 161: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

143

if (i > Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

for (int j = 3; j <= 4; j++) {

if (x < Double.parseDouble(rs2.getString(j))) {

x = Double.parseDouble(rs2.getString(j));

}

}

if (i > x) {

i = x;

}

if (i < Double.parseDouble(rs2.getString(5))) {

i = Double.parseDouble(rs2.getString(5));

}

}

if (operator1.equals("AND") && operator2.equals("AND") &&

operator3.equals("OR") && operator4.equals("AND")) {

i = 1;

x = 0;

for (int j = 1; j <= 2; j++) {

if (i > Double.parseDouble(rs2.getString(j))) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 162: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

144

i = Double.parseDouble(rs2.getString(j));

}

}

for (int j = 3; j <= 4; j++) {

if (x < Double.parseDouble(rs2.getString(j))) {

x = Double.parseDouble(rs2.getString(j));

}

}

if (i > x) {

i = x;

}

if (i > Double.parseDouble(rs2.getString(5))) {

i = Double.parseDouble(rs2.getString(5));

}

}

if (operator1.equals("OR") && operator2.equals("AND") &&

operator3.equals("OR") && operator4.equals("OR")) {

i = 0;

x = 0;

for (int j = 1; j <= 2; j++) {

if (i < Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 163: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

145

}

}

for (int j = 3; j <= 4; j++) {

if (x < Double.parseDouble(rs2.getString(j))) {

x = Double.parseDouble(rs2.getString(j));

}

}

if (i > x) {

i = x;

}

if (i < Double.parseDouble(rs2.getString(5))) {

i = Double.parseDouble(rs2.getString(5));

}

}

if (operator1.equals("OR") && operator2.equals("AND") &&

operator3.equals("OR") && operator4.equals("AND")) {

i = 0;

x = 0;

for (int j = 1; j <= 2; j++) {

if (i < Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 164: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

146

}

for (int j = 3; j <= 4; j++) {

if (x < Double.parseDouble(rs2.getString(j))) {

x = Double.parseDouble(rs2.getString(j));

}

}

if (i > x) {

i = x;

}

if (i < Double.parseDouble(rs2.getString(5))) {

i = Double.parseDouble(rs2.getString(5));

}

}

if (operator1.equals("OR") && operator2.equals("OR") &&

operator3.equals("OR") && operator4.equals("AND")) {

i = 0;

x = 0;

for (int j = 1; j <= 2; j++) {

if (i < Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 165: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

147

for (int j = 3; j <= 4; j++) {

if (x < Double.parseDouble(rs2.getString(j))) {

x = Double.parseDouble(rs2.getString(j));

}

}

if (i < x) {

i = x;

}

if (i > Double.parseDouble(rs2.getString(5))) {

i = Double.parseDouble(rs2.getString(5));

}

}

if (operator1.equals("OR") && operator2.equals("AND") &&

operator3.equals("AND") && operator4.equals("OR")) {

i = 0;

x = 1;

for (int j = 1; j <= 2; j++) {

if (i < Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

for (int j = 3; j <= 4; j++) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 166: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

148

if (x > Double.parseDouble(rs2.getString(j))) {

x = Double.parseDouble(rs2.getString(j));

}

}

if (i > x) {

i = x;

}

if (i < Double.parseDouble(rs2.getString(5))) {

i = Double.parseDouble(rs2.getString(5));

}

}

if (operator1.equals("OR") && operator2.equals("AND") &&

operator3.equals("AND") && operator4.equals("AND")) {

i = 0;

x = 1;

for (int j = 1; j <= 2; j++) {

if (i < Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

for (int j = 3; j <= 4; j++) {

if (x > Double.parseDouble(rs2.getString(j))) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 167: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

149

x = Double.parseDouble(rs2.getString(j));

}

}

if (i > x) {

i = x;

}

if (i > Double.parseDouble(rs2.getString(5))) {

i = Double.parseDouble(rs2.getString(5));

}

}

if (operator1.equals("OR") && operator2.equals("OR") &&

operator3.equals("AND") && operator4.equals("OR")) {

i = 0;

x = 1;

for (int j = 1; j <= 2; j++) {

if (i < Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

for (int j = 3; j <= 4; j++) {

if (x > Double.parseDouble(rs2.getString(j))) {

x = Double.parseDouble(rs2.getString(j));

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 168: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

150

}

}

if (i < x) {

i = x;

}

if (i < Double.parseDouble(rs2.getString(5))) {

i = Double.parseDouble(rs2.getString(5));

}

}

if (operator1.equals("OR") && operator2.equals("OR") &&

operator3.equals("AND") && operator4.equals("AND")) {

i = 0;

x = 1;

for (int j = 1; j <= 2; j++) {

if (i < Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

for (int j = 3; j <= 4; j++) {

if (x > Double.parseDouble(rs2.getString(j))) {

x = Double.parseDouble(rs2.getString(j));

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 169: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

151

}

if (i < x) {

i = x;

}

if (i > Double.parseDouble(rs2.getString(5))) {

i = Double.parseDouble(rs2.getString(5));

}

}

if (operator1.equals("AND") && operator2.equals("OR") &&

operator3.equals("AND") && operator4.equals("OR")) {

i = 1;

x = 1;

for (int j = 1; j <= 2; j++) {

if (i > Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

for (int j = 3; j <= 4; j++) {

if (x > Double.parseDouble(rs2.getString(j))) {

x = Double.parseDouble(rs2.getString(j));

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 170: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

152

if (i < x) {

i = x;

}

if (i < Double.parseDouble(rs2.getString(5))) {

i = Double.parseDouble(rs2.getString(5));

}

}

if (operator1.equals("AND") && operator2.equals("AND") &&

operator3.equals("AND") && operator4.equals("OR")) {

i = 1;

x = 1;

for (int j = 1; j <= 2; j++) {

if (i > Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

for (int j = 3; j <= 4; j++) {

if (x > Double.parseDouble(rs2.getString(j))) {

x = Double.parseDouble(rs2.getString(j));

}

}

if (i > x) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 171: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

153

i = x;

}

if (i < Double.parseDouble(rs2.getString(5))) {

i = Double.parseDouble(rs2.getString(5));

}

}

if (operator1.equals("AND") && operator2.equals("OR") &&

operator3.equals("AND") && operator4.equals("AND")) {

i = 1;

x = 1;

for (int j = 1; j <= 2; j++) {

if (i > Double.parseDouble(rs2.getString(j))) {

i = Double.parseDouble(rs2.getString(j));

}

}

for (int j = 3; j <= 4; j++) {

if (x > Double.parseDouble(rs2.getString(j))) {

x = Double.parseDouble(rs2.getString(j));

}

}

if (i < x) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 172: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

154

i = x;

}

if (i > Double.parseDouble(rs2.getString(5))) {

i = Double.parseDouble(rs2.getString(5));

}

}

}

mu.setSum(i);

if (i != 0) {

m.add(mu);

} else {

}

}

Collections.sort(m, new Comparator<Mu>() {

@Override

public int compare(Mu m1, Mu m2) {

return Double.compare(m2.getSum(), m1.getSum());

}

});

conn.commit();

return m;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 173: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

155

} catch (SQLException exception) {

throw exception;

} finally {

try {

conn.setAutoCommit(true);

if (rs != null) {

rs.close();

}

if (st != null) {

st.close();

}

} catch (SQLException exception) {

throw exception;

}

}

}

Listing program di atas digunakan untuk menghitung fire strength sesuai

dengan query yang diinputkan. Perhitungan fire strength dilakukan dengan

cara mengambil derajat keanggotaan dari database kemudian setiap derajat

keanggotan yang sesuai dengan kriteria query akan diproses sesuai dengan

aturan atau operator yang diinputkan, misalnya operator and, or, atau not.

Listing program di atas hanya untuk query dengan lima kriteria saja.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 174: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

156

5.2. Hasil Implementasi

5.2.1. Form Utama

Form utama pada aplikasi ini dibagi menjadi dua, yaitu form utama untuk

admin dan form utama untuk pengguna. Untuk implementasinya bisa

dilihat pada gambar di bawah ini.

5.2.1.1. Form Utama Admin

Gambar 5. 1. Form Utama Untuk Admin

Pada form utama untuk admin ini terdapat empat menu, yaitu home,

pencarian, data mobil, dan batas himpunan. Menu home untuk

menampilkan halaman awal seperti yang terlihat pada gambar di atas.

Menu pencarian untuk mencari mobil berdasarkan kriteria. Menu data

mobil untuk melihat data mobil yang tersimpan pada sistem. Dan yang

terakhir menu batas himpunan untuk melihat batas himpunan yang

menjadi acuan untuk proses perhitungan derajat keanggotaan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 175: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

157

5.2.1.2. Form Utama Pengguna

Gambar 5. 2. Form Utama Untuk Pengguna

Pada form utama untuk pengguna ini terdapat tiga menu, yaitu home,

pencarian, dan data mobil. Fungsi untuk setiap menu hampir sama

seperti fungsi menu yang ada pada form utama untuk admin.

5.2.2. Form Data Mobil

Form data mobil pada aplikasi ini dibagi menjadi dua, yaitu form data

mobil untuk admin dan form data mobil untuk pengguna. Untuk

implementasinya bisa dilihat pada gambar di bawah ini.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 176: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

158

5.2.2.1. Form Data Mobil Admin

Gambar 5. 3. Form Data Mobil Admin

Pada form data mobil admin ini berfungsi untuk melihat,

menambahkan, menghapus, dan mengubah data mobil ke dalam

sistem yang dilakukan oleh admin. Untuk menambahkan data admin

memasukan data mobil melalui field-field yang terdapat pada form

data mobil. Pada form tersebut juga terdapat tombol clear dam simpan

yang aktif. Tombol clear berfungsi untuk menghapus text yang

terdapat pada field-field di form data mobil. Sedangkan tombol

simpan berfungsi untuk menyimpan data yang ada di field-field ke

dalam database. Pada form data mobil juga terdapat dua tombol ubah

dan hapus yang tidak aktif. Untuk mengaktifkan tombol tersebut

admin harus mengarahkan kursor pada salah satu data mobil yang ada

di tabel kemudian diklik kanan pada mouse, maka data muncul pad

field-field di form tersebut dan kedua tombol akan aktif. Tombol

hapus untuk menghapus data yang sudah dipilih dan tombol ubah

untuk menyimpan data yang sudah di ubah.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 177: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

159

5.2.2.2. Form Data Mobil Pengguna

Gambar 5. 4. Form Data Mobil Pengguna

Pada form data mobil pengguna ini berfungsi untuk melihat data mobil

saja. Berbeda dengan admin yang bisa mengubah, menambah, dan

menghapus data mobil.

5.2.3. Form Pencarian

Form pencarian pada aplikasi ini memiliki fungsi yang sama untuk admin

dan pengguna. Pada form pencarian ini terdapat dua submenu, yaitu fuzzy

dan tegas.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 178: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

160

5.2.3.1. Form Pencarian Tab Fuzzy

Gambar 5. 5. Form Pencarian Tab Fuzzy

Gambar di atas menunjukan tampilan pada submenu fuzzy. Pada

submenu fuzzy ini terdapat lima kriteria yang bisa dipilih oleh

pengguna. Untuk memilih kriteria sudah terdapat pilihan yang tersedia

pada combo box pilih. Kemudian pengguna bisa juga memilih aturan

atau operator seperti not, and, dan or. Tombol cari pada form ini

berfungsi untuk mencari mobil sesuai dengan kriteria yang telah

dimasukan dan hasilnya akan muncul pada tabel di bawah. Hasil

berupa sebuah rekomendasi mobil yang di inginkan sesuai dengan

kriteria yang sudah diproses sesuai aturan fuzzy database.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 179: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

161

5.2.3.2. Form Pencarian Tab Tegas

Gambar 5. 6. Form Pencarian Tab Tegas

Gambar di atas menunjukan tampilan pada submenu tegas. Pada

submenu tegas ini terdapat lima kriteria yang bisa dipilih oleh

pengguna sama seperti pada form pencarian submenu fuzzy. Tetapi

pada submenu tegas ini pengguna harus memasukan nilai nominal

untuk setiap kriteria yang dipilih. Tombol cari pada submenu ini

berfungsi sama seperti pada submenu fuzzy, tetapi data kriteria ini

dioleh sesuai dengan aturan database klasik tidak menggunkan aturan

fuzzy dan hasilnya akan ditampilkan pada tabel di bawah.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 180: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

162

5.2.4. Form Batas Himpunan

Gambar 5. 7. Form Batas Himpunan

Form batas himpunan ini hanya bisa diakses oleh admin saja karena pada

form ini berfungsi untuk melihat, mengubah, menambah, dan menghapus

batas himpunan untuk proses perhitungan fuzzy.

5.3. Pengujian

Pada tahap ini dilakukan perbandingan hasil dan waktu pencarian query

antara fuzzy database dan basis data standard (tegas).

Tabel 5. 1. Tabel Hasil Fuzzy Database

Variabel

Kondisi

Fuzzy hasil waktu

harga murah 22 0,327

sedang 7 0,265

mahal 8 0,265

ukuran kecil 18 0,334

normal 32 0,425

besar 16 0,398

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 181: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

163

kapasitas BBM sedikit 19 0,31

sedang 23 0,331

banyak 15 0,354

kapasitas

penumpang sedikit 8 0,349

sedang 16 0,316

banyak 26 0,375

tahun lama 29 0,312

baru 7 0,304

Tabel 5. 2. Tabel Hasil Basis Data Standard

Variabel Kondisi Tegas hasil waktu

harga harga<=300000 19 0,234

harga>300000 and harga<500000 7 0,265

harga>=500000 8 0,266

ukuran ukuran<=7600000000 0 0,352

ukuran>7600000000 and

ukuran<17100000000 32 0,293

ukuran>17100000000 2 0,311

kapasitas BBM kBBM<=35 3 0,289

kBBM>35 and kBBM<65 23 0,316

kBBM>65 8 0,324

kapasitas

penumpang kPenumpang<=4 0 0,312

kPenumpang>4 and kPenumpang<8 16 0,308

kPenumpang>=8 34 0,296

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 182: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

164

tahun tahun<=2012 27 0,301

tahun>=2014 5 0,303

Tabel 5. 3. Tabel Hasil Fuzzy Database dengan Dua Kriteria

Variabel

Kondisi

Fuzzy hasil waktu

harga murah

7 0,434

and

kapasitas

penumpang sedikit

Tabel 5. 4. Tabel Hasil Basis Data Standard dengan Dua Kriteria

Variabel Kondisi Tegas hasil waktu

harga harga<=300000

0 0,33

and

kapasitas

penumpang kPenumpang<=4

Gambar 5. 8. Ukuran Setiap Tabel Penyimpanan

Jika diperhatikan dari hasil pengujian, waktu untuk melakukan pencaria

data sesuai kriteria dengan menggunakan metode fuzzy database lebih

lama daripada database standart. karena pada sistem ini hasil perhitungan

derajat keanggotaan untuk setiap variabel disimpan pada sebuah tabel

sehingga perlu digunakan operasi join untuk pencarian sehingga waktu

yang dibutuhkan untuk pencarian data menjadi lebih lama. Selain itu,

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 183: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

165

karena penerapan fuzzy database pada sistem penyewaan mobil ini

menggunakan 3 tabel, yaitu tabel datamobil dengan ukuran 197 byte, tabel

batashimpunan dengan ukuran 121 byte, dan tabel mu dengan ukuran 512

byte. Sedangkan pada penerapan basis data standart untuk penyimpanan

data menggunakan 2 tabel, yaitu tabel datamobil dengan ukuran 197 dan

tabel batashimpunan dengan ukuran 121 byte. Jika dibandingkan total

space yang dibutuhkan untuk penyimpanan pada sistem yang menerapkan

fuzzy database totalnya 830 byte dan pada basis data standart total space

untuk penyimpanan adalah 318 byte. Jadi penerapan fuzzy database pada

sistem penyewaan mobil ini jika dilihat dari sudut pandang kapasitas

penyimpanan data lebih banyak daripada penerapan basis data standart.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 184: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

166

BAB VI

PENUTUP

6.1. Kesimpulan

Kesimpulan yang diperoleh dari penelitian tentang penerapan fuzzy

database model tahani dalam sistem pendukung keputusan pemilihan

mobil sewa ini, yakni sebagai berikut:

1) Sistem pendukung keputusan pemilihan mobil sewa ini mampu

memberikan rekomendasi sesuai dengan kriteria yang dimasukan oleh

penggunanya.

2) Penerapan fuzzy database pada sistem ini kurang efektif daripada

menggunakan basis data standard (tegas). Karena jika berdasarkan

indikator penggunaan tabel untuk menyimpan hasil derajat

keanggotaan ini memboroskan tempat penyimpanan. Selain itu

penggunaan tabel untuk menyimpan hasil derajat keanggotaan juga

membuat akses pencarian data menjadi lebih lama.

6.2. Saran

Adapun beberapa saran yang penulis berikan untuk pengembangan sistem

ini, antara lain sebagai berikut.

1) Variabel yang digunakan pada sistem ini hanya terbatas pada variabel

harga, ukuran, kapasitas penumpang, kapasitas BBM, dan tahun.

Dalam pengembangannya, sistem ini diharapkan dapat menambahkan

variabel baru, menghapus, dan mengubah variabel yang sudah ada.

2) Dalam pengembangannya, sistem ini diharapkan dapat diakses secara

global melalui sebuah web (web base).

3) Dalam pengembangannya, sistem ini diharapkan untuk tidak

menyimpan hasil derajat keanggotaan setiap variabel kedalam tabel.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 185: PENERAPAN FUZZY DATABASE MODEL TAHANI DALAM SISTEM ...

167

DAFTAR PUSTAKA

Efendi R, Ernawati, Hidayati R. (2014). Aplikasi Fuzzy Database Model

Tahani Dalam Memberikan Rekomendasi Pembelin Rumah

Berbasis Web. Jurnal, F. Teknik Universitas Bengkulu.

Kusumadewi, S. dan Purnomo, H. (2004) Aplikasi Logika Fuzzy untuk

Pendukung Keputusam. Yogyakarta: Penerbit Graha Ilmu.

Puspitaning, Verania. (2009) Program Bantu Pengaturan Lampu Lalu

Lintas Menggunakan Logika Fuzzy. Skripsi, F. Teknik USD.

Yogyakarta.

Suryadi, Kadarsah. (1989) Sistem Pendukung Keputusan Suatu Wacana

Struktural Idealisasi dan implementasi konsep Pengambilan

Keputusan. Jakarta: PT. Remaja Rosdakarya.

Wahyudi, R. Pengertian Query.

http://www.academia.edu/12086993/Pengertian_Query/ [Accessed

4 December 2015].

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI