Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?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='test';
- $dbpass='test';
- $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>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement