Pendahuluan
SWI-Prolog adalah salah satu implementasi Prolog yang populer dan banyak digunakan. Prolog (Programming in Logic) adalah bahasa pemrograman yang berbasis logika deklaratif. Dalam Prolog, program ditulis dalam bentuk fakta dan aturan, sehingga cocok untuk aplikasi seperti kecerdasan buatan, sistem pakar, dan pemrosesan bahasa alami.
Prolog menekankan pada “apa yang harus dicapai” daripada “bagaimana cara mencapainya”. Hal ini membuatnya sangat relevan untuk menyelesaikan masalah berbasis logika, seperti dalam penerapan kecerdasan buatan (AI).
Penerapan Logika dalam SWI-Prolog untuk AI
Bagian ini akan membahas bagaimana menggunakan SWI-Prolog untuk menyelesaikan masalah logika yang relevan dengan AI. Penjelasan mencakup langkah-langkah pengerjaan, contoh nyata, dan hasil akhirnya.
1. Logika Inferensi untuk Sistem Pakar
Contoh Kasus: Diagnosa Penyakit Sederhana
Kita akan membuat sistem pakar sederhana untuk mendiagnosa penyakit berdasarkan gejala.
Langkah-langkah:
- Buat file baru bernama
diagnosa.pl
. - Tambahkan fakta tentang gejala dan penyakit:
% Fakta gejala(flu, demam). gejala(flu, batuk). gejala(tifus, demam). gejala(tifus, nyeri_perut). gejala(covid, demam). gejala(covid, batuk). gejala(covid, sesak_nafas).
- Tambahkan aturan untuk diagnosa penyakit berdasarkan gejala:
% Aturan diagnosa(Penyakit) :- gejala(Penyakit, G1), gejala(Penyakit, G2), write('Penyakit: '), write(Penyakit), nl.
- Simpan file tersebut.
Kueri dan Hasil:
- Kueri untuk diagnosa:
?- gejala(covid, demam). ?- diagnosa(covid).
Hasil:
Penyakit: covid.
2. Penentuan Rute Terpendek (Pathfinding)
Contoh Kasus: Menemukan jalur terpendek antar kota
Dalam AI, algoritma seperti BFS atau DFS digunakan untuk pathfinding. Kita akan menggunakan SWI-Prolog untuk menentukan rute terpendek antar kota berdasarkan jarak.
Langkah-langkah:
- Buat file baru bernama
rute.pl
. - Tambahkan fakta tentang jarak antar kota:
% Fakta jarak(jakarta, bandung, 150). jarak(bandung, cirebon, 100). jarak(cirebon, semarang, 200). jarak(bandung, yogyakarta, 300).
- Tambahkan aturan untuk menemukan jalur terpendek:
% Aturan hubungan(X, Y, D) :- jarak(X, Y, D). hubungan(X, Y, D) :- jarak(Y, X, D). jalur_terpendek(A, B, D) :- findall(J, hubungan(A, B, J), SemuaJarak), min_list(SemuaJarak, D).
- Simpan file tersebut.
Kueri dan Hasil:
- Kueri untuk menemukan rute terpendek:
?- jalur_terpendek(jakarta, semarang, D).
Hasil:
D = 450.
3. Logika Fuzzy untuk Sistem Rekomendasi
Contoh Kasus: Rekomendasi Jurusan Berdasarkan Minat
Kita akan membuat sistem sederhana untuk merekomendasikan jurusan berdasarkan minat siswa.
Langkah-langkah:
- Buat file baru bernama
jurusan.pl
. - Tambahkan fakta tentang jurusan dan kriteria:
% Fakta jurusan(informatika, [logika, pemrograman, teknologi]). jurusan(manajemen, [organisasi, bisnis, manajemen]). jurusan(biologi, [penelitian, lingkungan, sains]).
- Tambahkan aturan untuk rekomendasi jurusan:
% Aturan rekomendasi(Minat, Jurusan) :- jurusan(Jurusan, Kriteria), member(Minat, Kriteria).
- Simpan file tersebut.
Kueri dan Hasil:
- Kueri untuk rekomendasi:
?- rekomendasi(logika, Jurusan).
Hasil:
Jurusan = informatika.
Latihan
Latihan
- Buat program untuk menentukan hubungan “paman” dalam keluarga.
- Implementasikan aturan untuk menghitung total jarak perjalanan dalam graf menggunakan daftar kota.
- Buat sistem pakar sederhana untuk menentukan jenis olahraga yang sesuai berdasarkan preferensi individu.
Kesimpulan
SWI-Prolog memberikan kemampuan unik untuk menyelesaikan masalah berbasis logika dengan pendekatan deklaratif. Melalui latihan dan tugas, mahasiswa dapat memperdalam pemahaman tentang logika Prolog dan aplikasinya dalam AI. Materi ini dirancang agar mahasiswa mudah memahami konsep dan mengimplementasikannya dalam masalah nyata.