LAMPIRAN A: Listing Program
<?php /**
* APA YANG BARU dari class Enhanced_CS? * 1. penambahan variable
* $prefix = variable ini untuk menyimpan prefix * $suffix = variable ini untuk menyimpan suffix
* $inflec = variable ini untuk menyimpan inflection suffix * $prefin = variable ini untuk menyimpan inflection prefix * 2. penambahan&$matches pada fungsi preg_match * dasar opsi preg_match
* int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
*3. Penambahan aturan untuk mengecek kata “pemrograman”
* fungsi CekKamus, Pemenggalan Inflection Suffixes, Pemenggalan Inflection Prefix, *Pemenggalan Awalan, dan Pemenggalan Akhiran diambil dari sumber :
*http://4shared.com/rar/124o08qi/stbi.html */
Coding Untuk Menampilkan Gambar
for ($k = 0; $k < count($arrayKataDasar); $k++) { if ($arrayKataDasar[$k] != "") {
$sql = "SELECT kata,gambar FROM kata WHERE kata = '$arrayKataDasar[$k]'"; $result = mysql_query($sql);
if (mysql_num_rows($result) > 0) { $tampil = mysql_fetch_row($result);
echo "<td align='center' width=20px height= 30px><img src='gambar/$tampil[1]' alt=''><align='center'><font size = 25>$tampil[0]</font></align></td>";
} else{
$kataNotFoundInDB = $arrayKataDasar[$k];
for ($j = 0; $j < strlen($kataNotFoundInDB); $j++) {
$sql = "SELECT gambar FROM kata WHERE kata = '$kataNotFoundInDB[$j]'"; $result = mysql_query($sql);
$tampil = mysql_fetch_row($result);
echo "<td align='center' width=20px height= 30px><img src='gambar/$tampil[0]' alt='' width=200px height=
250px><align='center'>$kataNotFoundInDB[$j]</align></td>"; }
} } }
Proses Parsing Kalimat Dan Stemming Kata
if (!empty($_POST[text])){
$stemmer = new Enhanced_CS(); $teks = strtolower($_POST['text']);
$tokenKarakter=array('’','—','
$teks= str_replace($tokenKarakter,' ',$teks); $tok = strtok($teks, "\n\t");
while ($tok !== false) { $teks = $tok;
$tok = strtok(" \n\t"); }
$split = explode(' ',$teks);
echo "<font size =5><b>Kata/Kalimat:</b><i>".$teks.'</i></font><br>'; echo "<tr><table align = center border=1>";
foreach($split as $key=>$kata){ $kataAwal = trim($kata); if($kataAwal!=""){
$kataDasar = $stemmer->generate(trim($kata)); $suff = $stemmer->suffix;
$pref = $stemmer->prefix; $inflec = $stemmer->inflec; $prefin = $stemmer->prefin;
if(is_array($pref)){ $pref = null;
}else if(!empty($pref)){ $pref .= " ";} if(is_array($suff)){
$suff = null;
}else if(!empty($suff)){ $suff = " ".$suff;} if(is_array($inflec)){
$inflec = null;
}else if(!empty($inflec)){ $suff .= " ".$inflec;} if(is_array($prefin)){
$prefin = null;
}else if(!empty($prefin)){ $pref = $prefin.$pref;}
$hasil = $pref.$kataDasar.$suff; echo '</n>';
$stemmer->suffix = null; $stemmer->prefix = null; $stemmer->inflec = null; $stemmer->prefin = null; $suff = null;
$pref = null; $inflec = null; $prefin = null;
$arrayKataDasar = explode(" ", $hasil);
class Enhanced_CS{ var $prefix; var $suffix; var $inflec; var $prefin;
public function cekKamus($kata){ // cari di database
$sql = "SELECT * from kata where kata ='$kata' LIMIT 1"; //echo $sql.'<br/>';
$result = mysql_query($sql) or die(mysql_error()); if(mysql_num_rows($result)==1){
return TRUE; // TRUE jika ada } else{
return FALSE; // jika tidak ada FALSE }
}
Function Pemenggalan Inflection Suffixes
public function Hapus_partikel($kata){ $kataAsal = $kata;
$kata = $this->Hapus_awalan($kata); if($this->cekKamus($kata)){ // Cek Kamus
return $kataAsal; }else{
if(preg_match('/([km]u|nya|[kl]ah|pun)$/',$kata,$this->inflec)){ $kata_stem1 = preg_replace('/([km]u|nya|[kl]ah|pun)$/','',$kata); $inflec = $this->inflec[count($this->inflec)-1];
if($this->cekKamus($kata_stem1)){ // Cek Kamus $inflec = $this->inflec;
$this->inflec = $this->inflec[count($this->inflec)-1]; return $kata_stem1;
}
if(preg_match('/([klt]ah|pun)$/',$kata,$this->inflec)){
if(preg_match('/([km]u|nya)$/',$kata_stem1,$this->inflec)){ $kata_stem2 = preg_replace('/([km]u|nya)$/','',$kata_stem1); if($inflec == $this->inflec[count($this->inflec)-1] ) $inflec = ""; $this->inflec = $this->inflec[count($this->inflec)-1].$inflec; return $kata_stem2;
} else{
$this->inflec = $inflec; }
} else{
$this->inflec = $inflec; }
if($this->cekKamus($kata_stem1,$db)->found){ return $kata_stem1;
}else{
$kata_stem2 = $this->Hapus_awalan($kata_stem1); if($this->cekKamus($kata_stem2)){ // Cek Kamus
return $kata_stem1; }else{
} } }
return $kataAsal; }
}
Function Untuk Pemenggalan Inflection Prefix
public function Hapus_awalanku($kata){ $kataAsal = $kata;
if(preg_match('/^(ku)\S{1,}/',$kata,$this->prefin)){ $kata_stem1 = preg_replace('/^(ku)/','',$kata);
$this->prefin = $this->prefin[count($this->prefin)-1]; return $kata_stem1;
}
return $kataAsal; }
Function Untuk Kombinasi Awalan dan Akhiran yang tidak diizinkan public function Cek_awalan_dilarang($kata){
if(preg_match('/^(be)[[:alpha:]]+(i)$/',$kata)){ // be- dan -i return TRUE;
}
if(preg_match('/^(di)[[:alpha:]]+(an)$/',$kata)){ // di- dan -an return TRUE;
}
if(preg_match('/^(ke)[[:alpha:]]+(i|kan)$/',$kata)){ // ke- dan -i,-kan return TRUE;
}
if(preg_match('/^(me)[[:alpha:]]+(an)$/',$kata)){ // me- dan -an return TRUE;
}
if(preg_match('/^(se)[[:alpha:]]+(i|kan)$/',$kata)){ // se- dan -i,-kan return TRUE;
}
return FALSE; }
Function Untuk Pemenggalan Akhiran
public function Hapus_akhiran($kata){ $kataAsal = $kata;
if(preg_match('/(kan)$/',$kata,$this->suffix)){ // Cek Suffixes if(!preg_match('/^(eret)|(ret)(a)(kan)$/',$kata)){
$kata_stem1 = preg_replace('/(kan)$/','',$kata); if($this->cekKamus($kata_stem1)){ // Cek Kamus
$this->suffix = $this->suffix[count($this->suffix)-1]; return $kata_stem1;
}
if(preg_match('/(an|i)$/',$kata,$this->suffix)){ // cek -kan $kata_stem2 = preg_replace('/(an|i)$/','',$kata); if($this->cekKamus($kata_stem2)){ // Cek Kamus
$this->suffix = $this->suffix[count($this->suffix)-1]; return $kata_stem2;
} }
if($this->Cek_awalan_dilarang($kata)){ $this->debug($kata);
return $kataAsal; }
return $kataAsal;
}
Function Untuk Pemenggalan Awalan
public function Hapus_awalan($kata){ $kataAsal = $kata;
/* --- Tentukan Tipe Awalan ---*/
if(preg_match('/^(di|[ks]e)\S{1,}/',$kata,$this->prefix)){ // Jika di-,ke-,se- $kata_stem1 = preg_replace('/^(di|[ks]e)/','',$kata);
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^([tmbp]e)/'/*>>>'/^([tmbp]e)\S{1,}/'<<<*/,$kata,$this->prefix)){ //Jika awalannya adalah “te-”, “me-”, “be-”, atau “pe-”
/*--- Awalan “be-”, ---*/ if(preg_match('/^(be)\S{1,}/',$kata,$this->prefix)){ // Jika awalan “be-”,
if(preg_match('/^(ber)[aiueo]\S{1,}/',$kata,$this->prefix)){ // aturan 1. $kata_stem1 = preg_replace('/^(ber)/','',$kata);
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
}
$kata_stem1 = preg_replace('/^(ber)/','r',$kata); if($this->cekKamus($kata_stem1)){
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(ber)[^aiueor][[:alpha:]](?!er)\S{1,}/',$kata,$this->prefix)){ //aturan 2.
$kata_stem1 = preg_replace('/^(ber)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2; }
}
if(preg_match('/^(ber)[^aiueor][[:alpha:]]er[aiueo]\S{1,}/',$kata,$this->prefix)){ //aturan 3.
$kata_stem1 = preg_replace('/^(ber)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^belajar\S{0,}/',$kata,$this->prefix)){ //aturan 4. $kata_stem1 = preg_replace('/^(bel)/','',$kata);
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(be)[^aiueolr]er[^aiueo]\S{1,}/',$kata,$this->prefix)){ //aturan 5.
$kata_stem1 = preg_replace('/^(be)/','',$kata); if($this->cekKamus($kata_stem1)){
return $kata_stem1; }
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} } }
/*---end “be-”, ---*/ /*--- Awalan “te-”, ---*/ if(preg_match('/^(te)\S{1,}/',$kata,$this->prefix)){ // Jika awalan “te-”,
if(preg_match('/^(terr)\S{1,}/',$kata,$this->prefix)){ return $kata;
}
if(preg_match('/^(ter)[aiueo]\S{1,}/',$kata,$this->prefix)){ // aturan 6. $kata_stem1 = preg_replace('/^(ter)/','',$kata);
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
}
$kata_stem1 = preg_replace('/^(ter)/','r',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(ter)[^aiueor]er[aiueo]\S{1,}/',$kata,$this->prefix)){ // aturan 7.
$kata_stem1 = preg_replace('/^(ter)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
$kata_stem1 = preg_replace('/^(ter)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(te)[^aiueor]er[aiueo]\S{1,}/',$kata,$this->prefix)){ // aturan 9.
$kata_stem1 = preg_replace('/^(te)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
}
/*---end “te-”, ---*/ /*--- Awalan “me-”, ---*/
if(preg_match('/^(me)/'/*'/^(me)\S{1,}/'*/,$kata,$this->prefix)){ // Jika awalan “me-”,
if(preg_match('/^(me)[lrwyv][aiueo]/',$kata,$this->prefix)){ // aturan 10 $kata_stem1 = preg_replace('/^(me)/','',$kata);
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(mem)[bfvp]/',$kata,$this->prefix)){ // aturan 11. /*--- cek luluh p- ---*/
$kata_stem1 = preg_replace('/^(mem)/','p',$kata); // luluh p- if($this->cekKamus($kata_stem1)){
return $kata_stem1; }
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$kata_stem1 = preg_replace('/^(mem)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
/*if(preg_match('/^(mempe)\S{1,}/',$kata,$this->prefix)){ // aturan 12 $kata_stem1 = preg_replace('/^(mem)/','pe',$kata);
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2; }
}*/
if (preg_match('/^(mem)((r[aiueo])|[aiueo])\S{1,}/', $kata,$this->prefix)){//aturan 13
$kata_stem1 = preg_replace('/^(mem)/','p',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
}
$kata_stem1 = preg_replace('/^(mem)/','m',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(men)[cdjzt]\S{1,}/',$kata,$this->prefix)){ // aturan 14. $kata_stem1 = preg_replace('/^(men)/','',$kata);
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if (preg_match('/^(men)[aiueo]\S{1,}/',$kata,$this->prefix)){//aturan 15 $kata_stem1 = preg_replace('/^(men)/','n',$kata);
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
}
$kata_stem1 = preg_replace('/^(men)/','t',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(meng)[ghqk]\S{1,}/',$kata,$this->prefix)){ // aturan 16. $kata_stem1 = preg_replace('/^(meng)/','',$kata);
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(meng)[aiueo]\S{1,}/',$kata,$this->prefix)){ // aturan 17 $kata_stem1 = preg_replace('/^(meng)/','',$kata);
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
}
$this->prefix = $this->prefix[1]; return $kata_stem2;
}
$kata_stem1 = preg_replace('/^(meng)/','k',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
}
$kata_stem1 = preg_replace('/^(menge)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1];
return $kata_stem1; }
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(meny)[aiueo]\S{1,}/',$kata,$this->prefix)){ // aturan 18. $kata_stem1 = preg_replace('/^(meny)/','s',$kata);
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
}
$kata_stem1 = preg_replace('/^(me)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(me)/',$kata,$this->prefix)){ $kata_stem1 = preg_replace('/^(me)/','',$kata); if($this->cekKamus($kata_stem1)){
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
}
/*--- cek luluh t- ---*/
$kata_stem1 = preg_replace('/^(men)/','t',$kata); // luluh t-
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
}
} }
/*---end “me-”, ---*/
/*--- Awalan “pe-”, ---*/ if(preg_match('/^(pe)\S{1,}/',$kata,$this->prefix)){ // Jika awalan “pe-”,
if(preg_match('/^(pe)[wy]\S{1,}/',$kata)){ // aturan 20. if(preg_match('/^(pe)[wyr]\S{1,}/',$kata,$this->prefix)){
$kata_stem1 = preg_replace('/^(pe)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} } }
if(preg_match('/^(per)[aiueo]\S{1,}/',$kata,$this->prefix)){ // aturan 21 $kata_stem1 = preg_replace('/^(per)/','',$kata);
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
}
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(per)[^aiueor][[:alpha:]](?!er)\S{1,}/',$kata,$this->prefix)){ // aturan 23
$kata_stem1 = preg_replace('/^(per)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(per)[^aiueor][[:alpha:]](er)[aiueo]\S{1,}/',$kata,$this->prefix)){ //aturan24
$kata_stem1 = preg_replace('/^(per)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(pem)[bfv]\S{1,}/',$kata,$this->prefix)){ // aturan 25 $kata_stem1 = preg_replace('/^(pem)/','',$kata);
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
$kata_stem1 = preg_replace('/^(pem)/','p',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(pem)(r[aiueo]|[aiueo])\S{1,}/',$kata,$this->prefix)){ // aturan 26
$kata_stem1 = preg_replace('/^(pem)/','m',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
}
$kata_stem1 = preg_replace('/^(pem)/','p',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(pen)[cdjzt]\S{1,}/',$kata,$this->prefix)){ // aturan 27 $kata_stem1 = preg_replace('/^(pen)/','',$kata);
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
break; }else{
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
if(preg_match('/^(pen)[aiueo]\S{1,}/',$kata,$this->prefix)){ // aturan 28 $kata_stem1 = preg_replace('/^(pen)/','n',$kata);
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
}
$kata_stem1 = preg_replace('/^(pen)/','t',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(peng)[^aiueo]\S{1,}/',$kata,$this->prefix)){ // aturan 29 $kata_stem1 = preg_replace('/^(peng)/','',$kata);
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(peng)[aiueo]\S{1,}/',$kata,$this->prefix)){ // aturan 30 $kata_stem1 = preg_replace('/^(peng)/','',$kata);
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
}
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
}
$kata_stem1 = preg_replace('/^(penge)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(peny)[aiueo]\S{1,}/',$kata,$this->prefix)){ // aturan 31 $kata_stem1 = preg_replace('/^(peny)/','s',$kata);
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
}
$kata_stem1 = preg_replace('/^(pe)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(pel)[aiueo]\S{1,}/',$kata,$this->prefix)){ // aturan 32 $kata_stem1 = preg_replace('/^(pel)/','l',$kata);
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if (preg_match('/^(pelajar)\S{0,}/',$kata,$this->prefix)){ $kata_stem1 = preg_replace('/^(pel)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(pe)[^rwylmn]er[aiueo]\S{1,}/',$kata,$this->prefix)){ // aturan 33
$kata_stem1 = preg_replace('/^(pe)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(pe)[^rwylmn](?!er)\S{1,}/',$kata,$this->prefix)){ // aturan 34
$kata_stem1 = preg_replace('/^(pe)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(pe)[^aiueor]er[^aiueo]\S{1,}/',$kata,$this->prefix)){ // aturan 36
if($this->cekKamus($kata_stem1)){ $this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} } } }
/*---end “pe-”, ---*/
/*--- Awalan “memper-”, ---*/ if(preg_match('/^(memper)\S{1,}/',$kata,$this->prefix)){
$kata_stem1 = preg_replace('/^(memper)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,3)." ".substr($this->prefix[1],3); return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,3)." ".substr($this->prefix[1],3); return $kata_stem2;
}
//*-- Cek luluh -r ---
$kata_stem1 = preg_replace('/^(memper)/','r',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(mempel)\S{1,}/',$kata,$this->prefix)){ $kata_stem1 = preg_replace('/^(mempel)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,3)." ".substr($this->prefix[1],3); return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,3)." ".substr($this->prefix[1],3); return $kata_stem2;
}
$kata_stem1 = preg_replace('/^(mempel)/','l',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(menter)\S{1,}/',$kata,$this->prefix)){ $kata_stem1 = preg_replace('/^(menter)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,3)." ".substr($this->prefix[1],3);
return $kata_stem1; }
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,3)." ".substr($this->prefix[1],3); return $kata_stem2;
}
//*-- Cek luluh -r ---
$kata_stem1 = preg_replace('/^(menter)/','r',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(member)\S{1,}/',$kata,$this->prefix)){ $kata_stem1 = preg_replace('/^(member)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,3)." ".substr($this->prefix[1],3); return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,3)." ".substr($this->prefix[1],3); return $kata_stem2;
}
//*-- Cek luluh -r ---
$kata_stem1 = preg_replace('/^(member)/','r',$kata); if($this->cekKamus($kata_stem1)){
return $kata_stem1; }
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
/*---end “diper-”, ---*/ if(preg_match('/^(diper)\S{1,}/',$kata,$this->prefix)){
$kata_stem1 = preg_replace('/^(diper)/','',$kata); if($this->cekKamus($kata_stem1)){
$prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,2)." ".substr($this->prefix[1],2); return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,2)." ".substr($this->prefix[1],2); return $kata_stem2;
}
/*-- Cek luluh -r ---*/
$kata_stem1 = preg_replace('/^(diper)','r',$kata); if($this->cekKamus($kata_stem1)){
$prefix = $this->prefix;
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$prefix = $this->prefix;
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
/*---end “diper-”, ---*/ /*---end “diter-”, ---*/ if(preg_match('/^(diter)\S{1,}/',$kata,$this->prefix)){
$kata_stem1 = preg_replace('/^(diter)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,2)." ".substr($this->prefix[1],2); return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,2)." ".substr($this->prefix[1],2); return $kata_stem2;
}
/*-- Cek luluh -r ---*/
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
/*---end “diter-”, ---*/ /*---end “dipel-”, ---*/ if(preg_match('/^(dipel)\S{1,}/',$kata,$this->prefix)){
$kata_stem1 = preg_replace('/^(dipel)/','l',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,2)." ".substr($this->prefix[1],2); return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,2)." ".substr($this->prefix[1],2); return $kata_stem2;
}
/*-- Cek luluh -l---*/
$kata_stem1 = preg_replace('/^(dipel)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
/*---end “dipel-”, ---*/
/*---kata “terpelajar”(kasus khusus), --- ----*/
if(preg_match('/terpelajar/',$kata,$this->prefix)){ $kata_stem1 = preg_replace('/terpel/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
/*---end “terpelajar”-”, ---*/
if(preg_match('/seseorang/',$kata,$this->prefix)){ $kata_stem1 = preg_replace('/^(sese)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = 'suatu';//$this->prefix[1]; return $kata_stem1; }
}
/*---end seseorang-”, ---*/ if(preg_match('/^(diber)\S{1,}/',$kata,$this->prefix)){
$kata_stem1 = preg_replace('/^(diber)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,2)." ".substr($this->prefix[1],2); return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,2)." ".substr($this->prefix[1],2); return $kata_stem2;
}
/*-- Cek luluh -l---*/
$kata_stem1 = preg_replace('/^(diber)/','r',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(keber)\S{1,}/',$kata,$this->prefix)){ $kata_stem1 = preg_replace('/^(keber)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,2)." ".substr($this->prefix[1],2); return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,2)." ".substr($this->prefix[1],2); return $kata_stem2;
}
/*-- Cek luluh -l---*/
$kata_stem1 = preg_replace('/^(keber)/','r',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(keter)\S{1,}/',$kata,$this->prefix)){ $kata_stem1 = preg_replace('/^(keter)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,2)." ".substr($this->prefix[1],2);
return $kata_stem1; }
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,2)." ".substr($this->prefix[1],2); return $kata_stem2;
}
/*-- Cek luluh -l---*/
$kata_stem1 = preg_replace('/^(keter)/','r',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix[1]; return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix[1]; return $kata_stem2;
} }
if(preg_match('/^(berke)\S{1,}/',$kata,$this->prefix)){ $kata_stem1 = preg_replace('/^(berke)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,3)." ".substr($this->prefix[1],3); return $kata_stem1;
}
$kata_stem2 = $this->Hapus_akhiran($kata_stem1); if($this->cekKamus($kata_stem2)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,3)." ".substr($this->prefix[1],3); return $kata_stem2;
} }
if(preg_match('/^(berpeng)\S{1,}/',$kata,$this->prefix)){ $kata_stem1 = preg_replace('/^(berpeng)/','',$kata); if($this->cekKamus($kata_stem1)){
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,3)." ".substr($this->prefix[1],3); return $kata_stem1;
}
$this->prefix = $this->prefix;
$this->prefix = substr($this->prefix[1],0,3)." ".substr($this->prefix[1],3); return $kata_stem2;
} }
/*---end "berke-"---*/
/* --- Cek Ada Tidaknya Prefik/Awalan (“di-”, “ke-”, “se-”, “te-”, “be-”, “me-”, atau “pe-”) ---*/
if(preg_match('/^(di|[kstbmp]e)\S{1,}/',$kata,$this->prefix) == FALSE){ return $kataAsal;
}