Senin, 26 Februari 2018

Watchdogs Review

Hasil gambar untuk watch dogs wallpaper



Watch Dogs merupakan Game Adventure Open World besutan Ubisoft yang dirilis pada tahun 2014. Watch Dogs bercerita tentang kisah Aiden Pearce. Seorang kriminal yang melancarkan aksinya dengan memanfaatkan infrastruktur kota yang disebut ctOS. Dengan melakukan hackpada ctOS, Aiden dapat mencuri berbagai hal mulai dari uang, informasi, sampai akses ke berbagai hal terlarang. Sepak terjangnya ini menyebabkan dia menjadi buronan organisasi misterius yang akhirnya berakibat pada tewasnya keponakan dia.
Kejadian ini membuat Aiden memutuskan untuk mengejar dan membalaskan dendam pada orang-orang yang bertanggung jawab atas nasib keluarganya ini. Dari situlah petualangan kamu sebagai Aiden dimulai.
Watch Dogs memiliki tema yang sangat menarik, yaitu tentang pengawasan, teknologi, dan kriminalitas. Game ini memiliki potensi yang sangat besar untuk menjadi game dengan cerita yang unik dan penuh kritik sosial

Gameplay
Dikarenakan game ini merupakan game open-world  sehingga pemain di beri kebebasan untuk menjalankan suatu Misi ( Mission/Objective/quest). Konsep dari Open world itu sendiri adalah pemain yang mendatangi Misi,bukan Misi yang mendatangi Pemain. Nah jadi Game open world itu kita lah yang bebas memilih misi tersebut, Jadi  kita di beri kebebasan untuk mau atau tidaknya menjalankan misi.
Untuk keadaan menang pada game ini tergantung misi apa yang dimainkan, misal untuk balapan maka keadaan menang adalah mampu menjadi yang pertama finish, dan untuk game sebagai penyadap kita harus mampu menyadap target dengan peraturan tidak boleh ketahuan, dan untuk misi peperangan maka kita harus membunuh musuh utamanya untuk bisa menyelesaikan misi.
Keadaan kalah jika kebalikan dari keadaan menang tadi, dan pemain otomatis akan langsung mengulang misi yang terakhir dimainkan sebelum mengalami kekalahan.

Mechanic
Untuk game ini controller yang digunakan bisa menggunakan joystick maupun keyboard yang bisa dilihat di gambar.

Gambar terkait
Joystick Contoller


Gambar terkait
Keyboard Controller

Mengapa Game Ini Terbaik ?

       1.    Hacking
Hal seru yang bisa dilakukan oleh pemain, ya beberapa hal sama seperti GTA, namun yang seru adalah kita tidak perlu cheat seperti main GTA karena dengan hack kita sudah bisa serasa melakukan cheat , contohnya hack atm, akun keuangan orang – orang, dan juga ketika menjadi buronan polisi kita bisa mengganggu jaringan serta mematikan seluruh aliran listrik yang ada di kota, sehingga kita bisa kabur dengan mudahnya, bisa sembunyi di mobil juga, untuk skill kita bisa mengupgrade skill  melalui menu, dimana pint yang digunakan untuk skill jika kita menyelesaikan misi, baik misi utama maupun misi sampingan.


Gambar terkait
Hacking

       2.    Multiplayer
Ada beberapa bagian di mode multiplayer  ini, namun yang pernah saya mainkan adalah mode free, racer, dan hacking, untuk mode free ini yaitu mode bebas dimana tidak ada peraturan main atau apapun, main aja suka-suka mau ngapain aja, jadi cukup membosankan, untuk mode race ini adalah mode yang paling sering saya mainkan , mode ini adalah mode balapan dimana pemilihan arena balapnya berdasarkan dari vote para pemainnya, dan yang terakhir adala mode hacking, disini kita akan melakukan hack kepada pemain lain, tanpa ketahuan, ketika pemain lain megetahui dirinya di hack, maka dia akan mencari kita, maka kita harus sembunyi ditempat yang aman, atau tidak kita akan ditembak sama pemain lain.


Hasil gambar untuk watch dogs race
Multiplayer Racing

       3.   Additional Content
Additional content dengan nama “digital trip” disini benar-benar tidak ada hacking hacking-an karena isinya benar benar beda, yang pertama adalah "madness" kita mengendarai sebuah mobil dimana kita harus menabrak zombie sebanyak-banyaknya, yang kedua "Conspiracy!" kita harus membunuh alien tanpa ketahuan, dan yang terakhir "spider-tank" menjadi laba-laba raksasa yang jadi buronan di kota, benar-benar penuh fantasi.


Hasil gambar untuk watch dogs digital trips
Madness Digital Trip



Informasi Game
Name                :Watchdogs
Official Website  : https://watchdogs.ubisoft.com/watchdogs/en-us/home/
Release Date     : 27 May2014
Theme               : Action
Genre                : Adventure open-world
Publisher            : Ubisoft
Developers        : Ubisoft Montreal
Platform             : Microsoft Windows, PlayStation 3, PlayStation 4, Wii U, Xbox 360, Xbox One
Rate                        :

Hasil gambar untuk rating mature 17




Trailer                :


Senin, 12 Juni 2017

Program Struk SPBU

Untuk menyelesaikan evaluasi PBO semester ini, kelompok kami membuat program simulasi struk pada SPBU, Berikut class-class ya

Class Pertamina

public class pertamina {
        private String jenisBBM;
        private double hargaBBM;
        private double totalliter;
        private double hargatotal;
        private double uangbayar;
        private double kembalian;
 
    public void setBBM(String jenisBBM, double hargaBBM){
        this.jenisBBM = jenisBBM;
        this.hargaBBM = hargaBBM;
    }
    public void setTotalliter(double totalliter, double uangbayar){
        this.totalliter = totalliter;
        this.uangbayar = uangbayar;
        this.hargatotal =  totalliter*hargaBBM;
    }
    public void setKembalian(){
        if(uangbayar < hargatotal){
              System.out.println("Maaf uang anda tidak cukup");
        }
        else{
              this.kembalian = uangbayar - hargatotal;
        }
    }
    public void cetak(){
        System.out.println("--------------------Nota Transaksi-------------------");
              System.out.println("Jenis BBM yang dibeli adalah  : "+jenisBBM);
              System.out.println("Harga perliternya adalah        Rp."+hargaBBM+".00");
              System.out.println("Total liter yang anda beli    : "+totalliter+" liter");
              System.out.println("Harga total pembayaran        : Rp."+hargatotal+".00");
              System.out.println("Uang Pembayaran               : Rp."+uangbayar+".00");
              System.out.println("Uang Kembali                  : Rp."+kembalian+".00");
        System.out.println("--------------------Terima Kasih--------------------");    
    }
}



Class Main

import java.io.*;
 
public class tespertamina {
 
    public static void main(String []args){
            BufferedReader data = new BufferedReader (new InputStreamReader(System.in));
            pertamina jalankan = new pertamina();
        try{
              System.out.println("Masukkan jenis BBM yang dibeli:");
              System.out.println("1. Premium    = 7300");
              System.out.println("2. Pertamax   = 8600");
              System.out.println("3. Pertalite  = 8400");
              System.out.println("4. Solar      = 6900");
              System.out.println("Masukkan Pilihan(1/2/3/4):");
              String jawaban = data.readLine();
              int pilihan = Integer.parseInt(jawaban);
              if (pilihan == 1){
                     jalankan.setBBM("Premium",7300);
                     System.out.println("Berapa liter yang dibeli? ");
                     String datamasuk = data.readLine();
                     double totalliter = Integer.parseInt(datamasuk);
                     System.out.println("Uang bayar ");
                     String databayar = data.readLine();
                     double uangbayar = Integer.parseInt(databayar);
                     jalankan.setTotalliter(totalliter, uangbayar);
                     jalankan.setKembalian();
                     jalankan.cetak();
              }
              else if(pilihan ==2){
                     jalankan.setBBM("Pertamax",8600);
                     System.out.println("Berapa liter yang dibeli? ");
                     String datamasuk = data.readLine();
                     double totalliter = Integer.parseInt(datamasuk);
                     System.out.println("Uang bayar ");
                     String databayar = data.readLine();
                     double uangbayar = Integer.parseInt(databayar);
                     jalankan.setTotalliter(totalliter, uangbayar);
                     jalankan.setKembalian();
                     jalankan.cetak();
                   
              }
              else if(pilihan ==3){
                     jalankan.setBBM("Partalite",8400);
                     System.out.println("Berapa liter yang dibeli? ");
                     String datamasuk = data.readLine();
                     double totalliter = Integer.parseInt(datamasuk);
                     System.out.println("Uang bayar ");
                     String databayar = data.readLine();
                     double uangbayar = Integer.parseInt(databayar);
                     jalankan.setTotalliter(totalliter, uangbayar);
                     jalankan.setKembalian();
                     jalankan.cetak();
              }
              else if(pilihan ==4){
                     jalankan.setBBM("Solar",6900);
                     System.out.println("Berapa liter yang dibeli? ");
                     String datamasuk = data.readLine();
                     double totalliter = Integer.parseInt(datamasuk);
                     System.out.println("Uang bayar ");
                     String databayar = data.readLine();
                     double uangbayar = Integer.parseInt(databayar);
                     jalankan.setTotalliter(totalliter, uangbayar);
                     jalankan.setKembalian();
                     jalankan.cetak();
              }
             
              }
              catch(Exception e){
                     System.out.println("Error");
              }
    }  
 
}



Hasil Screen Shoot




Senin, 15 Mei 2017

OOP PADA MESIN ATM

ATM menurut Ellen Florian (2004) adalah ”alat telekomunikasi berbasis komputer yang menyediakan tempat bagi nasabah dalam melakukan transaksi keuangan tanpa membutuhkan seorang teller bank.”. ATM dalam bahasa asing Automated Teller Machine dan dalam bahasa Indonesia Anjungan Tunai Mandiri.


Untuk mengakses ATM digunakan kartu plastik ATM yang diterbitkan oleh lembaga keuangan (bank) yang disebut dengan Kartu ATM. Kartu ATM yang dikeluarkan oleh pihak bank biasanya sudah menetapkan batas jumlah penarikan atau transasksi tunai maksimum perhari. Batas penarikan ATM ditetapkan untuk mengantisipasi kemungkinan adanya kerusakan pada perangkat ATM, selain itu batas jumlah penarikan diterapkan untuk mengantisipasi kelebihan penyediaan uang tunai dalam ATM.


Secara umum fungsi ATM adalah agar dapat melakukan penarikan uang tunai, namun selain itu masih banyak fungsi ATM yang dapat mempermudah kepentingan kita sebagai nasabah dalam melakukan aktivitas perbankan, seperti:


  1. Informasi Saldo
  2. Pembayaran Umum: tagihan telepon, kartu kredit, listrik, air, handphone, dan uang kuliah
  3. Pembelian: tiket penerbangan, isi ulang pulsa
  4. Pemindah bukuan (open transfer)
  5. Pengubahan PIN, dll

Saya akan membagikan Source Code dari buku "Java - How To Program - Ninth Edition (2012)" Bab 13 tentang OOP pada Mesin ATM

berikut table class dan relasinya







berikut adalah kelas - kelasnya
  • class study_case atau Main
 public class Study_Case  
 {  
   public static void main( String[] args )  
   {  
     ATM theATM = new ATM();  
     theATM.run();  
   }  
 }  
  • class ATM
 public class ATM  
 {  
   private boolean userAuthenticated; // untuk cek ke otekntikan User  
   private int currentAccountNumber; //cek user sekarang  
   private Screen screen;  
   private Keypad keypad;  
   private CashDispenser cashDispenser;  
   private DepositSlot depositSlot;  
   private BankDatabase bankDatabase; // untuk informasi database akun  
   // menu  
   private static final int saldo = 1;  
   private static final int tarik_tunai = 2;  
   private static final int setoran = 3;  
   private static final int exit = 4;  
   public ATM()  
   {  
     userAuthenticated = false; // inisiasi  
     currentAccountNumber = 0; //inisiasi  
     screen = new Screen();   
     keypad = new Keypad();  
     cashDispenser = new CashDispenser();  
     depositSlot = new DepositSlot();  
     bankDatabase = new BankDatabase();  
   }  
   public void run()  
   {  
     while(true)  
     {  
       while(!userAuthenticated)  
       {  
         screen.displayMessageLine("WELCOME");  
         authenticateUser(); // mengotentikasi user  
       }  
       performTransactions();   
       userAuthenticated = false; // reset   
       currentAccountNumber = 0; // reset  
       screen.displayMessageLine("\nTHANK YOU");  
     }  
   }  
   private void authenticateUser()  
   {  
     screen.displayMessageLine("\nMASUKKAN ACCOUNT NUMBER: ");  
     int accountNumber = keypad.getInput(); // account  
     screen.displayMessageLine("MASUKKAN PIN: ");  
     int pin = keypad.getInput(); // pin  
     userAuthenticated = bankDatabase.authenticateUser (accountNumber, pin);  
     if(userAuthenticated)  
     {  
       currentAccountNumber = accountNumber; //save  
     }  
     else  
     screen.displayMessageLine("\nAKUN ATAU PIN SALAH, COBA LAGI");  
   }  
   private void performTransactions()  
   {  
     //untuk menyimpan transaksi sekarang  
     Transaction currentTransaction = null;  
     boolean userExited = false; // inisiasi  
     while(!userExited)  
     {  
       int mainMenuSelection = displayMainMenu();  
       switch(mainMenuSelection)  
       {  
         case saldo:  
         case tarik_tunai:  
         case setoran:  
         currentTransaction = createTransaction(mainMenuSelection);  
         currentTransaction.execute();  
         break;  
         case exit:  
         screen.displayMessageLine("\nKeluar");  
         userExited = true; // user keluar  
         break;  
         default: screen.displayMessageLine("INPUT SALAH, COBA LAGI");  
         break;  
       }  
     }  
   }  
   private int displayMainMenu()  
   {  
     screen.displayMessageLine("MENU : \n");  
     screen.displayMessageLine("1 - CEK SALDO\n");  
     screen.displayMessageLine("2 - TARIK TUNAI\n");  
     screen.displayMessageLine("3 - SETORAN TUNAI\n");  
     screen.displayMessageLine("4 - EXIT\n");  
     screen.displayMessageLine("MASUKKAN INPUT: ");  
     return keypad.getInput();// intup dari user  
   }  
   private Transaction createTransaction (int type)  
   {  
     Transaction temp = null; // inisiasi  
     switch(type)  
     {  
       case saldo:  
       temp = new Saldo(currentAccountNumber, screen, bankDatabase);  
       break;  
       case tarik_tunai:  
       temp = new Tarik_Tunai(currentAccountNumber, screen,bankDatabase, keypad, cashDispenser);  
       break;  
       case setoran:  
       temp = new Setoran(currentAccountNumber, screen, bankDatabase,keypad,depositSlot);  
       break;  
     }  
     return temp;  
   }  
 }  
  • class Screen
 public class Screen  
 {  
   public void displayMessage(String message)  
   {  
     System.out.print(message);  
   }  
   public void displayMessageLine(String message)  
   {  
     System.out.print(message);  
   }  
   public void displayAmount(double amount)  
   {  
     System.out.printf("$%,.2f",amount);  
   }  
 }  
  • class Keypad
 import java.util.Scanner;  
 public class Keypad  
 {  
   private Scanner input;  
   public Keypad()  
   {  
     input = new Scanner(System.in);  
   }  
   public int getInput()  
   {  
     return input.nextInt();  
   }  
 }  
  • class  Cash Dispenser
 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; //update  
   }  
   public boolean isSufficientCashAvailable(int amount)  
   {  
     int billsRequired = amount/20;  
     if (count>=billsRequired)//uang tersedia  
     return true;  
     else  
     return false; //uang tidak tersedia  
   }  
 }  
  • class Deposit Slot
 public class DepositSlot  
 {  
    public boolean isEnvelopeReceived()  
   {  
     return true; //asumsi bahwa uang talah di masukkan  
   }  
 }  
  • class  Account
 public class Account  
 {  
   private int accountNumber;  
   private int pin;  
   private double availableBalance; // saldo yang dapat ditarik  
   private double totalBalance;  
    public Account(int theAccountNumber, int thePIN, double theAvailableBalance, double theTotalBalance)  
   {  
     accountNumber = theAccountNumber;  
     pin = thePIN;  
     availableBalance = theTotalBalance;  
     totalBalance = theTotalBalance;  
   }  
   // cek pin  
    public boolean validatePIN(int userPIN)  
   {  
     if(userPIN==pin)  
     return true;  
     else  
     return false;  
   }  
   public double getAvailableBalance()  
   {  
     return availableBalance;  
   }  
   public double getTotalBalance()  
   {  
     return totalBalance;  
   }  
   public void credit (double amount)  
   {  
     totalBalance+=amount;  
   }  
   public void debit(double amount)  
   {  
     availableBalance -= amount;  
     totalBalance -= amount;  
   }  
   public int getAccountNumber()  
   {  
     return accountNumber;  
   }  
 }
  • class Bank Database
 public class BankDatabase  
 {  
   private Account[] accounts;  
   public BankDatabase()  
   {  
     accounts = new Account[2];  
     accounts[0]= new Account(12345,54321,1000.0,1200.0);  
     accounts[1]= new Account(98765,56789,200.0,200.0);  
   }  
   public Account getAccount(int accountNumber)  
   {  
     for(Account currentAccount : accounts)  
     {  
       if(currentAccount.getAccountNumber()==accountNumber)  
       return currentAccount;  
     }  
     return null;//jika tidak ada akun yang cocok  
   }  
   public boolean authenticateUser(int userAccountNumber, int userPIN)  
   {  
     Account userAccount = getAccount(userAccountNumber);  
     if(userAccount!=null)  
     return userAccount.validatePIN(userPIN);  
     else  
     return false;  
   }  
   public double getAvailableBalance(int userAccountNumber)  
   {  
     return getAccount(userAccountNumber).getAvailableBalance();  
   }  
   public double getTotalBalance(int userAccountNumber)  
   {  
     return getAccount(userAccountNumber).getTotalBalance();  
   }  
   public void credit(int userAccountNumber, double amount)  
   {  
     getAccount(userAccountNumber).credit(amount);  
   }  
   public void debit(int userAccountNumber, double amount)  
   {  
     getAccount(userAccountNumber).debit(amount);  
   }  
 }  
  • class Transaction
 public abstract class Transaction  
 {  
   private int accountNumber;  
   private Screen screen;  
   private BankDatabase bankDatabase;  
   public Transaction(int userAccountNumber, Screen atmScreen, BankDatabase atmBankDatabase)  
   {  
     accountNumber = userAccountNumber;  
     screen = atmScreen;  
     bankDatabase = atmBankDatabase;  
   }  
   public int getAccountNumber()  
   {  
     return accountNumber;  
   }  
   public Screen getScreen()  
   {  
     return screen;  
   }  
   public BankDatabase getBankDatabase()  
   {  
     return bankDatabase;  
   }  
   abstract public void execute();  
 }  
  • class  Saldo
 public class Saldo extends Transaction  
 {  
    public Saldo(int userAccountNumber, Screen atmScreen, BankDatabase atmBankDatabase)  
   {  
     super(userAccountNumber, atmScreen, atmBankDatabase);  
   }  
   @Override  
    public void execute()  
   {  
     // mengambil referensi dairi database dan screen  
     BankDatabase bankDatabase = getBankDatabase();  
     Screen screen = getScreen();  
     // mengambil saldo tersedia  
     double availableBalance = bankDatabase.getAvailableBalance( getAccountNumber() );  
     // mengambil total saldo  
     double totalBalance = bankDatabase.getTotalBalance(getAccountNumber());  
     //menampilkan informasi  
     screen.displayMessageLine("\nInfo Saldo:");  
     screen.displayMessage(" - Saldo Tersedia: ");  
     screen.displayAmount(availableBalance);  
     screen.displayMessage("\n - Total balance: ");  
     screen.displayAmount(totalBalance);  
     screen.displayMessageLine("");  
   }  
 }  
  • class Tarik Tunai
 public class Tarik_Tunai extends Transaction  
 {  
   private int amount;  
   private Keypad keypad;  
   private CashDispenser cashDispenser;  
   private final static int batal = 6;  
    public Tarik_Tunai(int userAccountNumber, Screen atmScreen, BankDatabase atmBankDatabase, Keypad atmKeypad, CashDispenser atmCashDispenser)  
   {  
     super(userAccountNumber, atmScreen, atmBankDatabase);  
     keypad = atmKeypad;  
     cashDispenser = atmCashDispenser;  
   }  
   @Override  
    public void execute()  
   {  
     boolean cashDispensed = false; // uang belum keluar  
     double availableBalance;  
     BankDatabase bankDatabase = getBankDatabase();  
     Screen screen = getScreen();  
     do  
     {  
       amount = displayMenuOfAmounts();  
       if(amount!=batal)  
       {  
         availableBalance = bankDatabase.getAvailableBalance(getAccountNumber());  
         if(amount <= availableBalance)//cek apakah saldo di akun mencukupi  
         {  
           if(cashDispenser.isSufficientCashAvailable(amount))  
           {  
             bankDatabase.debit(getAccountNumber(),amount);  
             cashDispenser.dispenseCash(amount);// mengeluarkan uang  
             cashDispensed = true;  
             screen.displayMessageLine("\nSilahkan Ambil Uang Anda");  
           }    
           else  
             screen.displayMessageLine("\nUang di mesin ATM tidak mencukupi\nsilahkan pilih nominal yang lebih kecil");  
           }  
           else  
           screen.displayMessageLine("\nSaldo tidak mencukupi\nsilahkan pilih nominal yang lebih kecil");  
       }  
       else  
       {  
         screen.displayMessageLine("\nTransaksi Batal");  
         return;  
       }  
     }while(!cashDispensed);  
   }  
   private int displayMenuOfAmounts()  
   {  
     int userChoice =0;  
     Screen screen = getScreen();  
     int[] amounts={0,20,40,60,100,200};  
     while(userChoice==0)  
     {  
       screen.displayMessageLine( "\nTarikan Tunai:" );  
       screen.displayMessageLine( "\n1 - $20" );  
       screen.displayMessageLine( "\n2 - $40" );  
       screen.displayMessageLine( "\n3 - $60" );  
       screen.displayMessageLine( "\n4 - $100" );  
       screen.displayMessageLine( "\n5 - $200" );  
       screen.displayMessageLine( "\n6 - Cancel transaction" );  
       screen.displayMessage( "\nPilih Nominal: " );  
       int input = keypad.getInput(); // mengambil input user  
       switch ( input )  
       {  
         case 1: // pilihan untuk nominal tarik tunai  
         case 2:   
         case 3:   
         case 4:  
         case 5:  
         userChoice = amounts[input]; // pilihan user  
         break;  
         case batal: // jika batal  
         userChoice = batal;  
         break;  
         default:   
         screen.displayMessageLine(  
         "\nINPUT SALAH" );  
       }  
     }  
     return userChoice;  
   }  
 }  
  • class Setoran
 public class Setoran extends Transaction  
 {  
   private double amount;  
   private Keypad keypad;  
   private DepositSlot depositSlot;  
   private final static int batal = 0;  
   public Setoran(int userAccountNumber, Screen atmScreen, BankDatabase atmBankDatabase, Keypad atmKeypad, DepositSlot atmDepositSlot)  
   {  
     super(userAccountNumber,atmScreen,atmBankDatabase);  
     keypad=atmKeypad;  
     depositSlot=atmDepositSlot;  
   }  
   @Override  
   public void execute()  
   {  
     BankDatabase bankDatabase = getBankDatabase();  
     Screen screen = getScreen();   
     amount = promptForDepositAmount();   
     if ( amount != batal )  
     {  
       screen.displayMessage("\nSilahkan masukkan uang " );  
       screen.displayAmount( amount );  
       screen.displayMessageLine( "." );  
       boolean envelopeReceived = depositSlot.isEnvelopeReceived();  
       if(envelopeReceived)  
       {  
         screen.displayMessageLine("\nUang telah di setorkan");  
         bankDatabase.credit(getAccountNumber(),amount);  
       }  
       else  
       screen.displayMessageLine("\nUang Belum Masuk, Transaksi Dibatalkan");  
     }  
     else  
     screen.displayMessageLine("\nTransaksi Batal");  
   }  
   private double promptForDepositAmount()  
   {  
     Screen screen = getScreen();  
     screen.displayMessage("\nMasukkan nilai Setoran, atau 0 untuk Batal");  
     int input = keypad.getInput();  
     if ( input == batal )  
     return batal;  
     else  
     {  
       return ( double ) input;  
     }  
   }  
 }  

Senin, 10 April 2017

Perintah Java (Scanner dan Library)

Scanner
Scanner merupakan perintah untuk membuat objek atau menginisialisasi object yang diinginkan pengguna atau yang diinputkan pengguna.

contoh:

  public class Account   
  {   
   private double Balance;   
   public Account(double initialBalance)   
   {   
    if(initialBalance>0.0)   
     Balance=initialBalance;   
   }   
   public void credit(double amount)   
   {   
    Balance=Balance+amount;   
   }   
   public double getBalance()   
   {   
    return Balance;   
   }   
  }   

  import java.util.Scanner;   
  public class AccountTest   
  {   
   public static void main(String[] args)   
   {   
    Account account1=new Account(50.00);   
    Account account2=new Account(-7.53);   
    System.out.printf("account1 balance: $%.2f\n", account1.getBalance());   
    System.out.printf("account2 balance: $%.2f\n\n", account2.getBalance());   
    Scanner input=new Scanner(System.in);   
    double depositAmount;   
    System.out.print("Enter deposit amount for account1: ");   
    depositAmount=input.nextDouble();   
    System.out.printf("\nadding %.2f to account1 balance\n\n",   
     depositAmount );   
    account1.credit(depositAmount);   
    System.out.printf("Enter deposit amount for account2: ");   
    depositAmount=input.nextDouble();   
    System.out.printf("\nadding %.2f to account2 balance\n\n",   
     depositAmount);   
    account2.credit(depositAmount);   
    System.out.printf("account1 balance: $%.2f\n",   
     account1.getBalance());   
    System.out.printf("account2 balance: $%.2f\n",   
     account2.getBalance());   
   }   
  }   

Library

Library adalah sekumpulan package atau koleksi kelas yang telah disediakan oleh Java. Untuk menggunakan Library dalam java kita menggunakan syntax import. Syntax import digunakan untuk mengimport/memasukan method-method dari class/library yang lain, sehingga method tersebut dapat digunakan pada class yang memanggilnya. Fungsi ini harus diletakan pada baris awal program.

salah satu contoh yang sering digunakan yaitu javax.swing (berisi kelas-kelas untuk membentuk aplikasi GUI)

1. Dialog Box

  import javax.swing.JOptionPane;   
  public class Dialog1   
  {   
   public static void main (String[] args)   
   {   
    JOptionPane.showMessageDialog(null,"Welcome to java");   
   }   
  }   

2. Name Dialog Box

 import javax.swing.JOptionPane;   
  public class NameDialog   
  {   
   public static void main(String[] args)   
   {   
    String name=JOptionPane.showInputDialog("What is your name?");   
    String message=String.format("Welcome, %s, to Java Programming!", name);   
    JOptionPane.showMessageDialog(null, message);   
   }   
  }   

3. Memodifikasi Account Test mengguanakan Dialog Box

 import javax.swing.JOptionPane;   
  public class AccountTestDialogBox   
  {   
   public static void main (String[] args)   
   {   
    Account account1 = new Account (50.00);   
    Account account2 = new Account (-7.53);   
    String output1 = String.format ("account1 balance : $%.2f\naccount2 balance : $%.2f\n\n", account1.getBalance(), account2.getBalance());   
    JOptionPane.showMessageDialog (null, output1);   
    String input1 = JOptionPane.showInputDialog ("Enter deposit amount for account1 : ");   
    Double input1a = Double.parseDouble (input1);   
    account1.credit (input1a);    
    String message1 = String.format ("\nadding %s to account1 balance\n\n", input1);   
    JOptionPane.showMessageDialog (null, message1);   
    String output2 = String.format ("account1 balance : $%.2f\naccount2 balance : $%.2f\n\n", account1.getBalance(), account2.getBalance());   
    JOptionPane.showMessageDialog (null, output2);   
    String input2 = JOptionPane.showInputDialog ("Enter deposit amount for account2 : ");   
    Double input2a = Double.parseDouble (input2);   
    account2.credit (input2a);   
    String message2 = String.format ("\nadding %s to account2 balance\n\n", input2);   
    JOptionPane.showMessageDialog (null, message2);   
    String output3 = String.format ("account1 balance : $%.2f\naccount2 balance : $%.2f\n", account1.getBalance(), account2.getBalance());   
    JOptionPane.showMessageDialog (null, output3);   
   }   
  }   

Output tidak diberikan, agar pembaca dapat mencobanya sendiri.
sekian dan terima kasih, semoga bermanfaat

Overloading dan Overriding

Program-program Menghitung Bangun Datar

1.Persegi Panjang

 import java.util.Scanner;  
 public class persegi_panjang  
 {  
   public static void main(String [] args)  
   {  
     int panjang,lebar,luas,keliling;  
     Scanner S = new Scanner (System.in);  
     System.out.print("Masukan Panjang : ");  
       panjang=S.nextInt();  
     System.out.print("Masukan Lebar : ");  
       lebar=S.nextInt();  
       luas=(panjang*lebar);  
       keliling=2*(panjang+lebar);  
     System.out.println("Luas Persegi Panjang = "+luas);  
     System.out.println("Keliling Persegi Panjang = "+keliling);  
   }  
 }  

Hasil :



2. Segitiga

 import java.util.Scanner;  
 public class segitiga  
 {  
   public static void main(String[]args)  
   {  
     int alas,tinggi,luas,sisimiring1,sisimiring2,keliling;  
     Scanner S=new Scanner(System.in);  
     System.out.print("Masukkan Alas : ");  
     alas=S.nextInt();  
     System.out.print("Masukkan Tinggi : ");  
     tinggi=S.nextInt();  
     System.out.print("Masukkan Sisi Miring-1 : ");  
     sisimiring1=S.nextInt();  
     System.out.print("Masukkan Sisi Miring-2 : ");  
     sisimiring2=S.nextInt();  
     luas=(alas*tinggi)/2;  
     keliling=sisimiring1+sisimiring2+alas;  
     System.out.println("Luas Segitiga = "+luas);  
     System.out.println("Keliling Segitiga = "+keliling);  
   }  
 }  

Hasil:


3. Persegi

 import java.util.Scanner;  
 public class bujur_sangkar  
 {  
   public static void main(String []args)  
   {  
     int sisi,luas,keliling;  
     Scanner O=new Scanner (System.in);  
     System.out.print("Masukkan sisi : ");  
     sisi=O.nextInt();  
     luas=(sisi*sisi);  
     System.out.println("Luas Bujur Sangkar = "+luas);  
     keliling=(4*sisi);  
     System.out.println("Keliling Bujur Sangkar = "+keliling);  
   }  
 }  

Hasil:



4. Lingkaran

 import java.util.Scanner;  
 public class lingkaran  
 {  
   public static void main(String [] args)  
   {  
     double phi=3.14;  
     double r,luas,keliling;  
     Scanner I=new Scanner (System.in);  
     System.out.print("Masukkan Jari-jari Lingkaran : ");  
     r=I.nextInt();  
         luas=phi*r*r;  
         keliling=2*phi*r;  
     System.out.println("Luas Lingkaran = "+luas);  
     System.out.println("Keliling Lingkaran = "+keliling);  
   }  
 }  

Hasil:

Senin, 03 April 2017

Mesin Antrian BANK



Simulasi Mesin Antrian Bank

Bank merupakan tempat berkumpulnya masyarakat untuk menyimpan atau pun mengambil uang. Sebelum melakukan transaksi biasanya nasabah diminta mengambil nomor antrian di mesin pencetak antrian.


Mesin pencetak antrian bank adalah system yang berfungsi untuk mengelola nomor urut antrian nasabah bank. Mesin ini mempunyai fungsi, mempermudah teller dan customer service, atau layanan lain pada bank tersebut, memanggil nasabah dan melayani sesuai dengan keperluan nasabah, pada masing-masing layanan.




Mesin Antrian Bank

Input : jenis layanan








Output : Nomor antrian, Jenis layanan dan tanggal.



Implementasinya :

1. Class Antrian



2. Class Test


hasil Program :

Saat memilih pilihan 1.Teller

 Saat memilih pilihan 2.Costumer Service


Selasa, 07 Maret 2017

composition, enumerations and static class


1. Composition
Composition adalah dimana hubungan suatu object bergantung dengan objek lainnya.

program 8.7

/**
 * Write a description of class Date here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Date
    {
      private int month;
      private int day;
      private int year;
      private static final int[] daysPerMonth = 
      { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
      public Date( int theMonth, int theDay, int theYear )
        {
          month = checkMonth( theMonth );
          year = theYear;
          day = checkDay( theDay );
          System.out.printf("Date object constructor for date %s\n", this );
        }
    private int checkMonth( int testMonth )
        {
          if ( testMonth > 0 && testMonth <= 12 )
          return testMonth;
        
          else
          throw new IllegalArgumentException( "month must be 1-12" );
        }
    private int checkDay( int testDay )
       {
        if ( testDay > 0 && testDay <= daysPerMonth[ month ] )
        return testDay;
        if ( month == 2 && testDay == 29 && ( year % 400 == 0 ||
        ( year % 4 == 0 && year % 100 != 0 ) ) )
        return testDay;
        throw new IllegalArgumentException
        ("day out-of-range for the specified month and year" );
       }
    public String toString()
    {
        return String.format( "%d/%d/%d", month, day, year );
    }
}


program 8.8

/**
 * Write a description of class Employee here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Employee
{
    private String firstName;
    private String lastName;
    private Date birthDate;
    private Date hireDate;
   public Employee( String first, String last, Date dateOfBirth,
   Date dateOfHire )
   {
      firstName = first;
      lastName = last;
      birthDate = dateOfBirth;
      hireDate = dateOfHire;
   }
   public String toString()
    {
        return String.format( "%s, %s Hired: %s Birthday: %s",
        lastName, firstName, hireDate, birthDate );
    }
}



program 8.9

/**
 * Write a description of class EmployeeTest here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class EmployeeTest
{
    public static void main( String[] args )
    {
        Date birth = new Date( 7, 24, 1949 );
        Date hire = new Date( 3, 12, 1988 );
        Employee employee = new Employee( "Bob", "Blue", birth, hire );
        System.out.println( employee );
    }
 }



2. Enumerations
Enumeration adalah kumpulan nama-nama konstant yang didefinisikan sebagai tipe data baru. Sebuah objek bertipe Enumeration dapat mengakses isi dari kumpulan nilai pada enumeration.
program 8.10

/**
 * Write a description of class Book here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public enum Book
{
    JHTP( "Java How to Program", "2012" ),
    CHTP( "C How to Program", "2007" ),
    IW3HTP( "Internet & World Wide Web How to Program", "2008" ),
    CPPHTP( "C++ How to Program", "2012" ),
    VBHTP( "Visual Basic 2010 How to Program", "2011" ),
    CSHARPHTP( "Visual C# 2010 How to Program", "2011" );
    private final String title;
    private final String copyrightYear;
    Book( String bookTitle, String year )
    {
        title = bookTitle;
        copyrightYear = year;
    }
    public String getTitle()
    {
        return title;
    }
    public String getCopyrightYear()
    {
        return copyrightYear;
    } // end method getCopyrightYear
}


program 8.11

/**
 * Write a description of class EnumTest here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
import java.util.EnumSet;
    public class EnumTest
    {
        public static void main( String[] args )
        {
           System.out.println( "All books:\n" );
           for( Book book : Book.values() )
            System.out.printf("%-10s%-45s%s\n", book,
            book.getTitle(), book.getCopyrightYear());
       System.out.println("\nDisplay a range of enum constants:\n" );
       for( Book book : EnumSet.range (Book.JHTP, Book.CPPHTP ))
            System.out.printf("%-10s%-45s%s\n", book,
            book.getTitle(), book.getCopyrightYear());
        }
    }


3. Static Class Members
Apabila sebuah variabel didefinisikan static didalam sebuah class, maka untuk memanggil variabel tersebut kita tidak perlu membuat objek dari class tersebut, namun langsung bisa memanggil variabel tersebut dari nama class dimana dia dideklarasikan.


program 8.12

/**
 * Write a description of class Employee2 here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */

public class Employee2
{
    private String firstName;
    private String lastName;
    private static int count = 0;
    public Employee2( String first, String last )
        {
            firstName = first;
            lastName = last;
            ++count;

            System.out.printf( "Employee constructor: %s %s; count = %d\n",
            firstName, lastName, count );
        }
    public String getFirstName()
    {
    return firstName;
    }
    public String getLastName()
    {
        return lastName;
    }

    public static int getCount()
    {
        return count;
    }
}



program 8.13

/**
 * Write a description of class Employee2Test here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Employee2Test
{
    public static void main (String[] args)
    {
        System.out.printf("Employees before instantiation: %d\n",Employee2.getCount ());
    
        Employee2 e1= new Employee ("Susan", "Baker");
        Employee2 e2= new Employee ("Bob", "Blue");
    
        System.out.println( "\nEmployees after instantiation: " );
        System.out.printf( "via e1.getCount(): %d\n",e1.getCount() );
        System.out.printf( "via e2.getCount(): %d\n",e2.getCount() );
        System.out.printf( "via Employee.getCount(): %d\n",Employee2.getCount());

        System.out.printf( "\nEmployee 1: %s %s\nEmployee 2: %s %s\n",
        e1.getFirstName(), e1.getLastName(),
        e2.getFirstName(), e2.getLastName() );
        e1= null;
        e2 = null;
    }
}