Monday, June 16, 2008

RATING BAHASA PEMROGRAMAN

,
Position
Nov 2008
Position
Nov 2007
Delta in Position Programming Language Ratings
Nov 2008
Delta
Nov 2007
Status
1 1 Java 20.299% -0.24% A
2 2 C 15.276% +1.31% A
3 4 C++ 10.357% +1.61% A
4 3 (Visual) Basic 9.270% -0.96% A
5 5 PHP 8.940% +0.25% A
6 7 Python 5.140% +0.91% A
7 8 C# 4.026% +0.11% A
8 11 Delphi 4.006% +1.55% A
9 6 Perl 3.876% -0.86% A
10 10 JavaScript 2.925% 0.00% A
11 9 Ruby 2.870% -0.21% A
12 12 D 1.442% -0.26% A
13 13 PL/SQL 0.939% -0.24% A
14 14 SAS 0.729% -0.40% A--
15 18 ABAP 0.570% -0.08% B
16 19 Pascal 0.511% -0.13% B
17 17 COBOL 0.510% -0.20% B
18 25 ActionScript 0.506% +0.04% B
19 23 Logo 0.489% -0.04% B
20 16 Lua 0.473% -0.27% B

sumber : http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html - 8 November 2008
Read more →

Sunday, June 15, 2008

KANDUNGAN DAN BAHAYA ROKOK

,
Aku heran sama yang namanya perokok… Apalagi yang sudah sampai kecanduan. Katanya nggak bisa berhenti. Tapi nggak juga, buktinya temenku, namanya Ranny Daniel Talaksoru yang udah kecanduan rokok dari SMA, sekarang bisa berhenti juga tuh… Nggak lama-lama kok prosesnya.. Cuma 3 hari!! Hebat kan? Kalau dilihat dari kasus temenku ini, sebenarnya orang kalau mau berhenti ngrokok tinggal butuh komitmen aja kok. Berhenti ya berhenti… bener-bener STOP! Yang membuat orang nggak bisa berhenti ngrokok karena di saat beberapa hari dia nggak ngisep tuh rokok.. Orang itu nggak bisa ngelawan rasa ingin merokoknya. Jadi ya… ngerokok lagi deh… Padahal ngrokok itu selain membahayakan diri sendiri, juga orang lain di sekitarnya yang terkena asap rokok. Apalagi kalau ada ibu-ibu hamil yang sampai mengisap asap rokok, wah bisa mempengaruhi janinnya lho.. Zat-zat yang terkandung di dalam rokok itu ini :

Rokok mengandung zat-zat ini...

Nah makannya… dah tau bahaya rokok kan? Ayo.. yang masih ngrokok mending berhenti aja sekarang juga. Di iklan rokok aja ada peringatannya : Merokok dapat menyebabkan serangan jantung, impotensi, gangguan kehamilan dan janin. Mau punya penyakit kaya gitu?
Read more →

BAWANG PUTIH – BUMBU DAPUR BERKHASIAT

,
Banyak orang yang mungkin kurang suka dengan bawang putih. Selain baunya yang kita tahu sering untuk mengusir drakula pada banyak cerita fiksi(drakula pun nggak suka, hehe… ) juga mungkin rasanya yang agak aneh. Tapi, sebagai bumbu dapur, bawang putih bisa juga untuk mengganti peyedap masakan lho bahkan bisa juga untuk obat diabetes. Bawang putih mengandung senyawa yang bernama aliin. Ketika bawang diuleg(dihaluskan), senyawa aliin ini akan terurai menjadi alisin, amonia dan asam piruvat. Alisin sendiri mengandung zat belerang atau sulfur yang berbau menyengat, yang biasanya menjadikan kita tidak suka akan bawang putih. Lalu alisin ini akan diterbangkan oleh senyawa amonia ke udara yang semakin menambah baunya. Namun senyawa alisin yang menyengat ini memiliki khasiat untuk menghancurkan pembekuan darah pada arteri, mengurangi diabetes dan tekanan darah.
Selain itu bawang putih juga mengandung senyawa bernama alil dalam bentuk dialil-trisulfida, untuk mencegah penyakit degeneratif dan mengaktifkan pertumbuhan sel-sel baru.
Untuk mengobati diabetes, bawang putih dimakan mentah-mentah. Kalo tidak tahan dengan baunya bisa dibuat sambel kecap atau sambel bawang, yang penting bawang putih harus tetap mentah…
Untuk pencegahan kita bisa makan bawang putih 2 siung sehari, setiap hari…. Wah, tapi harga bawang putih tambah naik seiring kenaikan BBM.. Hoho… Ya itu, untuk menjaga kesehatan itu mahal, apalagi untuk mengubah status dari sakit menjadi sehat… Maka dari itu jagalah kesehatan selalu OK? ;)
Read more →

WORTEL BERMANFAAT BAGI PENGIDAP KEJANG JANTUNG

,
Tanaman Daucus carota atau biasa kita sebut wortel, merupakan tumbuhan jenis umbi akar yang ditanam sepanjang tahun di daerah dataran tinggi yang mempunyai kelembaban udara yang cukup. Jadi, tanaman wortel tidak musiman sehingga dapat dengan mudah didapatkan. Wortel mempunyai beberapa khasiat untuk mengobati kejang jantung, eksim, cacing kremi dan mata minus. Selain itu juga membantu menurunkan kadar kolesterol dalam darah, membantu pertahanan tubuh dari penyakit kanker paru-paru, tenggorokan, kerongkongan, prostat, kandung kemih dan leher, mencegah susah BAB serta membantu daya tanhan tubuh terhadap racun makanan.
Wortel dapat mengobati berbagai macam penyakit tersebut karena mempunyai kandungan vitamin A yang tinggi(12000 SI) dan juga mempunyai kandungan unsur yang lain seperti kalori sebesar 42 kalori, 1,2 gram protein, 0,3 gram lemak, 39 miligram kalsium, 9,3 gram hidrat arang, 37 miligram fosfor, 0,8 miligram besi, 0,06 miligram vitamin B1, dan 6 miligram vitamin C. Komposisi di atas diukur per 100 gram.

Pemanfaatan wortel untuk berbagai penyakit di atas adalah sebagai berikut:
Read more →

Saturday, June 14, 2008

TERAPI RELAKSASI DENGAN NATURA SOUND THERAPY 3

,
Pekerjaan yang menumpuk, dikejar deadline dan teman-temannya itu… kadang bisa membuat pikiran kita kacau.. Kalau sudah begitu, perlu yang dinamakan relaksasi. Ada satu software untuk merelaksasi pikiran. Namanya Natura Sound Therapy 3. Software ini memungkinkan kita unutk relaksasi dengan mendengarkan perpaduan suara natural, seperti suara burung, air mengalir, katak, serangga, hujan, desiran ombak, wind chimes, atau bisa ditambahkan ambience space jika kita mau. Tersedia juga brainwave synchronizer, yang berfungsi mengatur gelombang frekuensi otak pada level tertentu, yang selama ini dikenal ada 4 yaitu Beta, Alpha, Theta dan Delta.
Gelombang frekuensi Beta berfungsi agar kita dapat berkonsentrasi dengan lebih baik sehingga ideal untuk kita yang ingin menghadapi ujian, bermain olahraga dan aktivitas lain yang membutuhkan konsentrasi tinggi. Gelombang frekuensi Alpha berfungsi agar kita dapat lebih kreatif, rileks dan bervisualisasi dengan baik sehingga ideal untuk kita yang ingin berkontemplasi, mencari penyelesaian masalah dan membantu memvisualisasikan sesuatu untuk menggambarkan kekreativitasan kita. Gelombang frekuensi Theta terbentuk ketika seseorang sedang tidur(light sleep, bukan tidur yang benar-benar karena sudah tidak tahan melek). Gelombang ini dapat membangkitkan ingatan kita yang terdahulu sehingga dapat dengan mudah membawa suasana ke dalam suasana meditasi, meningkatkan kesehatan tubuh, meningkatkan kreativitas dan membantu daya tangkap dalam belajar. Gelobang frekuensi yang terakhir yaitu Delta membantu kita dalam proses penyembuhan, tidur(deep sleep).
Nah, penggunaan brainwave synchronizer ini tentu ada aturannya, yang dapat dibaca terlebih dahulu di buku petunjuk software ini. Informasi lebih lengkap mengenai software ini bisa didapatkan dengan mengunjungi website http://www.blissive.com.
Read more →

Thursday, June 12, 2008

MEMBUAT OS YANG BERJALAN DI ATAS OS DENGAN INNOTEK VIRTUAL BOX 1.5.6

,
Bagi Anda yang ingin mencoba-coba menginstall sistem operasi, Linux misalnya, Anda sekarang tidak perlu lagi takut pada hal-hal yang dapat merusak sistem operasi Anda yang lama. Terdapat sebuah aplikasi bernama VirtualBox yang dapat mengemulasi sebuah sistem operasi yang berjalan di atas sistem operasi Anda seperti layaknya sebuah program. VirtualBox dapat mengemulasi berbagai macam sistem operasi seperti DOS, Windows 3.1, Windows 95, Windows 98, Windows ME, Windows NT 4, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, OS/2 Warp 3, OS/2 Warp 4, OS/2 Warp 4.5, Linux 2.2, Linux 2.4, Linux 2.6, FreeBSD, Open BSD, NetBSD, NetWare, Solaris dan L4.
Cara kerja dari aplikasi ini adalah mengemulasi hardware yang ada seperti RAM, HardDisk, CD/DVD ROM, Floppy Disk, Audio(Sound Card), Network(LAN Card), VGA, dan USB FlashDisk. RAM dapat dialokasikan seperti yang kita mau tetapi kapasitas maksimal adalah physical RAM yang kita punya. Kapasitas hardisk juga tergantung kita yang membuat, demikian juga dengan alokasi memory untuk VGA, konfigurasi LAN Card dan Sound Card sedangkan Floppy disk, CD/DVD ROM, dan USB FlashDisk adalah built-in dari VirtualBox. Setelah selesai mengkonfigurasi hardware, maka sistem operasi yang kita inginkan dapat kita install seperti biasa layaknya menginstall sungguhan.
Kekurangan dari aplikasi ini adalah tidak dapat mendeteksi VGA yang kita punya. Jadi kita hanya dapat memakai VGA virtual yang disediakan VirtualBox. Tetapi di samping kekurangan tersebut, keuntungan yang didapat lebih banyak. Selain dapat menginstall sistem operasi yang lain, Anda dapat mempelajari sistem operasi yang Anda install tanpa takut merusak atau mengganggu sistem Anda yang sekarang.
Read more →

JAVA VS BAHASA PEMROGRAMAN LAINNYA

,
Java itu sulit, salah ketik sedikit error, rumit, dll.... Itu yang sering saya dengar dari orang-orang di sekitar saya. Ya, memang. Pada awalnya, Java memang terasa begitu sulit, karena Java merupakan bahasa pemrograman yang strongly-type(strict) dan mungkin Anda belum terbiasa saja. Tapi sadarkah Anda, bahwa dengan bahasanya yang strongly-type itu, malah membuat Java menjadi sangat konsisten dalam segala aspek. Dengan begitu, programming malah terasa nyaman.
Jika Anda sudah terbiasa dengan Java, berarti Anda telah menginvestasikan Java dalam hidup Anda. Menurut pandangan saya, hal itu sangat tepat karena banyak perusahaan mengembangkan Java, seperti IBM, Sun Microsystems, Oracle, dan Microsoft. Jika salah satu perusahaan mati, masih banyak perusahaan yang tetap mau mensuport Java. Yang kedua Java itu gratis. Semua bisa belajar Java. Yang ketiga banyak proyek2 yang menggunakan teknologi Java, dan Anda bisa memakainya dengan gratis juga, seperti Struts, Hibernate, Apache Tomcat, Tiles, Spring, Alfresco, dll.
Selain itu
Read more →

POLIMORFISME

,
Polymorphism atau Polimorfisme - dari namanya dapat diartikan : poli = banyak, morph=bentuk. Yup, memang arti polimorfisme pada Java mendekati hal itu, tepatnya satu metode yang mempunyai banyak bentuk, tergantung Objek yang dimasukkan dalam parameter. Ini contohnya: Misal, pertama saya punya kelas bernama Mobil, seperti di bawah ini:

[sourcecode language='java']
package polymorph;

public class Mobil
{
String merk()
{
return "Mobil tanpa merk";
}

}[/sourcecode]

Saya juga punya kelas Suzuki dan Toyota yang diextends dari kelas Mobil:

[sourcecode language='java']
package polymorph;

public class Suzuki extends Mobil
{
@Override
String merk()
{
return "Saya naik mobil Suzuki";
}

}

package polymorph;

public class Toyota extends Mobil
{
@Override
String merk()
{
return "Saya naik mobil Toyota";
}

}[/sourcecode]

Lalu saya punya kelas Pengendara yang ceritanya akan naik mobil:

[sourcecode language='java']
package polymorph;

public class Pengendara
{
private Mobil mobil=new Mobil();

public void merkMobil()
{
System.out.println(mobil.merk());
}

public void setMobil(Mobil b)
{
this.mobil=b;
}

public Mobil getMobil()
{
return mobil;
}
}[/sourcecode]

Terakhir, saya punya kelas Tester yang akan mengimplementasikan polimorfisme :

[sourcecode language='java']
package polymorph;

public class Tester
{
public static void main(String[] args)
{
Pengendara budi=new Pengendara();
Suzuki suzuki = new Suzuki();
Toyota toyota = new Toyota();
budi.setMobil(suzuki); //menyuruh budi naik mobil
budi.merkMobil(); //menyuruh budi menyebut merk mobil
}

}[/sourcecode]

Pada contoh kelas Tester di atas, saya suruh si budi naik mobil suzuki. Setelah itu budi saya suruh sebut merknya. Output dari kelas Tester di atas adalah Saya naik mobil Suzuki. Tetapi jika saya ubah statement

[sourcecode language='java']budi.setMobil(suzuki);[/sourcecode]

menjadi

[sourcecode language='java']budi.setMobil(toyota);[/sourcecode]

maka hasil outputnya adalah Saya naik mobil Toyota. Jadi dapat dilihat sendiri bahwa Anda hanya menjalankan satu buah method saja yaitu

[sourcecode language='java']budi.merkMobil();[/sourcecode]

tetapi dapat menghasilkan sesuatu yang berbeda tergantung objek yang diberikan. Itulah polimorfisme. Oke.. Semoga artikel ini membantu Anda dalam memahami polimorfisme.
Read more →

Wednesday, June 11, 2008

BACKUP(DUMPING) DAN RESTORE DATABASE MySQL

,
Setiap database penting untuk di-backup agar tidak terjadi bencana ketika sewaktu-waktu database yang Anda punya rusak, karena mati listrik mungkin... Atau mungkin suatu saat Anda ingin memindahkan database Anda ke komputer lain.. Who knows...? Ini saya ada tutorial untuk dumping dan restore database MySQL.

DUMPING:

Pertama, Anda harus tahu dulu username dan password yang dapat mengakses database yang akan di-backup(sebaiknya user yang mempunyai hak akses penuh terhadap database). Misalnya usernamenya budi, passwordnya budiganteng dan nama databasenya db_budi. Setelah itu ketikkan pada command prompt :

[sourcecode language='sql']mysqldump -u budi -p budiganteng db_budi > C:\backup\db_budi_backup.sql[/sourcecode]

Hasil file backup berupa file berekstensi .sql, dan dalam kasus ini nantinya file yang tercipta adalah db_budi_backup.sql yang terletak di C:\backup.

RESTORE:

Pertama, Anda buat dulu database di komputer lainnya(sebut saja komputer B) dengan nama database yang sama dengan database di komputer sebelumnya, dalam kasus ini, nama databasenya adalah db_budi dengan mengetikkan perintah create database db_budi. Di samping itu, di komputer B harus ada username budi dengan password budiganteng dengan level hak akses yang sama terhadap database di komputer sebelumnya, dalam kasus ini anggap saja admin. Jika belum ada, ketikkan perintah ini :

[sourcecode language='sql']grant all on db_budi.* to 'budi'@'localhost' identified by 'budiganteng'[/sourcecode]

Setelah user dibuat, pada command prompt ketikkan perintah :

[sourcecode language='sql']mysql -u budi -p budiganteng db_budi < C:\backup\db_budi_backup.sql[/sourcecode]

Setelah perintah ini dijalankan, maka Anda sudah me-restore database MySQL yang diinginkan.
Read more →

MEMBUAT SHUTDOWN TIMER DENGAN MEMANFAATKAN PROGRAM SHUTDOWN.EXE WINDOWS

,
Pada Windows XP, terdapat aplikasi bawaan untuk shutdown Windows itu sendiri yaitu shutdown.exe yang terletak di C:\WINDOWS\system32. Sebetulnya aplikasi shutdown bawaan Windows ini dapat dijalankan dengan menggunakan command prompt. Tetapi biasanya orang menjalankan dengan menjalankan menu start --> Turn Off Computer... --> shutdown. Dan hasilnya, komputer pasti langsung mati. Kita tidak dapat mengeset parameter yang ada pada shutdown.exe. Nah, bagaimana caranya jika mau mematikan komputer 1 jam lagi misalnya? Kita dapat menjalankan command prompt lalu mengetikkan shutdown -s -t 3600. -s artinya shutdown sedangkan -t 3600 berarti mengeset waktu 1 jam sebelum komputer mati. Cara ini dapat dilakukan tetapi mungkin tidak nyaman bagi sebagian orang. Untuk itu saya mencoba membuat aplikasi untuk menjalankan shutdown.exe milik Windows XP dengan Java. Berikut ini sorce codenya :


[sourcecode language='java']
/*
* Main.java
*
* Created on June 4, 2008, 6:47 AM
*/

package shutdowntimer;

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

/**
*
* @author FX. Budi Ariyanto
*/

public class Main extends javax.swing.JFrame {

/** Creates new form Main */

public Main() throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
initComponents();
}

private ProcessBuilder pb=null;
private Integer hour=1,minute=0,second=0,timer=3600;

/** This method is called from within the constructor to

* initialize the form.

* WARNING: Do NOT modify this code. The content of this method is

* always regenerated by the Form Editor.

*/

@SuppressWarnings("unchecked")

//

private void initComponents() {

jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
btnGo = new javax.swing.JButton();
btnCancel = new javax.swing.JButton();
spnHour = new javax.swing.JSpinner();
spnMinute = new javax.swing.JSpinner();
spnSeconds = new javax.swing.JSpinner();
cmbAction = new javax.swing.JComboBox();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jMenuBar1 = new javax.swing.JMenuBar();
menuFile = new javax.swing.JMenu();
itemExit = new javax.swing.JMenuItem();
menuAbout = new javax.swing.JMenu();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("ShutdownTimer 1.0");
jLabel1.setText("Set Timer :");
jLabel2.setText("Action :");
btnGo.setText("Go!");
btnGo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnGoActionPerformed(evt);

}

});

btnCancel.setText("Cancel Action");
btnCancel.setEnabled(false);
btnCancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {

btnCancelActionPerformed(evt);

}

});

spnHour.setValue(1);
cmbAction.setMaximumRowCount(4);
cmbAction.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Shutdown", "Restart", "Log Off" }));
jLabel3.setText("hour(s)");
jLabel4.setText("minute(s)");
jLabel5.setText("second(s)");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addGap(21, 21, 21)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(spnHour, javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel3)
.addGap(16, 16, 16)
.addComponent(spnMinute, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(spnSeconds, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel5))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel2)
.addGap(18, 18, 18)
.addComponent(cmbAction, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnGo)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnCancel)))
.addContainerGap())

);

jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jLabel5)
.addComponent(spnHour, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4)
.addComponent(spnSeconds, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(spnMinute, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(cmbAction, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnGo)
.addComponent(btnCancel))
.addGap(119, 119, 119))

);

menuFile.setText("File");
itemExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F4, java.awt.event.InputEvent.ALT_MASK));
itemExit.setText("Exit");
itemExit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {

itemExitActionPerformed(evt);

}
});

menuFile.add(itemExit);
jMenuBar1.add(menuFile);
menuAbout.setText("About");
menuAbout.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
menuAboutMouseClicked(evt);
}

});

jMenuBar1.add(menuAbout);
setJMenuBar(jMenuBar1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 75, Short.MAX_VALUE)
);

java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();

setBounds((screenSize.width-368)/2, (screenSize.height-130)/2, 368, 130);

}//


private void btnGoActionPerformed(java.awt.event.ActionEvent evt) {

hour = (Integer) spnHour.getValue()*3600;
minute = (Integer) spnMinute.getValue()*60;
second = (Integer) spnSeconds.getValue();
timer = hour + minute + second;

String comment = "Komputer ini akan "+cmbAction.getSelectedItem()+" dalam waktu "+spnHour.getValue()+" jam "+spnMinute.getValue()+" menit "+spnSeconds.getValue()+" detik.";

if(cmbAction.getSelectedItem().equals("Shutdown"))
{
pb = new ProcessBuilder("C:/WINDOWS/system32/shutdown.exe","-s","-t",timer.toString(),"-c",comment);

try
{
pb.start();

}
catch (IOException ex)
{
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}

}
else if(cmbAction.getSelectedItem().equals("Restart"))
{
pb = new ProcessBuilder("C:/WINDOWS/system32/shutdown.exe","-r","-t",timer.toString(),"-c",comment);

try
{
pb.start();
}
catch (IOException ex)
{
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}

}
else
{
pb = new ProcessBuilder("C:/WINDOWS/system32/shutdown.exe","-l","-t",timer.toString(),"-c",comment);

try
{
pb.start();
}
catch (IOException ex)
{
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}

btnCancel.setEnabled(true);
btnGo.setEnabled(false);
spnHour.setEnabled(false);
spnMinute.setEnabled(false);
spnSeconds.setEnabled(false);
cmbAction.setEnabled(false);

}

private void btnCancelActionPerformed(java.awt.event.ActionEvent evt) {

pb = new ProcessBuilder("C:/WINDOWS/system32/shutdown.exe","-a");

try {

pb.start();

} catch (IOException ex) {

Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);

}

btnCancel.setEnabled(false);
btnGo.setEnabled(true);
spnHour.setEnabled(true);
spnMinute.setEnabled(true);
spnSeconds.setEnabled(true);
cmbAction.setEnabled(true);

}

private void itemExitActionPerformed(java.awt.event.ActionEvent evt) {

System.exit(0);

}

private void menuAboutMouseClicked(java.awt.event.MouseEvent evt) {

new About().setVisible(true);

}

/**

* @param args the command line arguments

*/

public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
try {

new Main().setVisible(true);

} catch (ClassNotFoundException ex) {

Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);

} catch (InstantiationException ex) {

Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);

} catch (IllegalAccessException ex) {

Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);

} catch (UnsupportedLookAndFeelException ex) {

Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);

}

}

});

}

// Variables declaration - do not modify

private javax.swing.JButton btnCancel;
private javax.swing.JButton btnGo;
private javax.swing.JComboBox cmbAction;
private javax.swing.JMenuItem itemExit;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JPanel jPanel1;
private javax.swing.JMenu menuAbout;
private javax.swing.JMenu menuFile;
private javax.swing.JSpinner spnHour;
private javax.swing.JSpinner spnMinute;
private javax.swing.JSpinner spnSeconds;

// End of variables declaration

}
[/sourcecode]
Read more →