please help..!! i am tired to fix my code.
What I have tried:
original code
function jumlah_data($kondisi){
if($kondisi==''){
$sql = mysql_query("SELECT COUNT(*) FROM data_training $kondisi");
}else{
$sql = mysql_query("SELECT COUNT(*) FROM data_training WHERE $kondisi");
}
$row = mysql_fetch_array($sql);
$jml = $row['0'];
return $jml;
}
rebuild
function jumlah_data($kondisi){
if($kondisi==''){
$query = "SELECT COUNT(*) FROM data_training $kondisi";
$sql = mysql_query($query) ||
die("Error SQL: $query". PHP_EOL .mysql_error().");
//$sql = mysql_query("SELECT COUNT(*) FROM data_training $kondisi");
}else{
$query = "SELECT COUNT(*) FROM data_training WHERE $kondisi";
$sql = mysql_query($query) ||
die("Error SQL: $query". PHP_EOL .mysql_error().");
}
$row = mysql_fetch_array($sql);
$jml = $row['0'];
return $jml;
}
But error
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in D:\XAMPP\htdocs\MMM\New folder\fungsi.php on line 48
LEAF
Error SQL: SELECT COUNT(*) FROM data_training WHERE AND target='laku'
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right sy
Full code
?php
function cek_nilaiAtribut($field , $kondisi){
$hasil = array();
if($kondisi==''){
$sql = mysql_query("SELECT DISTINCT($field) FROM data_training");
}else{
$sql = mysql_query("SELECT DISTINCT($field) FROM data_training WHERE $kondisi");
}
$a=0;
while($row = mysql_fetch_array($sql)){
$hasil[$a] = $row['0'];
$a++;
}
return $hasil;
}
function cek_heterohomogen($field , $kondisi){
if($kondisi==''){
$sql = mysql_query("SELECT DISTINCT($field) FROM data_training");
}else{
$sql = mysql_query("SELECT DISTINCT($field) FROM data_training WHERE $kondisi");
}
if (mysql_num_rows($sql) == 1) {
$nilai = "homogen";
}else{
$nilai = "heterogen";
}
return $nilai;
}
function jumlah_data($kondisi){
if($kondisi==''){
$sql = mysql_query("SELECT COUNT(*) FROM data_training $kondisi");
}else{
$sql = mysql_query("SELECT COUNT(*) FROM data_training WHERE $kondisi");
}
$row = mysql_fetch_array($sql);
$jml = $row['0'];
return $jml;
}
function hitung_gain($kasus , $atribut , $ent_all , $kondisi1 , $kondisi2 , $kondisi3 , $kondisi4){
$data_kasus = '';
if($kasus!=''){
$data_kasus = $kasus." AND ";
}
if($kondisi3==''){
$j_laku1 = jumlah_data("$data_kasus target='laku' AND $kondisi1");
$j_tidak1 = jumlah_data("$data_kasus target='tidak' AND $kondisi1");
$jml1 = $j_laku1 + $j_tidak1;
$j_laku2 = jumlah_data("$data_kasus target='laku' AND $kondisi2");
$j_tidak2 = jumlah_data("$data_kasus target='tidak' AND $kondisi2");
$jml2 = $j_laku2 + $j_tidak2;
$jml_total = $jml1 + $jml2;
$ent1 = hitung_entropy($j_laku1 , $j_tidak1);
$ent2 = hitung_entropy($j_laku2 , $j_tidak2);
$gain = $ent_all - ((($jml1/$jml_total)*$ent1) + (($jml2/$jml_total)*$ent2));
}
else if($kondisi4==''){
$j_laku1 = jumlah_data("$data_kasus target='laku' AND $kondisi1");
$j_tidak1 = jumlah_data("$data_kasus target='tidak' AND $kondisi1");
$jml1 = $j_laku1 + $j_tidak1;
$j_laku2 = jumlah_data("$data_kasus target='laku' AND $kondisi2");
$j_tidak2 = jumlah_data("$data_kasus target='tidak' AND $kondisi2");
$jml2 = $j_laku2 + $j_tidak2;
$j_laku3 = jumlah_data("$data_kasus target='laku' AND $kondisi3");
$j_tidak3 = jumlah_data("$data_kasus target='tidak' AND $kondisi3");
$jml3 = $j_laku3 + $j_tidak3;
$jml_total = $jml1 + $jml2 + $jml3;
$ent1 = hitung_entropy($j_laku1 , $j_tidak1);
$ent2 = hitung_entropy($j_laku2 , $j_tidak2);
$ent3 = hitung_entropy($j_laku3 , $j_tidak3);
$gain = $ent_all - ((($jml1/$jml_total)*$ent1) + (($jml2/$jml_total)*$ent2)
+ (($jml3/$jml_total)*$ent3));
}
$gain = round($gain,3);
if($gain>0){
echo "Gain ".$atribut." = ".$gain."<br>";
}
mysql_query("INSERT INTO gain VALUES ('','$atribut','$gain')");
}
function hitung_entropy($nilai1 , $nilai2){
$total = $nilai1 + $nilai2;
if($nilai1==0 or $nilai2==0){
$entropy = 0;
}else{
$entropy = (-($nilai1/$total)*(log(($nilai1/$total),2))) + (-($nilai2/$total)*(log(($nilai2/$total),2)));
}
$entropy = round($entropy, 3);
return $entropy;
}
function hitung_rasio($kasus , $atribut , $gain , $nilai1 , $nilai2 , $nilai3){
$data_kasus = '';
if($kasus!=''){
$data_kasus = $kasus." AND ";
}
$jmlNilai=3;
if($nilai3==''){
$jmlNilai=2;
}
mysql_query("TRUNCATE rasio_gain");
if($jmlNilai==3){
$opsi11 = jumlah_data("$data_kasus ($atribut='$nilai2' OR $atribut='$nilai3')");
$opsi12 = jumlah_data("$data_kasus $atribut='$nilai1'");
$tot_opsi1=$opsi11+$opsi12;
$opsi21 = jumlah_data("$data_kasus ($atribut='$nilai3' OR $atribut='$nilai1')");
$opsi22 = jumlah_data("$data_kasus $atribut='$nilai2'");
$tot_opsi2=$opsi21+$opsi22;
$opsi31 = jumlah_data("$data_kasus ($atribut='$nilai1' OR $atribut='$nilai2')");
$opsi32 = jumlah_data("$data_kasus $atribut='$nilai3'");
$tot_opsi3=$opsi31+$opsi32;
$opsi1 = (-($opsi11/$tot_opsi1)*(log(($opsi11/$tot_opsi1),2))) + (-($opsi12/$tot_opsi1)*(log(($opsi12/$tot_opsi1),2)));
$opsi2 = (-($opsi21/$tot_opsi2)*(log(($opsi21/$tot_opsi2),2))) + (-($opsi22/$tot_opsi2)*(log(($opsi22/$tot_opsi2),2)));
$opsi3 = (-($opsi31/$tot_opsi3)*(log(($opsi31/$tot_opsi3),2))) + (-($opsi32/$tot_opsi3)*(log(($opsi32/$tot_opsi3),2)));
$opsi1 = round($opsi1,3);
$opsi2 = round($opsi2,3);
$opsi3 = round($opsi3,3);
$rasio1 = $gain/$opsi1;
$rasio2 = $gain/$opsi2;
$rasio3 = $gain/$opsi3;
$rasio1 = round($rasio1,3);
$rasio2 = round($rasio2,3);
$rasio3 = round($rasio3,3);
echo "Opsi 1 : <br>jumlah ".$nilai2."/".$nilai3." = ".$opsi11.
"<br>jumlah ".$nilai1." = ".$opsi12.
"<br>Split = ".$opsi1.
"<br>Rasio = ".$rasio1."<br>";
echo "Opsi 2 : <br>jumlah ".$nilai3."/".$nilai1." = ".$opsi21.
"<br>jumlah ".$nilai2." = ".$opsi22.
"<br>Split = ".$opsi2.
"<br>Rasio = ".$rasio2."<br>";
echo "Opsi 3 : <br>jumlah ".$nilai1."/".$nilai2." = ".$opsi31.
"<br>jumlah ".$nilai3." = ".$opsi32.
"<br>Split = ".$opsi3.
"<br>Rasio = ".$rasio3."<br>";
mysql_query("INSERT INTO rasio_gain VALUES
('' , 'opsi1' , '$nilai1' , '$nilai2 , $nilai3' , '$rasio1'),
('' , 'opsi2' , '$nilai2' , '$nilai3 , $nilai1' , '$rasio2'),
('' , 'opsi3' , '$nilai3' , '$nilai1 , $nilai2' , '$rasio3')");
}
$sql_max = mysql_query("SELECT MAX(rasio_gain) FROM rasio_gain");
$row_max = mysql_fetch_array($sql_max);
$max_rasio = $row_max['0'];
$sql = mysql_query("SELECT * FROM rasio_gain WHERE rasio_gain=$max_rasio");
$row = mysql_fetch_array($sql);
$opsiMax = array();
$opsiMax[0] = $row[2];
$opsiMax[1] = $row[3];
echo "<br>=========================<br>";
return $opsiMax;
}
?>