Kamis, 26 Oktober 2017

PBO: UTS "GTO"


Rancangan Class dan Penjelasan:


  • TempelKartu
    • Class ini berfungsi sebagai perantara antara user dan database.
  • TotalAkun
    • Class ini berfungsi sebagai pemroses data untuk single user.
  • GTODatabase
    • Class ini berfungsi sebagai pemanggil proses yang ada di TotalAkun.
  • Keypad
    • Class ini berfungsi sebagai pengatur segala inputan.
  • Layar
    • Class ini berfungsi sebagai penampil berbagai hasil yang di outputkan oleh system.
  • GTO
    • Class ini adalah pengatur utama dalam penerapan sistem GTO.
  • RunProgram
    • Class ini sebagai pemicu program utama.

Rancangan Output:

Output yang dihasilkan dari program ini adalah:
  • Jika saldo>=Harga e-toll:
    • nama perusahaan
    • tanggal transaksi
    • harga e-toll
    • sisa saldo e-toll


  • Jika saldo<Harga e-toll:
    • Output string "Saldo tidak mencukupi"





Codingan:


/**
* Write a description of class GTO here.
*
* @author (your name)
* @version (a version number or a date)
*/
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
public class GTO
{
// instance variables - replace the example below with your own
private boolean userSession;
private int currentUserId;
private TempelKartu tempelKartu;
private Layar layar;
private Keypad keypad;
private String namaPerusahaan;
private String tanggalNow;
private int moneyGTO;
/**
* Constructor for objects of class GTO
*/
public GTO()
{
// initialise instance variables
userSession = false;
currentUserId = 0;
tempelKartu = new TempelKartu();
layar = new Layar();
keypad = new Keypad();
namaPerusahaan = "TRANS MARGA JATENG";
moneyGTO = 7500;
}
public void proses()
{
while(!userSession){
autentifikasi();
}
prosesTransaksi();
userSession = false;
currentUserId = 0;
}
public void autentifikasi(){
layar.pesan("Masukan UserId: ");
int kartuUserID = keypad.getInput();
userSession = tempelKartu.changeGTOStatus(kartuUserID);
if(userSession){
currentUserId = kartuUserID;
}
}
public void prosesTransaksi(){
int saldo = tempelKartu.getMoneyCard(currentUserId);
if (saldo>=moneyGTO){
tempelKartu.callBayar(currentUserId,moneyGTO);
printStruk();
}
else{
layar.pesanEnter("Saldo Tidak Mencukupi");
}
}
public void printStruk(){
DateFormat formatDate = new SimpleDateFormat("dd/MM/yyyy H:mm:ss");
Date date = new Date();
String timeStamp = formatDate.format(date);
int sisaUang = tempelKartu.getMoneyCard(currentUserId);
layar.pesanEnter(namaPerusahaan);
layar.pesanEnter(timeStamp);
layar.pesan("Harga: ");
layar.pesanUang(moneyGTO);
layar.pesan("\nSisa Saldo: ");
layar.pesanUang(sisaUang);
}
}
view raw GTO.java hosted with ❤ by GitHub
/**
* Write a description of class GTODatabase here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class GTODatabase
{
// instance variables - replace the example below with your own
private TotalAkun[] akunUser;
/**
* Constructor for objects of class GTODatabase
*/
public GTODatabase()
{
// initialise instance variables
akunUser = new TotalAkun[2];
akunUser[0] = new TotalAkun(123456, 2000, "Orang B");
akunUser[1] = new TotalAkun(248350, 100000, "Aguel Satria Wijaya");
}
/**
* An example of a method - replace this comment with your own
*
* @param y a sample parameter for a method
* @return the sum of x and y
*/
public boolean autentifikasi(int idKartu)
{
for(TotalAkun akunEcer: akunUser){
if (akunEcer.getId() == idKartu) return true;
}
return false;
}
private TotalAkun getID(int akunID){
// loop through accounts searching for matching account number
for(TotalAkun akunEcer : akunUser){
// return current account if match found
if(akunEcer.getId() == akunID) return akunEcer;
}
return null; // if no matching account was found, return null
}
public void bayarTol(int userId, int amount){
getID(userId).bayarTol(amount);
}
public int getMoney(int userId){
return getID(userId).getMoney();
}
public String getNama(int userId){
return getID(userId).getNama();
}
}
import java.util.Scanner;
public class Keypad{
private Scanner input;
public Keypad(){
input = new Scanner(System.in);
}
public int getInput(){
return input.nextInt();
}
}
view raw Keypad.java hosted with ❤ by GitHub
/**
* Write a description of class Struk here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Layar
{
/**
* An example of a method - replace this comment with your own
*
* @param y a sample parameter for a method
* @return the sum of x and y
*/
public void pesan(String message){
System.out.print(message);
}
public void pesanEnter(String message){
System.out.println(message);
}
public void pesanUang(int amount){
System.out.printf("Rp. %d",amount);
}
}
view raw Layar.java hosted with ❤ by GitHub
/**
* Write a description of class runProgram here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class RunProgram
{
public static void main(String[] args)
{
GTO playGTO = new GTO();
playGTO.proses();
}
}
view raw RunProgram.java hosted with ❤ by GitHub
/**
* Write a description of class TempelKartu here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class TempelKartu
{
// instance variables - replace the example below with your own
private GTODatabase gtoDatabase;
public TempelKartu()
{
// initialise instance variables
gtoDatabase = new GTODatabase();
}
/**
* An example of a method - replace this comment with your own
*
* @param y a sample parameter for a method
* @return the sum of x and y
*/
public boolean changeGTOStatus(int userID)
{
boolean status = gtoDatabase.autentifikasi(userID);
return status;
}
public void callBayar(int userId, int amount){
gtoDatabase.bayarTol(userId,amount);
}
public int getMoneyCard(int userId)
{
return gtoDatabase.getMoney(userId);
}
public String getNamaCard(int userId){
return gtoDatabase.getNama(userId);
}
}
/**
* Write a description of class TotalAkun here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class TotalAkun
{
private int userID;
private int money;
private String nama;
public TotalAkun(int userId, int moneyId, String namaId){
userID = userId;
money = moneyId;
nama = namaId;
}
public int getMoney(){
return money;
}
public void saveMoney(int amount){
money = amount;
}
public String getNama(){
return nama;
}
public int getId(){
return userID;
}
public void bayarTol(int nominal){
money = money - nominal;
}
}
view raw TotalAkun hosted with ❤ by GitHub

Kamis, 19 Oktober 2017

PBO: OOP dalam mesin ATM

  1. Class ATMCaseStudy
    1. Class ATM
      1. Class Screen
        1. Class BalanceInquiry
          1. Class Transaction
            1. Class Deposit
              1. Class Withdrawal
                1. Class Account
                  1. Class BackDatabase
                    1. Class Keypad
                      1. Class CashDispenser
                        1. Class DepositSlot

                          Gambar Diagram


                          Output


                          Selasa, 10 Oktober 2017

                          PBO: Mengenal Overloading dan Overriding

                          Skema Besar Semua Program:


                          • Program Siswa
                            • Class Student

                            •  Class Siswa (main)
                            • Output

                          • Program Lingkaran
                            • Class Circle
                            • Class Lingakaran (main)
                            • Output

                          • Program Binatang
                            • Class Mamalia
                            • Class Binatang
                            • Class PenggunaanOverriding
                            • Output


                          • Program Gaji 
                            • Class Dosen
                            • Class Staf
                            • Class Pegawai
                            • Class DaftarGaji
                            • ProgramUtama
                             
                            • Output