Pages

Jumat, 16 Maret 2012

LATIHAN MENANGAKAP INPUTAN DARI HALAMAN PHP

INI INDEX UNTUK PENDAFTARAN
<html>
    <head>
    <title>PSB SMK TELKOM SANDHY PUTRA MALANG</title>
    </head>
<body>
<center>
<h1>PENDAFTARAN SISWA BARU <BR />SMK TELKOM SANDHY PUTRA MALANG</h1>
<form method="post" action="daftar.php">
<table width="500" >
  <tr>
    <td>NAMA</td>
    <td>:</td>
    <td><input type="text" name="nama"/></td>
  </tr>
  <tr>
    <td>TEMPAT LAHIR</td>
    <td>:</td>
    <td><input type="text" name="ttl"/></td>
  </tr>
  <tr>
    <td>TANGGAL LAHIR</td>
    <td>:</td>
    <td><input type="text" name="tanggal" width="10px" maxlength="2"/>
    <select name="bulan">
    <?php
$bulan=array("Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember");
$jml_bln=count($bulan);
for($a=0; $a<$jml_bln; $a+=1){
echo"<option value=$bulan[$a]> $bulan[$a] </option>";
}
?>  
    </select>
    <input type="text" name="tahun" width="10px" maxlength="4"/>
    </td>
  </tr>
  <tr>
    <td>HOBBY</td>
    <td>:</td>
    <td><input type="checkbox" name="tidur" value="TIDUR" checked="checked"/>Tidur</input> </td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td><input type="checkbox" name="baca" value="MEMBACA" />Membaca</input></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td><input type="checkbox" name="tulis" value="MENULIS" checked="checked" />Menulis</input></td>
  </tr>
  <tr>
    <td>JENIS KELAMIN</td>
    <td>:</td>
    <td><input type="radio" name="jk" value="laki-laki" checked="checked"/>laki-laki</input>
    <input type="radio" name="jk" value="perempuan" />perempuan</input>
    </td>
  </tr>
  <tr>
    <td>ALAMAT</td>
    <td>:</td>
    <td><textarea name="alamat" ></textarea> </td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td><input type="submit" name="submit" value="KIRIM"><input type="reset" name="reset" value="BERSIHKAN"></td>
  </tr>
</table>
</form>
</center>
</body>
</html>

INI UNTUK MENANGKAP VARIABLE DARI HALAMAN PENDAFTARAN
<html>
<head>
<title>SMK TELKOM SHANDY PUTRA MALANG</title>
</head>
<body>
<CENTER><h1>TERIMA KASIH TELAH MENDAFTAR DI<br/> 
SMK TELKOM SHANDY PUTRA MALANG</h1>
<table width="500" >
  <tr>
    <td>NAMA</td>
    <td>:</td>
    <td>
    <?php
echo $_POST["nama"];
?></td>
  </tr>
  <tr>
    <td>TEMPAT LAHIR</td>
    <td>:</td>
    <td> <?php
echo $_POST["ttl"];
?></td>
  </tr>
  <tr>
    <td>TANGGAL LAHIR</td>
    <td>:</td>
    <td> <?php
echo $_POST["tanggal"]." ";
echo $_POST["bulan"]." ";
echo $_POST["tahun"]." ";
?>
    </td>
  </tr>
  <tr>
    <td>HOBBY</td>
    <td>:</td>
    <td><?php
error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));
echo $_POST["tidur"]." ";
echo $_POST["baca"]." ";
echo $_POST["tulis"]." ";
?></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td><input type="checkbox" name="baca" value="baca" />Membaca</input></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td><input type="checkbox" name="tulis" value="menulis" checked="checked" />Menulis</input></td>
  </tr>
  <tr>
    <td>JENIS KELAMIN</td>
    <td>:</td>
    <td><?php
echo $_POST["jk"];
?>
    </td>
  </tr>
  <tr>
    <td>ALAMAT</td>
    <td>:</td>
    <td><?php
echo $_POST["alamat"];
?> </td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td><a href="index.php"><input type="button" name="back" value="kembali"></a></td>
  </tr>
</table></CENTER>
</body>
</html>

Selasa, 13 Maret 2012

Macam-macam GUI Toolkit Pada Java

1. AWT (Abstract Window Toolkit) – SUN Microsystem -> Oracle Product
AWT (Abstract Window Toolkit) ini adalah GUI Toolkit pertama pada bahasa pemrograman Java, sayang-nya AWT ini sangat-sangat kekurangan komponen yang biasa digunakan untuk membangun sebuah aplikasi desktop secara lengkap (komponen tabel saja tidak ada ) Terlepas dari kurang-nya komponen GUI yang terdapat pada AWT (Abstract Window Toolkit), aplikasi yang dibangun menggunakan AWT (Abstract Window Toolkit) akan tampak seperti aplikasi native. Maksudnya yaitu, jika aplikasi yang dibangun menggunakan AWT (Abstract Window Toolkit) ini dijalankan pada Sistem Operasi Windows. Maka aplikasi ini akan terlihat seperti aplikasi Windows pada umum-nya, dan begitu juga jika dijalankan pada Sistem Operasi Mac ataupun GNU/Linux. Kenapa ini bisa terjadi, karena AWT (Abstract Window Toolkit) ini benar-benar memanggil native subrutin untuk menggambar setiap komponen-nya ke layar. Tidak percaya ? silahkan anda coba



2. Java Swing – SUN Microsystem -> Oracle
Nah ini dia GUI Toolkit yang mungkin paling banyak dikenal oleh teman-teman yang baru belajar Pemrograman GUI di Java dibandingkan dengan GUI Toolkit yang lain GUI Toolkit ini lebih banyak dikenal dikarenakan dukungan tutorialnya yang cukup banyak bertebaran di Internet, dan juga merupakan standart dari Java yang mana kita tidak perlu melakukan penambahan library lagi kalau ingin menggunakan GUI Toolkit ini. Selain itu, terdapat 2 IDE besar yang menggunakan GUI Toolkit Java Swing yaitu NetBeans IDE(OpenSource) dan IntelliJ IDEA (mempunyai versi OpenSource dan Komersial)
Dibandingkan dengan pendahulu-nya yaitu AWT (Abstract Window Toolkit), Swing mempunyai lebih banyak komponen pendukung untuk membangun sebuah aplikasi yang lengkap untuk keperluan desktop. Selain didukung dengan banyak-nya komponen, Swing ini benar-benar murni 100 % ditulis dengan bahasa pemrograman Java tanpa adanya sebuah wrapper untuk memanggil rutin-rutin native code via JNI (Java Native Interface). Seluruh komponen yang terdapat pada Swing, semuanya murni digambar sendiri menggunakan API (Application Programming Interface) 2D untuk memanggil rutin-rutin dasar penggambaran komponen-nya. Nah dengan model seperti ini, memungkinkan sekali aplikasi yang dibangun menggunakan Swing tampak sama persis di berbagai macam Sistem Operasi.
Selain itu, Swing juga mempunyai kemampuan untuk berganti-ganti tampilan menggunakan LAF (Look And Feel) atau themes Sayang-nya, jika kita menginginkan tampilan GUI yangnative (tampilan-nya sama seperti aplikasi-aplikasi lain pada sistem operasi target) Swing seperti-nya masih terasa kurang smooth terutama dukungan pada font rendering-nya. Untuk teman-teman yang penasaran bagaimana sih sebenarnya tampilan dari GUI Toolkit Swing ini ? silahkan anda coba




3. SWT (Standart Widget Tookit) – IBM Product -> Eclipse Foundation
SWT (Standart Widget Toolkit) ini adalah sebuah GUI Toolkit yang dikeluaran oleh IBM sebagai alternatif dari AWT/Java Swing milik SUN Microsystem, yang membedakan antara SWT (Standart Widget Toolkit) dan AWT/Java Swing adalah SWT ini benar-benar mengakses native GUI library yang terdapat pada Sistem Operasi melalui JNI (Java Native Interface). Dengan model seperti ini, memungkinkan tampilan aplikasi yang dibangun menggunakan GUI Toolkit SWT menjadi sama persis dengan aplikasi native lain-nya. Kekurangan dari model pemanggilan native GUI library seperti ini adalah kita harus menyediakan library untuk tiap-tiap Sistem Operasi target aplikasi kita. 




4.QtJambi – Trolltech -> Nokia Product -> Stopped and Taken By Community
Pernah menggunakan Desktop Environment KDE ? Ingin membuat aplikasi yang tampilan-nya mirip dengan KDE ? Kalau teman-teman ingin membangun aplikasi yang tampilan-nya tampak seperti aplikasi yang terdapat pada KDE tapi masih ingin menggunakan bahasa java sebagai dasar-nya, maka QtJambi adalah pilihan yang tepat untuk teman-teman. Karena QtJambi ini merupakan binding Qt Framework dengan bahasa Java, tetapi sayang-nya proyek QtJambi sudah tidak disupport oleh Nokia dan secara resmi telah ditutup Untung-nya, awal tahun ini ada beberapa developer yang peduli dengan kelangsungan proyek ini dan akhir-nya membuat sebuah komunitas untuk melanjutkan pengembangan proyek QtJambi, sekarang teman-teman bisa melihat perkembangan proyek QtJambi ini pada halaman QtJambi Community.




5. JavaGNOME – Community Product
Kalau QtJambi diatas ditujukan untuk teman-teman yang sudah akrab dengan API (Application Programming Interface) Qt Framework, berbeda dengan JavaGNOME Proyek ini lebih dikhususkan untuk teman-teman pecinta GTK atau yang paling banyak dikenal yaitu GNOME Sama seperti GUI Toolkit SWT dan QTJambi, JavaGNOME ini juga mengakses native library tetapi API yang digunakan adalah API dari GTK. Untuk teman-teman yang sudah terbiasa membangun aplikasi menggunakan Glade, maka teman-teman bisa men-design form-nya menggunakan Glade dan memanggil-nya menggunakan bahasa java melalui JavaGNOME Nah ingin tahu tampilan aplikasi yang dibangun menggunakan JavaGNOME ? 

Encripsi dan Decripsi 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;
}



KONSEP DASAR STREAM I/O



  • Stream adalah representasi abstrak dari aliran data yang berjalan dari sumber (input stream) ke tujuan (output stream).
Contoh:
Membaca dan menulis file di dan ke harddisk
Membaca dan menulis teks ke console.
Membaca dan menulis melalui network

  • Untuk membaca, program membuka stream pada sumber ( file, memory, socket) dan membaca informasi secara sekuensial.
   
  • Untuk menulis, program mengirim informasi ke tujuan dengan cara membuka stream tujuan, selanjutnya menulis informasi secara sekuensial.  

  • Byte Stream 
 

  • Character Stream 
 


  • Cara menggunakan stream : 

    • InputStream dan OutputStream adalah abstract class untuk stream I/O, yaitu untuk membaca dan menulis data dari dan ke file.
    • Untuk membaca digunakan class yang mengimplementasikan InputStream, contoh : FileInputStream.
    • Untuk menulis digunakan class yang mengimplementasikan OutputStream, contoh : FileOutputStream.
    • Hirarki Class InputStream dan OutputStream
  • Membaca File: FileInputStream :
  1. Definisikan nama file yang akan dibaca melalui class    File, atau nama file lengkap dengan path.
  2. Periksa apakah file tersebut ada (exist) dan tipenya adalah file (bukan direktori).
  3. Siapkan obyek FileInputStream untuk membaca isi file.
  4. Baca input dengan menggunakan method read(), dan bila tidak ada input lagi,FileInputStream memberikan  indikator -1 sebagai tanda tidak ada lagidata yang akan dibaca.
  5. Gunakan method close() untuk menutup FileStream. 
  • Reader dan Writer
  1. Digunakan untuk membaca dan menulis data tekstual. 
  2. Untuk mempercepat performance, gunakan fasilitas buffering dengan: BufferedReader. 
  3. Untuk membaca teks baris per baris digunakan teknik sebagai berikut:
           File f = new File(“c:\\oop\\text.txt”);
           FileReader fr = new FileReader(f);
           BufferedReader fin= new BufferedReader(fr);