• Tidak ada hasil yang ditemukan

APPENDIX. INDEX/MAIN INTERFACE CODE <index.php> TEST DRIVE CODE <readaiml.php>

N/A
N/A
Protected

Academic year: 2021

Membagikan "APPENDIX. INDEX/MAIN INTERFACE CODE <index.php> TEST DRIVE CODE <readaiml.php>"

Copied!
10
0
0

Teks penuh

(1)

APPENDIX

INDEX/MAIN INTERFACE CODE <index.php>

<head>

<title>ChatBot PMB</title>

<link type="text/css" rel="stylesheet" href="style.css" /> </head>

<center>

<div id="wrapper"> <div id="menu"> <table border = "1">

<p class="welcome">ChatBot PMB with AIML<br>Created by. Oei Stanley Purnomo 13.02.0024<b></b></p>

<div style="clear:both"> </div> </div> <div id="chatbox"></div>

<form name="message" action="readaiml.php">

<input name="usermsg" type="text" id="usermsg" size="60" />

<input name="submitmsg" type="submit" id="submitmsg" value="Send" /> <button onclick="window.location.href='index.php'" type="button">Reset</button> </form> </table> </div> <?php include_once 'LinkedList.php'; include_once 'Node.php'; include_once 'readaiml.php'; ?> </center> </body> </html>

TEST DRIVE CODE <readaiml.php>

<title>ChatBot PMB</title> <?php

include_once 'Node.php';

include_once 'LinkedList.php'; include_once 'index.php';

$readAIML = new DomDocument;

$readAIML->preserveWhiteSpace = FALSE; $readAIML->load('infopmb.aiml');

$category = $readAIML->getElementsByTagName("category"); $i = 0;

$linklist = new LinkedList(); A

(2)

while ($categorynodes = $readAIML->getElementsbyTagName("category")->item($i)) {

foreach ($categorynodes->childNodes as $categorynode) { if($categorynode->nodeName=='pattern'){

foreach ($categorynode->childNodes as $nodepattern) { $nodepattern = $nodepattern->nodeValue; } } else if ($categorynode->nodeName=='template') { foreach ($categorynode->childNodes as $nodetemplate) { $nodetemplate = $nodetemplate->nodeValue; if ($categorynode->nodeName=='srai') {

foreach ($nodetemplate->childNodes as $nodesrai) { $nodesrai = $nodesrai->nodeValue; } } } } } $strpattern = strtolower($nodepattern); $strtemplate = strtolower($nodetemplate); $linklist->addLast($strpattern,$strtemplate); $i++; } echo "<center>";

echo '<h3>Jawaban Bot:</h3>'; if(!isset($_GET["usermsg"])) {

error_reporting(0); echo "Masukkan keyword"; } else { error_reporting(0); $linklist->getAnswer($_GET["usermsg"]); } echo "</center>"; ?>

CLASS NODE <Node.php>

<?php include_once 'LinkedList.php'; include_once 'readaiml.php'; class Node { public $pattern,$template; public $next;

public function __construct($pattern,$template) {

(3)

$this->pattern = $pattern; $this->template = $template; $this->next = NULL;

}

public function setPattern($a) {

$this->pattern = $a; }

public function setTemplate($b) {

$this->template = $b; }

public function getPattern() {

return $this->pattern; }

public function getTemplate() {

return $this->template; }

} ?>

CLASS LINKEDLIST <LinkedList.php>

<?php include_once 'Node.php'; include_once 'readaiml.php'; class LinkedList { public $add,$del; public $head,$tail;

public function __construct() {

$this->head = NULL; $this->tail = NULL; }

public function addFirst($pattern,$template) {

$add = new Node($pattern,$template); if($this->head==NULL) { $this->head = $add; $this->tail = $add; } else C

(4)

{ $add->next = $this->head; $this->head->prev = $add; $this->head = $add; } }

public function addLast($pattern,$template) {

$add = new Node($pattern,$template); if($this->tail==NULL) { $this->head = $add; $this->tail = $add; } else { $this->tail->next = $add; $add->prev = $this->tail; $this->tail = $add; } }

public function delFirst() { if($this->head!=NULL) { $del = $this->head; $this->head = $del->next; $del->next = NULL; $del->prev = NULL; $del = NULL; } }

public function delLast() { if($this->tail!=NULL) { $del = $this->tail; $this->tail = $del->prev; $this->tail->next = NULL; $del->prev = NULL; $del = NULL; } }

public function readList() { $curr = $this->head; while($curr!=NULL) { echo $curr->getPattern()."&nbsp-->&nbsp". $curr->getTemplate()."<br>"; D

(5)

$curr = $curr->next; }

return $curr; }

public function displayKeyword() { $size = NULL; $node = $this->head; $search = $this->head; while($node->next!=NULL) { $node = $node->next; $size++; } $example = array(); for($i=0;$i<$size;$i++) { $keyword = preg_split("/[\s,]+/",$search->getPattern()); $example[$i] = array(); for($j=0;$j<count($keyword);$j++) { $example[$i][$j] = $keyword[$j]; echo $example[$i][$j].'&nbsp'; } $example[$i]['template'] = $search->getTemplate(); echo '<br>'; $search = $search->next; } }

public function getAnswer($pattern) { $booleans = false; $size = NULL; $search = $this->head; $node = $this->head; $example = array(); while($node->next!=NULL) { $node = $node->next; $size++; } function strpos_arr($string,$array) { $strsplit = split(" ",$string); $arrsplit = split(" ",$array); $arrayhasil = array();

for($i=0;$i<count($strsplit);$i++) E

(6)

{ for($j=0;$j<count($arrsplit);$j++) { if($strsplit[$i]==$arrsplit[$j]) { array_push($arrayhasil, $strsplit[$i]); array_push($arrayhasil, $arrsplit[$j]); } } } return $arrayhasil; } for($i=0;$i<$size;$i++) { $example[$i] = array(); $example[$i]['pattern'] = $search->getPattern(); $example[$i]['template'] = $search->getTemplate(); $search = $search->next; }

foreach($example as $index => $examples) {

if(strpos_arr($pattern, $examples['pattern']))

{

echo 'Jawaban Bot = '. $examples['template'].'<br><br>';

} }

}

AIML DATABASE <infopmb.aiml>

<aiml>

<category name ="c1">

<pattern name ="p1">HALO CHATBOT</pattern>

<template name ="t1">Halo juga. Selamat datang di Layanan Chatbot Informasi PMB Unika. Siapa namamu?</template>

</category>

<category name ="c2">

<pattern name ="p2">NAMAKU *</pattern>

<template name ="t2"><star>username</star>Hai! Informasi dari fakultas manakah yang ingin kamu cari?</template>

(7)

</category>

<category name ="c3">

<pattern name ="p3">ILMU KOMPUTER</pattern>

<template name ="t3">Berikut adalah sekilas informasi mengenai fakultas Ilmu Komputer. Fakultas Ilmu Komputer merupakan fakultas yang termuda di Unika. Di fakultas Ilmu Komputer terdapat 2 program studi utama yakni Teknik Informatika dan Sistem Informasi.

Jika kamu ingin mengetahui lebih lanjut tentang program studi yang terdapat di fakultas Ilmu Komputer, silahkan ketik nama jurusan program studi di kolom chatbot.</template>

</category>

<category name ="c13">

<pattern name ="p3">ILMU KOMUNIKASI</pattern>

<template name ="t3">Berikut adalah sekilas informasi mengenai fakultas Ilmu Komunikasi. Fakultas Ilmu Komunikasi merupakan fakultas yang termuda di Unika. Di fakultas Ilmu Komputer terdapat 2 program studi utama yakni Teknik Informatika dan Sistem Informasi.

Jika kamu ingin mengetahui lebih lanjut tentang program studi yang terdapat di fakultas Ilmu Komputer, silahkan ketik nama jurusan program studi di kolom chatbot.</template>

</category>

<category name ="c4">

<pattern name ="p4">TEKNIK INFORMATIKA</pattern>

<template name ="t4">Berikut adalah sekilas informasi mengenai program studi Teknik Informatika. Program studi Teknik Informatika merupakan fakultas yang paling diminati di fakultas Ilmu Komputer</template>

</category> <category>

<pattern>FAKULTAS</pattern>

<template>Fakultas besar di Unika</template> </category>

<category name ="c5">

<pattern name ="p5">APAKAH FAKULTAS ILMU KOMPUTER MERUPAKAN FAKULTAS UNGGULAN DI UNIKA</pattern>

<template name ="t5"><think><set name = "ikom">benar</set></think>

<condition name = "ikom" value = "benar">

Fakultas Ilmu Komputer merupakan fakultas unggulan di Unika. </condition>

<condition name = "ikom" value = "salah">

Fakultas Ilmu Komputer bukan merupakan fakultas unggulan di Unika.

</condition> </template> </category>

(8)

<category name="c6">

<pattern name="p6">BAGAIMANA DENGAN FAKULTAS TEKNOLOGI PERTANIAN</pattern>

<template name="t6">Apakah kamu juga tertarik dengan fakultas Teknologi Pertanian</template>

</category>

<category name="c7">

<pattern name="p7">YA</pattern>

<that>Apakah kamu juga tertarik dengan fakultas Teknologi Pertanian</that>

<template name="t7">Bagus, fakultas Teknologi Pertanian memang fakultas yang terbaik di Unika.</template>

</category>

<category name="c8">

<pattern name="p8">TIDAK</pattern>

<that>Apakah kamu juga tertarik dengan fakultas Teknologi Pertanian</that>

<template name="t8">Wah sayang sekali padahal fakultas Teknologi Pertanian merupakan fakultas paling bagus di Unika loh</template>

</category>

<category name="c9">

<pattern name="p9">ADAKAH INFORMASI TENTANG PEMBAYARAN UKP DAN SKS *</pattern>

<template name="t9">Tentu. Apa yang ingin kamu ketahui tentang <set name = "topic">pembayaran</set> UKP dan SKS di Unika</template>

</category>

<topic name = "pembayaran"> <category name="c10">

<pattern name="p10">BERAPA JUMLAH PEMBAYARAN UKP DAN SKS UNTUK PROGRAM STUDI TEKNIK INFORMATIKA *</pattern>

<template name="t10">Hi. Untuk jumlah pembayaran UKP untuk program studi Teknik Informatika adalah Rp. 1.650.000,- sedangkan untuk jumlah pembayaran SKS dimana untuk setiap SKS nya adalah sebesar Rp. 120.000,- dan pembayaran SKS untuk matkul lab hanya separuh dari harga per 1 SKS. Mungkin ada lagi yang bisa saya bantu?</template>

</category>

<category name="c11">

<pattern name="p11">JUMLAH PEMBAYARAN UKP DAN SKS UNTUK PROGRAM STUDI TEKNIK INFORMATIKA *</pattern>

<template name="t11"><srai>BERAPA JUMLAH PEMBAYARAN UKP DAN SKS UNTUK PROGRAM STUDI TEKNIK INFORMATIKA *</srai></template> </category>

<category name="c12">

<pattern name="p12">TIDAK TERIMA KASIH</pattern> H

(9)

<template name="t12"> <random>

<li>Hi <get name = "nama"/>. Terima kasih sudah menggunakan layanan chatbot ini...</li>

<li>Baiklah kalau begitu. Terima kasih sudah menggunakan layanan informasi chatbot ini..</li>

</random> </template> </category> </topic> </aiml> I

(10)

Referensi

Dokumen terkait

Bila tranduser diputar 60⁰ berlawanan arah jarum jam terlihat gambaran tiga ruang jantung aorta, ventrikel kiri, katup mitral, dan atrium kiri.. Bila diputar lebih ke

Due to the research finding of this study, it is obtained that the students who are taught reading narrative text by using Herringbone Technique have higher

1) Lebih dari setengahnya responden (52%) melaporkan pernah mengalami kecelakaan kerja cedera benda tajam dengan jenis cedera terbanyak berupa tertusuk jarum

Panitia bencana alam menerima sumbangan beras sebanyak 2,4 ton dan diberikan kepada korban bencana alam di Desa Paguan sebanyak 1,5 ton, sisanya diberikan ke Desa Trebungan..

Saya yang bertanda tangan di bawah ini, dalam rangka pekerjaan Pengadaan Bantuan Pembangunan Unit Gedung Baru PAUD Pembina Tahun 2016, pada Satuan Kerja Direktorat

Diajukan untuk Melengkapi Tugas-tugas dan Memenuhi Syarat-syarat Guna Mencapai Derajat Ahli Madya Program Studi Diploma III Perpajakan. Fakultas Ekonomi dan Bisnis Universitas

Berdasarkan hasil penelitian pelaksanaan pengawasan terhadap keberadaan TKA yang bekerja dalam perusahaan di Indonesia pada praktiknya ditemukan berbagai bentuk

[r]