Kamis, 27 Oktober 2016

PBO - Clock Display

  

          Kali ini saya akan membikin suatu program dengan java yang akan menampilkan waktu yang terdiri dari jam dan menit. Untuk satuan jam memiliki nilai maksimal 23 dan satuan menit memiliki nilai maksimal 59. Problem untuk mendisplay Jam ini dibantu oleh beberapa subproblem yang merupakan suatu kelas-kelas. Kelas-kelas tersebut yaitu NumberDisplay, ClockDisplay, dan TestClockDisplay. 


1. Class NumberDisplay
  1. public class NumberDisplay
  2. {
  3.     private int limit;
  4.     private int value;
  5.    
  6.     public NumberDisplay(int rollOverLimit)
  7.     {
  8.         limit = rollOverLimit;
  9.         value = 0;
  10.     }
  11.     public int getValue()
  12.     {
  13.         return value;
  14.     }
  15.    
  16.    
  17.    
  18.     public String getDisplayValue()
  19.     {
  20.         if(value < 10)
  21.         {
  22.             return "0" + value;
  23.         }
  24.         else
  25.         {
  26.             return "" + value;
  27.         }
  28.     }
  29.    public void setValue(int replacementValue)
  30.     {
  31.         if((replacementValue >= 0) && (replacementValue < limit))
  32.         {
  33.             value = replacementValue;
  34.         }
  35.     }
  36.     public void increment()
  37.     {
  38.         value = (value + 1) % limit;
  39.     }
  40. }

2. Class ClockDisplay

  1. public class ClockDisplay {
  2.    private NumberDisplay hours;
  3.    private NumberDisplay minutes;
  4.    private String displayString;
  5.    
  6.    public ClockDisplay()
  7.    {
  8.        hours = new NumberDisplay(24);
  9.        minutes = new NumberDisplay(60);
  10.        updateDisplay();
  11.    
  12.    }
  13.    
  14.    public ClockDisplay(int hour, int minute)
  15.    {
  16.        hours = new NumberDisplay(24);
  17.        minutes = new NumberDisplay(60);
  18.        setTime(hour, minute);
  19.        
  20.    }
  21.    
  22.    public void timeTick()
  23.    {
  24.        minutes.increment();
  25.        if(minutes.getValue() == 0)
  26.        {
  27.            hours.increment();
  28.            
  29.        }
  30.        updateDisplay();
  31.    }
  32.    
  33.    public void setTime(int hour, int minute)
  34.    {
  35.        hours.setValue(hour);
  36.        minutes.setValue(minute);
  37.        updateDisplay();
  38.    }
  39.    
  40.    public String getTime()
  41.    {
  42.        return displayString;
  43.    }
  44.    
  45.    private void updateDisplay()
  46.    {
  47.        displayString = hours.getDisplayValue() + ":" + minutes.getDisplayValue();
  48.    }
  49.    
  50. }

3. Class TestClockDisplay
  1. public class TestClockDisplay
  2. {
  3.     public TestClockDisplay()
  4.     {
  5.     }
  6.     public void test()
  7.     {
  8.      
  9.         ClockDisplay clock = new ClockDisplay();
  10.        
  11.         clock.setTime(21,59);
  12.         System.out.println(clock.getTime());
  13.        
  14.        
  15.         clock.setTime(12,39);
  16.         System.out.println(clock.getTime());
  17.        
  18.         clock.setTime(14,89);
  19.         System.out.println(clock.getTime());
  20.        
  21.        
  22.      
  23.     }
  24. }



Bentuk hubungan antara ketiganya seperti gambar di bawah ini



Dan tampilan jika di running programnya akan seperti gambar di bawah ini. Saya menginput pada TestClockDisplay saya tiga waktu, yaitu:
21:59
12:39
14:89
Dan hasil outputnya:




Djohan Prabowo
5115100067

Kamis, 13 Oktober 2016

3 SourceCode Java part 2

Pada kali ini saya akan membuat 3 program java lagi dengan IDE BlueJ. 3 program yaitu Looping with while, check even or odd numberFind power
1. Looping with while
Gambar 1. Source code loopwithwhile

Source code Loop with while ini dapat dilihat di http://ilang.in/loopwithwhile
Penjelasan
Program akan melakukan looping dengan while dimana program akan memprint nilai x mulai dari 10 sampai 20. Syntax while(kondisi tertentu). Program while sangat rentan dengan overlooping jadi hati-hati menggunakan while.
Gambar 2. Output dari program loopwithwhile


2. check even or odd number


Gambar 3.  Source code checkevenodd
Source code check even or odd number ini dapat dilihat di http://ilang.in/checkevenodd
Penjelasan
Program akan mengecek bilangan dari 1 sampai 10 apakah bilangan ganjil atau genap dengan mengecek bil mod 2. Program menggunakan while untuk looping.
Gambar 4. Output dari program checkevenodd

3. Find power
Gambar 5. Source code findpower
Source code Find power ini dapat dilihat di http://ilang.in/findpower
Penjelasan
Program akan mencari hasil dari 10^5 dengan menggunakan syntax Math.pow(x,y) di mana x dan y pada test case adalah 10 dan 5. Jangan lupa pada mendeclare import java.lang.* untuk menggunakan math.pow
Gambar 6. Hasil dari program findpower

Kamis, 06 Oktober 2016

Ticket Machine

Ticket Machine adalah sebuah mesin seperti ATM, yang berfungsi melayani penjualan tiket kereta api dari satu tujuan ke tujuan yang lain. Di dalam Ticket Machine ada sebuah program atau perangkat lunak yang mengatur harga tiket di tiap tujuan, mengatur kembalian uang, dan juga mencetak receipt sebagai bukti pembelian tiket.
Pada kali ini saya akan membuat contoh naive-ticket machine sederhana tentang pembelian tiket kereta api dengan IDE BlueJ. Code dapat dilihat di sini .

2 Test Case yang saya coba di virtual machine saya :
1. Disini saya input getPrice() = 80000 dan insertMoney() = 170000 dan jika klik printTicket() akan menampilkan output seperti di bawah ini
2. Kedua saya input getPrice() = 80000 dan insertMoney() = 70000 dan jika klik printTicket() akan menampilkan output seperti di bawah ini

3 SourceCode Java part 1

Pada kali ini saya akan mulai merealisasikan pengerjaan 100 list program, sedikit demi sedikit lama-lama jadi bukit. Jadi saya akan mulai menuliskan 3 program yaitu helloworld, loopwithfor, ifelse.

1. Helloworld












Gambar 1. Source Code Helloworld
Source code Helloworld ini dapat dilihat di ilang.in/helloworld
Penjelasan :
-Pada baris 1 program membuat class yang bernama Helloworld yang bersifat public atau dapat diakses oleh class lain.
-Pada baris 3 memiliki pengertian bahwa method ini dapat diakses oleh semua orang dan tidak punya nilai kembalian
-Perbedaan syntax baris 5 dan 6 System.out.println memiliki arti setelah mencetak Hello World !!! maka program secara otomatis akan memberikan enter, sedangkan System.out.println tidak memberikan enter, sehingga bila ada sesuatu yang baru akan ditampilkan akan bersambung dengan outputan sebelumnya.
Gambar 2. Output program coba2
2. Loopwithfor

Gambar 3. Source code Loopwithfor

Source code Loopwithfor ini dapat dilihat di http://ilang.in/loopwithfor
Penjelasan
Program ini akan membuat perulangan sebanyak 20 kali. Dan output yang dihasilkan adalah "perulangan ke i". Syntax untuk for adalah for(mula-mula;syarat atau range;kondisi). Dimana pada bagian pertama kita harus memulai looping dari angka berapa, pada bagian kedua range perulangan sampai berapa, bagian ketiga kita seperti mengupdate kondisi terbaru dari i. Pada baris ke 6 program akan mencetak "perulangan ke i"
Gambar 4. Output dari program Loopwithfor
3. Ifelse
Gambar 5. Source code ifelse

Source code Ifelse ini dapat dilihat di http://ilang.in/ifelse
Penjelasan
Program ini akan membuat perhitungan aritmatika sederhana dengan memberikan 2 inputan dan 1 operator di mana cara kerjanya menggunakan if else program akan menempatkan di mana posisi operator yang benar. Program akan mengecek mulai dari +,-,*,/, dan selain 4 operator itu. Cara membuat inputan yaitu kita mengirimkan library dari scanner dengan syntax import java.util.Scanner pada awal program. Setelah itu pada baris 7 syntax untuk memberi perintah masukan adalah Scanner (nama_perintah)=new Scanner(System.in); .Untuk masukan berupa integer dengan variabel = scan.nextInt(); . Sedangkan untuk char dengan a= scan.next().charAt(0); .Untuk if else seperti syntax untuk program berbahasa C. Pada else if (a == '/') karena kemungkinan hasilnya tidak bulat maka saya akan mengcopykan nilai dari bil1 dan bil2 ke d dan e yang memilik type double. Karena integer hanya menyimpan bilangan bulat.

Gambar 6. Output dari program ifelse