Kamis, 08 Maret 2012

Abstract Windowing Toolkit (AWT) vs. Swing

Abstract Windowing Toolkit (AWT) vs. Swing
The Java Foundation Class (JFC), merupakan bagian penting dari Java SDK, yang termasuk dalam koleksi dari API dimana dapat mempermudah pengembangan aplikasi JAVA GUI. JFC termasuk diantara 5 bagian utama dari API yaitu AWT dan Swing. Tiga bagian yang lainnya dari API adalah Java2D, Accessibility, dan Drag dan Drop. Semua itu membantu pengembang dalam mendesain dan mengimplementasikan aplikasi visual yang lebih baik.

AWT dan Swing menyediakan komponen GUI yang dapat digunakan dalam membuat aplikasi Java dan Applet. Anda akan mempelajari applet pada bab berikutnya. Tidak seperti beberapa komponen AWT yang menggunakan native code, keseluruhan Swing ditulis menggunakan bahasa pemrograman Java. Swing menyediakan implementasi platform-independent dimana aplikasi yang dikembangkan dengan platform yang berbeda dapat memiliki tampilan yang sama. Begitu juga dengan AWT menjamin tampilan look and feel pada aplikasi yang dijalankan pada dua mesin yang berbeda menjadi terlihat sama. Swing API dibangun dari beberapa API yang mengimplementasikan beberapa jenis bagian dari AWT. Kesimpulannya, komponen AWT dapat digunakan bersama komponen Swing.

Sabtu, 03 Maret 2012

Enkripsi & Dekripsi pada Java

Enkripsi merupakan proses penggunaan algoritma yang kompleks untuk mengkonversi pesan ( plaintext atau cleartext ) ke suatu pesan terenkripsi ( chipertext ).
> Hal ini ditujukan untuk mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus .
> Enkripsi dapat digunakan untuk tujuan keamanan , tetapi teknik lain masih diperlukan untuk membuat komunikasi yang aman , terutama untuk memastikan integritas dan autentukasi dari sebuah pesan .
> Enkripsi adalah sebuah proses data encoding atau pemecahan kode data yang hanya dapat dibaca bila kita memiliki sebuah kunci khusus. Dulu enkripsi hanya berkembang di dunia spionase / perang, tetapi saat ini teknologi tersebut telah merambah ke sektor bisnis dan kalangan pengguna rumahan: Enkripsi adalah tool terbaik untuk melindungi data, privasi, dan rahasia Anda.
> Sebuah program enkripsi, baik itu yang berdiri sendiri (stand-alone) atau sudah terdapat pada aplikasi e-mail client anda, dan memiliki proses yang sama:
Data melewati sebuah formula matematis yang disebut algoritma, kemudian mengubahnya menjadi data terenkripsi yang disebut sebagai ciphertext. Formula ini memerlukan sebuah variabel dari anda–yang disebut kunci–untuk mengembalikan data tersebut kembali ke bentuk asal, sehingga sangat sulit, bahkan hampir tidak mungkin, seseorang dapat memecahkan kode enkripsi tersebut. Tetapi tentu saja hal ini tidak berlaku jika orang tersebut berhasil mencuri kode enkripsi dari Anda. Jadi, berhati-hatilah dengan kode enkripsi yang Anda miliki.
> Ada dua jenis enkripsi:
1. Simetris
Dengan enkripsi simetris, Anda menjalankan sebuah file melalui program dan membuat sebuah kunci yang mengacak file. Kemudian Anda mengirim file terenkripsi melalui e-mail ke si penerima dan secara terpisah mentransmit kunci dekodingnya (mungkin berupa sebuah password atau file data lainnya). Si penerima, dengan menjalankan aplikasi enkripsi yang sama, menggunakan kunci yang Anda berikan untuk menyatukan kembali file yang telah diacak. Enkripsi simetris sangat mudah dan sangat cepat dalam penggunaannya, tetapi tidak seaman enkripsi asimetris, karena seseorang dapat saja mencegat kunci dan mendekoding pesan tersebut. Tetapi karena kecepatannya itu, saat ini enkripsi simetris banyak digunakan pada transaksi e-commerce.
2. Asimetris (juga disebut sebagai public key).
Enkripsi asimetris sangat kompleks–tetapi jauh lebih aman. Diperlukan dua buah kunci yang saling berhubungan: sebuah kunci publik dan sebuah kunci pribadi. Anda membuat kunci publik anda tersedia bagi siapa saja yang ingin anda kirim informasi terenkripsi. Kunci tersebut hanya dapat mengenkoding data, ia tidak dapat mendekodingnya. Kunci pribadi anda terjaga dengan aman. Saat orang-orang hendak mengirim informasi terenkripsi pada anda, mereka mengenkripsinya menggunakan kunci publik anda. Saat anda menerima chipertext tersebut, anda akan mendekripsikannya dengan menggunakan kunci pribadi anda. Enkripsi asimetris menambahkan tingkat keamanan pada data anda, tetapi akibatnya lebih banyak lagi waktu komputasi yang dibutuhkan, sehingga prosesnya menjadi sangat panjang dan lebih lama.
Contoh sederhana encripsi dan decripsi pada java :
#include <cstdlib>
#include <iostream>
#include <string.h>
#define maks 500

using namespace std;
class Enkripsi{
public:
Enkripsi();
void enkripsi();
void deskripsi();
void output();
private:
char chiper[maks];
int key;
char plain[maks];

};

Enkripsi::Enkripsi(){
cout<<"Masukkan kata : ";
cin.getline(chiper,sizeof(chiper));
cout<<"Masukkan key  : ";
cin>>key;
cout<<endl;
}

void Enkripsi::enkripsi(){
for(int i=0;i<strlen(chiper);i+=1){
cout<<chiper[i]<<"("<<int(chiper[i])<<") ";
chiper[i] = (chiper[i]+key)%128;
}
}

void Enkripsi::deskripsi(){
for(int i=0;i<strlen(chiper);i+=1){
plain[i] = (chiper[i]-key)%128;
chiper[i] = plain[i];
}
}

void Enkripsi::output(){
for(int i=0;i<strlen(chiper);i+=1){
cout<<chiper[i];
}
}

int main(int argc, char *argv[])
{
Enkripsi Deskripsi;
Deskripsi.enkripsi();
cout<<"\n\nSetelah diEnkripsi : ";
Deskripsi.output();
Deskripsi.deskripsi();
cout<<"\n\nKembali diDeskripsi : ";
Deskripsi.output();

cout<<endl<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

Selasa, 28 Februari 2012

Contoh aplikasi Java menggunakan database SQLite

kenapa saya menggunakan SQLite? karena pada artikel sebelumnya saya pernah membahas tentang pengenalan SQLite dimana salah satu keuntungannya adalah kita tidak perlu menginstall sebuah database server karena database sudah terinstegrasi atau di embeded kedalam aplikasi Java yang kita buat. kita hanya membutuhkan sebuah konektor sqlitejdbc-v056.jar agar aplikasi java dapat tersambung ke database SQLite.
Syntax Koneksi
package konfigurasi;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
/**
* @author Agus Sumarna
*/
public class DBConnection {
private Connection koneksi;
public Connection connect(){
//untuk koneksi ke driver
try{
Class.forName(“org.sqlite.JDBC”);
System.out.println(“berhasil load driver”);
}catch(ClassNotFoundException cnfe){
System.out.println(“Tidak ada Driver “+cnfe);
}
//untuk koneksi ke database
try{
String url=”jdbc:sqlite:db/db_pegawai.sqlite”;
koneksi=DriverManager.getConnection(url);
System.out.println(“Berhasil koneksi”);
}catch(SQLException se){
System.out.println(“Gagal koneksi “+se);
JOptionPane.showMessageDialog(null,”Gagal Koneksi Database”,”Peringatan”,JOptionPane.WARNING_MESSAGE);
}
return koneksi;
}
}
  • Untuk drivernya terdapat pada folder lib pada folder projek aplikasi
  • Untuk file databasenya terdapat pada folder db pada folder projek aplikasi
Aplikasi

Adapun fungsi dalam aplikasi tersebut adalah :
  • Menampilkan data pegawai
  • Menghapus data pegawai
  • Mengupdate data pegawai
  • Mencari data berdasarkan nama pegawai

Minggu, 26 Februari 2012

Pengenalan SQLite

Pengenalan
Pada artikel kali ini saya membahas tentang database SQLite. berikut ini adalah pengetahuan umum mengenai SQLite yang saya ambil dari situs wapedia.mobi dan stopbox.blogspot :
  • SQLite merupakan sebuah library proses yang menerapkan serverless (mandiri tanpa server), zero configuration, database SQL transaksional. Kode untuk SQLite berada dalam public domain dan dengan demikian bebas untuk digunakan untuk tujuan apa pun, komersial atau swasta.
  • SQLite merupakan mesin database SQL embedded. Tidak seperti kebanyakan database SQL lainnya, SQLite tidak memiliki proses server yang terpisah. SQLite membaca dan menulis secara langsung ke disk. Database SQL lengkap dengan multiple tabel, indices, triggers, dan views, semua terdapat dalam sebuah disk file tunggal. Format file database adalah cross-platform yaitu kita bebas mengcopy database antara 32-bit dan sistem 64-bit.
  • Tidak seperti pada paradigma client-server umumnya, Inti SQLite bukanlah sebuah sistem yang mandiri yang berkomunikasi dengan sebuah program, melainkan sebagai bagian integral dari sebuah program secara keseluruhan. Sehingga protokol komunikasi utama yang digunakan adalah melalui pemanggilan API secara langsung melalui bahasa pemrograman. Mekanisme seperti ini tentunya membawa keuntungan karena dapat mereduksi overhead, latency times, dan secara keseluruhan lebih sederhana. Seluruh elemen basisdata (definisi data, tabel, indeks, dan data) disimpan sebagai sebuah file. Kesederhanaan dari sisi disain tersebut bisa diraih dengan cara mengunci keseluruhan file basis data pada saat sebuah transaksi dimulai.
SQLite Manager

SQLite manager adalah sebuah ekstensi atau add-ons dari browser mozila firefox yang digunakan untuk mengelola database SQLite dengan tampilan berbasis web.
Untuk dapat menggunakan aplikasi SQLite Manager ini caranya adalah sebagai berikut :
  1. Buka browser Mozila Firefox
  2. Download dan Install SQLite Manager
  3. Jika sudah selesai menginstall, untuk membuka aplikasinya pilih menu Tools>SQLite Manager
  4. Untuk contoh database SQLite nya silahkan download file db_pegawai.sqlite
  5. Untuk membuka databasenya pada SQLite Manager, pilih menu Database>Connect Database
  6. Cari dan pilih file db_pegawai.sqlite yang sudah didownload tadi kemudian klik Open
  7. Maka akan tampil isi database dari file db_pegawai.sqlite tersebut

Untuk membuat database dan mengelola database SQLite silahkan anda coba dan eksplorasi sendiri. jika anda pernah menggunakan phpmyadmin anda akan lebih cepat terbiasa menggunakan SQLite manager ini. Sekian artikel dari saya semoga bermanfaat untuk teman-teman dan anda semua…aamiin

Jumat, 24 Februari 2012

Puisi Cinta Programmer(sintax error)

Logika Yang Kupunya membingungkan Sudah berulang kali aku debug Tak satupun bug kutemui Borland sudah tak memadai AI mungkin yang bisa memahami Area abu-abu yang engkau tawarkan
Pendekatan struktural berantakan tak karuan Objekku adalah representasi class-mu
Engkau bahkan bukan lagi variabel bagiku Engkau adalah konstanta abadi yang tak tergantikan
Wajahmu indah seperti Microsoft Silverlight Hidungmu mancung seperti SQLyog Rambutmu panjang seperti PostgreSQL Tubuhmu langsing bak Notepad
Kini aku telah terpesona dengan user interface mu dotNet telah memberikan mu pesona bidadari Bidadari dari garbage collection Namun, aku bersedia menjadi garbage collector bagi mu
Semenjak perkenalan kita di pulau Java Sewaktu aku bertarung dengan Python untuk menyelamatkan mu Aku semakin terpuruk dari semua itu
Aku telah mengupload semua kode Perl ke tubuh mu Mengcompile dan mendebug kode ku Ku upload kode C untuk memberikan C-inta ku kepada mu Aku berhari-hari mengejar PHP demi kamu Sampai berkeringat Action Script Namun hasilnya adalah Core Dump, Segmentation Fault Syntax Error, Exception, Runtime Error 13, Invalid Memory Allocation
Gambas sudah usahaku Fortran sudah nasib ku Cobol sudah hidupku Prolog sudah nafasku
Tanpa mu, hidupku bagaikan bahasa tanpa compiler… Tanpa mu, hidupku bagaikan C# tanpa dotNet framework… Tanpa mu, hidupku bagaikan PHP tanpa MySQL…
Rambutmu panjang hitam bagaikan background-color body css ku Senyummu indah seindah template andalanku Sinar matamu menghangatkan setiap langkahku
CSS telah memberikan mu pesona bidadari Bidadari dari beribu variable $ Mendefinisikan class utama contrucktor kecantikanmu
Kenangan session id tentang kamu Selalu membayang dalam cookies browser ku Mengingatkanku akan login dirimu Menyegarkan hatiku seperti auto refresh AJAX dalam kolom chatbox ku
Aku semakin terpuruk dari semua itu Berhari-hari ku query MySQL mengejar dirimu Tak sebayang pun mendapatkan mysql_fetch_array mu Selalu mysql zero return
Kuyakin ini akan jauhnya keberadaanmu Sejak diriku di pulau JAVA dan dirimu di Batam Sekeras apapun javascript menciptakan layout dirimu Sebanyak apapun MySQL query LEFT JOIN dan UNION ALL Sepanjang apapun VBSCRIPT mencoba ciptakan bayangmu Serumit apapun Perl mengeksekusi Engkau semakin jauh…… Sehingga server down
Kucoba /etc/init.d/apache restart Kuharap dengan enable register_global PHP.ini akan dapat menemukanmu Tapi… Syntax Error, Exception, Runtime Error, Invalid Memory Allocation Hacking attemp meleburkan variable $ dirimu
Kini ku coba switch class dirimu Terlalu sulit dengan berjuta public function Terlalu rumit dengan beribu var array
Bidadariku……. Bukalah hatimu untuk $_REQUEST ku Tak akan terluka walaupun banyak yang mencoba SQL Inject Kan kulindungi dengan htmlspecialchars(addslashes()) dan mysql_real_escape_string()
Diriku hampa tanpa dirimu…