Senin, 12 November 2012

Jam_Dengan Menggunakan Trigonometri di JAVA

Jam analog, selalu menjadi pembuktian pribadi kalo aku bisa sebuah bahasa pemrograman baru. Dengan cuma mengandalkan logika dari matematika sederhana, "Trigonometri". Misalkan, derajat jarum jam merupakan hasil perbandingan dengan nilai kosinus dan sinus. Akhirnya, jadilah sebuah jam dengan menggunakan class dasar awt, frame, math, dan Calendar. Dengan pembuatan selama tiga hari ngotak-ngatik javadoc, saat masih buta java beberapa tahun lalu, akhirnya bisa mengerti dasar pemrograman OOP dari java.
Sebenarnya, program seperti ini selalu menjadi pemicu utama ketertarikan untuk belajar dan terus belajar, sayangnya entah kenapa sekarang kehilangan semua itu di saat sangat dibutuhkan untuk belajar hal baru. Juga buat teman-temanku yang sedang mengerjakan Tugas, semangat terus, seamuanya bisa kalo mau belajar, ///>>>


Source kodenya:

//Source:
import java.awt.*;
import java.awt.event.*;
import java.util.Calendar;
import java.util.Random;
public class Jam extends Frame {
private int PusatX,PusatY,xorR,xorG,xorB;
Random Rdm;
public Jam(){
super("Jam_Dengan menggunakan Trigonometri_Created By: Faisal Amin");
setLayout(new FlowLayout());
setSize(800,600);
addWindowListener(new WindowListener(){
public void windowActivated(WindowEvent e) {}
public void windowClosed(WindowEvent e) {}
public void windowClosing(WindowEvent e) {
System.exit(0);
}
public void windowDeactivated(WindowEvent e){}
public void windowDeiconified(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowOpened(WindowEvent e) {}
});
Rdm=new java.util.Random();
setBackground(Color.black);
new javax.swing.Timer(100,new ActionListener(){
public void actionPerformed(ActionEvent ev){
repaint();
PusatX=getWidth()/2;
PusatY=getHeight()/2;
xorR=Rdm.nextInt(255);
xorG=Rdm.nextInt(255);
xorB=Rdm.nextInt(255);
}
}).start();
}
public static void main(String[]a){
new Jam().setVisible(true);
}
public void paint(Graphics G){

G.setColor(Color.BLACK);
G.setColor(Color.red);int Panjang;
if(getWidth()<getHeight())Panjang=getWidth()-100;
else Panjang=getHeight()-100;
G.drawOval(PusatX-Panjang/2,PusatY-Panjang/2,Panjang,Panjang);

G.setColor(Color.white);
for(int I=1;I<=12;I++){
G.fillOval((int)(PusatX+Math.sin(30*Math.PI*I/180)*Panjang/2),(int)(PusatY+Math.cos(30*Math.PI*I/180)*-1*Panjang/2),5,5);
G.drawString(""+I,(int)(PusatX+Math.sin(30*Math.PI*I/180)*Panjang/2.2),(int)(PusatY+Math.cos(30*Math.PI*I/180)*-1*Panjang/2.2));
}

G.setXORMode(new Color(xorR,xorG,xorB));

float Detik=Waktu(Calendar.SECOND)+(float)Waktu(Calendar.MILLISECOND)/1000;

G.setColor(Color.white);
G.drawLine(PusatX,PusatY,(int)(PusatX+(Math.sin(2*Math.PI*Detik/60)*Panjang/2)),(int)(PusatY+(-1*Math.cos(2*Math.PI*Detik/60)*Panjang/2)));

float Menit=Waktu(Calendar.MINUTE)+(float)Detik/60;
G.setColor(Color.green);
G.drawLine(PusatX,PusatY,(int)(PusatX+(Math.sin(2*Math.PI*Menit/60)*Panjang/2.1)),(int)(PusatY+(-1*Math.cos(2*Math.PI*Menit/60)*Panjang/2.1)));

float Jam=Waktu(Calendar.HOUR)+(float)Menit/60;
G.setColor(Color.BLUE);
G.drawLine(PusatX,PusatY,(int)(PusatX+(Math.sin(2*Math.PI*Jam/12)*Panjang/2.3)),(int)(PusatY+(-1*Math.cos(2*Math.PI*Jam/12)*Panjang/2.3)));

G.fillOval(PusatX-5,PusatY-5,10,10);
}
private int Waktu(int Jenis){
return Calendar.getInstance().get(Jenis);
}
}


 kemudian buka notepad(dengan mengklik Start >  All Program > Accessories > Notepad)

lalu pada tampilan notepad diatas,  Ketikkan source code diatas, kemudian SIMPAN(Save) dengan nama File Jam.java di Folder Local disk D:  buat folder baru agar file .java(souce code) tidak berantakan. Kemudian Beri nama Folder Compiler SETELAH itu klik OK . biasakan menyimpan filenya di dalam satu folder agar kita tidak bingung dan kesulitan mencari file.java.

Sekarang masuk ke Star > Run, ATAU Teman_teman juga bisa langsung mengklik pada keyboard Windows+R. Ketik CMD
  Pada tampilan Command Prompt(cmd) diatas, Ketikkan javac Jam.java Untuk mengompile File.java Setelah itu ketik kan lagi java Jam Untuk Running.

Tidak ada komentar:

Posting Komentar