CountDown timer??……:-)

yupppzzzz….. sempat ada masukan dari senior saya Johan V. Pieter bahwa judul yang sebenarnya adalah CountDown Timer dari judul sebelumnya yaitu Time Remaining..yang ternyata keliru dalam pengertiannya.🙂 seperti definisi pada umumnya tentang countDoen timer yaitu penghitung waktu mundur.. biasanya cara ini dipakai pada saat kita mengikuti TAS dengan waktu yang dibatasi atau dengan perlombaan tertentu yang mengharuskan kita untuk menyelesaikan lomba tersebut dengan waktu yang ditentukan..🙂

maka disini kita akan coba membuat sebuah program kecil menggunakan JAVA sebagai program penghitung waktu mundur (CountDown timer).  kurang lebih hasilnya seperti gambar ini :

cara kerjanya sederhana aja… pertama, kita perlu memilih waktu mulainya proses time remaining pada Combobox. setelah itu klik tombol Mulai sehingga proses perhitungan waktu secara mundur dimulai berdasarkan pilhan waktu. pada saat prosesnya dimulai tombol Mulai akan berganti fungsi menjadi tombol Berhenti. sehingga kita dengan mudah menghentikan proses tersebut..

seperti biasa untuk membuat time remaining yang diperlukan adalah Component JTextField sebagai proses berjalannya waktu, JComboBox sebagai waktu yang ditentukan untuk memulainya proses dan JButton untuk melakukan aksi berupa Start Time dan Stop Time. sedangkan Class tambahan yang diperlukan adalah Timer.

untuk membuat time remaining ada beberapa Method pendukung diantaranya:

  • Method utama. method ini berfungsi untuk mengeksekusi pemilihan nilai dari detik, menit dan jam secara mundur.
private void initMulai() {
        timer = new Timer(interval, new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                if (seconds == 0 && (minutes > 0 || hours > 0)) {
                    seconds = 59;
                    minutes--;
                } else {
                    seconds--;
                }
                if (minutes == 0 && hours > 0) {
                    minutes = 59;
                    hours--;
                }
                if (seconds == 0 && minutes == 0 && hours == 0) {
                    stop();
                    seconds = minutes = hours = 0;
                    txtRemaining.setText("Selesai !");
                }
                TimeScan ts = new TimeScan(seconds, minutes, hours);
                txtRemaining.setText(ts.getHours() + ":" + ts.getMinutes() + ":" + ts.getSeconds());
             }
        });
    }
  • Method Start Timer.
 public void start() {
        timer.start();
        btnMulai.setText("Berhenti");
    }
  • Method Stop Timer.
public void stop() {
        timer.stop();
        btnMulai.setText("Mulai");
    }
  • Method ambil Index ComboBox. fungsinya untuk menginput nilai pada detik, menit dan jam berdasarkan Combobox yang dipilih
private void getIndex() {
        if (cmdTime.getSelectedIndex() == 0) {
            seconds = hours = 0;
            minutes = 5;
        } else if (cmdTime.getSelectedIndex() == 1) {
            seconds = hours = 0;
            minutes = 15;
        } else if (cmdTime.getSelectedIndex() == 2) {
            seconds = hours = 0;
            minutes = 30;
        } else if (cmdTime.getSelectedIndex() == 3) {
            seconds = hours = 0;
            minutes = 45;
        } else if (cmdTime.getSelectedIndex() == 4) {
            seconds = hours = 0;
            minutes = 60;
        } else if (cmdTime.getSelectedIndex() == 5) {
            seconds = 0;
            minutes = 30;
            hours = 1;
        }
    }
  • Perintah untuk Button Mulai adalah :
private void btnMulaiActionPerformed(java.awt.event.ActionEvent evt) {
        if (btnMulai.getText().equals("Mulai")) {
            getIndex();
            start();
        } else if (btnMulai.getText().equals("Berhenti")) {
            stop();
        }
    }

Coding terakhirnya adalah dengan menambahkan beberapa source code berikut diatas Costruktor Classnya  :

private Timer timer;
    private int seconds = 0, minutes = 0, hours = 0;
    private int interval = 1000;

setelah itu jalankan programnya sehingga hasilnya kurang lebih seperti penjelasan aku sebelumnya… berikut aku sertakan Source code lengkap.. jika pada waktu open Project dan terdapat error saat menjalankannya.. teman” perlu menambahkan Library yang juga sudah aku sertakan dalam Source code tersebut… Selamat Mencoba. Semoga Membantu !!🙂