Rabu, 29 Juni 2011

AKUA-SISWA (Aplikasi Komputer Untuk Absensi Siswa)






Dengan perkembangan teknologi yang semakin pesat ini, bayak aplikasi-aplikasi yang bertebaran di situs jejaring internet, yang merubah status suatu system dari proses cara kerja yang manual menjadi suatu system yang terkomputerisasi. hal ini yang membuat para pengembang system dan programmer berlomba-lomba untuk membuat suatu karya aplikasi yang mutakhir untuk menggantikan system yang lama. saya penulis adalah salah satu dari pengembang aplikasi yang berorientasi pada pemrogramman berbasis object. kali ini penulis akan mencantumkan aplikasi baru yaitu AKUA-SISWA yang dibuat untuk pengolahan data absensi siswa yang mana object yang terkait adalah seorang admin (bag. TU), guru, walikelas, dan ketua jurusan.
AKUA-SISWA dapat diolah dengan mudah karena prosesnya terbagi menjadi 2 yaitu server dengan client.
Server bertugas untuk pengolahan dan pencetakan laporan-laporan.
Client bertugas untuk aktivitas absen yang berjalan.

Selasa, 28 Juni 2011

KeyListener in Java






Assalamualaikum Wr.. Wb..
Sepertinya penulis sudah lama tidak pernah meng-update blog ini lagi, karena begitu banyak kesibukan dari luar hingga penulis lupa dengan tulis menulis di blog ini.
Sekarang penulis akan menyampaikan tentang pembuatan KeyListener di java untuk menggerakan gambar atau membaca inputan karakter dari Keyboard, adapun tulisan ini dibuat karena permintaan dari salah satu teman penulis yang dari kampus, katanya sih ingin dibuatkan tentang GAME KEYBOARD, hemm.... penulis bingung maksud dari pertanyaan tersebut, namun pada intinya mungkin teman penulis maksudnya ingin dibuatkan sebuah game sederhana yang hanya sebuah gambar bergerak dengan menggunakan tombol navigasi di keyboard ( mungkin tu maksudnya ) he..he...

ya dah sekarang kita langsung kepokok permasalahannya sajah.

Menggerakan gambar dengan tombol navigasi

buat kelas interface dengan nama
ListenerKeyboard.java

kelas ini digunakan sebagai template untuk mendengarkan tombol navigasi dan semua karakter yang ada di Keyboard

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package latihan.game.util;

import java.awt.event.KeyEvent;

/**
*
* @author Islam
*/
public interface ListenerKeyboard {

public void LeftMode();

public void RigthMode();

public void UpMode();

public void DownMode();

public void BackSpace();

public void AllCharacter(KeyEvent e);

public String getText();
}


Kemudian buat kelas
PanelImage.java

Kelas ini untuk panel yang akan kita berikan gambar dan mengatur lokasi sesuai dengan tombol navigasi

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package latihan.game.widget;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JPanel;

/**
*
* @author Islam
*/
public class PanelImage extends JPanel{
private Image img;
private int location_X=50,location_Y=50;
private String status="";

public PanelImage(String filename) {
img = new ImageIcon(filename).getImage();

}

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D gd = (Graphics2D) g.create();
gd.drawImage(img, location_X, location_Y, img.getWidth(null), img.getHeight(null), null);
gd.drawString(status, location_X, location_Y);
gd.dispose();
}

public void Left(){
if(location_X==0)
return;
else
location_X--;
status = "Ke Kiri \n (Left)";
repaint();
}

public void Rigth(){
location_X++;
status = "Ke Kanan \n (Rigth)";
repaint();
}

public void Up(){
if(location_Y==0)
return;
else
location_Y--;
status = "Ke Atas \n (UP)";
repaint();
}

public void Down(){
location_Y++;
status = "Ke Bawah \n (Down)";
repaint();
}


}

Setelah itu baru buat kelas
ActionGameImage.java

Kelas ini merupakan implementasi dari kelas ListenerKeyboard dan masing-masing method memiliki aksinya sendiri.

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package latihan.game.action;

import java.awt.event.KeyEvent;
import javax.swing.JOptionPane;
import latihan.game.util.ListenerKeyboard;
import latihan.game.widget.PanelImage;

/**
*
* @author Islam
*/
public class ActionGameImage implements ListenerKeyboard{

private PanelImage panel;

public ActionGameImage(PanelImage panel) {
this.panel=panel;
}

@Override
public void LeftMode() {
panel.Left();

}

@Override
public void RigthMode() {
panel.Rigth();
}

@Override
public void UpMode() {
panel.Up();
}

@Override
public void DownMode() {
panel.Down();
}

@Override
public void BackSpace() {
return;
}

@Override
public void AllCharacter(KeyEvent e) {
JOptionPane.showMessageDialog(null, "Anda Menekan hurup " +e.getKeyChar());
}

@Override
public String getText() {
return null;
}

}

dan sekarang buat aksi untuk component panelnya turunkan dari kelas KeyAdapter
buat kelas dengan nama

ActionImage.java

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package latihan.game.util;

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

/**
*
* @author Islam
*/
public class ActionImage extends KeyAdapter{

private ListenerKeyboard listener;

public ActionImage() {
}

@Override
public void keyPressed(KeyEvent e) {

super.keyPressed(e);

if(e.getKeyCode()==KeyEvent.VK_LEFT){
listener.LeftMode();

}else if(e.getKeyCode()==KeyEvent.VK_RIGHT){
listener.RigthMode();

}else if(e.getKeyCode()==KeyEvent.VK_UP){
listener.UpMode();

}else if(e.getKeyCode()==KeyEvent.VK_DOWN){
listener.DownMode();

}else if(e.getKeyCode()==KeyEvent.VK_BACK_SPACE){
listener.BackSpace();

}else {
listener.AllCharacter(e);
}


}

public void addListener(ListenerKeyboard listener){
this.listener=listener;
}

}


Setelah semua aksinya telah dibuat baru sekarang kita masuk ke GUI-nya
buat kelas dengan nama

FormGameImage.java

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package latihan.game.gui;

import javax.swing.JFrame;
import latihan.game.action.ActionGameImage;
import latihan.game.util.ActionImage;
import latihan.game.widget.PanelImage;

/**
*
* @author Islam
*/
public class FormGameImage extends JFrame{

private PanelImage panel = new PanelImage("gambar.png");
private ActionGameImage listener = new ActionGameImage(panel);

public FormGameImage(){
initComponent();
ActionImage action = new ActionImage();
action.addListener(listener);
panel.addKeyListener(action);
panel.setFocusable(true);

}

private void initComponent(){
setDefaultCloseOperation(3);
setContentPane(panel);
setLocationRelativeTo(null);
setSize(300, 300);

}
}

lalu untuk menjalankannya buat kelas dengan nama

MainGameImage.java

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package latihan.game.main;


import latihan.game.gui.FormGameImage;

/**
*
* @author Islam
*/
public class MainGameImage {

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

public void run() {
new FormGameImage().setVisible(true);
}
});
}
}

Silahkan download linknya disini