Selasa, 27 November 2018

Tambahan- Boostrap

Nama: Ayu Mutiara Sari
NRP: 05111740000149
Kelas: PWEB C




1. index.php
 <!DOCTYPE html>   
  <html>   
  <head>  
 <link rel="stylesheet" type="text/css" href="css/bootstrap.css">   
   <script type="text/javascript" src="js/jquery.js"></script>   
   <script type="text/javascript" src="js/bootstrap.js"></script>   
   <style type="text/css">   
    h1{   
     text-align: center;   
     color: MediumSeaGreen;   
    }   
    h3{   
     text-align: center;   
     color: MediumSeaGreen;   
    }   
    h4{   
     text-align: center;   
     color: grey;   
    }   
   </style>   
   <script>    
    function listsiswa() {    
     var xhttp;    
     if (window.XMLHttpRequest) {    
      xhttp = new XMLHttpRequest();    
     }    
     else {    
      xhttp = new ActiveXObject("Microsoft.XMLHTTP");    
     }    
     xhttp.onreadystatechange = function() {    
      if (this.readyState == 4 && this.status == 200) {    
       document.getElementById("awal").innerHTML = this.responseText;    
      }    
     };    
     xhttp.open("GET", "list-siswa.php", true);    
     xhttp.send();    
    }    
    function daftar() {    
     var xhttp;    
     if (window.XMLHttpRequest) {    
      xhttp = new XMLHttpRequest();    
     }    
     else {    
      xhttp = new ActiveXObject("Microsoft.XMLHTTP");    
     }    
     xhttp.onreadystatechange = function() {    
      if (this.readyState == 4 && this.status == 200) {    
       document.getElementById("awal").innerHTML = this.responseText;    
      }    
     };    
     xhttp.open("GET", "form-daftar.php", true);    
     xhttp.send();    
    }   
    function hapus(id) {    
     var xhttp;    
     if (window.XMLHttpRequest) {    
      xhttp = new XMLHttpRequest();    
     }    
     else {    
      xhttp = new ActiveXObject("Microsoft.XMLHTTP");    
     }    
     xhttp.onreadystatechange = function() {    
      if (this.readyState == 4 && this.status == 200) {    
       alert(this.responseText);    
       listsiswa();    
      }    
     };    
     xhttp.open("GET", "hapus.php?id=" + id, true);    
     xhttp.send();    
    }    
   </script>   
   <title>Pendaftaran Siswa Baru | SMK Coding</title>   
  </head>   
  <body>   
   <header>   
    <h3>Pendaftaran Siswa Baru</h3>   
    <h1>SMK Coding</h1>   
   </header>   
   <p align="center" ><button type="button" onclick="listsiswa()">List Siswa</button></p>   
   <p align="center" ><button type="button" onclick="daftar()">Pendaftaran Siswa</button> </p>  
   <div id="awal"></div>   
   </body>   
  </html>   


2. form-daftar.php
 <!DOCTYPE html>   
  <html>   
  <head>   
 <link rel="stylesheet" type="text/css" href="css/bootstrap.css">   
   <script type="text/javascript" src="js/jquery.js"></script>   
   <script type="text/javascript" src="js/bootstrap.js"></script>    
   <script type="text/javascript">  
 <style type="text/css">   
    h1{   
     text-align: center;   
     color: MediumSeaGreen;   
    }   
    h3{   
     text-align: center;   
     color: MediumSeaGreen;   
    }   
    h4{   
     text-align: center;   
     color: grey;   
    }   
   </style>     
   function insert() {    
    var nama = document.getElementById("nama").value;    
    var alamat = document.getElementById("alamat").value;    
    var jenis_kelamin;    
    if(document.getElementById("jk_l").checked) {    
     jenis_kelamin = "laki-laki";    
    }    
    else { jenis_kelamin = "perempuan";}    
    var agama = document.getElementById("agama").value;    
    var sekolah_asal = document.getElementById("sekolah_asal").value;    
    var xhttp;    
    if (window.XMLHttpRequest) {    
     xhttp = new XMLHttpRequest();    
    }    
    else {    
     xhttp = new ActiveXObject("Microsoft.XMLHTTP");    
    }    
    xhttp.onreadystatechange = function() {    
    if (this.readyState == 4 && this.status == 200)    
    {    
     alert('Pendaftaran berhasil');    
     listsiswa();    
    }    
    };    
    xhttp.open("GET", "proses-pendaftaran.php?nama=" + nama + "&alamat=" + alamat + "&jenis_kelamin=" + jenis_kelamin + "&agama=" + agama + "&sekolah_asal=" + "sekolah_asal", true);    
    xhttp.send();    
   }    
   </script>   
  </head>   
  <body>   
   <header>   
    <h3>Formulir Pendaftaran Siswa Baru</h3>   
   </header>   
   <form action="proses-pendaftaran.php" method="POST">   
    <fieldset>   
    <p>   
     <label for="nama">Nama: </label>   
     <input type="text" name="nama" id="nama" placeholder="Nama Lengkap" />   
    </p>   
    <p>   
     <label for="alamat">Alamat: </label>   
     <textarea name="alamat" id="alamat"></textarea>   
    </p>   
    <p>   
     <label for="jenis_kelamin">Jenis Kelamin: </label>   
     <label><input type="radio" name="jenis_kelamin" id="jk_l" value="laki-laki"> Laki-laki</label>   
     <label><input type="radio" name="jenis_kelamin" id="jk_p" value="perempuan"> Perempuan</label>   
    </p>   
    <p>   
     <label for="agama">Agama: </label>   
     <select name="agama" id="agama">   
      <option>Islam</option>   
      <option>Kristen</option>   
      <option>Hindu</option>   
      <option>Budha</option>   
      <option>Katolik</option>   
     </select>   
    </p>   
    <p>   
     <label for="sekolah_asal">Sekolah Asal: </label>   
     <input type="text" name="sekolah_asal" id="sekolah_asal" placeholder="nama sekolah" />   
    </p>   
    <p>   
     <input type="submit" value="Daftar" name="daftar" onclick="insert()" />   
    </p>   
    </fieldset>   
   </form>   
   </body>   
  </html>   


3.form-edit.php
 <?php   
  include("config.php");   
  if( !isset($_GET['id']) ){   
   header('Location: list-siswa.php');   
  }   
  $id = $_GET['id'];   
  $sql = "SELECT * FROM calon_siswa WHERE id=$id";   
  $query = mysqli_query($db, $sql);   
  $siswa = mysqli_fetch_assoc($query);   
  if( mysqli_num_rows($query) < 1 ){   
   die("Data tidak ditemukan.");   
  }   
  ?>   
  <!DOCTYPE html>   
  <html>   
  <head>  
 <link rel="stylesheet" type="text/css" href="css/bootstrap.css">   
   <script type="text/javascript" src="js/jquery.js"></script>   
   <script type="text/javascript" src="js/bootstrap.js"></script>    
   <title>Formulir Edit Siswa | SMK Coding</title>   
 <style type="text/css">   
    h1{   
     text-align: center;   
     color: MediumSeaGreen;   
    }   
    h3{   
     text-align: center;   
     color: MediumSeaGreen;   
    }   
    h4{   
     text-align: center;   
     color: grey;   
    }   
   </style>     
   <script type="text/javascript">    
    function edit(){    
    var nama = document.getElementById("nama").value;    
    var alamat = document.getElementById("alamat").value;    
    var jenis_kelamin;    
    if(document.getElementById("jk_l").checked)    
    {    
     jenis_kelamin = "laki-laki";    
    }    
    else { jenis_kelamin = "perempuan";}    
    var agama = document.getElementById("agama").value;    
    var sekolah_asal = document.getElementById("sekolah_asal").value;    
    var xhttp;    
    if (window.XMLHttpRequest) {    
     xhttp = new XMLHttpRequest();    
    }    
    else {    
     xhttp = new ActiveXObject("Microsoft.XMLHTTP");    
    }    
    xhttp.onreadystatechange = function() {    
    if (this.readyState == 4 && this.status == 200)    
    {    
     alert('Edit Berhasil.');    
     listsiswa();    
    }    
    };    
    xhttp.open("GET", "proses-edit.php?id=" + <?php echo $id; ?> + "&nama=" + nama + "&alamat=" + alamat + "&jenis_kelamin=" + jenis_kelamin + "&agama=" + agama + "&sekolah_asal=" + "sekolah_asal", true);    
    xhttp.send();    
   }    
   </script>    
  </head>   
  <body>   
   <header>   
    <h3>Formulir Edit Siswa</h3>   
   </header>   
   <form action="proses-edit.php" method="POST" >   
    <fieldset>   
     <input type="hidden" name="id" value="<?php echo $siswa['id'] ?>" />   
    <p>   
     <label for="nama">Nama: </label>   
     <input type="text" name="nama" id="nama" placeholder="nama lengkap" value="<?php echo $siswa['nama'] ?>" />   
    </p>   
    <p>   
     <label for="alamat">Alamat: </label>   
     <textarea name="alamat" id="alamat"><?php echo $siswa['alamat'] ?></textarea>   
    </p>   
    <p>   
     <label for="jenis_kelamin">Jenis Kelamin: </label>   
     <?php $jk = $siswa['jenis_kelamin']; ?>   
     <label><input type="radio" name="jenis_kelamin" id="jk_l" value="laki-laki" <?php echo ($jk == 'laki-laki') ? "checked": "" ?>> Laki-laki</label>   
     <label><input type="radio" name="jenis_kelamin" id="jk_p" value="perempuan" <?php echo ($jk == 'perempuan') ? "checked": "" ?>> Perempuan</label>   
    </p>   
    <p>   
     <label for="agama">Agama: </label>   
     <?php $agama = $siswa['agama']; ?>   
     <select name="agama" id="agama">   
      <option <?php echo ($agama == 'Islam') ? "selected": "" ?>>Islam</option>   
      <option <?php echo ($agama == 'Kristen') ? "selected": "" ?>>Kristen</option>   
      <option <?php echo ($agama == 'Hindu') ? "selected": "" ?>>Hindu</option>   
      <option <?php echo ($agama == 'Budha') ? "selected": "" ?>>Budha</option>   
      <option <?php echo ($agama == 'Katolik') ? "selected": "" ?>>Katolik</option>   
     </select>   
    </p>   
    <p>   
     <label for="sekolah_asal">Sekolah Asal: </label>   
     <input type="text" name="sekolah_asal" id="sekolah_asal" placeholder="nama sekolah" value="<?php echo $siswa['sekolah_asal'] ?>" />   
    </p>   
    <p>   
     <input type="submit" value="Simpan" name="simpan" onclick="edit()" />   
    </p>   
    </fieldset>   
   </form>   
   </body>   
  </html>   


4. list-siswa.php
 <?php include("config.php"); ?>   
  <!DOCTYPE html>   
  <html>   
  <head>   
   <title>Pendaftaran Siswa Baru | SMK Coding</title>  
 `<link rel="stylesheet" type="text/css" href="css/bootstrap.css">  
      <script type="text/javascript" src="js/jquery.js"></script>  
      <script type="text/javascript" src="js/bootstrap.js"></script>  
 <style type="text/css">   
    h1{   
     text-align: center;   
     color: MediumSeaGreen;   
    }   
    h3{   
     text-align: center;   
     color: MediumSeaGreen;   
    }   
    h4{   
     text-align: center;   
     color: grey;   
    }   
   </style>        
   </head>   
  <body>   
   <header>   
    <h3>Siswa yang sudah mendaftar</h3>   
   </header>   
   <br>    
   <table class="table">  
   <thead>    
    <tr>    
     <th>No</th>    
     <th>Nama</th>    
     <th>Alamat</th>    
     <th>Jenis Kelamin</th>    
     <th>Agama</th>    
     <th>Sekolah Asal</th>    
     <th>Tindakan</th>    
    </tr>    
   </thead>    
   <tbody>   
    <?php    
    $sql = "SELECT * FROM calon_siswa";    
    $query = mysqli_query($db, $sql);    
    $no = 0;    
    while($siswa = mysqli_fetch_array($query)){    
     echo "<tr>";    
     $no++;    
     echo "<td>".$no."</td>";    
     echo "<td>".$siswa['nama']."</td>";    
     echo "<td>".$siswa['alamat']."</td>";    
     echo "<td>".$siswa['jenis_kelamin']."</td>";    
     echo "<td>".$siswa['agama']."</td>";    
     echo "<td>".$siswa['sekolah_asal']."</td>";    
     echo "<td>";    
     echo "<button><a href='form-edit.php?id=".$siswa['id']."'>Edit</a></button> | ";    
     echo "<input type='button' onclick=hapus('".$siswa['id']."') value='Hapus'>";    
     echo "</td>";    
     echo "</tr>";    
    }    
   ?>    
   </tbody>   
   </table>   
   <p> Total: <?php echo mysqli_num_rows($query) ?></p>   
   <div id="awal"></div>   
   </body>   
  </html>  

Minggu, 18 November 2018

PBO A- Latihan Rabbit and Fox

Nama: Ayu Mutiara Sari
NRP: 05111740000149
Kelas: PBO A

1. kelas counter

 import java.awt.Color;  
 public class Counter  
 {  
   private String name;  
   private int count;  
   public Counter(String name)  
   {  
     this.name = name;  
     count = 0;  
   }  
  public String getName()  
   {  
     return name;  
   }  
   public int getCount()  
   {  
     return count;  
   }  
   public void increment()  
   {  
     count++;  
   }  
   public void reset()  
   {  
     count = 0;  
   }  
 }  

2. kelas field
 import java.util.Collections;  
 import java.util.Iterator;  
 import java.util.LinkedList;  
 import java.util.List;  
 import java.util.Random;  
 public class Field  
 {  
   // A random number generator for providing random locations.  
   private static final Random rand = Randomizer.getRandom();  
   // The depth and width of the field.  
   private int depth, width;  
   // Storage for the animals.  
   private Object[][] field;  
   /**  
    * Represent a field of the given dimensions.  
    * @param depth The depth of the field.  
    * @param width The width of the field.  
    */  
   public Field(int depth, int width)  
   {  
     this.depth = depth;  
     this.width = width;  
     field = new Object[depth][width];  
   }  
   /**  
    * Empty the field.  
    */  
   public void clear()  
   {  
     for(int row = 0; row < depth; row++) {  
       for(int col = 0; col < width; col++) {  
         field[row][col] = null;  
       }  
     }  
   }  
   /**  
    * Clear the given location.  
    * @param location The location to clear.  
    */  
   public void clear(Location location)  
   {  
     field[location.getRow()][location.getCol()] = null;  
   }  
   /**  
    * Place an animal at the given location.  
    * If there is already an animal at the location it will  
    * be lost.  
    * @param animal The animal to be placed.  
    * @param row Row coordinate of the location.  
    * @param col Column coordinate of the location.  
    */  
   public void place(Object animal, int row, int col)  
   {  
     place(animal, new Location(row, col));  
   }  
   /**  
    * Place an animal at the given location.  
    * If there is already an animal at the location it will  
    * be lost.  
    * @param animal The animal to be placed.  
    * @param location Where to place the animal.  
    */  
   public void place(Object animal, Location location)  
   {  
     field[location.getRow()][location.getCol()] = animal;  
   }  
   /**  
    * Return the animal at the given location, if any.  
    * @param location Where in the field.  
    * @return The animal at the given location, or null if there is none.  
    */  
   public Object getObjectAt(Location location)  
   {  
     return getObjectAt(location.getRow(), location.getCol());  
   }  
   /**  
    * Return the animal at the given location, if any.  
    * @param row The desired row.  
    * @param col The desired column.  
    * @return The animal at the given location, or null if there is none.  
    */  
   public Object getObjectAt(int row, int col)  
   {  
     return field[row][col];  
   }  
   /**  
    * Generate a random location that is adjacent to the  
    * given location, or is the same location.  
    * The returned location will be within the valid bounds  
    * of the field.  
    * @param location The location from which to generate an adjacency.  
    * @return A valid location within the grid area.  
    */  
   public Location randomAdjacentLocation(Location location)  
   {  
     List<Location> adjacent = adjacentLocations(location);  
     return adjacent.get(0);  
   }  
   /**  
    * Get a shuffled list of the free adjacent locations.  
    * @param location Get locations adjacent to this.  
    * @return A list of free adjacent locations.  
    */  
   public List<Location> getFreeAdjacentLocations(Location location)  
   {  
     List<Location> free = new LinkedList<Location>();  
     List<Location> adjacent = adjacentLocations(location);  
     for(Location next : adjacent) {  
       if(getObjectAt(next) == null) {  
         free.add(next);  
       }  
     }  
     return free;  
   }  
   /**  
    * Try to find a free location that is adjacent to the  
    * given location. If there is none, return null.  
    * The returned location will be within the valid bounds  
    * of the field.  
    * @param location The location from which to generate an adjacency.  
    * @return A valid location within the grid area.  
    */  
   public Location freeAdjacentLocation(Location location)  
   {  
     // The available free ones.  
     List<Location> free = getFreeAdjacentLocations(location);  
     if(free.size() > 0) {  
       return free.get(0);  
     }  
     else {  
       return null;  
     }  
   }  
   /**  
    * Return a shuffled list of locations adjacent to the given one.  
    * The list will not include the location itself.  
    * All locations will lie within the grid.  
    * @param location The location from which to generate adjacencies.  
    * @return A list of locations adjacent to that given.  
    */  
   public List<Location> adjacentLocations(Location location)  
   {  
     assert location != null : "Null location passed to adjacentLocations";  
     // The list of locations to be returned.  
     List<Location> locations = new LinkedList<Location>();  
     if(location != null) {  
       int row = location.getRow();  
       int col = location.getCol();  
       for(int roffset = -1; roffset <= 1; roffset++) {  
         int nextRow = row + roffset;  
         if(nextRow >= 0 && nextRow < depth) {  
           for(int coffset = -1; coffset <= 1; coffset++) {  
             int nextCol = col + coffset;  
             // Exclude invalid locations and the original location.  
             if(nextCol >= 0 && nextCol < width && (roffset != 0 || coffset != 0)) {  
               locations.add(new Location(nextRow, nextCol));  
             }  
           }  
         }  
       }  
       // Shuffle the list. Several other methods rely on the list  
       // being in a random order.  
       Collections.shuffle(locations, rand);  
     }  
     return locations;  
   }  
   /**  
    * Return the depth of the field.  
    * @return The depth of the field.  
    */  
   public int getDepth()  
   {  
     return depth;  
   }  
   /**  
    * Return the width of the field.  
    * @return The width of the field.  
    */  
   public int getWidth()  
   {  
     return width;  
   }  
 }  


3. kelas fieldstat

 import java.awt.Color;  
 import java.util.HashMap;  
 public class FieldStats  
 {  
   // Counters for each type of entity (fox, rabbit, etc.) in the simulation.  
   private HashMap<Class, Counter> counters;  
   // Whether the counters are currently up to date.  
   private boolean countsValid;  
   /**  
    * Construct a FieldStats object.  
    */  
   public FieldStats()  
   {  
     // Set up a collection for counters for each type of animal that  
     // we might find  
     counters = new HashMap<Class, Counter>();  
     countsValid = true;  
   }  
   /**  
    * Get details of what is in the field.  
    * @return A string describing what is in the field.  
    */  
   public String getPopulationDetails(Field field)  
   {  
     StringBuffer buffer = new StringBuffer();  
     if(!countsValid) {  
       generateCounts(field);  
     }  
     for(Class key : counters.keySet()) {  
       Counter info = counters.get(key);  
       buffer.append(info.getName());  
       buffer.append(": ");  
       buffer.append(info.getCount());  
       buffer.append(' ');  
     }  
     return buffer.toString();  
   }  
   /**  
    * Invalidate the current set of statistics; reset all   
    * counts to zero.  
    */  
   public void reset()  
   {  
     countsValid = false;  
     for(Class key : counters.keySet()) {  
       Counter count = counters.get(key);  
       count.reset();  
     }  
   }  
   /**  
    * Increment the count for one class of animal.  
    * @param animalClass The class of animal to increment.  
    */  
   public void incrementCount(Class animalClass)  
   {  
     Counter count = counters.get(animalClass);  
     if(count == null) {  
       // We do not have a counter for this species yet.  
       // Create one.  
       count = new Counter(animalClass.getName());  
       counters.put(animalClass, count);  
     }  
     count.increment();  
   }  
   /**  
    * Indicate that an animal count has been completed.  
    */  
   public void countFinished()  
   {  
     countsValid = true;  
   }  
   /**  
    * Determine whether the simulation is still viable.  
    * I.e., should it continue to run.  
    * @return true If there is more than one species alive.  
    */  
   public boolean isViable(Field field)  
   {  
     // How many counts are non-zero.  
     int nonZero = 0;  
     if(!countsValid) {  
       generateCounts(field);  
     }  
     for(Class key : counters.keySet()) {  
       Counter info = counters.get(key);  
       if(info.getCount() > 0) {  
         nonZero++;  
       }  
     }  
     return nonZero > 1;  
   }  
   /**  
    * Generate counts of the number of foxes and rabbits.  
    * These are not kept up to date as foxes and rabbits  
    * are placed in the field, but only when a request  
    * is made for the information.  
    * @param field The field to generate the stats for.  
    */  
   private void generateCounts(Field field)  
   {  
     reset();  
     for(int row = 0; row < field.getDepth(); row++) {  
       for(int col = 0; col < field.getWidth(); col++) {  
         Object animal = field.getObjectAt(row, col);  
         if(animal != null) {  
           incrementCount(animal.getClass());  
         }  
       }  
     }  
     countsValid = true;  
   }  
 }  

4. kelas fox

 import java.util.List;  
 import java.util.Iterator;  
 import java.util.Random;  
 public class Fox  
 {  
   // Characteristics shared by all foxes (static fields).  
   // The age at which a fox can start to breed.  
   private static final int BREEDING_AGE = 10;  
   // The age to which a fox can live.  
   private static final int MAX_AGE = 150;  
   // The likelihood of a fox breeding.  
   private static final double BREEDING_PROBABILITY = 0.35;  
   // The maximum number of births.  
   private static final int MAX_LITTER_SIZE = 5;  
   // The food value of a single rabbit. In effect, this is the  
   // number of steps a fox can go before it has to eat again.  
   private static final int RABBIT_FOOD_VALUE = 7;  
   // A shared random number generator to control breeding.  
   private static final Random rand = Randomizer.getRandom();  
   // Individual characteristics (instance fields).  
   // The fox's age.  
   private int age;  
   // Whether the fox is alive or not.  
   private boolean alive;  
   // The fox's position.  
   private Location location;  
   // The field occupied.  
   private Field field;  
   // The fox's food level, which is increased by eating rabbits.  
   private int foodLevel;  
   /**  
    * Create a fox. A fox can be created as a new born (age zero  
    * and not hungry) or with a random age and food level.  
    *   
    * @param randomAge If true, the fox will have random age and hunger level.  
    * @param field The field currently occupied.  
    * @param location The location within the field.  
    */  
   public Fox(boolean randomAge, Field field, Location location)  
   {  
     age = 0;  
     alive = true;  
     this.field = field;  
     setLocation(location);  
     if(randomAge) {  
       age = rand.nextInt(MAX_AGE);  
       foodLevel = rand.nextInt(RABBIT_FOOD_VALUE);  
     }  
     else {  
       // leave age at 0  
       foodLevel = RABBIT_FOOD_VALUE;  
     }  
   }  
   /**  
    * This is what the fox does most of the time: it hunts for  
    * rabbits. In the process, it might breed, die of hunger,  
    * or die of old age.  
    * @param field The field currently occupied.  
    * @param newFoxes A list to add newly born foxes to.  
    */  
   public void hunt(List<Fox> newFoxes)  
   {  
     incrementAge();  
     incrementHunger();  
     if(alive) {  
       giveBirth(newFoxes);        
       // Move towards a source of food if found.  
       Location newLocation = findFood(location);  
       if(newLocation == null) {   
         // No food found - try to move to a free location.  
         newLocation = field.freeAdjacentLocation(location);  
       }  
       // See if it was possible to move.  
       if(newLocation != null) {  
         setLocation(newLocation);  
       }  
       else {  
         // Overcrowding.  
         setDead();  
       }  
     }  
   }  
   /**  
    * Check whether the fox is alive or not.  
    * @return True if the fox is still alive.  
    */  
   public boolean isAlive()  
   {  
     return alive;  
   }  
   /**  
    * Return the fox's location.  
    * @return The fox's location.  
    */  
   public Location getLocation()  
   {  
     return location;  
   }  
   /**  
    * Place the fox at the new location in the given field.  
    * @param newLocation The fox's new location.  
    */  
   private void setLocation(Location newLocation)  
   {  
     if(location != null) {  
       field.clear(location);  
     }  
     location = newLocation;  
     field.place(this, newLocation);  
   }  
   /**  
    * Increase the age. This could result in the fox's death.  
    */  
   private void incrementAge()  
   {  
     age++;  
     if(age > MAX_AGE) {  
       setDead();  
     }  
   }  
   /**  
    * Make this fox more hungry. This could result in the fox's death.  
    */  
   private void incrementHunger()  
   {  
     foodLevel--;  
     if(foodLevel <= 0) {  
       setDead();  
     }  
   }  
   /**  
    * Tell the fox to look for rabbits adjacent to its current location.  
    * Only the first live rabbit is eaten.  
    * @param location Where in the field it is located.  
    * @return Where food was found, or null if it wasn't.  
    */  
   private Location findFood(Location location)  
   {  
     List<Location> adjacent = field.adjacentLocations(location);  
     Iterator<Location> it = adjacent.iterator();  
     while(it.hasNext()) {  
       Location where = it.next();  
       Object animal = field.getObjectAt(where);  
       if(animal instanceof Rabbit) {  
         Rabbit rabbit = (Rabbit) animal;  
         if(rabbit.isAlive()) {   
           rabbit.setDead();  
           foodLevel = RABBIT_FOOD_VALUE;  
           // Remove the dead rabbit from the field.  
           return where;  
         }  
       }  
     }  
     return null;  
   }  
   /**  
    * Check whether or not this fox is to give birth at this step.  
    * New births will be made into free adjacent locations.  
    * @param newFoxes A list to add newly born foxes to.  
    */  
   private void giveBirth(List<Fox> newFoxes)  
   {  
     // New foxes are born into adjacent locations.  
     // Get a list of adjacent free locations.  
     List<Location> free = field.getFreeAdjacentLocations(location);  
     int births = breed();  
     for(int b = 0; b < births && free.size() > 0; b++) {  
       Location loc = free.remove(0);  
       Fox young = new Fox(false, field, loc);  
       newFoxes.add(young);  
     }  
   }  
   /**  
    * Generate a number representing the number of births,  
    * if it can breed.  
    * @return The number of births (may be zero).  
    */  
   private int breed()  
   {  
     int births = 0;  
     if(canBreed() && rand.nextDouble() <= BREEDING_PROBABILITY) {  
       births = rand.nextInt(MAX_LITTER_SIZE) + 1;  
     }  
     return births;  
   }  
   /**  
    * A fox can breed if it has reached the breeding age.  
    */  
   private boolean canBreed()  
   {  
     return age >= BREEDING_AGE;  
   }  
   /**  
    * Indicate that the fox is no longer alive.  
    * It is removed from the field.  
    */  
   private void setDead()  
   {  
     alive = false;  
     if(location != null) {  
       field.clear(location);  
       location = null;  
       field = null;  
     }  
   }  
 }  

5. kelas Location

 public class Location  
 {  
   // Row and column positions.  
   private int row;  
   private int col;  
   /**  
    * Represent a row and column.  
    * @param row The row.  
    * @param col The column.  
    */  
   public Location(int row, int col)  
   {  
     this.row = row;  
     this.col = col;  
   }  
   /**  
    * Implement content equality.  
    */  
   public boolean equals(Object obj)  
   {  
     if(obj instanceof Location) {  
       Location other = (Location) obj;  
       return row == other.getRow() && col == other.getCol();  
     }  
     else {  
       return false;  
     }  
   }  
   /**  
    * Return a string of the form row,column  
    * @return A string representation of the location.  
    */  
   public String toString()  
   {  
     return row + "," + col;  
   }  
   /**  
    * Use the top 16 bits for the row value and the bottom for  
    * the column. Except for very big grids, this should give a  
    * unique hash code for each (row, col) pair.  
    * @return A hashcode for the location.  
    */  
   public int hashCode()  
   {  
     return (row << 16) + col;  
   }  
   /**  
    * @return The row.  
    */  
   public int getRow()  
   {  
     return row;  
   }  
   /**  
    * @return The column.  
    */  
   public int getCol()  
   {  
     return col;  
   }  
 }  

6. kelas rabbit

 import java.util.List;  
 import java.util.Random;  
 public class Rabbit  
 {  
   // Characteristics shared by all rabbits (static fields).  
   // The age at which a rabbit can start to breed.  
   private static final int BREEDING_AGE = 5;  
   // The age to which a rabbit can live.  
   private static final int MAX_AGE = 40;  
   // The likelihood of a rabbit breeding.  
   private static final double BREEDING_PROBABILITY = 0.15;  
   // The maximum number of births.  
   private static final int MAX_LITTER_SIZE = 4;  
   // A shared random number generator to control breeding.  
   private static final Random rand = Randomizer.getRandom();  
   // Individual characteristics (instance fields).  
   // The rabbit's age.  
   private int age;  
   // Whether the rabbit is alive or not.  
   private boolean alive;  
   // The rabbit's position.  
   private Location location;  
   // The field occupied.  
   private Field field;  
   /**  
    * Create a new rabbit. A rabbit may be created with age  
    * zero (a new born) or with a random age.  
    *   
    * @param randomAge If true, the rabbit will have a random age.  
    * @param field The field currently occupied.  
    * @param location The location within the field.  
    */  
   public Rabbit(boolean randomAge, Field field, Location location)  
   {  
     age = 0;  
     alive = true;  
     this.field = field;  
     setLocation(location);  
     if(randomAge) {  
       age = rand.nextInt(MAX_AGE);  
     }  
   }  
   /**  
    * This is what the rabbit does most of the time - it runs   
    * around. Sometimes it will breed or die of old age.  
    * @param newRabbits A list to add newly born rabbits to.  
    */  
   public void run(List<Rabbit> newRabbits)  
   {  
     incrementAge();  
     if(alive) {  
       giveBirth(newRabbits);        
       // Try to move into a free location.  
       Location newLocation = field.freeAdjacentLocation(location);  
       if(newLocation != null) {  
         setLocation(newLocation);  
       }  
       else {  
         // Overcrowding.  
         setDead();  
       }  
     }  
   }  
   /**  
    * Check whether the rabbit is alive or not.  
    * @return true if the rabbit is still alive.  
    */  
   public boolean isAlive()  
   {  
     return alive;  
   }  
   /**  
    * Indicate that the rabbit is no longer alive.  
    * It is removed from the field.  
    */  
   public void setDead()  
   {  
     alive = false;  
     if(location != null) {  
       field.clear(location);  
       location = null;  
       field = null;  
     }  
   }  
   /**  
    * Return the rabbit's location.  
    * @return The rabbit's location.  
    */  
   public Location getLocation()  
   {  
     return location;  
   }  
   /**  
    * Place the rabbit at the new location in the given field.  
    * @param newLocation The rabbit's new location.  
    */  
   private void setLocation(Location newLocation)  
   {  
     if(location != null) {  
       field.clear(location);  
     }  
     location = newLocation;  
     field.place(this, newLocation);  
   }  
   /**  
    * Increase the age.  
    * This could result in the rabbit's death.  
    */  
   private void incrementAge()  
   {  
     age++;  
     if(age > MAX_AGE) {  
       setDead();  
     }  
   }  
   /**  
    * Check whether or not this rabbit is to give birth at this step.  
    * New births will be made into free adjacent locations.  
    * @param newRabbits A list to add newly born rabbits to.  
    */  
   private void giveBirth(List<Rabbit> newRabbits)  
   {  
     // New rabbits are born into adjacent locations.  
     // Get a list of adjacent free locations.  
     List<Location> free = field.getFreeAdjacentLocations(location);  
     int births = breed();  
     for(int b = 0; b < births && free.size() > 0; b++) {  
       Location loc = free.remove(0);  
       Rabbit young = new Rabbit(false, field, loc);  
       newRabbits.add(young);  
     }  
   }  
   /**  
    * Generate a number representing the number of births,  
    * if it can breed.  
    * @return The number of births (may be zero).  
    */  
   private int breed()  
   {  
     int births = 0;  
     if(canBreed() && rand.nextDouble() <= BREEDING_PROBABILITY) {  
       births = rand.nextInt(MAX_LITTER_SIZE) + 1;  
     }  
     return births;  
   }  
   /**  
    * A rabbit can breed if it has reached the breeding age.  
    * @return true if the rabbit can breed, false otherwise.  
    */  
   private boolean canBreed()  
   {  
     return age >= BREEDING_AGE;  
   }  
 }  

7. kelas randomizer

 import java.util.Random;  
 public class Randomizer  
 {  
   // The default seed for control of randomization.  
   private static final int SEED = 1111;  
   // A shared Random object, if required.  
   private static final Random rand = new Random(SEED);  
   // Determine whether a shared random generator is to be provided.  
   private static final boolean useShared = true;  
   /**  
    * Constructor for objects of class Randomizer  
    */  
   public Randomizer()  
   {  
   }  
   /**  
    * Provide a random generator.  
    * @return A random object.  
    */  
   public static Random getRandom()  
   {  
     if(useShared) {  
       return rand;  
     }  
     else {  
       return new Random();  
     }  
   }  
   /**  
    * Reset the randomization.  
    * This will have no effect if randomization is not through  
    * a shared Random generator.  
    */  
   public static void reset()  
   {  
     if(useShared) {  
       rand.setSeed(SEED);  
     }  
   }  
 }  

8. kelas simulator

 import java.util.Random;  
 import java.util.List;  
 import java.util.ArrayList;  
 import java.util.Iterator;  
 import java.awt.Color;  
 public class Simulator  
 {  
   // Constants representing configuration information for the simulation.  
   // The default width for the grid.  
   private static final int DEFAULT_WIDTH = 50;  
   // The default depth of the grid.  
   private static final int DEFAULT_DEPTH = 50;  
   // The probability that a fox will be created in any given grid position.  
   private static final double FOX_CREATION_PROBABILITY = 0.02;  
   // The probability that a rabbit will be created in any given grid position.  
   private static final double RABBIT_CREATION_PROBABILITY = 0.08;    
   // Lists of animals in the field. Separate lists are kept for ease of iteration.  
   private List<Rabbit> rabbits;  
   private List<Fox> foxes;  
   // The current state of the field.  
   private Field field;  
   // The current step of the simulation.  
   private int step;  
   // A graphical view of the simulation.  
   private SimulatorView view;  
   /**  
    * Construct a simulation field with default size.  
    */  
   public Simulator()  
   {  
     this(DEFAULT_DEPTH, DEFAULT_WIDTH);  
   }  
   /**  
    * Create a simulation field with the given size.  
    * @param depth Depth of the field. Must be greater than zero.  
    * @param width Width of the field. Must be greater than zero.  
    */  
   public Simulator(int depth, int width)  
   {  
     if(width <= 0 || depth <= 0) {  
       System.out.println("The dimensions must be greater than zero.");  
       System.out.println("Using default values.");  
       depth = DEFAULT_DEPTH;  
       width = DEFAULT_WIDTH;  
     }  
     rabbits = new ArrayList<Rabbit>();  
     foxes = new ArrayList<Fox>();  
     field = new Field(depth, width);  
     // Create a view of the state of each location in the field.  
     view = new SimulatorView(depth, width);  
     view.setColor(Rabbit.class, Color.orange);  
     view.setColor(Fox.class, Color.blue);  
     // Setup a valid starting point.  
     reset();  
   }  
   /**  
    * Run the simulation from its current state for a reasonably long period,  
    * e.g. 500 steps.  
    */  
   public void runLongSimulation()  
   {  
     simulate(500);  
   }  
   /**  
    * Run the simulation from its current state for the given number of steps.  
    * Stop before the given number of steps if it ceases to be viable.  
    * @param numSteps The number of steps to run for.  
    */  
   public void simulate(int numSteps)  
   {  
     for(int step = 1; step <= numSteps && view.isViable(field); step++) {  
       simulateOneStep();  
     }  
   }  
   /**  
    * Run the simulation from its current state for a single step.  
    * Iterate over the whole field updating the state of each  
    * fox and rabbit.  
    */  
   public void simulateOneStep()  
   {  
     step++;  
     // Provide space for newborn rabbits.  
     List<Rabbit> newRabbits = new ArrayList<Rabbit>();      
     // Let all rabbits act.  
     for(Iterator<Rabbit> it = rabbits.iterator(); it.hasNext(); ) {  
       Rabbit rabbit = it.next();  
       rabbit.run(newRabbits);  
       if(! rabbit.isAlive()) {  
         it.remove();  
       }  
     }  
     // Provide space for newborn foxes.  
     List<Fox> newFoxes = new ArrayList<Fox>();      
     // Let all foxes act.  
     for(Iterator<Fox> it = foxes.iterator(); it.hasNext(); ) {  
       Fox fox = it.next();  
       fox.hunt(newFoxes);  
       if(! fox.isAlive()) {  
         it.remove();  
       }  
     }  
     // Add the newly born foxes and rabbits to the main lists.  
     rabbits.addAll(newRabbits);  
     foxes.addAll(newFoxes);  
     view.showStatus(step, field);  
   }  
   /**  
    * Reset the simulation to a starting position.  
    */  
   public void reset()  
   {  
     step = 0;  
     rabbits.clear();  
     foxes.clear();  
     populate();  
     // Show the starting state in the view.  
     view.showStatus(step, field);  
   }  
   /**  
    * Randomly populate the field with foxes and rabbits.  
    */  
   private void populate()  
   {  
     Random rand = Randomizer.getRandom();  
     field.clear();  
     for(int row = 0; row < field.getDepth(); row++) {  
       for(int col = 0; col < field.getWidth(); col++) {  
         if(rand.nextDouble() <= FOX_CREATION_PROBABILITY) {  
           Location location = new Location(row, col);  
           Fox fox = new Fox(true, field, location);  
           foxes.add(fox);  
         }  
         else if(rand.nextDouble() <= RABBIT_CREATION_PROBABILITY) {  
           Location location = new Location(row, col);  
           Rabbit rabbit = new Rabbit(true, field, location);  
           rabbits.add(rabbit);  
         }  
         // else leave the location empty.  
       }  
     }  
   }  
 }  

9. kelas SimulatorView
 import java.awt.*;  
 import java.awt.event.*;  
 import javax.swing.*;  
 import java.util.LinkedHashMap;  
 import java.util.Map;  
 public class SimulatorView extends JFrame  
 {  
   // Colors used for empty locations.  
   private static final Color EMPTY_COLOR = Color.white;  
   // Color used for objects that have no defined color.  
   private static final Color UNKNOWN_COLOR = Color.gray;  
   private final String STEP_PREFIX = "Step: ";  
   private final String POPULATION_PREFIX = "Population: ";  
   private JLabel stepLabel, population;  
   private FieldView fieldView;  
   // A map for storing colors for participants in the simulation  
   private Map<Class, Color> colors;  
   // A statistics object computing and storing simulation information  
   private FieldStats stats;  
   /**  
    * Create a view of the given width and height.  
    * @param height The simulation's height.  
    * @param width The simulation's width.  
    */  
   public SimulatorView(int height, int width)  
   {  
     stats = new FieldStats();  
     colors = new LinkedHashMap<Class, Color>();  
     setTitle("Fox and Rabbit Simulation");  
     stepLabel = new JLabel(STEP_PREFIX, JLabel.CENTER);  
     population = new JLabel(POPULATION_PREFIX, JLabel.CENTER);  
     setLocation(100, 50);  
     fieldView = new FieldView(height, width);  
     Container contents = getContentPane();  
     contents.add(stepLabel, BorderLayout.NORTH);  
     contents.add(fieldView, BorderLayout.CENTER);  
     contents.add(population, BorderLayout.SOUTH);  
     pack();  
     setVisible(true);  
   }  
   /**  
    * Define a color to be used for a given class of animal.  
    * @param animalClass The animal's Class object.  
    * @param color The color to be used for the given class.  
    */  
   public void setColor(Class animalClass, Color color)  
   {  
     colors.put(animalClass, color);  
   }  
   /**  
    * @return The color to be used for a given class of animal.  
    */  
   private Color getColor(Class animalClass)  
   {  
     Color col = colors.get(animalClass);  
     if(col == null) {  
       // no color defined for this class  
       return UNKNOWN_COLOR;  
     }  
     else {  
       return col;  
     }  
   }  
   /**  
    * Show the current status of the field.  
    * @param step Which iteration step it is.  
    * @param field The field whose status is to be displayed.  
    */  
   public void showStatus(int step, Field field)  
   {  
     if(!isVisible()) {  
       setVisible(true);  
     }  
     stepLabel.setText(STEP_PREFIX + step);  
     stats.reset();  
     fieldView.preparePaint();  
     for(int row = 0; row < field.getDepth(); row++) {  
       for(int col = 0; col < field.getWidth(); col++) {  
         Object animal = field.getObjectAt(row, col);  
         if(animal != null) {  
           stats.incrementCount(animal.getClass());  
           fieldView.drawMark(col, row, getColor(animal.getClass()));  
         }  
         else {  
           fieldView.drawMark(col, row, EMPTY_COLOR);  
         }  
       }  
     }  
     stats.countFinished();  
     population.setText(POPULATION_PREFIX + stats.getPopulationDetails(field));  
     fieldView.repaint();  
   }  
   /**  
    * Determine whether the simulation should continue to run.  
    * @return true If there is more than one species alive.  
    */  
   public boolean isViable(Field field)  
   {  
     return stats.isViable(field);  
   }  
   /**  
    * Provide a graphical view of a rectangular field. This is   
    * a nested class (a class defined inside a class) which  
    * defines a custom component for the user interface. This  
    * component displays the field.  
    * This is rather advanced GUI stuff - you can ignore this   
    * for your project if you like.  
    */  
   private class FieldView extends JPanel  
   {  
     private final int GRID_VIEW_SCALING_FACTOR = 6;  
     private int gridWidth, gridHeight;  
     private int xScale, yScale;  
     Dimension size;  
     private Graphics g;  
     private Image fieldImage;  
     /**  
      * Create a new FieldView component.  
      */  
     public FieldView(int height, int width)  
     {  
       gridHeight = height;  
       gridWidth = width;  
       size = new Dimension(0, 0);  
     }  
     /**  
      * Tell the GUI manager how big we would like to be.  
      */  
     public Dimension getPreferredSize()  
     {  
       return new Dimension(gridWidth * GRID_VIEW_SCALING_FACTOR,  
                  gridHeight * GRID_VIEW_SCALING_FACTOR);  
     }  
     /**  
      * Prepare for a new round of painting. Since the component  
      * may be resized, compute the scaling factor again.  
      */  
     public void preparePaint()  
     {  
       if(! size.equals(getSize())) { // if the size has changed...  
         size = getSize();  
         fieldImage = fieldView.createImage(size.width, size.height);  
         g = fieldImage.getGraphics();  
         xScale = size.width / gridWidth;  
         if(xScale < 1) {  
           xScale = GRID_VIEW_SCALING_FACTOR;  
         }  
         yScale = size.height / gridHeight;  
         if(yScale < 1) {  
           yScale = GRID_VIEW_SCALING_FACTOR;  
         }  
       }  
     }  
     /**  
      * Paint on grid location on this field in a given color.  
      */  
     public void drawMark(int x, int y, Color color)  
     {  
       g.setColor(color);  
       g.fillRect(x * xScale, y * yScale, xScale-1, yScale-1);  
     }  
     /**  
      * The field view component needs to be redisplayed. Copy the  
      * internal image to screen.  
      */  
     public void paintComponent(Graphics g)  
     {  
       if(fieldImage != null) {  
         Dimension currentSize = getSize();  
         if(size.equals(currentSize)) {  
           g.drawImage(fieldImage, 0, 0, null);  
         }  
         else {  
           // Rescale the previous image.  
           g.drawImage(fieldImage, 0, 0, currentSize.width, currentSize.height, null);  
         }  
       }  
     }  
   }  
 }  



hasil:


PBO A- Membuat Database Perkuliahan

Nama: Ayu Mutiara Sari
NRP: 05111740000149
Kelas: PBO A


1. kelas Biodata
 public class biodata  
 {  
   private String nama;   
   private int umur;   
   private String alamat;   
   public biodata(String Nama,int Umur,String Alamat)   
   {   
    nama=Nama;   
    umur=Umur;   
    alamat=Alamat;   
   }   
   public void display()   
   {   
    System.out.println("Nama :" +nama);   
    System.out.println("Umur :" +umur);   
    System.out.println("Alamat :" +alamat);   
   }   
   public String getNama()   
   {   
    return nama;   
   }   
  }   


2. kelas Mahasiswa

 import java.util.ArrayList;   
  public class Mahasiswa extends biodata   
  {   
   private String NRP;   
   private ArrayList<Matakuliah> m_k;   
   private ArrayList<Buku> buku;   
   public Mahasiswa(String Nama, int Umur, String Alamat, String nrp)   
   {   
    super(Nama,Umur,Alamat);   
    NRP = nrp;   
    m_k = new ArrayList<Matakuliah>();   
    buku = new ArrayList<Buku>();   
   }   
   public String getNRP()   
   {   
    return NRP;   
   }   
   public void addMK(Matakuliah thematkul)   
   {   
    m_k.add(thematkul);   
   }   
   public void dropMatkul(Matakuliah thematkul)   
   {   
    m_k.remove(thematkul);   
   }   
   public void minjamBuku(Buku book)   
   {   
    buku.add(book);   
   }   
   public void kembalikanBuku(Buku book)   
   {   
    buku.remove(book);   
   }   
   public void print()   
   {   
    super.display();   
    System.out.println("NRP :" +NRP);   
    for(Matakuliah matakuliah : m_k)   
    {   
     System.out.println("Mata Kuliah :" +matakuliah.getMatakuliah());   
     System.out.println("Kelas :" +matakuliah.getKelas());   
     System.out.println("Dosen :" +matakuliah.getNamaDosen());   
    }   
    for(Buku bukuu : buku)   
    {   
     System.out.println("Buku yang dipinjam :" +bukuu.getJudul());   
    }   
   }   
   public void prnt()   
   {   
    super.display();   
    System.out.println("NRP :" +NRP);   
   }   
  }   

3. kelas Dosen

 import java.util.ArrayList;   
  public class Dosen extends biodata   
  {   
   private String NIDN;   
   private ArrayList<Buku> buku;   
   public Dosen(String Nama, int Umur, String Alamat, String nidn)   
   {   
    super(Nama,Umur,Alamat);   
    NIDN = nidn;   
    buku = new ArrayList<Buku>();   
   }   
   public void print()   
   {   
    super.display();   
    System.out.println("NIDN :" +NIDN);   
    for(Buku bukuu : buku)   
    {   
     System.out.println("Buku yang dipinjam :" +bukuu.getJudul());   
    }   
   }   
   public String getDosen()   
   {   
    return super.getNama();   
   }   
    public void minjamBuku(Buku book)   
   {   
    buku.add(book);   
   }   
   public void kembalikanBuku(Buku book)   
   {   
    buku.remove(book);   
   }   
   public void prnt()   
   {   
    super.display();   
    System.out.println("NIDN :" +NIDN);   
   }   
  }   

4. kelas Karyawan

 import java.util.ArrayList;   
  public class karyawan extends biodata   
  {   
   private String NIP;   
   private ArrayList<Buku> buku;   
   public karyawan(String Nama, int Umur, String Alamat, String nip)   
   {   
    super(Nama,Umur,Alamat);   
    NIP = nip;   
    buku = new ArrayList<Buku>();   
   }   
   public void minjamBuku(Buku book)   
   {   
    buku.add(book);   
   }   
   public void kembalikanBuku(Buku book)   
   {   
    buku.remove(book);   
   }   
   public void print()   
   {   
    super.display();   
    System.out.println("NIP :" +NIP);   
    for(Buku bukuu : buku)   
    {   
     System.out.println("Buku yang dipinjam :" +bukuu.getJudul());   
    }   
   }   
   public void prnt()   
   {   
    super.display();   
    System.out.println("NIP :" +NIP);   
   }   
  }   

5. kelas Buku

 public class Buku   
  {   
   private String Judul;   
   private String Penulis;   
   public Buku(String judul,String penulis)   
   {   
    Judul=judul;   
    Penulis=penulis;   
   }   
   public String getJudul()   
   {   
    return Judul;   
   }   
  }   

6. kelas Matakuliah

  public class Matakuliah   
  {   
   private int kode;   
   private String mata_kuliah;   
   private int jum_sks;   
   private String kl;   
   private String dosen;   
   public Matakuliah(int kd,String mk, int sks)   
   {   
    kode = kd;   
    mata_kuliah = mk;   
    jum_sks = sks;   
   }   
   public void addDosen(Dosen dsn)   
   {   
    dosen=dsn.getDosen();   
   }   
   public String getNamaDosen()   
   {   
    return dosen;   
   }   
   public String getMatakuliah()   
   {   
    return mata_kuliah;   
   }   
   public void addKelas(Kelas kls)   
   {   
    kl=kls.getKelas();   
   }   
   public String getKelas()   
   {   
    return kl;   
   }   
   public void print()   
   {   
    System.out.println("Kode :" +kode);   
    System.out.println("Mata Kuliah :" +mata_kuliah);   
    System.out.println("Jumlah SKS :" +jum_sks);   
   }   
  }   


7. kelas Database

 import java.util.ArrayList;   
  public class Database   
  {   
   private ArrayList<Mahasiswa> mahasiswa;   
   private ArrayList<Dosen> dosen;   
   private ArrayList<karyawan> karyawan;   
   public Database()   
   {   
    mahasiswa = new ArrayList<Mahasiswa>();   
    dosen = new ArrayList<Dosen>();   
    karyawan = new ArrayList<karyawan>();   
   }   
   public void addMahasiswa(Mahasiswa Themhs)   
   {   
    mahasiswa.add(Themhs);   
   }   
   public void addDosen(Dosen dsn)   
   {   
    dosen.add(dsn);   
   }   
   public void addKaryawan(karyawan kry)   
   {   
    karyawan.add(kry);   
   }   
   public void listMahasiswa()   
   {   
    for(Mahasiswa mhs : mahasiswa)   
    {   
     mhs.prnt();   
     System.out.println();   
    }   
   }   
   public void listDosen()   
   {   
    for(Dosen dsn : dosen)   
    {   
     dsn.prnt();   
     System.out.println();   
    }   
   }   
   public void listPegawai()   
   {   
    for(karyawan kry : karyawan)   
    {   
     kry.prnt();   
     System.out.println();   
    }   
   }   
   public void delMahasiswa(Mahasiswa Themhs)   
   {   
    mahasiswa.remove(Themhs);   
   }   
   public void delKaryawan(karyawan kry)   
   {   
    karyawan.remove(kry);   
   }   
   public void delDosen(Dosen dsn)   
   {   
    dosen.remove(dsn);   
   }   
  }   


8. kelas Kelas

 public class Kelas   
  {   
   private String kelas;   
   public Kelas(String Kelas)   
   {   
    kelas=Kelas;   
   }   
   public String getKelas()   
   {   
    return kelas;   
   }   
  }   



Hasil:


Senin, 12 November 2018

PWEB C- PENDAFTARAAN SISWA-AJAX

Nama: Ayu Mutiara Sari
NRP: 05111740000149
Kelas: PWEB C



1. Index.php

 <!DOCTYPE html>   
  <html>   
  <head>   
   <script>    
    function listsiswa() {    
     var xhttp;    
     if (window.XMLHttpRequest) {    
      xhttp = new XMLHttpRequest();    
     }    
     else {    
      xhttp = new ActiveXObject("Microsoft.XMLHTTP");    
     }    
     xhttp.onreadystatechange = function() {    
      if (this.readyState == 4 && this.status == 200) {    
       document.getElementById("awal").innerHTML = this.responseText;    
      }    
     };    
     xhttp.open("GET", "list-siswa.php", true);    
     xhttp.send();    
    }    
    function daftar() {    
     var xhttp;    
     if (window.XMLHttpRequest) {    
      xhttp = new XMLHttpRequest();    
     }    
     else {    
      xhttp = new ActiveXObject("Microsoft.XMLHTTP");    
     }    
     xhttp.onreadystatechange = function() {    
      if (this.readyState == 4 && this.status == 200) {    
       document.getElementById("awal").innerHTML = this.responseText;    
      }    
     };    
     xhttp.open("GET", "form-daftar.php", true);    
     xhttp.send();    
    }   
    function hapus(id) {    
     var xhttp;    
     if (window.XMLHttpRequest) {    
      xhttp = new XMLHttpRequest();    
     }    
     else {    
      xhttp = new ActiveXObject("Microsoft.XMLHTTP");    
     }    
     xhttp.onreadystatechange = function() {    
      if (this.readyState == 4 && this.status == 200) {    
       alert(this.responseText);    
       listsiswa();    
      }    
     };    
     xhttp.open("GET", "hapus.php?id=" + id, true);    
     xhttp.send();    
    }    
   </script>   
   <title>Pendaftaran Siswa Baru | SMK Coding</title>   
  </head>   
  <body>   
   <header>   
    <h3>Pendaftaran Siswa Baru</h3>   
    <h1>SMK Coding</h1>   
   </header>   
   <p><button type="button" onclick="listsiswa()">List Siswa</button></p>   
   <p><button type="button" onclick="daftar()">Pendaftaran Siswa</button> </p>  
   <div id="awal"></div>   
   </body>   
  </html>   

2.config.php
 <?php  
 $server = "localhost";  
 $user = "root";  
 $password = "";  
 $nama_database = "pendaftaran_siswaajax";  
 $db = mysqli_connect($server, $user, $password , $nama_database);  
 if( !$db ){  
   die("Gagal terhubung dengan database: " . mysqli_connect_error());  
 }  
 ?>  


3.list-siswa.php

 <?php include("config.php"); ?>   
  <!DOCTYPE html>   
  <html>   
  <head>   
   <title>Pendaftaran Siswa Baru | SMK Coding</title>   
   </head>   
  <body>   
   <header>   
    <h3>Siswa yang sudah mendaftar</h3>   
   </header>   
   <br>    
   <table border="1">    
   <thead>    
    <tr>    
     <th>No</th>    
     <th>Nama</th>    
     <th>Alamat</th>    
     <th>Jenis Kelamin</th>    
     <th>Agama</th>    
     <th>Sekolah Asal</th>    
     <th>Tindakan</th>    
    </tr>    
   </thead>    
   <tbody>   
    <?php    
    $sql = "SELECT * FROM calon_siswa";    
    $query = mysqli_query($db, $sql);    
    $no = 0;    
    while($siswa = mysqli_fetch_array($query)){    
     echo "<tr>";    
     $no++;    
     echo "<td>".$no."</td>";    
     echo "<td>".$siswa['nama']."</td>";    
     echo "<td>".$siswa['alamat']."</td>";    
     echo "<td>".$siswa['jenis_kelamin']."</td>";    
     echo "<td>".$siswa['agama']."</td>";    
     echo "<td>".$siswa['sekolah_asal']."</td>";    
     echo "<td>";    
     echo "<button><a href='form-edit.php?id=".$siswa['id']."'>Edit</a></button> | ";    
     echo "<input type='button' onclick=hapus('".$siswa['id']."') value='Hapus'>";    
     echo "</td>";    
     echo "</tr>";    
    }    
   ?>    
   </tbody>   
   </table>   
   <p> Total: <?php echo mysqli_num_rows($query) ?></p>   
   <div id="awal"></div>   
   </body>   
  </html>  


4.form-daftar.php
 <!DOCTYPE html>   
  <html>   
  <head>   
   <script type="text/javascript">    
   function insert() {    
    var nama = document.getElementById("nama").value;    
    var alamat = document.getElementById("alamat").value;    
    var jenis_kelamin;    
    if(document.getElementById("jk_l").checked) {    
     jenis_kelamin = "laki-laki";    
    }    
    else { jenis_kelamin = "perempuan";}    
    var agama = document.getElementById("agama").value;    
    var sekolah_asal = document.getElementById("sekolah_asal").value;    
    var xhttp;    
    if (window.XMLHttpRequest) {    
     xhttp = new XMLHttpRequest();    
    }    
    else {    
     xhttp = new ActiveXObject("Microsoft.XMLHTTP");    
    }    
    xhttp.onreadystatechange = function() {    
    if (this.readyState == 4 && this.status == 200)    
    {    
     alert('Pendaftaran berhasil');    
     listsiswa();    
    }    
    };    
    xhttp.open("GET", "proses-pendaftaran.php?nama=" + nama + "&alamat=" + alamat + "&jenis_kelamin=" + jenis_kelamin + "&agama=" + agama + "&sekolah_asal=" + "sekolah_asal", true);    
    xhttp.send();    
   }    
   </script>    
  </head>   
  <body>   
   <header>   
    <h3>Formulir Pendaftaran Siswa Baru</h3>   
   </header>   
   <form action="proses-pendaftaran.php" method="POST">   
    <fieldset>   
    <p>   
     <label for="nama">Nama: </label>   
     <input type="text" name="nama" id="nama" placeholder="Nama Lengkap" />   
    </p>   
    <p>   
     <label for="alamat">Alamat: </label>   
     <textarea name="alamat" id="alamat"></textarea>   
    </p>   
    <p>   
     <label for="jenis_kelamin">Jenis Kelamin: </label>   
     <label><input type="radio" name="jenis_kelamin" id="jk_l" value="laki-laki"> Laki-laki</label>   
     <label><input type="radio" name="jenis_kelamin" id="jk_p" value="perempuan"> Perempuan</label>   
    </p>   
    <p>   
     <label for="agama">Agama: </label>   
     <select name="agama" id="agama">   
      <option>Islam</option>   
      <option>Kristen</option>   
      <option>Hindu</option>   
      <option>Budha</option>   
      <option>Katolik</option>   
     </select>   
    </p>   
    <p>   
     <label for="sekolah_asal">Sekolah Asal: </label>   
     <input type="text" name="sekolah_asal" id="sekolah_asal" placeholder="nama sekolah" />   
    </p>   
    <p>   
     <input type="submit" value="Daftar" name="daftar" onclick="insert()" />   
    </p>   
    </fieldset>   
   </form>   
   </body>   
  </html>   



5.form-edit
 <?php   
  include("config.php");   
  if( !isset($_GET['id']) ){   
   header('Location: list-siswa.php');   
  }   
  $id = $_GET['id'];   
  $sql = "SELECT * FROM calon_siswa WHERE id=$id";   
  $query = mysqli_query($db, $sql);   
  $siswa = mysqli_fetch_assoc($query);   
  if( mysqli_num_rows($query) < 1 ){   
   die("Data tidak ditemukan.");   
  }   
  ?>   
  <!DOCTYPE html>   
  <html>   
  <head>   
   <title>Formulir Edit Siswa | SMK Coding</title>   
   <script type="text/javascript">    
    function edit(){    
    var nama = document.getElementById("nama").value;    
    var alamat = document.getElementById("alamat").value;    
    var jenis_kelamin;    
    if(document.getElementById("jk_l").checked)    
    {    
     jenis_kelamin = "laki-laki";    
    }    
    else { jenis_kelamin = "perempuan";}    
    var agama = document.getElementById("agama").value;    
    var sekolah_asal = document.getElementById("sekolah_asal").value;    
    var xhttp;    
    if (window.XMLHttpRequest) {    
     xhttp = new XMLHttpRequest();    
    }    
    else {    
     xhttp = new ActiveXObject("Microsoft.XMLHTTP");    
    }    
    xhttp.onreadystatechange = function() {    
    if (this.readyState == 4 && this.status == 200)    
    {    
     alert('Edit Berhasil.');    
     listsiswa();    
    }    
    };    
    xhttp.open("GET", "proses-edit.php?id=" + <?php echo $id; ?> + "&nama=" + nama + "&alamat=" + alamat + "&jenis_kelamin=" + jenis_kelamin + "&agama=" + agama + "&sekolah_asal=" + "sekolah_asal", true);    
    xhttp.send();    
   }    
   </script>    
  </head>   
  <body>   
   <header>   
    <h3>Formulir Edit Siswa</h3>   
   </header>   
   <form action="proses-edit.php" method="POST" >   
    <fieldset>   
     <input type="hidden" name="id" value="<?php echo $siswa['id'] ?>" />   
    <p>   
     <label for="nama">Nama: </label>   
     <input type="text" name="nama" id="nama" placeholder="nama lengkap" value="<?php echo $siswa['nama'] ?>" />   
    </p>   
    <p>   
     <label for="alamat">Alamat: </label>   
     <textarea name="alamat" id="alamat"><?php echo $siswa['alamat'] ?></textarea>   
    </p>   
    <p>   
     <label for="jenis_kelamin">Jenis Kelamin: </label>   
     <?php $jk = $siswa['jenis_kelamin']; ?>   
     <label><input type="radio" name="jenis_kelamin" id="jk_l" value="laki-laki" <?php echo ($jk == 'laki-laki') ? "checked": "" ?>> Laki-laki</label>   
     <label><input type="radio" name="jenis_kelamin" id="jk_p" value="perempuan" <?php echo ($jk == 'perempuan') ? "checked": "" ?>> Perempuan</label>   
    </p>   
    <p>   
     <label for="agama">Agama: </label>   
     <?php $agama = $siswa['agama']; ?>   
     <select name="agama" id="agama">   
      <option <?php echo ($agama == 'Islam') ? "selected": "" ?>>Islam</option>   
      <option <?php echo ($agama == 'Kristen') ? "selected": "" ?>>Kristen</option>   
      <option <?php echo ($agama == 'Hindu') ? "selected": "" ?>>Hindu</option>   
      <option <?php echo ($agama == 'Budha') ? "selected": "" ?>>Budha</option>   
      <option <?php echo ($agama == 'Katolik') ? "selected": "" ?>>Katolik</option>   
     </select>   
    </p>   
    <p>   
     <label for="sekolah_asal">Sekolah Asal: </label>   
     <input type="text" name="sekolah_asal" id="sekolah_asal" placeholder="nama sekolah" value="<?php echo $siswa['sekolah_asal'] ?>" />   
    </p>   
    <p>   
     <input type="submit" value="Simpan" name="simpan" onclick="edit()" />   
    </p>   
    </fieldset>   
   </form>   
   </body>   
  </html>   


6.hapus.php
 <pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;;background-image:URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggYKjT29wfCoTAGJN4b5jN44ZyxmvvVJme7q1j3WSObeVo_5hf1Nza6vBGxYh1xwpLKrwwMd1kxOEmLjEZeZ0Xe-fRtacCe1M-n-Ey11Ao_y5IneDYPIXOdfYg2JbmSfFOY6HnN1hrX5hK/s320/codebg.gif);padding:0px;color:#000000;text-align:left;line-height:20px;"><code style="color:#000000;word-wrap:normal;"> &lt;?php     
  include("config.php");    
   if(isset($_GET['id']) ){    
    // ambil id dari query string    
    $id = $_GET['id'];    
    // buat query hapus    
    $sql = "DELETE FROM calon_siswa WHERE id=$id";    
    $query = mysqli_query($db, $sql);    
    // apakah query hapus berhasil?    
    if( $query ){    
    echo "Hapus Data Berhasil";    
    } else {    
    echo "GAGAL";    
    }     
   }    
  ?&gt;    
 </code></pre>  


7.proses-edit.php
  <?php   
  include("config.php");   
  if(isset($_POST['simpan'])){   
   $id = $_POST['id'];   
   $nama = $_POST['nama'];   
   $alamat = $_POST['alamat'];   
   $jk = $_POST['jenis_kelamin'];   
   $agama = $_POST['agama'];   
   $sekolah = $_POST['sekolah_asal'];   
   $sql = "UPDATE calon_siswa SET nama='$nama', alamat='$alamat', jenis_kelamin='$jk', agama='$agama', sekolah_asal='$sekolah' WHERE id=$id";   
   $query = mysqli_query($db, $sql);   
   if( $query ) {   
    header('Location: index.php');   
   } else {   
    die("Gagal menyimpan perubahan.");   
   }   
  } else {   
   die("Akses dilarang!");   
  }   
  ?>   


8.Proses-pendaftaran.php
 <?php   
  include("config.php");   
  if(isset($_POST['daftar'])){   
   $nama = $_POST['nama'];   
   $alamat = $_POST['alamat'];   
   $jk = $_POST['jenis_kelamin'];   
   $agama = $_POST['agama'];   
   $sekolah = $_POST['sekolah_asal'];   
   $sql = "INSERT INTO calon_siswa (nama, alamat, jenis_kelamin, agama, sekolah_asal) VALUE ('$nama', '$alamat', '$jk', '$agama', '$sekolah')";   
   $query = mysqli_query($db, $sql);   
   if( $query ) {   
    header('Location: index.php');   
   } else {   
    echo "Pendaftaran siswa gagal.";   
   }   
  } else {   
   die("Akses dilarang!");   
  }   
  ?>   


Hasil: