Belajar Membuat Aplikasi Countdown Timer di Android


Assalamualaikum Warahmatullahi Wabarakatuh.

Countdown Timer adalah sebuah program yang dibuat dan digunakan untuk menghitung waktu mundur, Countdown Timer pada umumnya diterapkan pada aplikasi semacam quiz, atau sebuah game yang dibatasi oleh waktu, dan memberikan kondisi atau event jika waktu sudah berakhir.


Pada tutorial berikut ini, kita akan belajar membuat program sederhana yang menampilkan Countdown Timer dengan waktu yang telah kita tentukan sendiri, serta membuat kondisi pada saat waktu berakhir.

Materi lainnya yang direkomendasikan:

Belajar Membuat Aplikasi Countdown Timer di Android

1) Buka aplikasi Android Studio kalian, Buat Project Baru.

2) Pada activity_main.xml, disini kita akan membuat layout dengan menggunakan beberapa komponen seperti TextView dan Button.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="16dp"
    android:gravity="center"
    tools:context="android.cianjur.developer.net.basicandroid.MainActivity">

    <TextView
        android:id="@+id/timer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="6dp"
        android:gravity="center"
        android:text="Waktu 00:03:00"
        android:textSize="17sp"
        android:textStyle="bold" />

    <Button
        android:id="@+id/start"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/time"
        android:layout_alignStart="@+id/time"
        android:layout_below="@+id/time"
        android:text="Mulai" />

    <Button
        android:id="@+id/stop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/time"
        android:text="Berhenti" />
</RelativeLayout>
View:


3) Selanjutnya buka file MainActivity.java kalian, Masukan Source code berikut ini.
package android.cianjur.developer.net.basicandroid;

/*
 Dibuat Oleh WILDAN M ATHOILLAH
 */

import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import java.util.concurrent.TimeUnit;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private TextView Waktu;
    private Button Start, Stop;
    private  TimerClass timerClass;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Waktu = findViewById(R.id.timer);
        Start = findViewById(R.id.start);
        Start.setOnClickListener(this);
        Stop = findViewById(R.id.stop);
        Stop.setOnClickListener(this);

        //Set Waktu selama 3 detik = 60000 * 3 millis dengan interval 1 detik = 1000 millis
        timerClass = new TimerClass(60000 * 3, 1000);
    }

    //Membuat InnerClass untuk konfigurasi Countdown Time
    public class TimerClass extends CountDownTimer {

        TimerClass(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
        }

        //Method ini berjalan saat waktu/timer berubah
        @Override
        public void onTick(long millisUntilFinished) {
            //Kenfigurasi Format Waktu yang digunakan
            String waktu = String.format("%02d:%02d:%02d",
                    TimeUnit.MILLISECONDS.toHours(millisUntilFinished),
                    TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) -
                            TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millisUntilFinished)),
                    TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) -
                            TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished)));

            //Menampilkannya pada TexView
            Waktu.setText("Waktu " +waktu);
        }

        @Override
        public void onFinish() {
            ///Berjalan saat waktu telah selesai atau berhenti
            Toast.makeText(MainActivity.this, "Waktu Telah Berakhir", Toast.LENGTH_LONG).show();
            finish();
        }
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.start:
                //Menjalankan Timer
                timerClass.start();
                Toast.makeText(MainActivity.this, "Mulai", Toast.LENGTH_LONG).show();
                break;

            case R.id.stop:
                //menghentikan Timer
                timerClass.cancel();
                Toast.makeText(MainActivity.this, "Berhenti", Toast.LENGTH_LONG).show();
                break;
        }
    }
}
Demo:


Terimakasih atas kunjungannya, semoga tutorial yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Wildan M Athoillah
Wildan M Athoillah Blogger dan spesialis pembuat aplikasi android.