Guest User

Untitled

a guest
Mar 18th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.29 KB | None | 0 0
  1. <?php
  2.  
  3. class Koneksi
  4. {
  5. private $servername = "localhost";
  6. private $dbname = "dakademik";
  7. private $username = "root";
  8. private $password = "";
  9.  
  10. /** Koneksi **/
  11. private $conn;
  12.  
  13. /** Konstruktor **/
  14. function __construct()
  15. {
  16. $this->conn = new mysqli($this->servername, $this->username, $this->password, $this->dbname); // Buka Koneksi
  17. if($this->conn->connect_error)
  18. {
  19. die("Connection Failed : ". $conn->connect_error);
  20. }
  21. }
  22.  
  23. function __destruct()
  24. {
  25. if(isset($this->conn))
  26. $this->conn->close(); // Tutup Koneksi
  27. }
  28.  
  29. /** Getter Koneksi **/
  30. protected function getKoneksi()
  31. {
  32. return $this->conn;
  33. }
  34.  
  35. }
  36.  
  37. class Mahasiswa extends Koneksi
  38. {
  39. private $NIM;
  40. private $Nama;
  41. private $IP;
  42. private $stmt;
  43.  
  44. function __construct()
  45. {
  46. parent::__construct();
  47. }
  48.  
  49. function __destruct()
  50. {
  51. if(isset($this->stmt))
  52. $this->stmt->close();
  53. parent::__destruct();
  54. }
  55.  
  56. public function __call($name, $arguments)
  57. {
  58. switch ($name)
  59. {
  60. /** SETTER **/
  61. case 'setNIM' :
  62. $this->NIM = $arguments[0];
  63. break;
  64.  
  65. case 'setNama' :
  66. $this->Nama = $arguments[0];
  67. break;
  68.  
  69. case 'setIP' :
  70. $this->IP = $arguments[0];
  71. break;
  72.  
  73. case 'setData' :
  74. if(sizeof($arguments) == 3)
  75. {
  76. $this->NIM = $arguments[0];
  77. $this->Nama = $arguments[1];
  78. $this->IP = $arguments[2];
  79. }
  80. break;
  81.  
  82. /** GETTER **/
  83.  
  84. case 'getNIM' :
  85. return $this->NIM;
  86. break;
  87.  
  88. case 'getNama' :
  89. return $this->Nama;
  90. break;
  91.  
  92. case 'getIP' :
  93. return $this->IP;
  94. break;
  95. }
  96. }
  97.  
  98. /** ALL DATA **/
  99. public function getListResultQuery()
  100. {
  101. $conn = parent::getKoneksi();
  102. $sql = "SELECT * FROM mahasiswa";
  103. $result = $conn->query($sql);
  104. return $result;
  105. }
  106.  
  107. public function saveData()
  108. {
  109. if(isset($this->NIM) and isset($this->Nama) and isset($this->IP))
  110. {
  111. $conn = parent::getKoneksi();
  112. $this->stmt = $conn->prepare("INSERT INTO `mahasiswa`(`NIM`, `Nama`, `IP`) VALUES (?,?,?)");
  113. $this->stmt->bind_param('sss',$this->NIM, $this->Nama, $this->IP);
  114. $this->stmt->execute();
  115. return $this->stmt->affected_rows > 0;
  116. }
  117. return false;
  118. }
  119.  
  120. public function searchNama()
  121. {
  122. if(isset($this->Nama))
  123. {
  124. $conn = parent::getKoneksi();
  125. $this->stmt = $conn->prepare("SELECT `NIM`, `Nama`, `IP` FROM `mahasiswa` WHERE `Nama` LIKE ? ");
  126. $param = '%'.$this->Nama.'%';
  127. $this->stmt->bind_param('s', $param);
  128. $this->stmt->execute();
  129. return $this->stmt->get_result();
  130. }
  131. else
  132. return null;
  133. }
  134.  
  135. public function deleteData()
  136. {
  137. if(isset($this->NIM))
  138. {
  139. $conn = parent::getKoneksi();
  140. $this->stmt = $conn->prepare("DELETE FROM `mahasiswa` WHERE `NIM` = ?");
  141. $param = $this->NIM;
  142. $this->stmt->bind_param('s', $param);
  143. $this->stmt->execute();
  144. return $this->stmt->get_result();
  145. }
  146. else
  147. return false;
  148. }
  149.  
  150. }
  151.  
  152. $mhs = new Mahasiswa();
  153. $msg = null;
  154. $aksi = isset($_POST['Aksi']) ? $_POST['Aksi'] : null;
  155. $listquery = null;
  156.  
  157. switch($aksi)
  158. {
  159. case 'input' :
  160. if(isset($_POST['NIM']) and isset($_POST['Nama']) and isset($_POST['IP']))
  161. {
  162. $mhs->setData($_POST['NIM'], $_POST['Nama'], $_POST['IP']);
  163.  
  164. if($mhs->saveData())
  165. $msg = 'Insert Data '.$mhs->getNIM().' Sukses';
  166. else
  167. $msg = 'Insert Data '.$mhs->getNIM().' Gagal';
  168. }
  169.  
  170. $listquery = $mhs->getListResultQuery();
  171.  
  172. break;
  173.  
  174. case 'search':
  175.  
  176. $mhs->setNama($_POST['Nama']);
  177.  
  178. $listquery = $mhs->searchNama();
  179.  
  180. break;
  181.  
  182. case 'delete' :
  183. $mhs->setNIM($_POST['NIM']);
  184. $status = $mhs->deleteData();
  185.  
  186. if(isset($status))
  187. $msg = 'Data '.$mhs->getNIM().' Sukses di Delete';
  188. else
  189. $msg = 'Data '.$mhs->getNIM().' Gagal di Delete';
  190.  
  191. $listquery = $mhs->getListResultQuery();
  192.  
  193. break;
  194.  
  195. default :
  196. $listquery = $mhs->getListResultQuery();
  197. break;
  198. }
  199.  
  200.  
  201. ?>
  202.  
  203. <!DOCTYPE html>
  204. <html>
  205. <head>
  206. <title>Latihan 20</title>
  207.  
  208. <style>
  209. table {
  210. font-family: arial, sans-serif;
  211. border-collapse: collapse;
  212. width: 100%;
  213. }
  214.  
  215. td, th {
  216. border: 1px solid #dddddd;
  217. text-align: left;
  218. padding: 8px;
  219. }
  220.  
  221. tr:nth-child(even) {
  222. background-color: #dddddd;
  223. }
  224.  
  225. ul {
  226. font-family: arial, sans-serif;
  227. list-style-type: none;
  228. width: 100%;
  229. }
  230.  
  231. li {
  232. text-align: left;
  233. padding: 8px;
  234. }
  235.  
  236. input[type=text], select {
  237. width: 100%;
  238. padding: 12px 20px;
  239. margin: 8px 0;
  240. display: inline-block;
  241. border: 1px solid #ccc;
  242. border-radius: 4px;
  243. box-sizing: border-box;
  244. }
  245.  
  246. input[type=submit] {
  247. width: 100%;
  248. background-color: #4CAF50;
  249. color: white;
  250. padding: 14px 20px;
  251. margin: 8px 0;
  252. border: none;
  253. border-radius: 4px;
  254. cursor: pointer;
  255. }
  256.  
  257. input[type=submit]:hover {
  258. background-color: #45a049;
  259. }
  260.  
  261. div {
  262. border-radius: 5px;
  263. background-color: #f2f2f2;
  264. padding: 20px;
  265. }
  266.  
  267. .container-center{
  268. width: 80%;
  269. margin-left: 10%;
  270. margin-right: 10%;
  271. margin-top: 10px;
  272. margin-bottom: 10px;
  273. display: inline-block;
  274. }
  275.  
  276. .container-half{
  277. width: 40%;
  278. margin-left: 1%;
  279. margin-right: 1%;
  280. margin-top: 10px;
  281. margin-bottom: 10px;
  282. }
  283.  
  284. .text-center
  285. {
  286. text-align:center;
  287. }
  288.  
  289. .left{
  290. float:left;
  291. }
  292.  
  293. .right{
  294. float:right;
  295. }
  296.  
  297. </style>
  298. </head>
  299. <body>
  300.  
  301. <div class="container-center">
  302. <h2 class="text-center"> Latihan 20 </h2>
  303. <?php
  304. if(isset($msg))
  305. echo '<a class="text-center">'.$msg.'</a><br/>';
  306. ?>
  307. </div>
  308.  
  309. <div class="container-center">
  310. <div class="container-half left">
  311.  
  312. <div>
  313. <h2 class="text-center">Search Mahasiswa</h2>
  314.  
  315. <form action="" method="post">
  316.  
  317. <label for="Nama">Nama</label>
  318. <input type="text" name="Nama" placeholder="Nama">
  319.  
  320. <input type="hidden" name="Aksi" value="search">
  321.  
  322. <input type="submit" value="Submit">
  323. </form>
  324. </div>
  325.  
  326. <div>
  327. <h2 class="text-center">Input Mahasiswa</h2>
  328.  
  329. <form action="" method="post">
  330. <label for="NIM">NIM</label>
  331. <input type="text" name="NIM" placeholder="NIM">
  332.  
  333. <label for="Nama">Nama</label>
  334. <input type="text" name="Nama" placeholder="Nama">
  335.  
  336. <label for="IP">IP</label>
  337. <input type="text" name="IP" placeholder="IP">
  338.  
  339. <input type="hidden" name="Aksi" value="input">
  340.  
  341. <input type="submit" value="Submit">
  342. </form>
  343. </div>
  344.  
  345. </div>
  346.  
  347. <div class="container-half right">
  348.  
  349. <h2 class="text-center">List Mahasiswa</h2>
  350.  
  351. <table>
  352.  
  353. <tr>
  354. <th>NIM</th>
  355. <th>Nama</th>
  356. <th>IP</th>
  357. <th>Aksi</th>
  358. </tr>
  359.  
  360. <?php
  361.  
  362. if( $listquery->num_rows > 0)
  363. {
  364. while($row = $listquery->fetch_assoc())
  365. {
  366. ?>
  367. <tr>
  368. <td><?=$row['NIM'];?></td>
  369. <td><?=$row['Nama'];?></td>
  370. <td><?=$row['IP'];?></td>
  371. <td>
  372. <form action="" method="post">
  373. <input type="hidden" name="NIM" value="<?=$row['NIM'];?>">
  374. <input type="hidden" name="Aksi" value="delete">
  375. <button type="submit" value="Delete">Delete</button>
  376. </form>
  377. </td>
  378. </tr>
  379. <?php
  380.  
  381. }
  382. }
  383. ?>
  384. </table>
  385. </div>
  386. </div>
  387.  
  388. </body>
  389. </html>
Add Comment
Please, Sign In to add comment