Advertisement
Guest User

rangking

a guest
May 12th, 2019
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.48 KB | None | 0 0
  1. <?php
  2. error_reporting(0);
  3. ?>
  4.  
  5. <?php
  6. //-- konfigurasi database
  7. $dbhost = 'localhost';
  8. $dbuser = 'root';
  9. $dbpass = '';
  10. $dbname = 'db_moora';
  11. //-- koneksi ke database server dengan extension mysqli
  12. $db = new mysqli($dbhost,$dbuser,$dbpass,$dbname);
  13. //-- hentikan program dan tampilkan pesan kesalahan jika koneksi gagal
  14. if ($db->connect_error) {
  15. die('Connect Error ('.$db->connect_errno.')'.$db->connect_error);
  16. }
  17. ?>
  18. <?php
  19. //-- query untuk mendapatkan semua data kriteria di tabel moo_kriteria
  20. $sql = 'SELECT * FROM tbl_kriteria';
  21. $result = $db->query($sql);
  22. //-- menyiapkan variable penampung berupa array
  23. $kriteria=array();
  24. //-- melakukan iterasi pengisian array untuk tiap record data yang didapat
  25. foreach ($result as $row) {
  26. $kriteria[$row['id_kriteria']]=array($row['kriteria'],$row['tipe'],$row['bobot']);
  27. }
  28. ?>
  29.  
  30. <?php
  31. //-- query untuk mendapatkan semua data kriteria di tabel moo_alternatif
  32. $sql = 'SELECT * FROM tbl_alternatif';
  33. $result = $db->query($sql);
  34. //-- menyiapkan variable penampung berupa array
  35. $alternatif=array();
  36. //-- melakukan iterasi pengisian array untuk tiap record data yang didapat
  37. foreach ($result as $row) {
  38. $alternatif[$row['id']]=array($row['alternatif'],
  39. $row['alamat'],
  40. $row['bagian']);
  41. }
  42. ?>
  43.  
  44. <?php
  45. //-- query untuk mendapatkan semua data sample penilaian di tabel moo_nilai
  46. $sql = 'SELECT * FROM tbl_nilai ORDER BY id,id_kriteria';
  47. $result = $db->query($sql);
  48. //-- menyiapkan variable penampung berupa array
  49. $sample=array();
  50. //-- melakukan iterasi pengisian array untuk tiap record data yang didapat
  51. foreach ($result as $row) {
  52. //-- jika array $sample[$row['id_alternatif']] belum ada maka buat baru
  53. //-- $row['id_alternatif'] adalah id kandidat/alternatif
  54. if (!isset($sample[$row['id']])) {
  55. $sample[$row['id']] = array();
  56. }
  57. $sample[$row['id']][$row['id_kriteria']] = $row['nilai'];
  58. }
  59. ?>
  60.  
  61. <?php
  62. //-- inisialisasi nilai normalisasi dengan nilai dari $sample
  63. $normal=$sample;
  64. foreach($kriteria as $id_kriteria=>$k){
  65. //-- inisialisasi nilai pembagi tiap kriteria
  66. $pembagi=0;
  67. foreach($alternatif as $id_alternatif=>$a){
  68. $pembagi+=pow($sample['id']['id_kriteria'],2);
  69. }
  70. foreach($alternatif as $id_alternatif=>$a){
  71. $normal['id']['id_kriteria']/=sqrt($pembagi);
  72. }
  73. }
  74. ?>
  75.  
  76. <?php
  77. //-- menyiapkan variabel untuk menyimpan data yang sudah dioptimasi
  78. $optimasi=array();
  79. foreach($alternatif as $id=>$a){
  80. $optimasi[$id]=0;
  81. foreach($kriteria as $id_kriteria=>$k){
  82. $optimasi[$id]+=$normal[$id][$id_kriteria]*($k[1]=='benefit'?1:-1)*$k[2];
  83. }
  84. }
  85. ?>
  86.  
  87. <?php
  88. //--mengurutkan data secara descending dengan tetap mempertahankan key/index array-nya
  89. arsort($optimasi);
  90. //-- mendapatkan key/index item array yang pertama
  91. $index=key($optimasi);
  92. //-- menampilkan hasil akhir:
  93.  
  94.  
  95.  
  96. // echo "Karyawan terbaik adalah alternatif <b>{$alternatif[$index][0]}</b> ";
  97. // echo "dengan nilai optimasi <b>{$optimasi[$index]}</b> ";
  98.  
  99. foreach($alternatif as $key => $rangking) {
  100. $data[] = [
  101. 'nama' => $rangking[0],
  102. 'kota' => $rangking[1],
  103. 'jabatan' => $rangking[2],
  104. 'optimasi' => $optimasi[$key],
  105. ];
  106. }
  107.  
  108. $optimasi = array_column($data, 'optimasi');
  109. $rangking_karyawan = array_multisort($optimasi, SORT_DESC, $data);
  110.  
  111. // echo "<pre>";
  112. // print_r($data);
  113. // echo "<pre>";die();
  114.  
  115. ?>
  116.  
  117. <html>
  118. <head><title></title>
  119. <link rel="stylesheet" type="text/css" href="style.css">
  120. </head>
  121. <body>
  122. <center>
  123. <div class="judul">
  124. <img src ='HDS_logo.png' align='left' width='150' height='150'>
  125.  
  126. <h1>Hotel Dafam Semarang</h1>
  127. <h2>Jl. Imam Bonjol No.188 Semarang - Jawa Tengah</h2>
  128. <h3>Telepon: (024) 3554111</h3>
  129. </div>
  130. <br/>
  131.  
  132. <h3>Perangkingan</h3>
  133.  
  134. <table border="1" class="table">
  135. <tr>
  136. <th>No</th>
  137. <th>Nama</th>
  138. <th>Kota</th>
  139. <th>Jabatan</th>
  140. <th>Optimasi</th>
  141. </tr>
  142. <?php foreach($data as $key => $datas)
  143. {?>
  144. <tr>
  145. <td><?= $key+1 ?></td>
  146. <td><?= $datas['nama']?></td>
  147. <td><?= $datas['kota']?></td>
  148. <td><?= $datas['jabatan']?></td>
  149. <td><?= $datas['optimasi']?></td>
  150.  
  151. </tr>
  152. <?php }?>
  153. </table>
  154.  
  155. <p>Karyawan terbaik adalah <b><?php echo $data[0]['nama']?></b></p>
  156. <p>dengan nilai optimasi <b><?php echo $data[0]['optimasi']?></p>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement