7
Perencanaan Pada fase perencanaan yang dilakukan adalah : 1. Mengenali masalah Pada tahap ini penulis mengumpulkan informasi serta mempelajari dan menganalisa sistem yang akan dibuat. 2. Mendefinisikan masalah Masalah yang dihadapi adalah bagaimana membuat model perangkat lunak sistem agar menghasilkan keluaran yang representatif . 3. Identifikasi tujuan Tujuan dibangunnya sistem ini adalah membangun aplikasi untuk memudahkan pengambilan data dengan fuzzy query yang terekam dalam RDBMS. Analisis Untuk mendapatkan gambaran yang lebih jelas mengenai program yang akan dibuat, maka dilakukan analisis pemodelan program untuk mengetahui apa yang menjadi input, bagaimana presesnya dan apa yang akan menjadi output dari program. Pemodelan program digambarkan dalam bentuk DFD (Data Flow Diagram) untuk mengetahui bagaimana data mengalir di dalam program (Narwandi 2004). Disain Spesifikasi disain pada penelitian ini meliputi disain penentuan derajat keanggotaan, disain grafik fungsi keanggotaan, disain database , disain query, dan disain keluaran. Pada disain penentuan derajat keanggotaan dilakukan pembuatan jenis fungsi keanggotaan baik bentuk maupun parameter. Pada disain grafik derajat keanggotaan ditampilkan grafik berserta batasan-batasan tiap himpunan fuzzy yang dibuat. Pada disain database dilakukan disain fuzzy database yang akan digunakan. Pada disain query, terdapat sintaks yang harus ikuti dalam penulisan query. Keluaran dari sistem berupa data yang diinginkan berdasarkan query yang dimasukkan. Implementasi Sitem dikembangkan menggunakan perangkat lunak PHP dan DBMS yang digunakan adalah MySQL. Perangkat keras yang digunakan adalah PC dengan spesifikasi Processor AMD Sempron 1.60 GHz, Memori 256 MB, dan Harddisk 40 GB.
Pengujian Untuk memastikan apakah sistem sudah bisa merepresentasikan hasil yang diinginkan, maka dilakukan pengujian fungsi-fungsi utama seperti fungsi penentuan derajat keanggotaan, dan query. Pengujian ini bertujuan untuk mengetahui apakah sistem yang dibangun sudah memenuhi tujuan yang dimaksud.
HASIL DAN PEMBAHASAN Perencanaan 1.Pengenalan dan pendefinisian masalah Pada tahap ini, penulis mengumpulkan informasi tentang konsep fuzzy database serta mempelajari dan menganalisis sistem yang akan dibuat baik berupa data yang digunakan serta fungsi yang akan dibuat. Data yang digunakan dalam penelitian ini adalah data hp (handphone). Hal ini didasarkan dari banyak pengguna hp yang mencari hp sesuai dengan kriteria masing-masing, sehingga untuk mempermudah hal tersebut, peneliti bermaksud membangun fuzzy database yang dapat menangani hal tersebut. Dalam fuzzy database, pendekatan himpunan fuzzy digunakan untuk merepresentasikan dan memanipulasi informasi yang tak pasti dan tak jelas. Fuzzy relational database merupakan pengembangan dari basisdata relasional lama yang mengizinkan nilai atribut fuzzy untuk direpresentasikan pada model relasional. Terdapat 2 aspek utama dalam aplikasi pendekatan himpunan fuzzy pada database (Zhang et.al ): 1 Membangun sistem fuzzy front-end untuk basisdata crisp, seperti yang telah dikenal SQLF dan sistem FQUERY. 2. Membangun DBMS secara utuh yang dapat memfasilitasi untuk memanipulasi ketidakpastian yang direpresentasikan oleh himpunan fuzzy. Berangkat dari konsep tersebut, dalam penelitian ini, dibuat contoh database ‘hp’ menggunakan konsep fuzzy database Tahani, di mana salah satu tabel yaitu ‘data_hp’ terdapat atribut crisp yang nantinya bisa direpresentasikan ke dalam himpunan fuzzy, atribut-atribut tersebut adalah ‘harga’, ’panjang’, ’lebar’, ’tebal’, ’berat’, ’standby’, ’talktime’, ’phonebook’, ’message_length’.
8
menunjukkan rekomendasi penuh, sedangkan degree 0 menunjukkan data tersebut tidak direkomendasikan. DFD level 1 untuk sistem ini bisa dilihat pada Gambar 5.
2. Identifikasi Tujuan Tujuan dibangunnya sistem ini adalah membangun aplikasi untuk memudahkan pengambilan data dengan fuzzy query yang terekam dalam RDBMS. Analisis
DFD level 0 Hasil query DB
Data pada DB
Pengguna
0 SISTEM
Query
Batas himpunan fuzzy
Admin
Gambar 4 DFD level 0 Terdapat tiga pihak yang berhubungan dengan sistem ini, bisa dilihat pada Gambar 4, yaitu database (DB), pengguna dan administrator. Dari DB akan diperoleh data yang berhubungan dengan query itu sendiri. Dari administrator akan diperoleh batas-batas himpunan fuzzy. Pengguna akan mendapatkan hasil query sesuai kriteria yang diinginkannya. DFD level 1 Aliran data pada level 1 untuk sistem ini terdiri atas empat proses: •
Pemasukan dan peng-edit-an data yang akan diproses pada fuzzy query. Data disimpan pada satu tabel pada database.
•
Pemasukan atau peng-edit-an batas himpunan fuzzy. Data disimpan dan diambil dari tabel fuzzy_table.
•
Perhitungan derajat keanggotaan. Data diambil dan disimpan kembali dalam tabel table_mf_triangle atau table_mf_trapezoid.
•
Proses pencarian, pengguna meng-inputkan kriteria data yang diinginkan, dan mendapatkan satu atau lebih data berdasarkan kriteria yang di-input-kan tadi beserta degree yang menunjukkan seberapa besar data tersebut direkomendasikan. Degree tersebut memiliki nilai antara 0 sampai 1. Nilai 1
Gambar 5 DFD level 1 Disain Terdapat empat disain pada penelitian ini, yaitu : 1.
Disain penentuan batas himpunan fuzzy Pada droplist ‘tabel’ terdapat tabel-tabel yang terdapat dalam DB ‘hp’ di MySQL. Ketika memilih tabel ‘data_hp’ maka pada droplist field, terdapat field-field yang terdapat pada tabel ‘data_hp’, salah satunya adalah field harga yang akan di fuzzy-kan dengan tipe bentuk segitiga. Disain penentuan batas himpunan fuzzy dapat dilihat pada Gambar 6
Gambar 6 Disain penentuan batas himpunan fuzzy Pada pembetukan parameter, terdapat tiga label:
9
1. ‘murah’ pada label 1 dengan titik x1=0 , x2= 0 , x3=2.000.000 2. ‘sedang’ pada label 2 dengan titik x1=1.000.000, x2=2.500.000, x3=4.000.000 3. ‘mahal’ pada label 3 dengan titik x1=3.0000.000, x2=5.000.000, x3=5.000.000 2.
Disain grafik fungsi keanggotaan Disain grafik fungsi keanggotaan disajikan pada Gambar 7.
µ sedang (x) :
µ mahal (x)
derajat
keanggotaan
dari
elemen x (harga) dalam area sedang. : derajat keanggotaan dari elemen x (harga) dalam area mahal.
3. Disain database Terdiri atas 4 tabel • Tabel data_hp, dengan atribut : id, tipe, harga, panjang, lebar, tebal, berat, standby, talktime, phonebook, message_leght. • Tabel fuzzy_mf_triangle, dengan atribut: id, fuzzy_id, label, alpha, beta, gamma . • Tabel fuzzy_mf_trapezoid, dengan atribut: id, fuzzy_id, label,alpha, beta, gamma, theta.
Gambar keanggotaan Persamaan Grafik 7 yaitu:
7
Disain
fungsi
grafik
keanggotaan
0 2 jt − x µ murah ( x) = 2 jt 1
; x
• Tabel fuzzy_table, id,tb,col, mf_shape.
fungsi
pada
atribut:
Hubungan antara ke-4 tabel tersebut bisa dilihat pada Gambar 8.
≥ 2 jt
;
0 ≤ x ≤ 2 jt ; x=0
0 x −1jt 1,5 jt µsedang(x) = 1 4 jt − x 1,5 jt
;
x ≤ 1 jt atau x ≥ 4 jt
;
1 jt ≤ x ≤ 2,5 jt
;
x = 2,5 jt
;
2,5 jt ≤ x ≤ 4 jt
0 x − 3 jt µmahal(x) = 2 jt 1
;
x ≤ 3 jt atau x ≥ 5 jt4. Disain query
;
3 jt ≤ x ≤ 5 jt
;
x = 5 jt
Gambar 8 Relasi antara tabel data_hp, fuzzy_mf_triangle, fuzzy table dan fuzzy_mf_trapezoid
Penulisan sintaks
query,
harus
berdasarkan
SELECT
FROM
di mana:
µ murah (x)
dengan
: derajat keanggotaan dari elemen x (harga) dalam area murah.
WHERE IS
10
Contoh : Select tipe From data_hp Where harga is murah. 5. Disain keluaran Keluaran pada sistem ini adalah urutan tipe, fuzzy atribut dan derajat keanggotaan (degree) dari yang paling direkomendasikan sampai tidak, yang terlihat dari menurunnya derajat keanggotaan yang dihasilkan. Hasil keluaran bisa dilihat pada Table 4. Tabel 4 Hasil query untuk tipe hp harga murah Tipe Harga Degree Nokia 3120 400.000 0.8 Sony Ericsson W700i 900.000 0.55 Ben Q Siemens F51 950.000 0.525 Motorola E398 950.000 0.525 Phylips 292 999.000 0.5005 Nokia 5200 1.125.000 0.4375 Samsung E200 1.175.000 0.4125 Motorola RAZR v3 1.175.000 0.4125 Sony Ericsson W300i 1.390.000 0.305 Ben Q Siemens E52 1.450.000 0.275 Pylips Xen 9@9w 1.971.000 0.0145 Implementasi Sistem dikembangkan menggunakan perangkat keras yang digunakan dalam pengembangan sistem adalah PC dengan spesifikasi Processor AMD Sempron 1.60 GHz, Memori 256 MB, dan Harddisk 40 GB. Di lain pihak perangkat lunak yang digunakan yaitu PHP sebagai bahasa pemrograman dan MySQL sebagai DBMS-nya. Terdapat dua tahapan utama dalam proses sistem ini 1. Penentuan batas himpunan fuzzy. Mula-mula harus dipilih tabel dari database ‘hp’, lalu dipilih atribut dari tabel yang dipilih, yang nantinya akan diproses dalam bentuk fuzzy, serta dipilih bentuk himpunan keangotaannya, yang disajikan pada Gambar 9, Gambar 10, Gambar 11.
Gambar 9 Pemilihan tabel dari database
Gambar 10 Pemilihan atribut
Gambar 11 Pemilihan bentuk himpunan keanggotaan 2. Proses Query a. Rancangan proses dari Fuzzy SQL Rancangan proses FSQL dimulai dari pemilihan atribut yang akan ditampilkan berdasarkan tabel yang dipilih, lalu dilanjutkan ke conditional form yang berisi atribut yang bersifat fuzzy dengan conjunction ‘is’ lalu diikuti fuzzy qualifier-nya seperti yang terlihat pada Gambar 12.
Gambar 12 Rancangan proses Fuzzy SQL Bentuk FSQL yang terbentuk berdasarkan rancangan proses di atas adalah: Select tipe from data_hp where harga is murah b. Proses transformasi Fuzzy SQL ke dalam sintaks SQL Proses transformasi ke bentuk SQL, diawali dengan mem-parsing FSQL. Dari hasil parsing, didapat ‘tipe’, ‘data_hp’, ‘harga’ dan ‘murah’. Dengan mengikutsertakan ‘harga’ ke dalam tabel ‘fuzzy_table’ (dalam MySQL), didapat ‘mf_shape ’(bentuk membership function)+’id’ yang nantinya akan dikelola di tabel ‘fuzzy_mf_<shape>’ untuk mendapatkan label-label dari ‘id’ yang diambil dari tabel ‘fuzzy_mf_<shape>’.
11
Gambar 14 Proses SQL ke dalam hasil fuzzy Gambar 13 Proses transformasi Fuzzy SQL ke dalam sintaks SQL Setelah mendapatkan label-label, maka dengan mengikut-sertakan ‘value=murah’, didapat batas kiri dan kanan dari label murah tersebut. Dengan ‘tipe’, ‘data_hp’, ‘harga’ yang didapat dari hasil parsing serta batas kiri dan kanan, maka dapat terbentuk SQL yang nantinya akan diproses oleh komputer untuk mendapatkan hasil yang diinginkan. Value ’murah’ akan ditansformasikan ke dalam batasan-batasan yang nantinya akan digunakan dalam proses SQL. Dengan demikian bentuk SQL akan menjadi seperti yang terlihat pada Tabel 8. Urutan proses transformasi Fuzzy SQL ke dalam sintaks SQL bisa dilihat pada Gambar 13. Bentuk SQL yang terbentuk setelah proses transformasi adalah: Select tipe from data_hp where harga >=batas kiri and harga <= batas kanan c. Proses sintaks SQL ke dalam hasil fuzzy Setelah FSQL diubah ke dalam bentuk SQL, maka langkah selanjutnya adalah memproses data yang terdapat dalam database dan menghasilkan keluaran berupa data yang diinginkan beserta degree. Proses sintaks SQL ke dalam hasil fuzzy disajikan dalam Gambar 14. Proses tersebut diawali dengan mendapatkan alpha (batas kiri), beta, gamma (batas kanan untuk bentuk segitiga), theta (batas kanan untuk bentuk trapesium). Batasbatas tersebut akan dihitung pada membership set sesuai dengan batas-batasnya.
Bentuk segitiga : if( x < alpha || x > gamma) {return 0;} else { if( x <= beta && x >alpha) {if(alpha != beta) {return (x-alpha)/(beta-alpha); } Else {return 1;} } Else {if( beta != gamma ) {return (gamma-x)/(gamma-beta); } Else {return 1;} } }
Bentuk trapesium : if( x < alpha || x > theta ) {return 0;} else { if( x <= beta && x > alpha ) {if(alpha != beta) {return(x-alpha)/(beta-alpha); } Else {return 1;} } Else if( x >= beta && x <= gamma ) {return 1;} Else {if( gamma != teta ) {return (theta - x)/ (theta-gamma); } Else {return 1;} } }
12
Pengujian • Input Membership Sets Pengujian diawali dengan memilih tabel, field, serta bentuk himpunan fuzzy dan juga penentuan batas himpunan fuzzy dengan memasukkan parameter-parameter seperti yang terlihat pada Gambar 15.
Gambar
15
Tampilan disain membership sets,
masukan
Selanjutnya data akan disimpan ke dalam tabel fuzzy_table pada MySQL. Tabel 5 Tabel fuzzy_table pada MySQL id tb col mf_shape 15 data_hp panjang trapesium Serta akan otomatis fuzzy_mf_trapezoid Tabel id 25 26 27
fuzzy_id 15 15 15
mengisi
tabel
6 Tabel fuzzy_mf_trapezoid pada MySQL label alpha beta gamma pendek 0 0 8.9 sedang 9.5 10.1 10.7 panjang 10.7 11.3 12
Tabel 5 dan Tabel 6 merupakan tabel fuzzy_table dan abel fuzzy_mf_trapezoid yang terapat pada MySQL. •
Input Query Setelah penentuan batas-batas himpunan fuzzy, pengujian terakhir yaitu hasil dari query yang dimasukkan.
paling tidak direkomendasikan adalah Samsung W580i dan Nokia N95 dengan degree 0.16667. Query yang dimasukkan dan hasil query disajikan pada Gambar 16 dan Tabel 7. Tabel 7 Hasil query untuk tipe hp pendek Tipe Panjang degree (cm) Ben Q Siemens 8.90 1 Sony Ericsson W300i 9.00 0.91667 Nokia 5200 9.24 0.71667 Samsung W579 9.45 0.541667 Motorola RAZR v3 9.8 0.25 Nokia N95 9.90 0.1667 Sony Ericsson W580i 9.90 0.1667
KESIMPULAN DAN SARAN Kesimpulan Dari penelitian ini dapat ditarik beberapa kesimpulan yaitu : a. Penggunaan sistem aplikasi ini dengan mudah dapat mendefinisikan sendiri parameter-paremeter yang dibutuhkan dalam pembuatan derajat keanggotaan sesuai dengan bentuk theta 10.1 11.3 12 himpunan fuzzy trapesium.
baik
segitiga
atau
b. Pada sistem aplikasi ini dengan mudah didapat hasil yang diinginkan sesuai dengan query yang dimasukkan, karena diikutsertakan degree terurut yang merupakan tingkat keanggotaan dari suatu himpunan fuzzy. Saran
Gambar 16 Disain masukan Query. Dari query yang dituliskan, didapatkan bahwa tipe hp yang paling direkomendasikan untuk hp yang pendek adalah Ben Q Siemens F51 dengan degree=1, lalu Sony Ericsson W300i dengan degree 0.9166667 diikuti oleh Nokia 5200 dengan degree 0.716, dan yang
• Pembuatan user interface yang lebih baik akan meningkatkan kegairahan dalam menggunakan sistem. • Menggunakan algoritme tertentu untuk mendapatkan hasil dari query. • Kombinasi query yang memungkinkan multi-atribute query. • Tipe data fuzzy yang dapat ditangani agar lebih banyak sehingga dapat mengatasi ketidakjelasan informasi.