Menciptakan ‘Objek’ Timer di Android

Timer biasa digunakan untuk menghitung waktu secara berulang. Pada pemrograman berorientasi objek (OOP=Object Oriented Programming), timer digunakan digunakan untuk mengeksekusi baris script di dalamnya dalam rentang waktu yang telah ditentukan secara berulang. Dalam ‘etimologi’ sebuah objek, event ini disebut sebagai event ‘OnTimer’.

Pemrograman Android menggunakan Java juga mengenal adanya objek Timer ini.  Biasanya yang digunakan untuk menangani Timer  adalah class TimerTask. Namun kali ini penulis akan mencoba ‘trik’ lain yang akan menciptakan sebuah ‘objek’ timer dengan cara sederhana, mudah digunakan dan gampang dipahami. Trik kali adalah dengan memanfaatkan class Handler untuk menciptakan sebuah thread yang berulang setiap satuan waktu. Inti dari trik ini adalah menggunakan salah satu method dari Handler yakni postDelayed(Runnable r, long delayMillis). Dengan menempatkan kembali method ini ke dalam Runnable maka akan tejadi efek nested  yang akan menyebabkan pengeksekusian script di dalam Runnable yang berulang sehingga berfungsi layaknya event ‘OnTimer’ :). Untuk lebih jelasnya simaklah contoh script sebagai berikut :

Nama program : ‘timerku.apk’.

Objective :  menampilkan angka secara berurutan tiap 1 detik.

Langkah-langkah development :

  1. Buka IDE Eclipse ADT (Android Developer Tools) dan buat project baru dengan nama ‘timerku’ melalui menu File | New | Android Application Project. Tekan tombol ‘Next’ sampai selesai jendela wizard-nya. 
  2. Buka file activity_main.xml pada folder /res/layout (lihat jendela ‘Package Explorer’) dan tambahkan satu komponen textView ke dalam form designer. Beri id komponen tersebut dengan nama ‘textView’ pada file xml-nya. 
  3. Buka file MainActivity.Java pada folder /src dan tambahkan kode berikut untuk menangani timer
 public class MainActivity extends Activity {
  private Handler handler = new Handler();
  int i=0;

 @Override
       protectedvoid onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
              //panggil timer
              handler.postDelayed(runnable, 1000); 
       } 

       private Runnable runnable = new Runnable() {   

                 @Override
                 public void run() {
                        TextView data = (TextView) findViewById(R.id.textView1);
                        i+=1;
                        data.setText(Integer.toString(i));
                    handler.postDelayed(this, 1000);
                 }
              };

 4. Run project dan amati tulisan pada textView yang terus bertambah tiap satu detik (1000 ms). 

Penjelasan program :

Baris [2] : menciptakan sebuah instance dari class Handler dengan nama ‘handler’.

Baris  [10] : memanggil timer melalui class handler dan method postDelayed dengan parameter (runnable, 1000). Parameter ‘runnable’ menunjukkan kumpulan script yang yang akan dieksekusi dalam sebuah thread ‘Runnable’, sedangkan parameter ‘1000’ menunjukkan jeda waktu kapan runnable tersebut dieksekusi dengan satuan milli second.

Baris [13] s.d [22] adalah thread Runnable dengan nama ‘runnable’ yang berisi kumpulan script yang harus dieksekusi ketika dipanggil handler. Perhatikan baris [20] bahwa dalam blok thread runnable dipanggil kembali handler.postDelayed. Dengan demikian akan terjadi loop nested (berulang/bersarang) yang akan menimbulkan efek ‘onTimer’ secara berulang dengan jeda waktu tiap 1000 ms.

Demikian tutorial tentang timer di Android menggunakan Java kali ini, semoga bermanfaat untuk Anda. Objek Timer ini banyak sekali digunakan dalam ‘falsafah’ pemrograman, jadi ada baiknya Anda pelajari secara khusus bagaimana metode yang terbaik dan termudah agar project Anda bisa cepat selesai dengan hasil yang terbaik. Bagi yang berminat source code program di atas seutuhnya, silahkan tulis email Anda di jendela komentar di bawah.

0 0 votes
Article Rating

Leave a Reply

8 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
richo

mas yang di instal yang mana

firdausiyah

codingx donk,
klo bs ama step2x yang jelas…
thanks before

Irwan

Terimakasih artikelnya sangat bermanfaat,yg mau saya tanyakan :kalau mau menghapus delay time di apk apakah script pemanggilan delay di hapus?trimakasih

bayu eko saputra

mas nanya dong giman ya cara nya kita bikin if dengan waktu yang jadi kondisi nya kaya aplikasi adzan gitu

8
0
Would love your thoughts, please comment.x
()
x