1. translate.php <?php
include_once 'db.php';
function cari_arti($kata, $where) {
$sql = 'SELECT kata from words_bank where kata '.bersihkan($kata).' '.$where.'';
$result = mysql_query($sql) or die (mysql_error()); return $result; } function bersihkan($input) { if (strpos($input, ".") !== false) {
return str_replace(".", "", $input); }
else if (strpos($input, ",") !== false) { return str_replace(",", "", $input); }
else if (strpos($input, ".\n") !== false) { return str_replace(".\n", "", $input); }
else if (strpos($input, "\n") !== false) { return str_replace("\n", "", $input); } else { return $input; } } function bersihkan_arti($input) { if (strpos($input, ".") !== false) {
$result = str_replace(".", "", $input); return (artikan($result).".");
}
else if (strpos($input, ",") !== false) { $result = str_replace(",", "", $input); return (artikan($result).",");
}
else if (strpos($input, ".\n") !== false) { $result = str_replace(".\n", "", $input); return (artikan($result).".\n"); } else { return (artikan($input)); } }
function swap_titik_koma($input) {
if (strpos($input, ".") !== false) {
$result = str_replace(".", "", $input); return (artikan($result).".");
}
else if (strpos($input, ",") !== false) { $result = str_replace(",", "", $input); return (artikan($result).","); } else { return (artikan($input)); } } function artikan($kata) {
$sql = 'SELECT arti from words_bank where kata = "'.$kata.'"';
$query = mysql_query($sql) or die (mysql_error()); $result = mysql_fetch_array($query); if(mysql_num_rows($query) > 0) return $result[0]; else return $kata; } function bagian($kata) {
$sql = 'SELECT bagian from words_bank where kata = "'.bersihkan($kata).'"';
$query = mysql_query($sql) or die (mysql_error()); $result = mysql_fetch_array($query);
return $result[0]; }
function tampilkan_arti($list_arti) {
foreach($list_arti as $key => $kata) { $result .= $kata." "; } return $result; } function pindah($list_arti) { global $list_arti; global $list_pindah; $list_swap = array(); if(count($list_arti) == 1) { array_push($list_pindah,
unset($list_arti[0]); //hapus kata ke-1
$list_swap = array_values($list_arti); //swap list array
$list_arti = array_values($list_swap); //re-index an array } while(count($list_arti) > 1) { if(bagian($list_arti[0]) == "ks" && bagian($list_arti[1]) == "kb") { $katanya = bersihkan_arti($list_arti[1])." ".bersihkan_arti($list_arti[0]); array_push($list_pindah, swap_titik_koma($katanya)); //pindahkan artinya
unset($list_arti[0]); //hapus kata ke-1 unset($list_arti[1]); //hapus kata ke-2
$list_swap = array_values($list_arti); //swap list array
$list_arti = array_values($list_swap); //re-index an array
}
else if(bagian($list_arti[0]) == "ks" && bagian($list_arti[1]) == "ks" && bagian($list_arti[2]) == "kb")
{
$katanya = bersihkan_arti($list_arti[2])." ".bersihkan_arti($list_arti[1])." ".bersihkan_arti($list_arti[0]); array_push($list_pindah, swap_titik_koma($katanya)); //pindahkan artinya
unset($list_arti[0]); //hapus kata ke-1 unset($list_arti[1]); //hapus kata ke-2 unset($list_arti[2]); //hapus kata ke-3
$list_swap = array_values($list_arti); //swap list array
$list_arti = array_values($list_swap); //re-index an array
}
else if(bagian($list_arti[0]) == "possesive" && bagian($list_arti[1]) == "kb") { $katanya = bersihkan_arti($list_arti[1])." ".bersihkan_arti($list_arti[0]); array_push($list_pindah, swap_titik_koma($katanya)); //pindahkan artinya
unset($list_arti[0]); //hapus kata ke-1 unset($list_arti[1]); //hapus kata ke-2
$list_swap = array_values($list_arti); //swap list array
$list_arti = array_values($list_swap); //re-index an array
}
else if(bagian($list_arti[0]) == "possesive" && bagian($list_arti[1]) == "idiom") { $katanya = bersihkan_arti($list_arti[1])." ".bersihkan_arti($list_arti[0]); array_push($list_pindah, swap_titik_koma($katanya)); //pindahkan artinya
unset($list_arti[1]); //hapus kata ke-2
$list_swap = array_values($list_arti); //swap list array
$list_arti = array_values($list_swap); //re-index an array
}
else if(bagian($list_arti[0]) == "possesive" && bagian($list_arti[1]) == "ks" && bagian($list_arti[2]) == "kb")
{
$katanya = bersihkan_arti($list_arti[2])." ".bersihkan_arti($list_arti[1])." ".bersihkan_arti($list_arti[0]); array_push($list_pindah, swap_titik_koma($katanya)); //pindahkan artinya
unset($list_arti[0]); //hapus kata ke-1 unset($list_arti[1]); //hapus kata ke-2 unset($list_arti[2]); //hapus kata ke-3
$list_swap = array_values($list_arti); //swap list array
$list_arti = array_values($list_swap); //re-index an array
}
else if(bagian($list_arti[0]) == "dp" && bagian($list_arti[1]) == "kb") { $katanya = bersihkan_arti($list_arti[1])." ".bersihkan_arti($list_arti[0]); array_push($list_pindah, swap_titik_koma($katanya)); //pindahkan artinya
unset($list_arti[0]); //hapus kata ke-1 unset($list_arti[1]); //hapus kata ke-2
$list_swap = array_values($list_arti); //swap list array
$list_arti = array_values($list_swap); //re-index an array
}
else if(bagian($list_arti[0]) == "dp" && bagian($list_arti[1]) == "ks" && bagian($list_arti[2]) == "kb")
{
$katanya = bersihkan_arti($list_arti[2])." ".bersihkan_arti($list_arti[1])." ".bersihkan_arti($list_arti[0]); array_push($list_pindah, swap_titik_koma($katanya)); //pindahkan artinya
unset($list_arti[0]); //hapus kata ke-1 unset($list_arti[1]); //hapus kata ke-2 unset($list_arti[2]); //hapus kata ke-3
$list_swap = array_values($list_arti); //swap list array
$list_arti = array_values($list_swap); //re-index an array
}
else if(bagian($list_arti[0]) == "kb" && bagian($list_arti[1]) == "kb") { $katanya = bersihkan_arti($list_arti[1])." ".bersihkan_arti($list_arti[0]); array_push($list_pindah, swap_titik_koma($katanya)); //pindahkan artinya
unset($list_arti[0]); //hapus kata ke-1 unset($list_arti[1]); //hapus kata ke-2
$list_swap = array_values($list_arti); //swap list array
$list_arti = array_values($list_swap); //re-index an array
}
else if(bagian($list_arti[0]) == "possesive" && bagian($list_arti[1]) == "ks" && bagian($list_arti[2]) == "ks" && bagian($list_arti[3]) == "kb") { $katanya = bersihkan_arti($list_arti[3])." ".bersihkan_arti($list_arti[2])." ".bersihkan_arti($list_arti[1])." ".bersihkan_arti($list_arti[0]); array_push($list_pindah, swap_titik_koma($katanya)); //pindahkan artinya
unset($list_arti[0]); //hapus kata ke-1 unset($list_arti[1]); //hapus kata ke-2 unset($list_arti[2]); //hapus kata ke-3 unset($list_arti[3]); //hapus kata ke-4
$list_swap = array_values($list_arti); //swap list array
$list_arti = array_values($list_swap); //re-index an array
}
else //input [i] ke list_pindah, hapus [i] di list_arti
{
array_push($list_pindah,
bersihkan_arti($list_arti[0])); //pindahkan artinya unset($list_arti[0]); //hapus kata ke-1
$list_swap = array_values($list_arti); //swap list array
$list_arti = array_values($list_swap); //re-index an array
} }
}
function list_idiom($input, $skip) { global $list_arti; global $list_idiom; $list_swap = array(); if($skip == 1) {
if(count($list_idiom) == 1) //apabila isi dari list idiom hanya 1
{
array_push($list_arti, $list_idiom[0], $input); //masukkan arti kata 1 dan arti input ke list arti
unset($list_idiom[0]); //hapus kata ke-1 $list_swap = array_values($list_idiom); //swap list array
$list_idiom = array_values($list_swap); //re-index an array
}
else if(count($list_idiom) > 1) //apabila isi dari list idiom lebih dari 1
while(count($list_idiom) > 0) //lakukan selama list idiom terisi
{
$dua_kata = $list_idiom[0]." ".$list_idiom[1];
$tiga_kata = $list_idiom[0]." ".$list_idiom[1]." ".$list_idiom[2];
if(count($list_idiom) == 1) //jika kata dalam list_idiom tersisa 1
{
array_push($list_arti, $list_idiom[0]); //masukkan arti kata 1 ke list arti
unset($list_idiom[0]); //hapus kata ke-1
$list_swap = array_values($list_idiom); //swap list array
$list_idiom = array_values($list_swap); //re-index an array
} else {
$sql1 = 'SELECT kata from words_bank where kata = "'.bersihkan($dua_kata).'" and bagian = "idiom"';
$query1 = mysql_query($sql1); mysql_num_rows($query1);
if(mysql_num_rows($query1) > 0) //jika kata 1 dan 2 = idiom
{
$sql2 = 'SELECT kata from words_bank where kata = "'.bersihkan($tiga_kata).'" and bagian = "idiom"'; $query2 = mysql_query($sql2);
if(mysql_num_rows($query2) > 0) //jika kata 1, 2 dan 3 = idiom
{
array_push($list_arti, $tiga_kata); //masukkan arti kata 1, 2 dan 3 ke list arti
unset($list_idiom[0]); //hapus kata ke-1
unset($list_idiom[1]); //hapus kata ke-2
unset($list_idiom[2]); //hapus kata ke-3
$list_swap = array_values($list_idiom); //swap list array $list_idiom = array_values($list_swap); //re-index an array }
else //ternyata hanya kata 1 dan 2 yang idiom
{
array_push($list_arti, $dua_kata); //masukkan arti kata 1 dan 2 ke list arti
unset($list_idiom[0]); //hapus kata ke-1
unset($list_idiom[1]); //hapus kata ke-2
$list_swap = array_values($list_idiom); //swap list array
$list_idiom = array_values($list_swap); //re-index an array
} }
else //ternyata kata 1 dan 2 bukan idiom
{
$sql2 = 'SELECT kata from words_bank where kata = "'.bersihkan($tiga_kata).'" and bagian = "idiom"';
$query2 = mysql_query($sql2);
if(mysql_num_rows($query2) > 0) //jika kata 1, 2 dan 3 = idiom
{
array_push($list_arti, $tiga_kata); //masukkan arti kata 1, 2 dan 3 ke list arti
unset($list_idiom[0]); //hapus kata ke-1 unset($list_idiom[1]); //hapus kata ke-2 unset($list_idiom[2]); //hapus kata ke-3
$list_swap = array_values($list_idiom); //swap list array
$list_idiom = array_values($list_swap); //re-index an array
} else {
array_push($list_arti, $list_idiom[0]); //masukkan arti kata 1 ke list arti
unset($list_idiom[0]); //hapus kata ke-1
$list_swap = array_values($list_idiom); //swap list array
$list_idiom = array_values($list_swap); //re-index an array
} }
} }
array_push($list_arti, $input); //masukkan arti input ke list arti
}
else //ternyata list idiom masih KOSONG {
array_push($list_arti, $input); //masukkan arti input ke list arti
} } else if($skip == 0) { array_push($list_idiom, $input); } } $list_arti = array(); $list_pindah = array();
$list_idiom = array(); $skip = 0;
$baris_baru = explode ("\n", $input);
for($j = 0; $j<=count($baris_baru)-1; $j++) {
$kata = explode (" ", $baris_baru[$j]);
for($i = 0; $i<=count($kata)-1; $i++) //cari arti kata per-kata { if(mysql_num_rows(cari_arti("= \"$kata[$i]\"", "")) > 0) { if(mysql_num_rows(cari_arti("like \"%
$kata[$i]\" OR kata like \"$kata[$i] %\"", "and bagian = 'idiom'")) > 0) //apakah kata memiliki kemiripan pada idiom?
{
list_idiom($kata[$i], 0); //masukkan idiom ke fungsi idiom
} else {
list_idiom($kata[$i], 1); //untuk melanjutkan proses pencocokan idiom, ke step SKIP = 1
} }
else //ternyata tidak ada arti {
$list_arti[$i] = $kata[$i]; }
}
list_idiom('', 1); //jika kata input terakhir bukan idiom, maka artikan IDIOM
pindah($list_arti); //jalankan fungsi perpindahan kata echo "<h1>Translation</h1>";
echo "<h3>".tampilkan_arti($list_pindah)."</h3>"; unset ($list_arti);
} ?>