Read 360 times | Created 2014-07-04 06:46:45 | Updated 2014-07-04 06:47:35 | | |

 

<?php
/************************************
filename     : pmb.php
created by   : Cahya DSN
created date : 2012-10-22
purpose      : simulasi pemeringkatan
               penerimaan siswa baru
************************************/
/*
-- SAMPLE DATABASE
 
-- use `test`
 
DROP TABLE IF EXISTS `sekolah`;
CREATE TABLE IF NOT EXISTS `sekolah` (
  `sekolah_id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'primary key untuk table sekolah',
  `sekolah_nama` varchar(255) NOT NULL COMMENT 'nama sekolah',
  `sekolah_kuota` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT 'jumlah kuota penerimaan siswa',
  PRIMARY KEY (`sekolah_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Tabel untuk menyimpan data nama sekolah berserta kuotanya';
 
 
INSERT INTO `test`.`sekolah` (`sekolah_id`, `sekolah_nama`, `sekolah_kuota`)
VALUES
(NULL, 'SMA Kepanjen', '3'),
(NULL, 'SMA Sumberpucung', '4'),
(NULL, 'SMA Lawang', '3'),
(NULL, 'SMA Tumpang', '5');
 
 
DROP TABLE IF EXISTS `pendaftar`;
CREATE TABLE IF NOT EXISTS `pendaftar` (
  `pendaftar_id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'primary key untuk table pendaftar',
  `pendaftar_nama` varchar(255) NOT NULL COMMENT 'nama pendaftar',
  `pendaftar_nilai` float(5,2) NOT NULL COMMENT 'nilai pendaftar',
  `pendaftar_pil1` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'id sekolah pilihan 1',
  `pendaftar_pil2` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'id sekolah pilihan 2',
  PRIMARY KEY (`pendaftar_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Tabel untuk menyimpan data nama pendaftar dan sekolah pilihannya';
 
INSERT INTO `test`.`pendaftar` (`pendaftar_id`, `pendaftar_nama`, `pendaftar_nilai`, `pendaftar_pil1`, `pendaftar_pil2`)
VALUES
(NULL,'A','21.45','2','3'),
(NULL,'B','28.16','1','3'),
(NULL,'C','28.64','1','4'),
(NULL,'D','29.48','3','2'),
(NULL,'E','26.75','3','4'),
(NULL,'F','24.00','4','2'),
(NULL,'G','28.74','2','3'),
(NULL,'H','26.13','2','1'),
(NULL,'I','23.56','4','3'),
(NULL,'J','24.97','2','1'),
(NULL,'K','28.59','2','4'),
(NULL,'L','26.82','1','3'),
(NULL,'M','22.14','2','1'),
(NULL,'N','27.64','1','4'),
(NULL,'O','25.99','3','2'),
(NULL,'P','25.61','1','4'),
(NULL,'Q','27.82','3','1'),
(NULL,'R','23.57','2','3'),
(NULL,'S','23.76','4','2'),
(NULL,'T','21.57','2','3'),
(NULL,'U','20.89','2','3'),
(NULL,'V','29.34','1','4'),
(NULL,'W','29.73','3','1'),
(NULL,'X','28.77','4','1'),
(NULL,'Y','26.69','3','4'),
(NULL,'Z','26.48','2','2');
*/
//-- DATABASE CONFIGURATIION
$dbhost='localhost';
$dbuser='root';
$dbpass='';
$dbname='test';
//--- Database connection
$db=new mysqli($dbhost,$dbuser,$dbpass,$dbname);
//--- variable initialization
$sekolah=array();
$kuota=array();
$index=array();
$kuota[0]=array();
$i=0;
//--- ambil data sekolah dan kuotanya
$sql="SELECT * FROM `sekolah`";
$result=$db->query($sql);
while($row=$result->fetch_object()){
  $index[$i]=$row->sekolah_id;
  $sekolah[$index[$i]]=array($row->sekolah_nama,$row->sekolah_kuota);
  $kuota[$index[$i]]=array();
  $i++;
}
$result->close();
//--- ambil data pendaftar
$sql="SELECT * FROM `pendaftar` ORDER BY `pendaftar_nilai` DESC";
$result=$db->query($sql);
//---- pengalokasian berdasarkan nilai dan kuota
while($row=$result->fetch_object())
{
  if(count($kuota[$row->pendaftar_pil1])<$sekolah[$row->pendaftar_pil1][1])
  {
    $kuota[$row->pendaftar_pil1][]=array($row->pendaftar_id,$row->pendaftar_nama,$row->pendaftar_nilai);
  }
  elseif(count($kuota[$row->pendaftar_pil2])<$sekolah[$row->pendaftar_pil2][1])
  {
    $kuota[$row->pendaftar_pil2][]=array($row->pendaftar_id,$row->pendaftar_nama,$row->pendaftar_nilai);
  }
  else
  {
    $kuota[0][]=array($row->pendaftar_id,$row->pendaftar_nama,$row->pendaftar_nilai);
  }
}
$result->close();
$db->close();
?><!DOCTYPE html>
<html>
<head>
  <title>Penerimaan Siswa Baru</title>
  <style type="text/css">
    html,body{padding:0px;margin:0px;font-family:verdana,arial,sans-serif;font-size:14px;color:#009;}
    .container {margin:5px;padding 5px;width:250px;clear:both;}
    td,th {border:solid 1px #999;margin:0px;padding:2px;}
  </style>
</head>
<body>
  <div class="container">
<?php
//----- TAMPILAN HASIL PERHITUNGAN
//----- daftar yang diterima
echo "<h4>Daftar Peringkat</h4>";
for($i=0;$i<count($sekolah);$i++){
  echo "<fieldset>"
      ."<legend><strong>".$sekolah[$index[$i]][0]."</strong></legend>n"
      ."Jumlah Kuota : <strong>".$sekolah[$index[$i]][1]."</strong><br>n";
  $num=count($kuota[$index[$i]]);
  echo "<table>n"
      ."<tr>"
      ."<th>Rangking</th>"
      ."<th>ID</th>"
      ."<th>Nama</th>"
      ."<th>Nilai</th>"
      ."</tr>n";
  for($j=0;$j<$num;$j++){
    echo "<tr><td>".($j+1)."</td>"
        ."<td>".$kuota[$index[$i]][$j][0]."</td>"
        ."<td>".$kuota[$index[$i]][$j][1]."</td>"
        ."<td>".$kuota[$index[$i]][$j][2]."</td>"
        ."</tr>n";
  }
  echo "</table>n"
      ."</fieldset>n";
}
//--- daftar yang nggak diterima
echo "<h4>Unalocated</h4>";
$num=count($kuota[0]);
echo "<table>n"
    ."<tr>"
    ."<th>Rangking</th>"
    ."<th>ID</th>"
    ."<th>Nama</th>"
    ."<th>Nilai</th>"
    ."</tr>n";
for($i=0;$i<$num;$i++){
  echo "<tr>"
      ."<td>".($i+1)."</td>"
      ."<td>".$kuota[0][$i][0]."</td>"
      ."<td>".$kuota[0][$i][1]."</td>"
      ."<td>".$kuota[0][$i][2]."</td>"
      ."</tr>n";
}
echo "</table>n</p>n";
?>
</div>
</body>
</html>