mysql_fetch_array() expects parameter 1 to be resource boolean given in line 42 (duplicate)

bagaimana cara memperbaiki ini.? mohon bantuannya para master.

 	//fungsi menghitung jumlah data
	function jumlah_data($kondisi){
		//sql
		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);	//disini line 42nya
		$jml = $row['0'];
		return $jml;
	}

untuk full codenya

 <?php
	//fungsi cek nilai atribut
	function cek_nilaiAtribut($field , $kondisi){
		//sql disticnt
		$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;
	}
	//fungsi cek heterogen data
	function cek_heterohomogen($field , $kondisi){
		//sql disticnt
		if($kondisi==''){
			$sql = mysql_query("SELECT DISTINCT($field) FROM data_training");
		}else{
			$sql = mysql_query("SELECT DISTINCT($field) FROM data_training WHERE $kondisi");
		}
		//jika jumlah data 1 maka homogen
		if (mysql_num_rows($sql) == 1) {
			$nilai = "homogen";
		}else{
			$nilai = "heterogen";
		}
		return $nilai;
	}
	//fungsi menghitung jumlah data
	function jumlah_data($kondisi){
		//sql
		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;
	}
	//fungsi menghitung gain
	function hitung_gain($kasus , $atribut , $ent_all , $kondisi1 , $kondisi2 , $kondisi3 , $kondisi4){
		$data_kasus = '';
		if($kasus!=''){
			$data_kasus = $kasus." AND ";
		}
		//untuk atribut 2 nilai atribut
		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;
			//hitung entropy masing-masing kondisi
			$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));
		}
		//untuk atribut 3 nilai atribut
		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;
			//hitung entropy masing-masing kondisi
			$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));
		}
		//desimal 3 angka dibelakang koma
		$gain = round($gain,3);
		if($gain>0){
			echo "Gain ".$atribut." = ".$gain."<br>";
		}
		mysql_query("INSERT INTO gain VALUES ('','$atribut','$gain')");
	}
	//fungsi menghitung entropy
	function hitung_entropy($nilai1 , $nilai2){
		$total = $nilai1 + $nilai2;
		//jika salah satu nilai 0, maka entropy 0
		if($nilai1==0 or $nilai2==0){
			$entropy = 0;
		}else{
			$entropy = (-($nilai1/$total)*(log(($nilai1/$total),2))) + (-($nilai2/$total)*(log(($nilai2/$total),2)));
		}
		//desimal 3 angka dibelakang koma
		$entropy = round($entropy, 3);
		return $entropy;
	}
	//fungsi hitung rasio
	function hitung_rasio($kasus , $atribut , $gain , $nilai1 , $nilai2 , $nilai3){
		$data_kasus = '';
		if($kasus!=''){
			$data_kasus = $kasus." AND ";
		}
		//menentukan jumlah nilai
			$jmlNilai=3;
			//jika nilai 3 kosong maka nilai atribut-nya 2
			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;
			//hitung split info
			$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)));
			//desimal 3 angka dibelakang koma
			$opsi1 = round($opsi1,3);
			$opsi2 = round($opsi2,3);
			$opsi3 = round($opsi3,3);
			//hitung rasio
			$rasio1 = $gain/$opsi1;
			$rasio2 = $gain/$opsi2;
			$rasio3 = $gain/$opsi3;
			//desimal 3 angka dibelakang koma
			$rasio1 = round($rasio1,3);
			$rasio2 = round($rasio2,3);
			$rasio3 = round($rasio3,3);
			//cetak
			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>";

			//insert
			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;
	}
?>
avatar Noic
@Noic

3 Kontribusi 1 Poin

Diperbarui 6 tahun yang lalu

5 Jawaban:

 $sql = mysql_query("SELECT COUNT(*) FROM data_training $kondisi");

kode nya kurang klausa WHERE.

 $sql = mysql_query("SELECT COUNT(*) FROM data_training WHERE $kondisi");
avatar arkaanni
@arkaanni

29 Kontribusi 15 Poin

Dipost 6 tahun yang lalu

@akaannni gak bisa mas. jadi stack sama elsenya kalo double.

avatar Noic
@Noic

3 Kontribusi 1 Poin

Dipost 6 tahun yang lalu

Bukannya harusnya malah yg pertama tanpa $kondisi?

$sql = mysql_query("SELECT COUNT(*) FROM data_training");

avatar rachmatsasongko
@rachmatsasongko

410 Kontribusi 426 Poin

Dipost 6 tahun yang lalu

Oiya kan gaada kondisinya jadi gausah pake WHERE $kondisi

avatar arkaanni
@arkaanni

29 Kontribusi 15 Poin

Dipost 6 tahun yang lalu

@rachmatsasongko @akaannni makasih mas, sudah dihapus errornya masih tetap tetap

avatar Noic
@Noic

3 Kontribusi 1 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban