bahan latihan prak plush
DESCRIPTION
bahan praktikumTRANSCRIPT
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.
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
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
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
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.
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 ;
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
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
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
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
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
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
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
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
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
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
17 Masagus Mochammad Yusuf, Ir, MKom
BAB 3
METODOLOGI
3.1 Peralatan
PC/Laptop
Software Turbo Prolog
Contoh Program Data Karyawan
18 Masagus Mochammad Yusuf, Ir, MKom
BAB 4
HASIL DAN ANALISI
4.1 Hasil
OUTPUT
19 Masagus Mochammad Yusuf, Ir, MKom
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.
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.
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
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
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.
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)),
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.
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).
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):-
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):-
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):-
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").
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"):-
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),
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;
35 Masagus Mochammad Yusuf, Ir, MKom