bahan latihan prak plush

35
1 Masagus Mochammad Yusuf, Ir, MKom BAB 1 PENDAHULUAN 1.1 LATAR BELAKANG Sebagai Mahasiswa STITEK Bontang penulisan Laporan Pratikum adalah wajib hukumnya sebab laporan ini sebagai salah satu syarat penulis untuk dapat lulus pada Mata Mata Kuliah Intelegensi Buatan. Selain sebagai syarat kelulusan, pembuatan laporan pratikum ini juga menjadi bukti bahwa penulis telah menyelesaikan Pratikum Mata Kuliah Intelegensi Buatan yang telah dilaksanakan di Lab Teknik Informatika. Dalam pembuatan laporan ini penulis berharap agar laporan ini dapat memberikan manfaat kepada orang lain maupun penulis khususnya agar dapat lebih mengerti tentang pemograman dengan bahasa prolog. Serta dapat melatih kemampuan berlogika dalam memecahkan suatu permasalahan dengan sebuah sistem yang dibuat dengan bahasa pemograman ini. Berkaitan dengan pemampuan dan potensi dasar dalam pemahaman dalam bahasa-bahasa pemograman yang lainnya, mahasiswa di tuntut untuk dapat mengerti bahasa pemograman lainnya diluar bahasa pemograman yang dia jarkan oleh para dosen STITEK BONTANG ini. 1.2 Tujuan 1. Mengenalkan pada Mahasiswa tentang pemrograman Prolog 2. Mampu mengoperasikan dan mengerti cara kerja pemrograman prolog 3. Mahasiswa Mampu mengidentifikasi kesalahan yang terjadi pada pembuatan Aplikasi dan mampu Mengimproving Aplikasi tersebut.

Upload: indri-paramita-agitya

Post on 28-Dec-2015

72 views

Category:

Documents


2 download

DESCRIPTION

bahan praktikum

TRANSCRIPT

Page 1: Bahan Latihan Prak Plush

1 Masagus Mochammad Yusuf, Ir, MKom

BAB 1

PENDAHULUAN

1.1 LATAR BELAKANG

Sebagai Mahasiswa STITEK Bontang penulisan Laporan Pratikum

adalah wajib hukumnya sebab laporan ini sebagai salah satu syarat penulis untuk

dapat lulus pada Mata Mata Kuliah Intelegensi Buatan. Selain sebagai syarat

kelulusan, pembuatan laporan pratikum ini juga menjadi bukti bahwa penulis

telah menyelesaikan Pratikum Mata Kuliah Intelegensi Buatan yang telah

dilaksanakan di Lab Teknik Informatika.

Dalam pembuatan laporan ini penulis berharap agar laporan ini dapat

memberikan manfaat kepada orang lain maupun penulis khususnya agar dapat

lebih mengerti tentang pemograman dengan bahasa prolog. Serta dapat melatih

kemampuan berlogika dalam memecahkan suatu permasalahan dengan sebuah

sistem yang dibuat dengan bahasa pemograman ini.

Berkaitan dengan pemampuan dan potensi dasar dalam pemahaman

dalam bahasa-bahasa pemograman yang lainnya, mahasiswa di tuntut untuk

dapat mengerti bahasa pemograman lainnya diluar bahasa pemograman yang dia

jarkan oleh para dosen STITEK BONTANG ini.

1.2 Tujuan

1. Mengenalkan pada Mahasiswa tentang pemrograman Prolog

2. Mampu mengoperasikan dan mengerti cara kerja pemrograman prolog

3. Mahasiswa Mampu mengidentifikasi kesalahan yang terjadi pada

pembuatan Aplikasi dan mampu Mengimproving Aplikasi tersebut.

Page 2: Bahan Latihan Prak Plush

2 Masagus Mochammad Yusuf, Ir, MKom

Ruang Input

(Semua total persediaan

Barang yang mungkin)

Produksi

BAB 2

DASAR TEORI

2.1 Logika fuzzy

suatu cara yang tepat untuk memetakan suatu ruang input ke dalam suatu ruang

output sebagai berikut;

1. Manajer pergudangan mengatakan pada manajer produksi seberapa banyak

persediaan barang pada akhir minggu ini, kemudian manajer produksi akan

menetapkan jumlah barang yang harus diproduksi esok harinya.

2. Pelayan restoran memberikan pelayanan terhadap tamu, kemudian tamu

akan memberikan tip yang sesuai atas baik tidaknya pelayanan yang

diberikan,

3. Anda mengatakan kepada saya seberapa sejuk ruangan yang anda inginkan,

saya akan mengatur putaran kipas yang ada pada ruangan ini

4. Penumpang taksi berkata pada sopir taksi seberapa cepat laju kendaraan

yang diinginkan, sopir taksi akan mengatur pijakan pedal gas taksinya.

Salah satu contoh pemetaan input-output dalam bentuk grafis sbagai berikut;

KOTAK

Page 3: Bahan Latihan Prak Plush

3 Masagus Mochammad Yusuf, Ir, MKom

2.1.1 ALASAN PENGGUNAAN LOGIKA FUZZY

Ada beberapa alasan mengapa orang menggunakan Logika Fuzzy diantaranya :

1. Konsep Logika Fuzzy mudah dimengerti, konsep matematis yang mendasari

penalaran fuzzy sangat sederhana dan mudah dimengerti

2. Logika Fuzzy sangat fleksibel

3. Logika Fuz

4. zy memiliki toleransi terhadap data-data yang tidak tepat

5. Logika Fuzzy mampu memodelkan fungsi-fungsi nonlinier yang sangat

kompleks.

6. Logika Fuzzy dapat membangun dan mengaplikasikan pengalaman-

pengalaman para pakar secara langsung tanpa harus melalui proses pelatihan.

7. Logika Fuzzy dapat bekerjasama dengan teknik-teknik kendali secara

konvensional.

8. Logika Fuzzy didasarkan pada bahasa alami.

APLIKASI

Beberapa aplikasi Logika Fuzzy antara lain;

a. Pada tahun 1990 an pertama kali dibuat mesin cuci dengan logika fuzzy di Jepang (Matsuhita Electric Industrial Company) sistem Fuzzy digunakan untuk menentukan putaran yang tepat secara otomatis berdsarkan jenis dan banyaknya kotoran serta jumlah yang akan dicuci . Inputannya adalah seberapa kotor dan seberapa bayak cucian yang akan dicuci.

b. Transmisi otomatis pada mobil Nisan telah menggunakan Fuzzy logic dan mampu menghemat BBM 12 – 17%

c. Ilmu kedokteran dan biologi, seperti sistem diagnosis yang didasarkan pada logika fuzzy, terutama pada penelitian kanker.

d. Kereta bawah tanah SENDAI, mengontrol pemberhentian otomatis pada area tertentu

e. Manajemen dan pengambilan keputusan, seperti manajemen basisdata yang didasarkan pada logika Fuzzy, tata letak pabrik yang didasarkan pada Logika Fuzzy .

f. Bidang ekonomi, seperti pemodelan Fuzzy pada system pemasaran yang kompleks, dan lain-lain

g. Klasifikasi dan pencocokan pola h. Dan banyak lagi aplikasi lainnya.

HIMPUNAN FUZZY

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

yang sering ditulis debgan µA[x] memiliki 2 kemungkinan yaitu:

o Satu (1) yang berarti bahwa suatu item menjadi anggota dalam suatu himpunan atau

o Nol (0) yang berarti bahwa suatu item tidak menjadi anggota dalam suatu himpunan

Page 4: Bahan Latihan Prak Plush

4 Masagus Mochammad Yusuf, Ir, MKom

Contoh : 2.

Misalkan variabel umur dibagi menjadi 3 kategori, yaitu :

MUDA umur < 35 tahun

PAROBAYA 35 < umur < 55 tahun

TUA umur > 55 tahun

Nilai keanggotaan secara grafis, himpunan MUDA, PAROBAYA dan TUA ini dapat

dilihat pada gambar dibawah ini

Pada gambar terlihat bahwa :

Bila seseorang berusia 34 tahun, maka ia dikatakan MUDA (µMUDA[34] = 1)

Bila seseorang berusia 35 tahun, maka ia dikatakan TIDAK MUDA

(µMUDA[35] = 0)

Bila seseorang berusia 35 tahun kurang 1 hari , maka ia dikatakan TIDAK

MUDA (µMUDA[35 th – 1hr] = 0)

Bila seseorang berusia 35 tahun, maka ia dikatakan PAROBAYA

(µPAROBAYA[35] = 1)

Bila seseorang berusia 34 tahun, maka ia dikatakan TIDAK PAROBAYA

(µPAROBAYA[35] = 0)

Bila seseorang berusia 35 tahun kurang 1 hari, maka ia dikatakan TIDAK

PAROBAYA (µPAROBAYA[35 th – 1 hr] = 0)

Dari uraian diatas dapat dikatakan bahwa pemakaian himpunan crisp untuk menyatakan

umur sangat tidak adil, adanya perubahan kecil saja pada suatu nilai mengakibatkan

perbedaan kategori yang cukup significan.

Himpunan fuzzy digunakan untuk mengantisipasi hal tersebut. Seseorang dapat masuk

dalam 2 himpunan yang berbeda, MUDA dan PAROBAYA, PAROBAYA dan TUA

Page 5: Bahan Latihan Prak Plush

5 Masagus Mochammad Yusuf, Ir, MKom

dan seterusnya, seberapa eksistensinya dalam himpunan tersebut dapat dilihat pada nilai

keanggotaannya.

Gambar Himpunan fuzzy untuk variabel Umur.

Pada gambar diatas dapat dilihat bahwa;

Seseorang yang berumur 40 tahun termasuk dalam himpunan MUDA dengan

µMUDA[40] = 0,25, namun dia juga termasuk dalam himpunan PAROBAYA

dengan µPAROBAYA[40] = 0,5.

Seseorang yang berumur 50 tahun termasuk dalam himpunan MUDA dengan

µTUA[50] = 0,25, namun dia juga termasuk dalam himpunan PAROBAYA

dengan µPAROBAYA[50] = 0,5.

Jika pada himpunan crips, nilai keanggotaan hanya ada 2 kemungkinan, yaitu 0 atau 1,

pada himpunan fuzzy nilai keanggotaan terletak pada rentang 0 sampai 1. Apabila x

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

A, demikian pula bila x memiliki nilai keanggotaan fuzzy µA[x] = 1 berarti x menjadi

anggota penuh pada himpunan A.

Bila kita lihat dalam kasus ini antara keanggotaan fuzzy dengan probabilitas ada

kerancuan. Keduanya memiliki nilai pada interval [0,1], namun interpretasi nilainya

sangat berbeda antara keduanya. Keanggotaan fuzzy memberikan suatu ukuran terhadap

pendapat atau keputusan, sedangkan probabilitas mengindikasikan proporsi terhadap

frekwensi atau seringnya suatu hasil bernilai benar dalam jangka panjang.

Page 6: Bahan Latihan Prak Plush

6 Masagus Mochammad Yusuf, Ir, MKom

Himpunan fuzzy memiliki 2 atribut, yaitu :

a. Linguistik, yaitu penamaan suatu grup yang mewakili suatu keadaan atau

kondisi tertentu dengan menggunakan bahasa alami, seperti ; MUDA,

PAROBAYA, TUA

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

variabel seperti, 40,25,50, 50 dan sebagainya.

BASISDATA FUZZY

Sebagian besar basis data standar diklasifikasikan berdasarkan bagaimana data tersebut

data tersebut dipandang oleh user, Misalkan kita memiliki data karyawan yang

tersimpan pada tabel KARYAWAN dengan field; NIP, Nama, TglLahir, Thmasuk, dan

Gaji perbulan sebagai berikut ;

NIP Nama Tgl Lahir

Th

Masuk Gaji/bln(Rp)

01 Amalia 26-Dec-1968 1996 1,750,000

02 Satriawan 27-Aug-1976 2002 1,600,000

03 Sri Mulyani 18-Sep-1971 1996 1,250,000

04 Achmadi 19-Oct-1978 1997 1,000,000

05 Bambang 16-May-1975 1994 500,000

06 Anhar 21-Jul-1964 1996 550,000

07 Samsuddin 17-Jun-1970 2001 1,450,000

08 Kumala 3-Jun-1974 1999 750,000

09 Aminah 24-Apr-1971 2003 850,000

10 Yudhi 15-Mar-1981 2000 475,000

Kemudian dari tabel KARYAWAN, kita olah menjadi suatu tabel temporer untuk

menghitung umur karyawan dan masa kerjanya, tabel tersebut kita berinama

KARYAWAN2, sebagai mana dibawah ini ;

Page 7: Bahan Latihan Prak Plush

7 Masagus Mochammad Yusuf, Ir, MKom

NIP Nama Umur(th) MasaKerja Gaji/bln(Rp)

01 Amalia 37 10 1,750,000

02 Satriawan 30 4 1,600,000

03

Sri

Mulyani 34 10 1,250,000

04 Achmadi 27 9 1,000,000

05 Bambang 31 12 500,000

06 Anhar 42 10 550,000

07 Samsuddin 36 5 1,450,000

08 Kumala 32 7 750,000

09 Aminah 35 3 850,000

10 Yudhi 25 6 475,000

Dengan mnggunakan basisdata standar, kita dapat mencari data-data karyawan dengan

spesifikasi tertentu dengan menggunakan query. Misal kita ingin mendapatkan

informasi tentang nama-nama karyawan yang usianya kurang dari 35 tahun, maka kita

bisa ciptakan suatu query:

SELECT NAMA

FROM KARYAWAN

WHERE(Umur < 35)

Sehingga muncul nama-nama Satriawan, Sri Mulyani, Achmadi, Bambang, Kumala,

Yudhi. Apabila kita ingin mendapatkan informasi tentang nama-nama karyawan yang

gajinya lebih dari 1 juta, maka bisa kita ciptakan query :

SELECT NAMA

FROM KARYAWAN

Page 8: Bahan Latihan Prak Plush

8 Masagus Mochammad Yusuf, Ir, MKom

WHERE(Gaji > 1000000)

Sehingga muncul nama-nama Amalia, Satriawan, Sri Mulyani, Samsuddin. Apabila kita

ingin mendapatkan informasi tentang nama-nama karyawan yang masa kerjanya kurang

dari atu sama dengan 6 tahun tetapi gajinya sudah lebih dari 1 juta rupiah, maka bisa

kita ciptakan query :

SELECT NAMA

FROM KARYAWAN

WHERE(MasaKerja <= 5) and (Gaji > 1000000)

Sehingga muncul nama-nama Satriawan dan Samsuddin.

Pada kenyataannya, sesorang kadang membutuhkan informasi dari data-data yang

bersifat ambigous. Jika ini terjadi maka kita menggunakan basisdata fuzzy. Selama ini,

sudah ada beberapa penelitian tentang basisdata fuzzy. Salah satu diantaranya adalah

model Tahani. Basis data fuzzy model Tahani masih tetap menggunakan relasi standar,

hanya saja model ini menggunakan teori himpunan fuzzy untuk mendapatkan informasi

pada query-nya.

Misalkan kita menkatagorikan usia karyawan diatas ke dalam himpunan : MUDA,

PAROBAYA dan TUA

Gambar Fungsi keanggotaan untuk variabel Usia

Page 9: Bahan Latihan Prak Plush

9 Masagus Mochammad Yusuf, Ir, MKom

Fungsi keanggotaan :

;

;X

;

)X(MUDA

010

401

40

40

30

30

X

X

X

;X

;X

;

)X(PAROBAYA

5

5010

350

5045

4535

5035

x

x

xataux

;

;x

;

)X(tUA

110

400

50

50

40

40

X

X

X

Tabel dibawah ini menunjukkan tabel karyawan berdasarkan umur dengan derajat

keanggotaan pada tiap himpunan

Tabel Karyawan berdasarkan umur

DERAJAT KEANGGOTAAN

µ(x)

NIP Nama Umur(th) MUDA PAROBAYA TUA

01 Amalia 37 0.3 0.2 0

02 Satriawan 30 1 0 0

03

Sri

Mulyani 34 0.6 0 0

04 Achmadi 27 1 0 0

05 Bambang 31 0.9 0 0

06 Anhar 42 0 0.7 0.2

07 Samsuddin 36 0.4 0.1 0

08 Kumala 32 0.8 0 0

Page 10: Bahan Latihan Prak Plush

10 Masagus Mochammad Yusuf, Ir, MKom

09 Aminah 35 0.5 0 0

10 Yudhi 25 1 0 0

Variabel MasaKerja bisa dikategorikan dalam himpunan BARU dan LAMA

Fungsi keanggotaan :

;

;y

;

)y(BARU

010

151

15

15

5

5

y

y

y

;

;y

;

)y(LAMA

115

100

25

25

10

10

y

y

y

Tabel dibawah ini menunjukan tabel karyawan berdasarkan MasaKerja dengan derajat

keanggotaanny pada tiap himpunan

Derajat Keanggotaan µ(y)

NIP Nama

Masa

Kerja BARU LAMA

01 Amalia 10 0.5 0.057

02 Satriawan 4 1 0

Page 11: Bahan Latihan Prak Plush

11 Masagus Mochammad Yusuf, Ir, MKom

03

Sri

Mulyani 10 0.5 0.057

04 Achmadi 9 0.6 0

05 Bambang 12 0.3 0.133

06 Anhar 10 0.5 0.057

07 Samsuddin 5 1 0

08 Kumala 7 0.8 0

09 Aminah 3 1 0

10 Yudhi 6 0 0

Variabel Gaji bisa dikategorikan dalam himpunan RENDAH, SEDANG dan TINGGI

Gambar Fungsi keanggotaan untuk variabel Gaji

Fungsi keanggotaan :

;

;z

;

)z(RENDAH

0500

8001

800

800

300

300

z

z

z

;z

;z

;

)z(SEDANG

500

1500500

5000

15001000

1000500

1500500

z

z

zatauz

Page 12: Bahan Latihan Prak Plush

12 Masagus Mochammad Yusuf, Ir, MKom

;

;z

;

)z(RENDAH

11000

10000

2000

2000

1000

1000

z

z

z

Tabel dibawah ini menunjukkan tabel karyawan berdasarkan umur dengan derajat

keanggotaan pada tiap himpunan

DERAJAT KEANGGOTAAN

µ(z)

NIP Nama Gaji/bln(Rp) RENDAH SEDANG TINGGI

01 Amalia 1,750,000 0 0 0.75

02 Satriawan 1,600,000 0 0 0.6

03

Sri

Mulyani 1,250,000 0 0.5 0.25

04 Achmadi 1,000,000 0 1 0

05 Bambang 500,000 1 0.4 0

06 Anhar 550,000 0.5 0.4 0

07 Samsuddin 1,450,000 0 1 0.45

08 Kumala 750,000 0.1 0.5 0

09 Aminah 850,000 0 1 0

10 Yudhi 475,000 1 0.4 0

Dari tabel diatas ada beberapa query yang bisa diberikan misalkan;

Query 1

Siapa saja-kah karyawan yang masih muda tapi memiliki gaji tinggi?

SELECT NAMA

Page 13: Bahan Latihan Prak Plush

13 Masagus Mochammad Yusuf, Ir, MKom

FROM KARYAWAN

WHERE(Umur = “MUDA”) and (Gaji = “TINGGI”)

Tabel dibawah ini menunjukkan hasil query1, yaitu nama-nama karyawan yang masih

muda tapi memiliki gaji yang tinggi

Tabel hasil query1

Derajat Keanggotaan

NI

P Nama

UMU

R

Gaji/bln(R

p)

MUD

A

TINGG

I

MUDA

&

TINGGI

02 Satriawan 30 1,600,000 1 0.6 0.6

07 Samsuddin 36 1,450,000 0.4 0.45 0.4

03 Sri Mulyani 34 1,250,000 0.6 0.25 0.25

01 Amalia 37 1,750,000 0.3 0.75 0.3

04 Achmadi 27 1,000,000 1 0 0

05 Bambang 31 500,000 0.9 0 0

06 Anhar 42 550,000 0 0 0

08 Kumala 32 750,000 0.8 0 0

09 Aminah 35 850,000 0.5 0 0

10 Yudhi 25 475,000 1 0 0

Ada 4 karyawan yang memenuhi kreteria masih MUDA dan berpenghasilan TINGGI,

yaitu ; Satriawan, Samsuddin, Sri Mulyani dan Amalia, Pada tabel tampak Satriawan

merupakan karyawan yang memiliki nilai terbesar dalam kriteria tersebut

Page 14: Bahan Latihan Prak Plush

14 Masagus Mochammad Yusuf, Ir, MKom

Query 2

Siapa saja-kah karyawan yang masih muda atau karyawan yang memiliki gaji tinggi?

SELECT NAMA

FROM KARYAWAN

WHERE(Umur = “MUDA”) or (Gaji = “TINGGI”)

Tabel dibawah ini menunjukkan hasil query2, yaitu nama-nama karyawan yang masih

muda atau karyawan yang memiliki gaji tinggi

Tabel hasil query2

Derajat Keanggotaan

NIP Nama UMUR Gaji/bln(Rp) MUDA TINGGI

MUDA

&

TINGGI

04 Achmadi 27 1,000,000 1 0 1

10 Yudhi 25 475,000 1 0 1

02 Satriawan 30 1,600,000 1 0.6 1

05 Bambang 31 500,000 0.9 0 0.9

08 Kumala 32 750,000 0.8 0 0.8

03

Sri

Mulyani 34 1,250,000 0.6 0.25 0.6

09 Aminah 35 850,000 0.5 0 0.5

07 Samsuddin 36 1,450,000 0.4 0.45 0.45

01 Amalia 37 1,750,000 0.3 0.75 0.75

06 Anhar 42 550,000 0 0 0

Dari 10 karyawan hanya 1 yang tidak memenuhi kreteria tersebut yaitu Anhar dengan

nilai 0

Page 15: Bahan Latihan Prak Plush

15 Masagus Mochammad Yusuf, Ir, MKom

Query 3

Siapa saja-kah karyawan yang masih muda tapi masa kerjanya sudah lama?

SELECT NAMA

FROM KARYAWAN

WHERE(Umur = “MUDA”) and (MasaKerja = “LAMA”)

Tabel dibawah ini menunjukkan hasil query2, yaitu nama-nama karyawan yang masih

muda atau karyawan yang memiliki gaji tinggi

Tabel hasil query3

Derajat Keanggotaan

NIP Nama UMUR

Masa

Kerja MUDA LAMA

MUDA

&

LAMA

01 Amalia 37 10 0.3 1 0.3

02 Satriawan 30 4 1 0 0

03

Sri

Mulyani 34 10 0.6 1 0.6

04 Achmadi 27 9 1 0 0

05 Bambang 31 12 0.9 0.2 0.2

06 Anhar 42 10 0 1 0

07 Samsuddin 36 5 0.4 0 0

08 Kumala 32 7 0.8 0 0

09 Aminah 35 3 0.5 0 0

10 Yudhi 25 6 1 0 0

Page 16: Bahan Latihan Prak Plush

16 Masagus Mochammad Yusuf, Ir, MKom

Dari 10 karyawan hanya 3 yang memenuhi kreteria tersebut yaitu Aamalia, Sri Mulyani

dan Bambang dengan nilai tertimggi ada pada Sri Mulyani

Query 4

Siapa saja-kah karyawan yang PAROBAYA dan gajinya sedang, atau karyawan yang

PAROBAYA tapi masa kerjanya sudah lama?

SELECT NAMA

FROM KARYAWAN

WHERE(Umur = “PAROBAYA”) and (Gaji = “SEDANG”)

or MasaKerja = “LAMA”)

Tabel dibawah ini menunjukkan hasil query4, yaitu nama-nama karyawan yang

PAROBAYA dan yang memiliki gaji SEDANG, atau karyawan yang PAROBAYA tapi

masakerjanya sudah lama.

Tabel hasil query4

Derajat Keanggotaan

NI

P Nama

SEDAN

G

LAM

A

SEDAN

G atau

LAMA

PARO

BAYA

PAROBAY

A &

SEDANG

atau LAMA

01 Amalia 0 1 1 0.2 1

02 Satriawan 0 0 0 0 0

03

Sri

Mulyani 0.5 1 1 0 1

04 Achmadi 1 0 1 0 1

05 Bambang 0.4 0 0 0 0

06 Anhar 0.4 1 1 0.7 1

07

Samsuddi

n 1 0 1 0.1 1

08 Kumala 0.5 0 1 0 1

09 Aminah 1 0 1 0 1

10 Yudhi 0.4 0 0 0 0

Page 17: Bahan Latihan Prak Plush

17 Masagus Mochammad Yusuf, Ir, MKom

BAB 3

METODOLOGI

3.1 Peralatan

PC/Laptop

Software Turbo Prolog

Contoh Program Data Karyawan

Page 18: Bahan Latihan Prak Plush

18 Masagus Mochammad Yusuf, Ir, MKom

BAB 4

HASIL DAN ANALISI

4.1 Hasil

OUTPUT

Page 19: Bahan Latihan Prak Plush

19 Masagus Mochammad Yusuf, Ir, MKom

Page 20: Bahan Latihan Prak Plush

20 Masagus Mochammad Yusuf, Ir, MKom

Dalam pemograman bahasa prolog yang paling penting ialah tata cara penulisan huruf

, pemograman ini sama pada pemograman JAVA sangat terstruktur dan sangat sensitif

dalam penulisan maupun penempatan syntak dalam program yang telah kita buat.

Page 21: Bahan Latihan Prak Plush

21 Masagus Mochammad Yusuf, Ir, MKom

BAB 5

PENUTUP

A. Kesimpulan

Teknologi system logika fuzzy berkembang cukup jauh,dan memberikan

keuntungan dan perbaikan untuk kerja pada system kendali yang pernah

ada.perkembangan sisitem ini menuntut mutu sumber daya manusia yang

berpendidikan,seperti ilmuan dan engginer yang ahli dalam bidang teknik

sisitem fuzzy dan tidak lepas dari kondisi pendidikan dan kelengkapan alat-alat

yang mendukung perkembangan teknologi ini.

Dibidang aplikais fuzzy tidak hanya terdapat kendali system kendali

fuzzy,melainkan juga ada klasifikasi fuzzy dan diagnosis fuzzy.jadi system

fuzzy pada keadaan real,mempunyai ragam dan metode dan strategi

perkembangan yang dapat diterapkan pada masalah-masalah kendali saat ini.

Page 22: Bahan Latihan Prak Plush

22 Masagus Mochammad Yusuf, Ir, MKom

BAB 6

DAFTAR PUSTAKA

Wikipedia,2007.”Kecerdasan Buatan”[serial online].http://serial Wikipedia.com

Kristanto.2005.”kecerdasan buatan”[serial on line].http://www.komputansi.lipi.go.id

http://k12008.widyagama.ac.id/ai/diktatpdf/logika fuzzy.pdf

http://en.wikipedia.org/wiki/Visual_Prolog

http://fardiansyah7fold.wordpress.com/turbo-prolog/

http://mustafarizaldi.blogspot.com/2012/09/tentang-prolog.html

http://jurnalinformatika.blogspot.com/2012/10/running-turbo-prolog-with-dosbox.html

http://joksun.wordpress.com/tag/turbo-prolog/

http://swi-prolog.996271.n3.nabble.com/Conversion-from-Turbo-Prolog-to-SWI-PROLOG-

required-for-this-program-td12026.html

Page 23: Bahan Latihan Prak Plush

23 Masagus Mochammad Yusuf, Ir, MKom

Dari hasil penelitian didapatkan data KARYAWAN dalam bentuk tabel KARYAWAN, seperti terlihat dibawah ini ;

NIP Nama Tgl Lahir Th

Masuk Gaji/bln(Rp)

01 Amalia 26-Dec-1968 1996 1,750,000

02 Satriawan 27-Aug-1976 2002 1,600,000

03 Sri Mulyani 18-Sep-1971 1996 1,250,000

04 Achmadi 19-Oct-1978 1997 1,000,000

05 Bambang 16-May-1975 1994 500,000

06 Anhar 21-Jul-1964 1996 550,000

07 Samsuddin 17-Jun-1970 2001 1,450,000

08 Kumala 3-Jun-1974 1999 750,000

09 Aminah 24-Apr-1971 2003 850,000

10 Yudhi 15-Mar-1981 2000 475,000

Kemudian dari tabel KARYAWAN, kita olah menjadi suatu tabel temporer untuk menghitung umur karyawan dan masa kerjanya, tabel tersebut kita berinama KARYAWAN2, sebagai mana dibawah ini ;

NIP Nama Umur(th) MasaKerja Gaji/bln(Rp)

01 Amalia 37 10 1,750,000

02 Satriawan 30 4 1,600,000

03 Sri Mulyani 34 10 1,250,000

04 Achmadi 27 9 1,000,000

05 Bambang 31 12 500,000

06 Anhar 42 10 550,000

07 Samsuddin 36 5 1,450,000

08 Kumala 32 7 750,000

09 Aminah 35 3 850,000

10 Yudhi 25 6 475,000

NIP Nama Umur(th) MasaKerja Gaji/bln(Rp)

01 Amalia 37 10 1,750,000

02 Satriawan 30 4 1,600,000

03 Sri Mulyani 34 10 1,250,000

04 Achmadi 27 9 1,000,000

05 Bambang 31 12 500,000

06 Anhar 42 10 550,000

07 Samsuddin 36 5 1,450,000

08 Kumala 32 7 750,000

09 Aminah 35 3 850,000

10 Yudhi 25 6 475,000

Page 24: Bahan Latihan Prak Plush

24 Masagus Mochammad Yusuf, Ir, MKom

/* ======================================*/

/* PROGRAM MENCARI KARYAWAN PILIHAN */

/*======================================*/

domains

pegawai = string

ciri = symbol query = string

jawab = char

database

dbkaryawan (ciri)

dbbukan (ciri)

predicates

alasan (pegawai)

go

karyawan (query, ciri)

bukan (query, ciri)

ciri(ciri)

clear_fakta2

simpan(ciri,jawab)

tanya(query, ciri, jawab)

go_once

simpulan(pegawai)

solusi(pegawai)

goal

clearwindow,

makewindow(1,28,31," Analisa Data karyawan ",0,0,18,80),

attribute (29),

go,

removewindow.

Page 25: Bahan Latihan Prak Plush

25 Masagus Mochammad Yusuf, Ir, MKom

clauses

go:-

go_once,nl,nl,nl,nl,nl,

write("Ingin mengulang lagi [y/t] ? "),

readchar(Jawab),nl,

clearwindow,

Jawab = 'y',

go.

go_once:-

simpulan(_),!,

save("pegawai.dat"),

clear_fakta2.

go_once:-

write("Maaf karyawan tidak dapat disimpulkan "),nl,

attribute (30),

clear_fakta2.

karyawan(_,Ciri):-

dbkaryawan(Ciri),!.

karyawan(Query, Ciri):-

not(dbbukan(Ciri)),

tanya(Query, Ciri, Jawab),

Jawab = 'y'.

bukan(_,Ciri):-

dbbukan(Ciri),!.

bukan(Query, Ciri):-

not(dbkaryawan(Ciri)),

Page 26: Bahan Latihan Prak Plush

26 Masagus Mochammad Yusuf, Ir, MKom

tanya(Query, Ciri, Jawab),

Jawab = 't'.

tanya (Query, Ciri, Jawab):-

write (Query),

readchar (Jawab),

write (Jawab), nl,

simpan (Ciri, Jawab).

simpan(Ciri, 'y'):-

asserta(dbkaryawan(Ciri)).

simpan(Ciri, 't'):-

asserta(dbbukan(Ciri)).

clear_fakta2:-

retract(dbkaryawan(_)), fail.

clear_fakta2:-

retract(dbbukan(_)), fail.

clear_fakta2.

/* -------------------------CIRI-CIRI-------------------------*/

ciri(Ciri):-

dbkaryawan(Ciri),!.

ciri(Ciri):-

dbbukan(Ciri),!, fail.

Page 27: Bahan Latihan Prak Plush

27 Masagus Mochammad Yusuf, Ir, MKom

/****/

ciri(usia_muda):-

attribute (30),

karyawan ("Apakah karyawan yang anda maksud tergolong m

uda [y/t] ?", usia_muda).

/**1*/

ciri(usia_25thn):-

karyawan ("Apakah karyawan yang anda maksud berusia 25 t

ahun [y/t] ?",usia_25thn).

/**2*/

ciri(usia_27thn):-

karyawan ("Apakah karyawan yang anda maksud berusia 27 t

ahun [y/t] ?",usia_27thn).

/**3*/

ciri(usia_30thn):-

karyawan ("Apakah karyawan yang anda maksud berusia 30 t

ahun [y/t] ?",usia_30thn).

/**4*/

ciri(usia_31thn):-

karyawan ("Apakah karyawan yang anda maksud berusia 31 tahun [y/t]

?",usia_31thn).

/**5*/

ciri(usia_32thn):-

karyawan ("Apakah karyawan yang anda maksud berusia 32 tahun [y/t]

?",usia_32thn).

Page 28: Bahan Latihan Prak Plush

28 Masagus Mochammad Yusuf, Ir, MKom

/**6*/

ciri(usia_34thn):-

karyawan ("Apakah karyawan yang anda maksud berusia 34 tahun [y/t]

?",usia_34thn).

/**7*/

ciri(usia_35thn):-

karyawan ("Apakah karyawan yang anda maksud berusia 35 tahun [y/t]

?",usia_35thn).

/**9*/

ciri(usia_36thn):-

karyawan ("Apakah karyawan yang anda maksud berusia 36 tahun [y/t]

?",usia_36thn).

/**9*/

ciri(usia_37thn):-

karyawan ("Apakah karyawan yang anda maksud berusia 37 tahun [y/t]

?",usia_37thn).

/**9*/

ciri(usia_42thn):-

karyawan ("Apakah karyawan yang anda maksud berusia 42 tahun [y/t] ?",usia_42thn).

/*10*/

ciri(parobaya):-

karyawan ("Apakah karyawan yang anda maksud tergolong Parobaya [y/t] ?",parobaya).

/*11*/

ciri(usia_tua):-

karyawan ("Apakah karyawan yang anda maksud usianya cukup tua [y/t] ?",usia_tua).

/*12*/

ciri(gaji_rendah):-

karyawan ("Apakah karyawan yang anda cari termasuk bergaji rendah [y/t] ?",gaji_rendah).

/*13*/

ciri(gaji_475000):-

Page 29: Bahan Latihan Prak Plush

29 Masagus Mochammad Yusuf, Ir, MKom

karyawan ("Apakah karyawan yang anda cari bergaji Rp 475.000 [y/t] ?",gaji_475000).

/*14*/

ciri(gaji_500000):-

karyawan ("Apakah karyawan yang anda cari bergaji Rp 500.000 [y/t] ?",gaji_500000).

/*15*/

ciri(gaji_550000):-

karyawan ("Apakah karyawan yang anda cari bergaji Rp 550.000 [y/t] ?",gaji_550000).

/*16*/

ciri(gaji_sedang):-

karyawan ("Apakah karyawan yang anda maksud termasuk bergaji sedang [y/t] ?",gaji_seda

ng).

/*17*/

ciri(gaji_1000000):-

karyawan ("Apakah karyawan yang anda cari bergaji Rp 1.000.000 [y/t] ?",gaji_1000000).

/*18*/

ciri(gaji_850000):-

karyawan ("Apakah karyawan yang anda cari bergaji Rp 850.000 [y/t] ?",gaji_850000).

/*19*/

ciri(gaji_750000):-

karyawan ("Apakah karyawan yang anda cari bergaji Rp 750.000 [y/t] ?",gaji_750000).

/*20*/

ciri(gaji_tinggi):-

karyawan ("Apakah karyawan yang anda maksud termasuk bergaji tinggi [y/t] ?",gaji_tinggi)

.

/*21*/

ciri(gaji_1750000):-

karyawan ("Apakah karyawan yang anda cari bergaji Rp 1.750.000 [y/t] ?",gaji_1750000).

/*22*/

ciri(gaji_1600000):-

karyawan ("Apakah karyawan yang anda cari bergaji Rp 1.600.000 [y/t] ?",gaji_1600000).

/*23*/

ciri(gaji_1450000):-

Page 30: Bahan Latihan Prak Plush

30 Masagus Mochammad Yusuf, Ir, MKom

karyawan ("Apakah karyawan yang anda cari bergaji Rp 1.450.000 [y/t] ?",gaji_1450000).

/*24*/

ciri(gaji_1250000):-

karyawan ("Apakah karyawan yang anda cari bergaji Rp 1.250.000 [y/t] ?",gaji_1250000).

/*25*/

ciri(pegawai_baru):-

karyawan ("Aapakah karyawan yang anda maksud termasuk karyawan Baru [y/t] ?",pegawa

i_baru).

/*26*/

ciri(masa_3thn):-

karyawan ("Aapakah karyawan yang anda maksud masa kerjanya baru 3 tahun [y/t] ?",mas

a_3thn).

/*27*/

ciri(masa_4thn):-

karyawan ("Aapakah karyawan yang anda maksud masa kerjanya baru 4 tahun [y/t] ?",mas

a_4thn).

/*28*/

ciri(masa_5thn):-

karyawan ("Aapakah karyawan yang anda maksud masa kerjanya baruh 5 tahun [y/t] ?",ma

sa_5thn).

/*29*/

ciri(masa_6thn):-

karyawan ("Aapakah karyawan yang anda maksud masa kerjanya baru 6 tahun [y/t] ?",mas

a_6thn).

/*30*/

ciri(masa_7thn):-

karyawan ("Aapakah karyawan yang anda maksud masa kerjanya baru 7 tahun [y/t] ?",mas

a_7thn).

/*31*/

ciri(masa_9thn):-

karyawan ("Aapakah karyawan yang anda maksud masa kerjanya baru 9 tahun [y/t] ?",mas

a_9thn).

/*32*/

ciri(masa_10thn):-

Page 31: Bahan Latihan Prak Plush

31 Masagus Mochammad Yusuf, Ir, MKom

karyawan ("Aapakah karyawan yang anda maksud masa kerjanya sudah 10 tahun [y/t] ?",m

asa_10thn).

/*32*/

ciri(masa_12thn):-

karyawan ("Aapakah karyawan yang anda maksud masa kerjanya sudah 12 tahun [y/t] ?",m

asa_12thn).

/*33*/

ciri(pegawai_lama):-

karyawan ("Apakah yang anda maksud adalah karyawan Lama [y/t] ?",pegawai_lama).

/*----------------------------------simpulan------------------------------------*/

/**1*/

simpulan ("Yudhi"):-

ciri (usia_muda),

ciri (usia_25thn),

ciri (gaji_rendah),

ciri (gaji_475000),

ciri (pegawai_baru),

ciri (masa_6thn),

alasan("Yudhi").

Page 32: Bahan Latihan Prak Plush

32 Masagus Mochammad Yusuf, Ir, MKom

/**2*/

simpulan ("Achmadi"):-

ciri (usia_muda),

ciri (usia_27thn),

ciri (gaji_sedang),

ciri (gaji_1000000),

ciri (pegawai_baru),

ciri (masa_9thn),

alasan("Achmadi").

/**3*/

simpulan ("Satriawan"):-

ciri(usia_muda),

ciri (usia_30thn),

ciri(gaji_tinggi),

ciri (gaji_1600000),

ciri(pegawai_baru),

ciri (masa_4thn),

alasan("Satriawan").

/**4*/

simpulan ("Bambang"):-

ciri (usia_muda),

ciri (usia_31thn),

ciri (gaji_rendah),

ciri (gaji_500000),

ciri (pegawai_lama),

ciri (masa_12thn),

alasan("Bambang").

/**5*/

simpulan ("Kumala"):-

ciri (usia_muda),

ciri (usia_32thn),

ciri (gaji_sedang),

ciri (gaji_750000),

ciri (pegawai_baru),

ciri (masa_7thn),

alasan("Kumala").

/**6*/

simpulan ("Sri Mulyani"):-

Page 33: Bahan Latihan Prak Plush

33 Masagus Mochammad Yusuf, Ir, MKom

ciri (usia_muda),

ciri (usia_34thn),

ciri (gaji_tinggi),

ciri (gaji_1250000),

ciri (pegawai_baru),

ciri (masa_10thn),

alasan("Sri Mulyani").

/**7*/

simpulan ("Aminah"):-

ciri (usia_muda),

ciri (usia_35thn),

ciri (gaji_sedang),

ciri (gaji_850000),

ciri (pegawai_baru),

ciri (masa_3thn),

alasan("Aminah").

/**8*/

simpulan ("Samsuddin"):-

ciri (usia_muda),

ciri (usia_36thn),

ciri (gaji_tinggi),

ciri (gaji_1450000),

ciri (pegawai_baru),

ciri (masa_5thn),

alasan ("Samsuddin").

/**9*/

simpulan ("Amalia"):-

ciri(usia_muda),

ciri (usia_37thn),

ciri(gaji_tinggi),

ciri (gaji_1750000),

ciri(pegawai_baru),

ciri (masa_10thn),

alasan("Amalia").

/*10*/

simpulan ("Anhar"):-

ciri (parobaya),

ciri (usia_42thn),

ciri (gaji_rendah),

ciri (gaji_550000),

Page 34: Bahan Latihan Prak Plush

34 Masagus Mochammad Yusuf, Ir, MKom

ciri (pegawai_baru),

ciri (masa_10thn),

alasan("Anhar").

alasan ("Amalia"):-

solusi ("Aamalia Usia 37 thn, masih MUDA, gaji 1.750.000 cukup TINGGI").

alasan ("Satriawan"):-

solusi ("Satriawan Usia 30 thn masih MUDA, gaji 1.600.000 cukup TINGGI").

alasan ("Sri Mulyani"):-

solusi ("Sri Mulyani Usia 34 thn, MUDA, gaji 1.250.000, cukup TINGGI").

alasan ("Achmadi"):-

solusi ("Achmadi Usia 27 thn, MUDA, gaji 1.000.000, katagori SEDANG").

alasan ("Bambang"):-

solusi ("Bambang Usia 31 thn, MUDA, gaji 500.000, katagori RENDAH").

alasan ("Anhar"):-

solusi ("Anhar Usia 42 thn, PAROBAYA, gaji 550.000, katagori RENDAH").

alasan ("Samsuddin"):-

solusi ("Samsuddin Usia 36 thn, MUDA, gaji 1.450.000 cukup TINGGI").

alasan ("Kumala"):-

solusi ("Kumala Usia 32 thn, MUDA, gaji 750.000, katagori SEDANG").

alasan ("Aminah"):-

solusi ("Aminah Usia 35 thn, MUDA, gaji 850.000, katagori SEDANG").

alasan ("Yudhi"):-

solusi ("Yudhi Usia 25 thn, MUDA, gaji 475.000, katagori RE

NDAH").

solusi (Pegawai):-

upper_lower (Pegawai, Pegawai), nl, nl,

write ("Karyawan yang Anda cari adalah : ", Pegawai), nl.

Bila program benar dan dijalankan, maka outputnya sbagaimana dibawah ini;

Page 35: Bahan Latihan Prak Plush

35 Masagus Mochammad Yusuf, Ir, MKom