fakultas teknik jurusan teknik informatika …
TRANSCRIPT
SISTEM PENDUKUNG KEPUTUSAN UNTUK PEMILIHAN PRODUK HANDPHONE MENGGUNAKAN METODE FUZZY TAHANI
SKRIPSI
Disusun Untuk Melengkapi Tugas Dan Memenuhi Syarat Kelulusan
Program Strata I Jurusan Teknik Informatika
Fakultas Teknik Universitas Muhammadiyah Jember
diajukan oleh :
INDRA SEPTIAN
0910652054
FAKULTAS TEKNIK
JURUSAN TEKNIK INFORMATIKA
UNIVERSITAS MUHAMMADIYAH JEMBER
2011
BAB I PENDAHULUAN
1.1 LATAR BELAKANG Sejarah Handphone – Handphone atau biasa disebut telepon selular
merupakan perangkat telekomunikasi elektronik yang mempunyai kemampuan
dasar yang sama dengan telepon konvensional salutaran tetap, tetapi handphone
bias dibawa kemana-mana dan tidak perlu disambungkan dengan jaringan telepon
menggunakan kabel.
Dan dalam era globalisasi sekarang ini memang tak bisa dipungkiri bahwa
kebutuhan akan alat komunikasi terutama handphone sangatlah penting. Selain
lebih mudah untuk di bawa kemana-mana, banyak kemudahan-kemudahan yang
ditawarkan dari fasilitas yang ada di handphone, misalnya fasilitas music, games,
GPRS, MMS dan bahkan sekarang telah muncul fasilitas kamera yang tentunya
sangat memanjakan para penggunanya. Melihat animo konsumen yang begitu
antusias, maka banyak para produsen yang berlomba-lomba untuk memproduksi
tipe-tipe handphone yang sesuai dengan keinginan konsumen. Dengan begitu
banyaknya produk handphone di pasaran, tentunya sedikit memusingkan para
konsumen (calon pembeli) untuk memilih produk handphone yang sesuai dengan
keinginan dan sesuai juga dengan daya belinya. Karena semakin lengkap fasilitas
yang ada di produk handphone maka semakin mahal pula harganya.
Dengan adanya sebuah aplikasi dengan menggunakan model DBMS dan
query yang berbasis fuzzy,maka konsumen tidak perlu bingung lagi dalam
memilih produk handphone karena DBMS dan query fuzzy model Tahani dapat
dengan tepat memetakan suatu input (fuzzy query) ke output sebagai informasi
hasil query (Kusumadewi, 2004). Metode fuzzy logic database system dapat
melakukan toleransi/penghalusan terhadap kriteria inputan data pada system yang
pada hal ini untuk memberikan rekomendasi handphone pada konsumen.
Maka permasalahan yang ada adalah “Bagaimana menerapkan metode fuzzy
Tahani dalam pemilihan produk Handphone yang sesuai dengan permintaan
konsumen”.
Jadi penulis mencoba membuat suatu karya tulis untuk memecahkan
masalah tersebut dengan membangun sebuah analisis dengan judul “Sistem
Pendukung Keputusan Untuk Pemilihan Produk Handphone Menggunakan
Metode Fuzzy Tahani ” yang tidak hanya menampilkan informasi atribut-atribut
standar handphone, melainkan juga dapat membantu memberikan rekomendasi
pilihan handphone bagi para konsumen berdasarkan kriteria-kriteria yang
diinginkan. Untuk itu kami menggunakan metode fuzzy model Tahani yang
digunakan untuk mengolah data-data handphone yang nantinya akan
menghasilkan output berupa data-data handphone rekomendasi untuk konsumen.
1.2 RUMUSAN MASALAH
a. Bagaimana sistem kriteria untuk pemilihan produk handphone
menggunakan metode fuzzy
b. Bagaimana kita dapat memberikan informasi data handphone untuk
rekomendasi bagi customer.
1.3 TUJUAN Tugas akhir ini bertujuan sebagai berikut :
a. Pendukung keputusan rekomendasi pemilihan HP dengan metode Fuzzy
Tahani
b. Membuat program aplikasi untuk informasi data handphone sbagai
acuan rekomendasi dengan metode Fuzzy Tahani.
1.4 MANFAAT a. Pendukung keputusan rekomendasi pemilihan HP dengan metode Fuzzy
Tahani
b. Membuat program aplikasi untuk informasi data handphone sbagai
acuan rekomendasi dengan metode Fuzzy Tahani.
1.5 BATASAN MASALAH
Adapun batasan pada proyek akhir ini adalah :
Merk yang dijadikan input sistem ada 5 : Motorola, Nokia, Siemens,
Samsung dan Sony Ericsson. Sedangkan Network system yang dijadikan
input sistem adalah GSM.
Pengolahan data menggunakan metode fuzzy Tahani, penerapan sistem
dalam bentuk web.
Fasilitas dan atribut handphone berupa : harga, berat, standby time, talk
time, phonebook memory, voice dialling memory, games, message length,
serta ada tidaknya fasilitas WAP, GPRS, Infrared, MMS, Polyphonic,
Kamera, 3G .
BAB II TINJAUAN PUSTAKA
2.1 TINJAUAN SINGKAT HANDPHONE
Sejarah Handphone – Handphone atau biasa disebut telepon selular
merupakan perangkat telekomunikasi elektronik yang mempunyai kemampuan
dasar yang sama dengan telepon konvensional salutaran tetap, tetapi handphone
bias dibawa kemana-mana dan tidak perlu disambungkan dengan jaringan telepon
menggunakan kabel. Pada tahun 1910 adalah cikal bakal telepon seluler yang
ditemukan oleh Lars Magnus Ericsson, yang merupakan pendiri perusahaan
Ericsson yang kini di kenal dengan perusahaan Sony Ericsson. Pada awalnya,
orang Swedia ini medirikan perusahaan Ericsson memfokuskan terhadap bidang
bisnis perlaan telegraf, dan perusahaanya juga tidak terlalu besar pada waktu itu.
Pada tahun 1921 pertama kalinya Departemen Kepolisian Detroit Michigan
menggunakan teleopn mobile yang terpasang di semua mobil polisi dengan
menggunakan freuensi 2 MHz..(www.AsalMula.com)
2.2 LOGIKA FUZZY
Titik awal dari konsep modern mengenai ketidakpastian adalah paper yang
dibuat oleh Lofti A Zadeh, dimana Zadeh memperkenalkan teori yangmemiliki
obyek-obyek dari himpunan fuzzy yangmemiliki batasan yang tidak presisi dan
keanggotaandalam himpunan fuzzy, dan bukan dalam bentuklogika benar (true)
atau salah (false), tapi dinyatakandalam derajat (degree). Konsep seperti ini
disebutdengan Fuzziness dan teorinya dinamakan Fuzzy Set Theory Fuzziness
dapat didefinisikan sebagai logikakabur berkenaan dengan semantik dari suatu
kejadian, fenomena atau pernyataan itu sendiri.Seringkali ditemui dalam
pernyataan yang dibuatoleh seseorang, evaluasi dan suatu pengambilan keputusan.
Sebagai contoh:
A.Manajer pergudangan mengatakan pada manajer produksi seberapa banyak
persediaan barang padaakhir minggu ini, kemudian manajer produksi
akanmenetapkan jumlah barang yang harus diproduksi esok hari.
B. Pelayan restoran memberikan pelayanan terhadap tamu, kemudian tamu akan
memberikan tip yang sesuai atas baik tidaknya pelayanan yang diberikan.
C. Anda mengatakan pada saya seberapa sejuk ruangan yang anda inginkan, saya
akan mengatur putaran kipas yang ada pada ruangan ini.
Ada beberapa alasan mengapa orang 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.2.1 MODEL TAHANI
Model Tahani adalah model database, dimana database adalah kumpulan
dari data yang saling berhubungan satu dengan yang lainnya, tersimpan di
perangkat keras komputer dan digunakan perangkat lunak untuk
memanipulasinya. Database system adalah suatu sistem informasi yang
mengintegrasikan kumpulan data yang saling berhubungan satu dengan lainnya
dan membuatnya tersedia untuk beberapa aplikasi dalam suatu organisasi.
Sebagian besar database standar diklasifikasikan berdasarkan bagaimana
data tersebut dipandang oleh user. Dengan menggunakan database standar, kita
dapat mencari data-data dengan spesifikasi tertentu dengan menggunakan query.
Namun pada kenyataannya, kadang kita membutuhkan informasi dari data-data
yang bersifat ambiguous. Apabila hal ini terjadi, maka kita bisa menggunakan
metode fuzzy model Tahani . Selama ini sudah ada penelitian tentang metode
fuzzy model database. Salah satu diantaranya adalah model Tahani. Fuzzy model
Tahani ini masih tetap menggunakan relasi standar, hanya saja model ini
menggunakan teori himpunan fuzzy untuk mendapatkan informasi query-nya.
Sesuai dengan judul tugas akhir ini, maka didapatkan bahwa ada beberapa
atribut dari handphone yang akan kita jadikan sebagai input fuzzy sistem, yaitu
salah satunya adalah variabel harga. Variabel harga mempunyai 3 himpunan
fuzzy, yaitu : MURAH, SEDANG dan MAHAL. Himpunan MURAH dan
MAHAL menggunakan pendekatan fungsi keanggotaan yang berbentuk bahu,
sedangkan himpunan SEDANG menggunakan pendekatan fungsi keanggotaan
berbentuk segitiga.
Berikut gambarannya :
Fungsi Keanggotaan :
µ MURAH [x] =
800;0
800500;300
800500;1
x
xxx
µ SEDANG [x] =
16001000;600
1600
1000600;400
6001600600;0
xx
xxxataux
500 1000 1700
MURAH SEDANG MAHAL
Harga (x1000) 800 1250 1600 600
1
µ [x]
0
Gambar 2.1 Fungsi Keanggotaan Untuk Variabel Harga
µ MAHAL [x] =
1700;1
17001250;4501250
1700;0
x
xxx
Dengan fungsi keanggotaan di atas akan memudahkan kita dalam
mendefinisikan data-data handphone berdasarkan harga. ( Sri Kusumadewi dan
Hari Purnomo ; 178 ; 2010 ).
2.2. PENGENALAN PHP
Pada musim gugur 1994 seorang programmer bernama Rasmus Lerdoft
([email protected]) mengembangkan script PHP, yang kemudian Script PHP
ditemukan untuk pertama kalinya pada tahun 1995, yaitu merupakan versi yang
pertama, pada versi pertama ini PHP masih berupa script PERL yang dibuat dan
digunakan oleh Rasmus pada halaman web dinamisnya untuk memonitor jumlah
pengunjung yang mengunjungi homepage pribadinya. Dengan pengetahuan
pemrograman bahasa PERL, BASIC dan C yang dikuasainya, Rasmus kemudian
menggabungkan ketiganya menjadi bahasa baru yang dikenal dengan nama PHP,
kemudian meluncurkan program bantu Personal Home Page Tools versi 1.0
dengan lisensi GNU General Public License (GPL) sehingga dapat digunakan
oleh siapapun dengan gratis.
Pada versi pertama ini kemampuan PHP hanya sebatas counter jumlah
pengunjung, dan beberapa fasilitas untuk melengkapi halaman buku tamu seperti
penyimpanan data pengunjung pada file teks. Pengembangan versi 2.0
diluncurkan setelah mempelajari cara kerja YACC dan GNU Bison, yaitu dengan
penambahan fasilitas passing parameter dimana dapat menangkap data yang
dikirim melalui Form HTML, dan penambahan fasilitas koneksi dengan MySQL
yang merupakan server basis data. Kemudian pada tahun 1997 PHP versi 3.0
mulai dikembangkan dengan melibatkan programmer lain yang tertarik untuk
mengembangkan PHP lebih lanjut, selain oleh Rasmus sendiri yaitu Zeew
Suraski, Andi Gutman, Stig Bakken, Shane Caraveo, dan Jim Winstead. Kerja
sama antara programmer ini akhirnya menghasilkan PHP versi 3.0 yang dirilis
pada tanggal 6 Juli 1998. Selanjutnya pada PHP versi 4.0 telah dikembangkan
pengunaan engine script Zend yaitu untuk mempercepat kinerja (performa) dari
PHP serta ditambah dengan file-file ekstensi yang memungkinkan bermacam-
macam pustaka dari pihak ketiga (third party) untuk mendukung PHP seperti
MySQL, ODBC, FTP, Calendar, BCMath, PCRE, Session, WDDX, XML dan
lainnya.
2.2.1 Sintaks Dasar PHP
Sebagai penanda yang memberitahukan parser PHP bahwa sebuah skrip
menggunakan bahasa PHP dapat dilakukan dengan cara berikut :
Menggunakan tanda <? .. ?>
Menggunakan tanda <?php ... ?>
Menggunakan perintah seperti pada Javascript
Contoh :
<script langage=”php”> ... </script>
Menggunakan tanda <% ... %>
Dari seluruh cara tersebut dapat dilihat bahwa tanda penutup harus sama
dengan tanda pembukanya. Misalnya jika tanda pembukanya (<?) maka tanda
pentutpnya adalah (?>). Fungsi dari tanda penutup ini adalah untuk memberikan
tanda bahwa sebuah statement atau skrip PHP telah selesai dilengkapi.
2.3 MYSQL
MySQL merupakan server basis data yang menggunakan teknik relasional
untuk menghubungkan antara tabel-tabel dalam basis data. MySQL dikeluarkan
secara gratis dibawah lisensi GNU General Public License (GPL) seperti halnya
PHP, sehingga tepatlah kiranya bila MySQL dijodohkan dengan PHP untuk
merancang halaman web yang gratis namun handal. MySQL juga menyediakan
source programnya secara terbuka (open source) sehingga orang lain dapat
mengubah atau menambah kemampuan dari MySQL untuk keperluan
khusussecara pribadi. Dikarenakan kemampuannya yang handal (robust) dan
didukung dengan system multi-user (banyak pemakai) dan multi-thread (beberapa
prosedur dalam proses dijalankan secara bersama), maka MySQL dapatlah
bersaing dengan beberapa produk server basis data commercial seperti MS Server
7, Oracle, dan lainnya.
Awal mula pengembangan MySQL dilakukan oleh perusahaan komersial
yang bernama MySQL AB, yang sudah menggunakan mSQL untuk layanan
bisnisnya. Perusahaan ini menggunakan mSQL untuk menghubungkan antar table
menggunakan teknik ISAM yang merupakan rutin level rendah. Pengujian telah
dilakukan dan mendapatkan hasil yang memuaskan terutama mengenai kecepatan
akses basis data dan mudah disesuaikan guna memenuhi kebutuhan pemakainya.
Untuk dapat mengatur database dengan MySQL harus mengerti terlebih
dahulu perintah – perintah dasar dari server MySQL. Agar dapat mengatur
database yang ada, harus masuk dengan user administrator.
2.3.1. Membuat dan Menghapus Database
Hal pertama yang harus dimengerti dalam mengatur database adalah
bagaimana membuat database. Databse inilah yang digunakan untuk menampung
data. Perintah yang digunakan adalah :
mysql> CREATE DATABSE nama_database;
Perlu diperhatikan bahwa penulisan perintah adalah ‘case sensitif’ artinya
dalam menulis perintah harus persis dengan menggunakan huruf besar. Jika tidak
persis maka perintah tersebut akan dikenali sebagai perintah lain atau bahkan
tidak dikenali. Tanda ‘;’ digunakan untuk mengakhiri baris perintah.
Untuk menghapus database cukup digunakan perintah sebagai nerikut :
mysql> DROP DATABASE nama_database;
2.3.2. Menggunakan Database
Untuk mengarahkan database mana yang ditempati untuk bekerja,
digunakan perintah :
mysql> USE nama_database;
Database changed
Perintah tersebut harus selalu dikerjakan untuk memberitahukan bahwa
database tersebut akan dimanipulasi data yang ada didalamnya.
2.3.3. Membuat Tabel
Setelah berhasil membuat database dan menggunakannya, langkah
selanjutnya adalah mengisi database tersebut dengan tabel – tabel. Karena tabel –
tabel tersebut baru dan belum terisi maka digunakan perintah USE
nama_tabel; untuk mengarahkan di database mana tabel akan dibuat.
Untuk membuat tabel, maka perlu dirancang terlebih dahulu, yang meliputi
jumlah field, tipe field serta atribut pelengkapa yang lainnya.
2.3.4. Mengisi Tabel
Sekarang tabel yang telah dibuat dapat diisikan data. Cara untuk mengisi
dapat dibedakan dalam dua cara, pertama dengan memasukkan data satu – persatu
untuk masing – masing baris, cara kedua adalah dengan mengubah file .txt yang
berisi data ke dalam tabel yang diinginkan. File .txt yang akan dimasukkan
sebaiknya ditempatkan pada direktori yang sama dengan program yang dijalankan
agar mempermudah pemindahan ke tabel. Perintah yang digunakan untuk
memasukkan file adalah sebagai berikut :
mysql> LOAD DATA LOCAL INFILE “nama_file.txt” INFO
TABEL nama_tabel;
Sedangkan untuk menghapus data yang terdapat dalam tabel tersebut adalah
dengan perintah :
mysql> DELETE FROM nama_tabel WHERE (kondisi);
2.3.5. Membaca dan Mengatur Isi Tabel
Untuk membaca semua data dari sebuah tabel digunakan perintah SELECT
* FROM nama_tabel;. Selain dapat dibaca secara keseluruhan, juga dapat
dilakukan pembacaan data tertentu pada tabel. Untuk menampilkan data di dalam
tabel yang sesuai yang diinginkan di sebuah kolom, digunakan perintah sebagai
berikut :
mysql> SELECT * FROM nama_tabel WHERE (kondisi);
Perintah tersebut berarti program diperintahkan untuk menampilkan semua
data dari tabel yang diinginkan yang memenuhi kondisi yang dimasukkan.
Selain manampilkan data dari sebuah tabel berdasarkan karakter tertentu
yang terdapat di dalam sebuah kolom data tersebut, untuk tipe data DATE, dapat
juga dipilih data berdasarkan data tanggal yang ada. Sebagai contoh, untuk
menampilkan data yang bertanggal sebelum tanggal 17 Juli 2003 atau kalau
dituliskan dalam format DATE adalah “2003-07-17”, maka digunakan perintah
berikut :
mysql> SELECT * FROM nama_tabel WHERE tanggal <=”2003-
03-17”;
Di samping menampilkan semua data, MySQL juga memberikan
kemudahan untuk menampilkan data berdasarkan kolom yang diinginkan.
2.4 INTEGRASI ANTARA PHP DAN MYSQL
Aplikasi web yang dapat dibuat dengan menggunakan PHP dan MySQL
sangatlah bermacam – macam. Umumnya, aplikasi dengan menggunakan PHP
dapat berdiri sendiri tanpa memanfaatkan database MySQL. Akan tetapi tidak
sebaliknya jika ingin aplikasi tersebut ditampilkan melalui web.
Untuk mengintegrasikan PHP dengan sistem database MySQL, pertanyaan
pertama yang timbul adalah bagaimana mengakses database MySQL
menggunakan web atau PHP. Sebuah file yang berekstensi .php atau .php3 dapat
dieksekusi langsung lewat sebuah browser dengan menyembunyikan kode-kode
pemrograman PHP, dan menampilkan kode – kode html yang dimengerti oleh
browser. PHP inilah yang digunakan sebagai antar muka ke web atau user
sekaligus penghubung dengan database. Namun, ini terjadi jika file .php atau
.php3 diakses secara langsung dari browser. Jika file tersebut dieksekusi setelah
aksi dari sebuah form html dijalankan, PHP disini sering berfungsi sebagai
penghubung ke database dan baru menjadi antar muka ke user setelah aksi tadi
diproses dan ditampilkan.
Untuk menampilkan data dari database yang pertama harus terdapat
databasenya terlebih dahulu. Dan kemudian untuk mengakses database tersebut
dari program PHP digunakan listing sebagai berikut :
$db = mysql_connect(“server_database”, ”user_login”,
”password_login”);
Listing diatas kurang lebih berfungsi sebagai login. Yang pertama adalah ke
server database, biasanya adalah localhost. Parameter selanjutnya adalah nama
login yang digunakan untuk mengakses database. Jika pasword_login belum diisi
pada server, parameter ini dapat dikosongkan. Perintah selanjutnya adalah untuk
mengakses database tertentu :
mysql_select_db(“nama_database”,$db);
Perintah diatas berarti memilih database yang ingin digunakan. Perintah ini
setara dengan perintah USE nama_database dari server database yang
tercantum dalam variabel $db. Kemudian dapat dilakukan akses terhadap tabel
atau objek dalam database tersebut dan melakukan beberapa macam operasi
terhadap data yang ada didalamnya.
BAB III METODELOGI PENELITIAN
3.1 DESAIN SISTEM
3.1.1 Analisis Kebutuhan Sistem
Sistem yang akan dibangun merupakan metode fuzzy model Database.
Karena model yang digunakan adalah model Tahani, maka relasi yang ada dalam
basisdata masih bersifat standar, dengan penekanan fuzzy pada beberapa field
pada tabel-tabel yang ada pada basis data tersebut.
a. Kebutuhan Input
Kebutuhan input sistem digolongkan menjadi 2, yaitu input fuzzy dan
input non fuzzy.
1. Input Fuzzy, terdiri dari :
i. Data-data HP yang menyangkut : dimensi (panjang, lebar, tebal),
berat, standby, talktime, phonebook memory, voice dialing
memory, game.
ii. Batas bawah (parameter a untuk semua bentuk fungsi), batas atas
(parameter b untuk fungsi berbentuk bahu dan parameter c untuk
fungsi berbentuk segitiga), serta nilai tengah (parameter b untuk
fungsi berbentuk segitiga) untuk variabel-variabel pada bagian (i).
2. Input Non Fuzzy, terdiri dari data-data HP yang menyangkut ada
tidaknya fasilitas WAP, GPRS, Infrared, Bluetooth, EDGE, MMS,
Polyphonic, Kamera, Display (Layar), Radio, Cardslot, MP3/AAC
Player, MPEG4 player, Aplikasi Java, T3G, OS.
b. Kebutuhan Output
Output sistem berupa rekomendasi handphone sesuai dengan kriteria yang
diinginkan oleh para konsumen.
3.1.2 Perancangan Sistem
Penggunaan Diagram Arus Data di sini bertujuan untuk memudahkan
dalam melihat arus data dalam sistem.
a. Diagram Konteks Sistem
Diagram konteks sistem seperti terlihat pada gambar di bawah ini :
Ada 3 entitas luar yang berhubungan dengan sistem ini, yaitu handphone,
konsumen dan administrator. Dari handphone akan diperoleh data-data
yang berhubungan dengan handphone itu sendiri. Dari administrator akan
diperoleh input data dan batas-batas himpunan fuzzy. Sedangkan
konsumen akan mendapatkan layanan rekomendasi handphone sesuai
dengan kriteria yang diinginkannya.
b. Diagram Arus Data
Diagram arus data level 1 untuk sistem ini seperti terlihat pada gambar di
bawah Diagram arus level 1 terdiri dari 4 proses, yaitu proses pemasukan
dan editing data-data handphone, proses pemasukan dan editing batas
himpunan fuzzy, proses penghitungan derajat keanggotaan dan fire
strength, serta proses pencarian handphone. Pada proses pemasukan dan
editing data-data handphone, data-data disimpan dan diambil dari tabel
DataHP dan JenisHP. Pada proses pemasukan dan editing batas himpunan
fuzzy, data-data disimpan dan diambil dari tabel BatasHimp. Pada proses
penghitungan derajat keanggotaan dan fire strength, data-data diambil dan
disimpan kembali dalam tabel Mu. Sedangkan pada proses pencarian
handphone, konsumen menginputkan kriteria handphone yang diinginkan,
dan kemudian akan mendapatkan satu atau lebih data handphone yang
berkaitan dengan kriteria yang diinginkan tersebut beserta fire strength
yang menunjukkan seberapa besar rekomendasi yang diberikan oleh
sistem (fire strength ini memiliki nilai berkisar antara [0:1]). Nilai 1
Gambar 3.1 Diagram Konteks Sistem
HP
Sistem
Administrator
Pengguna
Data HP HP rekomendasi
Kriteria HP
Batas Himpunan Fuzzy
menunjukkan rekomendasi penuh, apabila fire strength bernilai mendekati
0, maka handphone tersebut semakin tidak direkomendasikan.
3.1.2.1 Perancangan Basisdata
Karena pada aplikasi ini menggunakan fuzzy database model Tahani,
maka struktur database yang digunakan adalah struktur database relasional. Tabel-
tabel yang digunakan dalam menyelesaikan aplikasi ini adalah :
1. Struktur Tabel
Tabel JenisHP
Tabel JenisHP digunakan untuk menyimpan data-data tentang merk
handphone.
Tabel 3.1 JenisHP Nama Field Type Data Lebar Keterangan
Kode* Varchar 7 Kode HP
Gambar 3.2 Diagram Arus Data level I
Administrator
3 Penghitungan
derajat keanggotaan
& fire strength
Tbl. Mu
Tbl. BatasHimp
Pengguna
Data
4 Pencarian
HP
Tbl. JenisHP
1 Input/edit Data HP
HP Data HP
Tbl. DataHP
Data HP Data HP
Merk HP Merk
Kriteria HP
HP direkomendasi
Derajat keanggotaan &
fire strength
Batas himp. Fuzzy Batas himp.
Fuzzy
Batas himp. Fuzzy
2 Input/edit
Batas Himp.
Batas himp. Fuzzy Administrator
Input Data
Administrator
Input Data
Administrator
Input Data
NamaHP Varchar 20 Merk HP
Tabel DataHP
Tabel DataHP digunakan untuk menyimpan data-data tentang atribut,
fasilitas serta fitur-fitur handphone dengan seri tertentu.
Tabel 3.2 DataHP Nama Field Type Data Lebar Keterangan
Type* Varchar 10 Seri (type) HP
Kode** Varchar 7 Kode HP
Harga Double - Harga HP baru
Hargas Double - Harga HP bekas
Dimensi Double - Dimensi HP
Berat Double - Berat HP
StandBy Double - Standby time HP
TalkTime Double - Talktime HP
PhoneBook Double - Phonebook memory
VoiceDialing Double - Voice Dialing
Games Double - Jumlah Games
WAP Integer 1 fasilitas WAP; ada
(1) tidak (0)
GPRS Integer 1 fasilitas GPRS; ada
(1) tidak (0)
Infrared Integer 1 fasilitas Infrared;
ada (1) tidak (0)
Bluetooth Integer 1 fasilitas Bluetooth;
ada (1) tidak (0)
MMS Integer 1 fasilitas MMS; ada
(1) tidak (0)
PolyPhonic Integer 1 fasilitas Polyphonic;
ada (1) tidak (0)
Display Integer 1 Display Layar;
warna (1) B/W (0)
Kamera Integer 1 fasilitas Kamera;
ada (1) tidak (0)
Panjang Float - Panjang HP
Lebar Float - Lebar HP
Tebal Float - Tebal HP
Radio Integer 1 fasilitas Radio; ada
(1) tidak (0)
Edge Integer 1 fasilitas Edge; ada
(1) tidak (0)
Cardslot Integer 1 fasilitas Cardslot;
ada (1) tidak (0)
MP3 Integer 1 fasilitas MP3
player; ada (1)
tidak (0)
MPEG4 Integer 1 fasilitas video
player; ada (1)
tidak (0)
Appjava Integer 1 fasilitas App. Java;
ada (1) tidak (0)
T3G Integer 1 fasilitas 3G; ada (1)
tidak (0)
OS Integer 1 fasilitas OS; ada (1)
tidak (0)
Tabel BatasHimp
Tabel BatasHimp digunakan untuk menyimpan data-data batas
himpunan fuzzy.
Tabel 3.3 BatasHimp Nama Field Type Data Lebar Keterangan
Batas* String 15 Nama batas himp.
Fuzzy
Nilai Real 5 Nilai batas himp.
Fuzzy
Tabel Mu
Tabel Mu digunakan untuk menyimpan data-data tentang derajat
keanggotaan suatu seri (tipe) handphone tertentu pada himpunan fuzzy
tertentu.
Tabel 3.4 Mu Nama Field Type Data Leba Keterangan
r
Type* Varchar 10 Seri (type) HP
Msize1 Float - mu untuk ukuran di
himp. KECIL
Msize2 Float - mu untuk ukuran di
himp. NORMAL
Msize3 Float - mu untuk ukuran di
himp. BESAR
Mberat1 Float - mu untuk berat di
himp. RINGAN
Mberat2 Float - mu untuk berat di
himp. NORMAL
Mberat3 Float - mu untuk berat di
himp. BERAT
Mstandby1 Float - muuntuk standby di
himp. SEBENTAR
Mstandby2 Float - mu untuk standby di
himp. NORMAL
Mstandby3 Float - mu untuk standby di
himp. LAMA
Mtalktime1 Float - mu untuk talktime di
himp. SEBENTAR
Mtalktime2 Float - mu untuk talktime di
himp. NORMAL
Mtalktime3 Float - mu untuk talktime di
himp. LAMA
Mphonebook
1
Float - mu untuk phonebook
di himp. SEDIKIT
Mphonebook
2
Float - mu untuk phonebook
di himp. SEDANG
Mphonebook
3
Float - mu untuk phonebook
di himp. BANYAK
Mvoicedial1 Float - mu untuk voicedialing
di himp. SEDIKIT
Mvoicedial2 Float - mu untuk voicedialing
di himp. SEDANG
Mvoicedial3 Float - mu untuk voicedialing
di himp. BANYAK
Mgames1 Float - mu untuk games di
himp. SEDIKIT
Mgames2 Float - mu untuk games di
himp. SEDANG
Mgames3 Float - mu untuk games di
himp. BANYAK
MWAP Integer mu crisp untuk ada
fasilitas WAP
MGPRS Integer 1 mu crisp untuk ada
fasilitas GPRS
Minfrared Integer 1 mu crisp untuk ada
fasilitas Infrared
MBluetooth Integer 1 mu crisp untuk ada
fasilitas Bluetooth
MMMS Integer 1 mu crisp untuk ada
fasilitas MMS
MPolyphonic Integer 1 mu crisp untuk ada
fasilitas Polyphonic
MKamera Integer 1 mu crisp untuk ada
fasilitas Kamera
Mdisplay Integer 1 mu crisp untuk
fasilitas Display
Mradio Integer 1 mu crisp untuk ada
fasilitas Radio
Medge Integer 1 mu crisp untuk ada
fasilitas EDGE
Mcardslot Integer 1 mu crisp untuk ada
fasilitas Cardslot
Mmp3 Integer 1 mu crisp untuk ada
fasilitas MP3 player
Mmpeg4 Integer 1 mu crisp untuk ada
fasilitas Video player
Mappjava Integer 1 mu crisp untuk ada
fasilitas Aplikasi Java
Mt3g Integer 1 mu crisp untuk ada
fasilitas 3G
Mos Integer 1 Mu crisp untuk ada
fasilitas O S
Mu Integer 1 Fire strength untuk
type yang
bersangkutan
Tabel Admin
Tabel Admin digunakan untuk menyimpan data user yang nanti
berfungsi untuk identifikasi saat login.
Tabel 3.5 Admin Nama Field Type Data Lebar Keterangan
Id* Integer 11 Id
UserName Varchar 20 Nama User
Password Varchar 20 Password
Tabel p_choices
Tabel p_choices digunakan untuk menyimpan data pilihan polling
serta jumlah vote dari user.
.
Tabel 3.6 p_choices Nama Field Type Data Lebar Keterangan
Id* Integer 10 Id
Answer Varchar 100 Pilihan polling
Vote bigint 20 Jumlah vote user
Tabel p_ip
Tabel p_ip digunakan untuk menyimpan data no ip dari para pemilih.
Tabel 3.7 p_ip Nama Field Type Data Lebar Keterangan
Id* Integer 10 Id
Ip Varchar 40 Nomor ip pemilih
*) Kunci Primer **) Kunci Tamu
2. Relasi Antar Tabel
Tabel JenisHP berelasi dengan tabel DataHP dengan relasi 1:M (one to many)
pada field Kode. Sedangkan Tabel DataHP berelasi dengan tabel Mu dengan
relasi 1:1 (one to one) pada field Type. Tabel BatasHimp, Admin, p_choices dan
p_ip tidak berelasi dengan tabel manapun.
Gambar 3.3 Relasi antar Tabel
3.1.2.2 Fungsi Keanggotaan
Data-data yang ada berupa 300 lebih seri HP dari 5 merk (Nokia, Sony
Ericsson, Motorola, Samsung dan Siemens). Pada proyek ini, setiap variabel fuzzy
Kode*
NamaHP
Batas*
Nilai
Type*
Kode ** Harga Hargas Dimensi Berat Standby TalkTime Phonebook VoiceDialing Games WAP GPRS Infrared MMS Polyphonic Kamera Panjang Lebar Tebal Radio Edge Cardslot MP3 MPEG4 Appjava T3G OS
Tabel JenisHP
Tabel BatasHimp
Tabel DataHP Type* Msize1 Msize2 Msize3 Mberat1 Mberat2 Mberat3 Mstandby1 Mstandby2 Mstandby3 Mtalktime1 Mtalktime2 Mtalktime3 Mphonebook1 Mphonebook2 Mphonebook3 Mvoicedialing1 Mvoicedialing2 Mvoicedialing3 Mgames1 Mgames2 Mgames3 Mwap Mgprs Minfra Mmms Mpolyphonic Mkamera Mradio Medge Mcardslot Mmp3 Mpeg4 Mappjava Mt3g MOS Mu
Tabel Mu
Keterangan :
* : kunci primer ** : kunci tamu : relasi 1 to 1 : relasi 1 to M
Id*
UserName
Password
Tabel Admin
Id* Answer
Vote
Tabel p_choices
Id*
IP
Tabel p_ip
menggunakan fungsi keanggotaan bahu dan segitiga sebagai pendekatan untuk
memperoleh derajat keanggotaan suatu nilai dalam suatu himpunan fuzzy.
a. Variabel Dimensi
Variabel dimensi mempunyai 3 himpunan fuzzy, yaitu : KECIL,
SEDANG dan BESAR. Himpunan KECIL dan BESAR menggunakan
pendekatan fungsi keanggotaan yang berbentuk bahu, sedangkan
himpunan SEDANG menggunakan pendekatan fungsi keanggotaan
berbentuk segitiga (Gambar 3.4).
Gambar 3.4 Fungsi Keanggotaan Pada Variabel Dimensi
Fungsi Keanggotaan :
µ KECIL [x] =
90;0
9060;30
9060;1
x
xxx
µ SEDANG [x] =
170120;50
170
12070;50
7017070;0
xx
xxxataux
µ BESAR [x] =
200;1
200150;50150
150;0
x
xxx
b. Variabel Berat
Variabel berat mempunyai 3 himpunan fuzzy, yaitu : RINGAN, SEDANG
dan BERAT. Himpunan RINGAN dan BERAT menggunakan pendekatan
fungsi keanggotaan yang berbentuk bahu, sedangkan himpunan SEDANG
120 200
KECIL SEDANG BESAR
Dimensi (x1000mm3) 170 150 70 90
1
µ [x]
0 60
menggunakan pendekatan fungsi keanggotaan berbentuk segitiga (Gambar
3.5).
Gambar 3.5 Fungsi Keanggotaan Pada Variabel Berat
Fungsi Keanggotaan :
µ RINGAN [x] =
90;0
9070;20
9070;1
x
xxx
µ SEDANG [x] =
150100;50
150
10080;20
8015080;0
xx
xxxataux
µ BESAR [x] =
200;1
200120;80120
120;0
x
xxx
c. Variabel Standby Time
Variabel standby mempunyai 3 himpunan fuzzy, yaitu : SEBENTAR,
SEDANG dan LAMA. Himpunan SEBENTAR dan LAMA menggunakan
pendekatan fungsi keanggotaan yang berbentuk bahu, sedangkan
himpunan SEDANG menggunakan pendekatan fungsi keanggotaan
berbentuk segitiga (Gambar 3.6).
70 100 200
RINGAN SEDANG BERAT
Berat (gram) 150 120 90 80
1
µ [x]
0
Gambar 3.6 Fungsi Keanggotaan Pada Variabel Standby Time
Fungsi Keanggotaan :
µ SEBENTAR [x] =
180;0
180100;80
180100;1
x
xxx
µ SEDANG [x] =
300200;100
300
200110;90110
300110;0
xx
xxxataux
µ LAMA [x] =
360;1
360240;120
240240;0
x
xxx
d. Variabel Talktime
Variabel talktime mempunyai 3 himpunan fuzzy, yaitu : SEBENTAR,
SEDANG dan LAMA. Himpunan SEBENTAR dan LAMA menggunakan
pendekatan fungsi keanggotaan yang berbentuk bahu, sedangkan
himpunan SEDANG menggunakan pendekatan fungsi keanggotaan
berbentuk segitiga (Gambar 3.7).
Gambar 3.7 Fungsi Keanggotaan Pada Variabel Talktime
100 400 800
SEBENTAR NORMAL LAMA
Talktime (menit) 110 350 450 750
100 200 360
SEBENTAR NORMAL LAMA
Standby (jam) 240 180 110 300
1
µ [x]
0
1
µ [x]
0
Fungsi Keanggotaan :
µ SEBENTAR [x] =
350;0
350100;250
350100;1
x
xxx
µ SEDANG [x] =
750400;350
750
400110;290
110750110;0
xx
xxxataux
µ LAMA [x] =
800;1
800450;350
450450;0
x
xxx
e. Variabel Phonebook Memory
Variabel phonebook mempunyai 3 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 3.8).
Gambar 3.8 Fungsi Keanggotaan Pada Variabel Phonebook
Fungsi Keanggotaan :
100 400 1000
SEDIKIT SEDANG BANYAK
Phonebook memory 125 300 500 900
1
µ [x]
0
µ SEDIKIT [x] =
300;0
300100;200
300100;1
x
xxx
µ SEDANG [x] =
900400;500
900
400125;275
125900125;0
xx
xxxataux
µ BANYAK [x] =
1000;1
1000500;500
500500;0
x
xxx
f. Variabel Voice Dialing Memory
Variabel voice dialing mempunyai 3 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 3.9).
Gambar 3.9 Fungsi Keanggotaan Pada Variabel Voice Dialing
Fungsi Keanggotaan :
µ SEDIKIT [x] =
300;0
3020;10
3020;1
x
xxx
40 150
SEDIKIT SEDANG BANYA
Voice Dialing memory 20 25 30 50 100
µ [x]
1
0
µ SEDANG [x] =
10040;60
100
4025;15
2510025;0
xx
xxxataux
µ BANYAK [x] =
150;1
15050;100
5050;0
x
xxx
g. Variabel Games
Variabel games mempunyai 3 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 3.10).
Gambar 3.10 Fungsi Keanggotaan Pada Variabel Games
Fungsi Keanggotaan :
µ SEDIKIT [x] =
3;0
31;2
31;1
x
xxx
µ SEDANG [x] =
64;2
6
42;2
262;0
xx
xxxataux
4 7
SEDIKIT SEDANG BANYAK
Jumlah games
3 5 6 2 1
1
µ [x]
0
µ BANYAK [x] =
7;1
75;2
55;0
x
xxx
Catatan : Nilai dari masing-masing variabel dapat diubah sesuai dengan
kebutuhan dan perubahan nilai harus sesuai dengan aturan fuzzy.
Sedangkan untuk input non fuzzy kita tidak perlu menentukan fungsi
keanggotaannya, kita bisa menggunakan rumus himpunan crisp, dimana jika
fasilitas dari input non fuzzy tersebut tersedia (ada) maka kita inisialisasi dengan
nilai 1, jika tidak maka kita inisialisasi dengan nilai 0.
BAB IV PEMBAHASAN DAN ANALISA
4.1. PEMBAHASAN
Berikut ini adalah hasil program yang dijalankan pada komputer dengan
sistem operasi Win XP. Menu pada tugas ini dibagi menjadi 2 yaitu menu untuk
user dan menu untuk admin. Menu untuk user ada 6 yaitu Home, News, Harga
Baru, Harga Bekas, Aksesori, Polling, sedangkan menu untuk admin ada 6 yaitu
Login, Input Data, Cari Data, Ubah Batas, Edit Poll dan Logout. Untuk menu user
tampilan awal adalah tampilan halaman menu Home. Halaman ini digunakan
sebagai halaman informasi mengenai layanan-layanan yang terdapat pada
handphone seperti GPRS, SIM, IMEI dll. Berikut ini tampilannya :
Gambar 4.1 Halaman Home
4.2. Contoh kasus :
User : Indra
INPUT FUZZY
NO. KRITERIA YANG DIINGINKAN PARAMETER
1. Harga Rp. 1000000 – Rp.4000000
2. Merk Sony Eriksson, Siemens, Samsung, Nokia
3. Dimensi Kecil
4. Berat Bukan kriteria
5. Standby Bukan kriteria
6. Talktime Bukan Kriteria
7. Phonebook Bukan Kriteria
8. Voice Dialling Bukan kriteria
9. Games Bukan Kriteria
INPUT NON FUZZY
10. Radio
11. Video Player
12. Aplikasi Java
13. Card slot
14. Teknologi 3G
15. Mp3 Player
Dalam tabel diatas user menginputkan beberapa kriteria, sesuai
tampilannya dalam aplikasi adalah sebagai berikut :
Gambar 4.2. Halaman Data Harga Baru
Dan hasil rekomendasinya adalah sebagai berikut, dimana nilai rekomendasi dari
tipe HP Nokia 7390 adalah 0,321. Dengan tampilan sebagai berikut :
Gambar 4.3. Halaman Data Handphone Baru yang direkomendasi
4.3. Fungsi Keanggotaan
Berikut akan dijelaskan mengenai langkah-langkah dari sistem
untuk mengubah data handphone mentah menjadi data input fuzzy, yang
diperlukan saat melakukan fuzzifikasi adalah data mentah (input data asli),
sebagai contoh kami menggunakan data berat, kemudian batas himpunan dari data
tersebut (sesuai dengan rumus yang telah digambarkan pada fungsi keanggotaan
berat di bawah ini, yaitu MuRINGAN, MuSEDANG, MuBERAT)
µ RINGAN [x] =
90;0
9070;20
9070;1
x
xxx
µ SEDANG [x] =
150100;50
150
10080;20
8015080;0
xx
xxxataux
µ BESAR [x] =
200;1
200120;80120
120;0
x
xxx
Dimana pada data berat yang menjadi batasan untuk MuRINGAN nilai 70
dan 90, nilai 70 digunakan sebagai batas puncak, sedangkan nilai 90 digunakan
sebagai batas atas. Jika nilai masukan data tersebut lebih kecil atau sama dengan
70 maka data tersebut mempunyai nilai fungsi keanggotaan 1, jika nilai masukan
tersebut lebih besar sama dengan 70 dan lebih kecil sama dengan 90 maka akan
dilakukan perhitungan dengan rumus 20
90 x untuk mendapatkan nilai fungsi
keanggotaannya, dan jika nilai masukan tersebut lebih besar atau sama dengan 90
maka nilai fungsi keanggotaannya adalah 0.
Untuk MuSEDANG mempunyai nilai batasan yaitu 80, 100 dan 150. Nilai 80
digunakan sebagai batas bawah, nilai 100 digunakan sebagai batas puncak
sedangkan nilai 150 digunakan sebagai batas atas. Jika nilai masukan data tersebut
lebih kecil sama dengan 80 dan lebih besar sama dengan 150 maka data tersebut
mempunyai nilai fungsi keanggotaan 0, jika nilai masukan tersebut lebih besar
sama dengan 80 dan lebih kecil sama dengan 100 maka akan dilakukan
perhitungan dengan rumus 20
80x untuk mendapatkan nilai fungsi keanggotaannya,
dan jika nilai masukan tersebut lebih besar sama dengan 100 dan lebih kecil sama
dengan 150 maka akan dilakukan perhitungan dengan rumus 50
150 x untuk
mendapatkan nilai fungsi keanggotaannya.
Sedangkan untuk MuBERAT mempunyai nilai batasan yaitu 120 dan 200.
Nilai 120 digunakan sebagai batas bawah sedangkan nilai 200 digunakan sebagai
batas puncak. Jika nilai masukan data tersebut lebih kecil sama dengan 120 maka
data tersebut mempunyai nilai fungsi keanggotaan 0, jika nilai masukan tersebut
lebih besar sama dengan 120 dan lebih kecil sama dengan 200 maka akan
dilakukan perhitungan dengan rumus 80120x untuk mendapatkan nilai fungsi
keanggotaannya, dan jika nilai masukan tersebut lebih besar sama dengan 200
nilai fungsi keanggotaannya adalah 1.
Sesuai dengan penjelasan diatas maka kami lakukan implementasi ke
dalam script program berikut script program dari masing-masing fungsi
keanggotaan :
//---Hitung Mu Ringan---//
if($berat<=70)
$mberat1=1;
elseif($berat>=70 && $berat<=90)
$mberat1=(90-$berat)/(20);
else
$mberat1=0;
//---Hitung Mu Sedang---//
if($berat>=80 && $berat<=100)
$mberat2=($berat-80)/(100);
elseif($berat>=100 && $berat<=150)
$mberat2=(150-$berat)/(50);
else
$mberat2=0;
//---Hitung Mu Berat---//
if($berat<=120)
$mberat3=0;
elseif($berat>=120 && $berat<=200)
$mberat3=($berat-120)/(80);
else
$mberat3=1;
keterangan : $berat=nilai input mentah, $mberat1=MuRINGAN,
$mberat2=MuSEDANG, $mberat3=MuBERAT
Proses di atas dilakukan pada semua input sistem fuzzy (dimensi, berat,
standby, talktime, phonebook, voicedial, dan games. Setelah semua data
dimasukkan baik itu semua input data mentah (dimensi, berat sampai OS) ke
dalam tabel DataHP, input data fuzzy dan non fuzzy (Mdimensi1, Mdimensi2,
Mdimensi3, sampai MOS) ke dalam Tabel Mu, input merk HP ke dalam Tabel
JenisHP dan input batas himpunan ke dalam tabel BatasHimp, maka sistem siap
untuk diimplementasikan ke dalam suatu aplikasi. Berikut akan kami jelaskan
mengenai alur aplikasi sistem yang digunakan untuk memasukkan kriteria hingga
memperoleh data rekomendasi yang diberikan oleh sistem. Untuk itu kami
menyiapkan 4 buah file yaitu harga.php, harga_s.php, select.php dan select_s.php.
Untuk file harga.php dan select.php merupakan file yang digunakan untuk
memasukkan kriteria dan memproses data rekomendasi pada handphone baru.
Kemudian untuk file harga_s.php dan select_s.php merupakan file yang
digunakan untuk memasukkan kriteria dan memproses data rekomendasi pada
handphone bekas. Berikut penjelasan dari masing-masing file di atas :
Harga.php adalah file ini digunakan untuk menampilkan daftar kriteria hp
baru yang nanti bisa dipilih oleh user sesuai dengan keinginannya. Dengan
menggunakan file ini maka user dapat dengan mudah memasukkan kriteria yang
mereka inginkan, tampilan pada file ini dibuat seefektif mungkin sehingga user
yang awanpun dapat menggunakannya. Berikut gambaran dari file harga.php
Gambar 3.11 Harga.php
Langkah awal yang harus dilakukan user adalah memasukkan range data
harga. Kemudian baru memilih merk apa yang mereka inginkan ada 5 kriteria
yaitu : Nokia, Motorola, Samsung, Sony Ericsson, Siemens. Dalam memilih merk
mereka dapat memilih merk lebih dari satu sekaligus. Langkah selanjutnya adalah
memilih kriteria yang lain, misal dimensi disini telah disiapkan 4 pilihan yaitu
kecil, sedang, besar dan bukan kriteria. Pilihan kecil, sedang dan besar digunakan
jika user mempunyai kriteria prioritas tersendiri terhadap pilihan tersebut, namun
jika user tidak mempunyai prioritas terhadap pilihan ini maka user bisa memilih
pilihan bukan kriteria. Langkah terakhir jika user telah memasukkan semua data
sesuai dengan kriteria yang diinginkannya maka user tingga meng-klik submit,
maka semua kriteria yang telah mereka masukkan akan ditangkap dan diproses
dalam file select.php. Di dalam file ini semua data masukkan kriteria diolah
dengan menggunakan perintah SQL untuk menghasilkan data handphone
rekomendasi. Berikut adalah scriptnya :
//---proses untuk menangkap hasil masukan dari file harga.php dan
menginisialisasinya ke dalam variabel2---//
$hrg1=$_POST['hrg1'];$hrg2=$_POST['hrg2'];
$nokia=$_POST["nokia"];$moto=$_POST["moto"];$siemens=$_POST["siemens
"];
$samsung=$_POST["samsung"];$soner=$_POST["soner"];
if ($nokia=="N") {$kode_n="a.kode like 'N%'";}else {$kode_n="a.kode like ''";}
if ($moto=="M") {$kode_m="a.kode like 'M%'";}else {$kode_m="a.kode like
''";}
if ($siemens=="SI") {$kode_si="a.kode like 'SI%'";}else {$kode_si="a.kode like
''";}
if ($samsung=="SM") {$kode_sm="a.kode like 'SM%'";}else{$kode_sm="a.kode
like ''";}
if ($soner=="SE") {$kode_se="a.kode like 'SE%'";}else {$kode_se="a.kode like
''";}
if($_POST["dimensi"]=="m"){$dimensi="";}else{$dimensi=" "."b.".$dimensi;}
if($_POST["berat"]=="m"){$berat="";}else{$berat=" "."b.".$berat;}
if($_POST["standby"]=="m"){$standby="";}else{$standby=" "."b.".$standby;}
if($_POST["talktime"]=="m"){$talktime="";}else{$talktime=" "."b.".$talktime;}
if($_POST["pbook"]=="m"){$pbook="";}else{$pbook=""."b.".$pbook;}
if($_POST["voice"]=="m"){$voice="";}else{$voice=" “."b.".$voice;}
if($_POST["games"]=="m"){$games="";}else{$games=" "."b.".$games;}
if($_POST["wap"]=="a"){$wap=""."b."."mwap";$wap1=1;}
else{$wap="";$wap1="b."."mwap";}
if($_POST["gprs"]=="a"){$gprs=" "."b."."mgprs";$gprs1=1;}
else{$gprs="";$gprs1="b."."mgprs";}
if($_POST["infra"]=="a"){$infra=""."b."."minfrared";$infra1=
1;}else{$infra="";$infra1="b."."minfrared";}
if($_POST["blue"]=="a"){$blue=""."b."."mbluetooth";$blue1=1; }
else{$blue="";$blue1="b."."mbluetooth";}
if($_POST["mms"]=="a"){$mms=""."b."."mmms";$mms1=1;}
else{$mms="";$mms1="b."."mmms";}
if($_POST["poly"]=="a"){$poly=""."b."."mpolyphonic";$poly1=1;}
else{$poly="";$poly1="b."."mpolyphonic";}
if($_POST["kamera"]=="a"){$kamera=""."b."."mkamera";$kamera1=1;}
else{$kamera="";$kamera1="b."."mkamera";}
if($_POST["display"]=="a"){$display=""."b."."mdisplay";$display1=1;}
else{$display="";$display1="b."."mdisplay";}
if($_POST["radio"]=="a"){$radio=""."b."."mradio";$radio1=1;}
else{$radio="";$radio1="b."."mradio";}
if($_POST["edge"]=="a"){$edge=""."b."."medge";$edge1=1;}
else{$edge="";$edge1="b."."medge";}
if($_POST["cardslot"]=="a"){$cardslot=""."b."."mcardslot";$cardslot1=1;}
else{$cardslot="";$cardslot1="b."."mcardslot";}
if($_POST["mp3"]=="a"){$mp3=""."b."."mmp3";$mp31=1;}
else{$mp3="";$mp31="b."."mmp3";}
if($_POST["mpeg4"]=="a"){$mpeg4=””."b."."mmpeg4";$mpeg41=1;}
else{$mpeg4="";$mpeg41="b."."mmpeg4";}
if($_POST["appjava"]=="a"){$appjava="“."b."."mappjava";$appjava1=1;}
else{$appjava="";$appjava1="b."."mappjava";}
if($_POST["t3g"]=="a"){$t3g=""."b."."mt3g";$t3g1=1;}
else{$t3g="";$t3g1="b."."mt3g";}
if($_POST["os"]=="a"){$os=""."b."."mos";$os1=1;}
else{$os="";$os1="b."."mos";}
//---variabel untuk menampung kriteria masukan user---//
$gab=("$dimensi"."$berat"."$standby"."$talktime"."$pbook"."$voice"."$games"."
$wap"."$gprs"."$infra"."$blue"."$mms"."$poly"."$kamera"."$display"."$radio"."
$edge"."$cardslot"."$mp3"."$mpeg4"."$appjava"."$t3g"."$os");
$im=implode(",",explode(" ",$gab));
//---koneksi ke database---//
$connection=mysql_connect("localhost","root","")or die("Server database tidak
tersambung");
$db=mysql_select_db("handphone",$connection) or die ("Database tidak
ditemukan");
//--Proses untuk memperoleh fire strength untuk data rekomendasi handphone--//
if(($nokia!='' || $moto!='' || $siemens!='' || $samsung!='' || $soner!='') && $im!=''){
$select_mu="select b.tipe as Tipe_HP, c.namahp as Merk_HP, a.harga as
Hrg_Baru$im, b.mu as Rekomendasi from datahp a, mu b, jenishp c where
a.kode=c.kode AND a.tipe=b.tipe AND (a.harga between $hrg1 and $hrg2)
AND b.mdisplay=$display1 AND b.mwap=$wap1 AND b.mgprs=$gprs1 AND
b.minfrared=$infra1 AND b.mbluetooth=$blue1 AND b.mmms= $mms1 AND
b.mpolyphonic=$poly1 AND b.mkamera=$kamera1 AND b.mradio=$radio1
AND b.medge=$edge1 AND b.mcardslot=$cardslot1 AND b.mmp3=$mp31
AND b.mmpeg4=$mpeg41 AND b.mappjava= $appjava1 AND b.mt3g= $t3g1
AND b.mos=$os1 AND ($kode_n OR $kode_m OR $kode_si OR $kode_sm
OR $kode_se) order by b.mu asc";
}
Gambar 3.12 Select.php
Sedangkan untuk mencari data handphone bekas kita menggunakan file
harga_s.php dan select.php. Untuk proses pencariannya hampir sama dengan
proses pencarian pada handphone baru namun yang membedakan adalah nama
textbox yang berada pada file harga.php yang bernama hrg diubah menjadi hrgs
pada file harga_s.php, sedangkan untuk memperoleh nilai data rekomendasi pada
file select_s.php digunakan script sebagai berikut :
//--proses memperoleh data rekomendasi untuk harga handphone bekas--//
$select_mu="select b.tipe, c.namahp, a.hargas$im, b.mu from datahp a, mu b,
jenishp c where a.kode=c.kode AND a.tipe=b.tipe AND (a.hargas between
$hrgs1 and $hrgs2) AND b.mdisplay=$display1 AND b.mwap=$wap1 AND
b.mgprs=$gprs1 AND b.minfrared=$infra1 AND b.mbluetooth=$blue1 AND
b.mmms= $mms1 AND b.mpolyphonic=$poly1 AND b.mkamera=$kamera1
AND b.mradio=$radio1 AND b.medge=$edge1 AND b.mcardslot=$cardslot1
AND b.mmp3=$mp31 AND b.mmpeg4=$mpeg41 AND b.mappjava=
$appjava1 AND b.mt3g= $t3g1 AND b.mos=$os1 AND ($kode_n OR $kode_m
OR $kode_si OR $kode_sm OR $kode_se) order by b.mu asc";
Yang membedakan script pada select.php dan select_s.php adalah variabel harga
yang digunakan untuk masukan pada perintah SQL, di select.php variabel yang
digunakan adalah $hrg1 dan $hrg2 (range data harga handphone baru), sedangkan
untuk select_s.php digunakan variabel $hrgs1 dan hrgs2 (range data harga
handphone bekas) dan pada select.php nama_field yang digunakan untuk
memperoleh data harga adalah field harga, sedangkan pada select_s.php yang
digunakan adalah field hargas.
BAB 5
PENUTUP
5.1 KESIMPULAN
Dari hasil analisa pada bab sebelumnya dapat diambil kesimpulan sebagai
berikut :
Fuzzy Tahani sebagai metode sistem Pendukung Keputusan yang mampu
memberikan rekomendasi Handphone kepada user yang sesuai degan
keinginan user.
Proses merancang metoe Fuzzy tahani untuk rekomandasi Handphone
dikombinasikan dengan sistem data base yang sesuai dengan kriteria
Handphone dilapangan.
5.2 SARAN
Saran – saran yang dapat diambil dari kesimpulan di atas adalah sebagai
berikut :
User sebaiknya sebelum memilih kriteria yang akan dimasukkan
mempunyai suatu kriteria prioritas sehingga memudahkan sistem dalam
memberikan data handphone rekomendasi.
Dilakukan penambahan data handphone, karena untuk sementara data
handphone yang dimasukkan hanya dari 5 merk saja yaitu Nokia,
Motorola, Siemens, Samsung dan Sony Ericsson sebagai pertimba-ngan
karena 5 merk tersebut yang banyak beredar di pasaran. Namun sebaiknya
ditambahkan merk data handphone selain itu sehingga user mempunyai
banyak pilihan sebelum memilih handphone yang akan dibeli.
Selain penambahan data handphone, sebaiknya ada penambahan kriteria yang
belum tercantumkan atau adanya pembagian kriteria yang lebih jelas sehingga
user lebih mudah dalam memasukkan kriteria yang mereka inginkan.
DAFTAR PUSTAKA
Kusumadewi, Sri 2010. Aplikasi Logika Fuzzy Untuk Pendukung Keputusan
Yogyakarta : Graha Ilmu
Sutarman, 2003. membangun aplikasi web dengan php dan mysql
Yogyakarta : Graha Ilmu
Kurniawan, Arif Dwi 2008. Pemilihan SMK Menggunakan Fuzzy Query Berbasis
Web. Surabaya
Referensi bahasa pemrograman PHP : http://www.php.net
Referensi bahasa pemrograman PHP : http://www.scripts.com
Referensi bahasa pemrograman PHP : http://www.ilmukom puter.com
Referensi database MySQL : http://www.mysql.com/
Referensi data handphone : http://www.studiohp.com
Referensi data handphone : http://www.cellulardiary.com
Referensi data handphone : http://www.ponseljakarta.com