Listing Program
3. Listing Program
<?php /* Nama file = spk_saw.php */
class spk_saw{ public $bobot = array(); public $alternatif = array(); public $criteria = array(); public $nilai = array(); public $status = array(); private $normalisasi = array(); private $pembobotan = array();
// fungsi get
public function get_bobot($id){ if(array_key_exists($id,$this->bobot)){
return $this->bobot[$id] ; }else{ return 0 ; }
public function get_nilai($id_Alternatif,$id_Criteria){ if(array_key_exists($id_Alternatif, $this->nilai) == 1){
if(array_key_exists($id_Criteria, $this->nilai[$id_Alternatif])){
$nilai = $this->nilai[$id_Alternatif][$id_Criteria];
} } return $nilai ; }
public function get_status($id){ if(array_key_exists($id, $this-> status)) return $this->status[$id]; }
//fungsi set //fungsi set
} public function set_nilai($nilai = array()){
$this->nilai = $nilai; return $this;
public function set_bobot($value = array()){ $this->bobot = $value; return $this; }
public function set_alternatif($alternatif = array()){ $this->alternatif = $alternatif; return $this; }
public function set_criteria ($criteria = array()){ $this->criteria = $criteria; return $this; }
//--------------------------------------------------------------------------------------------------- --------get min public function get_min($key_kriteria){ $array = $this->list_nilai_Colom_Criteria($key_kriteria); if(!is_array($array)){
return 0; } foreach($array as $key=>$value){
if($key_kriteria == $key){
if(is_array($value) == 1){ return min($value); }
//--------------------------------------------------------------------------------------------------- ---get max public function get_max($key_kriteria){ $array = $this->list_nilai_Colom_Criteria($key_kriteria); if(!is_array($array)){
return 0; } return 0; }
if(is_array($value) == 1){ return max($value); }
//----------------------------------------------------------------------------------------------- fungsi nilai criteria private function list_nilai_Colom_Criteria($key_kriteria){ foreach ($this->nilai as $id_alternatif=>$array_criteria){
foreach($array_criteria as $id_criteria=>$nilai){ if($key_kriteria == $id_criteria){
$datanilai[$id_criteria][] = $nilai; }
return $datanilai; }
//---------------------------------------------------------------------------------------------- menampilkan normalisasi
public function pembobotan(){ if(count($this->normalisasi) != 0 ){ foreach ($this->normalisasi as $idAlternatif=>$arrayCriteria){
$data_[$idAlternatif] = 0; foreach ($arrayCriteria as $idCriteria=>$nilai){
+= $nilai*$this- >get_bobot($idCriteria) ;
$data_[$idAlternatif]
} } $this->pembobotan = $data_;
} return $this; } //---------------------------------------------------------------------------------------------------
------ funsi normalisasi ------ funsi normalisasi
foreach($this->alternatif as $key_alternatif=>$value_alternatif){ foreach($this->criteria as $key_criteria=>$value_criteria){
//jika status kriteria = cost if ($this->get_status($key_criteria) == 0) {
$this- >get_nilai($key_alternatif,$key_criteria)?$this->get_min($key_criteria)/$this- >get_nilai($key_alternatif,$key_criteria) : 0;
$nilai[$key_alternatif][$key_criteria]
}else{
$nilai[$key_alternatif][$key_criteria] = $this- >get_nilai($key_alternatif,$key_criteria)?$this- >get_nilai($key_alternatif,$key_criteria)/$this->get_max($key_criteria) : 0;
} } } $this->normalisasi = $nilai; return $this; }
//--------------------------------------------------------------------------------------------------- ------------get_normalisasi
public function get_normalisasi(){ $html = ''; foreach($this->normalisasi()->normalisasi as $idAlternatif=>$arrayCriteria){
$html .= '<tr>'; foreach($arrayCriteria as $idCriteria=>$nilai){ $html .= '<td>'.$nilai.'</td>'; }
$html .= '</tr>'; }
return '<table border=1>'.$html.'</table>'; }
//--------------------------------------------------------------------------------------------------- ----------------fungsi ranking public function ranking(){ $html = ''; foreach ($this->pembobotan as $idAlternatif=>$nilaiakhir){
$final_data[$idAlternatif] = $nilaiakhir; }
$html .= "<table><tr><td>Rank</td><td>ID Alternatif</td><td>Nilai V</td></tr>"; arsort($final_data); $rank = 1; foreach($final_data as $id=>$nilai){ $html .= "<tr><td>".$rank."</td><td>".$id."</td><td>".$nilai."</td></tr>"; $rank++; } $html .= "</table>"; return $html; }
//--------------------------------------------------------------------------------------------------- ---------------- fungsi get nilai real public function get_nilai_real(){
//--------------------------------------------------------------------------------------------------- -------------Code End spk_saw.php ?>
<?php //Include ("spk_saw.php"); // Cara Pemanggilan Program
//set Alternatif list $alternatif = array(1=>"Alternatif 01", 2=> "Alternatif 02",3=> "Alternatif 03", 4=>
"Alternatif 04"); //Set Kriteria list $criteria = array(1=>"Criteria 1", 2=>"Criteria 1",3=>"Criteria 1", 4=>"Criteria
1",5=>"Criteria 1"); //Set Status Setiap Kriteria 0 = Cost dan 1 = benafit $status = array( 1=> 0, 2=> 1, 3=> 1, 4=> 0, 5=> 1); //Set Bobot Setiap Kriteria syarat bobot total = 1 or 100 $bobot = array(1=>0.25, 2=>0.15,3=>0.30, 4=>0.25,5=>0.05); //Set Nilai Kriteria dari Setiap Alternatif $nilai = array(
1=>array(1=>150,2=> 15,3=> 2, 4=> 2,5=> 3), 2=>array(1=> 500, 2=> 200,3=> 2, 4=> 3,5=> 2,) , 3=>array(1=> 200, 2=> 10,3=> 3, 4=> 1,5=> 3, ), 4=>array(1=> 350, 2=> 100,3=> 3, 4=> 1,5=> 2, ));
$saw = new spk_saw(); // panggil class spk_saw $saw = new spk_saw(); // panggil class spk_saw
>set_bobot($bobot)->set_nilai($nilai)->normalisasi()->pembobotan()->ranking();
?>
4.