Archive

Archive for February, 2011

Aplikasi Jam Digital dengan Java

February 28, 2011 2 comments

Pada post kali ini, kita akan membuat jam digital. Berikut ini langkah langkah yang diperlukan

  • Buat design interface program sebagai berikut

Design untuk Interface GUI

Pada Design interface GUI tersebut terdapat dua JLabel. Ubah text JLable tersebut sesuai dengan design interface GUI tersebut. Dan ubah nama variabel dari JLabel tersebut menjadi JClock dan JText.

  • Buat code sebagai berikut source pada design interface GUI tersebut. codenya sebagai beriku.

import class yang diperlukan

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import javax.swing.Timer;

Listener yang digunakan untuk class Timer

ActionListener trigerClock = new ActionListener()
{
public void actionPerformed(ActionEvent e) {
JClock.setText(new Date().toString());
}
};

Constructor GUI tersebut

public Clock() {
initComponents();
Timer digitalClock = new Timer(1000, trigerClock);
digitalClock.start();
}

Fungsi main

public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Clock().setVisible(true);
}
});
}

Berikut ini interface untuk aplikasi sederhana yang telah kita buat.

My Clock

My Java Clock

Berikut ini link download untuk code selengkapnya

Sederhana bukan?
Maaf jika tulisannya tidak rapi.
Semoga bermanfaat 😀

Referensi : dari berbagai sumber

 

Thread dalam Java Part 4

February 24, 2011 Leave a comment

Untuk memberi nama pada thread yang kita ciptakan dapat dilakukan dengan beberapa cara.

1. Dengan menggunakan method setName()

2. Dengan menggunakan constructor pada class Thread
Thread(String name) dan Thread( Runnable target, String name)

Walaupun secara default, Java akan memberikan nama pada setiap thread yang dibentuk secara otomatis.

Sedangkan untuk memperoleh nama thread yang sedang running dapat digunakan method getname();

Berikut ini contoh program untuk memberikan dan memperoleh nama thread yang ditelah dibuat.

Nama file ThreadName.java

public class ThreadName extends Thread {
public ThreadName()
{
}
public ThreadName(String nameThread)
{
super(nameThread);
}
public synchronized void  run()
{
System.out.println(“Nama thread adalah:”+ getName());
}
}

Nama file Main.java

public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
ThreadName threadSatu = new ThreadName(“threadSatu”);
threadSatu.start();
ThreadName threadDua = new ThreadName();
threadDua.setName(“threadDua”);
threadDua.start();

ThreadName threadTiga = new ThreadName();
threadTiga.start();
}
}

Referensi : dari berbagai sumber

Salah koreksi saya 😀

Semoga bermanfaat

Thread dalam Java Part 3

February 24, 2011 Leave a comment

Pada pada bagian ketiga akan berisi tentang sinkronisasi pada java. Sinkronisasi merupakan suatu proses untuk mengontrol suatu resource terhadap multiple thread sehingga hanya terdapat satu thread yang mengakses resource tersebut pada satu waktu. Dalam sinkronisasi suatu thread sebelum mengakses suatu resource, harus memperoleh lock ( saya belum mengerti sepenuhnya tentang lock ini 😀 ). Setelah memperoleh lock, suatu thread dapat mengakses resource tersebut, sedangkan thread lain yang akan menggunakan resource tersebut harus menunggu hingga lock dilepaskan oleh thread yang sedang memegang lock tersebut.

Dalam java terdapat dua jenis synchronized yaitu :

  1. Synchronized method
  2. Synchronized block

Berikut ini contoh Synchronized method

Nama file SynchronizedMethod.java

package threadjavaempat;

/**
*
* @author Taeyeon
*/
public class SynchronizedMethod extends Thread {
static String[] msg = { “kukuh”, “utama”, “dan”,”teman”, “teman”};
public SynchronizedMethod(String id)
{
super(id);
}
void randomWait() {
try {
Thread.currentThread().sleep(10);
} catch (InterruptedException e) {
System.out.println(“Interrupted!”);
}
}
public synchronized void run() {
SynchronizedOutput.displayList(getName(), msg);
}

}

Nama file SynchronizedOutput.java

package threadjavaempat;

/**
*
* @author Taeyeon
*/
public class SynchronizedOutput {
public static synchronized void displayList(String name, String list[]) {
for (int i = 0; i < list.length; i++) {
SynchronizedMethod t = (SynchronizedMethod) Thread.currentThread();
t.randomWait();
System.out.println(name + list[i]);
}
}

}

Nama file Main.java

package threadjavaempat;

/**
*
* @author Taeyeon
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
SynchronizedMethod thread1 = new SynchronizedMethod(“thread1: “);
SynchronizedMethod thread2 = new SynchronizedMethod(“thread2: “);
thread1.start();
thread2.start();
boolean t1IsAlive = true;
boolean t2IsAlive = true;
do {
if (t1IsAlive && !thread1.isAlive()) {
t1IsAlive = false;
System.out.println(“t1 is dead.”);
}
if (t2IsAlive && !thread2.isAlive()) {
t2IsAlive = false;
System.out.println(“t2 is dead.”);
}
} while (t1IsAlive || t2IsAlive);

}

}

Download Code

Dan berikut ini contoh synchronized block

Nama file Counter.java

package threadjavalima;

/**
*
* @author Taeyeon
*/
public class Counter {
long count = 0;

public void add(long value){
synchronized (this) {
this.count += value;
System.out.println(count);
}
}
}

Nama file CounterThread.java

public class CounterThread extends Thread {
protected Counter counter = null;

public CounterThread(Counter counter){
this.counter = counter;
}

public void run() {
for(int i=0; i<10; i++){
counter.add(i);
}
}

}

Nama file Main.java

public class CounterThread extends Thread {
protected Counter counter = null;

public CounterThread(Counter counter){
this.counter = counter;
}

public void run() {
for(int i=0; i<10; i++){
counter.add(i);
}
}

}
Download Code

Referensi : Dari berbagai sumber

Salah koreksi saya

Semoga bermanfaat

Terima Kasih Tuhan

February 23, 2011 Leave a comment

Terima kasih Tuhan…

Syukur itu adalah kebutuhan


Terima kasih Tuhan, atas semua anugerah dan karunia-Mu
Terima kasih Tuhan, atas keluarga yang utuh
Terima kasih Tuhan, atas orang tua yang selalu mendukung anaknya
Terima kasih Tuhan, atas saudara yang selalu membantu saya
Terima kasih Tuhan, atas teman teman yang baik
Terima Kasih Tuhan, atas sehat ini
Terima kasih Tuhan, atas fisik yang sempurna ini
Terima kasih Tuhan, atas ilmu yang Engkau titipkan kepada saya
Terima kasih Tuhan, atas rizki yang Engkau berikan kepada saya
Terima kasih Tuhan, atas kelapangan pada diri saya
Terima kasih Tuhan, atas perlindungan-Mu dan telah menutupi aib saya
Terima kasih Tuhan, atas matahari masih terbit disebelah timur
Terima kasih Tuhan, atas oksigen yang saya dihirup dengan gratis
Terima kasih Tuhan, atas telah menjadikan Islam sebagai agama saya
Terima kasih Tuhan, atas kesempatan dan hidup ini
Terima kasih Tuhan, atas kesempatan bersekolah ini sampai jenjang ini
Terima kasih Tuhan, atas segala nikmat-Mu yang tidak mampu saya sebutkan satu persatu
Terima kasih Tuhan….

Alhamdullilah
Adakah alasan untuk kita tidak bersyukur?
P.S.
Berbaik sangkalah pada-Nya. Hidup tak hanya berisi sakit, sulit dan masalah. Tapi juga sehat, mudah dan nikmat yg kdg sering kita lupa mensyukurinya.

Categories: Ren's Notes Tags: , ,

Thread dalam Java Part 2

February 21, 2011 Leave a comment

Seperti dalam post Thread dalama Java Part 1, dalam membuat Thread ada dua cara yaitu dengan implements interface Runnable atau dengan extends class Thread.

Berikut ini sedikit contoh dalam membuat Thread dalam Java

  1. Implement Interface Runnable

nama file ThreadJavaSatu.java

package threadjavasatu;

/**
*
* @author Taeyeon
*/
public class ThreadRunnable implements Runnable {
Thread runner;
public ThreadRunnable()
{

}

public ThreadRunnable(String threadName)
{
runner = new Thread(this, threadName);
System.out.println(runner.getName());
runner.start();
}
public void run() {
System.out.println(Thread.currentThread());
}

}

nama file main.java

package threadjavasatu;

/**
*
* @author Taeyeon
*/
public class ThreadRunnable implements Runnable {
Thread runner;
public ThreadRunnable()
{

}

public ThreadRunnable(String threadName)
{
runner = new Thread(this, threadName);
System.out.println(runner.getName());
runner.start();
}
public void run() {
System.out.println(Thread.currentThread());
}

}
Download File
2. Extends Class Thread

nama file ExThread.java

package threadjavadua;

/**
*
* @author Taeyeon
*/
public class ExThread extends Thread {

public ExThread()
{

}
public ExThread(String threadName)
{
super(threadName);
System.out.println(this);
}

public void run()
{
System.out.println(Thread.currentThread().getName());
}

}

nama file main.java

package threadjavadua;

/**
*
* @author Taeyeon
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Thread threadSatu = new Thread(new ExThread(),”ThreadSatu”);
Thread threadDua = new Thread(new ExThread(),”ThreadDua”);
Thread threadTiga = new Thread();
Thread threadEmpat = new Thread();
Thread threadLima = new ExThread(“thread5”);
threadSatu.start();
threadDua.start();
threadTiga.start();
threadEmpat.start();
try {
Thread.currentThread().sleep(1000);
} catch (InterruptedException e) {
}

System.out.println(Thread.currentThread());

}

}
Download File
Semoga bermanfaat 😀

Salah koreksi saya

Referensi : Dari berbagai sumber

Teori Tabung Perasaan

February 17, 2011 Leave a comment

Perasaan adalah sistem autopilot dari semua pikiran yang mengalir di kepala kita. Bila kita berhasil mengendalikan perasaan yang kita miliki agar selalu positif, maka pikiran-pikiran kita otomatis akan ikut positif juga.

Namun perasaan kadang, sering berubah-berubah, dan sulit ditebak.

“Perasaan itu ibarat pelangi, gampang berubah.” (Dr. Ibrahim El-fiky)

Contohnya saja, andaikata kita tadi pagi, setelah bangun tidur, perasaan kita terasa positif. Namun pada siang harinya, ketika kita berkendara, ada sepeda motor ugal-ugal yang hampir menyerempet kita, kita pun menjadi kesal.

Kemudian, kita pun di kantor masih merasa jengkel dan kesal akan kejadian di jalan tadi. Akhirnya kita pun bekerja dan beraktivitas dengan perasaan tidak mengenakkan. Namun, ketika sore hari sehabis kita pulang bekerja, ada teman yang memuji kita, kita pun berubah menjadi menjadi sangat senang. Perasaan yang tadinya menyebalkan, seketika berubah saat ada teman yang dengan tulus memuji kita.

Namun, sesampainya kita di tempat tinggal, sahabat kita mengatakan sesuatu yang menyakitkan, alhasil rusaklah perasaan senang kita seketika, dan digantikan dengan perasaan jengkel lagi, bahkan ingin marah.

Inilah yang dimaksud dengan “perasaan itu ibarat pelangi.” Sulit diterka dan suka berubah-ubah.

Oleh karena itu, demi menyikapi perasaan kita yang sulit diatur, “teori tabung perasaan” ini diciptakan. Dengan memahami teori tabung ini, mudah-mudahan sedikit-banyak perasaan kita lebih dapat kita kendalikan. Sehingga pada akhirnya, kita pun bisa selalu mem-positifkan perasaan yang kita miliki.

Teorinya adalah sebagai berikut :

Hafalkan rumus berikut baik-baik :

E + R = Rs, dimana : E = Event; R = Respons; dan Rs = Result.

“EVENT” adalah kejadian-kejadian yang terjadi di luar diri kita, baik itu yang telah kita perkirakan, atau yang tidak kita perkirakan sebelumnya. event bisa berupa perkataan ataupun perbuatan. Perkataan dan perbuatan mempunyai energi yang cukup besar untuk mempengaruhi perasaan seseorang.

Melalui perkataanlah para Nabi mengubah cara hidup umat manusia, melalu perkataanlah para pemimpin mengubah negaranya, karena perkataanlah perang bisa berkecamuk, karena perkataanlah permusuhan bisa tercipta, karena perkataanlah perdamaian pun akhirnya bisa tercapai, karena perkataanlah perkawinan bisa terjadi, karena perkataanlah perceraianpun dapat terjadi, dan karena perkataan jugalah anak bisa tercipta.

Untuk perbuatan, tentu semua juga tahu bahwa perbuatan mempunyai kekuatan yang sama besarnya atau bahkan dua kali lebih besar pengaruhnya terhadap perasaan seseorang. kalau tidak percaya tampar saja polisi yang mungkin akan kau temui di jalan nanti.

“RESPONS” adalah reaksi-reaksi PERASAAN kita terhadap EVENT yang terjadi pada kita. Andaikata ada orang yang berkata tidak menyenangkan kepada kita, maka kita mempunyai KENDALI PENUH atas reaksi seperti apa yang akan ditimbulkan oleh perasaan.

Sekarang cobalah kita perhatikan perasaan kita. dan tanyakan, apa yang sedang aku rasakan saat ini?? mungkin Anda saat ini sedang merasakan perasaan senang, bahagia, penuh harapan, dan optimisme.

Kemudian, setelah beberapa waktu nanti setelah kamu membaca tulisan ini, tengok lagi perasaan kamu, dan bertanyalah “Bagaimana perasaanku saat ini?”

Bila ada perkataan atau pun perbuatan yang tidak menyenangkan terjadi padamu, langsung tengok perasaanmu, dan jaga jangan sampai perasaan kamu menjadi negatif. Jaga agar perasaanmu selalu dalam keadaan baik. Jaga agar perasaanmu selalu stabil, aman, dan terkendali.

Kemudian, lakukan hal ini di setiap waktu, sampai hal ini menjadi sebuah kebiasaanmu. Mudah-mudahan dengan cara ini perasaanmu akan selalu tenang, apa pun keadaan yang terjadi di luar sana.

“RESULT” adalah sebuah hasil yang ditimbulkan akibat dari perasaan yang telah engkau izinkan untuk “merasa”, entah itu kecewa, kesal, marah, sakit hati, benci, cemburu, atau pun panik, (namun “sedih” tidak termasuk perasaan negatif). RESULT bisa jadi adalah mengeluarkan kata-kata marah, memaki-maki, mengkritik, memukul, menampar, atau pun menghina.

Namun, RESULT di sini tidak hanya sampai di sini. Insya Alloh, perasaan negatif pada akhirnya akan merembet kepada penyakit batin, bahkan penyakit FISIK.
Source

Thread dalam Java Part 1

February 16, 2011 1 comment

Thread adalah rangkaian eksekusi dari sebuah aplikasi java dan setiap program java minimal memiliki satu buah thread. Sebuah thread bisa berada di salah satu dari 4 status, yaitu new, runnable, blocked, dan dead.

Status Thread

• New, Thread yang berada di status ini adalah objek dari kelas Thread yang baru dibuat, yaitu saat instansiasi objek dengan statement new. Saat thread berada di status new,belum ada sumber daya yang dialokasikan, sehingga thread belum bisa menjalankan perintah apapun.

• Runnable. Agar thread bisa menjalankan tugasnya, method start() dari kelas Thread harus dipanggil. Ada dua hal yang terjadi saat pemanggilan method start(), yaitu alokasi memori untuk thread yang dibuat dan pemanggilan method run(). Saat method run() dipanggil, status thread berubah menjadi runnable, artinya thread tersebut sudah memenuhi syarat untuk dijalankan oleh JVM. Thread yang sedang berjalan juga berada di status runnable.

• Blocked. Sebuah thread dikatakan berstatus blocked atau terhalang jika terjadi blocking statement, misalnya pemanggilan method sleep(). sleep() adalah suatu method yang menerima argumen bertipe integer dalam bentuk milisekon. Argumen tersebut menunjukkan seberapa lama thread akan “tidur”. Selain sleep(), dulunya dikenal method suspend(), tetapi sudah disarankan untuk tidak digunakan lagi karena mengakibatkan terjadinya deadlock. Thread akan menjadi runnable kembali jika interval method sleep()-nya sudah berakhir, atau pemanggilan method resume() jika untuk menghalangi thread tadi digunakan method suspend()

• Dead. Sebuah thread berada di status dead bila telah keluar dari method run(). Hal ini bisa terjadi karena thread tersebut memang telah menyelesaikan pekerjaannya di method run(), maupun karena adanya pembatalan thread. Status jelas dari sebuah thread tidak dapat diketahui, tetapi method isAlive() mengembalikan nilai boolean untuk mengetahui apakah thread tersebut dead atau tidak.

Pembentukan Thread dalam java

Untuk membuat thread dalam java terdapat dua cara ( sejauh yang saya tahu 😀 )

• Extends class Thread

Untuk menjalankan thread, dapat dilakukan dengan memanggil method start(). Saat start() dijalankan, maka sebenarnya method run() dari class akan dijalankan. Jadi untuk membuat thread, harus mendefinisikan method run() pada definisi class. Konstruktor dari cara ini adalah :

SubThread namaObject = new SubThread();

namaObject.start();

• Implements interface Runnable

Cara ini merupakan cara yang paling sederhana dalam membuat thread. Runnable merupakan unit abstrak, yaitu kelas yang mengimplementasikan interface ini hanya cukup mengimplementasikan fungsi run(). Dalam mengimplementasi fungsi run(), kita akan mendefinisikan instruksi yang membangun sebuah thread. Konstruktor dari cara ini adalah :

MyThread myObject= new MyThread();

Thread namaObject = new Thread(myObject);

Atau dengan cara singkat seperti :

New Thread(new ObjekRunnable());

MyThread merupakan class yang mengimplementasikan interface dari Runnable, dan object dari class MyThread akan menjadi parameter instansi object class Thread.

Synchronized

Sinkronisasi adalah method atau blok yang memiliki tambahan keyword synchronized,sehingga apabila dijalankan maka hanya satu thread pada suatu waktu yang dapat menjalankan method atau blok program. Thread lain akan menunggu thread yang sedang mengeksekusi method ini hingga selesai. Mekanisme sinkronisasi penting apabila terjadi pembagian sumber daya maupun data di antara thread-thread. Sinkronisasi juga melakukan penguncian pada sumber daya atau data yang sedang diproses.

Sinkronisasi dapat dilakukan pada dua bagian yaitu

  • Sinkronisasi Blok

Sintak untuk sinkronisasi blok adalah sebagai berikut :

synchronized (<object reference expression>) {
<code block>
}

  • Sinkronisasi Method

Sintak untuk sinkronisasi method adalah sebagai berikut:

synchronized TypeBalikanMethod NamaMethod ( parameter)

{

}

Prioritas Thread

Dalam Java kita dapat membuat prioritas suatu thread relative terhadapa thread yang lain. Sehingga thread yang mempunyai prioritas lebih tinggi mempunyai kesempatan lebih besar untuk mengakses suatu sources

Java Virtual Machine memilih thread yang runnable dengan prioritas tertinggi. Semua thread java mempunyai prioritas dari 1 sampai 10. Prioritas tertinggi 10 dan berakhir dengan 1 sebagai prioritas terendah. Sedangkan prioritas normal adalah 5.

Thread.MIN_PRIORITY = thread dengan prioritas terendah.

Thread.MAX_PRIORITY = thread dengan prioritas tertinggi.

Thread.NORM_PRIORITY = thread dengan prioritas normal.

Saat thread baru dibuat ia mempunyai prioritas yang sama dengan thread yang menciptakannya. Prioritas thread dapat diubah dengan menggunakan setpriority() method.

Referensi : Dari berbagai sumber

Salah koreksi saya

Semoga bermanfaat 😀