Berikut ini adalah coding untuk membuat program Kapal Laut dengan J2ME
CODING
import javax.microedition.lcdui.*;
import java.io.IOException;
public class MainCanvas extends Canvas implements Runnable, CommandListener{
private Display display;
private KapalLaut midlet;
private Image image;
int x = 0;
int y = 0;
int xKotak;
int yKotak;
Command cmdNewGame = new Command("New game", Command.SCREEN, 1);
Command cmdExit = new Command("Exit", Command.SCREEN, 1);
String keterangan = "";
String c = "";
private boolean kiri = false;
private boolean kanan = true;
public MainCanvas(KapalLaut midlet, Display display){
this.midlet = midlet;
this.display = display;
xKotak = getWidth()/2 - 5;
yKotak = getHeight() - 10;
addCommand(cmdNewGame);
addCommand(cmdExit);
setCommandListener(this);
try{
image = Image.createImage("/pyg.jpg");
}
catch(IOException ioe){
}
}
public void paint(Graphics g){
g.setColor(255,255,255);
g.fillRect(0, 0, getWidth(), getHeight());
g.drawImage(image, x, y, Graphics.TOP | Graphics.LEFT);
g.setColor(255,0,0);
g.fillRect(xKotak, yKotak, 10, 10);
g.setColor(0,0,0);
g.drawString(keterangan, getWidth()/2-20, getHeight()/2, Graphics.TOP | Graphics.LEFT);
g.drawString(c, 0, 0, Graphics.TOP|Graphics.LEFT);
}
public void commandAction(Command c, Displayable d){
if (c == cmdNewGame){
midlet.startApp();
}
if (c == cmdExit){
midlet.exitMIDlet();
}
}
public void keyPressed(int keyCode){
if (keyCode == KEY_NUM1){
kiri = true;
kanan = false;
}
if (keyCode == KEY_NUM3){
kiri = false;
kanan = true;
}
}
public void run(){
while(y <= (getHeight() - 60)){ try{ Thread.sleep(100); } catch(InterruptedException ie){ } if ((kiri) && (x > 0)){
x = x - 10;
}
else if ((kanan) && (x < (getWidth() - 60))){ x = x + 10; } y = y + 5; repaint(); } if (((x+23) >= xKotak) && (x+23 <= xKotak+13)){ keterangan = "Kapal Laut Aman"; c = "kapal laut"; } else{ keterangan = "Kapal Laut Karam"; try{ Thread.sleep(100); } catch(InterruptedException ie){ } y = y + 5; } repaint(); } } Program J2ME Kapal Laut
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class KapalLaut extends MIDlet{
private Display display;
private MainCanvas mainCanvas;
public KapalLaut(){
display = Display.getDisplay(this);
}
public void startApp(){
mainCanvas = new MainCanvas(this, display);
display.setCurrent(mainCanvas);
new Thread(mainCanvas).start();
}
public void pauseApp(){
}
public void destroyApp(boolean unconditional){
}
public void exitMIDlet(){
destroyApp(false);
notifyDestroyed();
}
}
Written by Aim |
Labels:
Pemrograman Berorientasi Objek
//
1 comments
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.
Written by Aim |
Labels:
Pemrograman Berorientasi Objek
//
0
comments
Coding
View
Ini adalah view untuk menginputkan jumlah data:
Ini adalah view untuk menginputkan data ke-1:
Ini adalah view untuk menginputkan data ke-2:
Ini adalah view untuk menginputkan data ke-3:
Ini adalah view untuk menginputkan data ke-4:
Ini adalah view untuk menginputkan data ke-5:
Ini adalah view untuk menginputkan data yang dicari:
Hasilnya ditampilkan dalam command prompt (cmd) seperti di bawah ini:
Subscribe to:
Posts (Atom)

