Berikut ini adalah coding java dari program tersebut:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class ProgArusIo extends JFrame {
// Mendeklarasikan Tiga text Field dan atau button jumlah
private JTextField jTFInput1, jTFInput2, jTFHasil;
private JButton btnJumlah,btnSave,btnLoad,btnRefresh;
String namaBerkas1 ="Tarea.out";
String namaBerkas2 ="Tarea1.out";
String namaBerkas3 ="Tarea2.out";
/** Main method */
public static void main(String args [])
{
ProgArusIo frame = new ProgArusIo();
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
/** Konstruktor Default */
public ProgArusIo()
{
setTitle("Menghitung Arus (Ampere)");
setBackground(Color.blue);
setForeground(Color.black);
// Menggunakan panel P1 untuk mengelompokan komponen text Field
JPanel p1 = new JPanel();
p1.setLayout(new GridLayout(0,1,0,2));
p1.add(new JLabel("Tegangan"));
p1.add(jTFInput1 = new JTextField(15));
p1.add(new JLabel("Hambatan"));
p1.add(jTFInput2 = new JTextField(15));
p1.add(new JLabel("Arus"));
p1.add(jTFHasil = new JTextField(15));
jTFHasil.setEditable(false); // Set jTFHasil menjadi non editable
// Menggunakan panel p2 untuk button penjumlahan
JPanel p2 = new JPanel();
p2.setLayout(new GridLayout(3,1,0,10));
p2.add(btnSave = new JButton("Save"));
p2.add(btnLoad = new JButton("Load"));
p2.add(btnRefresh = new JButton("Refresh"));
// Mengeset Flow Layout untuk Frame dan Menambahkan
// panel panel ke frame
JPanel p3=new JPanel();
p3.setLayout(new FlowLayout());
p3.add(btnJumlah=new JButton("Hitung Arus"));
getContentPane().setLayout(new BorderLayout());
getContentPane().add(p1, BorderLayout.CENTER);
getContentPane().add(p2, BorderLayout.EAST);
getContentPane().add(p3, BorderLayout.SOUTH);
// Me-register listener
btnJumlah.addActionListener(new ProgArusIo.PenanganTombol());
btnSave.addActionListener(new ProgArusIo.PenanganTombol());
btnLoad.addActionListener(new ProgArusIo.PenanganTombol());
btnRefresh.addActionListener(new ProgArusIo.PenanganTombol());
show();
}
/** Menangani operasi penjumlahan */
class PenanganTombol implements ActionListener {
public void actionPerformed(ActionEvent e)
{
String s = e.getActionCommand();
if (e.getSource()==btnJumlah)
{
// Mengambil nilai int dari text field dan menggunakan trim()
// untuk membuang spasi yang tidak perlu dalam text field
int volt = (Integer.parseInt(jTFInput1. getText().trim()));
int ohm = (Integer.parseInt(jTFInput2. getText() .trim()));
int hasil = volt/ohm;
// Mengeset hasil pada TextField jTFHasil
jTFHasil.setText(String.valueOf(hasil));
}
else if (s.equals("Save")) {
try {
FileWriter berkasKeluaran1= new FileWriter(namaBerkas1);
FileWriter berkasKeluaran2= new FileWriter(namaBerkas2);
FileWriter berkasKeluaran3= new FileWriter(namaBerkas3);
String isiTextArea = jTFInput1.getText();
String isi1TextArea = jTFInput2.getText();
String isiHasil = jTFHasil.getText();
berkasKeluaran1.write(isiTextArea);
berkasKeluaran2.write(isi1TextArea);
berkasKeluaran3.write(isiHasil);
berkasKeluaran1.close();
berkasKeluaran2.close();
berkasKeluaran3.close();
}
catch (IOException i) {
System.err.println("Gagal menyimpan berkas");
System.exit(1);
}
jTFInput1.setText(" Data Telah Disimpan \n");
jTFInput2.setText(" Data Telah Disimpan \n");
jTFHasil.setText(" Data Telah Disimpan \n");
}
else if (s.equals("Load")) {
try {
FileReader berkasMasukan1= new FileReader(namaBerkas1);
BufferedReader streamMasukan1= new BufferedReader(berkasMasukan1);
FileReader berkasMasukan2= new FileReader(namaBerkas2);
BufferedReader streamMasukan2= new BufferedReader(berkasMasukan2);
FileReader berkasMasukan3= new FileReader(namaBerkas3);
BufferedReader streamMasukan3= new BufferedReader(berkasMasukan3);
String teks1="";
String teks2="";
String teks3="";
while (true) {
String barisData1 = streamMasukan1.readLine();
if (barisData1 == null)
break;
teks1=teks1+barisData1 + '\n';
while (true) {
String barisData2 = streamMasukan2.readLine();
if (barisData2 == null)
break;
teks2=teks2+barisData2 + '\n';
while (true) {
String barisData3= streamMasukan3.readLine();
if (barisData3 == null)
break;
teks3=teks3+barisData3 + '\n';
}
}
}
berkasMasukan1.close();
jTFInput1.setText(teks1);
berkasMasukan2.close();
jTFInput2.setText(teks2);
berkasMasukan3.close();
jTFHasil.setText(teks3);
}
catch (IOException i) {
jTFInput1.setText("Data Error");
jTFInput2.setText("Data Error");
jTFHasil.setText("Data Error");
}
}
else if (s.equals("Refresh")) {
jTFInput1.setText("");
jTFInput2.setText("");
jTFHasil.setText("");
}
}
}
}
Sedangkan tampilan di bawah ini adalah tampilan GUI hasil dari coding di atas:
- Masukkan (input) nilai Tegangan dan Hambatan pada space yang telah disediakan, lalu klik tombol (button) Hitung Arus. Pada space Arus muncul hasil dari penghitungan tersebut. Untuk lebih jelasnya, seperti yang terlihat pada gambar di bawah ini.
- Jika ingin menyimpan data (inputan dan hasil penghitungan) di atas, klik tombol (button) Save, maka inputan dan hasil penghitungan akan tersimpan dengan sendirinya. Seperti yang terlihat pada gambar di bawah ini.
- Untuk menghapus space, dapat dilakukan dengan meng-klik tombol (button) Refresh. Tampilannya akan terlihat seperti berikut ini.
- Jika ingin memanggil kembali data (inputan dan hasil penghitungan) yang telah disimpan tadi, klik tombol (button) Load. Seperti yang terlihat pada gambar di bawah.
- Dan yang terakhir, untuk menghapus kembali space-nya, dapat mengklik tombol (button) Refresh sekali lagi.
Demikianlah penjelasan mengenai pembuatan program penghitung arus listrik dengan java.io melalui tampilan GUI sebagai interface, yang dilengkapi dengan coding dan tampilan GUI-nya. Semoga bermanfaat dan terima kasih.
miwwa said...
hore! ak yg comment pertama! atau emang ga ada yg comment nih? yauda lha, karena ak baik, ntar ak masukin link blog aim di tempat ak, ok? aim juga ya he3.. peace love and gauL