Selamat datang di postingan baru saya lagi setelah sekian lama blog ini vakum. Pada tutorial ini, kita akan membuat web seperti sim simi. Saya kutip postingan ini dari blog lama saya di blog.dika.web.id Selamat menyimak!
Penjelasan
Baik, saya sekarang akan menjelaskan sedikit tentang code di atas.
Untuk contoh vocab simsimi kita bisa kasih kata yang pendek aja, ngga usah panjang panjang seperti contoh row. | udah makan belum | udah kok | ketika kita beri pertanyaan “kamu udah makan belum” “simsimi udah makan belum ya ?” “kamu udah makan ?” maka mysql akan men-fetch row yang berhubungan dengan kata “udah” “makan” “belum”
Dan hasilnya seperti ini :
Sekian dan terima kasih, selamat mencoba :)
Pertamanya sih saya dapet kodingnya dari blognya mas Martabak Angus makasih ya mas, saya juga akan me repost postingannya.. oh iya nih kalo yang belum tau sim simi saya akan menjelaskannya sedikit.
Simsimi adalah robot ayam yang dapat diajak untuk chat ketika anda sendirian. tapi siapa yang tahu bagaimana simsimi itu di kembangkan ? dalam simsimi ada yang berkata simsimi itu robot ayam yang pintar, tapi ada juga yang berkata, ada orang yang jauh di sana mengontrol simsimi. tapi yang benarnya, simsimi dibuat dengan bahasa java. saya akan beri sedikit tentang, cara manusia berbicara dengan simsimi dengan CodeIgniter(PHP)
Pembuatan Sim Simi
Oke setelah beberapa penjelasan, sekarang waktunya ngoding hehe
- Buat tabel dalam database anda.
CREATE TABLE kalimat ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, tanya TEXT, jawab TEXT, FULLTEXT (tanya) ) ENGINE=MyISAM;
- **Isi data di tabel ** agar simsimi mengerti apa yang manusia katakan :
INSERT INTO kalimat (tanya,jawab) VALUES ('udah makan belum','udah kok');
- Buat Controller Di CI :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Simi extends CI_Controller {
function __construct(){
parent:: __construct();
$this->gangerti = array('gue ga ngerti cok','lo ngomong naon cok','zz','ape si cok','ga ngarti dah','bahasa planet','ngomong ape si','lo manusia apa manusia','dasar !!','gue kaga ngarti','Ajarin dongse kata katanya :* ');
}
public function index(){
header("Content-type: text/javascript");
$teks = $this->input->get('txt');
if($teks=="'" or $teks=='"'){ //menutupi bug
$teks = "Aku maho";
}
$teks = strtolower($teks);
$length = strlen($teks);
if($teks){
if($length>4){
$hasil = $this->db->query("SELECT * FROM kalimat WHERE MATCH(tanya) AGAINST('".$teks."' IN BOOLEAN MODE) ;");
}else{
$hasil = $this->db->query("SELECT * FROM kalimat WHERE tanya like '%".$teks."%' ;");
}
if($hasil->num_rows() > 0){
$cius = $hasil->result_array();
shuffle($cius);
$arr = array('tanya'=> $teks ,'respon' => $cius[0]['jawab']);
}else{
$cius = $this->gangerti;
shuffle($cius);
$arr = array('tanya'=> $teks ,'respon' => $cius[0]);
}
}else{
$arr = array('respon' => 'aduh textnya belum di ketik');
}
echo json_encode($arr);
}
}
Penjelasan
Baik, saya sekarang akan menjelaskan sedikit tentang code di atas.
- header() : Untuk mengubah tipe header application web ke javascript, karena response nya berupa json (sbenernya gausah pake header() ini jg bisa si)
- strlower() : Untuk mengubah karakter besar ke kecil agar dapat mudah di identifikasi.
- Queri Database : Untuk SELECT * FROM vocab WHERE MATCH(ask) AGAINST(‘”.$teks.”’ IN BOOLEAN MODE) berarti bermaksud untuk mencari data ke tabel ask, karena full text mode bukan pake WHERE LIKE == REGEXP atau yang lain. karena menurut ane menggunakan MATCH() ….. AGAINST() kueri search nya lebih tajam dibanding LIKE %…% tapi pemrosesan data agag sedikit melamban daripada LIKE %…% (Saya sarankan memakai dua query ini) masing masing punya kelebihan dan kelemahan.
- shuffle() : Untuk mengacak hasil row database jika lebih dari 1 row yang keluar maka akan di random, karena simsimi engga bego 1 kata jika ditanya maka harus diberi kata2 yang lain.
- json_encode() : Untuk mengconvert array yang sudah di generate ke parse json, jadi powerfull untuk buat chat script pake javascript. rensonse nya tinggal pake ajax json
Untuk contoh vocab simsimi kita bisa kasih kata yang pendek aja, ngga usah panjang panjang seperti contoh row. | udah makan belum | udah kok | ketika kita beri pertanyaan “kamu udah makan belum” “simsimi udah makan belum ya ?” “kamu udah makan ?” maka mysql akan men-fetch row yang berhubungan dengan kata “udah” “makan” “belum”
Dan hasilnya seperti ini :
Untuk dokumentasi lanjutan mengenai FULL TEXT MySQL silahkan ke http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
Sekian dan terima kasih, selamat mencoba :)
Anda baru saja membaca artikel yang berkategori PHP /
Programming
dengan judul Membuat Sim Simi Dari PHP Code Igniter & MySQL. Anda bisa bookmark halaman ini dengan URL https://rpl4rt.blogspot.com/2017/07/membuat-sim-simi-dari-php-code-igniter.html?m=0. Terima kasih!
Ditulis oleh:
Dika - Senin, 31 Juli 2017
Belum ada komentar untuk "Membuat Sim Simi Dari PHP Code Igniter & MySQL"
Posting Komentar
Harap berkomentar sesuai dengan isi posting & komentar spam tidak akan ditampilkan.