Contoh Program Java Mesin Tiket

Program java : mesin tiket ini merupakan program sederhana tentang penggunaan OOP dan sifat2 nya.Disini saya mencontohkan bagaimana penggunaan try catch dalam java,penggunaan constructor dan juga contoh perulangan dan percabangan sederhana.Terdapat dua class disini,class ticketing untuk perhitungan penyimpanan jumlah tiket balance dll,dan juga machineticket yang memuat method main untuk menjalankan program
Dibawah ini merupakan Code lengkap nya.



 /**  
  * Class to save balance,ticket price and total amount of money the machine collected  
  *   
  * @author Adhityairvan   
  * @version 0.1  
  */  
 public class Ticketing  
 {  
   private int price,balance,total;  
   public Ticketing ( int pricing )  
   {  
     price = pricing;  
     balance = 0;  
     total = 0;  
     //Constructor method  
   }  
   public int getTotal ()  
   {  
     return total;//return the total ticket sold  
   }  
   public int getBalance ()  
   {  
     return balance;//return the balance on the mchine  
   }  
   public int getPrice ()  
   {  
     return price;//return the price of 1 ticket  
   }  
   public void insertMoney (int amount)  
   {  
     balance = balance + amount;//method when inserting money  
   }  
   public void buyTicket (int howmany)  
   {  
     if ( howmany * price > balance )  
     {  
       throw new IllegalArgumentException ( "Not enough Balance in your account!" );  
       //exception if the balance is not enough for buying ticket  
     }  
     else  
     {  
       printTicket(howmany);  
       balance = balance - (howmany * price);  
       total = total + (howmany * price);  
     }  
   }  
   private void printTicket( int howmany )  
   {  
     for ( int i = 0 ; i < howmany ; i++ )  
     {  
       System.out.printf ("## TICKET ##\n");  
     }  
     //simulates printing ticket  
   }  
 }  
 /**  
  * Main class to implement ticketing class  
  *   
  * @author Adhityairvan  
  * @version 0.1  
  */  
 import java.util.Scanner;  
 public class MachineTicket  
 {  
   public static int main()  
   {  
     int menu,money,ammount;  
     Ticketing machine1 = new Ticketing ( 1500 );  
     //Default price of 1 ticket  
     Scanner scanf = new Scanner ( System.in );  
     printf( "Harga ticket adalah Rp 1.500,-" );  
     while (true)  
     {  
       printf("1.Input money\n2.Buy Ticket\n3.Check balance\n4.Exit\n");  
       menu = scanf.nextInt();  
       switch(menu)  
       {  
         case 1:  
         printf("Insert your money");  
         money = scanf.nextInt();  
         machine1.insertMoney(money);//insert money  
         break;  
         case 2:  
         printf("Enter the ammount of ticket you want");  
         ammount = scanf.nextInt();  
         try  
         {  
           machine1.buyTicket ( ammount );  
         }  
         catch ( IllegalArgumentException e )  
         {  
           System.out.printf( " \nError ! %s\n ",e.getMessage() );  
         }//use try and catch to catch error if balance is not suficient  
         break;  
         case 3:  
         System.out.printf( "Your Balance : %02d\n",machine1.getBalance() );  
         //print the balance  
         break;  
         case 4:  
         return 0;  
         case 9:  
         System.out.printf("Total Amount in this machine is %02d\n",machine1.getTotal() );  
         //print total sold ticket  
         break;  
       }  
     }  
   }  
   private static void printf ( String a )  
   {  
     System.out.printf( "%s\n" , a);//just extra method to shorten println  
   }  
 }  

0 comments:

Mendalami Pemrograman Java

Mendalami Bahasa Pemrograman Java.Pada artikel kali ini akan sedikit dijelaskan mengenai OOP dalam java,contoh program serta contoh error yang bisa terjad

  1. Access level Control
Setiap Class, atribut,dan method pada java memiliki beberapa kontrol akses nya.Hak akses kontrol ini di tulis secara explisit di awal pendeklarasian Class,method dsb.Access nya terbagi menjadi, Public,Private, dan juga Protected.Pada level public,setiap anggota dari sebuah class bisa di akses oleh seluruh class lain dalam program tersebut.Berbeda dengan Private,jika sebuah method atau atribute bertipe private maka hal tersebut hanya bisa di akses oleh method atau code dalam class yang sama dengan objek tersebut.Pada Protected,atribute dan method yang protected hanya bisa diakses oleh class yang sama atau anak dari class tersebut (subclass)
Berikut contoh program yang akan menghasilkan error karena sebuah class mencoba mengakses atribute private dari class lain.


/**
 * class time1 merubah input menjadi format waktu
 * 
 * @author Adhityairvan
 * @version 0.1
 */
public class time1
{
    private int jam,menit,detik;
    
    public void settime(int h,int m,int s){
        if((h>=0 && h<24) && (m>=0 && m<60) && (s>=0 && s<60)){
            jam = h;
            menit = m;
            detik = s;
        }
        else {
            throw new IllegalArgumentException("The time you set is out of range!");
        }
    }
    
    public String convertstring(){
        return String.format( "%02d:%02d:%02d", jam, menit, detik);
    }
    public String convertstandar(){
        if(jam > 12){
            return String.format( "%02d:%02d:%02d PM", jam - 12, menit, detik);
        }
        else {
            return String.format( "%02d:%02d:%02d AM", jam , menit, detik);
        }
    }
}


/**
 * Code program contoh penggunaan access level
 * 
 * @author Adhityairvan 
 * @version 0.1
 */
public class accesslevel
{
   public void main()
   {
       time1 time = new time1();
       time.jam = 8; //Akan menghasilkan error
       time.menit = 32 ; //Akan menghasilkan error
       time.detik = 6 ; //akan menghasilkan error
       /*error yang terjadi karena method main pada class 
       accesslevel berusaha mengakses atribute private pada class Time1*/
    }
}


     2.Mengakses Atribut dalam Class yang sama
Dalam java,terdapat keyword this untuk mengakses elemen dari class yang sama.Hal ini berguna agar tidak terjadi kerancuan dan kesalahan logika oleh programmer dikarenakan penamaan yang membingungkan.
Berikut adalah contoh penggunaan keyword this dalam Java

 /**  
  * Class yang berisi method main() dalam program percobaan This keyword  
  *   
  * @author (your name)   
  * @version (a version number or a date)  
  */  
 public class ThisTest  
 {  
   public static void main()  
   {  
     SimpleTime time = new SimpleTime(12,30,15);  
     System.out.println ( time.buildString() );  
   }  
 }  
 /**  
  * Class Utama untuk memproses input menjadi format string waktu  
  *   
  * @author (your name)   
  * @version (a version number or a date)  
  */  
 public class SimpleTime  
 {  
   private int hour;  
   private int minute;  
   private int second;  
   public SimpleTime ( int hour, int minute , int second )  
   {  
     //Constructor dalam class SimpleTime  
     this.hour = hour;  
     this.minute = minute;  
     this.second = second;  
     /*berarti mengisi atribute second dalam class simple   
     time dengan variable dari method constructor*/  
   }  
   public String buildString()  
   {  
     return String.format( "%24s: %s\n%24s: %s", "this.toUniversalString()",this.toUniversalString()   
     ,"toUniversalString()", toUniversalString() );  
   }  
   public String toUniversalString()  
   {  
     return String.format ( "%02d:%02d:%02d", this.hour, this.minute, this.second );  
   }  
 }  


     3.Overloading Constructor
Constructor merupakan method yang pertama dipanggil saat ktia mendeklarasikan sebuah object.Pada java,sebuah class bisa memiliki lebih dari satu constructor atau juga tidak ada constructor.Walaupun sebenarnya setiap class harus memiliki constructor namun jika kita tidak menuliskan constructor nya maka java akan secara otomatis membuat constructor pada class tersebut.Constructor dapat dibuat seperti menulis method biasa,namun ada syarat yang harus dipenuhi yaitu nama method constructor harus sama persis seperti class nya itu dan juga level access nya harus di set menjadi public.
Overloading constructor merupakan sebutan untuk membuat banyak constructor dalam class yang sama.Syarat yang harus dipenuhi adalah,setiap constructor harus memiliki parameter method yang berbeda.
Berikut adalah contoh program pengimplementasian overloading constructor

Class Time2
 /**  
  * Time2 class pengimplementasian overloading constructor  
  *   
  * @author adhityairvan   
  * @version 0.1  
  */  
 public class Time2  
 {  
   private int hour,minute,second;  
   public Time2()  
   {  
     this( 0,0,0);  
   }  
   public Time2(int h)  
   {  
     this (h , 0 ,0 );  
   }  
   public Time2 (int h, int m )  
   {  
     this (h , m , 0 );  
   }  
   public Time2 ( int h , int m , int s )  
   {  
     setTime ( h, m, s );  
   }  
   public Time2 ( Time2 time )  
   {  
     this ( time.getHour(), time.getMinute(), time.getSecond() );  
   }  
   public void setTime (int h, int m, int s )  
   {  
     setHour( h );  
     setMinute( m );  
     setSecond( s );  
   }  
   public void setHour ( int h )   
   {  
     if ( h>= 0 && h< 24 )  
       hour = h;  
     else  
       throw new IllegalArgumentException ( "hour must be 0-23" );  
   }  
   public void setMinute ( int m )   
   {  
     if ( m>= 0 && m< 60 )  
       minute = m ;  
     else  
       throw new IllegalArgumentException ( "Minute must be 0-59" );  
   }  
   public void setSecond ( int s )   
   {  
     if ( s>= 0 && s< 60 )  
       second = s ;  
     else  
       throw new IllegalArgumentException ( "second must be 0-59" );  
   }  
   public int getHour(){ return hour; }  
   public int getMinute() { return minute; }  
   public int getSecond() { return second; }  
   public String toUnversalString()  
   {  
     return String.format( "%02d:%02d:%02d", getHour(), getMinute(), getSecond() );  
   }  
   public String toString()  
   {  
     return String.format( "%d:%02d:%02d %s",( (getHour() == 0 || getHour() == 12) ? 1 : getHour() % 12 ), getMinute(), getSecond(), ( getHour() < 12 ? "AM" : "PM" ) );  
   }  
 }  

Class Time2Test


 /**  
  * Class utama yang memanggil class Time2  
  *   
  * @author adhityairvan   
  * @version 0.1  
  */  
 public class Time2Test  
 {  
   public static void main()  
   {  
     Time2 t1 = new Time2();  
     Time2 t2 = new Time2( 2 );  
     Time2 t3 = new Time2( 21 , 34 );  
     Time2 t4 = new Time2( 12, 25 , 42 );  
     Time2 t5 = new Time2( t4 );  
     System.out.println( "Constructrd with:\nt1: all arguments defaulted");  
     System.out.printf( "  %s\n",t1.toUniversalString() );  
     System.out.printf( "  %s\n",t1.toString() );  
     System.out.println( "Constructrd with:\nt2: minite and second arguments defaulted");  
     System.out.printf( "  %s\n",t2.toUniversalString() );  
     System.out.printf( "  %s\n",t2.toString() );  
     System.out.println( "Constructrd with:\nt3: second arguments defaulted");  
     System.out.printf( "  %s\n",t3.toUniversalString() );  
     System.out.printf( "  %s\n",t3.toString() );  
     System.out.println( "Constructrd with:\nt4: All argument filled");  
     System.out.printf( "  %s\n",t4.toUniversalString() );  
     System.out.printf( "  %s\n",t4.toString() );  
     System.out.println( "Constructrd with:\nt2: argument filled with t4");  
     System.out.printf( "  %s\n",t5.toUniversalString() );  
     System.out.printf( "  %s\n",t5.toString() );  
     try  
     {  
       Time2 t6 = new Time2( 25,74,99);  
     }  
     catch ( IllegalArgumentException e)  
     {  
       System.out.printf("\n Failed initializing t6: %s\n", e.getMessage() );  
     }  
   }  
 }  

Mohon maaf karena artikel kali ini cukup panjang dan bikin bingung :D bisa di coba sendiri kode yang udah saya tulis biar bisa lebih ngerti dan juga tips saya banyak2 nyoba dan praktek langsung dalam nulis program biar familiar sama syntax dan logika pemrograman nya.See u next time - irvan


0 comments:

Penggunaan Simple Input Output dalam Java

Input output dalam java bisa dilakukan dengan System.out dan juga Java.Util.Scanner.Penggunaan nya simple dan mudah dilakukan.Berikut ini adalah contoh inut dan output integer dan juga string.

0 comments:

Contoh Program Java

Contoh prgram java di bawah ini adalah contoh peng implementasian OOP pada bahasa pemrograman java.Program dibawah ini berguna untuk menghitung Luas balok dan segitiga.Terdapat dua class,yaitu class bangundatar yang berisi method untuk menghitung segitiga dan juga balok dan juga class yang berisi method main.


0 comments:

Konsep Pemrograman Berbasis Objek

Pemrograman Berbasis Object (PBO) atau disebut Object Oriented Programming (OOP) dalam bahasa inggris merupakan konsep pemrograman selain procedural oriented programing yang dimiliki oleh C dan bahasa pemrograman level rendah lain.Dalam PBO semua data dan fungsi dibungkus dalam class-class atau object-object. Setiap object dapat menerima pesan, memproses data, mengirim, menyimpan dan memanipulasi data. Beberapa object berinteraksi dengan saling memberikan informasi satu terhadap yang lainnya.

0 comments:

Copyright © 2013 Hackers Community