Kamis, 10 November 2011

Java Validator

Data merupakan komponen yang sangat penting dalam sebuah sistem informasi, untuk itu dalam aplikasinya dibutuhkan adanya sebuah validasi untuk menangani data-data yang akan masuk ke dalam database. Validator merupakan utilitas yang memvalidasi inputan agar data yang akan masuk ke dalam database sesuai dengan kriteria yang diharapkan. Disini penulis akan mengulas tentang pembuatan Validator di API Java. 

Siswa.java

ServiceValidator.java

Validator.java

Form.java


Buatlah Form yang memiliki komponen nis, nama, alamat, dan tanggal lahir seperti pada gambar dibawah ini

lalu sisipkan kode dibawah ini kedalam Form yang udah dibuat tadi

Jika program dijalankan maka ketika Inputan masih belum terisi akan mengeluarkan pesan peringatan seperti dibawah ini

Ketika data telah diisi semua maka akan mengeluarkan pesan success seperti dibawah ini


Semoga Bermanfaat



Sabtu, 09 Juli 2011

Java User Group (JUG) - ikmi

Java User Group (JUG) adalah sekelompok orang yang memiliki kepentingan bersama dalam teknologi java dan bertemu secara teratur untuk berbagi ide teknisi dan informasi. Sumber http://java.sun.com/community/usergroups.

Java User Group (JUG) Indonesia merupakan sekumpulan anggota sebagai pengguna java yang berada diwilayah Indonesia, didirikan pada tanggal 12 April 2003 oleh Frans Thamura. Selebihnya saya kurang tahu tentang JUG Indonesia, karena berbagai situs resmi JUG kemungkinan sedang dalam maintenance jadi saya belum bisa menjelaskan lebih detail tentang JUG Indonesia, tetapi disini saya akan berikan link dan facebook JUG Indonesia dibawah ini :

Website : http://jug.or.id/

Facebook : http://www.facebook.com/jug.indonesia

Kemudian terciptalah Group-group yang lain, sebagai komunitas pengguna java dan salah satunya adalah JUG yang akan kita buat ini .

JUG-ikmi merupakan komunitas pengguna pemrogramman java yang difokuskan untuk wilayah Cirebon, terutama pada kampus STMIK ikmi Cirebon.

Dengan adanya komunitas ini diharapkan seluruh mahasiswa STMIK ikmi ikut andil dalam membangun sumber daya teknologi yang berorientasi pada bahasa pemrogramman java.

Adapun ketentuan-ketentuan persyaratannya sebagai berikut :

  1. Mau berusaha keras
  2. Tidak pantang menyerah
  3. Mempunyai keinginan dan tujuan untuk membangun komunitas yang telah dibuat secara kebersamaan
  4. Tidak mudah tersinggung
  5. Keep smile ketika mengerjakan tugas
  6. Disiplin waktu
  7. Ber-ukhuwah dan menjadikan komunitas ini sebagai keluarga kita
  8. Aktif, Transitif, dan Komunikatif
  9. Tidak harus pintar asalkan mau belajar
  10. Time work (mampu bekerja secara tim)

Jika anda sudah memenuhi kriteria persyaratan diatas maka anda boleh melanjutkan untuk mendaftar ke komunitas JUG-ikmi.



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


Senin, 07 Februari 2011

Aplikasi Perpustakaan (Library Application) vers 1.0

Sekarang sudah banyak aplikasi perpustakan yang bertebaran di google , disini penulis telah merilis aplikasi perpustakaan vers 1.0 Beta, maksud Beta disini menandakan bahwa aplikasi ini masih belum lengkap dan stabil untuk dioperasikan secara maksimal. nah... jika temen-temen berminat ingin memaksimalkan performa aplikasi ini maka temen-temen bisa menjadi donatur atau membeli aplikasi kepada penulis., untuk lebih lengkapnya silahkan download dokumentasi aplikasi ini pada artikel sebelumnya.

Silahkan download dan coba Library Application disini

atau Download Library Application

Langkah-langkah Menjalankan Library Application
1. Download Library Application
2. Setelah itu install Aplikasi
3. Jangan dulu dijalankan, import db_perpus masukan ke Database yang anda miliki.
4. Bila sudah di import maka jalankan Aplikasi.
5. Selesai dan enjoy " Selamat Menikmati Aplikasi Perpustakaan ini "

Note : untuk menjalankan aplikasi ini komputer anda harus terinstall jdk/jre 1.6 keatas
bila anda tidak memiliki jdk/jre anda bisa download disini

Minggu, 30 Januari 2011

Aplikasi Perpustakaan


Apakah Bapak/Ibu guru disekolah yang memiliki perpustakan sudah puas dengan pengelolaan data buku secara manual? bila masih banyak kendala dalam proses pengolahannya, saya siap membantu Bapak/Ibu guru untuk memanajemen data buku agar mudah untuk dikelola. adapun sebagai pertimbangan Bapak/Ibu guru untuk melihat karya aplikasi saya yaitu saya lampirkan dalam bentuk dokumentasi untuk dibaca dan dipahami, tentang fitur yang telah disediakan di aplikasi perpustakaan saya ini.

Bahan pembuatan aplikasi Perpustakaan.
- Java Programming Language J2SE
- MySQL Server

File bisa didownload disini......

Rabu, 12 Januari 2011

Wireless LAN

Wireless Local Area Network sebenarnya hampir sama dengan jaringan LAN, akan tetapi setiap node pada WLAN menggunakan wireless device untuk berhubungan dengan jaringan, node pada WLAN menggunakan channel frekuensi yang sama dan SSID yang menunjukkan identitas dari wireless device. Tidak seperti jaringan kabel, jaringan wireless memiliki dua mode yang dapat digunakan : infrastruktur dan Ad-Hoc. Konfigurasi infrastruktur adalah komunikasi antar masing-masing PC melalui sebuah access point pada WLAN atau LAN. Komunikasi Ad-Hoc adalah komunikasi secara langsung antara masing- masing komputer dengan menggunakan piranti wireless. Penggunaan kedua mode ini tergantung dari kebutuhan untuk berbagi data atau kebutuhan yang lain dengan jaringan berkabel.

Mode Ad-Hoc
Ad-Hoc merupakan mode jaringan WLAN yang sangat sederhana, karena pada ad-hoc ini tidak memerlukan access point untuk host dapat saling berinteraksi. Setiap host cukup memiliki transmitter dan receiver wireless untuk berkomunikasi secara langsung satu sama lain seperti tampak pada gambar 2.3. Kekurangan dari mode ini adalah komputer tidak bisa berkomunikasi dengan komputer pada jaringan yang menggunakan kabel. Selain itu, daerah jangkauan pada mode ini terbatas pada jarak antara kedua komputer tersebut.

gambar 2.3

Mode Infrastruktur
Jika komputer pada jaringan wireless ingin mengakses jaringan kabel atau berbagi printer misalnya, maka jaringan wireless tersebut harus menggunakan mode infrastruktur (gambar 2.4). Pada mode infrastruktur access point berfungsi untuk melayani komunikasi utama pada jaringan wireless. Access point mentransmisikan data pada PC dengan jangkauan tertentu pada suatu daerah. Penambahan dan pengaturan letak access point dapat memperluas jangkauan dari WLAN.



gambar 2.4

Sabtu, 08 Januari 2011

Project myBilling vers 0.1Beta

myBilling merupakan aplikasi perdana dalam penggunaan client-server bagi penulis, bahan pembuatan aplikasi ini dibuat dengan java.net.* yaitu teknologi java socket dan multithreading. awalnya penulis membuat aplikasi ini hanya sebagai latihan biasa, namun saat ini penulis menjadikan aplikasi ini untuk tugas kuliah PBO 4. karena aplikasi ini masih bentuk Beta maka performanya masih belum stabil dan fitur-fiturnya juga masih belum lengkap. untuk kelengkapan fitur-fiturnya dan performanya penulis akan berusaha untuk memperbaiki sampai akhir semester sekarang, karena batas waktu pengumpulan tugas harus diserahkan pada akhir semester. Download File

okeh mungkin temen-temen agak sedikit bingung untuk proses menjalankan aplikasi ini.
sekarang penulis akan kasih tutorial langkah-langkah menjalankan aplikasi ini :

harap diingat untuk menjalankan aplikasi ini temen-temen harus udah terinstall jdk ver 1.6 dan netbeans ver 6.5 keatas okeh kita langsung saja yang pertama :

  1. Buka netbeans lalu open project pilih C-Billing sebagai billing server
  2. kemudian jalankan C-Billing, bila anda menggunakan fitur admin dan paket maka anda harus memiliki database mysql, tapi karena disini masih ver Beta makanya penulis tidak menyertakan file database-nya.
  3. Open project pilih BillingClient sebagai Billing Client
  4. Sebelum menjalankan BillingClient anda harus merubah tempat penyimpanan ip server dan no. Client, caranya : buka file setting.java lalu cari URL ganti dengan drive tempat penyimpanan temen-temen, seperti : /G/setting.text menjadi /D/setting.text
  5. Lalu coba jalankan maka akan keluar dialog, isikan sesuai dengan permintaannya.
  6. selamat menikmati myBilling sederhana ini untuk warnet anda.

NB: jika ada kekurangan pada aplikasi ini mohon kritik dan sarannya, karena penulis juga masih dalam tahap pembelajaran untuk membuat aplikasi ini.

Jumat, 07 Januari 2011

Kriptografi

Dalam era globalisasi ini teknologi semakin meningkat, hampir seluruh wilayah ditiap-tiap kota maupun negara sudah dapat terkoneksi dengan jaringan. dengan begitu manusia tidak susah lagi berinteraksi satu dengan yang lainnya walau dalam keadaan jarak jauh. setiap hari jutaan orang mengirim dan menerima data secara bersamaan, begitu canggihnya jaringan sehingga tidak ada satupun data yang diterima maupun dikirim yang tidak bisa diakses oleh pengguna selagi komputer masih dalam terkoneksi jaringan, dalam hal seperti ini data sudah sukar untuk dirahasikan, oleh sebab itu dibutuhkan suatu ilmu yang yang mempelajari tentang merahasiakan data atau keamanan data. lalu muncul lah ilmu kriptografi.

kriptografi adalah ilmu yang mempelajari bagaimana cara menjaga agar data atau pesan aman saat dikirimkan. dari pengirim sampai ke penerima tanpa ada gangguan dari pihak ketiga Menurut Bruce Scheiner dalam bukunya "Applied Cryptography",

kriptografi terbagi menjadi dua konsep utama yakni enkripsi dan dekripsi.
enkripsi adalah proses perubahan data/informasi yang hendak dikirim agar data tersebut tidak bisa dikenali oleh pihak lain, sedangkan
dekripsi adalah kebalikan dari enkripsi merubah kembali data yang dienkripsi kebentuk semula sehingga data data dapat dikenali kembali.

berdasarkan dari jenis kuncinya algoritma kriptografi dibedakan menjadi dua jenis yaitu :

· Algoritma simetris
Dimana kunci yang digunakan untuk proses enkripsi dan dekripsi adalah kunci yang sama
· Algoritma asimetris
Dimana kunci yang digunakan untuk proses enkripsi dan dekripsi menggunakan kunci yang berbeda.

Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu :
· Algoritma block cipher
Informasi/data yang hendak dikirim dalam bentuk blok-blok besar (misal 64-bit) dimana blok-blok ini dioperasikan dengan fungsi enkripsi yang sama dan akan menghasilkan informasi rahasia dalam blok-blok yang berukuran sama.
· Algoritma stream cipher
Informasi/data yang hendak dikirim dioperasikan dalam bentuk blok-blok yang lebih kecil (byte atau bit), biasanya satu karakter persatuan persatuan waktu proses, menggunakan tranformasi enkripsi yang berubah setiap waktu.

Konsep kriptografi sendiri telah lama digunakan oleh manusia misalnya pada peradaban Mesir dan Romawi walau masih sangat sederhana. Prinsip-prinsip yang mendasari kriptografi yakni:
· Confidelity (kerahasiaan) yaitu layanan agar isi pesan yang dikirimkan tetap rahasia dan tidak diketahui oleh pihak lain (kecuali pihak pengirim, pihak penerima / pihak-pihak memiliki ijin). Umumnya hal ini dilakukan dengan cara membuat suatu algoritma matematis yang mampu mengubah data hingga menjadi sulit untuk dibaca dan dipahami.
· Data integrity (keutuhan data) yaitu layanan yang mampu mengenali/mendeteksi adanya manipulasi (penghapusan, pengubahan atau penambahan) data yang tidak sah (oleh pihak lain).
· Authentication (keotentikan) yaitu layanan yang berhubungan dengan identifikasi. Baik otentikasi pihak-pihak yang terlibat dalam pengiriman data maupun otentikasi keaslian data/informasi.
· Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa pesan tersebut berasal dirinya).

Berikut adalah istilah-istilah yang digunakan dalam bidang kriptografi :

  • Plaintext (M) adalah pesan yang hendak dikirimkan (berisi data asli).
  • Ciphertext (C) adalah pesan ter-enkrip (tersandi) yang merupakan hasil enkripsi.
  • Enkripsi (fungsi E) adalah proses pengubahan plaintext menjadi ciphertext.
  • Dekripsi (fungsi D) adalah kebalikan dari enkripsi yakni mengubah ciphertext menjadi plaintext, sehingga berupa data awal/asli.
  • Kunci adalah suatu bilangan yang dirahasiakan yang digunakan dalam proses enkripsi dan dekripsi.

Kriptografi itu sendiri terdiri dari dua proses utama yakni proses enkripsi dan proses dekripsi. Seperti yang telah dijelaskan di atas, proses enkripsi mengubah plaintext menjadi ciphertext (dengan menggunakan kunci tertentu) sehingga isi informasi pada pesan tersebut sukar dimengerti.

Secara matematis, proses enkripsi merupakan pengoperasian fungsi E (enkripsi) menggunakan e (kunci enkripsi) pada M (plaintext) sehingga dihasilkan C (ciphertext), notasinya :

Ee(M) – C

Sedangkan untuk proses dekripsi, merupakan pengoperasian fungsi D (dekripsi) menggunakan d (kunci dekripsi) pada C (ciphertext) sehingga dihasilkan M (plaintext), notasinya :

Dd(C) = M

Sehingga dari dua hubungan diatas berlaku :

Dd(Ee(M)) = M