in the end... it's just about functionality... design... information. benefits and save time...
not what's inside.... consumer didn't really care how "inside works".
the midle man is called marketter.
producer - marketter - consumer
producer: all process on producing a product.
marketer/affiliater: give information + get benefit from a product
consumer: user of the service / product. mostly comes from marketer because for a producer doesnt have enough time to make and sell at the same time.
producer got so many competition with another producer too... because that consumer didn't really care what's inside. they only know which one have the best benefits... functionality... and other. they also doesnt care about the concept and all process behind the scene.
that's why "patents" comes.
for producer itself must have a influence of social / a group (the example of group can be family, community, teen, student in university and other) to make a success in selling their product. Cause a product will be sold nicely if only the product got brand / power / credibility among people. In this case a marketter have the big part of the scene.
the example way of bad thing to do is paid some people (the consumer) to make the credibility of a product become down. This can be countered if only the product quality is good. Remember! from good quality of a product / content will produce good rating then if the consumer are happy, they will willing to share with other even they didn't asked to. that make influence on his group.
that's all the thing on my thought today... after reading some people comment, newspaper, tv.
thx for reading.
Saturday, September 15, 2012
Monday, September 10, 2012
mail server
Simple Mail Transfer Protocool adalah sebuah protocol / aturan yang digunakan untuk berkirim email dari sebuah mail server ke mail server yang lain. SMTP ini sudah menjadi aturan dasar dalam kegiatan berkirim email. sehingga setiap software yang digunakan untuk berkirim email pasti telah mendukung protokol ini. Terdapat berbagai macam software yg mendukung smtp yang dapat digunakan sebagai mail server program diantaranya:
Software-software tersebut lebih sering dikenal dengan sebutan Mail Transfer Agent
Simple Mail Transfer Protocool disini Menggunakan Port 25 Sehingga apabila ingin menggunakan Smtp ini haruslah terlebih dahulu kita memastikan tidak ada yang menggunakan port 25 di server.
kita dapat menggunakan software seperti nmap yang dapat diunduh di http://nmap.org/ untuk mengecek port-port yang telah digunakan di server.
dibawah ini merupakan contoh penggunaan nmap di sebuah server dengan distro centos 6.3 milik saya.
Dapat terlihat bahwa port 25 disini blm digunakan. Sehingga kita dapat melakukan instalasi program yang telah saya sebutkan diatas (pilih salah satu dari kelima program tersebut).
Simple Mail Transfer Protocol tidak digunakan untuk Transfer antar e-mail client. SMTP hanya merupakan sebuah protocol yang berjalan untuk sebuah pengiriman email antar mail server. Apabila kita ingin mentransfer e-mail antar client kita dapat menggunakan pop3 / imap, imaps / pop3s.
prinsip utama cara kerja mail server ialah menerima email dari local user yang berada didalam sebuah domain tertentu , dan meneruskannya ke email server yang lain.
- Sendmail
- Postfix
- Exim
- Courier-MTA
- Qmail
- Microsoft Exchange Server
Software-software tersebut lebih sering dikenal dengan sebutan Mail Transfer Agent
Simple Mail Transfer Protocool disini Menggunakan Port 25 Sehingga apabila ingin menggunakan Smtp ini haruslah terlebih dahulu kita memastikan tidak ada yang menggunakan port 25 di server.
kita dapat menggunakan software seperti nmap yang dapat diunduh di http://nmap.org/ untuk mengecek port-port yang telah digunakan di server.
dibawah ini merupakan contoh penggunaan nmap di sebuah server dengan distro centos 6.3 milik saya.
Dapat terlihat bahwa port 25 disini blm digunakan. Sehingga kita dapat melakukan instalasi program yang telah saya sebutkan diatas (pilih salah satu dari kelima program tersebut).
Simple Mail Transfer Protocol tidak digunakan untuk Transfer antar e-mail client. SMTP hanya merupakan sebuah protocol yang berjalan untuk sebuah pengiriman email antar mail server. Apabila kita ingin mentransfer e-mail antar client kita dapat menggunakan pop3 / imap, imaps / pop3s.
prinsip utama cara kerja mail server ialah menerima email dari local user yang berada didalam sebuah domain tertentu , dan meneruskannya ke email server yang lain.
Saturday, August 25, 2012
perbedaan wireless distribution system / wds dan repeater
wds / wireless distribution system adalah sebuah mekanisme dimana router/access point bertindak sebagai penerus sinyal dan pendistribusian wireless tanpa membutuhkan adanya kabel lan yang terhubung pada 2 router /access point tersebut. Dari gambar dibawah ini kita bisa melihat sistem cara kerja wds itu sendiri.
access point 1 memancarkan gelombang radio ke access point 2, dan access point 2 menangkap dan memancarkan lagi ke area yang dapat dicapai oleh access point 2. sehingga area yang awalnya tidak tercapai oleh access point pertama sekarang dapat tercapai.
sekilas fungsi wds sendiri dapat dikatakan sama dengan fungsi wireless repeater yaitu melanjutkan sinyal wifi ke area lain sehingga cakupannya bertambah luas.... namun yang membedakan antara wireless repeater dengan wds ialah... ketika ap diset menjadi wireless repeater maka port kabel jaringan pada access point akan berubah menjadi status disabled. dimana pada wds port jaringan kabel tetap dapat digunakan selagi menangkap dan memancarkan wifi.
Untuk gambar dibawah ini, biasanya digunakan untuk memperluas area jaringan wifi tanpa sistem wds (menggunakan kabel). access point 1 mendapatkan internet dari port wan, disebarkan via wifi di area access point 1. Lalu untuk memperluas kita hubungkan dengan menggunakan kabel lan ke access point 2 (dimasukkan ke port wan-nya access point 2) sehingga access point 2 sekarang mendapatkan koneksi internet dan dapat disebarkan via wifi / kabel di area yang dicakupi ap ke 2.
terlihat bukan perbedaannya? dimana dalam sistem wds tidak membutuhkan lagi kabel. Tetapi kita harus menset kedua access point tersebut dengan channel yang sama, metode enkripsi / keyword yang sama.
oiya, metode wds memiliki kelemahan throughput yang dapat dilalui antar jaringan biasanya hanya setengahnya dari total throughput keseluruhan dikarenakan access point tersebut bekerja 2x (mengirim dan menerima paket apabila ada request dari klien 1 ke klien lain atau ke internet).
dan 1 lagi... koneksi antar client yang terhubung apabila dalam keadaan wds, menggunakan mac address sebagai target tujuan. bukan berdasarkan ip address.
access point 1 memancarkan gelombang radio ke access point 2, dan access point 2 menangkap dan memancarkan lagi ke area yang dapat dicapai oleh access point 2. sehingga area yang awalnya tidak tercapai oleh access point pertama sekarang dapat tercapai.
sekilas fungsi wds sendiri dapat dikatakan sama dengan fungsi wireless repeater yaitu melanjutkan sinyal wifi ke area lain sehingga cakupannya bertambah luas.... namun yang membedakan antara wireless repeater dengan wds ialah... ketika ap diset menjadi wireless repeater maka port kabel jaringan pada access point akan berubah menjadi status disabled. dimana pada wds port jaringan kabel tetap dapat digunakan selagi menangkap dan memancarkan wifi.
Untuk gambar dibawah ini, biasanya digunakan untuk memperluas area jaringan wifi tanpa sistem wds (menggunakan kabel). access point 1 mendapatkan internet dari port wan, disebarkan via wifi di area access point 1. Lalu untuk memperluas kita hubungkan dengan menggunakan kabel lan ke access point 2 (dimasukkan ke port wan-nya access point 2) sehingga access point 2 sekarang mendapatkan koneksi internet dan dapat disebarkan via wifi / kabel di area yang dicakupi ap ke 2.
terlihat bukan perbedaannya? dimana dalam sistem wds tidak membutuhkan lagi kabel. Tetapi kita harus menset kedua access point tersebut dengan channel yang sama, metode enkripsi / keyword yang sama.
oiya, metode wds memiliki kelemahan throughput yang dapat dilalui antar jaringan biasanya hanya setengahnya dari total throughput keseluruhan dikarenakan access point tersebut bekerja 2x (mengirim dan menerima paket apabila ada request dari klien 1 ke klien lain atau ke internet).
dan 1 lagi... koneksi antar client yang terhubung apabila dalam keadaan wds, menggunakan mac address sebagai target tujuan. bukan berdasarkan ip address.
Wednesday, August 8, 2012
cara install openvpn di VPS dengan centos 6.3 agustus 2012
disini saya akan memberi tahu cara untuk menginstall openvpn di centos terbaru yaitu centos 6.3
sebelumnya kita harus mengetahui apa yang dimaksud dengan epel / extra package untuk linux enterprise.
epel merupakan repository 3rd party yang dapat digunakan oleh centos. Repository ini merupakan repository tidak resmi yang dibuat oleh komunitas /group yang terdiri dari orang2 fedora agar bisa digunakan oleh operating system yg lain selain fedora.Untuk selebihnya bisa dibaca di:
http://fedoraproject.org/wiki/EPEL/FAQ
pertama-tama kita download dulu packet yang dibutuhkan yaitu dengan cara:
cd /usr/local/src/
wget http://epel.repo.unpas.ac.id//6/x86_64/epel-release-6-7.noarch.rpm (untuk os 64 bit)
wget http://epel.repo.unpas.ac.id//6/i386/epel-release-6-7.noarch.rpm (untuk os 32 bit)
lalu kita install dengan cara
rpm -Uvh [nama paket]
maksud dari command diatas ,
-vh = menampilkan dimonitor proses instalasi dengan menggunakan tanda pagar # sebagai simbol download.
-U =upgrade uninstall paket lama dan install versi baru. bila tidak ditemukan versi lama maka otomatis rpm melakukan instalasi
karena operating system yg saya gunakan ialah versi 64 bit maka saya jalankan
rpm-Uvh http://epel.repo.unpas.ac.id//6/x86_64/epel-release-6-7.noarch.rpm
tunggu beberapa saat hingga proses instalasi selesai,, lalu lanjutkan dengan mengetikkan
#yum repolist
(agar repository kita terupdate dan menggunakan repository milik epel)
setelah itu ketik yum install openvpn untuk menginstall openvpn yang terdapat di repository milik epel.
well done.... easy isnt it...
untuk confignya akan dibahas di post saya selanjutnya.
sebelumnya kita harus mengetahui apa yang dimaksud dengan epel / extra package untuk linux enterprise.
epel merupakan repository 3rd party yang dapat digunakan oleh centos. Repository ini merupakan repository tidak resmi yang dibuat oleh komunitas /group yang terdiri dari orang2 fedora agar bisa digunakan oleh operating system yg lain selain fedora.Untuk selebihnya bisa dibaca di:
http://fedoraproject.org/wiki/EPEL/FAQ
pertama-tama kita download dulu packet yang dibutuhkan yaitu dengan cara:
cd /usr/local/src/
wget http://epel.repo.unpas.ac.id//6/x86_64/epel-release-6-7.noarch.rpm (untuk os 64 bit)
wget http://epel.repo.unpas.ac.id//6/i386/epel-release-6-7.noarch.rpm (untuk os 32 bit)
lalu kita install dengan cara
rpm -Uvh [nama paket]
maksud dari command diatas ,
-vh = menampilkan dimonitor proses instalasi dengan menggunakan tanda pagar # sebagai simbol download.
-U =upgrade uninstall paket lama dan install versi baru. bila tidak ditemukan versi lama maka otomatis rpm melakukan instalasi
karena operating system yg saya gunakan ialah versi 64 bit maka saya jalankan
rpm-Uvh http://epel.repo.unpas.ac.id//6/x86_64/epel-release-6-7.noarch.rpm
tunggu beberapa saat hingga proses instalasi selesai,, lalu lanjutkan dengan mengetikkan
#yum repolist
(agar repository kita terupdate dan menggunakan repository milik epel)
setelah itu ketik yum install openvpn untuk menginstall openvpn yang terdapat di repository milik epel.
well done.... easy isnt it...
untuk confignya akan dibahas di post saya selanjutnya.
Tuesday, July 31, 2012
Contoh Penulisan Object di dalam bahasa pemrograman php
contoh penulisan object di php
class orang{
var $nama="";
var $jk="";
var $tgllahir="";
var $tptlahir="";
tampilkan(){
echo "<br> nama".this ->nama;
echo "<br> nama".this ->jk;
echo "<br> nama".this ->tgllahir;
echo "<br> nama".this ->tptlahir;
}
}
$orang1 = new orang();
$orang1 -> nama="toro";
$orang1 -> jk="pria";
$orang1 -> tgllahir="1998-12-24";
$orang1 -> tptlahir="jogjakarta";
$orang1 -> tampilkan();
$orang2 = new orang();
$orang2 -> nama="doni";
$orang2 -> jk="wanita";
$orang2 -> tgllahir="1998-11-12";
$orang2 -> tptlahir="makasar";
$orang2 -> tampilkan();
//tinggal tambahin sebanyak apapun**
// function bisa pake kembalian / return
Friday, July 27, 2012
starting building remote desktop application with java
java merupakan bahasa pemrograman yang cukup sering digunakan pada saat ini. Java dikenal dengan pemrogramannya yang cukup handal dalam menangani garbage collector yaitu selalu memproteksi kode2 pemrograman yang sekiranya setelah selesai digunakan lgsung di tangani/ditutup secara khusus sehingga tidak menciptakan memory leak / digunakan oleh orang2 yang tidak berwenang untuk digunakan dalam berbagai hal seperti exploitasi program, mencari data2 berharga yang dapat digunakan untuk menjebol sebuah server, mengirimkan ddos hingga pengambilan alih pc.
java juga dikenal dengan write once run everywhere. jadi kita tidak perlu takut program yang kita jalankan hanya bisa dijalankan di windows saja. compiler java akan mengubah program kita (class) menjadi byte2 yang akan ditranslasikan di masing2 os seperti linux, mac, windows,dll. Sehingga program kita dapat berjalan di mana saja. jadi pengguna dari program kita tidak hanya terbatas 1 vendor saja. that's why nowdays java very popular. <3
dibawah ini merupakan program yang sedang saya kembangkan untuk membuat remote desktop berbasis java. Untuk langkah awal server hanya bisa menangkap layar desktopnya lalu mengirimnya ke client sehingga dapat dilihat langsung tampilan dekstopnya oleh client.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package ServerClient;
import java.awt.AWTException;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
/**
*
* @author admin
*/
public class Server {
private ServerSocket Server;
private Socket socket ;
private Rectangle UkuranKotak;
private BufferedImage image;
private Robot robot;
private OutputStream out;
//constructor
Server () {
bikin_server(777);
Cek_Ukuran_Desktop();
Capture_Gambar();
Kirim_Gambar();
TutupServer();
}
//end of constructor
public Rectangle Cek_Ukuran_Desktop(){
UkuranKotak = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
return UkuranKotak;
}
public void Capture_Gambar(){
try {
robot= new Robot();
image = robot.createScreenCapture(Cek_Ukuran_Desktop());
} catch (AWTException ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void Kirim_Gambar(){
try {
out = socket.getOutputStream();
ImageIO.write(image, "png", out); //kirim bufferedimage ke client
System.out.println("Sent image!");
} catch (IOException ex) {
System.out.println("eror pada saat mengirim gambar" + ex);
}
}
public void bikin_server(int port){
try {
Server = new ServerSocket(port);
socket = Server.accept();
System.out.println("server telah dibangun di port :" +port);
} catch (IOException ex) {
System.out.println("terdapat kesalahan di bagian bikin server ,"+ex);
}
}
void TutupServer(){
try {
if(out!=null) out.close();
if (socket != null) socket.close();
System.out.println("selesai mengirim gambar, tutup koneksi");
} catch (IOException ex) {
System.out.println("tidak bisa menutup socket" + ex);
}
}
public static void main(String[]args){
Server jalankan = new Server();
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package image;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.*;
/**
*
* @author admin
*/
public class Client extends JFrame {
private Socket socket =null ;
private BufferedImage gambar =null;
private File out= null;
private JLabel label1;
//constructor
public Client(){
BikinSocketClient("localhost",777);
DapatkanGambarDariSocket();
CetakGambarKeFolder();
// ConvertGambarKeByte();
TutupClient();
Bikin_Interface();
}
//end of constructor
public void Bikin_Interface(){
label1 = new JLabel();
add(label1);
label1.setIcon(new ImageIcon("c:/berhasilyaaa.png"));
JScrollPane p = new JScrollPane( label1 );
getContentPane().add( p );
setDefaultCloseOperation( EXIT_ON_CLOSE );
setSize( 300, 300 );
setVisible( true );
}
public void DapatkanGambarDariSocket(){
try {
gambar =ImageIO.read(socket.getInputStream());
} catch (IOException ex) {
System.out.println("gambar tidak diterima / socket eror"+ex);
}
}
/* public void ConvertGambarKeByte(){
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(gambar,"png" , baos);
baos.flush();
byte[] UkuranImage = baos.toByteArray();
baos.close();
} catch (IOException ex) {
Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
}
}
*/
void CetakGambarKeFolder(){
try {
out = new File("c:/berhasilyaaa.png");
ImageIO.write(gambar,"png",out);
} catch (IOException ex) {
System.out.println("gambar tidak ditemukan" + ex);
}
}
void BikinSocketClient(String serverName, int ServerPort){
try {
socket = new Socket(serverName,ServerPort);
} catch (UnknownHostException ex) {
System.out.println("host tidak ditemukan" + ex);
} catch (IOException ex) {
System.out.println ("port eror" + ex);
}
}
void TutupClient(){
try {
if (socket != null) socket.close();
System.out.println("selesai menerima gambar, tutup koneksi");
} catch (IOException ex) {
System.out.println("tidak bisa menutup socket" + ex);
}
}
public static void main(String[]args){
Client jalankan = new Client();
}
}
klo mau dijalankan di komputer yang berbeda tinggal edit
BikinSocketClient("localhost",777); -> arahin ke ip server.
java juga dikenal dengan write once run everywhere. jadi kita tidak perlu takut program yang kita jalankan hanya bisa dijalankan di windows saja. compiler java akan mengubah program kita (class) menjadi byte2 yang akan ditranslasikan di masing2 os seperti linux, mac, windows,dll. Sehingga program kita dapat berjalan di mana saja. jadi pengguna dari program kita tidak hanya terbatas 1 vendor saja. that's why nowdays java very popular. <3
dibawah ini merupakan program yang sedang saya kembangkan untuk membuat remote desktop berbasis java. Untuk langkah awal server hanya bisa menangkap layar desktopnya lalu mengirimnya ke client sehingga dapat dilihat langsung tampilan dekstopnya oleh client.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package ServerClient;
import java.awt.AWTException;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
/**
*
* @author admin
*/
public class Server {
private ServerSocket Server;
private Socket socket ;
private Rectangle UkuranKotak;
private BufferedImage image;
private Robot robot;
private OutputStream out;
//constructor
Server () {
bikin_server(777);
Cek_Ukuran_Desktop();
Capture_Gambar();
Kirim_Gambar();
TutupServer();
}
//end of constructor
public Rectangle Cek_Ukuran_Desktop(){
UkuranKotak = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
return UkuranKotak;
}
public void Capture_Gambar(){
try {
robot= new Robot();
image = robot.createScreenCapture(Cek_Ukuran_Desktop());
} catch (AWTException ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void Kirim_Gambar(){
try {
out = socket.getOutputStream();
ImageIO.write(image, "png", out); //kirim bufferedimage ke client
System.out.println("Sent image!");
} catch (IOException ex) {
System.out.println("eror pada saat mengirim gambar" + ex);
}
}
public void bikin_server(int port){
try {
Server = new ServerSocket(port);
socket = Server.accept();
System.out.println("server telah dibangun di port :" +port);
} catch (IOException ex) {
System.out.println("terdapat kesalahan di bagian bikin server ,"+ex);
}
}
void TutupServer(){
try {
if(out!=null) out.close();
if (socket != null) socket.close();
System.out.println("selesai mengirim gambar, tutup koneksi");
} catch (IOException ex) {
System.out.println("tidak bisa menutup socket" + ex);
}
}
public static void main(String[]args){
Server jalankan = new Server();
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package image;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.*;
/**
*
* @author admin
*/
public class Client extends JFrame {
private Socket socket =null ;
private BufferedImage gambar =null;
private File out= null;
private JLabel label1;
//constructor
public Client(){
BikinSocketClient("localhost",777);
DapatkanGambarDariSocket();
CetakGambarKeFolder();
// ConvertGambarKeByte();
TutupClient();
Bikin_Interface();
}
//end of constructor
public void Bikin_Interface(){
label1 = new JLabel();
add(label1);
label1.setIcon(new ImageIcon("c:/berhasilyaaa.png"));
JScrollPane p = new JScrollPane( label1 );
getContentPane().add( p );
setDefaultCloseOperation( EXIT_ON_CLOSE );
setSize( 300, 300 );
setVisible( true );
}
public void DapatkanGambarDariSocket(){
try {
gambar =ImageIO.read(socket.getInputStream());
} catch (IOException ex) {
System.out.println("gambar tidak diterima / socket eror"+ex);
}
}
/* public void ConvertGambarKeByte(){
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(gambar,"png" , baos);
baos.flush();
byte[] UkuranImage = baos.toByteArray();
baos.close();
} catch (IOException ex) {
Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
}
}
*/
void CetakGambarKeFolder(){
try {
out = new File("c:/berhasilyaaa.png");
ImageIO.write(gambar,"png",out);
} catch (IOException ex) {
System.out.println("gambar tidak ditemukan" + ex);
}
}
void BikinSocketClient(String serverName, int ServerPort){
try {
socket = new Socket(serverName,ServerPort);
} catch (UnknownHostException ex) {
System.out.println("host tidak ditemukan" + ex);
} catch (IOException ex) {
System.out.println ("port eror" + ex);
}
}
void TutupClient(){
try {
if (socket != null) socket.close();
System.out.println("selesai menerima gambar, tutup koneksi");
} catch (IOException ex) {
System.out.println("tidak bisa menutup socket" + ex);
}
}
public static void main(String[]args){
Client jalankan = new Client();
}
}
klo mau dijalankan di komputer yang berbeda tinggal edit
BikinSocketClient("localhost",777); -> arahin ke ip server.
Wednesday, July 18, 2012
java serialization
mungkin kita sering mendengar tentang java serialization.
apakah yang dimaksud dengan java serialization itu?
java serialization adalah mekanisme dimana sebuah objek/file dapat direpresentasikan sebagai sebuah aliran bytes yang didalamnya terdapat informasi tentang sebuah objek dan tipe data yang ada didalamnya.
secara gamblang, fungsi serialisasi disini agar file dapat dibaca oleh stream sehingga kita dapat membuat duplikat objek tersebut dalam sebuah files yang nantinya dapat di restore / dilakukan komputasi lebih lanjut oleh program lanjutan yang ada di pc local maupun network lain (misal : remote desktop)
atau dimodifikasi untuk dimasukkan kedalam database.
ObjectInputStream dan ObjectOutputStream merupakan stream yang digunakan untuk serialisasi dan de-serialisasi.
apakah yang dimaksud dengan java serialization itu?
java serialization adalah mekanisme dimana sebuah objek/file dapat direpresentasikan sebagai sebuah aliran bytes yang didalamnya terdapat informasi tentang sebuah objek dan tipe data yang ada didalamnya.
secara gamblang, fungsi serialisasi disini agar file dapat dibaca oleh stream sehingga kita dapat membuat duplikat objek tersebut dalam sebuah files yang nantinya dapat di restore / dilakukan komputasi lebih lanjut oleh program lanjutan yang ada di pc local maupun network lain (misal : remote desktop)
atau dimodifikasi untuk dimasukkan kedalam database.
ObjectInputStream dan ObjectOutputStream merupakan stream yang digunakan untuk serialisasi dan de-serialisasi.
public class pelajar implements Serializable {//kita buat tipe datanya private String nama;private String alamat;private int nim;
public void cetak()
{
System.out.println("saya adalah seorang pelajar dengan " + nama
+ "alamat " + alamat + "nim" + nim);
}
} //end of class pelajarpublic class DemoSerialisasi{ public static void main(String [] args)
{
pelajar a = new pelajar();
a.nama = "toro tero";
a.alamat = "jogja city";
a.nim = 07030024;
FileOutputStream fileOut = new FileOutputStream("pelajar.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(e); //method utama yang dijalankan untuk serialisasi objek
out.close();
fileOut.close();
}//end of main } //end of class demoserialisasi public class demo de-serialisasi{ public static void main(String [] args)
{pelajar a = null;
FileInputStream fileIn = new FileInputStream("pelajar.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
a = (Employee) in.readObject(); //method utama yang dijalankan untuk de-serialisasi objek
in.close(); fileIn.close();
System.out.println("Deserialized Employee...");
System.out.println("Name: " + a.nama);
System.out.println("Address: " + a.alamat);
System.out.println("SSN: " + a.nim);
} //end of main }//end of de-serialization- jika menggunakan
FileOutputStream, maka data nantinya akan kita tulis ke sebuah file - jika menggunakan ByteArrayOutputStream (serialization )maka data ditulis kedalam array (type data byte) didalam memori. nantinya aliran data tersebut dapat digunakan untuk diduplikasi. misal kita mengirim gambar, lalu kita tampilkan langsung di frame. (klo yang fileoutputstream kita harus menulis ke sebuah file dulu, baru file tersebut dibaca. klo ini ga perlu. kita menyimpan state dalam bentuk byte jadi bisa dipake untuk input program/class lain)
"memahami konsep serialisasi dan deserialisasi object cukup
penting apabila kita ingin membuat sebuah aplikasi client server dengan
menggunakan socket. "
Subscribe to:
Posts (Atom)



