TUGAS AKHIR
Disusun oleh :
IBRAHIM TAUHID
NPM. 0534010239
PROGRAM STUDI SISTEM INFORMASI
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN“
JAWA TIMUR
rahmat, karunia serta hidayah-Nya, sehingga penulis dapat menyelesaikan Tugas Akhir ini serta menyelesaikan pembuatan laporan Tugas Akhir dengan judul “Perancangan Dan Pembuatan Fuzzy Query Database Untuk Perekomendasian Penerima Beasiswa”.
Aplikasi Fuzzy Query Database Untuk Perekomendasian Penerima Beasiswa adalah suatu aplikasi yang digunakan untuk mencari mahasiswa yang berhak mendapatkan beasiswa dengan metode fuzzy query.
Penyusun menyadari bahwa masih banyak kekurangan dari laporan yang telah dibuat ini. Oleh karena itu, penyusun mengharapkan saran dan kritik agar laporan ini menjadi lebih baik dan mungkin dapat disempurnakan menjadi lebih baik.
Penyusun berharap semoga laporan ini dapat memberikan manfaat baik bagi kami selaku Mahasiswa maupun bagi para Pengajar yang telah membaca laporan ini.
Surabaya, Juni 2010
Penyusun
nikmat, rahmat dan kasih sayang-Nya pada hamba-Nya yang lemah ini. Sehingga kami dapat menyelesaikan Tugas Akhir ini. Selesainya Tugas Akhir ini tak akan lepas dari bantuan, bimbingan, dan dukungan dari berbagai pihak.
Oleh karena itu dalam halaman ini ingin rasanya kami sampaikan ucapan terima kasih kepada:
1. Ayah dan Ibu yang sangat kusayangi dan kuhormati. Atas dukungan, pengorbanan dan do’amulah anakmu ini bisa terus menuntut ilmu. Anakmu ini tidak akan bisa membalas semua kasih sayang dan pengorbanan yang telah engkau berikan. Ma’afkan kalau anakmu ini tidak bisa menyenangkan hatimu, tapi saya akan terus berusaha. Insya Allah yang kalian berikan ini tidak akan sia-sia dan saya akan memberikan yang terbaik buat kalian.
2. Bapak Ir. Teguh Sudarto, MM selaku Rektor Universitas Pembangunan Nasional “Veteran” Jawa Timur.
3. Bapak Ir.Sutiyono, MT selaku Dekan Fakultas Teknologi Industri Universitas Pembangunan Nasional “Veteran” Jawa Timur.
4. Bapak Basuki Rahmat, S.Si, MT selaku Ketua Program Studi Teknik Informatika Universitas Pembangunan Nasional “Veteran” Jawa Timur.
6. Bapak M. Irwan Afandi, ST, MSc selaku dosen pembimbing I yang dengan sabar memberikan arahan dan mencurahkan waktu, ilmu, kesabaran dan pengertiaannya selama pembuatan Tugas Akhir ini.
7. Ibu Fetty Tri Anggraeny, S.Kom selaku dosen pembimbing II yang telah rela tersita waktu, tenaga, dan pikiran dalam membantu dalam perancangan sistem serta memberi arahan dalam pembuatan sistem.
8. Bapak Basuki Rahmat, S.Si, MT, Doddy Ridwandono, S.Kom dan I Made Kamisutara, S.Kom, M.Kom selaku dosen penguji sidang tugas akhir yang telah memberikan banyak kritik dan saran serta memberikan wawasan yang lebih luas. 9. Seluruh dosen Teknik Informatika yang telah memberikan ilmu, wawasan,
tenaga dan waktunya dalam mengembangkan wawasan serta ilmu berkaitan dengan informasi dan teknologi.
10. Untuk Mbak Ari terima kasih yang telah memotivasiku agar pengerjaan tugas akhir dapat cepat terselesaikan.
11. Buat sahabat dan teman-temanku, terima kasih telah menjadi sahabat dan teman yang baik buat aku, Nadhif (trim’s buat motivasinya), Bagus Na’im, Rizal Amer, Andre Muslim, Ricky Alexternative (smangat bro..), Peri, Yoehar, Qoyyim, Bagus Gendut, Rambo, Eko Fajar, Ragil, Irma, Didok, Jojo, Tita Solo, Sari, Dodik Dores, Mbah Yogi, Vidi Burger, Tulus, Errin, Fuan, Andi jay, Ratih,
v
KATA PENGANTAR ... ii
BAB III ANALISA DAN PERANCANGAN SISTEM... 25
3.1 Analisa Sistem... 25
.
3.4.1 Perancangan antar muka Menu Data Mahasiswa... 44
BAB IV IMPLEMENTASI SISTEM... 47
4.1 Lingkungan Implementasi... 47
4.2 Implementasi Sistem ... 48
5.4.2 Perbandingan Fuzzy Query dengan Query Logika Tegas... 69
DAFTAR PUSTAKA... 72
Gambar 2.2 Perbandingan logika tegas dan logika Fuzzy dalam umur ... 8
Gambar 2.3 Contoh Variabel Penghasilan Orang Tua... 9
Gambar 2.4 Representasi linear naik ... 11
Gambar 2.5 Representasi Linear Turun ... 12
Gambar 2.6 Representasi Kurva Segitiga ... 12
Gambar 2.7 Representasi Kurva trapesium... 13
Gambar 2.8 Daerah bahu pada variabel temperatur... 14
Gambar 2.9 Himpunan fuzzy dengan kurva S-PERTUMBUHAN... 15
Gambar 2.10 Himpunan fuzzy dengan kurva S-PENYUSUTAN... 15
Gambar 2.11 Himpunan fuzzy dengan kurva PI. ... 16
Gambar 2.12 Himpunan fuzzy dengan kurva BETA... 17
Gambar 2.13 Himpunan fuzzy dengan kurva GAUSS ... 18
Gambar 3.1 Bagan sistem ... 26
Gambar 3.2 Flowchart... 27
Gambar 3.3 Fungsi keanggotaan kurva S-Penyusutan... 29
Gambar 3.4 Fungsi keanggotaan kurva S-Pertumbuhan... 29
Gambar 3.5 Fungsi keanggotaan kurva Bahu ... 31
Gambar 3.6 Fungsi keanggotaan kurva Bahu ... 32
Gambar 3.7 Fungsi keanggotaan kurva S-Penyusutan... 32
Gambar 3.8 Fungsi keanggotaan kurva S-Pertmbuhan... 33
Gambar 4.7 form memasukkan fuzzy set fungsi kurva bahu... 55
Gambar 4.8 Form memasukkan query ... 55
Gambar 4.9 Form hasil... 56
Gambar 5.1 Data variabel fuzzy Absensi baik... 59
Gambar 5.2 Data variabel fuzzy IPK baik ... 59
Gambar 5.3 Data variabel fuzzy TOEFL ... 60
Gambar 5.4 Data variabel fuzzy PENGHASILAN_ORTU... 60
Gambar 5.5 Kurva Absensi baik ... 61
Gambar 5.6 Form Data himpunan fuzzy Absensi baik ... 61
Gambar 5.7 Kurva IPK baik ... 62
Gambar 5.8 Data himpunan fuzzy IPK baik ... 62
Gambar 5.9 Kurva TOEFL ... 63
Gambar 5.10 Data himpunan fuzzy TOEFL ... 64
Gambar 5.11 Kurva Penghasilan Ortu ... 65
Gambar 5.12 Data himpunan fuzzy PENGHASILAN_ORTU... 65
Gambar 5.13 Query... 66
Gambar 5.14 Data hasil... 67
Gambar 5.15 Data Hasil perhitungan Fuzzy ... 67
Tabel 2.1 Tabel empinfo ... 22
Tabel 3.1 Tabel Data mahasiswa ... 28
Tabel 3.2 Data contoh perhitungan fuzzy ... 32
Tabel 3.3 Hasil perhitungan fuzzy ... 34
Tabel 3.4 Hasil Perhitungan Fuzzy Query ... 34
Tabel 3.5 Tabel data mahasiswa ... 41
Tabel 3.6 Tabel hf ... 41
Tabel 3.7 Tabel temp1... 42
Tabel 3.8 Tabel temp2... 42
Tabel 3.9 Tabel hasil_1 ... 43
Tabel 3.10 Tabel hasil_2 ... 43
Tabel 3.11 Tabel history_query ... 43
Tabel 5.1 Tabel data mahasiswa ... 58
Tabel 5.2 Tabel data mahasiswa (lanjutan)... 58
Tabel 5.3 Data Hasil perhitungan fungsi keanggotaan ... 68
Tabel 5.4 Data Hasil perhitungan fungsi keanggotaan (lanjutan)... 68
Tabel 5.5 Data Hasil perhitungan Logika Tegas... 69
xii
Rumus 2.1 Linear Naik ... 11
Rumus 2.2 Linear Turun ... 12
Rumus 2.3 Kurva Segitiga ... 12
Rumus 2.4 Kurva Trapesium ... 13
Rumus 2.5 Kurva S-Pertumbuhan ... 15
Rumus 2.6 Kurva S-Penyusutan ... 15
Rumus 2.7 Kurva PI... 16
Rumus 2.8 Kurva BETA ... 17
Rumus 2.9 Kurva GAUSS ... 18
Rumus 2.10 Operator AND ... 18
Rumus 2.11 Operator OR... 19
1.1Latar Belakang
Sampai saat ini, sistem database hanya mampu menangani data yang bersifat pasti. Begitu pula pada proses query, yang menggunakan bahasa Structure
Query Language (SQL), kondisi-kondisi yang diberikan hanya mampu menangani
kondisi yang sifatnya pasti. Dimana kondisi yang pasti tersebut berarti struktur dan parameter dari model telah diketahui secara tepat.
Sedangkan dalam kondisi yang nyata seringkali kita dihadapkan pada suatu kondisi yang memiliki nilai yang samar, tidak pasti (uncertain), atau ambigu. Seperti kondisi dimana kita akan mencari mahasiswa yang layak direkomendasikan untuk mendapat beasiswa. Kondisi yang samar berarti tidak terdapat suatu definisi yang pasti terhadap kondisi tersebut. Kondisi ambigu berarti suatu kondisi dimana terjadi ketidakjelasan dari beberapa pilihan yang harus diterima, yang mana yang benar.
Pada proses untuk menentukan atau mencari mahasiswa yang layak direkomendasikan untuk mendapat beasiswa, tentunya kita memiliki kriteria-kriteria mahasiswa yang layak untuk direkomendasikan. Kriteria-kriteria-kriteria tersebut memiliki nilai yang tidak pasti. Sedangkan data yang ada pada database institusi adalah data yang bernilai pasti. Oleh karena itu, untuk menangani kriteria-kriteria yang memiliki nilai yang tidak pasti tersebut kita dapat menggunakan logika
fuzzy.
1.2Rumusan Masalah
Berdasarkan dari latar belakang diatas maka dapat dirumuskan masalah sebagai berikut :
1. Bagaimana memasukkan logika fuzzy kedalam query.
2. Bagaimana menentukan seberapa layak seorang mahasiswa untuk direkomendasikan mendapat beasiswa berdasarkan kriteria-kriteria yang dimasukkan.
1.3Batasan Masalah
Batasan Masalah Dari Tugas Akhir ini, yaitu : 1. Variabel Fuzzy
a. Jika fungsi keanggotaan yang dipilih untuk himpunan fuzzy- nya adalah Kurva Bahu, maka pengguna harus memasukkan himpunan fuzzy minimal 3 (tiga).
b. Tidak diperbolehkan menggunakan nama variabel fuzzy yang sama.
c. Fungsi kurva yang digunakan hanya menggunakan 2 kurva saja, yaitu fungsi kurva bahu dan fungsi kurva – S.
2. Query
a. Query yang bisa dilakukan hanya statement SELECT.
b. Query yang dilakukan tidak menangani data dari tabel yang berbeda
(berelasi).
3. Aplikasi hanya digunakan untuk menghitung perekomendasian calon penerima beasiswa seperti beasiswa Supersemar ataupun jenis beasiswa yang lainnnya..
1.4Tujuan
Tujuan dari Proyek Tugas Akhir ini adalah:
Merancang dan membuat suatu perangkat lunak yang dapat membantu untuk melakukan penyeleksian dalam memilih mahasiswa yang layak untuk direkomendasikan untuk mmendapat beasiswa.
1.5Manfaat
Berdasarkan dari latar belakang diatas maka dapat dirumuskan manfaat sebagai berikut :
1. Para pengguna dapat mengetahui hasil akhir dari input-an user guna mendapatkan calon penerima beasiswa yang sesuai dengan parameter yang diberikan.
2. memudahkan para pengguna dalam menyaring calon penerima beasiswa.
1.6Metodelogi
Metodologi yang digunakan dalam menyelesaikan tugas akhir ini adalah sebagai berikut :
A. Studi literatur
B. Perancangan perangkat lunak
Tahap ini meliputi analisa dan desain sistem. Analisa yang akan dilakukan antara lain analisa proses dan aliran data. Pada tahap ini dilakukan desain tampilan antar muka.
C. Pembuatan perangkat lunak
Pada tahap ini dilakukan implementasi dari rancangan yang telah dibuat pada tahap sebelumnya menjadi suatu perangkat lunak.
D. Uji coba dan evaluasi
Pada tahap ini dilakukan uji coba terhadap perangkat lunak yang telah dibuat untuk mengetahui kemampuan metode yang dipakai.
E. Penyusunan laporan tugas akhir
Pada tahap ini dilakukan penyusunan laporan yang berisi dasar teori, dokumentasi dari perangkat lunak, dan hasil hasil yang diperoleh selama pengerjaan tugas akhir.
1.7 Sistematika Penulisan
Sistematika penulisan dalam penyusunan laporan proyek akhir ini adalah : A. BAB I, Pendahuluan, berisi latar belakang, permasalahan, tujuan,
batasan permasalahan, metodologi, dan sistematika pembahasan. B. BAB II, Teori Penunjang, akan dibahas dasar ilmu yang mendukung
C. BAB III, Analisis dan Perancangan Sistem, akan dibahas analisa dan desain sistem secara terstruktur, yang dilengkapi dengan beberapa diagram dan pseudocode algoritma.
D. BAB IV, Implementasi, akan dilakukan implementasi sistem yang dibangun dengan literatur - literatur yang telah ada yang sesuai dengan permasalahan dan batasannya yang telah dijabarkan pada bab sebelumnya.
E. Bab V, Uji Coba dan Eavaluasi Hasil, akan dilakukan uji coba berdasarkan parameter-parameter yang ditetapkan, dan kemudian dilakukan analisis terhadap hasil uji coba tersebut.
2.1Logika Fuzzy
2.1.1 Pendahuluan
Teori logika fuzzy dikembangkan oleh Prof. Lotfi Zadeh pada sekitar tahun
1960-an dengan penentuan himpunan fuzzy. Sebelum munculnya teori logika fuzzy,
(Fuzzy Logic), dikenal sebuah logika tegas (Crisp Logic) yang memiliki nilai benar
atau salah secara tegas. sebaliknya logika fuzzy merupakan sebuah logika yang
memiliki nilai kekaburan atau kesamaran (fuzzyness) antara benar dan salah. Dalam
teori logika fuzzy sebuah nilai bisa bernilai benar dan salah secara bersamaan namun
berapa besar kebenaran dan kesalahan suatu nilai tergantung kepada bobot
keanggotaan yang dimilikinya.
Fuzzy dapat didefinisikan sebagai logika kabur berkenaan dengan semantik
dari suatu kejadian, fenomena atau pernyataan itu sendiri. Kelebihan dari teori
logika fuzzy adalah kemampuan dalam proses penalaran secara bahasa
(linguistic reasoning), sehingga dalam perancangannya tidak memerlukan
persamaan matematik dari objek yang akan dikendalikan.
Ada beberapa alasan mengapa seseorang menggunakan logika fuzzy, 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.1.2 Perbedaan Logika Fuzzy dengan Logika Tegas
Perbedaan antara kedua jenis logika tersebut adalah logika tegas memiliki
nilai tidak = 0.0 dan ya = 1.0, sedangkan logika fuzzy memiliki nilai antara 0.0
hingga 1.0. Secara grafik perbedaan antara logika fuzzy dan logika tegas
ditunjukkan oleh gambar dibawah ini :
Y
Gambar 2.1 (a) logika Tegas dan (b) logika fuzzy
Didalam gambar 2.1 (a) apabila X lebih dari atau sama dengan 10 baru
adalah salah yaitu Y = 0. maka angka 9 atau 8 atau 7 dan seterusnya adalah
dikatakan salah .
Didalam gambar 2.1 (b) nilai X = 9, atau 8 atau 7 atau antara nilai 0 dan
10 adalah dikatakan ada benarnya dan juga ada salahnya.
Dalam contoh kehidupan kita dikatakan seseorang dikatakan sudah dewasa
apabila berumur lebih dari 17 tahun, maka siapapun yang kurang dari umur
tersebut didalam logika tegas akan dikatakan sebagai tidak dewasa atau
anak-anak. Sedangkan dalam hal ini pada logika fuzzy umur dibawah 17 tahun dapat
saja dikategorikan dewasa tapi tidak penuh, misal untuk umur 16 tahun atau 15
tahun atau 14 tahun atau 13 tahun. Secara grafik dapat diagmbarkan sebagai
berikut:
Gambar 2.2 perbandingan contoh (a) logika tegas dan (b) logika fuzzy dalam penentuan golongan umur manusia
2.1.3 Beberapa Hal yang Terdapat dalam Sistem Fuzzy
Ada beberapa hal yang perlu diketahui dalam memahami sistem fuzzy, yaitu :
a. Variable fuzzy
Variable fuzzy merupakan variabel yang akan dibahas dalam suatu sistem
b. Himpunan fuzzy
Himpunan fuzzy merupakan suatu grup yang mewakili suatu kondisi atau
keadaan tertentu dalam suatu variabel fuzzy.
Contoh :
- Variabel penghasilan orang tua dibagi menjadi 3 himpunan fuzzy, yaitu
: RENDAH, SEDANG dan TINGGI.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Gambar 2.3 contoh variabel penghasilan orang tua
Sedangkan atribut – atribut pada himpunan fuzzy yaitu :
- Linguistik, yaitu penamaan suatu grup yang mewakili suatu keadaan
atau kondisi tertentu dengan menggunakan bahasa alami, seperti :
MUDA, PAROBAYA dan TUA.
- Numeris, yaitu suatu nilai yang menunjukkan ukuran dari suatu
variabel, seperti: 40, 50, 65, dsb.
c. Semesta pembicaraan
Semesta pembicaraan adalah keseluruhan nilai yang diperbolehkan untuk
dioperasikan dalam suatu variabel fuzzy. Nilai semesta pembicaraan
Kadangkala nilai semesta pembicaraan tidak dibatasi batas atasnya dan
bisa berupa bilangan positif atau negatif.
- semesta pembicaraan untuk variabel kecepatan : [0 50].
- Semesta pembicaraan untuk variabel suhu : [-20 40]
d. Domain
Domain adalah keseluruhan nilai yang diijinkan dalam semesta
pembicaraan dan boleh dioperasikan dalam suatu himpunan fuzzy.
Contoh domain himpunan fuzzy :
o LAMBAT : [0, 30]
2.1.4 Fungsi Keanggotaan
Zadeh menjelaskan macam-macam dari fungsi keanggotaan yang
diklasifikasikan menjadi 2 (dua) grup: yang terdiri dari garis lurus atau “linear”
dan berbentuk Gaussian atau garis belok. penulis akan menjelaskan beberapa tipe
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.
Ada 2 macam himpunan fuzzy linear, yaitu :
1. Linear Naik
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 (Gambar 2.4).
Gambar 2.4 Representasi Linear Naik
Fungsi Keanggotaan :
0; x ≤ a
[x] = ( x – a ) /( b - a ); a ≤ x ≤ b ( 2.1 ) 1; x ≥ b
2. Linear Turun
Representasi linear turun merupakan kebalikan dari linear naik, dimana
garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi
pada sisi kiri, kemudian bergerak menurun ke nilai domain yang memiliki derajat
Gambar 2.5 Representasi Linear Turun
Fungsi Keanggotaan :
[x] = ( b – x ) /( b - a ); a ≤ x ≤ b ( 2.2 ) 0; x ≥ b
b. Representasi Kurva Segitiga
Kurva segitiga pada dasarnya merupakan gabungan antara 2 garis linear seperti
terlihat pada Gambar 2.6.
Gambar 2.6 Representasi Kurva Segitiga
Fungsi Keanggotaan :
0; x ≤ a atau x ≥ c
c. Representasi Kurva Trapesium
Kurva trapesium pada dasarnya seperti bentuk segitiga, hanya saja ada beberapa
titik yang memiliki nilai keanggotaan 1 (Gambar 2.7).
Gambar 2.7 Representasi Kurva Trapesium
Fungsi Keanggotaan :
0; x ≤ a atau x ≥ d
[x] = ( x – a ) /( b - a ); a ≤ x ≤ b ( 2.4 ) 1; b ≤ x ≤ c
d. Representasi Kurva Bentuk 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,
sebaliknya bahu kanan bergerak dari salah ke benar. Gambar 2.8 menunjukkan variabel
Gambar 2.8 daerah bahu pada variabel temperatur
e. Representasi Kurva – S
Kurva PERTUMBUHAN dan kurva PENYUSUTAN merupakan kurva-S
atau sigmoid yang berhubungan dengan kenaikan dan penurunan permukaan
secara non linear.
1. Kurva S-PERTUMBUHAN
Kurva S-PERTUMBUHAN akan bergerak dari sis paling kiri (nilai
keanggotaan = 0) ke sisi paling kanan (nilai keanggotaan = 1). Fungsi
keanggotaannya akan tertumpu pada 50% nilai keanggotaannya yang sering
disebut dengan titik infleksi. (gambar 2.9)
Fungsi Keanggotaan kurva S-Pertumbuhan :
Kurva-S untuk penyusutan akan bergerak dari sisi yang paling kanan
(nilai keanggotaan = 1) ke sisi paling kiri (nilai keangotaan = 0).
Gambar 2.10 Himpunan fuzzy dengan kurva S-PENYUSUTAN
Fungsi Keanggotaan kurva S-Penyusutan : 1; x ≤α
(x; α, , ) = 1-2(( x – α ) /( - α ))2; α≤ x ≤ ( 2.6 ) 2(( – x ) /( - α ))2; ≤ x ≤
0; x ≥
f. Representasi Kurva Bentuk Lonceng
Untuk merepresentasikan bilangan fuzzy, biasanya digunakan kurva
berbentuk lonceng. Kurva berbentuk lonceng ini terbagi atas 3 kelas, yaitu :
Himpunan Fuzzy PI, beta dan Gauss. Perbedaan dari ketiga kurva ini terletak
1. Kurva PI
Kurva PI berbentuk lonceng dengan derajat keanggotaan 1 terletak pada
pusat dengan domain ( ) dan lebar kurva ( ) seperti terlihat pada gambar 2.10.
nilai kurva untuk suatu nilai domain x diberikan sebagai :
Gambar 2.11 Himpunan fuzzy dengan kurva PI
Fungsi keanggotaan:
( 2.7 )
2. Kurva BETA
Seperti halnya kurva PI, kurva BETA juga berbrntuk lonceng, namun lebih
rapat. Kurva ini juga didefinisikan dengan 2 parameter yaitu nilai pada domain
yang menunjukkan pusat kuva ( ), dan setengah lebar kurva ( ) seperti
terlihat pada gambar 2.11. nilai kurva untuk suatu nilai domain x diberikan
Gambar 2.12 Himpunan fuzzy dengan kurva BETA
Fungsi keanggotaan:
Salah satu perbedaan mencolok kurva BETA dan kurva PI adalah fungsi
keanggotaannya akan mendekati nol hanya jika nilai ( ) sangat besar. ( 2.8 )
3. Kurva GAUSS
Jika kurva PI dan kurva BETA menggunakan 2 parameter yaitu ( ) dan ( ),
kurva GAUSS menggunakan ( ) untuk menunjukkan nilai domain pada pusat
Gambar 2.13 Himpunan fuzzy dengan kurva GAUSS
Fungsi keanggotaan:
2.1.5 Operator Dasar Zadeh
Ada beberapa operasi fuzzy yang didefinisikan secara khusus untuk
mengkombinasi dan memodifikasi himpunan fuzzy. Nilai keanggotaan sebagai
hasil dari operasi 2 himpunan sering dikenalnama fire strength atau α-predikat.
Zadeh menentukan 3 operator dasar untuk menentukan nilai keanggotaan. Yaitu : ( 2.9 )
a. Operator AND
Operator ini berhubungan dengan operasi interseksi pada himpunan. α
-predikat sebagai hasil operasi dengan operator AND diperoleh mengambil nilai
keanggotaan terkecil antar elemen pada himpunan-himpunan yang
bersangkutan.
Contoh:
Misalkan nilai keanggotaan 27 tahun pada himpunan MUDA adalah 0,6
(MUDA[27]=0,6); dan nilai keanggotaan Rp.2.000.000,- pada himpunanpenghasilan TINGGI
adalah 0,8 (GAJITINGGI[2x106]=0,8); maka: Nilai -predikat untuk usia MUDA dan
berpenghasilan TINGGI adalah:
MUDAGAJITINGGI = min(MUDA[27], GAJITINGGI[2x106])
= min(0,6;0,8)
= 0,6
b. Operator OR
Operator ini berhubungan dengan operasi union pada himpunan. α
-predikat sebagai hasil operasi dengan operator OR diperoleh mengambil nilai
keanggotaan terbesar antar elemen pada himpunan-himpunan yang
bersangkutan.
μAUB = max(μA[x], μB[y]) ( 2.11 )
Contoh :
Pada contoh operator AND dapat dihitung nilai -predikat untuk usia MUDA atau
berpenghasilan TINGGI adalah:
MUDAUGAJITINGGI = max(MUDA[27], GAJITINGGI[2x106])
= max(0,6;0,8)
c. Operator NOT
Operator ini berhubungan dengan operasi komplemen himpunan. α-predikat
sebagai hasil operasi dengan operator NOT diperoleh dengan mengurangkan
nilai keanggotaan elemen pada himpunan yang bersangkutan dari 1.
μA’= 1-μA[x] ( 2.12 )
Contoh :
Pada contoh operator AND dapat dihitung nilai -predikat untuk usia
TIDAK MUDA adalah:
MUDA' = 1 - MUDA[27]
= 1 - 0,6
= 0,4
2.2 Database
Database merupakan kumpulan dari item data yang saling berhubungan satu
dengan yang lainnya yang diorganisasikan berdasarkan sebuah skema atau struktur
tertentu, tersimpan di hardware komputer dan dengan software untuk melakukan
manipulasi untuk kegunaan tertentu.
2.3 SQL (Structured Query Language)
SQL (dibaca "ess-que-el") singkatan dari Structured Query Language. SQL
adalah bahasa yang digunakan untuk berkomunikasi dengan database. Menurut ANSI
(American National Standards Institute), bahasa ini merupakan standard untuk
relational database management sistems (RDBMS).
SQL adalah bahasa pemrograman yang digunakan untuk akses ke database.
dengan diperkenalkannya konsep Relational Database. Setelah mengalami banyak
perkembangan, pada masa kini SQL sudah merupakan bahasa yang lazim digunakan
dalam dunia database.
Bahasa dapat digolongkan bahsa generasi ke empat yang tidak berupa bahasa
yang berstruktur dan beraturan seperti C dan Pascal (golongan bahasa generasi ke
tiga). Oleh karena itu bahasa SQL mudah dipelajari.
Pernyataan-pernyataan SQL digunakan untuk melakukan beberapa tugas
seperti : update data pada database, atau menampilkan data dari database. Beberapa
software RDBMS dan dapat menggunakan SQL, seperti : Oracle, Sybase, Microsoft
SQL Server, Microsoft Access, dsb. Setiap software database mempunyai bahasa
perintah / sintaks yang berbeda, namun pada prinsipnya mempunyai arti dan fungsi
yang sama.
Perintah-perintah tsb antara lain : "Select", "Insert", "Update", "Delete",
"Create", dan "Drop", yang dapat digunakan untuk mengerjakan hampir semua
kebutuhan untuk memanipulasi sebuah database.
Di bawah ini adalah beberapa contoh perintah-perintah Query dalam Microsoft
SQL Server :
Create : digunakan untuk membuat tabel baru
contoh :
create table empinfo (Id varchar (5), first_name varchar(15), last_name
varchar(20), address varchar(30), city varchar(20), state varchar(20));
Select : digunakan untuk menampilkan data sesuai kriteria yang kita tentukan.
Tabel 2.1 Tabel empinfo
San Diego California
88233 Mary Ann Edwards Jl.
Tampilkan first name dan address untuk tabel di atas :
select first_name, age from empinfo;
Tampilkan first name, last name, and city yang bukan Payson.
select first_name, last_name, city from empinfo where city <> 'Payson';
Tampilkan semua kolom dimana first name sama dengan "Mary".
select * from empinfo where first_name = 'Mary';
Tampilkan semua kolom dimana first name mengandung "Mary".
Insert : digunakan untuk menyisipkan atau menambah baris pada tabel.
contoh : Sisipkan ke dalam table empinfo dengan pada field first name : Luke,
last name : Duke, address :2130 Boars Nest, city : Peachtree, State : Georgia
Perintahnya adalah sbb :
insert into empinfo (first_name, last_name, address, city, state)
values ('Luke', 'Duke', '2130 Boars Nest', 'Peachtree’, 'Georgia');
Update : digunakan untuk mengupdate atau merubah isi data dalam table.
contoh : Perhatikan tabel di atas; Pegawai yang bernama Elroy Cleaver pindah
rumah dengan alamat yang baru yaitu; address : Jl.Bojong 12, city : Depok,
State : West Java.
Perintahnya adalah sbb :
update empinfo set address = ‘Jl.Bojong 12’, city = ‘Depok’, State = ‘West
Java’ where id=32382
Delete : digunakan untuk menghapus baris/record data dalam table.
contoh : delete from empinfo where lastname = 'May';
Drop : digunakan untuk menghapus tabel
contoh : drop table empinfo
2.4 Beasiswa
Beasiswa adalah pemberian berupa bantuan keuangan yang diberikan
kepada perorangan yang bertujuan untuk digunakan demi keberlangsungan
perusahaan ataupun yayasan. Pemberian beasiswa dapat dikategorikan pada
pemberian cuma-cuma ataupun pemberian dengan ikatan kerja (biasa disebut
ikatan dinas) setelah selesainya pendidikan. Lama ikatan dinas ini berbeda-beda,
3.1 Analisa Sistem
Dalam sub bab ini akan dibahas mengenai analisa dari sistem aplikasi
fuzzy query. Aplikasi fuzzy query tersebut akan memberikan rekomendasi
mahasiswa yang akan diajukan menerima beasiswa dengan memberikan
rekomendasi peringkat hasil fuzzy dari angka 1 sampai dengan 0. Dimana nilai
fuzzy yang mendekati peringkat 1 akan semakin direkomendasikan menerima
beasiswa begitu juga sebaliknya dimana bagi nilai fuzzy yang akan mendekati
nilai 0 akan semakin tidak direkomendasikan untuk tidak menerima beasiswa.
Data yang akan digunakan untuk proses perhitungan fuzzy berasal dari tabel data
mahasiswa, dimana pengguna dapat menambahkan atau mengurangi data
mahasiswa berdasarkan masukan data mahasiswa yang akan digunakan untuk
proses perhitungan fuzzy. Sementara untuk variabel dan himpunan fuzzy,
pengguna dapat menentukan sendiri variabel dan himpunan fuzzy yang akan
digunakan untuk proses perhitungan fuzzy. Setelah pengguna selesai untuk
menentukan variabel dan himpunan fuzzy, kemudian pengguna akan memasukkan
jumlah semesta pembicaraan serta domain yang akan dihitung yang kemudian
hasil dari perhitungan tadi akan dimasukkan kedalam database. Setealah proses
perhitungan selesai maka pengguna dapat menentukan fuzzy query yang
selanjutnya kita akan mendapatkan peringkat rekomendasi mahasiswa yang akan
mendapatkan beasiswa.
Desain dan isi sebuah sistem berbasis web ini memerlukan pemrograman
berbasis web yang mempunyai dukungan yang kuat yang dapat terintegrasi
dengan database. Bahasa pemrograman PHP adalah bahasa pemrograman
dinamis berbasis web. PHP mempunyai kemampuan tergabung dengan semua
jenis database seperti database MySQL.
3.2Perancangan Sistem
Secara umum sistem yang akan dibuat adalah seperti gambar 3.2 bagan di
bawah ini :
Gambar 3.1 Bagan system
3.2.1 Flowchart
Perancangan flowchart dalam desain sistem dapat digambarkan pada
Gambar 3.2 Flowchart Asplikasi
Pengguna dari sistem fuzzy ini memiliki beberapa tahapan proses untuk
menentukan hasil akhir dari perhitungan fuzzy, antara lain :
1. Input data mahasiswa.
2. Menentukan fungsi kurva yang akan dipakai proses perhitungan.
3. Mendefinisikan variabel fuzzy, himpunan fuzzy serta fungsi
keanggotaan fuzzy.
4. Setelah proses perhitunan selesai, selanjutnya pangguna memasukkan
fuzzy query untuk menghitung nilai fire strenght.
5. Hasil dari perhitungan fire strenght.
3.2.2 Fuzzy Sistem
Desain dari perancangan aplikasi fuzzy query ini didasarkan pada
perancangan perhitungan fuzzy yang melalui beberapa tahapan untuk
mendapatkan hasil akhir yang dibutuhkan oleh pengguna. Berikut adalah contoh
perhitungan fuzzy query :
1. Berikut adalah contoh data mahasiswa :
Tabel 3.1 Data Mahasiswa
NAMA NPM ABSENSI IPK TOEFL PENG. ORTU
2. Mendefinisikan variabel fuzzy serta dari masing-masing variabel fuzzy
Absensi
o Himpunan fuzzy : BAIK
o Fungsi keanggotaan : Kurva S-PENYUSUTAN
o Semesta pembicaraan : 0 – 20
o Domain : 0 – 11
Berikut adalah representasi kurva dari S-PENYUSUTAN :
Gambar 3.3 Fungsi keanggotaan kurva S-Penyusutan
(2.6)
11 20
10 1
0
Domain
IPK
o Himpunan fuzzy : BAIK
o Fungsi keanggotaan : Kurva S-PERTUMBUHAN
o Semesta pembicaraan : 0 – 4
Gambar 3.4 Fungsi keanggotaan kurva S-Pertumbuhan
o Fungsi keanggotaan : Kurva BAHU
Domain :
Gambar 3.5 Fungsi keanggotaan kurva Bahu
Penghasilan Orang Tua
o Fungsi keanggotaan : Kurva BAHU
Domain :
Minimum : 800
Maksimum : 1500
Gambar 3.6 Fungsi keanggotaan kurva Bahu
3. PROSES PERHITUNGAN FUZZY
Contoh perhitungan fungsi keanggotaan :
Penulis akan mencoba menghitung salah satu data yang ada pada tabel di atas.
Tabel 3.2 Data contoh perhitungan fuzzy
NAMA NPM ABSENSI IPK TOEFL PENG.
(2.6)
µabsensi_baik[3] = 1-2 ((3-0)/(11-0))²
= 1-2(3/11)²
= 1-2(0.272727)²
= 1-2(0.074380)
= 1- 0.148760
= 0.85124
IPK BAIK
4
2 3
1 1
0
Domain
Gambar 3.8 Fungsi keanggotaan kurva S-Pertmbuhan
(2.5)
µipk_baik[3.44] = 2 ((3.44-3)/(4-3))²
= 2(0.44/1)²
= 2(0.1936)
Tabel 3.3 Hasil Perhitungan Fuzzy
Lalu kita akan melakukan proses perhitungan fire strength :
Query : select * from tabel where ipk=baik and absensi=baik or toefl=tinggi and
peng_ortu=rendah.
Sehingga perhitungan fire strenght-nya adalah :
fire strength = max (min(µipk_baik, µabsensi_baik), min(µtoefl_tinggi,
µpeng_ortu_rendah))
sehingga didapat hasil perhitungan final sbb :
Tabel 3.4 Hasil Perhitungan Fuzzy Query
NAMA NPM Rekomendasi
Bagus 0534010238 0.586777
Icha 0534010234 0.586777
Naim 0534010231 0.586777
Prilly 0534010235 0.5392 Ibrahim 0534010239 0.3872
Anggi 0534010236 0.3698
Alex 0534010237 0.0882
Yoe 0534010232 0.0661157
Nadeev 0534010233 0.008
Dari hasil akhir diatas dapat disimpulkan nilai akhir dari keseluruhan
proses fuzzy query, dimana mahasiswa yang menempati ranking teratas adalah
mahasiswa yang direkomendasikan untuk penerima besasiswa.
3.2.3 Data Flow Diagram
Perancangan proses dalam pembuatan aplikasi ini dijelaskan dalam bentuk
DFD (Data Flow Diagram). DFD adalah teknik yang digunakan untuk
menjelaskan aliran informasi/transformasi data yang bergerak dari pemasukan
data hingga keluar data (structured Analysis and Design). DFD sering digunakan
untuk menggambarkan suatu sistem yang telah ada atau sistem baru yang akan
dikembangkan secara logika tanpa mempertimbangkan lingkungan fisik dimana
data tersebut mengalir. Terdapat 2 bentuk level DFD yaitu level Context Diagram,
level 0, Level
1. Context Diagram
hasil
Gambar 3.9 Context Diagram Sistem
Dari contex diagram diatas terlihat ada dua entitas luar yang berhubungan
dengan sistem ini, yaitu: Mahasiswa dan Pengguna. Dari mahasiswa akan diperoleh
data-data mahasiswa. Sedangkan pengguna adalah orang yang menjalankan program ini.
Pengguna dapat menentukan sendiri klasifikasi dari mahasiswa yang
akan direkomendasikan yaitu dengan cara memasukkan:
o Variabel fuzzy yang dibutuhkan
o Himpunan fuzzy dari masing-masing variabel fuzzy
o Fungsi keanggotaan dari masing-masing himpunan fuzzy
Setelah itu untuk mendapatkan mahasiswa yang direkomendasikan, pengguna
dapat memasukkan query yang telah ada pada user interface.
Hasil yang diterima oleh pengguna adalah tabel yang berisi mahasiswa yang
direkomendasikan berdasarkan variable fuzzy, himpunan fuzzy, fungsi keanggotaan
2. Overview diagram
Overview diagram menunjukkan gambaran proses yang ada dalam sistem secara
garis besar. Seperti terlihat pada Gambar dibawah ini.
data tabel temp
Gambar 3.10 Overview Diagram Sistem
Dari overview diatas terlihat ada tiga proses, yaitu: proses input/edit data
mahasiswa, proses inisialisasi hal-hal yang dibutuhkan oleh sistem dan proses fuzzy
query.
a. Proses input/edit data
Pada proses ini para pengguna dapat memasukkan atau meng-edit data yang
ada pada database.
b. Proses pegumpulan data.
Pada proses ini penggun harus memasukkan hal-hal yang dibutuhkan oleh
sistem sebelum melakukan proses fuzzy query, seperti : variabel fuzzy,
digunakan untuk proses perhtungan nilai keanggotaan.
c. Proses fuzzy query
Pada proses fuzzy query dilakukan perhitungan nilai keanggotaan, dan
perhitungan fire strength
[inis ialis asi f ungs i keanggotaan]
[inis ialis asi himpunan fuz zy ] v ariabel f uz z y
Dari gambar diatas terdapat 3 proses, yaitu :
1. Pendefinisian variabel fuzzy. Pengguna dapat menentukan atau membuat sendiri
variabel fuzzy yang akan diperlukan dalam proses.
2. Pendefinisian himpunan fuzzy. Dari variabel fuzzy yang telah ditentukan oleh
dapat menetukan sendiri himpunan fuzzy pada masing masing variabel.
3. Pendefinisian fungsi keanggotaan. Pengguna dapat menentukan fungsi
keanggotaan pada masing-masing himpunan fuzzy. Pendefinisian fungsi
keanggotaan ini juga mencakup semesta pembicaraan dan domain pada
masing-masing himpunan fuzzy.
Level 1 proses 3
Detail diagram untuk proses 3 level 1 ditunjukkan oleh Gambar dibawah ini :
data temp
Pada gambar diatas, tampak bahwa proses 3 terdapat 4 proses, yaitu :
1. Perhitungan derajat keanggotaan.
Proses perhitungan derajat keanggotaan akan menghitung tiap-tiap
pengguna. Proses perhitungan derajat keanggotaan akan menghitung data
kolom tabel data_mahasiswa yang telah ditentukan pada saat variabel
fuzzy didefinisiakn oleh pengguna. Data hasil perhitungan selanjutnya
akan disimpan dalam tabel temp1 dimana nama dari setiap himpunan
fuzzy akan menjadi nama dari kolom hasil pada tabel temp1.
2. Query WHERE.
Maksud dari proses ini adalah mengambil data variabel yang ada di
sintaks WHERE.
3. Perhitungan fire strength.
Nilai dari fire strength akan menunjukkan seberapa besar system akan
memberikan rekomendasi terhadap calon penerima beasiswa dimana nilai
dari fire strength memiliki nilai berkisar 0 – 1, dimana nilai 1
menunjukkan rekomendasi penuh terhadap penerima beasiswa begitu juga
sebaliknya untuk nilai 0 atau yang mendekati nilai 0 semakin tidak
direkomendasikan untuk menjadi calon penerima beasiswa.
4. Hasil akhir.
Proses ini adalah hasil akhir dari keseluruhan proses perhitungan fuzzy
query dimana hasil dari keseluruhan perhitungan akan ditampilkan pada
sisi user untuk mengetahui nilai rekomendasi calon penerima beasiswa.
3.3Perancangan tabel
Tabel – tabel yang digunakan tidak berelasi dengan tabel yang lainnya, berikut
1. Tabel data_mahasiswa
tabel data_mahasiswa digunakan untuk menyimpan data mahasiswa yang
selanjutnya akan digunakan untuk proses perhitungan fuzzy. Berikut adalah
tabel data_mahasiswa .
Tabel 3.5 Tabel data_mahasiswa
2. Tabel hf
Tabel hf digunakan untuk menyimpan hasil perhitungan fungsi keanggotaan
3. Tabel temp1
Tabel temp1 digunakan untuk menyimpan data definisi kriteria yang
berupa variabel fuzzy, kolom data yang digunakan dari tabel data mahasiswa,
fungsi kurva yang digunakan serta himpunan fuzzy
Tabel 3.7 Tabel temp1
4. Tabel temp2
Tabel temp2 hampir memiliki struktur yang sama dengan tabel temp1,
namun fungsi dari tabel temp2 adalah untuk menyimpan variabel yang akan
digunakan sewaktu user hendak menambahkan variabel dalam query yang
akan dijalankan.
5. Tabel hasil_1
Tabel hasil_1 digunakan untuk menyimpan perhitungan hasil fire strength
sementara.
Tabel 3.9 Tabel hasil_1
6. tabel hasil_2
Tabel hasil_1 digunakan untuk menyimpan perhitungan hasil fire strength
sementara
Tabel 3.10 Tabel hasil_2
7. Tabel history_query
Tabel ini digunakan untuk menyimpan data nama tabel hasil perhitungan akhir
yang sudah dilakukan.
Tabel 3.11 Tabel history_query
3.4Perancangan Antar Muka
Perancangan antarmuka merupakan perancangan halaman aplikasi yang
berinteraksi langsung antara sistem dengan pengguna. Perancangan antarmuka
Dalam merancang antar muka aplikasi harus memudahkan pengguna dalam
mengoperasikan sistem atau aplikasi tersebut
Pembuatan Graphical User Interface (GUI) dan program dalam sistem ini
menggunakan PHP sebagai bahasa pemrograman. Konsep rancangan yang sangat
penting untuk mendesain halaman web adalah resolusi monitor. Terdapat 2 buah
resolusi yang umum digunakan pada monitor, diantaranya 800x600, 1024x768
pixel. Secara sederhana user interface yang ada sebagai berikut :
3.4.1 Perancangan Antar Muka Menu Data Mahasiswa
Pertama memasuki aplikasi, kita akan melihat halaman depan seperti :
Gambar 3.13 gambar antarmuka
Pada menu data mahasiswa berisi data tentang mahasiswa yang akan
digunakan untuk proses perhitungan fuzzy query. Pada menu ini, pengguna
Gambar 3.14 Gambar data mahasiswa
Tampilan data query waktu pengguna mau memasukkan query.
Pada bab IV ini akan dibahas mengenai implementasi dari rancangan sistem yang telah dibuat pada bab III. Bagian implementasi sistem kali ini meliputi: lingkungan implementasi, implementasi proses, uji coba serta analisa hasil uji coba.
4.1 Lingkungan Implementasi
Pada bagian ini akan dijelaskan mengenai perangkat keras dan perangkat lunak yang digunakan pada implementasi sistem ini.
Perangkat keras:
- Notebook dengan processor Intel Celeron 1,86 Ghz.
- Memory sodimm 1.5 GB.
Perangkat lunak:
- Sistem Operasi Windows XP SP2 / Mac OS X
- PHP Script Language Versi 5.2.3
- Xampp portable (localhost) - MySQL 5.0.24 (database aplikasi) - Flash 8 (animasi pada header) - Photoshop CS2 (mengolah template) - Komodo Edit, version 5.2.4, build 4343
4.2 Implementasi sistem
Pada tahap ini akan dibahas mengenai implementasi data dari perancangan sistem yang telah dibahas sebelumnya.
Pada halaman fuzzy set, halaman tersebut digunakan untuk menghitung nilai fungsi keanggotaan yang akan dipakai untuk proses fuzzy query. Untuk
syntax perhitungan antara fungsi kurva bahu dan kurva S dapat dilihat di bawah
ini.
if($data[0]<=$d_min){
$hasil = 1;
}
elseif($d_min<=$data[0] and $data[0]<=$tengah){
$hasil = ($data[0]-$d_min)/($d_max-$d_min);
$hasil = 1-2*($hasil*$hasil);
}
elseif($tengah<=$data[0] and $data[0]<=$d_max){
$hasil = ($d_max-$data[0])/($d_max-$d_min);
elseif($d_min<=$data[0] and $data[0]<=$tengah){
$hasil = ($data[0]-$d_min)/($d_max-$d_min);
$hasil = 2*($hasil*$hasil);
}
elseif($tengah<=$data[0] and $data[0]<=$d_max){
if($data[0]<=$d_min1){
$h1 = 1;
}
elseif($d_min1<=$data[0] and $data[0]<=$d_max1){
$h1 = ($d_max1-$data[0])/$dt1;
}
elseif($data[0]>=$d_max1){
$h1 = 0;
}
if($data[0]<=$d_min2 or $data[0]>=$d_max2){
$h2 = 0;
}
elseif($d_min2<=$data[0] and $data[0]<=$d_te2){
$h2 = ($data[0]-$d_min2)/$d2_1;
}
elseif($d_te2<=$data[0] and $data[0]<=$d_max2){
$h2 = ($d_max2-$data[0])/$d2_2;
}
if($data[0]<=$d_min3){
$h3 = 0;
}
elseif($d_min3<=$data[0] and $data[0]<=$d_max3){
$h3 = ($data[0]-$d_min3)/$dt3;
}
elseif($data[0]>=$d_max3){
$h3 = 1;
}
4.3 Implementasi Antar Muka
Pada tahap ini akan dijabarkan tentang implementasi antar muka dari aplikasi yang telah dibuat berdasarkan perancangan yang telah dibahas pada bab III : . Pada sistem ini terdapat beberapa form utama yaitu:
1. Form Data mahasiswa 2. Form definisi kriteria
3. Formfuzzy set
4. Form query
5. Form hasil
4.3.1 Perancangan Antar Muka Menu Data Mahasiswa
Gambar 4.1 Menu data mahasiswa
4.3.2 Menu definisi kriteria
Pada menu definisi kriteria ini merupakan inisialisasi awal untuk menentukan variabel fuzzy serta himpunan fuzzy yang akan dipakai dalam proses perhitungan fuzzy. Terdapat 3 kolom dimana masing-masing kolom memiliki fungsi yang berbeda.
Pada kolom sebelah kiri merupakan kolom variabel fuzzy yang sudah dimasukkan. User bisa merubah atau menghapus variabel serta himpunan yang sudah didefinisikan.
Gambar 4.3 Form untuk memaskkan definisi kriteria
Pada kolom sebelah tengah merupakan tombol yang digunakan jika User
perhitungan fungsi keanggotaan. jika pengguna memilih fungsi kurva bahu, maka himpunan fuzzy yang dimasukkan minimal hanya 3 dan maksimum hanya 6 himpunan fuzzy. Sedangkan pada kolom sebelah kanan merupakan tampilan untuk himpunan fuzzy pada setiap variabel fuzzy yang telah didefinisikan. Berikut adalah tampilan jika pengguna ingin memasukkan variabel kurva bahu dan kurva-S.
Gambar 4.5 Form memasukkan variabel fungsi bahu
4.3.3 Menu Fuzzy set
Gambar 4.6 Form memasukkan fuzzy set fungsi kurva S
Gambar 4.7 form memasukkan fuzzy set fungsi kurva bahu
4.3.4 Menu Query
Pada menu ini digunakan untuk melakukan fungsi query.
4.3.5 Menu Hasil
Menu hasil digunakan untuk menampilkan hasil dari query yang kita lakukan pada menu query.
Pada bab ini akan dibahas mengenai uji coba terhadap aplikasi yang telah
dibuat dan selanjutnya akan dibuat evaluasi dari hasil uji coba tersebut. Uji coba
dilaksanakan untuk mengetahui apakah aplikasi dapat berjalan dengan baik sesuai
perancangan yang dibuat. Evaluasi dilakukan untuk menentukan tingkat
keberhasilan dari aplikasi tersebut.
5.1. Lingkungan Uji Coba
Pada tahap ini akan dijabarkan tentang uji coba aplikasi dengan data
mahasiswa yang telah dimasukkan. Spesifikasi uji coba kali ini adalah sebagai
berikut:
- Sistem Operasi: Windows XP SP2
- Server Database: MySql 5.0.24
- Web Server: Apache 2.2.3
- Processor Celeron 1.86 GHz
- Ram 1.5 Gb
5.2 Skenario Uji Coba
Pada percobaan ini, akan dicoba jalannya aplikasi sesuai dengan urutan
proses dan diharapkan hasil akhir dari uji coba ini akan mendapatkan nama
mahasiswa yang berhak direkomendasikan untuk mendapatkan beasiswa
berdasarkan kreteria yang telah diberikan.
Berikut adalah data mahasiswa yang akan digunakan.
Tabel 5.1 Data mahasiswa
Tabel 5.2 Data mahasiswa (lanjutan)
5.3 Pelaksanaan Uji Coba
Dalam pelaksanaan uji coba kali ini, penulis akan menguji coba beberapa
fitur yang ada dalam aplikasi ini, di antarnya : input definisi kriteria, input fuzzy
5.3.1 Uji Coba Input Definisi Kriteria
1. ABSENSI
Himpunan Fuzzy : BAIK
Gambar 5.1 Data variabel fuzzy Absensi baik
2. IPK
Himpunan Fuzzy : BAIK
3. TOEFL
Himpunan Fuzzy : RENDAH, SEDANG dan TINGGI
Gambar 5.3 Data variabel fuzzy TOEFL
4. PENGHASILAN_ORTU
Himpunan fuzzy : RENDAH, SEDANG dan TINGGI
5.3.2 Uji Coba Input Fuzzy Set
Kemudian dari tiap masing – masing himpunan fuzzy dari tiap variabel
ditentukan nilai semesta pembicaraan dan domainnya sebagai berikut :
Absensi
o Himpunan fuzzy : BAIK
o Fungsi keanggotaan : Kurva S-PENYUSUTAN
o Semesta pembicaraan : 0 – 20
o Domain : 0 – 11
11 20
10 1
0
Domain
Gambar 5.5 Kurva Absensi baik
Fungsi Kurva Absensi Baik
IPK
o Himpunan fuzzy : BAIK
o Fungsi keanggotaan : Kurva S-PERTUMBUHAN
o Semesta pembicaraan : 0 – 4
o Domain : 3 – 4
4
2 3
1 1
0
Domain
Gambar 5.7 Kurva IPK baik
TOEFL
o Fungsi keanggotaan : Kurva BAHU
o Semesta pembicaraan : 200 – 700
Gambar 5.10 Data himpunan fuzzy TOEFL
Penghasilan Orang Tua
o Fungsi keanggotaan : Kurva BAHU
o Semesta pembicaraan : 0 – 2000
o Himpunan fuzzy :
RENDAH
Domain :
Minimum : 300
Maksimum : 700
SEDANG
Domain :
Minimum : 450
Tengah : 800
TINGGI
Domain :
Minimum : 800
Maksimum : 1500
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1
0
■ = Rendah ■ = Sedang ■ = Tinggi
Domain
Gambar 5.11 Kurva Penghasilan Ortu
5.3.3 Uji Coba Fuzzy Query
Kemudian diberikan query seperti gambar 5.13
Gambar 5.13 Query
Dari gambar diatas dapat kita lihat statement WHERE dari query yang
diberikan oleh user yaitu :
WHERE ABSENSI = baik AND IPK=baik OR TOEFL=tinggi AND
PENGHASILAN_ORTU=rendah AND STATUS=Belum_Pernah
Gambar 5.14 Data Hasil
5.4 Evaluasi dan Analisa
5.4.1 Hasil Perhitungan Fuzzy
Berdasarkan Percobaan diatas, dapat kita lihat hasil dari perhitungan
fungsi keanggotaan pada Tabel 5.3
Tabel 5.4 Data Hasil perhitungan fungsi keanggotaan (lanjutan)
Pada percobaan diatas dapat kita lihat statement WHERE dari query yang
diberikan oleh user yaitu :
WHERE ABSENSI = baik AND IPK=baik OR TOEFL=tinggi AND
PENGHASILAN_ORTU=rendah AND STATUS=Belum_Pernah
Sehingga perhitungan Fire-Strenght-nya adalah :
Fire Strenght = Max((Min(Absensi_baik,IPK=baik ),min(TOEFL_tinggi,
PENGHASILAN_ORTU _rendah ))
Kemudian dengan STATUS = belum pernah mendapatan beasiswa.
Sebagai contoh perhitungan kita akan mengambil salah satu data dari mahasiswa.
Nama : Ibrahim T
- ABSENSI_baik = 0.851239669421
- IPK_baik = 0.3872
- TOEFL_tinggi = 0.26
Sehingga perhitungan fire-strenght-nya:
fire-strenght = Max(Min(0.851239669421, 0.3872),Min(0.26,0))
= Max(0.3872,0) = 0.3872
Dari hasil perhitungan di atas, dapat disimpulkan bahwa hasil perhitungan
manual dengan program fuzzy query tersebut sama.
5.4.2 Perbandingan Fuzzy Query dengan Query Logika Tegas
Berikut akan dilakukan analisis hasil perbandingan data antara query
logika tegas dengan fuzzy query.
Berikut adalah contoh query logika tegas :
select nama, ipk, absensi, toefl from data_mahasiswa
where status = '0' and periode = '2010' and (ipk>=3) and
(absensi<10) and (toefl BETWEEN '350' and '500') order by ipk
desc, absensi asc;
jika query diatas dijalankan, maka akan tampak hasil sbb:
Berikut adalah contoh query logika Fuzzy :
WHERE ABSENSI = baik AND IPK=baik AND TOEFL=Sedang AND
STATUS=Belum_Pernah AND PERIODE=2010
Jika Statement di atas dijalankan maka akan nampak hasil. Sb :
Gambar 5.15 Data Hasil perhitungan Fuzzy
Dari hasil analisa dapat di simpulkan bahwa logika fuzzy dapat mengontrol
hasil lebih baik daripada logika tegas. Sebagai contoh adalah Derek Nigia P yang
memiliki IPK 3.4 dan absensi 9. jika dilihat dengan seksama Asha Maruko
memiliki absensi lebih baik yaitu 2 dan IPK yang selisihnya tidak begitu besar
yakni 3.33 daripada Derek Nigia P, maka dapat disimpulkan bahwa Asha
Dari tugas akhir ini dapat ditarik beberapa kesimpulan, antara lain:
1. Cara memasukkan logika fuzzy kedalam query adalah dengan menggunakan operator fuzzy dimana user harus terlebih dahulu menghitung fungsi keanggotaan tiap variabel yang telah ditentukan.
2. Cara untuk menentukan seberapa layak seorang mahasiswa untuk direkomendasiakn mendapatkan beasiswa salah satunya dapat menggunakan metode fuzzy query database dengan berdasarkan kriteria – kriteria yang telah dimasukkan dan menghitung nilai dari setiap fungsi keanggotaan.
6.2. Saran
1. Untuk pengembangan selanjutnya diharapkan bisa mengatasi data dari tabel-tabel yang berelasi.
2. Untuk pengambilan keputusan yang lebih baik lagi diharapkan dapat menggunakan metode kombinasi (hybrid) dengan metode fuzzy, misal antara
fuzzy dengan jaringan syaraf (neuro fuzzy).
3. Untuk pengguna yang kurang mengerti tentang teori logika fuzzy dapat melihat gambar plot fungsi yang ada. Dengan melihat gambar plot fungsi yang ada di buku ini.
[2] Galindo, Jose. 2008. Handbook of research on fuzzy information processing in
databases.Information Science Reference. UK.
[3] Kusumadewi, Sri. Purnomo, Hari. 2004. Aplikasi Logika Fuzzy untuk Pendukung
Keputusan., Graha Ilmu. Yogyakarta.
[4] Sousa, Joao M. C.. Kaymak, Uzay. 2002. Fuzzy Decision Making In Modelling And
Control. World Scientific Publishing. Singapore.
[5] Timothy, J.Ross. 2004. Fuzzy Logic With Engineering Applications. John Wiley & Sons. Chichester. England.