penerapan fuzzy database untuk rekomendasi pembelian laptop

48
PENERAPAN FUZZY DATABASE UNTUK REKOMENDASI PEMBELIAN LAPTOP TEKNIK INFORMATIKA UNIVERSITAS MUHAMMADIYAH PURWOKERTO Nama : Abdul Gani Putra Suratma NIM : 0803040050 http://ganip.wordpress.com/ http://www.facebook.com/csharpid

Upload: abdul-gani-putra-suratma

Post on 20-Apr-2015

162 views

Category:

Documents


12 download

TRANSCRIPT

Page 1: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

PENERAPAN FUZZY DATABASE UNTUK REKOMENDASI PEMBELIAN LAPTOP

TEKNIK INFORMATIKA

UNIVERSITAS MUHAMMADIYAH PURWOKERTO

Nama : Abdul Gani Putra Suratma

NIM : 0803040050

http://ganip.wordpress.com/

http://www.facebook.com/csharpid

Page 2: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

Aplikasi fuzzy database

Menu login

Menu

Page 3: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

Data laptop ALL

Data pencarian OR

Page 4: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

Data management laptop

Page 5: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

TABEL

Pembuatan tabel menggunakan SQL server

Tabel 1. Login

Nama Filed Tipe Data Keterangan

usernamae varchar(50) Nama Pengguna

password varchar(50) Password

Tabel 2. M_laptop

Nama Filed Tipe Data Keterangan

laptop_id* varchar(255) Kode laptop (new id())

jenis_id int Foreign Key jenis_id

merek_id int Foreign Key merek_id

nama_laptop varchar(255) Nama laptop

harga float input fuzzy

processor float input fuzzy

harddisk float input fuzzy

memory float input fuzzy

lcd float input fuzzy

berat float input fuzzy

picture image Gambar Laptop

detail text Detail laptop

Ket: * Primary Key

Tabel 3. L_jenis

Nama Filed Tipe Data Keterangan

jenis_id* int Kode jenis (Identity)

jenis varchar(50) Nama jenis laptop

Ket: * Primary Key

Page 6: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

Tabel 4. L_merek

Nama Filed Tipe Data Keterangan

merek_id* int Kode merk (Identity)

merek varchar(50) Nama merk laptop

Ket: * Primary Key

Tabel 5. Himpunan

Nama Filed Tipe Data Keterangan

variabel varchar(50) Nama variabel

himpunan varchar(50) Nama himpunan

fungsi varchar(50) Nama fungsi kurva

alfa float Batas ()

beta float Batas ()

pusatY float Batas (pusat )

gamma float Batas ()

betane float Batas (dan)

Ket: * Primary Key

beta ((alfa+gamma)/2)

pusatY ((alfa+gamma)/2)

Betane ((alfa+gamma)/2) - (alfa+((alfa+gamma)/2))/2

Page 7: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

LAMPIRAN

Lampiran 1. Script query view penyusutan CREATE VIEW dbo.penyusutan (

variabel,

himpunan,

laptop_id,

nama_laptop,

miu

)

AS

--harga

SELECT

a.variabel,

a.himpunan,

b.laptop_id,

b.nama_laptop,

miu=

CASE

WHEN (b.harga <= a.alfa) THEN 1

WHEN (a.alfa <= b.harga AND b.harga <= a.beta)

THEN 1 - 2*((b.harga - a.alfa)/(a.gamma - a.alfa) * (b.harga -

a.alfa)/(a.gamma - a.alfa))

WHEN (a.beta <= b.harga AND b.harga <= a.gamma)

THEN 2*((a.gamma - b.harga)/(a.gamma-a.alfa)*(a.gamma -

b.harga)/(a.gamma - a.alfa))

WHEN b.harga >= a.gamma THEN 0

END

FROM Himpunan a, M_Laptop b

WHERE (a.variabel = 'harga' AND a.himpunan ='murah' AND a.fungsi

='penyusutan')

Page 8: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

UNION

--processor

SELECT

a.variabel,

a.himpunan,

b.laptop_id,

b.nama_laptop,

miu=

CASE

WHEN (b.processor <= a.alfa) THEN 1

WHEN (a.alfa <= b.processor AND b.processor <= a.beta)

THEN 1 - 2*((b.processor - a.alfa)/(a.gamma - a.alfa) * (b.processor -

a.alfa)/(a.gamma - a.alfa))

WHEN (a.beta <= b.processor AND b.processor <= a.gamma)

THEN 2*((a.gamma - b.processor)/(a.gamma - a.alfa)*(a.gamma-

b.processor)/(a.gamma - a.alfa))

WHEN b.processor >= a.gamma THEN 0

END

FROM Himpunan a, M_Laptop b

WHERE (a.variabel = 'processor' AND a.himpunan ='rendah' AND a.fungsi

='penyusutan')

UNION

--harddisk

SELECT

a.variabel,

a.himpunan,

b.laptop_id,

b.nama_laptop,

miu=

CASE

Page 9: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

WHEN (b.harddisk <= a.alfa) THEN 1

WHEN (a.alfa <= b.harddisk AND b.harddisk <= a.beta)

THEN 1 - 2*((b.harddisk - a.alfa)/(a.gamma - a.alfa) * (b.harddisk -

a.alfa)/(a.gamma - a.alfa))

WHEN (a.beta <= b.harddisk AND b.harddisk <= a.gamma)

THEN 2*((a.gamma - b.harddisk)/(a.gamma - a.alfa)*(a.gamma-

b.harddisk)/(a.gamma - a.alfa))

WHEN b.harddisk >= a.gamma THEN 0

END

FROM Himpunan a, M_Laptop b

WHERE (a.variabel = 'harddisk' AND a.himpunan ='kecil' AND a.fungsi

='penyusutan')

UNION

--memory

SELECT

a.variabel,

a.himpunan,

b.laptop_id,

b.nama_laptop,

miu=

CASE

WHEN (b.memory <= a.alfa) THEN 1

WHEN (a.alfa <= b.memory AND b.memory <= a.beta)

THEN 1 - 2*((b.memory - a.alfa)/(a.gamma - a.alfa) * (b.memory -

a.alfa)/(a.gamma - a.alfa))

WHEN (a.beta <= b.memory AND b.memory <= a.gamma)

THEN 2*((a.gamma - b.memory)/(a.gamma - a.alfa)*(a.gamma-

b.memory)/(a.gamma - a.alfa))

WHEN b.memory >= a.gamma THEN 0

END

FROM Himpunan a, M_Laptop b

Page 10: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

WHERE (a.variabel = 'memory' AND a.himpunan ='kecil' AND a.fungsi

='penyusutan')

UNION

--lcd

SELECT

a.variabel,

a.himpunan,

b.laptop_id,

b.nama_laptop,

miu=

CASE

WHEN (b.lcd <= a.alfa) THEN 1

WHEN (a.alfa <= b.lcd AND b.lcd <= a.beta)

THEN 1 - 2*((b.lcd - a.alfa)/(a.gamma - a.alfa) * (b.lcd -

a.alfa)/(a.gamma - a.alfa))

WHEN (a.beta <= b.lcd AND b.lcd <= a.gamma)

THEN 2*((a.gamma - b.lcd)/(a.gamma - a.alfa)*(a.gamma-b.lcd)/(a.gamma

- a.alfa))

WHEN b.lcd >= a.gamma THEN 0

END

FROM Himpunan a, M_Laptop b

WHERE (a.variabel = 'lcd' AND a.himpunan ='kecil' AND a.fungsi

='penyusutan')

UNION

--berat

SELECT

a.variabel,

a.himpunan,

b.laptop_id,

b.nama_laptop,

miu=

Page 11: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

CASE

WHEN (b.berat <= a.alfa) THEN 1

WHEN (a.alfa <= b.berat AND b.berat <= a.beta)

THEN 1 - 2*((b.berat - a.alfa)/(a.gamma - a.alfa) * (b.berat -

a.alfa)/(a.gamma - a.alfa))

WHEN (a.beta <= b.berat AND b.berat <= a.gamma)

THEN 2*((a.gamma - b.berat)/(a.gamma - a.alfa)*(a.gamma-

b.berat)/(a.gamma - a.alfa))

WHEN b.berat >= a.gamma THEN 0

END

FROM Himpunan a, M_Laptop b

WHERE (a.variabel = 'berat' AND a.himpunan ='ringan' AND a.fungsi

='penyusutan')

Lampiran 2. Script query view beta

CREATE VIEW dbo.beta (

variabel,

himpunan,

laptop_id,

nama_laptop,

miu

)

AS

--harga

SELECT

a.variabel,

a.himpunan,

b.laptop_id,

b.nama_laptop,

miu=

CASE

Page 12: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

WHEN ( b.harga <= a.alfa OR b.harga >= a.gamma) THEN 0

WHEN ( a.alfa <= b.harga and b.harga <= a.pusatY)

THEN 1/(1+( ((b.harga-a.pusatY)/ a.betane)*((b.harga-a.pusatY)/

a.betane) ))

WHEN ( a.pusatY <= b.harga AND b.harga <=a.gamma )

THEN ( 1/(1+ (((b.harga - a.pusatY)/ a.betane)*((b.harga - a.pusatY)/

a.betane))))

END

FROM Himpunan a, M_laptop b

WHERE (a.variabel = 'harga' AND a.himpunan ='sedang' AND a.fungsi

='beta')

UNION

--processor

SELECT

a.variabel,

a.himpunan,

b.laptop_id,

b.nama_laptop,

miu=

CASE

WHEN ( b.processor <=a.alfa OR b.processor >=a.gamma) THEN 0

WHEN ( a.alfa <= b.processor and b.processor <= a.pusatY)

THEN 1/(1+( ((b.processor-a.pusatY)/ a.betane)*((b.processor-

a.pusatY)/ a.betane) ))

WHEN ( a.pusatY <= b.processor AND b.processor <=a.gamma )

THEN ( 1/(1+ (((b.processor - a.pusatY)/ a.betane)*((b.processor -

a.pusatY)/ a.betane))))

END

FROM Himpunan a, M_laptop b

WHERE (a.variabel = 'processor' AND a.himpunan ='sedang' AND a.fungsi

='beta')

Page 13: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

UNION

--harddisk

SELECT

a.variabel,

a.himpunan,

b.laptop_id,

b.nama_laptop,

miu=

CASE

WHEN ( b.harddisk <= a.alfa OR b.harddisk >= a.gamma) THEN 0

WHEN ( a.alfa <= b.harddisk and b.harddisk <= a.pusatY)

THEN 1/(1+( ((b.harddisk-a.pusatY)/ a.betane)*((b.harddisk-

a.pusatY)/ a.betane) ))

WHEN ( a.pusatY <= b.harddisk AND b.harddisk <=a.gamma )

THEN ( 1/(1+ (((b.harddisk - a.pusatY)/ a.betane)*((b.harddisk -

a.pusatY)/ a.betane))))

END

FROM Himpunan a, M_laptop b

WHERE (a.variabel = 'harddisk' AND a.himpunan ='sedang' AND a.fungsi

='beta')

UNION

--memory

SELECT

a.variabel,

a.himpunan,

b.laptop_id,

b.nama_laptop,

miu=

CASE

WHEN ( b.memory <= a.alfa OR b.memory >= a.gamma) THEN 0

Page 14: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

WHEN ( a.alfa <= b.memory and b.memory <= a.pusatY)

THEN 1/(1+( ((b.memory-a.pusatY)/ a.betane)*((b.memory-a.pusatY)/

a.betane) ))

WHEN ( a.pusatY <= b.memory AND b.memory <=a.gamma )

THEN ( 1/(1+ (((b.memory - a.pusatY)/ a.betane)*((b.memory -

a.pusatY)/ a.betane))))

END

FROM Himpunan a, M_laptop b

WHERE (a.variabel = 'memory' AND a.himpunan ='sedang' AND a.fungsi

='beta')

UNION

--lcd

SELECT

a.variabel,

a.himpunan,

b.laptop_id,

b.nama_laptop,

miu=

CASE

WHEN ( b.lcd <= a.alfa OR b.lcd >= a.gamma) THEN 0

WHEN ( a.alfa <= b.lcd and b.lcd <= a.pusatY)

THEN 1/(1+( ((b.lcd-a.pusatY)/ a.betane)*((b.lcd-a.pusatY)/

a.betane) ))

WHEN ( a.pusatY <= b.lcd AND b.lcd <=a.gamma )

THEN ( 1/(1+ (((b.lcd - a.pusatY)/ a.betane)*((b.lcd - a.pusatY)/

a.betane))))

END

FROM Himpunan a, M_laptop b

WHERE (a.variabel = 'lcd' AND a.himpunan ='sedang' AND a.fungsi

='beta')

UNION

Page 15: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

--berat

SELECT

a.variabel,

a.himpunan,

b.laptop_id,

b.nama_laptop,

miu=

CASE

WHEN (b.berat <= a.alfa OR b.berat >= a.gamma) THEN 0

WHEN ( a.alfa <= b.berat and b.berat <= a.pusatY)

THEN 1/(1+( ((b.berat-a.pusatY)/ a.betane)*((b.berat-a.pusatY)/

a.betane) ))

WHEN ( a.pusatY <= b.berat AND b.berat <=a.gamma )

THEN ( 1/(1+ (((b.berat - a.pusatY)/ a.betane)*((b.berat - a.pusatY)/

a.betane))))

END

FROM Himpunan a, M_laptop b

WHERE (a.variabel = 'berat' AND a.himpunan ='sedang' AND a.fungsi

='beta')

Lampiran 3. Script query view pertumbuhan

CREATE VIEW dbo.pertumbuhan (

variabel,

himpunan,

laptop_id,

nama_laptop,

miu

)

AS

--harga

SELECT

Page 16: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

a.variabel,

a.himpunan,

b.laptop_id,

b.nama_laptop,

miu=

CASE

WHEN ( b.harga <= a.alfa ) THEN 0

WHEN ( a.alfa <= b.harga AND b.harga <= a.beta)

THEN 2*((b.harga - a.alfa)/(a.gamma - a.alfa)*(b.harga -

a.alfa)/(a.gamma - a.alfa))

WHEN ( a.beta <= b.harga AND b.harga <= a.gamma)

THEN 1-2*((a.gamma - b.harga)/(a.gamma - a.alfa)*(a.gamma -

b.harga)/(a.gamma - a.alfa))

WHEN (b.harga >= a.gamma)THEN 1

END

FROM Himpunan a, M_laptop b

WHERE (a.variabel = 'harga' AND a.himpunan ='mahal' AND a.fungsi

='pertumbuhan')

UNION

--processor

SELECT

a.variabel,

a.himpunan,

b.laptop_id,

b.nama_laptop,

miu=

CASE

WHEN ( b.processor <= a.alfa ) THEN 0

WHEN ( a.alfa <= b.processor AND b.processor <= a.beta)

THEN 2*((b.processor - a.alfa)/(a.gamma - a.alfa)*(b.processor -

a.alfa)/(a.gamma - a.alfa))

Page 17: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

WHEN ( a.beta <= b.processor AND b.processor <= a.gamma)

THEN 1-2*((a.gamma - b.processor)/(a.gamma - a.alfa)*(a.gamma -

b.processor)/(a.gamma - a.alfa))

WHEN (b.processor >= a.gamma)THEN 1

END

FROM Himpunan a, M_laptop b

WHERE (a.variabel = 'processor' AND a.himpunan ='tinggi' AND a.fungsi

='pertumbuhan')

UNION

--harddisk

SELECT

a.variabel,

a.himpunan,

b.laptop_id,

b.nama_laptop,

miu=

CASE

WHEN ( b.harddisk <= a.alfa ) THEN 0

WHEN ( a.alfa <= b.harddisk AND b.harddisk <= a.beta)

THEN 2*((b.harddisk - a.alfa)/(a.gamma - a.alfa)*(b.harddisk -

a.alfa)/(a.gamma - a.alfa))

WHEN ( a.beta <= b.harddisk AND b.harddisk <= a.gamma)

THEN 1-2*((a.gamma - b.harddisk)/(a.gamma - a.alfa)*(a.gamma -

b.harddisk)/(a.gamma - a.alfa))

WHEN (b.harddisk >= a.gamma)THEN 1

END

FROM Himpunan a, M_laptop b

WHERE (a.variabel = 'harddisk' AND a.himpunan ='besar' AND a.fungsi

='pertumbuhan')

UNION

--memory

Page 18: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

SELECT

a.variabel,

a.himpunan,

b.laptop_id,

b.nama_laptop,

miu=

CASE

WHEN ( b.memory <= a.alfa ) THEN 0

WHEN ( a.alfa <= b.memory AND b.memory <= a.beta)

THEN 2*((b.memory - a.alfa)/(a.gamma - a.alfa)*(b.memory -

a.alfa)/(a.gamma - a.alfa))

WHEN ( a.beta <= b.memory AND b.memory <= a.gamma)

THEN 1-2*((a.gamma - b.memory)/(a.gamma - a.alfa)*(a.gamma -

b.memory)/(a.gamma - a.alfa))

WHEN (b.memory >= a.gamma)THEN 1

END

FROM Himpunan a, M_laptop b

WHERE (a.variabel = 'memory' AND a.himpunan ='besar' AND a.fungsi

='pertumbuhan')

UNION

--lcd

SELECT

a.variabel,

a.himpunan,

b.laptop_id,

b.nama_laptop,

miu=

CASE

WHEN ( b.lcd <= a.alfa ) THEN 0

WHEN ( a.alfa <= b.lcd AND b.lcd <= a.beta)

Page 19: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

THEN 2*((b.lcd - a.alfa)/(a.gamma - a.alfa)*(b.lcd - a.alfa)/(a.gamma

- a.alfa))

WHEN ( a.beta <= b.lcd AND b.lcd <= a.gamma)

THEN 1-2*((a.gamma - b.lcd)/(a.gamma - a.alfa)*(a.gamma -

b.lcd)/(a.gamma - a.alfa))

WHEN (b.lcd >= a.gamma)THEN 1

END

FROM Himpunan a, M_laptop b

WHERE (a.variabel = 'lcd' AND a.himpunan ='besar' AND a.fungsi

='pertumbuhan')

UNION

--berat

SELECT

a.variabel,

a.himpunan,

b.laptop_id,

b.nama_laptop,

miu=

CASE

WHEN ( b.berat <= a.alfa ) THEN 0

WHEN ( a.alfa <= b.berat AND b.berat <= a.beta)

THEN 2*((b.berat - a.alfa)/(a.gamma - a.alfa)*(b.berat -

a.alfa)/(a.gamma - a.alfa))

WHEN ( a.beta <= b.berat AND b.berat <= a.gamma)

THEN 1-2*((a.gamma - b.berat)/(a.gamma - a.alfa)*(a.gamma -

b.berat)/(a.gamma - a.alfa))

WHEN (b.berat >= a.gamma)THEN 1

END

FROM Himpunan a, M_laptop b

WHERE (a.variabel = 'berat' AND a.himpunan ='berat' AND a.fungsi

='pertumbuhan')

Page 20: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop
Page 21: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

Lampiran 4. Script query view vmiu

CREATE VIEW dbo.vmiu (

variabel,

himpunan,

laptop_id,

nama_laptop,

miu

)

AS

select * from penyusutan

union

select * from beta

union

select * from pertumbuhan

Lampiran 5. Script query view miudetail

CREATE VIEW dbo.miudetail

AS

SELECT laptop_id,

nama_laptop,

--harga

sum(harga_murah)as harga_murah ,

sum(harga_sedang)as harga_sedang,

sum(harga_mahal)as harga_mahal,

--processor

sum(processor_rendah)as processor_rendah,

sum(processor_sedang)as processor_sedang,

sum(processor_tinggi)as processor_tinggi,

--harddisk

sum(harddisk_kecil)as harddisk_kecil,

Page 22: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

sum(harddisk_sedang)as harddisk_sedang,

sum(harddisk_besar)as harddisk_besar,

--memory

sum(memory_kecil)as memory_kecil,

sum(memory_sedang)as memory_sedang,

sum(memory_besar)as memory_besar,

--berat

sum(berat_ringan)as berat_ringan ,

sum(berat_sedang)as berat_sedang,

sum(berat_berat)as berat_berat,

--lcd

sum(lcd_kecil)as lcd_kecil,

sum(lcd_sedang)as lcd_sedang,

sum(lcd_besar)as lcd_besar

FROM (

--harga murah-

SELECT a.laptop_id,

a.nama_laptop,

--harga

a.miu as harga_murah,

0 as harga_sedang,

0 as harga_mahal,

--processor

0 as processor_rendah,

0 as processor_sedang,

0 as processor_tinggi,

--harddisk

0 as harddisk_kecil,

0 as harddisk_sedang,

Page 23: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

0 as harddisk_besar,

--memory

0 as memory_kecil,

0 as memory_sedang,

0 as memory_besar,

--berat

0 as berat_ringan,

0 as berat_sedang,

0 as berat_berat,

--lcd

0 as lcd_kecil,

0 as lcd_sedang,

0 as lcd_besar

FROM vmiu a where (a.variabel='harga' and a.himpunan='murah')

--harga sedang

UNION

SELECT a.laptop_id,

a.nama_laptop,

--harga

0 harga_murah,

a.miu harga_sedang,

0 as harga_mahal,

--processor

0 as processor_rendah,

0 as processor_sedang,

0 as processor_tinggi,

--harddisk

0 as harddisk_kecil,

0 as harddisk_sedang,

Page 24: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

0 as harddisk_besar,

--memory

0 as memory_kecil,

0 as memory_sedang,

0 as memory_besar,

--berat

0 as berat_ringan,

0 as berat_sedang,

0 as berat_berat,

--lcd

0 as lcd_kecil,

0 as lcd_sedang,

0 as lcd_besar

FROM vmiu a where (a.variabel='harga' and a.himpunan='sedang')

--harga mahal

UNION

SELECT a.laptop_id,

a.nama_laptop,

--harga

0 harga_murah,

0 harga_sedang,

a.miu as harga_mahal,

--processor

0 as processor_rendah,

0 as processor_sedang,

0 as processor_tinggi,

--harddisk

0 as harddisk_kecil,

0 as harddisk_sedang,

Page 25: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

0 as harddisk_besar,

--memory

0 as memory_kecil,

0 as memory_sedang,

0 as memory_besar,

--berat

0 as berat_ringan,

0 as berat_sedang,

0 as berat_berat,

--lcd

0 as lcd_kecil,

0 as lcd_sedang,

0 as lcd_besar

FROM vmiu a where (a.variabel='harga' and a.himpunan='mahal')

--processor rendah

UNION

SELECT a.laptop_id,

a.nama_laptop,

--harga

0 harga_murah,

0 harga_sedang,

0 harga_mahal,

--processor

a.miu as processor_rendah,

0 as processor_sedang,

0 as processor_tinggi,

--harddisk

0 as harddisk_kecil,

0 as harddisk_sedang,

Page 26: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

0 as harddisk_besar,

--memory

0 as memory_kecil,

0 as memory_sedang,

0 as memory_besar,

--berat

0 as berat_ringan,

0 as berat_sedang,

0 as berat_berat,

--lcd

0 as lcd_kecil,

0 as lcd_sedang,

0 as lcd_besar

FROM vmiu a where (a.variabel='processor' and a.himpunan = 'rendah')

--processor sedang

UNION

SELECT a.laptop_id,

a.nama_laptop,

--harga

0 harga_murah,

0 harga_sedang,

0 harga_mahal,

--processor

0 processor_rendah,

a.miu as processor_sedang,

0 as processor_tinggi,

--harddisk

0 as harddisk_kecil,

0 as harddisk_sedang,

Page 27: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

0 as harddisk_besar,

--memory

0 as memory_kecil,

0 as memory_sedang,

0 as memory_besar,

--berat

0 as berat_ringan,

0 as berat_sedang,

0 as berat_berat,

--lcd

0 as lcd_kecil,

0 as lcd_sedang,

0 as lcd_besar

FROM vmiu a where (a.variabel='processor' and a.himpunan='sedang')

--processor tinggi

UNION

SELECT a.laptop_id,

a.nama_laptop,

--harga

0 harga_murah,

0 harga_sedang,

0 harga_mahal,

--processor

0 processor_rendah,

0 processor_sedang,

a.miu as processor_tinggi,

--harddisk

0 as harddisk_kecil,

0 as harddisk_sedang,

Page 28: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

0 as harddisk_besar,

--memory

0 as memory_kecil,

0 as memory_sedang,

0 as memory_besar,

--berat

0 as berat_ringan,

0 as berat_sedang,

0 as berat_berat,

--lcd

0 as lcd_kecil,

0 as lcd_sedang,

0 as lcd_besar

FROM vmiu a where (a.variabel='processor' and a.himpunan='tinggi')

--harddisk kecil

UNION

SELECT a.laptop_id,

a.nama_laptop,

--harga

0 harga_murah,

0 harga_sedang,

0 harga_mahal,

--processor

0 processor_rendah,

0 processor_sedang,

0 processor_tinggi,

--harddisk

a.miu as harddisk_kecil,

0 as harddisk_sedang,

Page 29: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

0 as harddisk_besar,

--memory

0 as memory_kecil,

0 as memory_sedang,

0 as memory_besar,

--berat

0 as berat_ringan,

0 as berat_sedang,

0 as berat_berat,

--lcd

0 as lcd_kecil,

0 as lcd_sedang,

0 as lcd_besar

FROM vmiu a where (a.variabel='harddisk' and a.himpunan='kecil')

--harddisk sedang

UNION

SELECT a.laptop_id,

a.nama_laptop,

--harga

0 harga_murah,

0 harga_sedang,

0 harga_mahal,

--processor

0 processor_rendah,

0 processor_sedang,

0 processor_tinggi,

--harddisk

0 harddisk_kecil,

a.miu as harddisk_sedang,

Page 30: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

0 as harddisk_besar,

--memory

0 as memory_kecil,

0 as memory_sedang,

0 as memory_besar,

--berat

0 as berat_ringan,

0 as berat_sedang,

0 as berat_berat,

--lcd

0 as lcd_kecil,

0 as lcd_sedang,

0 as lcd_besar

FROM vmiu a where (a.variabel='harddisk' and a.himpunan='sedang')

--harddisk besar

UNION

SELECT a.laptop_id,

a.nama_laptop,

--harga

0 harga_murah,

0 harga_sedang,

0 harga_mahal,

--processor

0 processor_rendah,

0 processor_sedang,

0 processor_tinggi,

--harddisk

0 harddisk_kecil,

0 harddisk_sedang,

Page 31: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

a.miu as harddisk_besar,

--memory

0 as memory_kecil,

0 as memory_sedang,

0 as memory_besar,

--berat

0 as berat_ringan,

0 as berat_sedang,

0 as berat_berat,

--lcd

0 as lcd_kecil,

0 as lcd_sedang,

0 as lcd_besar

FROM vmiu a where (a.variabel='harddisk' and a.himpunan='besar')

--memory kecil

UNION

SELECT a.laptop_id,

a.nama_laptop,

--harga

0 harga_murah,

0 harga_sedang,

0 harga_mahal,

--processor

0 processor_rendah,

0 processor_sedang,

0 processor_tinggi,

--harddisk

0 harddisk_kecil,

0 harddisk_sedang,

Page 32: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

0 harddisk_besar,

--memory

a.miu as memory_kecil,

0 as memory_sedang,

0 as memory_besar,

--berat

0 as berat_ringan,

0 as berat_sedang,

0 as berat_berat,

--lcd

0 as lcd_kecil,

0 as lcd_sedang,

0 as lcd_besar

FROM vmiu a where (a.variabel='memory' and a.himpunan='kecil')

--memory sedang

UNION

SELECT a.laptop_id,

a.nama_laptop,

--harga

0 harga_murah,

0 harga_sedang,

0 harga_mahal,

--processor

0 processor_rendah,

0 processor_sedang,

0 processor_tinggi,

--harddisk

0 harddisk_kecil,

0 harddisk_sedang,

Page 33: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

0 harddisk_besar,

--memory

0 memory_kecil,

a.miu as memory_sedang,

0 as memory_besar,

--berat

0 as berat_ringan,

0 as berat_sedang,

0 as berat_berat,

--lcd

0 as lcd_kecil,

0 as lcd_sedang,

0 as lcd_besar

FROM vmiu a where (a.variabel='memory' and a.himpunan='sedang')

--memory besar

UNION

SELECT a.laptop_id,

a.nama_laptop,

--harga

0 harga_murah,

0 harga_sedang,

0 harga_mahal,

--processor

0 processor_rendah,

0 processor_sedang,

0 processor_tinggi,

--harddisk

0 harddisk_kecil,

0 harddisk_sedang,

Page 34: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

0 harddisk_besar,

--memory

0 memory_kecil,

0 memory_sedang,

a.miu as memory_besar,

--berat

0 as berat_ringan,

0 as berat_sedang,

0 as berat_berat,

--lcd

0 as lcd_kecil,

0 as lcd_sedang,

0 as lcd_besar

FROM vmiu a where (a.variabel='memory' and a.himpunan='besar')

-- berat ringan

UNION

SELECT a.laptop_id,

a.nama_laptop,

--harga

0 harga_murah,

0 harga_sedang,

0 harga_mahal,

--processor

0 processor_rendah,

0 processor_sedang,

0 processor_tinggi,

--harddisk

0 harddisk_kecil,

0 harddisk_sedang,

Page 35: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

0 harddisk_besar,

--memory

0 memory_kecil,

0 memory_sedang,

0 memory_besar,

--berat

a.miu as berat_ringan,

0 as berat_sedang,

0 as berat_berat,

--lcd

0 as lcd_kecil,

0 as lcd_sedang,

0 as lcd_besar

FROM vmiu a where (a.variabel='berat' and a.himpunan='ringan')

-- berat sedang

UNION

SELECT a.laptop_id,

a.nama_laptop,

--harga

0 harga_murah,

0 harga_sedang,

0 harga_mahal,

--processor

0 processor_rendah,

0 processor_sedang,

0 processor_tinggi,

--harddisk

0 harddisk_kecil,

0 harddisk_sedang,

Page 36: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

0 harddisk_besar,

--memory

0 memory_kecil,

0 memory_sedang,

0 memory_besar,

--berat

0 berat_ringan,

a.miu as berat_sedang,

0 as berat_berat,

--lcd

0 as lcd_kecil,

0 as lcd_sedang,

0 as lcd_besar

FROM vmiu a where (a.variabel='berat' and a.himpunan='sedang')

-- berat berat

UNION

SELECT a.laptop_id,

a.nama_laptop,

--harga

0 harga_murah,

0 harga_sedang,

0 harga_mahal,

--processor

0 processor_rendah,

0 processor_sedang,

0 processor_tinggi,

--harddisk

0 harddisk_kecil,

0 harddisk_sedang,

Page 37: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

0 harddisk_besar,

--memory

0 memory_kecil,

0 memory_sedang,

0 memory_besar,

--berat

0 berat_ringan,

0 berat_sedang,

a.miu as berat_berat,

--lcd

0 as lcd_kecil,

0 as lcd_sedang,

0 as lcd_besar

FROM vmiu a where (a.variabel='berat' and a.himpunan='berat')

--lcd kecil

UNION

SELECT a.laptop_id,

a.nama_laptop,

--harga

0 harga_murah,

0 harga_sedang,

0 harga_mahal,

--processor

0 processor_rendah,

0 processor_sedang,

0 processor_tinggi,

--harddisk

0 harddisk_kecil,

0 harddisk_sedang,

Page 38: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

0 harddisk_besar,

--memory

0 memory_kecil,

0 memory_sedang,

0 memory_besar,

--berat

0 berat_ringan,

0 berat_sedang,

0 berat_berat,

--lcd

a.miu as lcd_kecil,

0 as lcd_sedang,

0 as lcd_besar

FROM vmiu a where (a.variabel='lcd' and a.himpunan='kecil')

--lcd sedang

UNION

SELECT a.laptop_id,

a.nama_laptop,

--harga

0 harga_murah,

0 harga_sedang,

0 harga_mahal,

--processor

0 processor_rendah,

0 processor_sedang,

0 processor_tinggi,

--harddisk

0 harddisk_kecil,

0 harddisk_sedang,

Page 39: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

0 harddisk_besar,

--memory

0 memory_kecil,

0 memory_sedang,

0 memory_besar,

--berat

0 berat_ringan,

0 berat_sedang,

0 berat_berat,

--lcd

0 lcd_kecil,

a.miu as lcd_sedang,

0 as lcd_besar

FROM vmiu a where (a.variabel='lcd' and a.himpunan='sedang')

--lcd besar

UNION

SELECT a.laptop_id,

a.nama_laptop,

--harga

0 harga_murah,

0 harga_sedang,

0 harga_mahal,

--processor

0 processor_rendah,

0 processor_sedang,

0 processor_tinggi,

--harddisk

0 harddisk_kecil,

0 harddisk_sedang,

Page 40: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

0 harddisk_besar,

--memory

0 memory_kecil,

0 memory_sedang,

0 memory_besar,

--berat

0 berat_ringan,

0 berat_sedang,

0 berat_berat,

--lcd

0 lcd_kecil,

0 lcd_sedang,

a.miu as lcd_besar

FROM vmiu a where (a.variabel='lcd' and a.himpunan='besar')

) AS D

group by laptop_id,nama_laptop

Lampiran 6. Script query procedure AND

CREATE PROCEDURE [dbo].[sp_laptop_and]

(

@harga varchar (100),

@processor varchar (100),

@harddisk varchar (100),

@memory varchar (100),

@lcd varchar (100),

@berat varchar (100)

)

AS

BEGIN

/* Procedure body */

Page 41: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

SELECT

A.laptop_id,

A.nama_laptop,

b.jenis_id,

b.merek_id,

A.nilai

FROM

(

SELECT

D.laptop_id,

D.nama_laptop,

MIN (D.miu) as nilai

FROM

(SELECT

a.laptop_id,

a.nama_laptop,

miu =

CASE (@harga)

WHEN 'harga_murah' THEN a.harga_murah

WHEN 'harga_sedang' THEN a.harga_sedang

WHEN 'harga_mahal' THEN a.harga_mahal

END

FROM miudetail a

UNION

SELECT

a.laptop_id,

a.nama_laptop,

miu =

CASE (@processor)

Page 42: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

WHEN 'processor_rendah' THEN a.processor_rendah

WHEN 'processor_sedang' THEN a.processor_sedang

WHEN 'processor_tinggi' THEN a.processor_tinggi

END

FROM miudetail a

UNION

SELECT

a.laptop_id,

a.nama_laptop,

miu =

CASE (@harddisk)

WHEN 'harddisk_kecil' THEN a.harddisk_kecil

WHEN 'harddisk_sedang' THEN a.harddisk_sedang

WHEN 'harddisk_besar' THEN a.harddisk_besar

END

FROM miudetail a

UNION

SELECT

a.laptop_id,

a.nama_laptop,

miu =

CASE (@memory)

WHEN 'memory_kecil' THEN a.memory_kecil

WHEN 'memory_sedang' THEN a.memory_sedang

WHEN 'memory_besar' THEN a.memory_besar

END

FROM miudetail a

UNION

SELECT

Page 43: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

a.laptop_id,

a.nama_laptop,

miu =

CASE (@lcd)

WHEN 'lcd_kecil' THEN a.lcd_kecil

WHEN 'lcd_sedang' THEN a.lcd_sedang

WHEN 'lcd_besar' THEN a.lcd_besar

END

FROM miudetail a

UNION

SELECT

a.laptop_id,

a.nama_laptop,

miu =

CASE (@berat)

WHEN 'berat_ringan' THEN a.berat_ringan

WHEN 'berat_sedang' THEN a.berat_sedang

WHEN 'berat_berat' THEN a.berat_berat

END

FROM miudetail a ) as D

GROUP BY

D.laptop_id,

D.nama_laptop) as A

LEFT JOIN M_Laptop b on A.laptop_id = b.laptop_id

WHERE A.nilai <> 0

END

Lampiran 7. Script query procedure OR

CREATE PROCEDURE dbo.sp_laptop_or

(

Page 44: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

@harga varchar (100),

@processor varchar (100),

@harddisk varchar (100),

@memory varchar (100),

@lcd varchar (100),

@berat varchar (100)

)

AS

BEGIN

/* Procedure body */

SELECT

A.laptop_id,

A.nama_laptop,

b.jenis_id,

b.merek_id,

A.nilai

FROM

(

SELECT

D.laptop_id,

D.nama_laptop,

MAX (D.miu) as nilai

FROM

(SELECT

a.laptop_id,

a.nama_laptop,

miu =

CASE (@harga)

WHEN 'harga_murah' THEN a.harga_murah

Page 45: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

WHEN 'harga_sedang' THEN a.harga_sedang

WHEN 'harga_mahal' THEN a.harga_mahal

END

FROM miudetail a

UNION

SELECT

a.laptop_id,

a.nama_laptop,

miu =

CASE (@processor)

WHEN 'processor_rendah' THEN a.processor_rendah

WHEN 'processor_sedang' THEN a.processor_sedang

WHEN 'processor_tinggi' THEN a.processor_tinggi

END

FROM miudetail a

UNION

SELECT

a.laptop_id,

a.nama_laptop,

miu =

CASE (@harddisk)

WHEN 'harddisk_kecil' THEN a.harddisk_kecil

WHEN 'harddisk_sedang' THEN a.harddisk_sedang

WHEN 'harddisk_besar' THEN a.harddisk_besar

END

FROM miudetail a

UNION

SELECT

a.laptop_id,

Page 46: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

a.nama_laptop,

miu =

CASE (@memory)

WHEN 'memory_kecil' THEN a.memory_kecil

WHEN 'memory_sedang' THEN a.memory_sedang

WHEN 'memory_besar' THEN a.memory_besar

END

FROM miudetail a

UNION

SELECT

a.laptop_id,

a.nama_laptop,

miu =

CASE (@lcd)

WHEN 'lcd_kecil' THEN a.lcd_kecil

WHEN 'lcd_sedang' THEN a.lcd_sedang

WHEN 'lcd_besar' THEN a.lcd_besar

END

FROM miudetail a

UNION

SELECT

a.laptop_id,

a.nama_laptop,

miu =

CASE (@berat)

WHEN 'berat_ringan' THEN a.berat_ringan

WHEN 'berat_sedang' THEN a.berat_sedang

WHEN 'berat_berat' THEN a.berat_berat

END

Page 47: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

FROM miudetail a ) as D

GROUP BY

D.laptop_id,

D.nama_laptop) as A

LEFT JOIN M_Laptop b on A.laptop_id = b.laptop_id

WHERE A.nilai <> 0

END

Page 48: Penerapan Fuzzy Database Untuk Rekomendasi Pembelian Laptop

Untuk pembuatan aplikasi saya menggunakan visual studio C#

Thanks

[email protected]