Thursday, November 8, 2007

Encrypt and Decrypt Image - BMP

Hallow semua...
gw punya source code simple untuk encrypt ato decrypt file gambar (untuk kasus sekarang kita pake file gambar bitmap). Tampilanya seperti ini:

Encrypt bitmap

Decrypt bitmap

Code untuk encrypt/decrypt button seperti ini:

PROCEDURE TForm1.Button2Click(Sender: TObject);
VAR
i : INTEGER;
j : INTEGER;
RandomValue : BYTE;
rowIn : pByteArray;
rowOut : pByteArray;
ScanlineByteCount: INTEGER;
BitmapResult : TBitmap;
BEGIN
/*
BitmapOriginal : tipe dile TBitmap dan di inisialisasi pada saat open file
*/
IF Assigned(BitmapResult)
THEN BitmapResult.Free;

BitmapResult := TBitmap.Create;
BitmapResult.Width := BitmapOriginal.Width;
BitmapResult.Height := BitmapOriginal.Height;
BitmapResult.PixelFormat := BitmapOriginal.PixelFormat;

IF BitmapOriginal.PixelFormat IN [pf1bit, pf4bit, pf8bit]
THEN BitmapResult.Palette := CopyPalette(BitmapOriginal.Palette);

ScanlineByteCount := ABS(Integer(BitmapOriginal.Scanline[1]) -
Integer(BitmapOriginal.Scanline[0]));

RandSeed := 79997;

FOR j := 0 TO BitmapOriginal.Height-1 DO
BEGIN
RowIn := BitmapOriginal.Scanline[j];
RowOut := BitmapResult.Scanline[j];

FOR i := 0 TO ScanlineByteCount-1 DO
BEGIN
RandomValue := Random(256);
RowOut[i] := RowIn[i] XOR RandomValue
END
END;

Image1.Picture.Graphic := BitmapResult;
END;


Selamat mencoba ya...keep writing..:D

Read More...

Saturday, October 20, 2007

Windows API - Delphi

Memanfaatkan applikasi - applikasi bawaan dari windows merupakan hal yang sangat mudah dilakukan. Saat ini kita akan mencoba membuat applikasi sederhana menggunakan Borland Delphi 7, untuk memamnggil applikasi windows seperti notepad, calculator, dan paint.

Hal-hal yang perlu dilakukan untuk membuat applikasi sederhana tersebut adalah sebagai berikut:
1. Yang pasti kalian harus punnya borland delphi nya dulu ya... hahahaa
2. Buat project baru,
3. Buat 3 button, yang pertama button untuk panggil notepad, yang kedua untuk panggil calculator, dan yang ketiga adalah untuk panggil paint.
4. Kemudian masuk ke script (tekan F12)

5. Pada uses, tambahkan ShellApi
6. Pada Button notepad, tambahkan code berikut:
ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
7. Pada Button calculator, tambahkan code berikut:
ShellExecute(Handle, 'open', 'c:\Windows\system32\calculator.exe', nil, nil, SW_SHOWNORMAL) ;
8. Pada Button paint, tambahkan code berikut:
ShellExecute(Handle, 'open', 'c:\Windows\system32\mspaint.exe', nil, nil, SW_SHOWNORMAL) ;

Keterangan: kalo salah, berati exe file nya salah heee coba liat lagi aja di windowsnya...
Selamat mencoba...

Read More...

Thursday, July 26, 2007

Minicom

Buat kalian - kalian yang butuh terminal emulator layaknya hyperterminal pada windows operating system, linux juga punnya, dan ga perlu susah-susah nyarinya..

Nama applikasinya adalah minicom.
*Minicom is a text-based modem control and terminal emulation program for Unix-like operating systems, originally written by Miquel van Smoorenburg, and modeled after the popular MS-DOS program Telix. Minicom includes a dialing directory, full ANSI and VT100 emulation, an (external) scripting language, and other features. Minicom is a menu-driven communications program. It also has an auto zmodem download
(*sumber wikipedia)

Gimana cara pakai dan nampilin program tersebut ??
ikuti langkah - langkah berikut :

1. Buka sebuah terminal/console, trus ketikin "minicom" (tanpa tanda kutip)

$ minicom

2. Setelah itu akan muncul tampilan sebagai berikut :

Welcome to minicom 2.00.0
OPTIONS: History Buffer, F-key Macros, Search History Buffer, I18n
Compiled on Mar 7 2005, 10:29:09.
Press CTRL-A Z for help on special keys

Kemudian, untuk melakukan settingan seperti serialportnya, terminalnya, baudrates, dan temen2 nya.. caranya tekan CTRL+A setelah itu tekan Z pada keyboard, akan muncul menu-menu yang bisa kalian mainkan heee...
Dengan begitu terminal emulator pada linux udah bisa dijalankan heee...
**** selamat mencoba ****

Read More...

Sunday, May 27, 2007

Drag n Drop sederhana

Applikasi Drag n Drop sederhana
(java application - netbean)

Langkah – langkah yang harus dilakukan dalam membuat aplikasi DnD adalah sebagai berikut :

1. Buat project baru File->New Project..., pilih category General dan project Java Application, klik Next dengan nama appDrag&Drop, tanpa main class (uncheck create main class) kemudian klik Finish.
2. Tambahkan form (JFrame Form) ke dalam project tersebut dengan nama class “DragDrop” dan package “dnd”
3. Design form tersebut seperti gambar dibawah ini



Design tersebut terdiri dari jPanel, jLabel, dan jTextField.
4. Ubah ke mode design ke mode source (select View->Editor->Source).
5. Import beberapa kebutuhan yang diperlukan kedalam DragDrop.java dibawah package dnd;, seperti dibawah ini

import java.awt.*;
import javax.swing.JComponent;
import javax.swing.TransferHandler;
import java.awt.event.*;

6. Buat class baru didalam class DragDrop, yaitu DragMouseAdapter untuk meng-hadle aksi yang dilakukan oleh mouse (DnD)

private class DragMouseAdapter extends MouseAdapter {
public void mousePressed(MouseEvent e) {
JComponent c = (JComponent)e.getSource();
TransferHandler handler = c.getTransferHandler();
handler.exportAsDrag(c, e, TransferHandler.COPY);
}
}

7. Pada konstruktor (method DragDrop), tambahkan code dibawah ini

public DragDrop() {
initComponents();
jTextField1.setDragEnabled(true);
jLabel1.setTransferHandler(new TransferHandler("text"));
MouseListener listener = new DragMouseAdapter();
jLabel1.addMouseListener(listener);
}


8. Jalankan aplikasi dengan menekan tombol F6
9. Untuk mencoba aplikasi DnD, klik label Helllo, drag, dan drop pada textfield. Jika berhasil makan string Helllo akan ada pada textfield (ter-copy)

Read More...

Friday, May 25, 2007

When I Say That I Love You

WHEN I SAY THAT I LOVE YOU
Franky Sihombing

You feel that you're lonely
It Doesn't prove that you are alone
You feel that no body want you
It doesn't mean that no one cares about you

Reff:
Listen to the word i say
That i will always by your side
You mean everything to me
That i will never leave you
Cause i love you so

If you think that you're nothing
But for me you are something beautiful
You think that you can't do anything
But you can do a lot of things with me

When i say that i love you
It's mean i give the best for you
When i say that i love you
I will give everything for you

No more fear about the future
And blame for the past
I'll give everithing
When i say that i love you

I want you to know that i died for you
I want you to nkow that i'll give all my life for you
When i say that i love you....
Say that i love you....

When i say that i love you... i realy do..

Read More...

Friday, May 4, 2007

Pratikum appSocketClient

Sedangkan untuk aplikasi client, berikut adalah tutorial nya :

1. Buat project baru, dengan nama project appSocketClient tanpa main class

2. Buat class baru, dengan cara klik kanan nama project, kemudian pilih new->Java Class, dan beri nama class “appSocketClient” dan package “app.socket”

3. Import beberapa komponen dibawah ini dalam appSocketClient.java :

import java.awt.Color;
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;


import java.io.*;
import java.net.*;


4. Pada class appSocketClient lakukan perubahan pada nama class, dan tambahkan beberapa deklarasi seperti dibawah ini

Nama class menjadi :

public class appSocketClient extends JFrame implements ActionListener

Deklarasi variabel (dalam class appSocketClient diluar method yg ada didalam class tersebut) :

JLabel text, clicked;
JButton button;
JPanel panel;
JTextField textField;
Socket socket = null;
PrintWriter out = null;
BufferedReader in = null;


5. Akan ada error, karena method actionPerformed belum dibuat. Sekarang tambahkan method actionPerformed kedalam class appSocketClient.

public void actionPerformed(ActionEvent event){
Object source = event.getSource();
int i=0,j=0;
if(source == button){
//Send data over socket
String text = textField.getText();
out.println(text);
textField.setText(new String(""));
//Receive text from server
try{
String line = in.readLine();
textField.setText(line);
System.out.println("Text received :" + line);
}catch (IOException e){
System.out.println("Read failed");
System.exit(1);
}
}
}

6. Buat method baru didalam class appSocketClient, untuk membuat objek socket

public void listenSocket(){
//membuat objek socket
try{
socket = new Socket("localhost", 4444);
out = new PrintWriter(socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
}catch (UnknownHostException e) {
System.out.println("Unknown host: localhost.eng");
System.exit(1);
} catch (IOException e) {
System.out.println("No I/O");
System.exit(1);
}
}

7. Pada konstruktor (method appSocketClient) dalam class appSocketClient, tambahkan code berikut ini

public appSocketClient() {
text = new JLabel("Text to send over socket:");
textField = new JTextField(20);
button = new JButton("Click Me");
button.addActionListener(this);

panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.setBackground(Color.white);
getContentPane().add(panel);
panel.add("North", text);
panel.add("Center", textField);
panel.add("South", button);
}

8. Terakhir, tambahkan method main pada class appSocketClient

public static void main(String[] args){
appSocketClient frame = new appSocketClient();
frame.setTitle("Client Program");

WindowListener l = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};

frame.addWindowListener(l);
frame.pack();
frame.setVisible(true);
frame.listenSocket();
}


9. Jalankan aplikasi dengan menekan tombol F6
10. Catatan : jika aplikasi disisi client tidak menemukan server, maka applikasi akan keluar. Sehingga untuk menjalankannya, jalankan terlebih dahulu aplikasi di sisi server, kemudian aplikasi di sisi client.


Read More...

Pratikum appSocketServer

Berikut adalah tutorial membuat aplikasi socket server berbasis desktop application :

1. Buat project baru, File->New Project..., pilih kategori General dan project Java Application, kemudian isi nama projectnya socketServerApp, dan uncheck create main class

2. Tembahkan form baru ke dalam project, carannya klik kanan pada nama project, pilih new form, dan pilih Jframe Form..

3. Isi nama class “appSocketServer” dan nama packagenya “app.socket”

4. Akan muncul windows design, dan buat design seperti pada gambar d bawah ini :

5. Beralih ke editor source (pilih View->Editor->Source)

6. Masukkan beberapa komponen berikut ini dibawah package app.socket dalam appSocketServer.java

import java.awt.event.*;
import java.net.*; // kebutuhan socket
import java.io.*; // untuk io exception
import javax.swing.JTextArea;


7. Buat class baru ClientWorker (untuk komunikasi dengan socket) didalam appSocketServer.java dan diluar class appSocketServer()

/**
* class ClientWorker : menerima request yg datang dari client,
* mengembalikan socket object (client),
* dan merepresentasikan koneksi;
* komunikasi dengan socket (baca/tulis);
* menampilkan data (diterima dan di kirim)
*/
class ClientWorker implements Runnable {
private Socket client;
private javax.swing.JTextArea textArea;

// konstruktor
ClientWorker(Socket client, javax.swing.JTextArea textArea) {
this.client = client;
this.textArea = textArea;
}

public void run(){
String line;
BufferedReader in = null;
PrintWriter out = null;
boolean done = false;

try{
in = new BufferedReader(new InputStreamReader(client.getInputStream()));
out = new PrintWriter(client.getOutputStream(), true);
}catch (IOException e) {
System.out.println("input or output stream gagal");
System.exit(-1);
}

while(!done){
try{
line = in.readLine(); // baca data
if(line == null)
done=true;
else
{
// tampilkan data yang diterima ke textArea
textArea.append("Receive\t: "+line+"\n");

//kirim kembali data ke client
line = line + " juga";
out.println(line); // tulis data
// tampilkand data yang di kirim ke textarea
textArea.append("Send\t: "+line+"\n");
}
}catch (IOException e) {
System.out.println("baca gagal");
System.exit(-1);
}
}
}
}

8. Pada class appSocketServer, deklarasikan objek socket berikut (deklarasi variabel dilakukan didalam class appSocketServer dan diluar semua method yang ada di dalam class appSocketServer).

ServerSocket serverSocket = null;

9. Buat method baru untuk membuat socket object, didalam kelas appSocketServer

/**
* Methoe listenSocket : membuat koneksi socket
*/
public void listenSocket()
{
try{
// membuat onject socket pada port number :4444
serverSocket = new ServerSocket(4444);
}catch (IOException e) {
System.out.println("Could not listen on port 4444");
System.exit(-1);
}
// selama conect ke client
while(true){
ClientWorker clWorker;
try{
clWorker = new ClientWorker(serverSocket.accept(), jTextArea1);
Thread tread = new Thread(clWorker);
tread.start();
}catch (IOException e) {
System.out.println("Accept failed: 4444");
System.exit(-1);
}
}
}

10. Buat satu method lagi didalam class appSocketServer untuk menghentikan tread dan juga program

protected void finalize(){
try{
serverSocket.close();
System.out.println("Close socket");
}catch (IOException e) {
System.out.println("Could not close socket");
System.exit(-1);
}
}

11. Dalam method main(), ubah code dengan code dibawah ini

public static void main(String args[]) {
appSocketServer frame = new appSocketServer();

WindowListener wListen = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};

frame.addWindowListener(wListen);
frame.pack();
frame.setVisible(true);
frame.listenSocket();
}

12. Jalankan applikasi dengan menekan tombol F6, makan akan muncul window baru, yaitu window untuk memilih main project, klik OK maka akan muncul applikasi socket server yang telah dibuat


Read More...

Aplikasi Socket - Client

Setelah mempelajari cara membuat applikasi socket disisi server, sekarang kita belajar tentang applikasi socket di sisi client..oke !!(kaya pa guru ya hehehe)

Beberapa langkah untuk membuat aplikasi di sisi client supaya dapat berkomunikasi dengan server adalah sebagai berikut :

1. Koneksi ke server, koneksi ke server dapat dilakukan dengan cara :
Membuat socket objek, hanya perlu tahu nama host dan port yang digunakan. Untuk membuat socket objek, hanya perlu mamanggil kelas socket, yaitu :
Socket(InetAddress address, int port) atau
Socket(java.lang.String host, int port)
Contoh : untuk membuat socket objek yang connect dari localhost dengan port 4444,

berikut adalah sintaksnya

Socket sClient = new Socket (“localhost”, 4444);

2. Komunikasi dengan server dengan menggunakan socket pada sisi client tidak berbeda cara komunikasi server terhadap client, yaitu input dan output sream. Contohnya :

BufferedReader in = new Bufferedreader
(new InputStreamReader(sClient.getInputStream()));
PrintWriter out = new PrintWriter
(sClient.getOutputStream(), true);

kemudian kita tinggal membaca / menulis string dari dan ke socket objek yang telah dibuat. Caranya hampir sama dengan yang dilakukan server :

boolean more = true;
out.println(“halo..”); // kirim tesk
while (more)
{
String balikan = in.readLine();
If(balikan==null)
more = false;
else
Syste.out.println();
}

Cukup mudah kan ???
Dan akan lebih mudah kalau langsung dipraktekkan. link berikut akan membawa anda pada pratikum appSocketClient.

Read More...

Tuesday, May 1, 2007

Aplikasi Socket - Server

Aplikasi socket terdiri dari 2 bagian, yaitu server dan client.
artikel ini akan membahas socket pada sisi server, sisi client ntar.

Beberapa langkah yang harus dilakukan dalam membuat aplikasi socket di sisi server adalah sebagai berikut :

  1. Buat instance dari kelas ServerSocket. Ada beberapa perbedaan dalam membuat instance tersebut, yaitu :
    a. ServerSocket(), implementasi yang sangat sederhana, yang berarti semuanya dianggap sebagai nilai default.
    b. ServerSocket(int port), membuat instance class untuk port server tertentu.
    c. ServerSocket(int port, int backlog), tidak hanya mengikat socket yang dibuat untuk port tertentu, tapi
    juga membuat queue of length, yang di spesifikasikan oleh paramenter backlog.
    d. ServerSocket(int port, int backlog, InetAddress bindAddr), seperti no.c, dan ditambah parameter yang membatasi alamat yang di gunakan.


    Misalnya : untuk membuat instance kelas ServerSocket dengan memakai port no 4444, dengan backlog queue 5 dan membatasi alamat pada localhost, sintaksnya adalah sebagai berikut :

    ServerSocket sServer = new ServerSocket ( 4444, 5, InetAddress.getLocalHost() );
  2. Langkah selanjutnya adalah membuat objek soket server yang telah dibuat menunggu dan menerima request yang datang. Methodnya adalah accept(). Pada saat request datang, method accept() akan mengembalikan object yang merepresentasikan koneksi (client).

    Socket socketReq = sServer.accept();
  3. Langkah ketiga adalah saatnya membaca dan menulis dari dan ke objek socket. Untuk membaca gunakan getInputStream() dan untuk menulis gunakan getOutputStream() method dari kelas socket.

    BufferedReader in = new BufferedReader
    (new InputStreamReader(socketReq.getInputStream()));
    PrintWriter out = new PrintWriter
    (socketReq.getOutputStream(), true);

  4. Langkah terakhir adalah menutup object socket, pada saat client menghentikan koneksinya atau berhenti mengirimkan request.

    socketReq.close();

nah, itu adalah keterangan tentang socket server, mudah-mudah susah untuk dimengerti. tapi, sangat mudah jika itu semua dicoba dan dipraktekkan. link berikut akan bawa kalian untuk pratikum appSocketServer

Read More...

Tuesday, April 17, 2007

M2M - The day you went away

M2M - The Day You Went Away

Well I could it be, When I was dreamin 'bout you baby
You dreaming of me, Call me crazy, Call me blind
To still be suffering is stupid after all this time

( pre-chorus 1 )
Did I lose my love to someone better
and does she love you like I do
I do, You know I really really do

( chorus )
Well hey, so much I need to say

been lonely since the day
the day you went away
So sad, but true
For me there's only you
Been crying since the day
The day you went away

I remember date and time
September 22nd
Sunday twenty five after nine
in your door with your caseno longer shouting at each other
There were tears on your faces

( pre-chorus 2 )
And we were letting go to something special
Something we'll never have again
I know, I guess I really really know

( repeat chorus )

The day you went away
The day you went away

( repeat pre-chorus 1 )

( repeat chorus )

( bridge )
We do we never know that we got 'til its gone
How could I carry on, The day you went away
Couse I've been missing you so much I have to say
Been crying since the day
The day you went away, The day you went away

Read More...

Friday, April 13, 2007

Komunikasi RS232

Buat temen2 yang mau tau gimana cara gampang komunikasi PC dengan COMM (RS232) dengan menggunakan toos Borland C++ Builder, gw mau kasih tau caranya :

  1. Kalian harus punnya dan install komponen untuk komunikasi melalui RS232, dalam hal ini gw pake komponen TCommPort.
  2. Pilih dan temptin aja komponen (yang udah di install) itu ke form kamu
  3. Untuk memulai komunikasi, port-nya harus di buka terlebih dahulu, carannya : buat satu tombol/menu untuk Connect, trus

    masukin code berikut

    void __fastcall TForm1::Connect1Click(TObject *Sender)
    {
    CommPort1->Open();
    ShowMessage(CommPort1->Connected?"Connected":"Disconnected");
    }

    kalau keluar message "Connected", berarti Port telah terbuka dan siap melakukan komunikasi.
  4. Untuk melakukan send data, buat satu tombol untuk Send, trus masukin code berikut :

    void __fastcall TForm1::SendClick(TObject *Sender)
    {
    AnsiString tmpStr = "Hello";
    CommPort1->Write(tmpStr.c_str(), tmpStr.Length());
    }
  5. Sedangkan Untuk menerima data yang masuk, caranya siapkan terlebih dahulu editor untuk menampilkan data yang di terima, gampangnnya pake memo. Pada event Commport (OnDataReceived), masukin code berikut :

    void __fastcall TForm1::CommPort1DataReceived(TObject *Sender,
    const char *Buffer, unsigned Length)
    {
    Memo1->Lines->SetText(AnsiStr(Buffer));
    }

    Code itu akan menampilkan data yang diterima, dan menampilkan data yang diterima berikutnnya pada baris baru. Untuk menampilkan data berikutnnya pada baris yang sama, maka perlu sedikit tambahan. caranya gimana,,, Utak - atik aja sendiri. heheh
  6. Terakhir, untuk menutup komunikasi, masukin code berikut ke tombol Disconnect :

    void __fastcall TForm1::Disconnect1Click(TObject *Sender)
    {
    CommPort1->Close();
    ShowMessage(CommPort1->Connected?"Connected":"Disconnected");
    }

    Kalau keluar message "Disconnected", tandannya tau sendiri kan ...........

That's all,,, simple banget kan... silahkan mencoba berkomunikasi dengan RS232.
Karena komunikasi dengan manusia itu susah hehehhehe.........
Peace ....


Read More...

Monday, April 2, 2007

first blog

Hallo...
Ini adalah posting pertama blog gw...

regards,

sony.

Read More...