IMPLEMENTASI ARTIFICIAL INTELLIGENCE DALAM PENYELESAIAN MASALAH DENGAN METODE UNIFICATION DAN BACK TRACKING VISUAL PROLOG (Studi Kasus: pemilihan mahasiswa terbaik) Citra Kurniawan, ST, MM 1 Program Studi Teknik Elektronika Sekolah Tinggi Teknik Malang ABSTRAK Manusia menyelesaikan sebuah permasalahan dengan dasar pengetahuan dan pengalaman. Pengetahuan diperoleh dari proses belajar yang dilakukan manusia, semakin banyak pengetahuan yang dimiliki maka permasalahan yang ada dapat diselesaikan dengan mudah. Manusia juga memiliki kemampuan untuk menalar yang baik. Tanpa nalar yang baik manusia dengan segudang pengalaman dan pengetahuan tidak akan dapat menyelesaikan masalah. Demikian juga dengan kemampuan menalar yang
sangat
baik,namun
tanpa
bekal
pengetahuan
dan
pengalaman
yang
memadai,manusia juga tidak akan bisa menyelesaikan masalah dengan baik. Kemampuan untuk menalar yang ditunjang dengan pengetahuan dan pengalaman diperoleh dengan proses waktu yang sangat lama, sedangkan permasalahan kadang muncul secara tiba-tiba. Permasalahan seperti di atas dapat diatasi dengan menggunakan ilmu Artificial Intelligence. Artificial Intelligence atau kecerdasan buatan diperlukan untuk memahami bahasa komputer. Artificial Intelligence merupakan salah satu bagian ilmu komputer yang membuat agar mesin (komputer) dapat melakukan pekerjaan seperti dan sebaik yang dilakukan oleh manusia. Dengan adanya Artificial Intelligence ini maka memungkinkan manusia untuk menyelesaikan masalah dengan cepat tanpa harus membutuhkan proses pengalaman, pengetahuan dan nalar yang baik karena pengalaman, pengetahuan dan nalar tersebut sudah disimpan berupa data referensi yang tersimpan. Artificial Intelligence menggunakan bahasa pemograman Visual prolog untuk mendeskripsikan logika variabel.
Implementasi Artificial Intelligence dengan
menggunakan Visual prolog ini dapat mempermudah manusia untuk menyelesaikan masalah. Kata kunci : Artificial Intelligence, bahasa komputer, kemampuan nalar, pengetahuan, Variabel, pengalaman, bahasa pemograman, Visual Prolog
1.
PENDAHULUAN
1.1
LATAR BELAKANG
Proses
Berdasarkan uraian di atas, penulisan
penyelesaian
masalah
penelitian
ini
akan
membahas
dilakukan dengan cara menganalisa
mengenai bagaimana “IMPLEMENTASI
terlebih dahulu solusi yang diharapkan
ARTIFICIAL INTELLIGENCE DALAM
dari
Solusi
PENYELESAIAN MASALAH DENGAN
permasalahan didapatkan dari proses
METODE UNIFICATION DAN BACK
penyelesaian
TRACKING VISUAL PROLOG.(Studi
permasalahan.
berdasarkan
pengalaman, pengetahuan dan nalar. Untuk
mendapatkan
Kasus: pemilihan mahasiswa terbaik)”
penyelesaian
masalah yang cepat maka dibutuhkan
1.2
sebuah
Artificial
Berdasarkan latar belakang di atas,
Intelligence. Dengan adanya Artificial
maka dapat diambil rumusan masalah
Intelligence maka setiap permasalahan
sebagai berikut:
implementasi
dapat dianalisis menjadi suatu struktur data,
dimana
data
tersebut
RUMUSAN MASALAH
1. Bagaimana
dapat
proses
penyelesaian
masalah
pada
Artificial Intelligence.
digunakan sebagai referensi.
2. Bagaimana proses kerja Visual Proses penyelesaian masalah dapat
Prolog
dilakukan
Intelligence.
dengan
menggunakan
Articial Intellegence. Dimana bahasa pemograman
yang
dipakai
pemrograman
menggunakan
bahasa
Artificial
3. Bagaimana implementasi Visual Prolog
adalah
bahasa pemograman Visual Prolog. Bahasa
pada
dalam
penyelesaian
masalah.
ini deklaratif
1.3
BATASAN MASALAH
dimana pemrograman memberi fakta
Berdasarkan latar belakang di atas,
dan
maka dapat diambil batasan masalah
aturan
untuk
selanjutnya
diselesaikan oleh Visual Prolog secara deduktif sehingga menghasilkan suatu kesimpulan.
Visual
prolog
menyelesaikan permasalahan secara deduktif atau menurunkan kesimpulan
sebagai berikut: 1. Aplikasi
Artificial
menggunakan
Intelligence bahasa
pemograman Visual Prolog. 2. Penyelesaian
masalah
sebagai jawaban berdasarkan fakta
diselesaikan berdasarkan logika
(fact)
pemikiran bahasa pemograman.
dan
aturan
(rule)
pencarian dari atas ke bawah.
dengan
1.4
TUJUAN PENELITIAN
Tujuan
yang
ingin
dicapai
pada
penelitian ini adalah sebagai berikut :
Bahasa
pemrogaman
sebuah
instruksi
memerintah
merupakan
standar
untuk
komputer
agar
1. Menyelesaikan masalah dengan
mempunyai fungsi tertentu. Bahasa
metode Artificial Intelligence.
pemrograman ini merupakan suatu
2. Menjelaskan proses kerja Visual
himpunan dari aturan sintaks dan
Prolog
pada
Artificial
Intelligence.
semantik
yang
mendefinisikan
3. Implementasi
Visual
Prolog
dalam penyelesaian masalah.
dipakai
program
untuk
komputer.
Bahasa ini memungkinkan seorang programmer
dapat
menentukan
secara persis data mana yang akan 1.5
MANFAAT PENELITIAN
Manfaat
dari
menentukan
penelitian metode
ini
diolah oleh komputer, bagaimana data adalah
penyelesaian
masalah melalui bahasa pemograman
ini
akan
disimpan/diteruskan,
dan
jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.
Visual Prolog. Bahasa
pemograman
membantu
2.
TINJAUAN PUSTAKA
manusia untuk saling berhubungan
2.1
Bahasa Pemograman sebagai
dengan mesin (computer). Bahasa
bahasa mesin
pemrograman dapat diklasifikasikan menjadi tingkat rendah, menengah,
Bahasa pemrograman adalah teknik
dan tingkat tinggi. Pergeseran tingkat
komunikasi
dari
standar
mengekspresikan
untuk
instruksi
kepada
rendah
menunjukkan
menuju kedekatan
terhadap
komputer. Layaknya bahasa manusia,
”
setiap bahasa memiliki tata tulis dan
tingkat
aturan tertentu. Bahasa pemrograman
komputer,
memfasilitasi
dapat dibedakan sebagai berikut :
seorang
programmer
secara tepat menetapkan data apa
”
tinggi
bahasa
manusia . kedekatan
1. Bahasa
mesin,
memberikan
selanjutnya, bagaimana data tersebut
computer
disimpan dan dikirim, dan apa yang
bahasa binner.
yang variatif.
dengan
mesin
bahasa pemrogaraman
yang sedang dilakukan oleh komputer
akan dilakukan apabila terjadi kondisi
Berdasarkan
bahasa
perintah dengan
yang kepada
memakai
2. Bahasa tingkat rendah, bahasa pemograman ini biasanya disebut
bahasa
assembly,
memberikan
Dari gambar 1 dapat dilihat bahwa
perintah kepada computer dengan
bahasa
memakai kode – kode singkat
pada lima generasi. Pada generasi
(kode mnemonic), ), contohnya
pertama, bahasa yang dipergunakan
MOV, SUB, CMP, JMP, JGE, JL,
berorientasi
LOOP.
disusun
3. Bahasa tingkat menengah, bahasa pemrogaman
yang
pemograman
pada
berkembang
mesin.
Program
menggunakan
bahasa
mesin/kode mesin. Bahasa mesin ini sangat sulit dipahami oleh orang awam
mempergunakan intruksi bahasa
sehingga
manusia yang bersifat simbolik, ,
menguasai operasi komputer secara
contohnya {, }, ?, <<, >>, &&, ||.
teknis.
4. Bahasa
tingkat
tinggi,
bahasa
pemograman mempergunakan berasal
dari
instruksi
unsure
programmer
Kode
binner
dipergunakan
"0"
harus dan
"1"
dengan
cara
kode
tersebut
yang
mengkonbinasikan
yang
untuku berkomunikasi kepada mesin.
kata-kata
manusia, contohnya begin, end, if,
Pada bahasa pemograman generasi
for, while, and, or.
kedua,
bahasa pemrograman
yang
digunakan adalah bahasa rakitan / Assembly. Bahasa Assembly adalah
1 MESIN
2
bahasa
pemrograman
menggunakan
instruksi
yang
yang sama
seperti pada bahasa mesin berupa instruksi dan variable yang mempunyai nama sehingga mempermudah proses
3
pemrograman. pemograman
4
generasi
bahasa ketiga
menggunakan pendekatan procedural. MANUSIA
5
Pada
Instruksi program ditulis menggunakan kata-kata yang biasa digunakan oleh manusia.
Contoh
:
WRITE
(untuk
menampilkan kelayar), READ (untuk membaca Gambar
1.
Perkembangan pemograman
bahasa
keyboard).
data
masukan
dari
Pada bahasa pemograman generasi ke
Pengertian Artificial Intelligence dapat
empat,
ditinjau dari dua pendekatan antara lain
bahasa
pemrograman
dirancang untuk mengurangi waktu
pendekatan
pemrogram untuk membuat program
Approach) dan pendekatan teknik (An
sehingga pembuatan program dibuat
Engineering
dengan waktu lebih cepat. Program ini
Ilmiah (A
dapat digunakan oleh pemakai yang
Approach) merupakan
kurang
dasar
mengenal
pemrograman
hal-hal
tanpa
teknis
perlu
seorang
programmer
Sebagai
contoh
Access.
Sedangkan
bantuan
professional.
adalah
Microsoft
Scientific
Approach).
Pendekatan Scientific
ilmiah
sebelum
yang
invansi
Pendekatan
pendekatan berkembang
ke
ilmiah
computer.
melihat
batas
sementara dari komputer, dan dapat
bahasa
diatasi
bahasa
teknologi
lanjutan.
Sedangkan
pemrograman yang ditujukan untuk
pendekatan
teknik (An
Engineering
menangani
Approach), mengacu pada metode-
pemograman
ke
pada
ilmiah (A
lima.
kecerdasan
buatan
dengan
(Artificial Antelligence) (AI). AI adalah
metode
disiplin
menggunakan
dari
mempelajari
ilmu cara
komputer komputer
yang meniru
yang
Penggunaan
perkembangan
digunakan sistematika
logika
sangat
dan logika. penting
kecerdasan manusia. Contoh bahasa
untuk pembentukan nalar pada saat
pemrograman : PROLOG dan LISP.
penyelesaian
masalah.
Penggunaan
nalar pada metode ini didukung oleh 2.2 Konsep Artificial Intelligence
pengetahuan dan pengalaman yang
Artificial Intelligence adalah sub bidang
dimiliki.
pengetahuan bagaimana
yang
mempelajari
implementasi
bahasa
Artificial Intelligence
Input
Basis Pengetahuan
pemograman dapat memdeskripsikan bahasa manusia berdasarkan bahasa mesin (computer) . Berdasarkan John McCarthy (1956), Artificial Intelligence adalah Metode untuk mengetahui dan memodelkan proses – proses pikiran manusia dan mendesain mesin agar dapat meniru perilaku manusia.
Output
Motor Inferensi
Masalah
Solusi
Gambar 2. Proses pemecahan masalah Artificial Intelligence Artificial Intelligence dipakai diberbagai bidang. Intelligence
Penggunaan memberikan
Artificial manfaat
sebagai berikut: 1. Aplikasi komputer yang sangat mudah bagi pemakai.
2. Peningkatan masalah
pemecahan
secara
cepat
dan
efisien.
Bahasa
ini
Colmerauer
3. Penyelesaian
masalah
yang
diciptakan dan
oleh
Robert
Alain
Kowalski
sekitar tahun 1972 dalam upaya untuk
memiliki keterbatasan data dan
menciptakan
fakta.
pemrograman
suatu yang
bahasa
memungkinkan
4. Peningkatan produktifitas
pernyataan logika alih-alih rangkaian
5. Efektifitas pencarian data atau
perintah untuk dijalankan komputer.
pola
yang
mempunyai
data
yang besar.
Berbeda dengan bahasa pemrograman yang
lain,
yang
menggunakan
algoritma konvensional sebagai teknik 2.3
Visual Prolog
Visual
Prolog
pencarian metode
menggunakan
yang
(heuristic)
pencariannya
pohon
pada
Delphi,
teknik
Pascal, BASIC, COBOL dan bahasa
heuristik
pemrograman yang sejenisnya, maka
menggunakan
prolog menggunakan teknik pencarian
disebut
dengan
seperti
logika.
Bahasa
yang
di
sebut
heuristik
(heutistic)
pemograman Visual Prolog banyak
dengan menggunakan pohon logika.
dikembangkan
Berikut adalah kegunaan dari visual
di
University
of
Melbourne oleh Lee Naish dan John
prolog :
Loyd. Prolog dalam perkembangannya
1. Visual
prolog
menyelesaikan
telah dikombinasikan dengan berbagai
permasalahan secara deduktif atau
bahasa
menurunkan kesimpulan sebagai
pemrograman
terutama
functional programming.
jawaban berdasarkan fakta (fact) dan aturan (rule) dengan pencarian
Bahasa Visual Prolog ini secara intensif digunakan
pada
proyek
komputer
generasi ke-5 di Jepang. Walaupun demikian sebetulnya penggunaannya tidak
dengan prosedural sebagai berikut: 3. Bahasa
deklaratif
hanya
membutuhkan deklarasi atau uraian
Intelligence saja. Visual Prolog adalah
masalah sedangkan pada bahasa
bahasa pemrograman logika atau di
prosedural memerlukan perintah.
juga
procedural.
untuk
2. Perbedaan antara bahasa deklaratif
Artificial
sebut
terbatas
dari atas ke bawah.
sebagai Namanya
bahasa
non-
4. Visual prolog adalah goal oriented
diambil
dari
yaitu apa yang harus dipecahkan,
bahasa Perancis programmation en logique (Pemrograman logika).
sedangkan
bahasa
prosedural
menjawab
bagaimana
harus
memecahkan masalah.
Selain
itu,
seperti
5. Prolog tidak memiliki struktur
visual
pikiran
. Prolog
bekerja
manusia,
proses
pemecahan masalah bergerak di dalam
seperti deklarasi, dan lain-lainnya, lain
ruang masalah menuju suatu tujuan
yang ada hanyalah clause
(jawaban tertentu).
Berikut
perbedaan
pemogramam
umum
dan
bahasa
Visual prolog bekerja menggunakan
bahasa
empat dasar. Bagian dasar dari prolog
pemograman prolog.
dapat dilihat pada gambar 2 berikut :
Tabel 1. Perbedaan pemograman prolog dan pemograman umum. Bahasa Pemograman Umum
Bahasa Permograman Prolog
Algoritma / prosedur untuk memecahkan masalah (procedural languange) Program menjalankan prosedur yang sama berulang-ulang dengan data masukan yang berbeda-beda
Object oriented languange atau declarative language
.Prosedur dan pengendalian program ditentukan oleh programmer dan perhitungan dilakukan sesuai dengan prosedur yang telah dibuat
Section Predicates
bahasa bahasa
Tidak terdapat prosedur, tetapi hanya kumpulan data-data data objek (fakta) yang akan diolah, dan relasi antar objek tersebut memb membentuk aturan yang diperlukan untuk mencari suatu jawaban Programmer menentukan tujuan (goal), dan komputer menentukan bagaiman bagaimana cara mencapai tujuan tersebut serta mencari jawabannya.
Program Visual Prolog
Section Clauses
Deklarasi Predikat
Section Domains
Gambar 3. Bagian dasar program visual prolog Sumber : Boer, Thomas (2008) Pada gambar 2 di atas, dapat dilihat bahwa program
prolog terdiri
dari
empat bagian dasar yaitu, Section Dari table 1 di atas dapat dilihat bahwa
Domains, Section Predicates, Predicat Section
bahasa
Clauses,
pemograman
visual
prolog
dan
Deklarasi
predikat.
dapat digunakan untuk memecahkan
Section domains merupakan bagian
masalah yang tidak terstruktur, dan
dasar dari visual dasar yang dapat
prosedur
memdeklarasikan
diketahui,
pemecahannya tidak khususnya
untuk
memecahkan masalah non numeric.
variabel
terhadap
data yang sejenis, sebagai contoh :
DOMAINS
merupakan program utama dimasukkan
nama, jenis_kelamin = symbol
pada bagian Deklarasi Predikat.
umur = integer
PREDICATES
Dasar
pemrograman
Visual
Prolog
orang(nama, , jenis_kelamin, umur)
dalam bahasa pemrograman dikenal beberapa istilah. Istilah dalam Visual
Pada DOMAINS di atas, variabel nama
Prolog antara lain adalah fakta, aturan,
dan jenis_kelamin dikelompok menjadi
Klausa, Relasi, dan Variabel. Fakta
satu
adalah kenyataan atau kebenaran yang
jenis
tipe
sedangkan
variabel
dikelompokkan
diketahui,
tipe
variabel
antara dua object atau lebih. Fakta
Pengelompokan variabel
dapat juga dideklarasikan berupa kata
berdasarkan tipe variabel yang sama
sifat. Aturan merupakan logika yang
untuk mencegah kesalahan logika pada
dirumuskan dalam bentuk relasi sebab
program
mempermudah
akibat dan menunjukkan bagaimana
pengelompokan variabel pada fungsi
fakta – fakta berinteraksi satu sama lain
utama program.
untuk membentuk suatu kesimpulan.
menjadi “integer”.
umur
“symbol”,
satu
jenis
dan
dan
menyatakan
relasi
Aturan yang dideklarasikan pada Visual Bagian Section
dasar
yang
kedua
Predicates.
mendefinsikan
adalah Sebelum
predikat
di
prolog merupakan suatu kalimat yang bersyarat.
section
clauses, maka predikat tersebut harus
Klausa adalah suatu ungkapan atau
dideklarasikan
di
susunan kata yang didalam Prolog
section predicates karena Visual Prolog
dapat berupa fakta atau aturan. Dalam
tidak akan mengenal predikat yang kita
suatu klausa dapat terdiri dari beberapa
tuliskan tersebut. Proses selanjutnya
sub-klausa,
adalah Section Clauses. Pada Section
dengan yang lain dengan tanda (,)
Clauses,
fakta
atau (;).
untuk
tabel dengan jumlah n kolom dan
dipergunakan
terlebih
aturan
dahulu
dan untuk
yang
Sedangkan
dihubungkan satu relasi
adalah
mendeklarasikan struktur dari fungsi
terdiri
program. Bagian dasar yang keempat
maupun aturan dan variabel adalah
adalah Deklarasi Predikat. Program
predikat yang mempunyai nilai.
utama dideklarasikan pada deklarasi predikat.
Fungsi-fungsi
yang
dari
beberapa
baris
fakta
2.3
Unifikasi
dan
Lacak
Balik
(Unification and Backtracking)
program
berjalan
cepat
karena
deklarasi data tidak banyak.
Unifikasi adalah proses pencocokan atau
perbandingan
untuk
mencari
Selain unifikasi, dalam penyelesaian
jawaban pada nilai suatu variabel. Pada
masalah
proses unifikasi terdapat hal-hal yang
backtracking atau runut balik. Runut
perlu
diperhatikan
didasarkan
pada
metode
terkait
dengan
balik merupakan strategi pencarian
Proses
unifikasi
yang arahnya kebalikan dari runut
terjadi pada sesama argument yang
maju. Proses pencarian dimulai dari
sama.
tujuan, yaitu kesimpulan yang menjadi
konsistensi
logika.
solusi permasalahan yang dihadapi. Pada waktu menyelesaikan masalah, seringkai seseorang harus menelusuri suatu jalur untuk mendapatkan konklusi yang logis. Jika konklusi ini tidak memberikan Gambar 4. Bentuk Unifikasi Sumber: Bratko (2001)
jawaban
yang
dicari,
orang tersebut harus memilih jalur yang lain.
Visual
Prolog
menggunakan
Pada unifikasi, hasil yang didapatkan
metode runut balik untuk menemukan
tidak boleh mengakibatkan variabel
suatu solusi dari permasalahan yang
mempunyai
atau
diberikan. Visual Prolog dalam memulai
bertentangan. Dengan adanya teknik
mencari solusi suatu permasalahan
Unifikasi ini, variabel yang digunakan
(atau goal) harus membuat keputusan
dapat
kelompok
di antara kemungkinan-kemungkinan
memiliki
yang ada. Visual Prolog menandai di
kesamaan tipe. Unifikasi pada Visual
setiap percabangan (dikenal dengan
Prolog mengimplementasikan beberapa
titik lacak balik) dan memilih subgoal
prosedur yang juga dilakukan oleh
pertama untuk telusuri. Jika subgoal
beberapa bahasa dengan melewatkan
tersebut
parameter,
data,
menemukan jalan buntu), Visual Prolog
mengakses
akan lacakbalik ke titik runut balik
variabel
nilai
dimasukkan yang
pada
sama
jika
menyeleksi
membangun struktur
ganda
dan
struktur,
tipe
pemberian
nilai
(assignment). Adanya unifikasi variabel menyebabkan
proses
eksekusi
gagal
(ekivalen
dengan
terakhir dan mencoba alternatif subgoal yang lain.
Mekanisme
runut
3.
METODOLOGI PENELITIAN
menghasilkan pencarian yang tidak
3.1.
Studi Literatur
perlu, akibatnya program menjadi tidak
Studi literatur yang dibutuhkan adalah
efisien.
Pada
kebutuhan Prolog jawaban
kasus
untuk
untuk
balik
dapat
lain,
suatu
proses
memaksa
Visual
Visual Prolog.
melanjutkan
tambahan
penyelesaian
masalah
dan
mencari
walaupun
goal
3.2.
Analisis Kebutuhan
tersebut sudah terpenuhi. Visual Prolog
Kebutuhan tools sebagai alat untuk
menyediakan
dua
memperbolehkan
metode
yang
simulasi adalah bahasa pemograman
kita
untuk
Visual Prolog 5.2
mengendalikan mekanisme lacak balik yaitu predikat fail yang digunakan untuk
3.3.
Desain Penelitian
memaksa lacakbalik dan predikat cut
Perencanaan dengan Visual Prolog
(ditandai dengan !) yang digunakan
dilakukan dengan cara mengidentifikasi
untuk mencegah lacakbalik.
terlebih dahulu masalah yang terjadi, kemudian
Pada
metode
predikat
fail,
Visual
Prolog akan memulai lacakbalik jika ada panggilan yang gagal. Pada situasi tertentu,
ada
kebutuhan
memaksa
lacakbalik
dalam
untuk rangka
mencari alternatif solusi. Visual Prolog menyediakan predikat khusus fail untuk memaksa kegagalan sehingga memicu terjadinya lacakbalik.. Pada predikat Cut, Visual Prolog memiliki cut yang digunakan untuk mencegah lacakbalik, ditulis berupa sebuah tanda seru (!). Efek dari cut adalah sederhana, yaitu tidak akan memungkinkan terjadinya lacakbalik melewati sebuah cut. Ketika proses melewati cut, pemanggil ke cut dinyatakan
sukses
dan
berikutnya (jika ada) dipanggil.
subgoal
permasalahan
tersebut
dianalisis berdasarkan metode Unifikasi dan Backtracking.
3.4.
Metode Pelaksanaan
3.5.
Pengujian
Pengujian
dari
pada
didasarkan
penelitian
pada
masalah
adalah
penentuan
ini
mahasiswa terbaik. Mahasiswa kategori
efektifitas
berprestasi memiliki syarat sebagai
penyelesaian masalah.
berikut :
1) Mempunyai IPK sama
dengan atau di atas 3,5 (skala 4), 3.5
Pengujian
Pengujian
(variabel GPA). 2) Mahasiswa tidak
pada
didasarkan
penelitian
pada
ini
efektifitas
penyelesaian masalah
dalam
masa
cuti
kuliah
(variabel
Probation). 3) Mahasiswa tidak dalam masa hukuman (variabel Punishment). 4) Mahasiswa kandidat berprestasti
3.6. Untuk
Teknik Analisis Data mengetahui
apakah
adalah bahasa
mahasiswa
mendapatkan
yang
reward
pernah (predikat
Visual Prolog dapat menyelesaikan
honor_student). Berikut adalah data
masalah.
mahasiswa yang akan dipilih:
3.7.
Pengambilan Kesimpulan
Pengambilan
kesimpulan
dilakukan
setelah semua tahapan proses unifikasi dan runut balik dari visual prolog dilakukan. 4. PEMBAHASAN
DAN
HASIL
PENELITIAN Bab ini memuat pembahasan proses
Tabel 2. Daftar mahasiswa Mhs Billy Kurniawan Joni Santoso Raymond Pribadi David Hedler
GPA
Probation
Punishment
3,5
no
yes
no
no
no
Non Akademik
no
no
no
no
Akademik
no
yes
Sandra lee
2,75
Non Akademi k
yes
no
Mandy Few David Moch
2,0 3,7 3,4
3,8
yes
3,1
no
Award
Akademik
Akademik no
penelitian, hasil penelitian dan analisis
Dari tujuh mahasiswa pada tabel 2 di
terhadap hasil penelitian yang telah
atas, kemudian diproses sesuai dengan
dibuat. Proses pelaksanaan penelitian
syarat
untuk penyelesaian masalah dibagi
berprestasi.
menjadi dua tahap, tahap unifikasi
dipilih harus memiliki kriteria yang
(Unification) dan tahap runut balik
sesuai dengan syarat yang ditetapkan.
(Backtracking).
Unifikasi
Berikut adalah proses unifikasi pada penyelesain masalah. Sebagai contoh
untuk
menjadi
mahasiswa
Mahasiswa terbaik yang
kemudian diseleksi kembali mahasiswa
terbaik.
menjadi
Berikut Ber
listing
program Visual Prolog :
Listing Program : domains name = symbol gpa = real non_academic,competition,academic,punishment,t ype_award,type_academic = string award = award(name, type_award, type_academic) predicates nondeterm honor_student(name) nondeterm student(name, gpa) nondeterm probation(name) nondeterm best_student(name) nondeterm punishment(name) nondeterm academic(name) nondeterm non_academic(name) academic(competition) awarded(name,competition) awarded(name,competition clauses /*-----------------------------------*/ honor_student(Name):honor_student(Name): student(Name, GPA), GPA>=3.5, not(probation(Name)), not(punishment(Name)). best_student(Name):best_student(Name): honor_student(Name), not(non_academic(competition)), non_academic(competition)), academic(matematics).
Gambar
6.
Proses pemilihan mahasiswa terbaik
Pada gambar 6, dapat dilihat bahwa proses pemilihan mahasiswa terbaik dimulai dengan input data mahasiswa mahas sesuai kategori pemilihan. Ada dua tahap dalam pemilihan, tahap pertama adalah
seleksi
untuk
student("Billy Kurniawan", 3.5). student("Joni Santoso", 2.0). student("Raymond Pribadi", 3.7). student("David Hedler", 3.4). student("Sandra lee", 2.75). student("Mandy Few", 3.8). student("David Moch",3.1). academic(matematics). academic(phisics). academic(biology). non_academic(chess). non_academic(karate). awarded("Raymond Pribadi",matematics). awarded("Sandra lee",chess). awarded("Mandy Few",biology). awarded("David Hedler",matematics). probation("Mandy Few"). probation("David Moch"). punishment("Billy Kurniawan"). punishment("Sandra lee").
memilih /*-------------------------------------*/
mahasiswa mahasiswa
berprestasi. berprestasi
Hasil
dari
tersebut
goal /*--------------------------*/ best_student(Name).
Backtracking
Untuk
mengetahui
balik,
akan
langkah
diamati
bagaimana
Hasil Penelitian
terjadinya
runut
Hasil penelitian dari bahasa visual
langkah
demi
prolog
Visual
Prolog
adalah
mahasiswa
dengan
nama “Raymond Pribadi”. Raymond
mencari solusi dari goal yang diberikan.
terpilih
Visual
untuk
karena memenuhi dua kriteria yaitu
“gpa”,
merupakan “honor_student” dan pernah
prolog
memanggil
mencoba variabel
“punishment”,”probation”,
kemudian
sebagai
mahasiswa
terbaik
mendapatkan award “academic”.
mencari variabel tersebut pada proses variabel unifikasi. Jika variabel yang dipanggil mengalamai kecocokan maka proses
selanjutnya
adalah
memasukkan variabel tersebut pada “clauses”
sebagai
Pemanggilan
fungsi
kembali
program. tersebut
diperlukan sebagai proses runut r balik variabel jika variabel yang digunakan
Gambar
8.
Hasil dari pemilihan mahasiswa terbaik.
tidak memenuhi syarat yang ditentukan fungsi program.
Dari gambar 8 dapat dilihat bahwa terdapat
dua
menguatkan, sebagai
solusi
yang
“Raymond
mahasiswa
saling Pribadi”
“honor_student”
dan mahasiswa “best_student”. “best_student
5.
KESIMPULAN DAN SARAN
5.1
KESIMPULAN
Kesimpulan yang dapat diambil dari penelitian ini adalah:
Penelitian
dilakukan
secara
sistematis dengan memetakan goal / tujuan terlebih dahulu dahulu.
Visual Prolog untuk menyelesaikan masalah dengan deskripsi logika dan variabel.
Gambar 7. Proses runut balik pemecahan masalah
Penggunaan syarat dan relasi pada Visual
Prolog
mempermudah
penyelesaian masalah dan hasil Visual Prolog tidak ambigu.
5.2
SARAN
Saran
pada
penelitian
ini
adalah
sebagai berikut :
Pengembangan Visual Prolog dengan metode yang lain.
Penggunaan relasi dan unifikasi yang lebih kompleks.
DAFTAR PUSTAKA [1] Boer,
Thomas,
Beginners
2008,
Guide
to
A
Visual
Prolog [2] Bratko, 2001,An Introduction to Prolog [3] Endriss,
Ulle,
Intruduction
2014, to
An prolog
programming, Universiteit van Amsterdam [4] Lin, Jian, Vipin Kumar, Clement Leung, 1980, Backtracking Parallel
An Intelligent Algorithm
Execution
of
Program.
Depatment
Computer
Science
for Logic Of The
University of Texas [5] Merritt, Dennis, 2000, Building Expert Systems in Prolog, Amzi Inc [6] Praktikum Artificial Intelligence. AKAKOM Yogyakarta
[7] Rowe, Neil C, 1988, Artificial : Intelligence Prentice-Hall
through
Prolog,