Jumat, 30 Maret 2012

the power of *kepepet (terdesak)

tanggal 30 Maret 2012 haru jum'at pukul 12.00. Masi pada sibuk sibuknya kaum adam buat sholat jum'at. Saya lagi gupuh gupuh *baca tergesagesa* mengerjakan design untuk Tugas Akhir saya.
Tugas akhir sudah berjalan 2 bulan dan kelompok saya alhamdulilah sudah berjalan 50% berkat master si dedik yang uda ngerjain rata2 database nya. Sedangkan saya sama momon ngerjain design nya.

Pembagian tugas dilaksanakan awal bulan Maret ini.Tapi berhubung saya mempunyai penyakit yang sangat unyu unyu yang bisa disebut MALAS   (¬_¬")  saya baru ngerjainnya tanggal 30 Maret tepat setengah jam sebelum bimbingan dimulai.

Kok Bisa??
saya gak update group di facebook yang mengenai Tugas Akhir. Padahal di group situ ada pemberitahuan dari guru pembimbing saya untuk kumpul TA pukul 12.30.


oh my godness ... saya baru pulang dari kostnya teman saya langsung buka laptop.

Panik panik...laptop loadingnya lama pula.Faktor amal ibadah nih leptop -.-

ceteg ceteg ceteg ceteg....touchpad ku bunyinya keras emang.Padahal leptop baru loo -.-

buru buru buka template dan css yang uda saya buat dan mulai mengedit untuk halaman admin dan halaman siswa.

jam di leptop uda menunjukkan pukul 12.26 saya belom selesai padahal 4 menit lagi bimbingan. Dengan semangat ke terdesakan *apaseeh* saya klak klik touchpad ...

dan akhirnya 12.40 saya selesai.Buru buru ganti baju langsung capsuss ke sekolah buat bimbingan.

Pas lagi bimbingan Bu Martin tanya tentang design web kami.Dengan ekspresi flat,saya memberikan leptop saya yang sudah terbuka hasil design saya. Dan Alhamdulilah beliau berkomentar cukup melegakan.


Terbukti kalo the power of kepepet itu NYATA..

Kamis, 29 Maret 2012

anggap saja pemula

kalo ngomongin tentang kegiatan disekolah itu gak ada habisnya. apalagi sekolah saya. setiap harinya kecuali hari senin & jum'at masuk jam 06.15.Pulangnya jam 17.00.

Aslinya gak sampek jam 5 sih,berhubung sekarang lagi galau galaunya Tugas Akhir jadi lebih rajin nongkrong disekolah sama mentengin layar laptop yang isinya pernak pernik TA.

saya akan memostingkan beberapa karya *saya* (kenapa pakek tanda bintang?soalnya hasil karya saya sudah ada campur tangan dari cemanceman saya).

ini beberapa print sreen tugas Multimedia saya

banyak gak mirip dengan lambang yang asli.Terutama Huruf 'Y' nya
gambar itu pakek 3DS Max7 trus dikasi sama si nunug teman saya efek miror yang unyu unyu. Jadilah seperti itu...

ini tugas design ruangan 
gambar diatas juga masi menggunakan 3DS Max7. Ini di komen sama Pak Aris guru multimedia saya.Gara gara mejanya terlalu kecil. "Masak kursinya besar tapi mejanya kecil" beliau bilang.
Tetap bangga dengan hasil karya sendiri jadinya yaaa tetep mesam mesem dan bilang "Itu kreatifitas pak,yang punya rumah ada anak kecilnya,jadi mejanya pakek yang pendek". ALIBI  hahahaha
juga di komen sama Mas Rifqi si ahlinya 3DS Max kalo itu kayak ngawang.Dasarnya masi kliatan item itemnya.


ini tugas 3DS Max yang terakhir sebelum liburan kemarin
eaaaa...cincin kawiiin hahahaha

Selasa, 13 Maret 2012

Enkripsi Deskripsi Java

 Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita. Selain pengertian tersebut terdapat pula pengertian ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data,integritas data, serta autentikasi data. 


Tidak semua aspek keamanan informasiditangani oleh kriptografi.Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi yaitu :


1. Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dariinformasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasiauntuk membuka/mengupas informasi yang telah disandi.


2. Integritas data, adalah berhubungan dengan penjagaan dari perubahandata secara tidak sah. Untuk menjaga integritas data, sistem harusmemiliki kemampuan untuk mendeteksi manipulasi data oleh pihak- pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya


3. Autentikasi, adalah berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yangsaling berkomunikasi harus saling memperkenalkan diri. Informasi yangdikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.


4. Non-repudiasi., atau nirpenyangkalan adalah usaha untuk mencegahterjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasioleh yang mengirimkan/membuat.


  • 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.

Ada 2 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.



 Aplikasi kriptografi simetrik RC4 menggunakan Java :
Nama file : RC4Engine.java

class KeyParameter
{
 private byte[ ] key;
 public KeyParameter(byte[] key)
{
this(key,0,key.length);
}
 public KeyParameter (byte[] key,int keyoff,int keyLen)
{
this.key = new byte[keyLen];
System.arraycopy(key,keyoff,this.key,0,keyLen);
}
 public byte[] getKey()
{

return key;
}
}
class EncRC4Engine{
 private final static int STATE_LENGTH = 256;
 private byte[] engineState = null,workingKey = null; private int x=0,y=0; private static final char[] kDigits =
{
’0′,’1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9′,’a',’b',’c',’d',’e',’f'
};
EncRC4Engine()
{
}
//constructor  public void init(boolean forEncryption,KeyParameter params)
{
if(params instanceof KeyParameter)
{
workingKey = ((KeyParameter)params).getKey();
setKey(workingKey);
return;
}
throw new IllegalArgumentException(”invalid parameter passed to C4init”+params.getClass().getName());
public void processBytes(byte[] in,int inOff,int len,byte[] out,int outOff)
{

if((inOff+len)>in.length)
{
throw new RuntimeException(”output buffer too short”);
}
if((outOff+len)>out.length){throw new RuntimeException(”out put buffer too short”);
}
for (int i = 0 ; i < len ; i++)
{
x = (x+1) & 0xff;
y = ( engineState[x] + y ) & 0xff;
//swap byte tmp = engineState[x];engineState[x] = engineState[y];engineState[y] = tmp;
//xor out[i + outOff] = (byte)(in[i+inOff] ^ engineState[(engineState[x] +engineState[y]) & 0xff]);
}
}
 public String bytesToHex(byte[] raw)
{
int length = raw.length;
char[]hex = new char[length*2];
for (int i=0;i<length;i++)
{

int value = (raw[i]+256) % 256;
int highIndex = value >> 4;
int lowIndex = value & 0×0f;
hex[i*2+0] = kDigits[highIndex];
hex[i*2+1] = kDigits[lowIndex];
}
return (new String(hex)).toString();
}
 public void reset(){setKey(workingKey);
}
//private implementation private void setKey(byte[] keyBytes)
{
workingKey = keyBytes;
x=0;
y=0;
if (engineState == null)
{
engineState = new byte [STATE_LENGTH];
}
//reset the state of the enginefor(int i = 0;i < STATE_LENGTH;i++)
{
engineState[i]=(byte)i;
 }
int i1=0;
int i2=0;
for(int i=0;i < STATE_LENGTH;i++)
{
i2 = ((keyBytes[i1] & 0xff) + engineState[i]+ i2) & 0xff;
//do the byte swap inline byte tmp = engineState[i];
engineState[i]=engineState[i2]
;engineState[i2]=tmp;
i1=(i1+1) 
% keyBytes.length;
}
}
}

GUI Java



Java yang dapat digunakan untuk merancang GUI (Graphical User Interface). Programprogram modern sekarang ini biasanya dibuat dalam bentuk form, dialog box, dadn menu. 
Dengan GUI, user dapat melakukan pilihan secara cepat dan mudah dengan menggunakan 
mouse. 

Abstract Window Toolkit disebut  toolkit karena didalamnya tersedia  class-class yang telah 
dirancang untuk membuat GUI. Paket AWT termasuk paket jadi untuk setiap versi Java. 
Berbeda dengan AWT, JSwing juga merupakan paket dari Java untuk merancang GUI tetapi 
paket JSwing ini merupakan paket tambahan yang harus di download secara terpisah




  • Sejak 1994 Sun Microsystem berupaya untuk membuat JAVA memiliki perangkat bergaya desktop dengan ToolkitJAVA yang dikenal sebagai AWT (Abstract Windowing Toolkit)

  • Tahun 1997, muncul JFC (Java Foundation Class) untuk kepentingan pembuatan aplikasi Window yang merupakan pengembangan dari AWT.
  • JFC mempunyai kode swing yang terdapat pada package yang disediakan pada JAVA SDK versi 1.2 ke atas (JAVA 2)
  • JAVA menyediakan dua graphical library. AWT (Abstract Windows Toolkit) & Swing
Contoh: import java.awt.* ;
Import java.awt.event.* ;
Import javax.swing.* ;



  • AWT  (Abstract Window Toolkit)
          Program AWT dirancang menggunakan event dan event-handlers. Sebuah event merupakan aksi dari suatu komponen GUI seperti penekanan mouse (mouse clicked) , penggeseran mouse (mouse dragged), penekanan tomboL (key pressed), pemilihan komponen menu dan lain-lain.

Contoh Window Sederhana 

Untuk dapat menggunakan AWT diperlukan paket awt sebagai berikut: 
 import java.awt.*; 
 import java.awt.event.*;

Bila kita ingin membuat sebuah frame maka class yang akan dibuat harus menurunkan sifat Dari class Frame. Perhatikan program berikut ini: 

import java.awt.*; 
 import java.awt.event.*; 
 public class MyFrame extends Frame 
 { 
  public void paint(Graphics g) 
  { 
   g.drawString("Frame dengan AWT", 75, 100); 
  } 
 } 
import java.awt.*; 
 import java.awt.event.*; 
 public class TutupFrame extends WindowAdapter 
 { 
  public void windowClosing(WindowEvent e) 
  { 
   System.exit(0); 
  } 
 } 
import java.awt.*; 
 import java.awt.event.*; 
 public class FrameDemo 
 public static final int WIDTH = 300; 
 public static final int HEIGHT = 200;  
 public static void main(String args[]) 
 { 
  MyFrame mf = new MyFrame(); 
  mf.setSize(WIDTH, HEIGHT); 
   
  TutupFrame tf = new TutupFrame(); 
  mf.addWindowListener(tf); 
  mf.setVisible(true); 
 } 
}   


  • SWING 

Swing dikembangkan untuk menyediakan satu set yang lebih canggih dari GUI komponen daripada sebelumnya  (AWT) . Swing menyediakan asli tampilan dan nuansa yang mengemulasi tampilan dan nuansa dari beberapa platform, dan juga mendukung tampilan pluggable dan nuansa yang memungkinkan aplikasi untuk melihat dan merasa tidak berhubungan dengan platform yang mendasari. Ini memiliki lebih kuat dan fleksibel daripada komponen AWT. Selain komponen akrab seperti tombol, kotak centang dan label, Swing menyediakan komponen canggih seperti beberapa tab panel, panel gulir, pohon, tabel dan daftar.

Tidak seperti komponen AWT, Swing komponen tidak diimplementasikan dengan platform kode khusus. Sebaliknya mereka ditulis seluruhnya di Jawa dan karena itu adalah platform-independen. Istilah "ringan" digunakan untuk menggambarkan elemen seperti itu.




import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TeksField {
public static void main(String[ ] args) {
JFrame frame = new JFrame("Membuat TeksField");
JLabel label = new JLabel("Nama :");
JTextField textField = new JTextField(20);
frame.getContentPane().setLayout(new FlowLayout());
frame.getContentPane().add(label);
frame.getContentPane().add(textField);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

  • SWT (Widget Standar Toolkit)
Widget Standar Toolkit (SWT) adalah grafis toolkit widget untuk digunakan dengan platform Java . Ini pada awalnya dikembangkan oleh IBM dan sekarang dikelola oleh Yayasan Eclipse seiring dengan Eclipse IDE . Ini adalah alternatif dari Jendela Toolkit Abstrak (AWT) dan swing Java GUI toolkits disediakan oleh Sun Microsystem sebagai bagian dari Java Platform, Standard Edition .
Untuk menampilkan elemen GUI, pelaksanaan SWT mengakses perpustakaan GUI asli dari sistem operasi menggunakan JNI ( Java Native Interface ) dengan cara yang mirip dengan program-program ditulis menggunakan sistem operasi spesifik API. Program yang memanggil SWT yang portabel, tetapi pelaksanaan toolkit, meskipun bagian dari itu yang ditulis di Jawa , adalah unik untuk setiap platform.

Toolkit ini berlisensi di bawah Eclipse Public License, sebuah open source lisensi disetujui oleh Open Source Initiative

Berikut ini adalah dasar Hello World program menggunakan SWT. Ini menunjukkan jendela (Shell) dan label. 



mengimpor org.eclipse.swt *;.
 org.eclipse.swt.widgets impor *;.
 
 public class HelloWorld 
 {
    public void static main (String [] args) 
   {
       Menampilkan menampilkan = Tampilan baru ();
       Shell shell = new Shell (display);
       Label label Label = baru (shell, SWT NONE.);
       . label setText ("Hello World");
       pak label ().;
       . shell pack ();
       shell buka ().;
       sementara (shell.! isDisposed ()) 
       {
          if (layar readAndDispatch ().!) layar tidur ().;
       }
       menampilkan membuang ().;
    }
 }

Stream IO

menggali ilmu dulu tentang java , lupakan GALAU

tentang Stream IO pada pemrograman JAVA


Overview I/O 

  1.  Konsep Stream
  2.  Kelas Abstrak pada java.io
  3.  Reader/Writer
  4.  Input dan Output file
  5.  Wrapper 


Konsep Stream
Stream adalah suatu abstraksi untuk data input dan output.

Kelas abstrak pada java io
• Reader dan Writer digunakan untuk data Teks
• InputStream dan OutputStream digunakan untuk data biner


Kelas InputStream/OutputStream
• InputStream dan OutputStream
  digunakan untuk mengakses informasi  non teks (biner)
– disebut juga sebagai byte stream
– COntoh data biner: File EXE, file GIF
• InputStream/OutputStream Tidak menangani konversi teks Unicode secara otomatis

Input dan Output File\
• Gunakan FileInputStream dan FileOutputStream untuk membaca/menulis file non teks
• Gunakan FileReader/FileWriter untuk file teks

Contoh Membuka file untuk dibaca

• cara untuk membuka file (untuk dibaca):
  FileInputStream s = new
  FileInputStream(“test.dat”);

• Cara untuk membaca satu byte: int a = s.read()

• Tersedia juga method untuk membaca array of byte

• Prototype read adalah : int read()
– Perlu dicast ke byte  untuk membaca sebagai byte
– Memakai int supaya cukup merepresentasikan -1

Contoh Membuka file untuk ditulis

• Cara untuk membuka file (untuk ditulisi):
 FileOutputStream out = new
 FileOutputStream(“test.out”);

• Intruksi untuk menulis satu byte:
– Out.write(‘a’)
• Tersedia juga method untuk menulis array of byte

Contoh Wrapper: PrintWriter


Wrapper

• Stream dapat dikomposisi atau difilter atau dibungkus untuk menghasilkan stream yang lebih kompleks

• Konsep ini mirip dengan pipe di Unix/Windows

• Contoh:
– BufferedReader yang menyediakan readLine()
– PipedWriter/PipedReader untuk mempipe suatu stream
– PrintStream/PrintWriter untuk menulis ke stream dengan mudah



Perhatikan potongan kode berikut:

PrintWriter pr = new

PrintWriter(new FileWriter(“hello.txt”));
//Menulis 1 baris

pr.println(“Hello “);
• PrintWriter membungkus (wraps)
FileWriter untuk menyediakan method print(), println() untuk semua tipe data dasar


Membaca dari Console

• Java menyediakan System.in yang class-nya adalah InputStream

• Membaca teks dari console

• Untuk membaca teks, perlu di-wrap dengan BufferedReader

• Tapi BufferedReader hanya bisa me-wrap suatu class turunan Reader

• InputStream perlu di-wrap dengan InputStreamReade


Membaca dari console [2]

• Buat BufferedReader yang membungkus InputStreamReader yang membungkus System.in BufferedReader br = new BufferedReader(new InputStreamReader(System.in))

• Untuk membaca: String s = br.readLine();

• Untuk membaca integer, teks dibaca dengan method yang sama, lalu dikonversi dengan method Integer.parseInt()




sumber : IF-ITB/YN-revIL/2005
IF2281–Pemrograman Berorientasi Object