Membuat StopWatch Menggunakan Java


Beberapa waktu yang lalu saya telah berhasil membuat counter untuk warnet. Prinsipnya menggunakan timer, mirip dengan stop watch. Terus beberapa menit yang lalu, temen saya menanyakan tentang cara membuat jam digital/stop watch di java. Matching. Ok, di sini saya sedikit berbagi tentang cara pembuatan stopwatch di java dengan menggunakan SWING. Saya mendevelop dengan menggunakan Ubuntu 10.12, IDE Netbeans 9.8, JDK versi 1.6.0-18. Di akhir posting saya sediakan link untuk mendownload program yang sudah saya buat. Selamat belajar…

  1. Membuat Projek Baru (StopWatch)
  2. Membuat Package Baru (windu.sw.ui)
  3. Membuat Class JframeForm pada package windu.sw.ui (FormStopWatch.java)
  4. Menambahkan JlabelTambahkan jlabel di atas Frame, dengan cara klik jlabel di palete kemudian klik lagi pada frame.
  5. Edit nama jlabelKlik kanan jlabel, Change Variable Name, ganti dengan lblStopWatch
  6. Edit text jlabelKlik kanan jlabel, Edit Text, ganti dengan: 00 : 00 : 00
  7. Ubah Font jlabelKlik kanan Jlabel, pilih properties: pada bagian Font tentukan: Comic Sans, 24, Bold
  8. Buat Class Baru pada package windu.sw.ui
    Nama: Time.java

    package windu.sw.ui;
    
    import java.util.Date;
    
    /**
     *
     * @author windu purnomo
     */
    public class Time {
    
        private Date dt;
        private String detik;
        private String menit;
        private String jam;
    
        public TimeEntity currTime(){
            String nol_jam = "";
            String nol_menit = "";
            String nol_detik = "";
            dt = new Date();
            TimeEntity tm = timeFormat(dt.getSeconds(), dt.getMinutes(), dt.getHours());
            return tm;
        }
    
        public TimeEntity timeFormat(int s, int m, int h){
            TimeEntity te;
            String nolS="", nolM="", nolH="";
            if (s <= 9) nolS = "0";
            if (m <= 9) nolM = "0";
            if (h <= 9) nolH = "0";
            te = new TimeEntity(nolS+Integer.toString(s), nolM+Integer.toString(m), nolH+Integer.toString(h));
            return te;
        }
    
    }
    
  9. Buat Class Baru pada package windu.sw.ui
    Nama: TimeEntity.java

    package windu.sw.ui;
    
    /**
     *
     * @author windu purnomo
     */
    public class TimeEntity {
    
        private String detik;
        private String menit;
        private String jam;
    
        public TimeEntity() {
        }
    
        public TimeEntity(String detik, String menit, String jam) {
            this.detik = detik;
            this.menit = menit;
            this.jam = jam;
        }
    
        public String getDetik() {
            return detik;
        }
    
        public void setDetik(String detik) {
            this.detik = detik;
        }
    
        public String getJam() {
            return jam;
        }
    
        public void setJam(String jam) {
            this.jam = jam;
        }
    
        public String getMenit() {
            return menit;
        }
    
        public void setMenit(String menit) {
            this.menit = menit;
        }
    }
    
  10. Kembali lagi ke FormStopWatch.java, Kemudian Edit
    Masuk ke mode Source:
    a. Variable global
    Setelah baris public class FormStopWatch ….., tambahkan baris berikut:

    private int s = 0, m = 0, h = 0;
    

    b. Method
    Tambahkan satu method, setDuration(). Lengkapnya seperti ini:

        public void setDuration(){
            //menghitung selisih waktu start dengan waktu sekarang
            if(s==60){
                s = 0;
                m++;
            }else s++;
            if(m==60){
                m = 0;
                h++;
            }
            Time t = new Time();
            TimeEntity te = t.timeFormat(s, m, h);
            lblStopWatch.setText(te.getJam()+" : "+te.getMenit()+" : "+te.getDetik());
        }
    

    c. Constructor
    Lengkapi constructor, sehingga menjadi seperti ini:

        public FormStopWatch() {
            initComponents();
            ActionListener al = new ActionListener() {
                public void actionPerformed(ActionEvent ae) {setDuration();}
            };
            new Timer(10, al).start();
        }
    

Source code lengkapnya dapat didownload di sini:
http://www.ziddu.com/download/10389026/StopWatch.rar.html

About windupurnomo

I'm interested in programming. I am active with several programming such as Java, C #, C, JavaScript, HTML. I'm also develop desktop application (Java Swing), Mobile Application (Android), and Web programming (ASP MVC).
This entry was posted in Java and tagged , , , , , . Bookmark the permalink.

24 Responses to Membuat StopWatch Menggunakan Java

  1. aan says:

    keren Du (thumb)…

    sempet ya pas lagi di BPPT ngerjain begini.he,,

    eh itu bisa diganti ga theme jamnya?

  2. olil says:

    askum,,,
    sourcecode conter warnetnya mana mas,,,
    tlg d upload donk,,,

    • windupurnomo says:

      wa’alaykumsalam
      Karena programnya belum tuntas, sourcecodenya belum bisa saya upload.
      Ada dua sistem yang saya buat, untuk komputer server dan komputer client. Cara pakainya juga harus dikasih penjelasan yang “sejelas-jelasnya”. Mudah2an nanti bisa saya bagi di sini😀

  3. windupurnomo says:

    Barusan saya buat posting tentang billing counter, silahkan dicek ke sini:
    https://windupurnomo.wordpress.com/2010/06/28/membuat-counter-billing-warnet/

  4. andika says:

    keren…oia gmn cara nya buat titik secara random dengan netbeans 6.8
    hehehhe thx info nya

  5. andika says:

    oia klw boleh kirim donk tutorial nya ke mail Q..ato add jg YM ya..thx lho klw boleh…..
    di ars_telkom@yahoo.com

  6. fathur says:

    di tutorialnya tolong ditambahkan,

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    😀

  7. fathur says:

    oh ya terus cara pause / stop/reset nya??😛

  8. acs says:

    makasih banyak ini yg saya cari dari kmrn:D

  9. gie says:

    Bos, punya sofware buat counter doorprize ga? makasih

  10. decharvi says:

    thnx infonya om😀

  11. andry says:

    bwat nyetopin stopwacthnya gmna nich.???

  12. mas, mau tanya nih, kalau mau pause/stop stopwatch nya gmn ya?

    apa harus ditambahin fungsi lagi?

    terima kasih sebelumnya

  13. untuk stop timer nya ya
    new Timer(10, al).stop();
    ..
    mas,. itu ada yg salah,. klo delaynya 10, brati ga perdetik dunk,,, tapi yg yg detik jadi milidetik, yg menit jd detik, yg jam jadi menit… yang jam gag ada,. mending delay nya di ganti 1000…
    CMIIW

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s