Selasa, 16 Oktober 2018

ETS PWeb C Prestasi Siswa



1. form_prestasi

 <!DOCTYPE html>  
 <html>  
 <head>  
   <title>Raport Prestasi Siswa SD Harapan Bangsa</title>  
 </head>  
 <body>  
   <header>  
     <h3>Rekap Prestasi Siswa 2017/2018</h3>  
   </header>  
   <form action="pendaftaran_prestasi.php" method="POST">  
     <fieldset>  
     <p>  
       <label for="nama">Nama: </label>  
       <textarea name="nama"></textarea>  
     </p>  
     <p>  
       <label for="kelas">Kelas: </label>  
       <textarea name="kelas"></textarea>  
     </p>  
     <p>  
       <label for="jenis_kelamin">Jenis Kelamin: </label>  
       <label><input type="radio" name="jenis_kelamin" value="laki-laki"> Laki-laki</label>  
       <label><input type="radio" name="jenis_kelamin" value="perempuan"> Perempuan</label>  
     </p>  
     <p>  
       <label for="jenis_prestasi">Jenis Prestasi: </label>  
       <select name="jenis_prestasi">  
         <option>Akademik</option>  
         <option>Non-Akademik</option>  
       </select>  
     </p>  
     <p>  
        <label for="keterangan_prestasi">Keterangan Prestasi: </label>  
       <textarea name= "keterangan_prestasi"></textarea>  
     </p>  
     <p>  
       <input type="submit" value="Daftar" name="daftar" />  
     </p>  
     </fieldset>  
   </form>  
   </body>  
 </html>  

2. pendaftaran_prestasi

 <?php  
 include("configs.php");  
 // cek apakah tombol daftar sudah diklik atau blum?  
 if(isset($_POST['daftar'])){  
   // ambil data dari formulir  
   $nama = $_POST['nama'];  
   $kelas = $_POST['kelas'];  
   $jk = $_POST['jenis_kelamin'];  
   $jp = $_POST['jenis_prestasi'];  
   $kp = $_POST['keterangan_prestasi'];  
   // buat query  
   $sql = "INSERT INTO prestasi_siswa (nama, kelas, jenis_kelamin, jenis_prestasi, keterangan_prestasi) VALUE ('$nama', '$kelas', '$jenis_kelamin', '$jenis_prestasi', '$keterangan_prestasi')";  
   $query = mysqli_query($db, $sql);  
   // apakah query simpan berhasil?  
   if( $query ) {  
     // kalau berhasil alihkan ke halaman index.php dengan status=sukses  
     header('Location: indekspres.php?status=sukses');  
   } else {  
     // kalau gagal alihkan ke halaman indek.php dengan status=gagal  
     header('Location: indekspres.php?status=gagal');  
   }  
 }  else {  
   die("Akses dilarang...");  
 }  
 ?>  

3. configs

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

4. lis-prestasi

 <?php include("configs.php"); ?>  
 <!DOCTYPE html>  
 <html>  
 <head>  
   <title>Rekap Prestasi Siswa | SMK Coding</title>  
 </head>  
 <body>  
   <header>  
     <h3>Siswa berprestasi</h3>  
   </header>  
   <nav>  
     <a href="form_prestasi.php">[+] Tambah Baru</a>  
   </nav>  
   <br>  
   <table border="1">  
   <thead>  
     <tr>  
       <th>No</th>  
       <th>Nama</th>  
       <th>Kelas</th>  
       <th>Jenis Kelamin</th>  
       <th>Jenis Prestasi</th>  
       <th>Keterangan Prestasi</th>  
       <th>Tindakan</th>  
     </tr>  
   </thead>  
   <tbody>  
     <?php  
     $sql = "SELECT * FROM prestasi";  
     $query = mysqli_query($db, $sql);  
     while($siswa = mysqli_fetch_array($query)){  
       echo "<tr>";  
       echo "<td>".$siswa['id']."</td>";  
       echo "<td>".$siswa['nama']."</td>";  
       echo "<td>".$siswa['kelas']."</td>";  
       echo "<td>".$siswa['jenis_kelamin']."</td>";  
       echo "<td>".$siswa['jenis_prestasi']."</td>";  
       echo "<td>".$siswa['keterangan_prestasi']."</td>";  
       echo "<td>";  
       echo "<a href='form-editt.php?id=".$siswa['id']."'>Edit</a> | ";  
       echo "<a href='hapuss.php?id=".$siswa['id']."'>Hapus</a>";  
       echo "</td>";  
       echo "</tr>";  
     }  
     ?>  
   </tbody>  
   </table>  
   <p>Total: <?php echo mysqli_num_rows($query) ?></p>  
   </body>  
 </html>  

5. index

 <!DOCTYPE html>  
 <html>  
 <head>  
   <title> Rekap Prestasi Siswa| SD Harapan Bangsa</title>  
 </head>  
 <body>  
   <header>  
     <h3>Prestasi siswa tahun ajaran 2017/2018</h3>  
     <h1>SD Harapan Bangsa</h1>  
   </header>  
   <h4>Menu</h4>  
   <nav>  
     <ul>  
       <li><a href="form_prestasi.php">Prestasi Baru</a></li>  
       <li><a href="lis-prestasi.php">Rekap Siswa</a></li>  
     </ul>  
   </nav>  
   </body>  
 </html>  

6. form edit

 <?php  
 include("configs.php");  
 // kalau tidak ada id di query string  
 if( !isset($_GET['id']) ){  
   header('Location: lis-prestasi.php');  
 }  
 //ambil id dari query string  
 $id = $_GET['id'];  
 // buat query untuk ambil data dari database  
 $sql = "SELECT * FROM prestasi WHERE id=$id";  
 $query = mysqli_query($db, $sql);  
 $siswa = mysqli_fetch_assoc($query);  
 // jika data yang di-edit tidak ditemukan  
 if( mysqli_num_rows($query) < 1 ){  
   die("data tidak ditemukan...");  
 }  
 ?>  
 <!DOCTYPE html>  
 <html>  
 <head>  
   <title>Formulir Edit Siswa | SMK Coding</title>  
 </head>  
 <body>  
   <header>  
     <h3>Formulir Edit Siswa</h3>  
   </header>  
   <form action="proses-editt.php" method="POST">  
     <fieldset>  
       <input type="hidden" name="id" value="<?php echo $siswa['id'] ?>" />  
     <p>  
       <label for="nama">Nama: </label>  
       <textarea name="nama"><?php echo $siswa['nama'] ?></textarea>  
     </p>  
     <p>  
       <label for="kelas">Kelas: </label>  
       <textarea name="kelas"><?php echo $siswa['kelas'] ?></textarea>  
     </p>  
     <p>  
       <label for="jenis_kelamin">Jenis Kelamin: </label>  
       <?php $jk = $siswa['Jenis_Kelamin']; ?>  
       <label><input type="radio" name="jenis_kelamin" value="laki-laki" <?php echo ($jk == 'laki-laki') ? "checked": "" ?>> Laki-laki</label>  
       <label><input type="radio" name="jenis_kelamin" value="perempuan" <?php echo ($jk == 'perempuan') ? "checked": "" ?>> Perempuan</label>  
     </p>  
     <p>  
       <label for="jenis_prestasi">Jenis Prestasi: </label>  
       <?php $jenis_prestasi = $siswa['jenis_prestasi']; ?>  
       <select name="agama">  
         <option <?php echo ($jenis_prestasi == 'Akademik') ? "selected": "" ?>>Akademik</option>  
         <option <?php echo ($jenis_prestasi == 'Non-Akademik') ? "selected": "" ?>>Non-Akademik</option>  
       </select>  
     </p>  
     <p>  
       <label for="keterangan_prestasi">Keterangan Prestasi: </label>  
       <textarea name="keterangan_prestasi"><?php echo $siswa['keterangan_prestasi'] ?></textarea>  
     </p>  
     <p>  
       <input type="submit" value="Simpan" name="simpan" />  
     </p>  
     </fieldset>  
   </form>  
   </body>  
 </html>  

7. hapus

 <?php  
 include("configs.php");  
 if( isset($_GET['id']) ){  
   // ambil id dari query string  
   $id = $_GET['id'];  
   // buat query hapus  
   $sql = "DELETE FROM prestasi WHERE id=$id";  
   $query = mysqli_query($db, $sql);  
   // apakah query hapus berhasil?  
   if( $query ){  
     header('Location: lis-prestasi.php');  
   } else {  
     die("gagal menghapus...");  
   }  
 } else {  
   die("akses dilarang...");  
 }  
 ?>  

8. proses_edit

 <?php  
 include("configs.php");  
 if( isset($_GET['id']) ){  
   // ambil id dari query string  
   $id = $_GET['id'];  
   // buat query hapus  
   $sql = "DELETE FROM prestasi WHERE id=$id";  
   $query = mysqli_query($db, $sql);  
   // apakah query hapus berhasil?  
   if( $query ){  
     header('Location: lis-prestasi.php');  
   } else {  
     die("gagal menghapus...");  
   }  
 } else {  
   die("akses dilarang...");  
 }  
 ?>  



Minggu, 14 Oktober 2018

ETS PBO A Parkir Elektronik


1. Main Class (GTO)

 public class GTO{  
   private boolean userAuthenticated;  
   private int currentAccountNumber;  
   private Screen screen;  
   private Keypad keypad;  
   private CashDispenser cashDispenser;  
   private BankDatabase bankDatabase;  
   private static final int BALANCE_INQUIRY = 1;  
   private static final int WITHDRAWAL = 2;  
   private static final int EXIT = 3;  
   public GTO(){  
     userAuthenticated = false;  
     currentAccountNumber = 0;  
     screen = new Screen();  
     keypad = new Keypad();  
     cashDispenser = new CashDispenser();  
     bankDatabase = new BankDatabase();  
   }  
   public void run(){  
     while(true){  
       while(!userAuthenticated){  
         screen.displayMessageLine("\nWelcome!");  
         authenticateUser();  
       }  
       performTransactions();  
       userAuthenticated = false;  
       currentAccountNumber = 0;  
       screen.displayMessageLine("\nThank You!\nGoodbye!");  
     }  
   }  
   private void authenticateUser(){  
     screen.displayMessage("\nPlease enter your account number : ");  
     int accountNumber = keypad.getInput();  
     userAuthenticated = bankDatabase.authenticateUser(accountNumber);  
     if(userAuthenticated){  
       currentAccountNumber = accountNumber;  
     }  
     else{  
       screen.displayMessageLine("Invalid ID.");  
       screen.displayMessageLine("Please Try Again.");  
     }  
   }  
   private void performTransactions(){  
     Transaction currentTransaction = null;  
     boolean userExited = false;  
     while(!userExited){  
       int mainMenuSelection = displayMainMenu();  
       switch(mainMenuSelection){  
         case BALANCE_INQUIRY :  
         case WITHDRAWAL :  
         //case DEPOSIT :  
           currentTransaction = createTransaction(mainMenuSelection);  
           currentTransaction.execute();  
           break;  
         case EXIT :  
           screen.displayMessageLine("\nExiting the system...");  
           userExited = true;  
           break;  
         default :  
           screen.displayMessageLine("\nYou did not enter a valid selection.");  
           screen.displayMessageLine("Please try again.");  
           break;  
       }  
     }  
   }  
   private int displayMainMenu(){  
     screen.displayMessageLine("\nChoose to continue :");  
     screen.displayMessageLine("1 - Saldo Kartu");  
     screen.displayMessageLine("2 - Durasi Parkir");  
     screen.displayMessageLine("3 - Exit\n");  
     screen.displayMessage("Enter a choice : ");  
     return keypad.getInput();  
   }  
   private Transaction createTransaction(int type){  
     Transaction temp = null;  
     switch(type){  
       case BALANCE_INQUIRY :  
         temp = new BalanceInquiry(currentAccountNumber, screen, bankDatabase);  
         break;  
       case WITHDRAWAL :  
         temp = new Withdrawal(currentAccountNumber, screen, bankDatabase, keypad, cashDispenser);  
         break;  
     }  
     return temp;  
   }  
 }  

2.  Screen
= menjalankan semua proses yang menampilkan output

 public class Screen{  
   public void displayMessage(String message){  
     System.out.print(message);  
   }  
   public void displayMessageLine(String message){  
     System.out.println(message);  
   }  
   public void displayDollarAmount(double amount){  
     System.out.printf("$%,.2f", amount);  
   }  
 }  

3. Keypad
= menerima inputan pengunjung

 import java.util.Scanner;  
 public class Keypad{  
   private Scanner input;  
   public Keypad(){  
     input = new Scanner(System.in);  
   }  
   public int getInput(){  
     return input.nextInt();  
   }  
 }  

4. CashDispenser
= mengecek saldo mencukupi atau tidak untuk membeli tiket

 public class CashDispenser{  
   private final static int INITIAL_COUNT = 500;  
   private int count;  
   public CashDispenser(){  
     count = INITIAL_COUNT;  
   }  
   public void dispenseCash(int amount){  
     int billsRequired = amount / 20;  
     count -= billsRequired;  
   }  
   public boolean isSufficientCashAvailable(int amount){  
     int billsRequired = amount / 20;  
     if(count >= billsRequired){  
       return true;  
     }  
     else{  
       return false;  
     }  
   }  
 }  

5. Transaction
= mengatur pembayaran dan sisa saldo

 public abstract class Transaction{  
   private int accountNumber;  
   private Screen screen;  
   private BankDatabase bankDatabase;  
   public Transaction(int userAccountNumber, Screen gtoScreen, BankDatabase gtoBankDatabase){  
     accountNumber = userAccountNumber;  
     screen = gtoScreen;  
     bankDatabase = gtoBankDatabase;  
   }  
   public int getAccountNumber(){  
     return accountNumber;  
   }  
   public Screen getScreen(){  
     return screen;  
   }  
   public BankDatabase getBankDatabase(){  
     return bankDatabase;  
   }  
   abstract public void execute();  
 }  

6. Withdrawal
= mengetur proses pembayaran dengan mengecek variabel

 import java.text.DateFormat;  
 import java.text.SimpleDateFormat;  
 import java.time.LocalDateTime;  
 import java.time.format.DateTimeFormatter;  
 import java.util.Calendar;  
 import java.util.Date;  
 public class Withdrawal extends Transaction{  
   private int amount;  
   private Keypad keypad;  
   int price;  
   int[] amounts = {0, 20, 40, 60, 100, 200};  
   private CashDispenser cashDispenser;  
   private final static int CANCELED = 6;  
   public Withdrawal(int userAccountNumber, Screen gtoScreen, BankDatabase gtoBankDatabase, Keypad gtoKeypad, CashDispenser gtoCashDispenser){  
     super(userAccountNumber, gtoScreen, gtoBankDatabase);  
     keypad = gtoKeypad;  
     cashDispenser = gtoCashDispenser;  
   }  
   @Override  
   public void execute(){  
     boolean cashDispensed = false;  
     double availableBalance;  
     BankDatabase bankDatabase = getBankDatabase();  
     Screen screen = getScreen();  
     do{  
       amount = displayMenuOfAmounts();  
       if(amount != CANCELED){  
         availableBalance = bankDatabase.getAvailableBalance(getAccountNumber());  
         if(amount <= availableBalance){  
           if(cashDispenser.isSufficientCashAvailable(amount)){  
             bankDatabase.debit(getAccountNumber(), amount);  
             cashDispenser.dispenseCash(amount);  
             cashDispensed = true;  
             screen.displayMessageLine("\nYour cash has been dispensed. Please take your struct now.");  
             //BankDatabase bankDatabase = getBankDatabase();  
             availableBalance = bankDatabase.getAvailableBalance(getAccountNumber());  
             screen.displayMessageLine("\nParkir Information : ");  
             screen.displayMessage(" - TAMAN BUNGKUL -\n");  
             screen.displayMessage(" - Tanggal Transaksi : " + dateFormat.format(date) + " \n");  
             screen.displayMessage(" - Harga Tiket : ");  
             screen.displayDollarAmount(amounts[price]);  
             screen.displayMessage("\n");  
             screen.displayMessage(" - Sisa Saldo Anda : ");  
             screen.displayDollarAmount(availableBalance);  
             screen.displayMessageLine("");  
           }  
         }  
         else{  
           screen.displayMessageLine("\nInsufficient funds in your account.");  
         }  
       }  
       else{  
         screen.displayMessageLine("\nCancelling transactions...");  
         return;  
       }  
     }  while(!cashDispensed);  
   }  
   private Date date;  
   private DateFormat dateFormat;  
   private int displayMenuOfAmounts(){  
     int userChoice = 0;  
     dateFormat = new SimpleDateFormat("dd/MM/yyyy");  
     date = new Date();  
     Screen screen = getScreen();  
     while(userChoice == 0){  
       screen.displayMessageLine("\nDurasi Parkir : ");  
       screen.displayMessageLine("1 - motor 1 jam $20");  
       screen.displayMessageLine("2 - motor 3 jam $40");  
       screen.displayMessageLine("3 - motor >3 jam $60");  
       screen.displayMessageLine("4 - mobil 1 jam $100");  
       screen.displayMessageLine("5 - mobil 3 jam $200");  
       screen.displayMessageLine("6 - mobil >3 jam $300");  
       screen.displayMessageLine("7 - Cancel Transaction");  
       screen.displayMessage("\nPilih durasi Anda : ");  
       int input = keypad.getInput();  
       price = input;  
       switch(input){  
         case 1 :  
         case 2 :  
         case 3 :  
         case 4 :  
         case 5 :  
           userChoice = amounts[input];  
           break;  
         case CANCELED :  
           userChoice = CANCELED;  
           break;  
         default :  
           screen.displayMessageLine("\nInvalid selection.");  
           screen.displayMessageLine("Try again.");  
       }  
     }  
     return userChoice;  
   }  
 }  

7. BalanceInquiry
= mengeluarkan output jumlah saldo

 public class BalanceInquiry extends Transaction{  
   public BalanceInquiry(int userAccountNumber, Screen gtoScreen, BankDatabase gtoBankDatabase){  
     super(userAccountNumber, gtoScreen, gtoBankDatabase);  
   }  
   @Override  
   public void execute(){  
     BankDatabase bankDatabase = getBankDatabase();  
     Screen screen = getScreen();  
     double availableBalance = bankDatabase.getAvailableBalance(getAccountNumber());  
     screen.displayMessageLine("\nBalance Information : \n");  
     screen.displayMessage(" - Available Balance : ");  
     screen.displayDollarAmount(availableBalance);  
     screen.displayMessageLine("");  
   }  
 }  

8. BankDatabase
= menyimpan id dan saldo

 public class BankDatabase{  
   private Account[] accounts;  
   public BankDatabase(){  
     accounts = new Account[1];  
     accounts[0] = new Account(79344, 200.0);  
   }  
   private Account getAccount(int accountNumber){  
     for(Account currentAccount : accounts){  
       if(currentAccount.getAccountNumber() == accountNumber) return currentAccount;  
     }  
     return null;  
   }  
   public boolean authenticateUser(int userAccountNumber){    
     Account userAccount = getAccount(userAccountNumber);     
     if(userAccount != null){  
       return true;  
     }  
     else{  
       return false;  
     }   
   }  
   public double getAvailableBalance(int userAccountNumber){  
     return getAccount(userAccountNumber).getAvailableBalance();  
   }  
   public void debit(int userAccountNumber, double amount){  
     getAccount(userAccountNumber).debit(amount);  
   }  
 }  

9. Account
=mengecek input yang masuk dan memanggil fungsi nilai saldo

 public class Account{  
   private int accountNumber;  
   private double availableBalance;  
   public Account(int theAccountNumber, double theAvailableBalance){  
     accountNumber = theAccountNumber;  
     availableBalance = theAvailableBalance;  
   }  
   public double getAvailableBalance(){  
     return availableBalance;  
   }  
   public void debit(double amount){  
     availableBalance -= amount;  
   }  
   public int getAccountNumber(){  
     return accountNumber;  
   }  
 }  

10. GTOCasestudy
= memanggil ulang fungsi main

 public class GTOCaseStudy{  
   public static void main(String[] args){  
     GTO theGTO = new GTO();  
     theGTO.run();  
   }  
 }  





Rabu, 10 Oktober 2018

TUGAS 6 PWEB C




1. HTML

 <!DOCTYPE html>  
 <html>  
 <head>  
      <title>Membuat Form Pembaca Berita Website dengan Javascript</title>  
      <link rel="stylesheet" type="text/css" href="weew.css">  
 </head>  
 <body>  
      <center><h2>REGISTRASI PEMBACA BERITA WEBSITE</h2></center>  
      <div class="login">  
           <form action="#" method="POST" onSubmit="validasi()">  
                <div>  
                     <label>Nama :</label>  
                     <input type="text" name="nama" id="nama" />  
                </div>  
                <div>  
                     <label>Email :</label>  
                     <input type="email" name="email" id="email" />  
                </div>  
                <div>  
                     <label>No HP :</label>  
                     <input type="integer" name="no_hp" id="no_hp" />  
                </div>  
                <div>  
                     <label>Jenis Kelamin :</label>  
                     <input type="text" name="jk" id="jk" />  
                </div>  
                <div>  
                     <label>Tanggal Lahir :</label>  
                     <input type="integer" name="tgl_lahir" id="tgl_lahir" />  
                </div>  
                <div>  
                     <label>Alamat :</label>  
                     <textarea cols="40" rows="5" name="alamat" id="alamat"></textarea>  
                </div>  
                <div>  
                     <label>Kolom Rubik :</label>  
                     <input type="text" name="rubik" id="rubik" />  
                </div>  
                <div>  
                     <input type="submit" value="Daftar" class="tombol">  
                </div>  
           </form>  
      </div>  
 </body>  
 <script type="text/javascript">  
      function validasi() {  
           var nama = document.getElementById("nama").value;  
           var email = document.getElementById("email").value;  
           var alamat = document.getElementById("alamat").value;  
           var no_hp = document.getElementById("no_hp").value;  
           var jk = document.getElementById("jk").value;  
           var tgl_lahir = document.getElementById("tgl_lahir").value;  
           var rubik = document.getElementById("rubik").value;  
           if (nama != "" && email!="" && alamat !="" && no_hp != "" && jk != "" && tgl_lahir != "" && rubik != "") {  
                return true;  
           }else{  
                alert('Anda harus mengisi data dengan lengkap !');  
           }  
      }  
 </script>  
 </html>  

2. CSS

 body {  
  background: #3498db;  
  font-family: sans-serif;  
 }  
 h2 {  
  color: #fff;  
 }  
 .login {  
  padding: 1em;  
  margin: 2em auto;  
  width: 17em;  
  background: #fff;  
  border-radius: 3px;  
 }  
 label {  
  font-size: 10pt;  
  color: #555;  
 }  
 input[type="text"],  
 input[type="email"],  
 input[type="integer"],  
 textarea {  
  padding: 8px;  
  width: 95%;  
  background: #efefef;  
  border: 0;  
  font-size: 10pt;  
  margin: 6px 0px;  
 }  
 .tombol {  
  background: #3498db;  
  color: #fff;  
  border: 0;  
  padding: 5px 8px;  
 }  

jadi jika form tersebut tidak diisi dengan lengkap maka akan muncul tulisan seperti ini




TUGAS 4 PWEB C

Nama : Nadia Hasna Luthfianita
NRP   : 05111740000077
Kelas  : PWeb C


1. Source Code HTML


 <!DOCTYPE html>   
  <html>   
  <head>   
    <title>Belajar Membuat Layout dengan HTML dan CSS</title>   
    <link rel="stylesheet" href="custom.css"/>   
  </head>   
  <body>   
    <div class="header">   
       <div class="jarak">   
         <h2>Belajar Membuat Layout dengan HTML dan CSS</h2>   
       </div>   
    </div>   
    <div class="menu">   
       <ul>   
         <li><a href="#">Home</a></li>   
         <li><a href="#">About</a></li>   
         <li><a href="#">Blog</a></li>   
         <li><a href="#">Contact</a></li>   
       </ul>   
    </div>   
    <div class="content">   
       <div class="jarak">   
         <!-- kiri -->   
         <div class="kiri">   
            <!-- blog -->   
            <div class="border">   
              <div class="jarak">   
                 <h3>Lorem Ipsum</h3>   
                 <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been <button class="btn">Read More...</button>   
              </div>   
            </div>   
            <!-- end blog -->   
            <!-- blog -->   
            <div class="border">   
              <div class="jarak">   
                 <h3>Lorem Ipsum</h3>   
                 <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been <button class="btn">Read More...</button>   
              </div>   
            </div>   
            <!-- end blog -->   
         </div>   
         <!-- kiri -->   
         <!-- kanan -->   
         <div class="kanan">   
            <div class="jarak">   
              <h3>CATEGORY</h3>   
              <hr/>   
              <p><a href="#" class="undecor">HTML</a></p>   
              <p><a href="#" class="undecor">CSS</a></p>   
              <p><a href="#" class="undecor">BOOTSTRAP</a></p>   
              <p><a href="#" class="undecor">PHP</a></p>   
              <p><a href="#" class="undecor">MySQL</a></p>   
              <p><a href="#" class="undecor">JQuery</a></p>   
              <p><a href="#" class="undecor">Ajax</a></p>   
            </div>   
         </div>   
         <!-- kanan -->   
       </div>        
    </div>   
    <div class="footer">   
       <div class="jarak">   
         <p>copyright 2017 codebareng all reserved</p>   
       </div>   
    </div>   
  </body>   
  </html>   

2. Source Code CSS


 body{   
  background: #f3f3f3;   
  color: #333;   
  width: 100%   
  font-family :sans-serif;   
  margin: 0 auto;   
  }   
  .header{   
  width: 90%;   
  margin: auto;   
  height: 120px;   
  line-height: 120px;   
  background: #41A85F;   
  color: #fff;   
  }   
  .content{   
  width: 90%;   
  margin: auto;   
  height: 420px;   
  padding: 0.1px;   
  background: #fff;   
  color: #333;   
  }   
  .kiri{   
  width: 70%;   
  float: left;   
  margin: auto;   
  background: #fff;   
  height: 420px;   
  }   
  .kanan{   
  width: 30%;   
  float: left;   
  margin: auto;   
  background: #fff;   
  height: 420px;   
  }   
  .border{   
  border: 2px solid #74C599;   
  margin-top: 1pc;   
  padding-bottom: 1pc;   
  padding-left: 2pc;   
  padding-right: 2pc;   
  }   
  .undecor{   
  text-decoration: none;   
  }   
  .footer{   
  width: 90%;   
  margin: auto;   
  height: 40px;   
  line-height: 40px;   
  background: #41A85F;   
  color: #fff;   
  }   
  .menu{   
  background-color: #53bd84;   
  height: 50px;   
  line-height: 50px;   
  position: relative;   
  width: 90%;   
  margin: 0 auto;   
  padding:0 auto;   
  }   
  .jarak{   
  padding: 0 2pc;   
  }   
  .menu ul{   
  list-style: none;   
  }   
  .menu ul li a{   
  float: left;   
  width: 70px;   
  display: block;   
  text-align: center;   
  color: #fff;   
  text-decoration: none;   
  }   
  .menu ul li a:hover{   
  background-color: #74C599   
  display:block;   
  }   



Minggu, 07 Oktober 2018

Tugas 6 PBO A


1. Auction

 import java.util.ArrayList;   
 import java.util.Iterator;   
  /**   
  * Kelas yang menunjukkan model pelelangan (Auction).   
  *    
  * @author (Nadia Hasna).   
  * @version (10/8/2018).   
  */   
  public class Auction   
  {   
   // Daftar 'Lot' pada kelas Auction.   
   private ArrayList<Lot> items; //items = barang yg dilelang   
   //Nomor yg akan diberikan pada 'item' berikutnya   
   private int nextItemNum;   
   //Buat pelelangan baru   
   public Auction()   
   {   
    items = new ArrayList<Lot>();   
    nextItemNum = 1;   
   }   
   //Masukkan 'item' baru pada pelelangan   
   //@param description Pendeskripsian 'item'.   
   public void enterItem(String description)   
   {   
    items.add(new Lot(nextItemNum, description));   
    nextItemNum++;   
   }   
   //List keseluruhan dari item yg terdapat pada pelelangan   
   public void showItems(){   
    for(Lot item : items){   
     System.out.println(item.toString());   
    }   
   }   
   /**   
   * Buat penawaran pada item.   
   * Output berupa penandaan apakah item berhasil dilelang/tdk.   
   * @param itemNum Item yg akan dilelang.   
   * @param penawar Orang yg akan melakukan penawaran.   
   * @param jumlah Jumlah brg yg dilelang.   
   */   
   public void buatLelang(int itemNum, Person penawar, long jumlah)   
   {   
    Lot selectedItem = getItem(itemNum);   
    if(selectedItem != null){   
     Bid bid = new Bid(penawar, jumlah);   
     boolean successful = selectedItem.bidFor(bid);   
     if(successful){   
      System.out.println("Penawaran terhadap item bernomor " +   
      itemNum + " telah berhasil dilakukan.");   
     }   
     else{   
      //Ganti dengan penawaran yg lebih tinggi.   
      Bid highestBid = selectedItem.getHighestBid();   
      System.out.println("No Item: " + itemNum +   
      " telah dilelang sebesar: " +   
      highestBid.getJumlah());   
     }   
    }   
   }   
   //Nilai kembali dari 'item' yg telah diberi nomor   
   //Nilai kembali berupa null jika item tsb tidak ada.   
   //@param itemNum Nomor dari item yg dilelang.   
   public Lot getItem(int itemNum){   
    if((itemNum >= 1) && (itemNum < nextItemNum))   
    {   
     Lot selectedItem = items.get(itemNum - 1);   
     //Pemeriksaan   
     if(selectedItem.getNum() != itemNum) {   
      System.out.println("Terdapat kesalahan: Item dengan nomor " +   
      selectedItem.getNum() +   
      " telah dilelang senilai " + itemNum);   
      selectedItem = null;   
     }   
     return selectedItem;   
    }   
    else {   
     System.out.println("Item dengan nomor: " + itemNum +   
     " tidak valid/ tidak ada.");   
     return null;   
    }   
   }   
  }   

2. Lot

 /**   
  * Kelas untuk memodelkan serangkaian item dalam lelang.   
  *    
  * @author (Nadia Hasna).   
  * @version (10/8/2018).   
  */   
  public class Lot   
  {   
   private final int num; //Nomor   
   private String desc; //Deskripsi untuk item   
   private Bid highestBid; //Penawaran tertinggi untuk saat ini   
   /**   
   * @param num Nomor item.   
   * @param desc Deskripsi dari item yg dilelang.   
   */   
   public Lot(int num, String desc)   
   {   
    this.num = num;   
    this.desc = desc;   
   }   
   /**   
   * Proses penawaran untuk item ybs.   
   * Tawaran yang berhasil harus memiliki nilai yang lebih tinggi daripada tawaran sebelumnya.   
   * @param bid Pelelangan yang baru.   
   * @return true jika berhasil, false jika sebaliknya   
   */   
   public boolean bidFor(Bid bid)   
   {   
    if((highestBid == null) ||   
      (bid.getJumlah() > highestBid.getJumlah())) {   
     //Penawaran yg diterima.   
     highestBid = bid;   
     return true;   
    }   
    else {   
     return false;   
    }   
   }   
   //Detail dari item yg dilelang   
   public String toString()   
   {   
    String details = num + ": " + desc;   
    if(highestBid != null) {   
     details += " Dilelang sebesar: " +    
        highestBid.getJumlah();   
    }   
    else {   
     details += " (Belum terlelang)";   
    }   
    return details;   
   }   
   //Nilai kembali berupa nomor item   
   public int getNum()   
   {   
    return num;   
   }   
   //Nilai kembali berupa deskripsi item   
   public String getDesc()   
   {   
    return desc;   
   }   
   /**   
   * @return Penawaran tertinggi untuk item ybs.   
   *   Null apabila belum ada penawaran   
   */   
   public Bid getHighestBid()   
   {   
    return highestBid;   
   }   
  }   

3. Bit

  /**   
  * Kelas yang memodelkan tawaran lelang (bid).   
  * Berisi referensi tawaran (dari class Person) dan jumlah tawaran.   
  *   
  * @author (Nadia Hasna)   
  * @version (10/8/2018)   
  */   
  public class Bid   
  {   
   //'Person' membuat tawaran   
   private final Person penawar; //penawar = si penawar tertinggi   
   //Jumlah tawaran   
   private final long jumlah; //jumlah = jumlah tawaran   
   //Tawaran dibuat   
   public Bid(Person penawar, long jumlah)   
   {   
    this.penawar = penawar;   
    this.jumlah = jumlah;   
   }   
   //Nilai kembali dari 'penawar'   
   public Person getPenawar()   
   {   
    return penawar;   
   }   
   //Nilai kembali dari 'jumlah'   
   public long getJumlah()   
   {   
    return jumlah;   
   }   
  }    

4. Person

 /**   
  * Kelas yang menunjukkan partisipasi orang dalam pelelangan.   
  *   
  * @author (Nadia Hasna)   
  * @version (10/8/2018)   
  */   
  public class Person   
  {   
   //Nama orang   
   private final String nama;   
   //Buat nama baru   
   public Person(String nama)   
   { //Nama org baru yg ikut serta pelelangan   
    this.nama = nama;    
   }   
   //Nilai kembali dari 'nama'   
   public String getNama()   
   {   
    return nama;   
   }   
  }   










Selasa, 02 Oktober 2018

PBO Tugas 5: Jam Digital

Nama : Nadia Hasna Luthfianita
NRP   : 05111740000077





1. NumberDisplay

 /**  
  * Write a description of class NumberDisplay here.  
  *  
  * @author (Nadia Hasna L)  
  * @version (20181001)  
  */  
 public class NumberDisplay  
 {  
   private int limit;    
   private int fix;    
   public NumberDisplay(int Maksimal)    
   {    
   limit = Maksimal;    
   fix = 0;    
   }    
   public int Value_Now()    
   {    
   return fix;    
   }    
   public void increment()    
   {    
   fix = (fix + 1) % limit;    
   }    
   public String getDisplayValue()    
   {    
   if(fix < 10)    
   {    
   return "0" + fix;    
   }    
   else    
   {    
   return "" + fix;    
   }    
   }    
   public void setValue(int replacementValue)    
   {    
   if((replacementValue >= 0) && (replacementValue < limit))    
   {    
   fix = replacementValue;    
   }    
   }    
 }  


2. TestClockDispaly

 /**  
  * Write a description of class TestClockDisplay here.  
  *  
  * @author (Nadia Hasna L)  
  * @version (20181001)  
  */  
 public class TestClockDisplay  
 {  
   public TestClockDisplay()    
   {    
   }    
   public void test()    
   {    
   ClockDisplay cl = new ClockDisplay();    
   cl.setTime(22,37);    
   System.out.println(cl.getTime());    
   cl.setTime(5,59);    
   System.out.println(cl.getTime());   
   cl.setTime(14,00);    
   System.out.println(cl.getTime());   
   cl.setTime(00,17);    
   System.out.println(cl.getTime());   
   }    
 }  

3. ClockDisplay

 /**  
  * Write a description of class ClockDisplay here.  
  *  
  * @author (Nadia Hasna L)  
  * @version (20181001)  
  */  
 public class ClockDisplay  
 {  
   private NumberDisplay hour;    
   private NumberDisplay minute;    
   private String displayString;    
   public ClockDisplay()    
   {    
   hour = new NumberDisplay(24);    
   minute = new NumberDisplay(60);    
   updateDisplay();    
   }    
   public ClockDisplay(int jam, int menit)    
   {    
   hour = new NumberDisplay(24);    
   minute = new NumberDisplay(60);    
   setTime(jam,menit);    
   }    
   public void timeTick()    
   {    
   minute.increment();    
   if(minute.Value_Now() == 0)    
   {    
   hour.increment();    
   }    
   updateDisplay();    
   }    
   public void setTime(int jam, int menit)    
   {    
   hour.setValue(jam);    
   minute.setValue(menit);    
   updateDisplay();    
   }    
   public String getTime()    
   {    
   return displayString;    
   }    
   private void updateDisplay()    
   {    
   displayString = hour.getDisplayValue() + ":" + minute.getDisplayValue();    
   }    
 }  

4. ClockGUI

 /**  
  * Write a description of class ClockGUI here.  
  *  
  * @author (Nadia Hasna L)  
  * @version (20181001)  
  */  
 import java.awt.*;    
  import java.awt.event.*;    
  import javax.swing.*;    
  import javax.swing.border.*;    
  public class ClockGUI    
  {    
   private JFrame frame;    
   private JLabel label;    
   private ClockDisplay clock;    
   private boolean clockOn = false;    
   private TimerThread timerThread;    
   public void Clock()    
   {    
   makeFrame();    
   clock = new ClockDisplay();    
   }    
   private void start()    
   {    
   clockOn = true;    
   timerThread = new TimerThread();    
   timerThread.start();    
   }    
   private void stop()    
   {    
   clockOn = false;    
   }    
   private void step()    
   {    
   clock.timeTick();    
   label.setText(clock.getTime());    
   }    
   private void showAbout()    
   {    
   JOptionPane.showMessageDialog (frame, "Clock Version 0.1\n" +    
   "Membuat jam digital simpel dengan Java.",    
   "About Clock",    
   JOptionPane.INFORMATION_MESSAGE);    
   }    
   private void quit()    
   {    
   System.exit(0);    
   }    
   private void makeFrame()    
   {    
   frame = new JFrame("Clock");    
   JPanel contentPane = (JPanel)frame.getContentPane();    
   contentPane.setBorder(new EmptyBorder(1,60,1,60));    
   makeMenuBar(frame);    
   contentPane.setLayout(new BorderLayout(12,12));    
   label = new JLabel("00:00", SwingConstants.CENTER);    
   Font displayFont = label.getFont().deriveFont(96.0f);    
   label.setFont(displayFont);    
   contentPane.add(label, BorderLayout.CENTER);    
   JPanel toolbar = new JPanel();    
   toolbar.setLayout(new GridLayout(1,0));    
   JButton startButton = new JButton("Start");    
   startButton.addActionListener(e->start());    
   toolbar.add(startButton);    
   JButton stopButton = new JButton("Stop");    
   stopButton.addActionListener(e->stop());    
   toolbar.add(stopButton);    
   JButton stepButton = new JButton("Step");    
   stepButton.addActionListener(e->step());    
   toolbar.add(stepButton);    
   JPanel flow = new JPanel();    
   flow.add(toolbar);    
   contentPane.add(flow, BorderLayout.SOUTH);    
   frame.pack();    
   Dimension d = Toolkit.getDefaultToolkit().getScreenSize();    
   frame.setLocation(d.width/2 - frame.getWidth()/2, d.height/2 - frame.getHeight()/2);    
   frame.setVisible(true);    
   }    
   private void makeMenuBar(JFrame frame)    
   {    
   final int SHORTCUT_MASK =    
   Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();    
   JMenuBar menubar = new JMenuBar();    
   frame.setJMenuBar(menubar);    
   JMenu menu;    
   JMenuItem item;    
   menu = new JMenu("File");    
   menubar.add(menu);    
   item = new JMenuItem("About Clock...");    
   item.addActionListener(e->showAbout());    
   menu.add(item);    
   menu.addSeparator();    
   item = new JMenuItem("Quit");    
   item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,SHORTCUT_MASK));    
   item.addActionListener(e->quit());    
   menu.add(item);    
   }    
   class TimerThread extends Thread    
   {    
   public void run()    
   {    
   while(clockOn)    
   {    
    step();    
    pause();    
   }    
   }    
   private void pause()    
   {    
   try    
   {    
    Thread.sleep(900);    
   }    
   catch(InterruptedException exc)    
   {    
   }    
   }    
   }    
  }    

Hasil: