Java Thread - Hitung Mundur
Sedikit pengertian dari thread yang di copas dari modul JENI 2..
Sebuah thread merupakan sebuah pengontrol aliran program. Untuk lebih mudahnya, bayangkanlah thread sebagai sebuah proses yang akan dieksekusi didalam sebuah program tertentu. Penggunaan sistem operasi modern saat ini telah mendukung kemampuan untuk menjalankan beberapa program. Misalnya, pada saat Anda mengetik sebuah dokumen di komputer Anda dengan menggunakan text editor, dalam waktu yang bersamaan Anda juga dapat mendengarkan musik, dan surfing lewat internet di PC Anda. Sistem operasi yang telah terinstal dalam computer Anda itulah yang memperbolehkan Anda untuk menjalankan multitaskting. Seperti itu juga sebuah program (ibaratkan di PC Anda), ia juga dapat mengeksekusi beberapa proses secara bersama-sama(ibaratkan beberapa aplikasi berbeda yang bekerja pada PC Anda).
Sebuah contoh aplikasi adalah HotJava browser yang memperbolehkan Anda untuk browsing terhadap suatu page, bersamaan dengan mendownload object yang lain, misalnya gambar, memainkan animasi, dan juga file audio pada saat yang bersamaan.
Dari pengertian sekilas di atas, dapat dilihat bahwa dengan thread kita akan dapat menangani banyak proses dalam sekali running program.
Thread dapat di tangani dengan 2 cara,
Pertama, membuat kelas turunan dari thread dan mengoverride method run()
Cara berikutnya adalah Mengimplementasikan interface runnable dan mengimplementasikan methode run().
Kode berikut ini adalah penggunaan thread dengan cara penanganan secara implementasi runnable. Kita kan membuat sebuah program yang akan menghitung mundur dengan menggunakan thread.
Sediakan Beberapa kompenen berikut
JFrame
JBUtton -> name: btnMulai
JButton -> name: btnStop
JButton -> name: btnSet
JLabel -> name: lblHitung
Code – Source
Sebuah thread merupakan sebuah pengontrol aliran program. Untuk lebih mudahnya, bayangkanlah thread sebagai sebuah proses yang akan dieksekusi didalam sebuah program tertentu. Penggunaan sistem operasi modern saat ini telah mendukung kemampuan untuk menjalankan beberapa program. Misalnya, pada saat Anda mengetik sebuah dokumen di komputer Anda dengan menggunakan text editor, dalam waktu yang bersamaan Anda juga dapat mendengarkan musik, dan surfing lewat internet di PC Anda. Sistem operasi yang telah terinstal dalam computer Anda itulah yang memperbolehkan Anda untuk menjalankan multitaskting. Seperti itu juga sebuah program (ibaratkan di PC Anda), ia juga dapat mengeksekusi beberapa proses secara bersama-sama(ibaratkan beberapa aplikasi berbeda yang bekerja pada PC Anda).
Sebuah contoh aplikasi adalah HotJava browser yang memperbolehkan Anda untuk browsing terhadap suatu page, bersamaan dengan mendownload object yang lain, misalnya gambar, memainkan animasi, dan juga file audio pada saat yang bersamaan.
Dari pengertian sekilas di atas, dapat dilihat bahwa dengan thread kita akan dapat menangani banyak proses dalam sekali running program.
Thread dapat di tangani dengan 2 cara,
Pertama, membuat kelas turunan dari thread dan mengoverride method run()
Cara berikutnya adalah Mengimplementasikan interface runnable dan mengimplementasikan methode run().
Kode berikut ini adalah penggunaan thread dengan cara penanganan secara implementasi runnable. Kita kan membuat sebuah program yang akan menghitung mundur dengan menggunakan thread.
Sediakan Beberapa kompenen berikut
JFrame
JBUtton -> name: btnMulai
JButton -> name: btnStop
JButton -> name: btnSet
JLabel -> name: lblHitung
Code – Source
/*
* HitungMundur.java
*
* Created on Apr 29, 2011, 2:50:09 AM
*/
package dmon;
//paket untuk actionEvent serta actionListener
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
//pake untuk JOptionPane
import javax.swing.JOptionPane;
/**
*
* @author Iskandar M. Alawi
*/
public class HitungMundur extends javax.swing.JFrame implements ActionListener {
int N = 0; //variabel N untuk nilai awal
int M =N *60; //variabel M berisi N dikalikan dengan 60 (1 menit)
int temp = M; //variabel temp berisi variabel M
int count = 1; //variabel count dimulai dengan 1
int menit;
int detik;
private ThreadHitungMundur chThread;
/** Creates new form HitungMundur */
public HitungMundur() {
initComponents();
//judul frame
this.setTitle("Thread Hitung Mundur");
//perintah saat tombol ditekan
btnMulai.setActionCommand("M");
btnStop.setActionCommand("S");
btnSet.setActionCommand("Set");
//menambahkan actionListener saat tombol ditekan
btnMulai.addActionListener(this);
btnStop.addActionListener(this);
btnSet.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
// dapat nilai tombol ketika ditekan
String perintah = e.getActionCommand();
//jika action tombol bernilai M (tombol mulai ditekan)
if (perintah.equals("M"))
{
//inisialisasi thread
chThread = new ThreadHitungMundur();
//mulai thread
chThread.begin();
}
//jika action tombol bernilai S (tombol Stop ditekan)
if (perintah.equals("S"))
{
// thread selesai
chThread.finish();
}
//jika action tombol bernilai Set (tombol Set ditekan)
if (perintah.equals("Set"))
{
//Tampilkan JOptionPaneInputDIalog untuk masukan input
//yang akan disimpan di variabel String N1
String N1 = JOptionPane.showInputDialog("Hitung Mundur dalam Menit : ");
//dan di ubah ke bentuk integer dan disimpan di variabel N
N = Integer.parseInt(N1);
}
}
//kelas Thread dengan implementasi Runnable
class ThreadHitungMundur implements Runnable
{
//set go bernilai benar
private boolean go = true;
private Thread chThread = new Thread(this);
//methode cek()
public void cek()
{ //konversi detik ke bentuk 00:00
menit = temp / 60;
detik = temp % 60;
//tampilkan pada lblHitung
lblHitung.setText("" +menit +" : "+ detik);
//hitung mundur
temp--;
//jika menit = 0 dan detik = 0
//set temp bernilai N * 60
if (menit == 0 && detik == 0)
{
temp = N * 60;
}
if(count > M)
{
count = 1;
}
}
//method run tidak akan dipanggil begitu saja secara langsung
//pemanggilan melalui threadName.start
public void run()
{
while(go)
{
cek();
try
{
//thread akan diam selama 1 detik
chThread.sleep(1000);
}catch(InterruptedException e)
{
System.out.println("Interrupted Exception Occured");
}
}
}
public void begin()
{
chThread.start();
}
public void finish()
{
go = false;
}
}
}
Comments
Post a Comment
Please Don't make SPAM HERE !