25 Apr 2012

Swing MakeOver

          Swing MakeOver :
Teknik memanipulasi tampilan user interface (Java Swing). Teknik ini dilakukan dengan menggunakan penggambaran agar tampilan komponen-komponen Java Swing seperti TextField, Button, dan lain-lain menjadi tampak lebih cantik.

          SwingX :
Salah satu ‘turunan‘ dari Swing yang bisa digunakan seorang progammer jika bosan dengan Swing, atau menginginkan fitur-fitur tambahan pada Swing. Komponen pada SwingX hampir sama dengan komponen pada Swing, contoh pada Swing terdapat komponen JList, JTable, JComboBox dan pada SwingX komponen tersebut menjadi JXList, JXTable, JXCnmboBox.

          Kelebihan SwingX:
  • Terdapat  fungsi addHighlighter() yang digunakan untuk memberi highlight pada sel tertentu (bisa berupa warna background berbeda dan sebagainya).

  • SwingX juga menawarkan komponen baru, seperti JXDatePicker. Ini adalah contoh komponen yang sering dibutuhkan oleh aplikasi, tetapi tidak disediakan oleh Swing secara langsung


  • SwingX juga memiliki kotak dialog siap pakai, seperti JXTipOfTheDay, yang umum dipakai untuk menampilkan tips di program.




                                

16 Mar 2012

3D'S MAX keduaku

          Hai ketemu lagi deh sama aku yang lagi mau pulang kampung posting hasil karya kedua pakek 3D's MAX *pamer* Seneng deh kalo bisa bikin beginian apalagi hasilnya yah sedikit lumayan lah. Aslinya ini tuh dibuat tugas Multi Media dari pak Aris, tapiii berhubung produknya bagus yaa saya posting deh disini *curcol* Kayak posting saya yang sebelumnya, saya cuma bakal posting hasil jadinya aja *no tutorial* bukan apa-apa sih, saya cuma nggak bisa nulis langkah-langkah bikin beginian, soalnya kalo dijelasin bakalan panjaaannnggggg gitu *alay* ^_^V
          Boleh deh kapan-kapan tanya saya gimana cara bikinnya *kalo masi inget* ..... Yup no more wasting time, langsung aja ke TKP, check this out :)


critanya bikin cincin

critanya bikin botol+gelas pecah


          Yap sekian dulu posting daris saya, semoga bermanfaat dan memberikan inspirasi buat para 3D'S MAXer *ngawut* Oke, deh saya siap-siap packing dulu ya, mau pulkam nih .... babay :D

9 Mar 2012

Hiburan

          Kali ini iseng-iseng mau ngepost yang beginian ah, habis aku galau mau posting apa *ngakak* Kalo karpet ajaib, pensil ajaib, tongkat ajaib mah udah biasa kan? Nah kali ini aku pengen posting tentang gambar ajaib :) Nah, pertama-tama ikutin intruksi dibawah ini ya :

  1. Tatap titik merah pada hidung gadis itu selama 30 detik, jangan kedip dulu ya.
  2. Setelah itu putar mata kalian menuju permukaan datar biasa.
  3. Setelah itu kedipkan mata kalian dengan cepat.
        Oke setelah siap, ini dia gambarnya, jangan lupa ikutin intruksi diatas tadi lo ya biar hasilnya maksimal :)




          Gimana hasilnya teman-teman? Keren nggak? Oke deh semoga aja keren :)
Selamat mencoba :)




8 Mar 2012

Event Handling GUI pada Java

          Dalam event handling pada Java ada empat bagian penting yang harus diketahui:
  1. Event Object merupakan object yang mendiskripsikan sebuah event yang di-trigger oleh event source.
  2. Event Handler merupakan method yang menerima event object dan melakukan respond yang sesuai dengan event object tersebut.
  3. Event Listener merupakan interface yang akan meng-handle event yang terjadi. setiap type event mempunyai interface yang bersesuaian. Listener tersebut harus diimplementasikan oleh class yang akan meng-handle event
  4. Event Source merupakan pembangkit / trigger sebuah event objects
        Setiap event object mempunyai  type event yang berbdea beda. Sehingga kita harus menentukan type event sebelum menentukan jenis interface listener. Karena setiap type event mempunyai jenis interface listener yang bersesuaian. Berikut ini type type event yang ada di Java :

  1. ActionEvent
  2. ItemEvent
  3. WindowEvent
  4. ContainerEvent
  5. ComponentEvent
  6. FocusEvent
  7. TextEvent
  8. KeyEvent
  9. MouseEvent
  10. AdjustmentEvent
Berikut ini Interface Listener: 

  1. ActionListener
  2. ItemListener
  3. WindowListener
  4. ContainerListener
  5. ComponentListener
  6. FocusListener
  7. TextListener
  8. KeyListener
  9. MouseListener
  10. MouseMotionListener
  11. AdjustmentListener
        Berdasarkan tulisan diatas, setiap type event mempunyai satu jenis interface listener kecuali MouseEvent yang mempunyai dua jenis interface listener. dan setiap interface mempunyai method abstract yang harus di override class yang meng-impletasikan interface. Event listener dan event handler terdapat pada package java.awt.event

Tiga langkah penting dalam event handling :

  1. Deklarasikan class yang akan meng-handle event yang terjadi dan tuliskan code yang menyatakan class tersebut meng-implement interface listener
  2. Event source mendaftarkan sebuah listener melalui method addListener
  3. Kode yang mengimplementasikan method pada interface listener pada class yang akan meng-handle event. [ Override ]
Contoh 1

MouseEventsDemo.java
package mouseeventsdemo;
import java.awt.*;
import java.awt.event.*;
/**
*
* @author Ren
*/
public class MouseEventsDemo extends Frame implements MouseListener, MouseMotionListener {  //
 Langkah 1
TextField tf;
public MouseEventsDemo( String title){
super(title);
tf = new TextField(60);
addMouseListener(this); // 
Langkah 2
}
public void launchFrame() {
/* Menambah komponen pada frame */
add(tf, BorderLayout.SOUTH);
setSize(300,300);
setVisible(true);
}
public void mouseClicked(MouseEvent me) {
 // Langkah 3
String msg = “Mouse clicked.”;
tf.setText(msg);
}
public void mouseEntered(MouseEvent me) {
String msg = “Mouse entered component.”;
tf.setText(msg);
}

public void mouseEntered(MouseEvent me) {
String msg = “Mouse entered component.”;
tf.setText(msg);
}
public void mouseExited(MouseEvent me) {
String msg = “Mouse exited component.”;
tf.setText(msg);
}
public void mousePressed(MouseEvent me) {
String msg = “Mouse pressed.”;
tf.setText(msg);
}
public void mouseReleased(MouseEvent me) {
String msg = “Mouse released.”;
tf.setText(msg);
}
public void mouseDragged(MouseEvent me) {
String msg = “Mouse dragged at ” + me.getX()
+ “,” + me.getY();
tf.setText(msg);
}
public void mouseMoved(MouseEvent me) {
String msg = “Mouse moved at ” + me.getX()
+ “,” + me.getY();
tf.setText(msg);
}
}
main.java
package mouseeventsdemo;
/**
*
* @author Ren
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
MouseEventsDemo med = new MouseEventsDemo(“Mouse Events Demo”);
med.launchFrame();
}
}



Enkripsi dan Dekripsi pada Java

Enkripsi :  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 .

Deskripsi :  proses penggunaan algoritma yang kompleks untuk mengkonversi pesan terenkripsi ( chipertext ) ke suatu pesan ( plaintext atau cleartext ).


Untuk paket yang mendefinisikan class-class untuk encrypt dan decrypt data , java mengimplementasikan  Java Cryptography Extension (JCE) di paket dan subpaket javax.crypto .





Java AWT

Window Classes Fundamental

daftar class pada kontainer yang 
telah disediakan oleh AWT :

  • Komponen : Abstract Class untuk object yang dapat ditampilkan pada console dan berinteraksi dengang user. Bagian utama dari semua class AWT.
  • Kontainer : Abstract Subclass dari Component Class. Sebuah komponen yang dapat menampung komponen yang lainnya.
  • Panel : Turunan dari Container Class. Sebuah frame atau window tanpa titlebar, menubar tidak termasuk border. Superclass dari applet class.
  • Window : Turunan dari Container class. Top level window, dimana berarti tidak bisa dimasukkan dalam object yang lainnya.Tidak memiliki border dan menubar.
  • Frame : Turunan dari window class. Window dengan judul, menubar, border dan pengatur ukuran di pojok. Memiliki empat constructor , dua diantaranya memiliki penulisan seperti :Frame(), Frame(String title)
contohnya : 

import java.awt.*;
public class SampleFrame extends Frame {
public static void main(String args[]) {
SampleFrame sf = new SampleFrame();
sf.setSize(100, 100); //Coba hilangkan baris ini
sf.setVisible(true); //Coba hilangkan baris ini
}
}



Grafik

contohnya: 

import java.awt.*;
public class GraphicPanel extends Panel {
GraphicPanel() {
setBackground(Color.black); //Konstanta dalam class Color
}
public void paint(Graphics g) {
g.setColor(new Color(0,255,0)); //hijau
g.setFont(new Font("Helvetica",Font.PLAIN,16));
g.drawString("Hello GUI World!", 30, 100);
g.setColor(new Color(1.0f,0,0)); //red
g.fillRect(30, 100, 150, 10);
}
public static void main(String args[]) {
Frame f = new Frame("Testing Graphics Panel");
GraphicPanel gp = new GraphicPanel();
f.add(gp);
f.setSize(600, 300);
f.setVisible(true);
}
}



Komponen AWT

Berikut ini adalah daftar dari kontrol AWT. Kontrol adalah komponen seperti tombol atau textfield yang mengijinkan user untuk berinteraksi dengan aplikasi GUI. Berikut ini semua subclass dari classComponents.

contohnya : 

import java.awt.*;
class FrameWControls extends Frame {
public static void main(String args[]) {
FrameWControls fwc = new FrameWControls();
fwc.setLayout(new FlowLayout()); //akan dibahas lebih detail
pada pembahasan berikutnya
fwc.setSize(600, 600);
fwc.add(new Button("Test Me!"));
fwc.add(new Label("Labe"));
fwc.add(new TextField());
CheckboxGroup cbg = new CheckboxGroup();
fwc.add(new Checkbox("chk1", cbg, true));
fwc.add(new Checkbox("chk2", cbg, false));
fwc.add(new Checkbox("chk3", cbg, false));
List list = new List(3, false);
list.add("MTV");
list.add("V");
fwc.add(list);
Choice chooser = new Choice();
chooser.add("Avril");
chooser.add("Monica");
chooser.add("Britney");
fwc.add(chooser);
fwc.add(new Scrollbar());
fwc.setVisible(true);
}
}




Java IO Stream


A. Tipe-Tipe Stream yang Umum Digunakan

Stream Karakter dan Byte
Seperti yang telah disebutkan sebelumnya, secara umum ada dua tipe dari stream, yaitu stream karakter dan byte. Kita hanya mengulang perbedaan mendasar antara keduanya. Stream byte adalah abstraksi file atau alat untuk data biner sedangkan stream karakter adalah untuk karakter Unicode. Class InputStream adalah abstraksi class root untuk semua input stream byte sedangkan class OutputStream adalah class root abstraksi dari semua output stream byte. Untukstream karakter, superclasss yang sesuai dari semua class-class secara berturut-turut adalah class Reader dan the Writer. Kedua class-class ini adalah abstraksi class-class untuk membaca dan menulis stream karakter.

Input dan Output Stream
Stream juga dikategorikan berdasarkan apakah mereka digunakan untuk membaca atau menulis stream.Walaupun ini sudah cukup nyata, Anda diperbolehkan untuk membaca dari input stream tapi tidak menulisnya. Di lain pihak, Anda diperbolehkan untuk menulis output streams tapi tidak membacanya. Class InputStream dan class Reader adalah superclass-superclass dari semua input stream. Class OutputStream dan class Writer adalah class-class root dari semua output stream. Input stream juga dikenal sebagai stream sumber (source stream) sejak kita memperoleh informasi dari stream ini. sementara itu output stream disebut juga stream hasil(sink stream).

Node dan Stream Filter
Kini package java.io membedakan antara node dan stream filter. Sebuah stream node adalah sebuah stream dengan fungsi dasar berupa fungsi membaca atau menulis dari sebuah lokasi khusus seperti pada disk atau dari jaringan. Tipe-tipe dari stream node terdiri atas file, memory dan jalur data. Stream filter, di lain pihak, diletakkan pada layer stream node diantara threads atau proses untuk menyediakan fungsi tambahan yang
tidak dapat ditemukan dalam stream node oleh stream node itu sendiri. Penambahan lapisan pada sebuah stream node disebut dengan stream chaining. Sesi ini berturut-turut mempunyai sebuah tujuan dari class-class stream yang berbeda. Untuk melengkapi daftar dari class-class ini, lihatlah pada dokumentasi Java's API.

B.  Class File
Walaupun class File bukan merupakan class stream, ini sesuatu yag penting bahwa kita mempelajari ini sejak class-class stream merupakan file-file yang telah dimanipulasi. Class adalah sebuah perwakilan dari abstraksi dari file-file nyata dan nama path direktori. Untuk meng-instantiate sebuah object File, Anda dapat menggunakan constructor berikut ini :

constructor file

Class File menyediakan beberapa method untuk memanipulasi file dan direktori. Berikut ini beberapa dari method-method tersebut.


Jika diaplikasikan, maka method tersebut akan seperti berikut ini :

import java.io.*;
public class FileInfoClass {
public static void main(String args[]) {
String fileName = args[0];
File fn = new File(fileName);
System.out.println("Name: " + fn.getName());
if (!fn.exists()) {
System.out.println(fileName + " does not exists.");
/* membuat sebuah temporary directory . */
System.out.println("Creating temp directory...");
fileName = "temp";
fn = new File(fileName);
fn.mkdir();
System.out.println(fileName +
(fn.exists()? "exists": "does not exist"));
System.out.println("Deleting temp directory...");
fn.delete();
System.out.println(fileName +
(fn.exists()? "exists": "does not exist"));
return;
}
System.out.println(fileName + " is a " +
(fn.isFile()? "file." :"directory."));
if (fn.isDirectory()) {
String content[] = fn.list();
System.out.println("The content of this directory:");
for (int i = 0; i < content.length; i++) {
System.out.println(content[i]);
}
}
if (!fn.canRead()) {
System.out.println(fileName + " is not readable.");
return;
}
System.out.println(fileName + " is " + fn.length() +
" bytes long.");
System.out.println(fileName + " is " + fn.lastModified()
+ " bytes long.");
if (!fn.canWrite()) {
System.out.println(fileName + " is not writable.");
}}}


Source : JENI 1 - OOP


Ketika Alam Bawah Sadarku Bekerja

        Hal ini berawal ketika aku selesai makan malam dengan lalapan pemberian temanku. Kemarin malam aku bermimpi berjalan keluar kamar menuju kamar mandi, sakit perut kurasa. Rasanya seperti bermipi, aku sadar namun kedua mataku tak sanggup untuk membuka. Seperti tak sanggup menahan dinginnya malam dan sakitnya perut, malam itu aku merasa aku sedang poop di kamar mandi tentunya. Aku merasa aku sadar akan apa yang aku lakukan, namun sekali lagi mata ini tak sanggup untuk membuka. Akhirnya aku biarkan kejadian itu berlalu begitu saja. Dan ketika dengan payah aku mencoba membuka mata dan memastikan bahwa aku sedang bermimpi ..... Aku sangat terkejut ketika aku mendapati diriku sedang duduk dan poop di atas wc kamar mandi.

         Terkejut ... iya, Kaget .... apalagi, aku pun menahan tawa dalam batin, sadar bahwa hari sudah larut. Seakan aku tak percaya atas apa yang baru saja terjadi padaku, aku merasa bodoh, konyol, namun lucu :) Yang membuat aku tergeleng-geleng adalah " kok bisa hal yang aku pikir Mimpi justru adalah Kenyataan? " Saat itu pula aku berpikir, bahwa alam bawah sadarku telah bekerja mengendalikan ketika tubuhku dalam keadaan tidak stabil. Dan aku berdoa kepada Tuhanku agar tidak membuat kejadian konyol ini terjadi 2 kali :D

3D'S MAX Pertamaku

          Hai welcome back, udah lama banget ya kayaknya saya nggak update blog ini *maklum orang seebuk*
Kali ini saya mau kasi liat ke kalian tentang hasil karya premier saya pake aplikasi 3D'S MAX. Yaaa masio masih terbilang newbe dan belum jago, tapi yaa boleh lah hasil jadinya *muji diri sendiri*
Langsung aja ya .... ini hasil karya saya >>


broken glass
livingroom interior

          Gambar di atas itu pure buatan saya lo ya, hahahah. Ini aja dulu posting dari saya *maaf gak kasih tutorial* Kalo pengen tau cara buatnya boleh deh kapan-kapan saya ajari *metesek*
Oke gust, that's all what i wanna give you look, thank you for visiting and have a nice day :)