Perkenalkan sebelumnya nama saya Erlangga Lesmana Putra dibawah ini saya akan memberikan tutorial mengenai cara membuat program dengan tampilan menggunakan bahasa pemrograman java.
Nah sebelum memulai membuat program nya mari kita mengenal apa itu GUI?
GUI
GUI adalah singkatan dari Graphical User Interface yang merupakan sistem antarmuka yang memungkinkan manusia berinteraksi dengan perangkat elektronik melalui tampilan grafis.
Untuk membuat program berbasis GUI maka diperlukan beberapa komponen.Jendela merupakan komponen utama sebuah aplikasi GUI.
Di dalam jendela kita memasukan berbagai macam komponen seperti tombol, teks, combobox, dan lain-lain.
Jendela pada pemrograman Swing dapat kita buat dengan Class JFrame.
Pada kesempatan ini, kita akan belajar cara membuat jendela dengan metode yang mudah yaitu Drag and Drop
Membuat Proyek Baru
Sebelum kita mulai membuat jendela, buatlah proyek baru pada Netbeans. Kali ini saya menggunakan aplikasi Apache Netbeans IDE versi 11.0
Buka program Netbeans nya
Pilih menu File dan pilih submenu New Project
Lalu pada bagian Categories pilih Java with Ant dan Project nya pilih Java Application lalu klik Next
Project name silahkan di isi sesuai yang anda inginkan dan Jangan Centang pada bagian "Create Main Class" lalu klik Finish
kemudian klik tanda plus pada kiri nama project lalu klik kanan pada opsi “Default Package”. Pilih new lalu pilih “Jframe Form”
Pada bagian Class name isikan nama file programnya lalu klik Finish
Buat desain tampilan nya seperti gambar dibawah ini
Keterangan :
Drag and drop material yang terletak pada Swing containers dan swing control
Material yang saya gunakan :
1. Panel untuk memberikan warna pada background jendela Jframe
2. Label untuk memberikan teks seperti kata kata “Kalkulator sederhana,bilangan pertama,bilangan kedua dan hasil perhitungan
3. textField untuk tempat Input dan Output
4. Button untuk Tombol +,-,x,/,hapus,keluar
5. Ganti variable pada textField yang terletak di kanan bagian Bilangan pertama menjadi txt_bilanganpertama,
6. Ganti variable pada textField yang terletak di kanan bagian Bilangan kedua menjadi txt_bilangankedua,
7. Ganti variable pada textField yang terletak di kanan bagian Hasil perhitungan menjadi txt_hasil,
8. Ganti variable pada Button Penjumlahan dengan nama btn_tambah
9. Ganti variable pada Button Pengurangan dengan nama btn_kurang
10. Ganti variable pada Button Perkalian dengan nama btn_kali
11. Ganti variable pada Button Pembagian dengan nama btn_bagi
12. Ganti variable pada Button hapus dengan nama btn_clear
13. Ganti variable pada Button Keluar dengan nama btn_exit
Setelah itu klik kiri dua kali pada button(tombol) "Hapus" dan isikan kode dibawah ini
txt_bilanganpertama.setText("");
txt_bilangankedua.setText("");
txt_hasil.setText("");
Setelah itu klik kiri dua kali pada button(tombol) "Keluar" dan isikan kode dibawah ini
System.exit(0);
Setelah itu klik kiri dua kali pada button(tombol) "Penjumlahan" dan isikan kode dibawah ini
double bilangan1, bilangan2, hasil;
bilangan1=Double.parseDouble(txt_bilanganpertama.getText().toString());
bilangan2=Double.parseDouble(txt_bilangankedua.getText().toString());
hasil = bilangan1 + bilangan2;
String bil1 = Double.toString(bilangan1);
String bil2 = Double.toString(bilangan2);
String hasil1 = Double.toString(hasil);
txt_hasil.setText(bil1+" + "+bil2+" = "+hasil1);
Setelah itu klik kiri dua kali pada button(tombol) "Pengurangan" dan isikan kode dibawah ini
double bilangan1, bilangan2, hasil;
bilangan1=Double.parseDouble(txt_bilanganpertama.getText().toString());
bilangan2=Double.parseDouble(txt_bilangankedua.getText().toString());
hasil = bilangan1 - bilangan2;
String bil1 = Double.toString(bilangan1);
String bil2 = Double.toString(bilangan2);
String hasil1 = Double.toString(hasil);
txt_hasil.setText(bil1+" - "+bil2+" = "+hasil1);
Setelah itu klik kiri dua kali pada button(tombol) "Pembagian" dan isikan kode dibawah ini
double bilangan1, bilangan2, hasil;
bilangan1=Double.parseDouble(txt_bilanganpertama.getText().toString());
bilangan2=Double.parseDouble(txt_bilangankedua.getText().toString());
hasil = bilangan1 / bilangan2;
String bil1 = Double.toString(bilangan1);
String bil2 = Double.toString(bilangan2);
String hasil1 = Double.toString(hasil);
txt_hasil.setText(bil1+" / "+bil2+" = "+hasil1);
Setelah itu klik kiri dua kali pada button(tombol) "Perkalian" dan isikan kode dibawah ini
double bilangan1, bilangan2, hasil;
bilangan1=Double.parseDouble(txt_bilanganpertama.getText().toString());
bilangan2=Double.parseDouble(txt_bilangankedua.getText().toString());
hasil = bilangan1 * bilangan2;
String bil1 = Double.toString(bilangan1);
String bil2 = Double.toString(bilangan2);
String hasil1 = Double.toString(hasil);
txt_hasil.setText(bil1+" x "+bil2+" = "+hasil1);
Untuk mencari file nya terdapat dalam folder Name Project nya tadi didalam folder SRC
jika sesuai tutorial ini maka terdapat di E:\ProgramGUI\src\ProgramErlangga.java
Nah sudah selesai sehingga kode lengkap programnya ialah seperti ini :
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Erlangga Lesmana P
*/
public class ProgramErlangga extends javax.swing.JFrame {
/**
* Creates new form ProgramErlangga
*/
public ProgramErlangga() {
initComponents();
}
/**
* 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")
// //GEN-BEGIN:initComponents
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
txt_bilanganpertama = new javax.swing.JTextField();
txt_bilangankedua = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
btn_tambah = new javax.swing.JToggleButton();
btn_kali = new javax.swing.JToggleButton();
btn_kurang = new javax.swing.JToggleButton();
btn_bagi = new javax.swing.JToggleButton();
jLabel4 = new javax.swing.JLabel();
txt_hasil = new javax.swing.JTextField();
btn_exit = new javax.swing.JButton();
btn_clear = new javax.swing.JButton();
jLabel5 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setPreferredSize(new java.awt.Dimension(503, 315));
jPanel1.setBackground(new java.awt.Color(0, 0, 255));
jLabel1.setFont(new java.awt.Font("Times New Roman", 0, 20)); // NOI18N
jLabel1.setForeground(new java.awt.Color(255, 255, 255));
jLabel1.setText("KALKULATOR SEDERHANA");
jLabel2.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
jLabel2.setForeground(new java.awt.Color(255, 255, 255));
jLabel2.setText("Bilangan Pertama");
txt_bilanganpertama.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
txt_bilangankedua.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
jLabel3.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
jLabel3.setForeground(new java.awt.Color(255, 255, 255));
jLabel3.setText("Bilangan Kedua");
btn_tambah.setBackground(new java.awt.Color(51, 255, 255));
btn_tambah.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
btn_tambah.setText("Penjumlahan(+)");
btn_tambah.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_tambahActionPerformed(evt);
}
});
btn_kali.setBackground(new java.awt.Color(51, 255, 255));
btn_kali.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
btn_kali.setText("Perkalian(x)");
btn_kali.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_kaliActionPerformed(evt);
}
});
btn_kurang.setBackground(new java.awt.Color(51, 255, 255));
btn_kurang.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
btn_kurang.setText("Pengurangan(-)");
btn_kurang.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_kurangActionPerformed(evt);
}
});
btn_bagi.setBackground(new java.awt.Color(51, 255, 255));
btn_bagi.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
btn_bagi.setText("Pembagian(/)");
btn_bagi.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_bagiActionPerformed(evt);
}
});
jLabel4.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
jLabel4.setForeground(new java.awt.Color(255, 255, 255));
jLabel4.setText("Hasil Perhitungan");
txt_hasil.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
txt_hasil.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txt_hasilActionPerformed(evt);
}
});
btn_exit.setBackground(new java.awt.Color(0, 255, 255));
btn_exit.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
btn_exit.setText("KELUAR");
btn_exit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_exitActionPerformed(evt);
}
});
btn_clear.setBackground(new java.awt.Color(0, 255, 255));
btn_clear.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
btn_clear.setText("HAPUS");
btn_clear.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_clearActionPerformed(evt);
}
});
jLabel5.setFont(new java.awt.Font("Times New Roman", 0, 11)); // NOI18N
jLabel5.setForeground(new java.awt.Color(255, 255, 0));
jLabel5.setText("by Erlangga Lesmana Putra");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(120, 120, 120)
.addComponent(jLabel1)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel2)
.addComponent(jLabel3))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txt_bilanganpertama)
.addComponent(txt_bilangankedua)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(btn_bagi, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btn_tambah, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(btn_kurang, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btn_kali, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(0, 0, Short.MAX_VALUE))))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel4)
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txt_hasil)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(btn_clear)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 29, Short.MAX_VALUE)
.addComponent(btn_exit)
.addGap(113, 113, 113))))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jLabel5)))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel5)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(txt_bilanganpertama, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(txt_bilangankedua, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(3, 3, 3)))
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btn_tambah)
.addComponent(btn_kurang))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btn_bagi)
.addComponent(btn_kali))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(txt_hasil, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btn_exit)
.addComponent(btn_clear))
.addContainerGap(24, Short.MAX_VALUE))
);
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)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 126, Short.MAX_VALUE))
);
pack();
}// //GEN-END:initComponents
private void btn_clearActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_clearActionPerformed
// TODO add your handling code here:
txt_bilanganpertama.setText("");
txt_bilangankedua.setText("");
txt_hasil.setText("");
}//GEN-LAST:event_btn_clearActionPerformed
private void btn_exitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_exitActionPerformed
// TODO add your handling code here:
System.exit(0);
}//GEN-LAST:event_btn_exitActionPerformed
private void btn_tambahActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_tambahActionPerformed
// TODO add your handling code here:
double bilangan1, bilangan2, hasil;
bilangan1=Double.parseDouble(txt_bilanganpertama.getText().toString());
bilangan2=Double.parseDouble(txt_bilangankedua.getText().toString());
hasil = bilangan1 + bilangan2;
String bil1 = Double.toString(bilangan1);
String bil2 = Double.toString(bilangan2);
String hasil1 = Double.toString(hasil);
txt_hasil.setText(bil1+" + "+bil2+" = "+hasil1);
}//GEN-LAST:event_btn_tambahActionPerformed
private void btn_kurangActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_kurangActionPerformed
// TODO add your handling code here:
double bilangan1, bilangan2, hasil;
bilangan1=Double.parseDouble(txt_bilanganpertama.getText().toString());
bilangan2=Double.parseDouble(txt_bilangankedua.getText().toString());
hasil = bilangan1 - bilangan2;
String bil1 = Double.toString(bilangan1);
String bil2 = Double.toString(bilangan2);
String hasil1 = Double.toString(hasil);
txt_hasil.setText(bil1+" - "+bil2+" = "+hasil1);
}//GEN-LAST:event_btn_kurangActionPerformed
private void btn_bagiActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_bagiActionPerformed
// TODO add your handling code here:
double bilangan1, bilangan2, hasil;
bilangan1=Double.parseDouble(txt_bilanganpertama.getText().toString());
bilangan2=Double.parseDouble(txt_bilangankedua.getText().toString());
hasil = bilangan1 / bilangan2;
String bil1 = Double.toString(bilangan1);
String bil2 = Double.toString(bilangan2);
String hasil1 = Double.toString(hasil);
txt_hasil.setText(bil1+" / "+bil2+" = "+hasil1);
}//GEN-LAST:event_btn_bagiActionPerformed
private void btn_kaliActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_kaliActionPerformed
// TODO add your handling code here:
double bilangan1, bilangan2, hasil;
bilangan1=Double.parseDouble(txt_bilanganpertama.getText().toString());
bilangan2=Double.parseDouble(txt_bilangankedua.getText().toString());
hasil = bilangan1 * bilangan2;
String bil1 = Double.toString(bilangan1);
String bil2 = Double.toString(bilangan2);
String hasil1 = Double.toString(hasil);
txt_hasil.setText(bil1+" x "+bil2+" = "+hasil1);
}//GEN-LAST:event_btn_kaliActionPerformed
private void txt_hasilActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txt_hasilActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_txt_hasilActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(ProgramErlangga.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(ProgramErlangga.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(ProgramErlangga.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(ProgramErlangga.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ProgramErlangga().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JToggleButton btn_bagi;
private javax.swing.JButton btn_clear;
private javax.swing.JButton btn_exit;
private javax.swing.JToggleButton btn_kali;
private javax.swing.JToggleButton btn_kurang;
private javax.swing.JToggleButton btn_tambah;
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.JPanel jPanel1;
private javax.swing.JTextField txt_bilangankedua;
private javax.swing.JTextField txt_bilanganpertama;
private javax.swing.JTextField txt_hasil;
// End of variables declaration//GEN-END:variables
}
Hasil Outputnya :
Nah sekian dulu tutorial dan penjelasan dari saya
Mohon maaf apabila terdapat kesalahan
Terima kasih sudah berkunjung
Tidak ada komentar:
Posting Komentar